aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <>2003-08-21 14:03:24 +0000
committernobody <>2003-08-21 14:03:24 +0000
commit8c04ad1437f5c354d3d55e4e2c6b880ecd287140 (patch)
tree22e064f46b402a6d06cf3fd083de1489a60d13ed
parentad91de7192b5202095eef06117f048bc89d9a51b (diff)
downloadgdb-8c04ad1437f5c354d3d55e4e2c6b880ecd287140.zip
gdb-8c04ad1437f5c354d3d55e4e2c6b880ecd287140.tar.gz
gdb-8c04ad1437f5c354d3d55e4e2c6b880ecd287140.tar.bz2
This commit was manufactured by cvs2svn to create branchcagney_x86i386-20030821-branchpoint
'cagney_x86i386-20030821-branch'. Sprout from gdb_6_0-branch 2003-08-07 17:47:43 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.' Cherrypick from gdb_6_0-branch 2003-08-03 01:57:14 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/testsuite/gdb.base/annota3.c gdb/testsuite/gdb.c++/annota3.cc gdb/testsuite/gdb.c++/annota3.exp Cherrypick from gdb_6_0-branch 2003-06-29 19:41:15 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/cli/cli-logging.c Cherrypick from gdb_6_0-branch 2003-07-07 14:48:51 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/testsuite/gdb.asm/m68k.inc Cherrypick from gdb_6_0-branch 2003-07-07 15:56:09 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/sparc-tdep.h Cherrypick from gdb_6_0-branch 2003-07-15 12:34:09 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/x86-64-linux-tdep.h Cherrypick from gdb_6_0-branch 2003-07-30 04:14:39 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/doc/annotate.texinfo Cherrypick from gdb_6_0-branch 2003-08-11 16:55:22 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'gdb_6_0-branch'.': gdb/amd64fbsd-nat.c Cherrypick from master 2003-08-21 14:03:23 UTC Nick Clifton <nickc@redhat.com> 'Add PGI extensions': ChangeLog MAINTAINERS Makefile.def Makefile.in Makefile.tpl bfd/ChangeLog bfd/Makefile.am bfd/Makefile.in bfd/aout-ns32k.c bfd/aoutx.h bfd/archive.c bfd/archive64.c bfd/archures.c bfd/bfd-in.h bfd/bfd-in2.h bfd/bfd.c bfd/bfdio.c bfd/bfdwin.c bfd/bout.c bfd/cache.c bfd/coff-a29k.c bfd/coff-alpha.c bfd/coff-arm.c bfd/coff-h8300.c bfd/coff-i386.c bfd/coff-i860.c bfd/coff-i960.c bfd/coff-m68k.c bfd/coff-m88k.c bfd/coff-mcore.c bfd/coff-mips.c bfd/coff-or32.c bfd/coff-ppc.c bfd/coff-rs6000.c bfd/coff-sh.c bfd/coff-tic80.c bfd/coff64-rs6000.c bfd/coffcode.h bfd/cofflink.c bfd/config.bfd bfd/configure bfd/configure.host bfd/configure.in bfd/corefile.c bfd/cpu-h8300.c bfd/cpu-ia64-opc.c bfd/cpu-m10300.c bfd/cpu-mips.c bfd/cpu-msp430.c bfd/cpu-ns32k.c bfd/dep-in.sed bfd/doc/ChangeLog bfd/doc/Makefile.am bfd/doc/Makefile.in bfd/doc/bfdint.texi bfd/doc/chew.c bfd/ecoff.c bfd/ecofflink.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.c bfd/elf32-am33lin.c bfd/elf32-arm.h bfd/elf32-avr.c bfd/elf32-cris.c bfd/elf32-d10v.c bfd/elf32-dlx.c bfd/elf32-fr30.c bfd/elf32-frv.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-m32r.c bfd/elf32-m68hc11.c bfd/elf32-m68hc1x.c bfd/elf32-m68k.c bfd/elf32-mcore.c bfd/elf32-mips.c bfd/elf32-msp430.c bfd/elf32-openrisc.c bfd/elf32-ppc.c bfd/elf32-ppc.h bfd/elf32-s390.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-xstormy16.c bfd/elf32-xtensa.c bfd/elf64-alpha.c bfd/elf64-hppa.c 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/elfcode.h bfd/elfcore.h bfd/elflink.c bfd/elflink.h bfd/elfn32-mips.c bfd/elfxx-ia64.c bfd/elfxx-mips.c bfd/elfxx-mips.h bfd/elfxx-target.h bfd/format.c bfd/i386linux.c bfd/ieee.c bfd/init.c bfd/libbfd-in.h bfd/libbfd.c bfd/libbfd.h bfd/libcoff-in.h bfd/libcoff.h bfd/libhppa.h bfd/libpei.h bfd/linker.c bfd/m68klinux.c bfd/opncls.c bfd/pdp11.c bfd/pe-mips.c bfd/peXXigen.c bfd/po/SRC-POTFILES.in bfd/po/bfd.pot bfd/po/es.po bfd/po/fr.po bfd/po/sv.po bfd/po/tr.po bfd/reloc.c bfd/reloc16.c bfd/section.c bfd/simple.c bfd/sparclinux.c bfd/sunos.c bfd/syms.c bfd/targets.c bfd/versados.c bfd/version.h bfd/vms.c bfd/xcofflink.c config-ml.in config.if config.sub config/ChangeLog config/gettext.m4 config/progtest.m4 configure configure.in cpu/ChangeLog cpu/frv.cpu gdb/ChangeLog gdb/MAINTAINERS gdb/Makefile.in gdb/NEWS gdb/PROBLEMS gdb/README gdb/ada-lang.c gdb/alpha-mdebug-tdep.c gdb/alpha-tdep.c gdb/alpha-tdep.h gdb/alphafbsd-tdep.c gdb/annotate.c gdb/arch-utils.c gdb/arch-utils.h gdb/avr-tdep.c gdb/blockframe.c gdb/breakpoint.c gdb/charset.c gdb/cli-out.c gdb/cli/cli-decode.c gdb/cli/cli-interp.c gdb/cli/cli-script.c gdb/cli/cli-setshow.c gdb/coff-solib.h gdb/command.h gdb/complaints.c gdb/config/alpha/nm-fbsd.h gdb/config/djgpp/fnchange.lst gdb/config/frv/tm-frv.h gdb/config/i386/nm-i386sol2.h gdb/config/i386/nm-linux.h gdb/config/i386/nm-nto.h gdb/config/i386/nm-x86-64linux.h gdb/config/i386/nto.mh gdb/config/i386/x86-64linux.mh gdb/config/i386/x86-64linux.mt gdb/config/m32r/m32r.mt gdb/config/m68k/tm-delta68.h gdb/config/mips/tm-irix6.h gdb/config/nm-linux.h gdb/config/pa/tm-hppa.h gdb/config/pa/tm-hppa64.h gdb/config/pa/tm-hppah.h gdb/config/powerpc/ppc64-linux.mh gdb/config/sparc/tm-sp64.h gdb/config/sparc/tm-sparc.h gdb/configure gdb/configure.host gdb/configure.in gdb/configure.tgt gdb/cp-support.c gdb/cp-valprint.c gdb/d10v-tdep.c gdb/defs.h gdb/disasm.c gdb/doc/ChangeLog gdb/doc/Makefile.in gdb/doc/agentexpr.texi gdb/doc/gdb.texinfo gdb/doc/gdbint.texinfo gdb/doc/stabs.texinfo gdb/dsrec.c gdb/dummy-frame.c gdb/dummy-frame.h gdb/dwarf2-frame.c gdb/dwarf2-frame.h gdb/dwarf2expr.c gdb/dwarf2loc.c gdb/dwarf2loc.h gdb/dwarf2read.c gdb/dwarfread.c gdb/elfread.c gdb/eval.c gdb/event-top.c gdb/expprint.c gdb/findvar.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-tdep.c gdb/gdbarch.c gdb/gdbarch.h gdb/gdbarch.sh gdb/gdbserver/ChangeLog gdb/gdbserver/Makefile.in gdb/gdbserver/config.in gdb/gdbserver/configure gdb/gdbserver/configure.in gdb/gdbserver/configure.srv gdb/gdbserver/gdbreplay.c gdb/gdbserver/linux-arm-low.c gdb/gdbserver/linux-low.c gdb/gdbserver/linux-sh-low.c gdb/gdbserver/mem-break.c gdb/gdbserver/server.h gdb/gdbserver/utils.c gdb/gdbtypes.c gdb/gdbtypes.h gdb/gnu-v3-abi.c gdb/h8300-tdep.c gdb/hppa-hpux-tdep.c gdb/hppa-tdep.c gdb/hppa-tdep.h gdb/hpread.c gdb/i386-linux-nat.c gdb/i386-nat.c gdb/i386-tdep.c gdb/i386-tdep.h gdb/i386bsd-nat.c gdb/i386fbsd-nat.c gdb/i386obsd-nat.c gdb/i387-tdep.c gdb/ia64-linux-nat.c gdb/ia64-tdep.c gdb/infcall.c gdb/infcmd.c gdb/inferior.h gdb/infptrace.c gdb/interps.c gdb/interps.h gdb/language.c gdb/language.h gdb/lin-lwp.c gdb/linespec.c gdb/linux-nat.c gdb/linux-nat.h gdb/linux-proc.c gdb/m32r-rom.c gdb/m32r-stub.c gdb/m32r-tdep.c gdb/m68hc11-tdep.c gdb/m68k-tdep.c gdb/m68k-tdep.h gdb/m68klinux-nat.c gdb/m68klinux-tdep.c gdb/mcore-tdep.c gdb/mi/ChangeLog gdb/mi/mi-cmd-env.c gdb/mi/mi-cmds.c gdb/mi/mi-cmds.h gdb/mi/mi-interp.c gdb/mi/mi-main.c gdb/mi/mi-out.c gdb/mi/mi-parse.c gdb/minsyms.c gdb/mips-linux-nat.c gdb/mips-linux-tdep.c gdb/mips-tdep.c gdb/mn10300-tdep.c gdb/monitor.h gdb/ns32k-tdep.c gdb/nto-procfs.c gdb/ocd.c gdb/p-typeprint.c gdb/p-valprint.c gdb/parse.c gdb/ppc-linux-tdep.c gdb/printcmd.c gdb/regcache.c gdb/reggroups.c gdb/reggroups.h gdb/remote-mips.c gdb/remote-sim.c gdb/remote-vx.c gdb/remote.c gdb/rs6000-nat.c gdb/rs6000-tdep.c gdb/s390-tdep.c gdb/sh-tdep.c gdb/sh-tdep.h gdb/sol-thread.c gdb/solib-svr4.c gdb/solib.h gdb/somread.c gdb/source.c gdb/sparc-linux-nat.c gdb/sparc-nat.c gdb/sparc-tdep.c gdb/sparc64nbsd-nat.c gdb/sparcnbsd-nat.c gdb/sparcnbsd-tdep.c gdb/stack.c gdb/std-regs.c gdb/symfile.c gdb/symtab.c gdb/symtab.h gdb/testsuite/ChangeLog gdb/testsuite/configure gdb/testsuite/configure.in gdb/testsuite/gdb.arch/i386-prologue.c gdb/testsuite/gdb.arch/i386-prologue.exp gdb/testsuite/gdb.asm/asm-source.exp gdb/testsuite/gdb.asm/m32r.inc gdb/testsuite/gdb.asm/powerpc.inc gdb/testsuite/gdb.base/annota1.exp gdb/testsuite/gdb.base/annota3.exp gdb/testsuite/gdb.base/attach.exp gdb/testsuite/gdb.base/bang.exp gdb/testsuite/gdb.base/completion.exp gdb/testsuite/gdb.base/complex.c gdb/testsuite/gdb.base/complex.exp gdb/testsuite/gdb.base/constvars.exp gdb/testsuite/gdb.base/detach.exp gdb/testsuite/gdb.base/fileio.exp gdb/testsuite/gdb.base/float.exp gdb/testsuite/gdb.base/gcore.exp gdb/testsuite/gdb.base/gdb1250.c gdb/testsuite/gdb.base/gdb1250.exp gdb/testsuite/gdb.base/langs.exp gdb/testsuite/gdb.base/relocate.c gdb/testsuite/gdb.base/return2.exp gdb/testsuite/gdb.base/selftest.exp gdb/testsuite/gdb.base/store.c gdb/testsuite/gdb.base/store.exp gdb/testsuite/gdb.base/volatile.exp gdb/testsuite/gdb.c++/inherit.exp gdb/testsuite/gdb.c++/maint.exp gdb/testsuite/gdb.c++/templates.exp gdb/testsuite/gdb.disasm/h8300s.exp gdb/testsuite/gdb.disasm/h8300s.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.java/jmisc1.exp gdb/testsuite/gdb.mi/ChangeLog gdb/testsuite/gdb.mi/mi-basics.exp gdb/testsuite/gdb.mi/mi-var-display.exp gdb/testsuite/gdb.mi/mi1-var-display.exp gdb/testsuite/gdb.mi/mi2-var-display.exp gdb/testsuite/gdb.mi/pthreads.c gdb/testsuite/gdb.objc/basicclass.exp gdb/testsuite/gdb.threads/gcore-thread.exp gdb/testsuite/gdb.threads/print-threads.exp gdb/testsuite/gdb.threads/pthreads.c 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.trace/save-trace.exp gdb/thread.c gdb/top.c gdb/trad-frame.c gdb/trad-frame.h gdb/tui/ChangeLog gdb/tui/tui-interp.c gdb/tui/tui-out.c gdb/tui/tui.c gdb/ui-out.c gdb/ui-out.h gdb/user-regs.c gdb/user-regs.h gdb/utils.c gdb/valprint.c gdb/value.h gdb/values.c gdb/vax-tdep.c gdb/version.in gdb/win32-nat.c gdb/x86-64-linux-nat.c gdb/x86-64-linux-tdep.c gdb/x86-64-tdep.c gdb/x86-64-tdep.h gdb/xcoffread.c include/ChangeLog include/bfdlink.h include/coff/ChangeLog include/coff/ecoff.h include/coff/i860.h include/coff/pe.h include/coff/ti.h include/coff/xcoff.h include/demangle.h include/dis-asm.h include/elf/ChangeLog include/elf/dwarf2.h include/elf/mips.h include/elf/mmix.h include/elf/mn10300.h include/elf/msp430.h include/elf/ppc.h include/elf/reloc-macros.h include/elf/s390.h include/elf/v850.h include/nlm/ChangeLog include/nlm/internal.h include/opcode/ChangeLog include/opcode/alpha.h include/opcode/arc.h include/opcode/cgen.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/h8300.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/mips.h include/opcode/mn10300.h include/opcode/or32.h include/opcode/pj.h include/opcode/ppc.h include/opcode/s390.h include/opcode/sparc.h include/opcode/tic80.h include/opcode/v850.h include/xtensa-config.h libiberty/ChangeLog libiberty/cp-demangle.c libiberty/pex-win32.c libiberty/testsuite/demangle-expected mkinstalldirs mmalloc/ChangeLog mmalloc/Makefile.in opcodes/ChangeLog opcodes/Makefile.am opcodes/Makefile.in opcodes/arm-dis.c opcodes/cgen-asm.c opcodes/cgen-asm.in opcodes/cgen-dis.c opcodes/cgen-dis.in opcodes/cgen-ibld.in opcodes/cgen-opc.c opcodes/configure opcodes/configure.in opcodes/dep-in.sed opcodes/fr30-asm.c opcodes/fr30-dis.c opcodes/fr30-ibld.c opcodes/frv-asm.c opcodes/frv-dis.c opcodes/frv-ibld.c opcodes/i386-dis.c opcodes/i860-dis.c opcodes/ip2k-asm.c opcodes/ip2k-dis.c opcodes/ip2k-ibld.c opcodes/iq2000-asm.c opcodes/iq2000-dis.c opcodes/iq2000-ibld.c opcodes/m10300-dis.c opcodes/m10300-opc.c opcodes/m32r-asm.c opcodes/m32r-dis.c opcodes/m32r-ibld.c opcodes/mips-dis.c opcodes/openrisc-asm.c opcodes/openrisc-dis.c opcodes/openrisc-ibld.c opcodes/po/POTFILES.in opcodes/po/es.po opcodes/po/fr.po opcodes/po/nl.po opcodes/po/opcodes.pot opcodes/po/ro.po opcodes/po/sv.po opcodes/po/tr.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/xstormy16-asm.c opcodes/xstormy16-dis.c opcodes/xstormy16-ibld.c sim/ChangeLog sim/MAINTAINERS sim/common/ChangeLog sim/common/nrun.c sim/common/sim-reg.c sim/configure sim/configure.in sim/h8300/ChangeLog sim/h8300/compile.c sim/h8300/sim-main.h sim/m68hc11/ChangeLog sim/m68hc11/dv-m68hc11.c sim/m68hc11/dv-m68hc11sio.c sim/m68hc11/dv-m68hc11spi.c sim/m68hc11/dv-m68hc11tim.c sim/m68hc11/interp.c sim/m68hc11/interrupts.c sim/m68hc11/m68hc11_sim.c sim/m68hc11/sim-main.h sim/sh/ChangeLog sim/sh/gencode.c sim/sh/interp.c sim/testsuite/ChangeLog sim/testsuite/sim/h8300/ChangeLog sim/testsuite/sim/h8300/cmpw.s sim/testsuite/sim/h8300/mova.s sim/testsuite/sim/h8300/shll.s sim/testsuite/sim/h8300/shlr.s sim/testsuite/sim/sh/ChangeLog sim/testsuite/sim/sh/add.s sim/testsuite/sim/sh/allinsn.exp sim/testsuite/sim/sh/fabs.s sim/testsuite/sim/sh/fadd.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/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/frchg.s sim/testsuite/sim/sh/fschg.s sim/testsuite/sim/sh/fsqrt.s sim/testsuite/sim/sh/fsub.s sim/testsuite/sim/sh/ftrc.s sim/testsuite/sim/sh/macl.s sim/testsuite/sim/sh/macw.s sim/testsuite/sim/sh/padd.s sim/testsuite/sim/sh/paddc.s sim/testsuite/sim/sh/pand.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/pshai.s sim/testsuite/sim/sh/pshar.s sim/testsuite/sim/sh/pshli.s sim/testsuite/sim/sh/pshlr.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 src-release symlink-tree Delete: gdb/builtin-regs.c gdb/builtin-regs.h gdb/config/m32r/tm-m32r.h gdb/testsuite/config.hin
-rw-r--r--ChangeLog131
-rw-r--r--MAINTAINERS2
-rw-r--r--Makefile.def71
-rw-r--r--Makefile.in4389
-rw-r--r--Makefile.tpl231
-rw-r--r--bfd/ChangeLog1178
-rw-r--r--bfd/Makefile.am22
-rw-r--r--bfd/Makefile.in21
-rw-r--r--bfd/aout-ns32k.c2
-rw-r--r--bfd/aoutx.h28
-rw-r--r--bfd/archive.c404
-rw-r--r--bfd/archive64.c44
-rw-r--r--bfd/archures.c131
-rw-r--r--bfd/bfd-in.h347
-rw-r--r--bfd/bfd-in2.h1170
-rw-r--r--bfd/bfd.c229
-rw-r--r--bfd/bfdio.c52
-rw-r--r--bfd/bfdwin.c28
-rw-r--r--bfd/bout.c12
-rw-r--r--bfd/cache.c38
-rw-r--r--bfd/coff-a29k.c7
-rw-r--r--bfd/coff-alpha.c46
-rw-r--r--bfd/coff-arm.c32
-rw-r--r--bfd/coff-h8300.c171
-rw-r--r--bfd/coff-i386.c12
-rw-r--r--bfd/coff-i860.c47
-rw-r--r--bfd/coff-i960.c14
-rw-r--r--bfd/coff-m68k.c10
-rw-r--r--bfd/coff-m88k.c4
-rw-r--r--bfd/coff-mcore.c6
-rw-r--r--bfd/coff-mips.c40
-rw-r--r--bfd/coff-or32.c6
-rw-r--r--bfd/coff-ppc.c22
-rw-r--r--bfd/coff-rs6000.c4
-rw-r--r--bfd/coff-sh.c12
-rw-r--r--bfd/coff-tic80.c5
-rw-r--r--bfd/coff64-rs6000.c4
-rw-r--r--bfd/coffcode.h13
-rw-r--r--bfd/cofflink.c54
-rw-r--r--bfd/config.bfd26
-rwxr-xr-xbfd/configure31
-rw-r--r--bfd/configure.host1
-rw-r--r--bfd/configure.in3
-rw-r--r--bfd/corefile.c51
-rw-r--r--bfd/cpu-h8300.c47
-rw-r--r--bfd/cpu-ia64-opc.c18
-rw-r--r--bfd/cpu-m10300.c18
-rw-r--r--bfd/cpu-mips.c2
-rw-r--r--bfd/cpu-msp430.c40
-rw-r--r--bfd/cpu-ns32k.c18
-rw-r--r--bfd/dep-in.sed1
-rw-r--r--bfd/doc/ChangeLog10
-rw-r--r--bfd/doc/Makefile.am2
-rw-r--r--bfd/doc/Makefile.in2
-rw-r--r--bfd/doc/bfdint.texi30
-rw-r--r--bfd/doc/chew.c7
-rw-r--r--bfd/ecoff.c14
-rw-r--r--bfd/ecofflink.c22
-rw-r--r--bfd/elf-bfd.h769
-rw-r--r--bfd/elf-eh-frame.c139
-rw-r--r--bfd/elf-hppa.h255
-rw-r--r--bfd/elf-m10200.c14
-rw-r--r--bfd/elf-m10300.c2102
-rw-r--r--bfd/elf-strtab.c102
-rw-r--r--bfd/elf.c1349
-rw-r--r--bfd/elf32-am33lin.c35
-rw-r--r--bfd/elf32-arm.h120
-rw-r--r--bfd/elf32-avr.c6
-rw-r--r--bfd/elf32-cris.c115
-rw-r--r--bfd/elf32-d10v.c9
-rw-r--r--bfd/elf32-dlx.c8
-rw-r--r--bfd/elf32-fr30.c11
-rw-r--r--bfd/elf32-frv.c12
-rw-r--r--bfd/elf32-h8300.c224
-rw-r--r--bfd/elf32-hppa.c537
-rw-r--r--bfd/elf32-hppa.h19
-rw-r--r--bfd/elf32-i370.c95
-rw-r--r--bfd/elf32-i386.c396
-rw-r--r--bfd/elf32-i860.c130
-rw-r--r--bfd/elf32-i960.c6
-rw-r--r--bfd/elf32-ip2k.c35
-rw-r--r--bfd/elf32-iq2000.c52
-rw-r--r--bfd/elf32-m32r.c39
-rw-r--r--bfd/elf32-m68hc11.c24
-rw-r--r--bfd/elf32-m68hc1x.c13
-rw-r--r--bfd/elf32-m68k.c44
-rw-r--r--bfd/elf32-mcore.c23
-rw-r--r--bfd/elf32-mips.c125
-rw-r--r--bfd/elf32-msp430.c72
-rw-r--r--bfd/elf32-openrisc.c10
-rw-r--r--bfd/elf32-ppc.c1832
-rw-r--r--bfd/elf32-ppc.h6
-rw-r--r--bfd/elf32-s390.c157
-rw-r--r--bfd/elf32-sh.c475
-rw-r--r--bfd/elf32-sh64-com.c33
-rw-r--r--bfd/elf32-sh64.c147
-rw-r--r--bfd/elf32-sh64.h19
-rw-r--r--bfd/elf32-sparc.c59
-rw-r--r--bfd/elf32-v850.c39
-rw-r--r--bfd/elf32-vax.c53
-rw-r--r--bfd/elf32-xstormy16.c14
-rw-r--r--bfd/elf32-xtensa.c345
-rw-r--r--bfd/elf64-alpha.c126
-rw-r--r--bfd/elf64-hppa.c74
-rw-r--r--bfd/elf64-mips.c64
-rw-r--r--bfd/elf64-mmix.c12
-rw-r--r--bfd/elf64-ppc.c976
-rw-r--r--bfd/elf64-ppc.h4
-rw-r--r--bfd/elf64-s390.c152
-rw-r--r--bfd/elf64-sh64.c327
-rw-r--r--bfd/elf64-sparc.c46
-rw-r--r--bfd/elf64-x86-64.c290
-rw-r--r--bfd/elfcode.h298
-rw-r--r--bfd/elfcore.h39
-rw-r--r--bfd/elflink.c538
-rw-r--r--bfd/elflink.h1061
-rw-r--r--bfd/elfn32-mips.c66
-rw-r--r--bfd/elfxx-ia64.c475
-rw-r--r--bfd/elfxx-mips.c316
-rw-r--r--bfd/elfxx-mips.h5
-rw-r--r--bfd/elfxx-target.h68
-rw-r--r--bfd/format.c40
-rw-r--r--bfd/i386linux.c2
-rw-r--r--bfd/ieee.c2
-rw-r--r--bfd/init.c4
-rw-r--r--bfd/libbfd-in.h364
-rw-r--r--bfd/libbfd.c391
-rw-r--r--bfd/libbfd.h440
-rw-r--r--bfd/libcoff-in.h6
-rw-r--r--bfd/libcoff.h6
-rw-r--r--bfd/libhppa.h121
-rw-r--r--bfd/libpei.h4
-rw-r--r--bfd/linker.c525
-rw-r--r--bfd/m68klinux.c2
-rw-r--r--bfd/opncls.c261
-rw-r--r--bfd/pdp11.c22
-rw-r--r--bfd/pe-mips.c18
-rw-r--r--bfd/peXXigen.c2
-rw-r--r--bfd/po/SRC-POTFILES.in73
-rw-r--r--bfd/po/bfd.pot524
-rw-r--r--bfd/po/es.po1548
-rw-r--r--bfd/po/fr.po1542
-rw-r--r--bfd/po/sv.po1546
-rw-r--r--bfd/po/tr.po1546
-rw-r--r--bfd/reloc.c320
-rw-r--r--bfd/reloc16.c12
-rw-r--r--bfd/section.c175
-rw-r--r--bfd/simple.c163
-rw-r--r--bfd/sparclinux.c2
-rw-r--r--bfd/sunos.c8
-rw-r--r--bfd/syms.c150
-rw-r--r--bfd/targets.c341
-rw-r--r--bfd/versados.c6
-rw-r--r--bfd/version.h2
-rw-r--r--bfd/vms.c10
-rw-r--r--bfd/xcofflink.c6
-rw-r--r--config-ml.in36
-rw-r--r--config.if51
-rwxr-xr-xconfig.sub4
-rw-r--r--config/ChangeLog31
-rw-r--r--config/gettext.m466
-rw-r--r--config/progtest.m491
-rwxr-xr-xconfigure348
-rw-r--r--configure.in180
-rw-r--r--cpu/ChangeLog10
-rw-r--r--cpu/frv.cpu18
-rw-r--r--gdb/ChangeLog1151
-rw-r--r--gdb/MAINTAINERS7
-rw-r--r--gdb/Makefile.in71
-rw-r--r--gdb/NEWS14
-rw-r--r--gdb/ada-lang.c2
-rw-r--r--gdb/alpha-mdebug-tdep.c12
-rw-r--r--gdb/alpha-tdep.c41
-rw-r--r--gdb/alpha-tdep.h5
-rw-r--r--gdb/alphafbsd-tdep.c45
-rw-r--r--gdb/amd64fbsd-nat.c296
-rw-r--r--gdb/arch-utils.c16
-rw-r--r--gdb/arch-utils.h3
-rw-r--r--gdb/avr-tdep.c13
-rw-r--r--gdb/blockframe.c32
-rw-r--r--gdb/breakpoint.c171
-rw-r--r--gdb/builtin-regs.c86
-rw-r--r--gdb/cli/cli-decode.c20
-rw-r--r--gdb/cli/cli-script.c7
-rw-r--r--gdb/cli/cli-setshow.c2
-rw-r--r--gdb/coff-solib.h4
-rw-r--r--gdb/command.h10
-rw-r--r--gdb/complaints.c32
-rw-r--r--gdb/config/alpha/nm-fbsd.h2
-rw-r--r--gdb/config/frv/tm-frv.h14
-rw-r--r--gdb/config/i386/nm-i386sol2.h1
-rw-r--r--gdb/config/i386/nm-linux.h9
-rw-r--r--gdb/config/i386/nm-nto.h6
-rw-r--r--gdb/config/i386/nm-x86-64linux.h5
-rw-r--r--gdb/config/i386/nto.mh7
-rw-r--r--gdb/config/m32r/tm-m32r.h231
-rw-r--r--gdb/config/m68k/tm-delta68.h4
-rw-r--r--gdb/config/mips/tm-irix6.h4
-rw-r--r--gdb/config/nm-linux.h4
-rw-r--r--gdb/config/pa/tm-hppa64.h518
-rw-r--r--gdb/config/pa/tm-hppah.h6
-rw-r--r--gdb/config/sparc/tm-sp64.h2
-rw-r--r--gdb/config/sparc/tm-sparc.h8
-rwxr-xr-xgdb/configure2
-rw-r--r--gdb/configure.host3
-rw-r--r--gdb/configure.in2
-rw-r--r--gdb/configure.tgt2
-rw-r--r--gdb/cp-valprint.c4
-rw-r--r--gdb/d10v-tdep.c10
-rw-r--r--gdb/defs.h22
-rw-r--r--gdb/disasm.c1
-rw-r--r--gdb/doc/ChangeLog42
-rw-r--r--gdb/doc/Makefile.in12
-rw-r--r--gdb/doc/gdb.texinfo165
-rw-r--r--gdb/doc/gdbint.texinfo23
-rw-r--r--gdb/dsrec.c15
-rw-r--r--gdb/dummy-frame.c3
-rw-r--r--gdb/dummy-frame.h2
-rw-r--r--gdb/dwarf2-frame.c3
-rw-r--r--gdb/dwarf2-frame.h3
-rw-r--r--gdb/dwarf2read.c30
-rw-r--r--gdb/dwarfread.c2
-rw-r--r--gdb/elfread.c5
-rw-r--r--gdb/eval.c2
-rw-r--r--gdb/event-top.c2
-rw-r--r--gdb/expprint.c6
-rw-r--r--gdb/findvar.c6
-rw-r--r--gdb/frame-base.c58
-rw-r--r--gdb/frame-base.h6
-rw-r--r--gdb/frame-unwind.c46
-rw-r--r--gdb/frame-unwind.h6
-rw-r--r--gdb/frame.c103
-rw-r--r--gdb/frame.h10
-rw-r--r--gdb/frv-tdep.c107
-rw-r--r--gdb/gdbarch.c1912
-rw-r--r--gdb/gdbarch.h892
-rwxr-xr-xgdb/gdbarch.sh352
-rw-r--r--gdb/gdbserver/ChangeLog13
-rw-r--r--gdb/gdbserver/Makefile.in8
-rw-r--r--gdb/gdbserver/configure.srv5
-rw-r--r--gdb/gdbserver/mem-break.c2
-rw-r--r--gdb/gdbtypes.h46
-rw-r--r--gdb/gnu-v3-abi.c2
-rw-r--r--gdb/h8300-tdep.c55
-rw-r--r--gdb/hppa-hpux-tdep.c86
-rw-r--r--gdb/hppa-tdep.c221
-rw-r--r--gdb/hppa-tdep.h (renamed from gdb/builtin-regs.h)31
-rw-r--r--gdb/i386-linux-nat.c8
-rw-r--r--gdb/i386-nat.c2
-rw-r--r--gdb/i386-tdep.c141
-rw-r--r--gdb/i386-tdep.h13
-rw-r--r--gdb/i386bsd-nat.c21
-rw-r--r--gdb/i386fbsd-nat.c15
-rw-r--r--gdb/i386obsd-nat.c7
-rw-r--r--gdb/i387-tdep.c28
-rw-r--r--gdb/ia64-linux-nat.c3
-rw-r--r--gdb/ia64-tdep.c4
-rw-r--r--gdb/infcall.c72
-rw-r--r--gdb/infcmd.c17
-rw-r--r--gdb/inferior.h1
-rw-r--r--gdb/infptrace.c2
-rw-r--r--gdb/interps.c2
-rw-r--r--gdb/interps.h2
-rw-r--r--gdb/language.c201
-rw-r--r--gdb/language.h8
-rw-r--r--gdb/lin-lwp.c21
-rw-r--r--gdb/linespec.c27
-rw-r--r--gdb/linux-nat.c319
-rw-r--r--gdb/linux-nat.h5
-rw-r--r--gdb/linux-proc.c2
-rw-r--r--gdb/m68hc11-tdep.c10
-rw-r--r--gdb/m68k-tdep.c9
-rw-r--r--gdb/mcore-tdep.c4
-rw-r--r--gdb/mi/ChangeLog37
-rw-r--r--gdb/mi/mi-cmd-env.c22
-rw-r--r--gdb/mi/mi-cmds.c264
-rw-r--r--gdb/mi/mi-cmds.h30
-rw-r--r--gdb/mi/mi-interp.c21
-rw-r--r--gdb/mi/mi-main.c29
-rw-r--r--gdb/mi/mi-parse.c2
-rw-r--r--gdb/mips-linux-tdep.c2
-rw-r--r--gdb/mips-tdep.c24
-rw-r--r--gdb/mn10300-tdep.c17
-rw-r--r--gdb/monitor.h8
-rw-r--r--gdb/ns32k-tdep.c4
-rw-r--r--gdb/nto-procfs.c1389
-rw-r--r--gdb/ocd.c2
-rw-r--r--gdb/p-typeprint.c4
-rw-r--r--gdb/p-valprint.c4
-rw-r--r--gdb/parse.c3
-rw-r--r--gdb/ppc-linux-tdep.c34
-rw-r--r--gdb/printcmd.c4
-rw-r--r--gdb/regcache.c50
-rw-r--r--gdb/reggroups.c116
-rw-r--r--gdb/reggroups.h7
-rw-r--r--gdb/remote-mips.c2
-rw-r--r--gdb/remote-sim.c4
-rw-r--r--gdb/remote.c18
-rw-r--r--gdb/rs6000-tdep.c10
-rw-r--r--gdb/sh-tdep.c756
-rw-r--r--gdb/sh-tdep.h3
-rw-r--r--gdb/sol-thread.c13
-rw-r--r--gdb/solib-svr4.c2
-rw-r--r--gdb/solib.h4
-rw-r--r--gdb/source.c4
-rw-r--r--gdb/sparc-tdep.c21
-rw-r--r--gdb/stack.c8
-rw-r--r--gdb/std-regs.c12
-rw-r--r--gdb/symfile.c4
-rw-r--r--gdb/symtab.c9
-rw-r--r--gdb/symtab.h97
-rw-r--r--gdb/testsuite/ChangeLog167
-rw-r--r--gdb/testsuite/config.hin4
-rwxr-xr-xgdb/testsuite/configure189
-rw-r--r--gdb/testsuite/configure.in1
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue.c37
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue.exp70
-rw-r--r--gdb/testsuite/gdb.base/annota3.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach.exp14
-rw-r--r--gdb/testsuite/gdb.base/bang.exp41
-rw-r--r--gdb/testsuite/gdb.base/completion.exp50
-rw-r--r--gdb/testsuite/gdb.base/complex.c49
-rw-r--r--gdb/testsuite/gdb.base/complex.exp63
-rw-r--r--gdb/testsuite/gdb.base/constvars.exp13
-rw-r--r--gdb/testsuite/gdb.base/detach.exp4
-rw-r--r--gdb/testsuite/gdb.base/float.exp10
-rw-r--r--gdb/testsuite/gdb.base/gcore.exp4
-rw-r--r--gdb/testsuite/gdb.base/gdb1250.c57
-rw-r--r--gdb/testsuite/gdb.base/gdb1250.exp80
-rw-r--r--gdb/testsuite/gdb.base/relocate.c4
-rw-r--r--gdb/testsuite/gdb.base/return2.exp2
-rw-r--r--gdb/testsuite/gdb.base/selftest.exp12
-rw-r--r--gdb/testsuite/gdb.base/volatile.exp9
-rw-r--r--gdb/testsuite/gdb.disasm/h8300s.exp128
-rw-r--r--gdb/testsuite/gdb.disasm/h8300s.s4
-rw-r--r--gdb/testsuite/gdb.disasm/t01_mov.exp2088
-rw-r--r--gdb/testsuite/gdb.disasm/t01_mov.s1107
-rw-r--r--gdb/testsuite/gdb.disasm/t02_mova.exp486
-rw-r--r--gdb/testsuite/gdb.disasm/t02_mova.s238
-rw-r--r--gdb/testsuite/gdb.disasm/t03_add.exp1876
-rw-r--r--gdb/testsuite/gdb.disasm/t03_add.s978
-rw-r--r--gdb/testsuite/gdb.disasm/t04_sub.exp1874
-rw-r--r--gdb/testsuite/gdb.disasm/t04_sub.s977
-rw-r--r--gdb/testsuite/gdb.disasm/t05_cmp.exp1770
-rw-r--r--gdb/testsuite/gdb.disasm/t05_cmp.s921
-rw-r--r--gdb/testsuite/gdb.disasm/t06_ari2.exp282
-rw-r--r--gdb/testsuite/gdb.disasm/t06_ari2.s188
-rw-r--r--gdb/testsuite/gdb.disasm/t07_ari3.exp364
-rw-r--r--gdb/testsuite/gdb.disasm/t07_ari3.s173
-rw-r--r--gdb/testsuite/gdb.disasm/t08_or.exp1866
-rw-r--r--gdb/testsuite/gdb.disasm/t08_or.s972
-rw-r--r--gdb/testsuite/gdb.disasm/t09_xor.exp1866
-rw-r--r--gdb/testsuite/gdb.disasm/t09_xor.s972
-rw-r--r--gdb/testsuite/gdb.disasm/t10_and.exp1866
-rw-r--r--gdb/testsuite/gdb.disasm/t10_and.s972
-rw-r--r--gdb/testsuite/gdb.disasm/t11_logs.exp2258
-rw-r--r--gdb/testsuite/gdb.disasm/t11_logs.s1177
-rw-r--r--gdb/testsuite/gdb.disasm/t12_bit.exp330
-rw-r--r--gdb/testsuite/gdb.disasm/t12_bit.s176
-rw-r--r--gdb/testsuite/gdb.disasm/t13_otr.exp306
-rw-r--r--gdb/testsuite/gdb.disasm/t13_otr.s159
-rw-r--r--gdb/testsuite/gdb.java/jmisc1.exp28
-rw-r--r--gdb/testsuite/gdb.mi/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.mi/mi-basics.exp24
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi1-var-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-var-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/pthreads.c23
-rw-r--r--gdb/testsuite/gdb.threads/gcore-thread.exp3
-rw-r--r--gdb/testsuite/gdb.threads/pthreads.c23
-rw-r--r--gdb/testsuite/gdb.threads/tls-main.c9
-rw-r--r--gdb/testsuite/gdb.threads/tls-shared.c6
-rw-r--r--gdb/testsuite/gdb.threads/tls-shared.exp115
-rw-r--r--gdb/testsuite/gdb.threads/tls.c221
-rw-r--r--gdb/testsuite/gdb.threads/tls.exp291
-rw-r--r--gdb/testsuite/gdb.trace/save-trace.exp3
-rw-r--r--gdb/top.c282
-rw-r--r--gdb/trad-frame.c2
-rw-r--r--gdb/tui/ChangeLog2
-rw-r--r--gdb/ui-out.h3
-rw-r--r--gdb/user-regs.c205
-rw-r--r--gdb/user-regs.h71
-rw-r--r--gdb/utils.c17
-rw-r--r--gdb/valprint.c22
-rw-r--r--gdb/vax-tdep.c8
-rw-r--r--gdb/version.in2
-rw-r--r--gdb/win32-nat.c2
-rw-r--r--gdb/x86-64-linux-nat.c7
-rw-r--r--gdb/x86-64-tdep.c41
-rw-r--r--gdb/x86-64-tdep.h19
-rw-r--r--include/ChangeLog39
-rw-r--r--include/bfdlink.h121
-rw-r--r--include/coff/ChangeLog88
-rw-r--r--include/coff/ecoff.h61
-rw-r--r--include/coff/i860.h3
-rw-r--r--include/coff/pe.h52
-rw-r--r--include/coff/ti.h36
-rw-r--r--include/coff/xcoff.h4
-rw-r--r--include/demangle.h8
-rw-r--r--include/dis-asm.h186
-rw-r--r--include/elf/ChangeLog57
-rw-r--r--include/elf/dwarf2.h15
-rw-r--r--include/elf/mips.h14
-rw-r--r--include/elf/mmix.h8
-rw-r--r--include/elf/mn10300.h17
-rw-r--r--include/elf/msp430.h7
-rw-r--r--include/elf/ppc.h6
-rw-r--r--include/elf/reloc-macros.h23
-rw-r--r--include/elf/s390.h5
-rw-r--r--include/elf/v850.h11
-rw-r--r--include/nlm/ChangeLog4
-rw-r--r--include/nlm/internal.h4
-rw-r--r--include/opcode/ChangeLog72
-rw-r--r--include/opcode/alpha.h7
-rw-r--r--include/opcode/arc.h52
-rw-r--r--include/opcode/cgen.h177
-rw-r--r--include/opcode/d10v.h5
-rw-r--r--include/opcode/d30v.h4
-rw-r--r--include/opcode/h8300.h38
-rw-r--r--include/opcode/i370.h8
-rw-r--r--include/opcode/i386.h24
-rw-r--r--include/opcode/i860.h6
-rw-r--r--include/opcode/mips.h2
-rw-r--r--include/opcode/mn10300.h8
-rw-r--r--include/opcode/or32.h130
-rw-r--r--include/opcode/pj.h4
-rw-r--r--include/opcode/ppc.h57
-rw-r--r--include/opcode/s390.h3
-rw-r--r--include/opcode/sparc.h23
-rw-r--r--include/opcode/tic80.h25
-rw-r--r--include/opcode/v850.h8
-rw-r--r--include/xtensa-config.h81
-rw-r--r--libiberty/ChangeLog21
-rw-r--r--libiberty/cp-demangle.c4
-rw-r--r--libiberty/pex-win32.c19
-rw-r--r--libiberty/testsuite/demangle-expected262
-rwxr-xr-xmkinstalldirs113
-rw-r--r--mmalloc/ChangeLog5
-rw-r--r--mmalloc/Makefile.in8
-rw-r--r--opcodes/ChangeLog282
-rw-r--r--opcodes/Makefile.am10
-rw-r--r--opcodes/Makefile.in10
-rw-r--r--opcodes/arm-dis.c56
-rw-r--r--opcodes/cgen-asm.c90
-rw-r--r--opcodes/cgen-asm.in29
-rw-r--r--opcodes/cgen-dis.c58
-rw-r--r--opcodes/cgen-dis.in104
-rw-r--r--opcodes/cgen-ibld.in136
-rw-r--r--opcodes/cgen-opc.c129
-rwxr-xr-xopcodes/configure2
-rw-r--r--opcodes/configure.in2
-rw-r--r--opcodes/dep-in.sed1
-rw-r--r--opcodes/fr30-asm.c29
-rw-r--r--opcodes/fr30-dis.c104
-rw-r--r--opcodes/fr30-ibld.c136
-rw-r--r--opcodes/frv-asm.c29
-rw-r--r--opcodes/frv-dis.c104
-rw-r--r--opcodes/frv-ibld.c136
-rw-r--r--opcodes/i386-dis.c110
-rw-r--r--opcodes/i860-dis.c17
-rw-r--r--opcodes/ip2k-asm.c29
-rw-r--r--opcodes/ip2k-dis.c104
-rw-r--r--opcodes/ip2k-ibld.c136
-rw-r--r--opcodes/iq2000-asm.c29
-rw-r--r--opcodes/iq2000-dis.c104
-rw-r--r--opcodes/iq2000-ibld.c136
-rw-r--r--opcodes/m10300-dis.c83
-rw-r--r--opcodes/m10300-opc.c247
-rw-r--r--opcodes/m32r-asm.c29
-rw-r--r--opcodes/m32r-dis.c104
-rw-r--r--opcodes/m32r-ibld.c136
-rw-r--r--opcodes/mips-dis.c8
-rw-r--r--opcodes/openrisc-asm.c29
-rw-r--r--opcodes/openrisc-dis.c104
-rw-r--r--opcodes/openrisc-ibld.c136
-rw-r--r--opcodes/po/POTFILES.in14
-rw-r--r--opcodes/po/es.po531
-rw-r--r--opcodes/po/fr.po551
-rw-r--r--opcodes/po/nl.po809
-rw-r--r--opcodes/po/opcodes.pot84
-rw-r--r--opcodes/po/ro.po542
-rw-r--r--opcodes/po/sv.po550
-rw-r--r--opcodes/po/tr.po532
-rw-r--r--opcodes/ppc-dis.c5
-rw-r--r--opcodes/ppc-opc.c987
-rw-r--r--opcodes/s390-dis.c4
-rw-r--r--opcodes/s390-mkopc.c5
-rw-r--r--opcodes/s390-opc.c47
-rw-r--r--opcodes/s390-opc.txt168
-rw-r--r--opcodes/xstormy16-asm.c29
-rw-r--r--opcodes/xstormy16-dis.c104
-rw-r--r--opcodes/xstormy16-ibld.c136
-rw-r--r--sim/ChangeLog19
-rw-r--r--sim/MAINTAINERS12
-rw-r--r--sim/common/ChangeLog5
-rw-r--r--sim/common/nrun.c6
-rw-r--r--sim/common/sim-reg.c4
-rwxr-xr-xsim/configure5
-rw-r--r--sim/configure.in5
-rw-r--r--sim/h8300/ChangeLog27
-rw-r--r--sim/h8300/compile.c163
-rw-r--r--sim/h8300/sim-main.h6
-rw-r--r--sim/m68hc11/ChangeLog54
-rw-r--r--sim/m68hc11/dv-m68hc11.c20
-rw-r--r--sim/m68hc11/dv-m68hc11sio.c5
-rw-r--r--sim/m68hc11/dv-m68hc11spi.c8
-rw-r--r--sim/m68hc11/dv-m68hc11tim.c190
-rw-r--r--sim/m68hc11/interp.c108
-rw-r--r--sim/m68hc11/interrupts.c63
-rw-r--r--sim/m68hc11/m68hc11_sim.c28
-rw-r--r--sim/m68hc11/sim-main.h32
-rw-r--r--sim/sh/ChangeLog58
-rw-r--r--sim/sh/gencode.c135
-rw-r--r--sim/sh/interp.c52
-rw-r--r--sim/testsuite/ChangeLog4
-rw-r--r--sim/testsuite/sim/h8300/ChangeLog7
-rw-r--r--sim/testsuite/sim/h8300/cmpw.s18
-rw-r--r--sim/testsuite/sim/h8300/mova.s629
-rw-r--r--sim/testsuite/sim/h8300/shll.s67
-rw-r--r--sim/testsuite/sim/h8300/shlr.s67
-rw-r--r--sim/testsuite/sim/sh/ChangeLog33
-rw-r--r--sim/testsuite/sim/sh/add.s86
-rw-r--r--sim/testsuite/sim/sh/allinsn.exp49
-rw-r--r--sim/testsuite/sim/sh/fabs.s115
-rw-r--r--sim/testsuite/sim/sh/fadd.s75
-rw-r--r--sim/testsuite/sim/sh/fcmpeq.s119
-rw-r--r--sim/testsuite/sim/sh/fcmpgt.s119
-rw-r--r--sim/testsuite/sim/sh/fcnvds.s56
-rw-r--r--sim/testsuite/sim/sh/fcnvsd.s40
-rw-r--r--sim/testsuite/sim/sh/fdiv.s91
-rw-r--r--sim/testsuite/sim/sh/fldi0.s37
-rw-r--r--sim/testsuite/sim/sh/fldi1.s38
-rw-r--r--sim/testsuite/sim/sh/flds.s43
-rw-r--r--sim/testsuite/sim/sh/float.s149
-rw-r--r--sim/testsuite/sim/sh/fmac.s98
-rw-r--r--sim/testsuite/sim/sh/fmov.s322
-rw-r--r--sim/testsuite/sim/sh/fmul.s116
-rw-r--r--sim/testsuite/sim/sh/fneg.s112
-rw-r--r--sim/testsuite/sim/sh/frchg.s30
-rw-r--r--sim/testsuite/sim/sh/fschg.s29
-rw-r--r--sim/testsuite/sim/sh/fsqrt.s120
-rw-r--r--sim/testsuite/sim/sh/fsub.s136
-rw-r--r--sim/testsuite/sim/sh/ftrc.s156
-rw-r--r--sim/testsuite/sim/sh/macl.s54
-rw-r--r--sim/testsuite/sim/sh/macw.s56
-rw-r--r--sim/testsuite/sim/sh/padd.s54
-rw-r--r--sim/testsuite/sim/sh/paddc.s39
-rw-r--r--sim/testsuite/sim/sh/pand.s48
-rw-r--r--sim/testsuite/sim/sh/pdec.s110
-rw-r--r--sim/testsuite/sim/sh/pdmsb.s230
-rw-r--r--sim/testsuite/sim/sh/pinc.s110
-rw-r--r--sim/testsuite/sim/sh/pmuls.s33
-rw-r--r--sim/testsuite/sim/sh/pshai.s200
-rw-r--r--sim/testsuite/sim/sh/pshar.s265
-rw-r--r--sim/testsuite/sim/sh/pshli.s119
-rw-r--r--sim/testsuite/sim/sh/pshlr.s152
-rw-r--r--sim/testsuite/sim/sh/shll.s91
-rw-r--r--sim/testsuite/sim/sh/shll16.s46
-rw-r--r--sim/testsuite/sim/sh/shll2.s51
-rw-r--r--sim/testsuite/sim/sh/shll8.s42
-rw-r--r--sim/testsuite/sim/sh/shlr.s42
-rw-r--r--sim/testsuite/sim/sh/shlr16.s20
-rw-r--r--sim/testsuite/sim/sh/shlr2.s48
-rw-r--r--sim/testsuite/sim/sh/shlr8.s24
-rw-r--r--sim/testsuite/sim/sh/swap.s59
-rw-r--r--sim/testsuite/sim/sh/testutils.inc588
-rw-r--r--src-release8
-rwxr-xr-xsymlink-tree25
568 files changed, 66696 insertions, 25087 deletions
diff --git a/ChangeLog b/ChangeLog
index b2845ae..a949d4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,137 @@
-2003-06-24 Keith Seitz <kseitz@sources.redhat.com>
+2003-08-20 Geoffrey Keating <geoffk@apple.com>
+
+ PR 8180
+ * configure.in: When testing with_libs and with_headers, treat
+ 'no' as unset. Based on a patch by Dan Kegel <dank@kegel.com>.
+ * configure: Regenerate.
+
+ * configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS): Quote properly for
+ make, shell, etc.
+ (baseargs): Likewise.
+ * configure: Regenerate.
+
+2003-08-19 Geoffrey Keating <geoffk@apple.com>
+
+ * configure.in: Disable libgcj for darwin not on powerpc.
+ * configure: Rebuild.
+
+2003-08-15 Michael Chastain <mec@shout.net>
+
+ * src-release (do-proto-toplev): Remove junk files
+ dejagnu/example/calc/config.status,
+ dejagnu/example/calc/config.log.
+
+2003-08-14 Alexandre Duret-Lutz <adl@gnu.org>
+
+ * config-ml.in, symlink-tree: Add license.
+
+2003-08-01 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ Merge from gcc:
+
+ 2003-08-01 Matt Kraai <kraai@alumni.cmu.edu>
+ * Makefile.tpl (check, check-c++): Express dependencies using
+ dependencies rather than commands.
+ * Makefile.in: Regenerate.
+
+ 2003-07-31 Geoffrey Keating <geoffk@apple.com>
+ * Makefile.tpl (libsubdir): Use gcc instead of gcc-lib.
+ * Makefile.in: Update.
+
+2003-08-01 Andrew Cagney <cagney@redhat.com>
+
+ * configure.in (noconfigdirs): Do not add GDB when m32r-*-*.
+ * configure: Ditto.
+
+2003-07-30 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * configure.in: Enable libgcj for darwin.
+ * configure: Rebuild.
+
+2003-07-29 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.
+
+2003-07-27 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * Makefile.tpl: Use 'mkinstalldirs' rather than 'mkdir' when
+ creating target and build subdirs to build all parent dirs as needed.
+ * Makefile.in: Rebuild.
+ * configure.in: Don't build dirs explicitly here.
+ * configure: Rebuild.
+
+2003-07-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.tpl (all-make): Depend on intl.
+ * Makefile.in: Rebuilt.
+
+2003-07-16 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * config.if: Remove unused libc_interface determination.
+
+2003-07-14 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * Makefile.in: Regenerate, correctly this time.
+
+2003-07-13 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * Makefile.tpl: Set INSTALL and friends using autoconf. Remove
+ unused INSTALL_PROGRAM_ARGS.
+ * configure.in: Use AC_PROG_INSTALL.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+
+2003-07-10 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure: Rebuilt.
+ 2001-09-26 Alexandre Oliva <aoliva@redhat.com>
+ * configure.in (noconfigdirs) [am33_2.0-*-linux*]: Don't build
+ newlib nor libgloss.
+ Wed May 9 10:07:19 2001 Alexandre Oliva <aoliva@redhat.com>
+ * configure.in (am33_2.0-*-linux*): Added.
+
+2003-07-09 Bob Wilson <bob.wilson@acm.org>
+
+ * configure.in: Add ${libgcj} to noconfigdirs for xtensa-*-* targets.
+ * configure: Regenerate.
+
+2003-07-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config-ml.in: Replace PWD with PWD_COMMAND.
+ * Makefile.tpl: Likewise.
+ * Makefile.in: Regenerated.
+
+2003-06-27 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * configure.in: Clean up config-lang.in handling. Delete
+ useless assignment to "subdirs".
+ * configure: Regenerate.
+
+2003-06-26 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * configure.in: Rename 'target_libs' to 'target_libraries'.
+ Remove useless reference to 'target_libs'.
+ * configure: Regenerate.
+
+2003-06-23 Keith Seitz <kseitz@sources.redhat.com>
* Makefile.tpl: Add maybe-configure-itcl to configure-gdb.
* Makefile.in: Regenerate.
+2003-06-23 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * Makefile.def: Introduce flags_to_pass.
+ * Makefile.tpl: Generate BASE_FLAGS_TO_PASS using it.
+ * Makefile.in: Regenerate.
+
+2003-06-23 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure.in (noconfigdirs) <cris-*-*>: Disable target-newlib
+ and target-libgloss.
+ <d30v-*-*, fr30-*-*, i960-*-*, m32r-*-*>: Disable gdb.
+ <h8300*-*-*>: Disable libf2c and ${libgcj}.
+ * configure: Regenerate.
+
2003-06-17 Benjamin Kosnik <bkoz@redhat.com>
* configure.in: Update testsuite_flags to new location.
diff --git a/MAINTAINERS b/MAINTAINERS
index 718d374..eda6845 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4,7 +4,7 @@ Please do not make ChangeLog entries.
COPYING, COPYING.LIB, README
http://gnu.org.
-Makefile.in; configure; configure.in
+Makefile.in; configure; configure.in; src-release
Please notify the following of any committed patches.
binutils@sources.redhat.com
gdb-patches@sources.redhat.com
diff --git a/Makefile.def b/Makefile.def
index 6244441..1fd09ab 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -136,3 +136,74 @@ recursive_targets = { make_target= mostlyclean; };
recursive_targets = { make_target= clean; };
recursive_targets = { make_target= distclean; };
recursive_targets = { make_target= maintainer-clean; };
+
+// Flags which need to be passed down.
+
+// Directories etc.
+flags_to_pass = { flag= DESTDIR ; };
+flags_to_pass = { flag= RPATH_ENVVAR ; };
+flags_to_pass = { flag= TARGET_SUBDIR ; };
+flags_to_pass = { flag= bindir ; };
+flags_to_pass = { flag= datadir ; };
+flags_to_pass = { flag= exec_prefix ; };
+flags_to_pass = { flag= includedir ; };
+flags_to_pass = { flag= infodir ; };
+flags_to_pass = { flag= libdir ; };
+flags_to_pass = { flag= libexecdir ; };
+flags_to_pass = { flag= lispdir ; };
+flags_to_pass = { flag= libstdcxx_incdir ; };
+flags_to_pass = { flag= libsubdir ; };
+flags_to_pass = { flag= localstatedir ; };
+flags_to_pass = { flag= mandir ; };
+flags_to_pass = { flag= oldincludedir ; };
+flags_to_pass = { flag= prefix ; };
+flags_to_pass = { flag= sbindir ; };
+flags_to_pass = { flag= sharedstatedir ; };
+flags_to_pass = { flag= sysconfdir ; };
+flags_to_pass = { flag= tooldir ; };
+flags_to_pass = { flag= build_tooldir ; };
+flags_to_pass = { flag= gxx_include_dir ; };
+flags_to_pass = { flag= gcc_version ; };
+flags_to_pass = { flag= gcc_version_trigger ; };
+flags_to_pass = { flag= target_alias ; };
+
+// Build tools
+flags_to_pass = { flag= BISON ; };
+flags_to_pass = { flag= CC_FOR_BUILD ; };
+flags_to_pass = { flag= CXX_FOR_BUILD ; };
+flags_to_pass = { flag= EXPECT ; };
+flags_to_pass = { flag= INSTALL ; };
+flags_to_pass = { flag= INSTALL_DATA ; };
+flags_to_pass = { flag= INSTALL_PROGRAM ; };
+flags_to_pass = { flag= INSTALL_SCRIPT ; };
+flags_to_pass = { flag= LEX ; };
+flags_to_pass = { flag= M4 ; };
+flags_to_pass = { flag= MAKE ; };
+flags_to_pass = { flag= RUNTEST ; };
+flags_to_pass = { flag= RUNTESTFLAGS ; };
+flags_to_pass = { flag= SHELL ; };
+flags_to_pass = { flag= YACC ; };
+
+// Host tools
+flags_to_pass = { flag= AR_FLAGS ; };
+flags_to_pass = { flag= CFLAGS ; };
+flags_to_pass = { flag= CXXFLAGS ; };
+flags_to_pass = { flag= LDFLAGS ; };
+flags_to_pass = { flag= LIBCFLAGS ; };
+flags_to_pass = { flag= LIBCXXFLAGS ; };
+
+// Target tools
+flags_to_pass = { flag= AR_FOR_TARGET ; };
+flags_to_pass = { flag= AS_FOR_TARGET ; };
+flags_to_pass = { flag= CC_FOR_TARGET ; };
+flags_to_pass = { flag= CFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= CXX_FOR_TARGET ; };
+flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
+flags_to_pass = { flag= GCJ_FOR_TARGET ; };
+flags_to_pass = { flag= LD_FOR_TARGET ; };
+flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
+flags_to_pass = { flag= NM_FOR_TARGET ; };
+flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
+flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
diff --git a/Makefile.in b/Makefile.in
index f68581e..6bce12a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -61,14 +61,10 @@ man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
-# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
-# cygwin host.
-INSTALL_PROGRAM_ARGS =
-
-INSTALL = $(SHELL) $$s/install-sh -c
-INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
-INSTALL_SCRIPT = $(INSTALL)
-INSTALL_DATA = $(INSTALL) -m 644
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_DATA = @INSTALL_DATA@
# -------------------------------------------------
# Miscellaneous non-standard autoconf-set variables
@@ -89,7 +85,7 @@ tooldir = @tooldir@
build_tooldir = @build_tooldir@
# Directory in which the compiler finds executables, libraries, etc.
-libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
+libsubdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)
GDB_NLM_DEPS =
# This is the name of the environment variable used for the path to
@@ -139,7 +135,9 @@ SHELL = @config_shell@
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
-PWD = $${PWDCMD-pwd}
+# Don't use PWD since it is a common shell environment variable and we
+# don't want to corrupt it.
+PWD_COMMAND = $${PWDCMD-pwd}
# compilers to use to create programs which must be run in the build
# environment.
@@ -386,47 +384,10 @@ all: all.normal
###
# Flags to pass down to all sub-makes.
-# Please keep these in alphabetical order.
BASE_FLAGS_TO_PASS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
- "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
- "BISON=$(BISON)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
- "CFLAGS=$(CFLAGS)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
- "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
- "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
"DESTDIR=$(DESTDIR)" \
- "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LEX=$(LEX)" \
- "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
- "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
- "M4=$(M4)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
- "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
- "SHELL=$(SHELL)" \
- "EXPECT=$(EXPECT)" \
- "RUNTEST=$(RUNTEST)" \
- "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
- "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
- "YACC=$(YACC)" \
"bindir=$(bindir)" \
"datadir=$(datadir)" \
"exec_prefix=$(exec_prefix)" \
@@ -449,7 +410,43 @@ BASE_FLAGS_TO_PASS = \
"gxx_include_dir=$(gxx_include_dir)" \
"gcc_version=$(gcc_version)" \
"gcc_version_trigger=$(gcc_version_trigger)" \
- "target_alias=$(target_alias)"
+ "target_alias=$(target_alias)" \
+ "BISON=$(BISON)" \
+ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+ "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
+ "EXPECT=$(EXPECT)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_DATA=$(INSTALL_DATA)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
+ "LEX=$(LEX)" \
+ "M4=$(M4)" \
+ "MAKE=$(MAKE)" \
+ "RUNTEST=$(RUNTEST)" \
+ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+ "SHELL=$(SHELL)" \
+ "YACC=$(YACC)" \
+ "AR_FLAGS=$(AR_FLAGS)" \
+ "CFLAGS=$(CFLAGS)" \
+ "CXXFLAGS=$(CXXFLAGS)" \
+ "LDFLAGS=$(LDFLAGS)" \
+ "LIBCFLAGS=$(LIBCFLAGS)" \
+ "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
+ "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
+ "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
+ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
+ "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
+ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
+ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
+ "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
+ "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
+ "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+ "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
+ "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
+ "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
+ "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
+ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)"
# For any flags above that may contain shell code that varies from one
# target library to another. When doing recursive invocations of the
@@ -812,8 +809,8 @@ maybe-info-gcc:
info-gcc: \
configure-gcc
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -835,8 +832,8 @@ maybe-info-ash:
info-ash: \
configure-ash
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -857,8 +854,8 @@ maybe-info-autoconf:
info-autoconf: \
configure-autoconf
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -879,8 +876,8 @@ maybe-info-automake:
info-automake: \
configure-automake
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -901,8 +898,8 @@ maybe-info-bash:
info-bash: \
configure-bash
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -923,8 +920,8 @@ maybe-info-bfd:
info-bfd: \
configure-bfd
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -945,8 +942,8 @@ maybe-info-opcodes:
info-opcodes: \
configure-opcodes
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -967,8 +964,8 @@ maybe-info-binutils:
info-binutils: \
configure-binutils
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -989,8 +986,8 @@ maybe-info-bison:
info-bison: \
configure-bison
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1011,8 +1008,8 @@ maybe-info-byacc:
info-byacc: \
configure-byacc
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1033,8 +1030,8 @@ maybe-info-bzip2:
info-bzip2: \
configure-bzip2
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1055,8 +1052,8 @@ maybe-info-dejagnu:
info-dejagnu: \
configure-dejagnu
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1077,8 +1074,8 @@ maybe-info-diff:
info-diff: \
configure-diff
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1099,8 +1096,8 @@ maybe-info-dosutils:
info-dosutils: \
configure-dosutils
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1121,8 +1118,8 @@ maybe-info-etc:
info-etc: \
configure-etc
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1143,8 +1140,8 @@ maybe-info-fastjar:
info-fastjar: \
configure-fastjar
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1165,8 +1162,8 @@ maybe-info-fileutils:
info-fileutils: \
configure-fileutils
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1187,8 +1184,8 @@ maybe-info-findutils:
info-findutils: \
configure-findutils
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1209,8 +1206,8 @@ maybe-info-find:
info-find: \
configure-find
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1231,8 +1228,8 @@ maybe-info-flex:
info-flex: \
configure-flex
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1253,8 +1250,8 @@ maybe-info-gas:
info-gas: \
configure-gas
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1275,8 +1272,8 @@ maybe-info-gawk:
info-gawk: \
configure-gawk
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1297,8 +1294,8 @@ maybe-info-gettext:
info-gettext: \
configure-gettext
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1319,8 +1316,8 @@ maybe-info-gnuserv:
info-gnuserv: \
configure-gnuserv
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1341,8 +1338,8 @@ maybe-info-gprof:
info-gprof: \
configure-gprof
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1363,8 +1360,8 @@ maybe-info-gzip:
info-gzip: \
configure-gzip
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1385,8 +1382,8 @@ maybe-info-hello:
info-hello: \
configure-hello
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1407,8 +1404,8 @@ maybe-info-indent:
info-indent: \
configure-indent
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1429,8 +1426,8 @@ maybe-info-intl:
info-intl: \
configure-intl
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1451,8 +1448,8 @@ maybe-info-tcl:
info-tcl: \
configure-tcl
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1473,8 +1470,8 @@ maybe-info-itcl:
info-itcl: \
configure-itcl
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1495,8 +1492,8 @@ maybe-info-ld:
info-ld: \
configure-ld
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1517,8 +1514,8 @@ maybe-info-libgui:
info-libgui: \
configure-libgui
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1539,8 +1536,8 @@ maybe-info-libiberty:
info-libiberty: \
configure-libiberty
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1561,8 +1558,8 @@ maybe-info-libtool:
info-libtool: \
configure-libtool
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1583,8 +1580,8 @@ maybe-info-m4:
info-m4: \
configure-m4
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1605,8 +1602,8 @@ maybe-info-make:
info-make: \
configure-make
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1627,8 +1624,8 @@ maybe-info-mmalloc:
info-mmalloc: \
configure-mmalloc
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1649,8 +1646,8 @@ maybe-info-patch:
info-patch: \
configure-patch
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1671,8 +1668,8 @@ maybe-info-perl:
info-perl: \
configure-perl
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1693,8 +1690,8 @@ maybe-info-prms:
info-prms: \
configure-prms
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1715,8 +1712,8 @@ maybe-info-rcs:
info-rcs: \
configure-rcs
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1737,8 +1734,8 @@ maybe-info-readline:
info-readline: \
configure-readline
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1759,8 +1756,8 @@ maybe-info-release:
info-release: \
configure-release
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1781,8 +1778,8 @@ maybe-info-recode:
info-recode: \
configure-recode
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1803,8 +1800,8 @@ maybe-info-sed:
info-sed: \
configure-sed
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1825,8 +1822,8 @@ maybe-info-send-pr:
info-send-pr: \
configure-send-pr
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1847,8 +1844,8 @@ maybe-info-shellutils:
info-shellutils: \
configure-shellutils
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1869,8 +1866,8 @@ maybe-info-sid:
info-sid: \
configure-sid
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1891,8 +1888,8 @@ maybe-info-sim:
info-sim: \
configure-sim
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1913,8 +1910,8 @@ maybe-info-tar:
info-tar: \
configure-tar
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1935,8 +1932,8 @@ maybe-info-texinfo:
info-texinfo: \
configure-texinfo
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1957,8 +1954,8 @@ maybe-info-textutils:
info-textutils: \
configure-textutils
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -1979,8 +1976,8 @@ maybe-info-time:
info-time: \
configure-time
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2001,8 +1998,8 @@ maybe-info-uudecode:
info-uudecode: \
configure-uudecode
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2023,8 +2020,8 @@ maybe-info-wdiff:
info-wdiff: \
configure-wdiff
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2045,8 +2042,8 @@ maybe-info-zip:
info-zip: \
configure-zip
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2067,8 +2064,8 @@ maybe-info-zlib:
info-zlib: \
configure-zlib
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2089,8 +2086,8 @@ maybe-info-gdb:
info-gdb: \
configure-gdb
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2111,8 +2108,8 @@ maybe-info-expect:
info-expect: \
configure-expect
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2133,8 +2130,8 @@ maybe-info-guile:
info-guile: \
configure-guile
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2155,8 +2152,8 @@ maybe-info-tk:
info-tk: \
configure-tk
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2177,8 +2174,8 @@ maybe-info-tix:
info-tix: \
configure-tix
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2199,8 +2196,8 @@ maybe-info-libtermcap:
info-libtermcap: \
configure-libtermcap
@[ -f ./libtermcap/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2221,8 +2218,8 @@ maybe-info-utils:
info-utils: \
configure-utils
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2246,8 +2243,8 @@ maybe-info-target-libstdc++-v3:
info-target-libstdc++-v3: \
configure-target-libstdc++-v3
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2268,8 +2265,8 @@ maybe-info-target-newlib:
info-target-newlib: \
configure-target-newlib
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2290,8 +2287,8 @@ maybe-info-target-libf2c:
info-target-libf2c: \
configure-target-libf2c
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2312,8 +2309,8 @@ maybe-info-target-libobjc:
info-target-libobjc: \
configure-target-libobjc
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2334,8 +2331,8 @@ maybe-info-target-libtermcap:
info-target-libtermcap: \
configure-target-libtermcap
@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libtermcap" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2356,8 +2353,8 @@ maybe-info-target-winsup:
info-target-winsup: \
configure-target-winsup
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2378,8 +2375,8 @@ maybe-info-target-libgloss:
info-target-libgloss: \
configure-target-libgloss
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2400,8 +2397,8 @@ maybe-info-target-libiberty:
info-target-libiberty: \
configure-target-libiberty
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2422,8 +2419,8 @@ maybe-info-target-gperf:
info-target-gperf: \
configure-target-gperf
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2444,8 +2441,8 @@ maybe-info-target-examples:
info-target-examples: \
configure-target-examples
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2466,8 +2463,8 @@ maybe-info-target-libffi:
info-target-libffi: \
configure-target-libffi
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2488,8 +2485,8 @@ maybe-info-target-libjava:
info-target-libjava: \
configure-target-libjava
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2510,8 +2507,8 @@ maybe-info-target-zlib:
info-target-zlib: \
configure-target-zlib
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2532,8 +2529,8 @@ maybe-info-target-boehm-gc:
info-target-boehm-gc: \
configure-target-boehm-gc
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2554,8 +2551,8 @@ maybe-info-target-qthreads:
info-target-qthreads: \
configure-target-qthreads
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2576,8 +2573,8 @@ maybe-info-target-rda:
info-target-rda: \
configure-target-rda
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing info in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -2688,8 +2685,8 @@ maybe-dvi-gcc:
dvi-gcc: \
configure-gcc
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2711,8 +2708,8 @@ maybe-dvi-ash:
dvi-ash: \
configure-ash
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2733,8 +2730,8 @@ maybe-dvi-autoconf:
dvi-autoconf: \
configure-autoconf
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2755,8 +2752,8 @@ maybe-dvi-automake:
dvi-automake: \
configure-automake
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2777,8 +2774,8 @@ maybe-dvi-bash:
dvi-bash: \
configure-bash
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2799,8 +2796,8 @@ maybe-dvi-bfd:
dvi-bfd: \
configure-bfd
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2821,8 +2818,8 @@ maybe-dvi-opcodes:
dvi-opcodes: \
configure-opcodes
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2843,8 +2840,8 @@ maybe-dvi-binutils:
dvi-binutils: \
configure-binutils
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2865,8 +2862,8 @@ maybe-dvi-bison:
dvi-bison: \
configure-bison
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2887,8 +2884,8 @@ maybe-dvi-byacc:
dvi-byacc: \
configure-byacc
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2909,8 +2906,8 @@ maybe-dvi-bzip2:
dvi-bzip2: \
configure-bzip2
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2931,8 +2928,8 @@ maybe-dvi-dejagnu:
dvi-dejagnu: \
configure-dejagnu
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2953,8 +2950,8 @@ maybe-dvi-diff:
dvi-diff: \
configure-diff
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2975,8 +2972,8 @@ maybe-dvi-dosutils:
dvi-dosutils: \
configure-dosutils
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -2997,8 +2994,8 @@ maybe-dvi-etc:
dvi-etc: \
configure-etc
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3019,8 +3016,8 @@ maybe-dvi-fastjar:
dvi-fastjar: \
configure-fastjar
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3041,8 +3038,8 @@ maybe-dvi-fileutils:
dvi-fileutils: \
configure-fileutils
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3063,8 +3060,8 @@ maybe-dvi-findutils:
dvi-findutils: \
configure-findutils
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3085,8 +3082,8 @@ maybe-dvi-find:
dvi-find: \
configure-find
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3107,8 +3104,8 @@ maybe-dvi-flex:
dvi-flex: \
configure-flex
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3129,8 +3126,8 @@ maybe-dvi-gas:
dvi-gas: \
configure-gas
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3151,8 +3148,8 @@ maybe-dvi-gawk:
dvi-gawk: \
configure-gawk
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3173,8 +3170,8 @@ maybe-dvi-gettext:
dvi-gettext: \
configure-gettext
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3195,8 +3192,8 @@ maybe-dvi-gnuserv:
dvi-gnuserv: \
configure-gnuserv
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3217,8 +3214,8 @@ maybe-dvi-gprof:
dvi-gprof: \
configure-gprof
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3239,8 +3236,8 @@ maybe-dvi-gzip:
dvi-gzip: \
configure-gzip
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3261,8 +3258,8 @@ maybe-dvi-hello:
dvi-hello: \
configure-hello
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3283,8 +3280,8 @@ maybe-dvi-indent:
dvi-indent: \
configure-indent
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3305,8 +3302,8 @@ maybe-dvi-intl:
dvi-intl: \
configure-intl
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3327,8 +3324,8 @@ maybe-dvi-tcl:
dvi-tcl: \
configure-tcl
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3349,8 +3346,8 @@ maybe-dvi-itcl:
dvi-itcl: \
configure-itcl
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3371,8 +3368,8 @@ maybe-dvi-ld:
dvi-ld: \
configure-ld
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3393,8 +3390,8 @@ maybe-dvi-libgui:
dvi-libgui: \
configure-libgui
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3415,8 +3412,8 @@ maybe-dvi-libiberty:
dvi-libiberty: \
configure-libiberty
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3437,8 +3434,8 @@ maybe-dvi-libtool:
dvi-libtool: \
configure-libtool
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3459,8 +3456,8 @@ maybe-dvi-m4:
dvi-m4: \
configure-m4
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3481,8 +3478,8 @@ maybe-dvi-make:
dvi-make: \
configure-make
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3503,8 +3500,8 @@ maybe-dvi-mmalloc:
dvi-mmalloc: \
configure-mmalloc
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3525,8 +3522,8 @@ maybe-dvi-patch:
dvi-patch: \
configure-patch
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3547,8 +3544,8 @@ maybe-dvi-perl:
dvi-perl: \
configure-perl
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3569,8 +3566,8 @@ maybe-dvi-prms:
dvi-prms: \
configure-prms
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3591,8 +3588,8 @@ maybe-dvi-rcs:
dvi-rcs: \
configure-rcs
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3613,8 +3610,8 @@ maybe-dvi-readline:
dvi-readline: \
configure-readline
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3635,8 +3632,8 @@ maybe-dvi-release:
dvi-release: \
configure-release
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3657,8 +3654,8 @@ maybe-dvi-recode:
dvi-recode: \
configure-recode
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3679,8 +3676,8 @@ maybe-dvi-sed:
dvi-sed: \
configure-sed
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3701,8 +3698,8 @@ maybe-dvi-send-pr:
dvi-send-pr: \
configure-send-pr
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3723,8 +3720,8 @@ maybe-dvi-shellutils:
dvi-shellutils: \
configure-shellutils
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3745,8 +3742,8 @@ maybe-dvi-sid:
dvi-sid: \
configure-sid
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3767,8 +3764,8 @@ maybe-dvi-sim:
dvi-sim: \
configure-sim
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3789,8 +3786,8 @@ maybe-dvi-tar:
dvi-tar: \
configure-tar
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3811,8 +3808,8 @@ maybe-dvi-texinfo:
dvi-texinfo: \
configure-texinfo
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3833,8 +3830,8 @@ maybe-dvi-textutils:
dvi-textutils: \
configure-textutils
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3855,8 +3852,8 @@ maybe-dvi-time:
dvi-time: \
configure-time
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3877,8 +3874,8 @@ maybe-dvi-uudecode:
dvi-uudecode: \
configure-uudecode
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3899,8 +3896,8 @@ maybe-dvi-wdiff:
dvi-wdiff: \
configure-wdiff
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3921,8 +3918,8 @@ maybe-dvi-zip:
dvi-zip: \
configure-zip
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3943,8 +3940,8 @@ maybe-dvi-zlib:
dvi-zlib: \
configure-zlib
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3965,8 +3962,8 @@ maybe-dvi-gdb:
dvi-gdb: \
configure-gdb
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -3987,8 +3984,8 @@ maybe-dvi-expect:
dvi-expect: \
configure-expect
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4009,8 +4006,8 @@ maybe-dvi-guile:
dvi-guile: \
configure-guile
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4031,8 +4028,8 @@ maybe-dvi-tk:
dvi-tk: \
configure-tk
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4053,8 +4050,8 @@ maybe-dvi-tix:
dvi-tix: \
configure-tix
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4075,8 +4072,8 @@ maybe-dvi-libtermcap:
dvi-libtermcap: \
configure-libtermcap
@[ -f ./libtermcap/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4097,8 +4094,8 @@ maybe-dvi-utils:
dvi-utils: \
configure-utils
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4122,8 +4119,8 @@ maybe-dvi-target-libstdc++-v3:
dvi-target-libstdc++-v3: \
configure-target-libstdc++-v3
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4144,8 +4141,8 @@ maybe-dvi-target-newlib:
dvi-target-newlib: \
configure-target-newlib
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4166,8 +4163,8 @@ maybe-dvi-target-libf2c:
dvi-target-libf2c: \
configure-target-libf2c
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4188,8 +4185,8 @@ maybe-dvi-target-libobjc:
dvi-target-libobjc: \
configure-target-libobjc
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4210,8 +4207,8 @@ maybe-dvi-target-libtermcap:
dvi-target-libtermcap: \
configure-target-libtermcap
@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libtermcap" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4232,8 +4229,8 @@ maybe-dvi-target-winsup:
dvi-target-winsup: \
configure-target-winsup
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4254,8 +4251,8 @@ maybe-dvi-target-libgloss:
dvi-target-libgloss: \
configure-target-libgloss
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4276,8 +4273,8 @@ maybe-dvi-target-libiberty:
dvi-target-libiberty: \
configure-target-libiberty
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4298,8 +4295,8 @@ maybe-dvi-target-gperf:
dvi-target-gperf: \
configure-target-gperf
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4320,8 +4317,8 @@ maybe-dvi-target-examples:
dvi-target-examples: \
configure-target-examples
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4342,8 +4339,8 @@ maybe-dvi-target-libffi:
dvi-target-libffi: \
configure-target-libffi
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4364,8 +4361,8 @@ maybe-dvi-target-libjava:
dvi-target-libjava: \
configure-target-libjava
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4386,8 +4383,8 @@ maybe-dvi-target-zlib:
dvi-target-zlib: \
configure-target-zlib
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4408,8 +4405,8 @@ maybe-dvi-target-boehm-gc:
dvi-target-boehm-gc: \
configure-target-boehm-gc
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4430,8 +4427,8 @@ maybe-dvi-target-qthreads:
dvi-target-qthreads: \
configure-target-qthreads
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4452,8 +4449,8 @@ maybe-dvi-target-rda:
dvi-target-rda: \
configure-target-rda
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing dvi in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -4564,8 +4561,8 @@ maybe-TAGS-gcc:
TAGS-gcc: \
configure-gcc
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4587,8 +4584,8 @@ maybe-TAGS-ash:
TAGS-ash: \
configure-ash
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4609,8 +4606,8 @@ maybe-TAGS-autoconf:
TAGS-autoconf: \
configure-autoconf
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4631,8 +4628,8 @@ maybe-TAGS-automake:
TAGS-automake: \
configure-automake
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4653,8 +4650,8 @@ maybe-TAGS-bash:
TAGS-bash: \
configure-bash
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4675,8 +4672,8 @@ maybe-TAGS-bfd:
TAGS-bfd: \
configure-bfd
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4697,8 +4694,8 @@ maybe-TAGS-opcodes:
TAGS-opcodes: \
configure-opcodes
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4719,8 +4716,8 @@ maybe-TAGS-binutils:
TAGS-binutils: \
configure-binutils
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4741,8 +4738,8 @@ maybe-TAGS-bison:
TAGS-bison: \
configure-bison
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4763,8 +4760,8 @@ maybe-TAGS-byacc:
TAGS-byacc: \
configure-byacc
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4785,8 +4782,8 @@ maybe-TAGS-bzip2:
TAGS-bzip2: \
configure-bzip2
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4807,8 +4804,8 @@ maybe-TAGS-dejagnu:
TAGS-dejagnu: \
configure-dejagnu
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4829,8 +4826,8 @@ maybe-TAGS-diff:
TAGS-diff: \
configure-diff
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4851,8 +4848,8 @@ maybe-TAGS-dosutils:
TAGS-dosutils: \
configure-dosutils
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4873,8 +4870,8 @@ maybe-TAGS-etc:
TAGS-etc: \
configure-etc
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4895,8 +4892,8 @@ maybe-TAGS-fastjar:
TAGS-fastjar: \
configure-fastjar
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4917,8 +4914,8 @@ maybe-TAGS-fileutils:
TAGS-fileutils: \
configure-fileutils
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4939,8 +4936,8 @@ maybe-TAGS-findutils:
TAGS-findutils: \
configure-findutils
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4961,8 +4958,8 @@ maybe-TAGS-find:
TAGS-find: \
configure-find
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -4983,8 +4980,8 @@ maybe-TAGS-flex:
TAGS-flex: \
configure-flex
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5005,8 +5002,8 @@ maybe-TAGS-gas:
TAGS-gas: \
configure-gas
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5027,8 +5024,8 @@ maybe-TAGS-gawk:
TAGS-gawk: \
configure-gawk
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5049,8 +5046,8 @@ maybe-TAGS-gettext:
TAGS-gettext: \
configure-gettext
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5071,8 +5068,8 @@ maybe-TAGS-gnuserv:
TAGS-gnuserv: \
configure-gnuserv
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5093,8 +5090,8 @@ maybe-TAGS-gprof:
TAGS-gprof: \
configure-gprof
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5115,8 +5112,8 @@ maybe-TAGS-gzip:
TAGS-gzip: \
configure-gzip
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5137,8 +5134,8 @@ maybe-TAGS-hello:
TAGS-hello: \
configure-hello
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5159,8 +5156,8 @@ maybe-TAGS-indent:
TAGS-indent: \
configure-indent
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5181,8 +5178,8 @@ maybe-TAGS-intl:
TAGS-intl: \
configure-intl
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5203,8 +5200,8 @@ maybe-TAGS-tcl:
TAGS-tcl: \
configure-tcl
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5225,8 +5222,8 @@ maybe-TAGS-itcl:
TAGS-itcl: \
configure-itcl
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5247,8 +5244,8 @@ maybe-TAGS-ld:
TAGS-ld: \
configure-ld
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5269,8 +5266,8 @@ maybe-TAGS-libgui:
TAGS-libgui: \
configure-libgui
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5291,8 +5288,8 @@ maybe-TAGS-libiberty:
TAGS-libiberty: \
configure-libiberty
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5313,8 +5310,8 @@ maybe-TAGS-libtool:
TAGS-libtool: \
configure-libtool
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5335,8 +5332,8 @@ maybe-TAGS-m4:
TAGS-m4: \
configure-m4
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5357,8 +5354,8 @@ maybe-TAGS-make:
TAGS-make: \
configure-make
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5379,8 +5376,8 @@ maybe-TAGS-mmalloc:
TAGS-mmalloc: \
configure-mmalloc
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5401,8 +5398,8 @@ maybe-TAGS-patch:
TAGS-patch: \
configure-patch
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5423,8 +5420,8 @@ maybe-TAGS-perl:
TAGS-perl: \
configure-perl
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5445,8 +5442,8 @@ maybe-TAGS-prms:
TAGS-prms: \
configure-prms
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5467,8 +5464,8 @@ maybe-TAGS-rcs:
TAGS-rcs: \
configure-rcs
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5489,8 +5486,8 @@ maybe-TAGS-readline:
TAGS-readline: \
configure-readline
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5511,8 +5508,8 @@ maybe-TAGS-release:
TAGS-release: \
configure-release
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5533,8 +5530,8 @@ maybe-TAGS-recode:
TAGS-recode: \
configure-recode
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5555,8 +5552,8 @@ maybe-TAGS-sed:
TAGS-sed: \
configure-sed
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5577,8 +5574,8 @@ maybe-TAGS-send-pr:
TAGS-send-pr: \
configure-send-pr
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5599,8 +5596,8 @@ maybe-TAGS-shellutils:
TAGS-shellutils: \
configure-shellutils
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5621,8 +5618,8 @@ maybe-TAGS-sid:
TAGS-sid: \
configure-sid
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5643,8 +5640,8 @@ maybe-TAGS-sim:
TAGS-sim: \
configure-sim
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5665,8 +5662,8 @@ maybe-TAGS-tar:
TAGS-tar: \
configure-tar
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5687,8 +5684,8 @@ maybe-TAGS-texinfo:
TAGS-texinfo: \
configure-texinfo
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5709,8 +5706,8 @@ maybe-TAGS-textutils:
TAGS-textutils: \
configure-textutils
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5731,8 +5728,8 @@ maybe-TAGS-time:
TAGS-time: \
configure-time
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5753,8 +5750,8 @@ maybe-TAGS-uudecode:
TAGS-uudecode: \
configure-uudecode
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5775,8 +5772,8 @@ maybe-TAGS-wdiff:
TAGS-wdiff: \
configure-wdiff
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5797,8 +5794,8 @@ maybe-TAGS-zip:
TAGS-zip: \
configure-zip
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5819,8 +5816,8 @@ maybe-TAGS-zlib:
TAGS-zlib: \
configure-zlib
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5841,8 +5838,8 @@ maybe-TAGS-gdb:
TAGS-gdb: \
configure-gdb
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5863,8 +5860,8 @@ maybe-TAGS-expect:
TAGS-expect: \
configure-expect
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5885,8 +5882,8 @@ maybe-TAGS-guile:
TAGS-guile: \
configure-guile
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5907,8 +5904,8 @@ maybe-TAGS-tk:
TAGS-tk: \
configure-tk
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5929,8 +5926,8 @@ maybe-TAGS-tix:
TAGS-tix: \
configure-tix
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5951,8 +5948,8 @@ maybe-TAGS-libtermcap:
TAGS-libtermcap: \
configure-libtermcap
@[ -f ./libtermcap/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5973,8 +5970,8 @@ maybe-TAGS-utils:
TAGS-utils: \
configure-utils
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -5998,8 +5995,8 @@ maybe-TAGS-target-libstdc++-v3:
TAGS-target-libstdc++-v3: \
configure-target-libstdc++-v3
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6020,8 +6017,8 @@ maybe-TAGS-target-newlib:
TAGS-target-newlib: \
configure-target-newlib
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6042,8 +6039,8 @@ maybe-TAGS-target-libf2c:
TAGS-target-libf2c: \
configure-target-libf2c
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6064,8 +6061,8 @@ maybe-TAGS-target-libobjc:
TAGS-target-libobjc: \
configure-target-libobjc
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6086,8 +6083,8 @@ maybe-TAGS-target-libtermcap:
TAGS-target-libtermcap: \
configure-target-libtermcap
@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libtermcap" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6108,8 +6105,8 @@ maybe-TAGS-target-winsup:
TAGS-target-winsup: \
configure-target-winsup
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6130,8 +6127,8 @@ maybe-TAGS-target-libgloss:
TAGS-target-libgloss: \
configure-target-libgloss
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6152,8 +6149,8 @@ maybe-TAGS-target-libiberty:
TAGS-target-libiberty: \
configure-target-libiberty
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6174,8 +6171,8 @@ maybe-TAGS-target-gperf:
TAGS-target-gperf: \
configure-target-gperf
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6196,8 +6193,8 @@ maybe-TAGS-target-examples:
TAGS-target-examples: \
configure-target-examples
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6218,8 +6215,8 @@ maybe-TAGS-target-libffi:
TAGS-target-libffi: \
configure-target-libffi
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6240,8 +6237,8 @@ maybe-TAGS-target-libjava:
TAGS-target-libjava: \
configure-target-libjava
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6262,8 +6259,8 @@ maybe-TAGS-target-zlib:
TAGS-target-zlib: \
configure-target-zlib
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6284,8 +6281,8 @@ maybe-TAGS-target-boehm-gc:
TAGS-target-boehm-gc: \
configure-target-boehm-gc
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6306,8 +6303,8 @@ maybe-TAGS-target-qthreads:
TAGS-target-qthreads: \
configure-target-qthreads
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6328,8 +6325,8 @@ maybe-TAGS-target-rda:
TAGS-target-rda: \
configure-target-rda
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing TAGS in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -6441,8 +6438,8 @@ install-info-gcc: \
configure-gcc \
info-gcc
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6465,8 +6462,8 @@ install-info-ash: \
configure-ash \
info-ash
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6488,8 +6485,8 @@ install-info-autoconf: \
configure-autoconf \
info-autoconf
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6511,8 +6508,8 @@ install-info-automake: \
configure-automake \
info-automake
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6534,8 +6531,8 @@ install-info-bash: \
configure-bash \
info-bash
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6557,8 +6554,8 @@ install-info-bfd: \
configure-bfd \
info-bfd
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6580,8 +6577,8 @@ install-info-opcodes: \
configure-opcodes \
info-opcodes
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6603,8 +6600,8 @@ install-info-binutils: \
configure-binutils \
info-binutils
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6626,8 +6623,8 @@ install-info-bison: \
configure-bison \
info-bison
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6649,8 +6646,8 @@ install-info-byacc: \
configure-byacc \
info-byacc
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6672,8 +6669,8 @@ install-info-bzip2: \
configure-bzip2 \
info-bzip2
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6695,8 +6692,8 @@ install-info-dejagnu: \
configure-dejagnu \
info-dejagnu
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6718,8 +6715,8 @@ install-info-diff: \
configure-diff \
info-diff
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6741,8 +6738,8 @@ install-info-dosutils: \
configure-dosutils \
info-dosutils
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6764,8 +6761,8 @@ install-info-etc: \
configure-etc \
info-etc
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6787,8 +6784,8 @@ install-info-fastjar: \
configure-fastjar \
info-fastjar
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6810,8 +6807,8 @@ install-info-fileutils: \
configure-fileutils \
info-fileutils
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6833,8 +6830,8 @@ install-info-findutils: \
configure-findutils \
info-findutils
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6856,8 +6853,8 @@ install-info-find: \
configure-find \
info-find
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6879,8 +6876,8 @@ install-info-flex: \
configure-flex \
info-flex
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6902,8 +6899,8 @@ install-info-gas: \
configure-gas \
info-gas
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6925,8 +6922,8 @@ install-info-gawk: \
configure-gawk \
info-gawk
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6948,8 +6945,8 @@ install-info-gettext: \
configure-gettext \
info-gettext
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6971,8 +6968,8 @@ install-info-gnuserv: \
configure-gnuserv \
info-gnuserv
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -6994,8 +6991,8 @@ install-info-gprof: \
configure-gprof \
info-gprof
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7017,8 +7014,8 @@ install-info-gzip: \
configure-gzip \
info-gzip
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7040,8 +7037,8 @@ install-info-hello: \
configure-hello \
info-hello
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7063,8 +7060,8 @@ install-info-indent: \
configure-indent \
info-indent
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7086,8 +7083,8 @@ install-info-intl: \
configure-intl \
info-intl
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7109,8 +7106,8 @@ install-info-tcl: \
configure-tcl \
info-tcl
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7132,8 +7129,8 @@ install-info-itcl: \
configure-itcl \
info-itcl
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7155,8 +7152,8 @@ install-info-ld: \
configure-ld \
info-ld
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7178,8 +7175,8 @@ install-info-libgui: \
configure-libgui \
info-libgui
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7201,8 +7198,8 @@ install-info-libiberty: \
configure-libiberty \
info-libiberty
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7224,8 +7221,8 @@ install-info-libtool: \
configure-libtool \
info-libtool
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7247,8 +7244,8 @@ install-info-m4: \
configure-m4 \
info-m4
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7270,8 +7267,8 @@ install-info-make: \
configure-make \
info-make
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7293,8 +7290,8 @@ install-info-mmalloc: \
configure-mmalloc \
info-mmalloc
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7316,8 +7313,8 @@ install-info-patch: \
configure-patch \
info-patch
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7339,8 +7336,8 @@ install-info-perl: \
configure-perl \
info-perl
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7362,8 +7359,8 @@ install-info-prms: \
configure-prms \
info-prms
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7385,8 +7382,8 @@ install-info-rcs: \
configure-rcs \
info-rcs
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7408,8 +7405,8 @@ install-info-readline: \
configure-readline \
info-readline
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7431,8 +7428,8 @@ install-info-release: \
configure-release \
info-release
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7454,8 +7451,8 @@ install-info-recode: \
configure-recode \
info-recode
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7477,8 +7474,8 @@ install-info-sed: \
configure-sed \
info-sed
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7500,8 +7497,8 @@ install-info-send-pr: \
configure-send-pr \
info-send-pr
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7523,8 +7520,8 @@ install-info-shellutils: \
configure-shellutils \
info-shellutils
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7546,8 +7543,8 @@ install-info-sid: \
configure-sid \
info-sid
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7569,8 +7566,8 @@ install-info-sim: \
configure-sim \
info-sim
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7592,8 +7589,8 @@ install-info-tar: \
configure-tar \
info-tar
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7615,8 +7612,8 @@ install-info-texinfo: \
configure-texinfo \
info-texinfo
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7638,8 +7635,8 @@ install-info-textutils: \
configure-textutils \
info-textutils
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7661,8 +7658,8 @@ install-info-time: \
configure-time \
info-time
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7684,8 +7681,8 @@ install-info-uudecode: \
configure-uudecode \
info-uudecode
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7707,8 +7704,8 @@ install-info-wdiff: \
configure-wdiff \
info-wdiff
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7730,8 +7727,8 @@ install-info-zip: \
configure-zip \
info-zip
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7753,8 +7750,8 @@ install-info-zlib: \
configure-zlib \
info-zlib
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7776,8 +7773,8 @@ install-info-gdb: \
configure-gdb \
info-gdb
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7799,8 +7796,8 @@ install-info-expect: \
configure-expect \
info-expect
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7822,8 +7819,8 @@ install-info-guile: \
configure-guile \
info-guile
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7845,8 +7842,8 @@ install-info-tk: \
configure-tk \
info-tk
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7868,8 +7865,8 @@ install-info-tix: \
configure-tix \
info-tix
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7891,8 +7888,8 @@ install-info-libtermcap: \
configure-libtermcap \
info-libtermcap
@[ -f ./libtermcap/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7914,8 +7911,8 @@ install-info-utils: \
configure-utils \
info-utils
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -7940,8 +7937,8 @@ install-info-target-libstdc++-v3: \
configure-target-libstdc++-v3 \
info-target-libstdc++-v3
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -7963,8 +7960,8 @@ install-info-target-newlib: \
configure-target-newlib \
info-target-newlib
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -7986,8 +7983,8 @@ install-info-target-libf2c: \
configure-target-libf2c \
info-target-libf2c
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8009,8 +8006,8 @@ install-info-target-libobjc: \
configure-target-libobjc \
info-target-libobjc
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8032,8 +8029,8 @@ install-info-target-libtermcap: \
configure-target-libtermcap \
info-target-libtermcap
@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libtermcap" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8055,8 +8052,8 @@ install-info-target-winsup: \
configure-target-winsup \
info-target-winsup
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8078,8 +8075,8 @@ install-info-target-libgloss: \
configure-target-libgloss \
info-target-libgloss
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8101,8 +8098,8 @@ install-info-target-libiberty: \
configure-target-libiberty \
info-target-libiberty
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8124,8 +8121,8 @@ install-info-target-gperf: \
configure-target-gperf \
info-target-gperf
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8147,8 +8144,8 @@ install-info-target-examples: \
configure-target-examples \
info-target-examples
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8170,8 +8167,8 @@ install-info-target-libffi: \
configure-target-libffi \
info-target-libffi
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8193,8 +8190,8 @@ install-info-target-libjava: \
configure-target-libjava \
info-target-libjava
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8216,8 +8213,8 @@ install-info-target-zlib: \
configure-target-zlib \
info-target-zlib
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8239,8 +8236,8 @@ install-info-target-boehm-gc: \
configure-target-boehm-gc \
info-target-boehm-gc
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8262,8 +8259,8 @@ install-info-target-qthreads: \
configure-target-qthreads \
info-target-qthreads
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8285,8 +8282,8 @@ install-info-target-rda: \
configure-target-rda \
info-target-rda
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing install-info in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -8397,8 +8394,8 @@ maybe-installcheck-gcc:
installcheck-gcc: \
configure-gcc
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8420,8 +8417,8 @@ maybe-installcheck-ash:
installcheck-ash: \
configure-ash
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8442,8 +8439,8 @@ maybe-installcheck-autoconf:
installcheck-autoconf: \
configure-autoconf
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8464,8 +8461,8 @@ maybe-installcheck-automake:
installcheck-automake: \
configure-automake
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8486,8 +8483,8 @@ maybe-installcheck-bash:
installcheck-bash: \
configure-bash
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8508,8 +8505,8 @@ maybe-installcheck-bfd:
installcheck-bfd: \
configure-bfd
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8530,8 +8527,8 @@ maybe-installcheck-opcodes:
installcheck-opcodes: \
configure-opcodes
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8552,8 +8549,8 @@ maybe-installcheck-binutils:
installcheck-binutils: \
configure-binutils
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8574,8 +8571,8 @@ maybe-installcheck-bison:
installcheck-bison: \
configure-bison
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8596,8 +8593,8 @@ maybe-installcheck-byacc:
installcheck-byacc: \
configure-byacc
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8618,8 +8615,8 @@ maybe-installcheck-bzip2:
installcheck-bzip2: \
configure-bzip2
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8640,8 +8637,8 @@ maybe-installcheck-dejagnu:
installcheck-dejagnu: \
configure-dejagnu
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8662,8 +8659,8 @@ maybe-installcheck-diff:
installcheck-diff: \
configure-diff
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8684,8 +8681,8 @@ maybe-installcheck-dosutils:
installcheck-dosutils: \
configure-dosutils
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8706,8 +8703,8 @@ maybe-installcheck-etc:
installcheck-etc: \
configure-etc
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8728,8 +8725,8 @@ maybe-installcheck-fastjar:
installcheck-fastjar: \
configure-fastjar
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8750,8 +8747,8 @@ maybe-installcheck-fileutils:
installcheck-fileutils: \
configure-fileutils
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8772,8 +8769,8 @@ maybe-installcheck-findutils:
installcheck-findutils: \
configure-findutils
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8794,8 +8791,8 @@ maybe-installcheck-find:
installcheck-find: \
configure-find
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8816,8 +8813,8 @@ maybe-installcheck-flex:
installcheck-flex: \
configure-flex
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8838,8 +8835,8 @@ maybe-installcheck-gas:
installcheck-gas: \
configure-gas
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8860,8 +8857,8 @@ maybe-installcheck-gawk:
installcheck-gawk: \
configure-gawk
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8882,8 +8879,8 @@ maybe-installcheck-gettext:
installcheck-gettext: \
configure-gettext
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8904,8 +8901,8 @@ maybe-installcheck-gnuserv:
installcheck-gnuserv: \
configure-gnuserv
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8926,8 +8923,8 @@ maybe-installcheck-gprof:
installcheck-gprof: \
configure-gprof
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8948,8 +8945,8 @@ maybe-installcheck-gzip:
installcheck-gzip: \
configure-gzip
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8970,8 +8967,8 @@ maybe-installcheck-hello:
installcheck-hello: \
configure-hello
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -8992,8 +8989,8 @@ maybe-installcheck-indent:
installcheck-indent: \
configure-indent
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9014,8 +9011,8 @@ maybe-installcheck-intl:
installcheck-intl: \
configure-intl
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9036,8 +9033,8 @@ maybe-installcheck-tcl:
installcheck-tcl: \
configure-tcl
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9058,8 +9055,8 @@ maybe-installcheck-itcl:
installcheck-itcl: \
configure-itcl
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9080,8 +9077,8 @@ maybe-installcheck-ld:
installcheck-ld: \
configure-ld
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9102,8 +9099,8 @@ maybe-installcheck-libgui:
installcheck-libgui: \
configure-libgui
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9124,8 +9121,8 @@ maybe-installcheck-libiberty:
installcheck-libiberty: \
configure-libiberty
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9146,8 +9143,8 @@ maybe-installcheck-libtool:
installcheck-libtool: \
configure-libtool
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9168,8 +9165,8 @@ maybe-installcheck-m4:
installcheck-m4: \
configure-m4
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9190,8 +9187,8 @@ maybe-installcheck-make:
installcheck-make: \
configure-make
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9212,8 +9209,8 @@ maybe-installcheck-mmalloc:
installcheck-mmalloc: \
configure-mmalloc
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9234,8 +9231,8 @@ maybe-installcheck-patch:
installcheck-patch: \
configure-patch
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9256,8 +9253,8 @@ maybe-installcheck-perl:
installcheck-perl: \
configure-perl
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9278,8 +9275,8 @@ maybe-installcheck-prms:
installcheck-prms: \
configure-prms
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9300,8 +9297,8 @@ maybe-installcheck-rcs:
installcheck-rcs: \
configure-rcs
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9322,8 +9319,8 @@ maybe-installcheck-readline:
installcheck-readline: \
configure-readline
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9344,8 +9341,8 @@ maybe-installcheck-release:
installcheck-release: \
configure-release
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9366,8 +9363,8 @@ maybe-installcheck-recode:
installcheck-recode: \
configure-recode
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9388,8 +9385,8 @@ maybe-installcheck-sed:
installcheck-sed: \
configure-sed
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9410,8 +9407,8 @@ maybe-installcheck-send-pr:
installcheck-send-pr: \
configure-send-pr
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9432,8 +9429,8 @@ maybe-installcheck-shellutils:
installcheck-shellutils: \
configure-shellutils
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9454,8 +9451,8 @@ maybe-installcheck-sid:
installcheck-sid: \
configure-sid
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9476,8 +9473,8 @@ maybe-installcheck-sim:
installcheck-sim: \
configure-sim
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9498,8 +9495,8 @@ maybe-installcheck-tar:
installcheck-tar: \
configure-tar
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9520,8 +9517,8 @@ maybe-installcheck-texinfo:
installcheck-texinfo: \
configure-texinfo
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9542,8 +9539,8 @@ maybe-installcheck-textutils:
installcheck-textutils: \
configure-textutils
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9564,8 +9561,8 @@ maybe-installcheck-time:
installcheck-time: \
configure-time
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9586,8 +9583,8 @@ maybe-installcheck-uudecode:
installcheck-uudecode: \
configure-uudecode
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9608,8 +9605,8 @@ maybe-installcheck-wdiff:
installcheck-wdiff: \
configure-wdiff
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9630,8 +9627,8 @@ maybe-installcheck-zip:
installcheck-zip: \
configure-zip
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9652,8 +9649,8 @@ maybe-installcheck-zlib:
installcheck-zlib: \
configure-zlib
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9674,8 +9671,8 @@ maybe-installcheck-gdb:
installcheck-gdb: \
configure-gdb
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9696,8 +9693,8 @@ maybe-installcheck-expect:
installcheck-expect: \
configure-expect
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9718,8 +9715,8 @@ maybe-installcheck-guile:
installcheck-guile: \
configure-guile
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9740,8 +9737,8 @@ maybe-installcheck-tk:
installcheck-tk: \
configure-tk
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9762,8 +9759,8 @@ maybe-installcheck-tix:
installcheck-tix: \
configure-tix
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9784,8 +9781,8 @@ maybe-installcheck-libtermcap:
installcheck-libtermcap: \
configure-libtermcap
@[ -f ./libtermcap/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9806,8 +9803,8 @@ maybe-installcheck-utils:
installcheck-utils: \
configure-utils
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -9831,8 +9828,8 @@ maybe-installcheck-target-libstdc++-v3:
installcheck-target-libstdc++-v3: \
configure-target-libstdc++-v3
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9853,8 +9850,8 @@ maybe-installcheck-target-newlib:
installcheck-target-newlib: \
configure-target-newlib
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9875,8 +9872,8 @@ maybe-installcheck-target-libf2c:
installcheck-target-libf2c: \
configure-target-libf2c
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9897,8 +9894,8 @@ maybe-installcheck-target-libobjc:
installcheck-target-libobjc: \
configure-target-libobjc
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9919,8 +9916,8 @@ maybe-installcheck-target-libtermcap:
installcheck-target-libtermcap: \
configure-target-libtermcap
@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libtermcap" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9941,8 +9938,8 @@ maybe-installcheck-target-winsup:
installcheck-target-winsup: \
configure-target-winsup
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9963,8 +9960,8 @@ maybe-installcheck-target-libgloss:
installcheck-target-libgloss: \
configure-target-libgloss
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -9985,8 +9982,8 @@ maybe-installcheck-target-libiberty:
installcheck-target-libiberty: \
configure-target-libiberty
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10007,8 +10004,8 @@ maybe-installcheck-target-gperf:
installcheck-target-gperf: \
configure-target-gperf
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10029,8 +10026,8 @@ maybe-installcheck-target-examples:
installcheck-target-examples: \
configure-target-examples
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10051,8 +10048,8 @@ maybe-installcheck-target-libffi:
installcheck-target-libffi: \
configure-target-libffi
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10073,8 +10070,8 @@ maybe-installcheck-target-libjava:
installcheck-target-libjava: \
configure-target-libjava
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10095,8 +10092,8 @@ maybe-installcheck-target-zlib:
installcheck-target-zlib: \
configure-target-zlib
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10117,8 +10114,8 @@ maybe-installcheck-target-boehm-gc:
installcheck-target-boehm-gc: \
configure-target-boehm-gc
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10139,8 +10136,8 @@ maybe-installcheck-target-qthreads:
installcheck-target-qthreads: \
configure-target-qthreads
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10161,8 +10158,8 @@ maybe-installcheck-target-rda:
installcheck-target-rda: \
configure-target-rda
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing installcheck in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -10272,8 +10269,8 @@ mostlyclean-target: \
maybe-mostlyclean-gcc:
mostlyclean-gcc:
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10294,8 +10291,8 @@ maybe-mostlyclean-ash:
mostlyclean-ash:
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10315,8 +10312,8 @@ maybe-mostlyclean-autoconf:
mostlyclean-autoconf:
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10336,8 +10333,8 @@ maybe-mostlyclean-automake:
mostlyclean-automake:
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10357,8 +10354,8 @@ maybe-mostlyclean-bash:
mostlyclean-bash:
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10378,8 +10375,8 @@ maybe-mostlyclean-bfd:
mostlyclean-bfd:
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10399,8 +10396,8 @@ maybe-mostlyclean-opcodes:
mostlyclean-opcodes:
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10420,8 +10417,8 @@ maybe-mostlyclean-binutils:
mostlyclean-binutils:
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10441,8 +10438,8 @@ maybe-mostlyclean-bison:
mostlyclean-bison:
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10462,8 +10459,8 @@ maybe-mostlyclean-byacc:
mostlyclean-byacc:
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10483,8 +10480,8 @@ maybe-mostlyclean-bzip2:
mostlyclean-bzip2:
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10504,8 +10501,8 @@ maybe-mostlyclean-dejagnu:
mostlyclean-dejagnu:
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10525,8 +10522,8 @@ maybe-mostlyclean-diff:
mostlyclean-diff:
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10546,8 +10543,8 @@ maybe-mostlyclean-dosutils:
mostlyclean-dosutils:
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10567,8 +10564,8 @@ maybe-mostlyclean-etc:
mostlyclean-etc:
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10588,8 +10585,8 @@ maybe-mostlyclean-fastjar:
mostlyclean-fastjar:
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10609,8 +10606,8 @@ maybe-mostlyclean-fileutils:
mostlyclean-fileutils:
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10630,8 +10627,8 @@ maybe-mostlyclean-findutils:
mostlyclean-findutils:
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10651,8 +10648,8 @@ maybe-mostlyclean-find:
mostlyclean-find:
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10672,8 +10669,8 @@ maybe-mostlyclean-flex:
mostlyclean-flex:
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10693,8 +10690,8 @@ maybe-mostlyclean-gas:
mostlyclean-gas:
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10714,8 +10711,8 @@ maybe-mostlyclean-gawk:
mostlyclean-gawk:
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10735,8 +10732,8 @@ maybe-mostlyclean-gettext:
mostlyclean-gettext:
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10756,8 +10753,8 @@ maybe-mostlyclean-gnuserv:
mostlyclean-gnuserv:
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10777,8 +10774,8 @@ maybe-mostlyclean-gprof:
mostlyclean-gprof:
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10798,8 +10795,8 @@ maybe-mostlyclean-gzip:
mostlyclean-gzip:
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10819,8 +10816,8 @@ maybe-mostlyclean-hello:
mostlyclean-hello:
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10840,8 +10837,8 @@ maybe-mostlyclean-indent:
mostlyclean-indent:
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10861,8 +10858,8 @@ maybe-mostlyclean-intl:
mostlyclean-intl:
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10889,8 +10886,8 @@ maybe-mostlyclean-itcl:
mostlyclean-itcl:
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10910,8 +10907,8 @@ maybe-mostlyclean-ld:
mostlyclean-ld:
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10931,8 +10928,8 @@ maybe-mostlyclean-libgui:
mostlyclean-libgui:
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10952,8 +10949,8 @@ maybe-mostlyclean-libiberty:
mostlyclean-libiberty:
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10973,8 +10970,8 @@ maybe-mostlyclean-libtool:
mostlyclean-libtool:
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -10994,8 +10991,8 @@ maybe-mostlyclean-m4:
mostlyclean-m4:
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11015,8 +11012,8 @@ maybe-mostlyclean-make:
mostlyclean-make:
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11036,8 +11033,8 @@ maybe-mostlyclean-mmalloc:
mostlyclean-mmalloc:
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11057,8 +11054,8 @@ maybe-mostlyclean-patch:
mostlyclean-patch:
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11078,8 +11075,8 @@ maybe-mostlyclean-perl:
mostlyclean-perl:
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11099,8 +11096,8 @@ maybe-mostlyclean-prms:
mostlyclean-prms:
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11120,8 +11117,8 @@ maybe-mostlyclean-rcs:
mostlyclean-rcs:
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11141,8 +11138,8 @@ maybe-mostlyclean-readline:
mostlyclean-readline:
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11162,8 +11159,8 @@ maybe-mostlyclean-release:
mostlyclean-release:
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11183,8 +11180,8 @@ maybe-mostlyclean-recode:
mostlyclean-recode:
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11204,8 +11201,8 @@ maybe-mostlyclean-sed:
mostlyclean-sed:
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11225,8 +11222,8 @@ maybe-mostlyclean-send-pr:
mostlyclean-send-pr:
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11246,8 +11243,8 @@ maybe-mostlyclean-shellutils:
mostlyclean-shellutils:
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11267,8 +11264,8 @@ maybe-mostlyclean-sid:
mostlyclean-sid:
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11288,8 +11285,8 @@ maybe-mostlyclean-sim:
mostlyclean-sim:
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11309,8 +11306,8 @@ maybe-mostlyclean-tar:
mostlyclean-tar:
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11330,8 +11327,8 @@ maybe-mostlyclean-texinfo:
mostlyclean-texinfo:
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11351,8 +11348,8 @@ maybe-mostlyclean-textutils:
mostlyclean-textutils:
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11372,8 +11369,8 @@ maybe-mostlyclean-time:
mostlyclean-time:
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11393,8 +11390,8 @@ maybe-mostlyclean-uudecode:
mostlyclean-uudecode:
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11414,8 +11411,8 @@ maybe-mostlyclean-wdiff:
mostlyclean-wdiff:
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11435,8 +11432,8 @@ maybe-mostlyclean-zip:
mostlyclean-zip:
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11456,8 +11453,8 @@ maybe-mostlyclean-zlib:
mostlyclean-zlib:
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11477,8 +11474,8 @@ maybe-mostlyclean-gdb:
mostlyclean-gdb:
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11498,8 +11495,8 @@ maybe-mostlyclean-expect:
mostlyclean-expect:
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11519,8 +11516,8 @@ maybe-mostlyclean-guile:
mostlyclean-guile:
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11540,8 +11537,8 @@ maybe-mostlyclean-tk:
mostlyclean-tk:
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11561,8 +11558,8 @@ maybe-mostlyclean-tix:
mostlyclean-tix:
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11589,8 +11586,8 @@ maybe-mostlyclean-utils:
mostlyclean-utils:
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -11613,8 +11610,8 @@ maybe-mostlyclean-target-libstdc++-v3:
mostlyclean-target-libstdc++-v3:
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11634,8 +11631,8 @@ maybe-mostlyclean-target-newlib:
mostlyclean-target-newlib:
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11655,8 +11652,8 @@ maybe-mostlyclean-target-libf2c:
mostlyclean-target-libf2c:
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11676,8 +11673,8 @@ maybe-mostlyclean-target-libobjc:
mostlyclean-target-libobjc:
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11704,8 +11701,8 @@ maybe-mostlyclean-target-winsup:
mostlyclean-target-winsup:
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11725,8 +11722,8 @@ maybe-mostlyclean-target-libgloss:
mostlyclean-target-libgloss:
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11746,8 +11743,8 @@ maybe-mostlyclean-target-libiberty:
mostlyclean-target-libiberty:
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11767,8 +11764,8 @@ maybe-mostlyclean-target-gperf:
mostlyclean-target-gperf:
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11788,8 +11785,8 @@ maybe-mostlyclean-target-examples:
mostlyclean-target-examples:
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11809,8 +11806,8 @@ maybe-mostlyclean-target-libffi:
mostlyclean-target-libffi:
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11830,8 +11827,8 @@ maybe-mostlyclean-target-libjava:
mostlyclean-target-libjava:
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11851,8 +11848,8 @@ maybe-mostlyclean-target-zlib:
mostlyclean-target-zlib:
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11872,8 +11869,8 @@ maybe-mostlyclean-target-boehm-gc:
mostlyclean-target-boehm-gc:
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11893,8 +11890,8 @@ maybe-mostlyclean-target-qthreads:
mostlyclean-target-qthreads:
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -11914,8 +11911,8 @@ maybe-mostlyclean-target-rda:
mostlyclean-target-rda:
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing mostlyclean in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -12025,8 +12022,8 @@ clean-target: \
maybe-clean-gcc:
clean-gcc:
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12047,8 +12044,8 @@ maybe-clean-ash:
clean-ash:
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12068,8 +12065,8 @@ maybe-clean-autoconf:
clean-autoconf:
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12089,8 +12086,8 @@ maybe-clean-automake:
clean-automake:
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12110,8 +12107,8 @@ maybe-clean-bash:
clean-bash:
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12131,8 +12128,8 @@ maybe-clean-bfd:
clean-bfd:
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12152,8 +12149,8 @@ maybe-clean-opcodes:
clean-opcodes:
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12173,8 +12170,8 @@ maybe-clean-binutils:
clean-binutils:
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12194,8 +12191,8 @@ maybe-clean-bison:
clean-bison:
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12215,8 +12212,8 @@ maybe-clean-byacc:
clean-byacc:
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12236,8 +12233,8 @@ maybe-clean-bzip2:
clean-bzip2:
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12257,8 +12254,8 @@ maybe-clean-dejagnu:
clean-dejagnu:
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12278,8 +12275,8 @@ maybe-clean-diff:
clean-diff:
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12299,8 +12296,8 @@ maybe-clean-dosutils:
clean-dosutils:
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12320,8 +12317,8 @@ maybe-clean-etc:
clean-etc:
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12341,8 +12338,8 @@ maybe-clean-fastjar:
clean-fastjar:
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12362,8 +12359,8 @@ maybe-clean-fileutils:
clean-fileutils:
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12383,8 +12380,8 @@ maybe-clean-findutils:
clean-findutils:
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12404,8 +12401,8 @@ maybe-clean-find:
clean-find:
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12425,8 +12422,8 @@ maybe-clean-flex:
clean-flex:
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12446,8 +12443,8 @@ maybe-clean-gas:
clean-gas:
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12467,8 +12464,8 @@ maybe-clean-gawk:
clean-gawk:
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12488,8 +12485,8 @@ maybe-clean-gettext:
clean-gettext:
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12509,8 +12506,8 @@ maybe-clean-gnuserv:
clean-gnuserv:
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12530,8 +12527,8 @@ maybe-clean-gprof:
clean-gprof:
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12551,8 +12548,8 @@ maybe-clean-gzip:
clean-gzip:
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12572,8 +12569,8 @@ maybe-clean-hello:
clean-hello:
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12593,8 +12590,8 @@ maybe-clean-indent:
clean-indent:
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12614,8 +12611,8 @@ maybe-clean-intl:
clean-intl:
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12635,8 +12632,8 @@ maybe-clean-tcl:
clean-tcl:
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12656,8 +12653,8 @@ maybe-clean-itcl:
clean-itcl:
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12677,8 +12674,8 @@ maybe-clean-ld:
clean-ld:
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12698,8 +12695,8 @@ maybe-clean-libgui:
clean-libgui:
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12719,8 +12716,8 @@ maybe-clean-libiberty:
clean-libiberty:
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12740,8 +12737,8 @@ maybe-clean-libtool:
clean-libtool:
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12761,8 +12758,8 @@ maybe-clean-m4:
clean-m4:
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12782,8 +12779,8 @@ maybe-clean-make:
clean-make:
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12803,8 +12800,8 @@ maybe-clean-mmalloc:
clean-mmalloc:
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12824,8 +12821,8 @@ maybe-clean-patch:
clean-patch:
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12845,8 +12842,8 @@ maybe-clean-perl:
clean-perl:
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12866,8 +12863,8 @@ maybe-clean-prms:
clean-prms:
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12887,8 +12884,8 @@ maybe-clean-rcs:
clean-rcs:
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12908,8 +12905,8 @@ maybe-clean-readline:
clean-readline:
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12929,8 +12926,8 @@ maybe-clean-release:
clean-release:
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12950,8 +12947,8 @@ maybe-clean-recode:
clean-recode:
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12971,8 +12968,8 @@ maybe-clean-sed:
clean-sed:
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -12992,8 +12989,8 @@ maybe-clean-send-pr:
clean-send-pr:
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13013,8 +13010,8 @@ maybe-clean-shellutils:
clean-shellutils:
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13034,8 +13031,8 @@ maybe-clean-sid:
clean-sid:
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13055,8 +13052,8 @@ maybe-clean-sim:
clean-sim:
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13076,8 +13073,8 @@ maybe-clean-tar:
clean-tar:
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13097,8 +13094,8 @@ maybe-clean-texinfo:
clean-texinfo:
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13118,8 +13115,8 @@ maybe-clean-textutils:
clean-textutils:
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13139,8 +13136,8 @@ maybe-clean-time:
clean-time:
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13160,8 +13157,8 @@ maybe-clean-uudecode:
clean-uudecode:
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13181,8 +13178,8 @@ maybe-clean-wdiff:
clean-wdiff:
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13202,8 +13199,8 @@ maybe-clean-zip:
clean-zip:
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13223,8 +13220,8 @@ maybe-clean-zlib:
clean-zlib:
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13244,8 +13241,8 @@ maybe-clean-gdb:
clean-gdb:
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13265,8 +13262,8 @@ maybe-clean-expect:
clean-expect:
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13286,8 +13283,8 @@ maybe-clean-guile:
clean-guile:
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13307,8 +13304,8 @@ maybe-clean-tk:
clean-tk:
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13328,8 +13325,8 @@ maybe-clean-tix:
clean-tix:
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13356,8 +13353,8 @@ maybe-clean-utils:
clean-utils:
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13380,8 +13377,8 @@ maybe-clean-target-libstdc++-v3:
clean-target-libstdc++-v3:
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13401,8 +13398,8 @@ maybe-clean-target-newlib:
clean-target-newlib:
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13422,8 +13419,8 @@ maybe-clean-target-libf2c:
clean-target-libf2c:
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13443,8 +13440,8 @@ maybe-clean-target-libobjc:
clean-target-libobjc:
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13471,8 +13468,8 @@ maybe-clean-target-winsup:
clean-target-winsup:
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13492,8 +13489,8 @@ maybe-clean-target-libgloss:
clean-target-libgloss:
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13513,8 +13510,8 @@ maybe-clean-target-libiberty:
clean-target-libiberty:
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13534,8 +13531,8 @@ maybe-clean-target-gperf:
clean-target-gperf:
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13555,8 +13552,8 @@ maybe-clean-target-examples:
clean-target-examples:
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13576,8 +13573,8 @@ maybe-clean-target-libffi:
clean-target-libffi:
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13597,8 +13594,8 @@ maybe-clean-target-libjava:
clean-target-libjava:
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13618,8 +13615,8 @@ maybe-clean-target-zlib:
clean-target-zlib:
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13639,8 +13636,8 @@ maybe-clean-target-boehm-gc:
clean-target-boehm-gc:
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13660,8 +13657,8 @@ maybe-clean-target-qthreads:
clean-target-qthreads:
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13681,8 +13678,8 @@ maybe-clean-target-rda:
clean-target-rda:
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing clean in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -13792,8 +13789,8 @@ distclean-target: \
maybe-distclean-gcc:
distclean-gcc:
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13814,8 +13811,8 @@ maybe-distclean-ash:
distclean-ash:
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13835,8 +13832,8 @@ maybe-distclean-autoconf:
distclean-autoconf:
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13856,8 +13853,8 @@ maybe-distclean-automake:
distclean-automake:
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13877,8 +13874,8 @@ maybe-distclean-bash:
distclean-bash:
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13898,8 +13895,8 @@ maybe-distclean-bfd:
distclean-bfd:
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13919,8 +13916,8 @@ maybe-distclean-opcodes:
distclean-opcodes:
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13940,8 +13937,8 @@ maybe-distclean-binutils:
distclean-binutils:
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13961,8 +13958,8 @@ maybe-distclean-bison:
distclean-bison:
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -13982,8 +13979,8 @@ maybe-distclean-byacc:
distclean-byacc:
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14003,8 +14000,8 @@ maybe-distclean-bzip2:
distclean-bzip2:
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14024,8 +14021,8 @@ maybe-distclean-dejagnu:
distclean-dejagnu:
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14045,8 +14042,8 @@ maybe-distclean-diff:
distclean-diff:
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14066,8 +14063,8 @@ maybe-distclean-dosutils:
distclean-dosutils:
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14087,8 +14084,8 @@ maybe-distclean-etc:
distclean-etc:
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14108,8 +14105,8 @@ maybe-distclean-fastjar:
distclean-fastjar:
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14129,8 +14126,8 @@ maybe-distclean-fileutils:
distclean-fileutils:
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14150,8 +14147,8 @@ maybe-distclean-findutils:
distclean-findutils:
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14171,8 +14168,8 @@ maybe-distclean-find:
distclean-find:
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14192,8 +14189,8 @@ maybe-distclean-flex:
distclean-flex:
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14213,8 +14210,8 @@ maybe-distclean-gas:
distclean-gas:
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14234,8 +14231,8 @@ maybe-distclean-gawk:
distclean-gawk:
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14255,8 +14252,8 @@ maybe-distclean-gettext:
distclean-gettext:
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14276,8 +14273,8 @@ maybe-distclean-gnuserv:
distclean-gnuserv:
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14297,8 +14294,8 @@ maybe-distclean-gprof:
distclean-gprof:
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14318,8 +14315,8 @@ maybe-distclean-gzip:
distclean-gzip:
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14339,8 +14336,8 @@ maybe-distclean-hello:
distclean-hello:
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14360,8 +14357,8 @@ maybe-distclean-indent:
distclean-indent:
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14381,8 +14378,8 @@ maybe-distclean-intl:
distclean-intl:
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14402,8 +14399,8 @@ maybe-distclean-tcl:
distclean-tcl:
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14423,8 +14420,8 @@ maybe-distclean-itcl:
distclean-itcl:
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14444,8 +14441,8 @@ maybe-distclean-ld:
distclean-ld:
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14465,8 +14462,8 @@ maybe-distclean-libgui:
distclean-libgui:
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14486,8 +14483,8 @@ maybe-distclean-libiberty:
distclean-libiberty:
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14507,8 +14504,8 @@ maybe-distclean-libtool:
distclean-libtool:
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14528,8 +14525,8 @@ maybe-distclean-m4:
distclean-m4:
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14549,8 +14546,8 @@ maybe-distclean-make:
distclean-make:
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14570,8 +14567,8 @@ maybe-distclean-mmalloc:
distclean-mmalloc:
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14591,8 +14588,8 @@ maybe-distclean-patch:
distclean-patch:
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14612,8 +14609,8 @@ maybe-distclean-perl:
distclean-perl:
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14633,8 +14630,8 @@ maybe-distclean-prms:
distclean-prms:
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14654,8 +14651,8 @@ maybe-distclean-rcs:
distclean-rcs:
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14675,8 +14672,8 @@ maybe-distclean-readline:
distclean-readline:
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14696,8 +14693,8 @@ maybe-distclean-release:
distclean-release:
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14717,8 +14714,8 @@ maybe-distclean-recode:
distclean-recode:
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14738,8 +14735,8 @@ maybe-distclean-sed:
distclean-sed:
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14759,8 +14756,8 @@ maybe-distclean-send-pr:
distclean-send-pr:
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14780,8 +14777,8 @@ maybe-distclean-shellutils:
distclean-shellutils:
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14801,8 +14798,8 @@ maybe-distclean-sid:
distclean-sid:
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14822,8 +14819,8 @@ maybe-distclean-sim:
distclean-sim:
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14843,8 +14840,8 @@ maybe-distclean-tar:
distclean-tar:
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14864,8 +14861,8 @@ maybe-distclean-texinfo:
distclean-texinfo:
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14885,8 +14882,8 @@ maybe-distclean-textutils:
distclean-textutils:
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14906,8 +14903,8 @@ maybe-distclean-time:
distclean-time:
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14927,8 +14924,8 @@ maybe-distclean-uudecode:
distclean-uudecode:
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14948,8 +14945,8 @@ maybe-distclean-wdiff:
distclean-wdiff:
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14969,8 +14966,8 @@ maybe-distclean-zip:
distclean-zip:
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -14990,8 +14987,8 @@ maybe-distclean-zlib:
distclean-zlib:
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15011,8 +15008,8 @@ maybe-distclean-gdb:
distclean-gdb:
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15032,8 +15029,8 @@ maybe-distclean-expect:
distclean-expect:
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15053,8 +15050,8 @@ maybe-distclean-guile:
distclean-guile:
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15074,8 +15071,8 @@ maybe-distclean-tk:
distclean-tk:
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15095,8 +15092,8 @@ maybe-distclean-tix:
distclean-tix:
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15123,8 +15120,8 @@ maybe-distclean-utils:
distclean-utils:
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15147,8 +15144,8 @@ maybe-distclean-target-libstdc++-v3:
distclean-target-libstdc++-v3:
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15168,8 +15165,8 @@ maybe-distclean-target-newlib:
distclean-target-newlib:
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15189,8 +15186,8 @@ maybe-distclean-target-libf2c:
distclean-target-libf2c:
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15210,8 +15207,8 @@ maybe-distclean-target-libobjc:
distclean-target-libobjc:
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15238,8 +15235,8 @@ maybe-distclean-target-winsup:
distclean-target-winsup:
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15259,8 +15256,8 @@ maybe-distclean-target-libgloss:
distclean-target-libgloss:
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15280,8 +15277,8 @@ maybe-distclean-target-libiberty:
distclean-target-libiberty:
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15301,8 +15298,8 @@ maybe-distclean-target-gperf:
distclean-target-gperf:
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15322,8 +15319,8 @@ maybe-distclean-target-examples:
distclean-target-examples:
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15343,8 +15340,8 @@ maybe-distclean-target-libffi:
distclean-target-libffi:
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15364,8 +15361,8 @@ maybe-distclean-target-libjava:
distclean-target-libjava:
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15385,8 +15382,8 @@ maybe-distclean-target-zlib:
distclean-target-zlib:
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15406,8 +15403,8 @@ maybe-distclean-target-boehm-gc:
distclean-target-boehm-gc:
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15427,8 +15424,8 @@ maybe-distclean-target-qthreads:
distclean-target-qthreads:
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15448,8 +15445,8 @@ maybe-distclean-target-rda:
distclean-target-rda:
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing distclean in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -15559,8 +15556,8 @@ maintainer-clean-target: \
maybe-maintainer-clean-gcc:
maintainer-clean-gcc:
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15581,8 +15578,8 @@ maybe-maintainer-clean-ash:
maintainer-clean-ash:
@[ -f ./ash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15602,8 +15599,8 @@ maybe-maintainer-clean-autoconf:
maintainer-clean-autoconf:
@[ -f ./autoconf/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15623,8 +15620,8 @@ maybe-maintainer-clean-automake:
maintainer-clean-automake:
@[ -f ./automake/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15644,8 +15641,8 @@ maybe-maintainer-clean-bash:
maintainer-clean-bash:
@[ -f ./bash/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15665,8 +15662,8 @@ maybe-maintainer-clean-bfd:
maintainer-clean-bfd:
@[ -f ./bfd/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15686,8 +15683,8 @@ maybe-maintainer-clean-opcodes:
maintainer-clean-opcodes:
@[ -f ./opcodes/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15707,8 +15704,8 @@ maybe-maintainer-clean-binutils:
maintainer-clean-binutils:
@[ -f ./binutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15728,8 +15725,8 @@ maybe-maintainer-clean-bison:
maintainer-clean-bison:
@[ -f ./bison/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15749,8 +15746,8 @@ maybe-maintainer-clean-byacc:
maintainer-clean-byacc:
@[ -f ./byacc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15770,8 +15767,8 @@ maybe-maintainer-clean-bzip2:
maintainer-clean-bzip2:
@[ -f ./bzip2/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15791,8 +15788,8 @@ maybe-maintainer-clean-dejagnu:
maintainer-clean-dejagnu:
@[ -f ./dejagnu/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15812,8 +15809,8 @@ maybe-maintainer-clean-diff:
maintainer-clean-diff:
@[ -f ./diff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15833,8 +15830,8 @@ maybe-maintainer-clean-dosutils:
maintainer-clean-dosutils:
@[ -f ./dosutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15854,8 +15851,8 @@ maybe-maintainer-clean-etc:
maintainer-clean-etc:
@[ -f ./etc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15875,8 +15872,8 @@ maybe-maintainer-clean-fastjar:
maintainer-clean-fastjar:
@[ -f ./fastjar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15896,8 +15893,8 @@ maybe-maintainer-clean-fileutils:
maintainer-clean-fileutils:
@[ -f ./fileutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15917,8 +15914,8 @@ maybe-maintainer-clean-findutils:
maintainer-clean-findutils:
@[ -f ./findutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15938,8 +15935,8 @@ maybe-maintainer-clean-find:
maintainer-clean-find:
@[ -f ./find/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15959,8 +15956,8 @@ maybe-maintainer-clean-flex:
maintainer-clean-flex:
@[ -f ./flex/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -15980,8 +15977,8 @@ maybe-maintainer-clean-gas:
maintainer-clean-gas:
@[ -f ./gas/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16001,8 +15998,8 @@ maybe-maintainer-clean-gawk:
maintainer-clean-gawk:
@[ -f ./gawk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16022,8 +16019,8 @@ maybe-maintainer-clean-gettext:
maintainer-clean-gettext:
@[ -f ./gettext/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16043,8 +16040,8 @@ maybe-maintainer-clean-gnuserv:
maintainer-clean-gnuserv:
@[ -f ./gnuserv/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16064,8 +16061,8 @@ maybe-maintainer-clean-gprof:
maintainer-clean-gprof:
@[ -f ./gprof/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16085,8 +16082,8 @@ maybe-maintainer-clean-gzip:
maintainer-clean-gzip:
@[ -f ./gzip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16106,8 +16103,8 @@ maybe-maintainer-clean-hello:
maintainer-clean-hello:
@[ -f ./hello/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16127,8 +16124,8 @@ maybe-maintainer-clean-indent:
maintainer-clean-indent:
@[ -f ./indent/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16148,8 +16145,8 @@ maybe-maintainer-clean-intl:
maintainer-clean-intl:
@[ -f ./intl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16169,8 +16166,8 @@ maybe-maintainer-clean-tcl:
maintainer-clean-tcl:
@[ -f ./tcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16190,8 +16187,8 @@ maybe-maintainer-clean-itcl:
maintainer-clean-itcl:
@[ -f ./itcl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16211,8 +16208,8 @@ maybe-maintainer-clean-ld:
maintainer-clean-ld:
@[ -f ./ld/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16232,8 +16229,8 @@ maybe-maintainer-clean-libgui:
maintainer-clean-libgui:
@[ -f ./libgui/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16253,8 +16250,8 @@ maybe-maintainer-clean-libiberty:
maintainer-clean-libiberty:
@[ -f ./libiberty/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16274,8 +16271,8 @@ maybe-maintainer-clean-libtool:
maintainer-clean-libtool:
@[ -f ./libtool/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16295,8 +16292,8 @@ maybe-maintainer-clean-m4:
maintainer-clean-m4:
@[ -f ./m4/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16316,8 +16313,8 @@ maybe-maintainer-clean-make:
maintainer-clean-make:
@[ -f ./make/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16337,8 +16334,8 @@ maybe-maintainer-clean-mmalloc:
maintainer-clean-mmalloc:
@[ -f ./mmalloc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16358,8 +16355,8 @@ maybe-maintainer-clean-patch:
maintainer-clean-patch:
@[ -f ./patch/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16379,8 +16376,8 @@ maybe-maintainer-clean-perl:
maintainer-clean-perl:
@[ -f ./perl/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16400,8 +16397,8 @@ maybe-maintainer-clean-prms:
maintainer-clean-prms:
@[ -f ./prms/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16421,8 +16418,8 @@ maybe-maintainer-clean-rcs:
maintainer-clean-rcs:
@[ -f ./rcs/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16442,8 +16439,8 @@ maybe-maintainer-clean-readline:
maintainer-clean-readline:
@[ -f ./readline/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16463,8 +16460,8 @@ maybe-maintainer-clean-release:
maintainer-clean-release:
@[ -f ./release/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16484,8 +16481,8 @@ maybe-maintainer-clean-recode:
maintainer-clean-recode:
@[ -f ./recode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16505,8 +16502,8 @@ maybe-maintainer-clean-sed:
maintainer-clean-sed:
@[ -f ./sed/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16526,8 +16523,8 @@ maybe-maintainer-clean-send-pr:
maintainer-clean-send-pr:
@[ -f ./send-pr/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16547,8 +16544,8 @@ maybe-maintainer-clean-shellutils:
maintainer-clean-shellutils:
@[ -f ./shellutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16568,8 +16565,8 @@ maybe-maintainer-clean-sid:
maintainer-clean-sid:
@[ -f ./sid/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16589,8 +16586,8 @@ maybe-maintainer-clean-sim:
maintainer-clean-sim:
@[ -f ./sim/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16610,8 +16607,8 @@ maybe-maintainer-clean-tar:
maintainer-clean-tar:
@[ -f ./tar/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16631,8 +16628,8 @@ maybe-maintainer-clean-texinfo:
maintainer-clean-texinfo:
@[ -f ./texinfo/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16652,8 +16649,8 @@ maybe-maintainer-clean-textutils:
maintainer-clean-textutils:
@[ -f ./textutils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16673,8 +16670,8 @@ maybe-maintainer-clean-time:
maintainer-clean-time:
@[ -f ./time/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16694,8 +16691,8 @@ maybe-maintainer-clean-uudecode:
maintainer-clean-uudecode:
@[ -f ./uudecode/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16715,8 +16712,8 @@ maybe-maintainer-clean-wdiff:
maintainer-clean-wdiff:
@[ -f ./wdiff/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16736,8 +16733,8 @@ maybe-maintainer-clean-zip:
maintainer-clean-zip:
@[ -f ./zip/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16757,8 +16754,8 @@ maybe-maintainer-clean-zlib:
maintainer-clean-zlib:
@[ -f ./zlib/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16778,8 +16775,8 @@ maybe-maintainer-clean-gdb:
maintainer-clean-gdb:
@[ -f ./gdb/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16799,8 +16796,8 @@ maybe-maintainer-clean-expect:
maintainer-clean-expect:
@[ -f ./expect/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16820,8 +16817,8 @@ maybe-maintainer-clean-guile:
maintainer-clean-guile:
@[ -f ./guile/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16841,8 +16838,8 @@ maybe-maintainer-clean-tk:
maintainer-clean-tk:
@[ -f ./tk/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16862,8 +16859,8 @@ maybe-maintainer-clean-tix:
maintainer-clean-tix:
@[ -f ./tix/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16890,8 +16887,8 @@ maybe-maintainer-clean-utils:
maintainer-clean-utils:
@[ -f ./utils/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -16914,8 +16911,8 @@ maybe-maintainer-clean-target-libstdc++-v3:
maintainer-clean-target-libstdc++-v3:
@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libstdc++-v3" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -16935,8 +16932,8 @@ maybe-maintainer-clean-target-newlib:
maintainer-clean-target-newlib:
@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/newlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -16956,8 +16953,8 @@ maybe-maintainer-clean-target-libf2c:
maintainer-clean-target-libf2c:
@[ -f $(TARGET_SUBDIR)/libf2c/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libf2c" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -16977,8 +16974,8 @@ maybe-maintainer-clean-target-libobjc:
maintainer-clean-target-libobjc:
@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libobjc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17005,8 +17002,8 @@ maybe-maintainer-clean-target-winsup:
maintainer-clean-target-winsup:
@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/winsup" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17026,8 +17023,8 @@ maybe-maintainer-clean-target-libgloss:
maintainer-clean-target-libgloss:
@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgloss" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17047,8 +17044,8 @@ maybe-maintainer-clean-target-libiberty:
maintainer-clean-target-libiberty:
@[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17068,8 +17065,8 @@ maybe-maintainer-clean-target-gperf:
maintainer-clean-target-gperf:
@[ -f $(TARGET_SUBDIR)/gperf/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/gperf" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17089,8 +17086,8 @@ maybe-maintainer-clean-target-examples:
maintainer-clean-target-examples:
@[ -f $(TARGET_SUBDIR)/examples/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/examples" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17110,8 +17107,8 @@ maybe-maintainer-clean-target-libffi:
maintainer-clean-target-libffi:
@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libffi" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17131,8 +17128,8 @@ maybe-maintainer-clean-target-libjava:
maintainer-clean-target-libjava:
@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libjava" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17152,8 +17149,8 @@ maybe-maintainer-clean-target-zlib:
maintainer-clean-target-zlib:
@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/zlib" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17173,8 +17170,8 @@ maybe-maintainer-clean-target-boehm-gc:
maintainer-clean-target-boehm-gc:
@[ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/boehm-gc" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17194,8 +17191,8 @@ maybe-maintainer-clean-target-qthreads:
maintainer-clean-target-qthreads:
@[ -f $(TARGET_SUBDIR)/qthreads/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/qthreads" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17215,8 +17212,8 @@ maybe-maintainer-clean-target-rda:
maintainer-clean-target-rda:
@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing maintainer-clean in $(TARGET_SUBDIR)/rda" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -17247,7 +17244,7 @@ dvi: do-dvi
do-info: maybe-all-texinfo
install-info: do-install-info dir.info
- s=`cd $(srcdir); ${PWD}`; export s; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
if [ -f dir.info ] ; then \
$(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \
else true ; fi
@@ -17290,8 +17287,7 @@ clean-target-libgcc:
# Check target.
.PHONY: check do-check
-check:
- $(MAKE) do-check
+check: do-check
# Only include modules actually being configured and built.
do-check: maybe-check-gcc \
@@ -17561,7 +17557,7 @@ uninstall:
.PHONY: install.all
install.all: install-no-fixedincludes
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}` ; export r ; \
+ r=`${PWD_COMMAND}` ; export r ; \
$(SET_LIB_PATH) \
(cd ./gcc && \
$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
@@ -17613,10 +17609,9 @@ TAGS: do-TAGS
maybe-configure-build-libiberty:
configure-build-libiberty:
@test ! -f $(BUILD_SUBDIR)/libiberty/Makefile || exit 0; \
- [ -d $(BUILD_SUBDIR)/libiberty ] || \
- mkdir $(BUILD_SUBDIR)/libiberty;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/libiberty ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
@@ -17674,8 +17669,8 @@ configure-build-libiberty:
.PHONY: all-build-libiberty maybe-all-build-libiberty
maybe-all-build-libiberty:
all-build-libiberty: configure-build-libiberty
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
(cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all)
@@ -17688,8 +17683,8 @@ maybe-configure-ash:
configure-ash:
@test ! -f ash/Makefile || exit 0; \
[ -d ash ] || mkdir ash; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -17724,8 +17719,8 @@ configure-ash:
.PHONY: all-ash maybe-all-ash
maybe-all-ash:
all-ash: configure-ash
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ash && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -17733,8 +17728,8 @@ all-ash: configure-ash
maybe-check-ash:
check-ash:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ash && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -17743,8 +17738,8 @@ check-ash:
maybe-install-ash:
install-ash: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ash && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -17754,8 +17749,8 @@ maybe-configure-autoconf:
configure-autoconf:
@test ! -f autoconf/Makefile || exit 0; \
[ -d autoconf ] || mkdir autoconf; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -17790,8 +17785,8 @@ configure-autoconf:
.PHONY: all-autoconf maybe-all-autoconf
maybe-all-autoconf:
all-autoconf: configure-autoconf
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd autoconf && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -17799,8 +17794,8 @@ all-autoconf: configure-autoconf
maybe-check-autoconf:
check-autoconf:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd autoconf && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -17809,8 +17804,8 @@ check-autoconf:
maybe-install-autoconf:
install-autoconf: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd autoconf && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -17820,8 +17815,8 @@ maybe-configure-automake:
configure-automake:
@test ! -f automake/Makefile || exit 0; \
[ -d automake ] || mkdir automake; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -17856,8 +17851,8 @@ configure-automake:
.PHONY: all-automake maybe-all-automake
maybe-all-automake:
all-automake: configure-automake
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd automake && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -17865,8 +17860,8 @@ all-automake: configure-automake
maybe-check-automake:
check-automake:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd automake && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -17875,8 +17870,8 @@ check-automake:
maybe-install-automake:
install-automake: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd automake && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -17886,8 +17881,8 @@ maybe-configure-bash:
configure-bash:
@test ! -f bash/Makefile || exit 0; \
[ -d bash ] || mkdir bash; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -17922,8 +17917,8 @@ configure-bash:
.PHONY: all-bash maybe-all-bash
maybe-all-bash:
all-bash: configure-bash
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bash && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -17931,8 +17926,8 @@ all-bash: configure-bash
maybe-check-bash:
check-bash:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bash && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -17941,8 +17936,8 @@ check-bash:
maybe-install-bash:
install-bash: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bash && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -17952,8 +17947,8 @@ maybe-configure-bfd:
configure-bfd:
@test ! -f bfd/Makefile || exit 0; \
[ -d bfd ] || mkdir bfd; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -17988,8 +17983,8 @@ configure-bfd:
.PHONY: all-bfd maybe-all-bfd
maybe-all-bfd:
all-bfd: configure-bfd
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bfd && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -17997,8 +17992,8 @@ all-bfd: configure-bfd
maybe-check-bfd:
check-bfd:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bfd && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18007,8 +18002,8 @@ check-bfd:
maybe-install-bfd:
install-bfd: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bfd && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18018,8 +18013,8 @@ maybe-configure-opcodes:
configure-opcodes:
@test ! -f opcodes/Makefile || exit 0; \
[ -d opcodes ] || mkdir opcodes; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18054,8 +18049,8 @@ configure-opcodes:
.PHONY: all-opcodes maybe-all-opcodes
maybe-all-opcodes:
all-opcodes: configure-opcodes
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd opcodes && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18063,8 +18058,8 @@ all-opcodes: configure-opcodes
maybe-check-opcodes:
check-opcodes:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd opcodes && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18073,8 +18068,8 @@ check-opcodes:
maybe-install-opcodes:
install-opcodes: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd opcodes && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18084,8 +18079,8 @@ maybe-configure-binutils:
configure-binutils:
@test ! -f binutils/Makefile || exit 0; \
[ -d binutils ] || mkdir binutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18120,8 +18115,8 @@ configure-binutils:
.PHONY: all-binutils maybe-all-binutils
maybe-all-binutils:
all-binutils: configure-binutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd binutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18129,8 +18124,8 @@ all-binutils: configure-binutils
maybe-check-binutils:
check-binutils:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd binutils && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18139,8 +18134,8 @@ check-binutils:
maybe-install-binutils:
install-binutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd binutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18150,8 +18145,8 @@ maybe-configure-bison:
configure-bison:
@test ! -f bison/Makefile || exit 0; \
[ -d bison ] || mkdir bison; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18186,8 +18181,8 @@ configure-bison:
.PHONY: all-bison maybe-all-bison
maybe-all-bison:
all-bison: configure-bison
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bison && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18197,8 +18192,8 @@ maybe-check-bison:
# This module is only tested in a native toolchain.
check-bison:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bison && $(MAKE) $(FLAGS_TO_PASS) check); \
fi
@@ -18208,8 +18203,8 @@ check-bison:
maybe-install-bison:
install-bison: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bison && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18219,8 +18214,8 @@ maybe-configure-byacc:
configure-byacc:
@test ! -f byacc/Makefile || exit 0; \
[ -d byacc ] || mkdir byacc; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18255,8 +18250,8 @@ configure-byacc:
.PHONY: all-byacc maybe-all-byacc
maybe-all-byacc:
all-byacc: configure-byacc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd byacc && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18266,8 +18261,8 @@ maybe-check-byacc:
# This module is only tested in a native toolchain.
check-byacc:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd byacc && $(MAKE) $(FLAGS_TO_PASS) check); \
fi
@@ -18277,8 +18272,8 @@ check-byacc:
maybe-install-byacc:
install-byacc: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd byacc && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18288,8 +18283,8 @@ maybe-configure-bzip2:
configure-bzip2:
@test ! -f bzip2/Makefile || exit 0; \
[ -d bzip2 ] || mkdir bzip2; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18324,8 +18319,8 @@ configure-bzip2:
.PHONY: all-bzip2 maybe-all-bzip2
maybe-all-bzip2:
all-bzip2: configure-bzip2
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18333,8 +18328,8 @@ all-bzip2: configure-bzip2
maybe-check-bzip2:
check-bzip2:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18343,8 +18338,8 @@ check-bzip2:
maybe-install-bzip2:
install-bzip2: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18354,8 +18349,8 @@ maybe-configure-dejagnu:
configure-dejagnu:
@test ! -f dejagnu/Makefile || exit 0; \
[ -d dejagnu ] || mkdir dejagnu; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18390,8 +18385,8 @@ configure-dejagnu:
.PHONY: all-dejagnu maybe-all-dejagnu
maybe-all-dejagnu:
all-dejagnu: configure-dejagnu
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18399,8 +18394,8 @@ all-dejagnu: configure-dejagnu
maybe-check-dejagnu:
check-dejagnu:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18409,8 +18404,8 @@ check-dejagnu:
maybe-install-dejagnu:
install-dejagnu: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18420,8 +18415,8 @@ maybe-configure-diff:
configure-diff:
@test ! -f diff/Makefile || exit 0; \
[ -d diff ] || mkdir diff; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18456,8 +18451,8 @@ configure-diff:
.PHONY: all-diff maybe-all-diff
maybe-all-diff:
all-diff: configure-diff
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd diff && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18465,8 +18460,8 @@ all-diff: configure-diff
maybe-check-diff:
check-diff:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd diff && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18475,8 +18470,8 @@ check-diff:
maybe-install-diff:
install-diff: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd diff && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18486,8 +18481,8 @@ maybe-configure-dosutils:
configure-dosutils:
@test ! -f dosutils/Makefile || exit 0; \
[ -d dosutils ] || mkdir dosutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18522,8 +18517,8 @@ configure-dosutils:
.PHONY: all-dosutils maybe-all-dosutils
maybe-all-dosutils:
all-dosutils: configure-dosutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd dosutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18537,8 +18532,8 @@ check-dosutils:
maybe-install-dosutils:
install-dosutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd dosutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18548,8 +18543,8 @@ maybe-configure-etc:
configure-etc:
@test ! -f etc/Makefile || exit 0; \
[ -d etc ] || mkdir etc; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18584,8 +18579,8 @@ configure-etc:
.PHONY: all-etc maybe-all-etc
maybe-all-etc:
all-etc: configure-etc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd etc && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18593,8 +18588,8 @@ all-etc: configure-etc
maybe-check-etc:
check-etc:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd etc && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18603,8 +18598,8 @@ check-etc:
maybe-install-etc:
install-etc: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd etc && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18614,8 +18609,8 @@ maybe-configure-fastjar:
configure-fastjar:
@test ! -f fastjar/Makefile || exit 0; \
[ -d fastjar ] || mkdir fastjar; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18650,8 +18645,8 @@ configure-fastjar:
.PHONY: all-fastjar maybe-all-fastjar
maybe-all-fastjar:
all-fastjar: configure-fastjar
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fastjar && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18661,8 +18656,8 @@ maybe-check-fastjar:
# This module is only tested in a native toolchain.
check-fastjar:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fastjar && $(MAKE) $(FLAGS_TO_PASS) check); \
fi
@@ -18672,8 +18667,8 @@ check-fastjar:
maybe-install-fastjar:
install-fastjar: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fastjar && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18683,8 +18678,8 @@ maybe-configure-fileutils:
configure-fileutils:
@test ! -f fileutils/Makefile || exit 0; \
[ -d fileutils ] || mkdir fileutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18719,8 +18714,8 @@ configure-fileutils:
.PHONY: all-fileutils maybe-all-fileutils
maybe-all-fileutils:
all-fileutils: configure-fileutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fileutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18728,8 +18723,8 @@ all-fileutils: configure-fileutils
maybe-check-fileutils:
check-fileutils:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fileutils && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18738,8 +18733,8 @@ check-fileutils:
maybe-install-fileutils:
install-fileutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd fileutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18749,8 +18744,8 @@ maybe-configure-findutils:
configure-findutils:
@test ! -f findutils/Makefile || exit 0; \
[ -d findutils ] || mkdir findutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18785,8 +18780,8 @@ configure-findutils:
.PHONY: all-findutils maybe-all-findutils
maybe-all-findutils:
all-findutils: configure-findutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd findutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18794,8 +18789,8 @@ all-findutils: configure-findutils
maybe-check-findutils:
check-findutils:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd findutils && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18804,8 +18799,8 @@ check-findutils:
maybe-install-findutils:
install-findutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd findutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18815,8 +18810,8 @@ maybe-configure-find:
configure-find:
@test ! -f find/Makefile || exit 0; \
[ -d find ] || mkdir find; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18851,8 +18846,8 @@ configure-find:
.PHONY: all-find maybe-all-find
maybe-all-find:
all-find: configure-find
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd find && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18860,8 +18855,8 @@ all-find: configure-find
maybe-check-find:
check-find:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd find && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -18870,8 +18865,8 @@ check-find:
maybe-install-find:
install-find: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd find && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18881,8 +18876,8 @@ maybe-configure-flex:
configure-flex:
@test ! -f flex/Makefile || exit 0; \
[ -d flex ] || mkdir flex; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18917,8 +18912,8 @@ configure-flex:
.PHONY: all-flex maybe-all-flex
maybe-all-flex:
all-flex: configure-flex
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd flex && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18928,8 +18923,8 @@ maybe-check-flex:
# This module is only tested in a native toolchain.
check-flex:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd flex && $(MAKE) $(FLAGS_TO_PASS) check); \
fi
@@ -18939,8 +18934,8 @@ check-flex:
maybe-install-flex:
install-flex: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd flex && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -18950,8 +18945,8 @@ maybe-configure-gas:
configure-gas:
@test ! -f gas/Makefile || exit 0; \
[ -d gas ] || mkdir gas; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -18986,8 +18981,8 @@ configure-gas:
.PHONY: all-gas maybe-all-gas
maybe-all-gas:
all-gas: configure-gas
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gas && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -18995,8 +18990,8 @@ all-gas: configure-gas
maybe-check-gas:
check-gas:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gas && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19005,8 +19000,8 @@ check-gas:
maybe-install-gas:
install-gas: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gas && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19016,8 +19011,8 @@ maybe-configure-gawk:
configure-gawk:
@test ! -f gawk/Makefile || exit 0; \
[ -d gawk ] || mkdir gawk; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19052,8 +19047,8 @@ configure-gawk:
.PHONY: all-gawk maybe-all-gawk
maybe-all-gawk:
all-gawk: configure-gawk
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gawk && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19061,8 +19056,8 @@ all-gawk: configure-gawk
maybe-check-gawk:
check-gawk:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gawk && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19071,8 +19066,8 @@ check-gawk:
maybe-install-gawk:
install-gawk: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gawk && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19082,8 +19077,8 @@ maybe-configure-gettext:
configure-gettext:
@test ! -f gettext/Makefile || exit 0; \
[ -d gettext ] || mkdir gettext; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19118,8 +19113,8 @@ configure-gettext:
.PHONY: all-gettext maybe-all-gettext
maybe-all-gettext:
all-gettext: configure-gettext
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gettext && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19127,8 +19122,8 @@ all-gettext: configure-gettext
maybe-check-gettext:
check-gettext:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gettext && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19137,8 +19132,8 @@ check-gettext:
maybe-install-gettext:
install-gettext: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gettext && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19148,8 +19143,8 @@ maybe-configure-gnuserv:
configure-gnuserv:
@test ! -f gnuserv/Makefile || exit 0; \
[ -d gnuserv ] || mkdir gnuserv; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19184,8 +19179,8 @@ configure-gnuserv:
.PHONY: all-gnuserv maybe-all-gnuserv
maybe-all-gnuserv:
all-gnuserv: configure-gnuserv
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19193,8 +19188,8 @@ all-gnuserv: configure-gnuserv
maybe-check-gnuserv:
check-gnuserv:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19203,8 +19198,8 @@ check-gnuserv:
maybe-install-gnuserv:
install-gnuserv: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19214,8 +19209,8 @@ maybe-configure-gprof:
configure-gprof:
@test ! -f gprof/Makefile || exit 0; \
[ -d gprof ] || mkdir gprof; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19250,8 +19245,8 @@ configure-gprof:
.PHONY: all-gprof maybe-all-gprof
maybe-all-gprof:
all-gprof: configure-gprof
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gprof && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19259,8 +19254,8 @@ all-gprof: configure-gprof
maybe-check-gprof:
check-gprof:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gprof && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19269,8 +19264,8 @@ check-gprof:
maybe-install-gprof:
install-gprof: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gprof && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19280,8 +19275,8 @@ maybe-configure-gzip:
configure-gzip:
@test ! -f gzip/Makefile || exit 0; \
[ -d gzip ] || mkdir gzip; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19316,8 +19311,8 @@ configure-gzip:
.PHONY: all-gzip maybe-all-gzip
maybe-all-gzip:
all-gzip: configure-gzip
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gzip && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19325,8 +19320,8 @@ all-gzip: configure-gzip
maybe-check-gzip:
check-gzip:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gzip && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19335,8 +19330,8 @@ check-gzip:
maybe-install-gzip:
install-gzip: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gzip && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19346,8 +19341,8 @@ maybe-configure-hello:
configure-hello:
@test ! -f hello/Makefile || exit 0; \
[ -d hello ] || mkdir hello; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19382,8 +19377,8 @@ configure-hello:
.PHONY: all-hello maybe-all-hello
maybe-all-hello:
all-hello: configure-hello
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd hello && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19391,8 +19386,8 @@ all-hello: configure-hello
maybe-check-hello:
check-hello:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd hello && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19401,8 +19396,8 @@ check-hello:
maybe-install-hello:
install-hello: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd hello && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19412,8 +19407,8 @@ maybe-configure-indent:
configure-indent:
@test ! -f indent/Makefile || exit 0; \
[ -d indent ] || mkdir indent; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19448,8 +19443,8 @@ configure-indent:
.PHONY: all-indent maybe-all-indent
maybe-all-indent:
all-indent: configure-indent
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd indent && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19457,8 +19452,8 @@ all-indent: configure-indent
maybe-check-indent:
check-indent:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd indent && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19467,8 +19462,8 @@ check-indent:
maybe-install-indent:
install-indent: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd indent && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19478,8 +19473,8 @@ maybe-configure-intl:
configure-intl:
@test ! -f intl/Makefile || exit 0; \
[ -d intl ] || mkdir intl; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19514,8 +19509,8 @@ configure-intl:
.PHONY: all-intl maybe-all-intl
maybe-all-intl:
all-intl: configure-intl
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd intl && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19523,8 +19518,8 @@ all-intl: configure-intl
maybe-check-intl:
check-intl:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd intl && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19533,8 +19528,8 @@ check-intl:
maybe-install-intl:
install-intl: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd intl && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19544,8 +19539,8 @@ maybe-configure-tcl:
configure-tcl:
@test ! -f tcl/Makefile || exit 0; \
[ -d tcl ] || mkdir tcl; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19580,8 +19575,8 @@ configure-tcl:
.PHONY: all-tcl maybe-all-tcl
maybe-all-tcl:
all-tcl: configure-tcl
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tcl && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19589,8 +19584,8 @@ all-tcl: configure-tcl
maybe-check-tcl:
check-tcl:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tcl && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19599,8 +19594,8 @@ check-tcl:
maybe-install-tcl:
install-tcl: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tcl && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19610,8 +19605,8 @@ maybe-configure-itcl:
configure-itcl:
@test ! -f itcl/Makefile || exit 0; \
[ -d itcl ] || mkdir itcl; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19646,8 +19641,8 @@ configure-itcl:
.PHONY: all-itcl maybe-all-itcl
maybe-all-itcl:
all-itcl: configure-itcl
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd itcl && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19655,8 +19650,8 @@ all-itcl: configure-itcl
maybe-check-itcl:
check-itcl:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd itcl && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19665,8 +19660,8 @@ check-itcl:
maybe-install-itcl:
install-itcl: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd itcl && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19676,8 +19671,8 @@ maybe-configure-ld:
configure-ld:
@test ! -f ld/Makefile || exit 0; \
[ -d ld ] || mkdir ld; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19712,8 +19707,8 @@ configure-ld:
.PHONY: all-ld maybe-all-ld
maybe-all-ld:
all-ld: configure-ld
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ld && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19721,8 +19716,8 @@ all-ld: configure-ld
maybe-check-ld:
check-ld:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ld && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19731,8 +19726,8 @@ check-ld:
maybe-install-ld:
install-ld: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd ld && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19742,8 +19737,8 @@ maybe-configure-libgui:
configure-libgui:
@test ! -f libgui/Makefile || exit 0; \
[ -d libgui ] || mkdir libgui; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19778,8 +19773,8 @@ configure-libgui:
.PHONY: all-libgui maybe-all-libgui
maybe-all-libgui:
all-libgui: configure-libgui
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libgui && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19787,8 +19782,8 @@ all-libgui: configure-libgui
maybe-check-libgui:
check-libgui:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libgui && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19797,8 +19792,8 @@ check-libgui:
maybe-install-libgui:
install-libgui: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libgui && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19808,8 +19803,8 @@ maybe-configure-libiberty:
configure-libiberty:
@test ! -f libiberty/Makefile || exit 0; \
[ -d libiberty ] || mkdir libiberty; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19844,8 +19839,8 @@ configure-libiberty:
.PHONY: all-libiberty maybe-all-libiberty
maybe-all-libiberty:
all-libiberty: configure-libiberty
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libiberty && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19853,8 +19848,8 @@ all-libiberty: configure-libiberty
maybe-check-libiberty:
check-libiberty:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libiberty && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19863,8 +19858,8 @@ check-libiberty:
maybe-install-libiberty:
install-libiberty: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libiberty && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19874,8 +19869,8 @@ maybe-configure-libtool:
configure-libtool:
@test ! -f libtool/Makefile || exit 0; \
[ -d libtool ] || mkdir libtool; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19910,8 +19905,8 @@ configure-libtool:
.PHONY: all-libtool maybe-all-libtool
maybe-all-libtool:
all-libtool: configure-libtool
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libtool && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19919,8 +19914,8 @@ all-libtool: configure-libtool
maybe-check-libtool:
check-libtool:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libtool && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19929,8 +19924,8 @@ check-libtool:
maybe-install-libtool:
install-libtool: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libtool && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -19940,8 +19935,8 @@ maybe-configure-m4:
configure-m4:
@test ! -f m4/Makefile || exit 0; \
[ -d m4 ] || mkdir m4; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -19976,8 +19971,8 @@ configure-m4:
.PHONY: all-m4 maybe-all-m4
maybe-all-m4:
all-m4: configure-m4
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd m4 && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -19985,8 +19980,8 @@ all-m4: configure-m4
maybe-check-m4:
check-m4:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd m4 && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -19995,8 +19990,8 @@ check-m4:
maybe-install-m4:
install-m4: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd m4 && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20006,8 +20001,8 @@ maybe-configure-make:
configure-make:
@test ! -f make/Makefile || exit 0; \
[ -d make ] || mkdir make; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20042,8 +20037,8 @@ configure-make:
.PHONY: all-make maybe-all-make
maybe-all-make:
all-make: configure-make
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd make && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20051,8 +20046,8 @@ all-make: configure-make
maybe-check-make:
check-make:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd make && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20061,8 +20056,8 @@ check-make:
maybe-install-make:
install-make: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd make && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20072,8 +20067,8 @@ maybe-configure-mmalloc:
configure-mmalloc:
@test ! -f mmalloc/Makefile || exit 0; \
[ -d mmalloc ] || mkdir mmalloc; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20108,8 +20103,8 @@ configure-mmalloc:
.PHONY: all-mmalloc maybe-all-mmalloc
maybe-all-mmalloc:
all-mmalloc: configure-mmalloc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20123,8 +20118,8 @@ check-mmalloc:
maybe-install-mmalloc:
install-mmalloc: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20134,8 +20129,8 @@ maybe-configure-patch:
configure-patch:
@test ! -f patch/Makefile || exit 0; \
[ -d patch ] || mkdir patch; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20170,8 +20165,8 @@ configure-patch:
.PHONY: all-patch maybe-all-patch
maybe-all-patch:
all-patch: configure-patch
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd patch && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20179,8 +20174,8 @@ all-patch: configure-patch
maybe-check-patch:
check-patch:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd patch && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20189,8 +20184,8 @@ check-patch:
maybe-install-patch:
install-patch: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd patch && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20200,8 +20195,8 @@ maybe-configure-perl:
configure-perl:
@test ! -f perl/Makefile || exit 0; \
[ -d perl ] || mkdir perl; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20236,8 +20231,8 @@ configure-perl:
.PHONY: all-perl maybe-all-perl
maybe-all-perl:
all-perl: configure-perl
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd perl && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20245,8 +20240,8 @@ all-perl: configure-perl
maybe-check-perl:
check-perl:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd perl && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20255,8 +20250,8 @@ check-perl:
maybe-install-perl:
install-perl: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd perl && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20266,8 +20261,8 @@ maybe-configure-prms:
configure-prms:
@test ! -f prms/Makefile || exit 0; \
[ -d prms ] || mkdir prms; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20302,8 +20297,8 @@ configure-prms:
.PHONY: all-prms maybe-all-prms
maybe-all-prms:
all-prms: configure-prms
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd prms && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20311,8 +20306,8 @@ all-prms: configure-prms
maybe-check-prms:
check-prms:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd prms && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20321,8 +20316,8 @@ check-prms:
maybe-install-prms:
install-prms: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd prms && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20332,8 +20327,8 @@ maybe-configure-rcs:
configure-rcs:
@test ! -f rcs/Makefile || exit 0; \
[ -d rcs ] || mkdir rcs; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20368,8 +20363,8 @@ configure-rcs:
.PHONY: all-rcs maybe-all-rcs
maybe-all-rcs:
all-rcs: configure-rcs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd rcs && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20377,8 +20372,8 @@ all-rcs: configure-rcs
maybe-check-rcs:
check-rcs:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd rcs && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20387,8 +20382,8 @@ check-rcs:
maybe-install-rcs:
install-rcs: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd rcs && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20398,8 +20393,8 @@ maybe-configure-readline:
configure-readline:
@test ! -f readline/Makefile || exit 0; \
[ -d readline ] || mkdir readline; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20434,8 +20429,8 @@ configure-readline:
.PHONY: all-readline maybe-all-readline
maybe-all-readline:
all-readline: configure-readline
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd readline && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20443,8 +20438,8 @@ all-readline: configure-readline
maybe-check-readline:
check-readline:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd readline && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20453,8 +20448,8 @@ check-readline:
maybe-install-readline:
install-readline: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd readline && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20464,8 +20459,8 @@ maybe-configure-release:
configure-release:
@test ! -f release/Makefile || exit 0; \
[ -d release ] || mkdir release; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20500,8 +20495,8 @@ configure-release:
.PHONY: all-release maybe-all-release
maybe-all-release:
all-release: configure-release
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd release && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20522,8 +20517,8 @@ maybe-configure-recode:
configure-recode:
@test ! -f recode/Makefile || exit 0; \
[ -d recode ] || mkdir recode; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20558,8 +20553,8 @@ configure-recode:
.PHONY: all-recode maybe-all-recode
maybe-all-recode:
all-recode: configure-recode
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd recode && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20567,8 +20562,8 @@ all-recode: configure-recode
maybe-check-recode:
check-recode:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd recode && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20577,8 +20572,8 @@ check-recode:
maybe-install-recode:
install-recode: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd recode && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20588,8 +20583,8 @@ maybe-configure-sed:
configure-sed:
@test ! -f sed/Makefile || exit 0; \
[ -d sed ] || mkdir sed; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20624,8 +20619,8 @@ configure-sed:
.PHONY: all-sed maybe-all-sed
maybe-all-sed:
all-sed: configure-sed
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sed && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20633,8 +20628,8 @@ all-sed: configure-sed
maybe-check-sed:
check-sed:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sed && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20643,8 +20638,8 @@ check-sed:
maybe-install-sed:
install-sed: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sed && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20654,8 +20649,8 @@ maybe-configure-send-pr:
configure-send-pr:
@test ! -f send-pr/Makefile || exit 0; \
[ -d send-pr ] || mkdir send-pr; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20690,8 +20685,8 @@ configure-send-pr:
.PHONY: all-send-pr maybe-all-send-pr
maybe-all-send-pr:
all-send-pr: configure-send-pr
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd send-pr && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20699,8 +20694,8 @@ all-send-pr: configure-send-pr
maybe-check-send-pr:
check-send-pr:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd send-pr && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20709,8 +20704,8 @@ check-send-pr:
maybe-install-send-pr:
install-send-pr: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd send-pr && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20720,8 +20715,8 @@ maybe-configure-shellutils:
configure-shellutils:
@test ! -f shellutils/Makefile || exit 0; \
[ -d shellutils ] || mkdir shellutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20756,8 +20751,8 @@ configure-shellutils:
.PHONY: all-shellutils maybe-all-shellutils
maybe-all-shellutils:
all-shellutils: configure-shellutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd shellutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20765,8 +20760,8 @@ all-shellutils: configure-shellutils
maybe-check-shellutils:
check-shellutils:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd shellutils && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20775,8 +20770,8 @@ check-shellutils:
maybe-install-shellutils:
install-shellutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd shellutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20786,8 +20781,8 @@ maybe-configure-sid:
configure-sid:
@test ! -f sid/Makefile || exit 0; \
[ -d sid ] || mkdir sid; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20822,8 +20817,8 @@ configure-sid:
.PHONY: all-sid maybe-all-sid
maybe-all-sid:
all-sid: configure-sid
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sid && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20831,8 +20826,8 @@ all-sid: configure-sid
maybe-check-sid:
check-sid:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sid && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20841,8 +20836,8 @@ check-sid:
maybe-install-sid:
install-sid: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sid && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20852,8 +20847,8 @@ maybe-configure-sim:
configure-sim:
@test ! -f sim/Makefile || exit 0; \
[ -d sim ] || mkdir sim; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20888,8 +20883,8 @@ configure-sim:
.PHONY: all-sim maybe-all-sim
maybe-all-sim:
all-sim: configure-sim
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sim && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20897,8 +20892,8 @@ all-sim: configure-sim
maybe-check-sim:
check-sim:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sim && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20907,8 +20902,8 @@ check-sim:
maybe-install-sim:
install-sim: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd sim && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20918,8 +20913,8 @@ maybe-configure-tar:
configure-tar:
@test ! -f tar/Makefile || exit 0; \
[ -d tar ] || mkdir tar; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -20954,8 +20949,8 @@ configure-tar:
.PHONY: all-tar maybe-all-tar
maybe-all-tar:
all-tar: configure-tar
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tar && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -20963,8 +20958,8 @@ all-tar: configure-tar
maybe-check-tar:
check-tar:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tar && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -20973,8 +20968,8 @@ check-tar:
maybe-install-tar:
install-tar: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tar && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -20984,8 +20979,8 @@ maybe-configure-texinfo:
configure-texinfo:
@test ! -f texinfo/Makefile || exit 0; \
[ -d texinfo ] || mkdir texinfo; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21020,8 +21015,8 @@ configure-texinfo:
.PHONY: all-texinfo maybe-all-texinfo
maybe-all-texinfo:
all-texinfo: configure-texinfo
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd texinfo && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21029,8 +21024,8 @@ all-texinfo: configure-texinfo
maybe-check-texinfo:
check-texinfo:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd texinfo && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -21046,8 +21041,8 @@ maybe-configure-textutils:
configure-textutils:
@test ! -f textutils/Makefile || exit 0; \
[ -d textutils ] || mkdir textutils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21082,8 +21077,8 @@ configure-textutils:
.PHONY: all-textutils maybe-all-textutils
maybe-all-textutils:
all-textutils: configure-textutils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd textutils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21091,8 +21086,8 @@ all-textutils: configure-textutils
maybe-check-textutils:
check-textutils:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd textutils && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -21101,8 +21096,8 @@ check-textutils:
maybe-install-textutils:
install-textutils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd textutils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21112,8 +21107,8 @@ maybe-configure-time:
configure-time:
@test ! -f time/Makefile || exit 0; \
[ -d time ] || mkdir time; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21148,8 +21143,8 @@ configure-time:
.PHONY: all-time maybe-all-time
maybe-all-time:
all-time: configure-time
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd time && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21157,8 +21152,8 @@ all-time: configure-time
maybe-check-time:
check-time:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd time && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -21167,8 +21162,8 @@ check-time:
maybe-install-time:
install-time: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd time && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21178,8 +21173,8 @@ maybe-configure-uudecode:
configure-uudecode:
@test ! -f uudecode/Makefile || exit 0; \
[ -d uudecode ] || mkdir uudecode; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21214,8 +21209,8 @@ configure-uudecode:
.PHONY: all-uudecode maybe-all-uudecode
maybe-all-uudecode:
all-uudecode: configure-uudecode
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd uudecode && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21223,8 +21218,8 @@ all-uudecode: configure-uudecode
maybe-check-uudecode:
check-uudecode:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd uudecode && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -21233,8 +21228,8 @@ check-uudecode:
maybe-install-uudecode:
install-uudecode: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd uudecode && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21244,8 +21239,8 @@ maybe-configure-wdiff:
configure-wdiff:
@test ! -f wdiff/Makefile || exit 0; \
[ -d wdiff ] || mkdir wdiff; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21280,8 +21275,8 @@ configure-wdiff:
.PHONY: all-wdiff maybe-all-wdiff
maybe-all-wdiff:
all-wdiff: configure-wdiff
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd wdiff && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21289,8 +21284,8 @@ all-wdiff: configure-wdiff
maybe-check-wdiff:
check-wdiff:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd wdiff && $(MAKE) $(FLAGS_TO_PASS) check)
@@ -21299,8 +21294,8 @@ check-wdiff:
maybe-install-wdiff:
install-wdiff: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd wdiff && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21310,8 +21305,8 @@ maybe-configure-zip:
configure-zip:
@test ! -f zip/Makefile || exit 0; \
[ -d zip ] || mkdir zip; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21346,8 +21341,8 @@ configure-zip:
.PHONY: all-zip maybe-all-zip
maybe-all-zip:
all-zip: configure-zip
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd zip && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21357,8 +21352,8 @@ maybe-check-zip:
# This module is only tested in a native toolchain.
check-zip:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd zip && $(MAKE) $(FLAGS_TO_PASS) check); \
fi
@@ -21368,8 +21363,8 @@ check-zip:
maybe-install-zip:
install-zip: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd zip && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21379,8 +21374,8 @@ maybe-configure-zlib:
configure-zlib:
@test ! -f zlib/Makefile || exit 0; \
[ -d zlib ] || mkdir zlib; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21415,8 +21410,8 @@ configure-zlib:
.PHONY: all-zlib maybe-all-zlib
maybe-all-zlib:
all-zlib: configure-zlib
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd zlib && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21437,8 +21432,8 @@ maybe-configure-gdb:
configure-gdb:
@test ! -f gdb/Makefile || exit 0; \
[ -d gdb ] || mkdir gdb; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21473,8 +21468,8 @@ configure-gdb:
.PHONY: all-gdb maybe-all-gdb
maybe-all-gdb:
all-gdb: configure-gdb
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
@@ -21482,8 +21477,8 @@ all-gdb: configure-gdb
maybe-check-gdb:
check-gdb:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
@@ -21492,8 +21487,8 @@ check-gdb:
maybe-install-gdb:
install-gdb: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
@@ -21503,8 +21498,8 @@ maybe-configure-expect:
configure-expect:
@test ! -f expect/Makefile || exit 0; \
[ -d expect ] || mkdir expect; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21539,8 +21534,8 @@ configure-expect:
.PHONY: all-expect maybe-all-expect
maybe-all-expect:
all-expect: configure-expect
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
@@ -21548,8 +21543,8 @@ all-expect: configure-expect
maybe-check-expect:
check-expect:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
@@ -21558,8 +21553,8 @@ check-expect:
maybe-install-expect:
install-expect: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
@@ -21569,8 +21564,8 @@ maybe-configure-guile:
configure-guile:
@test ! -f guile/Makefile || exit 0; \
[ -d guile ] || mkdir guile; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21605,8 +21600,8 @@ configure-guile:
.PHONY: all-guile maybe-all-guile
maybe-all-guile:
all-guile: configure-guile
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
@@ -21614,8 +21609,8 @@ all-guile: configure-guile
maybe-check-guile:
check-guile:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
@@ -21624,8 +21619,8 @@ check-guile:
maybe-install-guile:
install-guile: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
@@ -21635,8 +21630,8 @@ maybe-configure-tk:
configure-tk:
@test ! -f tk/Makefile || exit 0; \
[ -d tk ] || mkdir tk; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21671,8 +21666,8 @@ configure-tk:
.PHONY: all-tk maybe-all-tk
maybe-all-tk:
all-tk: configure-tk
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
@@ -21680,8 +21675,8 @@ all-tk: configure-tk
maybe-check-tk:
check-tk:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
@@ -21690,8 +21685,8 @@ check-tk:
maybe-install-tk:
install-tk: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
@@ -21701,8 +21696,8 @@ maybe-configure-tix:
configure-tix:
@test ! -f tix/Makefile || exit 0; \
[ -d tix ] || mkdir tix; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21737,8 +21732,8 @@ configure-tix:
.PHONY: all-tix maybe-all-tix
maybe-all-tix:
all-tix: configure-tix
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
@@ -21746,8 +21741,8 @@ all-tix: configure-tix
maybe-check-tix:
check-tix:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
@@ -21756,8 +21751,8 @@ check-tix:
maybe-install-tix:
install-tix: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
@@ -21767,8 +21762,8 @@ maybe-configure-libtermcap:
configure-libtermcap:
@test ! -f libtermcap/Makefile || exit 0; \
[ -d libtermcap ] || mkdir libtermcap; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21803,8 +21798,8 @@ configure-libtermcap:
.PHONY: all-libtermcap maybe-all-libtermcap
maybe-all-libtermcap:
all-libtermcap: configure-libtermcap
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21818,8 +21813,8 @@ check-libtermcap:
maybe-install-libtermcap:
install-libtermcap: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21829,8 +21824,8 @@ maybe-configure-utils:
configure-utils:
@test ! -f utils/Makefile || exit 0; \
[ -d utils ] || mkdir utils; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -21865,8 +21860,8 @@ configure-utils:
.PHONY: all-utils maybe-all-utils
maybe-all-utils:
all-utils: configure-utils
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd utils && $(MAKE) $(FLAGS_TO_PASS) all)
@@ -21880,8 +21875,8 @@ check-utils:
maybe-install-utils:
install-utils: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd utils && $(MAKE) $(FLAGS_TO_PASS) install)
@@ -21896,17 +21891,15 @@ maybe-configure-target-libstdc++-v3:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libstdc++-v3/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || \
- mkdir $(TARGET_SUBDIR)/libstdc++-v3; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3 ; \
rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
@test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || \
- mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -21967,8 +21960,8 @@ configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
maybe-all-target-libstdc++-v3:
all-target-libstdc++-v3: configure-target-libstdc++-v3
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all)
@@ -21977,8 +21970,8 @@ all-target-libstdc++-v3: configure-target-libstdc++-v3
maybe-check-target-libstdc++-v3:
check-target-libstdc++-v3:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check)
@@ -21988,8 +21981,8 @@ check-target-libstdc++-v3:
maybe-install-target-libstdc++-v3:
install-target-libstdc++-v3: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22000,17 +21993,15 @@ maybe-configure-target-newlib:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/newlib/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/newlib ] || \
- mkdir $(TARGET_SUBDIR)/newlib; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/newlib ; \
rm -f $(TARGET_SUBDIR)/newlib/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/newlib/multilib.out
configure-target-newlib: $(TARGET_SUBDIR)/newlib/multilib.out
@test ! -f $(TARGET_SUBDIR)/newlib/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/newlib ] || \
- mkdir $(TARGET_SUBDIR)/newlib;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/newlib ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22070,8 +22061,8 @@ configure-target-newlib: $(TARGET_SUBDIR)/newlib/multilib.out
.PHONY: all-target-newlib maybe-all-target-newlib
maybe-all-target-newlib:
all-target-newlib: configure-target-newlib
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/newlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22080,8 +22071,8 @@ all-target-newlib: configure-target-newlib
maybe-check-target-newlib:
check-target-newlib:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/newlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22091,8 +22082,8 @@ check-target-newlib:
maybe-install-target-newlib:
install-target-newlib: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/newlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22103,17 +22094,15 @@ maybe-configure-target-libf2c:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libf2c/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libf2c ] || \
- mkdir $(TARGET_SUBDIR)/libf2c; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libf2c ; \
rm -f $(TARGET_SUBDIR)/libf2c/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libf2c/multilib.out
configure-target-libf2c: $(TARGET_SUBDIR)/libf2c/multilib.out
@test ! -f $(TARGET_SUBDIR)/libf2c/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libf2c ] || \
- mkdir $(TARGET_SUBDIR)/libf2c;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libf2c ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22173,8 +22162,8 @@ configure-target-libf2c: $(TARGET_SUBDIR)/libf2c/multilib.out
.PHONY: all-target-libf2c maybe-all-target-libf2c
maybe-all-target-libf2c:
all-target-libf2c: configure-target-libf2c
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libf2c && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22183,8 +22172,8 @@ all-target-libf2c: configure-target-libf2c
maybe-check-target-libf2c:
check-target-libf2c:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libf2c && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22194,8 +22183,8 @@ check-target-libf2c:
maybe-install-target-libf2c:
install-target-libf2c: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libf2c && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22206,17 +22195,15 @@ maybe-configure-target-libobjc:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libobjc/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libobjc ] || \
- mkdir $(TARGET_SUBDIR)/libobjc; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libobjc ; \
rm -f $(TARGET_SUBDIR)/libobjc/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libobjc/multilib.out
configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/multilib.out
@test ! -f $(TARGET_SUBDIR)/libobjc/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libobjc ] || \
- mkdir $(TARGET_SUBDIR)/libobjc;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libobjc ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22276,8 +22263,8 @@ configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/multilib.out
.PHONY: all-target-libobjc maybe-all-target-libobjc
maybe-all-target-libobjc:
all-target-libobjc: configure-target-libobjc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libobjc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22286,8 +22273,8 @@ all-target-libobjc: configure-target-libobjc
maybe-check-target-libobjc:
check-target-libobjc:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libobjc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22297,8 +22284,8 @@ check-target-libobjc:
maybe-install-target-libobjc:
install-target-libobjc: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libobjc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22309,17 +22296,15 @@ maybe-configure-target-libtermcap:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libtermcap/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libtermcap ] || \
- mkdir $(TARGET_SUBDIR)/libtermcap; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libtermcap ; \
rm -f $(TARGET_SUBDIR)/libtermcap/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libtermcap/multilib.out
configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/multilib.out
@test ! -f $(TARGET_SUBDIR)/libtermcap/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libtermcap ] || \
- mkdir $(TARGET_SUBDIR)/libtermcap;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libtermcap ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22379,8 +22364,8 @@ configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/multilib.out
.PHONY: all-target-libtermcap maybe-all-target-libtermcap
maybe-all-target-libtermcap:
all-target-libtermcap: configure-target-libtermcap
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libtermcap && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22396,8 +22381,8 @@ check-target-libtermcap:
maybe-install-target-libtermcap:
install-target-libtermcap: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libtermcap && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22408,17 +22393,15 @@ maybe-configure-target-winsup:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/winsup/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/winsup ] || \
- mkdir $(TARGET_SUBDIR)/winsup; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/winsup ; \
rm -f $(TARGET_SUBDIR)/winsup/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/winsup/multilib.out
configure-target-winsup: $(TARGET_SUBDIR)/winsup/multilib.out
@test ! -f $(TARGET_SUBDIR)/winsup/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/winsup ] || \
- mkdir $(TARGET_SUBDIR)/winsup;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/winsup ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22478,8 +22461,8 @@ configure-target-winsup: $(TARGET_SUBDIR)/winsup/multilib.out
.PHONY: all-target-winsup maybe-all-target-winsup
maybe-all-target-winsup:
all-target-winsup: configure-target-winsup
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/winsup && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22488,8 +22471,8 @@ all-target-winsup: configure-target-winsup
maybe-check-target-winsup:
check-target-winsup:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/winsup && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22499,8 +22482,8 @@ check-target-winsup:
maybe-install-target-winsup:
install-target-winsup: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/winsup && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22511,17 +22494,15 @@ maybe-configure-target-libgloss:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libgloss/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libgloss ] || \
- mkdir $(TARGET_SUBDIR)/libgloss; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgloss ; \
rm -f $(TARGET_SUBDIR)/libgloss/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libgloss/multilib.out
configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/multilib.out
@test ! -f $(TARGET_SUBDIR)/libgloss/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libgloss ] || \
- mkdir $(TARGET_SUBDIR)/libgloss;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgloss ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22581,8 +22562,8 @@ configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/multilib.out
.PHONY: all-target-libgloss maybe-all-target-libgloss
maybe-all-target-libgloss:
all-target-libgloss: configure-target-libgloss
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libgloss && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22598,8 +22579,8 @@ check-target-libgloss:
maybe-install-target-libgloss:
install-target-libgloss: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libgloss && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22610,17 +22591,15 @@ maybe-configure-target-libiberty:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libiberty/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libiberty ] || \
- mkdir $(TARGET_SUBDIR)/libiberty; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
rm -f $(TARGET_SUBDIR)/libiberty/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libiberty/multilib.out
configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/multilib.out
@test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libiberty ] || \
- mkdir $(TARGET_SUBDIR)/libiberty;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22680,8 +22659,8 @@ configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/multilib.out
.PHONY: all-target-libiberty maybe-all-target-libiberty
maybe-all-target-libiberty:
all-target-libiberty: configure-target-libiberty
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libiberty && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22690,8 +22669,8 @@ all-target-libiberty: configure-target-libiberty
maybe-check-target-libiberty:
check-target-libiberty:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libiberty && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22701,8 +22680,8 @@ check-target-libiberty:
maybe-install-target-libiberty:
install-target-libiberty: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libiberty && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22713,17 +22692,15 @@ maybe-configure-target-gperf:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/gperf/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/gperf ] || \
- mkdir $(TARGET_SUBDIR)/gperf; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/gperf ; \
rm -f $(TARGET_SUBDIR)/gperf/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/gperf/multilib.out
configure-target-gperf: $(TARGET_SUBDIR)/gperf/multilib.out
@test ! -f $(TARGET_SUBDIR)/gperf/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/gperf ] || \
- mkdir $(TARGET_SUBDIR)/gperf;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/gperf ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22783,8 +22760,8 @@ configure-target-gperf: $(TARGET_SUBDIR)/gperf/multilib.out
.PHONY: all-target-gperf maybe-all-target-gperf
maybe-all-target-gperf:
all-target-gperf: configure-target-gperf
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/gperf && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22793,8 +22770,8 @@ all-target-gperf: configure-target-gperf
maybe-check-target-gperf:
check-target-gperf:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/gperf && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -22804,8 +22781,8 @@ check-target-gperf:
maybe-install-target-gperf:
install-target-gperf: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/gperf && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -22816,17 +22793,15 @@ maybe-configure-target-examples:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/examples/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/examples ] || \
- mkdir $(TARGET_SUBDIR)/examples; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/examples ; \
rm -f $(TARGET_SUBDIR)/examples/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/examples/multilib.out
configure-target-examples: $(TARGET_SUBDIR)/examples/multilib.out
@test ! -f $(TARGET_SUBDIR)/examples/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/examples ] || \
- mkdir $(TARGET_SUBDIR)/examples;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/examples ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22886,8 +22861,8 @@ configure-target-examples: $(TARGET_SUBDIR)/examples/multilib.out
.PHONY: all-target-examples maybe-all-target-examples
maybe-all-target-examples:
all-target-examples: configure-target-examples
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/examples && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22911,17 +22886,15 @@ maybe-configure-target-libffi:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libffi/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libffi ] || \
- mkdir $(TARGET_SUBDIR)/libffi; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libffi ; \
rm -f $(TARGET_SUBDIR)/libffi/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libffi/multilib.out
configure-target-libffi: $(TARGET_SUBDIR)/libffi/multilib.out
@test ! -f $(TARGET_SUBDIR)/libffi/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libffi ] || \
- mkdir $(TARGET_SUBDIR)/libffi;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libffi ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -22981,8 +22954,8 @@ configure-target-libffi: $(TARGET_SUBDIR)/libffi/multilib.out
.PHONY: all-target-libffi maybe-all-target-libffi
maybe-all-target-libffi:
all-target-libffi: configure-target-libffi
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libffi && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -22991,8 +22964,8 @@ all-target-libffi: configure-target-libffi
maybe-check-target-libffi:
check-target-libffi:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libffi && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -23002,8 +22975,8 @@ check-target-libffi:
maybe-install-target-libffi:
install-target-libffi: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libffi && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23014,17 +22987,15 @@ maybe-configure-target-libjava:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/libjava/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/libjava ] || \
- mkdir $(TARGET_SUBDIR)/libjava; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libjava ; \
rm -f $(TARGET_SUBDIR)/libjava/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/libjava/multilib.out
configure-target-libjava: $(TARGET_SUBDIR)/libjava/multilib.out
@test ! -f $(TARGET_SUBDIR)/libjava/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/libjava ] || \
- mkdir $(TARGET_SUBDIR)/libjava;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libjava ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -23085,8 +23056,8 @@ configure-target-libjava: $(TARGET_SUBDIR)/libjava/multilib.out
.PHONY: all-target-libjava maybe-all-target-libjava
maybe-all-target-libjava:
all-target-libjava: configure-target-libjava
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libjava && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all)
@@ -23095,8 +23066,8 @@ all-target-libjava: configure-target-libjava
maybe-check-target-libjava:
check-target-libjava:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libjava && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check)
@@ -23106,8 +23077,8 @@ check-target-libjava:
maybe-install-target-libjava:
install-target-libjava: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/libjava && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23118,17 +23089,15 @@ maybe-configure-target-zlib:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/zlib/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/zlib ] || \
- mkdir $(TARGET_SUBDIR)/zlib; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib ; \
rm -f $(TARGET_SUBDIR)/zlib/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/zlib/multilib.out
configure-target-zlib: $(TARGET_SUBDIR)/zlib/multilib.out
@test ! -f $(TARGET_SUBDIR)/zlib/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/zlib ] || \
- mkdir $(TARGET_SUBDIR)/zlib;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -23188,8 +23157,8 @@ configure-target-zlib: $(TARGET_SUBDIR)/zlib/multilib.out
.PHONY: all-target-zlib maybe-all-target-zlib
maybe-all-target-zlib:
all-target-zlib: configure-target-zlib
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/zlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -23198,8 +23167,8 @@ all-target-zlib: configure-target-zlib
maybe-check-target-zlib:
check-target-zlib:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/zlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -23209,8 +23178,8 @@ check-target-zlib:
maybe-install-target-zlib:
install-target-zlib: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/zlib && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23221,17 +23190,15 @@ maybe-configure-target-boehm-gc:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/boehm-gc/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/boehm-gc ] || \
- mkdir $(TARGET_SUBDIR)/boehm-gc; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/boehm-gc ; \
rm -f $(TARGET_SUBDIR)/boehm-gc/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/boehm-gc/multilib.out
configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/multilib.out
@test ! -f $(TARGET_SUBDIR)/boehm-gc/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/boehm-gc ] || \
- mkdir $(TARGET_SUBDIR)/boehm-gc;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/boehm-gc ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -23291,8 +23258,8 @@ configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/multilib.out
.PHONY: all-target-boehm-gc maybe-all-target-boehm-gc
maybe-all-target-boehm-gc:
all-target-boehm-gc: configure-target-boehm-gc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/boehm-gc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -23301,8 +23268,8 @@ all-target-boehm-gc: configure-target-boehm-gc
maybe-check-target-boehm-gc:
check-target-boehm-gc:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/boehm-gc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -23312,8 +23279,8 @@ check-target-boehm-gc:
maybe-install-target-boehm-gc:
install-target-boehm-gc: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/boehm-gc && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23324,17 +23291,15 @@ maybe-configure-target-qthreads:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/qthreads/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/qthreads ] || \
- mkdir $(TARGET_SUBDIR)/qthreads; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/qthreads ; \
rm -f $(TARGET_SUBDIR)/qthreads/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/qthreads/multilib.out
configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/multilib.out
@test ! -f $(TARGET_SUBDIR)/qthreads/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/qthreads ] || \
- mkdir $(TARGET_SUBDIR)/qthreads;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/qthreads ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -23394,8 +23359,8 @@ configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/multilib.out
.PHONY: all-target-qthreads maybe-all-target-qthreads
maybe-all-target-qthreads:
all-target-qthreads: configure-target-qthreads
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/qthreads && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -23404,8 +23369,8 @@ all-target-qthreads: configure-target-qthreads
maybe-check-target-qthreads:
check-target-qthreads:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/qthreads && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -23415,8 +23380,8 @@ check-target-qthreads:
maybe-install-target-qthreads:
install-target-qthreads: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/qthreads && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23427,17 +23392,15 @@ maybe-configure-target-rda:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/rda/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/rda ] || \
- mkdir $(TARGET_SUBDIR)/rda; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/rda ; \
rm -f $(TARGET_SUBDIR)/rda/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/rda/multilib.out
configure-target-rda: $(TARGET_SUBDIR)/rda/multilib.out
@test ! -f $(TARGET_SUBDIR)/rda/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/rda ] || \
- mkdir $(TARGET_SUBDIR)/rda;\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/rda ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -23497,8 +23460,8 @@ configure-target-rda: $(TARGET_SUBDIR)/rda/multilib.out
.PHONY: all-target-rda maybe-all-target-rda
maybe-all-target-rda:
all-target-rda: configure-target-rda
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/rda && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all)
@@ -23507,8 +23470,8 @@ all-target-rda: configure-target-rda
maybe-check-target-rda:
check-target-rda:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/rda && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check)
@@ -23518,8 +23481,8 @@ check-target-rda:
maybe-install-target-rda:
install-target-rda: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/rda && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -23540,8 +23503,8 @@ maybe-configure-gcc:
configure-gcc:
@test ! -f gcc/Makefile || exit 0; \
[ -d gcc ] || mkdir gcc; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -23581,13 +23544,13 @@ configure-gcc:
maybe-all-gcc:
all-gcc: configure-gcc
@if [ -f gcc/stage_last ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \
else \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
fi
@@ -23605,13 +23568,13 @@ all-gcc: configure-gcc
GCC_STRAP_TARGETS = bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
.PHONY: $(GCC_STRAP_TARGETS)
$(GCC_STRAP_TARGETS): all-bootstrap configure-gcc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
case "$@" in \
*bootstrap4-lean ) \
msg="Comparing stage3 and stage4 of the compiler"; \
@@ -23629,38 +23592,38 @@ $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc
$(SET_LIB_PATH) \
echo "$$msg"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
profiledbootstrap: all-bootstrap configure-gcc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stageprofile_build
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries and training compiler"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building feedback based compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stagefeedback_build
.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building the C and C++ compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
@@ -23670,8 +23633,8 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
maybe-check-gcc:
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
else \
@@ -23681,8 +23644,8 @@ check-gcc:
.PHONY: check-gcc-c++
check-gcc-c++:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
else \
@@ -23690,15 +23653,14 @@ check-gcc-c++:
fi
.PHONY: check-c++
-check-c++:
- $(MAKE) check-target-libstdc++-v3 check-gcc-c++
+check-c++: check-target-libstdc++-v3 check-gcc-c++
.PHONY: install-gcc maybe-install-gcc
maybe-install-gcc:
install-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
else \
@@ -23717,8 +23679,8 @@ gcc-no-fixedincludes:
cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
touch gcc/stmp-fixinc gcc/include/fixed; \
rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
(cd ./gcc && \
$(MAKE) $(GCC_FLAGS_TO_PASS) install); \
@@ -23739,12 +23701,13 @@ gcc-no-fixedincludes:
# Host modules specific to gcc.
# GCC needs to identify certain tools.
-configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
-all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+# GCC also needs the information exported by the intl configure script.
+configure-gcc: maybe-configure-intl maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
+all-gcc: maybe-all-libiberty maybe-all-intl maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
# This is a slightly kludgy method of getting dependencies on
# all-build-libiberty correct; it would be better to build it every time.
all-gcc: maybe-all-build-libiberty
-all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+all-bootstrap: maybe-all-libiberty maybe-all-intl maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
# Host modules specific to gdb.
# GDB needs to know that the simulator is being built.
@@ -23799,7 +23762,7 @@ all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
all-gzip: maybe-all-libiberty
all-hello: maybe-all-libiberty
all-m4: maybe-all-libiberty maybe-all-texinfo
-all-make: maybe-all-libiberty
+all-make: maybe-all-libiberty maybe-all-intl
all-patch: maybe-all-libiberty
all-prms: maybe-all-libiberty
all-recode: maybe-all-libiberty
@@ -23862,7 +23825,7 @@ configure-target-qthreads: $(ALL_GCC_C)
# We use move-if-change so that it's only considered updated when it
# actually changes, because it has to depend on a phony target.
multilib.out: maybe-all-gcc
- @r=`${PWD}`; export r; \
+ @r=`${PWD_COMMAND}`; export r; \
echo "Checking multilib configuration..."; \
$(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \
$(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \
diff --git a/Makefile.tpl b/Makefile.tpl
index 2c8830f..8ec6551 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -64,14 +64,10 @@ man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
-# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
-# cygwin host.
-INSTALL_PROGRAM_ARGS =
-
-INSTALL = $(SHELL) $$s/install-sh -c
-INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
-INSTALL_SCRIPT = $(INSTALL)
-INSTALL_DATA = $(INSTALL) -m 644
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_DATA = @INSTALL_DATA@
# -------------------------------------------------
# Miscellaneous non-standard autoconf-set variables
@@ -92,7 +88,7 @@ tooldir = @tooldir@
build_tooldir = @build_tooldir@
# Directory in which the compiler finds executables, libraries, etc.
-libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
+libsubdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)
GDB_NLM_DEPS =
# This is the name of the environment variable used for the path to
@@ -142,7 +138,9 @@ SHELL = @config_shell@
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
-PWD = $${PWDCMD-pwd}
+# Don't use PWD since it is a common shell environment variable and we
+# don't want to corrupt it.
+PWD_COMMAND = $${PWDCMD-pwd}
# compilers to use to create programs which must be run in the build
# environment.
@@ -389,70 +387,9 @@ all: all.normal
###
# Flags to pass down to all sub-makes.
-# Please keep these in alphabetical order.
-BASE_FLAGS_TO_PASS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
- "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
- "BISON=$(BISON)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
- "CFLAGS=$(CFLAGS)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
- "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
- "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
- "DESTDIR=$(DESTDIR)" \
- "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LEX=$(LEX)" \
- "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
- "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
- "M4=$(M4)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
- "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
- "RPATH_ENVVAR=$(RPATH_ENVVAR)" \
- "SHELL=$(SHELL)" \
- "EXPECT=$(EXPECT)" \
- "RUNTEST=$(RUNTEST)" \
- "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
- "TARGET_SUBDIR=$(TARGET_SUBDIR)" \
- "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
- "YACC=$(YACC)" \
- "bindir=$(bindir)" \
- "datadir=$(datadir)" \
- "exec_prefix=$(exec_prefix)" \
- "includedir=$(includedir)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "libexecdir=$(libexecdir)" \
- "lispdir=$(lispdir)" \
- "libstdcxx_incdir=$(libstdcxx_incdir)" \
- "libsubdir=$(libsubdir)" \
- "localstatedir=$(localstatedir)" \
- "mandir=$(mandir)" \
- "oldincludedir=$(oldincludedir)" \
- "prefix=$(prefix)" \
- "sbindir=$(sbindir)" \
- "sharedstatedir=$(sharedstatedir)" \
- "sysconfdir=$(sysconfdir)" \
- "tooldir=$(tooldir)" \
- "build_tooldir=$(build_tooldir)" \
- "gxx_include_dir=$(gxx_include_dir)" \
- "gcc_version=$(gcc_version)" \
- "gcc_version_trigger=$(gcc_version_trigger)" \
- "target_alias=$(target_alias)"
+BASE_FLAGS_TO_PASS = [+ FOR flags_to_pass +]\
+ "[+flag+]=$([+flag+])" [+ ENDFOR flags_to_pass +]\
+ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)"
# For any flags above that may contain shell code that varies from one
# target library to another. When doing recursive invocations of the
@@ -595,8 +532,8 @@ maybe-[+make_target+]-gcc:
[+depend+]-gcc [+
ENDFOR depend +]
@[ -f ./gcc/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_GCC_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -623,8 +560,8 @@ maybe-[+make_target+]-[+module+]:
[+depend+]-[+module+] [+
ENDFOR depend +]
@[ -f ./[+module+]/Makefile ] || exit 0; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for flag in $(EXTRA_HOST_FLAGS); do \
eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
@@ -653,8 +590,8 @@ maybe-[+make_target+]-target-[+module+]:
[+depend+]-target-[+module+] [+
ENDFOR depend +]
@[ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] || exit 0 ; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Doing [+make_target+] in $(TARGET_SUBDIR)/[+module+]" ; \
for flag in $(EXTRA_TARGET_FLAGS); do \
@@ -685,7 +622,7 @@ dvi: do-dvi
do-info: maybe-all-texinfo
install-info: do-install-info dir.info
- s=`cd $(srcdir); ${PWD}`; export s; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
if [ -f dir.info ] ; then \
$(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \
else true ; fi
@@ -728,8 +665,7 @@ clean-target-libgcc:
# Check target.
.PHONY: check do-check
-check:
- $(MAKE) do-check
+check: do-check
# Only include modules actually being configured and built.
do-check: maybe-check-gcc [+
@@ -790,7 +726,7 @@ uninstall:
.PHONY: install.all
install.all: install-no-fixedincludes
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}` ; export r ; \
+ r=`${PWD_COMMAND}` ; export r ; \
$(SET_LIB_PATH) \
(cd ./gcc && \
$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
@@ -842,10 +778,9 @@ TAGS: do-TAGS
maybe-configure-build-[+module+]:
configure-build-[+module+]:
@test ! -f $(BUILD_SUBDIR)/[+module+]/Makefile || exit 0; \
- [ -d $(BUILD_SUBDIR)/[+module+] ] || \
- mkdir $(BUILD_SUBDIR)/[+module+];\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/[+module+] ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
@@ -903,8 +838,8 @@ configure-build-[+module+]:
.PHONY: all-build-[+module+] maybe-all-build-[+module+]
maybe-all-build-[+module+]:
all-build-[+module+]: configure-build-[+module+]
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
(cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all)
[+ ENDFOR build_modules +]
@@ -917,8 +852,8 @@ maybe-configure-[+module+]:
configure-[+module+]:
@test ! -f [+module+]/Makefile || exit 0; \
[ -d [+module+] ] || mkdir [+module+]; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -953,8 +888,8 @@ configure-[+module+]:
.PHONY: all-[+module+] maybe-all-[+module+]
maybe-all-[+module+]:
all-[+module+]: configure-[+module+]
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
@@ -969,8 +904,8 @@ check-[+module+]:
# This module is only tested in a native toolchain.
check-[+module+]:
@if [ '$(host)' = '$(target)' ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
@@ -979,8 +914,8 @@ check-[+module+]:
fi
[+ ELSE check +]
check-[+module+]:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
@@ -994,8 +929,8 @@ maybe-install-[+module+]:
install-[+module+]:
[+ ELSE install +]
install-[+module+]: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+
IF with_x
@@ -1013,17 +948,15 @@ maybe-configure-target-[+module+]:
# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
$(TARGET_SUBDIR)/[+module+]/multilib.out: multilib.out
- @[ -d $(TARGET_SUBDIR)/[+module+] ] || \
- mkdir $(TARGET_SUBDIR)/[+module+]; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/[+module+] ; \
rm -f $(TARGET_SUBDIR)/[+module+]/Makefile || : ; \
cp multilib.out $(TARGET_SUBDIR)/[+module+]/multilib.out
configure-target-[+module+]: $(TARGET_SUBDIR)/[+module+]/multilib.out
@test ! -f $(TARGET_SUBDIR)/[+module+]/Makefile || exit 0; \
- [ -d $(TARGET_SUBDIR)/[+module+] ] || \
- mkdir $(TARGET_SUBDIR)/[+module+];\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/[+module+] ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -1088,8 +1021,8 @@ ENDIF raw_cxx +]
.PHONY: all-target-[+module+] maybe-all-target-[+module+]
maybe-all-target-[+module+]:
all-target-[+module+]: configure-target-[+module+]
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/[+module+] && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) [+
@@ -1105,8 +1038,8 @@ maybe-check-target-[+module+]:
check-target-[+module+]:
[+ ELSE check +]
check-target-[+module+]:
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/[+module+] && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) [+
@@ -1123,8 +1056,8 @@ maybe-install-target-[+module+]:
install-target-[+module+]:
[+ ELSE install +]
install-target-[+module+]: installdirs
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/[+module+] && \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install)
@@ -1145,8 +1078,8 @@ maybe-configure-gcc:
configure-gcc:
@test ! -f gcc/Makefile || exit 0; \
[ -d gcc ] || mkdir gcc; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
CC="$(CC)"; export CC; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CXX="$(CXX)"; export CXX; \
@@ -1186,13 +1119,13 @@ configure-gcc:
maybe-all-gcc:
all-gcc: configure-gcc
@if [ -f gcc/stage_last ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \
else \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
fi
@@ -1210,13 +1143,13 @@ all-gcc: configure-gcc
GCC_STRAP_TARGETS = bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
.PHONY: $(GCC_STRAP_TARGETS)
$(GCC_STRAP_TARGETS): all-bootstrap configure-gcc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
case "$@" in \
*bootstrap4-lean ) \
msg="Comparing stage3 and stage4 of the compiler"; \
@@ -1234,38 +1167,38 @@ $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc
$(SET_LIB_PATH) \
echo "$$msg"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
profiledbootstrap: all-bootstrap configure-gcc
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stageprofile_build
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries and training compiler"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building feedback based compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stagefeedback_build
.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building the C and C++ compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
@@ -1275,8 +1208,8 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
maybe-check-gcc:
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
else \
@@ -1286,8 +1219,8 @@ check-gcc:
.PHONY: check-gcc-c++
check-gcc-c++:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
else \
@@ -1295,15 +1228,14 @@ check-gcc-c++:
fi
.PHONY: check-c++
-check-c++:
- $(MAKE) check-target-libstdc++-v3 check-gcc-c++
+check-c++: check-target-libstdc++-v3 check-gcc-c++
.PHONY: install-gcc maybe-install-gcc
maybe-install-gcc:
install-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
else \
@@ -1322,8 +1254,8 @@ gcc-no-fixedincludes:
cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
touch gcc/stmp-fixinc gcc/include/fixed; \
rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
(cd ./gcc && \
$(MAKE) $(GCC_FLAGS_TO_PASS) install); \
@@ -1344,12 +1276,13 @@ gcc-no-fixedincludes:
# Host modules specific to gcc.
# GCC needs to identify certain tools.
-configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
-all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+# GCC also needs the information exported by the intl configure script.
+configure-gcc: maybe-configure-intl maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
+all-gcc: maybe-all-libiberty maybe-all-intl maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
# This is a slightly kludgy method of getting dependencies on
# all-build-libiberty correct; it would be better to build it every time.
all-gcc: maybe-all-build-libiberty
-all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+all-bootstrap: maybe-all-libiberty maybe-all-intl maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
# Host modules specific to gdb.
# GDB needs to know that the simulator is being built.
@@ -1404,7 +1337,7 @@ all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
all-gzip: maybe-all-libiberty
all-hello: maybe-all-libiberty
all-m4: maybe-all-libiberty maybe-all-texinfo
-all-make: maybe-all-libiberty
+all-make: maybe-all-libiberty maybe-all-intl
all-patch: maybe-all-libiberty
all-prms: maybe-all-libiberty
all-recode: maybe-all-libiberty
@@ -1467,7 +1400,7 @@ configure-target-qthreads: $(ALL_GCC_C)
# We use move-if-change so that it's only considered updated when it
# actually changes, because it has to depend on a phony target.
multilib.out: maybe-all-gcc
- @r=`${PWD}`; export r; \
+ @r=`${PWD_COMMAND}`; export r; \
echo "Checking multilib configuration..."; \
$(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \
$(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2e1a2a3..58b1aee 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,1167 @@
+2003-08-21 Randolph Chung <tausq@debian.org>
+
+ * elf32-hppa.c (elf32_hppa_object_p): For elf32-hppa-linux, objects
+ can have OSABI=Linux or OSABI=SysV. Check for both.
+ * elf64-hppa.c (elf64_hppa_object_p): Likewise.
+
+2003-08-21 Nick Clifton <nickc@redhat.com>
+
+ * po/sv.po: Updated Swedish translation.
+
+2003-08-20 Richard Sandiford <rsandifo@redhat.com>
+
+ * elf64-mips.c (elf_backend_copy_indirect_symbol): Define.
+
+2003-08-20 Nick Clifton <nickc@redhat.com>
+
+ * elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): New macro used to
+ replace some duplicated code in most elfxx-xxxx.c files. This
+ version uses the new fields in bfd_link_info.
+
+ * elf-m10300.c (mn10300_elf_relocate_section): Use new macro.
+ * elf32-arm.h (elf32_arm_relocate_section): Likewise.
+ * elf32-cris.c (cris_elf_relocate_section): Likewise.
+ * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+ * elf32-i386.c (elf_i386_relocate_section): Likewise.
+ * elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
+ * elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
+ * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf32-vax.c (elf_vax_relocate_section): Likewise.
+ * elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+
+ * elf-hppa.h (elf_hppa_unmark_useless_dynamic_symbols,
+ elf_hppa_remark_useless_dynamic_symbols,
+ elf_hppa_relocate_section): Use the new fields in
+ bfd_link_info structure.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
+ * elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
+ * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.
+ * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
+
+ * elflink.h (elf_link_output_extsym): Fix test for reporting
+ undefined symbols in shared libraries. Remove redundant test
+ of shlib_undefined when reporting references to forced local
+ symbols.
+
+2003-08-18 Andreas Schwab <schwab@suse.de>
+
+ * libpei.h (bfd_pe_executable_p): Also recognize efi-app
+ executables.
+
+2003-08-17 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * simple.c (bfd_simple_get_relocated_section_contents): Move
+ reloc_done hack to before first bfd_section_size call. Change all
+ returns to use new wrapper macro RETURN, restoring sec->reloc_done.
+
+2003-08-16 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c: Don't include elf/ppc.h.
+
+2003-08-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Fix PT_DYNAMIC
+ code to work with 64-bit bfds.
+
+2003-08-14 Alan Modra <amodra@bigpond.net.au>
+
+ * dep-in.sed: Remove libintl.h.
+ * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Unset LC_COLLATE.
+ (POTFILES.in): Remove target.
+ * Makefile.in: Regenerate.
+
+2003-08-12 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_next_input_section): Update comment.
+ (ppc64_elf_relocate_section): For zero sym R_PPC64_TOC relocs,
+ use the function sym from the previous reloc.
+
+2003-08-11 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-i386.c (elf_i386_relocate_section): Make undefined symbols
+ fatal if -pie.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ (ppc_elf_relocate_section) <case R_PPC_RELAX32>: Issue fatal error
+ on undefined symbols if -pie.
+ * elf32-sh.c (sh_elf_relocate_section): Likewise.
+
+2003-08-11 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
+ branch to __libc_start_main.
+
+2003-08-08 Dmitry Diky <diwil@mail.ru>
+
+ * archures.c: Add xW42 and xE42 parts. Sort MPU list according to
+ gcc order.
+ * cpu-msp430.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * bfd-in2.h: Regenerate.
+
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * elfxx-target.h: Remove PTR cast.
+ * targets.c (bfd_target): Make backend_data const void *.
+ * elf-bfd.h: Constify all occurrences of struct elf_backend_data.
+ * elf-m10300.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-hppa.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-m68hc1x.c: Likewise.
+ * elf32-ppc.c: Likewise.
+ * elf32-s390.c: Likewise.
+ * elf32-sh.c: Likewise.
+ * elf32-sh64.c: Likewise.
+ * elf32-sparc.c: Likewise.
+ * elf32-xtensa.c: Likewise.
+ * elf64-mips.c: Likewise.
+ * elf64-ppc.c: Likewise.
+ * elf64-s390.c: Likewise.
+ * elf64-sh64.c: Likewise.
+ * elf64-sparc.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elfcode.h: Likewise.
+ * elfcore.h: Likewise.
+ * elflink.c: Likewise.
+ * elflink.h: Likewise.
+ * elfxx-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * elfxx-mips.h: Likewise.
+ * elf.c (prep_headers): Remove useless check for null backend_data.
+ * bfd-in2.h: Regenerate.
+
+ * elf-bfd.h: Remove PARAMS macro. Replace PTR with void *.
+ (NAME): Use ## rather than CONCAT4 macro.
+ * elfcode.h: Remove one remaining PARAMS macro.
+ * elf-eh-frame.c: Convert to C90, remove unneeded casts and prototypes.
+ * elf-strtab.c: Likewise.
+ * elf-hppa.h: Likewise.
+ * elf32-hppa.h: Likewise.
+ * elf32-hppa.c: Likewise.
+ (elf32_hppa_add_symbol_hook): Delete.
+ (elf_backend_add_symbol_hook): Don't define.
+ * libhppa.h: Convert to C90. Replace INLINE with inline.
+
+2003-08-06 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc_stub_name): Tweak names for better readability.
+ (ppc64_elf_adjust_dynamic_symbol): Allow copy relocs against
+ function descriptors, but warn.
+ (ppc_build_one_stub): Remove a couple of vars. Move code creating
+ stub syms so that we can avoid a stub sym if we already have a
+ plt sym. Do not redefine an existing symbol.
+ (ppc64_elf_build_stubs): When --emit-stub-syms, print a symbol for
+ glink.
+
+2003-08-06 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2003-08-06 Alan Modra <amodra@bigpond.net.au>
+
+ * elflink.c (_bfd_elf_create_dynamic_sections): Mark .dynbss with
+ SEC_LINKER_CREATED.
+
+2003-08-05 Daniel Jacobowitz <drow@mvista.com>
+
+ * elf32-arm.h (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+ (elf32_arm_final_link_relocate, elf32_arm_relocate_section): Use it.
+
+2003-08-03 Jeff Muizelaar <muizelaar@rogers.com>
+
+ * coffcode.h (coff_slurp_line_table): Return with a warning
+ message if the line number table could not be read.
+
+2003-08-04 Nick Clifton <nickc@redhat.com>
+
+ * elflink.h (elf_link_add_object_symbols): Prepend "warning: "
+ to messages produced for .gnu.warning.SYMBOL sections.
+
+2003-08-04 Alan Modra <amodra@bigpond.net.au>
+
+ * elfcode.h: Convert to C90, remove unneeded casts and prototypes.
+ * elfcore.h: Likewise.
+ * elflink.c: Likewise.
+ * elflink.h: Likewise.
+ * elf.c (sym_is_global): Remove INLINE.
+ (align_file_position): Replace INLINE with inline.
+ * elfcode.h (elf_swap_dyn_in, elf_swap_dyn_out): Remove INLINE.
+ (elf_file_p): Replace INLINE with inline.
+
+2003-08-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here.
+
+2003-08-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-ia64.c (get_got): Align the .got section at 8 bytes.
+
+2003-08-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Use
+ ElfNN_External_Rela instead of Elf64_External_Rela.
+
+2003-08-01 Nick Clifton <nickc@redhat.com>
+
+ * config.bfd: Add code to catch obsolete configurations and warn
+ about them unless --enable-obsolete is used. Use this to mark
+ vax-vms port as obsolete.
+
+2003-07-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (ppc_elf_install_value): Tidy.
+ (ppc_elf_relax_section): Remove dead code. Remove unnecessary casts.
+ Formatting.
+ * elfxx-target.h: Remove PARAMS macro. Formatting.
+
+2003-07-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (bfd_section_from_r_symndx): Test for SHN_UNDEF.
+ * elf64-ppc.c (get_fdh): New function, split out from
+ ppc64_elf_edit_opd.
+ (ppc64_elf_check_relocs): Use get_fdh.
+ (func_desc_adjust): Likewise. Tidy.
+ (ppc64_elf_edit_opd): Tighten reloc checks. Free local_syms on error
+ exit. Use get_fdh. Account for superfluous dynamic relocs.
+ (ppc64_elf_relocate_section): Warning fix.
+
+2003-07-30 Jason Eckhardt <jle@rice.edu>
+
+ * coff-i860.c: Convert to ISO C90. Remove superflous prototypes.
+
+2003-07-30 Jason Eckhardt <jle@rice.edu>
+
+ * elf32-i860.c: Convert to ISO C90. Remove superflous prototypes.
+
+2003-07-30 Randolph Chung <tausq@debian.org>
+
+ * elf-hppa.h (elf_hppa_relocate_section): Look up dyn_h for undefweak.
+ * elf64-hppa.c (elf64_hppa_finalize_dlt): Check h->root.type.
+
+2003-07-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c: Convert to C90, remove unnecessary prototypes and casts.
+ Replace PTR with void *. Formatting.
+ (_bfd_elf_assign_file_position_for_section): Remove INLINE.
+ (make_mapping): Likewise.
+
+2003-07-29 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (func_desc_adjust): Give linker created function
+ descriptor symbols a size and type.
+ (ppc64_elf_relocate_section): Correct lq insn test.
+
+2003-07-28 Eric Christopher <echristo@redhat.com>
+
+ * elf32-ppc.c (R_PPC_RELAX32): New relocation.
+ (ppc_elf_install_value): New function.
+ (ppc_elf_sort_rela): Remove.
+ (ppc_elf_relax_section): Rewrite. Remove old relaxation
+ and replace with out of range branch stubs.
+ (ppc_elf_relocate_section): Handle R_PPC_RELAX32.
+
+2003-07-29 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf-m10300.c (mn10300_elf_relax_section): Take symbol hash table
+ from input_bfd.
+
+2003-07-28 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (special_sections): Set attributes for .got and .plt.
+
+2003-07-27 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Ensure no copy relocs
+ on function descriptors.
+ (ELIMINATE_COPY_RELOCS): Expand comment.
+ (ppc64_elf_special_sections): Move. Don't include non-ppc64 sections.
+ Do include ".toc1".
+
+2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (_bfd_elf_new_section_hook): Set the default section
+ type to SHT_NULL.
+ (elf_fake_sections): Set the section type based on asect->flags
+ if it is SHT_NULL. Don't abort on processor specific section
+ types.
+
+2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bfd-in2.h: Regenerated.
+
+2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf-bfd.h (bfd_elf_special_section): New.
+ (elf_backend_data): Add special_sections, a pointer to
+ bfd_elf_special_section.
+ (elf_section_type). New.
+ (elf_section_flags): New.
+ (_bfd_elf_get_sec_type_attr): New.
+
+ * elf.c (_bfd_elf_make_section_from_shdr): Always use the
+ real section type/flags.
+ (special_sections): New.
+ (get_special_section): New.
+ (_bfd_elf_get_sec_type_attr): New.
+ (_bfd_elf_new_section_hook): Check special_section to set
+ elf_section_type and elf_section_flags.
+ (elf_fake_sections): Don't use section name to set ELF section
+ data.
+
+ * elf32-m32r.c (m32r_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-m68hc11.c (elf32_m68hc11_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-mcore.c (mcore_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-ppc.c (ppc_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-sh64.c (sh64_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-v850.c (v850_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf32-xtensa.c (elf_xtensa_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf64-alpha.c (elf64_alpha_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf64-hppa.c (elf64_hppa_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf64-ppc.c (ppc64_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elf64-sh64.c (sh64_elf64_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elfxx-ia64.c (elfNN_ia64_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elfxx-mips.c (_bfd_mips_elf_special_sections): New.
+
+ * elfxx-mips.h (_bfd_mips_elf_special_sections): New.
+ (elf_backend_special_sections): Defined.
+
+ * elfxx-target.h (elf_backend_special_sections): New. Default
+ to NULL.
+ (elfNN_bed): Initialize special_sections.
+
+ * section.c (bfd_abs_section): Remove const.
+ (bfd_und_section): Likewise.
+ (bfd_com_section): Likewise.
+ (bfd_ind_section): Likewise.
+
+2003-07-24 Nick Clifton <nickc@redhat.com>
+
+ * coff-arm.c (EXTRA_S_FLAGS): Include SEC_CODE so that code
+ sections are assigned the LOAD attribute.
+
+2003-07-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c: Convert to C90. Replace PTR with void *.
+ * elf32-sh64-com.c: Likewise.
+ * elf32-sh64.c: Likewise.
+ * elf32-sh64.h: Likewise.
+ * elf64-sh64.c: Likewise.
+
+2003-07-24 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c (sh_elf_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL.
+ (allocate_dynrelocs): Likewise.
+ (sh_elf_relocate_section): Likewise. Use SYMBOL_REFERENCES_LOCAL.
+ (sh_elf_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL.
+
+2003-07-24 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2003-07-23 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Make inline and move
+ near the beginning of the file. Swap order of arguments. Call
+ _bfd_elf_dynamic_symbol_p with "ignore_protected" set to 0.
+ (elf_xtensa_fix_refcounts): Adjust xtensa_elf_dynamic_symbol_p call.
+ (elf_xtensa_relocate_section): Likewise.
+ (shrink_dynamic_reloc_sections): Likewise.
+
+2003-07-23 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (plt_reloc_count): Fix typo in comment.
+ (elf_xtensa_size_dynamic_sections): Use elf_discarded_section.
+ (elf_xtensa_combine_prop_entries): Avoid returning non-zero without
+ first printing an error message.
+ (elf_xtensa_finish_dynamic_sections): Likewise.
+ (elf_xtensa_discard_info_for_section): Adjust size of .got.loc when
+ discarding literal table entries.
+ (elf_xtensa_merge_private_bfd_data): Remove newline from error message.
+ (elf_xtensa_do_asm_simplify): Likewise.
+
+2003-07-23 Stephane Carrez <stcarrez@nerim.fr>
+
+ * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Avoid crash when
+ we have a local symbol in common section.
+
+2003-07-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_dynamic_symbol_p): Don't return TRUE for
+ weak symbols.
+
+2003-07-22 Nick Clifton <nickc@redhat.com>
+
+ * coffcode.h (coff_slurp_symbol_table): Add C_TCSYM and C_ECOML to
+ expected RS6000 storage classes.
+
+2003-07-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Mark
+ output_bfd unused to silence gcc.
+
+2003-07-21 Nick Clifton <nickc@redhat.com>
+
+ * po/sv.po: Updated Swedish translation.
+
+2003-07-21 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Use..
+ (_bfd_elf_symbol_refs_local_p): ..this. Declare.
+ * elflink.c (_bfd_elf_symbol_refs_local_p): New function.
+ * elf32-i386.c (elf_i386_relocate_section): Remove h NULL test
+ now done in _bfd_elf_symbol_refs_local_p.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+
+2003-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_dynamic_symbol_p): Undo the last change.
+
+2003-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf-bfd.h (SYMBOL_REFERENCES_LOCAL): Fix a typo.
+ (SYMBOL_CALLS_LOCAL): Likewise.
+
+ * elflink.c (_bfd_elf_dynamic_symbol_p): Return TRUE
+ immediately if symbol isn't defined locally.
+
+2003-07-18 Richard Henderson <rth@redhat.com>
+
+ * elflink.c (_bfd_elf_dynamic_symbol_p): New.
+ * elf-bfd.h (_bfd_elf_dynamic_symbol_p): Declare it.
+ (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Use it.
+ * elf32-xtensa.c (xtensa_elf_dynamic_symbol_p): Likewise.
+ * elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
+ * elf64-hppa.c (elf64_hppa_dynamic_symbol_p): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Likewise.
+ Update all callers to provide the relocation being resolved.
+
+2003-07-17 Shaun Jackman <sjackman@pathwayconnect.com>
+
+ * config.bfd (arm-wince-pe): Add -DARM_COFF_BUGFIX to
+ targ_cflags.
+
+2003-07-17 Nick Clifton <nickc@redhat.com>
+
+ * po/es.po: New Spanish translation.
+ * po/sv.po: New Swedish translation.
+ * po/opcodes.pot: Regenerate.
+
+2003-07-16 Richard Henderson <rth@redhat.com>
+
+ * config.bfd, configure.host, configure.in: Remove ia64-aix support.
+ * elfxx-ia64.c, targets.c: Likewise.
+
+2003-07-16 Richard Henderson <rth@redhat.com>
+
+ * elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Properly return false
+ for symbols defined locally plus -Bsymbolic. Tidy logic.
+
+2003-07-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * archures.c (bfd_mach_mips7000): New.
+ * bfd-in2.h: Regenerated.
+ * cpu-mips.c (arch_info_struct): Add an entry for mips:7000.
+ * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000.
+ (mips_mach_extensions): Add an entry for it.
+
+2003-07-14 Nick Clifton <nickc@redhat.com>
+
+ * po/tr.po: Update with latest version.
+ * po/SRC-POTFILES.in: Regenerate.
+ * po/bfd.pot: Regenerate.
+ * Makfile.in: Regenerate.
+ * configure: Regenerate.
+
+2003-07-12 Jeff Baker <jbaker@qnx.com>
+
+ * bfd/config.bfd (__QNXTARGET__): Define for Neutrino architectures.
+ * bfd/elf32-arm.h (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
+ * bfd/elf32-sh.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
+ * bfd/elf32-ppc.c (ELF_MAXPAGESIZE): Set to 4k for Neutrino.
+
+2003-07-12 Jeff Muizelaar <muizelaar@rogers.com>
+
+ * coffcode.h (coff_set_section_contents): Set the
+ IMAGE_FILE_32BIT_MACHINE flag for PE targets.
+
+2003-07-11 Richard Sandiford <rsandifo@redhat.com>
+
+ * bfd-in.h (bfd_h8300_pad_address): Declare.
+ * bfd-in2.h: Regenerate.
+ * cpu-h8300.c (bfd_h8300_pad_address): New function.
+ * coff-h8300.c (h8300_reloc16_estimate): Use it to canonicalize
+ addresses before checking whether they can be relaxed.
+ (h8300_reloc16_extra_cases): Likewise for the R_MOVL2 sanity check.
+ Don't complain about overflows in general 8-bit relocations.
+ * elf32-h8300.c (elf32_h8_relax_section): Use bfd_h8300_pad_address.
+ Fix handling of R_H8_DIR24A8.
+
+2003-07-11 Richard Sandiford <rsandifo@redhat.com>
+
+ * elf32-h8300.c: Convert function prototypes and definitions
+ to C90 syntax.
+ * coff-h8300.c: Likewise.
+ * cpu-h8300.c: Likewise.
+
+2003-07-11 Alan Modra <amodra@bigpond.net.au>
+
+ * po/SRC-POTFILES.in: Regenerate.
+ * po/bfd.pot: Likewise.
+
+2003-07-10 Bob Wilson <bob.wilson@acm.org>
+
+ * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Create new
+ .got.loc section. Do not set SEC_ALLOC or SEC_LOAD flags for the
+ .xt.lit.plt section.
+ (elf_xtensa_size_dynamic_sections): Set size of the .got.loc section
+ and allocate memory for it.
+ (elf_xtensa_combine_prop_entries): Copy contents of .xt.lit output
+ section to the .got.loc section.
+ (elf_xtensa_finish_dynamic_sections): Fix up call to
+ elf_xtensa_combine_prop_entries and set DT_XTENSA_GOT_LOC_OFF to
+ the address of .got.loc.
+ (relax_property_section): Shrink .got.loc to match changes in any
+ literal table section.
+ (xtensa_is_property_section): Change to match
+ xtensa_get_property_section_name.
+ (xtensa_is_littable_section): New.
+
+2003-07-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1 instead of
+ -1LL.
+
+2003-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * Makefile.am (BFD32_BACKENDS): Add elf32-am33lin.lo.
+ (BFD32_BACKENDS_CFILES): elf32-am33lin.c not elf32-am33lin.lo.
+ Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2003-07-10 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-09-12 Alexandre Oliva <aoliva@redhat.com>
+ * elf32-am33lin.c (ELF_MACHINE_CODE): Redefine to EM_MN10300.
+ (ELF_MACHINE_ALT1): Define to EM_CYGNUS_MN10300.
+ 2001-06-02 Nick Clifton <nickc@cambridge.redhat.com>
+ * elf32-am33lin.c: Rename global functions.
+ 2001-05-09 Alexandre Oliva <aoliva@redhat.com>
+ * config.bfd (am33_2.0, am33_2.0-*-linux*): Added.
+ * configure.in (bfd_elf32_am33lin_vec): Added.
+ * Makefile.am (BFD32_BACKENDS): Added elf32-am33lin.lo.
+ (elf32-am33lin.lo): List dependencies.
+ * aclocal.m4, configure, Makefile.in: Rebuilt.
+ * elf-m10300.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME,
+ ELF_ARCH, ELF_MACHINE_CODE, ELF_MAXPAGESIZE): Define only if
+ ELF_ARCH was not defined before.
+ (elf_symbol_leading_char): Define if not defined.
+ * elf32-am33lin.c: Override the definitions above.
+ * targets.c (bfd_elf32_am33lin_vec): New.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2002-12-12 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (elf32_mn10300_link_hash_newfunc): Initialize
+ pcrel_relocs_copied.
+ 2001-12-13 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (ELF_DYNAMIC_INTERPRETER): Renamed from
+ ld-linux.so.2 to ld.so.1.
+ 2001-10-10 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (elf_mn10300_sizeof_plt0): New macro.
+ (_bfd_mn10300_elf_adjust_dynamic_symbol): Use it.
+ (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise.
+ * elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Allocate
+ .rela.* section contents with bfd_zalloc.
+ 2001-09-25 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c: Added declarations for functions missing them.
+ Merge some shared-library changes from the i386 back-end. Use
+ R_MN10300_RELATIVE instead of R_MN10300_PCREL32 and
+ R_MN10300_GLOB_DAT instead of R_MN10300_32 where appropriate.
+ (struct elf32_mn10300_link_hash_entry): Remove duplicates of
+ members of elf_link_hash_entry. Adjusted references.
+ (mn10300_elf_final_link_relocate): dynobj was already loaded
+ into a local variable, use it.
+ 2001-09-21 Nick Clifton <nickc@cambridge.redhat.com>
+ * elf-m10300.c: Add missing function prototypes.
+ 2001-08-24 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (mn10300_elf_relocate_section): Don't compute
+ relocation for dynamic relocations.
+ 2001-05-16 Alexandre Oliva <aoliva@redhat.com>
+ * reloc.c (BFD_RELOC_MN10300_GOTOFF24): New.
+ * elf-m10300.c: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
+ PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
+ (_bfd_mn10300_elf_create_dynamic_sections): Move creation ot PLT...
+ (_bfd_mn10300_elf_create_got_section): ... here, so that its
+ adress is already known at the time we compute relaxations.
+ (mn10300_elf_relax_section): Relax GOTPC32, GOTOFF32, GOT32
+ and PLT32 to narrower relocations.
+ * libbfd.h, bfd-in2.h: Rebuilt.
+ 2001-04-12 Alexandre Oliva <aoliva@redhat.com>
+ * reloc.c (BFD_RELOC_MN10300_GOT32, BFD_RELOC_MN10300_GOT24,
+ BFD_RELOC_MN10300_GOT16, BFD_RELOC_MN10300_COPY,
+ BFD_RELOC_MN10300_GLOB_DAT, BFD_RELOC_MN10300_JMP_SLOT,
+ BFD_RELOC_MN10300_RELATIVE): New relocs.
+ * libbfd.h, bfd-in2.h: Rebuilt.
+ * elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): New.
+ (struct elf32_mn10300_link_hash_entry): Added DSO-related
+ fields.
+ (elf_mn10300_howto): Defined new relocation types.
+ (mn10300_reloc_map): Map them.
+ (_bfd_mn10300_elf_create_got_section): New fn.
+ (mn10300_elf_check_relocs): Handle PIC relocs.
+ (mn10300_elf_final_link_relocate): Likewise.
+ (mn10300_elf_relocate_section): Handle DSOs.
+ (PLT0_ENTRY_SIZE, PLT_ENTRY_SIZE, PIC_PLT_ENTRY_SIZE): New macros.
+ (elf_mn10300_plt0_entry, elf_mn10300_plt_entry,
+ elf_mn10300_pic_plt_entry): New.
+ (elf_mn10300_sizeof_plt, elf_mn10300_plt_plt0_offset,
+ elf_mn10300_plt0_linker_offset, elf_mn10300_plt0_gotid_offset,
+ elf_mn10300_plt_temp_offset, elf_mn10300_plt_symbol_offset,
+ elf_mn10300_plt_reloc_offset: New macros.
+ (ELF_DYNAMIC_INTERPRETER): Likewise.
+ (_bfd_mn10300_elf_create_dynamic_sections): New function.
+ (_bfd_mn10300_elf_adjust_dynamic_symbol): Likewise.
+ (_bfd_mn10300_elf_discard_copies): Likewise.
+ (_bfd_mn10300_elf_size_dynamic_sections): Likewise.
+ (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise.
+ (_bfd_mn10300_elf_finish_dynamic_sections): Likewise.
+ (elf_backend_can_gc_sections,
+ elf_backend_create_dynamic_sections,
+ elf_backend_adjust_dynamic_sections,
+ elf_backend_size_dynamic_sections,
+ elf_backend_finish_dynamic_symbol,
+ elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
+ elf_backend_plt_readonly, elf_backend_want_plt_sym,
+ elf_backend_got_header_size, elf_backend_plt_header_size): New
+ macros.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-05-06 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (compute_function_info): Account for AM33
+ registers in `movm' when computing stack space for `call' when
+ linking for AM33/2.0 link.
+ 2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
+ * archures.c (bfd_mach_am33_2): Renamed from bfd_mach_am332.
+ * bfd-in2.h: Rebuilt.
+ * cpu-m10300.c (bfd_am33_2_arch): Renamed from bfd_am332_arch.
+ * elf-m10300.c: Updated.
+ 2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
+ * archures.c (bfd_mach_am332): Defined.
+ * bfd-in2.h: Rebuilt.
+ * cpu-m10300.c (bfd_am332_arch): Defined.
+ (bfd_am33_arch): Chained with am33-2.
+ * elf-m10300.c (elf_mn10300_mach): Handle am332.
+ (_bfd_mn10300_elf_final_write_processing): Likewise.
+
+2003-07-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL.
+
+2003-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (bfd_elf64_mkobject): Define.
+ (struct ppc64_elf_obj_tdata): New.
+ (ppc64_elf_tdata, ppc64_tlsld_got): Define.
+ (ppc64_elf_mkobject): New function.
+ (struct got_entry): Add "owner". Move "tls_type".
+ (struct ppc_link_hash_table): Delete "relgot", "tlsld_got".
+ (ppc64_elf_init_stub_bfd): New function.
+ (create_got_section): Create header .got in dynobj. Create .got
+ and .rela.got in each bfd. Stash pointers in ppc64_elf_obj_tdata.
+ (ppc64_elf_create_dynamic_sections): Don't call create_got_section.
+ Look for dynobj .got, and test it.
+ (ppc64_elf_copy_indirect_symbol): Adjust for changed got.
+ (update_local_sym_info): Likewise.
+ (ppc64_elf_check_relocs): Likewise.
+ (ppc64_elf_gc_sweep_hook): Likewise.
+ (ppc64_elf_tls_optimize): Likewise.
+ (allocate_dynrelocs): Likewise.
+ (ppc64_elf_size_dynamic_sections): Likewise.
+ (ppc64_elf_relocate_section): Likewise.
+ (ppc64_elf_next_toc_section): Update comment.
+ (toc_adjusting_stub_needed): Remove unneeded cast.
+ (ppc64_elf_build_stubs): Check for stub sections in stub bfd by
+ testing section flags.
+ (ppc64_elf_build_stubs): Likewise.
+ (ppc64_elf_size_stubs): Likewise. Remove stub_bfd param.
+ (ppc64_elf_finish_dynamic_sections): Write out got sections.
+ (func_desc_adjust): Copy over dynamic info for undef weaks.
+ * elf64-ppc.h (ppc64_elf_init_stub_bfd): Declare.
+ (ppc64_elf_size_stubs): Update prototype.
+ * elflink.h (elf_link_sort_relocs): Use link_orders to find reldyn
+ input sections rather than scanning dynobj.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * elfxx-mips.c (mips_elf_link_hash_entry): Remove min_dyn_reloc_index.
+ (bfd_mips_elf_swap_msym_in, bfd_mips_elf_swap_msym_out): Delete.
+ (mips_elf_create_msym_section): Delete.
+ (mips_elf_create_dynamic_relocation): Don't set min_dyn_reloc_index.
+ (_bfd_mips_elf_copy_indirect_symbol): Likewise.
+ (_bfd_mips_elf_create_dynamic_sections): Don't create .msym.
+ (_bfd_mips_elf_size_dynamic_sections): Don't calculate its size.
+ (_bfd_mips_elf_size_dynamic_sections): Don't add DT_MIPS_MSYM.
+ (_bfd_mips_elf_finish_dynamic_symbol): Don't add symbols to .msym.
+ (_bfd_mips_elf_finish_dynamic_sections): Likewise.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * elfxx-mips.c (mips_elf_irix6_finish_dynamic_symbol): Make the
+ symbols protected.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * elfxx-mips.c (mips_elf_create_dynamic_relocation): Fix handling
+ of relocations whose offset is -2.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * bfd/elfxx-mips.c (mips_elf_create_dynamic_relocation): Treat
+ forced-local symbols like other locals. Don't create relocations
+ against STN_UNDEF in irix objects.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * bfd/elfxx-mips.c (mips_elf_create_dynamic_relocation): In SGI-
+ compatible objects, add the values of defined external symbols
+ to the addend.
+
+2003-07-09 Richard Sandiford <rsandifo@redhat.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Always
+ initialize a GOT entry to the symbol's st_value.
+
+2003-07-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (struct elf_obj_tdata): Move linker_section_pointers..
+ * elf32-ppc.c (struct ppc_elf_obj_tdata): ..to here. New.
+ (ppc_elf_tdata): Define.
+ (elf_local_ptr_offsets): Adjust.
+ (ppc_elf_mkobject): New function.
+ (bfd_elf32_mkobject): Define.
+
+ * elfcode.h (elf_object_p): Allocate tdata via _bfd_set_format.
+ * elfcore.h (elf_core_file_p): Likewise.
+ * section.c (bfd_section_init): Remove prototype.
+
+2003-07-08 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (struct elf_link_hash_entry): Remove linker_section_pointer
+ field.
+ (enum elf_linker_section_enum): Delete.
+ (struct elf_linker_section): Delete.
+ (struct elf_linker_section_pointers): Delete.
+ (struct elf_obj_tdata): Remove #if 0 chunk. Remove linker_section.
+ Make linker_section_pointers a void**.
+ (elf_local_ptr_offsets, elf_linker_section): Don't define.
+ * elf32-ppc.c (enum elf_linker_section_enum): New, cut-down version
+ of old item in elf-bfd.h.
+ (struct elf_linker_section): Likewise.
+ (struct elf_linker_section_pointers): Likewise.
+ (elf_local_ptr_offsets): Define.
+ (struct ppc_elf_link_hash_entry): Add linker_section_pointer.
+ (ppc_elf_link_hash_newfunc): Init it.
+ (struct ppc_elf_link_hash_table): Add sbss.
+ (ppc_elf_link_hash_table_create): zmalloc rather than clearing
+ individual fields.
+ (elf_create_linker_section): Fold into..
+ (ppc_elf_create_linker_section): ..here. Remove hole_size code.
+ Make rela section here if shared.
+ (elf_find_pointer_linker_section): Pass lsect rather than enum.
+ (elf_create_pointer_linker_section): Adjust. zalloc rather than
+ clearing in a loop.
+ (elf_finish_pointer_linker_section): Adjust. Don't make rela
+ section here.
+ (ppc_elf_check_relocs): Adjust.
+ (ppc_elf_add_symbol_hook): Tighten hash creator test. Remove code
+ creating .sbss by hand.
+ * elf.c (_bfd_elf_link_hash_newfunc): Adjust.
+
+2003-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-s390.c (elf_howto_table): Change R_390_GOT12 to
+ complain_overflow_bitfield.
+ * elf64-s390.c (elf_howto_table): Change R_390_GOT12 to
+ complain_overflow_bitfield.
+
+2003-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ * elf-bfd.h (SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL): Return
+ true even if -pie.
+
+2003-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add rel_fptr_sec.
+ (elfNN_ia64_dynamic_symbol_p): Change info->shared into
+ !info->executable.
+ (get_fptr): For -pie create .opd as writable section and create
+ .rela.opd as well.
+ (elfNN_ia64_check_relocs): Change info->shared into
+ !info->executable.
+ (allocate_fptr): Likewise.
+ (allocate_dynrel_entries): Account for a relative reloc for -pie
+ @fptr(). Don't account for a relative reloc if -pie want_ltoff_fptr
+ for undefweak symbol. Account for an IPLT reloc in .rela.opd
+ section if -pie.
+ (set_got_entry): Don't create a relative reloc if -pie
+ want_ltoff_fptr for undefweak symbol.
+ (set_fptr_entry): Emit an IPLT reloc in .rela.opd for -pie.
+ (elfNN_ia64_relocate_section): Emit a relative reloc for -pie
+ @fptr().
+
+ * elfxx-ia64.c (elfNN_ia64_relocate_section): Issue undefined_symbol
+ even if -pie.
+ * elf32-i386.c (elf_i386_relocate_section): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+ * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+ * elf64-s390.c (elf_s390_relocate_section): Likewise.
+ * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+ * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+ * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+ * elf32-s390.c (elf_s390_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+
+2003-07-04 Paul Clarke <paulc@senet.com.au>
+
+ * elf32-h8300.c (R_H8_DIR32A16): Fix name field.
+ (elf32_h8_relax_section) <R_H8_DIR16A8>: Adjust position of relocation.
+ <R_H8_DIR32A16>: Fix type of relocation.
+
+2003-07-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c (sh_elf_create_dynamic_sections): Return if dynamic
+ sections were created already. Remove unnecessary tests of
+ the previous change.
+
+2003-07-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * elf32-sh.c (sh_elf_create_dynamic_sections): Don't call
+ bfd_make_section for existing sections.
+
+2003-07-04 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-sparc.c (elf32_sparc_check_relocs): Don't call
+ create_got_section if we already have done so.
+ * elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
+ (sh_elf_check_relocs): Likewise.
+ (sh_elf_adjust_dynamic_symbol): Delete "dynobj" var. Use
+ htab->root.dynobj instead.
+ (sh_elf_check_relocs): Likewise.
+ (sh_elf_finish_dynamic_sections): Likewise.
+
+ * section.c (bfd_make_section): Return NULL for existing section.
+
+2003-07-04 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (ppc_elf_create_dynamic_sections): Don't call
+ ppc_elf_create_got if we've already done so.
+
+ * elf-bfd.h (_bfd_elf_create_linker_section) Don't declare.
+ (_bfd_elf_find_pointer_linker_section): Likewise.
+ (bfd_elf32_create_pointer_linker_section): Likewise.
+ (bfd_elf32_finish_pointer_linker_section): Likewise.
+ (bfd_elf64_create_pointer_linker_section): Likewise.
+ (bfd_elf64_finish_pointer_linker_section): Likewise.
+ (_bfd_elf_make_linker_section_rela): Likewise.
+ * elfcode.h (elf_create_pointer_linker_section): Don't define.
+ (elf_finish_pointer_linker_section): Likewise.
+ * elflink.c (_bfd_elf_make_linker_section_rela): Delete.
+ (_bfd_elf_create_linker_section): Move this function..
+ (_bfd_elf_find_pointer_linker_section): ..and this..
+ * elflink.h (elf_create_pointer_linker_section): ..and this..
+ (elf_finish_pointer_linker_section): ..and this..
+ * elf32-ppc.c: ..to here, renaming to the following, and adjusting
+ calls.
+ (elf_create_linker_section): Convert to C90, tidy.
+ (elf_find_pointer_linker_section): Likewise.
+ (elf_create_pointer_linker_section): Likewise.
+ (elf_finish_pointer_linker_section): Likewise.
+ * elf32-i370.c: Delete #if 0 code.
+
+2003-07-02 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't allow _savef* and
+ _restf* to be satisfied by shared libs, and always force them local.
+ (toc_adjusting_stub_needed): Avoid scanning linker created sections.
+ Correct test for "bl".
+ (ppc64_elf_relocate_section <R_PPC64_TLS>): Correct test for
+ primary opcode 31.
+
+2003-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * elf32-s390.c (s390_elf_ldisp_reloc): New prototype.
+ (s390_tls_reloc): New function.
+ (elf_howto_table): Add long displacement relocations R_390_20,
+ R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.
+ (elf_s390_reloc_type_lookup): Likewise.
+ (elf_s390_check_relocs): Likewise.
+ (elf_s390_gc_sweep_hook): Likewise.
+ (elf_s390_relocate_section): Likewise.
+ * elf64-s390.c: Same changes as for elf32-s390.c.
+ * reloc.c: Add long displacement relocations BFD_RELOC_390_20,
+ BFD_RELOC_390_GOT20, BFD_RELOC_390_GOTPLT20 and
+ BFD_RELOC_390_TLS_GOTIE20.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Likewise.
+
+2003-06-30 Alan Modra <amodra@bigpond.net.au>
+
+ * cpu-ia64-opc.c (ext_imms_scaled): Don't sign extend using shifts.
+ (ins_imms, ins_immsm1u4): Likewise. Warning fix.
+
+2003-06-29 Alan Modra <amodra@bigpond.net.au>
+
+ * archive.c: Convert to C90, remove unnecessary prototypes and casts.
+ Replace PTR with void *. Formatting.
+ * archive64.c: Likewise.
+ * archures.c: Likewise.
+ * bfd-in.h: Likewise.
+ * bfd.c: Likewise.
+ * bfdio.c: Likewise.
+ * bfdwin.c: Likewise.
+ * cache.c: Likewise.
+ * corefile.c: Likewise.
+ * format.c: Likewise.
+ * init.c: Likewise.
+ * libbfd-in.h: Likewise.
+ * libbfd.c: Likewise.
+ * linker.c: Likewise.
+ * opncls.c: Likewise.
+ * reloc.c: Likewise.
+ * section.c: Likewise.
+ * simple.c: Likewise.
+ * syms.c: Likewise.
+ * targets.c: Likewise.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+ * ecoff.c (bfd_debug_section): Add missing kept_section initialization.
+ * libbfd-in.h (_bfd_sh_align_load_span): Don't declare if defined.
+ * libbfd.c (COERCE32, EIGHT_GAZILLION): Simplify.
+ (bfd_getb64): Rewrite without parens.
+ (bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
+ * cache.c (insert, snip): Remove INLINE.
+ * linker.c (bfd_link_add_undef): Likewise.
+
+2003-06-29 Andreas Jaeger <aj@suse.de>
+
+ * elf64-x86-64.c: Convert to ISO C90 prototypes, remove
+ unnecessary prototypes. Replace PTR with void *.
+ (elf64_x86_64_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL to
+ trim plt entries. Move undefweak non-default visibility test ...
+ (allocate_dynrelocs): ... from here.
+ (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
+ Change all callers.
+ (allocate_dynrelocs): Use SYMBOL_CALLS_LOCAL. Use
+ SYMBOL_REFERENCES_LOCAL for dynreloc check.
+ (elf64_x86_64_relocate_section): Use SYMBOL_CALLS_LOCAL for
+ dynreloc and .got relocs.
+ (elf64_x86_64_finish_dynamic_symbol): Use SYMBOL_REFERENCES_LOCAL
+ for .got relocs.
+
+2003-06-29 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elfxx-mips.c: Allow lazy binding for R_MIPS_JALR.
+
+2003-06-27 Nick Clifton <nickc@redhat.com>
+
+ * opncls.c (bfd_add_gnu_debuglink_section): Rename to
+ bfd_add_gnu_debuglink_section and only create the section, do not
+ fill in its contents.
+ (bfd_fill_in_gnu_debuglink_section): New function. Fill in the
+ contents of a .gnu-debuglink section.
+ * bfd-in2.h: Regenerate.
+
+2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elfxx-mips.c: Revert .got alignment to 2**4.
+
+2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf32-mips.c: Fix addend for _gp_disp special symbol.
+
+2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default
+ relocation header setup.
+
+2003-06-25 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (ppc_elf_howto_table): Remove unnecessary cast.
+ (ppc_elf_reloc_type_lookup): Modify comment.
+ (ppc_elf_info_to_howto): Ditto.
+ (ppc_elf_relocate_section): Ditto.
+ (ppc_elf_check_relocs): Call ppc_elf_howto_init.
+
+2003-06-25 Alan Modra <amodra@bigpond.net.au>
+
+ * aout-ns32k.c: Correct spelling of "relocatable".
+ * aoutx.h: Likewise.
+ * bfd-in.h: Likewise.
+ * bfd.c: Likewise.
+ * bout.c: Likewise.
+ * coff-a29k.c: Likewise.
+ * coff-alpha.c: Likewise.
+ * coff-arm.c: Likewise.
+ * coff-i386.c: Likewise.
+ * coff-i860.c: Likewise.
+ * coff-i960.c: Likewise.
+ * coff-m68k.c: Likewise.
+ * coff-m88k.c: Likewise.
+ * coff-mcore.c: Likewise.
+ * coff-mips.c: Likewise.
+ * coff-or32.c: Likewise.
+ * coff-ppc.c: Likewise.
+ * coff-rs6000.c: Likewise.
+ * coff-sh.c: Likewise.
+ * coff-tic80.c: Likewise.
+ * coff64-rs6000.c: Likewise.
+ * cofflink.c: Likewise.
+ * cpu-ns32k.c: Likewise.
+ * ecoff.c: Likewise.
+ * ecofflink.c: Likewise.
+ * elf-bfd.h: Likewise.
+ * elf-eh-frame.c: Likewise.
+ * elf-hppa.h: Likewise.
+ * elf-m10200.c: Likewise.
+ * elf-m10300.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arm.h: Likewise.
+ * elf32-avr.c: Likewise.
+ * elf32-cris.c: Likewise.
+ * elf32-d10v.c: Likewise.
+ * elf32-dlx.c: Likewise.
+ * elf32-fr30.c: Likewise.
+ * elf32-frv.c: Likewise.
+ * elf32-h8300.c: Likewise.
+ * elf32-hppa.c: Likewise.
+ * elf32-i370.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-i860.c: Likewise.
+ * elf32-i960.c: Likewise.
+ * elf32-ip2k.c: Likewise.
+ * elf32-iq2000.c: Likewise.
+ * elf32-m32r.c: Likewise.
+ * elf32-m68hc11.c: Likewise.
+ * elf32-m68hc1x.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-mcore.c: Likewise.
+ * elf32-mips.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * elf32-openrisc.c: Likewise.
+ * elf32-ppc.c: Likewise.
+ * elf32-s390.c: Likewise.
+ * elf32-sh.c: Likewise.
+ * elf32-sh64.c: Likewise.
+ * elf32-sparc.c: Likewise.
+ * elf32-v850.c: Likewise.
+ * elf32-vax.c: Likewise.
+ * elf32-xstormy16.c: Likewise.
+ * elf32-xtensa.c: Likewise.
+ * elf64-alpha.c: Likewise.
+ * elf64-hppa.c: Likewise.
+ * elf64-mips.c: Likewise.
+ * elf64-mmix.c: Likewise.
+ * elf64-ppc.c: Likewise.
+ * elf64-s390.c: Likewise.
+ * elf64-sh64.c: Likewise.
+ * elf64-sparc.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elfcode.h: Likewise.
+ * elflink.h: Likewise.
+ * elfn32-mips.c: Likewise.
+ * elfxx-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * i386linux.c: Likewise.
+ * ieee.c: Likewise.
+ * libcoff-in.h: Likewise.
+ * linker.c: Likewise.
+ * m68klinux.c: Likewise.
+ * pdp11.c: Likewise.
+ * pe-mips.c: Likewise.
+ * peXXigen.c: Likewise.
+ * reloc.c: Likewise.
+ * reloc16.c: Likewise.
+ * sparclinux.c: Likewise.
+ * sunos.c: Likewise.
+ * syms.c: Likewise.
+ * versados.c: Likewise.
+ * vms.c: Likewise.
+ * xcofflink.c: Likewise.
+ * bfd-in2.h: Regenerate.
+ * libcoff.h: Regenerate.
+ * libbfd.h: Regenerate.
+
+2003-06-24 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (ppc_elf_check_relocs): Report plt reloc against
+ local sym errors.
+
+ * elf32-i386.c: Convert to C90 function definitions, remove unnecessary
+ prototypes and casts. Replace PTR with void *. Formatting.
+ * elf32-ppc.c: Likewise. Break long strings too.
+ (ppc_elf_relax_section): Use enum elf_ppc_reloc_type for r_type.
+ (ppc_elf_unhandled_reloc): Internationalize error message.
+ * elf32-ppc.h: Remove PARAMS.
+
+2003-06-23 Mark Mitchell <mark@codesourcery.com>
+
+ * elf32-ppc.c (ppc_elf_begin_write_processing): Use bytes to count
+ APUinfo slots.
+ (ppc_elf_final_write_processing): Likewise.
+
+2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.h (elf_link_input_bfd): Check raw size when using
+ kept_section to preserve debug information discarded by
+ linkonce.
+
2003-06-20 Alan Modra <amodra@bigpond.net.au>
* elf64-ppc.c (struct ppc_link_hash_table): Add top_id.
@@ -2580,7 +3744,7 @@
in a local var. Comment typo fixes.
(h8300_bfd_link_add_symbols): Likewise.
- * bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
+ * reloc.c (struct reloc_howto_struct): Revise src_mask and
dst_mask comments.
* bfd-in2.h: Regenerate.
@@ -3327,8 +4491,8 @@
(aout_link_write_symbols): Cast enums in comparisons, int values to
boolean, enums in assignments to int.
(aout_link_input_section_std): Cast rel->r_index to unsigned int.
- (aout_link_input_section_ext): Likewise. Cast enums used in comparisons
- with unsigned ints.
+ (aout_link_input_section_ext): Likewise. Cast enums used in
+ comparisons with unsigned ints.
(aout_link_reloc_link_order): Cast enum to int in assignment.
* archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr
calls to char *.
@@ -3359,8 +4523,8 @@
(merge_strings): Add casts to const unsigned char *.
* reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int.
(bfd_generic_get_relocated_section_content): Cast enum to unsigned int.
- * section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to
- struct bfd_hash_entry *.
+ * section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result
+ to struct bfd_hash_entry *.
(bfd_set_section_content): Add cast to PTR in comparison.
* simple.c (simple_dummy_warning, simple_dummy_undefined_symbol,
simple_dummy_reloc_overflow, simple_dummy_reloc_dangerous,
@@ -4331,9 +5495,9 @@
2002-08-16 Stephen Clarke <stephen.clarke@superh.com>
- * bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
+ * elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
symbols when looking for section referred to by a relocation.
- * bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.
+ * elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.
2002-08-15 Alan Modra <amodra@bigpond.net.au>
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 6240f35..d27c873 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -208,6 +208,7 @@ BFD32_BACKENDS = \
ecofflink.lo \
efi-app-ia32.lo \
elf.lo \
+ elf32-am33lin.lo \
elf32-arc.lo \
elfarm-oabi.lo \
elfarm-nabi.lo \
@@ -372,6 +373,7 @@ BFD32_BACKENDS_CFILES = \
ecofflink.c \
efi-app-ia32.c \
elf.c \
+ elf32-am33lin.c \
elf32-arc.c \
elfarm-oabi.c \
elfarm-nabi.c \
@@ -604,23 +606,15 @@ SRC_POTFILES = $(SOURCE_CFILES) $(SOURCE_HFILES)
BLD_POTFILES = $(BUILD_CFILES) $(BUILD_HFILES)
po/SRC-POTFILES.in: @MAINT@ Makefile $(SRC_POTFILES)
- for file in $(SRC_POTFILES); do echo $$file; done | sort > tmp.src \
+ for file in $(SRC_POTFILES); do echo $$file; done \
+ | LC_COLLATE= sort > tmp.src \
&& mv tmp.src $(srcdir)/po/SRC-POTFILES.in
po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES)
- for file in $(BLD_POTFILES); do echo $$file; done | sort > tmp.bld \
+ for file in $(BLD_POTFILES); do echo $$file; done \
+ | LC_COLLATE= sort > tmp.bld \
&& mv tmp.bld $(srcdir)/po/BLD-POTFILES.in
-# The following target is retained for upgrade purposes.
-# This target used to exist in older versions of this makefile, and was
-# referenced by <builddir>/po/Makefile (which is created from <srcdir>/po/Make-in)
-# So old versions of <builddir>/po/Makefile will try to regenerate themselves
-# when make is next run, but that dependency cannot be completed without a build
-# of po/POTFILES.in. Hence the presence of this rule. This rule will be deleted
-# once it is no longer needed - probably in the fall of 2001.
-po/POTFILES.in:
-
-
diststuff: info
# Various kinds of .o files to put in libbfd.a:
@@ -1123,6 +1117,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR)/filenames.h \
elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/libiberty.h
+elf32-am33lin.lo: elf32-am33lin.c elf-m10300.c $(INCDIR)/filenames.h \
+ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h \
+ $(INCDIR)/elf/reloc-macros.h elf32-target.h
elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index aca9371..58ba21d 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -335,6 +335,7 @@ BFD32_BACKENDS = \
ecofflink.lo \
efi-app-ia32.lo \
elf.lo \
+ elf32-am33lin.lo \
elf32-arc.lo \
elfarm-oabi.lo \
elfarm-nabi.lo \
@@ -500,6 +501,7 @@ BFD32_BACKENDS_CFILES = \
ecofflink.c \
efi-app-ia32.c \
elf.c \
+ elf32-am33lin.c \
elf32-arc.c \
elfarm-oabi.c \
elfarm-nabi.c \
@@ -1175,22 +1177,15 @@ mostlyclean distclean maintainer-clean
po/SRC-POTFILES.in: @MAINT@ Makefile $(SRC_POTFILES)
- for file in $(SRC_POTFILES); do echo $$file; done | sort > tmp.src \
+ for file in $(SRC_POTFILES); do echo $$file; done \
+ | LC_COLLATE= sort > tmp.src \
&& mv tmp.src $(srcdir)/po/SRC-POTFILES.in
po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES)
- for file in $(BLD_POTFILES); do echo $$file; done | sort > tmp.bld \
+ for file in $(BLD_POTFILES); do echo $$file; done \
+ | LC_COLLATE= sort > tmp.bld \
&& mv tmp.bld $(srcdir)/po/BLD-POTFILES.in
-# The following target is retained for upgrade purposes.
-# This target used to exist in older versions of this makefile, and was
-# referenced by <builddir>/po/Makefile (which is created from <srcdir>/po/Make-in)
-# So old versions of <builddir>/po/Makefile will try to regenerate themselves
-# when make is next run, but that dependency cannot be completed without a build
-# of po/POTFILES.in. Hence the presence of this rule. This rule will be deleted
-# once it is no longer needed - probably in the fall of 2001.
-po/POTFILES.in:
-
diststuff: info
stamp-ofiles: Makefile
@@ -1656,6 +1651,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR)/filenames.h \
elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/libiberty.h
+elf32-am33lin.lo: elf32-am33lin.c elf-m10300.c $(INCDIR)/filenames.h \
+ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h \
+ $(INCDIR)/elf/reloc-macros.h elf32-target.h
elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/aout-ns32k.c b/bfd/aout-ns32k.c
index 0972b5d..8092705 100644
--- a/bfd/aout-ns32k.c
+++ b/bfd/aout-ns32k.c
@@ -65,7 +65,7 @@ MY(put_reloc) PARAMS ((bfd *, int, int, bfd_vma, reloc_howto_type *,
struct reloc_std_external *));
/* The ns32k series is ah, unusual, when it comes to relocation.
- There are three storage methods for relocateable objects. There
+ There are three storage methods for relocatable objects. There
are displacements, immediate operands and ordinary twos complement
data. Of these, only the last fits into the standard relocation
scheme. Immediate operands are stored huffman encoded and
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 7f02d13..674fc76 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3749,7 +3749,7 @@ NAME(aout,final_link) (abfd, info, callback)
includes_hash_initialized = TRUE;
/* Figure out the largest section size. Also, if generating
- relocateable output, count the relocs. */
+ relocatable output, count the relocs. */
trsize = 0;
drsize = 0;
max_contents_size = 0;
@@ -3759,7 +3759,7 @@ NAME(aout,final_link) (abfd, info, callback)
{
bfd_size_type sz;
- if (info->relocateable)
+ if (info->relocatable)
{
if (bfd_get_flavour (sub) == bfd_target_aout_flavour)
{
@@ -3773,7 +3773,7 @@ NAME(aout,final_link) (abfd, info, callback)
work out the number of relocs needed, and then multiply
by the reloc size. */
(*_bfd_error_handler)
- (_("%s: relocateable link from %s to %s not supported"),
+ (_("%s: relocatable link from %s to %s not supported"),
bfd_get_filename (abfd),
sub->xvec->name, abfd->xvec->name);
bfd_set_error (bfd_error_invalid_operation);
@@ -3803,7 +3803,7 @@ NAME(aout,final_link) (abfd, info, callback)
}
}
- if (info->relocateable)
+ if (info->relocatable)
{
if (obj_textsec (abfd) != (asection *) NULL)
trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd)
@@ -4786,9 +4786,9 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
input_size))
return FALSE;
- /* If we are producing relocateable output, the relocs were
+ /* If we are producing relocatable output, the relocs were
modified, and we now write them out. */
- if (finfo->info->relocateable && rel_size > 0)
+ if (finfo->info->relocatable && rel_size > 0)
{
if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
return FALSE;
@@ -4850,7 +4850,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
bfd_vma *));
bfd *output_bfd;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
struct external_nlist *syms;
char *strings;
struct aout_link_hash_entry **sym_hashes;
@@ -4866,7 +4866,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
BFD_ASSERT (input_bfd->xvec->header_byteorder
== output_bfd->xvec->header_byteorder);
- relocateable = finfo->info->relocateable;
+ relocatable = finfo->info->relocatable;
syms = obj_aout_external_syms (input_bfd);
strings = obj_aout_external_strings (input_bfd);
sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -4935,9 +4935,9 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
}
#endif
- if (relocateable)
+ if (relocatable)
{
- /* We are generating a relocateable output file, and must
+ /* We are generating a relocatable output file, and must
modify the reloc accordingly. */
if (r_extern)
{
@@ -5195,7 +5195,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
bfd_vma *));
bfd *output_bfd;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
struct external_nlist *syms;
char *strings;
struct aout_link_hash_entry **sym_hashes;
@@ -5211,7 +5211,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
BFD_ASSERT (input_bfd->xvec->header_byteorder
== output_bfd->xvec->header_byteorder);
- relocateable = finfo->info->relocateable;
+ relocatable = finfo->info->relocatable;
syms = obj_aout_external_syms (input_bfd);
strings = obj_aout_external_strings (input_bfd);
sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -5256,9 +5256,9 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
BFD_ASSERT (r_type < TABLE_SIZE (howto_table_ext));
- if (relocateable)
+ if (relocatable)
{
- /* We are generating a relocateable output file, and must
+ /* We are generating a relocatable output file, and must
modify the reloc accordingly. */
if (r_extern
|| r_type == (unsigned int) RELOC_BASE10
diff --git a/bfd/archive.c b/bfd/archive.c
index ffb0bd4..c4171e7 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -1,6 +1,6 @@
/* BFD back-end for archive files (libraries).
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support. Mostly Gumby Henkel-Wallace's fault.
@@ -158,28 +158,15 @@ struct ar_cache {
#define ar_maxnamelen(abfd) ((abfd)->xvec->ar_max_namelen)
#define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data))
-#define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header)
-
-static char *get_extended_arelt_filename
- PARAMS ((bfd *arch, const char *name));
-static bfd_boolean do_slurp_bsd_armap
- PARAMS ((bfd *abfd));
-static bfd_boolean do_slurp_coff_armap
- PARAMS ((bfd *abfd));
-bfd_boolean bfd_elf64_archive_slurp_armap
- PARAMS ((bfd *abfd));
-static const char *normalize
- PARAMS ((bfd *, const char *file));
-static struct areltdata *bfd_ar_hdr_from_filesystem
- PARAMS ((bfd *abfd, const char *, bfd *member));
+#define arch_hdr(bfd) ((struct ar_hdr *) arch_eltdata(bfd)->arch_header)
+
bfd_boolean
-_bfd_generic_mkarchive (abfd)
- bfd *abfd;
+_bfd_generic_mkarchive (bfd *abfd)
{
bfd_size_type amt = sizeof (struct artdata);
- abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt);
+ abfd->tdata.aout_ar_data = bfd_zalloc (abfd, amt);
if (bfd_ardata (abfd) == NULL)
return FALSE;
@@ -197,7 +184,8 @@ FUNCTION
bfd_get_next_mapent
SYNOPSIS
- symindex bfd_get_next_mapent(bfd *abfd, symindex previous, carsym **sym);
+ symindex bfd_get_next_mapent
+ (bfd *abfd, symindex previous, carsym **sym);
DESCRIPTION
Step through archive @var{abfd}'s symbol table (if it
@@ -214,10 +202,7 @@ DESCRIPTION
*/
symindex
-bfd_get_next_mapent (abfd, prev, entry)
- bfd *abfd;
- symindex prev;
- carsym **entry;
+bfd_get_next_mapent (bfd *abfd, symindex prev, carsym **entry)
{
if (!bfd_has_map (abfd))
{
@@ -239,8 +224,7 @@ bfd_get_next_mapent (abfd, prev, entry)
/* To be called by backends only */
bfd *
-_bfd_create_empty_archive_element_shell (obfd)
- bfd *obfd;
+_bfd_create_empty_archive_element_shell (bfd *obfd)
{
return _bfd_new_bfd_contained_in (obfd);
}
@@ -250,7 +234,7 @@ FUNCTION
bfd_set_archive_head
SYNOPSIS
- bfd_boolean bfd_set_archive_head(bfd *output, bfd *new_head);
+ bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
DESCRIPTION
Set the head of the chain of
@@ -258,19 +242,14 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_archive_head (output_archive, new_head)
- bfd *output_archive;
- bfd *new_head;
+bfd_set_archive_head (bfd *output_archive, bfd *new_head)
{
-
output_archive->archive_head = new_head;
return TRUE;
}
bfd *
-_bfd_look_for_bfd_in_cache (arch_bfd, filepos)
- bfd *arch_bfd;
- file_ptr filepos;
+_bfd_look_for_bfd_in_cache (bfd *arch_bfd, file_ptr filepos)
{
struct ar_cache *current;
@@ -284,19 +263,17 @@ _bfd_look_for_bfd_in_cache (arch_bfd, filepos)
/* Kind of stupid to call cons for each one, but we don't do too many */
bfd_boolean
-_bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
- bfd *arch_bfd, *new_elt;
- file_ptr filepos;
+_bfd_add_bfd_to_archive_cache (bfd *arch_bfd, file_ptr filepos, bfd *new_elt)
{
bfd_size_type amt = sizeof (struct ar_cache);
- struct ar_cache *new_cache = (struct ar_cache *) bfd_zalloc (arch_bfd, amt);
+ struct ar_cache *new_cache = bfd_zalloc (arch_bfd, amt);
if (new_cache == NULL)
return FALSE;
new_cache->ptr = filepos;
new_cache->arelt = new_elt;
- new_cache->next = (struct ar_cache *) NULL;
+ new_cache->next = NULL;
if (bfd_ardata (arch_bfd)->cache == NULL)
bfd_ardata (arch_bfd)->cache = new_cache;
else
@@ -315,9 +292,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt)
the string table. */
static char *
-get_extended_arelt_filename (arch, name)
- bfd *arch;
- const char *name;
+get_extended_arelt_filename (bfd *arch, const char *name)
{
unsigned long index = 0;
@@ -344,20 +319,17 @@ get_extended_arelt_filename (arch, name)
could have been moved arbitrarily.
*/
-PTR
-_bfd_generic_read_ar_hdr (abfd)
- bfd *abfd;
+void *
+_bfd_generic_read_ar_hdr (bfd *abfd)
{
- return _bfd_generic_read_ar_hdr_mag (abfd, (const char *) NULL);
+ return _bfd_generic_read_ar_hdr_mag (abfd, NULL);
}
/* Alpha ECOFF uses an optional different ARFMAG value, so we have a
variant of _bfd_generic_read_ar_hdr which accepts a magic string. */
-PTR
-_bfd_generic_read_ar_hdr_mag (abfd, mag)
- bfd *abfd;
- const char *mag;
+void *
+_bfd_generic_read_ar_hdr_mag (bfd *abfd, const char *mag)
{
struct ar_hdr hdr;
char *hdrp = (char *) &hdr;
@@ -368,8 +340,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag)
bfd_size_type allocsize = sizeof (struct areltdata) + sizeof (struct ar_hdr);
char *allocptr = 0;
- if (bfd_bread ((PTR) hdrp, (bfd_size_type) sizeof (struct ar_hdr), abfd)
- != sizeof (struct ar_hdr))
+ if (bfd_bread (hdrp, sizeof (struct ar_hdr), abfd) != sizeof (struct ar_hdr))
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_no_more_archived_files);
@@ -439,12 +410,12 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag)
spaces, so only look for ' ' if we don't find '/'. */
char *e;
- e = (char *) memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd));
+ e = memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd));
if (e == NULL)
{
- e = (char *) memchr (hdr.ar_name, '/', ar_maxnamelen (abfd));
+ e = memchr (hdr.ar_name, '/', ar_maxnamelen (abfd));
if (e == NULL)
- e = (char *) memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd));
+ e = memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd));
}
if (e != NULL)
@@ -469,7 +440,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag)
ared = (struct areltdata *) allocptr;
ared->arch_header = allocptr + sizeof (struct areltdata);
- memcpy ((char *) ared->arch_header, (char *) &hdr, sizeof (struct ar_hdr));
+ memcpy (ared->arch_header, &hdr, sizeof (struct ar_hdr));
ared->parsed_size = parsed_size;
if (filename != NULL)
@@ -479,11 +450,11 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag)
ared->filename = allocptr + (sizeof (struct areltdata) +
sizeof (struct ar_hdr));
if (namelen)
- memcpy (ared->filename, hdr.ar_name, (size_t) namelen);
+ memcpy (ared->filename, hdr.ar_name, namelen);
ared->filename[namelen] = '\0';
}
- return (PTR) ared;
+ return ared;
}
/* This is an internal function; it's mainly used when indexing
@@ -491,9 +462,7 @@ _bfd_generic_read_ar_hdr_mag (abfd, mag)
element, since it handles the bookkeeping so nicely for us. */
bfd *
-_bfd_get_elt_at_filepos (archive, filepos)
- bfd *archive;
- file_ptr filepos;
+_bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
{
struct areltdata *new_areldata;
bfd *n_nfd;
@@ -505,26 +474,26 @@ _bfd_get_elt_at_filepos (archive, filepos)
if (0 > bfd_seek (archive, filepos, SEEK_SET))
return NULL;
- if ((new_areldata = (struct areltdata *) _bfd_read_ar_hdr (archive)) == NULL)
+ if ((new_areldata = _bfd_read_ar_hdr (archive)) == NULL)
return NULL;
n_nfd = _bfd_create_empty_archive_element_shell (archive);
if (n_nfd == NULL)
{
- bfd_release (archive, (PTR) new_areldata);
+ bfd_release (archive, new_areldata);
return NULL;
}
n_nfd->origin = bfd_tell (archive);
- n_nfd->arelt_data = (PTR) new_areldata;
+ n_nfd->arelt_data = new_areldata;
n_nfd->filename = new_areldata->filename;
if (_bfd_add_bfd_to_archive_cache (archive, filepos, n_nfd))
return n_nfd;
/* Huh? */
- bfd_release (archive, (PTR) n_nfd);
- bfd_release (archive, (PTR) new_areldata);
+ bfd_release (archive, n_nfd);
+ bfd_release (archive, new_areldata);
return NULL;
}
@@ -532,9 +501,7 @@ _bfd_get_elt_at_filepos (archive, filepos)
INDEX. INDEX should have been returned by bfd_get_next_mapent. */
bfd *
-_bfd_generic_get_elt_at_index (abfd, index)
- bfd *abfd;
- symindex index;
+_bfd_generic_get_elt_at_index (bfd *abfd, symindex index)
{
carsym *entry;
@@ -547,7 +514,7 @@ FUNCTION
bfd_openr_next_archived_file
SYNOPSIS
- bfd *bfd_openr_next_archived_file(bfd *archive, bfd *previous);
+ bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
DESCRIPTION
Provided a BFD, @var{archive}, containing an archive and NULL, open
@@ -559,9 +526,7 @@ DESCRIPTION
*/
bfd *
-bfd_openr_next_archived_file (archive, last_file)
- bfd *archive;
- bfd *last_file;
+bfd_openr_next_archived_file (bfd *archive, bfd *last_file)
{
if ((bfd_get_format (archive) != bfd_archive) ||
(archive->direction == write_direction))
@@ -571,15 +536,11 @@ bfd_openr_next_archived_file (archive, last_file)
}
return BFD_SEND (archive,
- openr_next_archived_file,
- (archive,
- last_file));
+ openr_next_archived_file, (archive, last_file));
}
bfd *
-bfd_generic_openr_next_archived_file (archive, last_file)
- bfd *archive;
- bfd *last_file;
+bfd_generic_openr_next_archived_file (bfd *archive, bfd *last_file)
{
file_ptr filestart;
@@ -599,14 +560,13 @@ bfd_generic_openr_next_archived_file (archive, last_file)
}
const bfd_target *
-bfd_generic_archive_p (abfd)
- bfd *abfd;
+bfd_generic_archive_p (bfd *abfd)
{
struct artdata *tdata_hold;
char armag[SARMAG + 1];
bfd_size_type amt;
- if (bfd_bread ((PTR) armag, (bfd_size_type) SARMAG, abfd) != SARMAG)
+ if (bfd_bread (armag, SARMAG, abfd) != SARMAG)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_wrong_format);
@@ -625,7 +585,7 @@ bfd_generic_archive_p (abfd)
tdata_hold = bfd_ardata (abfd);
amt = sizeof (struct artdata);
- bfd_ardata (abfd) = (struct artdata *) bfd_zalloc (abfd, amt);
+ bfd_ardata (abfd) = bfd_zalloc (abfd, amt);
if (bfd_ardata (abfd) == NULL)
{
bfd_ardata (abfd) = tdata_hold;
@@ -664,7 +624,7 @@ bfd_generic_archive_p (abfd)
normal archive, regardless of the format of the object files.
We do accept an empty archive. */
- first = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
+ first = bfd_openr_next_archived_file (abfd, NULL);
if (first != NULL)
{
bfd_boolean fail;
@@ -679,7 +639,7 @@ bfd_generic_archive_p (abfd)
we have no way to remove it from the archive cache.
It's close to impossible to figure out when we can
release bfd_ardata. FIXME. */
- (void) bfd_close (first);
+ bfd_close (first);
bfd_release (abfd, bfd_ardata (abfd));
#endif
bfd_set_error (bfd_error_wrong_object_format);
@@ -713,8 +673,7 @@ bfd_generic_archive_p (abfd)
/* Returns FALSE on error, TRUE otherwise */
static bfd_boolean
-do_slurp_bsd_armap (abfd)
- bfd *abfd;
+do_slurp_bsd_armap (bfd *abfd)
{
struct areltdata *mapdata;
unsigned int counter;
@@ -724,22 +683,22 @@ do_slurp_bsd_armap (abfd)
bfd_size_type parsed_size, amt;
carsym *set;
- mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
+ mapdata = _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return FALSE;
parsed_size = mapdata->parsed_size;
- bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */
+ bfd_release (abfd, mapdata); /* Don't need it any more. */
- raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size);
- if (raw_armap == (bfd_byte *) NULL)
+ raw_armap = bfd_zalloc (abfd, parsed_size);
+ if (raw_armap == NULL)
return FALSE;
- if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size)
+ if (bfd_bread (raw_armap, parsed_size, abfd) != parsed_size)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
byebye:
- bfd_release (abfd, (PTR) raw_armap);
+ bfd_release (abfd, raw_armap);
return FALSE;
}
@@ -758,8 +717,8 @@ do_slurp_bsd_armap (abfd)
stringbase = ((char *) rbase
+ ardata->symdef_count * BSD_SYMDEF_SIZE
+ BSD_STRING_COUNT_SIZE);
- amt = (bfd_size_type) ardata->symdef_count * sizeof (carsym);
- ardata->symdefs = (carsym *) bfd_alloc (abfd, amt);
+ amt = ardata->symdef_count * sizeof (carsym);
+ ardata->symdefs = bfd_alloc (abfd, amt);
if (!ardata->symdefs)
return FALSE;
@@ -784,8 +743,7 @@ do_slurp_bsd_armap (abfd)
/* Returns FALSE on error, TRUE otherwise. */
static bfd_boolean
-do_slurp_coff_armap (abfd)
- bfd *abfd;
+do_slurp_coff_armap (bfd *abfd)
{
struct areltdata *mapdata;
int *raw_armap, *rawptr;
@@ -795,18 +753,18 @@ do_slurp_coff_armap (abfd)
unsigned int parsed_size;
carsym *carsyms;
bfd_size_type nsymz; /* Number of symbols in armap. */
- bfd_vma (*swap) PARAMS ((const bfd_byte *));
+ bfd_vma (*swap) (const bfd_byte *);
char int_buf[sizeof (long)];
bfd_size_type carsym_size, ptrsize;
unsigned int i;
- mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
+ mapdata = _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return FALSE;
parsed_size = mapdata->parsed_size;
- bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */
+ bfd_release (abfd, mapdata); /* Don't need it any more. */
- if (bfd_bread ((PTR) int_buf, (bfd_size_type) 4, abfd) != 4)
+ if (bfd_bread (int_buf, 4, abfd) != 4)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
@@ -815,7 +773,7 @@ do_slurp_coff_armap (abfd)
/* It seems that all numeric information in a coff archive is always
in big endian format, nomatter the host or target. */
swap = bfd_getb32;
- nsymz = bfd_getb32 ((PTR) int_buf);
+ nsymz = bfd_getb32 (int_buf);
stringsize = parsed_size - (4 * nsymz) - 4;
#if 1
@@ -829,7 +787,7 @@ do_slurp_coff_armap (abfd)
&& bfd_get_flavour (abfd) == bfd_target_coff_flavour)
{
/* This looks dangerous, let's do it the other way around. */
- nsymz = bfd_getl32 ((PTR) int_buf);
+ nsymz = bfd_getl32 (int_buf);
stringsize = parsed_size - (4 * nsymz) - 4;
swap = bfd_getl32;
}
@@ -841,18 +799,18 @@ do_slurp_coff_armap (abfd)
carsym_size = (nsymz * sizeof (carsym));
ptrsize = (4 * nsymz);
- ardata->symdefs = (carsym *) bfd_zalloc (abfd, carsym_size + stringsize + 1);
+ ardata->symdefs = bfd_zalloc (abfd, carsym_size + stringsize + 1);
if (ardata->symdefs == NULL)
return FALSE;
carsyms = ardata->symdefs;
stringbase = ((char *) ardata->symdefs) + carsym_size;
/* Allocate and read in the raw offsets. */
- raw_armap = (int *) bfd_alloc (abfd, ptrsize);
+ raw_armap = bfd_alloc (abfd, ptrsize);
if (raw_armap == NULL)
goto release_symdefs;
- if (bfd_bread ((PTR) raw_armap, ptrsize, abfd) != ptrsize
- || (bfd_bread ((PTR) stringbase, stringsize, abfd) != stringsize))
+ if (bfd_bread (raw_armap, ptrsize, abfd) != ptrsize
+ || (bfd_bread (stringbase, stringsize, abfd) != stringsize))
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
@@ -863,7 +821,7 @@ do_slurp_coff_armap (abfd)
for (i = 0; i < nsymz; i++)
{
rawptr = raw_armap + i;
- carsyms->file_offset = swap ((PTR) rawptr);
+ carsyms->file_offset = swap ((bfd_byte *) rawptr);
carsyms->name = stringbase;
stringbase += strlen (stringbase) + 1;
carsyms++;
@@ -876,14 +834,14 @@ do_slurp_coff_armap (abfd)
ardata->first_file_filepos += (ardata->first_file_filepos) % 2;
bfd_has_map (abfd) = TRUE;
- bfd_release (abfd, (PTR) raw_armap);
+ bfd_release (abfd, raw_armap);
/* Check for a second archive header (as used by PE). */
{
struct areltdata *tmp;
bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET);
- tmp = (struct areltdata *) _bfd_read_ar_hdr (abfd);
+ tmp = _bfd_read_ar_hdr (abfd);
if (tmp != NULL)
{
if (tmp->arch_header[0] == '/'
@@ -899,9 +857,9 @@ do_slurp_coff_armap (abfd)
return TRUE;
release_raw_armap:
- bfd_release (abfd, (PTR) raw_armap);
+ bfd_release (abfd, raw_armap);
release_symdefs:
- bfd_release (abfd, (PTR) (ardata)->symdefs);
+ bfd_release (abfd, (ardata)->symdefs);
return FALSE;
}
@@ -909,11 +867,10 @@ release_symdefs:
Returns FALSE on error, TRUE otherwise */
bfd_boolean
-bfd_slurp_armap (abfd)
- bfd *abfd;
+bfd_slurp_armap (bfd *abfd)
{
char nextname[17];
- int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
+ int i = bfd_bread (nextname, 16, abfd);
if (i == 0)
return TRUE;
@@ -932,6 +889,7 @@ bfd_slurp_armap (abfd)
{
/* 64bit ELF (Irix 6) archive. */
#ifdef BFD64
+ extern bfd_boolean bfd_elf64_archive_slurp_armap (bfd *);
return bfd_elf64_archive_slurp_armap (abfd);
#else
bfd_set_error (bfd_error_wrong_format);
@@ -951,8 +909,7 @@ bfd_slurp_armap (abfd)
#define HPUX_SYMDEF_COUNT_SIZE 2
bfd_boolean
-bfd_slurp_bsd_armap_f2 (abfd)
- bfd *abfd;
+bfd_slurp_bsd_armap_f2 (bfd *abfd)
{
struct areltdata *mapdata;
char nextname[17];
@@ -963,7 +920,7 @@ bfd_slurp_bsd_armap_f2 (abfd)
unsigned int stringsize;
bfd_size_type amt;
carsym *set;
- int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
+ int i = bfd_bread (nextname, 16, abfd);
if (i == 0)
return TRUE;
@@ -984,29 +941,29 @@ bfd_slurp_bsd_armap_f2 (abfd)
return TRUE;
}
- mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
+ mapdata = _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return FALSE;
amt = mapdata->parsed_size;
- raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt);
+ raw_armap = bfd_zalloc (abfd, amt);
if (raw_armap == NULL)
{
byebye:
- bfd_release (abfd, (PTR) mapdata);
+ bfd_release (abfd, mapdata);
return FALSE;
}
- if (bfd_bread ((PTR) raw_armap, amt, abfd) != amt)
+ if (bfd_bread (raw_armap, amt, abfd) != amt)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
byebyebye:
- bfd_release (abfd, (PTR) raw_armap);
+ bfd_release (abfd, raw_armap);
goto byebye;
}
- ardata->symdef_count = H_GET_16 (abfd, (PTR) raw_armap);
+ ardata->symdef_count = H_GET_16 (abfd, raw_armap);
if (ardata->symdef_count * BSD_SYMDEF_SIZE
> mapdata->parsed_size - HPUX_SYMDEF_COUNT_SIZE)
@@ -1024,8 +981,8 @@ bfd_slurp_bsd_armap_f2 (abfd)
+ HPUX_SYMDEF_COUNT_SIZE
+ BSD_STRING_COUNT_SIZE);
rbase = (bfd_byte *) stringbase + stringsize;
- amt = (bfd_size_type) ardata->symdef_count * BSD_SYMDEF_SIZE;
- ardata->symdefs = (carsym *) bfd_alloc (abfd, amt);
+ amt = ardata->symdef_count * BSD_SYMDEF_SIZE;
+ ardata->symdefs = bfd_alloc (abfd, amt);
if (!ardata->symdefs)
return FALSE;
@@ -1060,8 +1017,7 @@ bfd_slurp_bsd_armap_f2 (abfd)
/* Returns FALSE on error, TRUE otherwise. */
bfd_boolean
-_bfd_slurp_extended_name_table (abfd)
- bfd *abfd;
+_bfd_slurp_extended_name_table (bfd *abfd)
{
char nextname[17];
struct areltdata *namedata;
@@ -1070,7 +1026,7 @@ _bfd_slurp_extended_name_table (abfd)
/* FIXME: Formatting sucks here, and in case of failure of BFD_READ,
we probably don't want to return TRUE. */
bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET);
- if (bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd) == 16)
+ if (bfd_bread (nextname, 16, abfd) == 16)
{
if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
return FALSE;
@@ -1082,7 +1038,7 @@ _bfd_slurp_extended_name_table (abfd)
return TRUE;
}
- namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
+ namedata = _bfd_read_ar_hdr (abfd);
if (namedata == NULL)
return FALSE;
@@ -1091,15 +1047,15 @@ _bfd_slurp_extended_name_table (abfd)
if (bfd_ardata (abfd)->extended_names == NULL)
{
byebye:
- bfd_release (abfd, (PTR) namedata);
+ bfd_release (abfd, namedata);
return FALSE;
}
- if (bfd_bread ((PTR) bfd_ardata (abfd)->extended_names, amt, abfd) != amt)
+ if (bfd_bread (bfd_ardata (abfd)->extended_names, amt, abfd) != amt)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
- bfd_release (abfd, (PTR) (bfd_ardata (abfd)->extended_names));
+ bfd_release (abfd, (bfd_ardata (abfd)->extended_names));
bfd_ardata (abfd)->extended_names = NULL;
goto byebye;
}
@@ -1141,9 +1097,7 @@ _bfd_slurp_extended_name_table (abfd)
semicolon. */
static const char *
-normalize (abfd, file)
- bfd *abfd;
- const char *file;
+normalize (bfd *abfd, const char *file)
{
const char *first;
const char *last;
@@ -1164,7 +1118,7 @@ normalize (abfd, file)
first--;
}
- copy = (char *) bfd_alloc (abfd, (bfd_size_type) (last - first + 1));
+ copy = bfd_alloc (abfd, last - first + 1);
if (copy == NULL)
return NULL;
@@ -1176,9 +1130,7 @@ normalize (abfd, file)
#else
static const char *
-normalize (abfd, file)
- bfd *abfd ATTRIBUTE_UNUSED;
- const char *file;
+normalize (bfd *abfd ATTRIBUTE_UNUSED, const char *file)
{
const char *filename = strrchr (file, '/');
@@ -1192,7 +1144,7 @@ normalize (abfd, file)
filename = file + 1;
}
#endif
- if (filename != (char *) NULL)
+ if (filename != NULL)
filename++;
else
filename = file;
@@ -1203,11 +1155,10 @@ normalize (abfd, file)
/* Build a BFD style extended name table. */
bfd_boolean
-_bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name)
- bfd *abfd;
- char **tabloc;
- bfd_size_type *tablen;
- const char **name;
+_bfd_archive_bsd_construct_extended_name_table (bfd *abfd,
+ char **tabloc,
+ bfd_size_type *tablen,
+ const char **name)
{
*name = "ARFILENAMES/";
return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen);
@@ -1216,11 +1167,10 @@ _bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name)
/* Build an SVR4 style extended name table. */
bfd_boolean
-_bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name)
- bfd *abfd;
- char **tabloc;
- bfd_size_type *tablen;
- const char **name;
+_bfd_archive_coff_construct_extended_name_table (bfd *abfd,
+ char **tabloc,
+ bfd_size_type *tablen,
+ const char **name)
{
*name = "//";
return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen);
@@ -1235,11 +1185,10 @@ _bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name)
zero-length tablen! */
bfd_boolean
-_bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
- bfd *abfd;
- bfd_boolean trailing_slash;
- char **tabloc;
- bfd_size_type *tablen;
+_bfd_construct_extended_name_table (bfd *abfd,
+ bfd_boolean trailing_slash,
+ char **tabloc,
+ bfd_size_type *tablen)
{
unsigned int maxname = abfd->xvec->ar_max_namelen;
bfd_size_type total_namelen = 0;
@@ -1353,9 +1302,7 @@ _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen)
/* Function to encode large UID/GID values according to HP. */
static void
-hpux_uid_gid_encode (str, id)
- char str[6];
- long int id;
+hpux_uid_gid_encode (char str[6], long int id)
{
int cnt;
@@ -1381,10 +1328,7 @@ hpux_uid_gid_encode (str, id)
is set, and it's an in-memory bfd, we fake it. */
static struct areltdata *
-bfd_ar_hdr_from_filesystem (abfd, filename, member)
- bfd *abfd;
- const char *filename;
- bfd *member;
+bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
{
struct stat status;
struct areltdata *ared;
@@ -1395,7 +1339,7 @@ bfd_ar_hdr_from_filesystem (abfd, filename, member)
if (member && (member->flags & BFD_IN_MEMORY) != 0)
{
/* Assume we just "made" the member, and fake it. */
- struct bfd_in_memory *bim = (struct bfd_in_memory *) member->iostream;
+ struct bfd_in_memory *bim = member->iostream;
time (&status.st_mtime);
status.st_uid = getuid ();
status.st_gid = getgid ();
@@ -1409,13 +1353,13 @@ bfd_ar_hdr_from_filesystem (abfd, filename, member)
}
amt = sizeof (struct ar_hdr) + sizeof (struct areltdata);
- ared = (struct areltdata *) bfd_zalloc (abfd, amt);
+ ared = bfd_zalloc (abfd, amt);
if (ared == NULL)
return NULL;
hdr = (struct ar_hdr *) (((char *) ared) + sizeof (struct areltdata));
/* ar headers are space padded, not null padded! */
- memset ((PTR) hdr, ' ', sizeof (struct ar_hdr));
+ memset (hdr, ' ', sizeof (struct ar_hdr));
strncpy (hdr->ar_fmag, ARFMAG, 2);
@@ -1461,13 +1405,10 @@ bfd_ar_hdr_from_filesystem (abfd, filename, member)
a strong stomach to write this, and it does, but it takes even a
stronger stomach to try to code around such a thing! */
-struct ar_hdr *bfd_special_undocumented_glue
- PARAMS ((bfd *, const char *));
+struct ar_hdr *bfd_special_undocumented_glue (bfd *, const char *);
struct ar_hdr *
-bfd_special_undocumented_glue (abfd, filename)
- bfd *abfd;
- const char *filename;
+bfd_special_undocumented_glue (bfd *abfd, const char *filename)
{
struct areltdata *ar_elt = bfd_ar_hdr_from_filesystem (abfd, filename, 0);
if (ar_elt == NULL)
@@ -1478,9 +1419,7 @@ bfd_special_undocumented_glue (abfd, filename)
/* Analogous to stat call. */
int
-bfd_generic_stat_arch_elt (abfd, buf)
- bfd *abfd;
- struct stat *buf;
+bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
{
struct ar_hdr *hdr;
char *aloser;
@@ -1535,10 +1474,7 @@ bfd_generic_stat_arch_elt (abfd, buf)
}
void
-bfd_dont_truncate_arname (abfd, pathname, arhdr)
- bfd *abfd;
- const char *pathname;
- char *arhdr;
+bfd_dont_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
{
/* FIXME: This interacts unpleasantly with ar's quick-append option.
Fortunately ic960 users will never use that option. Fixing this
@@ -1575,10 +1511,7 @@ bfd_dont_truncate_arname (abfd, pathname, arhdr)
}
void
-bfd_bsd_truncate_arname (abfd, pathname, arhdr)
- bfd *abfd;
- const char *pathname;
- char *arhdr;
+bfd_bsd_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
{
struct ar_hdr *hdr = (struct ar_hdr *) arhdr;
size_t length;
@@ -1626,10 +1559,7 @@ bfd_bsd_truncate_arname (abfd, pathname, arhdr)
bsd ar. */
void
-bfd_gnu_truncate_arname (abfd, pathname, arhdr)
- bfd *abfd;
- const char *pathname;
- char *arhdr;
+bfd_gnu_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
{
struct ar_hdr *hdr = (struct ar_hdr *) arhdr;
size_t length;
@@ -1674,8 +1604,7 @@ bfd_gnu_truncate_arname (abfd, pathname, arhdr)
/* The BFD is open for write and has its format set to bfd_archive. */
bfd_boolean
-_bfd_write_archive_contents (arch)
- bfd *arch;
+_bfd_write_archive_contents (bfd *arch)
{
bfd *current;
char *etable = NULL;
@@ -1706,14 +1635,13 @@ _bfd_write_archive_contents (arch)
if (!current->arelt_data)
{
current->arelt_data =
- (PTR) bfd_ar_hdr_from_filesystem (arch, current->filename, current);
+ bfd_ar_hdr_from_filesystem (arch, current->filename, current);
if (!current->arelt_data)
return FALSE;
/* Put in the file name. */
- BFD_SEND (arch, _bfd_truncate_arname, (arch,
- current->filename,
- (char *) arch_hdr (current)));
+ BFD_SEND (arch, _bfd_truncate_arname,
+ (arch, current->filename, (char *) arch_hdr (current)));
}
if (makemap && ! hasobjects)
@@ -1734,9 +1662,9 @@ _bfd_write_archive_contents (arch)
if (bfd_seek (arch, (file_ptr) 0, SEEK_SET) != 0)
return FALSE;
#ifdef GNU960
- wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), (bfd_size_type) SARMAG, arch);
+ wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), SARMAG, arch);
#else
- wrote = bfd_bwrite (ARMAG, (bfd_size_type) SARMAG, arch);
+ wrote = bfd_bwrite (ARMAG, SARMAG, arch);
#endif
if (wrote != SARMAG)
return FALSE;
@@ -1751,7 +1679,7 @@ _bfd_write_archive_contents (arch)
{
struct ar_hdr hdr;
- memset ((char *) (&hdr), 0, sizeof (struct ar_hdr));
+ memset (&hdr, 0, sizeof (struct ar_hdr));
strcpy (hdr.ar_name, ename);
/* Round size up to even number in archive header. */
sprintf (&(hdr.ar_size[0]), "%-10d",
@@ -1760,13 +1688,13 @@ _bfd_write_archive_contents (arch)
for (i = 0; i < sizeof (struct ar_hdr); i++)
if (((char *) (&hdr))[i] == '\0')
(((char *) (&hdr))[i]) = ' ';
- if ((bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
+ if ((bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch)
!= sizeof (struct ar_hdr))
|| bfd_bwrite (etable, elength, arch) != elength)
return FALSE;
if ((elength % 2) == 1)
{
- if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1)
+ if (bfd_bwrite ("\012", 1, arch) != 1)
return FALSE;
}
}
@@ -1778,7 +1706,7 @@ _bfd_write_archive_contents (arch)
struct ar_hdr *hdr = arch_hdr (current);
/* Write ar header. */
- if (bfd_bwrite ((PTR) hdr, (bfd_size_type) sizeof (*hdr), arch)
+ if (bfd_bwrite (hdr, sizeof (*hdr), arch)
!= sizeof (*hdr))
return FALSE;
if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0)
@@ -1789,19 +1717,19 @@ _bfd_write_archive_contents (arch)
if (amt > remaining)
amt = remaining;
errno = 0;
- if (bfd_bread (buffer, (bfd_size_type) amt, current) != amt)
+ if (bfd_bread (buffer, amt, current) != amt)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
return FALSE;
}
- if (bfd_bwrite (buffer, (bfd_size_type) amt, arch) != amt)
+ if (bfd_bwrite (buffer, amt, arch) != amt)
return FALSE;
remaining -= amt;
}
if ((arelt_size (current) % 2) == 1)
{
- if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1)
+ if (bfd_bwrite ("\012", 1, arch) != 1)
return FALSE;
}
}
@@ -1831,9 +1759,7 @@ _bfd_write_archive_contents (arch)
/* Note that the namidx for the first symbol is 0. */
bfd_boolean
-_bfd_compute_and_write_armap (arch, elength)
- bfd *arch;
- unsigned int elength;
+_bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
{
char *first_name = NULL;
bfd *current;
@@ -1852,14 +1778,14 @@ _bfd_compute_and_write_armap (arch, elength)
elength += sizeof (struct ar_hdr);
elength += elength % 2;
- amt = (bfd_size_type) orl_max * sizeof (struct orl);
- map = (struct orl *) bfd_malloc (amt);
+ amt = orl_max * sizeof (struct orl);
+ map = bfd_malloc (amt);
if (map == NULL)
goto error_return;
/* We put the symbol names on the arch objalloc, and then discard
them when done. */
- first_name = bfd_alloc (arch, (bfd_size_type) 1);
+ first_name = bfd_alloc (arch, 1);
if (first_name == NULL)
goto error_return;
@@ -1870,7 +1796,7 @@ _bfd_compute_and_write_armap (arch, elength)
/* Map over each element. */
for (current = arch->archive_head;
- current != (bfd *) NULL;
+ current != NULL;
current = current->next, elt_no++)
{
if (bfd_check_format (current, bfd_object)
@@ -1891,7 +1817,7 @@ _bfd_compute_and_write_armap (arch, elength)
if (syms_max > 0)
free (syms);
syms_max = storage;
- syms = (asymbol **) bfd_malloc ((bfd_size_type) syms_max);
+ syms = bfd_malloc (syms_max);
if (syms == NULL)
goto error_return;
}
@@ -1919,9 +1845,9 @@ _bfd_compute_and_write_armap (arch, elength)
if (orl_count == orl_max)
{
orl_max *= 2;
- amt = (bfd_size_type) orl_max * sizeof (struct orl);
- new_map = (struct orl *) bfd_realloc (map, amt);
- if (new_map == (struct orl *) NULL)
+ amt = orl_max * sizeof (struct orl);
+ new_map = bfd_realloc (map, amt);
+ if (new_map == NULL)
goto error_return;
map = new_map;
@@ -1929,7 +1855,7 @@ _bfd_compute_and_write_armap (arch, elength)
namelen = strlen (syms[src_count]->name);
amt = sizeof (char *);
- map[orl_count].name = (char **) bfd_alloc (arch, amt);
+ map[orl_count].name = bfd_alloc (arch, amt);
if (map[orl_count].name == NULL)
goto error_return;
*(map[orl_count].name) = bfd_alloc (arch, namelen + 1);
@@ -1977,12 +1903,11 @@ _bfd_compute_and_write_armap (arch, elength)
}
bfd_boolean
-bsd_write_armap (arch, elength, map, orl_count, stridx)
- bfd *arch;
- unsigned int elength;
- struct orl *map;
- unsigned int orl_count;
- int stridx;
+bsd_write_armap (bfd *arch,
+ unsigned int elength,
+ struct orl *map,
+ unsigned int orl_count,
+ int stridx)
{
int padit = stridx & 1;
unsigned int ranlibsize = orl_count * BSD_SYMDEF_SIZE;
@@ -2001,7 +1926,7 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG;
stat (arch->filename, &statbuf);
- memset ((char *) (&hdr), 0, sizeof (struct ar_hdr));
+ memset (&hdr, 0, sizeof (struct ar_hdr));
sprintf (hdr.ar_name, RANLIBMAG);
/* Remember the timestamp, to keep it holy. But fudge it a little. */
bfd_ardata (arch)->armap_timestamp = statbuf.st_mtime + ARMAP_TIME_OFFSET;
@@ -2015,11 +1940,11 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
for (i = 0; i < sizeof (struct ar_hdr); i++)
if (((char *) (&hdr))[i] == '\0')
(((char *) (&hdr))[i]) = ' ';
- if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
+ if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch)
!= sizeof (struct ar_hdr))
return FALSE;
H_PUT_32 (arch, ranlibsize, temp);
- if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp))
+ if (bfd_bwrite (temp, sizeof (temp), arch) != sizeof (temp))
return FALSE;
for (count = 0; count < orl_count; count++)
@@ -2040,20 +1965,20 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
last_elt = current;
H_PUT_32 (arch, map[count].namidx, buf);
H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE);
- if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch)
+ if (bfd_bwrite (buf, BSD_SYMDEF_SIZE, arch)
!= BSD_SYMDEF_SIZE)
return FALSE;
}
/* Now write the strings themselves. */
H_PUT_32 (arch, stringsize, temp);
- if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp))
+ if (bfd_bwrite (temp, sizeof (temp), arch) != sizeof (temp))
return FALSE;
for (count = 0; count < orl_count; count++)
{
size_t len = strlen (*map[count].name) + 1;
- if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
+ if (bfd_bwrite (*map[count].name, len, arch) != len)
return FALSE;
}
@@ -2061,7 +1986,7 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
bug-compatible for sun's ar we use a null. */
if (padit)
{
- if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
+ if (bfd_bwrite ("", 1, arch) != 1)
return FALSE;
}
@@ -2075,8 +2000,7 @@ bsd_write_armap (arch, elength, map, orl_count, stridx)
Return FALSE if we updated the timestamp. */
bfd_boolean
-_bfd_archive_bsd_update_armap_timestamp (arch)
- bfd *arch;
+_bfd_archive_bsd_update_armap_timestamp (bfd *arch)
{
struct stat archstat;
struct ar_hdr hdr;
@@ -2110,7 +2034,7 @@ _bfd_archive_bsd_update_armap_timestamp (arch)
bfd_ardata (arch)->armap_datepos = (SARMAG
+ offsetof (struct ar_hdr, ar_date[0]));
if (bfd_seek (arch, bfd_ardata (arch)->armap_datepos, SEEK_SET) != 0
- || (bfd_bwrite (hdr.ar_date, (bfd_size_type) sizeof (hdr.ar_date), arch)
+ || (bfd_bwrite (hdr.ar_date, sizeof (hdr.ar_date), arch)
!= sizeof (hdr.ar_date)))
{
bfd_perror (_("Writing updated armap timestamp"));
@@ -2138,12 +2062,11 @@ _bfd_archive_bsd_update_armap_timestamp (arch)
*/
bfd_boolean
-coff_write_armap (arch, elength, map, symbol_count, stridx)
- bfd *arch;
- unsigned int elength;
- struct orl *map;
- unsigned int symbol_count;
- int stridx;
+coff_write_armap (bfd *arch,
+ unsigned int elength,
+ struct orl *map,
+ unsigned int symbol_count,
+ int stridx)
{
/* The size of the ranlib is the number of exported symbols in the
archive * the number of bytes in an int, + an int for the count. */
@@ -2166,7 +2089,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
+ sizeof (struct ar_hdr)
+ SARMAG);
- memset ((char *) (&hdr), 0, sizeof (struct ar_hdr));
+ memset (&hdr, 0, sizeof (struct ar_hdr));
hdr.ar_name[0] = '/';
sprintf (hdr.ar_size, "%-10d", (int) mapsize);
sprintf (hdr.ar_date, "%ld", (long) time (NULL));
@@ -2182,7 +2105,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
/* Write the ar header for this item and the number of symbols. */
- if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
+ if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch)
!= sizeof (struct ar_hdr))
return FALSE;
@@ -2197,7 +2120,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
current = arch->archive_head;
count = 0;
- while (current != (bfd *) NULL && count < symbol_count)
+ while (current != NULL && count < symbol_count)
{
/* For each symbol which is used defined in this object, write
out the object file's address in the archive. */
@@ -2209,8 +2132,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
count++;
}
/* Add size of this archive entry. */
- archive_member_file_ptr += (arelt_size (current)
- + sizeof (struct ar_hdr));
+ archive_member_file_ptr += arelt_size (current) + sizeof (struct ar_hdr);
/* Remember aboout the even alignment. */
archive_member_file_ptr += archive_member_file_ptr % 2;
current = current->next;
@@ -2221,7 +2143,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
{
size_t len = strlen (*map[count].name) + 1;
- if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
+ if (bfd_bwrite (*map[count].name, len, arch) != len)
return FALSE;
}
@@ -2229,7 +2151,7 @@ coff_write_armap (arch, elength, map, symbol_count, stridx)
bug-compatible for arc960 we use a null. */
if (padit)
{
- if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
+ if (bfd_bwrite ("", 1, arch) != 1)
return FALSE;
}
diff --git a/bfd/archive64.c b/bfd/archive64.c
index 6267e68..1b9f5f3 100644
--- a/bfd/archive64.c
+++ b/bfd/archive64.c
@@ -1,5 +1,5 @@
/* MIPS-specific support for 64-bit ELF
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Ian Lance Taylor, Cygnus Support
Linker support added by Mark Mitchell, CodeSourcery, LLC.
@@ -31,15 +31,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Irix 6 defines a 64bit archive map format, so that they can
have archives more than 4 GB in size. */
-bfd_boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *));
+bfd_boolean bfd_elf64_archive_slurp_armap (bfd *);
bfd_boolean bfd_elf64_archive_write_armap
- PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
+ (bfd *, unsigned int, struct orl *, unsigned int, int);
/* Read an Irix 6 armap. */
bfd_boolean
-bfd_elf64_archive_slurp_armap (abfd)
- bfd *abfd;
+bfd_elf64_archive_slurp_armap (bfd *abfd)
{
struct artdata *ardata = bfd_ardata (abfd);
char nextname[17];
@@ -56,7 +55,7 @@ bfd_elf64_archive_slurp_armap (abfd)
/* Get the name of the first element. */
arhdrpos = bfd_tell (abfd);
- i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd);
+ i = bfd_bread (nextname, 16, abfd);
if (i == 0)
return TRUE;
if (i != 16)
@@ -79,9 +78,9 @@ bfd_elf64_archive_slurp_armap (abfd)
if (mapdata == NULL)
return FALSE;
parsed_size = mapdata->parsed_size;
- bfd_release (abfd, (PTR) mapdata);
+ bfd_release (abfd, mapdata);
- if (bfd_bread (int_buf, (bfd_size_type) 8, abfd) != 8)
+ if (bfd_bread (int_buf, 8, abfd) != 8)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_malformed_archive);
@@ -95,13 +94,13 @@ bfd_elf64_archive_slurp_armap (abfd)
ptrsize = 8 * nsymz;
amt = carsym_size + stringsize + 1;
- ardata->symdefs = (carsym *) bfd_zalloc (abfd, amt);
+ ardata->symdefs = bfd_zalloc (abfd, amt);
if (ardata->symdefs == NULL)
return FALSE;
carsyms = ardata->symdefs;
stringbase = ((char *) ardata->symdefs) + carsym_size;
- raw_armap = (bfd_byte *) bfd_alloc (abfd, ptrsize);
+ raw_armap = bfd_alloc (abfd, ptrsize);
if (raw_armap == NULL)
goto release_symdefs;
@@ -144,12 +143,11 @@ release_symdefs:
linker crashes. */
bfd_boolean
-bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
- bfd *arch;
- unsigned int elength;
- struct orl *map;
- unsigned int symbol_count;
- int stridx;
+bfd_elf64_archive_write_armap (bfd *arch,
+ unsigned int elength,
+ struct orl *map,
+ unsigned int symbol_count,
+ int stridx)
{
unsigned int ranlibsize = (symbol_count * 8) + 8;
unsigned int stringsize = stridx;
@@ -171,7 +169,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
+ sizeof (struct ar_hdr)
+ SARMAG);
- memset ((char *) (&hdr), 0, sizeof (struct ar_hdr));
+ memset (&hdr, 0, sizeof (struct ar_hdr));
strcpy (hdr.ar_name, "/SYM64/");
sprintf (hdr.ar_size, "%-10d", (int) mapsize);
sprintf (hdr.ar_date, "%ld", (long) time (NULL));
@@ -187,12 +185,12 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
/* Write the ar header for this item and the number of symbols */
- if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch)
+ if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch)
!= sizeof (struct ar_hdr))
return FALSE;
bfd_putb64 ((bfd_vma) symbol_count, buf);
- if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8)
+ if (bfd_bwrite (buf, 8, arch) != 8)
return FALSE;
/* Two passes, first write the file offsets for each symbol -
@@ -203,7 +201,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
current = arch->archive_head;
count = 0;
- while (current != (bfd *) NULL && count < symbol_count)
+ while (current != NULL && count < symbol_count)
{
/* For each symbol which is used defined in this object, write out
the object file's address in the archive */
@@ -211,7 +209,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
while (map[count].u.abfd == current)
{
bfd_putb64 ((bfd_vma) archive_member_file_ptr, buf);
- if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8)
+ if (bfd_bwrite (buf, 8, arch) != 8)
return FALSE;
count++;
}
@@ -228,7 +226,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
{
size_t len = strlen (*map[count].name) + 1;
- if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len)
+ if (bfd_bwrite (*map[count].name, len, arch) != len)
return FALSE;
}
@@ -236,7 +234,7 @@ bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx)
However, the Irix 6.2 tools do not appear to do this. */
while (padding != 0)
{
- if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1)
+ if (bfd_bwrite ("", 1, arch) != 1)
return FALSE;
--padding;
}
diff --git a/bfd/archures.c b/bfd/archures.c
index 6132f15..407cd26 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -138,6 +138,7 @@ DESCRIPTION
.#define bfd_mach_mips5400 5400
.#define bfd_mach_mips5500 5500
.#define bfd_mach_mips6000 6000
+.#define bfd_mach_mips7000 7000
.#define bfd_mach_mips8000 8000
.#define bfd_mach_mips10000 10000
.#define bfd_mach_mips12000 12000
@@ -264,6 +265,7 @@ DESCRIPTION
. bfd_arch_mn10300, {* Matsushita MN10300 *}
.#define bfd_mach_mn10300 300
.#define bfd_mach_am33 330
+.#define bfd_mach_am33_2 332
. bfd_arch_fr30,
.#define bfd_mach_fr30 0x46523330
. bfd_arch_frv,
@@ -299,19 +301,20 @@ DESCRIPTION
. bfd_arch_xstormy16,
.#define bfd_mach_xstormy16 1
. bfd_arch_msp430, {* Texas Instruments MSP430 architecture. *}
-.#define bfd_mach_msp110 110
.#define bfd_mach_msp11 11
+.#define bfd_mach_msp110 110
.#define bfd_mach_msp12 12
.#define bfd_mach_msp13 13
.#define bfd_mach_msp14 14
-.#define bfd_mach_msp41 41
+.#define bfd_mach_msp15 15
+.#define bfd_mach_msp16 16
.#define bfd_mach_msp31 31
.#define bfd_mach_msp32 32
.#define bfd_mach_msp33 33
+.#define bfd_mach_msp41 41
+.#define bfd_mach_msp42 42
.#define bfd_mach_msp43 43
.#define bfd_mach_msp44 44
-.#define bfd_mach_msp15 15
-.#define bfd_mach_msp16 16
. bfd_arch_xtensa, {* Tensilica's Xtensa cores. *}
.#define bfd_mach_xtensa 1
. bfd_arch_last
@@ -342,10 +345,9 @@ DESCRIPTION
. all the entries for that arch can be accessed via <<next>>. *}
. bfd_boolean the_default;
. const struct bfd_arch_info * (*compatible)
-. PARAMS ((const struct bfd_arch_info *a,
-. const struct bfd_arch_info *b));
+. (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
.
-. bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
+. bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
.
. const struct bfd_arch_info *next;
.}
@@ -474,7 +476,7 @@ FUNCTION
bfd_printable_name
SYNOPSIS
- const char *bfd_printable_name(bfd *abfd);
+ const char *bfd_printable_name (bfd *abfd);
DESCRIPTION
Return a printable string representing the architecture and machine
@@ -483,8 +485,7 @@ DESCRIPTION
*/
const char *
-bfd_printable_name (abfd)
- bfd *abfd;
+bfd_printable_name (bfd *abfd)
{
return abfd->arch_info->printable_name;
}
@@ -494,7 +495,7 @@ FUNCTION
bfd_scan_arch
SYNOPSIS
- const bfd_arch_info_type *bfd_scan_arch(const char *string);
+ const bfd_arch_info_type *bfd_scan_arch (const char *string);
DESCRIPTION
Figure out if BFD supports any cpu which could be described with
@@ -503,8 +504,7 @@ DESCRIPTION
*/
const bfd_arch_info_type *
-bfd_scan_arch (string)
- const char *string;
+bfd_scan_arch (const char *string)
{
const bfd_arch_info_type * const *app, *ap;
@@ -526,7 +526,7 @@ FUNCTION
bfd_arch_list
SYNOPSIS
- const char **bfd_arch_list(void);
+ const char **bfd_arch_list (void);
DESCRIPTION
Return a freshly malloced NULL-terminated vector of the names
@@ -534,7 +534,7 @@ DESCRIPTION
*/
const char **
-bfd_arch_list ()
+bfd_arch_list (void)
{
int vec_length = 0;
const char **name_ptr;
@@ -554,7 +554,7 @@ bfd_arch_list ()
}
amt = (vec_length + 1) * sizeof (char **);
- name_list = (const char **) bfd_malloc (amt);
+ name_list = bfd_malloc (amt);
if (name_list == NULL)
return NULL;
@@ -579,10 +579,8 @@ FUNCTION
bfd_arch_get_compatible
SYNOPSIS
- const bfd_arch_info_type *bfd_arch_get_compatible(
- const bfd *abfd,
- const bfd *bbfd,
- bfd_boolean accept_unknowns);
+ const bfd_arch_info_type *bfd_arch_get_compatible
+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
DESCRIPTION
Determine whether two BFDs' architectures and machine types
@@ -593,10 +591,9 @@ DESCRIPTION
*/
const bfd_arch_info_type *
-bfd_arch_get_compatible (abfd, bbfd, accept_unknowns)
- const bfd *abfd;
- const bfd *bbfd;
- bfd_boolean accept_unknowns;
+bfd_arch_get_compatible (const bfd *abfd,
+ const bfd *bbfd,
+ bfd_boolean accept_unknowns)
{
const bfd * ubfd = NULL;
@@ -645,16 +642,14 @@ FUNCTION
bfd_set_arch_info
SYNOPSIS
- void bfd_set_arch_info(bfd *abfd, const bfd_arch_info_type *arg);
+ void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
DESCRIPTION
Set the architecture info of @var{abfd} to @var{arg}.
*/
void
-bfd_set_arch_info (abfd, arg)
- bfd *abfd;
- const bfd_arch_info_type *arg;
+bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg)
{
abfd->arch_info = arg;
}
@@ -664,9 +659,8 @@ INTERNAL_FUNCTION
bfd_default_set_arch_mach
SYNOPSIS
- bfd_boolean bfd_default_set_arch_mach(bfd *abfd,
- enum bfd_architecture arch,
- unsigned long mach);
+ bfd_boolean bfd_default_set_arch_mach
+ (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
DESCRIPTION
Set the architecture and machine type in BFD @var{abfd}
@@ -676,10 +670,9 @@ DESCRIPTION
*/
bfd_boolean
-bfd_default_set_arch_mach (abfd, arch, mach)
- bfd *abfd;
- enum bfd_architecture arch;
- unsigned long mach;
+bfd_default_set_arch_mach (bfd *abfd,
+ enum bfd_architecture arch,
+ unsigned long mach)
{
abfd->arch_info = bfd_lookup_arch (arch, mach);
if (abfd->arch_info != NULL)
@@ -695,7 +688,7 @@ FUNCTION
bfd_get_arch
SYNOPSIS
- enum bfd_architecture bfd_get_arch(bfd *abfd);
+ enum bfd_architecture bfd_get_arch (bfd *abfd);
DESCRIPTION
Return the enumerated type which describes the BFD @var{abfd}'s
@@ -703,8 +696,7 @@ DESCRIPTION
*/
enum bfd_architecture
-bfd_get_arch (abfd)
- bfd *abfd;
+bfd_get_arch (bfd *abfd)
{
return abfd->arch_info->arch;
}
@@ -714,7 +706,7 @@ FUNCTION
bfd_get_mach
SYNOPSIS
- unsigned long bfd_get_mach(bfd *abfd);
+ unsigned long bfd_get_mach (bfd *abfd);
DESCRIPTION
Return the long type which describes the BFD @var{abfd}'s
@@ -722,8 +714,7 @@ DESCRIPTION
*/
unsigned long
-bfd_get_mach (abfd)
- bfd *abfd;
+bfd_get_mach (bfd *abfd)
{
return abfd->arch_info->mach;
}
@@ -733,7 +724,7 @@ FUNCTION
bfd_arch_bits_per_byte
SYNOPSIS
- unsigned int bfd_arch_bits_per_byte(bfd *abfd);
+ unsigned int bfd_arch_bits_per_byte (bfd *abfd);
DESCRIPTION
Return the number of bits in one of the BFD @var{abfd}'s
@@ -741,8 +732,7 @@ DESCRIPTION
*/
unsigned int
-bfd_arch_bits_per_byte (abfd)
- bfd *abfd;
+bfd_arch_bits_per_byte (bfd *abfd)
{
return abfd->arch_info->bits_per_byte;
}
@@ -752,7 +742,7 @@ FUNCTION
bfd_arch_bits_per_address
SYNOPSIS
- unsigned int bfd_arch_bits_per_address(bfd *abfd);
+ unsigned int bfd_arch_bits_per_address (bfd *abfd);
DESCRIPTION
Return the number of bits in one of the BFD @var{abfd}'s
@@ -760,8 +750,7 @@ DESCRIPTION
*/
unsigned int
-bfd_arch_bits_per_address (abfd)
- bfd *abfd;
+bfd_arch_bits_per_address (bfd *abfd)
{
return abfd->arch_info->bits_per_address;
}
@@ -772,17 +761,15 @@ INTERNAL_FUNCTION
SYNOPSIS
const bfd_arch_info_type *bfd_default_compatible
- (const bfd_arch_info_type *a,
- const bfd_arch_info_type *b);
+ (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
DESCRIPTION
The default function for testing for compatibility.
*/
const bfd_arch_info_type *
-bfd_default_compatible (a, b)
- const bfd_arch_info_type *a;
- const bfd_arch_info_type *b;
+bfd_default_compatible (const bfd_arch_info_type *a,
+ const bfd_arch_info_type *b)
{
if (a->arch != b->arch)
return NULL;
@@ -804,7 +791,8 @@ INTERNAL_FUNCTION
bfd_default_scan
SYNOPSIS
- bfd_boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string);
+ bfd_boolean bfd_default_scan
+ (const struct bfd_arch_info *info, const char *string);
DESCRIPTION
The default function for working out whether this is an
@@ -812,9 +800,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_default_scan (info, string)
- const bfd_arch_info_type *info;
- const char *string;
+bfd_default_scan (const bfd_arch_info_type *info, const char *string)
{
const char *ptr_src;
const char *ptr_tst;
@@ -1023,15 +1009,14 @@ FUNCTION
bfd_get_arch_info
SYNOPSIS
- const bfd_arch_info_type * bfd_get_arch_info(bfd *abfd);
+ const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
DESCRIPTION
Return the architecture info struct in @var{abfd}.
*/
const bfd_arch_info_type *
-bfd_get_arch_info (abfd)
- bfd *abfd;
+bfd_get_arch_info (bfd *abfd)
{
return abfd->arch_info;
}
@@ -1042,9 +1027,7 @@ FUNCTION
SYNOPSIS
const bfd_arch_info_type *bfd_lookup_arch
- (enum bfd_architecture
- arch,
- unsigned long machine);
+ (enum bfd_architecture arch, unsigned long machine);
DESCRIPTION
Look for the architecure info structure which matches the
@@ -1054,9 +1037,7 @@ DESCRIPTION
*/
const bfd_arch_info_type *
-bfd_lookup_arch (arch, machine)
- enum bfd_architecture arch;
- unsigned long machine;
+bfd_lookup_arch (enum bfd_architecture arch, unsigned long machine)
{
const bfd_arch_info_type * const *app, *ap;
@@ -1080,7 +1061,7 @@ FUNCTION
SYNOPSIS
const char *bfd_printable_arch_mach
- (enum bfd_architecture arch, unsigned long machine);
+ (enum bfd_architecture arch, unsigned long machine);
DESCRIPTION
Return a printable string representing the architecture and
@@ -1090,9 +1071,7 @@ DESCRIPTION
*/
const char *
-bfd_printable_arch_mach (arch, machine)
- enum bfd_architecture arch;
- unsigned long machine;
+bfd_printable_arch_mach (enum bfd_architecture arch, unsigned long machine)
{
const bfd_arch_info_type *ap = bfd_lookup_arch (arch, machine);
@@ -1106,7 +1085,7 @@ FUNCTION
bfd_octets_per_byte
SYNOPSIS
- unsigned int bfd_octets_per_byte(bfd *abfd);
+ unsigned int bfd_octets_per_byte (bfd *abfd);
DESCRIPTION
Return the number of octets (8-bit quantities) per target byte
@@ -1115,8 +1094,7 @@ DESCRIPTION
*/
unsigned int
-bfd_octets_per_byte (abfd)
- bfd *abfd;
+bfd_octets_per_byte (bfd *abfd)
{
return bfd_arch_mach_octets_per_byte (bfd_get_arch (abfd),
bfd_get_mach (abfd));
@@ -1127,8 +1105,8 @@ FUNCTION
bfd_arch_mach_octets_per_byte
SYNOPSIS
- unsigned int bfd_arch_mach_octets_per_byte(enum bfd_architecture arch,
- unsigned long machine);
+ unsigned int bfd_arch_mach_octets_per_byte
+ (enum bfd_architecture arch, unsigned long machine);
DESCRIPTION
See bfd_octets_per_byte.
@@ -1138,9 +1116,8 @@ DESCRIPTION
*/
unsigned int
-bfd_arch_mach_octets_per_byte (arch, mach)
- enum bfd_architecture arch;
- unsigned long mach;
+bfd_arch_mach_octets_per_byte (enum bfd_architecture arch,
+ unsigned long mach)
{
const bfd_arch_info_type *ap = bfd_lookup_arch (arch, mach);
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index fdf5f1c..63c86f7 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -172,10 +172,8 @@ typedef unsigned long bfd_size_type;
typedef bfd_signed_vma file_ptr;
typedef bfd_vma ufile_ptr;
-extern void bfd_sprintf_vma
- PARAMS ((bfd *, char *, bfd_vma));
-extern void bfd_fprintf_vma
- PARAMS ((bfd *, PTR, bfd_vma));
+extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
+extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
#define printf_vma(x) fprintf_vma(stdout,x)
#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
@@ -361,8 +359,7 @@ typedef struct _symbol_info
/* Get the name of a stabs type code. */
-extern const char *bfd_get_stab_name
- PARAMS ((int));
+extern const char *bfd_get_stab_name (int);
/* Hash table routines. There is no way to free up a hash table. */
@@ -396,80 +393,73 @@ struct bfd_hash_table
each function should be written to allocate a new block of memory
only if the argument is NULL. */
struct bfd_hash_entry *(*newfunc)
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* An objalloc for this hash table. This is a struct objalloc *,
- but we use PTR to avoid requiring the inclusion of objalloc.h. */
- PTR memory;
+ but we use void * to avoid requiring the inclusion of objalloc.h. */
+ void *memory;
};
/* Initialize a hash table. */
extern bfd_boolean bfd_hash_table_init
- PARAMS ((struct bfd_hash_table *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct bfd_hash_table *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *));
/* Initialize a hash table specifying a size. */
extern bfd_boolean bfd_hash_table_init_n
- PARAMS ((struct bfd_hash_table *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *),
- unsigned int size));
+ (struct bfd_hash_table *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *),
+ unsigned int size);
/* Free up a hash table. */
extern void bfd_hash_table_free
- PARAMS ((struct bfd_hash_table *));
+ (struct bfd_hash_table *);
/* Look up a string in a hash table. If CREATE is TRUE, a new entry
will be created for this string if one does not already exist. The
COPY argument must be TRUE if this routine should copy the string
into newly allocated memory when adding an entry. */
extern struct bfd_hash_entry *bfd_hash_lookup
- PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create,
- bfd_boolean copy));
+ (struct bfd_hash_table *, const char *, bfd_boolean create,
+ bfd_boolean copy);
/* Replace an entry in a hash table. */
extern void bfd_hash_replace
- PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old,
- struct bfd_hash_entry *nw));
+ (struct bfd_hash_table *, struct bfd_hash_entry *old,
+ struct bfd_hash_entry *nw);
/* Base method for creating a hash table entry. */
extern struct bfd_hash_entry *bfd_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
- const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* Grab some space for a hash table entry. */
-extern PTR bfd_hash_allocate
- PARAMS ((struct bfd_hash_table *, unsigned int));
+extern void *bfd_hash_allocate
+ (struct bfd_hash_table *, unsigned int);
/* Traverse a hash table in a random order, calling a function on each
element. If the function returns FALSE, the traversal stops. The
INFO argument is passed to the function. */
extern void bfd_hash_traverse
- PARAMS ((struct bfd_hash_table *,
- bfd_boolean (*) (struct bfd_hash_entry *, PTR),
- PTR info));
+ (struct bfd_hash_table *,
+ bfd_boolean (*) (struct bfd_hash_entry *, void *),
+ void *info);
-#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
+#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
/* User program access to BFD facilities. */
/* Direct I/O routines, for programs which know more about the object
file than BFD does. Use higher level routines if possible. */
-extern bfd_size_type bfd_bread
- PARAMS ((PTR, bfd_size_type, bfd *));
-extern bfd_size_type bfd_bwrite
- PARAMS ((const PTR, bfd_size_type, bfd *));
-extern int bfd_seek
- PARAMS ((bfd *, file_ptr, int));
-extern ufile_ptr bfd_tell
- PARAMS ((bfd *));
-extern int bfd_flush
- PARAMS ((bfd *));
-extern int bfd_stat
- PARAMS ((bfd *, struct stat *));
+extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
+extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
+extern int bfd_seek (bfd *, file_ptr, int);
+extern ufile_ptr bfd_tell (bfd *);
+extern int bfd_flush (bfd *);
+extern int bfd_stat (bfd *, struct stat *);
/* Deprecated old routines. */
#if __GNUC__
@@ -487,8 +477,7 @@ extern int bfd_stat
(warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
#endif
-extern void warn_deprecated
- PARAMS ((const char *, const char *, int, const char *));
+extern void warn_deprecated (const char *, const char *, int, const char *);
/* Cast from const char * to char * so that caller can assign to
a char * without a warning. */
@@ -527,58 +516,38 @@ extern void warn_deprecated
#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
extern bfd_boolean bfd_cache_close
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
extern bfd_boolean bfd_record_phdr
- PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
- bfd_boolean, bfd_boolean, unsigned int, struct sec **));
+ (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
+ bfd_boolean, bfd_boolean, unsigned int, struct sec **);
/* Byte swapping routines. */
-bfd_vma bfd_getb64
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl64
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_64
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_64
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getb32
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl32
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_32
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_32
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getb16
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl16
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_16
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_16
- PARAMS ((const unsigned char *));
-void bfd_putb64
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl64
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putb32
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl32
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putb16
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl16
- PARAMS ((bfd_vma, unsigned char *));
+bfd_vma bfd_getb64 (const unsigned char *);
+bfd_vma bfd_getl64 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_64 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_64 (const unsigned char *);
+bfd_vma bfd_getb32 (const unsigned char *);
+bfd_vma bfd_getl32 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_32 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_32 (const unsigned char *);
+bfd_vma bfd_getb16 (const unsigned char *);
+bfd_vma bfd_getl16 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_16 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_16 (const unsigned char *);
+void bfd_putb64 (bfd_vma, unsigned char *);
+void bfd_putl64 (bfd_vma, unsigned char *);
+void bfd_putb32 (bfd_vma, unsigned char *);
+void bfd_putl32 (bfd_vma, unsigned char *);
+void bfd_putb16 (bfd_vma, unsigned char *);
+void bfd_putl16 (bfd_vma, unsigned char *);
/* Byte swapping routines which take size and endiannes as arguments. */
-bfd_vma bfd_get_bits
- PARAMS ((bfd_byte *, int, bfd_boolean));
-void bfd_put_bits
- PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean));
+bfd_vma bfd_get_bits (bfd_byte *, int, bfd_boolean);
+void bfd_put_bits (bfd_vma, bfd_byte *, int, bfd_boolean);
/* Externally visible ECOFF routines. */
@@ -592,55 +561,48 @@ struct bfd_link_hash_entry;
struct bfd_elf_version_tree;
#endif
extern bfd_vma bfd_ecoff_get_gp_value
- PARAMS ((bfd * abfd));
+ (bfd * abfd);
extern bfd_boolean bfd_ecoff_set_gp_value
- PARAMS ((bfd *abfd, bfd_vma gp_value));
+ (bfd *abfd, bfd_vma gp_value);
extern bfd_boolean bfd_ecoff_set_regmasks
- PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask,
- unsigned long *cprmask));
-extern PTR bfd_ecoff_debug_init
- PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- struct bfd_link_info *));
+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
+ unsigned long *cprmask);
+extern void *bfd_ecoff_debug_init
+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
extern void bfd_ecoff_debug_free
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_accumulate
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- bfd *input_bfd, struct ecoff_debug_info *input_debug,
- const struct ecoff_debug_swap *input_swap,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct ecoff_debug_info *input_debug,
+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_accumulate_other
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_externals
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- bfd_boolean relocateable,
- bfd_boolean (*get_extr) (struct symbol_cache_entry *,
- struct ecoff_extr *),
- void (*set_index) (struct symbol_cache_entry *,
- bfd_size_type)));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
+ bfd_boolean (*get_extr) (struct symbol_cache_entry *, struct ecoff_extr *),
+ void (*set_index) (struct symbol_cache_entry *, bfd_size_type));
extern bfd_boolean bfd_ecoff_debug_one_external
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- const char *name, struct ecoff_extr *esym));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, const char *name,
+ struct ecoff_extr *esym);
extern bfd_size_type bfd_ecoff_debug_size
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap);
extern bfd_boolean bfd_ecoff_write_debug
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, file_ptr where));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, file_ptr where);
extern bfd_boolean bfd_ecoff_write_accumulated_debug
- PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- struct bfd_link_info *info, file_ptr where));
+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap,
+ struct bfd_link_info *info, file_ptr where);
extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* Externally visible ELF routines. */
@@ -652,37 +614,35 @@ struct bfd_link_needed_list
};
extern bfd_boolean bfd_elf_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean);
extern struct bfd_link_needed_list *bfd_elf_get_needed_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf_get_bfd_needed_list
- PARAMS ((bfd *, struct bfd_link_needed_list **));
+ (bfd *, struct bfd_link_needed_list **);
extern bfd_boolean bfd_elf32_size_dynamic_sections
- PARAMS ((bfd *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct sec **,
- struct bfd_elf_version_tree *));
+ (bfd *, const char *, const char *, const char *, const char * const *,
+ struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *);
extern bfd_boolean bfd_elf64_size_dynamic_sections
- PARAMS ((bfd *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct sec **,
- struct bfd_elf_version_tree *));
+ (bfd *, const char *, const char *, const char *, const char * const *,
+ struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *);
extern void bfd_elf_set_dt_needed_name
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern void bfd_elf_set_dt_needed_soname
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern const char *bfd_elf_get_dt_soname
- PARAMS ((bfd *));
+ (bfd *);
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf32_discard_info
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf64_discard_info
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Return an upper bound on the number of bytes required to store a
copy of ABFD's program header table entries. Return -1 if an error
occurs; bfd_get_error will return an appropriate code. */
extern long bfd_get_elf_phdr_upper_bound
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
/* Copy ABFD's program header table entries to *PHDRS. The entries
will be stored as an array of Elf_Internal_Phdr structures, as
@@ -692,7 +652,7 @@ extern long bfd_get_elf_phdr_upper_bound
Return the number of program header table entries read, or -1 if an
error occurs; bfd_get_error will return an appropriate code. */
extern int bfd_get_elf_phdrs
- PARAMS ((bfd *abfd, void *phdrs));
+ (bfd *abfd, void *phdrs);
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote memory
@@ -707,42 +667,39 @@ extern int bfd_get_elf_phdrs
be a BFD for an ELF target with the word size and byte order found in
the remote memory. */
extern bfd *bfd_elf_bfd_from_remote_memory
- PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)));
+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
extern int bfd_get_arch_size
- PARAMS ((bfd *));
+ (bfd *);
/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
extern int bfd_get_sign_extend_vma
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* SunOS shared library support routines for the linker. */
extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_sunos_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_sunos_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **,
- struct sec **));
+ (bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **);
/* Linux shared library support routines for the linker. */
extern bfd_boolean bfd_i386linux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_m68klinux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_sparclinux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* mmap hacks */
@@ -752,7 +709,7 @@ typedef struct _bfd_window_internal bfd_window_internal;
typedef struct _bfd_window
{
/* What the user asked for. */
- PTR data;
+ void *data;
bfd_size_type size;
/* The actual window used by BFD. Small user-requested read-only
regions sharing a page may share a single window into the object
@@ -765,36 +722,35 @@ typedef struct _bfd_window
bfd_window;
extern void bfd_init_window
- PARAMS ((bfd_window *));
+ (bfd_window *);
extern void bfd_free_window
- PARAMS ((bfd_window *));
+ (bfd_window *);
extern bfd_boolean bfd_get_file_window
- PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean));
+ (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
/* XCOFF support routines for the linker. */
extern bfd_boolean bfd_xcoff_link_record_set
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
- bfd_size_type));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
extern bfd_boolean bfd_xcoff_import_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
- bfd_vma, const char *, const char *, const char *, unsigned int));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
+ const char *, const char *, const char *, unsigned int);
extern bfd_boolean bfd_xcoff_export_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
extern bfd_boolean bfd_xcoff_link_count_reloc
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_xcoff_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_xcoff_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *,
- unsigned long, unsigned long, unsigned long, bfd_boolean,
- int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, const char *,
+ unsigned long, unsigned long, unsigned long, bfd_boolean,
+ int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean);
extern bfd_boolean bfd_xcoff_link_generate_rtinit
- PARAMS ((bfd *, const char *, const char *, bfd_boolean));
+ (bfd *, const char *, const char *, bfd_boolean);
/* XCOFF support routines for ar. */
extern bfd_boolean bfd_xcoff_ar_archive_set_magic
- PARAMS ((bfd *, char *));
+ (bfd *, char *);
/* Externally visible COFF routines. */
@@ -804,65 +760,68 @@ union internal_auxent;
#endif
extern bfd_boolean bfd_coff_get_syment
- PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *));
+ (bfd *, struct symbol_cache_entry *, struct internal_syment *);
extern bfd_boolean bfd_coff_get_auxent
- PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *));
+ (bfd *, struct symbol_cache_entry *, int, union internal_auxent *);
extern bfd_boolean bfd_coff_set_symbol_class
- PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int));
+ (bfd *, struct symbol_cache_entry *, unsigned int);
extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_arm_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_arm_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_arm_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* PE ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_arm_pe_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* ELF ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_elf32_arm_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
extern bfd_boolean bfd_arm_update_notes
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern unsigned int bfd_arm_get_mach_from_notes
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
/* TI COFF load page support. */
extern void bfd_ticoff_set_section_load_page
- PARAMS ((struct sec *, int));
+ (struct sec *, int);
extern int bfd_ticoff_get_section_load_page
- PARAMS ((struct sec *));
+ (struct sec *);
+
+/* H8/300 functions. */
+extern bfd_vma bfd_h8300_pad_address
+ (bfd *, bfd_vma);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 71346c1..bab0809 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -179,10 +179,8 @@ typedef unsigned long bfd_size_type;
typedef bfd_signed_vma file_ptr;
typedef bfd_vma ufile_ptr;
-extern void bfd_sprintf_vma
- PARAMS ((bfd *, char *, bfd_vma));
-extern void bfd_fprintf_vma
- PARAMS ((bfd *, PTR, bfd_vma));
+extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
+extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
#define printf_vma(x) fprintf_vma(stdout,x)
#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
@@ -368,8 +366,7 @@ typedef struct _symbol_info
/* Get the name of a stabs type code. */
-extern const char *bfd_get_stab_name
- PARAMS ((int));
+extern const char *bfd_get_stab_name (int);
/* Hash table routines. There is no way to free up a hash table. */
@@ -403,80 +400,73 @@ struct bfd_hash_table
each function should be written to allocate a new block of memory
only if the argument is NULL. */
struct bfd_hash_entry *(*newfunc)
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* An objalloc for this hash table. This is a struct objalloc *,
- but we use PTR to avoid requiring the inclusion of objalloc.h. */
- PTR memory;
+ but we use void * to avoid requiring the inclusion of objalloc.h. */
+ void *memory;
};
/* Initialize a hash table. */
extern bfd_boolean bfd_hash_table_init
- PARAMS ((struct bfd_hash_table *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct bfd_hash_table *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *));
/* Initialize a hash table specifying a size. */
extern bfd_boolean bfd_hash_table_init_n
- PARAMS ((struct bfd_hash_table *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *),
- unsigned int size));
+ (struct bfd_hash_table *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *),
+ unsigned int size);
/* Free up a hash table. */
extern void bfd_hash_table_free
- PARAMS ((struct bfd_hash_table *));
+ (struct bfd_hash_table *);
/* Look up a string in a hash table. If CREATE is TRUE, a new entry
will be created for this string if one does not already exist. The
COPY argument must be TRUE if this routine should copy the string
into newly allocated memory when adding an entry. */
extern struct bfd_hash_entry *bfd_hash_lookup
- PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create,
- bfd_boolean copy));
+ (struct bfd_hash_table *, const char *, bfd_boolean create,
+ bfd_boolean copy);
/* Replace an entry in a hash table. */
extern void bfd_hash_replace
- PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old,
- struct bfd_hash_entry *nw));
+ (struct bfd_hash_table *, struct bfd_hash_entry *old,
+ struct bfd_hash_entry *nw);
/* Base method for creating a hash table entry. */
extern struct bfd_hash_entry *bfd_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
- const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* Grab some space for a hash table entry. */
-extern PTR bfd_hash_allocate
- PARAMS ((struct bfd_hash_table *, unsigned int));
+extern void *bfd_hash_allocate
+ (struct bfd_hash_table *, unsigned int);
/* Traverse a hash table in a random order, calling a function on each
element. If the function returns FALSE, the traversal stops. The
INFO argument is passed to the function. */
extern void bfd_hash_traverse
- PARAMS ((struct bfd_hash_table *,
- bfd_boolean (*) (struct bfd_hash_entry *, PTR),
- PTR info));
+ (struct bfd_hash_table *,
+ bfd_boolean (*) (struct bfd_hash_entry *, void *),
+ void *info);
-#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
+#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
/* User program access to BFD facilities. */
/* Direct I/O routines, for programs which know more about the object
file than BFD does. Use higher level routines if possible. */
-extern bfd_size_type bfd_bread
- PARAMS ((PTR, bfd_size_type, bfd *));
-extern bfd_size_type bfd_bwrite
- PARAMS ((const PTR, bfd_size_type, bfd *));
-extern int bfd_seek
- PARAMS ((bfd *, file_ptr, int));
-extern ufile_ptr bfd_tell
- PARAMS ((bfd *));
-extern int bfd_flush
- PARAMS ((bfd *));
-extern int bfd_stat
- PARAMS ((bfd *, struct stat *));
+extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
+extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
+extern int bfd_seek (bfd *, file_ptr, int);
+extern ufile_ptr bfd_tell (bfd *);
+extern int bfd_flush (bfd *);
+extern int bfd_stat (bfd *, struct stat *);
/* Deprecated old routines. */
#if __GNUC__
@@ -494,8 +484,7 @@ extern int bfd_stat
(warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
#endif
-extern void warn_deprecated
- PARAMS ((const char *, const char *, int, const char *));
+extern void warn_deprecated (const char *, const char *, int, const char *);
/* Cast from const char * to char * so that caller can assign to
a char * without a warning. */
@@ -534,58 +523,38 @@ extern void warn_deprecated
#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
extern bfd_boolean bfd_cache_close
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
extern bfd_boolean bfd_record_phdr
- PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
- bfd_boolean, bfd_boolean, unsigned int, struct sec **));
+ (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
+ bfd_boolean, bfd_boolean, unsigned int, struct sec **);
/* Byte swapping routines. */
-bfd_vma bfd_getb64
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl64
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_64
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_64
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getb32
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl32
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_32
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_32
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getb16
- PARAMS ((const unsigned char *));
-bfd_vma bfd_getl16
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getb_signed_16
- PARAMS ((const unsigned char *));
-bfd_signed_vma bfd_getl_signed_16
- PARAMS ((const unsigned char *));
-void bfd_putb64
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl64
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putb32
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl32
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putb16
- PARAMS ((bfd_vma, unsigned char *));
-void bfd_putl16
- PARAMS ((bfd_vma, unsigned char *));
+bfd_vma bfd_getb64 (const unsigned char *);
+bfd_vma bfd_getl64 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_64 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_64 (const unsigned char *);
+bfd_vma bfd_getb32 (const unsigned char *);
+bfd_vma bfd_getl32 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_32 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_32 (const unsigned char *);
+bfd_vma bfd_getb16 (const unsigned char *);
+bfd_vma bfd_getl16 (const unsigned char *);
+bfd_signed_vma bfd_getb_signed_16 (const unsigned char *);
+bfd_signed_vma bfd_getl_signed_16 (const unsigned char *);
+void bfd_putb64 (bfd_vma, unsigned char *);
+void bfd_putl64 (bfd_vma, unsigned char *);
+void bfd_putb32 (bfd_vma, unsigned char *);
+void bfd_putl32 (bfd_vma, unsigned char *);
+void bfd_putb16 (bfd_vma, unsigned char *);
+void bfd_putl16 (bfd_vma, unsigned char *);
/* Byte swapping routines which take size and endiannes as arguments. */
-bfd_vma bfd_get_bits
- PARAMS ((bfd_byte *, int, bfd_boolean));
-void bfd_put_bits
- PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean));
+bfd_vma bfd_get_bits (bfd_byte *, int, bfd_boolean);
+void bfd_put_bits (bfd_vma, bfd_byte *, int, bfd_boolean);
/* Externally visible ECOFF routines. */
@@ -599,55 +568,48 @@ struct bfd_link_hash_entry;
struct bfd_elf_version_tree;
#endif
extern bfd_vma bfd_ecoff_get_gp_value
- PARAMS ((bfd * abfd));
+ (bfd * abfd);
extern bfd_boolean bfd_ecoff_set_gp_value
- PARAMS ((bfd *abfd, bfd_vma gp_value));
+ (bfd *abfd, bfd_vma gp_value);
extern bfd_boolean bfd_ecoff_set_regmasks
- PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask,
- unsigned long *cprmask));
-extern PTR bfd_ecoff_debug_init
- PARAMS ((bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- struct bfd_link_info *));
+ (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
+ unsigned long *cprmask);
+extern void *bfd_ecoff_debug_init
+ (bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
extern void bfd_ecoff_debug_free
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_accumulate
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap,
- bfd *input_bfd, struct ecoff_debug_info *input_debug,
- const struct ecoff_debug_swap *input_swap,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct ecoff_debug_info *input_debug,
+ const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_accumulate_other
- PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
- const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
- struct bfd_link_info *));
+ (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
+ const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
+ struct bfd_link_info *);
extern bfd_boolean bfd_ecoff_debug_externals
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- bfd_boolean relocateable,
- bfd_boolean (*get_extr) (struct symbol_cache_entry *,
- struct ecoff_extr *),
- void (*set_index) (struct symbol_cache_entry *,
- bfd_size_type)));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
+ bfd_boolean (*get_extr) (struct symbol_cache_entry *, struct ecoff_extr *),
+ void (*set_index) (struct symbol_cache_entry *, bfd_size_type));
extern bfd_boolean bfd_ecoff_debug_one_external
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- const char *name, struct ecoff_extr *esym));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, const char *name,
+ struct ecoff_extr *esym);
extern bfd_size_type bfd_ecoff_debug_size
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap);
extern bfd_boolean bfd_ecoff_write_debug
- PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap, file_ptr where));
+ (bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap, file_ptr where);
extern bfd_boolean bfd_ecoff_write_accumulated_debug
- PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug,
- const struct ecoff_debug_swap *swap,
- struct bfd_link_info *info, file_ptr where));
+ (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
+ const struct ecoff_debug_swap *swap,
+ struct bfd_link_info *info, file_ptr where);
extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* Externally visible ELF routines. */
@@ -659,37 +621,35 @@ struct bfd_link_needed_list
};
extern bfd_boolean bfd_elf_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean);
extern struct bfd_link_needed_list *bfd_elf_get_needed_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf_get_bfd_needed_list
- PARAMS ((bfd *, struct bfd_link_needed_list **));
+ (bfd *, struct bfd_link_needed_list **);
extern bfd_boolean bfd_elf32_size_dynamic_sections
- PARAMS ((bfd *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct sec **,
- struct bfd_elf_version_tree *));
+ (bfd *, const char *, const char *, const char *, const char * const *,
+ struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *);
extern bfd_boolean bfd_elf64_size_dynamic_sections
- PARAMS ((bfd *, const char *, const char *, const char *,
- const char * const *, struct bfd_link_info *, struct sec **,
- struct bfd_elf_version_tree *));
+ (bfd *, const char *, const char *, const char *, const char * const *,
+ struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *);
extern void bfd_elf_set_dt_needed_name
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern void bfd_elf_set_dt_needed_soname
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern const char *bfd_elf_get_dt_soname
- PARAMS ((bfd *));
+ (bfd *);
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf32_discard_info
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf64_discard_info
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Return an upper bound on the number of bytes required to store a
copy of ABFD's program header table entries. Return -1 if an error
occurs; bfd_get_error will return an appropriate code. */
extern long bfd_get_elf_phdr_upper_bound
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
/* Copy ABFD's program header table entries to *PHDRS. The entries
will be stored as an array of Elf_Internal_Phdr structures, as
@@ -699,7 +659,7 @@ extern long bfd_get_elf_phdr_upper_bound
Return the number of program header table entries read, or -1 if an
error occurs; bfd_get_error will return an appropriate code. */
extern int bfd_get_elf_phdrs
- PARAMS ((bfd *abfd, void *phdrs));
+ (bfd *abfd, void *phdrs);
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote memory
@@ -714,42 +674,39 @@ extern int bfd_get_elf_phdrs
be a BFD for an ELF target with the word size and byte order found in
the remote memory. */
extern bfd *bfd_elf_bfd_from_remote_memory
- PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)));
+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
/* Return the arch_size field of an elf bfd, or -1 if not elf. */
extern int bfd_get_arch_size
- PARAMS ((bfd *));
+ (bfd *);
/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
extern int bfd_get_sign_extend_vma
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* SunOS shared library support routines for the linker. */
extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_sunos_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_sunos_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **,
- struct sec **));
+ (bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **);
/* Linux shared library support routines for the linker. */
extern bfd_boolean bfd_i386linux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_m68klinux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_sparclinux_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* mmap hacks */
@@ -759,7 +716,7 @@ typedef struct _bfd_window_internal bfd_window_internal;
typedef struct _bfd_window
{
/* What the user asked for. */
- PTR data;
+ void *data;
bfd_size_type size;
/* The actual window used by BFD. Small user-requested read-only
regions sharing a page may share a single window into the object
@@ -772,36 +729,35 @@ typedef struct _bfd_window
bfd_window;
extern void bfd_init_window
- PARAMS ((bfd_window *));
+ (bfd_window *);
extern void bfd_free_window
- PARAMS ((bfd_window *));
+ (bfd_window *);
extern bfd_boolean bfd_get_file_window
- PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean));
+ (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
/* XCOFF support routines for the linker. */
extern bfd_boolean bfd_xcoff_link_record_set
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
- bfd_size_type));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
extern bfd_boolean bfd_xcoff_import_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
- bfd_vma, const char *, const char *, const char *, unsigned int));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
+ const char *, const char *, const char *, unsigned int);
extern bfd_boolean bfd_xcoff_export_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *));
+ (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
extern bfd_boolean bfd_xcoff_link_count_reloc
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_xcoff_record_link_assignment
- PARAMS ((bfd *, struct bfd_link_info *, const char *));
+ (bfd *, struct bfd_link_info *, const char *);
extern bfd_boolean bfd_xcoff_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *,
- unsigned long, unsigned long, unsigned long, bfd_boolean,
- int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, const char *,
+ unsigned long, unsigned long, unsigned long, bfd_boolean,
+ int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean);
extern bfd_boolean bfd_xcoff_link_generate_rtinit
- PARAMS ((bfd *, const char *, const char *, bfd_boolean));
+ (bfd *, const char *, const char *, bfd_boolean);
/* XCOFF support routines for ar. */
extern bfd_boolean bfd_xcoff_ar_archive_set_magic
- PARAMS ((bfd *, char *));
+ (bfd *, char *);
/* Externally visible COFF routines. */
@@ -811,162 +767,157 @@ union internal_auxent;
#endif
extern bfd_boolean bfd_coff_get_syment
- PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *));
+ (bfd *, struct symbol_cache_entry *, struct internal_syment *);
extern bfd_boolean bfd_coff_get_auxent
- PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *));
+ (bfd *, struct symbol_cache_entry *, int, union internal_auxent *);
extern bfd_boolean bfd_coff_set_symbol_class
- PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int));
+ (bfd *, struct symbol_cache_entry *, unsigned int);
extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
- PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
- char **));
+ (bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **);
/* ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_arm_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_arm_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_arm_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* PE ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_arm_pe_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* ELF ARM Interworking support. Called from linker. */
extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean bfd_elf32_arm_process_before_allocation
- PARAMS ((bfd *, struct bfd_link_info *, int));
+ (bfd *, struct bfd_link_info *, int);
extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
extern bfd_boolean bfd_arm_update_notes
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern unsigned int bfd_arm_get_mach_from_notes
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
/* TI COFF load page support. */
extern void bfd_ticoff_set_section_load_page
- PARAMS ((struct sec *, int));
+ (struct sec *, int);
extern int bfd_ticoff_get_section_load_page
- PARAMS ((struct sec *));
+ (struct sec *);
+
+/* H8/300 functions. */
+extern bfd_vma bfd_h8300_pad_address
+ (bfd *, bfd_vma);
/* Extracted from init.c. */
-void
-bfd_init PARAMS ((void));
+void bfd_init (void);
/* Extracted from opncls.c. */
-bfd *
-bfd_openr PARAMS ((const char *filename, const char *target));
+bfd *bfd_openr (const char *filename, const char *target);
+
+bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
-bfd *
-bfd_fdopenr PARAMS ((const char *filename, const char *target, int fd));
+bfd *bfd_openstreamr (const char *, const char *, void *);
-bfd *
-bfd_openstreamr PARAMS ((const char *, const char *, PTR));
+bfd *bfd_openw (const char *filename, const char *target);
-bfd *
-bfd_openw PARAMS ((const char *filename, const char *target));
+bfd_boolean bfd_close (bfd *abfd);
-bfd_boolean
-bfd_close PARAMS ((bfd *abfd));
+bfd_boolean bfd_close_all_done (bfd *);
-bfd_boolean
-bfd_close_all_done PARAMS ((bfd *));
+bfd *bfd_create (const char *filename, bfd *templ);
-bfd *
-bfd_create PARAMS ((const char *filename, bfd *templ));
+bfd_boolean bfd_make_writable (bfd *abfd);
-bfd_boolean
-bfd_make_writable PARAMS ((bfd *abfd));
+bfd_boolean bfd_make_readable (bfd *abfd);
-bfd_boolean
-bfd_make_readable PARAMS ((bfd *abfd));
+unsigned long bfd_calc_gnu_debuglink_crc32
+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
-unsigned long
-bfd_calc_gnu_debuglink_crc32 PARAMS ((unsigned long crc, const unsigned char *buf, bfd_size_type len));
+char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
-char *
-bfd_follow_gnu_debuglink PARAMS ((bfd *abfd, const char *dir));
+struct sec *bfd_create_gnu_debuglink_section
+ (bfd *abfd, const char *filename);
-bfd_boolean
-bfd_add_gnu_debuglink PARAMS ((bfd * abfd, const char * filename));
+bfd_boolean bfd_fill_in_gnu_debuglink_section
+ (bfd *abfd, struct sec *sect, const char *filename);
/* Extracted from libbfd.c. */
/* Byte swapping macros for user section data. */
#define bfd_put_8(abfd, val, ptr) \
- ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val)))
+ ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val)))
#define bfd_put_signed_8 \
- bfd_put_8
+ bfd_put_8
#define bfd_get_8(abfd, ptr) \
- (*(unsigned char *) (ptr) & 0xff)
+ (*(unsigned char *) (ptr) & 0xff)
#define bfd_get_signed_8(abfd, ptr) \
- (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
+ (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
#define bfd_put_16(abfd, val, ptr) \
- BFD_SEND(abfd, bfd_putx16, ((val),(ptr)))
+ BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
#define bfd_put_signed_16 \
- bfd_put_16
+ bfd_put_16
#define bfd_get_16(abfd, ptr) \
- BFD_SEND(abfd, bfd_getx16, (ptr))
+ BFD_SEND (abfd, bfd_getx16, (ptr))
#define bfd_get_signed_16(abfd, ptr) \
- BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
+ BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
#define bfd_put_32(abfd, val, ptr) \
- BFD_SEND(abfd, bfd_putx32, ((val),(ptr)))
+ BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
#define bfd_put_signed_32 \
- bfd_put_32
+ bfd_put_32
#define bfd_get_32(abfd, ptr) \
- BFD_SEND(abfd, bfd_getx32, (ptr))
+ BFD_SEND (abfd, bfd_getx32, (ptr))
#define bfd_get_signed_32(abfd, ptr) \
- BFD_SEND(abfd, bfd_getx_signed_32, (ptr))
+ BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
#define bfd_put_64(abfd, val, ptr) \
- BFD_SEND(abfd, bfd_putx64, ((val), (ptr)))
+ BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
#define bfd_put_signed_64 \
- bfd_put_64
+ bfd_put_64
#define bfd_get_64(abfd, ptr) \
- BFD_SEND(abfd, bfd_getx64, (ptr))
+ BFD_SEND (abfd, bfd_getx64, (ptr))
#define bfd_get_signed_64(abfd, ptr) \
- BFD_SEND(abfd, bfd_getx_signed_64, (ptr))
+ BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
-#define bfd_get(bits, abfd, ptr) \
- ( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
- : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
- : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
- : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
- : (abort (), (bfd_vma) - 1))
+#define bfd_get(bits, abfd, ptr) \
+ ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
+ : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
+ : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
+ : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
+ : (abort (), (bfd_vma) - 1))
-#define bfd_put(bits, abfd, val, ptr) \
- ( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
- : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
- : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
- : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
- : (abort (), (void) 0))
+#define bfd_put(bits, abfd, val, ptr) \
+ ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
+ : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
+ : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
+ : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
+ : (abort (), (void) 0))
/* Byte swapping macros for file header data. */
@@ -1056,11 +1007,9 @@ bfd_add_gnu_debuglink PARAMS ((bfd * abfd, const char * filename));
/* Extracted from bfdio.c. */
-long
-bfd_get_mtime PARAMS ((bfd *abfd));
+long bfd_get_mtime (bfd *abfd);
-long
-bfd_get_size PARAMS ((bfd *abfd));
+long bfd_get_size (bfd *abfd);
/* Extracted from bfdwin.c. */
/* Extracted from section.c. */
@@ -1390,7 +1339,7 @@ typedef struct sec
file_ptr line_filepos;
/* Pointer to data for applications. */
- PTR userdata;
+ void *userdata;
/* If the SEC_IN_MEMORY flag is set, this points to the actual
contents. */
@@ -1419,7 +1368,7 @@ typedef struct sec
/* What the section number is in the target world. */
int target_index;
- PTR used_by_bfd;
+ void *used_by_bfd;
/* If this is a constructor section then here is a list of the
relocations created to relocate items within it. */
@@ -1447,18 +1396,18 @@ typedef struct sec
#define BFD_IND_SECTION_NAME "*IND*"
/* The absolute section. */
-extern const asection bfd_abs_section;
+extern asection bfd_abs_section;
#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
/* Pointer to the undefined section. */
-extern const asection bfd_und_section;
+extern asection bfd_und_section;
#define bfd_und_section_ptr ((asection *) &bfd_und_section)
#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
/* Pointer to the common section. */
-extern const asection bfd_com_section;
+extern asection bfd_com_section;
#define bfd_com_section_ptr ((asection *) &bfd_com_section)
/* Pointer to the indirect section. */
-extern const asection bfd_ind_section;
+extern asection bfd_ind_section;
#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
@@ -1504,61 +1453,48 @@ extern const struct symbol_cache_entry * const bfd_ind_symbol;
} \
while (0)
-void
-bfd_section_list_clear PARAMS ((bfd *));
+void bfd_section_list_clear (bfd *);
-asection *
-bfd_get_section_by_name PARAMS ((bfd *abfd, const char *name));
+asection *bfd_get_section_by_name (bfd *abfd, const char *name);
-char *
-bfd_get_unique_section_name PARAMS ((bfd *abfd,
- const char *templat,
- int *count));
+char *bfd_get_unique_section_name
+ (bfd *abfd, const char *templat, int *count);
-asection *
-bfd_make_section_old_way PARAMS ((bfd *abfd, const char *name));
+asection *bfd_make_section_old_way (bfd *abfd, const char *name);
-asection *
-bfd_make_section_anyway PARAMS ((bfd *abfd, const char *name));
+asection *bfd_make_section_anyway (bfd *abfd, const char *name);
-asection *
-bfd_make_section PARAMS ((bfd *, const char *name));
+asection *bfd_make_section (bfd *, const char *name);
-bfd_boolean
-bfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags));
+bfd_boolean bfd_set_section_flags
+ (bfd *abfd, asection *sec, flagword flags);
-void
-bfd_map_over_sections PARAMS ((bfd *abfd,
- void (*func) (bfd *abfd,
- asection *sect,
- PTR obj),
- PTR obj));
+void bfd_map_over_sections
+ (bfd *abfd,
+ void (*func) (bfd *abfd, asection *sect, void *obj),
+ void *obj);
-bfd_boolean
-bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val));
+bfd_boolean bfd_set_section_size
+ (bfd *abfd, asection *sec, bfd_size_type val);
-bfd_boolean
-bfd_set_section_contents PARAMS ((bfd *abfd, asection *section,
- PTR data, file_ptr offset,
- bfd_size_type count));
+bfd_boolean bfd_set_section_contents
+ (bfd *abfd, asection *section, void *data, file_ptr offset,
+ bfd_size_type count);
-bfd_boolean
-bfd_get_section_contents PARAMS ((bfd *abfd, asection *section,
- PTR location, file_ptr offset,
- bfd_size_type count));
+bfd_boolean bfd_get_section_contents
+ (bfd *abfd, asection *section, void *location, file_ptr offset,
+ bfd_size_type count);
-bfd_boolean
-bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec,
- bfd *obfd, asection *osec));
+bfd_boolean bfd_copy_private_section_data
+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
BFD_SEND (obfd, _bfd_copy_private_section_data, \
(ibfd, isection, obfd, osection))
-void
-_bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section));
+void _bfd_strip_section_from_output
+ (struct bfd_link_info *info, asection *section);
-bfd_boolean
-bfd_generic_discard_group PARAMS ((bfd *abfd, asection *group));
+bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
/* Extracted from archures.c. */
enum bfd_architecture
@@ -1632,6 +1568,7 @@ enum bfd_architecture
#define bfd_mach_mips5400 5400
#define bfd_mach_mips5500 5500
#define bfd_mach_mips6000 6000
+#define bfd_mach_mips7000 7000
#define bfd_mach_mips8000 8000
#define bfd_mach_mips10000 10000
#define bfd_mach_mips12000 12000
@@ -1758,6 +1695,7 @@ enum bfd_architecture
bfd_arch_mn10300, /* Matsushita MN10300 */
#define bfd_mach_mn10300 300
#define bfd_mach_am33 330
+#define bfd_mach_am33_2 332
bfd_arch_fr30,
#define bfd_mach_fr30 0x46523330
bfd_arch_frv,
@@ -1793,19 +1731,20 @@ enum bfd_architecture
bfd_arch_xstormy16,
#define bfd_mach_xstormy16 1
bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
-#define bfd_mach_msp110 110
#define bfd_mach_msp11 11
+#define bfd_mach_msp110 110
#define bfd_mach_msp12 12
#define bfd_mach_msp13 13
#define bfd_mach_msp14 14
-#define bfd_mach_msp41 41
+#define bfd_mach_msp15 15
+#define bfd_mach_msp16 16
#define bfd_mach_msp31 31
#define bfd_mach_msp32 32
#define bfd_mach_msp33 33
+#define bfd_mach_msp41 41
+#define bfd_mach_msp42 42
#define bfd_mach_msp43 43
#define bfd_mach_msp44 44
-#define bfd_mach_msp15 15
-#define bfd_mach_msp16 16
bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
#define bfd_mach_xtensa 1
bfd_arch_last
@@ -1826,62 +1765,45 @@ typedef struct bfd_arch_info
all the entries for that arch can be accessed via <<next>>. */
bfd_boolean the_default;
const struct bfd_arch_info * (*compatible)
- PARAMS ((const struct bfd_arch_info *a,
- const struct bfd_arch_info *b));
+ (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
- bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
+ bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
const struct bfd_arch_info *next;
}
bfd_arch_info_type;
-const char *
-bfd_printable_name PARAMS ((bfd *abfd));
+const char *bfd_printable_name (bfd *abfd);
-const bfd_arch_info_type *
-bfd_scan_arch PARAMS ((const char *string));
+const bfd_arch_info_type *bfd_scan_arch (const char *string);
-const char **
-bfd_arch_list PARAMS ((void));
+const char **bfd_arch_list (void);
-const bfd_arch_info_type *
-bfd_arch_get_compatible PARAMS ((
- const bfd *abfd,
- const bfd *bbfd,
- bfd_boolean accept_unknowns));
+const bfd_arch_info_type *bfd_arch_get_compatible
+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
-void
-bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg));
+void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
-enum bfd_architecture
-bfd_get_arch PARAMS ((bfd *abfd));
+enum bfd_architecture bfd_get_arch (bfd *abfd);
-unsigned long
-bfd_get_mach PARAMS ((bfd *abfd));
+unsigned long bfd_get_mach (bfd *abfd);
-unsigned int
-bfd_arch_bits_per_byte PARAMS ((bfd *abfd));
+unsigned int bfd_arch_bits_per_byte (bfd *abfd);
-unsigned int
-bfd_arch_bits_per_address PARAMS ((bfd *abfd));
+unsigned int bfd_arch_bits_per_address (bfd *abfd);
-const bfd_arch_info_type *
-bfd_get_arch_info PARAMS ((bfd *abfd));
+const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
-const bfd_arch_info_type *
-bfd_lookup_arch PARAMS ((enum bfd_architecture
- arch,
- unsigned long machine));
+const bfd_arch_info_type *bfd_lookup_arch
+ (enum bfd_architecture arch, unsigned long machine);
-const char *
-bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine));
+const char *bfd_printable_arch_mach
+ (enum bfd_architecture arch, unsigned long machine);
-unsigned int
-bfd_octets_per_byte PARAMS ((bfd *abfd));
+unsigned int bfd_octets_per_byte (bfd *abfd);
-unsigned int
-bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch,
- unsigned long machine));
+unsigned int bfd_arch_mach_octets_per_byte
+ (enum bfd_architecture arch, unsigned long machine);
/* Extracted from reloc.c. */
typedef enum bfd_reloc_status
@@ -1993,8 +1915,8 @@ struct reloc_howto_struct
strange relocation methods to be accomodated (e.g., i960 callj
instructions). */
bfd_reloc_status_type (*special_function)
- PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *,
- bfd *, char **));
+ (bfd *, arelent *, struct symbol_cache_entry *, void *, asection *,
+ bfd *, char **);
/* The textual name of the relocation type. */
char *name;
@@ -2051,7 +1973,7 @@ struct reloc_howto_struct
#define HOWTO_PREPARE(relocation, symbol) \
{ \
- if (symbol != (asymbol *) NULL) \
+ if (symbol != NULL) \
{ \
if (bfd_is_com_section (symbol->section)) \
{ \
@@ -2064,8 +1986,7 @@ struct reloc_howto_struct
} \
}
-unsigned int
-bfd_get_reloc_size PARAMS ((reloc_howto_type *));
+unsigned int bfd_get_reloc_size (reloc_howto_type *);
typedef struct relent_chain
{
@@ -2074,27 +1995,27 @@ typedef struct relent_chain
}
arelent_chain;
-bfd_reloc_status_type
-bfd_check_overflow PARAMS ((enum complain_overflow how,
+bfd_reloc_status_type bfd_check_overflow
+ (enum complain_overflow how,
unsigned int bitsize,
unsigned int rightshift,
unsigned int addrsize,
- bfd_vma relocation));
+ bfd_vma relocation);
-bfd_reloc_status_type
-bfd_perform_relocation PARAMS ((bfd *abfd,
+bfd_reloc_status_type bfd_perform_relocation
+ (bfd *abfd,
arelent *reloc_entry,
- PTR data,
+ void *data,
asection *input_section,
bfd *output_bfd,
- char **error_message));
+ char **error_message);
-bfd_reloc_status_type
-bfd_install_relocation PARAMS ((bfd *abfd,
+bfd_reloc_status_type bfd_install_relocation
+ (bfd *abfd,
arelent *reloc_entry,
- PTR data, bfd_vma data_start,
+ void *data, bfd_vma data_start,
asection *input_section,
- char **error_message));
+ char **error_message);
enum bfd_reloc_code_real {
_dummy_first_bfd_reloc_code_real,
@@ -2414,6 +2335,33 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_FRV_GPRELHI,
BFD_RELOC_FRV_GPRELLO,
+/* This is a 24bit GOT-relative reloc for the mn10300. */
+ BFD_RELOC_MN10300_GOTOFF24,
+
+/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
+in the instruction. */
+ BFD_RELOC_MN10300_GOT32,
+
+/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
+in the instruction. */
+ BFD_RELOC_MN10300_GOT24,
+
+/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
+in the instruction. */
+ BFD_RELOC_MN10300_GOT16,
+
+/* Copy symbol at runtime. */
+ BFD_RELOC_MN10300_COPY,
+
+/* Create GOT entry. */
+ BFD_RELOC_MN10300_GLOB_DAT,
+
+/* Create PLT entry. */
+ BFD_RELOC_MN10300_JMP_SLOT,
+
+/* Adjust by program base. */
+ BFD_RELOC_MN10300_RELATIVE,
+
/* i386/elf relocations */
BFD_RELOC_386_GOT32,
@@ -3191,6 +3139,12 @@ into 22 bits. */
BFD_RELOC_390_TLS_DTPOFF,
BFD_RELOC_390_TLS_TPOFF,
+/* Long displacement extension. */
+ BFD_RELOC_390_20,
+ BFD_RELOC_390_GOT20,
+ BFD_RELOC_390_GOTPLT20,
+ BFD_RELOC_390_TLS_GOTIE20,
+
/* Scenix IP2K - 9-bit register number / data address */
BFD_RELOC_IP2K_FR9,
@@ -3505,11 +3459,10 @@ BFD_RELOC_XTENSA_ASM_EXPAND. */
BFD_RELOC_XTENSA_ASM_SIMPLIFY,
BFD_RELOC_UNUSED };
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
-reloc_howto_type *
-bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
+reloc_howto_type *bfd_reloc_type_lookup
+ (bfd *abfd, bfd_reloc_code_real_type code);
-const char *
-bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code));
+const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
/* Extracted from syms.c. */
@@ -3630,7 +3583,7 @@ typedef struct symbol_cache_entry
/* Back end special data. */
union
{
- PTR p;
+ void *p;
bfd_vma i;
}
udata;
@@ -3640,49 +3593,41 @@ asymbol;
#define bfd_get_symtab_upper_bound(abfd) \
BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
-bfd_boolean
-bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym));
+bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
-bfd_boolean
-bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name));
+bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
#define bfd_is_local_label_name(abfd, name) \
- BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
#define bfd_canonicalize_symtab(abfd, location) \
- BFD_SEND (abfd, _bfd_canonicalize_symtab,\
- (abfd, location))
+ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
-bfd_boolean
-bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count));
+bfd_boolean bfd_set_symtab
+ (bfd *abfd, asymbol **location, unsigned int count);
-void
-bfd_print_symbol_vandf PARAMS ((bfd *abfd, PTR file, asymbol *symbol));
+void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
#define bfd_make_empty_symbol(abfd) \
- BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
-asymbol *
-_bfd_generic_make_empty_symbol PARAMS ((bfd *));
+asymbol *_bfd_generic_make_empty_symbol (bfd *);
#define bfd_make_debug_symbol(abfd,ptr,size) \
- BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
-int
-bfd_decode_symclass PARAMS ((asymbol *symbol));
+int bfd_decode_symclass (asymbol *symbol);
-bfd_boolean
-bfd_is_undefined_symclass PARAMS ((int symclass));
+bfd_boolean bfd_is_undefined_symclass (int symclass);
-void
-bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret));
+void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
-bfd_boolean
-bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym));
+bfd_boolean bfd_copy_private_symbol_data
+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
- BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
- (ibfd, isymbol, obfd, osymbol))
+ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+ (ibfd, isymbol, obfd, osymbol))
/* Extracted from bfd.c. */
struct bfd
@@ -3703,7 +3648,7 @@ struct bfd
is the result of an fopen on the filename. However, if the
BFD_IN_MEMORY flag is set, then iostream is actually a pointer
to a bfd_in_memory struct. */
- PTR iostream;
+ void *iostream;
/* Is the file descriptor being cached? That is, can it be closed as
needed, and re-opened when accessed later? */
@@ -3789,7 +3734,7 @@ struct bfd
const struct bfd_arch_info *arch_info;
/* Stuff only useful for archives. */
- PTR arelt_data;
+ void *arelt_data;
struct bfd *my_archive; /* The containing archive BFD. */
struct bfd *next; /* The next BFD in the archive. */
struct bfd *archive_head; /* The first BFD in the archive. */
@@ -3839,17 +3784,17 @@ struct bfd
struct bfd_pef_data_struct *pef_data;
struct bfd_pef_xlib_data_struct *pef_xlib_data;
struct bfd_sym_data_struct *sym_data;
- PTR any;
+ void *any;
}
tdata;
/* Used by the application to hold private data. */
- PTR usrdata;
+ void *usrdata;
/* Where all the allocated stuff under this BFD goes. This is a
- struct objalloc *, but we use PTR to avoid requiring the inclusion of
- objalloc.h. */
- PTR memory;
+ struct objalloc *, but we use void * to avoid requiring the inclusion
+ of objalloc.h. */
+ void *memory;
};
typedef enum bfd_error
@@ -3877,79 +3822,57 @@ typedef enum bfd_error
}
bfd_error_type;
-bfd_error_type
-bfd_get_error PARAMS ((void));
+bfd_error_type bfd_get_error (void);
-void
-bfd_set_error PARAMS ((bfd_error_type error_tag));
+void bfd_set_error (bfd_error_type error_tag);
-const char *
-bfd_errmsg PARAMS ((bfd_error_type error_tag));
+const char *bfd_errmsg (bfd_error_type error_tag);
-void
-bfd_perror PARAMS ((const char *message));
+void bfd_perror (const char *message);
-typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...));
+typedef void (*bfd_error_handler_type) (const char *, ...);
-bfd_error_handler_type
-bfd_set_error_handler PARAMS ((bfd_error_handler_type));
+bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
-void
-bfd_set_error_program_name PARAMS ((const char *));
+void bfd_set_error_program_name (const char *);
-bfd_error_handler_type
-bfd_get_error_handler PARAMS ((void));
+bfd_error_handler_type bfd_get_error_handler (void);
-const char *
-bfd_archive_filename PARAMS ((bfd *));
+const char *bfd_archive_filename (bfd *);
-long
-bfd_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect));
+long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
-long
-bfd_canonicalize_reloc PARAMS ((bfd *abfd,
- asection *sec,
- arelent **loc,
- asymbol **syms));
+long bfd_canonicalize_reloc
+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
-void
-bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count));
+void bfd_set_reloc
+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
-bfd_boolean
-bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags));
+bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
-int
-bfd_get_arch_size PARAMS ((bfd *abfd));
+int bfd_get_arch_size (bfd *abfd);
-int
-bfd_get_sign_extend_vma PARAMS ((bfd *abfd));
+int bfd_get_sign_extend_vma (bfd *abfd);
-bfd_boolean
-bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma));
+bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
-unsigned int
-bfd_get_gp_size PARAMS ((bfd *abfd));
+unsigned int bfd_get_gp_size (bfd *abfd);
-void
-bfd_set_gp_size PARAMS ((bfd *abfd, unsigned int i));
+void bfd_set_gp_size (bfd *abfd, unsigned int i);
-bfd_vma
-bfd_scan_vma PARAMS ((const char *string, const char **end, int base));
+bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
-bfd_boolean
-bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
+bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
#define bfd_copy_private_bfd_data(ibfd, obfd) \
BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
(ibfd, obfd))
-bfd_boolean
-bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
+bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
#define bfd_merge_private_bfd_data(ibfd, obfd) \
BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
(ibfd, obfd))
-bfd_boolean
-bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
+bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
#define bfd_set_private_flags(abfd, flags) \
BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
@@ -4024,17 +3947,15 @@ bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags));
BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
extern bfd_byte *bfd_get_relocated_section_contents
- PARAMS ((bfd *, struct bfd_link_info *,
- struct bfd_link_order *, bfd_byte *,
- bfd_boolean, asymbol **));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+ bfd_boolean, asymbol **);
-bfd_boolean
-bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative));
+bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
struct bfd_preserve
{
- PTR marker;
- PTR tdata;
+ void *marker;
+ void *tdata;
flagword flags;
const struct bfd_arch_info *arch_info;
struct sec *sections;
@@ -4043,38 +3964,31 @@ struct bfd_preserve
struct bfd_hash_table section_htab;
};
-bfd_boolean
-bfd_preserve_save PARAMS ((bfd *, struct bfd_preserve *));
+bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
-void
-bfd_preserve_restore PARAMS ((bfd *, struct bfd_preserve *));
+void bfd_preserve_restore (bfd *, struct bfd_preserve *);
-void
-bfd_preserve_finish PARAMS ((bfd *, struct bfd_preserve *));
+void bfd_preserve_finish (bfd *, struct bfd_preserve *);
/* Extracted from archive.c. */
-symindex
-bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
+symindex bfd_get_next_mapent
+ (bfd *abfd, symindex previous, carsym **sym);
-bfd_boolean
-bfd_set_archive_head PARAMS ((bfd *output, bfd *new_head));
+bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
-bfd *
-bfd_openr_next_archived_file PARAMS ((bfd *archive, bfd *previous));
+bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
/* Extracted from corefile.c. */
-const char *
-bfd_core_file_failing_command PARAMS ((bfd *abfd));
+const char *bfd_core_file_failing_command (bfd *abfd);
-int
-bfd_core_file_failing_signal PARAMS ((bfd *abfd));
+int bfd_core_file_failing_signal (bfd *abfd);
-bfd_boolean
-core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd));
+bfd_boolean core_file_matches_executable_p
+ (bfd *core_bfd, bfd *exec_bfd);
/* Extracted from targets.c. */
#define BFD_SEND(bfd, message, arglist) \
- ((*((bfd)->xvec->message)) arglist)
+ ((*((bfd)->xvec->message)) arglist)
#ifdef DEBUG_BFD_SEND
#undef BFD_SEND
@@ -4084,7 +3998,7 @@ core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd));
(bfd_assert (__FILE__,__LINE__), NULL))
#endif
#define BFD_SEND_FMT(bfd, message, arglist) \
- (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
#ifdef DEBUG_BFD_SEND
#undef BFD_SEND_FMT
@@ -4162,307 +4076,303 @@ typedef struct bfd_target
/* Entries for byte swapping for data. These are different from the
other entry points, since they don't take a BFD asthe first argument.
Certain other handlers could do the same. */
- bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
- void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
- bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *));
- void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *));
- bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
- void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
+ bfd_vma (*bfd_getx64) (const bfd_byte *);
+ bfd_signed_vma (*bfd_getx_signed_64) (const bfd_byte *);
+ void (*bfd_putx64) (bfd_vma, bfd_byte *);
+ bfd_vma (*bfd_getx32) (const bfd_byte *);
+ bfd_signed_vma (*bfd_getx_signed_32) (const bfd_byte *);
+ void (*bfd_putx32) (bfd_vma, bfd_byte *);
+ bfd_vma (*bfd_getx16) (const bfd_byte *);
+ bfd_signed_vma (*bfd_getx_signed_16) (const bfd_byte *);
+ void (*bfd_putx16) (bfd_vma, bfd_byte *);
/* Byte swapping for the headers. */
- bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
- void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
- bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *));
- void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *));
- bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
- bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
- void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
+ bfd_vma (*bfd_h_getx64) (const bfd_byte *);
+ bfd_signed_vma (*bfd_h_getx_signed_64) (const bfd_byte *);
+ void (*bfd_h_putx64) (bfd_vma, bfd_byte *);
+ bfd_vma (*bfd_h_getx32) (const bfd_byte *);
+ bfd_signed_vma (*bfd_h_getx_signed_32) (const bfd_byte *);
+ void (*bfd_h_putx32) (bfd_vma, bfd_byte *);
+ bfd_vma (*bfd_h_getx16) (const bfd_byte *);
+ bfd_signed_vma (*bfd_h_getx_signed_16) (const bfd_byte *);
+ void (*bfd_h_putx16) (bfd_vma, bfd_byte *);
/* Format dependent routines: these are vectors of entry points
within the target vector structure, one for each format to check. */
/* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
- const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
+ const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
/* Set the format of a file being written. */
- bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
+ bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
/* Write cached information into a file being written, at <<bfd_close>>. */
- bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
+ bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
/* Generic entry points. */
#define BFD_JUMP_TABLE_GENERIC(NAME) \
-CONCAT2 (NAME,_close_and_cleanup), \
-CONCAT2 (NAME,_bfd_free_cached_info), \
-CONCAT2 (NAME,_new_section_hook), \
-CONCAT2 (NAME,_get_section_contents), \
-CONCAT2 (NAME,_get_section_contents_in_window)
+ NAME##_close_and_cleanup, \
+ NAME##_bfd_free_cached_info, \
+ NAME##_new_section_hook, \
+ NAME##_get_section_contents, \
+ NAME##_get_section_contents_in_window
/* Called when the BFD is being closed to do any necessary cleanup. */
- bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *));
+ bfd_boolean (*_close_and_cleanup) (bfd *);
/* Ask the BFD to free all cached information. */
- bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
+ bfd_boolean (*_bfd_free_cached_info) (bfd *);
/* Called when a new section is created. */
- bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
+ bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
/* Read the contents of a section. */
bfd_boolean (*_bfd_get_section_contents)
- PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
bfd_boolean (*_bfd_get_section_contents_in_window)
- PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type));
+ (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
/* Entry points to copy private data. */
#define BFD_JUMP_TABLE_COPY(NAME) \
-CONCAT2 (NAME,_bfd_copy_private_bfd_data), \
-CONCAT2 (NAME,_bfd_merge_private_bfd_data), \
-CONCAT2 (NAME,_bfd_copy_private_section_data), \
-CONCAT2 (NAME,_bfd_copy_private_symbol_data), \
-CONCAT2 (NAME,_bfd_set_private_flags), \
-CONCAT2 (NAME,_bfd_print_private_bfd_data) \
+ NAME##_bfd_copy_private_bfd_data, \
+ NAME##_bfd_merge_private_bfd_data, \
+ NAME##_bfd_copy_private_section_data, \
+ NAME##_bfd_copy_private_symbol_data, \
+ NAME##_bfd_set_private_flags, \
+ NAME##_bfd_print_private_bfd_data
+
/* Called to copy BFD general private data from one object file
to another. */
- bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
+ bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
/* Called to merge BFD general private data from one object file
to a common output file when linking. */
- bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
+ bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
/* Called to copy BFD private section data from one object file
to another. */
bfd_boolean (*_bfd_copy_private_section_data)
- PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr));
+ (bfd *, sec_ptr, bfd *, sec_ptr);
/* Called to copy BFD private symbol data from one symbol
to another. */
bfd_boolean (*_bfd_copy_private_symbol_data)
- PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
+ (bfd *, asymbol *, bfd *, asymbol *);
/* Called to set private backend flags. */
- bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
+ bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
/* Called to print private BFD data. */
- bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
+ bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
/* Core file entry points. */
#define BFD_JUMP_TABLE_CORE(NAME) \
-CONCAT2 (NAME,_core_file_failing_command), \
-CONCAT2 (NAME,_core_file_failing_signal), \
-CONCAT2 (NAME,_core_file_matches_executable_p)
- char * (*_core_file_failing_command) PARAMS ((bfd *));
- int (*_core_file_failing_signal) PARAMS ((bfd *));
- bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
+ NAME##_core_file_failing_command, \
+ NAME##_core_file_failing_signal, \
+ NAME##_core_file_matches_executable_p
+
+ char * (*_core_file_failing_command) (bfd *);
+ int (*_core_file_failing_signal) (bfd *);
+ bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
/* Archive entry points. */
#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
-CONCAT2 (NAME,_slurp_armap), \
-CONCAT2 (NAME,_slurp_extended_name_table), \
-CONCAT2 (NAME,_construct_extended_name_table), \
-CONCAT2 (NAME,_truncate_arname), \
-CONCAT2 (NAME,_write_armap), \
-CONCAT2 (NAME,_read_ar_hdr), \
-CONCAT2 (NAME,_openr_next_archived_file), \
-CONCAT2 (NAME,_get_elt_at_index), \
-CONCAT2 (NAME,_generic_stat_arch_elt), \
-CONCAT2 (NAME,_update_armap_timestamp)
- bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
- bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
+ NAME##_slurp_armap, \
+ NAME##_slurp_extended_name_table, \
+ NAME##_construct_extended_name_table, \
+ NAME##_truncate_arname, \
+ NAME##_write_armap, \
+ NAME##_read_ar_hdr, \
+ NAME##_openr_next_archived_file, \
+ NAME##_get_elt_at_index, \
+ NAME##_generic_stat_arch_elt, \
+ NAME##_update_armap_timestamp
+
+ bfd_boolean (*_bfd_slurp_armap) (bfd *);
+ bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
bfd_boolean (*_bfd_construct_extended_name_table)
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
- void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
+ (bfd *, char **, bfd_size_type *, const char **);
+ void (*_bfd_truncate_arname) (bfd *, const char *, char *);
bfd_boolean (*write_armap)
- PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
- PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
- bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
-#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i))
- bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
- int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
- bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
+ (bfd *, unsigned int, struct orl *, unsigned int, int);
+ void * (*_bfd_read_ar_hdr_fn) (bfd *);
+ bfd * (*openr_next_archived_file) (bfd *, bfd *);
+#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+ bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
+ int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+ bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
/* Entry points used for symbols. */
#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
-CONCAT2 (NAME,_get_symtab_upper_bound), \
-CONCAT2 (NAME,_get_symtab), \
-CONCAT2 (NAME,_make_empty_symbol), \
-CONCAT2 (NAME,_print_symbol), \
-CONCAT2 (NAME,_get_symbol_info), \
-CONCAT2 (NAME,_bfd_is_local_label_name), \
-CONCAT2 (NAME,_get_lineno), \
-CONCAT2 (NAME,_find_nearest_line), \
-CONCAT2 (NAME,_bfd_make_debug_symbol), \
-CONCAT2 (NAME,_read_minisymbols), \
-CONCAT2 (NAME,_minisymbol_to_symbol)
- long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
- long (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
- struct symbol_cache_entry **));
+ NAME##_get_symtab_upper_bound, \
+ NAME##_get_symtab, \
+ NAME##_make_empty_symbol, \
+ NAME##_print_symbol, \
+ NAME##_get_symbol_info, \
+ NAME##_bfd_is_local_label_name, \
+ NAME##_get_lineno, \
+ NAME##_find_nearest_line, \
+ NAME##_bfd_make_debug_symbol, \
+ NAME##_read_minisymbols, \
+ NAME##_minisymbol_to_symbol
+
+ long (*_bfd_get_symtab_upper_bound) (bfd *);
+ long (*_bfd_canonicalize_symtab)
+ (bfd *, struct symbol_cache_entry **);
struct symbol_cache_entry *
- (*_bfd_make_empty_symbol) PARAMS ((bfd *));
+ (*_bfd_make_empty_symbol) (bfd *);
void (*_bfd_print_symbol)
- PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type));
-#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
+ (bfd *, void *, struct symbol_cache_entry *, bfd_print_symbol_type);
+#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
void (*_bfd_get_symbol_info)
- PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *));
-#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
- bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
+ (bfd *, struct symbol_cache_entry *, symbol_info *);
+#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+ bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
- alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
+ alent * (*_get_lineno) (bfd *, struct symbol_cache_entry *);
bfd_boolean (*_bfd_find_nearest_line)
- PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
- const char **, const char **, unsigned int *));
+ (bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
+ const char **, const char **, unsigned int *);
/* Back-door to allow format-aware applications to create debug symbols
while using BFD for everything else. Currently used by the assembler
when creating COFF files. */
asymbol * (*_bfd_make_debug_symbol)
- PARAMS ((bfd *, void *, unsigned long size));
+ (bfd *, void *, unsigned long size);
#define bfd_read_minisymbols(b, d, m, s) \
BFD_SEND (b, _read_minisymbols, (b, d, m, s))
long (*_read_minisymbols)
- PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
+ (bfd *, bfd_boolean, void **, unsigned int *);
#define bfd_minisymbol_to_symbol(b, d, m, f) \
BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
asymbol * (*_minisymbol_to_symbol)
- PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
+ (bfd *, bfd_boolean, const void *, asymbol *);
/* Routines for relocs. */
#define BFD_JUMP_TABLE_RELOCS(NAME) \
-CONCAT2 (NAME,_get_reloc_upper_bound), \
-CONCAT2 (NAME,_canonicalize_reloc), \
-CONCAT2 (NAME,_bfd_reloc_type_lookup)
- long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
+ NAME##_get_reloc_upper_bound, \
+ NAME##_canonicalize_reloc, \
+ NAME##_bfd_reloc_type_lookup
+
+ long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
long (*_bfd_canonicalize_reloc)
- PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **));
+ (bfd *, sec_ptr, arelent **, struct symbol_cache_entry **);
/* See documentation on reloc types. */
reloc_howto_type *
- (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
+ (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
/* Routines used when writing an object file. */
#define BFD_JUMP_TABLE_WRITE(NAME) \
-CONCAT2 (NAME,_set_arch_mach), \
-CONCAT2 (NAME,_set_section_contents)
+ NAME##_set_arch_mach, \
+ NAME##_set_section_contents
+
bfd_boolean (*_bfd_set_arch_mach)
- PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+ (bfd *, enum bfd_architecture, unsigned long);
bfd_boolean (*_bfd_set_section_contents)
- PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
/* Routines used by the linker. */
#define BFD_JUMP_TABLE_LINK(NAME) \
-CONCAT2 (NAME,_sizeof_headers), \
-CONCAT2 (NAME,_bfd_get_relocated_section_contents), \
-CONCAT2 (NAME,_bfd_relax_section), \
-CONCAT2 (NAME,_bfd_link_hash_table_create), \
-CONCAT2 (NAME,_bfd_link_hash_table_free), \
-CONCAT2 (NAME,_bfd_link_add_symbols), \
-CONCAT2 (NAME,_bfd_link_just_syms), \
-CONCAT2 (NAME,_bfd_final_link), \
-CONCAT2 (NAME,_bfd_link_split_section), \
-CONCAT2 (NAME,_bfd_gc_sections), \
-CONCAT2 (NAME,_bfd_merge_sections), \
-CONCAT2 (NAME,_bfd_discard_group)
- int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean));
+ NAME##_sizeof_headers, \
+ NAME##_bfd_get_relocated_section_contents, \
+ NAME##_bfd_relax_section, \
+ NAME##_bfd_link_hash_table_create, \
+ NAME##_bfd_link_hash_table_free, \
+ NAME##_bfd_link_add_symbols, \
+ NAME##_bfd_link_just_syms, \
+ NAME##_bfd_final_link, \
+ NAME##_bfd_link_split_section, \
+ NAME##_bfd_gc_sections, \
+ NAME##_bfd_merge_sections, \
+ NAME##_bfd_discard_group
+
+ int (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
bfd_byte * (*_bfd_get_relocated_section_contents)
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *, bfd_boolean, struct symbol_cache_entry **));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+ bfd_byte *, bfd_boolean, struct symbol_cache_entry **);
bfd_boolean (*_bfd_relax_section)
- PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *));
+ (bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *);
/* Create a hash table for the linker. Different backends store
different information in this table. */
struct bfd_link_hash_table *
- (*_bfd_link_hash_table_create) PARAMS ((bfd *));
+ (*_bfd_link_hash_table_create) (bfd *);
/* Release the memory associated with the linker hash table. */
- void (*_bfd_link_hash_table_free)
- PARAMS ((struct bfd_link_hash_table *));
+ void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
/* Add symbols from this object file into the hash table. */
- bfd_boolean (*_bfd_link_add_symbols)
- PARAMS ((bfd *, struct bfd_link_info *));
+ bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
/* Indicate that we are only retrieving symbol values from this section. */
- void (*_bfd_link_just_syms)
- PARAMS ((asection *, struct bfd_link_info *));
+ void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
/* Do a link based on the link_order structures attached to each
section of the BFD. */
- bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
+ bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
/* Should this section be split up into smaller pieces during linking. */
- bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
+ bfd_boolean (*_bfd_link_split_section) (bfd *, struct sec *);
/* Remove sections that are not referenced from the output. */
- bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
+ bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
/* Attempt to merge SEC_MERGE sections. */
- bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
+ bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
/* Discard members of a group. */
- bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
+ bfd_boolean (*_bfd_discard_group) (bfd *, struct sec *);
/* Routines to handle dynamic symbols and relocs. */
#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
-CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \
-CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
-CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
-CONCAT2 (NAME,_canonicalize_dynamic_reloc)
+ NAME##_get_dynamic_symtab_upper_bound, \
+ NAME##_canonicalize_dynamic_symtab, \
+ NAME##_get_dynamic_reloc_upper_bound, \
+ NAME##_canonicalize_dynamic_reloc
+
/* Get the amount of memory required to hold the dynamic symbols. */
- long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
+ long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
/* Read in the dynamic symbols. */
long (*_bfd_canonicalize_dynamic_symtab)
- PARAMS ((bfd *, struct symbol_cache_entry **));
+ (bfd *, struct symbol_cache_entry **);
/* Get the amount of memory required to hold the dynamic relocs. */
- long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
+ long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
/* Read in the dynamic relocs. */
long (*_bfd_canonicalize_dynamic_reloc)
- PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
+ (bfd *, arelent **, struct symbol_cache_entry **);
/* Opposite endian version of this target. */
const struct bfd_target * alternative_target;
/* Data for use by back-end routines, which isn't
generic enough to belong in this structure. */
- PTR backend_data;
+ const void *backend_data;
} bfd_target;
-bfd_boolean
-bfd_set_default_target PARAMS ((const char *name));
+bfd_boolean bfd_set_default_target (const char *name);
-const bfd_target *
-bfd_find_target PARAMS ((const char *target_name, bfd *abfd));
+const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
-const char **
-bfd_target_list PARAMS ((void));
+const char ** bfd_target_list (void);
-const bfd_target *
-bfd_search_for_target PARAMS ((int (* search_func)
- (const bfd_target *, void *),
- void *));
+const bfd_target *bfd_search_for_target
+ (int (*search_func) (const bfd_target *, void *),
+ void *);
/* Extracted from format.c. */
-bfd_boolean
-bfd_check_format PARAMS ((bfd *abfd, bfd_format format));
+bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
-bfd_boolean
-bfd_check_format_matches PARAMS ((bfd *abfd, bfd_format format,
- char ***matching));
+bfd_boolean bfd_check_format_matches
+ (bfd *abfd, bfd_format format, char ***matching);
-bfd_boolean
-bfd_set_format PARAMS ((bfd *abfd, bfd_format format));
+bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
-const char *
-bfd_format_string PARAMS ((bfd_format format));
+const char *bfd_format_string (bfd_format format);
/* Extracted from linker.c. */
-bfd_boolean
-bfd_link_split_section PARAMS ((bfd *abfd, asection *sec));
+bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
#define bfd_link_split_section(abfd, sec) \
BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
/* Extracted from simple.c. */
-bfd_byte *
-bfd_simple_get_relocated_section_contents PARAMS ((bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table));
+bfd_byte *bfd_simple_get_relocated_section_contents
+ (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
#ifdef __cplusplus
}
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 99c5ea6..472d0ed 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -52,7 +52,7 @@ CODE_FRAGMENT
. is the result of an fopen on the filename. However, if the
. BFD_IN_MEMORY flag is set, then iostream is actually a pointer
. to a bfd_in_memory struct. *}
-. PTR iostream;
+. void *iostream;
.
. {* Is the file descriptor being cached? That is, can it be closed as
. needed, and re-opened when accessed later? *}
@@ -138,7 +138,7 @@ CODE_FRAGMENT
. const struct bfd_arch_info *arch_info;
.
. {* Stuff only useful for archives. *}
-. PTR arelt_data;
+. void *arelt_data;
. struct bfd *my_archive; {* The containing archive BFD. *}
. struct bfd *next; {* The next BFD in the archive. *}
. struct bfd *archive_head; {* The first BFD in the archive. *}
@@ -188,17 +188,17 @@ CODE_FRAGMENT
. struct bfd_pef_data_struct *pef_data;
. struct bfd_pef_xlib_data_struct *pef_xlib_data;
. struct bfd_sym_data_struct *sym_data;
-. PTR any;
+. void *any;
. }
. tdata;
.
. {* Used by the application to hold private data. *}
-. PTR usrdata;
+. void *usrdata;
.
. {* Where all the allocated stuff under this BFD goes. This is a
-. struct objalloc *, but we use PTR to avoid requiring the inclusion of
-. objalloc.h. *}
-. PTR memory;
+. struct objalloc *, but we use void * to avoid requiring the inclusion
+. of objalloc.h. *}
+. void *memory;
.};
.
*/
@@ -206,13 +206,7 @@ CODE_FRAGMENT
#include "bfd.h"
#include "bfdver.h"
#include "sysdep.h"
-
-#ifdef ANSI_PROTOTYPES
#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
#include "libiberty.h"
#include "safe-ctype.h"
#include "bfdlink.h"
@@ -317,7 +311,7 @@ DESCRIPTION
*/
bfd_error_type
-bfd_get_error ()
+bfd_get_error (void)
{
return bfd_error;
}
@@ -334,8 +328,7 @@ DESCRIPTION
*/
void
-bfd_set_error (error_tag)
- bfd_error_type error_tag;
+bfd_set_error (bfd_error_type error_tag)
{
bfd_error = error_tag;
}
@@ -353,8 +346,7 @@ DESCRIPTION
*/
const char *
-bfd_errmsg (error_tag)
- bfd_error_type error_tag;
+bfd_errmsg (bfd_error_type error_tag)
{
#ifndef errno
extern int errno;
@@ -362,11 +354,10 @@ bfd_errmsg (error_tag)
if (error_tag == bfd_error_system_call)
return xstrerror (errno);
- if ((((int) error_tag < (int) bfd_error_no_error) ||
- ((int) error_tag > (int) bfd_error_invalid_error_code)))
- error_tag = bfd_error_invalid_error_code;/* sanity check */
+ if (error_tag > bfd_error_invalid_error_code)
+ error_tag = bfd_error_invalid_error_code; /* sanity check */
- return _(bfd_errmsgs [(int)error_tag]);
+ return _(bfd_errmsgs [error_tag]);
}
/*
@@ -385,12 +376,11 @@ DESCRIPTION
*/
void
-bfd_perror (message)
- const char *message;
+bfd_perror (const char *message)
{
if (bfd_get_error () == bfd_error_system_call)
/* Must be a system error then. */
- perror ((char *)message);
+ perror ((char *) message);
else
{
if (message == NULL || *message == '\0')
@@ -412,7 +402,7 @@ SUBSECTION
CODE_FRAGMENT
.
-.typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...));
+.typedef void (*bfd_error_handler_type) (const char *, ...);
.
*/
@@ -422,20 +412,19 @@ static const char *_bfd_error_program_name;
/* This is the default routine to handle BFD error messages. */
-static void _bfd_default_error_handler PARAMS ((const char *s, ...));
-
static void
-_bfd_default_error_handler VPARAMS ((const char *s, ...))
+_bfd_default_error_handler (const char *s, ...)
{
+ va_list p;
+
if (_bfd_error_program_name != NULL)
fprintf (stderr, "%s: ", _bfd_error_program_name);
else
fprintf (stderr, "BFD: ");
- VA_OPEN (p, s);
- VA_FIXEDARG (p, const char *, s);
+ va_start (p, s);
vfprintf (stderr, s, p);
- VA_CLOSE (p);
+ va_end (p);
fprintf (stderr, "\n");
}
@@ -461,8 +450,7 @@ DESCRIPTION
*/
bfd_error_handler_type
-bfd_set_error_handler (pnew)
- bfd_error_handler_type pnew;
+bfd_set_error_handler (bfd_error_handler_type pnew)
{
bfd_error_handler_type pold;
@@ -486,8 +474,7 @@ DESCRIPTION
*/
void
-bfd_set_error_program_name (name)
- const char *name;
+bfd_set_error_program_name (const char *name)
{
_bfd_error_program_name = name;
}
@@ -504,7 +491,7 @@ DESCRIPTION
*/
bfd_error_handler_type
-bfd_get_error_handler ()
+bfd_get_error_handler (void)
{
return _bfd_error_handler;
}
@@ -523,8 +510,7 @@ DESCRIPTION
*/
const char *
-bfd_archive_filename (abfd)
- bfd *abfd;
+bfd_archive_filename (bfd *abfd)
{
if (abfd->my_archive)
{
@@ -539,7 +525,7 @@ bfd_archive_filename (abfd)
if (curr)
free (buf);
curr = needed + (needed >> 1);
- buf = bfd_malloc ((bfd_size_type) curr);
+ buf = bfd_malloc (curr);
/* If we can't malloc, fail safe by returning just the file
name. This function is only used when building error
messages. */
@@ -577,9 +563,7 @@ DESCRIPTION
*/
long
-bfd_get_reloc_upper_bound (abfd, asect)
- bfd *abfd;
- sec_ptr asect;
+bfd_get_reloc_upper_bound (bfd *abfd, sec_ptr asect)
{
if (abfd->format != bfd_object)
{
@@ -596,10 +580,7 @@ FUNCTION
SYNOPSIS
long bfd_canonicalize_reloc
- (bfd *abfd,
- asection *sec,
- arelent **loc,
- asymbol **syms);
+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
DESCRIPTION
Call the back end associated with the open BFD
@@ -615,11 +596,10 @@ DESCRIPTION
*/
long
-bfd_canonicalize_reloc (abfd, asect, location, symbols)
- bfd *abfd;
- sec_ptr asect;
- arelent **location;
- asymbol **symbols;
+bfd_canonicalize_reloc (bfd *abfd,
+ sec_ptr asect,
+ arelent **location,
+ asymbol **symbols)
{
if (abfd->format != bfd_object)
{
@@ -647,11 +627,10 @@ DESCRIPTION
*/
void
-bfd_set_reloc (ignore_abfd, asect, location, count)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
- sec_ptr asect;
- arelent **location;
- unsigned int count;
+bfd_set_reloc (bfd *ignore_abfd ATTRIBUTE_UNUSED,
+ sec_ptr asect,
+ arelent **location,
+ unsigned int count)
{
asect->orelocation = location;
asect->reloc_count = count;
@@ -678,9 +657,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_file_flags (abfd, flags)
- bfd *abfd;
- flagword flags;
+bfd_set_file_flags (bfd *abfd, flagword flags)
{
if (abfd->format != bfd_object)
{
@@ -705,9 +682,7 @@ bfd_set_file_flags (abfd, flags)
}
void
-bfd_assert (file, line)
- const char *file;
- int line;
+bfd_assert (const char *file, int line)
{
(*_bfd_error_handler) (_("BFD %s assertion fail %s:%d"),
BFD_VERSION_STRING, file, line);
@@ -721,10 +696,7 @@ bfd_assert (file, line)
#endif
void
-_bfd_abort (file, line, fn)
- const char *file;
- int line;
- const char *fn;
+_bfd_abort (const char *file, int line, const char *fn)
{
if (fn != NULL)
(*_bfd_error_handler)
@@ -755,11 +727,10 @@ RETURNS
*/
int
-bfd_get_arch_size (abfd)
- bfd *abfd;
+bfd_get_arch_size (bfd *abfd)
{
if (abfd->xvec->flavour == bfd_target_elf_flavour)
- return (get_elf_backend_data (abfd))->s->arch_size;
+ return get_elf_backend_data (abfd)->s->arch_size;
return -1;
}
@@ -786,13 +757,12 @@ RETURNS
*/
int
-bfd_get_sign_extend_vma (abfd)
- bfd *abfd;
+bfd_get_sign_extend_vma (bfd *abfd)
{
char *name;
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- return (get_elf_backend_data (abfd)->sign_extend_vma);
+ return get_elf_backend_data (abfd)->sign_extend_vma;
name = bfd_get_target (abfd);
@@ -823,9 +793,7 @@ RETURNS
*/
bfd_boolean
-bfd_set_start_address (abfd, vma)
- bfd *abfd;
- bfd_vma vma;
+bfd_set_start_address (bfd *abfd, bfd_vma vma)
{
abfd->start_address = vma;
return TRUE;
@@ -845,8 +813,7 @@ DESCRIPTION
*/
unsigned int
-bfd_get_gp_size (abfd)
- bfd *abfd;
+bfd_get_gp_size (bfd *abfd)
{
if (abfd->format == bfd_object)
{
@@ -872,9 +839,7 @@ DESCRIPTION
*/
void
-bfd_set_gp_size (abfd, i)
- bfd *abfd;
- unsigned int i;
+bfd_set_gp_size (bfd *abfd, unsigned int i)
{
/* Don't try to set GP size on an archive or core file! */
if (abfd->format != bfd_object)
@@ -891,8 +856,7 @@ bfd_set_gp_size (abfd, i)
register. */
bfd_vma
-_bfd_get_gp_value (abfd)
- bfd *abfd;
+_bfd_get_gp_value (bfd *abfd)
{
if (! abfd)
return 0;
@@ -910,9 +874,7 @@ _bfd_get_gp_value (abfd)
/* Set the GP value. */
void
-_bfd_set_gp_value (abfd, v)
- bfd *abfd;
- bfd_vma v;
+_bfd_set_gp_value (bfd *abfd, bfd_vma v)
{
if (! abfd)
BFD_FAIL ();
@@ -947,10 +909,7 @@ DESCRIPTION
*/
bfd_vma
-bfd_scan_vma (string, end, base)
- const char *string;
- const char **end;
- int base;
+bfd_scan_vma (const char *string, const char **end, int base)
{
bfd_vma value;
bfd_vma cutoff;
@@ -959,7 +918,7 @@ bfd_scan_vma (string, end, base)
/* Let the host do it if possible. */
if (sizeof (bfd_vma) <= sizeof (unsigned long))
- return (bfd_vma) strtoul (string, (char **) end, base);
+ return strtoul (string, (char **) end, base);
if (base == 0)
{
@@ -1155,27 +1114,23 @@ DESCRIPTION
. BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
.
.extern bfd_byte *bfd_get_relocated_section_contents
-. PARAMS ((bfd *, struct bfd_link_info *,
-. struct bfd_link_order *, bfd_byte *,
-. bfd_boolean, asymbol **));
+. (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+. bfd_boolean, asymbol **);
.
*/
bfd_byte *
-bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
- relocateable, symbols)
- bfd *abfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- bfd_byte *data;
- bfd_boolean relocateable;
- asymbol **symbols;
+bfd_get_relocated_section_contents (bfd *abfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols)
{
bfd *abfd2;
- bfd_byte *(*fn) PARAMS ((bfd *, struct bfd_link_info *,
- struct bfd_link_order *, bfd_byte *, bfd_boolean,
- asymbol **));
+ bfd_byte *(*fn) (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+ bfd_byte *, bfd_boolean, asymbol **);
if (link_order->type == bfd_indirect_link_order)
{
@@ -1188,24 +1143,22 @@ bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
fn = abfd2->xvec->_bfd_get_relocated_section_contents;
- return (*fn) (abfd, link_info, link_order, data, relocateable, symbols);
+ return (*fn) (abfd, link_info, link_order, data, relocatable, symbols);
}
/* Record information about an ELF program header. */
bfd_boolean
-bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
- includes_filehdr, includes_phdrs, count, secs)
- bfd *abfd;
- unsigned long type;
- bfd_boolean flags_valid;
- flagword flags;
- bfd_boolean at_valid;
- bfd_vma at;
- bfd_boolean includes_filehdr;
- bfd_boolean includes_phdrs;
- unsigned int count;
- asection **secs;
+bfd_record_phdr (bfd *abfd,
+ unsigned long type,
+ bfd_boolean flags_valid,
+ flagword flags,
+ bfd_boolean at_valid,
+ bfd_vma at,
+ bfd_boolean includes_filehdr,
+ bfd_boolean includes_phdrs,
+ unsigned int count,
+ asection **secs)
{
struct elf_segment_map *m, **pm;
bfd_size_type amt;
@@ -1215,7 +1168,7 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
amt = sizeof (struct elf_segment_map);
amt += ((bfd_size_type) count - 1) * sizeof (asection *);
- m = (struct elf_segment_map *) bfd_alloc (abfd, amt);
+ m = bfd_alloc (abfd, amt);
if (m == NULL)
return FALSE;
@@ -1223,10 +1176,10 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
m->p_type = type;
m->p_flags = flags;
m->p_paddr = at;
- m->p_flags_valid = (unsigned int) flags_valid;
- m->p_paddr_valid = (unsigned int) at_valid;
- m->includes_filehdr = (unsigned int) includes_filehdr;
- m->includes_phdrs = (unsigned int) includes_phdrs;
+ m->p_flags_valid = flags_valid;
+ m->p_paddr_valid = at_valid;
+ m->includes_filehdr = includes_filehdr;
+ m->includes_phdrs = includes_phdrs;
m->count = count;
if (count > 0)
memcpy (m->sections, secs, count * sizeof (asection *));
@@ -1239,10 +1192,7 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
}
void
-bfd_sprintf_vma (abfd, buf, value)
- bfd *abfd;
- char *buf;
- bfd_vma value;
+bfd_sprintf_vma (bfd *abfd, char *buf, bfd_vma value)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
get_elf_backend_data (abfd)->elf_backend_sprintf_vma (abfd, buf, value);
@@ -1251,10 +1201,7 @@ bfd_sprintf_vma (abfd, buf, value)
}
void
-bfd_fprintf_vma (abfd, stream, value)
- bfd *abfd;
- PTR stream;
- bfd_vma value;
+bfd_fprintf_vma (bfd *abfd, void *stream, bfd_vma value)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
get_elf_backend_data (abfd)->elf_backend_fprintf_vma (abfd, stream, value);
@@ -1279,9 +1226,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_alt_mach_code (abfd, alternative)
- bfd *abfd;
- int alternative;
+bfd_alt_mach_code (bfd *abfd, int alternative)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
{
@@ -1322,8 +1267,8 @@ CODE_FRAGMENT
.struct bfd_preserve
.{
-. PTR marker;
-. PTR tdata;
+. void *marker;
+. void *tdata;
. flagword flags;
. const struct bfd_arch_info *arch_info;
. struct sec *sections;
@@ -1355,9 +1300,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_preserve_save (abfd, preserve)
- bfd *abfd;
- struct bfd_preserve *preserve;
+bfd_preserve_save (bfd *abfd, struct bfd_preserve *preserve)
{
preserve->tdata = abfd->tdata.any;
preserve->arch_info = abfd->arch_info;
@@ -1395,9 +1338,7 @@ DESCRIPTION
*/
void
-bfd_preserve_restore (abfd, preserve)
- bfd *abfd;
- struct bfd_preserve *preserve;
+bfd_preserve_restore (bfd *abfd, struct bfd_preserve *preserve)
{
bfd_hash_table_free (&abfd->section_htab);
@@ -1433,9 +1374,7 @@ DESCRIPTION
*/
void
-bfd_preserve_finish (abfd, preserve)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_preserve *preserve;
+bfd_preserve_finish (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_preserve *preserve)
{
/* It would be nice to be able to free more memory here, eg. old
tdata, but that's not possible since these blocks are sitting
diff --git a/bfd/bfdio.c b/bfd/bfdio.c
index 3229316..377622f 100644
--- a/bfd/bfdio.c
+++ b/bfd/bfdio.c
@@ -43,13 +43,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
contents (0 for non-archive elements). For archive entries this is the
first octet in the file, NOT the beginning of the archive header. */
-static size_t real_read PARAMS ((PTR where, size_t a, size_t b, FILE *file));
static size_t
-real_read (where, a, b, file)
- PTR where;
- size_t a;
- size_t b;
- FILE *file;
+real_read (void *where, size_t a, size_t b, FILE *file)
{
/* FIXME - this looks like an optimization, but it's really to cover
up for a feature of some OSs (not solaris - sigh) that
@@ -76,10 +71,7 @@ real_read (where, a, b, file)
/* Return value is amount read. */
bfd_size_type
-bfd_bread (ptr, size, abfd)
- PTR ptr;
- bfd_size_type size;
- bfd *abfd;
+bfd_bread (void *ptr, bfd_size_type size, bfd *abfd)
{
size_t nread;
@@ -88,7 +80,7 @@ bfd_bread (ptr, size, abfd)
struct bfd_in_memory *bim;
bfd_size_type get;
- bim = (struct bfd_in_memory *) abfd->iostream;
+ bim = abfd->iostream;
get = size;
if (abfd->where + get > bim->size)
{
@@ -126,16 +118,13 @@ bfd_bread (ptr, size, abfd)
}
bfd_size_type
-bfd_bwrite (ptr, size, abfd)
- const PTR ptr;
- bfd_size_type size;
- bfd *abfd;
+bfd_bwrite (const void *ptr, bfd_size_type size, bfd *abfd)
{
size_t nwrote;
if ((abfd->flags & BFD_IN_MEMORY) != 0)
{
- struct bfd_in_memory *bim = (struct bfd_in_memory *) (abfd->iostream);
+ struct bfd_in_memory *bim = abfd->iostream;
size = (size_t) size;
if (abfd->where + size > bim->size)
{
@@ -147,7 +136,7 @@ bfd_bwrite (ptr, size, abfd)
newsize = (bim->size + 127) & ~(bfd_size_type) 127;
if (newsize > oldsize)
{
- bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize);
+ bim->buffer = bfd_realloc (bim->buffer, newsize);
if (bim->buffer == 0)
{
bim->size = 0;
@@ -174,8 +163,7 @@ bfd_bwrite (ptr, size, abfd)
}
bfd_vma
-bfd_tell (abfd)
- bfd *abfd;
+bfd_tell (bfd *abfd)
{
file_ptr ptr;
@@ -191,8 +179,7 @@ bfd_tell (abfd)
}
int
-bfd_flush (abfd)
- bfd *abfd;
+bfd_flush (bfd *abfd)
{
if ((abfd->flags & BFD_IN_MEMORY) != 0)
return 0;
@@ -202,9 +189,7 @@ bfd_flush (abfd)
/* Returns 0 for success, negative value for failure (in which case
bfd_get_error can retrieve the error code). */
int
-bfd_stat (abfd, statbuf)
- bfd *abfd;
- struct stat *statbuf;
+bfd_stat (bfd *abfd, struct stat *statbuf)
{
FILE *f;
int result;
@@ -228,10 +213,7 @@ bfd_stat (abfd, statbuf)
can retrieve the error code). */
int
-bfd_seek (abfd, position, direction)
- bfd *abfd;
- file_ptr position;
- int direction;
+bfd_seek (bfd *abfd, file_ptr position, int direction)
{
int result;
FILE *f;
@@ -249,7 +231,7 @@ bfd_seek (abfd, position, direction)
{
struct bfd_in_memory *bim;
- bim = (struct bfd_in_memory *) abfd->iostream;
+ bim = abfd->iostream;
if (direction == SEEK_SET)
abfd->where = position;
@@ -268,7 +250,7 @@ bfd_seek (abfd, position, direction)
newsize = (bim->size + 127) & ~(bfd_size_type) 127;
if (newsize > oldsize)
{
- bim->buffer = (bfd_byte *) bfd_realloc (bim->buffer, newsize);
+ bim->buffer = bfd_realloc (bim->buffer, newsize);
if (bim->buffer == 0)
{
bim->size = 0;
@@ -359,7 +341,7 @@ FUNCTION
bfd_get_mtime
SYNOPSIS
- long bfd_get_mtime(bfd *abfd);
+ long bfd_get_mtime (bfd *abfd);
DESCRIPTION
Return the file modification time (as read from the file system, or
@@ -368,8 +350,7 @@ DESCRIPTION
*/
long
-bfd_get_mtime (abfd)
- bfd *abfd;
+bfd_get_mtime (bfd *abfd)
{
FILE *fp;
struct stat buf;
@@ -390,7 +371,7 @@ FUNCTION
bfd_get_size
SYNOPSIS
- long bfd_get_size(bfd *abfd);
+ long bfd_get_size (bfd *abfd);
DESCRIPTION
Return the file size (as read from file system) for the file
@@ -419,8 +400,7 @@ DESCRIPTION
*/
long
-bfd_get_size (abfd)
- bfd *abfd;
+bfd_get_size (bfd *abfd)
{
FILE *fp;
struct stat buf;
diff --git a/bfd/bfdwin.c b/bfd/bfdwin.c
index 442a8a4..00d1a14 100644
--- a/bfd/bfdwin.c
+++ b/bfd/bfdwin.c
@@ -52,7 +52,7 @@ INTERNAL_DEFINITION
.struct _bfd_window_internal {
. struct _bfd_window_internal *next;
-. PTR data;
+. void *data;
. bfd_size_type size;
. int refcount : 31; {* should be enough... *}
. unsigned mapped : 1; {* 1 = mmap, 0 = malloc *}
@@ -60,8 +60,7 @@ INTERNAL_DEFINITION
*/
void
-bfd_init_window (windowp)
- bfd_window *windowp;
+bfd_init_window (bfd_window *windowp)
{
windowp->data = 0;
windowp->i = 0;
@@ -69,8 +68,7 @@ bfd_init_window (windowp)
}
void
-bfd_free_window (windowp)
- bfd_window *windowp;
+bfd_free_window (bfd_window *windowp)
{
bfd_window_internal *i = windowp->i;
windowp->i = 0;
@@ -108,12 +106,11 @@ bfd_free_window (windowp)
static int ok_to_map = 1;
bfd_boolean
-bfd_get_file_window (abfd, offset, size, windowp, writable)
- bfd *abfd;
- file_ptr offset;
- bfd_size_type size;
- bfd_window *windowp;
- bfd_boolean writable;
+bfd_get_file_window (bfd *abfd,
+ file_ptr offset,
+ bfd_size_type size,
+ bfd_window *windowp,
+ bfd_boolean writable)
{
static size_t pagesize;
bfd_window_internal *i = windowp->i;
@@ -133,8 +130,7 @@ bfd_get_file_window (abfd, offset, size, windowp, writable)
if (i == 0)
{
- i = ((bfd_window_internal *)
- bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal)));
+ i = bfd_zmalloc (sizeof (bfd_window_internal));
windowp->i = i;
if (i == 0)
return FALSE;
@@ -180,7 +176,7 @@ bfd_get_file_window (abfd, offset, size, windowp, writable)
? MAP_FILE | MAP_PRIVATE
: MAP_FILE | MAP_SHARED),
fd, file_offset);
- if (i->data == (PTR) -1)
+ if (i->data == (void *) -1)
{
/* An error happened. Report it, or try using malloc, or
something. */
@@ -195,7 +191,7 @@ bfd_get_file_window (abfd, offset, size, windowp, writable)
fprintf (stderr, "\n\tmapped %ld at %p, offset is %ld\n",
(long) real_size, i->data, (long) offset2);
i->size = real_size;
- windowp->data = (PTR) ((bfd_byte *) i->data + offset2);
+ windowp->data = (bfd_byte *) i->data + offset2;
windowp->size = size;
i->mapped = 1;
return TRUE;
@@ -222,7 +218,7 @@ bfd_get_file_window (abfd, offset, size, windowp, writable)
if (debug_windows)
fprintf (stderr, "\n\t%s(%6ld)",
i->data ? "realloc" : " malloc", (long) size_to_alloc);
- i->data = (PTR) bfd_realloc (i->data, size_to_alloc);
+ i->data = bfd_realloc (i->data, size_to_alloc);
if (debug_windows)
fprintf (stderr, "\t-> %p\n", i->data);
i->refcount = 1;
diff --git a/bfd/bout.c b/bfd/bout.c
index b839929..43537eb 100644
--- a/bfd/bout.c
+++ b/bfd/bout.c
@@ -1,6 +1,6 @@
/* BFD back-end for Intel 960 b.out binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -1298,12 +1298,12 @@ b_out_bfd_relax_section (abfd, i, link_info, again)
static bfd_byte *
b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *output_bfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
/* Get enough memory to hold the stuff. */
@@ -1317,11 +1317,11 @@ b_out_bfd_get_relocated_section_contents (output_bfd, link_info, link_order,
if (reloc_size < 0)
goto error_return;
- /* If producing relocateable output, don't bother to relax. */
- if (relocateable)
+ /* If producing relocatable output, don't bother to relax. */
+ if (relocatable)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order,
- data, relocateable,
+ data, relocatable,
symbols);
reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
diff --git a/bfd/cache.c b/bfd/cache.c
index 98a1c72..b309165 100644
--- a/bfd/cache.c
+++ b/bfd/cache.c
@@ -1,5 +1,5 @@
/* BFD library -- caching of file descriptors.
- Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002
+ Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
@@ -40,10 +40,7 @@ SECTION
#include "sysdep.h"
#include "libbfd.h"
-static void insert PARAMS ((bfd *));
-static void snip PARAMS ((bfd *));
-static bfd_boolean close_one PARAMS ((void));
-static bfd_boolean bfd_cache_delete PARAMS ((bfd *));
+static bfd_boolean bfd_cache_delete (bfd *);
/*
INTERNAL_FUNCTION
@@ -95,9 +92,8 @@ bfd *bfd_last_cache;
/* Insert a BFD into the cache. */
-static INLINE void
-insert (abfd)
- bfd *abfd;
+static void
+insert (bfd *abfd)
{
if (bfd_last_cache == NULL)
{
@@ -116,9 +112,8 @@ insert (abfd)
/* Remove a BFD from the cache. */
-static INLINE void
-snip (abfd)
- bfd *abfd;
+static void
+snip (bfd *abfd)
{
abfd->lru_prev->lru_next = abfd->lru_next;
abfd->lru_next->lru_prev = abfd->lru_prev;
@@ -134,7 +129,7 @@ snip (abfd)
recently used cacheable BFD and close it. */
static bfd_boolean
-close_one ()
+close_one (void)
{
register bfd *kill;
@@ -168,8 +163,7 @@ close_one ()
/* Close a BFD and remove it from the cache. */
static bfd_boolean
-bfd_cache_delete (abfd)
- bfd *abfd;
+bfd_cache_delete (bfd *abfd)
{
bfd_boolean ret;
@@ -201,8 +195,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_cache_init (abfd)
- bfd *abfd;
+bfd_cache_init (bfd *abfd)
{
BFD_ASSERT (abfd->iostream != NULL);
if (open_files >= BFD_CACHE_MAX_OPEN)
@@ -232,8 +225,7 @@ RETURNS
*/
bfd_boolean
-bfd_cache_close (abfd)
- bfd *abfd;
+bfd_cache_close (bfd *abfd)
{
if (abfd->iostream == NULL
|| (abfd->flags & BFD_IN_MEMORY) != 0)
@@ -247,7 +239,7 @@ INTERNAL_FUNCTION
bfd_open_file
SYNOPSIS
- FILE* bfd_open_file(bfd *abfd);
+ FILE* bfd_open_file (bfd *abfd);
DESCRIPTION
Call the OS to open a file for @var{abfd}. Return the <<FILE *>>
@@ -258,8 +250,7 @@ DESCRIPTION
*/
FILE *
-bfd_open_file (abfd)
- bfd *abfd;
+bfd_open_file (bfd *abfd)
{
abfd->cacheable = TRUE; /* Allow it to be closed later. */
@@ -331,7 +322,7 @@ INTERNAL_FUNCTION
bfd_cache_lookup_worker
SYNOPSIS
- FILE *bfd_cache_lookup_worker(bfd *abfd);
+ FILE *bfd_cache_lookup_worker (bfd *abfd);
DESCRIPTION
Called when the macro <<bfd_cache_lookup>> fails to find a
@@ -342,8 +333,7 @@ DESCRIPTION
*/
FILE *
-bfd_cache_lookup_worker (abfd)
- bfd *abfd;
+bfd_cache_lookup_worker (bfd *abfd)
{
if ((abfd->flags & BFD_IN_MEMORY) != 0)
abort ();
diff --git a/bfd/coff-a29k.c b/bfd/coff-a29k.c
index 844d371..444dbc2 100644
--- a/bfd/coff-a29k.c
+++ b/bfd/coff-a29k.c
@@ -1,5 +1,6 @@
/* BFD back-end for AMD 29000 COFF binaries.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
+ 2002, 2003
Free Software Foundation, Inc.
Contributed by David Wood at New York University 7/8/91.
@@ -327,10 +328,10 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean hihalf;
bfd_vma hihalf_val;
- /* If we are performing a relocateable link, we don't need to do a
+ /* If we are performing a relocatable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
hihalf = FALSE;
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 14e0ee1..e9dd416 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -1,5 +1,5 @@
/* BFD back-end for ALPHA Extended-Coff files.
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
Ian Lance Taylor <ian@cygnus.com>.
@@ -53,7 +53,7 @@ static reloc_howto_type *alpha_bfd_reloc_type_lookup
PARAMS ((bfd *, bfd_reloc_code_real_type));
static bfd_byte *alpha_ecoff_get_relocated_section_contents
PARAMS ((bfd *abfd, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *data, bfd_boolean relocateable, asymbol **symbols));
+ bfd_byte *data, bfd_boolean relocatable, asymbol **symbols));
static bfd_vma alpha_convert_external_reloc
PARAMS ((bfd *, struct bfd_link_info *, bfd *, struct external_reloc *,
struct ecoff_link_hash_entry *));
@@ -753,12 +753,12 @@ alpha_adjust_reloc_out (abfd, rel, intern)
static bfd_byte *
alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *abfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
bfd *input_bfd = link_order->u.indirect.section->owner;
@@ -766,7 +766,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
arelent **reloc_vector = NULL;
long reloc_count;
- bfd *output_bfd = relocateable ? abfd : (bfd *) NULL;
+ bfd *output_bfd = relocatable ? abfd : (bfd *) NULL;
bfd_vma gp;
bfd_boolean gp_undefined;
bfd_vma stack[RELOC_STACKSIZE];
@@ -798,7 +798,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
gp = _bfd_get_gp_value (abfd);
if (gp == 0)
{
- if (relocateable)
+ if (relocatable)
{
asection *sec;
bfd_vma lo;
@@ -858,7 +858,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
case ALPHA_R_SREL16:
case ALPHA_R_SREL32:
case ALPHA_R_SREL64:
- if (relocateable
+ if (relocatable
&& ((*rel->sym_ptr_ptr)->flags & BSF_SECTION_SYM) == 0)
{
rel->address += input_section->output_offset;
@@ -991,7 +991,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
asymbol *symbol;
bfd_vma relocation;
- if (relocateable)
+ if (relocatable)
{
rel->address += input_section->output_offset;
break;
@@ -1024,7 +1024,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
bfd_vma val;
int offset, size;
- if (relocateable)
+ if (relocatable)
{
rel->address += input_section->output_offset;
break;
@@ -1051,7 +1051,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
asymbol *symbol;
bfd_vma relocation;
- if (relocateable)
+ if (relocatable)
{
rel->address += input_section->output_offset;
break;
@@ -1084,7 +1084,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
asymbol *symbol;
bfd_vma relocation;
- if (relocateable)
+ if (relocatable)
{
rel->address += input_section->output_offset;
break;
@@ -1121,7 +1121,7 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
abort ();
}
- if (relocateable)
+ if (relocatable)
{
asection *os = input_section->output_section;
@@ -1248,7 +1248,7 @@ alpha_bfd_reloc_type_lookup (abfd, code)
}
/* A helper routine for alpha_relocate_section which converts an
- external reloc when generating relocateable output. Returns the
+ external reloc when generating relocatable output. Returns the
relocation amount. */
static bfd_vma
@@ -1262,7 +1262,7 @@ alpha_convert_external_reloc (output_bfd, info, input_bfd, ext_rel, h)
unsigned long r_symndx;
bfd_vma relocation;
- BFD_ASSERT (info->relocateable);
+ BFD_ASSERT (info->relocatable);
if (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
@@ -1443,7 +1443,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
lita_sec = symndx_to_section[RELOC_SECTION_LITA];
gp = _bfd_get_gp_value (output_bfd);
- if (! info->relocateable && lita_sec != NULL)
+ if (! info->relocatable && lita_sec != NULL)
{
struct ecoff_section_tdata *lita_sec_data;
@@ -1552,7 +1552,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
not otherwise used for anything. For some reason, the
address of the relocation does not appear to include the
section VMA, unlike the other relocation types. */
- if (info->relocateable)
+ if (info->relocatable)
H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr,
ext_rel->r_vaddr);
adjust_addrp = FALSE;
@@ -1705,7 +1705,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
if (h == (struct ecoff_link_hash_entry *) NULL)
abort ();
- if (! info->relocateable)
+ if (! info->relocatable)
{
if (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
@@ -1748,7 +1748,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
addend += r_vaddr;
- if (info->relocateable)
+ if (info->relocatable)
{
/* Adjust r_vaddr by the addend. */
H_PUT_64 (input_bfd, addend, ext_rel->r_vaddr);
@@ -1782,9 +1782,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
case ALPHA_R_OP_STORE:
/* Store a value from the reloc stack into a bitfield. If
- we are generating relocateable output, all we do is
+ we are generating relocatable output, all we do is
adjust the address of the reloc. */
- if (! info->relocateable)
+ if (! info->relocatable)
{
bfd_vma mask;
bfd_vma val;
@@ -1850,9 +1850,9 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
abort ();
}
- if (info->relocateable)
+ if (info->relocatable)
{
- /* We are generating relocateable output, and must
+ /* We are generating relocatable output, and must
convert the existing reloc. */
if (r_extern)
{
@@ -1975,7 +1975,7 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
}
}
- if (info->relocateable && adjust_addrp)
+ if (info->relocatable && adjust_addrp)
{
/* Change the address of the relocation. */
H_PUT_64 (input_bfd,
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index a88cdba..3655a30 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1,6 +1,6 @@
/* BFD back-end for ARM COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -1247,13 +1247,13 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
return FALSE;
/* The relocation_section function will skip pcrel_offset relocs
- when doing a relocateable link. However, we want to convert
+ when doing a relocatable link. However, we want to convert
ARM26 to ARM26D relocs if possible. We return a fake howto in
this case without pcrel_offset set, and adjust the addend to
compensate. */
if (rel->r_type == ARM_26
&& h != NULL
- && info->relocateable
+ && info->relocatable
&& (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
&& (h->root.u.def.section->output_section
@@ -1283,18 +1283,18 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
the next opcode's pc, so is off by one. */
#if 0 /* This appears to have been true for WINCE 2.0, but it is not
true for WINCE 3.0. */
- if (howto->pc_relative && !info->relocateable)
+ if (howto->pc_relative && !info->relocatable)
addend -= 8;
#endif
#endif
- /* If we are doing a relocateable link, then we can just ignore
+ /* If we are doing a relocatable link, then we can just ignore
a PC relative reloc that is pcrel_offset. It will already
- have the correct value. If this is not a relocateable link,
+ have the correct value. If this is not a relocatable link,
then we should ignore the symbol value. */
if (howto->pc_relative && howto->pcrel_offset)
{
- if (info->relocateable)
+ if (info->relocatable)
continue;
/* FIXME - it is not clear which targets need this next test
and which do not. It is known that it is needed for the
@@ -1341,7 +1341,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
stub generation to the final linker pass. If we fail to
verify that the name is defined, we'll try to build stubs
for an undefined name... */
- if (! info->relocateable
+ if (! info->relocatable
&& ( h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak))
{
@@ -1595,7 +1595,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
+ sec->output_offset);
}
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
@@ -1617,7 +1617,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
rstat = bfd_reloc_ok;
#ifndef ARM_WINCE
/* Only perform this fix during the final link, not a relocatable link. nickc@cygnus.com */
- else if (! info->relocateable
+ else if (! info->relocatable
&& howto->type == ARM_THUMB23)
{
/* This is pretty much a copy of what the default
@@ -1743,7 +1743,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
Is this the best way to fix up thumb addresses? krk@cygnus.com
Probably not, but it works, and if it works it don't need fixing! nickc@cygnus.com */
/* Only perform this fix during the final link, not a relocatable link. nickc@cygnus.com */
- if (! info->relocateable
+ if (! info->relocatable
&& (rel->r_type == ARM_32 || rel->r_type == ARM_RVA32))
{
/* Determine if we need to set the bottom bit of a relocated address
@@ -2023,7 +2023,7 @@ bfd_arm_get_bfd_for_interworking (abfd, info)
/* If we are only performing a partial link do not bother
getting a bfd to hold the glue. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
globals = coff_arm_hash_table (info);
@@ -2078,7 +2078,7 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
/* If we are only performing a partial link do not bother
to construct any glue. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* Here we have a bfd that is to be included on the link. We have a hook
@@ -2198,7 +2198,7 @@ bfd_arm_process_before_allocation (abfd, info, support_old_code)
#define coff_bfd_copy_private_bfd_data coff_arm_copy_private_bfd_data
#define coff_bfd_link_hash_table_create coff_arm_link_hash_table_create
-/* When doing a relocateable link, we want to convert ARM26 relocs
+/* When doing a relocatable link, we want to convert ARM26 relocs
into ARM26D relocs. */
static bfd_boolean
@@ -2613,9 +2613,9 @@ coff_arm_final_link_postscript (abfd, pfinfo)
#ifndef EXTRA_S_FLAGS
#ifdef COFF_WITH_PE
-#define EXTRA_S_FLAGS (SEC_LINK_ONCE | SEC_LINK_DUPLICATES)
+#define EXTRA_S_FLAGS (SEC_CODE | SEC_LINK_ONCE | SEC_LINK_DUPLICATES)
#else
-#define EXTRA_S_FLAGS 0
+#define EXTRA_S_FLAGS SEC_CODE
#endif
#endif
diff --git a/bfd/coff-h8300.c b/bfd/coff-h8300.c
index 9ef907b..bfe31c6 100644
--- a/bfd/coff-h8300.c
+++ b/bfd/coff-h8300.c
@@ -61,33 +61,33 @@ struct funcvec_hash_table
static struct bfd_hash_entry *
funcvec_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
static bfd_boolean
funcvec_hash_table_init
- PARAMS ((struct funcvec_hash_table *, bfd *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct funcvec_hash_table *, bfd *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *));
static bfd_reloc_status_type special
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **);
static int select_reloc
- PARAMS ((reloc_howto_type *));
+ (reloc_howto_type *);
static void rtype2howto
- PARAMS ((arelent *, struct internal_reloc *));
+ (arelent *, struct internal_reloc *);
static void reloc_processing
- PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *));
+ (arelent *, struct internal_reloc *, asymbol **, bfd *, asection *);
static bfd_boolean h8300_symbol_address_p
- PARAMS ((bfd *, asection *, bfd_vma));
+ (bfd *, asection *, bfd_vma);
static int h8300_reloc16_estimate
- PARAMS ((bfd *, asection *, arelent *, unsigned int,
- struct bfd_link_info *));
+ (bfd *, asection *, arelent *, unsigned int,
+ struct bfd_link_info *);
static void h8300_reloc16_extra_cases
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
- bfd_byte *, unsigned int *, unsigned int *));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
+ bfd_byte *, unsigned int *, unsigned int *);
static bfd_boolean h8300_bfd_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* To lookup a value in the function vector hash table. */
#define funcvec_hash_lookup(table, string, create, copy) \
@@ -111,8 +111,7 @@ struct h8300_coff_link_hash_table {
struct funcvec_hash_table *funcvec_hash_table;
};
-static struct bfd_link_hash_table *h8300_coff_link_hash_table_create
- PARAMS ((bfd *));
+static struct bfd_link_hash_table *h8300_coff_link_hash_table_create (bfd *);
/* Get the H8/300 COFF linker hash table from a link_info structure. */
@@ -123,10 +122,9 @@ static struct bfd_link_hash_table *h8300_coff_link_hash_table_create
a new entry is added to the funcvec hash table. */
static struct bfd_hash_entry *
-funcvec_hash_newfunc (entry, gen_table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *gen_table;
- const char *string;
+funcvec_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *gen_table,
+ const char *string)
{
struct funcvec_hash_entry *ret;
struct funcvec_hash_table *table;
@@ -171,12 +169,12 @@ funcvec_hash_newfunc (entry, gen_table, string)
/* Initialize the function vector hash table. */
static bfd_boolean
-funcvec_hash_table_init (table, abfd, newfunc)
- struct funcvec_hash_table *table;
- bfd *abfd;
- struct bfd_hash_entry *(*newfunc)
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
- const char *));
+funcvec_hash_table_init (struct funcvec_hash_table *table,
+ bfd *abfd,
+ struct bfd_hash_entry *(*newfunc)
+ (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *))
{
/* Initialize our local fields, then call the generic initialization
routine. */
@@ -190,8 +188,7 @@ funcvec_hash_table_init (table, abfd, newfunc)
without using static variables. */
static struct bfd_link_hash_table *
-h8300_coff_link_hash_table_create (abfd)
- bfd *abfd;
+h8300_coff_link_hash_table_create (bfd *abfd)
{
struct h8300_coff_link_hash_table *ret;
bfd_size_type amt = sizeof (struct h8300_coff_link_hash_table);
@@ -224,15 +221,13 @@ h8300_coff_link_hash_table_create (abfd)
the addend until the final link. */
static bfd_reloc_status_type
-special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
- error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry ATTRIBUTE_UNUSED;
- asymbol *symbol ATTRIBUTE_UNUSED;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section ATTRIBUTE_UNUSED;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+special (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *reloc_entry ATTRIBUTE_UNUSED,
+ asymbol *symbol ATTRIBUTE_UNUSED,
+ PTR data ATTRIBUTE_UNUSED,
+ asection *input_section ATTRIBUTE_UNUSED,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
if (output_bfd == (bfd *) NULL)
return bfd_reloc_continue;
@@ -294,8 +289,7 @@ static reloc_howto_type howto_table[] = {
dst->r_stuff[1] = 'C';
static int
-select_reloc (howto)
- reloc_howto_type *howto;
+select_reloc (reloc_howto_type *howto)
{
return howto->type;
}
@@ -303,9 +297,7 @@ select_reloc (howto)
/* Code to turn a r_type into a howto ptr, uses the above howto table. */
static void
-rtype2howto (internal, dst)
- arelent *internal;
- struct internal_reloc *dst;
+rtype2howto (arelent *internal, struct internal_reloc *dst)
{
switch (dst->r_type)
{
@@ -386,12 +378,8 @@ rtype2howto (internal, dst)
reloc_processing (relent, reloc, symbols, abfd, section)
static void
-reloc_processing (relent, reloc, symbols, abfd, section)
- arelent *relent;
- struct internal_reloc *reloc;
- asymbol **symbols;
- bfd *abfd;
- asection *section;
+reloc_processing (arelent *relent, struct internal_reloc *reloc,
+ asymbol **symbols, bfd *abfd, asection *section)
{
relent->address = reloc->r_vaddr;
rtype2howto (relent, reloc);
@@ -410,10 +398,7 @@ reloc_processing (relent, reloc, symbols, abfd, section)
}
static bfd_boolean
-h8300_symbol_address_p (abfd, input_section, address)
- bfd *abfd;
- asection *input_section;
- bfd_vma address;
+h8300_symbol_address_p (bfd *abfd, asection *input_section, bfd_vma address)
{
asymbol **s;
@@ -445,12 +430,8 @@ h8300_symbol_address_p (abfd, input_section, address)
in the howto table. This needs to be fixed. */
static int
-h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
- bfd *abfd;
- asection *input_section;
- arelent *reloc;
- unsigned int shrink;
- struct bfd_link_info *link_info;
+h8300_reloc16_estimate (bfd *abfd, asection *input_section, arelent *reloc,
+ unsigned int shrink, struct bfd_link_info *link_info)
{
bfd_vma value;
bfd_vma dot;
@@ -592,17 +573,11 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
case R_MOV16B1:
/* Get the address of the data referenced by this mov.b insn. */
value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
+ value = bfd_h8300_pad_address (abfd, value);
- /* The address is in 0xff00..0xffff inclusive on the h8300 or
- 0xffff00..0xffffff inclusive on the h8300h, then we can
- relax this mov.b */
- if ((bfd_get_mach (abfd) == bfd_mach_h8300
- && value >= 0xff00
- && value <= 0xffff)
- || ((bfd_get_mach (abfd) == bfd_mach_h8300h
- || bfd_get_mach (abfd) == bfd_mach_h8300s)
- && value >= 0xffff00
- && value <= 0xffffff))
+ /* If the address is in the top 256 bytes of the address space
+ then we can relax this instruction. */
+ if (value >= 0xffffff00u)
{
/* Change the reloc type. */
reloc->howto = reloc->howto + 1;
@@ -619,13 +594,9 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
case R_MOV24B1:
/* Get the address of the data referenced by this mov.b insn. */
value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
+ value = bfd_h8300_pad_address (abfd, value);
- /* The address is in 0xffff00..0xffffff inclusive on the h8300h,
- then we can relax this mov.b */
- if ((bfd_get_mach (abfd) == bfd_mach_h8300h
- || bfd_get_mach (abfd) == bfd_mach_h8300s)
- && value >= 0xffff00
- && value <= 0xffffff)
+ if (value >= 0xffffff00u)
{
/* Change the reloc type. */
reloc->howto = reloc->howto + 1;
@@ -646,10 +617,11 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
case R_MOVL1:
/* Get the address of the data referenced by this mov insn. */
value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
+ value = bfd_h8300_pad_address (abfd, value);
- /* If this address is in 0x0000..0x7fff inclusive or
- 0xff8000..0xffffff inclusive, then it can be relaxed. */
- if (value <= 0x7fff || value >= 0xff8000)
+ /* If the address is a sign-extended 16-bit value then we can
+ relax this instruction. */
+ if (value <= 0x7fff || value >= 0xffff8000u)
{
/* Change the reloc type. */
reloc->howto = howto_table + 17;
@@ -676,15 +648,10 @@ h8300_reloc16_estimate (abfd, input_section, reloc, shrink, link_info)
FIXME: Not all relocations check for overflow! */
static void
-h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
- dst_ptr)
- bfd *abfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- arelent *reloc;
- bfd_byte *data;
- unsigned int *src_ptr;
- unsigned int *dst_ptr;
+h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order, arelent *reloc,
+ bfd_byte *data, unsigned int *src_ptr,
+ unsigned int *dst_ptr)
{
unsigned int src_address = *src_ptr;
unsigned int dst_address = *dst_ptr;
@@ -761,26 +728,9 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
/* Get the address of the object referenced by this insn. */
value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
- /* Sanity check. */
- if (value <= 0xff
- || (value >= 0x0000ff00 && value <= 0x0000ffff)
- || (value >= 0x00ffff00 && value <= 0x00ffffff)
- || (value >= 0xffffff00 && value <= 0xffffffff))
- {
- /* Everything looks OK. Apply the relocation and update the
- src/dst address appropriately. */
- bfd_put_8 (abfd, value & 0xff, data + dst_address);
- dst_address += 1;
- src_address += 1;
- }
- else
- {
- if (! ((*link_info->callbacks->reloc_overflow)
- (link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
- reloc->howto->name, reloc->addend, input_section->owner,
- input_section, reloc->address)))
- abort ();
- }
+ bfd_put_8 (abfd, value & 0xff, data + dst_address);
+ dst_address += 1;
+ src_address += 1;
/* All done. */
break;
@@ -822,9 +772,10 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
absolute relocation. */
case R_MOVL2:
value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
+ value = bfd_h8300_pad_address (abfd, value);
/* Sanity check. */
- if (value <= 0x7fff || value >= 0xff8000)
+ if (value <= 0x7fff || value >= 0xffff8000u)
{
/* Insert the 16bit value into the proper location. */
bfd_put_16 (abfd, value, data + dst_address);
@@ -1221,9 +1172,7 @@ h8300_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
selected static symbols to the bfd linker hash table. */
static bfd_boolean
-h8300_bfd_link_add_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+h8300_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
asection *sec;
struct funcvec_hash_table *funcvec_hash_table;
diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c
index f083ae1..a24344a 100644
--- a/bfd/coff-i386.c
+++ b/bfd/coff-i386.c
@@ -1,6 +1,6 @@
/* BFD back-end for Intel 386 COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -56,7 +56,7 @@ static reloc_howto_type *coff_i386_reloc_type_lookup
section for a reference to a common symbol is the value itself plus
any desired offset. Ian Taylor, Cygnus Support. */
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
adjustments to the object file that are not done by the
bfd_perform_relocation function. This function is called by every
reloc type to make any required adjustments. */
@@ -103,7 +103,7 @@ coff_i386_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
{
/* For some reason bfd_perform_relocation always effectively
ignores the addend for a COFF target when producing
- relocateable output. This seems to be always wrong for 386
+ relocatable output. This seems to be always wrong for 386
COFF, so we handle the addend here instead. */
#ifdef COFF_WITH_PE
if (output_bfd == (bfd *) NULL)
@@ -386,7 +386,7 @@ static reloc_howto_type howto_table[] =
/* The PE relocate section routine. The only difference between this
and the regular routine is that we don't want to do anything for a
- relocateable link. */
+ relocatable link. */
static bfd_boolean coff_pe_i386_relocate_section
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
@@ -405,7 +405,7 @@ coff_pe_i386_relocate_section (output_bfd, info, input_bfd,
struct internal_syment *syms;
asection **sections;
{
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
@@ -470,7 +470,7 @@ coff_i386_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
#ifndef COFF_WITH_PE
/* If the output symbol is common (in which case this must be a
- relocateable link), we need to add in the final size of the
+ relocatable link), we need to add in the final size of the
common symbol. */
if (h != NULL && h->root.type == bfd_link_hash_common)
*addendp += h->root.u.c.size;
diff --git a/bfd/coff-i860.c b/bfd/coff-i860.c
index 767692d..1906615 100644
--- a/bfd/coff-i860.c
+++ b/bfd/coff-i860.c
@@ -1,5 +1,5 @@
/* BFD back-end for Intel 860 COFF files.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Created mostly by substituting "860" for "386" in coff-i386.c
Harry Dolan <dolan@ssd.intel.com>, October 1995
@@ -30,13 +30,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "libcoff.h"
-static bfd_reloc_status_type coff_i860_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static reloc_howto_type *coff_i860_rtype_to_howto
- PARAMS ((bfd *, asection *, struct internal_reloc *,
- struct coff_link_hash_entry *, struct internal_syment *,
- bfd_vma *));
-static const bfd_target * i3coff_object_p PARAMS ((bfd *));
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
/* The page size is a guess based on ELF. */
@@ -47,21 +40,19 @@ static const bfd_target * i3coff_object_p PARAMS ((bfd *));
section for a reference to a common symbol is the value itself plus
any desired offset. Ian Taylor, Cygnus Support. */
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
adjustments to the object file that are not done by the
bfd_perform_relocation function. This function is called by every
reloc type to make any required adjustments. */
static bfd_reloc_status_type
-coff_i860_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
- error_message)
- bfd *abfd;
- arelent *reloc_entry;
- asymbol *symbol;
- PTR data;
- asection *input_section ATTRIBUTE_UNUSED;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+coff_i860_reloc (bfd *abfd,
+ arelent *reloc_entry,
+ asymbol *symbol,
+ void *data,
+ asection *input_section ATTRIBUTE_UNUSED,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
symvalue diff;
@@ -87,7 +78,7 @@ coff_i860_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
{
/* For some reason bfd_perform_relocation always effectively
ignores the addend for a COFF target when producing
- relocateable output. This seems to be always wrong for 860
+ relocatable output. This seems to be always wrong for 860
COFF, so we handle the addend here instead. */
diff = reloc_entry->addend;
}
@@ -312,13 +303,12 @@ static reloc_howto_type howto_table[] =
#define coff_relocate_section _bfd_coff_generic_relocate_section
static reloc_howto_type *
-coff_i860_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *sec;
- struct internal_reloc *rel;
- struct coff_link_hash_entry *h;
- struct internal_syment *sym;
- bfd_vma *addendp;
+coff_i860_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *sec,
+ struct internal_reloc *rel,
+ struct coff_link_hash_entry *h,
+ struct internal_syment *sym,
+ bfd_vma *addendp)
{
reloc_howto_type *howto;
@@ -348,7 +338,7 @@ coff_i860_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
}
/* If the output symbol is common (in which case this must be a
- relocateable link), we need to add in the final size of the
+ relocatable link), we need to add in the final size of the
common symbol. */
if (h != NULL && h->root.type == bfd_link_hash_common)
*addendp += h->root.u.c.size;
@@ -361,8 +351,7 @@ coff_i860_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
#include "coffcode.h"
static const bfd_target *
-i3coff_object_p(a)
- bfd *a;
+i3coff_object_p(bfd *a)
{
return coff_object_p (a);
}
diff --git a/bfd/coff-i960.c b/bfd/coff-i960.c
index e4dc053..3a04753 100644
--- a/bfd/coff-i960.c
+++ b/bfd/coff-i960.c
@@ -1,6 +1,6 @@
/* BFD back-end for Intel 960 COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -180,12 +180,12 @@ optcall_callback (abfd, reloc_entry, symbol_in, data,
same object file. It appears to simply discard such relocs, rather
than adding their values into the object file. We handle this here
by converting all relocs against defined symbols into relocs
- against the section symbol, when generating a relocateable output
+ against the section symbol, when generating a relocatable output
file.
Note that this function is only called if we are not using the COFF
specific backend linker. It only does something when doing a
- relocateable link, which will almost certainly fail when not
+ relocatable link, which will almost certainly fail when not
generating COFF i960 output, so this function is actually no longer
useful. It was used before this target was converted to use the
COFF specific backend linker. */
@@ -205,7 +205,7 @@ coff_i960_relocate (abfd, reloc_entry, symbol, data, input_section,
if (output_bfd == NULL)
{
- /* Not generating relocateable output file. */
+ /* Not generating relocatable output file. */
return bfd_reloc_continue;
}
@@ -328,7 +328,7 @@ coff_i960_start_final_link (abfd, info)
asection *o;
bfd_byte *esym;
- if (! info->relocateable)
+ if (! info->relocatable)
return TRUE;
esym = (bfd_byte *) bfd_malloc (symesz);
@@ -455,7 +455,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
+ sec->output_section->vma
+ sec->output_offset);
}
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
@@ -466,7 +466,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
done = FALSE;
- if (howto->type == R_OPTCALL && ! info->relocateable && symndx != -1)
+ if (howto->type == R_OPTCALL && ! info->relocatable && symndx != -1)
{
int class;
diff --git a/bfd/coff-m68k.c b/bfd/coff-m68k.c
index a293b87..0947811 100644
--- a/bfd/coff-m68k.c
+++ b/bfd/coff-m68k.c
@@ -1,6 +1,6 @@
/* BFD back-end for Motorola 68000 COFF binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -250,7 +250,7 @@ m68kcoff_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
symbol is the value itself plus any desired offset. (taken from
work done by Ian Taylor, Cygnus Support, for I386 COFF). */
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
adjustments to the object file that are not done by the
bfd_perform_relocation function. This function is called by every
reloc type to make any required adjustments. */
@@ -290,7 +290,7 @@ m68kcoff_common_addend_special_fn (abfd, reloc_entry, symbol, data,
{
/* For some reason bfd_perform_relocation always effectively
ignores the addend for a COFF target when producing
- relocateable output. This seems to be always wrong for 386
+ relocatable output. This seems to be always wrong for 386
COFF, so we handle the addend here instead. */
diff = reloc_entry->addend;
}
@@ -409,7 +409,7 @@ m68kcoff_common_addend_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
}
/* If the output symbol is common (in which case this must be a
- relocateable link), we need to add in the final size of the
+ relocatable link), we need to add in the final size of the
common symbol. */
if (h != NULL && h->root.type == bfd_link_hash_common)
*addendp += h->root.u.c.size;
@@ -445,7 +445,7 @@ bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
bfd_byte *p;
bfd_size_type amt;
- BFD_ASSERT (! info->relocateable);
+ BFD_ASSERT (! info->relocatable);
*errmsg = NULL;
diff --git a/bfd/coff-m88k.c b/bfd/coff-m88k.c
index aa88b99..a8b2c55 100644
--- a/bfd/coff-m88k.c
+++ b/bfd/coff-m88k.c
@@ -1,6 +1,6 @@
/* BFD back-end for Motorola 88000 COFF "Binary Compatability Standard" files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
- 2001, 2002
+ 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -120,7 +120,7 @@ m88k_special_reloc (abfd, reloc_entry, symbol, data,
(unsigned char *) data + addr);
}
- /* If we are not producing relocateable output, return an error if
+ /* If we are not producing relocatable output, return an error if
the symbol is not defined. */
if (bfd_is_und_section (symbol->section) && output_bfd == (bfd *) NULL)
return bfd_reloc_undefined;
diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c
index c30f5aa..c4b0735 100644
--- a/bfd/coff-mcore.c
+++ b/bfd/coff-mcore.c
@@ -1,5 +1,5 @@
/* BFD back-end for Motorola MCore COFF/PE
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -388,10 +388,10 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean hihalf;
bfd_vma hihalf_val;
- /* If we are performing a relocateable link, we don't need to do a
+ /* If we are performing a relocatable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* Check if we have the same endianess */
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index 6bb1b9f..d6d8218 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1,6 +1,6 @@
/* BFD back-end for MIPS Extended-Coff files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Original version by Per Bothner.
Full support added by Ian Lance Taylor, ian@cygnus.com.
@@ -551,7 +551,7 @@ mips_adjust_reloc_out (abfd, rel, intern)
}
/* ECOFF relocs are either against external symbols, or against
- sections. If we are producing relocateable output, and the reloc
+ sections. If we are producing relocatable output, and the reloc
is against an external symbol, and nothing has given us any
additional addend, the resulting reloc will also be against the
same symbol. In such a case, we don't want to change anything
@@ -559,7 +559,7 @@ mips_adjust_reloc_out (abfd, rel, intern)
final link time. Rather than put special case code into
bfd_perform_relocation, all the reloc types use this howto
function. It just short circuits the reloc if producing
- relocateable output against an external symbol. */
+ relocatable output against an external symbol. */
static bfd_reloc_status_type
mips_generic_reloc (abfd,
@@ -758,7 +758,7 @@ mips_gprel_reloc (abfd,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_vma gp;
bfd_vma relocation;
unsigned long val;
@@ -777,27 +777,27 @@ mips_gprel_reloc (abfd,
}
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- if (bfd_is_und_section (symbol->section) && ! relocateable)
+ if (bfd_is_und_section (symbol->section) && ! relocatable)
return bfd_reloc_undefined;
/* We have to figure out the gp value, so that we can adjust the
symbol value correctly. We look up the symbol _gp in the output
BFD. If we can't find it, we're stuck. We cache it in the ECOFF
target data. We don't need to adjust the symbol value for an
- external symbol if we are producing relocateable output. */
+ external symbol if we are producing relocatable output. */
gp = _bfd_get_gp_value (output_bfd);
if (gp == 0
- && (! relocateable
+ && (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0))
{
- if (relocateable)
+ if (relocatable)
{
/* Make up a value. */
gp = symbol->section->output_section->vma + 0x4000;
@@ -861,16 +861,16 @@ mips_gprel_reloc (abfd,
val -= 0x10000;
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
insn = (insn &~ (unsigned) 0xffff) | (val & 0xffff);
bfd_put_32 (abfd, (bfd_vma) insn, (bfd_byte *) data + reloc_entry->address);
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
/* Make sure it fit in 16 bits. */
@@ -1046,7 +1046,7 @@ mips_rello_reloc (abfd,
}
/* bfd_perform_relocation does not handle pcrel_offset relocations
- correctly when generating a relocateable file, so handle them
+ correctly when generating a relocatable file, so handle them
directly here. */
if (output_bfd != (bfd *) NULL)
{
@@ -1413,7 +1413,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
and the GP value of OUTPUT_BFD (which is in GP). */
addend = ecoff_data (input_bfd)->gp - gp;
}
- else if (! info->relocateable
+ else if (! info->relocatable
|| h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
{
@@ -1432,7 +1432,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
/* This is a relocation against an undefined or common
symbol. The current addend in the instruction is
simply the desired offset into the symbol (normally
- zero). We are generating relocateable output, and we
+ zero). We are generating relocatable output, and we
aren't going to define this symbol, so we just leave
the instruction alone. */
addend = 0;
@@ -1446,7 +1446,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
if (offsets != NULL
&& offsets[i] != 0)
{
- BFD_ASSERT (! info->relocateable);
+ BFD_ASSERT (! info->relocatable);
BFD_ASSERT (int_rel.r_type == MIPS_R_PCREL16
|| int_rel.r_type == MIPS_R_RELHI
|| int_rel.r_type == MIPS_R_RELLO);
@@ -1524,9 +1524,9 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
}
}
- if (info->relocateable)
+ if (info->relocatable)
{
- /* We are generating relocateable output, and must convert
+ /* We are generating relocatable output, and must convert
the existing reloc. */
if (int_rel.r_extern)
{
@@ -2348,7 +2348,7 @@ bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
bfd_byte *p;
bfd_size_type amt;
- BFD_ASSERT (! info->relocateable);
+ BFD_ASSERT (! info->relocatable);
*errmsg = NULL;
diff --git a/bfd/coff-or32.c b/bfd/coff-or32.c
index 6bec813..b21cdf3 100644
--- a/bfd/coff-or32.c
+++ b/bfd/coff-or32.c
@@ -1,5 +1,5 @@
/* BFD back-end for OpenRISC 1000 COFF binaries.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
This file is part of BFD, the Binary File Descriptor library.
@@ -360,10 +360,10 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean hihalf;
bfd_vma hihalf_val;
- /* If we are performing a relocateable link, we don't need to do a
+ /* If we are performing a relocatable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
hihalf = FALSE;
diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c
index 067f2b6..cf54942 100644
--- a/bfd/coff-ppc.c
+++ b/bfd/coff-ppc.c
@@ -1088,10 +1088,10 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_vma relocation;
reloc_howto_type *howto = 0;
- /* If we are performing a relocateable link, we don't need to do a
+ /* If we are performing a relocatable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
hihalf = FALSE;
@@ -2325,7 +2325,7 @@ ppc_bfd_coff_final_link (abfd, info)
|| info->strip == strip_some)
o->lineno_count += sec->lineno_count;
- if (info->relocateable)
+ if (info->relocatable)
o->reloc_count += sec->reloc_count;
if (sec->_raw_size > max_contents_size)
@@ -2335,7 +2335,7 @@ ppc_bfd_coff_final_link (abfd, info)
if (sec->reloc_count > max_reloc_count)
max_reloc_count = sec->reloc_count;
}
- else if (info->relocateable
+ else if (info->relocatable
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
++o->reloc_count;
@@ -2350,9 +2350,9 @@ ppc_bfd_coff_final_link (abfd, info)
}
}
- /* If doing a relocateable link, allocate space for the pointers we
+ /* If doing a relocatable link, allocate space for the pointers we
need to keep. */
- if (info->relocateable)
+ if (info->relocatable)
{
unsigned int i;
@@ -2401,9 +2401,9 @@ ppc_bfd_coff_final_link (abfd, info)
Because of this problem, we also keep the relocs in
memory until the end of the link. This wastes memory,
- but only when doing a relocateable link, which is not the
+ but only when doing a relocatable link, which is not the
common case. */
- BFD_ASSERT (info->relocateable);
+ BFD_ASSERT (info->relocatable);
amt = o->reloc_count;
amt *= sizeof (struct internal_reloc);
finfo.section_info[o->target_index].relocs =
@@ -2455,7 +2455,7 @@ ppc_bfd_coff_final_link (abfd, info)
finfo.linenos = (bfd_byte *) bfd_malloc (amt);
finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
finfo.external_relocs = (bfd_byte *) bfd_malloc (max_reloc_count * relsz);
- if (! info->relocateable)
+ if (! info->relocatable)
{
amt = max_reloc_count * sizeof (struct internal_reloc);
finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt);
@@ -2467,7 +2467,7 @@ ppc_bfd_coff_final_link (abfd, info)
|| (finfo.linenos == NULL && max_lineno_count > 0)
|| (finfo.contents == NULL && max_contents_size > 0)
|| (finfo.external_relocs == NULL && max_reloc_count > 0)
- || (! info->relocateable
+ || (! info->relocatable
&& finfo.internal_relocs == NULL
&& max_reloc_count > 0))
goto error_return;
@@ -2602,7 +2602,7 @@ ppc_bfd_coff_final_link (abfd, info)
finfo.outsyms = NULL;
}
- if (info->relocateable)
+ if (info->relocatable)
{
/* Now that we have written out all the global symbols, we know
the symbol indices to use for relocs against them, and we can
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 87b80b6..8ba305c 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -1,5 +1,5 @@
/* BFD back-end for IBM RS/6000 "XCOFF" files.
- Copyright 1990-1999, 2000, 2001, 2002
+ Copyright 1990-1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
FIXME: Can someone provide a transliteration of this name into ASCII?
Using the following chars caused a compiler warning on HIUX (so I replaced
@@ -3426,7 +3426,7 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
}
else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT)))
- && ! info->relocateable)
+ && ! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index c9997db..6b1468e 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -706,7 +706,7 @@ sh_relax_section (abfd, sec, link_info, again)
*again = FALSE;
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0)
return TRUE;
@@ -2969,7 +2969,7 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
+ sec->output_section->vma
+ sec->output_offset);
}
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
@@ -3024,12 +3024,12 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
static bfd_byte *
sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *output_bfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
asection *input_section = link_order->u.indirect.section;
@@ -3040,12 +3040,12 @@ sh_coff_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| coff_section_data (input_bfd, input_section) == NULL
|| coff_section_data (input_bfd, input_section)->contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
memcpy (data, coff_section_data (input_bfd, input_section)->contents,
diff --git a/bfd/coff-tic80.c b/bfd/coff-tic80.c
index 7329b7b..c7ec9bd 100644
--- a/bfd/coff-tic80.c
+++ b/bfd/coff-tic80.c
@@ -1,5 +1,6 @@
/* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
- Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Written by Fred Fish (fnf@cygnus.com)
@@ -576,7 +577,7 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
+ sec->output_offset);
}
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index dcb96dd..c6b1803 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1,5 +1,5 @@
/* BFD back-end for IBM RS/6000 "XCOFF64" files.
- Copyright 2000, 2001, 2002
+ Copyright 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written Clinton Popetz.
Contributed by Cygnus Support.
@@ -1277,7 +1277,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
+ sec->output_offset);
}
else if ((0 == (h->flags & (XCOFF_DEF_DYNAMIC | XCOFF_IMPORT)))
- && ! info->relocateable)
+ && ! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index e9ad4df..3b39f09 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -3873,7 +3873,9 @@ coff_write_object_contents (abfd)
internal_f.f_flags |= IMAGE_FILE_DEBUG_STRIPPED;
#endif
-#ifndef COFF_WITH_PE
+#ifdef COFF_WITH_PE
+ internal_f.f_flags |= IMAGE_FILE_32BIT_MACHINE;
+#else
if (bfd_little_endian (abfd))
internal_f.f_flags |= F_AR32WR;
else
@@ -4405,6 +4407,13 @@ coff_slurp_line_table (abfd, asect)
amt = (bfd_size_type) bfd_coff_linesz (abfd) * asect->lineno_count;
native_lineno = (LINENO *) buy_and_read (abfd, asect->line_filepos, amt);
+ if (native_lineno == NULL)
+ {
+ (*_bfd_error_handler)
+ (_("%s: warning: line number table read failed"),
+ bfd_archive_filename (abfd));
+ return FALSE;
+ }
amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
lineno_cache = (alent *) bfd_alloc (abfd, amt);
if (lineno_cache == NULL)
@@ -4693,7 +4702,9 @@ coff_slurp_symbol_table (abfd)
case C_RSYM:
case C_RPSYM:
case C_STSYM:
+ case C_TCSYM:
case C_BCOMM:
+ case C_ECOML:
case C_ECOMM:
case C_DECL:
case C_ENTRY:
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 4e61388..59b32ed 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1,5 +1,5 @@
/* COFF specific linker code.
- Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
@@ -597,9 +597,9 @@ coff_link_add_symbols (abfd, info)
sym_hash += sym.n_numaux + 1;
}
- /* If this is a non-traditional, non-relocateable link, try to
+ /* If this is a non-traditional, non-relocatable link, try to
optimize the handling of any .stab/.stabstr sections. */
- if (! info->relocateable
+ if (! info->relocatable
&& ! info->traditional_format
&& info->hash->creator->flavour == bfd_get_flavour (abfd)
&& (info->strip != strip_all && info->strip != strip_debugger))
@@ -739,7 +739,7 @@ _bfd_coff_final_link (abfd, info)
|| info->strip == strip_some)
o->lineno_count += sec->lineno_count;
- if (info->relocateable)
+ if (info->relocatable)
o->reloc_count += sec->reloc_count;
if (sec->_raw_size > max_contents_size)
@@ -749,7 +749,7 @@ _bfd_coff_final_link (abfd, info)
if (sec->reloc_count > max_reloc_count)
max_reloc_count = sec->reloc_count;
}
- else if (info->relocateable
+ else if (info->relocatable
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
++o->reloc_count;
@@ -782,9 +782,9 @@ _bfd_coff_final_link (abfd, info)
}
}
- /* If doing a relocateable link, allocate space for the pointers we
+ /* If doing a relocatable link, allocate space for the pointers we
need to keep. */
- if (info->relocateable)
+ if (info->relocatable)
{
unsigned int i;
@@ -830,9 +830,9 @@ _bfd_coff_final_link (abfd, info)
Because of this problem, we also keep the relocs in
memory until the end of the link. This wastes memory,
- but only when doing a relocateable link, which is not the
+ but only when doing a relocatable link, which is not the
common case. */
- BFD_ASSERT (info->relocateable);
+ BFD_ASSERT (info->relocatable);
amt = o->reloc_count;
amt *= sizeof (struct internal_reloc);
finfo.section_info[o->target_index].relocs =
@@ -884,7 +884,7 @@ _bfd_coff_final_link (abfd, info)
finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
amt = max_reloc_count * relsz;
finfo.external_relocs = (bfd_byte *) bfd_malloc (amt);
- if (! info->relocateable)
+ if (! info->relocatable)
{
amt = max_reloc_count * sizeof (struct internal_reloc);
finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt);
@@ -896,7 +896,7 @@ _bfd_coff_final_link (abfd, info)
|| (finfo.linenos == NULL && max_lineno_count > 0)
|| (finfo.contents == NULL && max_contents_size > 0)
|| (finfo.external_relocs == NULL && max_reloc_count > 0)
- || (! info->relocateable
+ || (! info->relocatable
&& finfo.internal_relocs == NULL
&& max_reloc_count > 0))
goto error_return;
@@ -1033,7 +1033,7 @@ _bfd_coff_final_link (abfd, info)
finfo.outsyms = NULL;
}
- if (info->relocateable && max_output_reloc_count > 0)
+ if (info->relocatable && max_output_reloc_count > 0)
{
/* Now that we have written out all the global symbols, we know
the symbol indices to use for relocs against them, and we can
@@ -1334,8 +1334,8 @@ mark_relocs (finfo, input_bfd)
internal_relocs = _bfd_coff_read_internal_relocs
(input_bfd, a, FALSE,
finfo->external_relocs,
- finfo->info->relocateable,
- (finfo->info->relocateable
+ finfo->info->relocatable,
+ (finfo->info->relocatable
? (finfo->section_info[ a->output_section->target_index ].relocs + a->output_section->reloc_count)
: finfo->internal_relocs)
);
@@ -1430,7 +1430,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
going to be involved in the relocations */
if (( finfo->info->strip != strip_none
|| finfo->info->discard != discard_none)
- && finfo->info->relocateable)
+ && finfo->info->relocatable)
{
/* mark the symbol array as 'not-used' */
memset (indexp, 0, obj_raw_syment_count (input_bfd) * sizeof * indexp);
@@ -1477,7 +1477,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
relocation. */
if ((finfo->info->strip != strip_none
|| finfo->info->discard != discard_none)
- && finfo->info->relocateable)
+ && finfo->info->relocatable)
dont_skip_symbol = *indexp;
else
dont_skip_symbol = FALSE;
@@ -2356,8 +2356,8 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
target_index = o->output_section->target_index;
internal_relocs = (_bfd_coff_read_internal_relocs
(input_bfd, o, FALSE, finfo->external_relocs,
- finfo->info->relocateable,
- (finfo->info->relocateable
+ finfo->info->relocatable,
+ (finfo->info->relocatable
? (finfo->section_info[target_index].relocs
+ o->output_section->reloc_count)
: finfo->internal_relocs)));
@@ -2374,7 +2374,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
finfo->sec_ptrs))
return FALSE;
- if (finfo->info->relocateable)
+ if (finfo->info->relocatable)
{
bfd_vma offset;
struct internal_reloc *irelend;
@@ -2608,9 +2608,9 @@ _bfd_coff_write_global_sym (h, data)
/* When a weak symbol is not overriden by a strong one,
turn it into an external symbol when not building a
- shared or relocateable object. */
+ shared or relocatable object. */
if (! finfo->info->shared
- && ! finfo->info->relocateable
+ && ! finfo->info->relocatable
&& IS_WEAK_EXTERNAL (finfo->output_bfd, isym))
isym.n_sclass = C_EXT;
@@ -2666,7 +2666,7 @@ _bfd_coff_write_global_sym (h, data)
if (sec->reloc_count > 0xffff
&& (! obj_pe (output_bfd)
- || finfo->info->relocateable))
+ || finfo->info->relocatable))
(*_bfd_error_handler)
(_("%s: %s: reloc overflow: 0x%lx > 0xffff"),
bfd_get_filename (output_bfd),
@@ -2675,7 +2675,7 @@ _bfd_coff_write_global_sym (h, data)
if (sec->lineno_count > 0xffff
&& (! obj_pe (output_bfd)
- || finfo->info->relocateable))
+ || finfo->info->relocatable))
(*_bfd_error_handler)
(_("%s: warning: %s: line number overflow: 0x%lx > 0xffff"),
bfd_get_filename (output_bfd),
@@ -2938,13 +2938,13 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
if (howto == NULL)
return FALSE;
- /* If we are doing a relocateable link, then we can just ignore
+ /* If we are doing a relocatable link, then we can just ignore
a PC relative reloc that is pcrel_offset. It will already
- have the correct value. If this is not a relocateable link,
+ have the correct value. If this is not a relocatable link,
then we should ignore the symbol value. */
if (howto->pc_relative && howto->pcrel_offset)
{
- if (info->relocateable)
+ if (info->relocatable)
continue;
if (sym != NULL && sym->n_scnum != 0)
addend += sym->n_value;
@@ -2987,7 +2987,7 @@ _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd,
else if (h->root.type == bfd_link_hash_undefweak)
val = 0;
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/config.bfd b/bfd/config.bfd
index e1aa6b7..a149675 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -29,6 +29,20 @@ targ64_selvecs=
targ_cflags=
targ_underscore=no
+# Catch obsolete configurations.
+case $targ in
+ vax-*-vms* \
+ )
+ if test "x$enable_obsolete" != xyes; then
+ echo "*** Configuration $targ is obsolete." >&2
+ echo "*** Specify --enable-obsolete to build it anyway." >&2
+ echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
+ echo "*** unless a maintainer comes forward." >&2
+ exit 1
+ fi;;
+esac
+
+
targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
case "${targ_cpu}" in
alpha*) targ_archs=bfd_alpha_arch ;;
@@ -60,6 +74,7 @@ x86_64) targ_archs=bfd_i386_arch ;;
xscale*) targ_archs=bfd_arm_arch ;;
xtensa*) targ_archs=bfd_xtensa_arch ;;
z8k*) targ_archs=bfd_z8k_arch ;;
+am33_2.0) targ_archs=bfd_mn10300_arch ;;
*) targ_archs=bfd_${targ_cpu}_arch ;;
esac
@@ -116,10 +131,6 @@ case "${targ}" in
alpha*-*-*)
targ_defvec=ecoffalpha_little_vec
;;
- ia64*-*-aix*)
- targ_defvec=bfd_elf64_ia64_aix_little_vec
- targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec"
- ;;
ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
targ_defvec=bfd_elf64_ia64_little_vec
targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
@@ -134,6 +145,9 @@ case "${targ}" in
;;
#endif /* BFD64 */
+ am33_2.0-*-linux*)
+ targ_defvec=bfd_elf32_am33lin_vec
+ ;;
arc-*-elf*)
targ_defvec=bfd_elf32_littlearc_vec
targ_selvecs=bfd_elf32_bigarc_vec
@@ -151,6 +165,7 @@ case "${targ}" in
targ_defvec=armnetbsd_vec
targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
targ_underscore=yes
+ targ_cflags=-D__QNXTARGET__
;;
arm-*-nto* | nto*arm*)
targ_defvec=bfd_elf32_littlearm_vec
@@ -169,7 +184,7 @@ case "${targ}" in
targ_defvec=armpe_little_vec
targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
targ_underscore=no
- targ_cflags=-DARM_WINCE
+ targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
;;
arm-*-pe*)
targ_defvec=armpe_little_vec
@@ -830,6 +845,7 @@ case "${targ}" in
mn10300-*-*)
targ_defvec=bfd_elf32_mn10300_vec
+ targ_underscore=yes
;;
msp430-*-*)
diff --git a/bfd/configure b/bfd/configure
index 3b37998..8022523 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -6106,6 +6106,7 @@ do
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_efi_app_ia32_vec) tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
+ bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
@@ -6187,8 +6188,6 @@ do
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
@@ -6398,10 +6397,10 @@ case ${host64}-${target64}-${want64} in
if test -n "$GCC" ; then
bad_64bit_gcc=no;
echo $ac_n "checking for gcc version with buggy 64-bit support""... $ac_c" 1>&6
-echo "configure:6402: checking for gcc version with buggy 64-bit support" >&5
+echo "configure:6401: checking for gcc version with buggy 64-bit support" >&5
# Add more tests for gcc versions with non-working 64-bit support here.
cat > conftest.$ac_ext <<EOF
-#line 6405 "configure"
+#line 6404 "configure"
#include "confdefs.h"
:__GNUC__:__GNUC_MINOR__:__i386__:
EOF
@@ -6447,17 +6446,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6451: checking for $ac_hdr" >&5
+echo "configure:6450: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6456 "configure"
+#line 6455 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6486,12 +6485,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6490: checking for $ac_func" >&5
+echo "configure:6489: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6495 "configure"
+#line 6494 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6514,7 +6513,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6539,7 +6538,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6543: checking for working mmap" >&5
+echo "configure:6542: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6547,7 +6546,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 6551 "configure"
+#line 6550 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6687,7 +6686,7 @@ main()
}
EOF
-if { (eval echo configure:6691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -6712,12 +6711,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6716: checking for $ac_func" >&5
+echo "configure:6715: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6721 "configure"
+#line 6720 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6740,7 +6739,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
diff --git a/bfd/configure.host b/bfd/configure.host
index b690fb9..c9aa356 100644
--- a/bfd/configure.host
+++ b/bfd/configure.host
@@ -31,7 +31,6 @@ hppa*-*-bsd*) HDEFINES=-DHOST_HPPABSD ;;
hppa*-*-osf*) HDEFINES=-DHOST_HPPAOSF ;;
ia64-*-linux*) host64=true; HOST_64BIT_TYPE=long ;;
-ia64-*-aix*) host64=true; HOST_64BIT_TYPE=long ;;
ia64-*-hpux*) host64=true
HOST_64BIT_TYPE="long long";
HOST_U_64BIT_TYPE="unsigned long long";
diff --git a/bfd/configure.in b/bfd/configure.in
index 379b3ac..04ccf0a 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -568,6 +568,7 @@ do
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_efi_app_ia32_vec) tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
bfd_efi_app_ia64_vec) tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
+ bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
@@ -649,8 +650,6 @@ do
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
diff --git a/bfd/corefile.c b/bfd/corefile.c
index da9d4d7..8af4f45 100644
--- a/bfd/corefile.c
+++ b/bfd/corefile.c
@@ -1,5 +1,5 @@
/* Core file generic interface routines for BFD.
- Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002
+ Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -36,7 +36,7 @@ FUNCTION
bfd_core_file_failing_command
SYNOPSIS
- const char *bfd_core_file_failing_command(bfd *abfd);
+ const char *bfd_core_file_failing_command (bfd *abfd);
DESCRIPTION
Return a read-only string explaining which program was running
@@ -45,13 +45,13 @@ DESCRIPTION
*/
const char *
-bfd_core_file_failing_command (abfd)
- bfd *abfd;
+bfd_core_file_failing_command (bfd *abfd)
{
- if (abfd->format != bfd_core) {
- bfd_set_error (bfd_error_invalid_operation);
- return NULL;
- }
+ if (abfd->format != bfd_core)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return NULL;
+ }
return BFD_SEND (abfd, _core_file_failing_command, (abfd));
}
@@ -60,7 +60,7 @@ FUNCTION
bfd_core_file_failing_signal
SYNOPSIS
- int bfd_core_file_failing_signal(bfd *abfd);
+ int bfd_core_file_failing_signal (bfd *abfd);
DESCRIPTION
Returns the signal number which caused the core dump which
@@ -68,13 +68,13 @@ DESCRIPTION
*/
int
-bfd_core_file_failing_signal (abfd)
- bfd *abfd;
+bfd_core_file_failing_signal (bfd *abfd)
{
- if (abfd->format != bfd_core) {
- bfd_set_error (bfd_error_invalid_operation);
- return 0;
- }
+ if (abfd->format != bfd_core)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return 0;
+ }
return BFD_SEND (abfd, _core_file_failing_signal, (abfd));
}
@@ -84,22 +84,23 @@ FUNCTION
SYNOPSIS
bfd_boolean core_file_matches_executable_p
- (bfd *core_bfd, bfd *exec_bfd);
+ (bfd *core_bfd, bfd *exec_bfd);
DESCRIPTION
Return <<TRUE>> if the core file attached to @var{core_bfd}
was generated by a run of the executable file attached to
@var{exec_bfd}, <<FALSE>> otherwise.
*/
+
bfd_boolean
-core_file_matches_executable_p (core_bfd, exec_bfd)
- bfd *core_bfd, *exec_bfd;
+core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
{
- if ((core_bfd->format != bfd_core) || (exec_bfd->format != bfd_object)) {
- bfd_set_error (bfd_error_wrong_format);
- return FALSE;
- }
-
- return BFD_SEND (core_bfd, _core_file_matches_executable_p,
- (core_bfd, exec_bfd));
+ if (core_bfd->format != bfd_core || exec_bfd->format != bfd_object)
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return FALSE;
+ }
+
+ return BFD_SEND (core_bfd, _core_file_matches_executable_p,
+ (core_bfd, exec_bfd));
}
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index e1c77bf..1a4f4d7 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -24,14 +24,12 @@
#include "libbfd.h"
static bfd_boolean h8300_scan
- PARAMS ((const struct bfd_arch_info *, const char *));
+ (const struct bfd_arch_info *, const char *);
static const bfd_arch_info_type * compatible
- PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
+ (const bfd_arch_info_type *, const bfd_arch_info_type *);
static bfd_boolean
-h8300_scan (info, string)
- const struct bfd_arch_info *info;
- const char *string;
+h8300_scan (const struct bfd_arch_info *info, const char *string)
{
if (*string != 'h' && *string != 'H')
return FALSE;
@@ -101,9 +99,7 @@ h8300_scan (info, string)
info structure. */
static const bfd_arch_info_type *
-compatible (in, out)
- const bfd_arch_info_type *in;
- const bfd_arch_info_type *out;
+compatible (const bfd_arch_info_type *in, const bfd_arch_info_type *out)
{
/* It's really not a good idea to mix and match modes. */
if (in->arch != out->arch || in->mach != out->mach)
@@ -224,3 +220,38 @@ const bfd_arch_info_type bfd_h8300_arch =
h8300_scan,
&h8300h_info_struct
};
+
+/* Pad the given address to 32 bits, converting 16-bit and 24-bit
+ addresses into the values they would have had on a h8s target. */
+
+bfd_vma
+bfd_h8300_pad_address (bfd *abfd, bfd_vma address)
+{
+ /* Cope with bfd_vma's larger than 32 bits. */
+ address &= 0xffffffffu;
+
+ switch (bfd_get_mach (abfd))
+ {
+ case bfd_mach_h8300:
+ case bfd_mach_h8300hn:
+ case bfd_mach_h8300sn:
+ case bfd_mach_h8300sxn:
+ /* Sign extend a 16-bit address. */
+ if (address >= 0x8000)
+ return address | 0xffff0000u;
+ return address;
+
+ case bfd_mach_h8300h:
+ /* Sign extend a 24-bit address. */
+ if (address >= 0x800000)
+ return address | 0xff000000u;
+ return address;
+
+ case bfd_mach_h8300s:
+ case bfd_mach_h8300sx:
+ return address;
+
+ default:
+ abort ();
+ }
+}
diff --git a/bfd/cpu-ia64-opc.c b/bfd/cpu-ia64-opc.c
index 1025256..3cafb9f 100644
--- a/bfd/cpu-ia64-opc.c
+++ b/bfd/cpu-ia64-opc.c
@@ -161,8 +161,8 @@ static const char*
ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
ia64_insn *valuep, int scale)
{
- int i, bits = 0, total = 0, shift;
- BFD_HOST_64_BIT val = 0;
+ int i, bits = 0, total = 0;
+ BFD_HOST_64_BIT val = 0, sign;
for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
{
@@ -172,8 +172,8 @@ ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
total += bits;
}
/* sign extend: */
- shift = 8*sizeof (val) - total;
- val = (val << shift) >> shift;
+ sign = (BFD_HOST_64_BIT) 1 << (total - 1);
+ val = (val ^ sign) - sign;
*valuep = (val << scale);
return 0;
@@ -188,10 +188,7 @@ ins_imms (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
static const char*
ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
{
- if (value == (BFD_HOST_U_64_BIT) 0x100000000)
- value = 0;
- else
- value = (((BFD_HOST_64_BIT)value << 32) >> 32);
+ value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
return ins_imms_scaled (self, value, code, 0);
}
@@ -213,10 +210,7 @@ static const char*
ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value,
ia64_insn *code)
{
- if (value == (BFD_HOST_U_64_BIT) 0x100000000)
- value = 0;
- else
- value = (((BFD_HOST_64_BIT)value << 32) >> 32);
+ value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
--value;
return ins_imms_scaled (self, value, code, 0);
diff --git a/bfd/cpu-m10300.c b/bfd/cpu-m10300.c
index a67c48b..2de9cd1 100644
--- a/bfd/cpu-m10300.c
+++ b/bfd/cpu-m10300.c
@@ -21,6 +21,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "sysdep.h"
#include "libbfd.h"
+const bfd_arch_info_type bfd_am33_2_arch =
+ {
+ 32, /* 32 bits in a word */
+ 32, /* 32 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_mn10300,
+ 332,
+ "am33_2",
+ "am33-2",
+ 2,
+ FALSE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ 0,
+ };
+
const bfd_arch_info_type bfd_am33_arch =
{
32, /* 32 bits in a word */
@@ -34,7 +50,7 @@ const bfd_arch_info_type bfd_am33_arch =
FALSE,
bfd_default_compatible,
bfd_default_scan,
- 0,
+ &bfd_am33_2_arch,
};
const bfd_arch_info_type bfd_mn10300_arch =
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
index 13355c5..e64ee06 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -76,6 +76,7 @@ enum
I_mips5400,
I_mips5500,
I_mips6000,
+ I_mips7000,
I_mips8000,
I_mips10000,
I_mips12000,
@@ -106,6 +107,7 @@ static const bfd_arch_info_type arch_info_struct[] =
N (64, 64, bfd_mach_mips5400, "mips:5400", FALSE, NN(I_mips5400)),
N (64, 64, bfd_mach_mips5500, "mips:5500", FALSE, NN(I_mips5500)),
N (32, 32, bfd_mach_mips6000, "mips:6000", FALSE, NN(I_mips6000)),
+ N (64, 64, bfd_mach_mips7000, "mips:7000", FALSE, NN(I_mips7000)),
N (64, 64, bfd_mach_mips8000, "mips:8000", FALSE, NN(I_mips8000)),
N (64, 64, bfd_mach_mips10000,"mips:10000", FALSE, NN(I_mips10000)),
N (64, 64, bfd_mach_mips12000,"mips:12000", FALSE, NN(I_mips12000)),
diff --git a/bfd/cpu-msp430.c b/bfd/cpu-msp430.c
index c7d283b..54ed649 100644
--- a/bfd/cpu-msp430.c
+++ b/bfd/cpu-msp430.c
@@ -46,42 +46,44 @@ static const bfd_arch_info_type arch_info_struct[] =
/* msp430x11x. */
N (16, bfd_mach_msp11, "msp:11", FALSE, & arch_info_struct[1]),
+ /* msp430x11x1. */
+ N (16, bfd_mach_msp110, "msp:110", FALSE, & arch_info_struct[2]),
+
/* msp430x12x. */
- N (16, bfd_mach_msp12, "msp:12", FALSE, & arch_info_struct[2]),
+ N (16, bfd_mach_msp12, "msp:12", FALSE, & arch_info_struct[3]),
/* msp430x13x. */
- N (16, bfd_mach_msp13, "msp:13", FALSE, & arch_info_struct[3]),
+ N (16, bfd_mach_msp13, "msp:13", FALSE, & arch_info_struct[4]),
/* msp430x14x. */
- N (16, bfd_mach_msp14, "msp:14", FALSE, & arch_info_struct[4]),
+ N (16, bfd_mach_msp14, "msp:14", FALSE, & arch_info_struct[5]),
+
+ /* msp430x15x. */
+ N (16, bfd_mach_msp15, "msp:15", FALSE, & arch_info_struct[6]),
+
+ /* msp430x16x. */
+ N (16, bfd_mach_msp16, "msp:16", FALSE, & arch_info_struct[7]),
/* msp430x31x. */
- N (16, bfd_mach_msp31, "msp:31", FALSE, & arch_info_struct[5]),
+ N (16, bfd_mach_msp31, "msp:31", FALSE, & arch_info_struct[8]),
/* msp430x32x. */
- N (16, bfd_mach_msp32, "msp:32", FALSE, & arch_info_struct[6]),
+ N (16, bfd_mach_msp32, "msp:32", FALSE, & arch_info_struct[9]),
/* msp430x33x. */
- N (16, bfd_mach_msp33, "msp:33", FALSE, & arch_info_struct[7]),
+ N (16, bfd_mach_msp33, "msp:33", FALSE, & arch_info_struct[10]),
/* msp430x41x. */
- N (16, bfd_mach_msp41, "msp:41", FALSE, & arch_info_struct[8]),
+ N (16, bfd_mach_msp41, "msp:41", FALSE, & arch_info_struct[11]),
+
+ /* msp430x42x. */
+ N (16, bfd_mach_msp42, "msp:42", FALSE, & arch_info_struct[12]),
/* msp430x43x. */
- N (16, bfd_mach_msp43, "msp:43", FALSE, & arch_info_struct[9]),
+ N (16, bfd_mach_msp43, "msp:43", FALSE, & arch_info_struct[13]),
/* msp430x44x. */
- N (16, bfd_mach_msp43, "msp:44", FALSE, & arch_info_struct[10]),
-
- /* msp430x15x. */
- N (16, bfd_mach_msp15, "msp:15", FALSE, & arch_info_struct[11]),
-
- /* msp430x16x. */
- N (16, bfd_mach_msp16, "msp:16", FALSE, & arch_info_struct[12]),
-
- /* msp430x11x1. */
- N (16, bfd_mach_msp110, "msp:110", FALSE, NULL)
-
+ N (16, bfd_mach_msp43, "msp:44", FALSE, NULL)
};
const bfd_arch_info_type bfd_msp430_arch =
diff --git a/bfd/cpu-ns32k.c b/bfd/cpu-ns32k.c
index 1fe67d9..1a12b16 100644
--- a/bfd/cpu-ns32k.c
+++ b/bfd/cpu-ns32k.c
@@ -1,5 +1,5 @@
/* BFD support for the ns32k architecture.
- Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002
+ Copyright 1990, 1991, 1994, 1995, 1998, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Almost totally rewritten by Ian Dall from initial work
by Andrew Cagney.
@@ -182,7 +182,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
return bfd_reloc_ok;
}
- /* If we are not producing relocateable output, return an error if
+ /* If we are not producing relocatable output, return an error if
the symbol is not defined. An undefined weak symbol is
considered to have a value of zero (SVR4 ABI, p. 4-27). */
if (symbol->section == &bfd_und_section
@@ -236,7 +236,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
include the position of the location; for example, m88kbcs,
or ELF. For those targets, pcrel_offset is TRUE.
- If we are producing relocateable output, then we must ensure
+ If we are producing relocatable output, then we must ensure
that this reloc will be correctly computed when the final
relocation is done. If pcrel_offset is FALSE we want to wind
up with the negative of the location within the section,
@@ -245,7 +245,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
we do not want to adjust the existing addend at all.
FIXME: This seems logical to me, but for the case of
- producing relocateable output it is not what the code
+ producing relocatable output it is not what the code
actually does. I don't want to change it, because it seems
far too likely that something will break. */
relocation -=
@@ -297,7 +297,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
should not have any tests that depend upon the flavour. It's
seem like entirely the wrong place for such a thing. The
second obvious point is that the current code ignores the
- reloc addend when producing relocateable output for COFF.
+ reloc addend when producing relocatable output for COFF.
That's peculiar. In fact, I really have no idea what the
point of the line you want to remove is.
@@ -315,10 +315,10 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
(coff-i386 does subtract the old value, to be compatible with
existing coff-i386 targets, like SCO).
- So everything works fine when not producing relocateable
- output. When we are producing relocateable output, logically
+ So everything works fine when not producing relocatable
+ output. When we are producing relocatable output, logically
we should do exactly what we do when not producing
- relocateable output. Therefore, your patch is correct. In
+ relocatable output. Therefore, your patch is correct. In
fact, it should probably always just set reloc_entry->addend
to 0 for all cases, since it is, in fact, going to add the
value into the object file. This won't hurt the COFF code,
@@ -326,7 +326,7 @@ do_ns32k_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
to other formats (the thing to check for would be whether
any formats both use the addend and set partial_inplace).
- When I wanted to make coff-i386 produce relocateable output,
+ When I wanted to make coff-i386 produce relocatable output,
I ran into the problem that you are running into: I wanted
to remove that line. Rather than risk it, I made the
coff-i386 relocs use a special function; it's coff_i386_reloc
diff --git a/bfd/dep-in.sed b/bfd/dep-in.sed
index ce8b79b..90a2e6a 100644
--- a/bfd/dep-in.sed
+++ b/bfd/dep-in.sed
@@ -18,6 +18,7 @@ s! config.h!!g
s! \$(INCDIR)/fopen-[^ ]*\.h!!g
s! \$(INCDIR)/ansidecl\.h!!g
s! \$(INCDIR)/symcat\.h!!g
+s! \.\./intl/libintl\.h!!g
s/\\\n */ /g
diff --git a/bfd/doc/ChangeLog b/bfd/doc/ChangeLog
index b133991..d345d80 100644
--- a/bfd/doc/ChangeLog
+++ b/bfd/doc/ChangeLog
@@ -1,3 +1,13 @@
+2003-07-04 Josh Baratz <baratz@intersystems.com>
+
+ * Makefile.am (MKDOC rule): Add $(CFLAGS) in case it contains
+ CC_FOR_BUILD specific switches.
+ * Makefile.in: Regenerate.
+
+2003-06-29 Alan Modra <amodra@bigpond.net.au>
+
+ * chew.c (paramstuff): Don't emit PARAMS.
+
2003-02-12 Bob Wilson <bob.wilson@acm.org>
* bfd.texinfo: Fix quotes for texinfo. Make section title
diff --git a/bfd/doc/Makefile.am b/bfd/doc/Makefile.am
index 4202b8a..4aaa341 100644
--- a/bfd/doc/Makefile.am
+++ b/bfd/doc/Makefile.am
@@ -55,7 +55,7 @@ info_TEXINFOS = bfd.texinfo
MKDOC = chew$(EXEEXT_FOR_BUILD)
$(MKDOC): chew.o
- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS)
+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
chew.o: chew.c
$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index 1bca51e..667d658 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -469,7 +469,7 @@ mostlyclean distclean maintainer-clean
$(MKDOC): chew.o
- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS)
+ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
chew.o: chew.c
$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
diff --git a/bfd/doc/bfdint.texi b/bfd/doc/bfdint.texi
index 27375cd..4566731 100644
--- a/bfd/doc/bfdint.texi
+++ b/bfd/doc/bfdint.texi
@@ -1,6 +1,6 @@
\input texinfo
@c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
-@c 2000, 2001
+@c 2000, 2001, 2002, 2003
@c Free Software Foundation, Inc.
@setfilename bfdint.info
@@ -835,7 +835,7 @@ corresponding field in the target vector is named
@item _bfd_get_relocated_section_contents
Read the contents of a section and apply the relocation information.
-This handles both a final link and a relocateable link; in the latter
+This handles both a final link and a relocatable link; in the latter
case, it adjust the relocation information as well. This is called via
@samp{bfd_get_relocated_section_contents}. Most targets implement it by
calling @samp{bfd_generic_get_relocated_section_contents}.
@@ -1169,7 +1169,7 @@ allocate space in a different section and use the offset within that
section as the value to store. In the IEEE object file format,
relocations may involve arbitrary expressions.
-When doing a relocateable link, the linker may or may not have to do
+When doing a relocatable link, the linker may or may not have to do
anything with a relocation, depending upon the definition of the
relocation. Simple relocations generally do not require any special
action.
@@ -1240,9 +1240,9 @@ existing target, you need to do the following:
@itemize @bullet
@item
Make sure you clearly understand what the contents of the section should
-look like after assembly, after a relocateable link, and after a final
+look like after assembly, after a relocatable link, and after a final
link. Make sure you clearly understand the operations the linker must
-perform during a relocateable link and during a final link.
+perform during a relocatable link and during a final link.
@item
Write a howto structure for the relocation. The howto structure is
@@ -1257,7 +1257,7 @@ call @samp{bfd_install_relocation}, so your howto structure has to be
able to handle that. You may need to set the @samp{special_function}
field to handle assembly correctly. Be careful to ensure that any code
you write to handle the assembler will also work correctly when doing a
-relocateable link. For example, see @samp{bfd_elf_generic_reloc}.
+relocatable link. For example, see @samp{bfd_elf_generic_reloc}.
@item
Test the assembler. Consider the cases of relocation against an
@@ -1271,14 +1271,14 @@ If your target uses the new linker, which is recommended, add any
required handling to the target specific relocation function. In simple
cases this will just involve a call to @samp{_bfd_final_link_relocate}
or @samp{_bfd_relocate_contents}, depending upon the definition of the
-relocation and whether the link is relocateable or not.
+relocation and whether the link is relocatable or not.
@item
Test the linker. Test the case of a final link. If the relocation can
overflow, use a linker script to force an overflow and make sure the
-error is reported correctly. Test a relocateable link, whether the
-symbol is defined or undefined in the relocateable output. For both the
-final and relocateable link, test the case when the symbol is a common
+error is reported correctly. Test a relocatable link, whether the
+symbol is defined or undefined in the relocatable output. For both the
+final and relocatable link, test the case when the symbol is a common
symbol, when the symbol looked like a common symbol but became a defined
symbol, when the symbol is defined in a different object file, and when
the symbol is defined in the same object file.
@@ -1291,7 +1291,7 @@ thing for the relocation. You may need to set the
doing a link in which the output object file format is S-records.
@item
-Using the linker to generate relocateable output in a different object
+Using the linker to generate relocatable output in a different object
file format is impossible in the general case, so you generally don't
have to worry about that. The GNU linker makes sure to stop that from
happening when an input file in a different format has relocations.
@@ -1350,7 +1350,7 @@ howto structure. Some mechanism would be used to determine which type
of howto structure was being used by a particular format.
The new howto structure would clearly define the relocation behaviour in
-the case of an assembly, a relocateable link, and a final link. At
+the case of an assembly, a relocatable link, and a final link. At
least one special function would be defined as an escape, and it might
make sense to define more.
@@ -1566,7 +1566,7 @@ relocations. @samp{Rela} relocations will require more space in object
files (but not in executables, except when using dynamic linking).
However, this is outweighed by the simplicity of addend handling when
using @samp{Rela} relocations. With @samp{Rel} relocations, the addend
-must be stored in the section contents, which makes relocateable links
+must be stored in the section contents, which makes relocatable links
more complex.
For example, consider C code like @code{i = a[1000];} where @samp{a} is
@@ -1578,7 +1578,7 @@ relocations, that addend must be stored in the instructions themselves.
If you are adding support for a RISC chip which uses two or more
instructions to load an address, then the addend may not fit in a single
instruction, and will have to be somehow split among the instructions.
-This makes linking awkward, particularly when doing a relocateable link
+This makes linking awkward, particularly when doing a relocatable link
in which the addend may have to be updated. It can be done---the MIPS
ELF support does it---but it should be avoided when possible.
@@ -1645,7 +1645,7 @@ information, and modify the section contents according to the relocation
information. In simple cases, this is little more than a loop over the
relocations which computes the value of each relocation and calls
@samp{_bfd_final_link_relocate}. The function must check for a
-relocateable link, and in that case normally needs to do nothing other
+relocatable link, and in that case normally needs to do nothing other
than adjust the addend for relocations against a section symbol.
The complex cases generally have to do with dynamic linker support. GOT
diff --git a/bfd/doc/chew.c b/bfd/doc/chew.c
index bdf76e4..7c060da 100644
--- a/bfd/doc/chew.c
+++ b/bfd/doc/chew.c
@@ -1,6 +1,6 @@
/* chew
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
- 2002
+ 2002, 2003
Free Software Foundation, Inc.
Contributed by steve chamberlain @cygnus
@@ -494,8 +494,11 @@ paramstuff ()
string_type out;
init_string (&out);
+#define NO_PARAMS 1
+
/* Make sure that it's not already param'd or proto'd. */
- if (find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "("))
+ if (NO_PARAMS
+ || find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "("))
{
catstr (&out, tos);
}
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 4d9b3d4..021c1fe 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -95,8 +95,8 @@ static asection bfd_debug_section =
NULL, NULL, 0, 0, 0,
/* line_filepos, userdata, contents, lineno, lineno_count, */
0, NULL, NULL, NULL, 0,
- /* entsize, comdat, moving_line_filepos, */
- 0, NULL, 0,
+ /* entsize, comdat, kept_section, moving_line_filepos, */
+ 0, NULL, NULL, 0,
/* target_index, used_by_bfd, constructor_chain, owner, */
0, NULL, NULL, NULL,
/* symbol, */
@@ -4160,7 +4160,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
ecoff_link_write_external,
(PTR) &einfo);
- if (info->relocateable)
+ if (info->relocatable)
{
/* We need to make a pass over the link_orders to count up the
number of relocations we will need to output, so that we know
@@ -4190,7 +4190,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
bfd_ecoff_debug_free (handle, abfd, debug, &backend->debug_swap, info);
- if (info->relocateable)
+ if (info->relocatable)
{
/* Now reset the reloc_count field of the sections in the output
BFD to 0, so that we can use them to keep track of how many
@@ -4210,7 +4210,7 @@ _bfd_ecoff_bfd_final_link (abfd, info)
ecoff_data (abfd)->gp = (h->u.def.value
+ h->u.def.section->output_section->vma
+ h->u.def.section->output_offset);
- else if (info->relocateable)
+ else if (info->relocatable)
{
bfd_vma lo;
@@ -4608,11 +4608,11 @@ ecoff_indirect_link_order (output_bfd, info, output_section, link_order)
cooked_size))
goto error_return;
- /* If we are producing relocateable output, the relocs were
+ /* If we are producing relocatable output, the relocs were
modified, and we write them out now. We use the reloc_count
field of output_section to keep track of the number of relocs we
have output so far. */
- if (info->relocateable)
+ if (info->relocatable)
{
file_ptr pos = (output_section->rel_filepos
+ output_section->reloc_count * external_reloc_size);
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c
index b74f18a..89edae3 100644
--- a/bfd/ecofflink.c
+++ b/bfd/ecofflink.c
@@ -1,5 +1,5 @@
/* Routines to link ECOFF debugging information.
- Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002
+ Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
@@ -526,7 +526,7 @@ bfd_ecoff_debug_init (output_bfd, output_debug, output_swap, info)
ainfo->largest_file_shuffle = 0;
- if (! info->relocateable)
+ if (! info->relocatable)
{
if (! bfd_hash_table_init (&ainfo->str_hash.table, string_hash_newfunc))
return NULL;
@@ -559,7 +559,7 @@ bfd_ecoff_debug_free (handle, output_bfd, output_debug, output_swap, info)
bfd_hash_table_free (&ainfo->fdr_hash.table);
- if (! info->relocateable)
+ if (! info->relocatable)
bfd_hash_table_free (&ainfo->str_hash.table);
objalloc_free (ainfo->memory);
@@ -879,9 +879,9 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
/* If we are doing a final link, we hash all the strings in
the local symbol table together. This reduces the amount
of space required by debugging information. We don't do
- this when performing a relocateable link because it would
+ this when performing a relocatable link because it would
prevent us from easily merging different FDR's. */
- if (! info->relocateable)
+ if (! info->relocatable)
{
bfd_boolean ffilename;
const char *name;
@@ -958,7 +958,7 @@ bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap,
fdr.iauxBase = output_symhdr->iauxMax;
output_symhdr->iauxMax += fdr.caux;
}
- if (! info->relocateable)
+ if (! info->relocatable)
{
/* When are are hashing strings, we lie about the number of
@@ -1127,7 +1127,7 @@ ecoff_add_string (ainfo, info, debug, fdr, string)
symhdr = &debug->symbolic_header;
len = strlen (string);
- if (info->relocateable)
+ if (info->relocatable)
{
if (!add_memory_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end, (PTR) string,
len + 1))
@@ -1287,12 +1287,12 @@ bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug,
this interface, so that must be changed to do something else. */
bfd_boolean
-bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
+bfd_ecoff_debug_externals (abfd, debug, swap, relocatable, get_extr,
set_index)
bfd *abfd;
struct ecoff_debug_info *debug;
const struct ecoff_debug_swap *swap;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_boolean (*get_extr) PARAMS ((asymbol *, EXTR *));
void (*set_index) PARAMS ((asymbol *, bfd_size_type));
{
@@ -1317,7 +1317,7 @@ bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
/* If we're producing an executable, move common symbols into
bss. */
- if (! relocateable)
+ if (! relocatable)
{
if (esym.asym.sc == scCommon)
esym.asym.sc = scBss;
@@ -1694,7 +1694,7 @@ bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where)
/* The string table is written out from the hash table if this is a
final link. */
- if (info->relocateable)
+ if (info->relocatable)
{
BFD_ASSERT (ainfo->ss_hash == (struct string_hash_entry *) NULL);
if (! ecoff_write_shuffle (abfd, swap, ainfo->ss, space))
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index d397307..abbe377 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -33,20 +33,17 @@
#define NUM_SHDR_ENTRIES(shdr) ((shdr)->sh_size / (shdr)->sh_entsize)
/* If size isn't specified as 64 or 32, NAME macro should fail. */
-/* Do not "beautify" the CONCAT* macro args. Traditional C will not
- remove whitespace added here, and thus will fail to concatenate
- the tokens. */
#ifndef NAME
-#if ARCH_SIZE==64
-#define NAME(x,y) CONCAT4 (x,64,_,y)
+#if ARCH_SIZE == 64
+#define NAME(x, y) x ## 64 ## _ ## y
#endif
-#if ARCH_SIZE==32
-#define NAME(x,y) CONCAT4 (x,32,_,y)
+#if ARCH_SIZE == 32
+#define NAME(x, y) x ## 32 ## _ ## y
#endif
#endif
#ifndef NAME
-#define NAME(x,y) CONCAT4 (x,NOSIZE,_,y)
+#define NAME(x, y) x ## NOSIZE ## _ ## y
#endif
#define ElfNAME(X) NAME(Elf,X)
@@ -67,8 +64,8 @@ typedef struct
union
{
unsigned int hppa_arg_reloc;
- PTR mips_extr;
- PTR any;
+ void *mips_extr;
+ void *any;
}
tc_data;
@@ -118,11 +115,6 @@ struct elf_link_hash_entry
one. Otherwise it is NULL. */
struct elf_link_hash_entry *weakdef;
- /* If this symbol is used in the linker created sections, the processor
- specific backend uses this field to map the field into the offset
- from the beginning of the section. */
- struct elf_linker_section_pointers *linker_section_pointer;
-
/* Version information. */
union
{
@@ -216,23 +208,12 @@ struct elf_link_hash_entry
function symbols not defined in an app are set to their .plt entry,
it's necessary for shared libs to also reference the .plt even
though the symbol is really local to the shared lib. */
-#define SYMBOL_REFERENCES_LOCAL(INFO, H) \
- ((! (INFO)->shared \
- || (INFO)->symbolic \
- || (H)->dynindx == -1 \
- || ELF_ST_VISIBILITY ((H)->other) == STV_INTERNAL \
- || ELF_ST_VISIBILITY ((H)->other) == STV_HIDDEN \
- || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) \
- && ((H)->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
+#define SYMBOL_REFERENCES_LOCAL(INFO, H) \
+ _bfd_elf_symbol_refs_local_p (H, INFO, 0)
/* Will _calls_ to this symbol always call the version in this object? */
-#define SYMBOL_CALLS_LOCAL(INFO, H) \
- ((! (INFO)->shared \
- || (INFO)->symbolic \
- || (H)->dynindx == -1 \
- || ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT \
- || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) \
- && ((H)->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
+#define SYMBOL_CALLS_LOCAL(INFO, H) \
+ _bfd_elf_symbol_refs_local_p (H, INFO, 1)
/* Records local symbols to be emitted in the dynamic symbol table. */
@@ -381,10 +362,10 @@ struct elf_link_hash_table
struct elf_link_hash_entry *hgot;
/* A pointer to information used to link stabs in sections. */
- PTR stab_info;
+ void *stab_info;
/* A pointer to information used to merge SEC_MERGE sections. */
- PTR merge_info;
+ void *merge_info;
/* Used by eh_frame code when editing .eh_frame. */
struct eh_frame_hdr_info eh_info;
@@ -415,7 +396,7 @@ struct elf_link_hash_table
#define elf_link_hash_traverse(table, func, info) \
(bfd_link_hash_traverse \
(&(table)->root, \
- (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+ (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
(info)))
/* Get the ELF linker hash table from a link_info structure. */
@@ -455,43 +436,43 @@ struct elf_size_info {
unsigned char arch_size, log_file_align;
unsigned char elfclass, ev_current;
int (*write_out_phdrs)
- PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
- bfd_boolean (*write_shdrs_and_ehdr)
- PARAMS ((bfd *));
+ (bfd *, const Elf_Internal_Phdr *, unsigned int);
+ bfd_boolean
+ (*write_shdrs_and_ehdr) (bfd *);
void (*write_relocs)
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
void (*swap_symbol_in)
- PARAMS ((bfd *, const PTR, const PTR, Elf_Internal_Sym *));
+ (bfd *, const void *, const void *, Elf_Internal_Sym *);
void (*swap_symbol_out)
- PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
+ (bfd *, const Elf_Internal_Sym *, void *, void *);
bfd_boolean (*slurp_reloc_table)
- PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+ (bfd *, asection *, asymbol **, bfd_boolean);
long (*slurp_symbol_table)
- PARAMS ((bfd *, asymbol **, bfd_boolean));
+ (bfd *, asymbol **, bfd_boolean);
void (*swap_dyn_in)
- PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
+ (bfd *, const void *, Elf_Internal_Dyn *);
void (*swap_dyn_out)
- PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
+ (bfd *, const Elf_Internal_Dyn *, void *);
/* This function is called to swap in a REL relocation. If an
external relocation corresponds to more than one internal
relocation, then all relocations are swapped in at once. */
void (*swap_reloc_in)
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
/* This function is called to swap out a REL relocation. */
void (*swap_reloc_out)
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
/* This function is called to swap in a RELA relocation. If an
external relocation corresponds to more than one internal
relocation, then all relocations are swapped in at once. */
void (*swap_reloca_in)
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
/* This function is called to swap out a RELA relocation. */
void (*swap_reloca_out)
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
};
#define elf_symbol_from(ABFD,S) \
@@ -526,6 +507,17 @@ typedef enum {
ict_irix6
} irix_compat_t;
+/* Mapping of ELF section names and types. */
+struct bfd_elf_special_section
+{
+ const char *prefix;
+ size_t prefix_length;
+ const char *suffix;
+ size_t suffix_length;
+ int type;
+ int attributes;
+};
+
struct elf_backend_data
{
/* The architecture for this backend. */
@@ -540,12 +532,12 @@ struct elf_backend_data
/* A function to translate an ELF RELA relocation to a BFD arelent
structure. */
void (*elf_info_to_howto)
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
/* A function to translate an ELF REL relocation to a BFD arelent
structure. */
void (*elf_info_to_howto_rel)
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
/* A function to determine whether a symbol is global when
partitioning the symbol table into local and global symbols.
@@ -553,7 +545,7 @@ struct elf_backend_data
thing will be done. MIPS ELF, at least on the Irix 5, has
special requirements. */
bfd_boolean (*elf_backend_sym_is_global)
- PARAMS ((bfd *, asymbol *));
+ (bfd *, asymbol *);
/* The remaining functions are hooks which are called only if they
are not NULL. */
@@ -565,58 +557,58 @@ struct elf_backend_data
used with caution. If this returns FALSE, the check_format
routine will return a bfd_error_wrong_format error. */
bfd_boolean (*elf_backend_object_p)
- PARAMS ((bfd *));
+ (bfd *);
/* A function to do additional symbol processing when reading the
ELF symbol table. This is where any processor-specific special
section indices are handled. */
void (*elf_backend_symbol_processing)
- PARAMS ((bfd *, asymbol *));
+ (bfd *, asymbol *);
/* A function to do additional symbol processing after reading the
entire ELF symbol table. */
bfd_boolean (*elf_backend_symbol_table_processing)
- PARAMS ((bfd *, elf_symbol_type *, unsigned int));
+ (bfd *, elf_symbol_type *, unsigned int);
/* A function to set the type of the info field. Processor-specific
types should be handled here. */
int (*elf_backend_get_symbol_type)
- PARAMS (( Elf_Internal_Sym *, int));
+ (Elf_Internal_Sym *, int);
/* A function to do additional processing on the ELF section header
just before writing it out. This is used to set the flags and
type fields for some sections, or to actually write out data for
unusual sections. */
bfd_boolean (*elf_backend_section_processing)
- PARAMS ((bfd *, Elf_Internal_Shdr *));
+ (bfd *, Elf_Internal_Shdr *);
/* A function to handle unusual section types when creating BFD
sections from ELF sections. */
bfd_boolean (*elf_backend_section_from_shdr)
- PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+ (bfd *, Elf_Internal_Shdr *, const char *);
/* A function to convert machine dependent section header flags to
BFD internal section header flags. */
bfd_boolean (*elf_backend_section_flags)
- PARAMS ((flagword *, Elf_Internal_Shdr *));
+ (flagword *, Elf_Internal_Shdr *);
/* A function to handle unusual program segment types when creating BFD
sections from ELF program segments. */
bfd_boolean (*elf_backend_section_from_phdr)
- PARAMS ((bfd *, Elf_Internal_Phdr *, int));
+ (bfd *, Elf_Internal_Phdr *, int);
/* A function to set up the ELF section header for a BFD section in
preparation for writing it out. This is where the flags and type
fields are set for unusual sections. */
bfd_boolean (*elf_backend_fake_sections)
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+ (bfd *, Elf_Internal_Shdr *, asection *);
/* A function to get the ELF section index for a BFD section. If
this returns TRUE, the section was found. If it is a normal ELF
section, *RETVAL should be left unchanged. If it is not a normal
ELF section *RETVAL should be set to the SHN_xxxx index. */
bfd_boolean (*elf_backend_section_from_bfd_section)
- PARAMS ((bfd *, asection *, int *retval));
+ (bfd *, asection *, int *retval);
/* If this field is not NULL, it is called by the add_symbols phase
of a link just before adding a symbol to the global linker hash
@@ -627,15 +619,14 @@ struct elf_backend_data
indices, and must set at least *FLAGS and *SEC for each processor
dependent case; failure to do so will cause a link error. */
bfd_boolean (*elf_add_symbol_hook)
- PARAMS ((bfd *abfd, struct bfd_link_info *info,
- const Elf_Internal_Sym *, const char **name,
- flagword *flags, asection **sec, bfd_vma *value));
+ (bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *,
+ const char **name, flagword *flags, asection **sec, bfd_vma *value);
/* If this field is not NULL, it is called by the elf_link_output_sym
phase of a link for each symbol which will appear in the object file. */
bfd_boolean (*elf_backend_link_output_symbol_hook)
- PARAMS ((bfd *, struct bfd_link_info *info, const char *,
- Elf_Internal_Sym *, asection *));
+ (bfd *, struct bfd_link_info *info, const char *, Elf_Internal_Sym *,
+ asection *);
/* The CREATE_DYNAMIC_SECTIONS function is called by the ELF backend
linker the first time it encounters a dynamic object in the link.
@@ -646,7 +637,7 @@ struct elf_backend_data
desired. This function will normally create the .got and .plt
sections, but different backends have different requirements. */
bfd_boolean (*elf_backend_create_dynamic_sections)
- PARAMS ((bfd *abfd, struct bfd_link_info *info));
+ (bfd *abfd, struct bfd_link_info *info);
/* The CHECK_RELOCS function is called by the add_symbols phase of
the ELF backend linker. It is called once for each section with
@@ -659,8 +650,8 @@ struct elf_backend_data
actually uses Rel structures, the r_addend field will always be
zero. */
bfd_boolean (*check_relocs)
- PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o,
- const Elf_Internal_Rela *relocs));
+ (bfd *abfd, struct bfd_link_info *info, asection *o,
+ const Elf_Internal_Rela *relocs);
/* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend
linker for every symbol which is defined by a dynamic object and
@@ -675,14 +666,14 @@ struct elf_backend_data
entry to the .plt or .got or some such section, and setting the
symbol to point to that. */
bfd_boolean (*elf_backend_adjust_dynamic_symbol)
- PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h));
+ (struct bfd_link_info *info, struct elf_link_hash_entry *h);
/* The ALWAYS_SIZE_SECTIONS function is called by the backend linker
after all the linker input files have been seen but before the
section sizes have been set. This is called after
ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */
bfd_boolean (*elf_backend_always_size_sections)
- PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
+ (bfd *output_bfd, struct bfd_link_info *info);
/* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend
linker after all the linker input files have been seen but before
@@ -695,7 +686,7 @@ struct elf_backend_data
.interp section and any sections created by the
CREATE_DYNAMIC_SECTIONS entry point. */
bfd_boolean (*elf_backend_size_dynamic_sections)
- PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
+ (bfd *output_bfd, struct bfd_link_info *info);
/* The RELOCATE_SECTION function is called by the ELF backend linker
to handle the relocations for a section.
@@ -706,7 +697,7 @@ struct elf_backend_data
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -720,16 +711,15 @@ struct elf_backend_data
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
accordingly. */
bfd_boolean (*elf_backend_relocate_section)
- PARAMS ((bfd *output_bfd, struct bfd_link_info *info,
- bfd *input_bfd, asection *input_section, bfd_byte *contents,
- Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
- asection **local_sections));
+ (bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd,
+ asection *input_section, bfd_byte *contents, Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms, asection **local_sections);
/* The FINISH_DYNAMIC_SYMBOL function is called by the ELF backend
linker just before it writes a symbol out to the .dynsym section.
@@ -739,70 +729,70 @@ struct elf_backend_data
all .dynsym symbols, while ADJUST_DYNAMIC_SYMBOL is only called
on those symbols which are defined by a dynamic object. */
bfd_boolean (*elf_backend_finish_dynamic_symbol)
- PARAMS ((bfd *output_bfd, struct bfd_link_info *info,
- struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
+ (bfd *output_bfd, struct bfd_link_info *info,
+ struct elf_link_hash_entry *h, Elf_Internal_Sym *sym);
/* The FINISH_DYNAMIC_SECTIONS function is called by the ELF backend
linker just before it writes all the dynamic sections out to the
output file. The FINISH_DYNAMIC_SYMBOL will have been called on
all dynamic symbols. */
bfd_boolean (*elf_backend_finish_dynamic_sections)
- PARAMS ((bfd *output_bfd, struct bfd_link_info *info));
+ (bfd *output_bfd, struct bfd_link_info *info);
/* A function to do any beginning processing needed for the ELF file
before building the ELF headers and computing file positions. */
void (*elf_backend_begin_write_processing)
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* A function to do any final processing needed for the ELF file
before writing it out. The LINKER argument is TRUE if this BFD
was created by the ELF backend linker. */
void (*elf_backend_final_write_processing)
- PARAMS ((bfd *, bfd_boolean linker));
+ (bfd *, bfd_boolean linker);
/* This function is called by get_program_header_size. It should
return the number of additional program segments which this BFD
will need. It should return -1 on error. */
int (*elf_backend_additional_program_headers)
- PARAMS ((bfd *));
+ (bfd *);
/* This function is called to modify an existing segment map in a
backend specific fashion. */
bfd_boolean (*elf_backend_modify_segment_map)
- PARAMS ((bfd *));
+ (bfd *);
/* This function is called during section gc to discover the section a
particular relocation refers to. */
asection * (*gc_mark_hook)
- PARAMS ((asection *sec, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *h, Elf_Internal_Sym *));
+ (asection *sec, struct bfd_link_info *, Elf_Internal_Rela *,
+ struct elf_link_hash_entry *h, Elf_Internal_Sym *);
/* This function, if defined, is called during the sweep phase of gc
in order that a backend might update any data structures it might
be maintaining. */
bfd_boolean (*gc_sweep_hook)
- PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o,
- const Elf_Internal_Rela *relocs));
+ (bfd *abfd, struct bfd_link_info *info, asection *o,
+ const Elf_Internal_Rela *relocs);
/* This function, if defined, is called after the ELF headers have
been created. This allows for things like the OS and ABI versions
to be changed. */
void (*elf_backend_post_process_headers)
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* This function, if defined, prints a symbol to file and returns the
name of the symbol to be printed. It should return NULL to fall
back to default symbol printing. */
const char *(*elf_backend_print_symbol_all)
- PARAMS ((bfd *, PTR, asymbol *));
+ (bfd *, void *, asymbol *);
/* This function, if defined, is called after all local symbols and
global symbols converted to locals are emited into the symtab
section. It allows the backend to emit special global symbols
not handled in the hash table. */
bfd_boolean (*elf_backend_output_arch_syms)
- PARAMS ((bfd *, struct bfd_link_info *, PTR,
- bfd_boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *)));
+ (bfd *, struct bfd_link_info *, void *,
+ bfd_boolean (*) (void *, const char *, Elf_Internal_Sym *, asection *));
/* Copy any information related to dynamic linking from a pre-existing
symbol to a newly created symbol. Also called to copy flags and
@@ -810,66 +800,66 @@ struct elf_backend_data
newly created and plt/got refcounts and dynamic indices should not
be copied. */
void (*elf_backend_copy_indirect_symbol)
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
+ (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ struct elf_link_hash_entry *);
/* Modify any information related to dynamic linking such that the
symbol is not exported. */
void (*elf_backend_hide_symbol)
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
+ (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
/* Emit relocations. Overrides default routine for emitting relocs,
except during a relocatable link, or if all relocs are being emitted. */
bfd_boolean (*elf_backend_emit_relocs)
- PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *));
+ (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *);
/* Count relocations. Not called for relocatable links
or if all relocs are being preserved in the output. */
unsigned int (*elf_backend_count_relocs)
- PARAMS ((asection *, Elf_Internal_Rela *));
+ (asection *, Elf_Internal_Rela *);
/* This function, if defined, is called when an NT_PRSTATUS note is found
in a core file. */
bfd_boolean (*elf_backend_grok_prstatus)
- PARAMS ((bfd *, Elf_Internal_Note *));
+ (bfd *, Elf_Internal_Note *);
/* This function, if defined, is called when an NT_PSINFO or NT_PRPSINFO
note is found in a core file. */
bfd_boolean (*elf_backend_grok_psinfo)
- PARAMS ((bfd *, Elf_Internal_Note *));
+ (bfd *, Elf_Internal_Note *);
/* Functions to print VMAs. Special code to handle 64 bit ELF files. */
void (* elf_backend_sprintf_vma)
- PARAMS ((bfd *, char *, bfd_vma));
+ (bfd *, char *, bfd_vma);
void (* elf_backend_fprintf_vma)
- PARAMS ((bfd *, PTR, bfd_vma));
+ (bfd *, void *, bfd_vma);
/* This function returns class of a reloc type. */
enum elf_reloc_type_class (*elf_backend_reloc_type_class)
- PARAMS ((const Elf_Internal_Rela *));
+ (const Elf_Internal_Rela *);
/* This function, if defined, removes information about discarded functions
from other sections which mention them. */
bfd_boolean (*elf_backend_discard_info)
- PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *));
+ (bfd *, struct elf_reloc_cookie *, struct bfd_link_info *);
/* This function, if defined, signals that the function above has removed
the discarded relocations for this section. */
bfd_boolean (*elf_backend_ignore_discarded_relocs)
- PARAMS ((asection *));
+ (asection *);
/* This function, if defined, may write out the given section.
Returns TRUE if it did so and FALSE if the caller should. */
bfd_boolean (*elf_backend_write_section)
- PARAMS ((bfd *, asection *, bfd_byte *));
+ (bfd *, asection *, bfd_byte *);
/* The level of IRIX compatibility we're striving for.
MIPS ELF specific function. */
irix_compat_t (*elf_backend_mips_irix_compat)
- PARAMS ((bfd *));
+ (bfd *);
reloc_howto_type *(*elf_backend_mips_rtype_to_howto)
- PARAMS ((unsigned int, bfd_boolean));
+ (unsigned int, bfd_boolean);
/* The swapping table to use when dealing with ECOFF information.
Used for the MIPS ELF .mdebug section. */
@@ -878,8 +868,8 @@ struct elf_backend_data
/* This function implements `bfd_elf_bfd_from_remote_memory';
see elf.c, elfcode.h. */
bfd *(*elf_backend_bfd_from_remote_memory)
- PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)));
+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma vma, char *myaddr, int len));
/* Alternate EM_xxxx machine codes for this backend. */
int elf_machine_alt1;
@@ -887,6 +877,9 @@ struct elf_backend_data
const struct elf_size_info *s;
+ /* An array of target specific special section map. */
+ const struct bfd_elf_special_section *special_sections;
+
/* offset of the _GLOBAL_OFFSET_TABLE_ symbol from the start of the
.got section */
bfd_vma got_symbol_offset;
@@ -1000,7 +993,7 @@ struct bfd_elf_section_data
/* A pointer to a linked list tracking dynamic relocs copied for
local symbols. */
- PTR local_dynrel;
+ void *local_dynrel;
/* A pointer to the bfd section used for dynamic relocs. */
asection *sreloc;
@@ -1018,10 +1011,12 @@ struct bfd_elf_section_data
asection *next_in_group;
/* A pointer used for various section optimizations. */
- PTR sec_info;
+ void *sec_info;
};
#define elf_section_data(sec) ((struct bfd_elf_section_data*)sec->used_by_bfd)
+#define elf_section_type(sec) (elf_section_data(sec)->this_hdr.sh_type)
+#define elf_section_flags(sec) (elf_section_data(sec)->this_hdr.sh_flags)
#define elf_group_name(sec) (elf_section_data(sec)->group.name)
#define elf_group_id(sec) (elf_section_data(sec)->group.id)
#define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group)
@@ -1034,53 +1029,7 @@ struct bfd_elf_section_data
&& sec->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
#define get_elf_backend_data(abfd) \
- ((struct elf_backend_data *) (abfd)->xvec->backend_data)
-
-/* Enumeration to specify the special section. */
-typedef enum elf_linker_section_enum
-{
- LINKER_SECTION_UNKNOWN, /* not used */
- LINKER_SECTION_GOT, /* .got section for global offset pointers */
- LINKER_SECTION_PLT, /* .plt section for generated procedure stubs */
- LINKER_SECTION_SDATA, /* .sdata/.sbss section for PowerPC */
- LINKER_SECTION_SDATA2, /* .sdata2/.sbss2 section for PowerPC */
- LINKER_SECTION_MAX /* # of linker sections */
-} elf_linker_section_enum_t;
-
-/* Sections created by the linker. */
-
-typedef struct elf_linker_section
-{
- char *name; /* name of the section */
- char *rel_name; /* name of the associated .rel{,a}. section */
- char *bss_name; /* name of a related .bss section */
- char *sym_name; /* name of symbol to reference this section */
- asection *section; /* pointer to the section */
- asection *bss_section; /* pointer to the bss section associated with this */
- asection *rel_section; /* pointer to the relocations needed for this section */
- struct elf_link_hash_entry *sym_hash; /* pointer to the created symbol hash value */
- bfd_vma initial_size; /* initial size before any linker generated allocations */
- bfd_vma sym_offset; /* offset of symbol from beginning of section */
- bfd_vma hole_size; /* size of reserved address hole in allocation */
- bfd_vma hole_offset; /* current offset for the hole */
- bfd_vma max_hole_offset; /* maximum offset for the hole */
- elf_linker_section_enum_t which; /* which section this is */
- bfd_boolean hole_written_p; /* whether the hole has been initialized */
- unsigned int alignment; /* alignment for the section */
- flagword flags; /* flags to use to create the section */
-} elf_linker_section_t;
-
-/* Linked list of allocated pointer entries. This hangs off of the symbol lists, and
- provides allows us to return different pointers, based on different addend's. */
-
-typedef struct elf_linker_section_pointers
-{
- struct elf_linker_section_pointers *next; /* next allocated pointer for this symbol */
- bfd_vma offset; /* offset of pointer from beginning of section */
- bfd_vma addend; /* addend used */
- elf_linker_section_enum_t which; /* which linker section this is */
- bfd_boolean written_address_p; /* whether address was written yet */
-} elf_linker_section_pointers_t;
+ ((const struct elf_backend_data *) (abfd)->xvec->backend_data)
/* This struct is used to pass information to routines called via
elf_link_hash_traverse which must return failure. */
@@ -1151,12 +1100,6 @@ struct elf_obj_tdata
unsigned int symtab_shndx_section;
unsigned int dynversym_section, dynverdef_section, dynverref_section;
file_ptr next_file_pos;
-#if 0
- /* we don't need these inside bfd anymore, and I think
- these weren't used outside bfd. */
- void *prstatus; /* The raw /proc prstatus structure */
- void *prpsinfo; /* The raw /proc prpsinfo structure */
-#endif
bfd_vma gp; /* The gp value */
unsigned int gp_size; /* The gp size */
@@ -1189,10 +1132,6 @@ struct elf_obj_tdata
struct got_entry **ents;
} local_got;
- /* A mapping from local symbols to offsets into the various linker
- sections added. This is index by the symbol index. */
- elf_linker_section_pointers_t **linker_section_pointers;
-
/* The linker ELF emulation code needs to let the backend ELF linker
know what filename should be used for a dynamic object if the
dynamic object is found using a search. The emulation code then
@@ -1222,7 +1161,7 @@ struct elf_obj_tdata
bfd_size_type program_header_size;
/* Used by find_nearest_line entry point. */
- PTR line_info;
+ void *line_info;
/* Used by MIPS ELF find_nearest_line entry point. The structure
could be included directly in this one, but there's no point to
@@ -1234,7 +1173,7 @@ struct elf_obj_tdata
struct dwarf1_debug *dwarf1_find_line_info;
/* A place to stash dwarf2 info for this bfd. */
- PTR dwarf2_find_line_info;
+ void *dwarf2_find_line_info;
/* An array of stub sections indexed by symbol number, used by the
MIPS ELF linker. FIXME: We should figure out some way to only
@@ -1263,9 +1202,6 @@ struct elf_obj_tdata
/* Symbol version references to external objects. */
Elf_Internal_Verneed *verref;
- /* Linker sections that we are interested in. */
- struct elf_linker_section *linker_section[ (int)LINKER_SECTION_MAX ];
-
/* The Irix 5 support uses two virtual sections, which represent
text/data symbols defined in dynamic objects. */
asymbol *elf_data_symbol;
@@ -1297,406 +1233,381 @@ struct elf_obj_tdata
#define elf_local_got_refcounts(bfd) (elf_tdata(bfd) -> local_got.refcounts)
#define elf_local_got_offsets(bfd) (elf_tdata(bfd) -> local_got.offsets)
#define elf_local_got_ents(bfd) (elf_tdata(bfd) -> local_got.ents)
-#define elf_local_ptr_offsets(bfd) (elf_tdata(bfd) -> linker_section_pointers)
#define elf_dt_name(bfd) (elf_tdata(bfd) -> dt_name)
#define elf_dt_soname(bfd) (elf_tdata(bfd) -> dt_soname)
#define elf_bad_symtab(bfd) (elf_tdata(bfd) -> bad_symtab)
#define elf_flags_init(bfd) (elf_tdata(bfd) -> flags_init)
-#define elf_linker_section(bfd,n) (elf_tdata(bfd) -> linker_section[(int)n])
extern void _bfd_elf_swap_verdef_in
- PARAMS ((bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *));
+ (bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *);
extern void _bfd_elf_swap_verdef_out
- PARAMS ((bfd *, const Elf_Internal_Verdef *, Elf_External_Verdef *));
+ (bfd *, const Elf_Internal_Verdef *, Elf_External_Verdef *);
extern void _bfd_elf_swap_verdaux_in
- PARAMS ((bfd *, const Elf_External_Verdaux *, Elf_Internal_Verdaux *));
+ (bfd *, const Elf_External_Verdaux *, Elf_Internal_Verdaux *);
extern void _bfd_elf_swap_verdaux_out
- PARAMS ((bfd *, const Elf_Internal_Verdaux *, Elf_External_Verdaux *));
+ (bfd *, const Elf_Internal_Verdaux *, Elf_External_Verdaux *);
extern void _bfd_elf_swap_verneed_in
- PARAMS ((bfd *, const Elf_External_Verneed *, Elf_Internal_Verneed *));
+ (bfd *, const Elf_External_Verneed *, Elf_Internal_Verneed *);
extern void _bfd_elf_swap_verneed_out
- PARAMS ((bfd *, const Elf_Internal_Verneed *, Elf_External_Verneed *));
+ (bfd *, const Elf_Internal_Verneed *, Elf_External_Verneed *);
extern void _bfd_elf_swap_vernaux_in
- PARAMS ((bfd *, const Elf_External_Vernaux *, Elf_Internal_Vernaux *));
+ (bfd *, const Elf_External_Vernaux *, Elf_Internal_Vernaux *);
extern void _bfd_elf_swap_vernaux_out
- PARAMS ((bfd *, const Elf_Internal_Vernaux *, Elf_External_Vernaux *));
+ (bfd *, const Elf_Internal_Vernaux *, Elf_External_Vernaux *);
extern void _bfd_elf_swap_versym_in
- PARAMS ((bfd *, const Elf_External_Versym *, Elf_Internal_Versym *));
+ (bfd *, const Elf_External_Versym *, Elf_Internal_Versym *);
extern void _bfd_elf_swap_versym_out
- PARAMS ((bfd *, const Elf_Internal_Versym *, Elf_External_Versym *));
+ (bfd *, const Elf_Internal_Versym *, Elf_External_Versym *);
extern int _bfd_elf_section_from_bfd_section
- PARAMS ((bfd *, asection *));
+ (bfd *, asection *);
extern char *bfd_elf_string_from_elf_section
- PARAMS ((bfd *, unsigned, unsigned));
+ (bfd *, unsigned, unsigned);
extern char *bfd_elf_get_str_section
- PARAMS ((bfd *, unsigned));
+ (bfd *, unsigned);
extern Elf_Internal_Sym *bfd_elf_get_elf_syms
- PARAMS ((bfd *, Elf_Internal_Shdr *, size_t, size_t,
- Elf_Internal_Sym *, PTR, Elf_External_Sym_Shndx *));
+ (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
+ Elf_External_Sym_Shndx *);
extern const char *bfd_elf_local_sym_name
- PARAMS ((bfd *, Elf_Internal_Sym *));
+ (bfd *, Elf_Internal_Sym *);
extern bfd_boolean _bfd_elf_copy_private_bfd_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
extern bfd_boolean _bfd_elf_print_private_bfd_data
- PARAMS ((bfd *, PTR));
+ (bfd *, void *);
extern void bfd_elf_print_symbol
- PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type));
+ (bfd *, void *, asymbol *, bfd_print_symbol_type);
#define elf_string_from_elf_strtab(abfd, strindex) \
- bfd_elf_string_from_elf_section(abfd, elf_elfheader(abfd)->e_shstrndx, \
- strindex)
+ bfd_elf_string_from_elf_section (abfd, elf_elfheader(abfd)->e_shstrndx, \
+ strindex)
#define bfd_elf32_print_symbol bfd_elf_print_symbol
#define bfd_elf64_print_symbol bfd_elf_print_symbol
extern void _bfd_elf_sprintf_vma
- PARAMS ((bfd *, char *, bfd_vma));
+ (bfd *, char *, bfd_vma);
extern void _bfd_elf_fprintf_vma
- PARAMS ((bfd *, PTR, bfd_vma));
+ (bfd *, void *, bfd_vma);
extern enum elf_reloc_type_class _bfd_elf_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
+ (const Elf_Internal_Rela *);
extern bfd_vma _bfd_elf_rela_local_sym
- PARAMS ((bfd *, Elf_Internal_Sym *, asection *, Elf_Internal_Rela *));
+ (bfd *, Elf_Internal_Sym *, asection *, Elf_Internal_Rela *);
extern bfd_vma _bfd_elf_rel_local_sym
- PARAMS ((bfd *, Elf_Internal_Sym *, asection **, bfd_vma));
+ (bfd *, Elf_Internal_Sym *, asection **, bfd_vma);
extern bfd_vma _bfd_elf_section_offset
- PARAMS ((bfd *, struct bfd_link_info *, asection *, bfd_vma));
+ (bfd *, struct bfd_link_info *, asection *, bfd_vma);
extern unsigned long bfd_elf_hash
- PARAMS ((const char *));
+ (const char *);
extern bfd_reloc_status_type bfd_elf_generic_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
extern bfd_boolean bfd_elf_mkobject
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean bfd_elf_mkcorefile
- PARAMS ((bfd *));
+ (bfd *);
extern Elf_Internal_Shdr *bfd_elf_find_section
- PARAMS ((bfd *, char *));
+ (bfd *, char *);
extern bfd_boolean _bfd_elf_make_section_from_shdr
- PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+ (bfd *, Elf_Internal_Shdr *, const char *);
extern bfd_boolean _bfd_elf_make_section_from_phdr
- PARAMS ((bfd *, Elf_Internal_Phdr *, int, const char *));
+ (bfd *, Elf_Internal_Phdr *, int, const char *);
extern struct bfd_hash_entry *_bfd_elf_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
extern struct bfd_link_hash_table *_bfd_elf_link_hash_table_create
- PARAMS ((bfd *));
+ (bfd *);
extern void _bfd_elf_link_hash_copy_indirect
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
+ (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ struct elf_link_hash_entry *);
extern void _bfd_elf_link_hash_hide_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
+ (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
extern bfd_boolean _bfd_elf_link_hash_table_init
- PARAMS ((struct elf_link_hash_table *, bfd *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct elf_link_hash_table *, bfd *,
+ struct bfd_hash_entry *(*)
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
extern bfd_boolean _bfd_elf_slurp_version_tables
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean _bfd_elf_merge_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf_discard_group
- PARAMS ((bfd *, struct sec *));
+ (bfd *, struct sec *);
extern void bfd_elf_set_group_contents
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
extern void _bfd_elf_link_just_syms
- PARAMS ((asection *, struct bfd_link_info *));
+ (asection *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_copy_private_symbol_data
- PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
+ (bfd *, asymbol *, bfd *, asymbol *);
extern bfd_boolean _bfd_elf_copy_private_section_data
- PARAMS ((bfd *, asection *, bfd *, asection *));
+ (bfd *, asection *, bfd *, asection *);
extern bfd_boolean _bfd_elf_write_object_contents
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean _bfd_elf_write_corefile_contents
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean _bfd_elf_set_section_contents
- PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
extern long _bfd_elf_get_symtab_upper_bound
- PARAMS ((bfd *));
+ (bfd *);
extern long _bfd_elf_get_symtab
- PARAMS ((bfd *, asymbol **));
+ (bfd *, asymbol **);
extern long _bfd_elf_get_dynamic_symtab_upper_bound
- PARAMS ((bfd *));
+ (bfd *);
extern long _bfd_elf_canonicalize_dynamic_symtab
- PARAMS ((bfd *, asymbol **));
+ (bfd *, asymbol **);
extern long _bfd_elf_get_reloc_upper_bound
- PARAMS ((bfd *, sec_ptr));
+ (bfd *, sec_ptr);
extern long _bfd_elf_canonicalize_reloc
- PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+ (bfd *, sec_ptr, arelent **, asymbol **);
extern long _bfd_elf_get_dynamic_reloc_upper_bound
- PARAMS ((bfd *));
+ (bfd *);
extern long _bfd_elf_canonicalize_dynamic_reloc
- PARAMS ((bfd *, arelent **, asymbol **));
+ (bfd *, arelent **, asymbol **);
extern asymbol *_bfd_elf_make_empty_symbol
- PARAMS ((bfd *));
+ (bfd *);
extern void _bfd_elf_get_symbol_info
- PARAMS ((bfd *, asymbol *, symbol_info *));
+ (bfd *, asymbol *, symbol_info *);
extern bfd_boolean _bfd_elf_is_local_label_name
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
extern alent *_bfd_elf_get_lineno
- PARAMS ((bfd *, asymbol *));
+ (bfd *, asymbol *);
extern bfd_boolean _bfd_elf_set_arch_mach
- PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+ (bfd *, enum bfd_architecture, unsigned long);
extern bfd_boolean _bfd_elf_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *));
+ (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
+ unsigned int *);
#define _bfd_elf_read_minisymbols _bfd_generic_read_minisymbols
#define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
extern int _bfd_elf_sizeof_headers
- PARAMS ((bfd *, bfd_boolean));
+ (bfd *, bfd_boolean);
extern bfd_boolean _bfd_elf_new_section_hook
- PARAMS ((bfd *, asection *));
+ (bfd *, asection *);
extern bfd_boolean _bfd_elf_init_reloc_shdr
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean));
+ (bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean);
+extern bfd_boolean _bfd_elf_get_sec_type_attr
+ (bfd *, const char *, int *, int *);
/* If the target doesn't have reloc handling written yet: */
extern void _bfd_elf_no_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
extern bfd_boolean bfd_section_from_shdr
- PARAMS ((bfd *, unsigned int shindex));
+ (bfd *, unsigned int shindex);
extern bfd_boolean bfd_section_from_phdr
- PARAMS ((bfd *, Elf_Internal_Phdr *, int));
+ (bfd *, Elf_Internal_Phdr *, int);
extern int _bfd_elf_symbol_from_bfd_symbol
- PARAMS ((bfd *, asymbol **));
+ (bfd *, asymbol **);
extern asection *bfd_section_from_r_symndx
- PARAMS ((bfd *, struct sym_sec_cache *, asection *, unsigned long));
+ (bfd *, struct sym_sec_cache *, asection *, unsigned long);
extern asection *bfd_section_from_elf_index
- PARAMS ((bfd *, unsigned int));
+ (bfd *, unsigned int);
extern struct bfd_strtab_hash *_bfd_elf_stringtab_init
- PARAMS ((void));
+ (void);
extern struct elf_strtab_hash * _bfd_elf_strtab_init
- PARAMS ((void));
+ (void);
extern void _bfd_elf_strtab_free
- PARAMS ((struct elf_strtab_hash *));
+ (struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_add
- PARAMS ((struct elf_strtab_hash *, const char *, bfd_boolean));
+ (struct elf_strtab_hash *, const char *, bfd_boolean);
extern void _bfd_elf_strtab_addref
- PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+ (struct elf_strtab_hash *, bfd_size_type);
extern void _bfd_elf_strtab_delref
- PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+ (struct elf_strtab_hash *, bfd_size_type);
extern void _bfd_elf_strtab_clear_all_refs
- PARAMS ((struct elf_strtab_hash *));
+ (struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_size
- PARAMS ((struct elf_strtab_hash *));
+ (struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_offset
- PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+ (struct elf_strtab_hash *, bfd_size_type);
extern bfd_boolean _bfd_elf_strtab_emit
- PARAMS ((bfd *, struct elf_strtab_hash *));
+ (bfd *, struct elf_strtab_hash *);
extern void _bfd_elf_strtab_finalize
- PARAMS ((struct elf_strtab_hash *));
+ (struct elf_strtab_hash *);
extern bfd_boolean _bfd_elf_discard_section_eh_frame
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- bfd_boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *));
+ (bfd *, struct bfd_link_info *, asection *,
+ bfd_boolean (*) (bfd_vma, void *), struct elf_reloc_cookie *);
extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_vma _bfd_elf_eh_frame_section_offset
- PARAMS ((bfd *, asection *, bfd_vma));
+ (bfd *, asection *, bfd_vma);
extern bfd_boolean _bfd_elf_write_section_eh_frame
- PARAMS ((bfd *, struct bfd_link_info *, asection *, bfd_byte *));
+ (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
extern bfd_boolean _bfd_elf_write_section_eh_frame_hdr
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
extern bfd_boolean _bfd_elf_merge_symbol
- PARAMS ((bfd *, struct bfd_link_info *, const char *,
- Elf_Internal_Sym *, asection **, bfd_vma *,
- struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *,
- bfd_boolean *, bfd_boolean *, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
+ asection **, bfd_vma *, struct elf_link_hash_entry **, bfd_boolean *,
+ bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean);
extern bfd_boolean _bfd_elf_add_default_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- const char *, Elf_Internal_Sym *, asection **, bfd_vma *,
- bfd_boolean *, bfd_boolean, bfd_boolean));
+ (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+ const char *, Elf_Internal_Sym *, asection **, bfd_vma *,
+ bfd_boolean *, bfd_boolean, bfd_boolean);
extern bfd_boolean _bfd_elf_export_symbol
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
extern bfd_boolean _bfd_elf_link_find_version_dependencies
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
extern bfd_boolean _bfd_elf_link_assign_sym_version
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
extern bfd_boolean _bfd_elf_link_record_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+ (struct bfd_link_info *, struct elf_link_hash_entry *);
extern long _bfd_elf_link_lookup_local_dynindx
- PARAMS ((struct bfd_link_info *, bfd *, long));
+ (struct bfd_link_info *, bfd *, long);
extern bfd_boolean _bfd_elf_compute_section_file_positions
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void _bfd_elf_assign_file_positions_for_relocs
- PARAMS ((bfd *));
+ (bfd *);
extern file_ptr _bfd_elf_assign_file_position_for_section
- PARAMS ((Elf_Internal_Shdr *, file_ptr, bfd_boolean));
+ (Elf_Internal_Shdr *, file_ptr, bfd_boolean);
extern bfd_boolean _bfd_elf_validate_reloc
- PARAMS ((bfd *, arelent *));
+ (bfd *, arelent *);
extern bfd_boolean _bfd_elf_link_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf_create_got_section
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern unsigned long _bfd_elf_link_renumber_dynsyms
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elfcore_make_pseudosection
- PARAMS ((bfd *, char *, size_t, ufile_ptr));
+ (bfd *, char *, size_t, ufile_ptr);
extern char *_bfd_elfcore_strndup
- PARAMS ((bfd *, char *, size_t));
-
-extern elf_linker_section_t *_bfd_elf_create_linker_section
- PARAMS ((bfd *, struct bfd_link_info *, enum elf_linker_section_enum,
- elf_linker_section_t *));
-
-extern elf_linker_section_pointers_t *_bfd_elf_find_pointer_linker_section
- PARAMS ((elf_linker_section_pointers_t *, bfd_vma,
- elf_linker_section_enum_t));
-
-extern bfd_boolean bfd_elf32_create_pointer_linker_section
- PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
- struct elf_link_hash_entry *, const Elf_Internal_Rela *));
-
-extern bfd_vma bfd_elf32_finish_pointer_linker_section
- PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
- struct elf_link_hash_entry *, bfd_vma,
- const Elf_Internal_Rela *, int));
-
-extern bfd_boolean bfd_elf64_create_pointer_linker_section
- PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
- struct elf_link_hash_entry *, const Elf_Internal_Rela *));
-
-extern bfd_vma bfd_elf64_finish_pointer_linker_section
- PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
- struct elf_link_hash_entry *, bfd_vma,
- const Elf_Internal_Rela *, int));
-
-extern bfd_boolean _bfd_elf_make_linker_section_rela
- PARAMS ((bfd *, elf_linker_section_t *, int));
+ (bfd *, char *, size_t);
extern Elf_Internal_Rela *_bfd_elf_link_read_relocs
- PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean));
+ (bfd *, asection *, void *, Elf_Internal_Rela *, bfd_boolean);
extern bfd_boolean _bfd_elf_link_size_reloc_section
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+ (bfd *, Elf_Internal_Shdr *, asection *);
extern bfd_boolean _bfd_elf_link_output_relocs
- PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *));
+ (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *);
extern bfd_boolean _bfd_elf_fix_symbol_flags
- PARAMS ((struct elf_link_hash_entry *, struct elf_info_failed *));
+ (struct elf_link_hash_entry *, struct elf_info_failed *);
extern bfd_boolean _bfd_elf_adjust_dynamic_symbol
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
extern bfd_boolean _bfd_elf_link_sec_merge_syms
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
+
+extern bfd_boolean _bfd_elf_dynamic_symbol_p
+ (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean);
+
+extern bfd_boolean _bfd_elf_symbol_refs_local_p
+ (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean);
extern const bfd_target *bfd_elf32_object_p
- PARAMS ((bfd *));
+ (bfd *);
extern const bfd_target *bfd_elf32_core_file_p
- PARAMS ((bfd *));
+ (bfd *);
extern char *bfd_elf32_core_file_failing_command
- PARAMS ((bfd *));
+ (bfd *);
extern int bfd_elf32_core_file_failing_signal
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean bfd_elf32_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
extern bfd_boolean bfd_elf32_bfd_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf32_bfd_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void bfd_elf32_swap_symbol_in
- PARAMS ((bfd *, const PTR, const PTR, Elf_Internal_Sym *));
+ (bfd *, const void *, const void *, Elf_Internal_Sym *);
extern void bfd_elf32_swap_symbol_out
- PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
+ (bfd *, const Elf_Internal_Sym *, void *, void *);
extern void bfd_elf32_swap_reloc_in
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
extern void bfd_elf32_swap_reloc_out
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
extern void bfd_elf32_swap_reloca_in
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
extern void bfd_elf32_swap_reloca_out
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
extern void bfd_elf32_swap_phdr_in
- PARAMS ((bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *));
+ (bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *);
extern void bfd_elf32_swap_phdr_out
- PARAMS ((bfd *, const Elf_Internal_Phdr *, Elf32_External_Phdr *));
+ (bfd *, const Elf_Internal_Phdr *, Elf32_External_Phdr *);
extern void bfd_elf32_swap_dyn_in
- PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
+ (bfd *, const void *, Elf_Internal_Dyn *);
extern void bfd_elf32_swap_dyn_out
- PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
+ (bfd *, const Elf_Internal_Dyn *, void *);
extern long bfd_elf32_slurp_symbol_table
- PARAMS ((bfd *, asymbol **, bfd_boolean));
+ (bfd *, asymbol **, bfd_boolean);
extern bfd_boolean bfd_elf32_write_shdrs_and_ehdr
- PARAMS ((bfd *));
+ (bfd *);
extern int bfd_elf32_write_out_phdrs
- PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
+ (bfd *, const Elf_Internal_Phdr *, unsigned int);
extern void bfd_elf32_write_relocs
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
extern bfd_boolean bfd_elf32_slurp_reloc_table
- PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+ (bfd *, asection *, asymbol **, bfd_boolean);
extern bfd_boolean bfd_elf32_add_dynamic_entry
- PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
+ (struct bfd_link_info *, bfd_vma, bfd_vma);
extern const bfd_target *bfd_elf64_object_p
- PARAMS ((bfd *));
+ (bfd *);
extern const bfd_target *bfd_elf64_core_file_p
- PARAMS ((bfd *));
+ (bfd *);
extern char *bfd_elf64_core_file_failing_command
- PARAMS ((bfd *));
+ (bfd *);
extern int bfd_elf64_core_file_failing_signal
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean bfd_elf64_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
extern bfd_boolean bfd_elf64_bfd_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf64_bfd_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern void bfd_elf64_swap_symbol_in
- PARAMS ((bfd *, const PTR, const PTR, Elf_Internal_Sym *));
+ (bfd *, const void *, const void *, Elf_Internal_Sym *);
extern void bfd_elf64_swap_symbol_out
- PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR));
+ (bfd *, const Elf_Internal_Sym *, void *, void *);
extern void bfd_elf64_swap_reloc_in
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
extern void bfd_elf64_swap_reloc_out
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
extern void bfd_elf64_swap_reloca_in
- PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ (bfd *, const bfd_byte *, Elf_Internal_Rela *);
extern void bfd_elf64_swap_reloca_out
- PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ (bfd *, const Elf_Internal_Rela *, bfd_byte *);
extern void bfd_elf64_swap_phdr_in
- PARAMS ((bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *));
+ (bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *);
extern void bfd_elf64_swap_phdr_out
- PARAMS ((bfd *, const Elf_Internal_Phdr *, Elf64_External_Phdr *));
+ (bfd *, const Elf_Internal_Phdr *, Elf64_External_Phdr *);
extern void bfd_elf64_swap_dyn_in
- PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
+ (bfd *, const void *, Elf_Internal_Dyn *);
extern void bfd_elf64_swap_dyn_out
- PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR));
+ (bfd *, const Elf_Internal_Dyn *, void *);
extern long bfd_elf64_slurp_symbol_table
- PARAMS ((bfd *, asymbol **, bfd_boolean));
+ (bfd *, asymbol **, bfd_boolean);
extern bfd_boolean bfd_elf64_write_shdrs_and_ehdr
- PARAMS ((bfd *));
+ (bfd *);
extern int bfd_elf64_write_out_phdrs
- PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int));
+ (bfd *, const Elf_Internal_Phdr *, unsigned int);
extern void bfd_elf64_write_relocs
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
extern bfd_boolean bfd_elf64_slurp_reloc_table
- PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+ (bfd *, asection *, asymbol **, bfd_boolean);
extern bfd_boolean bfd_elf64_add_dynamic_entry
- PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
+ (struct bfd_link_info *, bfd_vma, bfd_vma);
#define bfd_elf32_link_record_dynamic_symbol \
_bfd_elf_link_record_dynamic_symbol
@@ -1704,71 +1615,127 @@ extern bfd_boolean bfd_elf64_add_dynamic_entry
_bfd_elf_link_record_dynamic_symbol
extern int elf_link_record_local_dynamic_symbol
- PARAMS ((struct bfd_link_info *, bfd *, long));
+ (struct bfd_link_info *, bfd *, long);
#define _bfd_elf32_link_record_local_dynamic_symbol \
elf_link_record_local_dynamic_symbol
#define _bfd_elf64_link_record_local_dynamic_symbol \
elf_link_record_local_dynamic_symbol
extern bfd_boolean _bfd_elf_close_and_cleanup
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn
- PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR,
- asection *, bfd *, char **));
+ (bfd *, arelent *, struct symbol_cache_entry *, void *,
+ asection *, bfd *, char **);
extern bfd_boolean _bfd_elf32_gc_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf32_gc_common_finalize_got_offsets
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf32_gc_common_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf32_gc_record_vtinherit
- PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
+ (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
extern bfd_boolean _bfd_elf32_gc_record_vtentry
- PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
+ (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
extern bfd_boolean _bfd_elf64_gc_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf64_gc_common_finalize_got_offsets
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf64_gc_common_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_elf64_gc_record_vtinherit
- PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
+ (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
extern bfd_boolean _bfd_elf64_gc_record_vtentry
- PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma));
+ (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
extern bfd_boolean _bfd_elf32_reloc_symbol_deleted_p
- PARAMS ((bfd_vma, PTR));
+ (bfd_vma, void *);
extern bfd_boolean _bfd_elf64_reloc_symbol_deleted_p
- PARAMS ((bfd_vma, PTR));
+ (bfd_vma, void *);
/* Exported interface for writing elf corefile notes. */
extern char *elfcore_write_note
- PARAMS ((bfd *, char *, int *, const char *, int, const PTR, int));
+ (bfd *, char *, int *, const char *, int, const void *, int);
extern char *elfcore_write_prpsinfo
- PARAMS ((bfd *, char *, int *, const char *, const char *));
+ (bfd *, char *, int *, const char *, const char *);
extern char *elfcore_write_prstatus
- PARAMS ((bfd *, char *, int *, long, int, const PTR));
+ (bfd *, char *, int *, long, int, const void *);
extern char * elfcore_write_pstatus
- PARAMS ((bfd *, char *, int *, long, int, const PTR));
+ (bfd *, char *, int *, long, int, const void *);
extern char *elfcore_write_prfpreg
- PARAMS ((bfd *, char *, int *, const PTR, int));
+ (bfd *, char *, int *, const void *, int);
extern char *elfcore_write_prxfpreg
- PARAMS ((bfd *, char *, int *, const PTR, int));
+ (bfd *, char *, int *, const void *, int);
extern char *elfcore_write_lwpstatus
- PARAMS ((bfd *, char *, int *, long, int, const PTR));
+ (bfd *, char *, int *, long, int, const void *);
extern bfd *_bfd_elf32_bfd_from_remote_memory
- PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma, char *, int)));
+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma, char *, int));
extern bfd *_bfd_elf64_bfd_from_remote_memory
- PARAMS ((bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
- int (*target_read_memory) (bfd_vma, char *, int)));
+ (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma, char *, int));
/* SH ELF specific routine. */
extern bfd_boolean _sh_elf_set_mach_from_flags
- PARAMS ((bfd *));
+ (bfd *);
+
+/* This macro is to avoid lots of duplicated code in the body
+ of xxx_relocate_section() in the various elfxx-xxxx.c files. */
+#define RELOC_FOR_GLOBAL_SYMBOL(h, sym_hashes, r_symndx, symtab_hdr, relocation, sec, unresolved_reloc, info, warned) \
+ do \
+ { \
+ /* It seems this can happen with erroneous or unsupported \
+ input (mixing a.out and elf in an archive, for example.) */ \
+ if (sym_hashes == NULL) \
+ return FALSE; \
+ \
+ h = sym_hashes[r_symndx - symtab_hdr->sh_info]; \
+ \
+ while (h->root.type == bfd_link_hash_indirect \
+ || h->root.type == bfd_link_hash_warning) \
+ h = (struct elf_link_hash_entry *) h->root.u.i.link; \
+ \
+ warned = FALSE; \
+ unresolved_reloc = FALSE; \
+ relocation = 0; \
+ if (h->root.type == bfd_link_hash_defined \
+ || h->root.type == bfd_link_hash_defweak) \
+ { \
+ sec = h->root.u.def.section; \
+ if (sec == NULL \
+ || sec->output_section == NULL) \
+ /* Set a flag that will be cleared later if we find a \
+ relocation value for this symbol. output_section \
+ is typically NULL for symbols satisfied by a shared \
+ library. */ \
+ unresolved_reloc = TRUE; \
+ else \
+ relocation = (h->root.u.def.value \
+ + sec->output_section->vma \
+ + sec->output_offset); \
+ } \
+ else if (h->root.type == bfd_link_hash_undefweak) \
+ ; \
+ else if (!info->executable \
+ && info->unresolved_syms_in_objects == RM_IGNORE \
+ && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT) \
+ ; \
+ else \
+ { \
+ if (! info->callbacks->undefined_symbol \
+ (info, h->root.root.string, input_bfd, \
+ input_section, rel->r_offset, \
+ ((info->shared && info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR) \
+ || (!info->shared && info->unresolved_syms_in_objects == RM_GENERATE_ERROR) \
+ || ELF_ST_VISIBILITY (h->other)) \
+ )) \
+ return FALSE; \
+ warned = TRUE; \
+ } \
+ } \
+ while (0)
#endif /* _LIBELF_H_ */
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 7d0b52b..c71129e 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -26,61 +26,44 @@
#define EH_FRAME_HDR_SIZE 8
-static bfd_vma read_unsigned_leb128
- PARAMS ((bfd *, char *, unsigned int *));
-static bfd_signed_vma read_signed_leb128
- PARAMS ((bfd *, char *, unsigned int *));
-static int get_DW_EH_PE_width
- PARAMS ((int, int));
-static bfd_vma read_value
- PARAMS ((bfd *, bfd_byte *, int, int));
-static void write_value
- PARAMS ((bfd *, bfd_byte *, bfd_vma, int));
-static int cie_compare
- PARAMS ((struct cie *, struct cie *));
-static int vma_compare
- PARAMS ((const PTR, const PTR));
-
/* Helper function for reading uleb128 encoded data. */
static bfd_vma
-read_unsigned_leb128 (abfd, buf, bytes_read_ptr)
- bfd *abfd ATTRIBUTE_UNUSED;
- char *buf;
- unsigned int *bytes_read_ptr;
+read_unsigned_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
+ char *buf,
+ unsigned int *bytes_read_ptr)
{
- bfd_vma result;
- unsigned int num_read;
- int shift;
+ bfd_vma result;
+ unsigned int num_read;
+ int shift;
unsigned char byte;
- result = 0;
- shift = 0;
+ result = 0;
+ shift = 0;
num_read = 0;
do
{
byte = bfd_get_8 (abfd, (bfd_byte *) buf);
- buf ++;
- num_read ++;
+ buf++;
+ num_read++;
result |= (((bfd_vma) byte & 0x7f) << shift);
shift += 7;
}
while (byte & 0x80);
- * bytes_read_ptr = num_read;
+ *bytes_read_ptr = num_read;
return result;
}
/* Helper function for reading sleb128 encoded data. */
static bfd_signed_vma
-read_signed_leb128 (abfd, buf, bytes_read_ptr)
- bfd *abfd ATTRIBUTE_UNUSED;
- char *buf;
- unsigned int * bytes_read_ptr;
+read_signed_leb128 (bfd *abfd ATTRIBUTE_UNUSED,
+ char *buf,
+ unsigned int * bytes_read_ptr)
{
- bfd_vma result;
- int shift;
- int num_read;
+ bfd_vma result;
+ int shift;
+ int num_read;
unsigned char byte;
result = 0;
@@ -97,7 +80,7 @@ read_signed_leb128 (abfd, buf, bytes_read_ptr)
while (byte & 0x80);
if (byte & 0x40)
result |= (((bfd_vma) -1) << (shift - 7)) << 7;
- * bytes_read_ptr = num_read;
+ *bytes_read_ptr = num_read;
return result;
}
@@ -120,8 +103,7 @@ while (0)
/* Return 0 if either encoding is variable width, or not yet known to bfd. */
static
-int get_DW_EH_PE_width (encoding, ptr_size)
- int encoding, ptr_size;
+int get_DW_EH_PE_width (int encoding, int ptr_size)
{
/* DW_EH_PE_ values of 0x60 and 0x70 weren't defined at the time .eh_frame
was added to bfd. */
@@ -146,11 +128,7 @@ int get_DW_EH_PE_width (encoding, ptr_size)
/* Read a width sized value from memory. */
static bfd_vma
-read_value (abfd, buf, width, is_signed)
- bfd *abfd;
- bfd_byte *buf;
- int width;
- int is_signed;
+read_value (bfd *abfd, bfd_byte *buf, int width, int is_signed)
{
bfd_vma value;
@@ -185,11 +163,7 @@ read_value (abfd, buf, width, is_signed)
/* Store a width sized value to memory. */
static void
-write_value (abfd, buf, value, width)
- bfd *abfd;
- bfd_byte *buf;
- bfd_vma value;
- int width;
+write_value (bfd *abfd, bfd_byte *buf, bfd_vma value, int width)
{
switch (width)
{
@@ -203,8 +177,7 @@ write_value (abfd, buf, value, width)
/* Return zero if C1 and C2 CIEs can be merged. */
static
-int cie_compare (c1, c2)
- struct cie *c1, *c2;
+int cie_compare (struct cie *c1, struct cie *c2)
{
if (c1->hdr.length == c2->hdr.length
&& c1->version == c2->version
@@ -218,8 +191,7 @@ int cie_compare (c1, c2)
&& c1->per_encoding == c2->per_encoding
&& c1->lsda_encoding == c2->lsda_encoding
&& c1->fde_encoding == c2->fde_encoding
- && (c1->initial_insn_length
- == c2->initial_insn_length)
+ && c1->initial_insn_length == c2->initial_insn_length
&& memcmp (c1->initial_instructions,
c2->initial_instructions,
c1->initial_insn_length) == 0)
@@ -234,13 +206,10 @@ int cie_compare (c1, c2)
deleted. */
bfd_boolean
-_bfd_elf_discard_section_eh_frame (abfd, info, sec,
- reloc_symbol_deleted_p, cookie)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- bfd_boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR));
- struct elf_reloc_cookie *cookie;
+_bfd_elf_discard_section_eh_frame
+ (bfd *abfd, struct bfd_link_info *info, asection *sec,
+ bfd_boolean (*reloc_symbol_deleted_p) (bfd_vma, void *),
+ struct elf_reloc_cookie *cookie)
{
bfd_byte *ehbuf = NULL, *buf;
bfd_byte *last_cie, *last_fde;
@@ -274,12 +243,11 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
/* Read the frame unwind information from abfd. */
- ehbuf = (bfd_byte *) bfd_malloc (sec->_raw_size);
+ ehbuf = bfd_malloc (sec->_raw_size);
if (ehbuf == NULL)
goto free_no_table;
- if (! bfd_get_section_contents (abfd, sec, ehbuf, (bfd_vma) 0,
- sec->_raw_size))
+ if (! bfd_get_section_contents (abfd, sec, ehbuf, 0, sec->_raw_size))
goto free_no_table;
if (sec->_raw_size >= 4
@@ -403,7 +371,7 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec,
in which case we can remove it provided we adjust
all FDEs. Also, it can be removed if we have removed
all FDEs using it. */
- if ((!info->relocateable
+ if ((!info->relocatable
&& cie_compare (&cie, &hdr_info->last_cie) == 0)
|| cie_usage_count == 0)
{
@@ -693,9 +661,7 @@ free_no_table:
input sections. It finalizes the size of .eh_frame_hdr section. */
bfd_boolean
-_bfd_elf_discard_section_eh_frame_hdr (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_discard_section_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info)
{
struct elf_link_hash_table *htab;
struct eh_frame_hdr_info *hdr_info;
@@ -723,8 +689,7 @@ _bfd_elf_discard_section_eh_frame_hdr (abfd, info)
since dynamic symbol table has been sized. */
bfd_boolean
-_bfd_elf_maybe_strip_eh_frame_hdr (info)
- struct bfd_link_info *info;
+_bfd_elf_maybe_strip_eh_frame_hdr (struct bfd_link_info *info)
{
asection *o;
bfd *abfd;
@@ -770,18 +735,16 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info)
or to offset with dynamic relocation which is no longer needed. */
bfd_vma
-_bfd_elf_eh_frame_section_offset (output_bfd, sec, offset)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- asection *sec;
- bfd_vma offset;
+_bfd_elf_eh_frame_section_offset (bfd *output_bfd ATTRIBUTE_UNUSED,
+ asection *sec,
+ bfd_vma offset)
{
struct eh_frame_sec_info *sec_info;
unsigned int lo, hi, mid;
if (sec->sec_info_type != ELF_INFO_TYPE_EH_FRAME)
return offset;
- sec_info = (struct eh_frame_sec_info *)
- elf_section_data (sec)->sec_info;
+ sec_info = elf_section_data (sec)->sec_info;
if (offset >= sec->_raw_size)
return offset - (sec->_cooked_size - sec->_raw_size);
@@ -830,11 +793,10 @@ _bfd_elf_eh_frame_section_offset (output_bfd, sec, offset)
contents. */
bfd_boolean
-_bfd_elf_write_section_eh_frame (abfd, info, sec, contents)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- bfd_byte *contents;
+_bfd_elf_write_section_eh_frame (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ bfd_byte *contents)
{
struct eh_frame_sec_info *sec_info;
struct elf_link_hash_table *htab;
@@ -849,12 +811,9 @@ _bfd_elf_write_section_eh_frame (abfd, info, sec, contents)
== ELFCLASS64) ? 8 : 4;
if (sec->sec_info_type != ELF_INFO_TYPE_EH_FRAME)
- return bfd_set_section_contents (abfd, sec->output_section,
- contents,
- (file_ptr) sec->output_offset,
- sec->_raw_size);
- sec_info = (struct eh_frame_sec_info *)
- elf_section_data (sec)->sec_info;
+ return bfd_set_section_contents (abfd, sec->output_section, contents,
+ sec->output_offset, sec->_raw_size);
+ sec_info = elf_section_data (sec)->sec_info;
htab = elf_hash_table (info);
hdr_info = &htab->eh_info;
if (hdr_info->table && hdr_info->array == NULL)
@@ -1079,12 +1038,10 @@ _bfd_elf_write_section_eh_frame (abfd, info, sec, contents)
VMA of FDE initial location. */
static int
-vma_compare (a, b)
- const PTR a;
- const PTR b;
+vma_compare (const void *a, const void *b)
{
- struct eh_frame_array_ent *p = (struct eh_frame_array_ent *) a;
- struct eh_frame_array_ent *q = (struct eh_frame_array_ent *) b;
+ const struct eh_frame_array_ent *p = a;
+ const struct eh_frame_array_ent *q = b;
if (p->initial_loc > q->initial_loc)
return 1;
if (p->initial_loc < q->initial_loc)
@@ -1115,9 +1072,7 @@ vma_compare (a, b)
sorted by increasing initial_loc). */
bfd_boolean
-_bfd_elf_write_section_eh_frame_hdr (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_write_section_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info)
{
struct elf_link_hash_table *htab;
struct eh_frame_hdr_info *hdr_info;
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index 5e4458c..bdd7a74 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -1,5 +1,5 @@
/* Common code for PA ELF implementations.
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -44,62 +44,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define elf_hppa_final_link elf32_hppa_final_link
#endif
-static void elf_hppa_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-
-static void elf_hppa_info_to_howto_rel
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-
-static reloc_howto_type * elf_hppa_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
-
-static bfd_boolean elf_hppa_is_local_label_name
- PARAMS ((bfd *, const char *));
-
-static bfd_boolean elf_hppa_fake_sections
- PARAMS ((bfd *abfd, Elf_Internal_Shdr *, asection *));
-
-static void elf_hppa_final_write_processing
- PARAMS ((bfd *, bfd_boolean));
-
-static int hppa_unwind_entry_compare
- PARAMS ((const PTR, const PTR));
-
-static bfd_boolean elf_hppa_sort_unwind
- PARAMS ((bfd *));
-
#if ARCH_SIZE == 64
-static bfd_boolean elf_hppa_add_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
-
-static bfd_boolean elf_hppa_unmark_useless_dynamic_symbols
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean elf_hppa_remark_useless_dynamic_symbols
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean elf_hppa_is_dynamic_loader_symbol
- PARAMS ((const char *));
-
-static void elf_hppa_record_segment_addrs
- PARAMS ((bfd *, asection *, PTR));
-
-static bfd_boolean elf_hppa_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static bfd_boolean elf_hppa_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
- bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-
static bfd_reloc_status_type elf_hppa_final_link_relocate
- PARAMS ((Elf_Internal_Rela *, bfd *, bfd *, asection *,
- bfd_byte *, bfd_vma, struct bfd_link_info *,
- asection *, struct elf_link_hash_entry *,
- struct elf64_hppa_dyn_hash_entry *));
+ (Elf_Internal_Rela *, bfd *, bfd *, asection *, bfd_byte *, bfd_vma,
+ struct bfd_link_info *, asection *, struct elf_link_hash_entry *,
+ struct elf64_hppa_dyn_hash_entry *);
static int elf_hppa_relocate_insn
- PARAMS ((int, int, unsigned int));
+ (int, int, unsigned int);
#endif
/* ELF/PA relocation howto entries. */
@@ -615,11 +567,10 @@ static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] =
format, and field selector. */
elf_hppa_reloc_type
-elf_hppa_reloc_final_type (abfd, base_type, format, field)
- bfd *abfd;
- elf_hppa_reloc_type base_type;
- int format;
- unsigned int field;
+elf_hppa_reloc_final_type (bfd *abfd,
+ elf_hppa_reloc_type base_type,
+ int format,
+ unsigned int field)
{
elf_hppa_reloc_type final_type = base_type;
@@ -884,26 +835,25 @@ elf_hppa_reloc_final_type (abfd, base_type, format, field)
relocation with modifications based on format and field. */
elf_hppa_reloc_type **
-_bfd_elf_hppa_gen_reloc_type (abfd, base_type, format, field, ignore, sym)
- bfd *abfd;
- elf_hppa_reloc_type base_type;
- int format;
- unsigned int field;
- int ignore ATTRIBUTE_UNUSED;
- asymbol *sym ATTRIBUTE_UNUSED;
+_bfd_elf_hppa_gen_reloc_type (bfd *abfd,
+ elf_hppa_reloc_type base_type,
+ int format,
+ unsigned int field,
+ int ignore ATTRIBUTE_UNUSED,
+ asymbol *sym ATTRIBUTE_UNUSED)
{
elf_hppa_reloc_type *finaltype;
elf_hppa_reloc_type **final_types;
bfd_size_type amt = sizeof (elf_hppa_reloc_type *) * 2;
/* Allocate slots for the BFD relocation. */
- final_types = (elf_hppa_reloc_type **) bfd_alloc (abfd, amt);
+ final_types = bfd_alloc (abfd, amt);
if (final_types == NULL)
return NULL;
/* Allocate space for the relocation itself. */
amt = sizeof (elf_hppa_reloc_type);
- finaltype = (elf_hppa_reloc_type *) bfd_alloc (abfd, amt);
+ finaltype = bfd_alloc (abfd, amt);
if (finaltype == NULL)
return NULL;
@@ -919,12 +869,11 @@ _bfd_elf_hppa_gen_reloc_type (abfd, base_type, format, field, ignore, sym)
/* Translate from an elf into field into a howto relocation pointer. */
static void
-elf_hppa_info_to_howto (abfd, bfd_reloc, elf_reloc)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *bfd_reloc;
- Elf_Internal_Rela *elf_reloc;
+elf_hppa_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *bfd_reloc,
+ Elf_Internal_Rela *elf_reloc)
{
- BFD_ASSERT (ELF_R_TYPE(elf_reloc->r_info)
+ BFD_ASSERT (ELF_R_TYPE (elf_reloc->r_info)
< (unsigned int) R_PARISC_UNIMPLEMENTED);
bfd_reloc->howto = &elf_hppa_howto_table[ELF_R_TYPE (elf_reloc->r_info)];
}
@@ -932,10 +881,9 @@ elf_hppa_info_to_howto (abfd, bfd_reloc, elf_reloc)
/* Translate from an elf into field into a howto relocation pointer. */
static void
-elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *bfd_reloc;
- Elf_Internal_Rela *elf_reloc;
+elf_hppa_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *bfd_reloc,
+ Elf_Internal_Rela *elf_reloc)
{
BFD_ASSERT (ELF_R_TYPE(elf_reloc->r_info)
< (unsigned int) R_PARISC_UNIMPLEMENTED);
@@ -946,9 +894,8 @@ elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
relocation for an ARCH machine. */
static reloc_howto_type *
-elf_hppa_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+elf_hppa_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
if ((int) code < (int) R_PARISC_UNIMPLEMENTED)
{
@@ -961,9 +908,7 @@ elf_hppa_reloc_type_lookup (abfd, code)
/* Return TRUE if SYM represents a local label symbol. */
static bfd_boolean
-elf_hppa_is_local_label_name (abfd, name)
- bfd *abfd ATTRIBUTE_UNUSED;
- const char *name;
+elf_hppa_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, const char *name)
{
if (name[0] == 'L' && name[1] == '$')
return 1;
@@ -974,12 +919,9 @@ elf_hppa_is_local_label_name (abfd, name)
section name, which is a hack, but ought to work. */
static bfd_boolean
-elf_hppa_fake_sections (abfd, hdr, sec)
- bfd *abfd;
- Elf_Internal_Shdr *hdr;
- asection *sec;
+elf_hppa_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
{
- register const char *name;
+ const char *name;
name = bfd_get_section_name (abfd, sec);
@@ -1017,9 +959,8 @@ elf_hppa_fake_sections (abfd, hdr, sec)
}
static void
-elf_hppa_final_write_processing (abfd, linker)
- bfd *abfd;
- bfd_boolean linker ATTRIBUTE_UNUSED;
+elf_hppa_final_write_processing (bfd *abfd,
+ bfd_boolean linker ATTRIBUTE_UNUSED)
{
int mach = bfd_get_mach (abfd);
@@ -1048,20 +989,18 @@ elf_hppa_final_write_processing (abfd, linker)
final link. */
static int
-hppa_unwind_entry_compare (a, b)
- const PTR a;
- const PTR b;
+hppa_unwind_entry_compare (const void *a, const void *b)
{
const bfd_byte *ap, *bp;
unsigned long av, bv;
- ap = (const bfd_byte *) a;
+ ap = a;
av = (unsigned long) ap[0] << 24;
av |= (unsigned long) ap[1] << 16;
av |= (unsigned long) ap[2] << 8;
av |= (unsigned long) ap[3];
- bp = (const bfd_byte *) b;
+ bp = b;
bv = (unsigned long) bp[0] << 24;
bv |= (unsigned long) bp[1] << 16;
bv |= (unsigned long) bp[2] << 8;
@@ -1070,8 +1009,7 @@ hppa_unwind_entry_compare (a, b)
return av < bv ? -1 : av > bv ? 1 : 0;
}
-static bfd_boolean elf_hppa_sort_unwind (abfd)
- bfd *abfd;
+static bfd_boolean elf_hppa_sort_unwind (bfd *abfd)
{
asection *s;
@@ -1108,14 +1046,13 @@ static bfd_boolean elf_hppa_sort_unwind (abfd)
indices, which we have to handle. */
static bfd_boolean
-elf_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- const Elf_Internal_Sym *sym;
- const char **namep ATTRIBUTE_UNUSED;
- flagword *flagsp ATTRIBUTE_UNUSED;
- asection **secp;
- bfd_vma *valp;
+elf_hppa_add_symbol_hook (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ const Elf_Internal_Sym *sym,
+ const char **namep ATTRIBUTE_UNUSED,
+ flagword *flagsp ATTRIBUTE_UNUSED,
+ asection **secp,
+ bfd_vma *valp)
{
int index = sym->st_shndx;
@@ -1138,11 +1075,10 @@ elf_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
}
static bfd_boolean
-elf_hppa_unmark_useless_dynamic_symbols (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_hppa_unmark_useless_dynamic_symbols (struct elf_link_hash_entry *h,
+ void *data)
{
- struct bfd_link_info *info = (struct bfd_link_info *)data;
+ struct bfd_link_info *info = data;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1159,9 +1095,9 @@ elf_hppa_unmark_useless_dynamic_symbols (h, data)
Ultimately we should have better controls over the generic ELF BFD
linker code. */
- if (! info->relocateable
+ if (! info->relocatable
&& ! (info->shared
- && !info->no_undefined)
+ && info->unresolved_syms_in_shared_libs == RM_IGNORE)
&& h->root.type == bfd_link_hash_undefined
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0)
@@ -1174,11 +1110,10 @@ elf_hppa_unmark_useless_dynamic_symbols (h, data)
}
static bfd_boolean
-elf_hppa_remark_useless_dynamic_symbols (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_hppa_remark_useless_dynamic_symbols (struct elf_link_hash_entry *h,
+ void *data)
{
- struct bfd_link_info *info = (struct bfd_link_info *)data;
+ struct bfd_link_info *info = data;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1195,9 +1130,9 @@ elf_hppa_remark_useless_dynamic_symbols (h, data)
Ultimately we should have better controls over the generic ELF BFD
linker code. */
- if (! info->relocateable
+ if (! info->relocatable
&& ! (info->shared
- && !info->no_undefined)
+ && info->unresolved_syms_in_shared_libs == RM_IGNORE)
&& h->root.type == bfd_link_hash_undefined
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0
@@ -1211,8 +1146,7 @@ elf_hppa_remark_useless_dynamic_symbols (h, data)
}
static bfd_boolean
-elf_hppa_is_dynamic_loader_symbol (name)
- const char * name;
+elf_hppa_is_dynamic_loader_symbol (const char *name)
{
return (! strcmp (name, "__CPU_REVISION")
|| ! strcmp (name, "__CPU_KEYBITS_1")
@@ -1229,15 +1163,14 @@ elf_hppa_is_dynamic_loader_symbol (name)
/* Record the lowest address for the data and text segments. */
static void
-elf_hppa_record_segment_addrs (abfd, section, data)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- PTR data;
+elf_hppa_record_segment_addrs (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section,
+ void *data)
{
struct elf64_hppa_link_hash_table *hppa_info;
bfd_vma value;
- hppa_info = (struct elf64_hppa_link_hash_table *)data;
+ hppa_info = data;
value = section->vma - section->filepos;
@@ -1258,14 +1191,12 @@ elf_hppa_record_segment_addrs (abfd, section, data)
fall back to the generic ELF final link routine. */
static bfd_boolean
-elf_hppa_final_link (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
{
bfd_boolean retval;
struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info);
- if (! info->relocateable)
+ if (! info->relocatable)
{
struct elf_link_hash_entry *gp;
bfd_vma gp_val;
@@ -1360,23 +1291,21 @@ elf_hppa_final_link (abfd, info)
/* Relocate an HPPA ELF section. */
static bfd_boolean
-elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf_hppa_relocate_section (bfd *output_bfd,
+ struct bfd_link_info *info,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
Elf_Internal_Shdr *symtab_hdr;
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
struct elf64_hppa_link_hash_table *hppa_info;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
hppa_info = elf64_hppa_hash_table (info);
@@ -1470,7 +1399,8 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
relocation = 0;
}
/* Allow undefined symbols in shared libraries. */
- else if (info->shared && !info->no_undefined
+ else if (info->shared
+ && info->unresolved_syms_in_shared_libs == RM_IGNORE
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
{
if (info->symbolic)
@@ -1491,12 +1421,25 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
(_("%s: warning: unresolvable relocation against symbol `%s' from %s section"),
bfd_archive_filename (input_bfd), h->root.root.string,
bfd_get_section_name (input_bfd, input_section));
- relocation = 0;
}
relocation = 0;
}
else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
+ {
+ dyn_name = get_dyn_name (input_section, h, rel,
+ &dynh_buf, &dynh_buflen);
+ dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
+ dyn_name, FALSE, FALSE);
+
+ if (dyn_h == NULL)
+ {
+ (*_bfd_error_handler)
+ (_("%s: warning: unresolvable relocation against symbol `%s' from %s section"),
+ bfd_archive_filename (input_bfd), h->root.root.string,
+ bfd_get_section_name (input_bfd, input_section));
+ }
+ relocation = 0;
+ }
else
{
/* Ignore dynamic loader defined symbols. */
@@ -1565,19 +1508,16 @@ elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
function. */
static bfd_reloc_status_type
-elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
- input_section, contents, value,
- info, sym_sec, h, dyn_h)
- Elf_Internal_Rela *rel;
- bfd *input_bfd;
- bfd *output_bfd;
- asection *input_section;
- bfd_byte *contents;
- bfd_vma value;
- struct bfd_link_info *info;
- asection *sym_sec;
- struct elf_link_hash_entry *h ATTRIBUTE_UNUSED;
- struct elf64_hppa_dyn_hash_entry *dyn_h;
+elf_hppa_final_link_relocate (Elf_Internal_Rela *rel,
+ bfd *input_bfd,
+ bfd *output_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ bfd_vma value,
+ struct bfd_link_info *info,
+ asection *sym_sec,
+ struct elf_link_hash_entry *h ATTRIBUTE_UNUSED,
+ struct elf64_hppa_dyn_hash_entry *dyn_h)
{
int insn;
bfd_vma offset = rel->r_offset;
@@ -2123,10 +2063,7 @@ elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
to insert the relocation into the given instruction. */
static int
-elf_hppa_relocate_insn (insn, sym_value, r_type)
- int insn;
- int sym_value;
- unsigned int r_type;
+elf_hppa_relocate_insn (int insn, int sym_value, unsigned int r_type)
{
switch (r_type)
{
diff --git a/bfd/elf-m10200.c b/bfd/elf-m10200.c
index c35adcb..09d7d99 100644
--- a/bfd/elf-m10200.c
+++ b/bfd/elf-m10200.c
@@ -343,7 +343,7 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
struct elf_link_hash_entry **sym_hashes;
Elf_Internal_Rela *rel, *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -512,10 +512,10 @@ mn10200_elf_relax_section (abfd, sec, link_info, again)
/* Assume nothing changes. */
*again = FALSE;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0)
@@ -1305,12 +1305,12 @@ mn10200_elf_symbol_address_p (abfd, sec, isym, addr)
static bfd_byte *
mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *output_bfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
Elf_Internal_Shdr *symtab_hdr;
@@ -1322,11 +1322,11 @@ mn10200_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index cad2b9c..dc25c38 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -26,7 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static bfd_reloc_status_type mn10300_elf_final_link_relocate
PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *,
- bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *,
+ bfd_vma, bfd_vma, bfd_vma,
+ struct elf_link_hash_entry *, unsigned long, struct bfd_link_info *,
asection *, int));
static bfd_boolean mn10300_elf_relocate_section
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
@@ -45,6 +46,25 @@ bfd_boolean _bfd_mn10300_elf_object_p
bfd_boolean _bfd_mn10300_elf_merge_private_bfd_data
PARAMS ((bfd *,bfd *));
+/* The mn10300 linker needs to keep track of the number of relocs that
+ it decides to copy in check_relocs for each symbol. This is so
+ that it can discard PC relative relocs if it doesn't need them when
+ linking with -Bsymbolic. We store the information in a field
+ extending the regular ELF linker hash table. */
+
+/* This structure keeps track of the number of PC relative relocs we
+ have copied for a given symbol. */
+
+struct elf_mn10300_pcrel_relocs_copied
+{
+ /* Next section. */
+ struct elf_mn10300_pcrel_relocs_copied * next;
+ /* A section in dynobj. */
+ asection * section;
+ /* Number of relocs copied in this section. */
+ bfd_size_type count;
+};
+
struct elf32_mn10300_link_hash_entry {
/* The basic elf link hash table entry. */
struct elf_link_hash_entry root;
@@ -70,6 +90,9 @@ struct elf32_mn10300_link_hash_entry {
add it to the hash table to avoid computing it over and over. */
unsigned char movm_stack_size;
+ /* Number of PC relative relocs copied for this symbol. */
+ struct elf_mn10300_pcrel_relocs_copied * pcrel_relocs_copied;
+
/* When set, convert all "call" instructions to this target into "calls"
instructions. */
#define MN10300_CONVERT_CALL_TO_CALLS 0x1
@@ -137,6 +160,23 @@ static void compute_function_info
PARAMS ((bfd *, struct elf32_mn10300_link_hash_entry *,
bfd_vma, unsigned char *));
+static bfd_boolean _bfd_mn10300_elf_create_got_section
+ PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean _bfd_mn10300_elf_create_dynamic_sections
+ PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean _bfd_mn10300_elf_adjust_dynamic_symbol
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+static bfd_boolean _bfd_mn10300_elf_discard_copies
+ PARAMS ((struct elf32_mn10300_link_hash_entry *,
+ struct bfd_link_info *));
+static bfd_boolean _bfd_mn10300_elf_size_dynamic_sections
+ PARAMS ((bfd *, struct bfd_link_info *));
+static bfd_boolean _bfd_mn10300_elf_finish_dynamic_symbol
+ PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+ Elf_Internal_Sym *));
+static bfd_boolean _bfd_mn10300_elf_finish_dynamic_sections
+ PARAMS ((bfd *, struct bfd_link_info *));
+
static reloc_howto_type elf_mn10300_howto_table[] = {
/* Dummy relocation. Does nothing. */
HOWTO (R_MN10300_NONE,
@@ -281,6 +321,202 @@ static reloc_howto_type elf_mn10300_howto_table[] = {
0xffffff,
0xffffff,
FALSE),
+ HOWTO (R_MN10300_GOTPC32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOTPC32", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOTPC16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOTPC16", /* name */
+ FALSE, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOTOFF32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOTOFF32", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOTOFF24, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 24, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOTOFF24", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffff, /* src_mask */
+ 0xffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOTOFF16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOTOFF16", /* name */
+ FALSE, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_PLT32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_PLT32", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_PLT16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ TRUE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_PLT16", /* name */
+ FALSE, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ TRUE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOT32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOT32", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOT24, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 24, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOT24", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GOT16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GOT16", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_COPY, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_COPY", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_GLOB_DAT, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_GLOB_DAT", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_JMP_SLOT, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_JMP_SLOT", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_MN10300_RELATIVE, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* */
+ "R_MN10300_RELATIVE", /* name */
+ FALSE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
};
struct mn10300_reloc_map {
@@ -299,8 +535,130 @@ static const struct mn10300_reloc_map mn10300_reloc_map[] = {
{ BFD_RELOC_24, R_MN10300_24, },
{ BFD_RELOC_VTABLE_INHERIT, R_MN10300_GNU_VTINHERIT },
{ BFD_RELOC_VTABLE_ENTRY, R_MN10300_GNU_VTENTRY },
+ { BFD_RELOC_32_GOT_PCREL, R_MN10300_GOTPC32 },
+ { BFD_RELOC_16_GOT_PCREL, R_MN10300_GOTPC16 },
+ { BFD_RELOC_32_GOTOFF, R_MN10300_GOTOFF32 },
+ { BFD_RELOC_MN10300_GOTOFF24, R_MN10300_GOTOFF24 },
+ { BFD_RELOC_16_GOTOFF, R_MN10300_GOTOFF16 },
+ { BFD_RELOC_32_PLT_PCREL, R_MN10300_PLT32 },
+ { BFD_RELOC_16_PLT_PCREL, R_MN10300_PLT16 },
+ { BFD_RELOC_MN10300_GOT32, R_MN10300_GOT32 },
+ { BFD_RELOC_MN10300_GOT24, R_MN10300_GOT24 },
+ { BFD_RELOC_MN10300_GOT16, R_MN10300_GOT16 },
+ { BFD_RELOC_MN10300_COPY, R_MN10300_COPY },
+ { BFD_RELOC_MN10300_GLOB_DAT, R_MN10300_GLOB_DAT },
+ { BFD_RELOC_MN10300_JMP_SLOT, R_MN10300_JMP_SLOT },
+ { BFD_RELOC_MN10300_RELATIVE, R_MN10300_RELATIVE },
};
+/* Create the GOT section. */
+
+static bfd_boolean
+_bfd_mn10300_elf_create_got_section (abfd, info)
+ bfd * abfd;
+ struct bfd_link_info * info;
+{
+ flagword flags;
+ flagword pltflags;
+ asection * s;
+ struct elf_link_hash_entry * h;
+ const struct elf_backend_data * bed = get_elf_backend_data (abfd);
+ int ptralign;
+
+ /* This function may be called more than once. */
+ if (bfd_get_section_by_name (abfd, ".got") != NULL)
+ return TRUE;
+
+ switch (bed->s->arch_size)
+ {
+ case 32:
+ ptralign = 2;
+ break;
+
+ case 64:
+ ptralign = 3;
+ break;
+
+ default:
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+
+ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED);
+
+ pltflags = flags;
+ pltflags |= SEC_CODE;
+ if (bed->plt_not_loaded)
+ pltflags &= ~ (SEC_LOAD | SEC_HAS_CONTENTS);
+ if (bed->plt_readonly)
+ pltflags |= SEC_READONLY;
+
+ s = bfd_make_section (abfd, ".plt");
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, pltflags)
+ || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment))
+ return FALSE;
+
+ if (bed->want_plt_sym)
+ {
+ /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
+ .plt section. */
+ struct elf_link_hash_entry *h = NULL;
+ if (! (_bfd_generic_link_add_one_symbol
+ (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
+ (bfd_vma) 0, (const char *) NULL, FALSE,
+ get_elf_backend_data (abfd)->collect,
+ (struct bfd_link_hash_entry **) &h)))
+ return FALSE;
+ h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
+ h->type = STT_OBJECT;
+
+ if (info->shared
+ && ! _bfd_elf_link_record_dynamic_symbol (info, h))
+ return FALSE;
+ }
+
+ s = bfd_make_section (abfd, ".got");
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, flags)
+ || ! bfd_set_section_alignment (abfd, s, ptralign))
+ return FALSE;
+
+ if (bed->want_got_plt)
+ {
+ s = bfd_make_section (abfd, ".got.plt");
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, flags)
+ || ! bfd_set_section_alignment (abfd, s, ptralign))
+ return FALSE;
+ }
+
+ /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the .got
+ (or .got.plt) section. We don't do this in the linker script
+ because we don't want to define the symbol if we are not creating
+ a global offset table. */
+ h = NULL;
+ if (!(_bfd_generic_link_add_one_symbol
+ (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
+ bed->got_symbol_offset, (const char *) NULL, FALSE,
+ bed->collect, (struct bfd_link_hash_entry **) &h)))
+ return FALSE;
+ h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
+ h->type = STT_OBJECT;
+
+ if (info->shared
+ && ! _bfd_elf_link_record_dynamic_symbol (info, h))
+ return FALSE;
+
+ elf_hash_table (info)->hgot = h;
+
+ /* The first bit of the global offset table is the header. */
+ s->_raw_size += bed->got_header_size + bed->got_symbol_offset;
+
+ return TRUE;
+}
+
static reloc_howto_type *
bfd_elf32_bfd_reloc_type_lookup (abfd, code)
bfd *abfd ATTRIBUTE_UNUSED;
@@ -349,8 +707,17 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
+ bfd * dynobj;
+ bfd_vma * local_got_offsets;
+ asection * sgot;
+ asection * srelgot;
+ asection * sreloc;
+
+ sgot = NULL;
+ srelgot = NULL;
+ sreloc = NULL;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -359,6 +726,8 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
if (!elf_bad_symtab (abfd))
sym_hashes_end -= symtab_hdr->sh_info;
+ dynobj = elf_hash_table (info)->dynobj;
+ local_got_offsets = elf_local_got_offsets (abfd);
rel_end = relocs + sec->reloc_count;
for (rel = relocs; rel < rel_end; rel++)
{
@@ -371,6 +740,29 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
else
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+ /* Some relocs require a global offset table. */
+ if (dynobj == NULL)
+ {
+ switch (ELF32_R_TYPE (rel->r_info))
+ {
+ case R_MN10300_GOT32:
+ case R_MN10300_GOT24:
+ case R_MN10300_GOT16:
+ case R_MN10300_GOTOFF32:
+ case R_MN10300_GOTOFF24:
+ case R_MN10300_GOTOFF16:
+ case R_MN10300_GOTPC32:
+ case R_MN10300_GOTPC16:
+ elf_hash_table (info)->dynobj = dynobj = abfd;
+ if (! _bfd_mn10300_elf_create_got_section (dynobj, info))
+ return FALSE;
+ break;
+
+ default:
+ break;
+ }
+ }
+
switch (ELF32_R_TYPE (rel->r_info))
{
/* This relocation describes the C++ object vtable hierarchy.
@@ -386,6 +778,221 @@ mn10300_elf_check_relocs (abfd, info, sec, relocs)
if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend))
return FALSE;
break;
+ case R_MN10300_GOT32:
+ case R_MN10300_GOT24:
+ case R_MN10300_GOT16:
+ /* This symbol requires a global offset table entry. */
+
+ if (sgot == NULL)
+ {
+ sgot = bfd_get_section_by_name (dynobj, ".got");
+ BFD_ASSERT (sgot != NULL);
+ }
+
+ if (srelgot == NULL
+ && (h != NULL || info->shared))
+ {
+ srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
+ if (srelgot == NULL)
+ {
+ srelgot = bfd_make_section (dynobj, ".rela.got");
+ if (srelgot == NULL
+ || ! bfd_set_section_flags (dynobj, srelgot,
+ (SEC_ALLOC
+ | SEC_LOAD
+ | SEC_HAS_CONTENTS
+ | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED
+ | SEC_READONLY))
+ || ! bfd_set_section_alignment (dynobj, srelgot, 2))
+ return FALSE;
+ }
+ }
+
+ if (h != NULL)
+ {
+ if (h->got.offset != (bfd_vma) -1)
+ /* We have already allocated space in the .got. */
+ break;
+
+ h->got.offset = sgot->_raw_size;
+
+ /* Make sure this symbol is output as a dynamic symbol. */
+ if (h->dynindx == -1)
+ {
+ if (! bfd_elf32_link_record_dynamic_symbol (info, h))
+ return FALSE;
+ }
+
+ srelgot->_raw_size += sizeof (Elf32_External_Rela);
+ }
+ else
+ {
+ /* This is a global offset table entry for a local
+ symbol. */
+ if (local_got_offsets == NULL)
+ {
+ size_t size;
+ unsigned int i;
+
+ size = symtab_hdr->sh_info * sizeof (bfd_vma);
+ local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
+
+ if (local_got_offsets == NULL)
+ return FALSE;
+ elf_local_got_offsets (abfd) = local_got_offsets;
+
+ for (i = 0; i < symtab_hdr->sh_info; i++)
+ local_got_offsets[i] = (bfd_vma) -1;
+ }
+
+ if (local_got_offsets[r_symndx] != (bfd_vma) -1)
+ /* We have already allocated space in the .got. */
+ break;
+
+ local_got_offsets[r_symndx] = sgot->_raw_size;
+
+ if (info->shared)
+ /* If we are generating a shared object, we need to
+ output a R_MN10300_RELATIVE reloc so that the dynamic
+ linker can adjust this GOT entry. */
+ srelgot->_raw_size += sizeof (Elf32_External_Rela);
+ }
+
+ sgot->_raw_size += 4;
+
+ break;
+
+ case R_MN10300_PLT32:
+ case R_MN10300_PLT16:
+ /* This symbol requires a procedure linkage table entry. We
+ actually build the entry in adjust_dynamic_symbol,
+ because this might be a case of linking PIC code which is
+ never referenced by a dynamic object, in which case we
+ don't need to generate a procedure linkage table entry
+ after all. */
+
+ /* If this is a local symbol, we resolve it directly without
+ creating a procedure linkage table entry. */
+ if (h == NULL)
+ continue;
+
+ if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL
+ || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN)
+ break;
+
+ h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
+
+ break;
+
+ case R_MN10300_32:
+ case R_MN10300_24:
+ case R_MN10300_16:
+ case R_MN10300_8:
+ case R_MN10300_PCREL32:
+ case R_MN10300_PCREL16:
+ case R_MN10300_PCREL8:
+ if (h != NULL)
+ h->elf_link_hash_flags |= ELF_LINK_NON_GOT_REF;
+
+ /* If we are creating a shared library, and this is a reloc
+ against a global symbol, or a non PC relative reloc
+ against a local symbol, then we need to copy the reloc
+ into the shared library. However, if we are linking with
+ -Bsymbolic, we do not need to copy a reloc against a
+ global symbol which is defined in an object we are
+ including in the link (i.e., DEF_REGULAR is set). At
+ this point we have not seen all the input files, so it is
+ possible that DEF_REGULAR is not set now but will be set
+ later (it is never cleared). We account for that
+ possibility below by storing information in the
+ pcrel_relocs_copied field of the hash table entry. */
+ if (info->shared
+ && (sec->flags & SEC_ALLOC) != 0
+ && (! (elf_mn10300_howto_table[ELF32_R_TYPE (rel->r_info)]
+ .pc_relative)
+ || (h != NULL
+ && (! info->symbolic
+ || h->root.type == bfd_link_hash_defweak
+ || (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0))))
+ {
+ /* When creating a shared object, we must copy these
+ reloc types into the output file. We create a reloc
+ section in dynobj and make room for this reloc. */
+ if (sreloc == NULL)
+ {
+ const char * name;
+
+ name = (bfd_elf_string_from_elf_section
+ (abfd,
+ elf_elfheader (abfd)->e_shstrndx,
+ elf_section_data (sec)->rel_hdr.sh_name));
+ if (name == NULL)
+ return FALSE;
+
+ BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+ && strcmp (bfd_get_section_name (abfd, sec),
+ name + 5) == 0);
+
+ sreloc = bfd_get_section_by_name (dynobj, name);
+ if (sreloc == NULL)
+ {
+ flagword flags;
+
+ sreloc = bfd_make_section (dynobj, name);
+ flags = (SEC_HAS_CONTENTS | SEC_READONLY
+ | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+ if ((sec->flags & SEC_ALLOC) != 0)
+ flags |= SEC_ALLOC | SEC_LOAD;
+ if (sreloc == NULL
+ || ! bfd_set_section_flags (dynobj, sreloc, flags)
+ || ! bfd_set_section_alignment (dynobj, sreloc, 2))
+ return FALSE;
+ }
+ }
+
+ sreloc->_raw_size += sizeof (Elf32_External_Rela);
+
+ /* If we are linking with -Bsymbolic, and this is a
+ global symbol, we count the number of PC relative
+ relocations we have entered for this symbol, so that
+ we can discard them again if the symbol is later
+ defined by a regular object. Note that this function
+ is only called if we are using an elf_sh linker
+ hash table, which means that h is really a pointer to
+ an elf32_mn10300_link_hash_entry. */
+ if (h != NULL
+ && (elf_mn10300_howto_table[ELF32_R_TYPE (rel->r_info)]
+ .pc_relative))
+ {
+ struct elf32_mn10300_link_hash_entry *eh;
+ struct elf_mn10300_pcrel_relocs_copied *p;
+
+ eh = (struct elf32_mn10300_link_hash_entry *) h;
+
+ for (p = eh->pcrel_relocs_copied; p != NULL; p = p->next)
+ if (p->section == sreloc)
+ break;
+
+ if (p == NULL)
+ {
+ p = ((struct elf_mn10300_pcrel_relocs_copied *)
+ bfd_alloc (dynobj, sizeof *p));
+ if (p == NULL)
+ return FALSE;
+
+ p->next = eh->pcrel_relocs_copied;
+ eh->pcrel_relocs_copied = p;
+ p->section = sreloc;
+ p->count = 0;
+ }
+
+ ++p->count;
+ }
+ }
+
+ break;
}
}
@@ -436,7 +1043,7 @@ mn10300_elf_gc_mark_hook (sec, info, rel, h, sym)
static bfd_reloc_status_type
mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
input_section, contents, offset, value,
- addend, info, sym_sec, is_local)
+ addend, h, symndx, info, sym_sec, is_local)
reloc_howto_type *howto;
bfd *input_bfd;
bfd *output_bfd ATTRIBUTE_UNUSED;
@@ -445,12 +1052,26 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
bfd_vma offset;
bfd_vma value;
bfd_vma addend;
+ struct elf_link_hash_entry * h;
+ unsigned long symndx;
struct bfd_link_info *info ATTRIBUTE_UNUSED;
asection *sym_sec ATTRIBUTE_UNUSED;
int is_local ATTRIBUTE_UNUSED;
{
unsigned long r_type = howto->type;
bfd_byte *hit_data = contents + offset;
+ bfd * dynobj;
+ bfd_vma * local_got_offsets;
+ asection * sgot;
+ asection * splt;
+ asection * sreloc;
+
+ dynobj = elf_hash_table (info)->dynobj;
+ local_got_offsets = elf_local_got_offsets (input_bfd);
+
+ sgot = NULL;
+ splt = NULL;
+ sreloc = NULL;
switch (r_type)
{
@@ -458,6 +1079,96 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
return bfd_reloc_ok;
case R_MN10300_32:
+ if (info->shared
+ && (input_section->flags & SEC_ALLOC) != 0)
+ {
+ Elf_Internal_Rela outrel;
+ bfd_boolean skip, relocate;
+
+ /* When generating a shared object, these relocations are
+ copied into the output file to be resolved at run
+ time. */
+ if (sreloc == NULL)
+ {
+ const char * name;
+
+ name = (bfd_elf_string_from_elf_section
+ (input_bfd,
+ elf_elfheader (input_bfd)->e_shstrndx,
+ elf_section_data (input_section)->rel_hdr.sh_name));
+ if (name == NULL)
+ return FALSE;
+
+ BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+ && strcmp (bfd_get_section_name (input_bfd,
+ input_section),
+ name + 5) == 0);
+
+ sreloc = bfd_get_section_by_name (dynobj, name);
+ BFD_ASSERT (sreloc != NULL);
+ }
+
+ skip = FALSE;
+
+ if (elf_section_data (input_section)->sec_info == NULL
+ || (input_section->sec_info_type != ELF_INFO_TYPE_STABS))
+ outrel.r_offset = offset;
+ else
+ {
+ bfd_vma off;
+
+ off = (_bfd_stab_section_offset
+ (output_bfd, & elf_hash_table (info)->stab_info,
+ input_section,
+ & elf_section_data (input_section)->sec_info,
+ offset));
+ if (off == (bfd_vma) -1)
+ skip = TRUE;
+ outrel.r_offset = off;
+ }
+
+ outrel.r_offset += (input_section->output_section->vma
+ + input_section->output_offset);
+
+ if (skip)
+ {
+ memset (&outrel, 0, sizeof outrel);
+ relocate = FALSE;
+ }
+ else
+ {
+ /* h->dynindx may be -1 if this symbol was marked to
+ become local. */
+ if (h == NULL
+ || ((info->symbolic || h->dynindx == -1)
+ && (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) != 0))
+ {
+ relocate = TRUE;
+ outrel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE);
+ outrel.r_addend = value + addend;
+ }
+ else
+ {
+ BFD_ASSERT (h->dynindx != -1);
+ relocate = FALSE;
+ outrel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_32);
+ outrel.r_addend = value + addend;
+ }
+ }
+
+ bfd_elf32_swap_reloca_out (output_bfd, &outrel,
+ (bfd_byte *) (((Elf32_External_Rela *) sreloc->contents)
+ + sreloc->reloc_count));
+ ++sreloc->reloc_count;
+
+ /* If this reloc is against an external symbol, we do
+ not want to fiddle with the addend. Otherwise, we
+ need to include the symbol value so that it becomes
+ an addend for the dynamic reloc. */
+ if (! relocate)
+ return bfd_reloc_ok;
+ }
value += addend;
bfd_put_32 (input_bfd, value, hit_data);
return bfd_reloc_ok;
@@ -516,6 +1227,81 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
return bfd_reloc_ok;
case R_MN10300_PCREL32:
+ if (info->shared
+ && (input_section->flags & SEC_ALLOC) != 0
+ && h != NULL
+ && h->dynindx != -1
+ && (! info->symbolic
+ || (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0))
+ {
+ Elf_Internal_Rela outrel;
+ bfd_boolean skip;
+
+ /* When generating a shared object, these relocations
+ are copied into the output file to be resolved at run
+ time. */
+
+ if (sreloc == NULL)
+ {
+ const char * name;
+
+ name = (bfd_elf_string_from_elf_section
+ (input_bfd,
+ elf_elfheader (input_bfd)->e_shstrndx,
+ elf_section_data (input_section)->rel_hdr.sh_name));
+ if (name == NULL)
+ return FALSE;
+
+ BFD_ASSERT (strncmp (name, ".rela", 5) == 0
+ && strcmp (bfd_get_section_name (input_bfd,
+ input_section),
+ name + 5) == 0);
+
+ sreloc = bfd_get_section_by_name (dynobj, name);
+ BFD_ASSERT (sreloc != NULL);
+ }
+
+ skip = FALSE;
+
+ if (elf_section_data (input_section)->sec_info == NULL
+ || (input_section->sec_info_type != ELF_INFO_TYPE_STABS))
+ outrel.r_offset = offset;
+ else
+ {
+ bfd_vma off;
+
+ off = (_bfd_stab_section_offset
+ (output_bfd, & elf_hash_table (info)->stab_info,
+ input_section,
+ & elf_section_data (input_section)->sec_info,
+ offset));
+ if (off == (bfd_vma) -1)
+ skip = TRUE;
+ outrel.r_offset = off;
+ }
+
+ outrel.r_offset += (input_section->output_section->vma
+ + input_section->output_offset);
+
+ if (skip)
+ memset (&outrel, 0, sizeof outrel);
+ else
+ {
+ BFD_ASSERT (h != NULL && h->dynindx != -1);
+ outrel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_PCREL32);
+ outrel.r_addend = addend;
+ }
+
+ bfd_elf32_swap_reloca_out (output_bfd, &outrel,
+ (bfd_byte *) (((Elf32_External_Rela *)
+ sreloc->contents)
+ + sreloc->reloc_count));
+ ++sreloc->reloc_count;
+
+ return bfd_reloc_ok;
+ }
+
value -= (input_section->output_section->vma
+ input_section->output_offset);
value -= offset;
@@ -528,6 +1314,208 @@ mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
case R_MN10300_GNU_VTENTRY:
return bfd_reloc_ok;
+ case R_MN10300_GOTPC32:
+ /* Use global offset table as symbol value. */
+
+ value = bfd_get_section_by_name (dynobj,
+ ".got")->output_section->vma;
+ value -= (input_section->output_section->vma
+ + input_section->output_offset);
+ value -= offset;
+ value += addend;
+
+ bfd_put_32 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_GOTPC16:
+ /* Use global offset table as symbol value. */
+
+ value = bfd_get_section_by_name (dynobj,
+ ".got")->output_section->vma;
+ value -= (input_section->output_section->vma
+ + input_section->output_offset);
+ value -= offset;
+ value += addend;
+
+ if ((long) value > 0xffff || (long) value < -0x10000)
+ return bfd_reloc_overflow;
+
+ bfd_put_16 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_GOTOFF32:
+ value -= bfd_get_section_by_name (dynobj,
+ ".got")->output_section->vma;
+ value += addend;
+
+ bfd_put_32 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_GOTOFF24:
+ value -= bfd_get_section_by_name (dynobj,
+ ".got")->output_section->vma;
+ value += addend;
+
+ if ((long) value > 0x7fffff || (long) value < -0x800000)
+ return bfd_reloc_overflow;
+
+ bfd_put_8 (input_bfd, value, hit_data);
+ bfd_put_8 (input_bfd, (value >> 8) & 0xff, hit_data + 1);
+ bfd_put_8 (input_bfd, (value >> 16) & 0xff, hit_data + 2);
+ return bfd_reloc_ok;
+
+ case R_MN10300_GOTOFF16:
+ value -= bfd_get_section_by_name (dynobj,
+ ".got")->output_section->vma;
+ value += addend;
+
+ if ((long) value > 0xffff || (long) value < -0x10000)
+ return bfd_reloc_overflow;
+
+ bfd_put_16 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_PLT32:
+ if (h != NULL
+ && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL
+ && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN
+ && h->plt.offset != (bfd_vma) -1)
+ {
+ asection * splt;
+
+ splt = bfd_get_section_by_name (dynobj, ".plt");
+
+ value = (splt->output_section->vma
+ + splt->output_offset
+ + h->plt.offset) - value;
+ }
+
+ value -= (input_section->output_section->vma
+ + input_section->output_offset);
+ value -= offset;
+ value += addend;
+
+ bfd_put_32 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_PLT16:
+ if (h != NULL
+ && ELF_ST_VISIBILITY (h->other) != STV_INTERNAL
+ && ELF_ST_VISIBILITY (h->other) != STV_HIDDEN
+ && h->plt.offset != (bfd_vma) -1)
+ {
+ asection * splt;
+
+ splt = bfd_get_section_by_name (dynobj, ".plt");
+
+ value = (splt->output_section->vma
+ + splt->output_offset
+ + h->plt.offset) - value;
+ }
+
+ value -= (input_section->output_section->vma
+ + input_section->output_offset);
+ value -= offset;
+ value += addend;
+
+ if ((long) value > 0xffff || (long) value < -0x10000)
+ return bfd_reloc_overflow;
+
+ bfd_put_16 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+
+ case R_MN10300_GOT32:
+ case R_MN10300_GOT24:
+ case R_MN10300_GOT16:
+ {
+ asection * sgot;
+
+ sgot = bfd_get_section_by_name (dynobj, ".got");
+
+ if (h != NULL)
+ {
+ bfd_vma off;
+
+ off = h->got.offset;
+ BFD_ASSERT (off != (bfd_vma) -1);
+
+ if (! elf_hash_table (info)->dynamic_sections_created
+ || (info->shared
+ && (info->symbolic || h->dynindx == -1)
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
+ /* This is actually a static link, or it is a
+ -Bsymbolic link and the symbol is defined
+ locally, or the symbol was forced to be local
+ because of a version file. We must initialize
+ this entry in the global offset table.
+
+ When doing a dynamic link, we create a .rela.got
+ relocation entry to initialize the value. This
+ is done in the finish_dynamic_symbol routine. */
+ bfd_put_32 (output_bfd, value,
+ sgot->contents + off);
+
+ value = sgot->output_offset + off;
+ }
+ else
+ {
+ bfd_vma off;
+
+ off = elf_local_got_offsets (input_bfd)[symndx];
+
+ bfd_put_32 (output_bfd, value, sgot->contents + off);
+
+ if (info->shared)
+ {
+ asection * srelgot;
+ Elf_Internal_Rela outrel;
+
+ srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
+ BFD_ASSERT (srelgot != NULL);
+
+ outrel.r_offset = (sgot->output_section->vma
+ + sgot->output_offset
+ + off);
+ outrel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE);
+ outrel.r_addend = value;
+ bfd_elf32_swap_reloca_out (output_bfd, &outrel,
+ (bfd_byte *) (((Elf32_External_Rela *)
+ srelgot->contents)
+ + srelgot->reloc_count));
+ ++ srelgot->reloc_count;
+ }
+
+ value = sgot->output_offset + off;
+ }
+ }
+
+ value += addend;
+
+ if (r_type == R_MN10300_GOT32)
+ {
+ bfd_put_32 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+ }
+ else if (r_type == R_MN10300_GOT24)
+ {
+ if ((long) value > 0x7fffff || (long) value < -0x800000)
+ return bfd_reloc_overflow;
+
+ bfd_put_8 (input_bfd, value & 0xff, hit_data);
+ bfd_put_8 (input_bfd, (value >> 8) & 0xff, hit_data + 1);
+ bfd_put_8 (input_bfd, (value >> 16) & 0xff, hit_data + 2);
+ return bfd_reloc_ok;
+ }
+ else if (r_type == R_MN10300_GOT16)
+ {
+ if ((long) value > 0xffff || (long) value < -0x10000)
+ return bfd_reloc_overflow;
+
+ bfd_put_16 (input_bfd, value, hit_data);
+ return bfd_reloc_ok;
+ }
+ /* Fall through. */
+
default:
return bfd_reloc_notsupported;
}
@@ -550,7 +1538,7 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
struct elf32_mn10300_link_hash_entry **sym_hashes;
Elf_Internal_Rela *rel, *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -590,34 +1578,66 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.root.type == bfd_link_hash_indirect
- || h->root.root.type == bfd_link_hash_warning)
- h = (struct elf32_mn10300_link_hash_entry *) h->root.root.u.i.link;
- if (h->root.root.type == bfd_link_hash_defined
+ bfd_boolean unresolved_reloc;
+ bfd_boolean warned;
+ struct elf_link_hash_entry *hh;
+
+ RELOC_FOR_GLOBAL_SYMBOL (hh, (struct elf_link_hash_entry *) sym_hashes,
+ r_symndx, symtab_hdr, relocation,
+ sec, unresolved_reloc, info,
+ warned);
+
+ h = (struct elf32_mn10300_link_hash_entry *) hh;
+
+ if ((h->root.root.type == bfd_link_hash_defined
|| h->root.root.type == bfd_link_hash_defweak)
- {
- sec = h->root.root.u.def.section;
- relocation = (h->root.root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.root.type == bfd_link_hash_undefweak)
+ && ( r_type == R_MN10300_GOTPC32
+ || r_type == R_MN10300_GOTPC16
+ || (( r_type == R_MN10300_PLT32
+ || r_type == R_MN10300_PLT16)
+ && ELF_ST_VISIBILITY (h->root.other) != STV_INTERNAL
+ && ELF_ST_VISIBILITY (h->root.other) != STV_HIDDEN
+ && h->root.plt.offset != (bfd_vma) -1)
+ || (( r_type == R_MN10300_GOT32
+ || r_type == R_MN10300_GOT24
+ || r_type == R_MN10300_GOT16)
+ && elf_hash_table (info)->dynamic_sections_created
+ && (! info->shared
+ || (! info->symbolic && h->root.dynindx != -1)
+ || (h->root.elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0))
+ || (info->shared
+ && ((! info->symbolic && h->root.dynindx != -1)
+ || (h->root.elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ && ( r_type == R_MN10300_32
+ || r_type == R_MN10300_PCREL32)
+ && ((input_section->flags & SEC_ALLOC) != 0
+ /* DWARF will emit R_MN10300_32 relocations
+ in its sections against symbols defined
+ externally in shared libraries. We can't
+ do anything with them here. */
+ || ((input_section->flags & SEC_DEBUGGING) != 0
+ && (h->root.elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))))
+ /* In these cases, we don't need the relocation
+ value. We check specially because in some
+ obscure cases sec->output_section will be NULL. */
relocation = 0;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.root.string, input_bfd,
- input_section, rel->r_offset, TRUE)))
- return FALSE;
- relocation = 0;
- }
+
+ else if (unresolved_reloc)
+ (*_bfd_error_handler)
+ (_("%s: warning: unresolvable relocation against symbol `%s' from %s section"),
+ bfd_get_filename (input_bfd), h->root.root.root.string,
+ bfd_get_section_name (input_bfd, input_section));
}
r = mn10300_elf_final_link_relocate (howto, input_bfd, output_bfd,
input_section,
contents, rel->r_offset,
relocation, rel->r_addend,
+ (struct elf_link_hash_entry *)h,
+ r_symndx,
info, sec, h == NULL);
if (r != bfd_reloc_ok)
@@ -953,6 +1973,8 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
direct_calls counter. Else force "call" to
"calls" conversions. */
if (r_type == R_MN10300_PCREL32
+ || r_type == R_MN10300_PLT32
+ || r_type == R_MN10300_PLT16
|| r_type == R_MN10300_PCREL16)
hash->direct_calls++;
else
@@ -1023,7 +2045,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
- symtab_hdr->sh_info);
- hashes = elf_sym_hashes (abfd);
+ hashes = elf_sym_hashes (input_bfd);
end_hashes = hashes + symcount;
for (; hashes < end_hashes; hashes++)
{
@@ -1241,7 +2263,7 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
need insns deleted from their prologues. */
symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
- symtab_hdr->sh_info);
- hashes = elf_sym_hashes (abfd);
+ hashes = elf_sym_hashes (input_bfd);
end_hashes = hashes + symcount;
for (; hashes < end_hashes; hashes++)
{
@@ -1334,10 +2356,10 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* For error_return. */
section = sec;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0)
@@ -1475,10 +2497,30 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Try to turn a 32bit pc-relative branch/call into a 16bit pc-relative
branch/call, also deal with "call" -> "calls" conversions and
insertion of prologue data into "call" instructions. */
- if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PCREL32)
+ if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PCREL32
+ || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PLT32)
{
bfd_vma value = symval;
+ if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_PLT32
+ && h != NULL
+ && ELF_ST_VISIBILITY (h->root.other) != STV_INTERNAL
+ && ELF_ST_VISIBILITY (h->root.other) != STV_HIDDEN
+ && h->root.plt.offset != (bfd_vma) -1)
+ {
+ asection * splt;
+
+ splt = bfd_get_section_by_name (elf_hash_table (link_info)
+ ->dynobj, ".plt");
+
+ value = ((splt->output_section->vma
+ + splt->output_offset
+ + h->root.plt.offset)
+ - (sec->output_section->vma
+ + sec->output_offset
+ + irel->r_offset));
+ }
+
/* If we've got a "call" instruction that needs to be turned
into a "calls" instruction, do so now. It saves a byte. */
if (h && (h->flags & MN10300_CONVERT_CALL_TO_CALLS))
@@ -1567,6 +2609,9 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_PLT32)
+ ? R_MN10300_PLT16 :
R_MN10300_PCREL16);
/* Delete two bytes of data. */
@@ -1889,9 +2934,41 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Try to turn a 32bit immediate, displacement or absolute address
into a 16bit immediate, displacement or absolute address. */
- if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_32)
+ if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_32
+ || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOT32
+ || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTOFF32
+ || ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTPC32)
{
bfd_vma value = symval;
+
+ if (ELF32_R_TYPE (irel->r_info) != (int) R_MN10300_32)
+ {
+ asection * sgot;
+
+ sgot = bfd_get_section_by_name (elf_hash_table (link_info)
+ ->dynobj, ".got");
+
+ if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOT32)
+ {
+ value = sgot->output_offset;
+
+ if (h)
+ value += h->root.got.offset;
+ else
+ value += (elf_local_got_offsets
+ (abfd)[ELF32_R_SYM (irel->r_info)]);
+ }
+ else if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTOFF32)
+ value -= sgot->output_section->vma;
+ else if (ELF32_R_TYPE (irel->r_info) == (int) R_MN10300_GOTPC32)
+ value = (sgot->output_section->vma
+ - (sec->output_section->vma
+ + sec->output_offset
+ + irel->r_offset));
+ else
+ abort ();
+ }
+
value += irel->r_addend;
/* See if the value will fit in 24 bits.
@@ -1917,6 +2994,8 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
equivalent instructions exists. */
if (code != 0x6b && code != 0x7b
&& code != 0x8b && code != 0x9b
+ && (ELF32_R_TYPE (irel->r_info)
+ != (int) R_MN10300_GOTPC32)
&& ((code & 0x0f) == 0x09 || (code & 0x0f) == 0x08
|| (code & 0x0f) == 0x0a || (code & 0x0f) == 0x0b
|| (code & 0x0f) == 0x0e))
@@ -1940,6 +3019,12 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info =
ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF24
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT24 :
R_MN10300_24);
/* Delete one byte of data. */
@@ -2018,6 +3103,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* Delete two bytes of data. */
@@ -2059,6 +3153,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* The opcode got shorter too, so we have to fix the
@@ -2101,6 +3204,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* Delete two bytes of data. */
@@ -2161,6 +3273,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* The opcode got shorter too, so we have to fix the
@@ -2226,6 +3347,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* Delete two bytes of data. */
@@ -2253,6 +3383,15 @@ mn10300_elf_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOT32)
+ ? R_MN10300_GOT16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTOFF32)
+ ? R_MN10300_GOTOFF16
+ : (ELF32_R_TYPE (irel->r_info)
+ == (int) R_MN10300_GOTPC32)
+ ? R_MN10300_GOTPC16 :
R_MN10300_16);
/* Delete two bytes of data. */
@@ -2370,7 +3509,8 @@ compute_function_info (abfd, hash, addr, contents)
if (hash->movm_args & 0x08)
hash->movm_stack_size += 8 * 4;
- if (bfd_get_mach (abfd) == bfd_mach_am33)
+ if (bfd_get_mach (abfd) == bfd_mach_am33
+ || bfd_get_mach (abfd) == bfd_mach_am33_2)
{
/* "exother" space. e0, e1, mdrq, mcrh, mcrl, mcvf */
if (hash->movm_args & 0x1)
@@ -2541,12 +3681,12 @@ mn10300_elf_symbol_address_p (abfd, sec, isym, addr)
static bfd_byte *
mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *output_bfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
Elf_Internal_Shdr *symtab_hdr;
@@ -2558,11 +3698,11 @@ mn10300_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2677,6 +3817,7 @@ elf32_mn10300_link_hash_newfunc (entry, table, string)
ret->stack_size = 0;
ret->movm_args = 0;
ret->movm_stack_size = 0;
+ ret->pcrel_relocs_copied = NULL;
ret->flags = 0;
}
@@ -2750,6 +3891,9 @@ elf_mn10300_mach (flags)
case E_MN10300_MACH_AM33:
return bfd_mach_am33;
+
+ case E_MN10300_MACH_AM33_2:
+ return bfd_mach_am33_2;
}
}
@@ -2774,6 +3918,10 @@ _bfd_mn10300_elf_final_write_processing (abfd, linker)
case bfd_mach_am33:
val = E_MN10300_MACH_AM33;
break;
+
+ case bfd_mach_am33_2:
+ val = E_MN10300_MACH_AM33_2;
+ break;
}
elf_elfheader (abfd)->e_flags &= ~ (EF_MN10300_MACH);
@@ -2812,12 +3960,876 @@ _bfd_mn10300_elf_merge_private_bfd_data (ibfd, obfd)
return TRUE;
}
+#define PLT0_ENTRY_SIZE 15
+#define PLT_ENTRY_SIZE 20
+#define PIC_PLT_ENTRY_SIZE 24
+
+static const bfd_byte elf_mn10300_plt0_entry[PLT0_ENTRY_SIZE] =
+{
+ 0xfc, 0xa0, 0, 0, 0, 0, /* mov (.got+8),a0 */
+ 0xfe, 0xe, 0x10, 0, 0, 0, 0, /* mov (.got+4),r1 */
+ 0xf0, 0xf4, /* jmp (a0) */
+};
+
+static const bfd_byte elf_mn10300_plt_entry[PLT_ENTRY_SIZE] =
+{
+ 0xfc, 0xa0, 0, 0, 0, 0, /* mov (nameN@GOT + .got),a0 */
+ 0xf0, 0xf4, /* jmp (a0) */
+ 0xfe, 8, 0, 0, 0, 0, 0, /* mov reloc-table-address,r0 */
+ 0xdc, 0, 0, 0, 0, /* jmp .plt0 */
+};
+
+static const bfd_byte elf_mn10300_pic_plt_entry[PIC_PLT_ENTRY_SIZE] =
+{
+ 0xfc, 0x22, 0, 0, 0, 0, /* mov (nameN@GOT,a2),a0 */
+ 0xf0, 0xf4, /* jmp (a0) */
+ 0xfe, 8, 0, 0, 0, 0, 0, /* mov reloc-table-address,r0 */
+ 0xf8, 0x22, 8, /* mov (8,a2),a0 */
+ 0xfb, 0xa, 0x1a, 4, /* mov (4,a2),r1 */
+ 0xf0, 0xf4, /* jmp (a0) */
+};
+
+/* Return size of the first PLT entry. */
+#define elf_mn10300_sizeof_plt0(info) \
+ (info->shared ? PIC_PLT_ENTRY_SIZE : PLT0_ENTRY_SIZE)
+
+/* Return size of a PLT entry. */
+#define elf_mn10300_sizeof_plt(info) \
+ (info->shared ? PIC_PLT_ENTRY_SIZE : PLT_ENTRY_SIZE)
+
+/* Return offset of the PLT0 address in an absolute PLT entry. */
+#define elf_mn10300_plt_plt0_offset(info) 16
+
+/* Return offset of the linker in PLT0 entry. */
+#define elf_mn10300_plt0_linker_offset(info) 2
+
+/* Return offset of the GOT id in PLT0 entry. */
+#define elf_mn10300_plt0_gotid_offset(info) 9
+
+/* Return offset of the tempoline in PLT entry */
+#define elf_mn10300_plt_temp_offset(info) 8
+
+/* Return offset of the symbol in PLT entry. */
+#define elf_mn10300_plt_symbol_offset(info) 2
+
+/* Return offset of the relocation in PLT entry. */
+#define elf_mn10300_plt_reloc_offset(info) 11
+
+/* The name of the dynamic interpreter. This is put in the .interp
+ section. */
+
+#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
+
+/* Create dynamic sections when linking against a dynamic object. */
+
+static bfd_boolean
+_bfd_mn10300_elf_create_dynamic_sections (abfd, info)
+ bfd *abfd;
+ struct bfd_link_info *info;
+{
+ flagword flags;
+ asection * s;
+ const struct elf_backend_data * bed = get_elf_backend_data (abfd);
+ int ptralign = 0;
+
+ switch (bed->s->arch_size)
+ {
+ case 32:
+ ptralign = 2;
+ break;
+
+ case 64:
+ ptralign = 3;
+ break;
+
+ default:
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+
+ /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
+ .rel[a].bss sections. */
+
+ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED);
+
+ s = bfd_make_section (abfd,
+ bed->default_use_rela_p ? ".rela.plt" : ".rel.plt");
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
+ || ! bfd_set_section_alignment (abfd, s, ptralign))
+ return FALSE;
+
+ if (! _bfd_mn10300_elf_create_got_section (abfd, info))
+ return FALSE;
+
+ {
+ const char * secname;
+ char * relname;
+ flagword secflags;
+ asection * sec;
+
+ for (sec = abfd->sections; sec; sec = sec->next)
+ {
+ secflags = bfd_get_section_flags (abfd, sec);
+ if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
+ || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
+ continue;
+
+ secname = bfd_get_section_name (abfd, sec);
+ relname = (char *) bfd_malloc (strlen (secname) + 6);
+ strcpy (relname, ".rela");
+ strcat (relname, secname);
+
+ s = bfd_make_section (abfd, relname);
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
+ || ! bfd_set_section_alignment (abfd, s, ptralign))
+ return FALSE;
+ }
+ }
+
+ if (bed->want_dynbss)
+ {
+ /* The .dynbss section is a place to put symbols which are defined
+ by dynamic objects, are referenced by regular objects, and are
+ not functions. We must allocate space for them in the process
+ image and use a R_*_COPY reloc to tell the dynamic linker to
+ initialize them at run time. The linker script puts the .dynbss
+ section into the .bss section of the final image. */
+ s = bfd_make_section (abfd, ".dynbss");
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
+ return FALSE;
+
+ /* The .rel[a].bss section holds copy relocs. This section is not
+ normally needed. We need to create it here, though, so that the
+ linker will map it to an output section. We can't just create it
+ only if we need it, because we will not know whether we need it
+ until we have seen all the input files, and the first time the
+ main linker code calls BFD after examining all the input files
+ (size_dynamic_sections) the input sections have already been
+ mapped to the output sections. If the section turns out not to
+ be needed, we can discard it later. We will never need this
+ section when generating a shared object, since they do not use
+ copy relocs. */
+ if (! info->shared)
+ {
+ s = bfd_make_section (abfd,
+ (bed->default_use_rela_p
+ ? ".rela.bss" : ".rel.bss"));
+ if (s == NULL
+ || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
+ || ! bfd_set_section_alignment (abfd, s, ptralign))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/* Adjust a symbol defined by a dynamic object and referenced by a
+ regular object. The current definition is in some section of the
+ dynamic object, but we're not including those sections. We have to
+ change the definition to something the rest of the link can
+ understand. */
+
+static bfd_boolean
+_bfd_mn10300_elf_adjust_dynamic_symbol (info, h)
+ struct bfd_link_info * info;
+ struct elf_link_hash_entry * h;
+{
+ bfd * dynobj;
+ asection * s;
+ unsigned int power_of_two;
+
+ dynobj = elf_hash_table (info)->dynobj;
+
+ /* Make sure we know what is going on here. */
+ BFD_ASSERT (dynobj != NULL
+ && ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT)
+ || h->weakdef != NULL
+ || ((h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_DYNAMIC) != 0
+ && (h->elf_link_hash_flags
+ & ELF_LINK_HASH_REF_REGULAR) != 0
+ && (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0)));
+
+ /* If this is a function, put it in the procedure linkage table. We
+ will fill in the contents of the procedure linkage table later,
+ when we know the address of the .got section. */
+ if (h->type == STT_FUNC
+ || (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
+ {
+ if (! info->shared
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0)
+ {
+ /* This case can occur if we saw a PLT reloc in an input
+ file, but the symbol was never referred to by a dynamic
+ object. In such a case, we don't actually need to build
+ a procedure linkage table, and we can just do a REL32
+ reloc instead. */
+ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0);
+ return TRUE;
+ }
+
+ /* Make sure this symbol is output as a dynamic symbol. */
+ if (h->dynindx == -1)
+ {
+ if (! bfd_elf32_link_record_dynamic_symbol (info, h))
+ return FALSE;
+ }
+
+ s = bfd_get_section_by_name (dynobj, ".plt");
+ BFD_ASSERT (s != NULL);
+
+ /* If this is the first .plt entry, make room for the special
+ first entry. */
+ if (s->_raw_size == 0)
+ s->_raw_size += elf_mn10300_sizeof_plt0 (info);
+
+ /* If this symbol is not defined in a regular file, and we are
+ not generating a shared library, then set the symbol to this
+ location in the .plt. This is required to make function
+ pointers compare as equal between the normal executable and
+ the shared library. */
+ if (! info->shared
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ {
+ h->root.u.def.section = s;
+ h->root.u.def.value = s->_raw_size;
+ }
+
+ h->plt.offset = s->_raw_size;
+
+ /* Make room for this entry. */
+ s->_raw_size += elf_mn10300_sizeof_plt (info);
+
+ /* We also need to make an entry in the .got.plt section, which
+ will be placed in the .got section by the linker script. */
+
+ s = bfd_get_section_by_name (dynobj, ".got.plt");
+ BFD_ASSERT (s != NULL);
+ s->_raw_size += 4;
+
+ /* We also need to make an entry in the .rela.plt section. */
+
+ s = bfd_get_section_by_name (dynobj, ".rela.plt");
+ BFD_ASSERT (s != NULL);
+ s->_raw_size += sizeof (Elf32_External_Rela);
+
+ return TRUE;
+ }
+
+ /* If this is a weak symbol, and there is a real definition, the
+ processor independent code will have arranged for us to see the
+ real definition first, and we can just use the same value. */
+ if (h->weakdef != NULL)
+ {
+ BFD_ASSERT (h->weakdef->root.type == bfd_link_hash_defined
+ || h->weakdef->root.type == bfd_link_hash_defweak);
+ h->root.u.def.section = h->weakdef->root.u.def.section;
+ h->root.u.def.value = h->weakdef->root.u.def.value;
+ return TRUE;
+ }
+
+ /* This is a reference to a symbol defined by a dynamic object which
+ is not a function. */
+
+ /* If we are creating a shared library, we must presume that the
+ only references to the symbol are via the global offset table.
+ For such cases we need not do anything here; the relocations will
+ be handled correctly by relocate_section. */
+ if (info->shared)
+ return TRUE;
+
+ /* If there are no references to this symbol that do not use the
+ GOT, we don't need to generate a copy reloc. */
+ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0)
+ return TRUE;
+
+ /* We must allocate the symbol in our .dynbss section, which will
+ become part of the .bss section of the executable. There will be
+ an entry for this symbol in the .dynsym section. The dynamic
+ object will contain position independent code, so all references
+ from the dynamic object to this symbol will go through the global
+ offset table. The dynamic linker will use the .dynsym entry to
+ determine the address it must put in the global offset table, so
+ both the dynamic object and the regular object will refer to the
+ same memory location for the variable. */
+
+ s = bfd_get_section_by_name (dynobj, ".dynbss");
+ BFD_ASSERT (s != NULL);
+
+ /* We must generate a R_MN10300_COPY reloc to tell the dynamic linker to
+ copy the initial value out of the dynamic object and into the
+ runtime process image. We need to remember the offset into the
+ .rela.bss section we are going to use. */
+ if ((h->root.u.def.section->flags & SEC_ALLOC) != 0)
+ {
+ asection * srel;
+
+ srel = bfd_get_section_by_name (dynobj, ".rela.bss");
+ BFD_ASSERT (srel != NULL);
+ srel->_raw_size += sizeof (Elf32_External_Rela);
+ h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_COPY;
+ }
+
+ /* We need to figure out the alignment required for this symbol. I
+ have no idea how ELF linkers handle this. */
+ power_of_two = bfd_log2 (h->size);
+ if (power_of_two > 3)
+ power_of_two = 3;
+
+ /* Apply the required alignment. */
+ s->_raw_size = BFD_ALIGN (s->_raw_size,
+ (bfd_size_type) (1 << power_of_two));
+ if (power_of_two > bfd_get_section_alignment (dynobj, s))
+ {
+ if (! bfd_set_section_alignment (dynobj, s, power_of_two))
+ return FALSE;
+ }
+
+ /* Define the symbol as being at this point in the section. */
+ h->root.u.def.section = s;
+ h->root.u.def.value = s->_raw_size;
+
+ /* Increment the section size to make room for the symbol. */
+ s->_raw_size += h->size;
+
+ return TRUE;
+}
+
+/* This function is called via elf32_mn10300_link_hash_traverse if we are
+ creating a shared object with -Bsymbolic. It discards the space
+ allocated to copy PC relative relocs against symbols which are
+ defined in regular objects. We allocated space for them in the
+ check_relocs routine, but we won't fill them in in the
+ relocate_section routine. */
+
+static bfd_boolean
+_bfd_mn10300_elf_discard_copies (h, info)
+ struct elf32_mn10300_link_hash_entry *h;
+ struct bfd_link_info *info;
+{
+ struct elf_mn10300_pcrel_relocs_copied *s;
+
+ /* If a symbol has been forced local or we have found a regular
+ definition for the symbolic link case, then we won't be needing
+ any relocs. */
+ if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0
+ && ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0
+ || info->symbolic))
+ {
+ for (s = h->pcrel_relocs_copied; s != NULL; s = s->next)
+ s->section->_raw_size -= s->count * sizeof (Elf32_External_Rel);
+ }
+
+ return TRUE;
+}
+
+/* Set the sizes of the dynamic sections. */
+
+static bfd_boolean
+_bfd_mn10300_elf_size_dynamic_sections (output_bfd, info)
+ bfd * output_bfd;
+ struct bfd_link_info * info;
+{
+ bfd * dynobj;
+ asection * s;
+ bfd_boolean plt;
+ bfd_boolean relocs;
+ bfd_boolean reltext;
+
+ dynobj = elf_hash_table (info)->dynobj;
+ BFD_ASSERT (dynobj != NULL);
+
+ if (elf_hash_table (info)->dynamic_sections_created)
+ {
+ /* Set the contents of the .interp section to the interpreter. */
+ if (! info->shared)
+ {
+ s = bfd_get_section_by_name (dynobj, ".interp");
+ BFD_ASSERT (s != NULL);
+ s->_raw_size = sizeof ELF_DYNAMIC_INTERPRETER;
+ s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
+ }
+ }
+ else
+ {
+ /* We may have created entries in the .rela.got section.
+ However, if we are not creating the dynamic sections, we will
+ not actually use these entries. Reset the size of .rela.got,
+ which will cause it to get stripped from the output file
+ below. */
+ s = bfd_get_section_by_name (dynobj, ".rela.got");
+ if (s != NULL)
+ s->_raw_size = 0;
+ }
+
+ /* If this is a -Bsymbolic shared link, then we need to discard all
+ PC relative relocs against symbols defined in a regular object.
+ We allocated space for them in the check_relocs routine, but we
+ will not fill them in in the relocate_section routine. */
+ if (info->shared && info->symbolic)
+ elf32_mn10300_link_hash_traverse (elf32_mn10300_hash_table (info),
+ _bfd_mn10300_elf_discard_copies,
+ info);
+
+ /* The check_relocs and adjust_dynamic_symbol entry points have
+ determined the sizes of the various dynamic sections. Allocate
+ memory for them. */
+ plt = FALSE;
+ relocs = FALSE;
+ reltext = FALSE;
+ for (s = dynobj->sections; s != NULL; s = s->next)
+ {
+ const char * name;
+ bfd_boolean strip;
+
+ if ((s->flags & SEC_LINKER_CREATED) == 0)
+ continue;
+
+ /* It's OK to base decisions on the section name, because none
+ of the dynobj section names depend upon the input files. */
+ name = bfd_get_section_name (dynobj, s);
+
+ strip = FALSE;
+
+ if (strcmp (name, ".plt") == 0)
+ {
+ if (s->_raw_size == 0)
+ /* Strip this section if we don't need it; see the
+ comment below. */
+ strip = TRUE;
+ else
+ /* Remember whether there is a PLT. */
+ plt = TRUE;
+ }
+ else if (strncmp (name, ".rela", 5) == 0)
+ {
+ if (s->_raw_size == 0)
+ {
+ /* If we don't need this section, strip it from the
+ output file. This is mostly to handle .rela.bss and
+ .rela.plt. We must create both sections in
+ create_dynamic_sections, because they must be created
+ before the linker maps input sections to output
+ sections. The linker does that before
+ adjust_dynamic_symbol is called, and it is that
+ function which decides whether anything needs to go
+ into these sections. */
+ strip = TRUE;
+ }
+ else
+ {
+ asection * target;
+
+ /* Remember whether there are any reloc sections other
+ than .rela.plt. */
+ if (strcmp (name, ".rela.plt") != 0)
+ {
+ const char * outname;
+
+ relocs = TRUE;
+
+ /* If this relocation section applies to a read only
+ section, then we probably need a DT_TEXTREL
+ entry. The entries in the .rela.plt section
+ really apply to the .got section, which we
+ created ourselves and so know is not readonly. */
+ outname = bfd_get_section_name (output_bfd,
+ s->output_section);
+ target = bfd_get_section_by_name (output_bfd, outname + 5);
+ if (target != NULL
+ && (target->flags & SEC_READONLY) != 0
+ && (target->flags & SEC_ALLOC) != 0)
+ reltext = TRUE;
+ }
+
+ /* We use the reloc_count field as a counter if we need
+ to copy relocs into the output file. */
+ s->reloc_count = 0;
+ }
+ }
+ else if (strncmp (name, ".got", 4) != 0)
+ /* It's not one of our sections, so don't allocate space. */
+ continue;
+
+ if (strip)
+ {
+ _bfd_strip_section_from_output (info, s);
+ continue;
+ }
+
+ /* Allocate memory for the section contents. We use bfd_zalloc
+ here in case unused entries are not reclaimed before the
+ section's contents are written out. This should not happen,
+ but this way if it does, we get a R_MN10300_NONE reloc
+ instead of garbage. */
+ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
+ if (s->contents == NULL && s->_raw_size != 0)
+ return FALSE;
+ }
+
+ if (elf_hash_table (info)->dynamic_sections_created)
+ {
+ /* Add some entries to the .dynamic section. We fill in the
+ values later, in _bfd_mn10300_elf_finish_dynamic_sections,
+ but we must add the entries now so that we get the correct
+ size for the .dynamic section. The DT_DEBUG entry is filled
+ in by the dynamic linker and used by the debugger. */
+ if (! info->shared)
+ {
+ if (! bfd_elf32_add_dynamic_entry (info, DT_DEBUG, 0))
+ return FALSE;
+ }
+
+ if (plt)
+ {
+ if (! bfd_elf32_add_dynamic_entry (info, DT_PLTGOT, 0)
+ || ! bfd_elf32_add_dynamic_entry (info, DT_PLTRELSZ, 0)
+ || ! bfd_elf32_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
+ || ! bfd_elf32_add_dynamic_entry (info, DT_JMPREL, 0))
+ return FALSE;
+ }
+
+ if (relocs)
+ {
+ if (! bfd_elf32_add_dynamic_entry (info, DT_RELA, 0)
+ || ! bfd_elf32_add_dynamic_entry (info, DT_RELASZ, 0)
+ || ! bfd_elf32_add_dynamic_entry (info, DT_RELAENT,
+ sizeof (Elf32_External_Rela)))
+ return FALSE;
+ }
+
+ if (reltext)
+ {
+ if (! bfd_elf32_add_dynamic_entry (info, DT_TEXTREL, 0))
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/* Finish up dynamic symbol handling. We set the contents of various
+ dynamic sections here. */
+
+static bfd_boolean
+_bfd_mn10300_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
+ bfd * output_bfd;
+ struct bfd_link_info * info;
+ struct elf_link_hash_entry * h;
+ Elf_Internal_Sym * sym;
+{
+ bfd * dynobj;
+
+ dynobj = elf_hash_table (info)->dynobj;
+
+ if (h->plt.offset != (bfd_vma) -1)
+ {
+ asection * splt;
+ asection * sgot;
+ asection * srel;
+ bfd_vma plt_index;
+ bfd_vma got_offset;
+ Elf_Internal_Rela rel;
+
+ /* This symbol has an entry in the procedure linkage table. Set
+ it up. */
+
+ BFD_ASSERT (h->dynindx != -1);
+
+ splt = bfd_get_section_by_name (dynobj, ".plt");
+ sgot = bfd_get_section_by_name (dynobj, ".got.plt");
+ srel = bfd_get_section_by_name (dynobj, ".rela.plt");
+ BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL);
+
+ /* Get the index in the procedure linkage table which
+ corresponds to this symbol. This is the index of this symbol
+ in all the symbols for which we are making plt entries. The
+ first entry in the procedure linkage table is reserved. */
+ plt_index = ((h->plt.offset - elf_mn10300_sizeof_plt0 (info))
+ / elf_mn10300_sizeof_plt (info));
+
+ /* Get the offset into the .got table of the entry that
+ corresponds to this function. Each .got entry is 4 bytes.
+ The first three are reserved. */
+ got_offset = (plt_index + 3) * 4;
+
+ /* Fill in the entry in the procedure linkage table. */
+ if (! info->shared)
+ {
+ memcpy (splt->contents + h->plt.offset, elf_mn10300_plt_entry,
+ elf_mn10300_sizeof_plt (info));
+ bfd_put_32 (output_bfd,
+ (sgot->output_section->vma
+ + sgot->output_offset
+ + got_offset),
+ (splt->contents + h->plt.offset
+ + elf_mn10300_plt_symbol_offset (info)));
+
+ bfd_put_32 (output_bfd,
+ (1 - h->plt.offset - elf_mn10300_plt_plt0_offset (info)),
+ (splt->contents + h->plt.offset
+ + elf_mn10300_plt_plt0_offset (info)));
+ }
+ else
+ {
+ memcpy (splt->contents + h->plt.offset, elf_mn10300_pic_plt_entry,
+ elf_mn10300_sizeof_plt (info));
+
+ bfd_put_32 (output_bfd, got_offset,
+ (splt->contents + h->plt.offset
+ + elf_mn10300_plt_symbol_offset (info)));
+ }
+
+ bfd_put_32 (output_bfd, plt_index * sizeof (Elf32_External_Rela),
+ (splt->contents + h->plt.offset
+ + elf_mn10300_plt_reloc_offset (info)));
+
+ /* Fill in the entry in the global offset table. */
+ bfd_put_32 (output_bfd,
+ (splt->output_section->vma
+ + splt->output_offset
+ + h->plt.offset
+ + elf_mn10300_plt_temp_offset (info)),
+ sgot->contents + got_offset);
+
+ /* Fill in the entry in the .rela.plt section. */
+ rel.r_offset = (sgot->output_section->vma
+ + sgot->output_offset
+ + got_offset);
+ rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_JMP_SLOT);
+ rel.r_addend = 0;
+ bfd_elf32_swap_reloca_out (output_bfd, &rel,
+ (bfd_byte *) ((Elf32_External_Rela *) srel->contents
+ + plt_index));
+
+ if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ /* Mark the symbol as undefined, rather than as defined in
+ the .plt section. Leave the value alone. */
+ sym->st_shndx = SHN_UNDEF;
+ }
+
+ if (h->got.offset != (bfd_vma) -1)
+ {
+ asection * sgot;
+ asection * srel;
+ Elf_Internal_Rela rel;
+
+ /* This symbol has an entry in the global offset table. Set it up. */
+
+ sgot = bfd_get_section_by_name (dynobj, ".got");
+ srel = bfd_get_section_by_name (dynobj, ".rela.got");
+ BFD_ASSERT (sgot != NULL && srel != NULL);
+
+ rel.r_offset = (sgot->output_section->vma
+ + sgot->output_offset
+ + (h->got.offset &~ 1));
+
+ /* If this is a -Bsymbolic link, and the symbol is defined
+ locally, we just want to emit a RELATIVE reloc. Likewise if
+ the symbol was forced to be local because of a version file.
+ The entry in the global offset table will already have been
+ initialized in the relocate_section function. */
+ if (info->shared
+ && (info->symbolic || h->dynindx == -1)
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ {
+ rel.r_info = ELF32_R_INFO (0, R_MN10300_RELATIVE);
+ rel.r_addend = (h->root.u.def.value
+ + h->root.u.def.section->output_section->vma
+ + h->root.u.def.section->output_offset);
+ }
+ else
+ {
+ bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
+ rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_GLOB_DAT);
+ rel.r_addend = 0;
+ }
+
+ bfd_elf32_swap_reloca_out (output_bfd, &rel,
+ (bfd_byte *) ((Elf32_External_Rela *) srel->contents
+ + srel->reloc_count));
+ ++ srel->reloc_count;
+ }
+
+ if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0)
+ {
+ asection * s;
+ Elf_Internal_Rela rel;
+
+ /* This symbol needs a copy reloc. Set it up. */
+ BFD_ASSERT (h->dynindx != -1
+ && (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak));
+
+ s = bfd_get_section_by_name (h->root.u.def.section->owner,
+ ".rela.bss");
+ BFD_ASSERT (s != NULL);
+
+ rel.r_offset = (h->root.u.def.value
+ + h->root.u.def.section->output_section->vma
+ + h->root.u.def.section->output_offset);
+ rel.r_info = ELF32_R_INFO (h->dynindx, R_MN10300_COPY);
+ rel.r_addend = 0;
+ bfd_elf32_swap_reloca_out (output_bfd, &rel,
+ (bfd_byte *) ((Elf32_External_Rela *) s->contents
+ + s->reloc_count));
+ ++ s->reloc_count;
+ }
+
+ /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
+ if (strcmp (h->root.root.string, "_DYNAMIC") == 0
+ || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
+ sym->st_shndx = SHN_ABS;
+
+ return TRUE;
+}
+
+/* Finish up the dynamic sections. */
+
+static bfd_boolean
+_bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info)
+ bfd * output_bfd;
+ struct bfd_link_info * info;
+{
+ bfd * dynobj;
+ asection * sgot;
+ asection * sdyn;
+
+ dynobj = elf_hash_table (info)->dynobj;
+
+ sgot = bfd_get_section_by_name (dynobj, ".got.plt");
+ BFD_ASSERT (sgot != NULL);
+ sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
+
+ if (elf_hash_table (info)->dynamic_sections_created)
+ {
+ asection * splt;
+ Elf32_External_Dyn * dyncon;
+ Elf32_External_Dyn * dynconend;
+
+ BFD_ASSERT (sdyn != NULL);
+
+ dyncon = (Elf32_External_Dyn *) sdyn->contents;
+ dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->_raw_size);
+
+ for (; dyncon < dynconend; dyncon++)
+ {
+ Elf_Internal_Dyn dyn;
+ const char * name;
+ asection * s;
+
+ bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+
+ switch (dyn.d_tag)
+ {
+ default:
+ break;
+
+ case DT_PLTGOT:
+ name = ".got";
+ goto get_vma;
+
+ case DT_JMPREL:
+ name = ".rela.plt";
+ get_vma:
+ s = bfd_get_section_by_name (output_bfd, name);
+ BFD_ASSERT (s != NULL);
+ dyn.d_un.d_ptr = s->vma;
+ bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+ break;
+
+ case DT_PLTRELSZ:
+ s = bfd_get_section_by_name (output_bfd, ".rela.plt");
+ BFD_ASSERT (s != NULL);
+ if (s->_cooked_size != 0)
+ dyn.d_un.d_val = s->_cooked_size;
+ else
+ dyn.d_un.d_val = s->_raw_size;
+ bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+ break;
+
+ case DT_RELASZ:
+ /* My reading of the SVR4 ABI indicates that the
+ procedure linkage table relocs (DT_JMPREL) should be
+ included in the overall relocs (DT_RELA). This is
+ what Solaris does. However, UnixWare can not handle
+ that case. Therefore, we override the DT_RELASZ entry
+ here to make it not include the JMPREL relocs. Since
+ the linker script arranges for .rela.plt to follow all
+ other relocation sections, we don't have to worry
+ about changing the DT_RELA entry. */
+ s = bfd_get_section_by_name (output_bfd, ".rela.plt");
+ if (s != NULL)
+ {
+ if (s->_cooked_size != 0)
+ dyn.d_un.d_val -= s->_cooked_size;
+ else
+ dyn.d_un.d_val -= s->_raw_size;
+ }
+ bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+ break;
+ }
+ }
+
+ /* Fill in the first entry in the procedure linkage table. */
+ splt = bfd_get_section_by_name (dynobj, ".plt");
+ if (splt && splt->_raw_size > 0)
+ {
+ if (info->shared)
+ {
+ memcpy (splt->contents, elf_mn10300_pic_plt_entry,
+ elf_mn10300_sizeof_plt (info));
+ }
+ else
+ {
+ memcpy (splt->contents, elf_mn10300_plt0_entry, PLT0_ENTRY_SIZE);
+ bfd_put_32 (output_bfd,
+ sgot->output_section->vma + sgot->output_offset + 4,
+ splt->contents + elf_mn10300_plt0_gotid_offset (info));
+ bfd_put_32 (output_bfd,
+ sgot->output_section->vma + sgot->output_offset + 8,
+ splt->contents + elf_mn10300_plt0_linker_offset (info));
+ }
+
+ /* UnixWare sets the entsize of .plt to 4, although that doesn't
+ really seem like the right value. */
+ elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
+ }
+ }
+
+ /* Fill in the first three entries in the global offset table. */
+ if (sgot->_raw_size > 0)
+ {
+ if (sdyn == NULL)
+ bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+ else
+ bfd_put_32 (output_bfd,
+ sdyn->output_section->vma + sdyn->output_offset,
+ sgot->contents);
+ bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 4);
+ bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 8);
+ }
+
+ elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
+
+ return TRUE;
+}
+
+#ifndef ELF_ARCH
#define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec
#define TARGET_LITTLE_NAME "elf32-mn10300"
#define ELF_ARCH bfd_arch_mn10300
#define ELF_MACHINE_CODE EM_MN10300
#define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300
#define ELF_MAXPAGESIZE 0x1000
+#endif
#define elf_info_to_howto mn10300_info_to_howto
#define elf_info_to_howto_rel 0
@@ -2834,7 +4846,9 @@ _bfd_mn10300_elf_merge_private_bfd_data (ibfd, obfd)
#define bfd_elf32_bfd_link_hash_table_free \
elf32_mn10300_link_hash_table_free
+#ifndef elf_symbol_leading_char
#define elf_symbol_leading_char '_'
+#endif
/* So we can set bits in e_flags. */
#define elf_backend_final_write_processing \
@@ -2844,4 +4858,22 @@ _bfd_mn10300_elf_merge_private_bfd_data (ibfd, obfd)
#define bfd_elf32_bfd_merge_private_bfd_data \
_bfd_mn10300_elf_merge_private_bfd_data
+#define elf_backend_can_gc_sections 1
+#define elf_backend_create_dynamic_sections \
+ _bfd_mn10300_elf_create_dynamic_sections
+#define elf_backend_adjust_dynamic_symbol \
+ _bfd_mn10300_elf_adjust_dynamic_symbol
+#define elf_backend_size_dynamic_sections \
+ _bfd_mn10300_elf_size_dynamic_sections
+#define elf_backend_finish_dynamic_symbol \
+ _bfd_mn10300_elf_finish_dynamic_symbol
+#define elf_backend_finish_dynamic_sections \
+ _bfd_mn10300_elf_finish_dynamic_sections
+
+#define elf_backend_want_got_plt 1
+#define elf_backend_plt_readonly 1
+#define elf_backend_want_plt_sym 0
+#define elf_backend_got_header_size 12
+#define elf_backend_plt_header_size PLT0_ENTRY_SIZE
+
#include "elf32-target.h"
diff --git a/bfd/elf-strtab.c b/bfd/elf-strtab.c
index 3bd5531..764ab54 100644
--- a/bfd/elf-strtab.c
+++ b/bfd/elf-strtab.c
@@ -57,53 +57,46 @@ struct elf_strtab_hash
struct elf_strtab_hash_entry **array;
};
-static struct bfd_hash_entry *elf_strtab_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static int cmplengthentry PARAMS ((const PTR, const PTR));
-static int last4_eq PARAMS ((const PTR, const PTR));
-
/* Routine to create an entry in a section merge hashtab. */
static struct bfd_hash_entry *
-elf_strtab_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+elf_strtab_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
- struct elf_strtab_hash_entry *ret = (struct elf_strtab_hash_entry *) entry;
-
/* Allocate the structure if it has not already been allocated by a
subclass. */
- if (ret == (struct elf_strtab_hash_entry *) NULL)
- ret = ((struct elf_strtab_hash_entry *)
- bfd_hash_allocate (table, sizeof (struct elf_strtab_hash_entry)));
- if (ret == (struct elf_strtab_hash_entry *) NULL)
+ if (entry == NULL)
+ entry = bfd_hash_allocate (table, sizeof (struct elf_strtab_hash_entry));
+ if (entry == NULL)
return NULL;
/* Call the allocation method of the superclass. */
- ret = ((struct elf_strtab_hash_entry *)
- bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
+ entry = bfd_hash_newfunc (entry, table, string);
- if (ret)
+ if (entry)
{
/* Initialize the local fields. */
+ struct elf_strtab_hash_entry *ret;
+
+ ret = (struct elf_strtab_hash_entry *) entry;
ret->u.index = -1;
ret->refcount = 0;
ret->len = 0;
}
- return (struct bfd_hash_entry *)ret;
+ return entry;
}
/* Create a new hash table. */
struct elf_strtab_hash *
-_bfd_elf_strtab_init ()
+_bfd_elf_strtab_init (void)
{
struct elf_strtab_hash *table;
bfd_size_type amt = sizeof (struct elf_strtab_hash);
- table = (struct elf_strtab_hash *) bfd_malloc (amt);
+ table = bfd_malloc (amt);
if (table == NULL)
return NULL;
@@ -117,8 +110,7 @@ _bfd_elf_strtab_init ()
table->size = 1;
table->alloced = 64;
amt = sizeof (struct elf_strtab_hasn_entry *);
- table->array = (struct elf_strtab_hash_entry **)
- bfd_malloc (table->alloced * amt);
+ table->array = bfd_malloc (table->alloced * amt);
if (table->array == NULL)
{
free (table);
@@ -133,8 +125,7 @@ _bfd_elf_strtab_init ()
/* Free a strtab. */
void
-_bfd_elf_strtab_free (tab)
- struct elf_strtab_hash *tab;
+_bfd_elf_strtab_free (struct elf_strtab_hash *tab)
{
bfd_hash_table_free (&tab->table);
free (tab->array);
@@ -145,10 +136,9 @@ _bfd_elf_strtab_free (tab)
already present. */
bfd_size_type
-_bfd_elf_strtab_add (tab, str, copy)
- struct elf_strtab_hash *tab;
- const char *str;
- bfd_boolean copy;
+_bfd_elf_strtab_add (struct elf_strtab_hash *tab,
+ const char *str,
+ bfd_boolean copy)
{
register struct elf_strtab_hash_entry *entry;
@@ -172,8 +162,7 @@ _bfd_elf_strtab_add (tab, str, copy)
{
bfd_size_type amt = sizeof (struct elf_strtab_hash_entry *);
tab->alloced *= 2;
- tab->array = (struct elf_strtab_hash_entry **)
- bfd_realloc (tab->array, tab->alloced * amt);
+ tab->array = bfd_realloc (tab->array, tab->alloced * amt);
if (tab->array == NULL)
return (bfd_size_type) -1;
}
@@ -185,9 +174,7 @@ _bfd_elf_strtab_add (tab, str, copy)
}
void
-_bfd_elf_strtab_addref (tab, idx)
- struct elf_strtab_hash *tab;
- bfd_size_type idx;
+_bfd_elf_strtab_addref (struct elf_strtab_hash *tab, bfd_size_type idx)
{
if (idx == 0 || idx == (bfd_size_type) -1)
return;
@@ -197,9 +184,7 @@ _bfd_elf_strtab_addref (tab, idx)
}
void
-_bfd_elf_strtab_delref (tab, idx)
- struct elf_strtab_hash *tab;
- bfd_size_type idx;
+_bfd_elf_strtab_delref (struct elf_strtab_hash *tab, bfd_size_type idx)
{
if (idx == 0 || idx == (bfd_size_type) -1)
return;
@@ -210,8 +195,7 @@ _bfd_elf_strtab_delref (tab, idx)
}
void
-_bfd_elf_strtab_clear_all_refs (tab)
- struct elf_strtab_hash *tab;
+_bfd_elf_strtab_clear_all_refs (struct elf_strtab_hash *tab)
{
bfd_size_type idx;
@@ -220,16 +204,13 @@ _bfd_elf_strtab_clear_all_refs (tab)
}
bfd_size_type
-_bfd_elf_strtab_size (tab)
- struct elf_strtab_hash *tab;
+_bfd_elf_strtab_size (struct elf_strtab_hash *tab)
{
return tab->sec_size ? tab->sec_size : tab->size;
}
bfd_size_type
-_bfd_elf_strtab_offset (tab, idx)
- struct elf_strtab_hash *tab;
- bfd_size_type idx;
+_bfd_elf_strtab_offset (struct elf_strtab_hash *tab, bfd_size_type idx)
{
struct elf_strtab_hash_entry *entry;
@@ -244,9 +225,7 @@ _bfd_elf_strtab_offset (tab, idx)
}
bfd_boolean
-_bfd_elf_strtab_emit (abfd, tab)
- register bfd *abfd;
- struct elf_strtab_hash *tab;
+_bfd_elf_strtab_emit (register bfd *abfd, struct elf_strtab_hash *tab)
{
bfd_size_type off = 1, i;
@@ -264,7 +243,7 @@ _bfd_elf_strtab_emit (abfd, tab)
if (len == 0)
continue;
- if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len)
+ if (bfd_bwrite (str, len, abfd) != len)
return FALSE;
off += len;
@@ -277,12 +256,10 @@ _bfd_elf_strtab_emit (abfd, tab)
/* Compare two elf_strtab_hash_entry structures. This is called via qsort. */
static int
-cmplengthentry (a, b)
- const PTR a;
- const PTR b;
+cmplengthentry (const void *a, const void *b)
{
- struct elf_strtab_hash_entry * A = *(struct elf_strtab_hash_entry **) a;
- struct elf_strtab_hash_entry * B = *(struct elf_strtab_hash_entry **) b;
+ struct elf_strtab_hash_entry *A = *(struct elf_strtab_hash_entry **) a;
+ struct elf_strtab_hash_entry *B = *(struct elf_strtab_hash_entry **) b;
if (A->len < B->len)
return 1;
@@ -293,12 +270,10 @@ cmplengthentry (a, b)
}
static int
-last4_eq (a, b)
- const PTR a;
- const PTR b;
+last4_eq (const void *a, const void *b)
{
- struct elf_strtab_hash_entry * A = (struct elf_strtab_hash_entry *) a;
- struct elf_strtab_hash_entry * B = (struct elf_strtab_hash_entry *) b;
+ const struct elf_strtab_hash_entry *A = a;
+ const struct elf_strtab_hash_entry *B = b;
if (memcmp (A->root.string + A->len - 5, B->root.string + B->len - 5, 4)
!= 0)
@@ -318,8 +293,7 @@ last4_eq (a, b)
merging strings matching suffixes of longer strings if possible. */
void
-_bfd_elf_strtab_finalize (tab)
- struct elf_strtab_hash *tab;
+_bfd_elf_strtab_finalize (struct elf_strtab_hash *tab)
{
struct elf_strtab_hash_entry **array, **a, **end, *e;
htab_t last4tab = NULL;
@@ -335,7 +309,7 @@ _bfd_elf_strtab_finalize (tab)
/* Now sort the strings by length, longest first. */
array = NULL;
amt = tab->size * sizeof (struct elf_strtab_hash_entry *);
- array = (struct elf_strtab_hash_entry **) bfd_malloc (amt);
+ array = bfd_malloc (amt);
if (array == NULL)
goto alloc_failure;
@@ -365,7 +339,7 @@ _bfd_elf_strtab_finalize (tab)
unsigned int c;
unsigned int j;
const unsigned char *s;
- PTR *p;
+ void **p;
e = *a;
if (e->len > 4)
@@ -385,13 +359,13 @@ _bfd_elf_strtab_finalize (tab)
{
struct elf_strtab_hash_entry *ent;
- ent = (struct elf_strtab_hash_entry *) *p;
+ ent = *p;
e->u.suffix = ent;
e->len = 0;
continue;
}
else
- *p = (PTR) e;
+ *p = e;
}
else
{
diff --git a/bfd/elf.c b/bfd/elf.c
index 906e13d..3868cff 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -40,69 +40,11 @@
#include "elf-bfd.h"
#include "libiberty.h"
-static INLINE struct elf_segment_map *make_mapping
- PARAMS ((bfd *, asection **, unsigned int, unsigned int, bfd_boolean));
-static bfd_boolean map_sections_to_segments
- PARAMS ((bfd *));
-static int elf_sort_sections
- PARAMS ((const PTR, const PTR));
-static bfd_boolean assign_file_positions_for_segments
- PARAMS ((bfd *));
-static bfd_boolean assign_file_positions_except_relocs
- PARAMS ((bfd *));
-static bfd_boolean prep_headers
- PARAMS ((bfd *));
-static bfd_boolean swap_out_syms
- PARAMS ((bfd *, struct bfd_strtab_hash **, int));
-static bfd_boolean copy_private_bfd_data
- PARAMS ((bfd *, bfd *));
-static char *elf_read
- PARAMS ((bfd *, file_ptr, bfd_size_type));
-static const char *group_signature
- PARAMS ((bfd *, Elf_Internal_Shdr *));
-static bfd_boolean setup_group
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static void merge_sections_remove_hook
- PARAMS ((bfd *, asection *));
-static void elf_fake_sections
- PARAMS ((bfd *, asection *, PTR));
-static bfd_boolean assign_section_numbers
- PARAMS ((bfd *));
-static INLINE int sym_is_global
- PARAMS ((bfd *, asymbol *));
-static bfd_boolean elf_map_symbols
- PARAMS ((bfd *));
-static bfd_size_type get_program_header_size
- PARAMS ((bfd *));
-static bfd_boolean elfcore_read_notes
- PARAMS ((bfd *, file_ptr, bfd_size_type));
-static bfd_boolean elf_find_function
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **));
-static int elfcore_make_pid
- PARAMS ((bfd *));
-static bfd_boolean elfcore_maybe_make_sect
- PARAMS ((bfd *, char *, asection *));
-static bfd_boolean elfcore_make_note_pseudosection
- PARAMS ((bfd *, char *, Elf_Internal_Note *));
-static bfd_boolean elfcore_grok_prfpreg
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elfcore_grok_prxfpreg
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elfcore_grok_note
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elfcore_netbsd_get_lwpid
- PARAMS ((Elf_Internal_Note *, int *));
-static bfd_boolean elfcore_grok_netbsd_procinfo
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elfcore_grok_netbsd_note
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elfcore_grok_nto_gregs
- PARAMS ((bfd *, Elf_Internal_Note *, pid_t));
-static bfd_boolean elfcore_grok_nto_status
- PARAMS ((bfd *, Elf_Internal_Note *, pid_t *));
-static bfd_boolean elfcore_grok_nto_note
- PARAMS ((bfd *, Elf_Internal_Note *));
+static int elf_sort_sections (const void *, const void *);
+static bfd_boolean assign_file_positions_except_relocs (bfd *);
+static bfd_boolean prep_headers (bfd *);
+static bfd_boolean swap_out_syms (bfd *, struct bfd_strtab_hash **, int) ;
+static bfd_boolean elfcore_read_notes (bfd *, file_ptr, bfd_size_type) ;
/* Swap version information in and out. The version information is
currently size independent. If that ever changes, this code will
@@ -111,10 +53,9 @@ static bfd_boolean elfcore_grok_nto_note
/* Swap in a Verdef structure. */
void
-_bfd_elf_swap_verdef_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Verdef *src;
- Elf_Internal_Verdef *dst;
+_bfd_elf_swap_verdef_in (bfd *abfd,
+ const Elf_External_Verdef *src,
+ Elf_Internal_Verdef *dst)
{
dst->vd_version = H_GET_16 (abfd, src->vd_version);
dst->vd_flags = H_GET_16 (abfd, src->vd_flags);
@@ -128,10 +69,9 @@ _bfd_elf_swap_verdef_in (abfd, src, dst)
/* Swap out a Verdef structure. */
void
-_bfd_elf_swap_verdef_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Verdef *src;
- Elf_External_Verdef *dst;
+_bfd_elf_swap_verdef_out (bfd *abfd,
+ const Elf_Internal_Verdef *src,
+ Elf_External_Verdef *dst)
{
H_PUT_16 (abfd, src->vd_version, dst->vd_version);
H_PUT_16 (abfd, src->vd_flags, dst->vd_flags);
@@ -145,10 +85,9 @@ _bfd_elf_swap_verdef_out (abfd, src, dst)
/* Swap in a Verdaux structure. */
void
-_bfd_elf_swap_verdaux_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Verdaux *src;
- Elf_Internal_Verdaux *dst;
+_bfd_elf_swap_verdaux_in (bfd *abfd,
+ const Elf_External_Verdaux *src,
+ Elf_Internal_Verdaux *dst)
{
dst->vda_name = H_GET_32 (abfd, src->vda_name);
dst->vda_next = H_GET_32 (abfd, src->vda_next);
@@ -157,10 +96,9 @@ _bfd_elf_swap_verdaux_in (abfd, src, dst)
/* Swap out a Verdaux structure. */
void
-_bfd_elf_swap_verdaux_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Verdaux *src;
- Elf_External_Verdaux *dst;
+_bfd_elf_swap_verdaux_out (bfd *abfd,
+ const Elf_Internal_Verdaux *src,
+ Elf_External_Verdaux *dst)
{
H_PUT_32 (abfd, src->vda_name, dst->vda_name);
H_PUT_32 (abfd, src->vda_next, dst->vda_next);
@@ -169,10 +107,9 @@ _bfd_elf_swap_verdaux_out (abfd, src, dst)
/* Swap in a Verneed structure. */
void
-_bfd_elf_swap_verneed_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Verneed *src;
- Elf_Internal_Verneed *dst;
+_bfd_elf_swap_verneed_in (bfd *abfd,
+ const Elf_External_Verneed *src,
+ Elf_Internal_Verneed *dst)
{
dst->vn_version = H_GET_16 (abfd, src->vn_version);
dst->vn_cnt = H_GET_16 (abfd, src->vn_cnt);
@@ -184,10 +121,9 @@ _bfd_elf_swap_verneed_in (abfd, src, dst)
/* Swap out a Verneed structure. */
void
-_bfd_elf_swap_verneed_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Verneed *src;
- Elf_External_Verneed *dst;
+_bfd_elf_swap_verneed_out (bfd *abfd,
+ const Elf_Internal_Verneed *src,
+ Elf_External_Verneed *dst)
{
H_PUT_16 (abfd, src->vn_version, dst->vn_version);
H_PUT_16 (abfd, src->vn_cnt, dst->vn_cnt);
@@ -199,10 +135,9 @@ _bfd_elf_swap_verneed_out (abfd, src, dst)
/* Swap in a Vernaux structure. */
void
-_bfd_elf_swap_vernaux_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Vernaux *src;
- Elf_Internal_Vernaux *dst;
+_bfd_elf_swap_vernaux_in (bfd *abfd,
+ const Elf_External_Vernaux *src,
+ Elf_Internal_Vernaux *dst)
{
dst->vna_hash = H_GET_32 (abfd, src->vna_hash);
dst->vna_flags = H_GET_16 (abfd, src->vna_flags);
@@ -214,10 +149,9 @@ _bfd_elf_swap_vernaux_in (abfd, src, dst)
/* Swap out a Vernaux structure. */
void
-_bfd_elf_swap_vernaux_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Vernaux *src;
- Elf_External_Vernaux *dst;
+_bfd_elf_swap_vernaux_out (bfd *abfd,
+ const Elf_Internal_Vernaux *src,
+ Elf_External_Vernaux *dst)
{
H_PUT_32 (abfd, src->vna_hash, dst->vna_hash);
H_PUT_16 (abfd, src->vna_flags, dst->vna_flags);
@@ -229,10 +163,9 @@ _bfd_elf_swap_vernaux_out (abfd, src, dst)
/* Swap in a Versym structure. */
void
-_bfd_elf_swap_versym_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Versym *src;
- Elf_Internal_Versym *dst;
+_bfd_elf_swap_versym_in (bfd *abfd,
+ const Elf_External_Versym *src,
+ Elf_Internal_Versym *dst)
{
dst->vs_vers = H_GET_16 (abfd, src->vs_vers);
}
@@ -240,10 +173,9 @@ _bfd_elf_swap_versym_in (abfd, src, dst)
/* Swap out a Versym structure. */
void
-_bfd_elf_swap_versym_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Versym *src;
- Elf_External_Versym *dst;
+_bfd_elf_swap_versym_out (bfd *abfd,
+ const Elf_Internal_Versym *src,
+ Elf_External_Versym *dst)
{
H_PUT_16 (abfd, src->vs_vers, dst->vs_vers);
}
@@ -252,8 +184,7 @@ _bfd_elf_swap_versym_out (abfd, src, dst)
cause invalid hash tables to be generated. */
unsigned long
-bfd_elf_hash (namearg)
- const char *namearg;
+bfd_elf_hash (const char *namearg)
{
const unsigned char *name = (const unsigned char *) namearg;
unsigned long h = 0;
@@ -279,10 +210,7 @@ bfd_elf_hash (namearg)
buffer. */
static char *
-elf_read (abfd, offset, size)
- bfd *abfd;
- file_ptr offset;
- bfd_size_type size;
+elf_read (bfd *abfd, file_ptr offset, bfd_size_type size)
{
char *buf;
@@ -290,7 +218,7 @@ elf_read (abfd, offset, size)
return NULL;
if (bfd_seek (abfd, offset, SEEK_SET) != 0)
return NULL;
- if (bfd_bread ((PTR) buf, size, abfd) != size)
+ if (bfd_bread (buf, size, abfd) != size)
{
if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_file_truncated);
@@ -300,13 +228,11 @@ elf_read (abfd, offset, size)
}
bfd_boolean
-bfd_elf_mkobject (abfd)
- bfd *abfd;
+bfd_elf_mkobject (bfd *abfd)
{
/* This just does initialization. */
/* coff_mkobject zalloc's space for tdata.coff_obj_data ... */
- bfd_size_type amt = sizeof (struct elf_obj_tdata);
- elf_tdata (abfd) = (struct elf_obj_tdata *) bfd_zalloc (abfd, amt);
+ elf_tdata (abfd) = bfd_zalloc (abfd, sizeof (struct elf_obj_tdata));
if (elf_tdata (abfd) == 0)
return FALSE;
/* Since everything is done at close time, do we need any
@@ -316,17 +242,14 @@ bfd_elf_mkobject (abfd)
}
bfd_boolean
-bfd_elf_mkcorefile (abfd)
- bfd *abfd;
+bfd_elf_mkcorefile (bfd *abfd)
{
/* I think this can be done just like an object file. */
return bfd_elf_mkobject (abfd);
}
char *
-bfd_elf_get_str_section (abfd, shindex)
- bfd *abfd;
- unsigned int shindex;
+bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
{
Elf_Internal_Shdr **i_shdrp;
char *shstrtab = NULL;
@@ -344,16 +267,15 @@ bfd_elf_get_str_section (abfd, shindex)
offset = i_shdrp[shindex]->sh_offset;
shstrtabsize = i_shdrp[shindex]->sh_size;
shstrtab = elf_read (abfd, offset, shstrtabsize);
- i_shdrp[shindex]->contents = (PTR) shstrtab;
+ i_shdrp[shindex]->contents = shstrtab;
}
return shstrtab;
}
char *
-bfd_elf_string_from_elf_section (abfd, shindex, strindex)
- bfd *abfd;
- unsigned int shindex;
- unsigned int strindex;
+bfd_elf_string_from_elf_section (bfd *abfd,
+ unsigned int shindex,
+ unsigned int strindex)
{
Elf_Internal_Shdr *hdr;
@@ -388,24 +310,22 @@ bfd_elf_string_from_elf_section (abfd, shindex, strindex)
symbols, and symbol section index extensions, respectively. */
Elf_Internal_Sym *
-bfd_elf_get_elf_syms (ibfd, symtab_hdr, symcount, symoffset,
- intsym_buf, extsym_buf, extshndx_buf)
- bfd *ibfd;
- Elf_Internal_Shdr *symtab_hdr;
- size_t symcount;
- size_t symoffset;
- Elf_Internal_Sym *intsym_buf;
- PTR extsym_buf;
- Elf_External_Sym_Shndx *extshndx_buf;
+bfd_elf_get_elf_syms (bfd *ibfd,
+ Elf_Internal_Shdr *symtab_hdr,
+ size_t symcount,
+ size_t symoffset,
+ Elf_Internal_Sym *intsym_buf,
+ void *extsym_buf,
+ Elf_External_Sym_Shndx *extshndx_buf)
{
Elf_Internal_Shdr *shndx_hdr;
- PTR alloc_ext;
+ void *alloc_ext;
const bfd_byte *esym;
Elf_External_Sym_Shndx *alloc_extshndx;
Elf_External_Sym_Shndx *shndx;
Elf_Internal_Sym *isym;
Elf_Internal_Sym *isymend;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
size_t extsym_size;
bfd_size_type amt;
file_ptr pos;
@@ -446,7 +366,7 @@ bfd_elf_get_elf_syms (ibfd, symtab_hdr, symcount, symoffset,
pos = shndx_hdr->sh_offset + symoffset * sizeof (Elf_External_Sym_Shndx);
if (extshndx_buf == NULL)
{
- alloc_extshndx = (Elf_External_Sym_Shndx *) bfd_malloc (amt);
+ alloc_extshndx = bfd_malloc (amt);
extshndx_buf = alloc_extshndx;
}
if (extshndx_buf == NULL
@@ -461,7 +381,7 @@ bfd_elf_get_elf_syms (ibfd, symtab_hdr, symcount, symoffset,
if (intsym_buf == NULL)
{
bfd_size_type amt = symcount * sizeof (Elf_Internal_Sym);
- intsym_buf = (Elf_Internal_Sym *) bfd_malloc (amt);
+ intsym_buf = bfd_malloc (amt);
if (intsym_buf == NULL)
goto out;
}
@@ -471,7 +391,7 @@ bfd_elf_get_elf_syms (ibfd, symtab_hdr, symcount, symoffset,
for (esym = extsym_buf, isym = intsym_buf, shndx = extshndx_buf;
isym < isymend;
esym += extsym_size, isym++, shndx = shndx != NULL ? shndx + 1 : NULL)
- (*bed->s->swap_symbol_in) (ibfd, esym, (const PTR) shndx, isym);
+ (*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym);
out:
if (alloc_ext != NULL)
@@ -484,9 +404,7 @@ bfd_elf_get_elf_syms (ibfd, symtab_hdr, symcount, symoffset,
/* Look up a symbol name. */
const char *
-bfd_elf_local_sym_name (abfd, isym)
- bfd *abfd;
- Elf_Internal_Sym *isym;
+bfd_elf_local_sym_name (bfd *abfd, Elf_Internal_Sym *isym)
{
unsigned int iname = isym->st_name;
unsigned int shindex = elf_tdata (abfd)->symtab_hdr.sh_link;
@@ -512,9 +430,7 @@ typedef union elf_internal_group {
signature just a string? */
static const char *
-group_signature (abfd, ghdr)
- bfd *abfd;
- Elf_Internal_Shdr *ghdr;
+group_signature (bfd *abfd, Elf_Internal_Shdr *ghdr)
{
Elf_Internal_Shdr *hdr;
unsigned char esym[sizeof (Elf64_External_Sym)];
@@ -537,10 +453,7 @@ group_signature (abfd, ghdr)
/* Set next_in_group list pointer, and group name for NEWSECT. */
static bfd_boolean
-setup_group (abfd, hdr, newsect)
- bfd *abfd;
- Elf_Internal_Shdr *hdr;
- asection *newsect;
+setup_group (bfd *abfd, Elf_Internal_Shdr *hdr, asection *newsect)
{
unsigned int num_group = elf_tdata (abfd)->num_group;
@@ -699,9 +612,7 @@ setup_group (abfd, hdr, newsect)
}
bfd_boolean
-bfd_elf_discard_group (abfd, group)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *group;
+bfd_elf_discard_group (bfd *abfd ATTRIBUTE_UNUSED, asection *group)
{
asection *first = elf_next_in_group (group);
asection *s = first;
@@ -721,14 +632,13 @@ bfd_elf_discard_group (abfd, group)
BFD section in the bfd_section field of the header. */
bfd_boolean
-_bfd_elf_make_section_from_shdr (abfd, hdr, name)
- bfd *abfd;
- Elf_Internal_Shdr *hdr;
- const char *name;
+_bfd_elf_make_section_from_shdr (bfd *abfd,
+ Elf_Internal_Shdr *hdr,
+ const char *name)
{
asection *newsect;
flagword flags;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
if (hdr->bfd_section != NULL)
{
@@ -741,6 +651,10 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
if (newsect == NULL)
return FALSE;
+ /* Always use the real type/flags. */
+ elf_section_type (newsect) = hdr->sh_type;
+ elf_section_flags (newsect) = hdr->sh_flags;
+
newsect->filepos = hdr->sh_offset;
if (! bfd_set_section_vma (abfd, newsect, hdr->sh_addr)
@@ -905,9 +819,7 @@ DESCRIPTION
*/
struct elf_internal_shdr *
-bfd_elf_find_section (abfd, name)
- bfd *abfd;
- char *name;
+bfd_elf_find_section (bfd *abfd, char *name)
{
Elf_Internal_Shdr **i_shdrp;
char *shstrtab;
@@ -936,7 +848,7 @@ const char *const bfd_elf_section_type_names[] = {
"SHT_NOBITS", "SHT_REL", "SHT_SHLIB", "SHT_DYNSYM",
};
-/* ELF relocs are against symbols. If we are producing relocateable
+/* ELF relocs are against symbols. If we are producing relocatable
output, and the reloc is against an external symbol, and nothing
has given us any additional addend, the resulting reloc will also
be against the same symbol. In such a case, we don't want to
@@ -944,25 +856,18 @@ const char *const bfd_elf_section_type_names[] = {
all be done at final link time. Rather than put special case code
into bfd_perform_relocation, all the reloc types use this howto
function. It just short circuits the reloc if producing
- relocateable output against an external symbol. */
+ relocatable output against an external symbol. */
bfd_reloc_status_type
-bfd_elf_generic_reloc (abfd,
- reloc_entry,
- symbol,
- data,
- input_section,
- output_bfd,
- error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry;
- asymbol *symbol;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
-{
- if (output_bfd != (bfd *) NULL
+bfd_elf_generic_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *reloc_entry,
+ asymbol *symbol,
+ void *data ATTRIBUTE_UNUSED,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
+{
+ if (output_bfd != NULL
&& (symbol->flags & BSF_SECTION_SYM) == 0
&& (! reloc_entry->howto->partial_inplace
|| reloc_entry->addend == 0))
@@ -977,9 +882,8 @@ bfd_elf_generic_reloc (abfd,
/* Make sure sec_info_type is cleared if sec_info is cleared too. */
static void
-merge_sections_remove_hook (abfd, sec)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *sec;
+merge_sections_remove_hook (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *sec)
{
BFD_ASSERT (sec->sec_info_type == ELF_INFO_TYPE_MERGE);
sec->sec_info_type = ELF_INFO_TYPE_NONE;
@@ -988,9 +892,7 @@ merge_sections_remove_hook (abfd, sec)
/* Finish SHF_MERGE section merging. */
bfd_boolean
-_bfd_elf_merge_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_merge_sections (bfd *abfd, struct bfd_link_info *info)
{
if (!is_elf_hash_table (info))
return FALSE;
@@ -1001,9 +903,7 @@ _bfd_elf_merge_sections (abfd, info)
}
void
-_bfd_elf_link_just_syms (sec, info)
- asection *sec;
- struct bfd_link_info *info;
+_bfd_elf_link_just_syms (asection *sec, struct bfd_link_info *info)
{
sec->output_section = bfd_abs_section_ptr;
sec->output_offset = sec->vma;
@@ -1017,9 +917,7 @@ _bfd_elf_link_just_syms (sec, info)
another. */
bfd_boolean
-_bfd_elf_copy_private_bfd_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+_bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
{
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@@ -1038,11 +936,9 @@ _bfd_elf_copy_private_bfd_data (ibfd, obfd)
/* Print out the program headers. */
bfd_boolean
-_bfd_elf_print_private_bfd_data (abfd, farg)
- bfd *abfd;
- PTR farg;
+_bfd_elf_print_private_bfd_data (bfd *abfd, void *farg)
{
- FILE *f = (FILE *) farg;
+ FILE *f = farg;
Elf_Internal_Phdr *p;
asection *s;
bfd_byte *dynbuf = NULL;
@@ -1101,15 +997,14 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
unsigned long shlink;
bfd_byte *extdyn, *extdynend;
size_t extdynsize;
- void (*swap_dyn_in) PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
+ void (*swap_dyn_in) (bfd *, const void *, Elf_Internal_Dyn *);
fprintf (f, _("\nDynamic Section:\n"));
- dynbuf = (bfd_byte *) bfd_malloc (s->_raw_size);
+ dynbuf = bfd_malloc (s->_raw_size);
if (dynbuf == NULL)
goto error_return;
- if (! bfd_get_section_contents (abfd, s, (PTR) dynbuf, (file_ptr) 0,
- s->_raw_size))
+ if (! bfd_get_section_contents (abfd, s, dynbuf, 0, s->_raw_size))
goto error_return;
elfsec = _bfd_elf_section_from_bfd_section (abfd, s);
@@ -1129,7 +1024,7 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
char ab[20];
bfd_boolean stringp;
- (*swap_dyn_in) (abfd, (PTR) extdyn, &dyn);
+ (*swap_dyn_in) (abfd, extdyn, &dyn);
if (dyn.d_tag == DT_NULL)
break;
@@ -1278,13 +1173,12 @@ _bfd_elf_print_private_bfd_data (abfd, farg)
/* Display ELF-specific fields of a symbol. */
void
-bfd_elf_print_symbol (abfd, filep, symbol, how)
- bfd *abfd;
- PTR filep;
- asymbol *symbol;
- bfd_print_symbol_type how;
+bfd_elf_print_symbol (bfd *abfd,
+ void *filep,
+ asymbol *symbol,
+ bfd_print_symbol_type how)
{
- FILE *file = (FILE *) filep;
+ FILE *file = filep;
switch (how)
{
case bfd_print_symbol_name:
@@ -1299,7 +1193,7 @@ bfd_elf_print_symbol (abfd, filep, symbol, how)
{
const char *section_name;
const char *name = NULL;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
unsigned char st_other;
bfd_vma val;
@@ -1312,7 +1206,7 @@ bfd_elf_print_symbol (abfd, filep, symbol, how)
if (name == NULL)
{
name = symbol->name;
- bfd_print_symbol_vandf (abfd, (PTR) file, symbol);
+ bfd_print_symbol_vandf (abfd, file, symbol);
}
fprintf (file, " %s\t", section_name);
@@ -1401,10 +1295,9 @@ bfd_elf_print_symbol (abfd, filep, symbol, how)
/* Create an entry in an ELF linker hash table. */
struct bfd_hash_entry *
-_bfd_elf_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+_bfd_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -1428,7 +1321,6 @@ _bfd_elf_link_hash_newfunc (entry, table, string)
ret->dynstr_index = 0;
ret->elf_hash_value = 0;
ret->weakdef = NULL;
- ret->linker_section_pointer = NULL;
ret->verinfo.verdef = NULL;
ret->vtable_entries_size = 0;
ret->vtable_entries_used = NULL;
@@ -1452,9 +1344,9 @@ _bfd_elf_link_hash_newfunc (entry, table, string)
old indirect symbol. Also used for copying flags to a weakdef. */
void
-_bfd_elf_link_hash_copy_indirect (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+_bfd_elf_link_hash_copy_indirect (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
bfd_signed_vma tmp;
bfd_signed_vma lowest_valid = bed->can_refcount;
@@ -1504,10 +1396,9 @@ _bfd_elf_link_hash_copy_indirect (bed, dir, ind)
}
void
-_bfd_elf_link_hash_hide_symbol (info, h, force_local)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- bfd_boolean force_local;
+_bfd_elf_link_hash_hide_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ bfd_boolean force_local)
{
h->plt = elf_hash_table (info)->init_offset;
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
@@ -1526,12 +1417,12 @@ _bfd_elf_link_hash_hide_symbol (info, h, force_local)
/* Initialize an ELF linker hash table. */
bfd_boolean
-_bfd_elf_link_hash_table_init (table, abfd, newfunc)
- struct elf_link_hash_table *table;
- bfd *abfd;
- struct bfd_hash_entry *(*newfunc)
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
- const char *));
+_bfd_elf_link_hash_table_init
+ (struct elf_link_hash_table *table,
+ bfd *abfd,
+ struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *))
{
bfd_boolean ret;
@@ -1565,14 +1456,13 @@ _bfd_elf_link_hash_table_init (table, abfd, newfunc)
/* Create an ELF linker hash table. */
struct bfd_link_hash_table *
-_bfd_elf_link_hash_table_create (abfd)
- bfd *abfd;
+_bfd_elf_link_hash_table_create (bfd *abfd)
{
struct elf_link_hash_table *ret;
bfd_size_type amt = sizeof (struct elf_link_hash_table);
- ret = (struct elf_link_hash_table *) bfd_malloc (amt);
- if (ret == (struct elf_link_hash_table *) NULL)
+ ret = bfd_malloc (amt);
+ if (ret == NULL)
return NULL;
if (! _bfd_elf_link_hash_table_init (ret, abfd, _bfd_elf_link_hash_newfunc))
@@ -1590,9 +1480,7 @@ _bfd_elf_link_hash_table_create (abfd)
empty string to indicate that no DT_NEEDED entry should be made. */
void
-bfd_elf_set_dt_needed_name (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_elf_set_dt_needed_name (bfd *abfd, const char *name)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_get_format (abfd) == bfd_object)
@@ -1600,9 +1488,7 @@ bfd_elf_set_dt_needed_name (abfd, name)
}
void
-bfd_elf_set_dt_needed_soname (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_elf_set_dt_needed_soname (bfd *abfd, const char *name)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_get_format (abfd) == bfd_object)
@@ -1613,9 +1499,8 @@ bfd_elf_set_dt_needed_soname (abfd, name)
the linker ELF emulation code. */
struct bfd_link_needed_list *
-bfd_elf_get_needed_list (abfd, info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+bfd_elf_get_needed_list (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
if (! is_elf_hash_table (info))
return NULL;
@@ -1626,9 +1511,8 @@ bfd_elf_get_needed_list (abfd, info)
hook for the linker ELF emulation code. */
struct bfd_link_needed_list *
-bfd_elf_get_runpath_list (abfd, info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+bfd_elf_get_runpath_list (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
if (! is_elf_hash_table (info))
return NULL;
@@ -1640,8 +1524,7 @@ bfd_elf_get_runpath_list (abfd, info)
passed to bfd_elf_set_dt_needed_name, or it is the filename. */
const char *
-bfd_elf_get_dt_soname (abfd)
- bfd *abfd;
+bfd_elf_get_dt_soname (bfd *abfd)
{
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
&& bfd_get_format (abfd) == bfd_object)
@@ -1653,9 +1536,8 @@ bfd_elf_get_dt_soname (abfd)
the ELF linker emulation code. */
bfd_boolean
-bfd_elf_get_bfd_needed_list (abfd, pneeded)
- bfd *abfd;
- struct bfd_link_needed_list **pneeded;
+bfd_elf_get_bfd_needed_list (bfd *abfd,
+ struct bfd_link_needed_list **pneeded)
{
asection *s;
bfd_byte *dynbuf = NULL;
@@ -1663,7 +1545,7 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
unsigned long shlink;
bfd_byte *extdyn, *extdynend;
size_t extdynsize;
- void (*swap_dyn_in) PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *));
+ void (*swap_dyn_in) (bfd *, const void *, Elf_Internal_Dyn *);
*pneeded = NULL;
@@ -1675,12 +1557,11 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
if (s == NULL || s->_raw_size == 0)
return TRUE;
- dynbuf = (bfd_byte *) bfd_malloc (s->_raw_size);
+ dynbuf = bfd_malloc (s->_raw_size);
if (dynbuf == NULL)
goto error_return;
- if (! bfd_get_section_contents (abfd, s, (PTR) dynbuf, (file_ptr) 0,
- s->_raw_size))
+ if (! bfd_get_section_contents (abfd, s, dynbuf, 0, s->_raw_size))
goto error_return;
elfsec = _bfd_elf_section_from_bfd_section (abfd, s);
@@ -1698,7 +1579,7 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
{
Elf_Internal_Dyn dyn;
- (*swap_dyn_in) (abfd, (PTR) extdyn, &dyn);
+ (*swap_dyn_in) (abfd, extdyn, &dyn);
if (dyn.d_tag == DT_NULL)
break;
@@ -1715,7 +1596,7 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
goto error_return;
amt = sizeof *l;
- l = (struct bfd_link_needed_list *) bfd_alloc (abfd, amt);
+ l = bfd_alloc (abfd, amt);
if (l == NULL)
goto error_return;
@@ -1739,7 +1620,7 @@ bfd_elf_get_bfd_needed_list (abfd, pneeded)
/* Allocate an ELF string table--force the first byte to be zero. */
struct bfd_strtab_hash *
-_bfd_elf_stringtab_init ()
+_bfd_elf_stringtab_init (void)
{
struct bfd_strtab_hash *ret;
@@ -1764,13 +1645,11 @@ _bfd_elf_stringtab_init ()
/* Create a new bfd section from an ELF section header. */
bfd_boolean
-bfd_section_from_shdr (abfd, shindex)
- bfd *abfd;
- unsigned int shindex;
+bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
{
Elf_Internal_Shdr *hdr = elf_elfsections (abfd)[shindex];
Elf_Internal_Ehdr *ehdr = elf_elfheader (abfd);
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
const char *name;
name = elf_string_from_elf_strtab (abfd, hdr->sh_name);
@@ -1838,7 +1717,7 @@ bfd_section_from_shdr (abfd, shindex)
SHF_ALLOC is set, and this is a shared object, then we also
treat this section as a BFD section. We can not base the
decision purely on SHF_ALLOC, because that flag is sometimes
- set in a relocateable object file, which would confuse the
+ set in a relocatable object file, which would confuse the
linker. */
if ((hdr->sh_flags & SHF_ALLOC) != 0
&& (abfd->flags & DYNAMIC) != 0
@@ -2006,7 +1885,7 @@ bfd_section_from_shdr (abfd, shindex)
bfd_size_type amt;
BFD_ASSERT (elf_section_data (target_sect)->rel_hdr2 == NULL);
amt = sizeof (*hdr2);
- hdr2 = (Elf_Internal_Shdr *) bfd_alloc (abfd, amt);
+ hdr2 = bfd_alloc (abfd, amt);
elf_section_data (target_sect)->rel_hdr2 = hdr2;
}
*hdr2 = *hdr;
@@ -2090,11 +1969,10 @@ bfd_section_from_shdr (abfd, shindex)
Return SEC for sections that have no elf section, and NULL on error. */
asection *
-bfd_section_from_r_symndx (abfd, cache, sec, r_symndx)
- bfd *abfd;
- struct sym_sec_cache *cache;
- asection *sec;
- unsigned long r_symndx;
+bfd_section_from_r_symndx (bfd *abfd,
+ struct sym_sec_cache *cache,
+ asection *sec,
+ unsigned long r_symndx)
{
Elf_Internal_Shdr *symtab_hdr;
unsigned char esym[sizeof (Elf64_External_Sym)];
@@ -2117,7 +1995,8 @@ bfd_section_from_r_symndx (abfd, cache, sec, r_symndx)
}
cache->indx[ent] = r_symndx;
cache->sec[ent] = sec;
- if (isym.st_shndx < SHN_LORESERVE || isym.st_shndx > SHN_HIRESERVE)
+ if ((isym.st_shndx != SHN_UNDEF && isym.st_shndx < SHN_LORESERVE)
+ || isym.st_shndx > SHN_HIRESERVE)
{
asection *s;
s = bfd_section_from_elf_index (abfd, isym.st_shndx);
@@ -2131,30 +2010,165 @@ bfd_section_from_r_symndx (abfd, cache, sec, r_symndx)
section. */
asection *
-bfd_section_from_elf_index (abfd, index)
- bfd *abfd;
- unsigned int index;
+bfd_section_from_elf_index (bfd *abfd, unsigned int index)
{
if (index >= elf_numsections (abfd))
return NULL;
return elf_elfsections (abfd)[index]->bfd_section;
}
+static struct bfd_elf_special_section const special_sections[] =
+{
+ { ".bss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { ".comment", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".data", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".data1", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".debug", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".fini", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".init", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".line", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".rodata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".rodata1", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".tbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
+ { ".tdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
+ { ".text", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".init_array", 0, NULL, 0,
+ SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
+ { ".fini_array", 0, NULL, 0,
+ SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
+ { ".preinit_array", 0, NULL, 0,
+ SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
+ { ".debug_line", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".debug_info", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".debug_abbrev", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".debug_aranges", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".dynamic", 0, NULL, 0,
+ SHT_DYNAMIC, SHF_ALLOC },
+ { ".dynstr", 0, NULL, 0,
+ SHT_STRTAB, SHF_ALLOC },
+ { ".dynsym", 0, NULL, 0,
+ SHT_DYNSYM, SHF_ALLOC },
+ { ".got", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".hash", 0, NULL, 0,
+ SHT_HASH, SHF_ALLOC },
+ { ".interp", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { ".plt", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".shstrtab", 0, NULL, 0,
+ SHT_STRTAB, 0 },
+ { ".strtab", 0, NULL, 0,
+ SHT_STRTAB, 0 },
+ { ".symtab", 0, NULL, 0,
+ SHT_SYMTAB, 0 },
+ { ".gnu.version", 0, NULL, 0,
+ SHT_GNU_versym, 0 },
+ { ".gnu.version_d", 0, NULL, 0,
+ SHT_GNU_verdef, 0 },
+ { ".gnu.version_r", 0, NULL, 0,
+ SHT_GNU_verneed, 0 },
+ { ".note", 5, NULL, 0,
+ SHT_NOTE, 0 },
+ { ".rela", 5, NULL, 0,
+ SHT_RELA, 0 },
+ { ".rel", 4, NULL, 0,
+ SHT_REL, 0 },
+ { ".stab", 5, "str", 3,
+ SHT_STRTAB, 0 },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
+static const struct bfd_elf_special_section *
+get_special_section (const char *name,
+ const struct bfd_elf_special_section *special_sections,
+ unsigned int rela)
+{
+ int i;
+
+ for (i = 0; special_sections[i].prefix != NULL; i++)
+ if (((special_sections[i].prefix_length
+ && strncmp (name, special_sections[i].prefix,
+ special_sections[i].prefix_length) == 0
+ && (! special_sections[i].suffix_length
+ || strcmp ((name + strlen (name)
+ - special_sections[i].suffix_length),
+ special_sections[i].suffix) == 0))
+ || strcmp (name, special_sections[i].prefix) == 0)
+ && (rela || special_sections[i].type != SHT_RELA))
+ return &special_sections[i];
+
+ return NULL;
+}
+
+bfd_boolean
+_bfd_elf_get_sec_type_attr (bfd *abfd, const char *name, int *type, int *attr)
+{
+ bfd_boolean found = FALSE;
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+
+ /* See if this is one of the special sections. */
+ if (name)
+ {
+ const struct bfd_elf_special_section *ssect = NULL;
+ unsigned int rela = bed->default_use_rela_p;
+
+ if (bed->special_sections)
+ ssect = get_special_section (name, bed->special_sections, rela);
+
+ if (! ssect)
+ ssect = get_special_section (name, special_sections, rela);
+
+ if (ssect)
+ {
+ *type = ssect->type;
+ *attr = ssect->attributes;
+ found = TRUE;
+ }
+ }
+
+ return found;
+}
+
bfd_boolean
-_bfd_elf_new_section_hook (abfd, sec)
- bfd *abfd;
- asection *sec;
+_bfd_elf_new_section_hook (bfd *abfd, asection *sec)
{
struct bfd_elf_section_data *sdata;
+ int type, attr;
sdata = (struct bfd_elf_section_data *) sec->used_by_bfd;
if (sdata == NULL)
{
- bfd_size_type amt = sizeof (*sdata);
- sdata = (struct bfd_elf_section_data *) bfd_zalloc (abfd, amt);
+ sdata = bfd_zalloc (abfd, sizeof (*sdata));
if (sdata == NULL)
return FALSE;
- sec->used_by_bfd = (PTR) sdata;
+ sec->used_by_bfd = sdata;
+ }
+
+ elf_section_type (sec) = SHT_NULL;
+ if (sec->name && _bfd_elf_get_sec_type_attr (abfd, sec->name,
+ &type, &attr))
+ {
+ elf_section_type (sec) = type;
+ elf_section_flags (sec) = attr;
}
/* Indicate whether or not this section should use RELA relocations. */
@@ -2186,11 +2200,10 @@ _bfd_elf_new_section_hook (abfd, sec)
*/
bfd_boolean
-_bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
- bfd *abfd;
- Elf_Internal_Phdr *hdr;
- int index;
- const char *typename;
+_bfd_elf_make_section_from_phdr (bfd *abfd,
+ Elf_Internal_Phdr *hdr,
+ int index,
+ const char *typename)
{
asection *newsect;
char *name;
@@ -2203,7 +2216,7 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
&& (hdr->p_memsz > hdr->p_filesz));
sprintf (namebuf, "%s%d%s", typename, index, split ? "a" : "");
len = strlen (namebuf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (!name)
return FALSE;
memcpy (name, namebuf, len);
@@ -2235,7 +2248,7 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
{
sprintf (namebuf, "%s%db", typename, index);
len = strlen (namebuf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (!name)
return FALSE;
memcpy (name, namebuf, len);
@@ -2259,12 +2272,9 @@ _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename)
}
bfd_boolean
-bfd_section_from_phdr (abfd, hdr, index)
- bfd *abfd;
- Elf_Internal_Phdr *hdr;
- int index;
+bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
switch (hdr->p_type)
{
@@ -2283,7 +2293,7 @@ bfd_section_from_phdr (abfd, hdr, index)
case PT_NOTE:
if (! _bfd_elf_make_section_from_phdr (abfd, hdr, index, "note"))
return FALSE;
- if (! elfcore_read_notes (abfd, (file_ptr) hdr->p_offset, hdr->p_filesz))
+ if (! elfcore_read_notes (abfd, hdr->p_offset, hdr->p_filesz))
return FALSE;
return TRUE;
@@ -2316,14 +2326,13 @@ bfd_section_from_phdr (abfd, hdr, index)
relocations; otherwise, we use REL relocations. */
bfd_boolean
-_bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
- bfd *abfd;
- Elf_Internal_Shdr *rel_hdr;
- asection *asect;
- bfd_boolean use_rela_p;
+_bfd_elf_init_reloc_shdr (bfd *abfd,
+ Elf_Internal_Shdr *rel_hdr,
+ asection *asect,
+ bfd_boolean use_rela_p)
{
char *name;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
bfd_size_type amt = sizeof ".rela" + strlen (asect->name);
name = bfd_alloc (abfd, amt);
@@ -2351,13 +2360,10 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p)
/* Set up an ELF internal section header for a section. */
static void
-elf_fake_sections (abfd, asect, failedptrarg)
- bfd *abfd;
- asection *asect;
- PTR failedptrarg;
+elf_fake_sections (bfd *abfd, asection *asect, void *failedptrarg)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
- bfd_boolean *failedptr = (bfd_boolean *) failedptrarg;
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ bfd_boolean *failedptr = failedptrarg;
Elf_Internal_Shdr *this_hdr;
if (*failedptr)
@@ -2395,55 +2401,59 @@ elf_fake_sections (abfd, asect, failedptrarg)
this_hdr->bfd_section = asect;
this_hdr->contents = NULL;
- /* FIXME: This should not be based on section names. */
- if (strcmp (asect->name, ".dynstr") == 0)
- this_hdr->sh_type = SHT_STRTAB;
- else if (strcmp (asect->name, ".hash") == 0)
+ /* If the section type is unspecified, we set it based on
+ asect->flags. */
+ if (this_hdr->sh_type == SHT_NULL)
{
- this_hdr->sh_type = SHT_HASH;
- this_hdr->sh_entsize = bed->s->sizeof_hash_entry;
+ if ((asect->flags & SEC_ALLOC) != 0
+ && (((asect->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
+ || (asect->flags & SEC_NEVER_LOAD) != 0))
+ this_hdr->sh_type = SHT_NOBITS;
+ else
+ this_hdr->sh_type = SHT_PROGBITS;
}
- else if (strcmp (asect->name, ".dynsym") == 0)
+
+ switch (this_hdr->sh_type)
{
- this_hdr->sh_type = SHT_DYNSYM;
+ default:
+ break;
+
+ case SHT_STRTAB:
+ case SHT_INIT_ARRAY:
+ case SHT_FINI_ARRAY:
+ case SHT_PREINIT_ARRAY:
+ case SHT_NOTE:
+ case SHT_NOBITS:
+ case SHT_PROGBITS:
+ break;
+
+ case SHT_HASH:
+ this_hdr->sh_entsize = bed->s->sizeof_hash_entry;
+ break;
+
+ case SHT_DYNSYM:
this_hdr->sh_entsize = bed->s->sizeof_sym;
- }
- else if (strcmp (asect->name, ".dynamic") == 0)
- {
- this_hdr->sh_type = SHT_DYNAMIC;
+ break;
+
+ case SHT_DYNAMIC:
this_hdr->sh_entsize = bed->s->sizeof_dyn;
- }
- else if (strncmp (asect->name, ".rela", 5) == 0
- && get_elf_backend_data (abfd)->may_use_rela_p)
- {
- this_hdr->sh_type = SHT_RELA;
- this_hdr->sh_entsize = bed->s->sizeof_rela;
- }
- else if (strncmp (asect->name, ".rel", 4) == 0
- && get_elf_backend_data (abfd)->may_use_rel_p)
- {
- this_hdr->sh_type = SHT_REL;
- this_hdr->sh_entsize = bed->s->sizeof_rel;
- }
- else if (strcmp (asect->name, ".init_array") == 0)
- this_hdr->sh_type = SHT_INIT_ARRAY;
- else if (strcmp (asect->name, ".fini_array") == 0)
- this_hdr->sh_type = SHT_FINI_ARRAY;
- else if (strcmp (asect->name, ".preinit_array") == 0)
- this_hdr->sh_type = SHT_PREINIT_ARRAY;
- else if (strncmp (asect->name, ".note", 5) == 0)
- this_hdr->sh_type = SHT_NOTE;
- else if (strncmp (asect->name, ".stab", 5) == 0
- && strcmp (asect->name + strlen (asect->name) - 3, "str") == 0)
- this_hdr->sh_type = SHT_STRTAB;
- else if (strcmp (asect->name, ".gnu.version") == 0)
- {
- this_hdr->sh_type = SHT_GNU_versym;
+ break;
+
+ case SHT_RELA:
+ if (get_elf_backend_data (abfd)->may_use_rela_p)
+ this_hdr->sh_entsize = bed->s->sizeof_rela;
+ break;
+
+ case SHT_REL:
+ if (get_elf_backend_data (abfd)->may_use_rel_p)
+ this_hdr->sh_entsize = bed->s->sizeof_rel;
+ break;
+
+ case SHT_GNU_versym:
this_hdr->sh_entsize = sizeof (Elf_External_Versym);
- }
- else if (strcmp (asect->name, ".gnu.version_d") == 0)
- {
- this_hdr->sh_type = SHT_GNU_verdef;
+ break;
+
+ case SHT_GNU_verdef:
this_hdr->sh_entsize = 0;
/* objcopy or strip will copy over sh_info, but may not set
cverdefs. The linker will set cverdefs, but sh_info will be
@@ -2453,10 +2463,9 @@ elf_fake_sections (abfd, asect, failedptrarg)
else
BFD_ASSERT (elf_tdata (abfd)->cverdefs == 0
|| this_hdr->sh_info == elf_tdata (abfd)->cverdefs);
- }
- else if (strcmp (asect->name, ".gnu.version_r") == 0)
- {
- this_hdr->sh_type = SHT_GNU_verneed;
+ break;
+
+ case SHT_GNU_verneed:
this_hdr->sh_entsize = 0;
/* objcopy or strip will copy over sh_info, but may not set
cverrefs. The linker will set cverrefs, but sh_info will be
@@ -2466,18 +2475,12 @@ elf_fake_sections (abfd, asect, failedptrarg)
else
BFD_ASSERT (elf_tdata (abfd)->cverrefs == 0
|| this_hdr->sh_info == elf_tdata (abfd)->cverrefs);
- }
- else if ((asect->flags & SEC_GROUP) != 0)
- {
- this_hdr->sh_type = SHT_GROUP;
+ break;
+
+ case SHT_GROUP:
this_hdr->sh_entsize = 4;
+ break;
}
- else if ((asect->flags & SEC_ALLOC) != 0
- && (((asect->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
- || (asect->flags & SEC_NEVER_LOAD) != 0))
- this_hdr->sh_type = SHT_NOBITS;
- else
- this_hdr->sh_type = SHT_PROGBITS;
if ((asect->flags & SEC_ALLOC) != 0)
this_hdr->sh_flags |= SHF_ALLOC;
@@ -2530,12 +2533,9 @@ elf_fake_sections (abfd, asect, failedptrarg)
/* Fill in the contents of a SHT_GROUP section. */
void
-bfd_elf_set_group_contents (abfd, sec, failedptrarg)
- bfd *abfd;
- asection *sec;
- PTR failedptrarg;
+bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg)
{
- bfd_boolean *failedptr = (bfd_boolean *) failedptrarg;
+ bfd_boolean *failedptr = failedptrarg;
unsigned long symindx;
asection *elt, *first;
unsigned char *loc;
@@ -2639,8 +2639,7 @@ bfd_elf_set_group_contents (abfd, sec, failedptrarg)
in here too, while we're at it. */
static bfd_boolean
-assign_section_numbers (abfd)
- bfd *abfd;
+assign_section_numbers (bfd *abfd)
{
struct elf_obj_tdata *t = elf_tdata (abfd);
asection *sec;
@@ -2721,12 +2720,12 @@ assign_section_numbers (abfd)
/* Set up the list of section header pointers, in agreement with the
indices. */
amt = section_number * sizeof (Elf_Internal_Shdr *);
- i_shdrp = (Elf_Internal_Shdr **) bfd_zalloc (abfd, amt);
+ i_shdrp = bfd_zalloc (abfd, amt);
if (i_shdrp == NULL)
return FALSE;
amt = sizeof (Elf_Internal_Shdr);
- i_shdrp[0] = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt);
+ i_shdrp[0] = bfd_zalloc (abfd, amt);
if (i_shdrp[0] == NULL)
{
bfd_release (abfd, i_shdrp);
@@ -2812,7 +2811,7 @@ assign_section_numbers (abfd)
char *alc;
len = strlen (sec->name);
- alc = (char *) bfd_malloc ((bfd_size_type) (len - 2));
+ alc = bfd_malloc (len - 2);
if (alc == NULL)
return FALSE;
memcpy (alc, sec->name, len - 3);
@@ -2869,15 +2868,13 @@ assign_section_numbers (abfd)
/* Map symbol from it's internal number to the external number, moving
all local symbols to be at the head of the list. */
-static INLINE int
-sym_is_global (abfd, sym)
- bfd *abfd;
- asymbol *sym;
+static int
+sym_is_global (bfd *abfd, asymbol *sym)
{
/* If the backend has a special mapping, use it. */
- if (get_elf_backend_data (abfd)->elf_backend_sym_is_global)
- return ((*get_elf_backend_data (abfd)->elf_backend_sym_is_global)
- (abfd, sym));
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ if (bed->elf_backend_sym_is_global)
+ return (*bed->elf_backend_sym_is_global) (abfd, sym);
return ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
|| bfd_is_und_section (bfd_get_section (sym))
@@ -2885,8 +2882,7 @@ sym_is_global (abfd, sym)
}
static bfd_boolean
-elf_map_symbols (abfd)
- bfd *abfd;
+elf_map_symbols (bfd *abfd)
{
unsigned int symcount = bfd_get_symcount (abfd);
asymbol **syms = bfd_get_outsymbols (abfd);
@@ -2914,7 +2910,7 @@ elf_map_symbols (abfd)
max_index++;
amt = max_index * sizeof (asymbol *);
- sect_syms = (asymbol **) bfd_zalloc (abfd, amt);
+ sect_syms = bfd_zalloc (abfd, amt);
if (sect_syms == NULL)
return FALSE;
elf_section_syms (abfd) = sect_syms;
@@ -2988,7 +2984,7 @@ elf_map_symbols (abfd)
/* Now sort the symbols so the local symbols are first. */
amt = (num_locals + num_globals) * sizeof (asymbol *);
- new_syms = (asymbol **) bfd_alloc (abfd, amt);
+ new_syms = bfd_alloc (abfd, amt);
if (new_syms == NULL)
return FALSE;
@@ -3032,12 +3028,8 @@ elf_map_symbols (abfd)
/* Align to the maximum file alignment that could be required for any
ELF data structure. */
-static INLINE file_ptr align_file_position
- PARAMS ((file_ptr, int));
-static INLINE file_ptr
-align_file_position (off, align)
- file_ptr off;
- int align;
+static inline file_ptr
+align_file_position (file_ptr off, int align)
{
return (off + align - 1) & ~(align - 1);
}
@@ -3045,11 +3037,10 @@ align_file_position (off, align)
/* Assign a file position to a section, optionally aligning to the
required section alignment. */
-INLINE file_ptr
-_bfd_elf_assign_file_position_for_section (i_shdrp, offset, align)
- Elf_Internal_Shdr *i_shdrp;
- file_ptr offset;
- bfd_boolean align;
+file_ptr
+_bfd_elf_assign_file_position_for_section (Elf_Internal_Shdr *i_shdrp,
+ file_ptr offset,
+ bfd_boolean align)
{
if (align)
{
@@ -3072,11 +3063,10 @@ _bfd_elf_assign_file_position_for_section (i_shdrp, offset, align)
is not NULL, this is being called by the ELF backend linker. */
bfd_boolean
-_bfd_elf_compute_section_file_positions (abfd, link_info)
- bfd *abfd;
- struct bfd_link_info *link_info;
+_bfd_elf_compute_section_file_positions (bfd *abfd,
+ struct bfd_link_info *link_info)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
bfd_boolean failed;
struct bfd_strtab_hash *strtab;
Elf_Internal_Shdr *shstrtab_hdr;
@@ -3169,13 +3159,12 @@ _bfd_elf_compute_section_file_positions (abfd, link_info)
/* Create a mapping from a set of sections to a program segment. */
-static INLINE struct elf_segment_map *
-make_mapping (abfd, sections, from, to, phdr)
- bfd *abfd;
- asection **sections;
- unsigned int from;
- unsigned int to;
- bfd_boolean phdr;
+static struct elf_segment_map *
+make_mapping (bfd *abfd,
+ asection **sections,
+ unsigned int from,
+ unsigned int to,
+ bfd_boolean phdr)
{
struct elf_segment_map *m;
unsigned int i;
@@ -3184,7 +3173,7 @@ make_mapping (abfd, sections, from, to, phdr)
amt = sizeof (struct elf_segment_map);
amt += (to - from - 1) * sizeof (asection *);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
return NULL;
m->next = NULL;
@@ -3206,8 +3195,7 @@ make_mapping (abfd, sections, from, to, phdr)
/* Set up a mapping from BFD sections to program segments. */
static bfd_boolean
-map_sections_to_segments (abfd)
- bfd *abfd;
+map_sections_to_segments (bfd *abfd)
{
asection **sections = NULL;
asection *s;
@@ -3236,7 +3224,7 @@ map_sections_to_segments (abfd)
/* Select the allocated sections, and sort them. */
amt = bfd_count_sections (abfd) * sizeof (asection *);
- sections = (asection **) bfd_malloc (amt);
+ sections = bfd_malloc (amt);
if (sections == NULL)
goto error_return;
@@ -3266,7 +3254,7 @@ map_sections_to_segments (abfd)
if (s != NULL && (s->flags & SEC_LOAD) != 0)
{
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3280,7 +3268,7 @@ map_sections_to_segments (abfd)
pm = &m->next;
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3429,7 +3417,7 @@ map_sections_to_segments (abfd)
if (dynsec != NULL)
{
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3452,7 +3440,7 @@ map_sections_to_segments (abfd)
&& strncmp (s->name, ".note", 5) == 0)
{
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3478,7 +3466,7 @@ map_sections_to_segments (abfd)
amt = sizeof (struct elf_segment_map);
amt += (tls_count - 1) * sizeof (asection *);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3505,7 +3493,7 @@ map_sections_to_segments (abfd)
&& (eh_frame_hdr->output_section->flags & SEC_LOAD) != 0)
{
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3520,7 +3508,7 @@ map_sections_to_segments (abfd)
if (elf_tdata (abfd)->stack_flags)
{
amt = sizeof (struct elf_segment_map);
- m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
+ m = bfd_zalloc (abfd, amt);
if (m == NULL)
goto error_return;
m->next = NULL;
@@ -3547,9 +3535,7 @@ map_sections_to_segments (abfd)
/* Sort sections by address. */
static int
-elf_sort_sections (arg1, arg2)
- const PTR arg1;
- const PTR arg2;
+elf_sort_sections (const void *arg1, const void *arg2)
{
const asection *sec1 = *(const asection **) arg1;
const asection *sec2 = *(const asection **) arg2;
@@ -3609,8 +3595,7 @@ elf_sort_sections (arg1, arg2)
the file header, and writes out the program headers. */
static bfd_boolean
-assign_file_positions_for_segments (abfd)
- bfd *abfd;
+assign_file_positions_for_segments (bfd *abfd)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
unsigned int count;
@@ -3694,7 +3679,7 @@ assign_file_positions_for_segments (abfd)
alloc = count;
amt = alloc * sizeof (Elf_Internal_Phdr);
- phdrs = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt);
+ phdrs = bfd_alloc (abfd, amt);
if (phdrs == NULL)
return FALSE;
@@ -4070,12 +4055,11 @@ Error: First section in segment (%s) starts at 0x%x whereas the segment starts a
will be two segments. */
static bfd_size_type
-get_program_header_size (abfd)
- bfd *abfd;
+get_program_header_size (bfd *abfd)
{
size_t segs;
asection *s;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
/* We can't return a different result each time we're called. */
if (elf_tdata (abfd)->program_header_size != 0)
@@ -4171,15 +4155,14 @@ get_program_header_size (abfd)
We also don't set the positions of the .symtab and .strtab here. */
static bfd_boolean
-assign_file_positions_except_relocs (abfd)
- bfd *abfd;
+assign_file_positions_except_relocs (bfd *abfd)
{
struct elf_obj_tdata * const tdata = elf_tdata (abfd);
Elf_Internal_Ehdr * const i_ehdrp = elf_elfheader (abfd);
Elf_Internal_Shdr ** const i_shdrpp = elf_elfsections (abfd);
unsigned int num_sec = elf_numsections (abfd);
file_ptr off;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0
&& bfd_get_format (abfd) != bfd_core)
@@ -4280,14 +4263,13 @@ assign_file_positions_except_relocs (abfd)
}
static bfd_boolean
-prep_headers (abfd)
- bfd *abfd;
+prep_headers (bfd *abfd)
{
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
Elf_Internal_Phdr *i_phdrp = 0; /* Program header table, internal form */
Elf_Internal_Shdr **i_shdrp; /* Section header table, internal form */
struct elf_strtab_hash *shstrtab;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
i_ehdrp = elf_elfheader (abfd);
i_shdrp = elf_elfsections (abfd);
@@ -4332,11 +4314,8 @@ prep_headers (abfd)
Such need can generally be supplied by replacing the tests for
e_machine with the conditions used to determine it. */
default:
- if (get_elf_backend_data (abfd) != NULL)
- i_ehdrp->e_machine = get_elf_backend_data (abfd)->elf_machine_code;
- else
- i_ehdrp->e_machine = EM_NONE;
- }
+ i_ehdrp->e_machine = bed->elf_machine_code;
+ }
i_ehdrp->e_version = bed->s->ev_current;
i_ehdrp->e_ehsize = bed->s->sizeof_ehdr;
@@ -4389,8 +4368,7 @@ prep_headers (abfd)
of the loadable file image. */
void
-_bfd_elf_assign_file_positions_for_relocs (abfd)
- bfd *abfd;
+_bfd_elf_assign_file_positions_for_relocs (bfd *abfd)
{
file_ptr off;
unsigned int i, num_sec;
@@ -4413,18 +4391,16 @@ _bfd_elf_assign_file_positions_for_relocs (abfd)
}
bfd_boolean
-_bfd_elf_write_object_contents (abfd)
- bfd *abfd;
+_bfd_elf_write_object_contents (bfd *abfd)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
Elf_Internal_Ehdr *i_ehdrp;
Elf_Internal_Shdr **i_shdrp;
bfd_boolean failed;
unsigned int count, num_sec;
if (! abfd->output_has_begun
- && ! _bfd_elf_compute_section_file_positions
- (abfd, (struct bfd_link_info *) NULL))
+ && ! _bfd_elf_compute_section_file_positions (abfd, NULL))
return FALSE;
i_shdrp = elf_elfsections (abfd);
@@ -4468,8 +4444,7 @@ _bfd_elf_write_object_contents (abfd)
}
bfd_boolean
-_bfd_elf_write_corefile_contents (abfd)
- bfd *abfd;
+_bfd_elf_write_corefile_contents (bfd *abfd)
{
/* Hopefully this can be done just like an object file. */
return _bfd_elf_write_object_contents (abfd);
@@ -4478,11 +4453,9 @@ _bfd_elf_write_corefile_contents (abfd)
/* Given a section, search the header to find them. */
int
-_bfd_elf_section_from_bfd_section (abfd, asect)
- bfd *abfd;
- struct sec *asect;
+_bfd_elf_section_from_bfd_section (bfd *abfd, struct sec *asect)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
int index;
if (elf_section_data (asect) != NULL
@@ -4529,9 +4502,7 @@ _bfd_elf_section_from_bfd_section (abfd, asect)
on error. */
int
-_bfd_elf_symbol_from_bfd_symbol (abfd, asym_ptr_ptr)
- bfd *abfd;
- asymbol **asym_ptr_ptr;
+_bfd_elf_symbol_from_bfd_symbol (bfd *abfd, asymbol **asym_ptr_ptr)
{
asymbol *asym_ptr = *asym_ptr_ptr;
int idx;
@@ -4586,9 +4557,7 @@ _bfd_elf_symbol_from_bfd_symbol (abfd, asym_ptr_ptr)
/* Copy private BFD data. This copies any program header information. */
static bfd_boolean
-copy_private_bfd_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+copy_private_bfd_data (bfd *ibfd, bfd *obfd)
{
Elf_Internal_Ehdr *iehdr;
struct elf_segment_map *map;
@@ -4602,7 +4571,7 @@ copy_private_bfd_data (ibfd, obfd)
bfd_vma maxpagesize;
struct elf_segment_map *phdr_adjust_seg = NULL;
unsigned int phdr_adjust_num = 0;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@@ -4812,7 +4781,7 @@ copy_private_bfd_data (ibfd, obfd)
all of the sections we have selected. */
amt = sizeof (struct elf_segment_map);
amt += ((bfd_size_type) section_count - 1) * sizeof (asection *);
- map = (struct elf_segment_map *) bfd_alloc (obfd, amt);
+ map = bfd_alloc (obfd, amt);
if (map == NULL)
return FALSE;
@@ -4893,7 +4862,7 @@ copy_private_bfd_data (ibfd, obfd)
/* Gcc 2.96 miscompiles this code on mips. Don't do casting here
to work around this long long bug. */
amt = section_count * sizeof (asection *);
- sections = (asection **) bfd_malloc (amt);
+ sections = bfd_malloc (amt);
if (sections == NULL)
return FALSE;
@@ -5095,7 +5064,7 @@ copy_private_bfd_data (ibfd, obfd)
and carry on looping. */
amt = sizeof (struct elf_segment_map);
amt += ((bfd_size_type) section_count - 1) * sizeof (asection *);
- map = (struct elf_segment_map *) bfd_alloc (obfd, amt);
+ map = bfd_alloc (obfd, amt);
if (map == NULL)
{
free (sections);
@@ -5189,11 +5158,10 @@ copy_private_bfd_data (ibfd, obfd)
field, and sometimes the info field. */
bfd_boolean
-_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
- bfd *ibfd;
- asection *isec;
- bfd *obfd;
- asection *osec;
+_bfd_elf_copy_private_section_data (bfd *ibfd,
+ asection *isec,
+ bfd *obfd,
+ asection *osec)
{
Elf_Internal_Shdr *ihdr, *ohdr;
@@ -5254,11 +5222,10 @@ _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
#define MAP_SYM_SHNDX (SHN_HIOS + 5)
bfd_boolean
-_bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg)
- bfd *ibfd;
- asymbol *isymarg;
- bfd *obfd;
- asymbol *osymarg;
+_bfd_elf_copy_private_symbol_data (bfd *ibfd,
+ asymbol *isymarg,
+ bfd *obfd,
+ asymbol *osymarg)
{
elf_symbol_type *isym, *osym;
@@ -5295,12 +5262,11 @@ _bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg)
/* Swap out the symbols. */
static bfd_boolean
-swap_out_syms (abfd, sttp, relocatable_p)
- bfd *abfd;
- struct bfd_strtab_hash **sttp;
- int relocatable_p;
+swap_out_syms (bfd *abfd,
+ struct bfd_strtab_hash **sttp,
+ int relocatable_p)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
int symcount;
asymbol **syms;
struct bfd_strtab_hash *stt;
@@ -5339,7 +5305,7 @@ swap_out_syms (abfd, sttp, relocatable_p)
_bfd_stringtab_free (stt);
return FALSE;
}
- symtab_hdr->contents = (PTR) outbound_syms;
+ symtab_hdr->contents = outbound_syms;
outbound_shndx = NULL;
symtab_shndx_hdr = &elf_tdata (abfd)->symtab_shndx_hdr;
@@ -5580,8 +5546,7 @@ Unable to find equivalent output section for symbol '%s' from section '%s'"),
always has a dummy entry as symbol #0, so it ends up even. */
long
-_bfd_elf_get_symtab_upper_bound (abfd)
- bfd *abfd;
+_bfd_elf_get_symtab_upper_bound (bfd *abfd)
{
long symcount;
long symtab_size;
@@ -5596,8 +5561,7 @@ _bfd_elf_get_symtab_upper_bound (abfd)
}
long
-_bfd_elf_get_dynamic_symtab_upper_bound (abfd)
- bfd *abfd;
+_bfd_elf_get_dynamic_symtab_upper_bound (bfd *abfd)
{
long symcount;
long symtab_size;
@@ -5618,9 +5582,8 @@ _bfd_elf_get_dynamic_symtab_upper_bound (abfd)
}
long
-_bfd_elf_get_reloc_upper_bound (abfd, asect)
- bfd *abfd ATTRIBUTE_UNUSED;
- sec_ptr asect;
+_bfd_elf_get_reloc_upper_bound (bfd *abfd ATTRIBUTE_UNUSED,
+ sec_ptr asect)
{
return (asect->reloc_count + 1) * sizeof (arelent *);
}
@@ -5628,15 +5591,14 @@ _bfd_elf_get_reloc_upper_bound (abfd, asect)
/* Canonicalize the relocs. */
long
-_bfd_elf_canonicalize_reloc (abfd, section, relptr, symbols)
- bfd *abfd;
- sec_ptr section;
- arelent **relptr;
- asymbol **symbols;
+_bfd_elf_canonicalize_reloc (bfd *abfd,
+ sec_ptr section,
+ arelent **relptr,
+ asymbol **symbols)
{
arelent *tblptr;
unsigned int i;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE))
return -1;
@@ -5651,12 +5613,10 @@ _bfd_elf_canonicalize_reloc (abfd, section, relptr, symbols)
}
long
-_bfd_elf_get_symtab (abfd, alocation)
- bfd *abfd;
- asymbol **alocation;
+_bfd_elf_get_symtab (bfd *abfd, asymbol **allocation)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
- long symcount = bed->s->slurp_symbol_table (abfd, alocation, FALSE);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ long symcount = bed->s->slurp_symbol_table (abfd, allocation, FALSE);
if (symcount >= 0)
bfd_get_symcount (abfd) = symcount;
@@ -5664,12 +5624,11 @@ _bfd_elf_get_symtab (abfd, alocation)
}
long
-_bfd_elf_canonicalize_dynamic_symtab (abfd, alocation)
- bfd *abfd;
- asymbol **alocation;
+_bfd_elf_canonicalize_dynamic_symtab (bfd *abfd,
+ asymbol **allocation)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
- long symcount = bed->s->slurp_symbol_table (abfd, alocation, TRUE);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ long symcount = bed->s->slurp_symbol_table (abfd, allocation, TRUE);
if (symcount >= 0)
bfd_get_dynamic_symcount (abfd) = symcount;
@@ -5682,8 +5641,7 @@ _bfd_elf_canonicalize_dynamic_symtab (abfd, alocation)
considered to be a dynamic reloc section. */
long
-_bfd_elf_get_dynamic_reloc_upper_bound (abfd)
- bfd *abfd;
+_bfd_elf_get_dynamic_reloc_upper_bound (bfd *abfd)
{
long ret;
asection *s;
@@ -5715,13 +5673,11 @@ _bfd_elf_get_dynamic_reloc_upper_bound (abfd)
section. */
long
-_bfd_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
- bfd *abfd;
- arelent **storage;
- asymbol **syms;
+_bfd_elf_canonicalize_dynamic_reloc (bfd *abfd,
+ arelent **storage,
+ asymbol **syms)
{
- bfd_boolean (*slurp_relocs)
- PARAMS ((bfd *, asection *, asymbol **, bfd_boolean));
+ bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
asection *s;
long ret;
@@ -5760,8 +5716,7 @@ _bfd_elf_canonicalize_dynamic_reloc (abfd, storage, syms)
/* Read in the version information. */
bfd_boolean
-_bfd_elf_slurp_version_tables (abfd)
- bfd *abfd;
+_bfd_elf_slurp_version_tables (bfd *abfd)
{
bfd_byte *contents = NULL;
bfd_size_type amt;
@@ -5778,11 +5733,11 @@ _bfd_elf_slurp_version_tables (abfd)
hdr = &elf_tdata (abfd)->dynverdef_hdr;
- contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
+ contents = bfd_malloc (hdr->sh_size);
if (contents == NULL)
goto error_return;
if (bfd_seek (abfd, hdr->sh_offset, SEEK_SET) != 0
- || bfd_bread ((PTR) contents, hdr->sh_size, abfd) != hdr->sh_size)
+ || bfd_bread (contents, hdr->sh_size, abfd) != hdr->sh_size)
goto error_return;
/* We know the number of entries in the section but not the maximum
@@ -5802,7 +5757,7 @@ _bfd_elf_slurp_version_tables (abfd)
}
amt = (bfd_size_type) maxidx * sizeof (Elf_Internal_Verdef);
- elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt);
+ elf_tdata (abfd)->verdef = bfd_zalloc (abfd, amt);
if (elf_tdata (abfd)->verdef == NULL)
goto error_return;
@@ -5824,7 +5779,7 @@ _bfd_elf_slurp_version_tables (abfd)
iverdef->vd_bfd = abfd;
amt = (bfd_size_type) iverdef->vd_cnt * sizeof (Elf_Internal_Verdaux);
- iverdef->vd_auxptr = (Elf_Internal_Verdaux *) bfd_alloc (abfd, amt);
+ iverdef->vd_auxptr = bfd_alloc (abfd, amt);
if (iverdef->vd_auxptr == NULL)
goto error_return;
@@ -5875,18 +5830,17 @@ _bfd_elf_slurp_version_tables (abfd)
hdr = &elf_tdata (abfd)->dynverref_hdr;
amt = (bfd_size_type) hdr->sh_info * sizeof (Elf_Internal_Verneed);
- elf_tdata (abfd)->verref =
- (Elf_Internal_Verneed *) bfd_zalloc (abfd, amt);
+ elf_tdata (abfd)->verref = bfd_zalloc (abfd, amt);
if (elf_tdata (abfd)->verref == NULL)
goto error_return;
elf_tdata (abfd)->cverrefs = hdr->sh_info;
- contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
+ contents = bfd_malloc (hdr->sh_size);
if (contents == NULL)
goto error_return;
if (bfd_seek (abfd, hdr->sh_offset, SEEK_SET) != 0
- || bfd_bread ((PTR) contents, hdr->sh_size, abfd) != hdr->sh_size)
+ || bfd_bread (contents, hdr->sh_size, abfd) != hdr->sh_size)
goto error_return;
everneed = (Elf_External_Verneed *) contents;
@@ -5909,7 +5863,7 @@ _bfd_elf_slurp_version_tables (abfd)
amt = iverneed->vn_cnt;
amt *= sizeof (Elf_Internal_Vernaux);
- iverneed->vn_auxptr = (Elf_Internal_Vernaux *) bfd_alloc (abfd, amt);
+ iverneed->vn_auxptr = bfd_alloc (abfd, amt);
evernaux = ((Elf_External_Vernaux *)
((bfd_byte *) everneed + iverneed->vn_aux));
@@ -5955,13 +5909,12 @@ _bfd_elf_slurp_version_tables (abfd)
}
asymbol *
-_bfd_elf_make_empty_symbol (abfd)
- bfd *abfd;
+_bfd_elf_make_empty_symbol (bfd *abfd)
{
elf_symbol_type *newsym;
bfd_size_type amt = sizeof (elf_symbol_type);
- newsym = (elf_symbol_type *) bfd_zalloc (abfd, amt);
+ newsym = bfd_zalloc (abfd, amt);
if (!newsym)
return NULL;
else
@@ -5972,10 +5925,9 @@ _bfd_elf_make_empty_symbol (abfd)
}
void
-_bfd_elf_get_symbol_info (ignore_abfd, symbol, ret)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
- asymbol *symbol;
- symbol_info *ret;
+_bfd_elf_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED,
+ asymbol *symbol,
+ symbol_info *ret)
{
bfd_symbol_info (symbol, ret);
}
@@ -5985,9 +5937,8 @@ _bfd_elf_get_symbol_info (ignore_abfd, symbol, ret)
override it. */
bfd_boolean
-_bfd_elf_is_local_label_name (abfd, name)
- bfd *abfd ATTRIBUTE_UNUSED;
- const char *name;
+_bfd_elf_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED,
+ const char *name)
{
/* Normal local symbols start with ``.L''. */
if (name[0] == '.' && name[1] == 'L')
@@ -6011,19 +5962,17 @@ _bfd_elf_is_local_label_name (abfd, name)
}
alent *
-_bfd_elf_get_lineno (ignore_abfd, symbol)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
- asymbol *symbol ATTRIBUTE_UNUSED;
+_bfd_elf_get_lineno (bfd *abfd ATTRIBUTE_UNUSED,
+ asymbol *symbol ATTRIBUTE_UNUSED)
{
abort ();
return NULL;
}
bfd_boolean
-_bfd_elf_set_arch_mach (abfd, arch, machine)
- bfd *abfd;
- enum bfd_architecture arch;
- unsigned long machine;
+_bfd_elf_set_arch_mach (bfd *abfd,
+ enum bfd_architecture arch,
+ unsigned long machine)
{
/* If this isn't the right architecture for this backend, and this
isn't the generic backend, fail. */
@@ -6039,14 +5988,12 @@ _bfd_elf_set_arch_mach (abfd, arch, machine)
for error reporting. */
static bfd_boolean
-elf_find_function (abfd, section, symbols, offset,
- filename_ptr, functionname_ptr)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- asymbol **symbols;
- bfd_vma offset;
- const char **filename_ptr;
- const char **functionname_ptr;
+elf_find_function (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section,
+ asymbol **symbols,
+ bfd_vma offset,
+ const char **filename_ptr,
+ const char **functionname_ptr)
{
const char *filename;
asymbol *func;
@@ -6101,15 +6048,13 @@ elf_find_function (abfd, section, symbols, offset,
for error reporting. */
bfd_boolean
-_bfd_elf_find_nearest_line (abfd, section, symbols, offset,
- filename_ptr, functionname_ptr, line_ptr)
- bfd *abfd;
- asection *section;
- asymbol **symbols;
- bfd_vma offset;
- const char **filename_ptr;
- const char **functionname_ptr;
- unsigned int *line_ptr;
+_bfd_elf_find_nearest_line (bfd *abfd,
+ asection *section,
+ asymbol **symbols,
+ bfd_vma offset,
+ const char **filename_ptr,
+ const char **functionname_ptr,
+ unsigned int *line_ptr)
{
bfd_boolean found;
@@ -6158,9 +6103,7 @@ _bfd_elf_find_nearest_line (abfd, section, symbols, offset,
}
int
-_bfd_elf_sizeof_headers (abfd, reloc)
- bfd *abfd;
- bfd_boolean reloc;
+_bfd_elf_sizeof_headers (bfd *abfd, bfd_boolean reloc)
{
int ret;
@@ -6171,19 +6114,17 @@ _bfd_elf_sizeof_headers (abfd, reloc)
}
bfd_boolean
-_bfd_elf_set_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- bfd_size_type count;
+_bfd_elf_set_section_contents (bfd *abfd,
+ sec_ptr section,
+ void *location,
+ file_ptr offset,
+ bfd_size_type count)
{
Elf_Internal_Shdr *hdr;
bfd_signed_vma pos;
if (! abfd->output_has_begun
- && ! (_bfd_elf_compute_section_file_positions
- (abfd, (struct bfd_link_info *) NULL)))
+ && ! _bfd_elf_compute_section_file_positions (abfd, NULL))
return FALSE;
hdr = &elf_section_data (section)->this_hdr;
@@ -6196,10 +6137,9 @@ _bfd_elf_set_section_contents (abfd, section, location, offset, count)
}
void
-_bfd_elf_no_info_to_howto (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *dst ATTRIBUTE_UNUSED;
+_bfd_elf_no_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *cache_ptr ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *dst ATTRIBUTE_UNUSED)
{
abort ();
}
@@ -6207,9 +6147,7 @@ _bfd_elf_no_info_to_howto (abfd, cache_ptr, dst)
/* Try to convert a non-ELF reloc into an ELF one. */
bfd_boolean
-_bfd_elf_validate_reloc (abfd, areloc)
- bfd *abfd;
- arelent *areloc;
+_bfd_elf_validate_reloc (bfd *abfd, arelent *areloc)
{
/* Check whether we really have an ELF howto. */
@@ -6303,8 +6241,7 @@ _bfd_elf_validate_reloc (abfd, areloc)
}
bfd_boolean
-_bfd_elf_close_and_cleanup (abfd)
- bfd *abfd;
+_bfd_elf_close_and_cleanup (bfd *abfd)
{
if (bfd_get_format (abfd) == bfd_object)
{
@@ -6321,14 +6258,11 @@ _bfd_elf_close_and_cleanup (abfd)
this reloc. */
bfd_reloc_status_type
-_bfd_elf_rel_vtable_reloc_fn (abfd, re, symbol, data, is, obfd, errmsg)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *re ATTRIBUTE_UNUSED;
- struct symbol_cache_entry *symbol ATTRIBUTE_UNUSED;
- PTR data ATTRIBUTE_UNUSED;
- asection *is ATTRIBUTE_UNUSED;
- bfd *obfd ATTRIBUTE_UNUSED;
- char **errmsg ATTRIBUTE_UNUSED;
+_bfd_elf_rel_vtable_reloc_fn
+ (bfd *abfd ATTRIBUTE_UNUSED, arelent *re ATTRIBUTE_UNUSED,
+ struct symbol_cache_entry *symbol ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED, asection *is ATTRIBUTE_UNUSED,
+ bfd *obfd ATTRIBUTE_UNUSED, char **errmsg ATTRIBUTE_UNUSED)
{
return bfd_reloc_ok;
}
@@ -6345,8 +6279,7 @@ _bfd_elf_rel_vtable_reloc_fn (abfd, re, symbol, data, is, obfd, errmsg)
/* FIXME: this is kinda wrong, but it's what gdb wants. */
static int
-elfcore_make_pid (abfd)
- bfd *abfd;
+elfcore_make_pid (bfd *abfd)
{
return ((elf_tdata (abfd)->core_lwpid << 16)
+ (elf_tdata (abfd)->core_pid));
@@ -6358,10 +6291,7 @@ elfcore_make_pid (abfd)
overwrite it. */
static bfd_boolean
-elfcore_maybe_make_sect (abfd, name, sect)
- bfd *abfd;
- char *name;
- asection *sect;
+elfcore_maybe_make_sect (bfd *abfd, char *name, asection *sect)
{
asection *sect2;
@@ -6387,11 +6317,10 @@ elfcore_maybe_make_sect (abfd, name, sect)
PID is elfcore_make_pid (abfd).
Both pseudosections have identical contents. */
bfd_boolean
-_bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
- bfd *abfd;
- char *name;
- size_t size;
- ufile_ptr filepos;
+_bfd_elfcore_make_pseudosection (bfd *abfd,
+ char *name,
+ size_t size,
+ ufile_ptr filepos)
{
char buf[100];
char *threaded_name;
@@ -6402,7 +6331,7 @@ _bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
sprintf (buf, "%s/%d", name, elfcore_make_pid (abfd));
len = strlen (buf) + 1;
- threaded_name = bfd_alloc (abfd, (bfd_size_type) len);
+ threaded_name = bfd_alloc (abfd, len);
if (threaded_name == NULL)
return FALSE;
memcpy (threaded_name, buf, len);
@@ -6425,13 +6354,9 @@ _bfd_elfcore_make_pseudosection (abfd, name, size, filepos)
*/
#if defined (HAVE_PRSTATUS_T)
-static bfd_boolean elfcore_grok_prstatus
- PARAMS ((bfd *, Elf_Internal_Note *));
static bfd_boolean
-elfcore_grok_prstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
size_t raw_size;
int offset;
@@ -6502,10 +6427,9 @@ elfcore_grok_prstatus (abfd, note)
/* Create a pseudosection containing the exact contents of NOTE. */
static bfd_boolean
-elfcore_make_note_pseudosection (abfd, name, note)
- bfd *abfd;
- char *name;
- Elf_Internal_Note *note;
+elfcore_make_note_pseudosection (bfd *abfd,
+ char *name,
+ Elf_Internal_Note *note)
{
return _bfd_elfcore_make_pseudosection (abfd, name,
note->descsz, note->descpos);
@@ -6516,9 +6440,7 @@ elfcore_make_note_pseudosection (abfd, name, note)
data structure apart. */
static bfd_boolean
-elfcore_grok_prfpreg (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_prfpreg (bfd *abfd, Elf_Internal_Note *note)
{
return elfcore_make_note_pseudosection (abfd, ".reg2", note);
}
@@ -6528,9 +6450,7 @@ elfcore_grok_prfpreg (abfd, note)
literally. */
static bfd_boolean
-elfcore_grok_prxfpreg (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_prxfpreg (bfd *abfd, Elf_Internal_Note *note)
{
return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
}
@@ -6554,10 +6474,7 @@ typedef psinfo32_t elfcore_psinfo32_t;
the copy will always have a terminating '\0'. */
char *
-_bfd_elfcore_strndup (abfd, start, max)
- bfd *abfd;
- char *start;
- size_t max;
+_bfd_elfcore_strndup (bfd *abfd, char *start, size_t max)
{
char *dups;
char *end = memchr (start, '\0', max);
@@ -6568,7 +6485,7 @@ _bfd_elfcore_strndup (abfd, start, max)
else
len = end - start;
- dups = bfd_alloc (abfd, (bfd_size_type) len + 1);
+ dups = bfd_alloc (abfd, len + 1);
if (dups == NULL)
return NULL;
@@ -6579,13 +6496,8 @@ _bfd_elfcore_strndup (abfd, start, max)
}
#if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
-static bfd_boolean elfcore_grok_psinfo
- PARAMS ((bfd *, Elf_Internal_Note *));
-
static bfd_boolean
-elfcore_grok_psinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
if (note->descsz == sizeof (elfcore_psinfo_t))
{
@@ -6643,13 +6555,8 @@ elfcore_grok_psinfo (abfd, note)
#endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */
#if defined (HAVE_PSTATUS_T)
-static bfd_boolean elfcore_grok_pstatus
- PARAMS ((bfd *, Elf_Internal_Note *));
-
static bfd_boolean
-elfcore_grok_pstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_pstatus (bfd *abfd, Elf_Internal_Note *note)
{
if (note->descsz == sizeof (pstatus_t)
#if defined (HAVE_PXSTATUS_T)
@@ -6683,13 +6590,8 @@ elfcore_grok_pstatus (abfd, note)
#endif /* defined (HAVE_PSTATUS_T) */
#if defined (HAVE_LWPSTATUS_T)
-static bfd_boolean elfcore_grok_lwpstatus
- PARAMS ((bfd *, Elf_Internal_Note *));
-
static bfd_boolean
-elfcore_grok_lwpstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
{
lwpstatus_t lwpstat;
char buf[100];
@@ -6713,7 +6615,7 @@ elfcore_grok_lwpstatus (abfd, note)
sprintf (buf, ".reg/%d", elfcore_make_pid (abfd));
len = strlen (buf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (name == NULL)
return FALSE;
memcpy (name, buf, len);
@@ -6743,7 +6645,7 @@ elfcore_grok_lwpstatus (abfd, note)
sprintf (buf, ".reg2/%d", elfcore_make_pid (abfd));
len = strlen (buf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (name == NULL)
return FALSE;
memcpy (name, buf, len);
@@ -6772,9 +6674,7 @@ elfcore_grok_lwpstatus (abfd, note)
#if defined (HAVE_WIN32_PSTATUS_T)
static bfd_boolean
-elfcore_grok_win32pstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
{
char buf[30];
char *name;
@@ -6800,7 +6700,7 @@ elfcore_grok_win32pstatus (abfd, note)
sprintf (buf, ".reg/%d", pstatus.data.thread_info.tid);
len = strlen (buf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (name == NULL)
return FALSE;
@@ -6827,7 +6727,7 @@ elfcore_grok_win32pstatus (abfd, note)
sprintf (buf, ".module/%08x", pstatus.data.module_info.base_address);
len = strlen (buf) + 1;
- name = bfd_alloc (abfd, (bfd_size_type) len);
+ name = bfd_alloc (abfd, len);
if (name == NULL)
return FALSE;
@@ -6853,11 +6753,9 @@ elfcore_grok_win32pstatus (abfd, note)
#endif /* HAVE_WIN32_PSTATUS_T */
static bfd_boolean
-elfcore_grok_note (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
switch (note->type)
{
@@ -6927,9 +6825,7 @@ elfcore_grok_note (abfd, note)
}
static bfd_boolean
-elfcore_netbsd_get_lwpid (note, lwpidp)
- Elf_Internal_Note *note;
- int *lwpidp;
+elfcore_netbsd_get_lwpid (Elf_Internal_Note *note, int *lwpidp)
{
char *cp;
@@ -6943,9 +6839,7 @@ elfcore_netbsd_get_lwpid (note, lwpidp)
}
static bfd_boolean
-elfcore_grok_netbsd_procinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_netbsd_procinfo (bfd *abfd, Elf_Internal_Note *note)
{
/* Signal number at offset 0x08. */
@@ -6964,9 +6858,7 @@ elfcore_grok_netbsd_procinfo (abfd, note)
}
static bfd_boolean
-elfcore_grok_netbsd_note (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note)
{
int lwp;
@@ -7031,10 +6923,7 @@ elfcore_grok_netbsd_note (abfd, note)
}
static bfd_boolean
-elfcore_grok_nto_status (abfd, note, tid)
- bfd *abfd;
- Elf_Internal_Note *note;
- pid_t *tid;
+elfcore_grok_nto_status (bfd *abfd, Elf_Internal_Note *note, pid_t *tid)
{
void *ddata = note->descdata;
char buf[100];
@@ -7068,7 +6957,7 @@ elfcore_grok_nto_status (abfd, note, tid)
/* Make a ".qnx_core_status/%d" section. */
sprintf (buf, ".qnx_core_status/%d", *tid);
- name = bfd_alloc (abfd, (bfd_size_type) strlen (buf) + 1);
+ name = bfd_alloc (abfd, strlen (buf) + 1);
if (name == NULL)
return FALSE;
strcpy (name, buf);
@@ -7086,10 +6975,7 @@ elfcore_grok_nto_status (abfd, note, tid)
}
static bfd_boolean
-elfcore_grok_nto_gregs (abfd, note, tid)
- bfd *abfd;
- Elf_Internal_Note *note;
- pid_t tid;
+elfcore_grok_nto_gregs (bfd *abfd, Elf_Internal_Note *note, pid_t tid)
{
char buf[100];
char *name;
@@ -7098,7 +6984,7 @@ elfcore_grok_nto_gregs (abfd, note, tid)
/* Make a ".reg/%d" section. */
sprintf (buf, ".reg/%d", tid);
- name = bfd_alloc (abfd, (bfd_size_type) strlen (buf) + 1);
+ name = bfd_alloc (abfd, strlen (buf) + 1);
if (name == NULL)
return FALSE;
strcpy (name, buf);
@@ -7125,9 +7011,7 @@ elfcore_grok_nto_gregs (abfd, note, tid)
#define BFD_QNT_CORE_FPREG 10
static bfd_boolean
-elfcore_grok_nto_note (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elfcore_grok_nto_note (bfd *abfd, Elf_Internal_Note *note)
{
/* Every GREG section has a STATUS section before it. Store the
tid from the previous call to pass down to the next gregs
@@ -7157,14 +7041,13 @@ elfcore_grok_nto_note (abfd, note)
End of buffer containing note. */
char *
-elfcore_write_note (abfd, buf, bufsiz, name, type, input, size)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- const char *name;
- int type;
- const PTR input;
- int size;
+elfcore_write_note (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ const char *name,
+ int type,
+ const void *input,
+ int size)
{
Elf_External_Note *xnp;
size_t namesz;
@@ -7176,7 +7059,7 @@ elfcore_write_note (abfd, buf, bufsiz, name, type, input, size)
pad = 0;
if (name != NULL)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
namesz = strlen (name) + 1;
bed = get_elf_backend_data (abfd);
@@ -7209,12 +7092,11 @@ elfcore_write_note (abfd, buf, bufsiz, name, type, input, size)
#if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T)
char *
-elfcore_write_prpsinfo (abfd, buf, bufsiz, fname, psargs)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- const char *fname;
- const char *psargs;
+elfcore_write_prpsinfo (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ const char *fname,
+ const char *psargs)
{
int note_type;
char *note_name = "CORE";
@@ -7237,13 +7119,12 @@ elfcore_write_prpsinfo (abfd, buf, bufsiz, fname, psargs)
#if defined (HAVE_PRSTATUS_T)
char *
-elfcore_write_prstatus (abfd, buf, bufsiz, pid, cursig, gregs)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- long pid;
- int cursig;
- const PTR gregs;
+elfcore_write_prstatus (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ long pid,
+ int cursig,
+ const void *gregs)
{
prstatus_t prstat;
char *note_name = "CORE";
@@ -7259,13 +7140,12 @@ elfcore_write_prstatus (abfd, buf, bufsiz, pid, cursig, gregs)
#if defined (HAVE_LWPSTATUS_T)
char *
-elfcore_write_lwpstatus (abfd, buf, bufsiz, pid, cursig, gregs)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- long pid;
- int cursig;
- const PTR gregs;
+elfcore_write_lwpstatus (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ long pid,
+ int cursig,
+ const void *gregs)
{
lwpstatus_t lwpstat;
char *note_name = "CORE";
@@ -7291,13 +7171,12 @@ elfcore_write_lwpstatus (abfd, buf, bufsiz, pid, cursig, gregs)
#if defined (HAVE_PSTATUS_T)
char *
-elfcore_write_pstatus (abfd, buf, bufsiz, pid, cursig, gregs)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- long pid;
- int cursig;
- const PTR gregs;
+elfcore_write_pstatus (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ long pid,
+ int cursig,
+ const void *gregs)
{
pstatus_t pstat;
char *note_name = "CORE";
@@ -7311,12 +7190,11 @@ elfcore_write_pstatus (abfd, buf, bufsiz, pid, cursig, gregs)
#endif /* HAVE_PSTATUS_T */
char *
-elfcore_write_prfpreg (abfd, buf, bufsiz, fpregs, size)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- const PTR fpregs;
- int size;
+elfcore_write_prfpreg (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ const void *fpregs,
+ int size)
{
char *note_name = "CORE";
return elfcore_write_note (abfd, buf, bufsiz,
@@ -7324,12 +7202,11 @@ elfcore_write_prfpreg (abfd, buf, bufsiz, fpregs, size)
}
char *
-elfcore_write_prxfpreg (abfd, buf, bufsiz, xfpregs, size)
- bfd *abfd;
- char *buf;
- int *bufsiz;
- const PTR xfpregs;
- int size;
+elfcore_write_prxfpreg (bfd *abfd,
+ char *buf,
+ int *bufsiz,
+ const void *xfpregs,
+ int size)
{
char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
@@ -7337,10 +7214,7 @@ elfcore_write_prxfpreg (abfd, buf, bufsiz, xfpregs, size)
}
static bfd_boolean
-elfcore_read_notes (abfd, offset, size)
- bfd *abfd;
- file_ptr offset;
- bfd_size_type size;
+elfcore_read_notes (bfd *abfd, file_ptr offset, bfd_size_type size)
{
char *buf;
char *p;
@@ -7408,8 +7282,7 @@ elfcore_read_notes (abfd, offset, size)
occurs; bfd_get_error will return an appropriate code. */
long
-bfd_get_elf_phdr_upper_bound (abfd)
- bfd *abfd;
+bfd_get_elf_phdr_upper_bound (bfd *abfd)
{
if (abfd->xvec->flavour != bfd_target_elf_flavour)
{
@@ -7429,9 +7302,7 @@ bfd_get_elf_phdr_upper_bound (abfd)
error occurs; bfd_get_error will return an appropriate code. */
int
-bfd_get_elf_phdrs (abfd, phdrs)
- bfd *abfd;
- void *phdrs;
+bfd_get_elf_phdrs (bfd *abfd, void *phdrs)
{
int num_phdrs;
@@ -7449,10 +7320,7 @@ bfd_get_elf_phdrs (abfd, phdrs)
}
void
-_bfd_elf_sprintf_vma (abfd, buf, value)
- bfd *abfd ATTRIBUTE_UNUSED;
- char *buf;
- bfd_vma value;
+_bfd_elf_sprintf_vma (bfd *abfd ATTRIBUTE_UNUSED, char *buf, bfd_vma value)
{
#ifdef BFD64
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
@@ -7480,10 +7348,7 @@ _bfd_elf_sprintf_vma (abfd, buf, value)
}
void
-_bfd_elf_fprintf_vma (abfd, stream, value)
- bfd *abfd ATTRIBUTE_UNUSED;
- PTR stream;
- bfd_vma value;
+_bfd_elf_fprintf_vma (bfd *abfd ATTRIBUTE_UNUSED, void *stream, bfd_vma value)
{
#ifdef BFD64
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
@@ -7512,8 +7377,7 @@ _bfd_elf_fprintf_vma (abfd, stream, value)
}
enum elf_reloc_type_class
-_bfd_elf_reloc_type_class (rela)
- const Elf_Internal_Rela *rela ATTRIBUTE_UNUSED;
+_bfd_elf_reloc_type_class (const Elf_Internal_Rela *rela ATTRIBUTE_UNUSED)
{
return reloc_class_normal;
}
@@ -7522,11 +7386,10 @@ _bfd_elf_reloc_type_class (rela)
relocation against a local symbol. */
bfd_vma
-_bfd_elf_rela_local_sym (abfd, sym, sec, rel)
- bfd *abfd;
- Elf_Internal_Sym *sym;
- asection *sec;
- Elf_Internal_Rela *rel;
+_bfd_elf_rela_local_sym (bfd *abfd,
+ Elf_Internal_Sym *sym,
+ asection *sec,
+ Elf_Internal_Rela *rel)
{
bfd_vma relocation;
@@ -7544,7 +7407,7 @@ _bfd_elf_rela_local_sym (abfd, sym, sec, rel)
_bfd_merged_section_offset (abfd, &msec,
elf_section_data (sec)->sec_info,
sym->st_value + rel->r_addend,
- (bfd_vma) 0)
+ 0)
- relocation;
rel->r_addend += msec->output_section->vma + msec->output_offset;
}
@@ -7552,11 +7415,10 @@ _bfd_elf_rela_local_sym (abfd, sym, sec, rel)
}
bfd_vma
-_bfd_elf_rel_local_sym (abfd, sym, psec, addend)
- bfd *abfd;
- Elf_Internal_Sym *sym;
- asection **psec;
- bfd_vma addend;
+_bfd_elf_rel_local_sym (bfd *abfd,
+ Elf_Internal_Sym *sym,
+ asection **psec,
+ bfd_vma addend)
{
asection *sec = *psec;
@@ -7565,15 +7427,14 @@ _bfd_elf_rel_local_sym (abfd, sym, psec, addend)
return _bfd_merged_section_offset (abfd, psec,
elf_section_data (sec)->sec_info,
- sym->st_value + addend, (bfd_vma) 0);
+ sym->st_value + addend, 0);
}
bfd_vma
-_bfd_elf_section_offset (abfd, info, sec, offset)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- bfd_vma offset;
+_bfd_elf_section_offset (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ bfd_vma offset)
{
struct bfd_elf_section_data *sec_data;
@@ -7605,11 +7466,11 @@ _bfd_elf_section_offset (abfd, info, sec, offset)
the remote memory. */
bfd *
-bfd_elf_bfd_from_remote_memory (templ, ehdr_vma, loadbasep, target_read_memory)
- bfd *templ;
- bfd_vma ehdr_vma;
- bfd_vma *loadbasep;
- int (*target_read_memory) PARAMS ((bfd_vma vma, char *myaddr, int len));
+bfd_elf_bfd_from_remote_memory
+ (bfd *templ,
+ bfd_vma ehdr_vma,
+ bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma, char *, int))
{
return (*get_elf_backend_data (templ)->elf_backend_bfd_from_remote_memory)
(templ, ehdr_vma, loadbasep, target_read_memory);
diff --git a/bfd/elf32-am33lin.c b/bfd/elf32-am33lin.c
new file mode 100644
index 0000000..4cc2230
--- /dev/null
+++ b/bfd/elf32-am33lin.c
@@ -0,0 +1,35 @@
+/* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
+ Copyright 2001
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ 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. */
+
+#define elf_symbol_leading_char 0
+
+#define TARGET_LITTLE_SYM bfd_elf32_am33lin_vec
+#define TARGET_LITTLE_NAME "elf32-am33lin"
+#define ELF_ARCH bfd_arch_mn10300
+#define ELF_MACHINE_CODE EM_MN10300
+#define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300
+#define ELF_MAXPAGESIZE 0x1000
+
+/* Rename global functions. */
+#define _bfd_mn10300_elf_merge_private_bfd_data _bfd_am33_elf_merge_private_bfd_data
+#define _bfd_mn10300_elf_object_p _bfd_am33_elf_object_p
+#define _bfd_mn10300_elf_final_write_processing _bfd_am33_elf_final_write_processing
+
+#include "elf-m10300.c"
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
index ba286b1..a28c558 100644
--- a/bfd/elf32-arm.h
+++ b/bfd/elf32-arm.h
@@ -564,7 +564,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info)
/* If we are only performing a partial
link do not bother adding the glue. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME);
@@ -620,7 +620,7 @@ bfd_elf32_arm_get_bfd_for_interworking (abfd, info)
/* If we are only performing a partial link
do not bother getting a bfd to hold the glue. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
globals = elf32_arm_hash_table (info);
@@ -652,7 +652,7 @@ bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge)
/* If we are only performing a partial link do not bother
to construct any glue. */
- if (link_info->relocateable)
+ if (link_info->relocatable)
return TRUE;
/* Here we have a bfd that is to be included on the link. We have a hook
@@ -1038,6 +1038,18 @@ elf32_arm_to_thumb_stub (info, name, input_bfd, output_bfd, input_section,
return TRUE;
}
+/* This is the condition under which elf32_arm_finish_dynamic_symbol
+ will be called from elflink.h. If elflink.h doesn't call our
+ finish_dynamic_symbol routine, we'll need to do something about
+ initializing any .plt and .got entries in elf32_arm_relocate_section
+ and elf32_arm_final_link_relocate. */
+#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
+ ((DYN) \
+ && ((SHARED) \
+ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
+ && ((H)->dynindx != -1 \
+ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
+
/* Perform a relocation as part of a final link. */
static bfd_reloc_status_type
@@ -1605,13 +1617,16 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
if (h != NULL)
{
bfd_vma off;
+ bfd_boolean dyn = elf_hash_table (info)->dynamic_sections_created;
off = h->got.offset;
BFD_ASSERT (off != (bfd_vma) -1);
- if (!elf_hash_table (info)->dynamic_sections_created ||
- (info->shared && (info->symbolic || h->dynindx == -1)
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
+ if (!WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
+ || (info->shared
+ && (info->symbolic || h->dynindx == -1
+ || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
{
/* This is actually a static link, or it is a -Bsymbolic link
and the symbol is defined locally. We must initialize this
@@ -1838,7 +1853,7 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
const char *name;
#if !USE_REL
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#endif
@@ -1870,9 +1885,9 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
howto = bfd_reloc.howto;
#if USE_REL
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -1948,19 +1963,16 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-
- while ( h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- if ( h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
+ bfd_boolean warned;
+ bfd_boolean unresolved_reloc;
+
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation,
+ sec, unresolved_reloc, info,
+ warned);
+
+ if (unresolved_reloc || relocation != 0)
{
- int relocation_needed = 1;
-
- sec = h->root.u.def.section;
-
/* In these cases, we don't need the relocation value.
We check specially because in some obscure cases
sec->output_section will be NULL. */
@@ -1983,63 +1995,39 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
&& (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_DYNAMIC) != 0))
)
- relocation_needed = 0;
+ relocation = 0;
break;
case R_ARM_GOTPC:
- relocation_needed = 0;
+ relocation = 0;
break;
case R_ARM_GOT32:
- if (elf_hash_table(info)->dynamic_sections_created
- && (!info->shared
+ if ((WILL_CALL_FINISH_DYNAMIC_SYMBOL
+ (elf_hash_table (info)->dynamic_sections_created,
+ info->shared, h))
+ && (!info->shared
|| (!info->symbolic && h->dynindx != -1)
- || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
- )
- )
- relocation_needed = 0;
+ || (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0))
+ relocation = 0;
break;
case R_ARM_PLT32:
if (h->plt.offset != (bfd_vma)-1)
- relocation_needed = 0;
+ relocation = 0;
break;
default:
- if (sec->output_section == NULL)
- {
- (*_bfd_error_handler)
- (_("%s: warning: unresolvable relocation %d against symbol `%s' from %s section"),
- bfd_archive_filename (input_bfd),
- r_type,
- h->root.root.string,
- bfd_get_section_name (input_bfd, input_section));
- relocation_needed = 0;
- }
+ if (unresolved_reloc)
+ _bfd_error_handler
+ (_("%s: warning: unresolvable relocation %d against symbol `%s' from %s section"),
+ bfd_archive_filename (input_bfd),
+ r_type,
+ h->root.root.string,
+ bfd_get_section_name (input_bfd, input_section));
+ break;
}
-
- if (relocation_needed)
- relocation = h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset;
- else
- relocation = 0;
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
- else if (info->shared && !info->symbolic
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (!((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
}
}
@@ -2630,7 +2618,7 @@ elf32_arm_check_relocs (abfd, info, sec, relocs)
asection *sgot, *srelgot, *sreloc;
bfd_vma *local_got_offsets;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
sgot = srelgot = sreloc = NULL;
@@ -3699,7 +3687,11 @@ elf32_arm_final_write_processing (abfd, linker)
#define ELF_ARCH bfd_arch_arm
#define ELF_MACHINE_CODE EM_ARM
+#ifdef __QNXTARGET__
+#define ELF_MAXPAGESIZE 0x1000
+#else
#define ELF_MAXPAGESIZE 0x8000
+#endif
#define bfd_elf32_bfd_copy_private_bfd_data elf32_arm_copy_private_bfd_data
#define bfd_elf32_bfd_merge_private_bfd_data elf32_arm_merge_private_bfd_data
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index a701dc9..defa9ce 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -1,5 +1,5 @@
/* AVR-specific support for 32-bit ELF
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This file is part of BFD, the Binary File Descriptor library.
@@ -455,7 +455,7 @@ elf32_avr_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -719,7 +719,7 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela * rel;
Elf_Internal_Rela * relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 1d278a0..d630a2a 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -799,7 +799,7 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -856,24 +856,12 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- /* It seems this can happen with erroneous or unsupported input
- (mixing a.out and elf in an archive, for example.) */
- if (sym_hashes == NULL)
- return FALSE;
-
- h = sym_hashes [r_symndx - symtab_hdr->sh_info];
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned;
+ bfd_boolean unresolved_reloc;
- symname = h->root.root.string;
-
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx, symtab_hdr, relocation, sec, unresolved_reloc, info, warned);
+ if (unresolved_reloc
/* Perhaps we should detect the cases that
sec->output_section is expected to be NULL like i386 and
m68k, but apparently (and according to elfxx-ia64.c) all
@@ -888,46 +876,45 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
is *not* dynamically linked against. Thus this will
automatically remind us so we can see if there are other
valid cases we need to revisit. */
- if ((sec->output_section == NULL
- && (sec->owner->flags & DYNAMIC) != 0)
-
- /* Here follow the cases where the relocation value must
- be zero (or when further handling is simplified when
- zero). I can't claim to understand the various
- conditions and they weren't described in the files
- where I copied them from (elf32-m68k.c and
- elf32-i386.c), but let's mention examples of where
- they happen. FIXME: Perhaps define and use a
- dynamic_symbol_p function like ia64.
-
- - When creating a shared library, we can have an
- ordinary relocation for a symbol defined in a shared
- library (perhaps the one we create). We then make
- the relocation value zero, as the value seen now will
- be added into the relocation addend in this shared
- library, but must be handled only at dynamic-link
- time. FIXME: Not sure this example covers the
- h->elf_link_hash_flags test, though it's there in
- other targets. */
- || (info->shared
- && ((! info->symbolic && h->dynindx != -1)
- || (h->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0)
- && (input_section->flags & SEC_ALLOC) != 0
- && (r_type == R_CRIS_8
- || r_type == R_CRIS_16
- || r_type == R_CRIS_32
- || r_type == R_CRIS_8_PCREL
- || r_type == R_CRIS_16_PCREL
- || r_type == R_CRIS_32_PCREL)))
+ && (sec->owner->flags & DYNAMIC) != 0)
+ relocation = 0;
+
+ else if (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ {
+ /* Here follow the cases where the relocation value must
+ be zero (or when further handling is simplified when
+ zero). I can't claim to understand the various
+ conditions and they weren't described in the files
+ where I copied them from (elf32-m68k.c and
+ elf32-i386.c), but let's mention examples of where
+ they happen. FIXME: Perhaps define and use a
+ dynamic_symbol_p function like ia64.
+
+ - When creating a shared library, we can have an
+ ordinary relocation for a symbol defined in a shared
+ library (perhaps the one we create). We then make
+ the relocation value zero, as the value seen now will
+ be added into the relocation addend in this shared
+ library, but must be handled only at dynamic-link
+ time. FIXME: Not sure this example covers the
+ h->elf_link_hash_flags test, though it's there in
+ other targets. */
+ if (info->shared
+ && ((! info->symbolic && h->dynindx != -1)
+ || (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ && (input_section->flags & SEC_ALLOC) != 0
+ && (r_type == R_CRIS_8
+ || r_type == R_CRIS_16
+ || r_type == R_CRIS_32
+ || r_type == R_CRIS_8_PCREL
+ || r_type == R_CRIS_16_PCREL
+ || r_type == R_CRIS_32_PCREL))
relocation = 0;
- else if (sec->output_section != NULL)
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- else
+ else if (unresolved_reloc)
{
- (*_bfd_error_handler)
+ _bfd_error_handler
(_("%s: unresolvable relocation %s against symbol `%s' from %s section"),
bfd_archive_filename (input_bfd),
cris_elf_howto_table[r_type].name,
@@ -937,22 +924,6 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
return FALSE;
}
}
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (!(info->callbacks->undefined_symbol
- (info, symname, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
- }
}
switch (r_type)
@@ -2274,7 +2245,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
asection *srelgot;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c
index 1d6912a..cc5eddc 100644
--- a/bfd/elf32-d10v.c
+++ b/bfd/elf32-d10v.c
@@ -1,5 +1,6 @@
/* D10V-specific support for 32-bit ELF
- Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Contributed by Martin Hunt (hunt@cygnus.com).
This file is part of BFD, the Binary File Descriptor library.
@@ -303,7 +304,7 @@ elf32_d10v_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -388,9 +389,9 @@ elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
howto = elf_d10v_howto_table + r_type;
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
diff --git a/bfd/elf32-dlx.c b/bfd/elf32-dlx.c
index a1f7d0d..1f380e8 100644
--- a/bfd/elf32-dlx.c
+++ b/bfd/elf32-dlx.c
@@ -1,5 +1,5 @@
/* DLX specific support for 32-bit ELF
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -320,7 +320,7 @@ _bfd_dlx_elf_hi16_reloc (abfd, reloc_entry, symbol, data,
return ret;
}
-/* ELF relocs are against symbols. If we are producing relocateable
+/* ELF relocs are against symbols. If we are producing relocatable
output, and the reloc is against an external symbol, and nothing
has given us any additional addend, the resulting reloc will also
be against the same symbol. In such a case, we don't want to
@@ -328,7 +328,7 @@ _bfd_dlx_elf_hi16_reloc (abfd, reloc_entry, symbol, data,
all be done at final link time. Rather than put special case code
into bfd_perform_relocation, all the reloc types use this howto
function. It just short circuits the reloc if producing
- relocateable output against an external symbol. */
+ relocatable output against an external symbol. */
static bfd_reloc_status_type
elf32_dlx_relocate16 (abfd, reloc_entry, symbol, data,
@@ -532,7 +532,7 @@ elf32_dlx_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c
index 2311316..c4e2290 100644
--- a/bfd/elf32-fr30.c
+++ b/bfd/elf32-fr30.c
@@ -1,5 +1,6 @@
/* FR30-specific support for 32-bit ELF.
- Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -478,7 +479,7 @@ fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel,
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -492,7 +493,7 @@ fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -515,7 +516,7 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -726,7 +727,7 @@ fr30_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 08dae26..19fb324 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -1,5 +1,5 @@
/* FRV-specific support for 32-bit ELF.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -651,7 +651,7 @@ frv_final_link_relocate (howto, input_bfd, input_section, contents, rel,
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -665,7 +665,7 @@ frv_final_link_relocate (howto, input_bfd, input_section, contents, rel,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -688,7 +688,7 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -907,7 +907,7 @@ elf32_frv_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
bfd_vma *valp;
{
if (sym->st_shndx == SHN_COMMON
- && !info->relocateable
+ && !info->relocatable
&& (int)sym->st_size <= (int)bfd_get_gp_size (abfd))
{
/* Common symbols less than or equal to -G nn bytes are
@@ -947,7 +947,7 @@ elf32_frv_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index e4929fb..efd14bb 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -25,38 +25,38 @@
#include "elf/h8.h"
static reloc_howto_type *elf32_h8_reloc_type_lookup
- PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
+ (bfd *abfd, bfd_reloc_code_real_type code);
static void elf32_h8_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
static void elf32_h8_info_to_howto_rel
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
static unsigned long elf32_h8_mach
- PARAMS ((flagword));
+ (flagword);
static void elf32_h8_final_write_processing
- PARAMS ((bfd *, bfd_boolean));
+ (bfd *, bfd_boolean);
static bfd_boolean elf32_h8_object_p
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean elf32_h8_merge_private_bfd_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean elf32_h8_relax_section
- PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
static bfd_boolean elf32_h8_relax_delete_bytes
- PARAMS ((bfd *, asection *, bfd_vma, int));
+ (bfd *, asection *, bfd_vma, int);
static bfd_boolean elf32_h8_symbol_address_p
- PARAMS ((bfd *, asection *, bfd_vma));
+ (bfd *, asection *, bfd_vma);
static bfd_byte *elf32_h8_get_relocated_section_contents
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *, bfd_boolean, asymbol **));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+ bfd_byte *, bfd_boolean, asymbol **);
static bfd_reloc_status_type elf32_h8_final_link_relocate
- PARAMS ((unsigned long, bfd *, bfd *, asection *,
- bfd_byte *, bfd_vma, bfd_vma, bfd_vma,
- struct bfd_link_info *, asection *, int));
+ (unsigned long, bfd *, bfd *, asection *,
+ bfd_byte *, bfd_vma, bfd_vma, bfd_vma,
+ struct bfd_link_info *, asection *, int);
static bfd_boolean elf32_h8_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
- bfd_byte *, Elf_Internal_Rela *,
- Elf_Internal_Sym *, asection **));
+ (bfd *, struct bfd_link_info *, bfd *, asection *,
+ bfd_byte *, Elf_Internal_Rela *,
+ Elf_Internal_Sym *, asection **);
static bfd_reloc_status_type special
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **);
/* This does not include any relocation information, but should be
good enough for GDB or objdump to read the file. */
@@ -183,7 +183,7 @@ static reloc_howto_type h8_elf_howto_table[] = {
0, /* bitpos */
complain_overflow_dont,/* complain_on_overflow */
special, /* special_function */
- "R_H8_DIR32", /* name */
+ "R_H8_DIR32A16", /* name */
FALSE, /* partial_inplace */
0, /* src_mask */
0xffffffff, /* dst_mask */
@@ -243,9 +243,8 @@ static const struct elf_reloc_map h8_reloc_map[] = {
static reloc_howto_type *
-elf32_h8_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+elf32_h8_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
unsigned int i;
@@ -258,10 +257,8 @@ elf32_h8_reloc_type_lookup (abfd, code)
}
static void
-elf32_h8_info_to_howto (abfd, bfd_reloc, elf_reloc)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *bfd_reloc;
- Elf_Internal_Rela *elf_reloc;
+elf32_h8_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc,
+ Elf_Internal_Rela *elf_reloc)
{
unsigned int r;
unsigned int i;
@@ -277,10 +274,8 @@ elf32_h8_info_to_howto (abfd, bfd_reloc, elf_reloc)
}
static void
-elf32_h8_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *bfd_reloc;
- Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED;
+elf32_h8_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc,
+ Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED)
{
unsigned int r;
@@ -294,15 +289,13 @@ elf32_h8_info_to_howto_rel (abfd, bfd_reloc, elf_reloc)
When doing -r, we can't do any arithmetic for the pcrel stuff, because
we support relaxing on the H8/300 series chips. */
static bfd_reloc_status_type
-special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
- error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry ATTRIBUTE_UNUSED;
- asymbol *symbol ATTRIBUTE_UNUSED;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section ATTRIBUTE_UNUSED;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+special (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *reloc_entry ATTRIBUTE_UNUSED,
+ asymbol *symbol ATTRIBUTE_UNUSED,
+ PTR data ATTRIBUTE_UNUSED,
+ asection *input_section ATTRIBUTE_UNUSED,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
if (output_bfd == (bfd *) NULL)
return bfd_reloc_continue;
@@ -314,26 +307,19 @@ special (abfd, reloc_entry, symbol, data, input_section, output_bfd,
/* Perform a relocation as part of a final link. */
static bfd_reloc_status_type
-elf32_h8_final_link_relocate (r_type, input_bfd, output_bfd,
- input_section, contents, offset, value,
- addend, info, sym_sec, is_local)
- unsigned long r_type;
- bfd *input_bfd;
- bfd *output_bfd ATTRIBUTE_UNUSED;
- asection *input_section ATTRIBUTE_UNUSED;
- bfd_byte *contents;
- bfd_vma offset;
- bfd_vma value;
- bfd_vma addend;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- asection *sym_sec ATTRIBUTE_UNUSED;
- int is_local ATTRIBUTE_UNUSED;
+elf32_h8_final_link_relocate (unsigned long r_type, bfd *input_bfd,
+ bfd *output_bfd ATTRIBUTE_UNUSED,
+ asection *input_section ATTRIBUTE_UNUSED,
+ bfd_byte *contents, bfd_vma offset,
+ bfd_vma value, bfd_vma addend,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ asection *sym_sec ATTRIBUTE_UNUSED,
+ int is_local ATTRIBUTE_UNUSED)
{
bfd_byte *hit_data = contents + offset;
switch (r_type)
{
-
case R_H8_NONE:
return bfd_reloc_ok;
@@ -411,22 +397,17 @@ elf32_h8_final_link_relocate (r_type, input_bfd, output_bfd,
/* Relocate an H8 ELF section. */
static bfd_boolean
-elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf32_h8_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
+ bfd *input_bfd, asection *input_section,
+ bfd_byte *contents, Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
Elf_Internal_Rela *rel, *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -559,8 +540,7 @@ elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section,
Examine that field and return the proper BFD machine type for
the object file. */
static unsigned long
-elf32_h8_mach (flags)
- flagword flags;
+elf32_h8_mach (flagword flags)
{
switch (flags & EF_H8_MACH)
{
@@ -593,9 +573,8 @@ elf32_h8_mach (flags)
into the flags field in the object file. */
static void
-elf32_h8_final_write_processing (abfd, linker)
- bfd *abfd;
- bfd_boolean linker ATTRIBUTE_UNUSED;
+elf32_h8_final_write_processing (bfd *abfd,
+ bfd_boolean linker ATTRIBUTE_UNUSED)
{
unsigned long val;
@@ -639,8 +618,7 @@ elf32_h8_final_write_processing (abfd, linker)
record the encoded machine type found in the ELF flags. */
static bfd_boolean
-elf32_h8_object_p (abfd)
- bfd *abfd;
+elf32_h8_object_p (bfd *abfd)
{
bfd_default_set_arch_mach (abfd, bfd_arch_h8300,
elf32_h8_mach (elf_elfheader (abfd)->e_flags));
@@ -652,9 +630,7 @@ elf32_h8_object_p (abfd)
time is the architecture/machine information. */
static bfd_boolean
-elf32_h8_merge_private_bfd_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+elf32_h8_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
{
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@@ -689,11 +665,8 @@ elf32_h8_merge_private_bfd_data (ibfd, obfd)
mov.[bwl]:24/32 -> mov.[bwl]:16 2 bytes */
static bfd_boolean
-elf32_h8_relax_section (abfd, sec, link_info, again)
- bfd *abfd;
- asection *sec;
- struct bfd_link_info *link_info;
- bfd_boolean *again;
+elf32_h8_relax_section (bfd *abfd, asection *sec,
+ struct bfd_link_info *link_info, bfd_boolean *again)
{
Elf_Internal_Shdr *symtab_hdr;
Elf_Internal_Rela *internal_relocs;
@@ -706,10 +679,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
/* Assume nothing changes. */
*again = FALSE;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0)
@@ -1031,18 +1004,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
become an 8 bit absolute address if its in the right range. */
case R_H8_DIR16A8:
{
- bfd_vma value = symval + irel->r_addend;
+ bfd_vma value;
- if ((bfd_get_mach (abfd) == bfd_mach_h8300
- && value >= 0xff00
- && value <= 0xffff)
- || ((bfd_get_mach (abfd) == bfd_mach_h8300h
- /* FIXME: h8300hn? */
- || bfd_get_mach (abfd) == bfd_mach_h8300s
- /* FIXME: h8300sn? */
- || bfd_get_mach (abfd) == bfd_mach_h8300sx)
- && value >= 0xffff00
- && value <= 0xffffff))
+ value = bfd_h8300_pad_address (abfd, symval + irel->r_addend);
+ if (value >= 0xffffff00u)
{
unsigned char code;
@@ -1076,6 +1041,9 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
R_H8_DIR8);
+ /* Move the relocation. */
+ irel->r_offset--;
+
/* Delete two bytes of data. */
if (!elf32_h8_relax_delete_bytes (abfd, sec,
irel->r_offset + 1, 2))
@@ -1092,20 +1060,11 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
become an 8 bit absolute address if its in the right range. */
case R_H8_DIR24A8:
{
- bfd_vma value = symval + irel->r_addend;
+ bfd_vma value;
- if ((bfd_get_mach (abfd) == bfd_mach_h8300
- && value >= 0xff00
- && value <= 0xffff)
- || ((bfd_get_mach (abfd) == bfd_mach_h8300h
- /* FIXME: h8300hn? */
- || bfd_get_mach (abfd) == bfd_mach_h8300s
- /* FIXME: h8300sn? */
- || bfd_get_mach (abfd) == bfd_mach_h8300sx)
- && value >= 0xffff00
- && value <= 0xffffff))
+ value = bfd_h8300_pad_address (abfd, symval + irel->r_addend);
+ if (value >= 0xffffff00u)
{
- bfd_boolean skip = FALSE;
unsigned char code;
/* Note that we've changed the relocs, section contents,
@@ -1125,37 +1084,32 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
switch (code & 0xf0)
{
- case 0x00:
+ case 0x20:
bfd_put_8 (abfd, (code & 0xf) | 0x20,
contents + irel->r_offset - 2);
break;
- case 0x80:
+ case 0xa0:
bfd_put_8 (abfd, (code & 0xf) | 0x30,
contents + irel->r_offset - 2);
break;
- case 0x20:
- case 0xa0:
- /* Skip 32bit versions. */
- skip = TRUE;
- break;
default:
abort ();
}
- if (skip)
- break;
-
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
R_H8_DIR8);
+ irel->r_offset--;
/* Delete two bytes of data. */
- if (!elf32_h8_relax_delete_bytes (abfd, sec, irel->r_offset, 2))
+ if (!elf32_h8_relax_delete_bytes (abfd, sec,
+ irel->r_offset + 1, 4))
goto error_return;
/* That will change things, so, we should relax again.
Note that this is not required, and it may be slow. */
*again = TRUE;
+ break;
}
}
@@ -1165,9 +1119,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
become a 16bit absoulte address if it is in the right range. */
case R_H8_DIR32A16:
{
- bfd_vma value = symval + irel->r_addend;
+ bfd_vma value;
- if (value <= 0x7fff || value >= 0xff8000)
+ value = bfd_h8300_pad_address (abfd, symval + irel->r_addend);
+ if (value <= 0x7fff || value >= 0xffff8000u)
{
unsigned char code;
@@ -1187,7 +1142,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
/* Fix the relocation's type. */
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
- R_H8_DIR16A8);
+ R_H8_DIR16);
/* Delete two bytes of data. */
if (!elf32_h8_relax_delete_bytes (abfd, sec,
@@ -1249,11 +1204,7 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
/* Delete some bytes from a section while relaxing. */
static bfd_boolean
-elf32_h8_relax_delete_bytes (abfd, sec, addr, count)
- bfd *abfd;
- asection *sec;
- bfd_vma addr;
- int count;
+elf32_h8_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, int count)
{
Elf_Internal_Shdr *symtab_hdr;
unsigned int sec_shndx;
@@ -1330,10 +1281,7 @@ elf32_h8_relax_delete_bytes (abfd, sec, addr, count)
/* Return TRUE if a symbol exists at the given address, else return
FALSE. */
static bfd_boolean
-elf32_h8_symbol_address_p (abfd, sec, addr)
- bfd *abfd;
- asection *sec;
- bfd_vma addr;
+elf32_h8_symbol_address_p (bfd *abfd, asection *sec, bfd_vma addr)
{
Elf_Internal_Shdr *symtab_hdr;
unsigned int sec_shndx;
@@ -1377,14 +1325,12 @@ elf32_h8_symbol_address_p (abfd, sec, addr)
which uses elf32_h8_relocate_section. */
static bfd_byte *
-elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
- bfd *output_bfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- bfd_byte *data;
- bfd_boolean relocateable;
- asymbol **symbols;
+elf32_h8_get_relocated_section_contents (bfd *output_bfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols)
{
Elf_Internal_Shdr *symtab_hdr;
asection *input_section = link_order->u.indirect.section;
@@ -1395,11 +1341,11 @@ elf32_h8_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index e448c43..924f7af 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -223,8 +223,8 @@ struct elf32_hppa_link_hash_table {
bfd *stub_bfd;
/* Linker call-backs. */
- asection * (*add_stub_section) PARAMS ((const char *, asection *));
- void (*layout_sections_again) PARAMS ((void));
+ asection * (*add_stub_section) (const char *, asection *);
+ void (*layout_sections_again) (void);
/* Array to keep track of which stub sections have been created, and
information on stub grouping. */
@@ -279,139 +279,14 @@ struct elf32_hppa_link_hash_table {
((struct elf32_hppa_stub_hash_entry *) \
bfd_hash_lookup ((table), (string), (create), (copy)))
-static struct bfd_hash_entry *stub_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-
-static struct bfd_hash_entry *hppa_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-
-static struct bfd_link_hash_table *elf32_hppa_link_hash_table_create
- PARAMS ((bfd *));
-
-static void elf32_hppa_link_hash_table_free
- PARAMS ((struct bfd_link_hash_table *));
-
-/* Stub handling functions. */
-static char *hppa_stub_name
- PARAMS ((const asection *, const asection *,
- const struct elf32_hppa_link_hash_entry *,
- const Elf_Internal_Rela *));
-
-static struct elf32_hppa_stub_hash_entry *hppa_get_stub_entry
- PARAMS ((const asection *, const asection *,
- struct elf32_hppa_link_hash_entry *,
- const Elf_Internal_Rela *,
- struct elf32_hppa_link_hash_table *));
-
-static struct elf32_hppa_stub_hash_entry *hppa_add_stub
- PARAMS ((const char *, asection *, struct elf32_hppa_link_hash_table *));
-
-static enum elf32_hppa_stub_type hppa_type_of_stub
- PARAMS ((asection *, const Elf_Internal_Rela *,
- struct elf32_hppa_link_hash_entry *, bfd_vma));
-
-static bfd_boolean hppa_build_one_stub
- PARAMS ((struct bfd_hash_entry *, PTR));
-
-static bfd_boolean hppa_size_one_stub
- PARAMS ((struct bfd_hash_entry *, PTR));
-
-/* BFD and elf backend functions. */
-static bfd_boolean elf32_hppa_object_p PARAMS ((bfd *));
-
-static bfd_boolean elf32_hppa_add_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
-
-static bfd_boolean elf32_hppa_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static void elf32_hppa_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
-
-static bfd_boolean elf32_hppa_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *,
- asection *, const Elf_Internal_Rela *));
-
-static asection *elf32_hppa_gc_mark_hook
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
-
-static bfd_boolean elf32_hppa_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *,
- asection *, const Elf_Internal_Rela *));
-
-static void elf32_hppa_hide_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
-
-static bfd_boolean elf32_hppa_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-
-static bfd_boolean mark_PIC_calls
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean allocate_plt_static
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean readonly_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean clobber_millicode_symbols
- PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *));
-
-static bfd_boolean elf32_hppa_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static void group_sections
- PARAMS ((struct elf32_hppa_link_hash_table *, bfd_size_type, bfd_boolean));
-
-static int get_local_syms
- PARAMS ((bfd *, bfd *, struct bfd_link_info *));
-
-static bfd_boolean elf32_hppa_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static void hppa_record_segment_addr
- PARAMS ((bfd *, asection *, PTR));
-
-static bfd_reloc_status_type final_link_relocate
- PARAMS ((asection *, bfd_byte *, const Elf_Internal_Rela *,
- bfd_vma, struct elf32_hppa_link_hash_table *, asection *,
- struct elf32_hppa_link_hash_entry *));
-
-static bfd_boolean elf32_hppa_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
- bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-
-static bfd_boolean elf32_hppa_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
-
-static enum elf_reloc_type_class elf32_hppa_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
-
-static bfd_boolean elf32_hppa_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static void elf32_hppa_post_process_headers
- PARAMS ((bfd *, struct bfd_link_info *));
-
-static int elf32_hppa_elf_get_symbol_type
- PARAMS ((Elf_Internal_Sym *, int));
-
/* Assorted hash table functions. */
/* Initialize an entry in the stub hash table. */
static struct bfd_hash_entry *
-stub_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+stub_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -446,10 +321,9 @@ stub_hash_newfunc (entry, table, string)
/* Initialize an entry in the link hash table. */
static struct bfd_hash_entry *
-hppa_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+hppa_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -483,13 +357,12 @@ hppa_link_hash_newfunc (entry, table, string)
using static variables). */
static struct bfd_link_hash_table *
-elf32_hppa_link_hash_table_create (abfd)
- bfd *abfd;
+elf32_hppa_link_hash_table_create (bfd *abfd)
{
struct elf32_hppa_link_hash_table *ret;
bfd_size_type amt = sizeof (*ret);
- ret = (struct elf32_hppa_link_hash_table *) bfd_malloc (amt);
+ ret = bfd_malloc (amt);
if (ret == NULL)
return NULL;
@@ -528,8 +401,7 @@ elf32_hppa_link_hash_table_create (abfd)
/* Free the derived linker hash table. */
static void
-elf32_hppa_link_hash_table_free (hash)
- struct bfd_link_hash_table *hash;
+elf32_hppa_link_hash_table_free (struct bfd_link_hash_table *hash)
{
struct elf32_hppa_link_hash_table *ret
= (struct elf32_hppa_link_hash_table *) hash;
@@ -541,11 +413,10 @@ elf32_hppa_link_hash_table_free (hash)
/* Build a name for an entry in the stub hash table. */
static char *
-hppa_stub_name (input_section, sym_sec, hash, rel)
- const asection *input_section;
- const asection *sym_sec;
- const struct elf32_hppa_link_hash_entry *hash;
- const Elf_Internal_Rela *rel;
+hppa_stub_name (const asection *input_section,
+ const asection *sym_sec,
+ const struct elf32_hppa_link_hash_entry *hash,
+ const Elf_Internal_Rela *rel)
{
char *stub_name;
bfd_size_type len;
@@ -582,12 +453,11 @@ hppa_stub_name (input_section, sym_sec, hash, rel)
creating the stub name takes a bit of time. */
static struct elf32_hppa_stub_hash_entry *
-hppa_get_stub_entry (input_section, sym_sec, hash, rel, htab)
- const asection *input_section;
- const asection *sym_sec;
- struct elf32_hppa_link_hash_entry *hash;
- const Elf_Internal_Rela *rel;
- struct elf32_hppa_link_hash_table *htab;
+hppa_get_stub_entry (const asection *input_section,
+ const asection *sym_sec,
+ struct elf32_hppa_link_hash_entry *hash,
+ const Elf_Internal_Rela *rel,
+ struct elf32_hppa_link_hash_table *htab)
{
struct elf32_hppa_stub_hash_entry *stub_entry;
const asection *id_sec;
@@ -628,10 +498,9 @@ hppa_get_stub_entry (input_section, sym_sec, hash, rel, htab)
stub entry are initialised. */
static struct elf32_hppa_stub_hash_entry *
-hppa_add_stub (stub_name, section, htab)
- const char *stub_name;
- asection *section;
- struct elf32_hppa_link_hash_table *htab;
+hppa_add_stub (const char *stub_name,
+ asection *section,
+ struct elf32_hppa_link_hash_table *htab)
{
asection *link_sec;
asection *stub_sec;
@@ -684,11 +553,10 @@ hppa_add_stub (stub_name, section, htab)
/* Determine the type of stub needed, if any, for a call. */
static enum elf32_hppa_stub_type
-hppa_type_of_stub (input_sec, rel, hash, destination)
- asection *input_sec;
- const Elf_Internal_Rela *rel;
- struct elf32_hppa_link_hash_entry *hash;
- bfd_vma destination;
+hppa_type_of_stub (asection *input_sec,
+ const Elf_Internal_Rela *rel,
+ struct elf32_hppa_link_hash_entry *hash,
+ bfd_vma destination)
{
bfd_vma location;
bfd_vma branch_offset;
@@ -777,9 +645,7 @@ hppa_type_of_stub (input_sec, rel, hash, destination)
#endif
static bfd_boolean
-hppa_build_one_stub (gen_entry, in_arg)
- struct bfd_hash_entry *gen_entry;
- PTR in_arg;
+hppa_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
{
struct elf32_hppa_stub_hash_entry *stub_entry;
struct bfd_link_info *info;
@@ -795,7 +661,7 @@ hppa_build_one_stub (gen_entry, in_arg)
/* Massage our args to the form they really have. */
stub_entry = (struct elf32_hppa_stub_hash_entry *) gen_entry;
- info = (struct bfd_link_info *) in_arg;
+ info = in_arg;
htab = hppa_link_hash_table (info);
stub_sec = stub_entry->stub_sec;
@@ -817,11 +683,11 @@ hppa_build_one_stub (gen_entry, in_arg)
+ stub_entry->target_section->output_offset
+ stub_entry->target_section->output_section->vma);
- val = hppa_field_adjust (sym_value, (bfd_signed_vma) 0, e_lrsel);
+ val = hppa_field_adjust (sym_value, 0, e_lrsel);
insn = hppa_rebuild_insn ((int) LDIL_R1, val, 21);
bfd_put_32 (stub_bfd, insn, loc);
- val = hppa_field_adjust (sym_value, (bfd_signed_vma) 0, e_rrsel) >> 2;
+ val = hppa_field_adjust (sym_value, 0, e_rrsel) >> 2;
insn = hppa_rebuild_insn ((int) BE_SR4_R1, val, 17);
bfd_put_32 (stub_bfd, insn, loc + 4);
@@ -867,7 +733,7 @@ hppa_build_one_stub (gen_entry, in_arg)
if (stub_entry->stub_type == hppa_stub_import_shared)
insn = ADDIL_R19;
#endif
- val = hppa_field_adjust (sym_value, (bfd_signed_vma) 0, e_lrsel),
+ val = hppa_field_adjust (sym_value, 0, e_lrsel),
insn = hppa_rebuild_insn ((int) insn, val, 21);
bfd_put_32 (stub_bfd, insn, loc);
@@ -876,7 +742,7 @@ hppa_build_one_stub (gen_entry, in_arg)
lsel/rsel then with unfortunate sym_values we will round
sym_value+4 up to the next 2k block leading to a mis-match
between the lsel and rsel value. */
- val = hppa_field_adjust (sym_value, (bfd_signed_vma) 0, e_rrsel);
+ val = hppa_field_adjust (sym_value, 0, e_rrsel);
insn = hppa_rebuild_insn ((int) LDW_R1_R21, val, 14);
bfd_put_32 (stub_bfd, insn, loc + 4);
@@ -1018,9 +884,7 @@ hppa_build_one_stub (gen_entry, in_arg)
we know stub section sizes. */
static bfd_boolean
-hppa_size_one_stub (gen_entry, in_arg)
- struct bfd_hash_entry *gen_entry;
- PTR in_arg;
+hppa_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
{
struct elf32_hppa_stub_hash_entry *stub_entry;
struct elf32_hppa_link_hash_table *htab;
@@ -1028,7 +892,7 @@ hppa_size_one_stub (gen_entry, in_arg)
/* Massage our args to the form they really have. */
stub_entry = (struct elf32_hppa_stub_hash_entry *) gen_entry;
- htab = (struct elf32_hppa_link_hash_table *) in_arg;
+ htab = in_arg;
if (stub_entry->stub_type == hppa_stub_long_branch)
size = 8;
@@ -1052,8 +916,7 @@ hppa_size_one_stub (gen_entry, in_arg)
Additionally we set the default architecture and machine. */
static bfd_boolean
-elf32_hppa_object_p (abfd)
- bfd *abfd;
+elf32_hppa_object_p (bfd *abfd)
{
Elf_Internal_Ehdr * i_ehdrp;
unsigned int flags;
@@ -1061,7 +924,10 @@ elf32_hppa_object_p (abfd)
i_ehdrp = elf_elfheader (abfd);
if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0)
{
- if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
+ /* GCC on hppa-linux produces binaries with OSABI=Linux,
+ but the kernel produces corefiles with OSABI=SysV. */
+ if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX &&
+ i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_NONE) /* aka SYSV */
return FALSE;
}
else
@@ -1085,30 +951,11 @@ elf32_hppa_object_p (abfd)
return TRUE;
}
-/* Undo the generic ELF code's subtraction of section->vma from the
- value of each external symbol. */
-
-static bfd_boolean
-elf32_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- const Elf_Internal_Sym *sym ATTRIBUTE_UNUSED;
- const char **namep ATTRIBUTE_UNUSED;
- flagword *flagsp ATTRIBUTE_UNUSED;
- asection **secp;
- bfd_vma *valp;
-{
- *valp += (*secp)->vma;
- return TRUE;
-}
-
/* Create the .plt and .got sections, and set up our hash table
short-cuts to various dynamic sections. */
static bfd_boolean
-elf32_hppa_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf32_hppa_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
struct elf32_hppa_link_hash_table *htab;
@@ -1146,9 +993,9 @@ elf32_hppa_create_dynamic_sections (abfd, info)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf32_hppa_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+elf32_hppa_copy_indirect_symbol (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct elf32_hppa_link_hash_entry *edir, *eind;
@@ -1200,11 +1047,10 @@ elf32_hppa_copy_indirect_symbol (bed, dir, ind)
necessarily read all the input files. */
static bfd_boolean
-elf32_hppa_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf32_hppa_check_relocs (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -1214,7 +1060,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
asection *sreloc;
asection *stubreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = hppa_link_hash_table (info);
@@ -1422,8 +1268,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
pointer. */
size = symtab_hdr->sh_info;
size *= 2 * sizeof (bfd_signed_vma);
- local_got_refcounts = ((bfd_signed_vma *)
- bfd_zalloc (abfd, size));
+ local_got_refcounts = bfd_zalloc (abfd, size);
if (local_got_refcounts == NULL)
return FALSE;
elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -1469,8 +1314,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
plt offsets. */
size = symtab_hdr->sh_info;
size *= 2 * sizeof (bfd_signed_vma);
- local_got_refcounts = ((bfd_signed_vma *)
- bfd_zalloc (abfd, size));
+ local_got_refcounts = bfd_zalloc (abfd, size);
if (local_got_refcounts == NULL)
return FALSE;
elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -1604,9 +1448,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
p = *head;
if (p == NULL || p->sec != sec)
{
- p = ((struct elf32_hppa_dyn_reloc_entry *)
- bfd_alloc (htab->elf.dynobj,
- (bfd_size_type) sizeof *p));
+ p = bfd_alloc (htab->elf.dynobj, sizeof *p);
if (p == NULL)
return FALSE;
p->next = *head;
@@ -1634,12 +1476,11 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs)
for a given relocation. */
static asection *
-elf32_hppa_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf32_hppa_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -1674,11 +1515,10 @@ elf32_hppa_gc_mark_hook (sec, info, rel, h, sym)
removed. */
static bfd_boolean
-elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf32_hppa_gc_sweep_hook (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -1777,10 +1617,9 @@ elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs)
plabels. */
static void
-elf32_hppa_hide_symbol (info, h, force_local)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- bfd_boolean force_local;
+elf32_hppa_hide_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ bfd_boolean force_local)
{
if (force_local)
{
@@ -1818,9 +1657,8 @@ elf32_hppa_hide_symbol (info, h, force_local)
understand. */
static bfd_boolean
-elf32_hppa_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+elf32_hppa_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
struct elf32_hppa_link_hash_table *htab;
struct elf32_hppa_link_hash_entry *eh;
@@ -1963,9 +1801,7 @@ elf32_hppa_adjust_dynamic_symbol (info, h)
the first part of elf32_hppa_adjust_dynamic_symbol. */
static bfd_boolean
-mark_PIC_calls (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf ATTRIBUTE_UNUSED;
+mark_PIC_calls (struct elf_link_hash_entry *h, void *inf ATTRIBUTE_UNUSED)
{
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -1990,9 +1826,7 @@ mark_PIC_calls (h, inf)
ie. pic_call and plabel entries. */
static bfd_boolean
-allocate_plt_static (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_plt_static (struct elf_link_hash_entry *h, void *inf)
{
struct bfd_link_info *info;
struct elf32_hppa_link_hash_table *htab;
@@ -2004,7 +1838,7 @@ allocate_plt_static (h, inf)
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
- info = (struct bfd_link_info *) inf;
+ info = inf;
htab = hppa_link_hash_table (info);
if (((struct elf32_hppa_link_hash_entry *) h)->pic_call)
{
@@ -2064,9 +1898,7 @@ allocate_plt_static (h, inf)
global syms. */
static bfd_boolean
-allocate_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct bfd_link_info *info;
struct elf32_hppa_link_hash_table *htab;
@@ -2080,7 +1912,7 @@ allocate_dynrelocs (h, inf)
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
- info = (struct bfd_link_info *) inf;
+ info = inf;
htab = hppa_link_hash_table (info);
if (htab->elf.dynamic_sections_created
&& h->plt.offset != (bfd_vma) -1
@@ -2205,9 +2037,8 @@ allocate_dynrelocs (h, inf)
elf_adjust_dynamic_symbol. */
static bfd_boolean
-clobber_millicode_symbols (h, info)
- struct elf_link_hash_entry *h;
- struct bfd_link_info *info;
+clobber_millicode_symbols (struct elf_link_hash_entry *h,
+ struct bfd_link_info *info)
{
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -2223,9 +2054,7 @@ clobber_millicode_symbols (h, info)
/* Find any dynamic relocs that apply to read-only sections. */
static bfd_boolean
-readonly_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct elf32_hppa_link_hash_entry *eh;
struct elf32_hppa_dyn_reloc_entry *p;
@@ -2240,7 +2069,7 @@ readonly_dynrelocs (h, inf)
if (s != NULL && (s->flags & SEC_READONLY) != 0)
{
- struct bfd_link_info *info = (struct bfd_link_info *) inf;
+ struct bfd_link_info *info = inf;
info->flags |= DF_TEXTREL;
@@ -2254,9 +2083,8 @@ readonly_dynrelocs (h, inf)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-elf32_hppa_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
struct elf32_hppa_link_hash_table *htab;
bfd *dynobj;
@@ -2292,7 +2120,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
PIC, and mark them as needing .plt entries so that %r19 will
be set up. */
if (! info->shared)
- elf_link_hash_traverse (&htab->elf, mark_PIC_calls, (PTR) info);
+ elf_link_hash_traverse (&htab->elf, mark_PIC_calls, info);
}
/* Set up .got and .plt offsets for local syms, and space for local
@@ -2389,11 +2217,11 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
/* Do all the .plt entries without relocs first. The dynamic linker
uses the last .plt reloc to find the end of the .plt (and hence
the start of the .got) for lazy linking. */
- elf_link_hash_traverse (&htab->elf, allocate_plt_static, (PTR) info);
+ elf_link_hash_traverse (&htab->elf, allocate_plt_static, info);
/* Allocate global sym .plt and .got entries, and space for global
sym dynamic relocs. */
- elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, (PTR) info);
+ elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, info);
/* The check_relocs and adjust_dynamic_symbol entry points have
determined the sizes of the various dynamic sections. Allocate
@@ -2460,7 +2288,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
/* Allocate memory for the section contents. Zero it, because
we may not fill in all the reloc sections. */
- s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
+ s->contents = bfd_zalloc (dynobj, s->_raw_size);
if (s->contents == NULL && s->_raw_size != 0)
return FALSE;
}
@@ -2506,8 +2334,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
/* If any dynamic relocs apply to a read-only section,
then we need a DT_TEXTREL entry. */
if ((info->flags & DF_TEXTREL) == 0)
- elf_link_hash_traverse (&htab->elf, readonly_dynrelocs,
- (PTR) info);
+ elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
if ((info->flags & DF_TEXTREL) != 0)
{
@@ -2528,9 +2355,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
0 when no stubs will be needed, and 1 on success. */
int
-elf32_hppa_setup_section_lists (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf32_hppa_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info)
{
bfd *input_bfd;
unsigned int bfd_count;
@@ -2560,7 +2385,7 @@ elf32_hppa_setup_section_lists (output_bfd, info)
htab->bfd_count = bfd_count;
amt = sizeof (struct map_stub) * (top_id + 1);
- htab->stub_group = (struct map_stub *) bfd_zmalloc (amt);
+ htab->stub_group = bfd_zmalloc (amt);
if (htab->stub_group == NULL)
return -1;
@@ -2577,7 +2402,7 @@ elf32_hppa_setup_section_lists (output_bfd, info)
htab->top_index = top_index;
amt = sizeof (asection *) * (top_index + 1);
- input_list = (asection **) bfd_malloc (amt);
+ input_list = bfd_malloc (amt);
htab->input_list = input_list;
if (input_list == NULL)
return -1;
@@ -2606,9 +2431,7 @@ elf32_hppa_setup_section_lists (output_bfd, info)
we may insert linker stubs. */
void
-elf32_hppa_next_input_section (info, isec)
- struct bfd_link_info *info;
- asection *isec;
+elf32_hppa_next_input_section (struct bfd_link_info *info, asection *isec)
{
struct elf32_hppa_link_hash_table *htab = hppa_link_hash_table (info);
@@ -2635,10 +2458,9 @@ elf32_hppa_next_input_section (info, isec)
the middle of a function is not a good idea. */
static void
-group_sections (htab, stub_group_size, stubs_always_before_branch)
- struct elf32_hppa_link_hash_table *htab;
- bfd_size_type stub_group_size;
- bfd_boolean stubs_always_before_branch;
+group_sections (struct elf32_hppa_link_hash_table *htab,
+ bfd_size_type stub_group_size,
+ bfd_boolean stubs_always_before_branch)
{
asection **list = htab->input_list + htab->top_index;
do
@@ -2716,10 +2538,7 @@ group_sections (htab, stub_group_size, stubs_always_before_branch)
Returns -1 on error, 1 if export stubs created, 0 otherwise. */
static int
-get_local_syms (output_bfd, input_bfd, info)
- bfd *output_bfd;
- bfd *input_bfd;
- struct bfd_link_info *info;
+get_local_syms (bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *info)
{
unsigned int bfd_indx;
Elf_Internal_Sym *local_syms, **all_local_syms;
@@ -2730,7 +2549,7 @@ get_local_syms (output_bfd, input_bfd, info)
we need to read in the local symbols in parallel and save them for
later use; so hold pointers to the local symbols in an array. */
bfd_size_type amt = sizeof (Elf_Internal_Sym *) * htab->bfd_count;
- all_local_syms = (Elf_Internal_Sym **) bfd_zmalloc (amt);
+ all_local_syms = bfd_zmalloc (amt);
htab->all_local_syms = all_local_syms;
if (all_local_syms == NULL)
return -1;
@@ -2844,15 +2663,11 @@ get_local_syms (output_bfd, input_bfd, info)
instruction. */
bfd_boolean
-elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
- add_stub_section, layout_sections_again)
- bfd *output_bfd;
- bfd *stub_bfd;
- struct bfd_link_info *info;
- bfd_boolean multi_subspace;
- bfd_signed_vma group_size;
- asection * (*add_stub_section) PARAMS ((const char *, asection *));
- void (*layout_sections_again) PARAMS ((void));
+elf32_hppa_size_stubs
+ (bfd *output_bfd, bfd *stub_bfd, struct bfd_link_info *info,
+ bfd_boolean multi_subspace, bfd_signed_vma group_size,
+ asection * (*add_stub_section) (const char *, asection *),
+ void (*layout_sections_again) (void))
{
bfd_size_type stub_group_size;
bfd_boolean stubs_always_before_branch;
@@ -2950,8 +2765,7 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
/* Get the relocs. */
internal_relocs
- = _bfd_elf_link_read_relocs (input_bfd, section, NULL,
- (Elf_Internal_Rela *) NULL,
+ = _bfd_elf_link_read_relocs (input_bfd, section, NULL, NULL,
info->keep_memory);
if (internal_relocs == NULL)
goto error_ret_free_local;
@@ -3042,7 +2856,7 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
else if (hash->elf.root.type == bfd_link_hash_undefined)
{
if (! (info->shared
- && !info->no_undefined
+ && info->unresolved_syms_in_objects == RM_IGNORE
&& (ELF_ST_VISIBILITY (hash->elf.other)
== STV_DEFAULT)
&& hash->elf.type != STT_PARISC_MILLI))
@@ -3138,9 +2952,7 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
stubs to provide a value for __gp. */
bfd_boolean
-elf32_hppa_set_gp (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf32_hppa_set_gp (bfd *abfd, struct bfd_link_info *info)
{
struct bfd_link_hash_entry *h;
asection *sec = NULL;
@@ -3234,8 +3046,7 @@ elf32_hppa_set_gp (abfd, info)
linker. */
bfd_boolean
-elf32_hppa_build_stubs (info)
- struct bfd_link_info *info;
+elf32_hppa_build_stubs (struct bfd_link_info *info)
{
asection *stub_sec;
struct bfd_hash_table *table;
@@ -3251,7 +3062,7 @@ elf32_hppa_build_stubs (info)
/* Allocate memory to hold the linker stubs. */
size = stub_sec->_raw_size;
- stub_sec->contents = (unsigned char *) bfd_zalloc (htab->stub_bfd, size);
+ stub_sec->contents = bfd_zalloc (htab->stub_bfd, size);
if (stub_sec->contents == NULL && size != 0)
return FALSE;
stub_sec->_raw_size = 0;
@@ -3267,9 +3078,7 @@ elf32_hppa_build_stubs (info)
/* Perform a final link. */
static bfd_boolean
-elf32_hppa_final_link (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf32_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
{
/* Invoke the regular ELF linker to do all the work. */
if (!bfd_elf32_bfd_final_link (abfd, info))
@@ -3283,10 +3092,9 @@ elf32_hppa_final_link (abfd, info)
/* Record the lowest address for the data and text segments. */
static void
-hppa_record_segment_addr (abfd, section, data)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- PTR data;
+hppa_record_segment_addr (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section,
+ void *data)
{
struct elf32_hppa_link_hash_table *htab;
@@ -3312,14 +3120,13 @@ hppa_record_segment_addr (abfd, section, data)
/* Perform a relocation as part of a final link. */
static bfd_reloc_status_type
-final_link_relocate (input_section, contents, rel, value, htab, sym_sec, h)
- asection *input_section;
- bfd_byte *contents;
- const Elf_Internal_Rela *rel;
- bfd_vma value;
- struct elf32_hppa_link_hash_table *htab;
- asection *sym_sec;
- struct elf32_hppa_link_hash_entry *h;
+final_link_relocate (asection *input_section,
+ bfd_byte *contents,
+ const Elf_Internal_Rela *rel,
+ bfd_vma value,
+ struct elf32_hppa_link_hash_table *htab,
+ asection *sym_sec,
+ struct elf32_hppa_link_hash_entry *h)
{
int insn;
unsigned int r_type = ELF32_R_TYPE (rel->r_info);
@@ -3576,16 +3383,14 @@ final_link_relocate (input_section, contents, rel, value, htab, sym_sec, h)
/* Relocate an HPPA ELF section. */
static bfd_boolean
-elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf32_hppa_relocate_section (bfd *output_bfd,
+ struct bfd_link_info *info,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
bfd_vma *local_got_offsets;
struct elf32_hppa_link_hash_table *htab;
@@ -3593,7 +3398,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -3642,43 +3447,33 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- int indx;
-
- /* It's a global; Find its entry in the link hash. */
- indx = r_symndx - symtab_hdr->sh_info;
- h = ((struct elf32_hppa_link_hash_entry *)
- elf_sym_hashes (input_bfd)[indx]);
- while (h->elf.root.type == bfd_link_hash_indirect
- || h->elf.root.type == bfd_link_hash_warning)
- h = (struct elf32_hppa_link_hash_entry *) h->elf.root.u.i.link;
-
- relocation = 0;
- if (h->elf.root.type == bfd_link_hash_defined
- || h->elf.root.type == bfd_link_hash_defweak)
- {
- sym_sec = h->elf.root.u.def.section;
- /* If sym_sec->output_section is NULL, then it's a
- symbol defined in a shared library. */
- if (sym_sec->output_section != NULL)
- relocation = (h->elf.root.u.def.value
- + sym_sec->output_offset
- + sym_sec->output_section->vma);
- }
- else if (h->elf.root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->elf.other) == STV_DEFAULT
- && h->elf.type != STT_PARISC_MILLI)
- ;
- else
- {
- if (!((*info->callbacks->undefined_symbol)
- (info, h->elf.root.root.string, input_bfd,
- input_section, rel->r_offset, TRUE)))
- return FALSE;
- warned_undef = TRUE;
+ struct elf_link_hash_entry *hh;
+ bfd_boolean unresolved_reloc;
+
+ RELOC_FOR_GLOBAL_SYMBOL (hh, elf_sym_hashes (input_bfd), r_symndx, symtab_hdr,
+ relocation, sym_sec, unresolved_reloc, info,
+ warned_undef);
+
+ if (relocation == 0
+ && hh->root.type != bfd_link_hash_defined
+ && hh->root.type != bfd_link_hash_defweak
+ && hh->root.type != bfd_link_hash_undefweak)
+ {
+ if (!info->executable
+ && info->unresolved_syms_in_objects == RM_IGNORE
+ && ELF_ST_VISIBILITY (hh->other) == STV_DEFAULT
+ && hh->type == STT_PARISC_MILLI)
+ {
+ if (! info->callbacks->undefined_symbol
+ (info, hh->root.root.string, input_bfd,
+ input_section, rel->r_offset,
+ ((info->shared && info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR)
+ || (!info->shared && info->unresolved_syms_in_objects == RM_GENERATE_ERROR))))
+ return FALSE;
+ warned_undef = TRUE;
+ }
}
+ h = (struct elf32_hppa_link_hash_entry *) hh;
}
/* Do any required modifications to the relocation value, and
@@ -4049,8 +3844,8 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
else
{
if (!((*info->callbacks->reloc_overflow)
- (info, sym_name, howto->name, (bfd_vma) 0,
- input_bfd, input_section, rel->r_offset)))
+ (info, sym_name, howto->name, 0, input_bfd, input_section,
+ rel->r_offset)))
return FALSE;
}
}
@@ -4062,11 +3857,10 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
dynamic sections here. */
static bfd_boolean
-elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf32_hppa_finish_dynamic_symbol (bfd *output_bfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
struct elf32_hppa_link_hash_table *htab;
@@ -4171,8 +3965,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
{
if ((h->got.offset & 1) != 0)
abort ();
- bfd_put_32 (output_bfd, (bfd_vma) 0,
- htab->sgot->contents + h->got.offset);
+ bfd_put_32 (output_bfd, 0, htab->sgot->contents + h->got.offset);
rel.r_info = ELF32_R_INFO (h->dynindx, R_PARISC_DIR32);
rel.r_addend = 0;
}
@@ -4221,8 +4014,7 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym)
dynamic linker, before writing them out. */
static enum elf_reloc_type_class
-elf32_hppa_reloc_type_class (rela)
- const Elf_Internal_Rela *rela;
+elf32_hppa_reloc_type_class (const Elf_Internal_Rela *rela)
{
if (ELF32_R_SYM (rela->r_info) == 0)
return reloc_class_relative;
@@ -4241,9 +4033,8 @@ elf32_hppa_reloc_type_class (rela)
/* Finish up the dynamic sections. */
static bfd_boolean
-elf32_hppa_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf32_hppa_finish_dynamic_sections (bfd *output_bfd,
+ struct bfd_link_info *info)
{
bfd *dynobj;
struct elf32_hppa_link_hash_table *htab;
@@ -4321,9 +4112,7 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
/* Fill in the first entry in the global offset table.
We use it to point to our dynamic section, if we have one. */
bfd_put_32 (output_bfd,
- (sdyn != NULL
- ? sdyn->output_section->vma + sdyn->output_offset
- : (bfd_vma) 0),
+ sdyn ? sdyn->output_section->vma + sdyn->output_offset : 0,
htab->sgot->contents);
/* The second entry is reserved for use by the dynamic linker. */
@@ -4366,9 +4155,8 @@ elf32_hppa_finish_dynamic_sections (output_bfd, info)
/* Tweak the OSABI field of the elf header. */
static void
-elf32_hppa_post_process_headers (abfd, link_info)
- bfd *abfd;
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+elf32_hppa_post_process_headers (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
Elf_Internal_Ehdr * i_ehdrp;
@@ -4387,9 +4175,7 @@ elf32_hppa_post_process_headers (abfd, link_info)
/* Called when writing out an object file to decide the type of a
symbol. */
static int
-elf32_hppa_elf_get_symbol_type (elf_sym, type)
- Elf_Internal_Sym *elf_sym;
- int type;
+elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
{
if (ELF_ST_TYPE (elf_sym->st_info) == STT_PARISC_MILLI)
return STT_PARISC_MILLI;
@@ -4407,7 +4193,6 @@ elf32_hppa_elf_get_symbol_type (elf_sym, type)
#define bfd_elf32_bfd_final_link elf32_hppa_final_link
#define bfd_elf32_bfd_link_hash_table_create elf32_hppa_link_hash_table_create
#define bfd_elf32_bfd_link_hash_table_free elf32_hppa_link_hash_table_free
-#define elf_backend_add_symbol_hook elf32_hppa_add_symbol_hook
#define elf_backend_adjust_dynamic_symbol elf32_hppa_adjust_dynamic_symbol
#define elf_backend_copy_indirect_symbol elf32_hppa_copy_indirect_symbol
#define elf_backend_check_relocs elf32_hppa_check_relocs
diff --git a/bfd/elf32-hppa.h b/bfd/elf32-hppa.h
index 7c8c687..000602e 100644
--- a/bfd/elf32-hppa.h
+++ b/bfd/elf32-hppa.h
@@ -5,7 +5,7 @@
February 1994.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003 Free Software Foundation, Inc.
Written by:
@@ -37,27 +37,26 @@
#include "elf/hppa.h"
int elf32_hppa_setup_section_lists
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
void elf32_hppa_next_input_section
- PARAMS ((struct bfd_link_info *, asection *));
+ (struct bfd_link_info *, asection *);
bfd_boolean elf32_hppa_size_stubs
- PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma,
- asection * (*) PARAMS ((const char *, asection *)),
- void (*) PARAMS ((void))));
+ (bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma,
+ asection * (*) (const char *, asection *), void (*) (void));
bfd_boolean elf32_hppa_set_gp
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
bfd_boolean elf32_hppa_build_stubs
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
elf_hppa_reloc_type elf32_hppa_reloc_final_type
- PARAMS ((bfd *, elf_hppa_reloc_type, int, unsigned int));
+ (bfd *, elf_hppa_reloc_type, int, unsigned int);
extern elf_hppa_reloc_type ** _bfd_elf32_hppa_gen_reloc_type
- PARAMS ((bfd *, elf_hppa_reloc_type, int, unsigned int, int, asymbol *));
+ (bfd *, elf_hppa_reloc_type, int, unsigned int, int, asymbol *);
/* Define groups of basic relocations. FIXME: These should
be the only basic relocations created by GAS. The rest
diff --git a/bfd/elf32-i370.c b/bfd/elf32-i370.c
index 8b74baa..4a06ac0 100644
--- a/bfd/elf32-i370.c
+++ b/bfd/elf32-i370.c
@@ -1,5 +1,5 @@
/* i370-specific support for 32-bit ELF
- Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
+ Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
Hacked by Linas Vepstas for i370 linas@linas.org
@@ -290,11 +290,6 @@ static bfd_boolean i370_elf_section_from_shdr
PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
static bfd_boolean i370_elf_fake_sections
PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-#if 0
-static elf_linker_section_t *i370_elf_create_linker_section
- PARAMS ((bfd *abfd, struct bfd_link_info *info,
- enum elf_linker_section_enum));
-#endif
static bfd_boolean i370_elf_check_relocs
PARAMS ((bfd *, struct bfd_link_info *, asection *,
const Elf_Internal_Rela *));
@@ -434,84 +429,6 @@ i370_elf_fake_sections (abfd, shdr, asect)
return TRUE;
}
-#if 0
-/* Create a special linker section */
-/* XXX hack alert bogus This routine is mostly all junk and almost
- * certainly does the wrong thing. Its here simply because it does
- * just enough to allow glibc-2.1 ld.so to compile & link.
- */
-
-static elf_linker_section_t *
-i370_elf_create_linker_section (abfd, info, which)
- bfd *abfd;
- struct bfd_link_info *info;
- enum elf_linker_section_enum which;
-{
- bfd *dynobj = elf_hash_table (info)->dynobj;
- elf_linker_section_t *lsect;
-
- /* Record the first bfd section that needs the special section */
- if (!dynobj)
- dynobj = elf_hash_table (info)->dynobj = abfd;
-
- /* If this is the first time, create the section */
- lsect = elf_linker_section (dynobj, which);
- if (!lsect)
- {
- elf_linker_section_t defaults;
- static elf_linker_section_t zero_section;
-
- defaults = zero_section;
- defaults.which = which;
- defaults.hole_written_p = FALSE;
- defaults.alignment = 2;
-
- /* Both of these sections are (technically) created by the user
- putting data in them, so they shouldn't be marked
- SEC_LINKER_CREATED.
-
- The linker creates them so it has somewhere to attach their
- respective symbols. In fact, if they were empty it would
- be OK to leave the symbol set to 0 (or any random number), because
- the appropriate register should never be used. */
- defaults.flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY);
-
- switch (which)
- {
- default:
- (*_bfd_error_handler) ("%s: Unknown special linker type %d",
- bfd_archive_filename (abfd),
- (int) which);
-
- bfd_set_error (bfd_error_bad_value);
- return (elf_linker_section_t *)0;
-
- case LINKER_SECTION_SDATA: /* .sdata/.sbss section */
- defaults.name = ".sdata";
- defaults.rel_name = ".rela.sdata";
- defaults.bss_name = ".sbss";
- defaults.sym_name = "_SDA_BASE_";
- defaults.sym_offset = 32768;
- break;
-
- case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */
- defaults.name = ".sdata2";
- defaults.rel_name = ".rela.sdata2";
- defaults.bss_name = ".sbss2";
- defaults.sym_name = "_SDA2_BASE_";
- defaults.sym_offset = 32768;
- defaults.flags |= SEC_READONLY;
- break;
- }
-
- lsect = _bfd_elf_create_linker_section (abfd, info, which, &defaults);
- }
-
- return lsect;
-}
-#endif
-
/* We have to create .dynsbss and .rela.sbss here so that they get mapped
to output sections (just like _bfd_elf_create_dynamic_sections has
to create .dynbss and .rela.bss). */
@@ -971,7 +888,7 @@ i370_elf_check_relocs (abfd, info, sec, relocs)
bfd_vma *local_got_offsets;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#ifdef DEBUG
@@ -1200,7 +1117,7 @@ i370_elf_finish_dynamic_sections (output_bfd, info)
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -1214,7 +1131,7 @@ i370_elf_finish_dynamic_sections (output_bfd, info)
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -1241,7 +1158,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_vma *local_got_offsets;
bfd_boolean ret = TRUE;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#ifdef DEBUG
@@ -1249,7 +1166,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_archive_filename (input_bfd),
bfd_section_name(input_bfd, input_section),
(long) input_section->reloc_count,
- (info->relocateable) ? " (relocatable)" : "");
+ (info->relocatable) ? " (relocatable)" : "");
#endif
if (!i370_elf_howto_table[ R_I370_ADDR31 ]) /* Initialize howto table if needed */
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index cd3dc9a..11fadab 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -24,69 +24,8 @@
#include "libbfd.h"
#include "elf-bfd.h"
-static reloc_howto_type *elf_i386_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void elf_i386_info_to_howto_rel
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static bfd_boolean elf_i386_is_local_label_name
- PARAMS ((bfd *, const char *));
-static bfd_boolean elf_i386_grok_prstatus
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static bfd_boolean elf_i386_grok_psinfo
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static struct bfd_hash_entry *link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static struct bfd_link_hash_table *elf_i386_link_hash_table_create
- PARAMS ((bfd *));
-static bfd_boolean create_got_section
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean elf_i386_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static void elf_i386_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
-static int elf_i386_tls_transition
- PARAMS ((struct bfd_link_info *, int, int));
-
-static bfd_boolean elf_i386_mkobject
- PARAMS ((bfd *));
-static bfd_boolean elf_i386_object_p
- PARAMS ((bfd *));
-static bfd_boolean elf_i386_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
-static asection *elf_i386_gc_mark_hook
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
-static bfd_boolean elf_i386_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
-static bfd_boolean elf_i386_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean readonly_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean elf_i386_fake_sections
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static bfd_boolean elf_i386_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_vma dtpoff_base
- PARAMS ((struct bfd_link_info *));
-static bfd_vma tpoff
- PARAMS ((struct bfd_link_info *, bfd_vma));
-static bfd_boolean elf_i386_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static bfd_boolean elf_i386_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *));
-static enum elf_reloc_type_class elf_i386_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
-static bfd_boolean elf_i386_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-
-#define USE_REL 1 /* 386 uses REL relocations instead of RELA. */
+/* 386 uses REL relocations instead of RELA. */
+#define USE_REL 1
#include "elf/i386.h"
@@ -130,8 +69,8 @@ static reloc_howto_type elf_howto_table[]=
R_386_standard counts the number up to this point, and
R_386_ext_offset is the value to subtract from a reloc type of
R_386_16 thru R_386_PC8 to form an index into this table. */
-#define R_386_standard ((unsigned int) R_386_GOTPC + 1)
-#define R_386_ext_offset ((unsigned int) R_386_TLS_TPOFF - R_386_standard)
+#define R_386_standard (R_386_GOTPC + 1)
+#define R_386_ext_offset (R_386_TLS_TPOFF - R_386_standard)
/* These relocs are a GNU extension. */
HOWTO(R_386_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
@@ -165,8 +104,8 @@ static reloc_howto_type elf_howto_table[]=
bfd_elf_generic_reloc, "R_386_PC8",
TRUE, 0xff, 0xff, TRUE),
-#define R_386_ext ((unsigned int) R_386_PC8 + 1 - R_386_ext_offset)
-#define R_386_tls_offset ((unsigned int) R_386_TLS_LDO_32 - R_386_ext)
+#define R_386_ext (R_386_PC8 + 1 - R_386_ext_offset)
+#define R_386_tls_offset (R_386_TLS_LDO_32 - R_386_ext)
/* These are common with Solaris TLS implementation. */
HOWTO(R_386_TLS_LDO_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_386_TLS_LDO_32",
@@ -188,8 +127,8 @@ static reloc_howto_type elf_howto_table[]=
TRUE, 0xffffffff, 0xffffffff, FALSE),
/* Another gap. */
-#define R_386_tls ((unsigned int) R_386_TLS_TPOFF32 + 1 - R_386_tls_offset)
-#define R_386_vt_offset ((unsigned int) R_386_GNU_VTINHERIT - R_386_tls)
+#define R_386_tls (R_386_TLS_TPOFF32 + 1 - R_386_tls_offset)
+#define R_386_vt_offset (R_386_GNU_VTINHERIT - R_386_tls)
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_386_GNU_VTINHERIT, /* type */
@@ -221,146 +160,144 @@ static reloc_howto_type elf_howto_table[]=
0, /* dst_mask */
FALSE) /* pcrel_offset */
-#define R_386_vt ((unsigned int) R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
+#define R_386_vt (R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
};
#ifdef DEBUG_GEN_RELOC
-#define TRACE(str) fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str)
+#define TRACE(str) \
+ fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str)
#else
#define TRACE(str)
#endif
static reloc_howto_type *
-elf_i386_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+elf_i386_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
switch (code)
{
case BFD_RELOC_NONE:
TRACE ("BFD_RELOC_NONE");
- return &elf_howto_table[(unsigned int) R_386_NONE ];
+ return &elf_howto_table[R_386_NONE];
case BFD_RELOC_32:
TRACE ("BFD_RELOC_32");
- return &elf_howto_table[(unsigned int) R_386_32 ];
+ return &elf_howto_table[R_386_32];
case BFD_RELOC_CTOR:
TRACE ("BFD_RELOC_CTOR");
- return &elf_howto_table[(unsigned int) R_386_32 ];
+ return &elf_howto_table[R_386_32];
case BFD_RELOC_32_PCREL:
TRACE ("BFD_RELOC_PC32");
- return &elf_howto_table[(unsigned int) R_386_PC32 ];
+ return &elf_howto_table[R_386_PC32];
case BFD_RELOC_386_GOT32:
TRACE ("BFD_RELOC_386_GOT32");
- return &elf_howto_table[(unsigned int) R_386_GOT32 ];
+ return &elf_howto_table[R_386_GOT32];
case BFD_RELOC_386_PLT32:
TRACE ("BFD_RELOC_386_PLT32");
- return &elf_howto_table[(unsigned int) R_386_PLT32 ];
+ return &elf_howto_table[R_386_PLT32];
case BFD_RELOC_386_COPY:
TRACE ("BFD_RELOC_386_COPY");
- return &elf_howto_table[(unsigned int) R_386_COPY ];
+ return &elf_howto_table[R_386_COPY];
case BFD_RELOC_386_GLOB_DAT:
TRACE ("BFD_RELOC_386_GLOB_DAT");
- return &elf_howto_table[(unsigned int) R_386_GLOB_DAT ];
+ return &elf_howto_table[R_386_GLOB_DAT];
case BFD_RELOC_386_JUMP_SLOT:
TRACE ("BFD_RELOC_386_JUMP_SLOT");
- return &elf_howto_table[(unsigned int) R_386_JUMP_SLOT ];
+ return &elf_howto_table[R_386_JUMP_SLOT];
case BFD_RELOC_386_RELATIVE:
TRACE ("BFD_RELOC_386_RELATIVE");
- return &elf_howto_table[(unsigned int) R_386_RELATIVE ];
+ return &elf_howto_table[R_386_RELATIVE];
case BFD_RELOC_386_GOTOFF:
TRACE ("BFD_RELOC_386_GOTOFF");
- return &elf_howto_table[(unsigned int) R_386_GOTOFF ];
+ return &elf_howto_table[R_386_GOTOFF];
case BFD_RELOC_386_GOTPC:
TRACE ("BFD_RELOC_386_GOTPC");
- return &elf_howto_table[(unsigned int) R_386_GOTPC ];
+ return &elf_howto_table[R_386_GOTPC];
/* These relocs are a GNU extension. */
case BFD_RELOC_386_TLS_TPOFF:
TRACE ("BFD_RELOC_386_TLS_TPOFF");
- return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_TPOFF - R_386_ext_offset];
case BFD_RELOC_386_TLS_IE:
TRACE ("BFD_RELOC_386_TLS_IE");
- return &elf_howto_table[(unsigned int) R_386_TLS_IE - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_IE - R_386_ext_offset];
case BFD_RELOC_386_TLS_GOTIE:
TRACE ("BFD_RELOC_386_TLS_GOTIE");
- return &elf_howto_table[(unsigned int) R_386_TLS_GOTIE - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_GOTIE - R_386_ext_offset];
case BFD_RELOC_386_TLS_LE:
TRACE ("BFD_RELOC_386_TLS_LE");
- return &elf_howto_table[(unsigned int) R_386_TLS_LE - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_LE - R_386_ext_offset];
case BFD_RELOC_386_TLS_GD:
TRACE ("BFD_RELOC_386_TLS_GD");
- return &elf_howto_table[(unsigned int) R_386_TLS_GD - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_GD - R_386_ext_offset];
case BFD_RELOC_386_TLS_LDM:
TRACE ("BFD_RELOC_386_TLS_LDM");
- return &elf_howto_table[(unsigned int) R_386_TLS_LDM - R_386_ext_offset];
+ return &elf_howto_table[R_386_TLS_LDM - R_386_ext_offset];
case BFD_RELOC_16:
TRACE ("BFD_RELOC_16");
- return &elf_howto_table[(unsigned int) R_386_16 - R_386_ext_offset];
+ return &elf_howto_table[R_386_16 - R_386_ext_offset];
case BFD_RELOC_16_PCREL:
TRACE ("BFD_RELOC_16_PCREL");
- return &elf_howto_table[(unsigned int) R_386_PC16 - R_386_ext_offset];
+ return &elf_howto_table[R_386_PC16 - R_386_ext_offset];
case BFD_RELOC_8:
TRACE ("BFD_RELOC_8");
- return &elf_howto_table[(unsigned int) R_386_8 - R_386_ext_offset];
+ return &elf_howto_table[R_386_8 - R_386_ext_offset];
case BFD_RELOC_8_PCREL:
TRACE ("BFD_RELOC_8_PCREL");
- return &elf_howto_table[(unsigned int) R_386_PC8 - R_386_ext_offset];
+ return &elf_howto_table[R_386_PC8 - R_386_ext_offset];
/* Common with Sun TLS implementation. */
case BFD_RELOC_386_TLS_LDO_32:
TRACE ("BFD_RELOC_386_TLS_LDO_32");
- return &elf_howto_table[(unsigned int) R_386_TLS_LDO_32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_LDO_32 - R_386_tls_offset];
case BFD_RELOC_386_TLS_IE_32:
TRACE ("BFD_RELOC_386_TLS_IE_32");
- return &elf_howto_table[(unsigned int) R_386_TLS_IE_32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_IE_32 - R_386_tls_offset];
case BFD_RELOC_386_TLS_LE_32:
TRACE ("BFD_RELOC_386_TLS_LE_32");
- return &elf_howto_table[(unsigned int) R_386_TLS_LE_32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_LE_32 - R_386_tls_offset];
case BFD_RELOC_386_TLS_DTPMOD32:
TRACE ("BFD_RELOC_386_TLS_DTPMOD32");
- return &elf_howto_table[(unsigned int) R_386_TLS_DTPMOD32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_DTPMOD32 - R_386_tls_offset];
case BFD_RELOC_386_TLS_DTPOFF32:
TRACE ("BFD_RELOC_386_TLS_DTPOFF32");
- return &elf_howto_table[(unsigned int) R_386_TLS_DTPOFF32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_DTPOFF32 - R_386_tls_offset];
case BFD_RELOC_386_TLS_TPOFF32:
TRACE ("BFD_RELOC_386_TLS_TPOFF32");
- return &elf_howto_table[(unsigned int) R_386_TLS_TPOFF32 - R_386_tls_offset];
+ return &elf_howto_table[R_386_TLS_TPOFF32 - R_386_tls_offset];
case BFD_RELOC_VTABLE_INHERIT:
TRACE ("BFD_RELOC_VTABLE_INHERIT");
- return &elf_howto_table[(unsigned int) R_386_GNU_VTINHERIT
- - R_386_vt_offset];
+ return &elf_howto_table[R_386_GNU_VTINHERIT - R_386_vt_offset];
case BFD_RELOC_VTABLE_ENTRY:
TRACE ("BFD_RELOC_VTABLE_ENTRY");
- return &elf_howto_table[(unsigned int) R_386_GNU_VTENTRY
- - R_386_vt_offset];
+ return &elf_howto_table[R_386_GNU_VTENTRY - R_386_vt_offset];
default:
break;
@@ -371,10 +308,9 @@ elf_i386_reloc_type_lookup (abfd, code)
}
static void
-elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr;
- Elf_Internal_Rela *dst;
+elf_i386_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *cache_ptr,
+ Elf_Internal_Rela *dst)
{
unsigned int r_type = ELF32_R_TYPE (dst->r_info);
unsigned int indx;
@@ -389,7 +325,7 @@ elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
{
(*_bfd_error_handler) (_("%s: invalid relocation type %d"),
bfd_archive_filename (abfd), (int) r_type);
- indx = (unsigned int) R_386_NONE;
+ indx = R_386_NONE;
}
cache_ptr->howto = &elf_howto_table[indx];
}
@@ -401,9 +337,7 @@ elf_i386_info_to_howto_rel (abfd, cache_ptr, dst)
_bfd_elf_is_local_label_name. */
static bfd_boolean
-elf_i386_is_local_label_name (abfd, name)
- bfd *abfd;
- const char *name;
+elf_i386_is_local_label_name (bfd *abfd, const char *name)
{
if (name[0] == '.' && name[1] == 'X')
return TRUE;
@@ -413,9 +347,7 @@ elf_i386_is_local_label_name (abfd, name)
/* Support for core dump NOTE sections. */
static bfd_boolean
-elf_i386_grok_prstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf_i386_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
int offset;
size_t raw_size;
@@ -445,9 +377,7 @@ elf_i386_grok_prstatus (abfd, note)
}
static bfd_boolean
-elf_i386_grok_psinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf_i386_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
switch (note->descsz)
{
@@ -456,9 +386,9 @@ elf_i386_grok_psinfo (abfd, note)
case 124: /* Linux/i386 elf_prpsinfo */
elf_tdata (abfd)->core_program
- = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
+ = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
elf_tdata (abfd)->core_command
- = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
+ = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
}
/* Note that for some reason, a spurious space is tacked
@@ -607,8 +537,7 @@ struct elf_i386_obj_tdata
(elf_i386_tdata (abfd)->local_got_tls_type)
static bfd_boolean
-elf_i386_mkobject (abfd)
- bfd *abfd;
+elf_i386_mkobject (bfd *abfd)
{
bfd_size_type amt = sizeof (struct elf_i386_obj_tdata);
abfd->tdata.any = bfd_zalloc (abfd, amt);
@@ -618,8 +547,7 @@ elf_i386_mkobject (abfd)
}
static bfd_boolean
-elf_i386_object_p (abfd)
- bfd *abfd;
+elf_i386_object_p (bfd *abfd)
{
/* Allocate our special target data. */
struct elf_i386_obj_tdata *new_tdata;
@@ -664,10 +592,9 @@ struct elf_i386_link_hash_table
/* Create an entry in an i386 ELF linker hash table. */
static struct bfd_hash_entry *
-link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -696,13 +623,12 @@ link_hash_newfunc (entry, table, string)
/* Create an i386 ELF linker hash table. */
static struct bfd_link_hash_table *
-elf_i386_link_hash_table_create (abfd)
- bfd *abfd;
+elf_i386_link_hash_table_create (bfd *abfd)
{
struct elf_i386_link_hash_table *ret;
bfd_size_type amt = sizeof (struct elf_i386_link_hash_table);
- ret = (struct elf_i386_link_hash_table *) bfd_malloc (amt);
+ ret = bfd_malloc (amt);
if (ret == NULL)
return NULL;
@@ -729,9 +655,7 @@ elf_i386_link_hash_table_create (abfd)
shortcuts to them in our hash table. */
static bfd_boolean
-create_got_section (dynobj, info)
- bfd *dynobj;
- struct bfd_link_info *info;
+create_got_section (bfd *dynobj, struct bfd_link_info *info)
{
struct elf_i386_link_hash_table *htab;
@@ -760,9 +684,7 @@ create_got_section (dynobj, info)
hash table. */
static bfd_boolean
-elf_i386_create_dynamic_sections (dynobj, info)
- bfd *dynobj;
- struct bfd_link_info *info;
+elf_i386_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
{
struct elf_i386_link_hash_table *htab;
@@ -789,9 +711,9 @@ elf_i386_create_dynamic_sections (dynobj, info)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf_i386_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+elf_i386_copy_indirect_symbol (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct elf_i386_link_hash_entry *edir, *eind;
@@ -854,10 +776,7 @@ elf_i386_copy_indirect_symbol (bed, dir, ind)
}
static int
-elf_i386_tls_transition (info, r_type, is_local)
- struct bfd_link_info *info;
- int r_type;
- int is_local;
+elf_i386_tls_transition (struct bfd_link_info *info, int r_type, int is_local)
{
if (info->shared)
return r_type;
@@ -886,11 +805,10 @@ elf_i386_tls_transition (info, r_type, is_local)
table, and dynamic reloc sections. */
static bfd_boolean
-elf_i386_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf_i386_check_relocs (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
struct elf_i386_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -899,7 +817,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel_end;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf_i386_hash_table (info);
@@ -1004,8 +922,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
size = symtab_hdr->sh_info;
size *= (sizeof (bfd_signed_vma) + sizeof(char));
- local_got_refcounts = ((bfd_signed_vma *)
- bfd_zalloc (abfd, size));
+ local_got_refcounts = bfd_zalloc (abfd, size);
if (local_got_refcounts == NULL)
return FALSE;
elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -1029,7 +946,8 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
else
{
(*_bfd_error_handler)
- (_("%s: `%s' accessed both as normal and thread local symbol"),
+ (_("%s: `%s' accessed both as normal and "
+ "thread local symbol"),
bfd_archive_filename (abfd),
h ? h->root.root.string : "<local>");
return FALSE;
@@ -1195,8 +1113,7 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
if (p == NULL || p->sec != sec)
{
bfd_size_type amt = sizeof *p;
- p = ((struct elf_i386_dyn_relocs *)
- bfd_alloc (htab->elf.dynobj, amt));
+ p = bfd_alloc (htab->elf.dynobj, amt);
if (p == NULL)
return FALSE;
p->next = *head;
@@ -1238,12 +1155,11 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
relocation. */
static asection *
-elf_i386_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf_i386_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -1277,11 +1193,10 @@ elf_i386_gc_mark_hook (sec, info, rel, h, sym)
/* Update the got entry reference counts for the section being removed. */
static bfd_boolean
-elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf_i386_gc_sweep_hook (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -1375,9 +1290,8 @@ elf_i386_gc_sweep_hook (abfd, info, sec, relocs)
understand. */
static bfd_boolean
-elf_i386_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
struct elf_i386_link_hash_table *htab;
asection *s;
@@ -1534,9 +1448,7 @@ elf_i386_adjust_dynamic_symbol (info, h)
dynamic relocs. */
static bfd_boolean
-allocate_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct bfd_link_info *info;
struct elf_i386_link_hash_table *htab;
@@ -1748,9 +1660,7 @@ allocate_dynrelocs (h, inf)
/* Find any dynamic relocs that apply to read-only sections. */
static bfd_boolean
-readonly_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct elf_i386_link_hash_entry *eh;
struct elf_i386_dyn_relocs *p;
@@ -1779,9 +1689,8 @@ readonly_dynrelocs (h, inf)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-elf_i386_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
struct elf_i386_link_hash_table *htab;
bfd *dynobj;
@@ -1948,7 +1857,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
section's contents are written out. This should not happen,
but this way if it does, we get a R_386_NONE reloc instead
of garbage. */
- s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size);
+ s->contents = bfd_zalloc (dynobj, s->_raw_size);
if (s->contents == NULL)
return FALSE;
}
@@ -1961,7 +1870,7 @@ elf_i386_size_dynamic_sections (output_bfd, info)
the .dynamic section. The DT_DEBUG entry is filled in by the
dynamic linker and used by the debugger. */
#define add_dynamic_entry(TAG, VAL) \
- bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
+ bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
if (info->executable)
{
@@ -2007,10 +1916,9 @@ elf_i386_size_dynamic_sections (output_bfd, info)
section name, which is a hack, but ought to work. */
static bfd_boolean
-elf_i386_fake_sections (abfd, hdr, sec)
- bfd *abfd ATTRIBUTE_UNUSED;
- Elf_Internal_Shdr *hdr;
- asection *sec;
+elf_i386_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Shdr *hdr,
+ asection *sec)
{
register const char *name;
@@ -2043,8 +1951,7 @@ elf_i386_fake_sections (abfd, hdr, sec)
This is PT_TLS segment p_vaddr. */
static bfd_vma
-dtpoff_base (info)
- struct bfd_link_info *info;
+dtpoff_base (struct bfd_link_info *info)
{
/* If tls_segment is NULL, we should have signalled an error already. */
if (elf_hash_table (info)->tls_segment == NULL)
@@ -2056,9 +1963,7 @@ dtpoff_base (info)
if STT_TLS virtual address is ADDRESS. */
static bfd_vma
-tpoff (info, address)
- struct bfd_link_info *info;
- bfd_vma address;
+tpoff (struct bfd_link_info *info, bfd_vma address)
{
struct elf_link_tls_segment *tls_segment
= elf_hash_table (info)->tls_segment;
@@ -2073,16 +1978,14 @@ tpoff (info, address)
/* Relocate an i386 ELF section. */
static bfd_boolean
-elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf_i386_relocate_section (bfd *output_bfd,
+ struct bfd_link_info *info,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
struct elf_i386_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -2114,11 +2017,11 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
int tls_type;
r_type = ELF32_R_TYPE (rel->r_info);
- if (r_type == (int) R_386_GNU_VTINHERIT
- || r_type == (int) R_386_GNU_VTENTRY)
+ if (r_type == R_386_GNU_VTINHERIT
+ || r_type == R_386_GNU_VTENTRY)
continue;
- if ((indx = (unsigned) r_type) >= R_386_standard
+ if ((indx = r_type) >= R_386_standard
&& ((indx = r_type - R_386_ext_offset) - R_386_standard
>= R_386_ext - R_386_standard)
&& ((indx = r_type - R_386_tls_offset) - R_386_ext
@@ -2131,7 +2034,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
r_symndx = ELF32_R_SYM (rel->r_info);
- if (info->relocateable)
+ if (info->relocatable)
{
bfd_vma val;
bfd_byte *where;
@@ -2251,42 +2154,9 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned;
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx, symtab_hdr, relocation, sec, unresolved_reloc, info, warned);
}
switch (r_type)
@@ -2435,8 +2305,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak)
&& (r_type != R_386_PC32
- || (h != NULL
- && !SYMBOL_CALLS_LOCAL (info, h))))
+ || !SYMBOL_CALLS_LOCAL (info, h)))
|| (ELIMINATE_COPY_RELOCS
&& !info->shared
&& h != NULL
@@ -2633,12 +2502,14 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
if (val == 0xa1)
{
/* movl foo, %eax. */
- bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1);
+ bfd_put_8 (output_bfd, 0xb8,
+ contents + rel->r_offset - 1);
}
else
{
BFD_ASSERT (rel->r_offset >= 2);
- type = bfd_get_8 (input_bfd, contents + rel->r_offset - 2);
+ type = bfd_get_8 (input_bfd,
+ contents + rel->r_offset - 2);
switch (type)
{
case 0x8b:
@@ -3010,7 +2881,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
contents, rel->r_offset,
- relocation, (bfd_vma) 0);
+ relocation, 0);
if (r != bfd_reloc_ok)
{
@@ -3032,7 +2903,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
if (r == bfd_reloc_overflow)
{
if (! ((*info->callbacks->reloc_overflow)
- (info, name, howto->name, (bfd_vma) 0,
+ (info, name, howto->name, 0,
input_bfd, input_section, rel->r_offset)))
return FALSE;
}
@@ -3055,11 +2926,10 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
dynamic sections here. */
static bfd_boolean
-elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf_i386_finish_dynamic_symbol (bfd *output_bfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
struct elf_i386_link_hash_table *htab;
@@ -3218,10 +3088,9 @@ elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym)
dynamic linker, before writing them out. */
static enum elf_reloc_type_class
-elf_i386_reloc_type_class (rela)
- const Elf_Internal_Rela *rela;
+elf_i386_reloc_type_class (const Elf_Internal_Rela *rela)
{
- switch ((int) ELF32_R_TYPE (rela->r_info))
+ switch (ELF32_R_TYPE (rela->r_info))
{
case R_386_RELATIVE:
return reloc_class_relative;
@@ -3237,9 +3106,8 @@ elf_i386_reloc_type_class (rela)
/* Finish up the dynamic sections. */
static bfd_boolean
-elf_i386_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf_i386_finish_dynamic_sections (bfd *output_bfd,
+ struct bfd_link_info *info)
{
struct elf_i386_link_hash_table *htab;
bfd *dynobj;
@@ -3348,11 +3216,11 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
if (htab->sgotplt->_raw_size > 0)
{
bfd_put_32 (output_bfd,
- (sdyn == NULL ? (bfd_vma) 0
+ (sdyn == NULL ? 0
: sdyn->output_section->vma + sdyn->output_offset),
htab->sgotplt->contents);
- bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 4);
- bfd_put_32 (output_bfd, (bfd_vma) 0, htab->sgotplt->contents + 8);
+ bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 4);
+ bfd_put_32 (output_bfd, 0, htab->sgotplt->contents + 8);
}
elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4;
@@ -3413,13 +3281,9 @@ elf_i386_finish_dynamic_sections (output_bfd, info)
"FreeBSD" label in the ELF header. So we put this label on all
executables and (for simplicity) also all other object files. */
-static void elf_i386_post_process_headers
- PARAMS ((bfd *, struct bfd_link_info *));
-
static void
-elf_i386_post_process_headers (abfd, link_info)
- bfd *abfd;
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+elf_i386_post_process_headers (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
Elf_Internal_Ehdr *i_ehdrp;
diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c
index 74112f1..fd68dc6 100644
--- a/bfd/elf32-i860.c
+++ b/bfd/elf32-i860.c
@@ -1,5 +1,5 @@
/* Intel i860 specific support for 32-bit ELF.
- Copyright 1993, 1995, 1999, 2000, 2001, 2002
+ Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
@@ -26,38 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "elf-bfd.h"
#include "elf/i860.h"
-/* Prototypes. */
-static reloc_howto_type *lookup_howto
- PARAMS ((unsigned int));
-
-static reloc_howto_type *elf32_i860_reloc_type_lookup
- PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-
-static void elf32_i860_info_to_howto_rela
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-
-static bfd_reloc_status_type elf32_i860_relocate_splitn
- PARAMS ((bfd *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
-
-static bfd_reloc_status_type elf32_i860_relocate_pc16
- PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
-
-static bfd_reloc_status_type elf32_i860_relocate_pc26
- PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
-
-static bfd_reloc_status_type elf32_i860_relocate_highadj
- PARAMS ((bfd *, Elf_Internal_Rela *, bfd_byte *, bfd_vma));
-
-static bfd_boolean elf32_i860_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-
-static bfd_reloc_status_type i860_final_link_relocate
- PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, bfd_vma));
-
-static bfd_boolean elf32_i860_is_local_label_name
- PARAMS ((bfd *, const char *));
/* This howto table is preliminary. */
static reloc_howto_type elf32_i860_howto_table [] =
@@ -546,8 +514,7 @@ static reloc_howto_type elf32_i860_howto_table [] =
static unsigned char elf_code_to_howto_index[R_860_max + 1];
static reloc_howto_type *
-lookup_howto (rtype)
- unsigned int rtype;
+lookup_howto (unsigned int rtype)
{
static int initialized = 0;
int i;
@@ -572,9 +539,8 @@ lookup_howto (rtype)
/* Given a BFD reloc, return the matching HOWTO structure. */
static reloc_howto_type *
-elf32_i860_reloc_type_lookup (abfd, code)
- bfd * abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+elf32_i860_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
unsigned int rtype;
@@ -691,10 +657,9 @@ elf32_i860_reloc_type_lookup (abfd, code)
/* Given a ELF reloc, return the matching HOWTO structure. */
static void
-elf32_i860_info_to_howto_rela (abfd, bfd_reloc, elf_reloc)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *bfd_reloc;
- Elf_Internal_Rela *elf_reloc;
+elf32_i860_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *bfd_reloc,
+ Elf_Internal_Rela *elf_reloc)
{
bfd_reloc->howto
= lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info));
@@ -703,11 +668,10 @@ elf32_i860_info_to_howto_rela (abfd, bfd_reloc, elf_reloc)
/* Specialized relocation handler for R_860_SPLITn. These relocations
involves a 16-bit field that is split into two contiguous parts. */
static bfd_reloc_status_type
-elf32_i860_relocate_splitn (input_bfd, rello, contents, value)
- bfd *input_bfd;
- Elf_Internal_Rela *rello;
- bfd_byte *contents;
- bfd_vma value;
+elf32_i860_relocate_splitn (bfd *input_bfd,
+ Elf_Internal_Rela *rello,
+ bfd_byte *contents,
+ bfd_vma value)
{
bfd_vma insn;
reloc_howto_type *howto;
@@ -729,12 +693,11 @@ elf32_i860_relocate_splitn (input_bfd, rello, contents, value)
involves a 16-bit, PC-relative field that is split into two contiguous
parts. */
static bfd_reloc_status_type
-elf32_i860_relocate_pc16 (input_bfd, input_section, rello, contents, value)
- bfd *input_bfd;
- asection *input_section;
- Elf_Internal_Rela *rello;
- bfd_byte *contents;
- bfd_vma value;
+elf32_i860_relocate_pc16 (bfd *input_bfd,
+ asection *input_section,
+ Elf_Internal_Rela *rello,
+ bfd_byte *contents,
+ bfd_vma value)
{
bfd_vma insn;
reloc_howto_type *howto;
@@ -761,12 +724,11 @@ elf32_i860_relocate_pc16 (input_bfd, input_section, rello, contents, value)
/* Specialized relocation handler for R_860_PC26. This relocation
involves a 26-bit, PC-relative field which must be adjusted by 4. */
static bfd_reloc_status_type
-elf32_i860_relocate_pc26 (input_bfd, input_section, rello, contents, value)
- bfd *input_bfd;
- asection *input_section;
- Elf_Internal_Rela *rello;
- bfd_byte *contents;
- bfd_vma value;
+elf32_i860_relocate_pc26 (bfd *input_bfd,
+ asection *input_section,
+ Elf_Internal_Rela *rello,
+ bfd_byte *contents,
+ bfd_vma value)
{
bfd_vma insn;
reloc_howto_type *howto;
@@ -792,11 +754,10 @@ elf32_i860_relocate_pc26 (input_bfd, input_section, rello, contents, value)
/* Specialized relocation handler for R_860_HIGHADJ. */
static bfd_reloc_status_type
-elf32_i860_relocate_highadj (input_bfd, rel, contents, value)
- bfd *input_bfd;
- Elf_Internal_Rela *rel;
- bfd_byte *contents;
- bfd_vma value;
+elf32_i860_relocate_highadj (bfd *input_bfd,
+ Elf_Internal_Rela *rel,
+ bfd_byte *contents,
+ bfd_vma value)
{
bfd_vma insn;
@@ -815,13 +776,12 @@ elf32_i860_relocate_highadj (input_bfd, rel, contents, value)
/* Perform a single relocation. By default we use the standard BFD
routines. However, we handle some specially. */
static bfd_reloc_status_type
-i860_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation)
- reloc_howto_type * howto;
- bfd * input_bfd;
- asection * input_section;
- bfd_byte * contents;
- Elf_Internal_Rela * rel;
- bfd_vma relocation;
+i860_final_link_relocate (reloc_howto_type *howto,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *rel,
+ bfd_vma relocation)
{
return _bfd_final_link_relocate (howto, input_bfd, input_section,
contents, rel->r_offset, relocation,
@@ -840,7 +800,7 @@ i860_final_link_relocate (howto, input_bfd, input_section, contents, rel, reloca
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -854,29 +814,27 @@ i860_final_link_relocate (howto, input_bfd, input_section, contents, rel, reloca
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
accordingly. */
static bfd_boolean
-elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -1059,9 +1017,7 @@ elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
??? Do any other SVR4 compilers have this convention? If so, this should
be added to the generic routine. */
static bfd_boolean
-elf32_i860_is_local_label_name (abfd, name)
- bfd *abfd;
- const char *name;
+elf32_i860_is_local_label_name (bfd *abfd, const char *name)
{
if (name[0] == '.' && name[1] == 'e' && name[2] == 'p' && name[3] == '.')
return TRUE;
diff --git a/bfd/elf32-i960.c b/bfd/elf32-i960.c
index 4a1e931..6218e1a 100644
--- a/bfd/elf32-i960.c
+++ b/bfd/elf32-i960.c
@@ -1,5 +1,5 @@
/* Intel 860 specific support for 32-bit ELF
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -96,7 +96,7 @@ elf32_i960_info_to_howto_rel (abfd, cache_ptr, dst)
cache_ptr->howto = &elf_howto_table[(int) type];
}
-/* ELF relocs are against symbols. If we are producing relocateable
+/* ELF relocs are against symbols. If we are producing relocatable
output, and the reloc is against an external symbol, and nothing
has given us any additional addend, the resulting reloc will also
be against the same symbol. In such a case, we don't want to
@@ -104,7 +104,7 @@ elf32_i960_info_to_howto_rel (abfd, cache_ptr, dst)
all be done at final link time. Rather than put special case code
into bfd_perform_relocation, all the reloc types use this howto
function. It just short circuits the reloc if producing
- relocateable output against an external symbol. */
+ relocatable output against an external symbol. */
bfd_reloc_status_type
elf32_i960_relocate (abfd,
diff --git a/bfd/elf32-ip2k.c b/bfd/elf32-ip2k.c
index e10e941..e8cb177 100644
--- a/bfd/elf32-ip2k.c
+++ b/bfd/elf32-ip2k.c
@@ -834,7 +834,7 @@ ip2k_elf_relax_section (abfd, sec, link_info, again)
/* We don't have to do anything for a relocatable link,
if this section does not have relocs, or if this is
not a code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0)
@@ -1456,7 +1456,7 @@ ip2k_final_link_relocate (howto, input_bfd, input_section, contents, rel,
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -1470,7 +1470,7 @@ ip2k_final_link_relocate (howto, input_bfd, input_section, contents, rel,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -1493,7 +1493,7 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -1532,33 +1532,12 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes [r_symndx - symtab_hdr->sh_info];
+ bfd_boolean warned;
+ bfd_boolean unresolved_reloc;
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx, symtab_hdr, relocation, sec, unresolved_reloc, info, warned);
name = h->root.root.string;
-
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- relocation = h->root.u.def.value + BASEADDR (sec);
- }
-
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
-
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (! info->shared || info->no_undefined))))
- return FALSE;
- relocation = 0;
- }
}
/* Finally, the sole IP2K-specific part. */
diff --git a/bfd/elf32-iq2000.c b/bfd/elf32-iq2000.c
index ebdd303..f85ffac 100644
--- a/bfd/elf32-iq2000.c
+++ b/bfd/elf32-iq2000.c
@@ -458,7 +458,7 @@ iq2000_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel_end;
bfd_boolean changed = FALSE;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -531,7 +531,7 @@ iq2000_elf_check_relocs (abfd, info, sec, relocs)
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -545,7 +545,7 @@ iq2000_elf_check_relocs (abfd, info, sec, relocs)
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -618,48 +618,14 @@ iq2000_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes [r_symndx];
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean unresolved_reloc;
+ bfd_boolean warned;
+
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation,
+ sec, unresolved_reloc, info, warned);
name = h->root.root.string;
-
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
-#ifdef DEBUG
- fprintf (stderr,
- "defined: sec: %s, name: %s, value: %x + %x + %x gives: %x\n",
- sec->name, name, h->root.u.def.value,
- sec->output_section->vma, sec->output_offset, relocation);
-#endif
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- {
-#ifdef DEBUG
- fprintf (stderr, "undefined: sec: %s, name: %s\n",
- sec->name, name);
-#endif
- relocation = 0;
- }
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined))))
- return FALSE;
-#ifdef DEBUG
- fprintf (stderr, "unknown: name: %s\n", name);
-#endif
- relocation = 0;
- }
}
switch (r_type)
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 3116ace..7e955e9 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -840,7 +840,7 @@ m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
asection **secp;
bfd_vma *valp;
{
- if (! info->relocateable
+ if (! info->relocatable
&& (*namep)[0] == '_' && (*namep)[1] == 'S'
&& strcmp (*namep, "_SDA_BASE_") == 0
&& info->hash->creator->flavour == bfd_target_elf_flavour)
@@ -903,7 +903,7 @@ m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
symbol value correctly. We look up the symbol _SDA_BASE_ in the output
BFD. If we can't find it, we're stuck. We cache it in the ELF
target data. We don't need to adjust the symbol value for an
- external symbol if we are producing relocateable output. */
+ external symbol if we are producing relocatable output. */
static bfd_reloc_status_type
m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
@@ -948,7 +948,7 @@ m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -962,7 +962,7 @@ m32r_elf_final_sda_base (output_bfd, info, error_message, psb)
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -987,7 +987,7 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean ret = TRUE;
#if !USE_REL
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#endif
@@ -1031,9 +1031,9 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
r_symndx = ELF32_R_SYM (rel->r_info);
#if USE_REL
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -1350,10 +1350,10 @@ m32r_elf_relax_section (abfd, sec, link_info, again)
/* Assume nothing changes. */
*again = FALSE;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0
@@ -1744,12 +1744,12 @@ m32r_elf_relax_delete_bytes (abfd, sec, addr, count)
static bfd_byte *
m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *output_bfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
Elf_Internal_Shdr *symtab_hdr;
@@ -1762,11 +1762,11 @@ m32r_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2050,7 +2050,7 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2091,6 +2091,16 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
return TRUE;
}
+
+static struct bfd_elf_special_section const m32r_elf_special_sections[]=
+{
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
#define ELF_ARCH bfd_arch_m32r
#define ELF_MACHINE_CODE EM_M32R
@@ -2126,5 +2136,6 @@ m32r_elf_check_relocs (abfd, info, sec, relocs)
#define bfd_elf32_bfd_merge_private_bfd_data m32r_elf_merge_private_bfd_data
#define bfd_elf32_bfd_set_private_flags m32r_elf_set_private_flags
#define bfd_elf32_bfd_print_private_bfd_data m32r_elf_print_private_bfd_data
+#define elf_backend_special_sections m32r_elf_special_sections
#include "elf32-target.h"
diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c
index 1b95105..b9d9bfc 100644
--- a/bfd/elf32-m68hc11.c
+++ b/bfd/elf32-m68hc11.c
@@ -687,10 +687,10 @@ m68hc11_elf_relax_section (abfd, sec, link_info, again)
/* Assume nothing changes. */
*again = FALSE;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0)
@@ -1281,6 +1281,25 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
}
}
+/* Specific sections:
+ - The .page0 is a data section that is mapped in [0x0000..0x00FF].
+ Page0 accesses are faster on the M68HC11. Soft registers used by GCC-m6811
+ are located in .page0.
+ - The .vectors is the data section that represents the interrupt
+ vectors. */
+static struct bfd_elf_special_section const elf32_m68hc11_special_sections[]=
+{
+ { ".eeprom", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".softregs", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { ".page0", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".vectors", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
#define ELF_ARCH bfd_arch_m68hc11
#define ELF_MACHINE_CODE EM_68HC11
@@ -1300,6 +1319,7 @@ m68hc11_elf_relax_delete_bytes (abfd, sec, addr, count)
#define elf_backend_object_p 0
#define elf_backend_final_write_processing 0
#define elf_backend_can_gc_sections 1
+#define elf_backend_special_sections elf32_m68hc11_special_sections
#define bfd_elf32_bfd_link_hash_table_create \
m68hc11_elf_bfd_link_hash_table_create
diff --git a/bfd/elf32-m68hc1x.c b/bfd/elf32-m68hc1x.c
index 176a256..b31fc7b 100644
--- a/bfd/elf32-m68hc1x.c
+++ b/bfd/elf32-m68hc1x.c
@@ -512,11 +512,12 @@ elf32_m68hc11_size_stubs (output_bfd, stub_bfd, info, add_stub_section)
bfd_boolean is_far;
sym = local_syms + r_indx;
- hdr = elf_elfsections (input_bfd)[sym->st_shndx];
- sym_sec = hdr->bfd_section;
is_far = (sym && (sym->st_other & STO_M68HC12_FAR));
if (!is_far)
continue;
+
+ hdr = elf_elfsections (input_bfd)[sym->st_shndx];
+ sym_sec = hdr->bfd_section;
stub_name = (bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link,
sym->st_name));
@@ -956,7 +957,7 @@ elf32_m68hc11_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela * rel;
const Elf_Internal_Rela * rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
@@ -1118,7 +1119,7 @@ elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel, *relend;
const char *name;
struct m68hc11_page_info *pinfo;
- struct elf_backend_data * const ebd = get_elf_backend_data (input_bfd);
+ const struct elf_backend_data * const ebd = get_elf_backend_data (input_bfd);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
sym_hashes = elf_sym_hashes (input_bfd);
@@ -1152,9 +1153,9 @@ elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section,
|| r_type == R_M68HC11_GNU_VTINHERIT )
continue;
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 1cf23d6..7688bfd 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -427,7 +427,7 @@ elf_m68k_check_relocs (abfd, info, sec, relocs)
asection *srelgot;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -1358,7 +1358,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -1398,6 +1398,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
sym = NULL;
sec = NULL;
unresolved_reloc = FALSE;
+
if (r_symndx < symtab_hdr->sh_info)
{
sym = local_syms + r_symndx;
@@ -1406,42 +1407,9 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned;
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (!(info->callbacks->undefined_symbol
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx, symtab_hdr, relocation, sec, unresolved_reloc, info, warned);
}
switch (r_type)
@@ -2153,7 +2121,7 @@ bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
bfd_byte *p;
bfd_size_type amt;
- BFD_ASSERT (! info->relocateable);
+ BFD_ASSERT (! info->relocatable);
*errmsg = NULL;
diff --git a/bfd/elf32-mcore.c b/bfd/elf32-mcore.c
index 927418e..3f878cf 100644
--- a/bfd/elf32-mcore.c
+++ b/bfd/elf32-mcore.c
@@ -1,5 +1,5 @@
/* Motorola MCore specific support for 32-bit ELF
- Copyright 1994, 1995, 1999, 2000, 2001, 2002
+ Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -367,7 +367,7 @@ mcore_elf_unsupported_reloc (abfd, reloc_entry, symbol, data, input_section,
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -381,7 +381,7 @@ mcore_elf_unsupported_reloc (abfd, reloc_entry, symbol, data, input_section,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -411,10 +411,10 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_archive_filename (input_bfd),
bfd_section_name(input_bfd, input_section),
(long) input_section->reloc_count,
- (info->relocateable) ? " (relocatable)" : "");
+ (info->relocatable) ? " (relocatable)" : "");
#endif
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4]) /* Initialize howto table if needed */
@@ -637,7 +637,7 @@ mcore_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela * rel;
const Elf_Internal_Rela * rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
@@ -681,6 +681,16 @@ mcore_elf_check_relocs (abfd, info, sec, relocs)
return TRUE;
}
+static struct bfd_elf_special_section const mcore_elf_special_sections[]=
+{
+ { ".ctors", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".dtors", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
#define TARGET_BIG_SYM bfd_elf32_mcore_big_vec
#define TARGET_BIG_NAME "elf32-mcore-big"
#define TARGET_LITTLE_SYM bfd_elf32_mcore_little_vec
@@ -699,6 +709,7 @@ mcore_elf_check_relocs (abfd, info, sec, relocs)
#define elf_backend_gc_mark_hook mcore_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook mcore_elf_gc_sweep_hook
#define elf_backend_check_relocs mcore_elf_check_relocs
+#define elf_backend_special_sections mcore_elf_special_sections
#define elf_backend_can_gc_sections 1
#define elf_backend_rela_normal 1
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 67688c9..e495cc4 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -803,21 +803,21 @@ mips_elf_hi16_reloc (abfd, reloc_entry, symbol, data, input_section,
if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0)
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_vma gp;
if (ret == bfd_reloc_undefined)
abort ();
if (output_bfd != NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
error_message, &gp);
if (ret != bfd_reloc_ok)
return ret;
@@ -887,41 +887,42 @@ mips_elf_lo16_reloc (abfd, reloc_entry, symbol, data, input_section,
unsigned long vallo;
struct mips_hi16 *next;
- /* Do the HI16 relocation. Note that we actually don't need
- to know anything about the LO16 itself, except where to
- find the low 16 bits of the addend needed by the LO16. */
- insn = bfd_get_32 (abfd, l->addr);
- vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
-
- /* The low order 16 bits are always treated as a signed
- value. */
- vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000;
- val = ((insn & 0xffff) << 16) + vallo;
- val += l->addend;
-
- /* If PC-relative, we need to subtract out the address of the LO
- half of the HI/LO. (The actual relocation is relative
- to that instruction.) */
- if (reloc_entry->howto->pc_relative)
- val -= reloc_entry->address;
-
- /* At this point, "val" has the value of the combined HI/LO
- pair. If the low order 16 bits (which will be used for
- the LO16 insn) are negative, then we will need an
- adjustment for the high order 16 bits. */
- val += 0x8000;
- val = (val >> 16) & 0xffff;
-
- insn &= ~ (bfd_vma) 0xffff;
- insn |= val;
- bfd_put_32 (abfd, (bfd_vma) insn, l->addr);
-
if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0)
{
gp_disp_relent = *reloc_entry;
reloc_entry = &gp_disp_relent;
reloc_entry->addend = l->addend;
}
+ else
+ {
+ /* Do the HI16 relocation. Note that we actually don't need
+ to know anything about the LO16 itself, except where to
+ find the low 16 bits of the addend needed by the LO16. */
+ insn = bfd_get_32 (abfd, l->addr);
+ vallo = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
+ /* The low order 16 bits are always treated as a signed
+ value. */
+ vallo = ((vallo & 0xffff) ^ 0x8000) - 0x8000;
+ val = ((insn & 0xffff) << 16) + vallo;
+ val += l->addend;
+
+ /* If PC-relative, we need to subtract out the address of the LO
+ half of the HI/LO. (The actual relocation is relative
+ to that instruction.) */
+ if (reloc_entry->howto->pc_relative)
+ val -= reloc_entry->address;
+
+ /* At this point, "val" has the value of the combined HI/LO
+ pair. If the low order 16 bits (which will be used for
+ the LO16 insn) are negative, then we will need an
+ adjustment for the high order 16 bits. */
+ val += 0x8000;
+ val = (val >> 16) & 0xffff;
+
+ insn &= ~ (bfd_vma) 0xffff;
+ insn |= val;
+ bfd_put_32 (abfd, (bfd_vma) insn, l->addr);
+ }
next = l->next;
free (l);
@@ -1053,18 +1054,18 @@ mips_elf_assign_gp (output_bfd, pgp)
symbol value correctly. We look up the symbol _gp in the output
BFD. If we can't find it, we're stuck. We cache it in the ELF
target data. We don't need to adjust the symbol value for an
- external symbol if we are producing relocateable output. */
+ external symbol if we are producing relocatable output. */
static bfd_reloc_status_type
-mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
bfd *output_bfd;
asymbol *symbol;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
char **error_message;
bfd_vma *pgp;
{
if (bfd_is_und_section (symbol->section)
- && ! relocateable)
+ && ! relocatable)
{
*pgp = 0;
return bfd_reloc_undefined;
@@ -1072,10 +1073,10 @@ mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
*pgp = _bfd_get_gp_value (output_bfd);
if (*pgp == 0
- && (! relocateable
+ && (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0))
{
- if (relocateable)
+ if (relocatable)
{
/* Make up a value. */
*pgp = symbol->section->output_section->vma + 0x4000;
@@ -1109,7 +1110,7 @@ _bfd_mips_elf32_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1124,20 +1125,20 @@ _bfd_mips_elf32_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
- input_section, relocateable,
+ input_section, relocatable,
data, gp);
}
@@ -1155,7 +1156,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1171,30 +1172,30 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
error_message, &gp);
if (ret != bfd_reloc_ok)
return ret;
return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
- relocateable, data, gp);
+ relocatable, data, gp);
}
static bfd_reloc_status_type
-gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
+gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data,
gp)
bfd *abfd;
asymbol *symbol;
arelent *reloc_entry;
asection *input_section;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
PTR data;
bfd_vma gp;
{
@@ -1219,9 +1220,9 @@ gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1230,7 +1231,7 @@ gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
@@ -1331,7 +1332,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
unsigned short extend = 0;
@@ -1350,14 +1351,14 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
@@ -1387,9 +1388,9 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
_bfd_mips_elf_sign_extend(val, 16);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1408,7 +1409,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
return bfd_reloc_overflow;
@@ -1729,7 +1730,7 @@ bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg)
Elf_Internal_Rela *irel, *irelend;
bfd_byte *p;
- BFD_ASSERT (! info->relocateable);
+ BFD_ASSERT (! info->relocatable);
*errmsg = NULL;
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index 694a30f..b09ef87 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -1,5 +1,5 @@
/* MSP430-specific support for 32-bit ELF
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Dmitry Diky <diwil@mail.ru>
This file is part of BFD, the Binary File Descriptor library.
@@ -278,7 +278,7 @@ elf32_msp430_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -550,10 +550,6 @@ bfd_elf_msp430_final_write_processing (abfd, linker)
switch (bfd_get_mach (abfd))
{
default:
- case bfd_mach_msp12:
- val = E_MSP430_MACH_MSP430x12;
- break;
-
case bfd_mach_msp110:
val = E_MSP430_MACH_MSP430x11x1;
break;
@@ -562,6 +558,10 @@ bfd_elf_msp430_final_write_processing (abfd, linker)
val = E_MSP430_MACH_MSP430x11;
break;
+ case bfd_mach_msp12:
+ val = E_MSP430_MACH_MSP430x12;
+ break;
+
case bfd_mach_msp13:
val = E_MSP430_MACH_MSP430x13;
break;
@@ -570,16 +570,12 @@ bfd_elf_msp430_final_write_processing (abfd, linker)
val = E_MSP430_MACH_MSP430x14;
break;
- case bfd_mach_msp41:
- val = E_MSP430_MACH_MSP430x41;
- break;
-
- case bfd_mach_msp43:
- val = E_MSP430_MACH_MSP430x43;
+ case bfd_mach_msp15:
+ val = E_MSP430_MACH_MSP430x15;
break;
- case bfd_mach_msp44:
- val = E_MSP430_MACH_MSP430x44;
+ case bfd_mach_msp16:
+ val = E_MSP430_MACH_MSP430x16;
break;
case bfd_mach_msp31:
@@ -594,12 +590,20 @@ bfd_elf_msp430_final_write_processing (abfd, linker)
val = E_MSP430_MACH_MSP430x33;
break;
- case bfd_mach_msp15:
- val = E_MSP430_MACH_MSP430x15;
+ case bfd_mach_msp41:
+ val = E_MSP430_MACH_MSP430x41;
break;
- case bfd_mach_msp16:
- val = E_MSP430_MACH_MSP430x16;
+ case bfd_mach_msp42:
+ val = E_MSP430_MACH_MSP430x42;
+ break;
+
+ case bfd_mach_msp43:
+ val = E_MSP430_MACH_MSP430x43;
+ break;
+
+ case bfd_mach_msp44:
+ val = E_MSP430_MACH_MSP430x44;
break;
}
@@ -624,10 +628,6 @@ elf32_msp430_object_p (abfd)
switch (e_mach)
{
default:
- case E_MSP430_MACH_MSP430x12:
- e_set = bfd_mach_msp12;
- break;
-
case E_MSP430_MACH_MSP430x11:
e_set = bfd_mach_msp11;
break;
@@ -636,6 +636,10 @@ elf32_msp430_object_p (abfd)
e_set = bfd_mach_msp110;
break;
+ case E_MSP430_MACH_MSP430x12:
+ e_set = bfd_mach_msp12;
+ break;
+
case E_MSP430_MACH_MSP430x13:
e_set = bfd_mach_msp13;
break;
@@ -644,8 +648,12 @@ elf32_msp430_object_p (abfd)
e_set = bfd_mach_msp14;
break;
- case E_MSP430_MACH_MSP430x41:
- e_set = bfd_mach_msp41;
+ case E_MSP430_MACH_MSP430x15:
+ e_set = bfd_mach_msp15;
+ break;
+
+ case E_MSP430_MACH_MSP430x16:
+ e_set = bfd_mach_msp16;
break;
case E_MSP430_MACH_MSP430x31:
@@ -660,20 +668,20 @@ elf32_msp430_object_p (abfd)
e_set = bfd_mach_msp33;
break;
- case E_MSP430_MACH_MSP430x43:
- e_set = bfd_mach_msp43;
+ case E_MSP430_MACH_MSP430x41:
+ e_set = bfd_mach_msp41;
break;
- case E_MSP430_MACH_MSP430x44:
- e_set = bfd_mach_msp44;
+ case E_MSP430_MACH_MSP430x42:
+ e_set = bfd_mach_msp42;
break;
- case E_MSP430_MACH_MSP430x15:
- e_set = bfd_mach_msp15;
+ case E_MSP430_MACH_MSP430x43:
+ e_set = bfd_mach_msp43;
break;
- case E_MSP430_MACH_MSP430x16:
- e_set = bfd_mach_msp16;
+ case E_MSP430_MACH_MSP430x44:
+ e_set = bfd_mach_msp44;
break;
}
}
diff --git a/bfd/elf32-openrisc.c b/bfd/elf32-openrisc.c
index 8e8d0bc..a9b6d1d 100644
--- a/bfd/elf32-openrisc.c
+++ b/bfd/elf32-openrisc.c
@@ -1,5 +1,5 @@
/* OpenRISC-specific support for 32-bit ELF.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Johan Rydberg, jrydberg@opencores.org
This file is part of BFD, the Binary File Descriptor library.
@@ -298,7 +298,7 @@ openrisc_final_link_relocate (howto, input_bfd, input_section, contents, rel,
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -312,7 +312,7 @@ openrisc_final_link_relocate (howto, input_bfd, input_section, contents, rel,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -335,7 +335,7 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -529,7 +529,7 @@ openrisc_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index d2cbd83..3bffc70 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -35,88 +35,10 @@
/* RELA relocations are used here. */
-static struct bfd_hash_entry *ppc_elf_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,
- const char *string));
-static struct bfd_link_hash_table *ppc_elf_link_hash_table_create
- PARAMS ((bfd *abfd));
-static void ppc_elf_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *bed, struct elf_link_hash_entry *dir,
- struct elf_link_hash_entry *ind));
-static reloc_howto_type *ppc_elf_reloc_type_lookup
- PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-static void ppc_elf_info_to_howto
- PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst));
-static void ppc_elf_howto_init
- PARAMS ((void));
-static int ppc_elf_sort_rela
- PARAMS ((const PTR, const PTR));
-static bfd_boolean ppc_elf_relax_section
- PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
static bfd_reloc_status_type ppc_elf_addr16_ha_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static bfd_reloc_status_type ppc_elf_unhandled_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static bfd_boolean ppc_elf_object_p
- PARAMS ((bfd *));
-static bfd_boolean ppc_elf_set_private_flags
- PARAMS ((bfd *, flagword));
-static bfd_boolean ppc_elf_merge_private_bfd_data
- PARAMS ((bfd *, bfd *));
-static int ppc_elf_additional_program_headers
- PARAMS ((bfd *));
-static bfd_boolean ppc_elf_modify_segment_map
- PARAMS ((bfd *));
-static bfd_boolean ppc_elf_create_got
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_section_from_shdr
- PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
-static bfd_boolean ppc_elf_fake_sections
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
-static elf_linker_section_t *ppc_elf_create_linker_section
- PARAMS ((bfd *abfd, struct bfd_link_info *info,
- enum elf_linker_section_enum));
-static bfd_boolean update_local_sym_info
- PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned long, int));
-static void bad_shared_reloc
- PARAMS ((bfd *, enum elf_ppc_reloc_type));
-static bfd_boolean ppc_elf_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
-static asection *ppc_elf_gc_mark_hook
- PARAMS ((asection *sec, struct bfd_link_info *info, Elf_Internal_Rela *rel,
- struct elf_link_hash_entry *h, Elf_Internal_Sym *sym));
-static bfd_boolean ppc_elf_gc_sweep_hook
- PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec,
- const Elf_Internal_Rela *relocs));
-static bfd_boolean ppc_elf_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean readonly_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean ppc_elf_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean ppc_elf_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms,
- asection **));
-static bfd_boolean ppc_elf_add_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
-static bfd_boolean ppc_elf_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *));
-static bfd_boolean ppc_elf_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static enum elf_reloc_type_class ppc_elf_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
-static bfd_boolean ppc_elf_grok_prstatus
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
-static bfd_boolean ppc_elf_grok_psinfo
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
/* Branch prediction bit for branch taken relocs. */
#define BRANCH_PREDICT_BIT 0x200000
@@ -148,6 +70,72 @@ static bfd_boolean ppc_elf_grok_psinfo
#define DTP_OFFSET 0x8000
+/* Enumeration to specify the special section. */
+enum elf_linker_section_enum
+{
+ LINKER_SECTION_SDATA,
+ LINKER_SECTION_SDATA2
+};
+
+/* Sections created by the linker. */
+
+typedef struct elf_linker_section
+{
+ /* pointer to the section */
+ asection *section;
+ /* pointer to the relocations needed for this section */
+ asection *rel_section;
+ /* pointer to the created symbol hash value */
+ struct elf_link_hash_entry *sym_hash;
+ /* offset of symbol from beginning of section */
+ bfd_vma sym_offset;
+} elf_linker_section_t;
+
+/* Linked list of allocated pointer entries. This hangs off of the
+ symbol lists, and provides allows us to return different pointers,
+ based on different addend's. */
+
+typedef struct elf_linker_section_pointers
+{
+ /* next allocated pointer for this symbol */
+ struct elf_linker_section_pointers *next;
+ /* offset of pointer from beginning of section */
+ bfd_vma offset;
+ /* addend used */
+ bfd_vma addend;
+ /* which linker section this is */
+ elf_linker_section_t *lsect;
+ /* whether address was written yet */
+ bfd_boolean written_address_p;
+} elf_linker_section_pointers_t;
+
+struct ppc_elf_obj_tdata
+{
+ struct elf_obj_tdata elf;
+
+ /* A mapping from local symbols to offsets into the various linker
+ sections added. This is index by the symbol index. */
+ elf_linker_section_pointers_t **linker_section_pointers;
+};
+
+#define ppc_elf_tdata(bfd) \
+ ((struct ppc_elf_obj_tdata *) (bfd)->tdata.any)
+
+#define elf_local_ptr_offsets(bfd) \
+ (ppc_elf_tdata (bfd)->linker_section_pointers)
+
+/* Override the generic function because we store some extras. */
+
+static bfd_boolean
+ppc_elf_mkobject (bfd *abfd)
+{
+ bfd_size_type amt = sizeof (struct ppc_elf_obj_tdata);
+ abfd->tdata.any = bfd_zalloc (abfd, amt);
+ if (abfd->tdata.any == NULL)
+ return FALSE;
+ return TRUE;
+}
+
/* The PPC linker needs to keep track of the number of relocs that it
decides to copy as dynamic relocs in check_relocs for each symbol.
This is so that it can later discard them if they are found to be
@@ -174,6 +162,11 @@ struct ppc_elf_link_hash_entry
{
struct elf_link_hash_entry elf;
+ /* If this symbol is used in the linker created sections, the processor
+ specific backend uses this field to map the field into the offset
+ from the beginning of the section. */
+ elf_linker_section_pointers_t *linker_section_pointer;
+
/* Track dynamic relocs copied for this symbol. */
struct ppc_elf_dyn_relocs *dyn_relocs;
@@ -210,6 +203,7 @@ struct ppc_elf_link_hash_table
asection *relsbss;
elf_linker_section_t *sdata;
elf_linker_section_t *sdata2;
+ asection *sbss;
/* Short-cut to first output tls section. */
asection *tls_sec;
@@ -235,10 +229,9 @@ struct ppc_elf_link_hash_table
/* Create an entry in a PPC ELF linker hash table. */
static struct bfd_hash_entry *
-ppc_elf_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+ppc_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -254,6 +247,7 @@ ppc_elf_link_hash_newfunc (entry, table, string)
entry = _bfd_elf_link_hash_newfunc (entry, table, string);
if (entry != NULL)
{
+ ppc_elf_hash_entry (entry)->linker_section_pointer = NULL;
ppc_elf_hash_entry (entry)->dyn_relocs = NULL;
ppc_elf_hash_entry (entry)->tls_mask = 0;
}
@@ -264,13 +258,11 @@ ppc_elf_link_hash_newfunc (entry, table, string)
/* Create a PPC ELF linker hash table. */
static struct bfd_link_hash_table *
-ppc_elf_link_hash_table_create (abfd)
- bfd *abfd;
+ppc_elf_link_hash_table_create (bfd *abfd)
{
struct ppc_elf_link_hash_table *ret;
- ret = ((struct ppc_elf_link_hash_table *)
- bfd_malloc (sizeof (struct ppc_elf_link_hash_table)));
+ ret = bfd_zmalloc (sizeof (struct ppc_elf_link_hash_table));
if (ret == NULL)
return NULL;
@@ -281,21 +273,6 @@ ppc_elf_link_hash_table_create (abfd)
return NULL;
}
- ret->got = NULL;
- ret->relgot = NULL;
- ret->plt = NULL;
- ret->relplt = NULL;
- ret->dynbss = NULL;
- ret->relbss = NULL;
- ret->dynsbss = NULL;
- ret->relsbss = NULL;
- ret->sdata = NULL;
- ret->sdata2 = NULL;
- ret->tls_sec = NULL;
- ret->tls_get_addr = NULL;
- ret->tlsld_got.refcount = 0;
- ret->sym_sec.abfd = NULL;
-
return &ret->elf.root;
}
@@ -308,9 +285,9 @@ ppc_elf_link_hash_table_create (abfd)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-ppc_elf_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+ppc_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct ppc_elf_link_hash_entry *edir, *eind;
@@ -367,7 +344,7 @@ ppc_elf_copy_indirect_symbol (bed, dir, ind)
_bfd_elf_link_hash_copy_indirect (bed, dir, ind);
}
-static reloc_howto_type *ppc_elf_howto_table[(int) R_PPC_max];
+static reloc_howto_type *ppc_elf_howto_table[R_PPC_max];
static reloc_howto_type ppc_elf_howto_raw[] = {
/* This reloc does nothing. */
@@ -1557,6 +1534,21 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
0xffff, /* dst_mask */
FALSE), /* pcrel_offset */
+ /* Phony reloc to handle branch stubs. */
+ HOWTO (R_PPC_RELAX32, /* type */
+ 0, /* rightshift */
+ 0, /* size */
+ 0, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_PPC_RELAX32", /* name */
+ FALSE, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_PPC_GNU_VTINHERIT, /* type */
0, /* rightshift */
@@ -1606,7 +1598,7 @@ static reloc_howto_type ppc_elf_howto_raw[] = {
/* Initialize the ppc_elf_howto_table, so that linear accesses can be done. */
static void
-ppc_elf_howto_init ()
+ppc_elf_howto_init (void)
{
unsigned int i, type;
@@ -1622,308 +1614,440 @@ ppc_elf_howto_init ()
}
}
-/* This function handles relaxing for the PPC with option --mpc860c0[=<n>].
-
- The MPC860, revision C0 or earlier contains a bug in the die.
- If all of the following conditions are true, the next instruction
- to be executed *may* be treated as a no-op.
- 1/ A forward branch is executed.
- 2/ The branch is predicted as not taken.
- 3/ The branch is taken.
- 4/ The branch is located in the last 5 words of a page.
- (The EOP limit is 5 by default but may be specified as any value
- from 1-10.)
-
- Our software solution is to detect these problematic branches in a
- linker pass and modify them as follows:
- 1/ Unconditional branches - Since these are always predicted taken,
- there is no problem and no action is required.
- 2/ Conditional backward branches - No problem, no action required.
- 3/ Conditional forward branches - Ensure that the "inverse prediction
- bit" is set (ensure it is predicted taken).
- 4/ Conditional register branches - Ensure that the "y bit" is set
- (ensure it is predicted taken). */
-
-/* Sort sections by address. */
-
-static int
-ppc_elf_sort_rela (arg1, arg2)
- const PTR arg1;
- const PTR arg2;
+static bfd_reloc_status_type
+ppc_elf_install_value (bfd *abfd,
+ bfd_byte *hit_addr,
+ bfd_vma v,
+ unsigned int r_type)
{
- const Elf_Internal_Rela **rela1 = (const Elf_Internal_Rela**) arg1;
- const Elf_Internal_Rela **rela2 = (const Elf_Internal_Rela**) arg2;
+ bfd_vma t0, t1;
+#ifdef BFD_HOST_U_64_BIT
+ BFD_HOST_U_64_BIT val = (BFD_HOST_U_64_BIT) v;
+#else
+ bfd_vma val = v;
+#endif
+
+ switch (r_type)
+ {
+ case R_PPC_RELAX32:
+ /* Do stuff here. */
+ t0 = bfd_get_32 (abfd, hit_addr);
+ t1 = bfd_get_32 (abfd, hit_addr + 4);
+
+ /* We're clearing the bits for R_PPC_ADDR16_HA
+ and R_PPC_ADDR16_LO here. */
+ t0 &= ~0xffff;
+ t1 &= ~0xffff;
+
+ /* t0 is HA, t1 is lo */
+ t0 |= ((val + 0x8000) >> 16) & 0xffff;
+ t1 |= val & 0xffff;
+
+ bfd_put_32 (abfd, t0, hit_addr);
+ bfd_put_32 (abfd, t1, hit_addr + 4);
+ break;
- /* Sort by offset. */
- return ((*rela1)->r_offset - (*rela2)->r_offset);
+ case R_PPC_REL24:
+ t0 = bfd_get_32 (abfd, hit_addr);
+ t0 &= ~0x3fffffc;
+ t0 |= val & 0x3fffffc;
+ bfd_put_32 (abfd, t0, hit_addr);
+ break;
+
+ case R_PPC_REL14:
+ case R_PPC_REL14_BRTAKEN:
+ case R_PPC_REL14_BRNTAKEN:
+ t0 = bfd_get_32 (abfd, hit_addr);
+ t0 &= ~0xfffc;
+ t0 |= val & 0xfffc;
+ bfd_put_32 (abfd, t0, hit_addr);
+ break;
+
+ case R_PPC_LOCAL24PC:
+ case R_PPC_PLTREL24:
+ t0 = bfd_get_32 (abfd, hit_addr);
+ t0 &= ~0x3fffffc;
+ t0 |= val & 0x3fffffc;
+ bfd_put_32 (abfd, t0, hit_addr);
+ break;
+
+ default:
+ return bfd_reloc_notsupported;
+ }
+
+ return bfd_reloc_ok;
}
+static const bfd_byte shared_stub_entry[] =
+ {
+ 0x48, 0x00, 0x00, 0x24, /* b .+36 */
+ 0x7c, 0x08, 0x02, 0xa6, /* mflr 0 */
+ 0x42, 0x9f, 0x00, 0x05, /* bcl 20, 31, .Lxxx */
+ 0x7d, 0x68, 0x02, 0xa6, /* mflr 11 */
+ 0x3d, 0x60, 0x00, 0x00, /* addis 11, 11, (xxx-.Lxxx)@ha */
+ 0x39, 0x6b, 0x00, 0x18, /* addi 11, 11, (xxx-.Lxxx)@l */
+ 0x7c, 0x08, 0x03, 0xa6, /* mtlr 0 */
+ 0x7d, 0x69, 0x03, 0xa6, /* mtctr 11 */
+ 0x4e, 0x80, 0x04, 0x20, /* bctr */
+ };
+
+static const bfd_byte stub_entry[] =
+ {
+ 0x48, 0x00, 0x00, 0x14, /* b .+20 */
+ 0x3d, 0x60, 0x00, 0x00, /* lis 11,xxx@ha */
+ 0x39, 0x6b, 0x00, 0x00, /* addi 11,11,xxx@l */
+ 0x7d, 0x69, 0x03, 0xa6, /* mtctr 11 */
+ 0x4e, 0x80, 0x04, 0x20, /* bctr */
+ };
+
+
static bfd_boolean
-ppc_elf_relax_section (abfd, isec, link_info, again)
- bfd *abfd;
- asection *isec;
- struct bfd_link_info *link_info;
- bfd_boolean *again;
+ppc_elf_relax_section (bfd *abfd,
+ asection *isec,
+ struct bfd_link_info *link_info,
+ bfd_boolean *again)
{
-#define PAGESIZE 0x1000
+ struct one_fixup
+ {
+ struct one_fixup *next;
+ asection *tsec;
+ bfd_vma toff;
+ bfd_vma trampoff;
+ };
+ Elf_Internal_Shdr *symtab_hdr;
bfd_byte *contents = NULL;
- bfd_byte *free_contents = NULL;
+ Elf_Internal_Sym *isymbuf = NULL;
Elf_Internal_Rela *internal_relocs = NULL;
- Elf_Internal_Rela *free_relocs = NULL;
- Elf_Internal_Rela **rela_comb = NULL;
- int comb_curr, comb_count;
+ Elf_Internal_Rela *irel, *irelend;
+ struct one_fixup *fixups = NULL;
+ bfd_boolean changed_contents = FALSE;
+ bfd_boolean changed_relocs = FALSE;
+ struct ppc_elf_link_hash_table *ppc_info;
- /* We never have to do this more than once per input section. */
*again = FALSE;
+ /* Nothing to do if there are no relocations and no need for
+ the relax finalize pass. */
+ if ((isec->flags & SEC_RELOC) == 0
+ || isec->reloc_count == 0
+ || link_info->relax_finalizing)
+ return TRUE;
+
/* If needed, initialize this section's cooked size. */
if (isec->_cooked_size == 0)
isec->_cooked_size = isec->_raw_size;
- /* We're only interested in text sections which overlap the
- troublesome area at the end of a page. */
- if (link_info->mpc860c0 && (isec->flags & SEC_CODE) && isec->_cooked_size)
+ symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+
+ /* Get a copy of the native relocations. */
+ internal_relocs = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL,
+ link_info->keep_memory);
+ if (internal_relocs == NULL)
+ goto error_return;
+
+ ppc_info = ppc_elf_hash_table (link_info);
+ irelend = internal_relocs + isec->reloc_count;
+
+ /* Get the section contents. */
+ /* Get cached copy if it exists. */
+ if (elf_section_data (isec)->this_hdr.contents != NULL)
+ contents = elf_section_data (isec)->this_hdr.contents;
+ else
{
- bfd_vma dot, end_page, end_section;
- bfd_boolean section_modified;
+ /* Go get them off disk. */
+ contents = bfd_malloc (isec->_raw_size);
+ if (contents == NULL)
+ goto error_return;
- /* Get the section contents. */
- /* Get cached copy if it exists. */
- if (elf_section_data (isec)->this_hdr.contents != NULL)
- contents = elf_section_data (isec)->this_hdr.contents;
- else
+ if (!bfd_get_section_contents (abfd, isec, contents, 0, isec->_raw_size))
+ goto error_return;
+ }
+
+ for (irel = internal_relocs; irel < irelend; irel++)
+ {
+ unsigned long r_type = ELF32_R_TYPE (irel->r_info);
+ bfd_vma symaddr, reladdr, trampoff, toff, roff;
+ asection *tsec;
+ bfd_size_type amt;
+ struct one_fixup *f;
+ size_t insn_offset = 0;
+ bfd_vma max_branch_offset;
+
+ switch (r_type)
{
- /* Go get them off disk. */
- contents = (bfd_byte *) bfd_malloc (isec->_raw_size);
- if (contents == NULL)
- goto error_return;
- free_contents = contents;
+ case R_PPC_REL24:
+ case R_PPC_LOCAL24PC:
+ case R_PPC_REL14:
+ case R_PPC_REL14_BRTAKEN:
+ case R_PPC_REL14_BRNTAKEN:
+ case R_PPC_PLTREL24:
+ break;
- if (! bfd_get_section_contents (abfd, isec, contents,
- (file_ptr) 0, isec->_raw_size))
- goto error_return;
+ default:
+ continue;
}
- comb_curr = 0;
- comb_count = 0;
- if (isec->reloc_count)
+ /* Get the value of the symbol referred to by the reloc. */
+ if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
{
- unsigned n;
- bfd_size_type amt;
-
- /* Get a copy of the native relocations. */
- internal_relocs
- = _bfd_elf_link_read_relocs (abfd, isec, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
- link_info->keep_memory);
- if (internal_relocs == NULL)
- goto error_return;
- if (! link_info->keep_memory)
- free_relocs = internal_relocs;
-
- /* Setup a faster access method for the reloc info we need. */
- amt = isec->reloc_count;
- amt *= sizeof (Elf_Internal_Rela*);
- rela_comb = (Elf_Internal_Rela**) bfd_malloc (amt);
- if (rela_comb == NULL)
- goto error_return;
- for (n = 0; n < isec->reloc_count; ++n)
- {
- long r_type;
+ /* A local symbol. */
+ Elf_Internal_Sym *isym;
- r_type = ELF32_R_TYPE (internal_relocs[n].r_info);
- if (r_type < 0 || r_type >= (int) R_PPC_max)
+ /* Read this BFD's local symbols. */
+ if (isymbuf == NULL)
+ {
+ isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+ if (isymbuf == NULL)
+ isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+ symtab_hdr->sh_info, 0,
+ NULL, NULL, NULL);
+ if (isymbuf == 0)
goto error_return;
-
- /* Prologue constants are sometimes present in the ".text"
- sections and they can be identified by their associated
- relocation. We don't want to process those words and
- some others which can also be identified by their
- relocations. However, not all conditional branches will
- have a relocation so we will only ignore words that
- 1) have a reloc, and 2) the reloc is not applicable to a
- conditional branch. The array rela_comb is built here
- for use in the EOP scan loop. */
- switch (r_type)
- {
- case R_PPC_ADDR14_BRNTAKEN:
- case R_PPC_REL14:
- case R_PPC_REL14_BRNTAKEN:
- /* We should check the instruction. */
- break;
- default:
- /* The word is not a conditional branch - ignore it. */
- rela_comb[comb_count++] = &internal_relocs[n];
- break;
- }
}
- if (comb_count > 1)
- qsort (rela_comb, (size_t) comb_count, sizeof (int),
- ppc_elf_sort_rela);
- }
+ isym = isymbuf + ELF32_R_SYM (irel->r_info);
+ if (isym->st_shndx == SHN_UNDEF)
+ continue; /* We can't do anthing with undefined symbols. */
+ else if (isym->st_shndx == SHN_ABS)
+ tsec = bfd_abs_section_ptr;
+ else if (isym->st_shndx == SHN_COMMON)
+ tsec = bfd_com_section_ptr;
+ else
+ tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
- /* Enumerate each EOP region that overlaps this section. */
- end_section = isec->vma + isec->_cooked_size;
- dot = end_page = (isec->vma | (PAGESIZE - 1)) + 1;
- dot -= link_info->mpc860c0;
- section_modified = FALSE;
- /* Increment the start position if this section begins in the
- middle of its first EOP region. */
- if (dot < isec->vma)
- dot = isec->vma;
- for (;
- dot < end_section;
- dot += PAGESIZE, end_page += PAGESIZE)
+ toff = isym->st_value;
+ }
+ else
{
- /* Check each word in this EOP region. */
- for (; dot < end_page; dot += 4)
+ /* Need dynamic symbol handling. */
+ unsigned long indx;
+ struct elf_link_hash_entry *h;
+
+ indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
+ h = elf_sym_hashes (abfd)[indx];
+
+ while (h->root.type == bfd_link_hash_indirect
+ || h->root.type == bfd_link_hash_warning)
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
+ if (r_type == R_PPC_PLTREL24)
{
- bfd_vma isec_offset;
- unsigned long insn;
- bfd_boolean skip, modified;
-
- /* Don't process this word if there is a relocation for it
- and the relocation indicates the word is not a
- conditional branch. */
- skip = FALSE;
- isec_offset = dot - isec->vma;
- for (; comb_curr<comb_count; ++comb_curr)
- {
- bfd_vma r_offset;
+ Elf_Internal_Sym *isym;
- r_offset = rela_comb[comb_curr]->r_offset;
- if (r_offset >= isec_offset)
- {
- if (r_offset == isec_offset) skip = TRUE;
- break;
- }
- }
- if (skip) continue;
-
- /* Check the current word for a problematic conditional
- branch. */
-#define BO0(insn) ((insn) & 0x02000000)
-#define BO2(insn) ((insn) & 0x00800000)
-#define BO4(insn) ((insn) & 0x00200000)
- insn = (unsigned long) bfd_get_32 (abfd, contents + isec_offset);
- modified = FALSE;
- if ((insn & 0xFc000000) == 0x40000000)
- {
- /* Instruction is BCx */
- if ((!BO0(insn) || !BO2(insn)) && !BO4(insn))
- {
- bfd_vma target;
-
- /* This branch is predicted as "normal".
- If this is a forward branch, it is problematic. */
- target = insn & 0x0000Fffc;
- target = (target ^ 0x8000) - 0x8000;
- if ((insn & 0x00000002) == 0)
- /* Convert to abs. */
- target += dot;
- if (target > dot)
- {
- /* Set the prediction bit. */
- insn |= 0x00200000;
- modified = TRUE;
- }
- }
- }
- else if ((insn & 0xFc00Fffe) == 0x4c000420)
- {
- /* Instruction is BCCTRx. */
- if ((!BO0(insn) || !BO2(insn)) && !BO4(insn))
- {
- /* This branch is predicted as not-taken.
- If this is a forward branch, it is problematic.
- Since we can't tell statically if it will branch
- forward, always set the prediction bit. */
- insn |= 0x00200000;
- modified = TRUE;
- }
- }
- else if ((insn & 0xFc00Fffe) == 0x4c000020)
+ if (h->plt.offset == (bfd_vma) -1
+ || ppc_info->plt == NULL)
{
- /* Instruction is BCLRx */
- if ((!BO0(insn) || !BO2(insn)) && !BO4(insn))
+
+ /* Read this BFD's local symbols. */
+ if (isymbuf == NULL)
{
- /* This branch is predicted as not-taken.
- If this is a forward branch, it is problematic.
- Since we can't tell statically if it will branch
- forward, always set the prediction bit. */
- insn |= 0x00200000;
- modified = TRUE;
+ isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+ if (isymbuf == NULL)
+ isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+ symtab_hdr->sh_info, 0,
+ NULL, NULL, NULL);
+ if (isymbuf == 0)
+ goto error_return;
}
+ isym = isymbuf + ELF32_R_SYM (irel->r_info);
+
+ if (isym->st_shndx == SHN_UNDEF)
+ /* We can't do anthing with undefined symbols. */
+ continue;
+ else if (isym->st_shndx == SHN_ABS)
+ tsec = bfd_abs_section_ptr;
+ else if (isym->st_shndx == SHN_COMMON)
+ tsec = bfd_com_section_ptr;
+ else
+ tsec = h->root.u.def.section;
+
+ toff = h->root.u.def.value;
}
-#undef BO0
-#undef BO2
-#undef BO4
- if (modified)
+ else
{
- bfd_put_32 (abfd, (bfd_vma) insn, contents + isec_offset);
- section_modified = TRUE;
+ tsec = ppc_info->plt;
+ toff = h->plt.offset;
}
}
+ else if (h->root.type == bfd_link_hash_undefined
+ || h->root.type == bfd_link_hash_undefweak)
+ continue;
+
+ else
+ {
+ tsec = h->root.u.def.section;
+ toff = h->root.u.def.value;
+ }
+ }
+
+ if (tsec->sec_info_type == ELF_INFO_TYPE_MERGE)
+ toff = _bfd_merged_section_offset (abfd, &tsec,
+ elf_section_data (tsec)->sec_info,
+ toff + irel->r_addend, 0);
+ else
+ toff += irel->r_addend;
+
+ symaddr = tsec->output_section->vma + tsec->output_offset + toff;
+
+ roff = irel->r_offset;
+
+ reladdr = (isec->output_section->vma
+ + isec->output_offset
+ + roff) & (bfd_vma) -4;
+
+ /* If the branch is in range, no need to do anything. */
+ max_branch_offset = 1 << 25;
+ if (r_type != R_PPC_REL24
+ && r_type != R_PPC_LOCAL24PC
+ && r_type != R_PPC_PLTREL24)
+ max_branch_offset = 1 << 15;
+
+ if ((bfd_vma) (symaddr - reladdr) + max_branch_offset
+ <= 2 * max_branch_offset)
+ continue;
+
+ /* If the branch and target are in the same section, you have
+ no hope. We'll error out later. */
+ if (tsec == isec)
+ continue;
+
+ /* Look for an existing fixup to this address. */
+ for (f = fixups; f ; f = f->next)
+ if (f->tsec == tsec && f->toff == toff)
+ break;
+
+ if (f == NULL)
+ {
+ size_t size;
+
+ if (link_info->shared
+ || tsec == ppc_info->plt
+ || r_type == R_PPC_LOCAL24PC)
+ {
+ size = sizeof (shared_stub_entry);
+ insn_offset = 16;
+ }
+ else
+ {
+ size = sizeof (stub_entry);
+ insn_offset = 4;
+ }
+
+ /* Resize the current section to make room for the new branch. */
+ trampoff = (isec->_cooked_size + 3) & (bfd_vma) - 4;
+ amt = trampoff + size;
+ contents = bfd_realloc (contents, amt);
+ if (contents == NULL)
+ abort ();
+
+ isec->_cooked_size = amt;
+
+ if (link_info->shared
+ || tsec == ppc_info->plt
+ || r_type == R_PPC_LOCAL24PC)
+ memcpy (contents + trampoff, shared_stub_entry, size);
+ else
+ memcpy (contents + trampoff, stub_entry, size);
+
+ /* Hijack the old relocation. Since we need two
+ relocations for this use a "composite" reloc. */
+ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+ R_PPC_RELAX32);
+ irel->r_offset = trampoff + insn_offset;
+
+ /* Record the fixup so we don't do it again this section. */
+ f = bfd_malloc (sizeof (*f));
+ f->next = fixups;
+ f->tsec = tsec;
+ f->toff = toff;
+ f->trampoff = trampoff;
+ fixups = f;
}
- if (section_modified)
+ else
{
- elf_section_data (isec)->this_hdr.contents = contents;
- free_contents = NULL;
+ /* Nop out the reloc, since we're finalizing things here. */
+ irel->r_info = ELF32_R_INFO (0, R_PPC_NONE);
}
+
+ /* Fix up the existing branch to hit the trampoline. Hope like
+ hell this doesn't overflow too. */
+ if (ppc_elf_install_value (abfd, contents + roff,
+ f->trampoff - (roff & (bfd_vma) -3) + 4,
+ r_type) != bfd_reloc_ok)
+ abort ();
+
+ changed_contents = TRUE;
+ changed_relocs = TRUE;
}
- if (rela_comb != NULL)
+ /* Clean up. */
+ while (fixups)
{
- free (rela_comb);
- rela_comb = NULL;
+ struct one_fixup *f = fixups;
+ fixups = fixups->next;
+ free (f);
}
-
- if (free_relocs != NULL)
+ if (isymbuf != NULL
+ && symtab_hdr->contents != (unsigned char *) isymbuf)
{
- free (free_relocs);
- free_relocs = NULL;
+ if (! link_info->keep_memory)
+ free (isymbuf);
+ else
+ {
+ /* Cache the symbols for elf_link_input_bfd. */
+ symtab_hdr->contents = (unsigned char *) isymbuf;
+ }
}
- if (free_contents != NULL)
+ if (contents != NULL
+ && elf_section_data (isec)->this_hdr.contents != contents)
{
- if (! link_info->keep_memory)
- free (free_contents);
+ if (!changed_contents && !link_info->keep_memory)
+ free (contents);
else
{
/* Cache the section contents for elf_link_input_bfd. */
elf_section_data (isec)->this_hdr.contents = contents;
}
- free_contents = NULL;
}
+ if (elf_section_data (isec)->relocs != internal_relocs)
+ {
+ if (!changed_relocs)
+ free (internal_relocs);
+ else
+ elf_section_data (isec)->relocs = internal_relocs;
+ }
+
+ *again = changed_contents || changed_relocs;
return TRUE;
error_return:
- if (rela_comb != NULL)
- free (rela_comb);
- if (free_relocs != NULL)
- free (free_relocs);
- if (free_contents != NULL)
- free (free_contents);
+ if (isymbuf != NULL && (unsigned char *) isymbuf != symtab_hdr->contents)
+ free (isymbuf);
+ if (contents != NULL
+ && elf_section_data (isec)->this_hdr.contents != contents)
+ free (contents);
+ if (internal_relocs != NULL
+ && elf_section_data (isec)->relocs != internal_relocs)
+ free (internal_relocs);
return FALSE;
}
static reloc_howto_type *
-ppc_elf_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+ppc_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
enum elf_ppc_reloc_type r;
+ /* Initialize howto table if not already done. */
if (!ppc_elf_howto_table[R_PPC_ADDR32])
- /* Initialize howto table if needed. */
ppc_elf_howto_init ();
- switch ((int) code)
+ switch (code)
{
default:
- return (reloc_howto_type *) NULL;
+ return NULL;
case BFD_RELOC_NONE: r = R_PPC_NONE; break;
case BFD_RELOC_32: r = R_PPC_ADDR32; break;
@@ -2008,19 +2132,18 @@ ppc_elf_reloc_type_lookup (abfd, code)
case BFD_RELOC_VTABLE_ENTRY: r = R_PPC_GNU_VTENTRY; break;
}
- return ppc_elf_howto_table[(int) r];
+ return ppc_elf_howto_table[r];
};
/* Set the howto pointer for a PowerPC ELF reloc. */
static void
-ppc_elf_info_to_howto (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr;
- Elf_Internal_Rela *dst;
+ppc_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *cache_ptr,
+ Elf_Internal_Rela *dst)
{
+ /* Initialize howto table if not already done. */
if (!ppc_elf_howto_table[R_PPC_ADDR32])
- /* Initialize howto table if needed. */
ppc_elf_howto_init ();
BFD_ASSERT (ELF32_R_TYPE (dst->r_info) < (unsigned int) R_PPC_max);
@@ -2030,15 +2153,13 @@ ppc_elf_info_to_howto (abfd, cache_ptr, dst)
/* Handle the R_PPC_ADDR16_HA reloc. */
static bfd_reloc_status_type
-ppc_elf_addr16_ha_reloc (abfd, reloc_entry, symbol, data, input_section,
- output_bfd, error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry;
- asymbol *symbol;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+ppc_elf_addr16_ha_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+ arelent *reloc_entry,
+ asymbol *symbol,
+ void *data ATTRIBUTE_UNUSED,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
bfd_vma relocation;
@@ -2066,15 +2187,13 @@ ppc_elf_addr16_ha_reloc (abfd, reloc_entry, symbol, data, input_section,
}
static bfd_reloc_status_type
-ppc_elf_unhandled_reloc (abfd, reloc_entry, symbol, data,
- input_section, output_bfd, error_message)
- bfd *abfd;
- arelent *reloc_entry;
- asymbol *symbol;
- PTR data;
- asection *input_section;
- bfd *output_bfd;
- char **error_message;
+ppc_elf_unhandled_reloc (bfd *abfd,
+ arelent *reloc_entry,
+ asymbol *symbol,
+ void *data,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message)
{
/* If this is a relocatable link (output_bfd test tells us), just
call the generic function. Any adjustment will be done at final
@@ -2086,7 +2205,7 @@ ppc_elf_unhandled_reloc (abfd, reloc_entry, symbol, data,
if (error_message != NULL)
{
static char buf[60];
- sprintf (buf, "generic linker can't handle %s",
+ sprintf (buf, _("generic linker can't handle %s"),
reloc_entry->howto->name);
*error_message = buf;
}
@@ -2097,8 +2216,7 @@ ppc_elf_unhandled_reloc (abfd, reloc_entry, symbol, data,
default is 64 bit. */
static bfd_boolean
-ppc_elf_object_p (abfd)
- bfd *abfd;
+ppc_elf_object_p (bfd *abfd)
{
if (abfd->arch_info->the_default && abfd->arch_info->bits_per_word == 64)
{
@@ -2117,9 +2235,7 @@ ppc_elf_object_p (abfd)
/* Function to set whether a module needs the -mrelocatable bit set. */
static bfd_boolean
-ppc_elf_set_private_flags (abfd, flags)
- bfd *abfd;
- flagword flags;
+ppc_elf_set_private_flags (bfd *abfd, flagword flags)
{
BFD_ASSERT (!elf_flags_init (abfd)
|| elf_elfheader (abfd)->e_flags == flags);
@@ -2133,9 +2249,7 @@ ppc_elf_set_private_flags (abfd, flags)
object file when linking. */
static bfd_boolean
-ppc_elf_merge_private_bfd_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+ppc_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
{
flagword old_flags;
flagword new_flags;
@@ -2173,7 +2287,8 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
{
error = TRUE;
(*_bfd_error_handler)
- (_("%s: compiled with -mrelocatable and linked with modules compiled normally"),
+ (_("%s: compiled with -mrelocatable and linked with "
+ "modules compiled normally"),
bfd_archive_filename (ibfd));
}
else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0
@@ -2181,7 +2296,8 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
{
error = TRUE;
(*_bfd_error_handler)
- (_("%s: compiled normally and linked with modules compiled with -mrelocatable"),
+ (_("%s: compiled normally and linked with "
+ "modules compiled with -mrelocatable"),
bfd_archive_filename (ibfd));
}
@@ -2208,7 +2324,8 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
{
error = TRUE;
(*_bfd_error_handler)
- (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
+ (_("%s: uses different e_flags (0x%lx) fields "
+ "than previous modules (0x%lx)"),
bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags);
}
@@ -2226,10 +2343,7 @@ ppc_elf_merge_private_bfd_data (ibfd, obfd)
is called when elfcode.h finds a section with an unknown type. */
static bfd_boolean
-ppc_elf_section_from_shdr (abfd, hdr, name)
- bfd *abfd;
- Elf_Internal_Shdr *hdr;
- const char *name;
+ppc_elf_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, const char *name)
{
asection *newsect;
flagword flags;
@@ -2252,10 +2366,9 @@ ppc_elf_section_from_shdr (abfd, hdr, name)
/* Set up any other section flags and such that may be necessary. */
static bfd_boolean
-ppc_elf_fake_sections (abfd, shdr, asect)
- bfd *abfd ATTRIBUTE_UNUSED;
- Elf_Internal_Shdr *shdr;
- asection *asect;
+ppc_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Shdr *shdr,
+ asection *asect)
{
if ((asect->flags & SEC_EXCLUDE) != 0)
shdr->sh_flags |= SHF_EXCLUDE;
@@ -2266,72 +2379,360 @@ ppc_elf_fake_sections (abfd, shdr, asect)
return TRUE;
}
+/* Find a linker generated pointer with a given addend and type. */
+
+static elf_linker_section_pointers_t *
+elf_find_pointer_linker_section
+ (elf_linker_section_pointers_t *linker_pointers,
+ bfd_vma addend,
+ elf_linker_section_t *lsect)
+{
+ for ( ; linker_pointers != NULL; linker_pointers = linker_pointers->next)
+ if (lsect == linker_pointers->lsect && addend == linker_pointers->addend)
+ return linker_pointers;
+
+ return NULL;
+}
+
+/* Allocate a pointer to live in a linker created section. */
+
+static bfd_boolean
+elf_create_pointer_linker_section (bfd *abfd,
+ struct bfd_link_info *info,
+ elf_linker_section_t *lsect,
+ struct elf_link_hash_entry *h,
+ const Elf_Internal_Rela *rel)
+{
+ elf_linker_section_pointers_t **ptr_linker_section_ptr = NULL;
+ elf_linker_section_pointers_t *linker_section_ptr;
+ unsigned long r_symndx = ELF32_R_SYM (rel->r_info);
+ bfd_size_type amt;
+
+ BFD_ASSERT (lsect != NULL);
+
+ /* Is this a global symbol? */
+ if (h != NULL)
+ {
+ struct ppc_elf_link_hash_entry *eh;
+
+ /* Has this symbol already been allocated? If so, our work is done. */
+ eh = (struct ppc_elf_link_hash_entry *) h;
+ if (elf_find_pointer_linker_section (eh->linker_section_pointer,
+ rel->r_addend,
+ lsect))
+ return TRUE;
+
+ ptr_linker_section_ptr = &eh->linker_section_pointer;
+ /* Make sure this symbol is output as a dynamic symbol. */
+ if (h->dynindx == -1)
+ {
+ if (! _bfd_elf_link_record_dynamic_symbol (info, h))
+ return FALSE;
+ }
+
+ if (lsect->rel_section)
+ lsect->rel_section->_raw_size += sizeof (Elf32_External_Rela);
+ }
+ else
+ {
+ /* Allocation of a pointer to a local symbol. */
+ elf_linker_section_pointers_t **ptr = elf_local_ptr_offsets (abfd);
+
+ /* Allocate a table to hold the local symbols if first time. */
+ if (!ptr)
+ {
+ unsigned int num_symbols = elf_tdata (abfd)->symtab_hdr.sh_info;
+
+ amt = num_symbols;
+ amt *= sizeof (elf_linker_section_pointers_t *);
+ ptr = bfd_zalloc (abfd, amt);
+
+ if (!ptr)
+ return FALSE;
+
+ elf_local_ptr_offsets (abfd) = ptr;
+ }
+
+ /* Has this symbol already been allocated? If so, our work is done. */
+ if (elf_find_pointer_linker_section (ptr[r_symndx],
+ rel->r_addend,
+ lsect))
+ return TRUE;
+
+ ptr_linker_section_ptr = &ptr[r_symndx];
+
+ if (info->shared)
+ {
+ /* If we are generating a shared object, we need to
+ output a R_<xxx>_RELATIVE reloc so that the
+ dynamic linker can adjust this GOT entry. */
+ BFD_ASSERT (lsect->rel_section != NULL);
+ lsect->rel_section->_raw_size += sizeof (Elf32_External_Rela);
+ }
+ }
+
+ /* Allocate space for a pointer in the linker section, and allocate
+ a new pointer record from internal memory. */
+ BFD_ASSERT (ptr_linker_section_ptr != NULL);
+ amt = sizeof (elf_linker_section_pointers_t);
+ linker_section_ptr = bfd_alloc (abfd, amt);
+
+ if (!linker_section_ptr)
+ return FALSE;
+
+ linker_section_ptr->next = *ptr_linker_section_ptr;
+ linker_section_ptr->addend = rel->r_addend;
+ linker_section_ptr->lsect = lsect;
+ linker_section_ptr->written_address_p = FALSE;
+ *ptr_linker_section_ptr = linker_section_ptr;
+
+ linker_section_ptr->offset = lsect->section->_raw_size;
+ lsect->section->_raw_size += 4;
+
+#ifdef DEBUG
+ fprintf (stderr,
+ "Create pointer in linker section %s, offset = %ld, section size = %ld\n",
+ lsect->name, (long) linker_section_ptr->offset,
+ (long) lsect->section->_raw_size);
+#endif
+
+ return TRUE;
+}
+
+#define bfd_put_ptr(BFD, VAL, ADDR) bfd_put_32 (BFD, VAL, ADDR)
+
+/* Fill in the address for a pointer generated in a linker section. */
+
+static bfd_vma
+elf_finish_pointer_linker_section (bfd *output_bfd,
+ bfd *input_bfd,
+ struct bfd_link_info *info,
+ elf_linker_section_t *lsect,
+ struct elf_link_hash_entry *h,
+ bfd_vma relocation,
+ const Elf_Internal_Rela *rel,
+ int relative_reloc)
+{
+ elf_linker_section_pointers_t *linker_section_ptr;
+
+ BFD_ASSERT (lsect != NULL);
+
+ if (h != NULL)
+ {
+ /* Handle global symbol. */
+ struct ppc_elf_link_hash_entry *eh;
+
+ eh = (struct ppc_elf_link_hash_entry *) h;
+ linker_section_ptr
+ = elf_find_pointer_linker_section (eh->linker_section_pointer,
+ rel->r_addend,
+ lsect);
+
+ BFD_ASSERT (linker_section_ptr != NULL);
+
+ if (! elf_hash_table (info)->dynamic_sections_created
+ || (info->shared
+ && info->symbolic
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
+ {
+ /* This is actually a static link, or it is a
+ -Bsymbolic link and the symbol is defined
+ locally. We must initialize this entry in the
+ global section.
+
+ When doing a dynamic link, we create a .rela.<xxx>
+ relocation entry to initialize the value. This
+ is done in the finish_dynamic_symbol routine. */
+ if (!linker_section_ptr->written_address_p)
+ {
+ linker_section_ptr->written_address_p = TRUE;
+ bfd_put_ptr (output_bfd,
+ relocation + linker_section_ptr->addend,
+ (lsect->section->contents
+ + linker_section_ptr->offset));
+ }
+ }
+ }
+ else
+ {
+ /* Handle local symbol. */
+ unsigned long r_symndx = ELF32_R_SYM (rel->r_info);
+ BFD_ASSERT (elf_local_ptr_offsets (input_bfd) != NULL);
+ BFD_ASSERT (elf_local_ptr_offsets (input_bfd)[r_symndx] != NULL);
+ linker_section_ptr = (elf_find_pointer_linker_section
+ (elf_local_ptr_offsets (input_bfd)[r_symndx],
+ rel->r_addend,
+ lsect));
+
+ BFD_ASSERT (linker_section_ptr != NULL);
+
+ /* Write out pointer if it hasn't been rewritten out before. */
+ if (!linker_section_ptr->written_address_p)
+ {
+ linker_section_ptr->written_address_p = TRUE;
+ bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend,
+ lsect->section->contents + linker_section_ptr->offset);
+
+ if (info->shared)
+ {
+ /* We need to generate a relative reloc for the dynamic
+ linker. */
+
+ asection *srel = lsect->rel_section;
+ Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL];
+ bfd_byte *erel;
+ const struct elf_backend_data *bed;
+ unsigned int i;
+
+ BFD_ASSERT (srel != NULL);
+
+ bed = get_elf_backend_data (output_bfd);
+ for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
+ {
+ outrel[i].r_offset = (lsect->section->output_section->vma
+ + lsect->section->output_offset
+ + linker_section_ptr->offset);
+ outrel[i].r_info = 0;
+ outrel[i].r_addend = 0;
+ }
+ outrel[0].r_info = ELF32_R_INFO (0, relative_reloc);
+ erel = lsect->section->contents;
+ erel += (elf_section_data (lsect->section)->rel_count++
+ * sizeof (Elf32_External_Rela));
+ bfd_elf32_swap_reloca_out (output_bfd, outrel, erel);
+ }
+ }
+ }
+
+ relocation = (lsect->section->output_offset
+ + linker_section_ptr->offset
+ - lsect->sym_offset);
+
+#ifdef DEBUG
+ fprintf (stderr,
+ "Finish pointer in linker section %s, offset = %ld (0x%lx)\n",
+ lsect->name, (long) relocation, (long) relocation);
+#endif
+
+ /* Subtract out the addend, because it will get added back in by the normal
+ processing. */
+ return relocation - linker_section_ptr->addend;
+}
+
/* Create a special linker section */
static elf_linker_section_t *
-ppc_elf_create_linker_section (abfd, info, which)
- bfd *abfd;
- struct bfd_link_info *info;
- enum elf_linker_section_enum which;
+ppc_elf_create_linker_section (bfd *abfd,
+ struct bfd_link_info *info,
+ enum elf_linker_section_enum which)
{
- bfd *dynobj = elf_hash_table (info)->dynobj;
elf_linker_section_t *lsect;
+ struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info);
+ asection *s;
+ bfd_size_type amt;
+ flagword flags;
+ const char *name;
+ const char *rel_name;
+ const char *sym_name;
+ bfd_vma sym_offset;
+
+ /* Both of these sections are (technically) created by the user
+ putting data in them, so they shouldn't be marked
+ SEC_LINKER_CREATED.
+
+ The linker creates them so it has somewhere to attach their
+ respective symbols. In fact, if they were empty it would
+ be OK to leave the symbol set to 0 (or any random number), because
+ the appropriate register should never be used. */
+ flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY;
+ sym_offset = 32768;
+
+ switch (which)
+ {
+ default:
+ abort ();
+ return NULL;
+
+ case LINKER_SECTION_SDATA: /* .sdata/.sbss section */
+ name = ".sdata";
+ rel_name = ".rela.sdata";
+ sym_name = "_SDA_BASE_";
+ break;
+
+ case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */
+ name = ".sdata2";
+ rel_name = ".rela.sdata2";
+ sym_name = "_SDA2_BASE_";
+ flags |= SEC_READONLY;
+ break;
+ }
+
+ /* Record the first bfd that needs the special sections. */
+ if (!htab->elf.dynobj)
+ htab->elf.dynobj = abfd;
- /* Record the first bfd section that needs the special section. */
- if (!dynobj)
- dynobj = elf_hash_table (info)->dynobj = abfd;
+ amt = sizeof (elf_linker_section_t);
+ lsect = bfd_zalloc (htab->elf.dynobj, amt);
- /* If this is the first time, create the section. */
- lsect = elf_linker_section (dynobj, which);
- if (!lsect)
+ lsect->sym_offset = sym_offset;
+
+ /* See if the sections already exist. */
+ s = bfd_get_section_by_name (htab->elf.dynobj, name);
+ if (s == NULL || (s->flags & flags) != flags)
{
- elf_linker_section_t defaults;
- static elf_linker_section_t zero_section;
-
- defaults = zero_section;
- defaults.which = which;
- defaults.hole_written_p = FALSE;
- defaults.alignment = 2;
-
- /* Both of these sections are (technically) created by the user
- putting data in them, so they shouldn't be marked
- SEC_LINKER_CREATED.
-
- The linker creates them so it has somewhere to attach their
- respective symbols. In fact, if they were empty it would
- be OK to leave the symbol set to 0 (or any random number), because
- the appropriate register should never be used. */
- defaults.flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY);
-
- switch (which)
- {
- default:
- (*_bfd_error_handler) (_("%s: unknown special linker type %d"),
- bfd_get_filename (abfd),
- (int) which);
+ s = bfd_make_section_anyway (htab->elf.dynobj, name);
+ if (s == NULL
+ || !bfd_set_section_flags (htab->elf.dynobj, s, flags))
+ return NULL;
+ }
+ lsect->section = s;
- bfd_set_error (bfd_error_bad_value);
- return (elf_linker_section_t *) 0;
-
- case LINKER_SECTION_SDATA: /* .sdata/.sbss section */
- defaults.name = ".sdata";
- defaults.rel_name = ".rela.sdata";
- defaults.bss_name = ".sbss";
- defaults.sym_name = "_SDA_BASE_";
- defaults.sym_offset = 32768;
- break;
+ if (bfd_get_section_alignment (htab->elf.dynobj, s) < 2
+ && !bfd_set_section_alignment (htab->elf.dynobj, s, 2))
+ return NULL;
- case LINKER_SECTION_SDATA2: /* .sdata2/.sbss2 section */
- defaults.name = ".sdata2";
- defaults.rel_name = ".rela.sdata2";
- defaults.bss_name = ".sbss2";
- defaults.sym_name = "_SDA2_BASE_";
- defaults.sym_offset = 32768;
- defaults.flags |= SEC_READONLY;
- break;
- }
+ s->_raw_size = align_power (s->_raw_size, 2);
+
+#ifdef DEBUG
+ fprintf (stderr, "Creating section %s, current size = %ld\n",
+ name, (long) s->_raw_size);
+#endif
+
+ if (sym_name)
+ {
+ struct elf_link_hash_entry *h;
+ struct bfd_link_hash_entry *bh;
+
+#ifdef DEBUG
+ fprintf (stderr, "Adding %s to section %s\n", sym_name, name);
+#endif
+ bh = bfd_link_hash_lookup (info->hash, sym_name,
+ FALSE, FALSE, FALSE);
+
+ if ((bh == NULL || bh->type == bfd_link_hash_undefined)
+ && !(_bfd_generic_link_add_one_symbol
+ (info, abfd, sym_name, BSF_GLOBAL, s, sym_offset, NULL,
+ FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+ return NULL;
+ h = (struct elf_link_hash_entry *) bh;
+
+ h->type = STT_OBJECT;
+ lsect->sym_hash = h;
- lsect = _bfd_elf_create_linker_section (abfd, info, which, &defaults);
+ if (info->shared
+ && ! _bfd_elf_link_record_dynamic_symbol (info, h))
+ return NULL;
+ }
+
+ if (info->shared)
+ {
+ s = bfd_make_section_anyway (htab->elf.dynobj, rel_name);
+ lsect->rel_section = s;
+ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED | SEC_READONLY);
+ if (s == NULL
+ || ! bfd_set_section_flags (htab->elf.dynobj, s, flags)
+ || ! bfd_set_section_alignment (htab->elf.dynobj, s, 2))
+ return NULL;
}
return lsect;
@@ -2341,8 +2742,7 @@ ppc_elf_create_linker_section (abfd, info, which)
need to bump up the number of section headers. */
static int
-ppc_elf_additional_program_headers (abfd)
- bfd *abfd;
+ppc_elf_additional_program_headers (bfd *abfd)
{
asection *s;
int ret;
@@ -2367,8 +2767,7 @@ ppc_elf_additional_program_headers (abfd)
/* Modify the segment map if needed. */
static bfd_boolean
-ppc_elf_modify_segment_map (abfd)
- bfd *abfd ATTRIBUTE_UNUSED;
+ppc_elf_modify_segment_map (bfd *abfd ATTRIBUTE_UNUSED)
{
return TRUE;
}
@@ -2376,9 +2775,7 @@ ppc_elf_modify_segment_map (abfd)
/* The powerpc .got has a blrl instruction in it. Mark it executable. */
static bfd_boolean
-ppc_elf_create_got (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+ppc_elf_create_got (bfd *abfd, struct bfd_link_info *info)
{
struct ppc_elf_link_hash_table *htab;
asection *s;
@@ -2414,15 +2811,16 @@ ppc_elf_create_got (abfd, info)
to create .dynbss and .rela.bss). */
static bfd_boolean
-ppc_elf_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+ppc_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
struct ppc_elf_link_hash_table *htab;
asection *s;
flagword flags;
- if (!ppc_elf_create_got (abfd, info))
+ htab = ppc_elf_hash_table (info);
+
+ if (htab->got == NULL
+ && !ppc_elf_create_got (abfd, info))
return FALSE;
if (!_bfd_elf_create_dynamic_sections (abfd, info))
@@ -2431,7 +2829,6 @@ ppc_elf_create_dynamic_sections (abfd, info)
flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
| SEC_LINKER_CREATED);
- htab = ppc_elf_hash_table (info);
htab->dynbss = bfd_get_section_by_name (abfd, ".dynbss");
htab->dynsbss = s = bfd_make_section (abfd, ".dynsbss");
if (s == NULL
@@ -2464,9 +2861,8 @@ ppc_elf_create_dynamic_sections (abfd, info)
understand. */
static bfd_boolean
-ppc_elf_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+ppc_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
struct ppc_elf_link_hash_table *htab;
asection *s;
@@ -2655,11 +3051,9 @@ ppc_elf_adjust_dynamic_symbol (info, h)
/* Allocate space in associated reloc sections for dynamic relocs. */
static bfd_boolean
-allocate_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
- struct bfd_link_info *info = (struct bfd_link_info *) inf;
+ struct bfd_link_info *info = inf;
struct ppc_elf_link_hash_entry *eh;
struct ppc_elf_link_hash_table *htab;
struct ppc_elf_dyn_relocs *p;
@@ -2804,7 +3198,7 @@ allocate_dynrelocs (h, inf)
generated via assembly. We want calls to protected symbols to
resolve directly to the function rather than going via the plt.
If people want function pointer comparisons to work as expected
- then they should avoid writing weird assembly. */
+ then they should avoid writing weird assembly. */
if (SYMBOL_CALLS_LOCAL (info, h))
{
struct ppc_elf_dyn_relocs **pp;
@@ -2869,9 +3263,7 @@ allocate_dynrelocs (h, inf)
/* Find any dynamic relocs that apply to read-only sections. */
static bfd_boolean
-readonly_dynrelocs (h, info)
- struct elf_link_hash_entry *h;
- PTR info;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *info)
{
struct ppc_elf_dyn_relocs *p;
@@ -2901,9 +3293,8 @@ readonly_dynrelocs (h, info)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-ppc_elf_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+ppc_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
struct ppc_elf_link_hash_table *htab;
asection *s;
@@ -3087,7 +3478,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
}
/* Allocate memory for the section contents. */
- s->contents = (bfd_byte *) bfd_zalloc (htab->elf.dynobj, s->_raw_size);
+ s->contents = bfd_zalloc (htab->elf.dynobj, s->_raw_size);
if (s->contents == NULL)
return FALSE;
}
@@ -3100,7 +3491,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
the .dynamic section. The DT_DEBUG entry is filled in by the
dynamic linker and used by the debugger. */
#define add_dynamic_entry(TAG, VAL) \
- bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL))
+ bfd_elf32_add_dynamic_entry (info, (TAG), (VAL))
if (info->executable)
{
@@ -3129,7 +3520,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
need a DT_TEXTREL entry. */
if ((info->flags & DF_TEXTREL) == 0)
elf_link_hash_traverse (elf_hash_table (info), readonly_dynrelocs,
- (PTR) info);
+ info);
if ((info->flags & DF_TEXTREL) != 0)
{
@@ -3143,11 +3534,10 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
}
static bfd_boolean
-update_local_sym_info (abfd, symtab_hdr, r_symndx, tls_type)
- bfd *abfd;
- Elf_Internal_Shdr *symtab_hdr;
- unsigned long r_symndx;
- int tls_type;
+update_local_sym_info (bfd *abfd,
+ Elf_Internal_Shdr *symtab_hdr,
+ unsigned long r_symndx,
+ int tls_type)
{
bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd);
char *local_got_tls_masks;
@@ -3157,7 +3547,7 @@ update_local_sym_info (abfd, symtab_hdr, r_symndx, tls_type)
bfd_size_type size = symtab_hdr->sh_info;
size *= sizeof (*local_got_refcounts) + sizeof (*local_got_tls_masks);
- local_got_refcounts = (bfd_signed_vma *) bfd_zalloc (abfd, size);
+ local_got_refcounts = bfd_zalloc (abfd, size);
if (local_got_refcounts == NULL)
return FALSE;
elf_local_got_refcounts (abfd) = local_got_refcounts;
@@ -3170,14 +3560,12 @@ update_local_sym_info (abfd, symtab_hdr, r_symndx, tls_type)
}
static void
-bad_shared_reloc (abfd, r_type)
- bfd *abfd;
- enum elf_ppc_reloc_type r_type;
+bad_shared_reloc (bfd *abfd, enum elf_ppc_reloc_type r_type)
{
(*_bfd_error_handler)
(_("%s: relocation %s cannot be used when making a shared object"),
bfd_archive_filename (abfd),
- ppc_elf_howto_table[(int) r_type]->name);
+ ppc_elf_howto_table[r_type]->name);
bfd_set_error (bfd_error_bad_value);
}
@@ -3186,11 +3574,10 @@ bad_shared_reloc (abfd, r_type)
table. */
static bfd_boolean
-ppc_elf_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+ppc_elf_check_relocs (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
struct ppc_elf_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -3199,7 +3586,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel_end;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#ifdef DEBUG
@@ -3208,26 +3595,25 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
bfd_archive_filename (abfd));
#endif
+ /* Initialize howto table if not already done. */
+ if (!ppc_elf_howto_table[R_PPC_ADDR32])
+ ppc_elf_howto_init ();
+
/* Create the linker generated sections all the time so that the
special symbols are created. */
-
htab = ppc_elf_hash_table (info);
if (htab->sdata == NULL)
{
- htab->sdata = elf_linker_section (abfd, LINKER_SECTION_SDATA);
- if (htab->sdata == NULL)
- htab->sdata = ppc_elf_create_linker_section (abfd, info,
- LINKER_SECTION_SDATA);
+ htab->sdata = ppc_elf_create_linker_section (abfd, info,
+ LINKER_SECTION_SDATA);
if (htab->sdata == NULL)
return FALSE;
}
if (htab->sdata2 == NULL)
{
- htab->sdata2 = elf_linker_section (abfd, LINKER_SECTION_SDATA2);
- if (htab->sdata2 == NULL)
- htab->sdata2 = ppc_elf_create_linker_section (abfd, info,
- LINKER_SECTION_SDATA2);
+ htab->sdata2 = ppc_elf_create_linker_section (abfd, info,
+ LINKER_SECTION_SDATA2);
if (htab->sdata2 == NULL)
return FALSE;
}
@@ -3264,7 +3650,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
}
}
- r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+ r_type = ELF32_R_TYPE (rel->r_info);
switch (r_type)
{
case R_PPC_GOT_TLSLD16:
@@ -3331,8 +3717,8 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
bad_shared_reloc (abfd, r_type);
return FALSE;
}
- if (!bfd_elf32_create_pointer_linker_section (abfd, info,
- htab->sdata, h, rel))
+ if (!elf_create_pointer_linker_section (abfd, info,
+ htab->sdata, h, rel))
return FALSE;
break;
@@ -3343,8 +3729,8 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
bad_shared_reloc (abfd, r_type);
return FALSE;
}
- if (!bfd_elf32_create_pointer_linker_section (abfd, info,
- htab->sdata2, h, rel))
+ if (!elf_create_pointer_linker_section (abfd, info,
+ htab->sdata2, h, rel))
return FALSE;
break;
@@ -3383,6 +3769,12 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
{
/* It does not make sense to have a procedure linkage
table entry for a local symbol. */
+ (*_bfd_error_handler) (_("%s(%s+0x%lx): %s reloc against "
+ "local symbol"),
+ bfd_archive_filename (abfd),
+ sec->name,
+ (long) rel->r_offset,
+ ppc_elf_howto_table[r_type]->name);
bfd_set_error (bfd_error_bad_value);
return FALSE;
}
@@ -3540,7 +3932,9 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
struct ppc_elf_dyn_relocs **head;
#ifdef DEBUG
- fprintf (stderr, "ppc_elf_check_relocs need to create relocation for %s\n",
+ fprintf (stderr,
+ "ppc_elf_check_relocs needs to "
+ "create relocation for %s\n",
(h && h->root.root.string
? h->root.root.string : "<unknown>"));
#endif
@@ -3604,8 +3998,7 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
p = *head;
if (p == NULL || p->sec != sec)
{
- p = ((struct ppc_elf_dyn_relocs *)
- bfd_alloc (htab->elf.dynobj, sizeof *p));
+ p = bfd_alloc (htab->elf.dynobj, sizeof *p);
if (p == NULL)
return FALSE;
p->next = *head;
@@ -3631,12 +4024,11 @@ ppc_elf_check_relocs (abfd, info, sec, relocs)
relocation. */
static asection *
-ppc_elf_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+ppc_elf_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -3671,11 +4063,10 @@ ppc_elf_gc_mark_hook (sec, info, rel, h, sym)
section being removed. */
static bfd_boolean
-ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+ppc_elf_gc_sweep_hook (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ const Elf_Internal_Rela *relocs)
{
struct ppc_elf_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -3715,7 +4106,7 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
}
}
- r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+ r_type = ELF32_R_TYPE (rel->r_info);
switch (r_type)
{
case R_PPC_GOT_TLSLD16:
@@ -3796,9 +4187,7 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, relocs)
/* Set htab->tls_sec and htab->tls_get_addr. */
bfd_boolean
-ppc_elf_tls_setup (obfd, info)
- bfd *obfd;
- struct bfd_link_info *info;
+ppc_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
{
asection *tls;
struct ppc_elf_link_hash_table *htab;
@@ -3820,15 +4209,14 @@ ppc_elf_tls_setup (obfd, info)
opportunities. */
bfd_boolean
-ppc_elf_tls_optimize (obfd, info)
- bfd *obfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+ppc_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
bfd *ibfd;
asection *sec;
struct ppc_elf_link_hash_table *htab;
- if (info->relocateable || info->shared)
+ if (info->relocatable || info->shared)
return TRUE;
htab = ppc_elf_hash_table (info);
@@ -3844,8 +4232,7 @@ ppc_elf_tls_optimize (obfd, info)
int expecting_tls_get_addr;
/* Read the relocations. */
- relstart = _bfd_elf_link_read_relocs (ibfd, sec, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
+ relstart = _bfd_elf_link_read_relocs (ibfd, sec, NULL, NULL,
info->keep_memory);
if (relstart == NULL)
return FALSE;
@@ -3878,7 +4265,7 @@ ppc_elf_tls_optimize (obfd, info)
|| !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC))
is_local = TRUE;
- r_type = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel->r_info);
+ r_type = ELF32_R_TYPE (rel->r_info);
switch (r_type)
{
case R_PPC_GOT_TLSLD16:
@@ -4015,55 +4402,36 @@ ppc_elf_tls_optimize (obfd, info)
file. We use it to put .comm items in .sbss, and not .bss. */
static bfd_boolean
-ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info;
- const Elf_Internal_Sym *sym;
- const char **namep ATTRIBUTE_UNUSED;
- flagword *flagsp ATTRIBUTE_UNUSED;
- asection **secp;
- bfd_vma *valp;
+ppc_elf_add_symbol_hook (bfd *abfd,
+ struct bfd_link_info *info,
+ const Elf_Internal_Sym *sym,
+ const char **namep ATTRIBUTE_UNUSED,
+ flagword *flagsp ATTRIBUTE_UNUSED,
+ asection **secp,
+ bfd_vma *valp)
{
if (sym->st_shndx == SHN_COMMON
- && !info->relocateable
+ && !info->relocatable
&& sym->st_size <= elf_gp_size (abfd)
- && info->hash->creator->flavour == bfd_target_elf_flavour)
+ && (info->hash->creator == abfd->xvec
+ || info->hash->creator == abfd->xvec->alternative_target))
{
/* Common symbols less than or equal to -G nn bytes are automatically
- put into .sdata. */
- elf_linker_section_t *sdata
- = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA);
+ put into .sbss. */
+ struct ppc_elf_link_hash_table *htab;
- if (!sdata->bss_section)
+ htab = ppc_elf_hash_table (info);
+ if (htab->sbss == NULL)
{
- bfd_size_type amt;
-
- /* We don't go through bfd_make_section, because we don't
- want to attach this common section to DYNOBJ. The linker
- will move the symbols to the appropriate output section
- when it defines common symbols. */
- amt = sizeof (asection);
- sdata->bss_section = (asection *) bfd_zalloc (abfd, amt);
- if (sdata->bss_section == NULL)
- return FALSE;
- sdata->bss_section->name = sdata->bss_name;
- sdata->bss_section->flags = SEC_IS_COMMON;
- sdata->bss_section->output_section = sdata->bss_section;
- amt = sizeof (asymbol);
- sdata->bss_section->symbol = (asymbol *) bfd_zalloc (abfd, amt);
- amt = sizeof (asymbol *);
- sdata->bss_section->symbol_ptr_ptr =
- (asymbol **) bfd_zalloc (abfd, amt);
- if (sdata->bss_section->symbol == NULL
- || sdata->bss_section->symbol_ptr_ptr == NULL)
+ flagword flags = SEC_IS_COMMON;
+
+ htab->sbss = bfd_make_section_anyway (abfd, ".sbss");
+ if (htab->sbss == NULL
+ || ! bfd_set_section_flags (abfd, htab->sbss, flags))
return FALSE;
- sdata->bss_section->symbol->name = sdata->bss_name;
- sdata->bss_section->symbol->flags = BSF_SECTION_SYM;
- sdata->bss_section->symbol->section = sdata->bss_section;
- *sdata->bss_section->symbol_ptr_ptr = sdata->bss_section->symbol;
}
- *secp = sdata->bss_section;
+ *secp = htab->sbss;
*valp = sym->st_size;
}
@@ -4074,11 +4442,10 @@ ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
dynamic sections here. */
static bfd_boolean
-ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+ppc_elf_finish_dynamic_symbol (bfd *output_bfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
struct ppc_elf_link_hash_table *htab;
@@ -4183,9 +4550,8 @@ ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
/* Finish up the dynamic sections. */
static bfd_boolean
-ppc_elf_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+ppc_elf_finish_dynamic_sections (bfd *output_bfd,
+ struct bfd_link_info *info)
{
asection *sdyn;
struct ppc_elf_link_hash_table *htab;
@@ -4241,10 +4607,10 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
if (htab->got)
{
unsigned char *contents = htab->got->contents;
- bfd_put_32 (output_bfd, (bfd_vma) 0x4e800021 /* blrl */, contents);
+ bfd_put_32 (output_bfd, 0x4e800021 /* blrl */, contents);
if (sdyn == NULL)
- bfd_put_32 (output_bfd, (bfd_vma) 0, contents + 4);
+ bfd_put_32 (output_bfd, 0, contents + 4);
else
bfd_put_32 (output_bfd,
sdyn->output_section->vma + sdyn->output_offset,
@@ -4265,7 +4631,7 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -4279,23 +4645,21 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
accordingly. */
static bfd_boolean
-ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+ppc_elf_relocate_section (bfd *output_bfd,
+ struct bfd_link_info *info,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -4309,18 +4673,19 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean ret = TRUE;
#ifdef DEBUG
- fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, %ld relocations%s\n",
+ fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, "
+ "%ld relocations%s\n",
bfd_archive_filename (input_bfd),
bfd_section_name(input_bfd, input_section),
(long) input_section->reloc_count,
- (info->relocateable) ? " (relocatable)" : "");
+ (info->relocatable) ? " (relocatable)" : "");
#endif
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
+ /* Initialize howto table if not already done. */
if (!ppc_elf_howto_table[R_PPC_ADDR32])
- /* Initialize howto table if needed. */
ppc_elf_howto_init ();
htab = ppc_elf_hash_table (info);
@@ -4346,13 +4711,14 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd_boolean warned;
unsigned int tls_type, tls_mask, tls_gd;
- r_type = (enum elf_ppc_reloc_type)ELF32_R_TYPE (rel->r_info);
- sym = (Elf_Internal_Sym *) 0;
- sec = (asection *) 0;
- h = (struct elf_link_hash_entry *) 0;
+ r_type = ELF32_R_TYPE (rel->r_info);
+ sym = NULL;
+ sec = NULL;
+ h = NULL;
unresolved_reloc = FALSE;
warned = FALSE;
r_symndx = ELF32_R_SYM (rel->r_info);
+
if (r_symndx < symtab_hdr->sh_info)
{
sym = local_syms + r_symndx;
@@ -4363,44 +4729,12 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
+
sym_name = h->root.root.string;
-
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- if (sec->output_section == NULL)
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd, input_section,
- rel->r_offset, (!info->shared
- || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- warned = TRUE;
- }
}
/* TLS optimizations. Replace instruction sequences and relocs
@@ -4542,8 +4876,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
/* The next instruction should be a call to
__tls_get_addr. Peek at the reloc to be sure. */
- r_type2
- = (enum elf_ppc_reloc_type) ELF32_R_TYPE (rel[1].r_info);
+ r_type2 = ELF32_R_TYPE (rel[1].r_info);
r_symndx2 = ELF32_R_SYM (rel[1].r_info);
if (r_symndx2 < symtab_hdr->sh_info
|| (r_type2 != R_PPC_REL14
@@ -4642,8 +4975,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
addend = rel->r_addend;
tls_type = 0;
howto = NULL;
- if ((unsigned) r_type < (unsigned) R_PPC_max)
- howto = ppc_elf_howto_table[(int) r_type];
+ if (r_type < R_PPC_max)
+ howto = ppc_elf_howto_table[r_type];
switch (r_type)
{
default:
@@ -4964,9 +5297,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
case R_PPC_REL14_BRNTAKEN:
/* If these relocations are not to a named symbol, they can be
handled right here, no need to bother the dynamic linker. */
- if (h == NULL
- || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
- || SYMBOL_REFERENCES_LOCAL (info, h))
+ if (SYMBOL_REFERENCES_LOCAL (info, h)
+ || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
break;
/* fall through */
@@ -4996,8 +5328,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak)
&& (MUST_BE_DYN_RELOC (r_type)
- || (h != NULL
- && !SYMBOL_CALLS_LOCAL (info, h))))
+ || !SYMBOL_CALLS_LOCAL (info, h)))
|| (ELIMINATE_COPY_RELOCS
&& !info->shared
&& (input_section->flags & SEC_ALLOC) != 0
@@ -5010,7 +5341,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
int skip;
#ifdef DEBUG
- fprintf (stderr, "ppc_elf_relocate_section need to create relocation for %s\n",
+ fprintf (stderr, "ppc_elf_relocate_section needs to "
+ "create relocation for %s\n",
(h && h->root.root.string
? h->root.root.string : "<unknown>"));
#endif
@@ -5051,8 +5383,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
if (skip)
memset (&outrel, 0, sizeof outrel);
- else if (h != NULL
- && !SYMBOL_REFERENCES_LOCAL (info, h))
+ else if (!SYMBOL_REFERENCES_LOCAL (info, h))
{
unresolved_reloc = FALSE;
outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
@@ -5089,11 +5420,9 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
BFD_ASSERT (indx > 0);
#ifdef DEBUG
if (indx <= 0)
- {
- printf ("indx=%d section=%s flags=%08x name=%s\n",
- indx, osec->name, osec->flags,
- h->root.root.string);
- }
+ printf ("indx=%d section=%s flags=%08x name=%s\n",
+ indx, osec->name, osec->flags,
+ h->root.root.string);
#endif
}
@@ -5121,24 +5450,62 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
break;
+ case R_PPC_RELAX32:
+ {
+ unsigned long r_symndx;
+ Elf_Internal_Sym *sym;
+ asection *sym_sec;
+ bfd_byte *hit_addr = 0;
+ bfd_vma value = 0;
+
+ r_symndx = ELF32_R_SYM (rel->r_info);
+
+ if (r_symndx < symtab_hdr->sh_info)
+ {
+ sym = local_syms + r_symndx;
+ sym_sec = local_sections[r_symndx];
+
+ value = _bfd_elf_rela_local_sym (output_bfd, sym, sym_sec, rel);
+ }
+ else
+ {
+ bfd_boolean warned;
+ bfd_boolean unresolved_reloc;
+
+ RELOC_FOR_GLOBAL_SYMBOL (h, elf_sym_hashes (input_bfd),
+ r_symndx, symtab_hdr,
+ value, sym_sec,
+ unresolved_reloc, info,
+ warned);
+ if (warned)
+ continue;
+ }
+ hit_addr = contents + rel->r_offset;
+ value += rel->r_addend;
+
+ r = ppc_elf_install_value (output_bfd, hit_addr, value, r_type);
+ if (r != bfd_reloc_ok)
+ break;
+ else
+ continue;
+ }
+
/* Indirect .sdata relocation. */
case R_PPC_EMB_SDAI16:
BFD_ASSERT (htab->sdata != NULL);
relocation
- = bfd_elf32_finish_pointer_linker_section (output_bfd, input_bfd,
- info, htab->sdata, h,
- relocation, rel,
- R_PPC_RELATIVE);
+ = elf_finish_pointer_linker_section (output_bfd, input_bfd, info,
+ htab->sdata, h, relocation,
+ rel, R_PPC_RELATIVE);
break;
/* Indirect .sdata2 relocation. */
case R_PPC_EMB_SDA2I16:
BFD_ASSERT (htab->sdata2 != NULL);
relocation
- = bfd_elf32_finish_pointer_linker_section (output_bfd, input_bfd,
- info, htab->sdata2, h,
- relocation, rel,
- R_PPC_RELATIVE);
+ = elf_finish_pointer_linker_section (output_bfd, input_bfd, info,
+ htab->sdata2, h, relocation,
+ rel, R_PPC_RELATIVE);
break;
/* Handle the TOC16 reloc. We want to use the offset within the .got
@@ -5146,7 +5513,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
an embedded ELF object, for which the .got section acts like the
AIX .toc section. */
case R_PPC_TOC16: /* phony GOT16 relocations */
- BFD_ASSERT (sec != (asection *) 0);
+ BFD_ASSERT (sec != NULL);
BFD_ASSERT (bfd_is_und_section (sec)
|| strcmp (bfd_get_section_name (abfd, sec), ".got") == 0
|| strcmp (bfd_get_section_name (abfd, sec), ".cgot") == 0)
@@ -5180,18 +5547,20 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
const char *name;
const struct elf_link_hash_entry *sh;
- BFD_ASSERT (sec != (asection *) 0);
+ BFD_ASSERT (sec != NULL);
name = bfd_get_section_name (abfd, sec->output_section);
if (! ((strncmp (name, ".sdata", 6) == 0
&& (name[6] == 0 || name[6] == '.'))
|| (strncmp (name, ".sbss", 5) == 0
&& (name[5] == 0 || name[5] == '.'))))
{
- (*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
- bfd_archive_filename (input_bfd),
- sym_name,
- howto->name,
- name);
+ (*_bfd_error_handler)
+ (_("%s: the target (%s) of a %s relocation is "
+ "in the wrong output section (%s)"),
+ bfd_archive_filename (input_bfd),
+ sym_name,
+ howto->name,
+ name);
}
sh = htab->sdata->sym_hash;
addend -= (sh->root.u.def.value
@@ -5206,16 +5575,18 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
const char *name;
const struct elf_link_hash_entry *sh;
- BFD_ASSERT (sec != (asection *) 0);
+ BFD_ASSERT (sec != NULL);
name = bfd_get_section_name (abfd, sec->output_section);
if (! (strncmp (name, ".sdata2", 7) == 0
|| strncmp (name, ".sbss2", 6) == 0))
{
- (*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
- bfd_archive_filename (input_bfd),
- sym_name,
- howto->name,
- name);
+ (*_bfd_error_handler)
+ (_("%s: the target (%s) of a %s relocation is "
+ "in the wrong output section (%s)"),
+ bfd_archive_filename (input_bfd),
+ sym_name,
+ howto->name,
+ name);
bfd_set_error (bfd_error_bad_value);
ret = FALSE;
@@ -5236,7 +5607,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
const struct elf_link_hash_entry *sh;
int reg;
- BFD_ASSERT (sec != (asection *) 0);
+ BFD_ASSERT (sec != NULL);
name = bfd_get_section_name (abfd, sec->output_section);
if (((strncmp (name, ".sdata", 6) == 0
&& (name[6] == 0 || name[6] == '.'))
@@ -5268,11 +5639,13 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
else
{
- (*_bfd_error_handler) (_("%s: the target (%s) of a %s relocation is in the wrong output section (%s)"),
- bfd_archive_filename (input_bfd),
- sym_name,
- howto->name,
- name);
+ (*_bfd_error_handler)
+ (_("%s: the target (%s) of a %s relocation is "
+ "in the wrong output section (%s)"),
+ bfd_archive_filename (input_bfd),
+ sym_name,
+ howto->name,
+ name);
bfd_set_error (bfd_error_bad_value);
ret = FALSE;
@@ -5293,7 +5666,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
case R_PPC_SECTOFF_LO:
case R_PPC_SECTOFF_HI:
case R_PPC_SECTOFF_HA:
- BFD_ASSERT (sec != (asection *) 0);
+ BFD_ASSERT (sec != NULL);
addend -= sec->output_section->vma;
break;
@@ -5362,7 +5735,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
#ifdef DEBUG
- fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, offset = %ld, addend = %ld\n",
+ fprintf (stderr, "\ttype = %s (%d), name = %s, symbol index = %ld, "
+ "offset = %ld, addend = %ld\n",
howto->name,
(int) r_type,
sym_name,
@@ -5443,10 +5817,9 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
static enum elf_reloc_type_class
-ppc_elf_reloc_type_class (rela)
- const Elf_Internal_Rela *rela;
+ppc_elf_reloc_type_class (const Elf_Internal_Rela *rela)
{
- switch ((int) ELF32_R_TYPE (rela->r_info))
+ switch (ELF32_R_TYPE (rela->r_info))
{
case R_PPC_RELATIVE:
return reloc_class_relative;
@@ -5464,9 +5837,7 @@ ppc_elf_reloc_type_class (rela)
/* Support for core dump NOTE sections. */
static bfd_boolean
-ppc_elf_grok_prstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+ppc_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
int offset;
unsigned int raw_size;
@@ -5496,9 +5867,7 @@ ppc_elf_grok_prstatus (abfd, note)
}
static bfd_boolean
-ppc_elf_grok_psinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+ppc_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
switch (note->descsz)
{
@@ -5535,31 +5904,17 @@ typedef struct apuinfo_list
}
apuinfo_list;
-static apuinfo_list * head;
-
-static void apuinfo_list_init PARAMS ((void));
-static void apuinfo_list_add PARAMS ((unsigned long));
-static unsigned apuinfo_list_length PARAMS ((void));
-static unsigned long apuinfo_list_element PARAMS ((unsigned long));
-static void apuinfo_list_finish PARAMS ((void));
-
-extern void ppc_elf_begin_write_processing
- PARAMS ((bfd *, struct bfd_link_info *));
-extern void ppc_elf_final_write_processing
- PARAMS ((bfd *, bfd_boolean));
-extern bfd_boolean ppc_elf_write_section
- PARAMS ((bfd *, asection *, bfd_byte *));
+static apuinfo_list *head;
static void
-apuinfo_list_init PARAMS ((void))
+apuinfo_list_init (void)
{
head = NULL;
}
static void
-apuinfo_list_add (value)
- unsigned long value;
+apuinfo_list_add (unsigned long value)
{
apuinfo_list *entry = head;
@@ -5580,7 +5935,7 @@ apuinfo_list_add (value)
}
static unsigned
-apuinfo_list_length PARAMS ((void))
+apuinfo_list_length (void)
{
apuinfo_list *entry;
unsigned long count;
@@ -5594,8 +5949,7 @@ apuinfo_list_length PARAMS ((void))
}
static inline unsigned long
-apuinfo_list_element (number)
- unsigned long number;
+apuinfo_list_element (unsigned long number)
{
apuinfo_list * entry;
@@ -5608,7 +5962,7 @@ apuinfo_list_element (number)
}
static void
-apuinfo_list_finish PARAMS ((void))
+apuinfo_list_finish (void)
{
apuinfo_list *entry;
@@ -5628,10 +5982,8 @@ apuinfo_list_finish PARAMS ((void))
/* Scan the input BFDs and create a linked list of
the APUinfo values that will need to be emitted. */
-void
-ppc_elf_begin_write_processing (abfd, link_info)
- bfd *abfd;
- struct bfd_link_info *link_info;
+static void
+ppc_elf_begin_write_processing (bfd *abfd, struct bfd_link_info *link_info)
{
bfd *ibfd;
asection *asec;
@@ -5721,9 +6073,9 @@ ppc_elf_begin_write_processing (abfd, link_info)
if (strcmp (ptr + 12, APUINFO_LABEL) != 0)
goto fail;
- /* Get the number of apuinfo entries. */
+ /* Get the number of bytes used for apuinfo entries. */
datum = bfd_get_32 (ibfd, ptr + 4);
- if ((datum * 4 + 20) != length)
+ if (datum + 20 != length)
goto fail;
/* Make sure that we do not run off the end of the section. */
@@ -5731,8 +6083,8 @@ ppc_elf_begin_write_processing (abfd, link_info)
goto fail;
/* Scan the apuinfo section, building a list of apuinfo numbers. */
- for (i = 0; i < datum; i++)
- apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4)));
+ for (i = 0; i < datum; i += 4)
+ apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + i));
/* Update the offset. */
offset += length;
@@ -5762,11 +6114,10 @@ ppc_elf_begin_write_processing (abfd, link_info)
/* Prevent the output section from accumulating the input sections'
contents. We have already stored this in our linked list structure. */
-bfd_boolean
-ppc_elf_write_section (abfd, asec, contents)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *asec;
- bfd_byte *contents ATTRIBUTE_UNUSED;
+static bfd_boolean
+ppc_elf_write_section (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *asec,
+ bfd_byte *contents ATTRIBUTE_UNUSED)
{
return (apuinfo_list_length ()
&& strcmp (asec->name, APUINFO_SECTION_NAME) == 0);
@@ -5775,10 +6126,8 @@ ppc_elf_write_section (abfd, asec, contents)
/* Finally we can generate the output section. */
-void
-ppc_elf_final_write_processing (abfd, linker)
- bfd *abfd;
- bfd_boolean linker ATTRIBUTE_UNUSED;
+static void
+ppc_elf_final_write_processing (bfd *abfd, bfd_boolean linker ATTRIBUTE_UNUSED)
{
bfd_byte *buffer;
asection *asec;
@@ -5808,7 +6157,7 @@ ppc_elf_final_write_processing (abfd, linker)
/* Create the apuinfo header. */
num_entries = apuinfo_list_length ();
bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer);
- bfd_put_32 (abfd, num_entries, buffer + 4);
+ bfd_put_32 (abfd, num_entries * 4, buffer + 4);
bfd_put_32 (abfd, 0x2, buffer + 8);
strcpy (buffer + 12, APUINFO_LABEL);
@@ -5829,6 +6178,35 @@ ppc_elf_final_write_processing (abfd, linker)
apuinfo_list_finish ();
}
+
+/* Add extra PPC sections -- Note, for now, make .sbss2 and
+ .PPC.EMB.sbss0 a normal section, and not a bss section so
+ that the linker doesn't crater when trying to make more than
+ 2 sections. */
+
+static struct bfd_elf_special_section const ppc_elf_special_sections[]=
+{
+ { ".tags", 0, NULL, 0,
+ SHT_ORDERED, SHF_ALLOC },
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { ".sdata2", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".sbss2", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".PPC.EMB.apuinfo", 0, NULL, 0,
+ SHT_NOTE, 0 },
+ { ".PPC.EMB.sdata0", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".PPC.EMB.sbss0", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { ".plt", 0, NULL, 0,
+ SHT_NOBITS, 0 },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
#define TARGET_LITTLE_SYM bfd_elf32_powerpcle_vec
#define TARGET_LITTLE_NAME "elf32-powerpcle"
@@ -5836,7 +6214,11 @@ ppc_elf_final_write_processing (abfd, linker)
#define TARGET_BIG_NAME "elf32-powerpc"
#define ELF_ARCH bfd_arch_powerpc
#define ELF_MACHINE_CODE EM_PPC
+#ifdef __QNXTARGET__
+#define ELF_MAXPAGESIZE 0x1000
+#else
#define ELF_MAXPAGESIZE 0x10000
+#endif
#define elf_info_to_howto ppc_elf_info_to_howto
#ifdef EM_CYGNUS_POWERPC
@@ -5855,6 +6237,7 @@ ppc_elf_final_write_processing (abfd, linker)
#define elf_backend_plt_header_size PLT_INITIAL_ENTRY_SIZE
#define elf_backend_rela_normal 1
+#define bfd_elf32_mkobject ppc_elf_mkobject
#define bfd_elf32_bfd_merge_private_bfd_data ppc_elf_merge_private_bfd_data
#define bfd_elf32_bfd_relax_section ppc_elf_relax_section
#define bfd_elf32_bfd_reloc_type_lookup ppc_elf_reloc_type_lookup
@@ -5883,5 +6266,6 @@ ppc_elf_final_write_processing (abfd, linker)
#define elf_backend_begin_write_processing ppc_elf_begin_write_processing
#define elf_backend_final_write_processing ppc_elf_final_write_processing
#define elf_backend_write_section ppc_elf_write_section
+#define elf_backend_special_sections ppc_elf_special_sections
#include "elf32-target.h"
diff --git a/bfd/elf32-ppc.h b/bfd/elf32-ppc.h
index ead9c94..72be813 100644
--- a/bfd/elf32-ppc.h
+++ b/bfd/elf32-ppc.h
@@ -17,7 +17,5 @@ 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. */
-bfd_boolean ppc_elf_tls_setup
- PARAMS ((bfd *, struct bfd_link_info *));
-bfd_boolean ppc_elf_tls_optimize
- PARAMS ((bfd *, struct bfd_link_info *));
+bfd_boolean ppc_elf_tls_setup (bfd *, struct bfd_link_info *);
+bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *);
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 97be1db..5b07ab0 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -40,7 +40,7 @@ static bfd_boolean create_got_section
static bfd_boolean elf_s390_create_dynamic_sections
PARAMS((bfd *, struct bfd_link_info *));
static void elf_s390_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static bfd_boolean elf_s390_check_relocs
PARAMS ((bfd *, struct bfd_link_info *, asection *,
@@ -88,6 +88,8 @@ static bfd_vma tpoff
PARAMS ((struct bfd_link_info *, bfd_vma));
static void invalid_tls_insn
PARAMS ((bfd *, asection *, Elf_Internal_Rela *));
+static bfd_reloc_status_type s390_elf_ldisp_reloc
+ PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
#include "elf/s390.h"
@@ -119,7 +121,7 @@ static reloc_howto_type elf_howto_table[] =
bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE),
HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE),
- HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont,
+ HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE),
HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE),
@@ -208,6 +210,14 @@ static reloc_howto_type elf_howto_table[] =
bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, 0xffffffff, FALSE),
HOWTO(R_390_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, 0xffffffff, FALSE),
+ HOWTO(R_390_20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_GOT20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_GOT20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_GOTPLT20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE),
};
/* GNU extension to record C++ vtable hierarchy. */
@@ -313,6 +323,14 @@ elf_s390_reloc_type_lookup (abfd, code)
return &elf_howto_table[(int) R_390_TLS_DTPOFF];
case BFD_RELOC_390_TLS_TPOFF:
return &elf_howto_table[(int) R_390_TLS_TPOFF];
+ case BFD_RELOC_390_20:
+ return &elf_howto_table[(int) R_390_20];
+ case BFD_RELOC_390_GOT20:
+ return &elf_howto_table[(int) R_390_GOT20];
+ case BFD_RELOC_390_GOTPLT20:
+ return &elf_howto_table[(int) R_390_GOTPLT20];
+ case BFD_RELOC_390_TLS_GOTIE20:
+ return &elf_howto_table[(int) R_390_TLS_GOTIE20];
case BFD_RELOC_VTABLE_INHERIT:
return &elf32_s390_vtinherit_howto;
case BFD_RELOC_VTABLE_ENTRY:
@@ -365,6 +383,59 @@ s390_tls_reloc (abfd, reloc_entry, symbol, data, input_section,
return bfd_reloc_ok;
}
+/* Handle the large displacement relocs. */
+static bfd_reloc_status_type
+s390_elf_ldisp_reloc (abfd, reloc_entry, symbol, data, input_section,
+ output_bfd, error_message)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ arelent *reloc_entry;
+ asymbol *symbol;
+ PTR data ATTRIBUTE_UNUSED;
+ asection *input_section;
+ bfd *output_bfd;
+ char **error_message ATTRIBUTE_UNUSED;
+{
+ reloc_howto_type *howto = reloc_entry->howto;
+ bfd_vma relocation;
+ bfd_vma insn;
+
+ if (output_bfd != (bfd *) NULL
+ && (symbol->flags & BSF_SECTION_SYM) == 0
+ && (! howto->partial_inplace
+ || reloc_entry->addend == 0))
+ {
+ reloc_entry->address += input_section->output_offset;
+ return bfd_reloc_ok;
+ }
+
+ if (output_bfd != NULL)
+ return bfd_reloc_continue;
+
+ if (reloc_entry->address > input_section->_cooked_size)
+ return bfd_reloc_outofrange;
+
+ relocation = (symbol->value
+ + symbol->section->output_section->vma
+ + symbol->section->output_offset);
+ relocation += reloc_entry->addend;
+ if (howto->pc_relative)
+ {
+ relocation -= (input_section->output_section->vma
+ + input_section->output_offset);
+ relocation -= reloc_entry->address;
+ }
+
+ insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
+ insn |= (relocation & 0xfff) << 16 | (relocation & 0xff000) >> 4;
+ bfd_put_32 (abfd, insn, (bfd_byte *) data + reloc_entry->address);
+
+ if ((bfd_signed_vma) relocation < - 0x80000
+ || (bfd_signed_vma) relocation > 0x7ffff)
+ return bfd_reloc_overflow;
+ else
+ return bfd_reloc_ok;
+}
+
static bfd_boolean
elf_s390_is_local_label_name (abfd, name)
bfd *abfd;
@@ -785,7 +856,7 @@ elf_s390_create_dynamic_sections (dynobj, info)
static void
elf_s390_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_link_hash_entry *dir, *ind;
{
struct elf_s390_link_hash_entry *edir, *eind;
@@ -895,7 +966,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
bfd_signed_vma *local_got_refcounts;
int tls_type, old_tls_type;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf_s390_hash_table (info);
@@ -936,14 +1007,17 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
{
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTENT:
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLTENT:
case R_390_TLS_GD32:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE32:
case R_390_TLS_IEENT:
case R_390_TLS_IE32:
@@ -1009,6 +1083,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLTENT:
/* This symbol requires either a procedure linkage table entry
@@ -1035,6 +1110,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_TLS_IE32:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE32:
case R_390_TLS_IEENT:
if (info->shared)
@@ -1043,6 +1119,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTENT:
case R_390_TLS_GD32:
@@ -1052,6 +1129,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
default:
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTENT:
tls_type = GOT_NORMAL;
@@ -1064,6 +1142,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
tls_type = GOT_TLS_IE;
break;
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_IEENT:
tls_type = GOT_TLS_IE_NLT;
break;
@@ -1390,10 +1469,12 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_TLS_GD32:
case R_390_TLS_IE32:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE32:
case R_390_TLS_IEENT:
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTOFF16:
case R_390_GOTOFF32:
@@ -1415,6 +1496,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_8:
case R_390_12:
case R_390_16:
+ case R_390_20:
case R_390_32:
case R_390_PC16:
case R_390_PC16DBL:
@@ -1438,6 +1520,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLTENT:
if (h != NULL)
@@ -2198,7 +2281,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf_s390_hash_table (info);
@@ -2248,51 +2331,19 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned ATTRIBUTE_UNUSED;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- {
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- relocation = 0;
- }
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
}
switch (r_type)
{
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLTENT:
/* There are three cases for a GOTPLT relocation. 1) The
@@ -2326,6 +2377,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTENT:
/* Relocation is to the entry for this symbol in the global
@@ -2732,6 +2784,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
break;
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_IEENT:
if (h == NULL)
{
@@ -2939,9 +2992,21 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
(long) rel->r_offset,
h->root.root.string);
- r = _bfd_final_link_relocate (howto, input_bfd, input_section,
- contents, rel->r_offset,
- relocation, rel->r_addend);
+ if (r_type == R_390_20
+ || r_type == R_390_GOT20
+ || r_type == R_390_GOTPLT20
+ || r_type == R_390_TLS_GOTIE20)
+ {
+ relocation += rel->r_addend;
+ relocation = (relocation&0xfff) << 8 | (relocation&0xff000) >> 12;
+ r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+ contents, rel->r_offset,
+ relocation, 0);
+ }
+ else
+ r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+ contents, rel->r_offset,
+ relocation, rel->r_addend);
if (r != bfd_reloc_ok)
{
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 2042c34..368bbca 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -27,90 +27,88 @@
#include "elf/sh.h"
static bfd_reloc_status_type sh_elf_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static bfd_reloc_status_type sh_elf_ignore_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static reloc_howto_type *sh_elf_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
+ (bfd *, bfd_reloc_code_real_type);
static void sh_elf_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
static bfd_boolean sh_elf_set_private_flags
- PARAMS ((bfd *, flagword));
+ (bfd *, flagword);
static bfd_boolean sh_elf_copy_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh_elf_merge_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh_elf_set_mach_from_flags
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean sh_elf_relax_section
- PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
static bfd_boolean sh_elf_relax_delete_bytes
- PARAMS ((bfd *, asection *, bfd_vma, int));
+ (bfd *, asection *, bfd_vma, int);
static bfd_boolean sh_elf_align_loads
- PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *));
+ (bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *);
static bfd_boolean sh_elf_swap_insns
- PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma));
+ (bfd *, asection *, void *, bfd_byte *, bfd_vma);
static bfd_boolean sh_elf_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
static bfd_byte *sh_elf_get_relocated_section_contents
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *, bfd_boolean, asymbol **));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+ bfd_boolean, asymbol **);
static void sh_elf_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
+ (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ struct elf_link_hash_entry *);
static int sh_elf_optimized_tls_reloc
- PARAMS ((struct bfd_link_info *, int, int));
+ (struct bfd_link_info *, int, int);
static bfd_boolean sh_elf_mkobject
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean sh_elf_object_p
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean sh_elf_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
static struct bfd_hash_entry *sh_elf_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
static struct bfd_link_hash_table *sh_elf_link_hash_table_create
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean sh_elf_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+ (struct bfd_link_info *, struct elf_link_hash_entry *);
static bfd_boolean sh_elf_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_boolean sh_elf_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *));
+ (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+ Elf_Internal_Sym *);
static bfd_boolean sh_elf_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_reloc_status_type sh_elf_reloc_loop
- PARAMS ((int, bfd *, asection *, bfd_byte *, bfd_vma, asection *,
- bfd_vma, bfd_vma));
+ (int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, bfd_vma,
+ bfd_vma);
static bfd_boolean create_got_section
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_boolean sh_elf_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_vma dtpoff_base
- PARAMS ((struct bfd_link_info *));
+ (struct bfd_link_info *);
static bfd_vma tpoff
- PARAMS ((struct bfd_link_info *, bfd_vma));
+ (struct bfd_link_info *, bfd_vma);
static asection * sh_elf_gc_mark_hook
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
+ (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+ struct elf_link_hash_entry *, Elf_Internal_Sym *);
static bfd_boolean sh_elf_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
static bfd_boolean readonly_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
static enum elf_reloc_type_class sh_elf_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
+ (const Elf_Internal_Rela *);
#ifdef INCLUDE_SHMEDIA
-inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *));
+inline static void movi_shori_putval (bfd *, unsigned long, char *);
#endif
static bfd_boolean elf32_shlin_grok_prstatus
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
+ (bfd *abfd, Elf_Internal_Note *note);
static bfd_boolean elf32_shlin_grok_psinfo
- PARAMS ((bfd *abfd, Elf_Internal_Note *note));
+ (bfd *abfd, Elf_Internal_Note *note);
/* The name of the dynamic interpreter. This is put in the .interp
section. */
@@ -1664,15 +1662,10 @@ static reloc_howto_type sh_elf_howto_table[] =
};
static bfd_reloc_status_type
-sh_elf_reloc_loop (r_type, input_bfd, input_section, contents, addr,
- symbol_section, start, end)
- int r_type ATTRIBUTE_UNUSED;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- bfd_vma addr;
- asection *symbol_section;
- bfd_vma start, end;
+sh_elf_reloc_loop (int r_type ATTRIBUTE_UNUSED, bfd *input_bfd,
+ asection *input_section, bfd_byte *contents,
+ bfd_vma addr, asection *symbol_section,
+ bfd_vma start, bfd_vma end)
{
static bfd_vma last_addr;
static asection *last_symbol_section;
@@ -1774,15 +1767,9 @@ sh_elf_reloc_loop (r_type, input_bfd, input_section, contents, addr,
function, and is almost certainly incorrect for other ELF targets. */
static bfd_reloc_status_type
-sh_elf_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
- error_message)
- bfd *abfd;
- arelent *reloc_entry;
- asymbol *symbol_in;
- PTR data;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+sh_elf_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in,
+ void *data, asection *input_section, bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
unsigned long insn;
bfd_vma sym_value;
@@ -1849,15 +1836,11 @@ sh_elf_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
which the linker should otherwise ignore. */
static bfd_reloc_status_type
-sh_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section,
- output_bfd, error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry;
- asymbol *symbol ATTRIBUTE_UNUSED;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+sh_elf_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry,
+ asymbol *symbol ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED, asection *input_section,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
if (output_bfd != NULL)
reloc_entry->address += input_section->output_offset;
@@ -1971,9 +1954,8 @@ static const struct elf_reloc_map sh_reloc_map[] =
corresponding SH ELf reloc. */
static reloc_howto_type *
-sh_elf_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+sh_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
unsigned int i;
@@ -1989,10 +1971,8 @@ sh_elf_reloc_type_lookup (abfd, code)
/* Given an ELF reloc, fill in the howto field of a relent. */
static void
-sh_elf_info_to_howto (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr;
- Elf_Internal_Rela *dst;
+sh_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
+ Elf_Internal_Rela *dst)
{
unsigned int r;
@@ -2019,11 +1999,8 @@ sh_elf_info_to_howto (abfd, cache_ptr, dst)
they come from enum elf_sh_reloc_type in include/elf/sh.h. */
static bfd_boolean
-sh_elf_relax_section (abfd, sec, link_info, again)
- bfd *abfd;
- asection *sec;
- struct bfd_link_info *link_info;
- bfd_boolean *again;
+sh_elf_relax_section (bfd *abfd, asection *sec,
+ struct bfd_link_info *link_info, bfd_boolean *again)
{
Elf_Internal_Shdr *symtab_hdr;
Elf_Internal_Rela *internal_relocs;
@@ -2034,7 +2011,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
*again = FALSE;
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0)
return TRUE;
@@ -2055,7 +2032,7 @@ sh_elf_relax_section (abfd, sec, link_info, again)
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
internal_relocs = (_bfd_elf_link_read_relocs
- (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL,
+ (abfd, sec, NULL, (Elf_Internal_Rela *) NULL,
link_info->keep_memory));
if (internal_relocs == NULL)
goto error_return;
@@ -2411,11 +2388,8 @@ sh_elf_relax_section (abfd, sec, link_info, again)
in coff-sh.c. */
static bfd_boolean
-sh_elf_relax_delete_bytes (abfd, sec, addr, count)
- bfd *abfd;
- asection *sec;
- bfd_vma addr;
- int count;
+sh_elf_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr,
+ int count)
{
Elf_Internal_Shdr *symtab_hdr;
unsigned int sec_shndx;
@@ -2737,8 +2711,7 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
FALSE, we should free them, if we are permitted to, when we
leave sh_coff_relax_section. */
internal_relocs = (_bfd_elf_link_read_relocs
- (abfd, o, (PTR) NULL, (Elf_Internal_Rela *) NULL,
- TRUE));
+ (abfd, o, NULL, (Elf_Internal_Rela *) NULL, TRUE));
if (internal_relocs == NULL)
return FALSE;
@@ -2892,12 +2865,10 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count)
boundaries. This is like sh_align_loads in coff-sh.c. */
static bfd_boolean
-sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *sec;
- Elf_Internal_Rela *internal_relocs;
- bfd_byte *contents ATTRIBUTE_UNUSED;
- bfd_boolean *pswapped;
+sh_elf_align_loads (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
+ Elf_Internal_Rela *internal_relocs,
+ bfd_byte *contents ATTRIBUTE_UNUSED,
+ bfd_boolean *pswapped)
{
Elf_Internal_Rela *irel, *irelend;
bfd_vma *labels = NULL;
@@ -2948,7 +2919,7 @@ sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped)
stop = sec->_cooked_size;
if (! _bfd_sh_align_load_span (abfd, sec, contents, sh_elf_swap_insns,
- (PTR) internal_relocs, &label,
+ internal_relocs, &label,
label_end, start, stop, pswapped))
goto error_return;
}
@@ -2966,12 +2937,8 @@ sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped)
/* Swap two SH instructions. This is like sh_swap_insns in coff-sh.c. */
static bfd_boolean
-sh_elf_swap_insns (abfd, sec, relocs, contents, addr)
- bfd *abfd;
- asection *sec;
- PTR relocs;
- bfd_byte *contents;
- bfd_vma addr;
+sh_elf_swap_insns (bfd *abfd, asection *sec, void *relocs,
+ bfd_byte *contents, bfd_vma addr)
{
Elf_Internal_Rela *internal_relocs = (Elf_Internal_Rela *) relocs;
unsigned short i1, i2;
@@ -3252,10 +3219,7 @@ static const bfd_byte *elf_sh_pic_plt_entry;
#define elf_sh_plt_reloc_offset(info) (info->shared ? 52 : 44)
inline static void
-movi_shori_putval (output_bfd, value, addr)
- bfd *output_bfd;
- unsigned long value;
- char *addr;
+movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr)
{
bfd_put_32 (output_bfd,
bfd_get_32 (output_bfd, addr)
@@ -3573,8 +3537,7 @@ struct sh_elf_obj_tdata
as the specific tdata. */
static bfd_boolean
-sh_elf_mkobject (abfd)
- bfd *abfd;
+sh_elf_mkobject (bfd *abfd)
{
bfd_size_type amt = sizeof (struct sh_elf_obj_tdata);
abfd->tdata.any = bfd_zalloc (abfd, amt);
@@ -3614,7 +3577,7 @@ struct elf_sh_link_hash_table
#define sh_elf_link_hash_traverse(table, func, info) \
(elf_link_hash_traverse \
(&(table)->root, \
- (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+ (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \
(info)))
/* Get the sh ELF linker hash table from a link_info structure. */
@@ -3625,10 +3588,9 @@ struct elf_sh_link_hash_table
/* Create an entry in an sh ELF linker hash table. */
static struct bfd_hash_entry *
-sh_elf_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+sh_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
struct elf_sh_link_hash_entry *ret =
(struct elf_sh_link_hash_entry *) entry;
@@ -3662,8 +3624,7 @@ sh_elf_link_hash_newfunc (entry, table, string)
/* Create an sh ELF linker hash table. */
static struct bfd_link_hash_table *
-sh_elf_link_hash_table_create (abfd)
- bfd *abfd;
+sh_elf_link_hash_table_create (bfd *abfd)
{
struct elf_sh_link_hash_table *ret;
bfd_size_type amt = sizeof (struct elf_sh_link_hash_table);
@@ -3696,9 +3657,7 @@ sh_elf_link_hash_table_create (abfd)
shortcuts to them in our hash table. */
static bfd_boolean
-create_got_section (dynobj, info)
- bfd *dynobj;
- struct bfd_link_info *info;
+create_got_section (bfd *dynobj, struct bfd_link_info *info)
{
struct elf_sh_link_hash_table *htab;
@@ -3728,14 +3687,12 @@ create_got_section (dynobj, info)
/* Create dynamic sections when linking against a dynamic object. */
static bfd_boolean
-sh_elf_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
struct elf_sh_link_hash_table *htab;
flagword flags, pltflags;
register asection *s;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
int ptralign = 0;
switch (bed->s->arch_size)
@@ -3754,6 +3711,8 @@ sh_elf_create_dynamic_sections (abfd, info)
}
htab = sh_elf_hash_table (info);
+ if (htab->root.dynamic_sections_created)
+ return TRUE;
/* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
.rel[a].bss sections. */
@@ -3805,7 +3764,8 @@ sh_elf_create_dynamic_sections (abfd, info)
|| ! bfd_set_section_alignment (abfd, s, ptralign))
return FALSE;
- if (! create_got_section (abfd, info))
+ if (htab->sgot == NULL
+ && !create_got_section (abfd, info))
return FALSE;
{
@@ -3824,6 +3784,8 @@ sh_elf_create_dynamic_sections (abfd, info)
relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6);
strcpy (relname, ".rela");
strcat (relname, secname);
+ if (bfd_get_section_by_name (abfd, secname))
+ continue;
s = bfd_make_section (abfd, relname);
if (s == NULL
|| ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
@@ -3880,21 +3842,19 @@ sh_elf_create_dynamic_sections (abfd, info)
understand. */
static bfd_boolean
-sh_elf_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+sh_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
struct elf_sh_link_hash_table *htab;
struct elf_sh_link_hash_entry *eh;
struct elf_sh_dyn_relocs *p;
- bfd *dynobj;
asection *s;
unsigned int power_of_two;
- dynobj = elf_hash_table (info)->dynobj;
+ htab = sh_elf_hash_table (info);
/* Make sure we know what is going on here. */
- BFD_ASSERT (dynobj != NULL
+ BFD_ASSERT (htab->root.dynobj != NULL
&& ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT)
|| h->weakdef != NULL
|| ((h->elf_link_hash_flags
@@ -3911,11 +3871,9 @@ sh_elf_adjust_dynamic_symbol (info, h)
|| (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
{
if (h->plt.refcount <= 0
- || (! info->shared
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
- && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
- && h->root.type != bfd_link_hash_undefweak
- && h->root.type != bfd_link_hash_undefined))
+ || SYMBOL_CALLS_LOCAL (info, h)
+ || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+ && h->root.type == bfd_link_hash_undefweak))
{
/* This case can occur if we saw a PLT reloc in an input
file, but the symbol was never referred to by a dynamic
@@ -3996,7 +3954,6 @@ sh_elf_adjust_dynamic_symbol (info, h)
both the dynamic object and the regular object will refer to the
same memory location for the variable. */
- htab = sh_elf_hash_table (info);
s = htab->sdynbss;
BFD_ASSERT (s != NULL);
@@ -4022,9 +3979,9 @@ sh_elf_adjust_dynamic_symbol (info, h)
/* Apply the required alignment. */
s->_raw_size = BFD_ALIGN (s->_raw_size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > bfd_get_section_alignment (dynobj, s))
+ if (power_of_two > bfd_get_section_alignment (htab->root.dynobj, s))
{
- if (! bfd_set_section_alignment (dynobj, s, power_of_two))
+ if (! bfd_set_section_alignment (htab->root.dynobj, s, power_of_two))
return FALSE;
}
@@ -4053,9 +4010,7 @@ sh_elf_adjust_dynamic_symbol (info, h)
dynamic relocs. */
static bfd_boolean
-allocate_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct bfd_link_info *info;
struct elf_sh_link_hash_table *htab;
@@ -4221,9 +4176,7 @@ allocate_dynrelocs (h, inf)
if (info->shared)
{
- if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0
- && ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0
- || info->symbolic))
+ if (SYMBOL_CALLS_LOCAL (info, h))
{
struct elf_sh_dyn_relocs **pp;
@@ -4290,9 +4243,7 @@ allocate_dynrelocs (h, inf)
/* Find any dynamic relocs that apply to read-only sections. */
static bfd_boolean
-readonly_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
{
struct elf_sh_link_hash_entry *eh;
struct elf_sh_dyn_relocs *p;
@@ -4321,9 +4272,8 @@ readonly_dynrelocs (h, inf)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-sh_elf_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
struct elf_sh_link_hash_table *htab;
bfd *dynobj;
@@ -4432,7 +4382,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
/* Allocate global sym .plt and .got entries, and space for global
sym dynamic relocs. */
- elf_link_hash_traverse (&htab->root, allocate_dynrelocs, (PTR) info);
+ elf_link_hash_traverse (&htab->root, allocate_dynrelocs, info);
/* We now have determined the sizes of the various dynamic sections.
Allocate memory for them. */
@@ -4526,8 +4476,7 @@ sh_elf_size_dynamic_sections (output_bfd, info)
/* If any dynamic relocs apply to a read-only section,
then we need a DT_TEXTREL entry. */
if ((info->flags & DF_TEXTREL) == 0)
- elf_link_hash_traverse (&htab->root, readonly_dynrelocs,
- (PTR) info);
+ elf_link_hash_traverse (&htab->root, readonly_dynrelocs, info);
if ((info->flags & DF_TEXTREL) != 0)
{
@@ -4544,16 +4493,11 @@ sh_elf_size_dynamic_sections (output_bfd, info)
/* Relocate an SH ELF section. */
static bfd_boolean
-sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
+ bfd *input_bfd, asection *input_section,
+ bfd_byte *contents, Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
struct elf_sh_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -4650,9 +4594,9 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
(info,
_("Unexpected STO_SH5_ISA32 on local symbol is not handled"),
input_bfd, input_section, rel->r_offset));
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -4719,10 +4663,12 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
+ /* FIXME: Ought to make use of the RELOC_FOR_GLOBAL_SYMBOL macro. */
+
/* Section symbol are never (?) placed in the hash table, so
we can just ignore hash relocations when creating a
- relocateable object file. */
- if (info->relocateable)
+ relocatable object file. */
+ if (info->relocatable)
continue;
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
@@ -4820,17 +4766,18 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
- else if (info->shared
- && ! info->no_undefined
+ else if (! info->executable
+ && info->unresolved_syms_in_objects == RM_IGNORE
&& ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
relocation = 0;
else
{
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
+ if (! info->callbacks->undefined_symbol
+ (info, h->root.root.string, input_bfd,
+ input_section, rel->r_offset,
+ ((info->shared && info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR)
+ || (!info->shared && info->unresolved_syms_in_objects == RM_GENERATE_ERROR)
+ || ELF_ST_VISIBILITY (h->other))))
return FALSE;
relocation = 0;
}
@@ -4905,11 +4852,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
&& r_symndx != 0
&& (input_section->flags & SEC_ALLOC) != 0
&& (r_type != R_SH_REL32
- || (h != NULL
- && h->dynindx != -1
- && (! info->symbolic
- || (h->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0))))
+ || !SYMBOL_CALLS_LOCAL (info, h)))
{
Elf_Internal_Rela outrel;
bfd_byte *loc;
@@ -5068,9 +5011,7 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
dyn = htab->root.dynamic_sections_created;
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|| (info->shared
- && (info->symbolic || h->dynindx == -1
- || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ && SYMBOL_REFERENCES_LOCAL (info, h))
|| (ELF_ST_VISIBILITY (h->other)
&& h->root.type == bfd_link_hash_undefweak))
{
@@ -5717,14 +5658,12 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section,
which uses sh_elf_relocate_section. */
static bfd_byte *
-sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
- bfd *output_bfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- bfd_byte *data;
- bfd_boolean relocateable;
- asymbol **symbols;
+sh_elf_get_relocated_section_contents (bfd *output_bfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols)
{
Elf_Internal_Shdr *symtab_hdr;
asection *input_section = link_order->u.indirect.section;
@@ -5735,11 +5674,11 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -5755,7 +5694,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
bfd_size_type amt;
internal_relocs = (_bfd_elf_link_read_relocs
- (input_bfd, input_section, (PTR) NULL,
+ (input_bfd, input_section, NULL,
(Elf_Internal_Rela *) NULL, FALSE));
if (internal_relocs == NULL)
goto error_return;
@@ -5827,8 +5766,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order,
This is PT_TLS segment p_vaddr. */
static bfd_vma
-dtpoff_base (info)
- struct bfd_link_info *info;
+dtpoff_base (struct bfd_link_info *info)
{
/* If tls_segment is NULL, we should have signalled an error already. */
if (elf_hash_table (info)->tls_segment == NULL)
@@ -5839,9 +5777,7 @@ dtpoff_base (info)
/* Return the relocation value for R_SH_TLS_TPOFF32.. */
static bfd_vma
-tpoff (info, address)
- struct bfd_link_info *info;
- bfd_vma address;
+tpoff (struct bfd_link_info *info, bfd_vma address)
{
/* If tls_segment is NULL, we should have signalled an error already. */
if (elf_hash_table (info)->tls_segment == NULL)
@@ -5852,12 +5788,10 @@ tpoff (info, address)
}
static asection *
-sh_elf_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+sh_elf_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel, struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -5896,11 +5830,8 @@ sh_elf_gc_mark_hook (sec, info, rel, h, sym)
/* Update the got entry reference counts for the section being removed. */
static bfd_boolean
-sh_elf_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+sh_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
+ asection *sec, const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -6083,9 +6014,9 @@ sh_elf_gc_sweep_hook (abfd, info, sec, relocs)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-sh_elf_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+sh_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct elf_sh_link_hash_entry *edir, *eind;
#ifdef INCLUDE_SHMEDIA
@@ -6161,10 +6092,8 @@ sh_elf_copy_indirect_symbol (bed, dir, ind)
}
static int
-sh_elf_optimized_tls_reloc (info, r_type, is_local)
- struct bfd_link_info *info;
- int r_type;
- int is_local;
+sh_elf_optimized_tls_reloc (struct bfd_link_info *info, int r_type,
+ int is_local)
{
if (info->shared)
return r_type;
@@ -6188,18 +6117,14 @@ sh_elf_optimized_tls_reloc (info, r_type, is_local)
virtual table relocs for gc. */
static bfd_boolean
-sh_elf_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+sh_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
+ const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
struct elf_sh_link_hash_table *htab;
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- bfd *dynobj;
bfd_vma *local_got_offsets;
asection *sgot;
asection *srelgot;
@@ -6211,7 +6136,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
srelgot = NULL;
sreloc = NULL;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -6221,7 +6146,6 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
sym_hashes_end -= symtab_hdr->sh_info;
htab = sh_elf_hash_table (info);
- dynobj = htab->root.dynobj;
local_got_offsets = elf_local_got_offsets (abfd);
rel_end = relocs + sec->reloc_count;
@@ -6295,10 +6219,13 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
case R_SH_TLS_GD_32:
case R_SH_TLS_LD_32:
case R_SH_TLS_IE_32:
- if (dynobj == NULL)
- htab->root.dynobj = dynobj = abfd;
- if (! create_got_section (dynobj, info))
- return FALSE;
+ if (htab->sgot == NULL)
+ {
+ if (htab->root.dynobj == NULL)
+ htab->root.dynobj = abfd;
+ if (!create_got_section (htab->root.dynobj, info))
+ return FALSE;
+ }
break;
default:
@@ -6535,8 +6462,8 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
struct elf_sh_dyn_relocs *p;
struct elf_sh_dyn_relocs **head;
- if (dynobj == NULL)
- htab->root.dynobj = dynobj = abfd;
+ if (htab->root.dynobj == NULL)
+ htab->root.dynobj = abfd;
/* When creating a shared object, we must copy these
reloc types into the output file. We create a reloc
@@ -6556,23 +6483,23 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
&& strcmp (bfd_get_section_name (abfd, sec),
name + 5) == 0);
- sreloc = bfd_get_section_by_name (dynobj, name);
+ sreloc = bfd_get_section_by_name (htab->root.dynobj, name);
if (sreloc == NULL)
{
flagword flags;
- sreloc = bfd_make_section (dynobj, name);
+ sreloc = bfd_make_section (htab->root.dynobj, name);
flags = (SEC_HAS_CONTENTS | SEC_READONLY
| SEC_IN_MEMORY | SEC_LINKER_CREATED);
if ((sec->flags & SEC_ALLOC) != 0)
flags |= SEC_ALLOC | SEC_LOAD;
if (sreloc == NULL
- || ! bfd_set_section_flags (dynobj, sreloc, flags)
- || ! bfd_set_section_alignment (dynobj, sreloc, 2))
+ || ! bfd_set_section_flags (htab->root.dynobj,
+ sreloc, flags)
+ || ! bfd_set_section_alignment (htab->root.dynobj,
+ sreloc, 2))
return FALSE;
}
- if (sec->flags & SEC_READONLY)
- info->flags |= DF_TEXTREL;
elf_section_data (sec)->sreloc = sreloc;
}
@@ -6598,7 +6525,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
if (p == NULL || p->sec != sec)
{
bfd_size_type amt = sizeof (*p);
- p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt));
+ p = bfd_alloc (htab->root.dynobj, amt);
if (p == NULL)
return FALSE;
p->next = *head;
@@ -6639,8 +6566,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs)
#ifndef sh_elf_set_mach_from_flags
static bfd_boolean
-sh_elf_set_mach_from_flags (abfd)
- bfd *abfd;
+sh_elf_set_mach_from_flags (bfd *abfd)
{
flagword flags = elf_elfheader (abfd)->e_flags;
@@ -6682,9 +6608,7 @@ sh_elf_set_mach_from_flags (abfd)
/* Function to keep SH specific file flags. */
static bfd_boolean
-sh_elf_set_private_flags (abfd, flags)
- bfd *abfd;
- flagword flags;
+sh_elf_set_private_flags (bfd *abfd, flagword flags)
{
BFD_ASSERT (! elf_flags_init (abfd)
|| elf_elfheader (abfd)->e_flags == flags);
@@ -6699,9 +6623,7 @@ sh_elf_set_private_flags (abfd, flags)
/* Copy backend specific data from one object module to another */
static bfd_boolean
-sh_elf_copy_private_data (ibfd, obfd)
- bfd * ibfd;
- bfd * obfd;
+sh_elf_copy_private_data (bfd * ibfd, bfd * obfd)
{
if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@@ -6716,9 +6638,7 @@ sh_elf_copy_private_data (ibfd, obfd)
together, and for linking sh-dsp with sh3e / sh4 objects. */
static bfd_boolean
-sh_elf_merge_private_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+sh_elf_merge_private_data (bfd *ibfd, bfd *obfd)
{
flagword old_flags, new_flags;
@@ -6759,8 +6679,7 @@ sh_elf_merge_private_data (ibfd, obfd)
here. */
static bfd_boolean
-sh_elf_object_p (abfd)
- bfd *abfd;
+sh_elf_object_p (bfd *abfd)
{
struct sh_elf_obj_tdata *new_tdata;
bfd_size_type amt = sizeof (struct sh_elf_obj_tdata);
@@ -6781,17 +6700,13 @@ sh_elf_object_p (abfd)
dynamic sections here. */
static bfd_boolean
-sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+sh_elf_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
struct elf_sh_link_hash_table *htab;
- bfd *dynobj;
htab = sh_elf_hash_table (info);
- dynobj = htab->root.dynobj;
if (h->plt.offset != (bfd_vma) -1)
{
@@ -6959,10 +6874,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
The entry in the global offset table will already have been
initialized in the relocate_section function. */
if (info->shared
- && (info->symbolic
- || h->dynindx == -1
- || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ && SYMBOL_REFERENCES_LOCAL (info, h))
{
rel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE);
rel.r_addend = (h->root.u.def.value
@@ -7010,10 +6922,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
The entry in the global offset table will already have been
initialized in the relocate_section function. */
if (info->shared
- && (info->symbolic
- || h->dynindx == -1
- || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ && SYMBOL_REFERENCES_LOCAL (info, h))
{
rel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE);
rel.r_addend = (h->root.u.def.value
@@ -7071,20 +6980,15 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
/* Finish up the dynamic sections. */
static bfd_boolean
-sh_elf_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+sh_elf_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
{
struct elf_sh_link_hash_table *htab;
- bfd *dynobj;
asection *sgot;
asection *sdyn;
htab = sh_elf_hash_table (info);
- dynobj = htab->root.dynobj;
-
sgot = htab->sgotplt;
- sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
+ sdyn = bfd_get_section_by_name (htab->root.dynobj, ".dynamic");
if (htab->root.dynamic_sections_created)
{
@@ -7103,7 +7007,7 @@ sh_elf_finish_dynamic_sections (output_bfd, info)
const char *name;
#endif
- bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+ bfd_elf32_swap_dyn_in (htab->root.dynobj, dyncon, &dyn);
switch (dyn.d_tag)
{
@@ -7243,8 +7147,7 @@ sh_elf_finish_dynamic_sections (output_bfd, info)
}
static enum elf_reloc_type_class
-sh_elf_reloc_type_class (rela)
- const Elf_Internal_Rela *rela;
+sh_elf_reloc_type_class (const Elf_Internal_Rela *rela)
{
switch ((int) ELF32_R_TYPE (rela->r_info))
{
@@ -7261,9 +7164,7 @@ sh_elf_reloc_type_class (rela)
/* Support for Linux core dump NOTE sections. */
static bfd_boolean
-elf32_shlin_grok_prstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf32_shlin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
int offset;
unsigned int raw_size;
@@ -7293,9 +7194,7 @@ elf32_shlin_grok_prstatus (abfd, note)
}
static bfd_boolean
-elf32_shlin_grok_psinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf32_shlin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
switch (note->descsz)
{
@@ -7330,7 +7229,11 @@ elf32_shlin_grok_psinfo (abfd, note)
#define TARGET_LITTLE_NAME "elf32-shl"
#define ELF_ARCH bfd_arch_sh
#define ELF_MACHINE_CODE EM_SH
-#define ELF_MAXPAGESIZE 128
+#ifdef __QNXTARGET__
+#define ELF_MAXPAGESIZE 0x1000
+#else
+#define ELF_MAXPAGESIZE 0x80
+#endif
#define elf_symbol_leading_char '_'
diff --git a/bfd/elf32-sh64-com.c b/bfd/elf32-sh64-com.c
index b7ae364..4c219e8 100644
--- a/bfd/elf32-sh64-com.c
+++ b/bfd/elf32-sh64-com.c
@@ -28,15 +28,13 @@
#include "../opcodes/sh64-opc.h"
static bfd_boolean sh64_address_in_cranges
- PARAMS ((asection *cranges, bfd_vma, sh64_elf_crange *));
+ (asection *cranges, bfd_vma, sh64_elf_crange *);
/* Ordering functions of a crange, for the qsort and bsearch calls and for
different endianness. */
int
-_bfd_sh64_crange_qsort_cmpb (p1, p2)
- const PTR p1;
- const PTR p2;
+_bfd_sh64_crange_qsort_cmpb (const void *p1, const void *p2)
{
bfd_vma a1 = bfd_getb32 (p1);
bfd_vma a2 = bfd_getb32 (p2);
@@ -49,9 +47,7 @@ _bfd_sh64_crange_qsort_cmpb (p1, p2)
}
int
-_bfd_sh64_crange_qsort_cmpl (p1, p2)
- const PTR p1;
- const PTR p2;
+_bfd_sh64_crange_qsort_cmpl (const void *p1, const void *p2)
{
bfd_vma a1 = (bfd_vma) bfd_getl32 (p1);
bfd_vma a2 = (bfd_vma) bfd_getl32 (p2);
@@ -64,9 +60,7 @@ _bfd_sh64_crange_qsort_cmpl (p1, p2)
}
int
-_bfd_sh64_crange_bsearch_cmpb (p1, p2)
- const PTR p1;
- const PTR p2;
+_bfd_sh64_crange_bsearch_cmpb (const void *p1, const void *p2)
{
bfd_vma a1 = *(bfd_vma *) p1;
bfd_vma a2 = (bfd_vma) bfd_getb32 (p2);
@@ -81,9 +75,7 @@ _bfd_sh64_crange_bsearch_cmpb (p1, p2)
}
int
-_bfd_sh64_crange_bsearch_cmpl (p1, p2)
- const PTR p1;
- const PTR p2;
+_bfd_sh64_crange_bsearch_cmpl (const void *p1, const void *p2)
{
bfd_vma a1 = *(bfd_vma *) p1;
bfd_vma a2 = (bfd_vma) bfd_getl32 (p2);
@@ -102,10 +94,8 @@ _bfd_sh64_crange_bsearch_cmpl (p1, p2)
filled into RANGEP if non-NULL. */
static bfd_boolean
-sh64_address_in_cranges (cranges, addr, rangep)
- asection *cranges;
- bfd_vma addr;
- sh64_elf_crange *rangep;
+sh64_address_in_cranges (asection *cranges, bfd_vma addr,
+ sh64_elf_crange *rangep)
{
bfd_byte *cranges_contents;
bfd_byte *found_rangep;
@@ -200,10 +190,7 @@ error_return:
*RANGEP if it's non-NULL. */
enum sh64_elf_cr_type
-sh64_get_contents_type (sec, addr, rangep)
- asection *sec;
- bfd_vma addr;
- sh64_elf_crange *rangep;
+sh64_get_contents_type (asection *sec, bfd_vma addr, sh64_elf_crange *rangep)
{
asection *cranges;
@@ -256,9 +243,7 @@ sh64_get_contents_type (sec, addr, rangep)
/* This is a simpler exported interface for the benefit of gdb et al. */
bfd_boolean
-sh64_address_is_shmedia (sec, addr)
- asection *sec;
- bfd_vma addr;
+sh64_address_is_shmedia (asection *sec, bfd_vma addr)
{
sh64_elf_crange dummy;
return sh64_get_contents_type (sec, addr, &dummy) == CRT_SH5_ISA32;
diff --git a/bfd/elf32-sh64.c b/bfd/elf32-sh64.c
index 1a2acc1..396fedf 100644
--- a/bfd/elf32-sh64.c
+++ b/bfd/elf32-sh64.c
@@ -39,36 +39,36 @@ struct sh64_find_section_vma_data
};
static bfd_boolean sh64_elf_new_section_hook
- PARAMS ((bfd *, asection *));
+ (bfd *, asection *);
static bfd_boolean sh64_elf_copy_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh64_elf_merge_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh64_elf_fake_sections
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+ (bfd *, Elf_Internal_Shdr *, asection *);
static bfd_boolean sh64_elf_set_private_flags
- PARAMS ((bfd *, flagword));
+ (bfd *, flagword);
static bfd_boolean sh64_elf_set_mach_from_flags
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean shmedia_prepare_reloc
- PARAMS ((struct bfd_link_info *, bfd *, asection *,
- bfd_byte *, const Elf_Internal_Rela *, bfd_vma *));
+ (struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ const Elf_Internal_Rela *, bfd_vma *);
static int sh64_elf_get_symbol_type
- PARAMS ((Elf_Internal_Sym *, int));
+ (Elf_Internal_Sym *, int);
static bfd_boolean sh64_elf_add_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
+ (bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **,
+ flagword *, asection **, bfd_vma *);
static bfd_boolean sh64_elf_link_output_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
- asection *));
+ (bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
+ asection *);
static bfd_boolean sh64_backend_section_from_shdr
- PARAMS ((bfd *, Elf_Internal_Shdr *, const char *));
+ (bfd *, Elf_Internal_Shdr *, const char *);
static void sh64_elf_final_write_processing
- PARAMS ((bfd *, bfd_boolean));
+ (bfd *, bfd_boolean);
static bfd_boolean sh64_bfd_elf_copy_private_section_data
- PARAMS ((bfd *, asection *, bfd *, asection *));
+ (bfd *, asection *, bfd *, asection *);
static void sh64_find_section_for_address
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
/* Let elf32-sh.c handle the "bfd_" definitions, so we only have to
intrude with an #ifndef around the function definition. */
@@ -87,6 +87,7 @@ static void sh64_find_section_for_address
sh64_elf_link_output_symbol_hook
#define elf_backend_final_write_processing sh64_elf_final_write_processing
#define elf_backend_section_from_shdr sh64_backend_section_from_shdr
+#define elf_backend_special_sections sh64_elf_special_sections
#define bfd_elf32_new_section_hook sh64_elf_new_section_hook
@@ -108,9 +109,7 @@ static void sh64_find_section_for_address
/* Tack some extra info on struct bfd_elf_section_data. */
static bfd_boolean
-sh64_elf_new_section_hook (abfd, sec)
- bfd *abfd;
- asection *sec;
+sh64_elf_new_section_hook (bfd *abfd, asection *sec)
{
struct _sh64_elf_section_data *sdata;
bfd_size_type amt = sizeof (*sdata);
@@ -118,7 +117,7 @@ sh64_elf_new_section_hook (abfd, sec)
sdata = (struct _sh64_elf_section_data *) bfd_zalloc (abfd, amt);
if (sdata == NULL)
return FALSE;
- sec->used_by_bfd = (PTR) sdata;
+ sec->used_by_bfd = sdata;
return _bfd_elf_new_section_hook (abfd, sec);
}
@@ -127,10 +126,9 @@ sh64_elf_new_section_hook (abfd, sec)
through SHT_SH5_CR_SORTED on a sorted .cranges section. */
bfd_boolean
-sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- Elf_Internal_Shdr *elf_section_hdr;
- asection *asect;
+sh64_elf_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Shdr *elf_section_hdr,
+ asection *asect)
{
if (sh64_elf_section_data (asect)->sh64_info != NULL)
elf_section_hdr->sh_flags
@@ -147,8 +145,7 @@ sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect)
}
static bfd_boolean
-sh64_elf_set_mach_from_flags (abfd)
- bfd *abfd;
+sh64_elf_set_mach_from_flags (bfd *abfd)
{
flagword flags = elf_elfheader (abfd)->e_flags;
asection *cranges;
@@ -182,9 +179,7 @@ sh64_elf_set_mach_from_flags (abfd)
}
static bfd_boolean
-sh64_elf_copy_private_data (ibfd, obfd)
- bfd * ibfd;
- bfd * obfd;
+sh64_elf_copy_private_data (bfd * ibfd, bfd * obfd)
{
if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
@@ -199,9 +194,7 @@ sh64_elf_copy_private_data (ibfd, obfd)
}
static bfd_boolean
-sh64_elf_merge_private_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+sh64_elf_merge_private_data (bfd *ibfd, bfd *obfd)
{
flagword old_flags, new_flags;
@@ -261,10 +254,8 @@ sh64_elf_merge_private_data (ibfd, obfd)
We only recognize SHT_SH5_CR_SORTED, on the .cranges section. */
bfd_boolean
-sh64_backend_section_from_shdr (abfd, hdr, name)
- bfd *abfd;
- Elf_Internal_Shdr *hdr;
- const char *name;
+sh64_backend_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr,
+ const char *name)
{
flagword flags = 0;
@@ -308,11 +299,8 @@ sh64_backend_section_from_shdr (abfd, hdr, name)
structure for the SH64 ELF section flags to be copied correctly. */
bfd_boolean
-sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
- bfd *ibfd;
- asection *isec;
- bfd *obfd;
- asection *osec;
+sh64_bfd_elf_copy_private_section_data (bfd *ibfd, asection *isec,
+ bfd *obfd, asection *osec)
{
struct sh64_section_data *sh64_sec_data;
@@ -344,9 +332,7 @@ sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)
/* Function to keep SH64 specific file flags. */
static bfd_boolean
-sh64_elf_set_private_flags (abfd, flags)
- bfd * abfd;
- flagword flags;
+sh64_elf_set_private_flags (bfd *abfd, flagword flags)
{
BFD_ASSERT (! elf_flags_init (abfd)
|| elf_elfheader (abfd)->e_flags == flags);
@@ -359,9 +345,7 @@ sh64_elf_set_private_flags (abfd, flags)
/* Called when writing out an object file to decide the type of a symbol. */
static int
-sh64_elf_get_symbol_type (elf_sym, type)
- Elf_Internal_Sym * elf_sym;
- int type;
+sh64_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
{
if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL)
return STT_DATALABEL;
@@ -388,14 +372,10 @@ sh64_elf_get_symbol_type (elf_sym, type)
(not so good). */
static bfd_boolean
-sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info;
- const Elf_Internal_Sym *sym;
- const char **namep;
- flagword *flagsp ATTRIBUTE_UNUSED;
- asection **secp;
- bfd_vma *valp;
+sh64_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
+ const Elf_Internal_Sym *sym, const char **namep,
+ flagword *flagsp ATTRIBUTE_UNUSED,
+ asection **secp, bfd_vma *valp)
{
/* We want to do this for relocatable as well as final linking. */
if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL
@@ -403,11 +383,11 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
{
struct elf_link_hash_entry *h;
- /* For relocateable links, we register the DataLabel sym in its own
+ /* For relocatable links, we register the DataLabel sym in its own
right, and tweak the name when it's output. Otherwise, we make
an indirect symbol of it. */
flagword flags
- = info->relocateable || info->emitrelocations
+ = info->relocatable || info->emitrelocations
? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT;
char *dl_name
@@ -430,7 +410,7 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
{
/* No previous datalabel symbol. Make one. */
struct bfd_link_hash_entry *bh = NULL;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name,
flags, *secp, *valp,
@@ -451,9 +431,9 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
free (dl_name);
if (h->type != STT_DATALABEL
- || ((info->relocateable || info->emitrelocations)
+ || ((info->relocatable || info->emitrelocations)
&& h->root.type != bfd_link_hash_undefined)
- || (! info->relocateable && !info->emitrelocations
+ || (! info->relocatable && !info->emitrelocations
&& h->root.type != bfd_link_hash_indirect))
{
/* Make sure we don't get confused on invalid input. */
@@ -489,16 +469,15 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
DataLabel symbol. */
bfd_boolean
-sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
- const char *cname;
- Elf_Internal_Sym *sym;
- asection *input_sec ATTRIBUTE_UNUSED;
+sh64_elf_link_output_symbol_hook (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info,
+ const char *cname,
+ Elf_Internal_Sym *sym,
+ asection *input_sec ATTRIBUTE_UNUSED)
{
char *name = (char *) cname;
- if (info->relocateable || info->emitrelocations)
+ if (info->relocatable || info->emitrelocations)
{
if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL)
name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
@@ -512,14 +491,9 @@ sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
bad value, TRUE if ok. */
static bfd_boolean
-shmedia_prepare_reloc (info, abfd, input_section,
- contents, rel, relocation)
- struct bfd_link_info *info;
- bfd *abfd;
- asection *input_section;
- bfd_byte *contents;
- const Elf_Internal_Rela *rel;
- bfd_vma *relocation;
+shmedia_prepare_reloc (struct bfd_link_info *info, bfd *abfd,
+ asection *input_section, bfd_byte *contents,
+ const Elf_Internal_Rela *rel, bfd_vma *relocation)
{
bfd_vma disp, dropped;
@@ -624,10 +598,8 @@ shmedia_prepare_reloc (info, abfd, input_section,
is called via bfd_map_over_sections. */
static void
-sh64_find_section_for_address (abfd, section, data)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- PTR data;
+sh64_find_section_for_address (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section, void *data)
{
bfd_vma vma;
bfd_size_type size;
@@ -663,9 +635,8 @@ sh64_find_section_for_address (abfd, section, data)
executables (final linking and objcopy). */
static void
-sh64_elf_final_write_processing (abfd, linker)
- bfd *abfd;
- bfd_boolean linker ATTRIBUTE_UNUSED;
+sh64_elf_final_write_processing (bfd *abfd,
+ bfd_boolean linker ATTRIBUTE_UNUSED)
{
bfd_vma ld_generated_cranges_size;
asection *cranges
@@ -717,7 +688,7 @@ sh64_elf_final_write_processing (abfd, linker)
fsec_data.section = NULL;
bfd_map_over_sections (abfd, sh64_find_section_for_address,
- (PTR) &fsec_data);
+ &fsec_data);
if (fsec_data.section
&& (sh64_get_contents_type (fsec_data.section,
elf_elfheader (abfd)->e_entry,
@@ -764,6 +735,14 @@ sh64_elf_final_write_processing (abfd, linker)
}
}
+static struct bfd_elf_special_section const sh64_elf_special_sections[]=
+{
+ { ".cranges", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
#undef TARGET_BIG_SYM
#define TARGET_BIG_SYM bfd_elf32_sh64_vec
#undef TARGET_BIG_NAME
diff --git a/bfd/elf32-sh64.h b/bfd/elf32-sh64.h
index 87af05b..5916aec 100644
--- a/bfd/elf32-sh64.h
+++ b/bfd/elf32-sh64.h
@@ -51,16 +51,21 @@ typedef struct {
/* Get the contents type of an arbitrary address, or return CRT_NONE. */
extern enum sh64_elf_cr_type sh64_get_contents_type
- PARAMS ((asection *, bfd_vma, sh64_elf_crange *));
+ (asection *, bfd_vma, sh64_elf_crange *);
/* Simpler interface.
FIXME: This seems redundant now that we export the interface above. */
-extern bfd_boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma));
-
-extern int _bfd_sh64_crange_qsort_cmpb PARAMS ((const void *, const void *));
-extern int _bfd_sh64_crange_qsort_cmpl PARAMS ((const void *, const void *));
-extern int _bfd_sh64_crange_bsearch_cmpb PARAMS ((const void *, const void *));
-extern int _bfd_sh64_crange_bsearch_cmpl PARAMS ((const void *, const void *));
+extern bfd_boolean sh64_address_is_shmedia
+ (asection *, bfd_vma);
+
+extern int _bfd_sh64_crange_qsort_cmpb
+ (const void *, const void *);
+extern int _bfd_sh64_crange_qsort_cmpl
+ (const void *, const void *);
+extern int _bfd_sh64_crange_bsearch_cmpb
+ (const void *, const void *);
+extern int _bfd_sh64_crange_bsearch_cmpl
+ (const void *, const void *);
struct sh64_section_data
{
diff --git a/bfd/elf32-sparc.c b/bfd/elf32-sparc.c
index 5f1bec5..50d968e 100644
--- a/bfd/elf32-sparc.c
+++ b/bfd/elf32-sparc.c
@@ -68,7 +68,7 @@ static bfd_boolean create_got_section
static bfd_boolean elf32_sparc_create_dynamic_sections
PARAMS ((bfd *, struct bfd_link_info *));
static void elf32_sparc_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static int elf32_sparc_tls_transition
PARAMS ((struct bfd_link_info *, bfd *, int, int));
@@ -750,7 +750,7 @@ elf32_sparc_create_dynamic_sections (dynobj, info)
static void
elf32_sparc_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_link_hash_entry *dir, *ind;
{
struct elf32_sparc_link_hash_entry *edir, *eind;
@@ -862,7 +862,7 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
asection *sreloc;
bfd_boolean checked_tlsgd = FALSE;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf32_sparc_hash_table (info);
@@ -1024,10 +1024,13 @@ elf32_sparc_check_relocs (abfd, info, sec, relocs)
}
}
- if (htab->elf.dynobj == NULL)
- htab->elf.dynobj = abfd;
- if (!create_got_section (htab->elf.dynobj, info))
- return FALSE;
+ if (htab->sgot == NULL)
+ {
+ if (htab->elf.dynobj == NULL)
+ htab->elf.dynobj = abfd;
+ if (!create_got_section (htab->elf.dynobj, info))
+ return FALSE;
+ }
break;
case R_SPARC_TLS_GD_CALL:
@@ -2126,7 +2129,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf32_sparc_hash_table (info);
@@ -2183,42 +2186,12 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned ATTRIBUTE_UNUSED;
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
}
switch (r_type)
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 99c0077..8437c3d 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -652,7 +652,7 @@ v850_elf_check_relocs (abfd, info, sec, relocs)
int other = 0;
const char *common = (const char *)0;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
#ifdef DEBUG
@@ -1632,7 +1632,7 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -2520,7 +2520,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
*again = FALSE;
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0)
return TRUE;
@@ -3139,6 +3139,38 @@ v850_elf_relax_section (abfd, sec, link_info, again)
result = FALSE;
goto finish;
}
+
+static struct bfd_elf_special_section const v850_elf_special_sections[]=
+{
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL },
+ { ".rosdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_V850_GPREL },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL },
+ { ".scommon", 0, NULL, 0,
+ SHT_V850_SCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_GPREL },
+ { ".tdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_EPREL },
+ { ".tbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_EPREL },
+ { ".tcommon", 0, NULL, 0,
+ SHT_V850_TCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL },
+ { ".zdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL },
+ { ".rozdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_V850_R0REL },
+ { ".zbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL },
+ { ".zcommon", 0, NULL, 0,
+ SHT_V850_ZCOMMON, SHF_ALLOC + SHF_WRITE + SHF_V850_R0REL },
+ { ".call_table_data", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".call_table_text", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_EXECINSTR },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
#define TARGET_LITTLE_SYM bfd_elf32_v850_vec
#define TARGET_LITTLE_NAME "elf32-v850"
@@ -3162,6 +3194,7 @@ v850_elf_relax_section (abfd, sec, link_info, again)
#define elf_backend_fake_sections v850_elf_fake_sections
#define elf_backend_gc_mark_hook v850_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook v850_elf_gc_sweep_hook
+#define elf_backend_special_sections v850_elf_special_sections
#define elf_backend_can_gc_sections 1
#define elf_backend_rela_normal 1
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index 1aca042..7d78e0f 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -578,7 +578,7 @@ elf_vax_check_relocs (abfd, info, sec, relocs)
asection *srelgot;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -1440,7 +1440,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -1487,15 +1487,17 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
- if (h->root.type == bfd_link_hash_defined
+ bfd_boolean unresolved_reloc;
+ bfd_boolean warned;
+
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
+
+ if ((h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if ((r_type == R_VAX_PLT32
+ && ((r_type == R_VAX_PLT32
&& h->plt.offset != (bfd_vma) -1
&& elf_hash_table (info)->dynamic_sections_created)
|| (r_type == R_VAX_GOT32
@@ -1524,34 +1526,11 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
|| r_type == R_VAX_32
|| r_type == R_VAX_PC8
|| r_type == R_VAX_PC16
- || r_type == R_VAX_PC32)))
- {
- /* In these cases, we don't need the relocation
- value. We check specially because in some
- obscure cases sec->output_section will be NULL. */
- relocation = 0;
- }
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
+ || r_type == R_VAX_PC32))))
+ /* In these cases, we don't need the relocation
+ value. We check specially because in some
+ obscure cases sec->output_section will be NULL. */
relocation = 0;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (!(info->callbacks->undefined_symbol
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
- }
}
switch (r_type)
diff --git a/bfd/elf32-xstormy16.c b/bfd/elf32-xstormy16.c
index c05c186..af9a048 100644
--- a/bfd/elf32-xstormy16.c
+++ b/bfd/elf32-xstormy16.c
@@ -1,5 +1,5 @@
/* XSTORMY16-specific support for 32-bit ELF.
- Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -423,7 +423,7 @@ xstormy16_elf_check_relocs (abfd, info, sec, relocs)
asection *splt;
bfd *dynobj;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
@@ -609,7 +609,7 @@ xstormy16_elf_relax_section (dynobj, splt, info, again)
/* Assume nothing changes. */
*again = FALSE;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* We only relax the .plt section at the moment. */
@@ -739,7 +739,7 @@ xstormy16_elf_always_size_sections (output_bfd, info)
bfd *dynobj;
asection *splt;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -766,7 +766,7 @@ xstormy16_elf_always_size_sections (output_bfd, info)
zero.
This function is responsible for adjusting the section contents as
- necessary, and (if using Rela relocs and generating a relocateable
+ necessary, and (if using Rela relocs and generating a relocatable
output file) adjusting the reloc addend as necessary.
This function does not have to worry about setting the reloc
@@ -780,7 +780,7 @@ xstormy16_elf_always_size_sections (output_bfd, info)
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -805,7 +805,7 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
bfd *dynobj;
asection *splt;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index b277540..251c332 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -48,7 +48,7 @@ static bfd_boolean elf_xtensa_check_relocs
static void elf_xtensa_hide_symbol
PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
static void elf_xtensa_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static asection *elf_xtensa_gc_mark_hook
PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
@@ -102,6 +102,8 @@ static bfd_boolean elf_xtensa_new_section_hook
/* Local helper functions. */
+static bfd_boolean xtensa_elf_dynamic_symbol_p
+ PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *));
static int property_table_compare
PARAMS ((const PTR, const PTR));
static bfd_boolean elf_xtensa_in_literal_pool
@@ -127,16 +129,14 @@ static char *build_encoding_error_message
PARAMS ((xtensa_opcode, xtensa_encode_result));
static bfd_reloc_status_type bfd_elf_xtensa_reloc
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
-static void do_fix_for_relocateable_link
+static void do_fix_for_relocatable_link
PARAMS ((Elf_Internal_Rela *, bfd *, asection *));
static void do_fix_for_final_link
PARAMS ((Elf_Internal_Rela *, asection *, bfd_vma *));
-static bfd_boolean xtensa_elf_dynamic_symbol_p
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
static bfd_vma elf_xtensa_create_plt_entry
PARAMS ((bfd *, bfd *, unsigned));
static int elf_xtensa_combine_prop_entries
- PARAMS ((bfd *, const char *));
+ PARAMS ((bfd *, asection *, asection *));
static bfd_boolean elf_xtensa_discard_info_for_section
PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *,
asection *));
@@ -206,6 +206,8 @@ static bfd_boolean pcrel_reloc_fits
PARAMS ((xtensa_operand, bfd_vma, bfd_vma));
static bfd_boolean xtensa_is_property_section
PARAMS ((asection *));
+static bfd_boolean xtensa_is_littable_section
+ PARAMS ((asection *));
static bfd_boolean is_literal_section
PARAMS ((asection *));
static int internal_reloc_compare
@@ -231,7 +233,7 @@ typedef struct xtensa_relax_info_struct xtensa_relax_info;
The actual PLT code must be split into multiple sections and all
the sections have to be created before size_dynamic_sections,
where we figure out the exact number of PLT entries that will be
- needed. It is OK is this count is an overestimate, e.g., some
+ needed. It is OK if this count is an overestimate, e.g., some
relocations may be removed by GC. */
static int plt_reloc_count = 0;
@@ -447,6 +449,21 @@ static const bfd_byte elf_xtensa_le_plt_entry[PLT_ENTRY_SIZE] =
0 /* unused */
};
+
+static inline bfd_boolean
+xtensa_elf_dynamic_symbol_p (h, info)
+ struct elf_link_hash_entry *h;
+ struct bfd_link_info *info;
+{
+ /* Check if we should do dynamic things to this symbol. The
+ "ignore_protected" argument need not be set, because Xtensa code
+ does not require special handling of STV_PROTECTED to make function
+ pointer comparisons work properly. The PLT addresses are never
+ used for function pointers. */
+
+ return _bfd_elf_dynamic_symbol_p (h, info, 0);
+}
+
static int
property_table_compare (ap, bp)
@@ -609,7 +626,7 @@ elf_xtensa_check_relocs (abfd, info, sec, relocs)
property_table_entry *lit_table;
int ltblsize;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -782,7 +799,7 @@ elf_xtensa_hide_symbol (info, h, force_local)
static void
elf_xtensa_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_link_hash_entry *dir, *ind;
{
_bfd_elf_link_hash_copy_indirect (bed, dir, ind);
@@ -904,7 +921,7 @@ elf_xtensa_create_dynamic_sections (dynobj, info)
bfd *dynobj;
struct bfd_link_info *info;
{
- flagword flags;
+ flagword flags, noalloc_flags;
asection *s;
/* First do all the standard stuff. */
@@ -916,8 +933,9 @@ elf_xtensa_create_dynamic_sections (dynobj, info)
if (!add_extra_plt_sections (dynobj, plt_reloc_count))
return FALSE;
- flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
- | SEC_LINKER_CREATED | SEC_READONLY);
+ noalloc_flags = (SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED | SEC_READONLY);
+ flags = noalloc_flags | SEC_ALLOC | SEC_LOAD;
/* Mark the ".got.plt" section READONLY. */
s = bfd_get_section_by_name (dynobj, ".got.plt");
@@ -932,10 +950,17 @@ elf_xtensa_create_dynamic_sections (dynobj, info)
|| ! bfd_set_section_alignment (dynobj, s, 2))
return FALSE;
+ /* Create ".got.loc" (literal tables for use by dynamic linker). */
+ s = bfd_make_section (dynobj, ".got.loc");
+ if (s == NULL
+ || ! bfd_set_section_flags (dynobj, s, flags)
+ || ! bfd_set_section_alignment (dynobj, s, 2))
+ return FALSE;
+
/* Create ".xt.lit.plt" (literal table for ".got.plt*"). */
s = bfd_make_section (dynobj, ".xt.lit.plt");
if (s == NULL
- || ! bfd_set_section_flags (dynobj, s, flags)
+ || ! bfd_set_section_flags (dynobj, s, noalloc_flags)
|| ! bfd_set_section_alignment (dynobj, s, 2))
return FALSE;
@@ -1053,7 +1078,7 @@ elf_xtensa_fix_refcounts (h, arg)
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
- if (! xtensa_elf_dynamic_symbol_p (info, h))
+ if (! xtensa_elf_dynamic_symbol_p (h, info))
elf_xtensa_make_sym_local (info, h);
/* If the symbol has a relocation outside the GOT, set the
@@ -1136,8 +1161,8 @@ elf_xtensa_size_dynamic_sections (output_bfd, info)
bfd *output_bfd ATTRIBUTE_UNUSED;
struct bfd_link_info *info;
{
- bfd *dynobj;
- asection *s, *srelplt, *splt, *sgotplt, *srelgot, *spltlittbl;
+ bfd *dynobj, *abfd;
+ asection *s, *srelplt, *splt, *sgotplt, *srelgot, *spltlittbl, *sgotloc;
bfd_boolean relplt, relgot;
int plt_entries, plt_chunks, chunk;
@@ -1241,6 +1266,25 @@ elf_xtensa_size_dynamic_sections (output_bfd, info)
splt->_raw_size = 0;
}
}
+
+ /* Allocate space in ".got.loc" to match the total size of all the
+ literal tables. */
+ sgotloc = bfd_get_section_by_name (dynobj, ".got.loc");
+ if (sgotloc == NULL)
+ abort ();
+ sgotloc->_raw_size = spltlittbl->_raw_size;
+ for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next)
+ {
+ if (abfd->flags & DYNAMIC)
+ continue;
+ for (s = abfd->sections; s != NULL; s = s->next)
+ {
+ if (! elf_discarded_section (s)
+ && xtensa_is_littable_section (s)
+ && s != spltlittbl)
+ sgotloc->_raw_size += s->_raw_size;
+ }
+ }
}
/* Allocate memory for dynamic sections. */
@@ -1291,7 +1335,8 @@ elf_xtensa_size_dynamic_sections (output_bfd, info)
else if (strcmp (name, ".got") != 0
&& strcmp (name, ".plt") != 0
&& strcmp (name, ".got.plt") != 0
- && strcmp (name, ".xt.lit.plt") != 0)
+ && strcmp (name, ".xt.lit.plt") != 0
+ && strcmp (name, ".got.loc") != 0)
{
/* It's not one of our sections, so don't allocate space. */
continue;
@@ -1662,7 +1707,7 @@ bfd_elf_xtensa_reloc (abfd, reloc_entry, symbol, data, input_section,
asection *reloc_target_output_section;
bfd_boolean is_weak_undef;
- /* ELF relocs are against symbols. If we are producing relocateable
+ /* ELF relocs are against symbols. If we are producing relocatable
output, and the reloc is against an external symbol, the resulting
reloc will also be against the same symbol. In such a case, we
don't want to change anything about the way the reloc is handled,
@@ -1800,48 +1845,8 @@ elf_xtensa_create_plt_entry (dynobj, output_bfd, reloc_index)
}
-static bfd_boolean
-xtensa_elf_dynamic_symbol_p (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
-{
- if (h == NULL)
- return FALSE;
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- if (h->dynindx == -1)
- return FALSE;
-
- if (h->root.type == bfd_link_hash_undefweak
- || h->root.type == bfd_link_hash_defweak)
- return TRUE;
-
- switch (ELF_ST_VISIBILITY (h->other))
- {
- case STV_DEFAULT:
- break;
- case STV_HIDDEN:
- case STV_INTERNAL:
- return FALSE;
- case STV_PROTECTED:
- if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
- return FALSE;
- break;
- }
-
- if ((info->shared && !info->symbolic)
- || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
- return TRUE;
-
- return FALSE;
-}
-
-
/* Relocate an Xtensa ELF section. This is invoked by the linker for
- both relocateable and final links. */
+ both relocatable and final links. */
static bfd_boolean
elf_xtensa_relocate_section (output_bfd, info, input_bfd,
@@ -1909,9 +1914,9 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
r_symndx = ELF32_R_SYM (rel->r_info);
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link.
+ /* This is a relocatable link.
1) If the reloc is against a section symbol, adjust
according to the output section.
2) If there is a new target for this relocation,
@@ -1922,7 +1927,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
if (relaxing_section)
{
/* Check if this references a section in another input file. */
- do_fix_for_relocateable_link (rel, input_bfd, input_section);
+ do_fix_for_relocatable_link (rel, input_bfd, input_section);
r_type = ELF32_R_TYPE (rel->r_info);
}
@@ -1934,7 +1939,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
r_type = ELF32_R_TYPE (rel->r_info);
}
- /* This is a relocateable link, so we don't have to change
+ /* This is a relocatable link, so we don't have to change
anything unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -1950,7 +1955,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
/* If there is an addend with a partial_inplace howto,
then move the addend to the contents. This is a hack
- to work around problems with DWARF in relocateable links
+ to work around problems with DWARF in relocatable links
with some previous version of BFD. Now we can't easily get
rid of the hack without breaking backward compatibility.... */
if (rel->r_addend)
@@ -1973,7 +1978,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
}
}
- /* Done with work for relocateable link; continue with next reloc. */
+ /* Done with work for relocatable link; continue with next reloc. */
continue;
}
@@ -2004,45 +2009,15 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
-
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
+
+ if (relocation == 0
+ && !unresolved_reloc
+ && h->root.type == bfd_link_hash_undefweak)
is_weak_undef = TRUE;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- warned = TRUE;
- }
}
if (relaxing_section)
@@ -2066,7 +2041,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
/* Generate dynamic relocations. */
if (elf_hash_table (info)->dynamic_sections_created)
{
- bfd_boolean dynamic_symbol = xtensa_elf_dynamic_symbol_p (info, h);
+ bfd_boolean dynamic_symbol = xtensa_elf_dynamic_symbol_p (h, info);
if (dynamic_symbol && (r_type == R_XTENSA_OP0
|| r_type == R_XTENSA_OP1
@@ -2236,25 +2211,31 @@ elf_xtensa_finish_dynamic_symbol (output_bfd, info, h, sym)
on error. */
static int
-elf_xtensa_combine_prop_entries (output_bfd, secname)
+elf_xtensa_combine_prop_entries (output_bfd, sxtlit, sgotloc)
bfd *output_bfd;
- const char *secname;
+ asection *sxtlit;
+ asection *sgotloc;
{
- asection *sec;
bfd_byte *contents;
property_table_entry *table;
- bfd_size_type section_size;
+ bfd_size_type section_size, sgotloc_size;
bfd_vma offset;
int n, m, num;
- sec = bfd_get_section_by_name (output_bfd, secname);
- if (!sec)
- return -1;
-
- section_size = (sec->_cooked_size != 0 ? sec->_cooked_size : sec->_raw_size);
+ section_size = (sxtlit->_cooked_size != 0
+ ? sxtlit->_cooked_size : sxtlit->_raw_size);
BFD_ASSERT (section_size % 8 == 0);
num = section_size / 8;
+ sgotloc_size = (sgotloc->_cooked_size != 0
+ ? sgotloc->_cooked_size : sgotloc->_raw_size);
+ if (sgotloc_size != section_size)
+ {
+ (*_bfd_error_handler)
+ ("internal inconsistency in size of .got.loc section");
+ return -1;
+ }
+
contents = (bfd_byte *) bfd_malloc (section_size);
table = (property_table_entry *)
bfd_malloc (num * sizeof (property_table_entry));
@@ -2264,9 +2245,10 @@ elf_xtensa_combine_prop_entries (output_bfd, secname)
/* The ".xt.lit.plt" section has the SEC_IN_MEMORY flag set and this
propagates to the output section, where it doesn't really apply and
where it breaks the following call to bfd_get_section_contents. */
- sec->flags &= ~SEC_IN_MEMORY;
+ sxtlit->flags &= ~SEC_IN_MEMORY;
- if (! bfd_get_section_contents (output_bfd, sec, contents, 0, section_size))
+ if (! bfd_get_section_contents (output_bfd, sxtlit, contents, 0,
+ section_size))
return -1;
/* There should never be any relocations left at this point, so this
@@ -2321,12 +2303,16 @@ elf_xtensa_combine_prop_entries (output_bfd, secname)
if ((bfd_size_type) (num * 8) < section_size)
{
memset (&contents[num * 8], 0, section_size - num * 8);
- sec->_cooked_size = num * 8;
+ sxtlit->_cooked_size = num * 8;
}
- if (! bfd_set_section_contents (output_bfd, sec, contents, 0, section_size))
+ if (! bfd_set_section_contents (output_bfd, sxtlit, contents, 0,
+ section_size))
return -1;
+ /* Copy the contents to ".got.loc". */
+ memcpy (sgotloc->contents, contents, section_size);
+
free (contents);
return num;
}
@@ -2340,7 +2326,7 @@ elf_xtensa_finish_dynamic_sections (output_bfd, info)
struct bfd_link_info *info;
{
bfd *dynobj;
- asection *sdyn, *srelplt, *sgot;
+ asection *sdyn, *srelplt, *sgot, *sxtlit, *sgotloc;
Elf32_External_Dyn *dyncon, *dynconend;
int num_xtlit_entries;
@@ -2465,8 +2451,12 @@ elf_xtensa_finish_dynamic_sections (output_bfd, info)
}
/* Combine adjacent literal table entries. */
- BFD_ASSERT (! info->relocateable);
- num_xtlit_entries = elf_xtensa_combine_prop_entries (output_bfd, ".xt.lit");
+ BFD_ASSERT (! info->relocatable);
+ sxtlit = bfd_get_section_by_name (output_bfd, ".xt.lit");
+ sgotloc = bfd_get_section_by_name (dynobj, ".got.loc");
+ BFD_ASSERT (sxtlit && sgotloc);
+ num_xtlit_entries =
+ elf_xtensa_combine_prop_entries (output_bfd, sxtlit, sgotloc);
if (num_xtlit_entries < 0)
return FALSE;
@@ -2486,13 +2476,11 @@ elf_xtensa_finish_dynamic_sections (output_bfd, info)
break;
case DT_XTENSA_GOT_LOC_SZ:
- s = bfd_get_section_by_name (output_bfd, ".xt.lit");
- BFD_ASSERT (s);
dyn.d_un.d_val = num_xtlit_entries;
break;
case DT_XTENSA_GOT_LOC_OFF:
- name = ".xt.lit";
+ name = ".got.loc";
goto get_vma;
case DT_PLTGOT:
name = ".got";
@@ -2564,7 +2552,7 @@ elf_xtensa_merge_private_bfd_data (ibfd, obfd)
if (out_mach != in_mach)
{
(*_bfd_error_handler)
- ("%s: incompatible machine type. Output is 0x%x. Input is 0x%x\n",
+ ("%s: incompatible machine type. Output is 0x%x. Input is 0x%x",
bfd_archive_filename (ibfd), out_mach, in_mach);
bfd_set_error (bfd_error_wrong_format);
return FALSE;
@@ -2810,6 +2798,24 @@ elf_xtensa_discard_info_for_section (abfd, cookie, info, sec)
sec->_cooked_size = section_size - removed_bytes;
/* Also shrink _raw_size. See comments in relax_property_section. */
sec->_raw_size = sec->_cooked_size;
+
+ if (xtensa_is_littable_section (sec))
+ {
+ bfd *dynobj = elf_hash_table (info)->dynobj;
+ if (dynobj)
+ {
+ asection *sgotloc =
+ bfd_get_section_by_name (dynobj, ".got.loc");
+ if (sgotloc)
+ {
+ bfd_size_type sgotloc_size =
+ (sgotloc->_cooked_size ? sgotloc->_cooked_size
+ : sgotloc->_raw_size);
+ sgotloc->_cooked_size = sgotloc_size - removed_bytes;
+ sgotloc->_raw_size = sgotloc_size - removed_bytes;
+ }
+ }
+ }
}
else
{
@@ -3088,7 +3094,7 @@ elf_xtensa_do_asm_simplify (contents, address, content_length)
if (content_length < address)
{
(*_bfd_error_handler)
- ("Attempt to convert L32R/CALLX to CALL failed\n");
+ ("Attempt to convert L32R/CALLX to CALL failed");
return bfd_reloc_other;
}
@@ -3097,7 +3103,7 @@ elf_xtensa_do_asm_simplify (contents, address, content_length)
if (direct_call_opcode == XTENSA_UNDEFINED)
{
(*_bfd_error_handler)
- ("Attempt to convert L32R/CALLX to CALL failed\n");
+ ("Attempt to convert L32R/CALLX to CALL failed");
return bfd_reloc_other;
}
@@ -3539,6 +3545,7 @@ hash_literal_value (src)
const literal_value *src;
{
unsigned hash_val;
+
if (r_reloc_is_const (&src->r_rel))
return hash_bfd_vma (src->value);
@@ -3547,9 +3554,9 @@ hash_literal_value (src)
/* Now check for the same section and the same elf_hash. */
if (r_reloc_is_defined (&src->r_rel))
- hash_val += hash_bfd_vma ((bfd_vma) r_reloc_get_section (&src->r_rel));
+ hash_val += hash_bfd_vma ((bfd_vma) (unsigned) r_reloc_get_section (&src->r_rel));
else
- hash_val += hash_bfd_vma ((bfd_vma) r_reloc_get_hash_entry (&src->r_rel));
+ hash_val += hash_bfd_vma ((bfd_vma) (unsigned) r_reloc_get_hash_entry (&src->r_rel));
return hash_val;
}
@@ -4431,10 +4438,10 @@ is_resolvable_asm_expansion (abfd, sec, contents, irel, link_info,
if (!target_sec->output_section)
return FALSE;
- /* For relocateable sections, we can only simplify when the output
+ /* For relocatable sections, we can only simplify when the output
section of the target is the same as the output section of the
source. */
- if (link_info->relocateable
+ if (link_info->relocatable
&& (target_sec->output_section != sec->output_section))
return FALSE;
@@ -4931,7 +4938,7 @@ shrink_dynamic_reloc_sections (info, abfd, input_section, rel)
else
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- dynamic_symbol = xtensa_elf_dynamic_symbol_p (info, h);
+ dynamic_symbol = xtensa_elf_dynamic_symbol_p (h, info);
if ((r_type == R_XTENSA_32 || r_type == R_XTENSA_PLT)
&& (input_section->flags & SEC_ALLOC) != 0
@@ -5264,9 +5271,27 @@ relax_property_section (abfd, sec, link_info)
relaxed; shrinking _raw_size means that these checks will
not be unnecessarily lax.) */
sec->_raw_size = sec->_cooked_size;
+
+ if (xtensa_is_littable_section (sec))
+ {
+ bfd *dynobj = elf_hash_table (link_info)->dynobj;
+ if (dynobj)
+ {
+ asection *sgotloc =
+ bfd_get_section_by_name (dynobj, ".got.loc");
+ if (sgotloc)
+ {
+ bfd_size_type sgotloc_size =
+ (sgotloc->_cooked_size ? sgotloc->_cooked_size
+ : sgotloc->_raw_size);
+ sgotloc->_cooked_size = sgotloc_size - removed_bytes;
+ sgotloc->_raw_size = sgotloc_size - removed_bytes;
+ }
+ }
+ }
}
}
-
+
error_return:
release_internal_relocs (sec, internal_relocs);
release_contents (sec, contents);
@@ -5345,7 +5370,7 @@ relax_section_symbols (abfd, sec)
/* "Fix" handling functions, called while performing relocations. */
static void
-do_fix_for_relocateable_link (rel, input_bfd, input_section)
+do_fix_for_relocatable_link (rel, input_bfd, input_section)
Elf_Internal_Rela *rel;
bfd *input_bfd;
asection *input_section;
@@ -5584,12 +5609,42 @@ static bfd_boolean
xtensa_is_property_section (sec)
asection *sec;
{
- static int len = sizeof (".gnu.linkonce.t.") - 1;
+ static int linkonce_len = sizeof (".gnu.linkonce.") - 1;
- return (strcmp (".xt.insn", sec->name) == 0
- || strcmp (".xt.lit", sec->name) == 0
- || strncmp (".gnu.linkonce.x.", sec->name, len) == 0
- || strncmp (".gnu.linkonce.p.", sec->name, len) == 0);
+ if (strncmp (".xt.insn", sec->name, 8) == 0
+ || strncmp (".xt.lit", sec->name, 7) == 0)
+ return TRUE;
+
+ if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0)
+ {
+ if (strncmp ("x.", sec->name + linkonce_len, 2) == 0
+ || strncmp ("p.", sec->name + linkonce_len, 2) == 0)
+ return TRUE;
+ if (strstr (sec->name + linkonce_len, ".xt.insn") != NULL
+ || strstr (sec->name + linkonce_len, ".xt.lit") != NULL)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+static bfd_boolean
+xtensa_is_littable_section (sec)
+ asection *sec;
+{
+ static int linkonce_len = sizeof (".gnu.linkonce.") - 1;
+
+ if (strncmp (".xt.lit", sec->name, 7) == 0)
+ return TRUE;
+
+ if (strncmp (".gnu.linkonce.", sec->name, linkonce_len) == 0)
+ {
+ if (strncmp ("p.", sec->name + linkonce_len, 2) == 0)
+ return TRUE;
+ if (strstr (sec->name + linkonce_len, ".xt.lit") != NULL)
+ return TRUE;
+ }
+ return FALSE;
}
@@ -5781,6 +5836,21 @@ xtensa_callback_required_dependence (abfd, sec, link_info, callback, closure)
return ok;
}
+/* The default literal sections should always be marked as "code" (i.e.,
+ SHF_EXECINSTR). This is particularly important for the Linux kernel
+ module loader so that the literals are not placed after the text. */
+static struct bfd_elf_special_section const elf_xtensa_special_sections[]=
+{
+ { ".literal", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".init.literal", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { ".fini.literal", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
#ifndef ELF_ARCH
#define TARGET_LITTLE_SYM bfd_elf32_xtensa_le_vec
@@ -5841,5 +5911,6 @@ xtensa_callback_required_dependence (abfd, sec, link_info, callback, closure)
#define elf_backend_reloc_type_class elf_xtensa_reloc_type_class
#define elf_backend_relocate_section elf_xtensa_relocate_section
#define elf_backend_size_dynamic_sections elf_xtensa_size_dynamic_sections
+#define elf_backend_special_sections elf_xtensa_special_sections
#include "elf32-target.h"
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 58ab6ba..0b64bd3 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -47,7 +47,7 @@
#define ECOFF_64
#include "ecoffswap.h"
-static int alpha_elf_dynamic_symbol_p
+static bfd_boolean alpha_elf_dynamic_symbol_p
PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *));
static struct bfd_hash_entry * elf64_alpha_link_hash_newfunc
PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
@@ -269,49 +269,17 @@ struct alpha_elf_link_hash_table
#define alpha_elf_sym_hashes(abfd) \
((struct alpha_elf_link_hash_entry **)elf_sym_hashes(abfd))
-/* Should we do dynamic things to this symbol? */
+/* Should we do dynamic things to this symbol? This differs from the
+ generic version in that we never need to consider function pointer
+ equality wrt PLT entries -- we don't create a PLT entry if a symbol's
+ address is ever taken. */
-static int
+static inline bfd_boolean
alpha_elf_dynamic_symbol_p (h, info)
struct elf_link_hash_entry *h;
struct bfd_link_info *info;
{
- if (h == NULL)
- return FALSE;
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- if (h->dynindx == -1)
- return FALSE;
-
- if (h->root.type == bfd_link_hash_undefweak
- || h->root.type == bfd_link_hash_defweak)
- return TRUE;
-
- switch (ELF_ST_VISIBILITY (h->other))
- {
- case STV_DEFAULT:
- break;
- case STV_HIDDEN:
- case STV_INTERNAL:
- return FALSE;
- case STV_PROTECTED:
- if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
- return FALSE;
- break;
- }
-
- if ((info->shared && !info->symbolic)
- || ((h->elf_link_hash_flags
- & (ELF_LINK_HASH_DEF_DYNAMIC
- | ELF_LINK_HASH_DEF_REGULAR
- | ELF_LINK_HASH_REF_REGULAR))
- == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
- return TRUE;
-
- return FALSE;
+ return _bfd_elf_dynamic_symbol_p (h, info, 0);
}
/* Create an entry in a Alpha ELF linker hash table. */
@@ -2058,7 +2026,7 @@ elf64_alpha_relax_section (abfd, sec, link_info, again)
/* We are not currently changing any sizes, so only one pass. */
*again = FALSE;
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0)
return TRUE;
@@ -2465,7 +2433,7 @@ elf64_alpha_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
bfd_vma *valp;
{
if (sym->st_shndx == SHN_COMMON
- && !info->relocateable
+ && !info->relocatable
&& sym->st_size <= elf_gp_size (abfd))
{
/* Common symbols less than or equal to -G nn bytes are
@@ -3057,7 +3025,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
bfd_boolean got_created;
bfd_size_type amt;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table(info)->dynobj;
@@ -3106,7 +3074,7 @@ elf64_alpha_check_relocs (abfd, info, sec, relocs)
this may help reduce memory usage and processing time later. */
maybe_dynamic = FALSE;
if (h && ((info->shared
- && (!info->symbolic || info->allow_shlib_undefined))
+ && (!info->symbolic || info->unresolved_syms_in_shared_libs == RM_IGNORE))
|| ! (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
|| h->root.root.type == bfd_link_hash_defweak))
maybe_dynamic = TRUE;
@@ -3863,7 +3831,7 @@ elf64_alpha_always_size_sections (output_bfd, info)
{
bfd *i;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* First, take care of the indirect symbols created by versioning. */
@@ -4330,7 +4298,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
const char *section_name;
/* Handle relocatable links with a smaller loop. */
- if (info->relocateable)
+ if (info->relocatable)
return elf64_alpha_relocate_section_r (output_bfd, info, input_bfd,
input_section, contents, relocs,
local_syms, local_sections);
@@ -4477,48 +4445,25 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = alpha_elf_sym_hashes (input_bfd)[r_symndx - symtab_hdr->sh_info];
-
- while (h->root.root.type == bfd_link_hash_indirect
- || h->root.root.type == bfd_link_hash_warning)
- h = (struct alpha_elf_link_hash_entry *)h->root.root.u.i.link;
+ bfd_boolean warned;
+ bfd_boolean unresolved_reloc;
+ struct elf_link_hash_entry *hh;
+
+ RELOC_FOR_GLOBAL_SYMBOL (hh,
+ (struct elf_link_hash_entry *) alpha_elf_sym_hashes (input_bfd),
+ r_symndx, symtab_hdr, value,
+ sec, unresolved_reloc, info,
+ warned);
+
+ if (warned)
+ continue;
- value = 0;
- if (h->root.root.type == bfd_link_hash_defined
- || h->root.root.type == bfd_link_hash_defweak)
- {
- sec = h->root.root.u.def.section;
-
- /* Detect the cases that sym_sec->output_section is
- expected to be NULL -- all cases in which the symbol
- is defined in another shared module. This includes
- PLT relocs for which we've created a PLT entry and
- other relocs for which we're prepared to create
- dynamic relocations. */
- /* ??? Just accept it NULL and continue. */
-
- if (sec->output_section != NULL)
- value = (h->root.root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.root.type == bfd_link_hash_undefweak)
+ if (value == 0
+ && ! unresolved_reloc
+ && hh->root.type == bfd_link_hash_undefweak)
undef_weak_ref = TRUE;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
- ;
- else
- {
- if (!((*info->callbacks->undefined_symbol)
- (info, h->root.root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->root.other)))))
- return FALSE;
- continue;
- }
+ h = (struct alpha_elf_link_hash_entry *) hh;
dynamic_symbol_p = alpha_elf_dynamic_symbol_p (&h->root, info);
gotent = h->got_entries;
}
@@ -5497,6 +5442,16 @@ elf64_alpha_reloc_type_class (rela)
}
}
+static struct bfd_elf_special_section const elf64_alpha_special_sections[]=
+{
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
/* ECOFF swapping routines. These are used when dealing with the
.mdebug section, which is in the ECOFF debugging format. Copied
from elf32-mips.c. */
@@ -5635,6 +5590,9 @@ static const struct elf_size_info alpha_elf_size_info =
#define elf_backend_size_info \
alpha_elf_size_info
+#define elf_backend_special_sections \
+ elf64_alpha_special_sections
+
/* A few constants that determine how the .plt section is set up. */
#define elf_backend_want_got_plt 0
#define elf_backend_plt_readonly 0
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 8ce5b20..88403f5 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -380,7 +380,10 @@ elf64_hppa_object_p (abfd)
i_ehdrp = elf_elfheader (abfd);
if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0)
{
- if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX)
+ /* GCC on hppa-linux produces binaries with OSABI=Linux,
+ but the kernel produces corefiles with OSABI=SysV. */
+ if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX &&
+ i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_NONE) /* aka SYSV */
return FALSE;
}
else
@@ -599,7 +602,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
size_t buf_len;
int sec_symndx;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* If this is the first dynamic object found in the link, create
@@ -710,13 +713,14 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
relend = relocs + sec->reloc_count;
for (rel = relocs; rel < relend; ++rel)
{
- enum {
- NEED_DLT = 1,
- NEED_PLT = 2,
- NEED_STUB = 4,
- NEED_OPD = 8,
- NEED_DYNREL = 16,
- };
+ enum
+ {
+ NEED_DLT = 1,
+ NEED_PLT = 2,
+ NEED_STUB = 4,
+ NEED_OPD = 8,
+ NEED_DYNREL = 16,
+ };
struct elf_link_hash_entry *h = NULL;
unsigned long r_symndx = ELF64_R_SYM (rel->r_info);
@@ -746,7 +750,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
this may help reduce memory usage and processing time later. */
maybe_dynamic = FALSE;
if (h && ((info->shared
- && (!info->symbolic || info->allow_shlib_undefined) )
+ && (!info->symbolic || info->unresolved_syms_in_shared_libs == RM_IGNORE))
|| ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
|| h->root.type == bfd_link_hash_defweak))
maybe_dynamic = TRUE;
@@ -956,30 +960,19 @@ elf64_hppa_dynamic_symbol_p (h, info)
struct elf_link_hash_entry *h;
struct bfd_link_info *info;
{
- if (h == NULL)
- return FALSE;
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- if (h->dynindx == -1)
- return FALSE;
-
- if (h->root.type == bfd_link_hash_undefweak
- || h->root.type == bfd_link_hash_defweak)
- return TRUE;
+ /* ??? What, if anything, needs to happen wrt STV_PROTECTED symbols
+ and relocations that retrieve a function descriptor? Assume the
+ worst for now. */
+ if (_bfd_elf_dynamic_symbol_p (h, info, 1))
+ {
+ /* ??? Why is this here and not elsewhere is_local_label_name. */
+ if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$')
+ return FALSE;
- if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$')
+ return TRUE;
+ }
+ else
return FALSE;
-
- if ((info->shared && (!info->symbolic || info->allow_shlib_undefined))
- || ((h->elf_link_hash_flags
- & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
- == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
- return TRUE;
-
- return FALSE;
}
/* Mark all funtions exported by this file so that we can later allocate
@@ -2269,7 +2262,9 @@ elf64_hppa_finalize_dlt (dyn_h, data)
+ hppa_info->opd_sec->output_offset
+ hppa_info->opd_sec->output_section->vma);
}
- else if (h->root.u.def.section)
+ else if ((h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && h->root.u.def.section)
{
value = h->root.u.def.value + h->root.u.def.section->output_offset;
if (h->root.u.def.section->output_section)
@@ -2678,6 +2673,16 @@ elf64_hppa_elf_get_symbol_type (elf_sym, type)
return type;
}
+static struct bfd_elf_special_section const elf64_hppa_special_sections[]=
+{
+ { ".fini", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".init", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
/* The hash bucket size is the standard one, namely 4. */
const struct elf_size_info hppa64_elf_size_info =
@@ -2775,6 +2780,7 @@ const struct elf_size_info hppa64_elf_size_info =
#define elf_backend_get_symbol_type elf64_hppa_elf_get_symbol_type
#define elf_backend_reloc_type_class elf64_hppa_reloc_type_class
#define elf_backend_rela_normal 1
+#define elf_backend_special_sections elf64_hppa_special_sections
#include "elf64-target.h"
@@ -2783,5 +2789,7 @@ const struct elf_size_info hppa64_elf_size_info =
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-hppa-linux"
+#undef elf_backend_special_sections
+
#define INCLUDED_TARGET_FILE 1
#include "elf64-target.h"
diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c
index baf030a..3a874d8 100644
--- a/bfd/elf64-mips.c
+++ b/bfd/elf64-mips.c
@@ -1556,18 +1556,18 @@ mips_elf64_assign_gp (output_bfd, pgp)
symbol value correctly. We look up the symbol _gp in the output
BFD. If we can't find it, we're stuck. We cache it in the ELF
target data. We don't need to adjust the symbol value for an
- external symbol if we are producing relocateable output. */
+ external symbol if we are producing relocatable output. */
static bfd_reloc_status_type
-mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
bfd *output_bfd;
asymbol *symbol;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
char **error_message;
bfd_vma *pgp;
{
if (bfd_is_und_section (symbol->section)
- && ! relocateable)
+ && ! relocatable)
{
*pgp = 0;
return bfd_reloc_undefined;
@@ -1575,10 +1575,10 @@ mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
*pgp = _bfd_get_gp_value (output_bfd);
if (*pgp == 0
- && (! relocateable
+ && (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0))
{
- if (relocateable)
+ if (relocatable)
{
/* Make up a value. */
*pgp = symbol->section->output_section->vma /*+ 0x4000*/;
@@ -1609,7 +1609,7 @@ mips_elf64_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1624,20 +1624,20 @@ mips_elf64_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
- input_section, relocateable,
+ input_section, relocatable,
data, gp);
}
@@ -1654,7 +1654,7 @@ mips_elf64_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1670,20 +1670,20 @@ mips_elf64_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
/* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
- input_section, relocateable,
+ input_section, relocatable,
data, gp);
}
@@ -1701,7 +1701,7 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
bfd_vma relocation;
@@ -1719,14 +1719,14 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf64_final_gp (output_bfd, symbol, relocateable,
+ ret = mips_elf64_final_gp (output_bfd, symbol, relocatable,
error_message, &gp);
if (ret != bfd_reloc_ok)
return ret;
@@ -1749,9 +1749,9 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
val += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1760,7 +1760,7 @@ mips_elf64_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
@@ -1848,7 +1848,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
unsigned short extend = 0;
@@ -1867,14 +1867,14 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
}
if (output_bfd != NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf64_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
@@ -1904,9 +1904,9 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
_bfd_mips_elf_sign_extend(val, 16);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1925,7 +1925,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
return bfd_reloc_overflow;
@@ -2100,7 +2100,7 @@ mips_elf64_canonicalize_reloc (abfd, section, relptr, symbols)
{
arelent *tblptr;
unsigned int i;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE))
return -1;
@@ -2899,6 +2899,8 @@ const struct elf_size_info mips_elf64_size_info =
#define elf_backend_modify_segment_map _bfd_mips_elf_modify_segment_map
#define elf_backend_gc_mark_hook _bfd_mips_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook _bfd_mips_elf_gc_sweep_hook
+#define elf_backend_copy_indirect_symbol \
+ _bfd_mips_elf_copy_indirect_symbol
#define elf_backend_hide_symbol _bfd_mips_elf_hide_symbol
#define elf_backend_ignore_discarded_relocs \
_bfd_mips_elf_ignore_discarded_relocs
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c
index d0213e6..54c4ca8 100644
--- a/bfd/elf64-mmix.c
+++ b/bfd/elf64-mmix.c
@@ -1229,9 +1229,9 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
r_symndx = ELF64_R_SYM (rel->r_info);
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -1669,7 +1669,7 @@ mmix_elf_check_common_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* We currently have to abuse this COFF-specific member, since there's
@@ -1780,7 +1780,7 @@ mmix_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
const Elf_Internal_Rela *rel_end;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2352,10 +2352,10 @@ mmix_elf_relax_section (abfd, sec, link_info, again)
if (sec->_cooked_size == 0)
sec->_cooked_size = sec->_raw_size;
- /* We don't have to do anything for a relocateable link, if
+ /* We don't have to do anything for a relocatable link, if
this section does not have relocs, or if this is not a
code section. */
- if (link_info->relocateable
+ if (link_info->relocatable
|| (sec->flags & SEC_RELOC) == 0
|| sec->reloc_count == 0
|| (sec->flags & SEC_CODE) == 0
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 68879de..2042e6a 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -69,6 +69,7 @@ static bfd_reloc_status_type ppc64_elf_unhandled_reloc
#define elf_backend_can_refcount 1
#define elf_backend_rela_normal 1
+#define bfd_elf64_mkobject ppc64_elf_mkobject
#define bfd_elf64_bfd_reloc_type_lookup ppc64_elf_reloc_type_lookup
#define bfd_elf64_bfd_merge_private_bfd_data ppc64_elf_merge_private_bfd_data
#define bfd_elf64_new_section_hook ppc64_elf_new_section_hook
@@ -89,6 +90,7 @@ static bfd_reloc_status_type ppc64_elf_unhandled_reloc
#define elf_backend_finish_dynamic_symbol ppc64_elf_finish_dynamic_symbol
#define elf_backend_reloc_type_class ppc64_elf_reloc_type_class
#define elf_backend_finish_dynamic_sections ppc64_elf_finish_dynamic_sections
+#define elf_backend_special_sections ppc64_elf_special_sections
/* The name of the dynamic interpreter. This is put in the .interp
section. */
@@ -2316,6 +2318,40 @@ ppc64_elf_unhandled_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
return bfd_reloc_dangerous;
}
+struct ppc64_elf_obj_tdata
+{
+ struct elf_obj_tdata elf;
+
+ /* Shortcuts to dynamic linker sections. */
+ asection *got;
+ asection *relgot;
+
+ /* TLS local dynamic got entry handling. Suppose for multiple GOT
+ sections means we potentially need one of these for each input bfd. */
+ union {
+ bfd_signed_vma refcount;
+ bfd_vma offset;
+ } tlsld_got;
+};
+
+#define ppc64_elf_tdata(bfd) \
+ ((struct ppc64_elf_obj_tdata *) (bfd)->tdata.any)
+
+#define ppc64_tlsld_got(bfd) \
+ (&ppc64_elf_tdata (bfd)->tlsld_got)
+
+/* Override the generic function because we store some extras. */
+
+static bfd_boolean
+ppc64_elf_mkobject (bfd *abfd)
+{
+ bfd_size_type amt = sizeof (struct ppc64_elf_obj_tdata);
+ abfd->tdata.any = bfd_zalloc (abfd, amt);
+ if (abfd->tdata.any == NULL)
+ return FALSE;
+ return TRUE;
+}
+
/* Fix bad default arch selected for a 64 bit input bfd when the
default is 32 bit. */
@@ -2365,6 +2401,26 @@ ppc64_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
return TRUE;
}
+/* Add extra PPC sections. */
+
+static struct bfd_elf_special_section const ppc64_elf_special_sections[]=
+{
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { ".plt", 0, NULL, 0,
+ SHT_NOBITS, 0 },
+ { ".toc", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".toc1", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".tocbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
struct _ppc64_elf_section_data
{
struct bfd_elf_section_data elf;
@@ -2497,16 +2553,24 @@ struct got_entry
/* The symbol addend that we'll be placing in the GOT. */
bfd_vma addend;
+ /* Unlike other ELF targets, we use separate GOT entries for the same
+ symbol referenced from different input files. This is to support
+ automatic multiple TOC/GOT sections, where the TOC base can vary
+ from one input file to another.
+
+ Point to the BFD owning this GOT entry. */
+ bfd *owner;
+
+ /* Zero for non-tls entries, or TLS_TLS and one of TLS_GD, TLS_LD,
+ TLS_TPREL or TLS_DTPREL for tls entries. */
+ char tls_type;
+
/* Reference count until size_dynamic_sections, GOT offset thereafter. */
union
{
bfd_signed_vma refcount;
bfd_vma offset;
} got;
-
- /* Zero for non-tls entries, or TLS_TLS and one of TLS_GD, TLS_LD,
- TLS_TPREL or TLS_DTPREL for tls entries. */
- char tls_type;
};
/* The same for PLT. */
@@ -2535,7 +2599,18 @@ struct plt_entry
/* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
copying dynamic variables from a shared lib into an app's dynbss
section, and instead use a dynamic relocation to point into the
- shared lib. */
+ shared lib. With code that gcc generates, it's vital that this be
+ enabled; In the PowerPC64 ABI, the address of a function is actually
+ the address of a function descriptor, which resides in the .opd
+ section. gcc uses the descriptor directly rather than going via the
+ GOT as some other ABI's do, which means that initialized function
+ pointers must reference the descriptor. Thus, a function pointer
+ initialized to the address of a function in a shared library will
+ either require a copy reloc, or a dynamic reloc. Using a copy reloc
+ redefines the function desctriptor symbol to point to the copy. This
+ presents a problem as a plt entry for that function is also
+ initialized from the function descriptor symbol and the copy reloc
+ may not be initialized first. */
#define ELIMINATE_COPY_RELOCS 1
/* Section name for stubs is the associated section name plus this
@@ -2719,7 +2794,6 @@ struct ppc_link_hash_table
/* Short-cuts to get to dynamic linker sections. */
asection *got;
- asection *relgot;
asection *plt;
asection *relplt;
asection *dynbss;
@@ -2735,12 +2809,6 @@ struct ppc_link_hash_table
/* Shortcut to .__tls_get_addr. */
struct elf_link_hash_entry *tls_get_addr;
- /* TLS local dynamic got entry handling. */
- union {
- bfd_signed_vma refcount;
- bfd_vma offset;
- } tlsld_got;
-
/* Statistics. */
unsigned long stub_count[ppc_stub_plt_call];
@@ -2928,6 +2996,23 @@ ppc64_elf_link_hash_table_free (struct bfd_link_hash_table *hash)
_bfd_generic_link_hash_table_free (hash);
}
+/* Satisfy the ELF linker by filling in some fields in our fake bfd. */
+
+void
+ppc64_elf_init_stub_bfd (bfd *abfd, struct bfd_link_info *info)
+{
+ struct ppc_link_hash_table *htab;
+
+ elf_elfheader (abfd)->e_ident[EI_CLASS] = ELFCLASS64;
+
+/* Always hook our dynamic sections into the first bfd, which is the
+ linker created stub bfd. This ensures that the GOT header is at
+ the start of the output TOC section. */
+ htab = ppc_hash_table (info);
+ htab->stub_bfd = abfd;
+ htab->elf.dynobj = abfd;
+}
+
/* Build a name for an entry in the stub hash table. */
static char *
@@ -2950,7 +3035,7 @@ ppc_stub_name (const asection *input_section,
stub_name = bfd_malloc (len);
if (stub_name != NULL)
{
- sprintf (stub_name, "%08x_%s+%x",
+ sprintf (stub_name, "%08x.%s+%x",
input_section->id & 0xffffffff,
h->elf.root.root.string,
(int) rel->r_addend & 0xffffffff);
@@ -2962,7 +3047,7 @@ ppc_stub_name (const asection *input_section,
stub_name = bfd_malloc (len);
if (stub_name != NULL)
{
- sprintf (stub_name, "%08x_%x:%x+%x",
+ sprintf (stub_name, "%08x.%x:%x+%x",
input_section->id & 0xffffffff,
sym_sec->id & 0xffffffff,
(int) ELF64_R_SYM (rel->r_info) & 0xffffffff,
@@ -3122,30 +3207,43 @@ create_linkage_sections (bfd *dynobj, struct bfd_link_info *info)
return TRUE;
}
-/* Create .got and .rela.got sections in DYNOBJ, and set up
- shortcuts to them in our hash table. */
+/* Create .got and .rela.got sections in ABFD, and .got in dynobj if
+ not already done. */
static bfd_boolean
-create_got_section (bfd *dynobj, struct bfd_link_info *info)
+create_got_section (bfd *abfd, struct bfd_link_info *info)
{
- struct ppc_link_hash_table *htab;
-
- if (! _bfd_elf_create_got_section (dynobj, info))
- return FALSE;
+ asection *got, *relgot;
+ flagword flags;
+ struct ppc_link_hash_table *htab = ppc_hash_table (info);
- htab = ppc_hash_table (info);
- htab->got = bfd_get_section_by_name (dynobj, ".got");
if (!htab->got)
- abort ();
+ {
+ if (! _bfd_elf_create_got_section (htab->elf.dynobj, info))
+ return FALSE;
+
+ htab->got = bfd_get_section_by_name (htab->elf.dynobj, ".got");
+ if (!htab->got)
+ abort ();
+ }
- htab->relgot = bfd_make_section (dynobj, ".rela.got");
- if (!htab->relgot
- || ! bfd_set_section_flags (dynobj, htab->relgot,
- (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY | SEC_LINKER_CREATED
- | SEC_READONLY))
- || ! bfd_set_section_alignment (dynobj, htab->relgot, 3))
+ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED);
+
+ got = bfd_make_section (abfd, ".got");
+ if (!got
+ || !bfd_set_section_flags (abfd, got, flags)
+ || !bfd_set_section_alignment (abfd, got, 3))
+ return FALSE;
+
+ relgot = bfd_make_section (abfd, ".rela.got");
+ if (!relgot
+ || ! bfd_set_section_flags (abfd, relgot, flags | SEC_READONLY)
+ || ! bfd_set_section_alignment (abfd, relgot, 3))
return FALSE;
+
+ ppc64_elf_tdata (abfd)->got = got;
+ ppc64_elf_tdata (abfd)->relgot = relgot;
return TRUE;
}
@@ -3156,20 +3254,19 @@ ppc64_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
{
struct ppc_link_hash_table *htab;
- htab = ppc_hash_table (info);
- if (!htab->got && !create_got_section (dynobj, info))
- return FALSE;
-
if (!_bfd_elf_create_dynamic_sections (dynobj, info))
return FALSE;
+ htab = ppc_hash_table (info);
+ if (!htab->got)
+ htab->got = bfd_get_section_by_name (dynobj, ".got");
htab->plt = bfd_get_section_by_name (dynobj, ".plt");
htab->relplt = bfd_get_section_by_name (dynobj, ".rela.plt");
htab->dynbss = bfd_get_section_by_name (dynobj, ".dynbss");
if (!info->shared)
htab->relbss = bfd_get_section_by_name (dynobj, ".rela.bss");
- if (!htab->plt || !htab->relplt || !htab->dynbss
+ if (!htab->got || !htab->plt || !htab->relplt || !htab->dynbss
|| (!info->shared && !htab->relbss))
abort ();
@@ -3179,9 +3276,10 @@ ppc64_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-ppc64_elf_copy_indirect_symbol (struct elf_backend_data *bed ATTRIBUTE_UNUSED,
- struct elf_link_hash_entry *dir,
- struct elf_link_hash_entry *ind)
+ppc64_elf_copy_indirect_symbol
+ (const struct elf_backend_data *bed ATTRIBUTE_UNUSED,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct ppc_link_hash_entry *edir, *eind;
flagword mask;
@@ -3260,6 +3358,7 @@ ppc64_elf_copy_indirect_symbol (struct elf_backend_data *bed ATTRIBUTE_UNUSED,
for (dent = edir->elf.got.glist; dent != NULL; dent = dent->next)
if (dent->addend == ent->addend
+ && dent->owner == ent->owner
&& dent->tls_type == ent->tls_type)
{
dent->got.refcount += ent->got.refcount;
@@ -3360,7 +3459,9 @@ update_local_sym_info (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
struct got_entry *ent;
for (ent = local_got_ents[r_symndx]; ent != NULL; ent = ent->next)
- if (ent->addend == r_addend && ent->tls_type == tls_type)
+ if (ent->addend == r_addend
+ && ent->owner == abfd
+ && ent->tls_type == tls_type)
break;
if (ent == NULL)
{
@@ -3370,6 +3471,7 @@ update_local_sym_info (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
return FALSE;
ent->next = local_got_ents[r_symndx];
ent->addend = r_addend;
+ ent->owner = abfd;
ent->tls_type = tls_type;
ent->got.refcount = 0;
local_got_ents[r_symndx] = ent;
@@ -3407,6 +3509,31 @@ update_plt_info (bfd *abfd, struct ppc_link_hash_entry *eh, bfd_vma addend)
return TRUE;
}
+/* Find the function descriptor hash entry from the given function code
+ hash entry FH. Link the entries via their OH fields. */
+static struct ppc_link_hash_entry *
+get_fdh (struct ppc_link_hash_entry *fh, struct ppc_link_hash_table *htab)
+{
+ struct ppc_link_hash_entry *fdh = (struct ppc_link_hash_entry *) fh->oh;
+
+ if (fdh == NULL)
+ {
+ const char *fd_name = fh->elf.root.root.string + 1;
+
+ fdh = (struct ppc_link_hash_entry *)
+ elf_link_hash_lookup (&htab->elf, fd_name, FALSE, FALSE, FALSE);
+ if (fdh != NULL)
+ {
+ fdh->is_func_descriptor = 1;
+ fdh->oh = &fh->elf;
+ fh->is_func = 1;
+ fh->oh = &fdh->elf;
+ }
+ }
+
+ return fdh;
+}
+
/* Look through the relocs for a section during the first phase, and
calculate needed space in the global offset table, procedure
linkage table, and dynamic reloc sections. */
@@ -3423,7 +3550,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
asection *sreloc;
asection **opd_sym_map;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = ppc_hash_table (info);
@@ -3460,8 +3587,6 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
ppc64_elf_section_data (sec)->opd.func_sec = opd_sym_map;
}
- if (htab->elf.dynobj == NULL)
- htab->elf.dynobj = abfd;
if (htab->sfpr == NULL
&& !create_linkage_sections (htab->elf.dynobj, info))
return FALSE;
@@ -3487,7 +3612,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_GOT_TLSLD16_LO:
case R_PPC64_GOT_TLSLD16_HI:
case R_PPC64_GOT_TLSLD16_HA:
- htab->tlsld_got.refcount += 1;
+ ppc64_tlsld_got (abfd)->refcount += 1;
tls_type = TLS_TLS | TLS_LD;
goto dogottls;
@@ -3524,8 +3649,8 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_GOT16_LO_DS:
/* This symbol requires a global offset table entry. */
sec->has_gp_reloc = 1;
- if (htab->got == NULL
- && !create_got_section (htab->elf.dynobj, info))
+ if (ppc64_elf_tdata (abfd)->got == NULL
+ && !create_got_section (abfd, info))
return FALSE;
if (h != NULL)
@@ -3536,6 +3661,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
eh = (struct ppc_link_hash_entry *) h;
for (ent = eh->elf.got.glist; ent != NULL; ent = ent->next)
if (ent->addend == rel->r_addend
+ && ent->owner == abfd
&& ent->tls_type == tls_type)
break;
if (ent == NULL)
@@ -3546,6 +3672,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
return FALSE;
ent->next = eh->elf.got.glist;
ent->addend = rel->r_addend;
+ ent->owner = abfd;
ent->tls_type = tls_type;
ent->got.refcount = 0;
eh->elf.got.glist = ent;
@@ -3735,19 +3862,8 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
&& h != NULL
&& h->root.root.string[0] == '.'
&& h->root.root.string[1] != 0)
- {
- struct elf_link_hash_entry *fdh;
+ get_fdh ((struct ppc_link_hash_entry *) h, htab);
- fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
- FALSE, FALSE, FALSE);
- if (fdh != NULL)
- {
- ((struct ppc_link_hash_entry *) fdh)->is_func_descriptor = 1;
- ((struct ppc_link_hash_entry *) fdh)->oh = h;
- ((struct ppc_link_hash_entry *) h)->is_func = 1;
- ((struct ppc_link_hash_entry *) h)->oh = fdh;
- }
- }
if (opd_sym_map != NULL
&& h == NULL
&& rel + 1 < rel_end
@@ -4054,7 +4170,7 @@ ppc64_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
case R_PPC64_GOT_TLSLD16_LO:
case R_PPC64_GOT_TLSLD16_HI:
case R_PPC64_GOT_TLSLD16_HA:
- htab->tlsld_got.refcount -= 1;
+ ppc64_tlsld_got (abfd)->refcount -= 1;
tls_type = TLS_TLS | TLS_LD;
goto dogot;
@@ -4096,6 +4212,7 @@ ppc64_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
for (; ent != NULL; ent = ent->next)
if (ent->addend == rel->r_addend
+ && ent->owner == abfd
&& ent->tls_type == tls_type)
break;
if (ent == NULL)
@@ -4144,113 +4261,118 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
struct bfd_link_info *info;
struct ppc_link_hash_table *htab;
struct plt_entry *ent;
+ struct ppc_link_hash_entry *fh;
+ struct ppc_link_hash_entry *fdh;
+ bfd_boolean force_local;
- if (h->root.type == bfd_link_hash_indirect)
+ fh = (struct ppc_link_hash_entry *) h;
+ if (fh->elf.root.type == bfd_link_hash_indirect)
return TRUE;
- if (h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ if (fh->elf.root.type == bfd_link_hash_warning)
+ fh = (struct ppc_link_hash_entry *) fh->elf.root.u.i.link;
info = inf;
htab = ppc_hash_table (info);
/* If this is a function code symbol, transfer dynamic linking
information to the function descriptor symbol. */
- if (!((struct ppc_link_hash_entry *) h)->is_func)
+ if (!fh->is_func)
return TRUE;
- if (h->root.type == bfd_link_hash_undefweak
- && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR))
+ if (fh->elf.root.type == bfd_link_hash_undefweak
+ && (fh->elf.elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR))
htab->have_undefweak = TRUE;
- for (ent = h->plt.plist; ent != NULL; ent = ent->next)
+ for (ent = fh->elf.plt.plist; ent != NULL; ent = ent->next)
if (ent->plt.refcount > 0)
break;
- if (ent != NULL
- && h->root.root.string[0] == '.'
- && h->root.root.string[1] != '\0')
- {
- struct elf_link_hash_entry *fdh = ((struct ppc_link_hash_entry *) h)->oh;
- bfd_boolean force_local;
+ if (ent == NULL
+ || fh->elf.root.root.string[0] != '.'
+ || fh->elf.root.root.string[1] == '\0')
+ return TRUE;
- /* Find the corresponding function descriptor symbol. Create it
- as undefined if necessary. */
+ /* Find the corresponding function descriptor symbol. Create it
+ as undefined if necessary. */
- if (fdh == NULL)
- fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
- FALSE, FALSE, TRUE);
+ fdh = get_fdh (fh, htab);
+ if (fdh != NULL)
+ while (fdh->elf.root.type == bfd_link_hash_indirect
+ || fdh->elf.root.type == bfd_link_hash_warning)
+ fdh = (struct ppc_link_hash_entry *) fdh->elf.root.u.i.link;
- if (fdh == NULL
- && info->shared
- && (h->root.type == bfd_link_hash_undefined
- || h->root.type == bfd_link_hash_undefweak))
+ if (fdh == NULL
+ && info->shared
+ && (fh->elf.root.type == bfd_link_hash_undefined
+ || fh->elf.root.type == bfd_link_hash_undefweak))
+ {
+ bfd *abfd;
+ asymbol *newsym;
+ struct bfd_link_hash_entry *bh;
+
+ abfd = fh->elf.root.u.undef.abfd;
+ newsym = bfd_make_empty_symbol (abfd);
+ newsym->name = fh->elf.root.root.string + 1;
+ newsym->section = bfd_und_section_ptr;
+ newsym->value = 0;
+ newsym->flags = BSF_OBJECT;
+ if (fh->elf.root.type == bfd_link_hash_undefweak)
+ newsym->flags |= BSF_WEAK;
+
+ bh = &fdh->elf.root;
+ if ( !(_bfd_generic_link_add_one_symbol
+ (info, abfd, newsym->name, newsym->flags,
+ newsym->section, newsym->value, NULL, FALSE, FALSE, &bh)))
{
- bfd *abfd;
- asymbol *newsym;
- struct bfd_link_hash_entry *bh;
-
- abfd = h->root.u.undef.abfd;
- newsym = bfd_make_empty_symbol (abfd);
- newsym->name = h->root.root.string + 1;
- newsym->section = bfd_und_section_ptr;
- newsym->value = 0;
- newsym->flags = BSF_OBJECT;
- if (h->root.type == bfd_link_hash_undefweak)
- newsym->flags |= BSF_WEAK;
-
- bh = &fdh->root;
- if ( !(_bfd_generic_link_add_one_symbol
- (info, abfd, newsym->name, newsym->flags,
- newsym->section, newsym->value, NULL, FALSE, FALSE, &bh)))
- {
- return FALSE;
- }
- fdh = (struct elf_link_hash_entry *) bh;
- fdh->elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
+ return FALSE;
}
+ fdh = (struct ppc_link_hash_entry *) bh;
+ fdh->elf.elf_link_hash_flags &= ~ELF_LINK_NON_ELF;
+ fdh->elf.size = 24;
+ fdh->elf.type = STT_OBJECT;
+ }
- if (fdh != NULL
- && (fdh->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
- && (info->shared
- || (fdh->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
- || (fdh->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0))
+ if (fdh != NULL
+ && (fdh->elf.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
+ && (info->shared
+ || (fdh->elf.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
+ || (fdh->elf.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0
+ || (fdh->elf.root.type == bfd_link_hash_undefweak
+ && ELF_ST_VISIBILITY (fdh->elf.other) == STV_DEFAULT)))
+ {
+ if (fdh->elf.dynindx == -1)
+ if (! bfd_elf64_link_record_dynamic_symbol (info, &fdh->elf))
+ return FALSE;
+ fdh->elf.elf_link_hash_flags
+ |= (fh->elf.elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
+ | ELF_LINK_HASH_REF_DYNAMIC
+ | ELF_LINK_HASH_REF_REGULAR_NONWEAK
+ | ELF_LINK_NON_GOT_REF));
+ if (ELF_ST_VISIBILITY (fh->elf.other) == STV_DEFAULT)
{
- if (fdh->dynindx == -1)
- if (! bfd_elf64_link_record_dynamic_symbol (info, fdh))
- return FALSE;
- fdh->elf_link_hash_flags |= (h->elf_link_hash_flags
- & (ELF_LINK_HASH_REF_REGULAR
- | ELF_LINK_HASH_REF_DYNAMIC
- | ELF_LINK_HASH_REF_REGULAR_NONWEAK
- | ELF_LINK_NON_GOT_REF));
- if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- {
- fdh->plt.plist = h->plt.plist;
- fdh->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
- }
- ((struct ppc_link_hash_entry *) fdh)->is_func_descriptor = 1;
- ((struct ppc_link_hash_entry *) fdh)->oh = h;
- ((struct ppc_link_hash_entry *) h)->oh = fdh;
+ fdh->elf.plt.plist = fh->elf.plt.plist;
+ fdh->elf.elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT;
}
-
- /* Now that the info is on the function descriptor, clear the
- function code sym info. Any function code syms for which we
- don't have a definition in a regular file, we force local.
- This prevents a shared library from exporting syms that have
- been imported from another library. Function code syms that
- are really in the library we must leave global to prevent the
- linker dragging in a definition from a static library. */
- force_local = (info->shared
- && ((h->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0
- || fdh == NULL
- || (fdh->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0
- || (fdh->elf_link_hash_flags
- & ELF_LINK_FORCED_LOCAL) != 0));
- _bfd_elf_link_hash_hide_symbol (info, h, force_local);
+ fdh->is_func_descriptor = 1;
+ fdh->oh = &fh->elf;
+ fh->oh = &fdh->elf;
}
+ /* Now that the info is on the function descriptor, clear the
+ function code sym info. Any function code syms for which we
+ don't have a definition in a regular file, we force local.
+ This prevents a shared library from exporting syms that have
+ been imported from another library. Function code syms that
+ are really in the library we must leave global to prevent the
+ linker dragging in a definition from a static library. */
+ force_local
+ = (info->shared
+ && ((fh->elf.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
+ || fdh == NULL
+ || (fdh->elf.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
+ || (fdh->elf.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0));
+ _bfd_elf_link_hash_hide_symbol (info, &fh->elf, force_local);
+
return TRUE;
}
@@ -4287,7 +4409,7 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
sym[8] = i % 10 + '0';
h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE);
if (h != NULL
- && h->root.type == bfd_link_hash_undefined)
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
{
if (lowest_savef > i)
lowest_savef = i;
@@ -4296,7 +4418,7 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
h->root.u.def.value = (i - lowest_savef) * 4;
h->type = STT_FUNC;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
- _bfd_elf_link_hash_hide_symbol (info, h, info->shared);
+ _bfd_elf_link_hash_hide_symbol (info, h, TRUE);
}
}
@@ -4307,7 +4429,7 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
sym[8] = i % 10 + '0';
h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE);
if (h != NULL
- && h->root.type == bfd_link_hash_undefined)
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
{
if (lowest_restf > i)
lowest_restf = i;
@@ -4317,7 +4439,7 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
+ (i - lowest_restf) * 4);
h->type = STT_FUNC;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
- _bfd_elf_link_hash_hide_symbol (info, h, info->shared);
+ _bfd_elf_link_hash_hide_symbol (info, h, TRUE);
}
}
@@ -4426,9 +4548,6 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
return TRUE;
}
- /* This is a reference to a symbol defined by a dynamic object which
- is not a function. */
-
/* If we are creating a shared library, we must presume that the
only references to the symbol are via the global offset table.
For such cases we need not do anything here; the relocations will
@@ -4463,6 +4582,22 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
}
}
+ if (h->plt.plist != NULL)
+ {
+ /* We should never get here, but unfortunately there are versions
+ of gcc out there that improperly (for this ABI) put initialized
+ function pointers, vtable refs and suchlike in read-only
+ sections. Allow them to proceed, but warn that this might
+ break at runtime. */
+ (*_bfd_error_handler)
+ (_("copy reloc against `%s' requires lazy plt linking; "
+ "avoid setting LD_BIND_NOW=1 or upgrade gcc"),
+ h->root.root.string);
+ }
+
+ /* This is a reference to a symbol defined by a dynamic object which
+ is not a function. */
+
/* We must allocate the symbol in our .dynbss section, which will
become part of the .bss section of the executable. There will be
an entry for this symbol in the .dynsym section. The dynamic
@@ -4764,7 +4899,7 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
need_edit = FALSE;
offset = 0;
relend = relstart + sec->reloc_count;
- for (rel = relstart; rel < relend; rel++)
+ for (rel = relstart; rel < relend; )
{
enum elf_ppc64_reloc_type r_type;
unsigned long r_symndx;
@@ -4775,26 +4910,9 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
/* .opd contains a regular array of 24 byte entries. We're
only interested in the reloc pointing to a function entry
point. */
- r_type = ELF64_R_TYPE (rel->r_info);
- if (r_type == R_PPC64_TOC)
- continue;
-
- if (r_type != R_PPC64_ADDR64)
- {
- (*_bfd_error_handler)
- (_("%s: unexpected reloc type %u in .opd section"),
- bfd_archive_filename (ibfd), r_type);
- need_edit = FALSE;
- break;
- }
-
- if (rel + 1 >= relend)
- continue;
- r_type = ELF64_R_TYPE ((rel + 1)->r_info);
- if (r_type != R_PPC64_TOC)
- continue;
-
- if (rel->r_offset != offset)
+ if (rel->r_offset != offset
+ || rel + 1 >= relend
+ || (rel + 1)->r_offset != offset + 8)
{
/* If someone messes with .opd alignment then after a
"ld -r" we might have padding in the middle of .opd.
@@ -4808,10 +4926,20 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
break;
}
+ if ((r_type = ELF64_R_TYPE (rel->r_info)) != R_PPC64_ADDR64
+ || (r_type = ELF64_R_TYPE ((rel + 1)->r_info)) != R_PPC64_TOC)
+ {
+ (*_bfd_error_handler)
+ (_("%s: unexpected reloc type %u in .opd section"),
+ bfd_archive_filename (ibfd), r_type);
+ need_edit = FALSE;
+ break;
+ }
+
r_symndx = ELF64_R_SYM (rel->r_info);
if (!get_sym_h (&h, &sym, &sym_sec, NULL, &local_syms,
r_symndx, ibfd))
- goto error_free_rel;
+ goto error_ret;
if (sym_sec == NULL || sym_sec->owner == NULL)
{
@@ -4841,6 +4969,11 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
need_edit = TRUE;
offset += 24;
+ rel += 2;
+ /* Allow for the possibility of a reloc on the third word. */
+ if (rel < relend
+ && rel->r_offset == offset - 8)
+ rel += 1;
}
if (need_edit)
@@ -4860,10 +4993,10 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
|| !bfd_get_section_contents (ibfd, sec, loc, 0,
sec->_raw_size))
{
+ error_ret:
if (local_syms != NULL
&& symtab_hdr->contents != (unsigned char *) local_syms)
free (local_syms);
- error_free_rel:
if (elf_section_data (sec)->relocs != relstart)
free (relstart);
return FALSE;
@@ -4881,16 +5014,22 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
offset = 0;
for (rel = relstart; rel < relend; rel++)
{
+ unsigned long r_symndx;
+ asection *sym_sec;
+ struct elf_link_hash_entry *h;
+ Elf_Internal_Sym *sym;
+
+ r_symndx = ELF64_R_SYM (rel->r_info);
+ if (!get_sym_h (&h, &sym, &sym_sec, NULL, &local_syms,
+ r_symndx, ibfd))
+ goto error_ret;
+
if (rel->r_offset == offset)
{
- unsigned long r_symndx;
- asection *sym_sec;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
-
- r_symndx = ELF64_R_SYM (rel->r_info);
- get_sym_h (&h, &sym, &sym_sec, NULL, &local_syms,
- r_symndx, ibfd);
+ struct ppc_link_hash_entry *fdh = NULL;
+ if (h != NULL)
+ fdh = get_fdh ((struct ppc_link_hash_entry *) h,
+ ppc_hash_table (info));
skip = (sym_sec->owner != ibfd
|| sym_sec->output_section == bfd_abs_section_ptr);
@@ -4900,27 +5039,6 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
{
/* Arrange for the function descriptor sym
to be dropped. */
- struct ppc_link_hash_entry *fdh;
- struct ppc_link_hash_entry *fh;
-
- fh = (struct ppc_link_hash_entry *) h;
- fdh = (struct ppc_link_hash_entry *) fh->oh;
- if (fdh == NULL)
- {
- const char *fd_name;
- struct ppc_link_hash_table *htab;
-
- fd_name = h->root.root.string + 1;
- htab = ppc_hash_table (info);
- fdh = (struct ppc_link_hash_entry *)
- elf_link_hash_lookup (&htab->elf, fd_name,
- FALSE, FALSE, FALSE);
- fdh->is_func_descriptor = 1;
- fdh->oh = &fh->elf;
- fh->is_func = 1;
- fh->oh = &fdh->elf;
- }
-
fdh->elf.root.u.def.value = 0;
fdh->elf.root.u.def.section = sym_sec;
}
@@ -4935,27 +5053,6 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
to this location in the opd section.
We've checked above that opd relocs are
ordered. */
- struct ppc_link_hash_entry *fdh;
- struct ppc_link_hash_entry *fh;
-
- fh = (struct ppc_link_hash_entry *) h;
- fdh = (struct ppc_link_hash_entry *) fh->oh;
- if (fdh == NULL)
- {
- const char *fd_name;
- struct ppc_link_hash_table *htab;
-
- fd_name = h->root.root.string + 1;
- htab = ppc_hash_table (info);
- fdh = (struct ppc_link_hash_entry *)
- elf_link_hash_lookup (&htab->elf, fd_name,
- FALSE, FALSE, FALSE);
- fdh->is_func_descriptor = 1;
- fdh->oh = &fh->elf;
- fh->is_func = 1;
- fh->oh = &fdh->elf;
- }
-
fdh->elf.root.u.def.value = wptr - sec->contents;
}
else
@@ -4977,11 +5074,41 @@ ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info)
offset += 24;
}
- /* We need to adjust any reloc offsets to point to the
- new opd entries. While we're at it, we may as well
- remove redundant relocs. */
- if (!skip)
+ if (skip)
{
+ BFD_ASSERT (MUST_BE_DYN_RELOC (ELF64_R_TYPE (rel->r_info)));
+ if (info->shared)
+ {
+ /* We won't be needing dynamic relocs here. */
+ struct ppc_dyn_relocs **pp;
+ struct ppc_dyn_relocs *p;
+
+ if (h != NULL)
+ pp = &((struct ppc_link_hash_entry *) h)->dyn_relocs;
+ else if (sym_sec != NULL)
+ pp = ((struct ppc_dyn_relocs **)
+ &elf_section_data (sym_sec)->local_dynrel);
+ else
+ pp = ((struct ppc_dyn_relocs **)
+ &elf_section_data (sec)->local_dynrel);
+ while ((p = *pp) != NULL)
+ {
+ if (p->sec == sec)
+ {
+ p->count -= 1;
+ if (p->count == 0)
+ *pp = p->next;
+ break;
+ }
+ pp = &p->next;
+ }
+ }
+ }
+ else
+ {
+ /* We need to adjust any reloc offsets to point to the
+ new opd entries. While we're at it, we may as well
+ remove redundant relocs. */
rel->r_offset += wptr - rptr;
if (write_rel != rel)
memcpy (write_rel, rel, sizeof (*rel));
@@ -5057,7 +5184,7 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
asection *sec;
struct ppc_link_hash_table *htab;
- if (info->relocateable || info->shared)
+ if (info->relocatable || info->shared)
return TRUE;
htab = ppc_hash_table (info);
@@ -5138,7 +5265,7 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
/* These relocs should never be against a symbol
defined in a shared lib. Leave them alone if
that turns out to be the case. */
- htab->tlsld_got.refcount -= 1;
+ ppc64_tlsld_got (ibfd)->refcount -= 1;
if (!is_local)
continue;
@@ -5276,6 +5403,7 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
for (; ent != NULL; ent = ent->next)
if (ent->addend == rel->r_addend
+ && ent->owner == ibfd
&& ent->tls_type == tls_type)
break;
if (ent == NULL)
@@ -5431,7 +5559,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
for (ent = h->got.glist; ent != NULL; ent = ent->next)
if (ent->got.refcount > 0
&& (ent->tls_type & TLS_TPREL) != 0
- && ent->addend == gent->addend)
+ && ent->addend == gent->addend
+ && ent->owner == gent->owner)
{
gent->got.refcount = 0;
break;
@@ -5460,11 +5589,11 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
if ((gent->tls_type & TLS_LD) != 0
&& !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC))
{
- gent->got.offset = htab->tlsld_got.offset;
+ gent->got.offset = ppc64_tlsld_got (gent->owner)->offset;
continue;
}
- s = htab->got;
+ s = ppc64_elf_tdata (gent->owner)->got;
gent->got.offset = s->_raw_size;
s->_raw_size
+= (gent->tls_type & eh->tls_mask & (TLS_GD | TLS_LD)) ? 16 : 8;
@@ -5473,7 +5602,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|| WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h))
&& (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak))
- htab->relgot->_raw_size
+ ppc64_elf_tdata (gent->owner)->relgot->_raw_size
+= (gent->tls_type & eh->tls_mask & TLS_GD
? 2 * sizeof (Elf64_External_Rela)
: sizeof (Elf64_External_Rela));
@@ -5618,16 +5747,6 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
}
}
- if (htab->tlsld_got.refcount > 0)
- {
- htab->tlsld_got.offset = htab->got->_raw_size;
- htab->got->_raw_size += 16;
- if (info->shared)
- htab->relgot->_raw_size += sizeof (Elf64_External_Rela);
- }
- else
- htab->tlsld_got.offset = (bfd_vma) -1;
-
/* Set up .got offsets for local syms, and space for local dynamic
relocs. */
for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
@@ -5642,6 +5761,20 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
continue;
+ if (ppc64_tlsld_got (ibfd)->refcount > 0)
+ {
+ s = ppc64_elf_tdata (ibfd)->got;
+ ppc64_tlsld_got (ibfd)->offset = s->_raw_size;
+ s->_raw_size += 16;
+ if (info->shared)
+ {
+ srel = ppc64_elf_tdata (ibfd)->relgot;
+ srel->_raw_size += sizeof (Elf64_External_Rela);
+ }
+ }
+ else
+ ppc64_tlsld_got (ibfd)->offset = (bfd_vma) -1;
+
for (s = ibfd->sections; s != NULL; s = s->next)
{
struct ppc_dyn_relocs *p;
@@ -5677,8 +5810,8 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
locsymcount = symtab_hdr->sh_info;
end_lgot_ents = lgot_ents + locsymcount;
lgot_masks = (char *) end_lgot_ents;
- s = htab->got;
- srel = htab->relgot;
+ s = ppc64_elf_tdata (ibfd)->got;
+ srel = ppc64_elf_tdata (ibfd)->relgot;
for (; lgot_ents < end_lgot_ents; ++lgot_ents, ++lgot_masks)
{
struct got_entry *ent;
@@ -5688,14 +5821,14 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
{
if ((ent->tls_type & *lgot_masks & TLS_LD) != 0)
{
- if (htab->tlsld_got.offset == (bfd_vma) -1)
+ if (ppc64_tlsld_got (ibfd)->offset == (bfd_vma) -1)
{
- htab->tlsld_got.offset = s->_raw_size;
+ ppc64_tlsld_got (ibfd)->offset = s->_raw_size;
s->_raw_size += 16;
if (info->shared)
srel->_raw_size += sizeof (Elf64_External_Rela);
}
- ent->got.offset = htab->tlsld_got.offset;
+ ent->got.offset = ppc64_tlsld_got (ibfd)->offset;
}
else
{
@@ -5738,16 +5871,8 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
if (s == htab->brlt || s == htab->relbrlt)
/* These haven't been allocated yet; don't strip. */
continue;
- else if (s == htab->got)
- {
- /* Automatic multiple tocs aren't possible if we are using the
- GOT. The GOT is accessed via r2, so we can't adjust r2.
- FIXME: There's no reason why we couldn't lay out multiple
- GOTs too. */
- if (s->_raw_size > elf_backend_got_header_size)
- htab->no_multi_toc = 1;
- }
- else if (s == htab->plt
+ else if (s == htab->got
+ || s == htab->plt
|| s == htab->glink)
{
/* Strip this section if we don't need it; see the
@@ -5805,6 +5930,38 @@ ppc64_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
return FALSE;
}
+ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
+ {
+ s = ppc64_elf_tdata (ibfd)->got;
+ if (s != NULL && s != htab->got)
+ {
+ s->_cooked_size = 0;
+ if (s->_raw_size == 0)
+ _bfd_strip_section_from_output (info, s);
+ else
+ {
+ s->contents = bfd_zalloc (ibfd, s->_raw_size);
+ if (s->contents == NULL)
+ return FALSE;
+ }
+ }
+ s = ppc64_elf_tdata (ibfd)->relgot;
+ if (s != NULL)
+ {
+ s->_cooked_size = 0;
+ if (s->_raw_size == 0)
+ _bfd_strip_section_from_output (info, s);
+ else
+ {
+ s->contents = bfd_zalloc (ibfd, s->_raw_size);
+ if (s->contents == NULL)
+ return FALSE;
+ relocs = TRUE;
+ s->reloc_count = 0;
+ }
+ }
+ }
+
if (htab->elf.dynamic_sections_created)
{
/* Add some entries to the .dynamic section. We fill in the
@@ -5949,8 +6106,6 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
struct ppc_branch_hash_entry *br_entry;
struct bfd_link_info *info;
struct ppc_link_hash_table *htab;
- asection *stub_sec;
- bfd *stub_bfd;
bfd_byte *loc;
bfd_byte *p;
unsigned int indx;
@@ -5963,29 +6118,10 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
info = in_arg;
htab = ppc_hash_table (info);
- stub_sec = stub_entry->stub_sec;
/* Make a note of the offset within the stubs for this entry. */
- stub_entry->stub_offset = stub_sec->_cooked_size;
- loc = stub_sec->contents + stub_entry->stub_offset;
-
- if (htab->emit_stub_syms)
- {
- struct elf_link_hash_entry *h;
- h = elf_link_hash_lookup (&htab->elf, stub_entry->root.string,
- TRUE, FALSE, FALSE);
- if (h == NULL)
- return FALSE;
- h->root.type = bfd_link_hash_defined;
- h->root.u.def.section = stub_entry->stub_sec;
- h->root.u.def.value = stub_entry->stub_offset;
- h->elf_link_hash_flags = (ELF_LINK_HASH_REF_REGULAR
- | ELF_LINK_HASH_DEF_REGULAR
- | ELF_LINK_HASH_REF_REGULAR_NONWEAK
- | ELF_LINK_FORCED_LOCAL);
- }
-
- stub_bfd = stub_sec->owner;
+ stub_entry->stub_offset = stub_entry->stub_sec->_cooked_size;
+ loc = stub_entry->stub_sec->contents + stub_entry->stub_offset;
htab->stub_count[stub_entry->stub_type - 1] += 1;
switch (stub_entry->stub_type)
@@ -5999,8 +6135,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
/* And this is where we are coming from. */
off -= (stub_entry->stub_offset
- + stub_sec->output_offset
- + stub_sec->output_section->vma);
+ + stub_entry->stub_sec->output_offset
+ + stub_entry->stub_sec->output_section->vma);
if (stub_entry->stub_type != ppc_stub_long_branch_r2off)
size = 4;
@@ -6010,16 +6146,16 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
r2off = (htab->stub_group[stub_entry->target_section->id].toc_off
- htab->stub_group[stub_entry->id_sec->id].toc_off);
- bfd_put_32 (stub_bfd, STD_R2_40R1, loc);
+ bfd_put_32 (htab->stub_bfd, STD_R2_40R1, loc);
loc += 4;
- bfd_put_32 (stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc);
+ bfd_put_32 (htab->stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc);
loc += 4;
- bfd_put_32 (stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc);
+ bfd_put_32 (htab->stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc);
loc += 4;
off -= 12;
size = 16;
}
- bfd_put_32 (stub_bfd, B_DOT | (off & 0x3fffffc), loc);
+ bfd_put_32 (htab->stub_bfd, B_DOT | (off & 0x3fffffc), loc);
BFD_ASSERT (off + (1 << 25) < (bfd_vma) (1 << 26));
break;
@@ -6080,9 +6216,9 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
indx = off;
if (stub_entry->stub_type != ppc_stub_plt_branch_r2off)
{
- bfd_put_32 (stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc);
+ bfd_put_32 (htab->stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc);
loc += 4;
- bfd_put_32 (stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc);
+ bfd_put_32 (htab->stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc);
size = 16;
}
else
@@ -6091,21 +6227,21 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
r2off = (htab->stub_group[stub_entry->target_section->id].toc_off
- htab->stub_group[stub_entry->id_sec->id].toc_off);
- bfd_put_32 (stub_bfd, STD_R2_40R1, loc);
+ bfd_put_32 (htab->stub_bfd, STD_R2_40R1, loc);
loc += 4;
- bfd_put_32 (stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc);
+ bfd_put_32 (htab->stub_bfd, ADDIS_R12_R2 | PPC_HA (indx), loc);
loc += 4;
- bfd_put_32 (stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc);
+ bfd_put_32 (htab->stub_bfd, LD_R11_0R12 | PPC_LO (indx), loc);
loc += 4;
- bfd_put_32 (stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc);
+ bfd_put_32 (htab->stub_bfd, ADDIS_R2_R2 | PPC_HA (r2off), loc);
loc += 4;
- bfd_put_32 (stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc);
+ bfd_put_32 (htab->stub_bfd, ADDI_R2_R2 | PPC_LO (r2off), loc);
size = 28;
}
loc += 4;
- bfd_put_32 (stub_bfd, MTCTR_R11, loc);
+ bfd_put_32 (htab->stub_bfd, MTCTR_R11, loc);
loc += 4;
- bfd_put_32 (stub_bfd, BCTR, loc);
+ bfd_put_32 (htab->stub_bfd, BCTR, loc);
break;
case ppc_stub_plt_call:
@@ -6152,7 +6288,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
return FALSE;
}
- p = build_plt_stub (stub_bfd, loc, off);
+ p = build_plt_stub (htab->stub_bfd, loc, off);
size = p - loc;
break;
@@ -6161,7 +6297,31 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
return FALSE;
}
- stub_sec->_cooked_size += size;
+ stub_entry->stub_sec->_cooked_size += size;
+
+ if (htab->emit_stub_syms
+ && !(stub_entry->stub_type == ppc_stub_plt_call
+ && stub_entry->h->oh->root.type == bfd_link_hash_defined
+ && stub_entry->h->oh->root.u.def.section == stub_entry->stub_sec
+ && stub_entry->h->oh->root.u.def.value == stub_entry->stub_offset))
+ {
+ struct elf_link_hash_entry *h;
+ h = elf_link_hash_lookup (&htab->elf, stub_entry->root.string,
+ TRUE, FALSE, FALSE);
+ if (h == NULL)
+ return FALSE;
+ if (h->root.type == bfd_link_hash_new)
+ {
+ h->root.type = bfd_link_hash_defined;
+ h->root.u.def.section = stub_entry->stub_sec;
+ h->root.u.def.value = stub_entry->stub_offset;
+ h->elf_link_hash_flags = (ELF_LINK_HASH_REF_REGULAR
+ | ELF_LINK_HASH_DEF_REGULAR
+ | ELF_LINK_HASH_REF_REGULAR_NONWEAK
+ | ELF_LINK_FORCED_LOCAL);
+ }
+ }
+
return TRUE;
}
@@ -6323,10 +6483,10 @@ ppc64_elf_setup_section_lists (bfd *output_bfd, struct bfd_link_info *info)
return 1;
}
-/* The linker repeatedly calls this function for each toc input
- section. Group input bfds such that the toc within a group
- is less than 64k in size. Will break with cute linker scripts
- that play games with dot in the output toc section. */
+/* The linker repeatedly calls this function for each TOC input section
+ and linker generated GOT section. Group input bfds such that the toc
+ within a group is less than 64k in size. Will break with cute linker
+ scripts that play games with dot in the output toc section. */
void
ppc64_elf_next_toc_section (struct bfd_link_info *info, asection *isec)
@@ -6374,6 +6534,10 @@ toc_adjusting_stub_needed (struct bfd_link_info *info, asection *isec)
int ret;
int branch_ok;
+ /* We know none of our code bearing sections will need toc stubs. */
+ if ((isec->flags & SEC_LINKER_CREATED) != 0)
+ return 0;
+
/* Hack for linux kernel. .fixup contains branches, but only back to
the function that hit an exception. */
branch_ok = strcmp (isec->name, ".fixup") == 0;
@@ -6385,7 +6549,7 @@ toc_adjusting_stub_needed (struct bfd_link_info *info, asection *isec)
if (contents == NULL)
return -1;
if (! bfd_get_section_contents (isec->owner, isec, contents,
- (file_ptr) 0, isec->_raw_size))
+ 0, isec->_raw_size))
{
free (contents);
return -1;
@@ -6401,7 +6565,7 @@ toc_adjusting_stub_needed (struct bfd_link_info *info, asection *isec)
{
unsigned long insn = bfd_get_32 (isec->owner, contents + i);
/* Is this a branch? */
- if ((insn & (0x1f << 26)) == (18 << 26)
+ if ((insn & (0x3f << 26)) == (18 << 26)
/* If branch and link, it's a function call. */
&& ((insn & 1) != 0
/* Sibling calls use a plain branch. I don't know a way
@@ -6443,7 +6607,8 @@ ppc64_elf_next_input_section (struct bfd_link_info *info, asection *isec)
/* If a code section has a function that uses the TOC then we need
to use the right TOC (obviously). Also, make sure that .opd gets
- the correct TOC value. */
+ the correct TOC value for R_PPC64_TOC relocs that don't have or
+ can't find their function symbol (shouldn't ever happen now). */
if (isec->has_gp_reloc || (isec->flags & SEC_CODE) == 0)
{
if (elf_gp (isec->owner) != 0)
@@ -6551,7 +6716,6 @@ group_sections (struct ppc_link_hash_table *htab,
bfd_boolean
ppc64_elf_size_stubs (bfd *output_bfd,
- bfd *stub_bfd,
struct bfd_link_info *info,
bfd_signed_vma group_size,
asection *(*add_stub_section) (const char *, asection *),
@@ -6562,7 +6726,6 @@ ppc64_elf_size_stubs (bfd *output_bfd,
struct ppc_link_hash_table *htab = ppc_hash_table (info);
/* Stash our params away. */
- htab->stub_bfd = stub_bfd;
htab->add_stub_section = add_stub_section;
htab->layout_sections_again = layout_sections_again;
stubs_always_before_branch = group_size < 0;
@@ -6816,10 +6979,11 @@ ppc64_elf_size_stubs (bfd *output_bfd,
for (stub_sec = htab->stub_bfd->sections;
stub_sec != NULL;
stub_sec = stub_sec->next)
- {
- stub_sec->_raw_size = 0;
- stub_sec->_cooked_size = 0;
- }
+ if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+ {
+ stub_sec->_raw_size = 0;
+ stub_sec->_cooked_size = 0;
+ }
htab->brlt->_raw_size = 0;
htab->brlt->_cooked_size = 0;
@@ -6905,24 +7069,26 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
struct ppc_link_hash_table *htab = ppc_hash_table (info);
asection *stub_sec;
bfd_byte *p;
+ int stub_sec_count = 0;
htab->emit_stub_syms = emit_stub_syms;
for (stub_sec = htab->stub_bfd->sections;
stub_sec != NULL;
stub_sec = stub_sec->next)
- {
- bfd_size_type size;
+ if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+ {
+ bfd_size_type size;
- /* Allocate memory to hold the linker stubs. */
- size = stub_sec->_raw_size;
- if (size != 0)
- {
- stub_sec->contents = bfd_zalloc (htab->stub_bfd, size);
- if (stub_sec->contents == NULL)
- return FALSE;
- }
- stub_sec->_cooked_size = 0;
- }
+ /* Allocate memory to hold the linker stubs. */
+ size = stub_sec->_raw_size;
+ if (size != 0)
+ {
+ stub_sec->contents = bfd_zalloc (htab->stub_bfd, size);
+ if (stub_sec->contents == NULL)
+ return FALSE;
+ }
+ stub_sec->_cooked_size = 0;
+ }
if (htab->plt != NULL)
{
@@ -6942,6 +7108,23 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
return FALSE;
}
+ if (htab->emit_stub_syms)
+ {
+ struct elf_link_hash_entry *h;
+ h = elf_link_hash_lookup (&htab->elf, "__glink", TRUE, FALSE, FALSE);
+ if (h == NULL)
+ return FALSE;
+ if (h->root.type == bfd_link_hash_new)
+ {
+ h->root.type = bfd_link_hash_defined;
+ h->root.u.def.section = htab->glink;
+ h->root.u.def.value = 0;
+ h->elf_link_hash_flags = (ELF_LINK_HASH_REF_REGULAR
+ | ELF_LINK_HASH_DEF_REGULAR
+ | ELF_LINK_HASH_REF_REGULAR_NONWEAK
+ | ELF_LINK_FORCED_LOCAL);
+ }
+ }
p = htab->glink->contents;
bfd_put_32 (htab->glink->owner, MFCTR_R12, p);
p += 4;
@@ -7014,10 +7197,12 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
for (stub_sec = htab->stub_bfd->sections;
stub_sec != NULL;
stub_sec = stub_sec->next)
- {
- if (stub_sec->_raw_size != stub_sec->_cooked_size)
- break;
- }
+ if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+ {
+ stub_sec_count += 1;
+ if (stub_sec->_raw_size != stub_sec->_cooked_size)
+ break;
+ }
if (stub_sec != NULL
|| htab->glink->_raw_size != htab->glink->_cooked_size)
@@ -7041,7 +7226,7 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
" long branch %lu\n"
" long toc adj %lu\n"
" plt call %lu"),
- htab->stub_bfd->section_count,
+ stub_sec_count,
htab->stub_count[ppc_stub_long_branch - 1],
htab->stub_count[ppc_stub_long_branch_r2off - 1],
htab->stub_count[ppc_stub_plt_branch - 1],
@@ -7060,7 +7245,7 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
This function is responsible for adjust the section contents as
necessary, and (if using Rela relocs and generating a
- relocateable output file) adjusting the reloc addend as
+ relocatable output file) adjusting the reloc addend as
necessary.
This function does not have to worry about setting the reloc
@@ -7074,7 +7259,7 @@ ppc64_elf_build_stubs (bfd_boolean emit_stub_syms,
The global hash table entry for the global symbols can be found
via elf_sym_hashes (input_bfd).
- When generating relocateable output, this function must handle
+ When generating relocatable output, this function must handle
STB_LOCAL/STT_SECTION symbols specially. The output symbol is
going to be the section symbol corresponding to the output
section, which means that the addend must be adjusted
@@ -7104,7 +7289,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
/* Disabled until we sort out how ld should choose 'y' vs 'at'. */
bfd_boolean is_power4 = FALSE;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* Initialize howto table if needed. */
@@ -7135,13 +7320,23 @@ ppc64_elf_relocate_section (bfd *output_bfd,
bfd_vma relocation;
bfd_boolean unresolved_reloc;
bfd_boolean warned;
- long insn, mask;
+ unsigned long insn, mask;
struct ppc_stub_hash_entry *stub_entry;
bfd_vma max_br_offset;
bfd_vma from;
r_type = ELF64_R_TYPE (rel->r_info);
r_symndx = ELF64_R_SYM (rel->r_info);
+
+ /* For old style R_PPC64_TOC relocs with a zero symbol, use the
+ symbol of the previous ADDR64 reloc. The symbol gives us the
+ proper TOC base to use. */
+ if (rel->r_info == ELF64_R_INFO (0, R_PPC64_TOC)
+ && rel != relocs
+ && ELF64_R_TYPE (rel[-1].r_info) == R_PPC64_ADDR64
+ && is_opd)
+ r_symndx = ELF64_R_SYM (rel[-1].r_info);
+
sym = NULL;
sec = NULL;
h = NULL;
@@ -7167,44 +7362,11 @@ ppc64_elf_relocate_section (bfd *output_bfd,
}
else
{
- /* It's a global symbol. */
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
sym_name = h->root.root.string;
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd, input_section,
- rel->r_offset, (!info->shared
- || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- warned = TRUE;
- }
}
/* TLS optimizations. Replace instruction sequences and relocs
@@ -7290,7 +7452,6 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (tls_mask != 0
&& (tls_mask & TLS_TPREL) == 0)
{
- bfd_vma insn;
toctprel:
insn = bfd_get_32 (output_bfd, contents + rel->r_offset - 2);
insn &= 31 << 21;
@@ -7316,12 +7477,12 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (tls_mask != 0
&& (tls_mask & TLS_TPREL) == 0)
{
- bfd_vma insn, rtra;
+ bfd_vma rtra;
insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
- if ((insn & ((31 << 26) | (31 << 11)))
+ if ((insn & ((0x3f << 26) | (31 << 11)))
== ((31 << 26) | (13 << 11)))
rtra = insn & ((1 << 26) - (1 << 16));
- else if ((insn & ((31 << 26) | (31 << 16)))
+ else if ((insn & ((0x3f << 26) | (31 << 16)))
== ((31 << 26) | (13 << 16)))
rtra = (insn & (31 << 21)) | ((insn & (31 << 11)) << 5);
else
@@ -7604,6 +7765,13 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if ((insn & 1) == 0)
can_plt_call = 1;
}
+ else if (h != NULL
+ && strcmp (h->root.root.string,
+ ".__libc_start_main") == 0)
+ {
+ /* Allow crt1 branch to go via a toc adjusting stub. */
+ can_plt_call = 1;
+ }
else
{
if (strcmp (input_section->output_section->name,
@@ -7732,17 +7900,15 @@ ppc64_elf_relocate_section (bfd *output_bfd,
{
/* Relocation is to the entry for this symbol in the global
offset table. */
+ asection *got;
bfd_vma *offp;
bfd_vma off;
unsigned long indx = 0;
- if (htab->got == NULL)
- abort ();
-
if (tls_type == (TLS_TLS | TLS_LD)
&& (h == NULL
|| !(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC)))
- offp = &htab->tlsld_got.offset;
+ offp = &ppc64_tlsld_got (input_bfd)->offset;
else
{
struct got_entry *ent;
@@ -7774,6 +7940,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
for (; ent != NULL; ent = ent->next)
if (ent->addend == rel->r_addend
+ && ent->owner == input_bfd
&& ent->tls_type == tls_type)
break;
if (ent == NULL)
@@ -7781,6 +7948,10 @@ ppc64_elf_relocate_section (bfd *output_bfd,
offp = &ent->got.offset;
}
+ got = ppc64_elf_tdata (input_bfd)->got;
+ if (got == NULL)
+ abort ();
+
/* The offset must always be a multiple of 8. We use the
least significant bit to record whether we have already
processed this entry. */
@@ -7792,14 +7963,16 @@ ppc64_elf_relocate_section (bfd *output_bfd,
/* Generate relocs for the dynamic linker, except in
the case of TLSLD where we'll use one entry per
module. */
+ asection *relgot = ppc64_elf_tdata (input_bfd)->relgot;
+
*offp = off | 1;
if ((info->shared || indx != 0)
&& (h == NULL
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak))
{
- outrel.r_offset = (htab->got->output_section->vma
- + htab->got->output_offset
+ outrel.r_offset = (got->output_section->vma
+ + got->output_offset
+ off);
outrel.r_addend = rel->r_addend;
if (tls_type & (TLS_LD | TLS_GD))
@@ -7808,8 +7981,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
outrel.r_info = ELF64_R_INFO (indx, R_PPC64_DTPMOD64);
if (tls_type == (TLS_TLS | TLS_GD))
{
- loc = htab->relgot->contents;
- loc += (htab->relgot->reloc_count++
+ loc = relgot->contents;
+ loc += (relgot->reloc_count++
* sizeof (Elf64_External_Rela));
bfd_elf64_swap_reloca_out (output_bfd,
&outrel, loc);
@@ -7829,7 +8002,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
/* Write the .got section contents for the sake
of prelink. */
- loc = htab->got->contents + off;
+ loc = got->contents + off;
bfd_put_64 (output_bfd, outrel.r_addend + relocation,
loc);
}
@@ -7842,8 +8015,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (tls_type & (TLS_GD | TLS_DTPREL | TLS_TPREL))
outrel.r_addend -= htab->tls_sec->vma;
}
- loc = htab->relgot->contents;
- loc += (htab->relgot->reloc_count++
+ loc = relgot->contents;
+ loc += (relgot->reloc_count++
* sizeof (Elf64_External_Rela));
bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc);
}
@@ -7864,23 +8037,23 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (tls_type == (TLS_TLS | TLS_GD))
{
bfd_put_64 (output_bfd, relocation,
- htab->got->contents + off + 8);
+ got->contents + off + 8);
relocation = 1;
}
}
bfd_put_64 (output_bfd, relocation,
- htab->got->contents + off);
+ got->contents + off);
}
}
if (off >= (bfd_vma) -2)
abort ();
- relocation = htab->got->output_offset + off;
+ relocation = got->output_offset + off;
/* TOC base (r2) is TOC start plus 0x8000. */
- addend = - TOC_BASE_OFF;
+ addend = -TOC_BASE_OFF;
}
break;
@@ -8045,8 +8218,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak)
&& (MUST_BE_DYN_RELOC (r_type)
- || (h != NULL
- && !SYMBOL_CALLS_LOCAL (info, h))))
+ || !SYMBOL_CALLS_LOCAL (info, h)))
|| (ELIMINATE_COPY_RELOCS
&& !info->shared
&& h != NULL
@@ -8092,8 +8264,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if (skip)
memset (&outrel, 0, sizeof outrel);
- else if (h != NULL
- && !SYMBOL_REFERENCES_LOCAL (info, h)
+ else if (!SYMBOL_REFERENCES_LOCAL (info, h)
&& !is_opd
&& r_type != R_PPC64_TOC)
outrel.r_info = ELF64_R_INFO (h->dynindx, r_type);
@@ -8286,7 +8457,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
_DS relocs bloats all reloc switches in this file. It
doesn't seem to make much sense to use any of these relocs
in data, so testing the insn should be safe. */
- if ((insn & (0x3f << 26)) == (56 << 26))
+ if ((insn & (0x3f << 26)) == (56u << 26))
mask = 15;
if (((relocation + addend) & mask) != 0)
{
@@ -8622,6 +8793,29 @@ ppc64_elf_finish_dynamic_sections (bfd *output_bfd,
= PLT_ENTRY_SIZE;
}
+ /* We need to handle writing out multiple GOT sections ourselves,
+ since we didn't add them to DYNOBJ. */
+ while ((dynobj = dynobj->link_next) != NULL)
+ {
+ asection *s;
+ s = ppc64_elf_tdata (dynobj)->got;
+ if (s != NULL
+ && s->_raw_size != 0
+ && s->output_section != bfd_abs_section_ptr
+ && !bfd_set_section_contents (output_bfd, s->output_section,
+ s->contents, s->output_offset,
+ s->_raw_size))
+ return FALSE;
+ s = ppc64_elf_tdata (dynobj)->relgot;
+ if (s != NULL
+ && s->_raw_size != 0
+ && s->output_section != bfd_abs_section_ptr
+ && !bfd_set_section_contents (output_bfd, s->output_section,
+ s->contents, s->output_offset,
+ s->_raw_size))
+ return FALSE;
+ }
+
return TRUE;
}
diff --git a/bfd/elf64-ppc.h b/bfd/elf64-ppc.h
index 0572d52..c26df82 100644
--- a/bfd/elf64-ppc.h
+++ b/bfd/elf64-ppc.h
@@ -17,6 +17,8 @@ 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. */
+void ppc64_elf_init_stub_bfd
+ (bfd *, struct bfd_link_info *);
bfd_boolean ppc64_elf_mark_entry_syms
(struct bfd_link_info *);
bfd_boolean ppc64_elf_edit_opd
@@ -36,7 +38,7 @@ void ppc64_elf_reinit_toc
bfd_boolean ppc64_elf_next_input_section
(struct bfd_link_info *, asection *);
bfd_boolean ppc64_elf_size_stubs
- (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+ (bfd *, struct bfd_link_info *, bfd_signed_vma,
asection *(*) (const char *, asection *), void (*) (void));
bfd_boolean ppc64_elf_build_stubs
(bfd_boolean, struct bfd_link_info *, char **);
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index b5d724a..de712f7 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -40,7 +40,7 @@ static bfd_boolean create_got_section
static bfd_boolean elf_s390_create_dynamic_sections
PARAMS((bfd *, struct bfd_link_info *));
static void elf_s390_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static bfd_boolean elf_s390_check_relocs
PARAMS ((bfd *, struct bfd_link_info *, asection *,
@@ -86,6 +86,8 @@ static bfd_vma tpoff
PARAMS ((struct bfd_link_info *, bfd_vma));
static void invalid_tls_insn
PARAMS ((bfd *, asection *, Elf_Internal_Rela *));
+static bfd_reloc_status_type s390_elf_ldisp_reloc
+ PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
#include "elf/s390.h"
@@ -120,7 +122,7 @@ static reloc_howto_type elf_howto_table[] =
bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE),
HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE),
- HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont,
+ HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE),
HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE),
@@ -216,6 +218,14 @@ static reloc_howto_type elf_howto_table[] =
bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, MINUS_ONE, FALSE),
HOWTO(R_390_TLS_TPOFF, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, MINUS_ONE, FALSE),
+ HOWTO(R_390_20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_GOT20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_GOT20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_GOTPLT20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE),
+ HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
+ s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE),
};
/* GNU extension to record C++ vtable hierarchy. */
@@ -335,6 +345,14 @@ elf_s390_reloc_type_lookup (abfd, code)
return &elf_howto_table[(int) R_390_TLS_DTPOFF];
case BFD_RELOC_390_TLS_TPOFF:
return &elf_howto_table[(int) R_390_TLS_TPOFF];
+ case BFD_RELOC_390_20:
+ return &elf_howto_table[(int) R_390_20];
+ case BFD_RELOC_390_GOT20:
+ return &elf_howto_table[(int) R_390_GOT20];
+ case BFD_RELOC_390_GOTPLT20:
+ return &elf_howto_table[(int) R_390_GOTPLT20];
+ case BFD_RELOC_390_TLS_GOTIE20:
+ return &elf_howto_table[(int) R_390_TLS_GOTIE20];
case BFD_RELOC_VTABLE_INHERIT:
return &elf64_s390_vtinherit_howto;
case BFD_RELOC_VTABLE_ENTRY:
@@ -387,6 +405,58 @@ s390_tls_reloc (abfd, reloc_entry, symbol, data, input_section,
return bfd_reloc_ok;
}
+/* Handle the large displacement relocs. */
+static bfd_reloc_status_type
+s390_elf_ldisp_reloc (abfd, reloc_entry, symbol, data, input_section,
+ output_bfd, error_message)
+ bfd *abfd;
+ arelent *reloc_entry;
+ asymbol *symbol;
+ PTR data;
+ asection *input_section;
+ bfd *output_bfd;
+ char **error_message ATTRIBUTE_UNUSED;
+{
+ reloc_howto_type *howto = reloc_entry->howto;
+ bfd_vma relocation;
+ bfd_vma insn;
+
+ if (output_bfd != (bfd *) NULL
+ && (symbol->flags & BSF_SECTION_SYM) == 0
+ && (! howto->partial_inplace
+ || reloc_entry->addend == 0))
+ {
+ reloc_entry->address += input_section->output_offset;
+ return bfd_reloc_ok;
+ }
+ if (output_bfd != NULL)
+ return bfd_reloc_continue;
+
+ if (reloc_entry->address > input_section->_cooked_size)
+ return bfd_reloc_outofrange;
+
+ relocation = (symbol->value
+ + symbol->section->output_section->vma
+ + symbol->section->output_offset);
+ relocation += reloc_entry->addend;
+ if (howto->pc_relative)
+ {
+ relocation -= (input_section->output_section->vma
+ + input_section->output_offset);
+ relocation -= reloc_entry->address;
+ }
+
+ insn = bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
+ insn |= (relocation & 0xfff) << 16 | (relocation & 0xff000) >> 4;
+ bfd_put_32 (abfd, insn, (bfd_byte *) data + reloc_entry->address);
+
+ if ((bfd_signed_vma) relocation < - 0x80000
+ || (bfd_signed_vma) relocation > 0x7ffff)
+ return bfd_reloc_overflow;
+ else
+ return bfd_reloc_ok;
+}
+
static bfd_boolean
elf_s390_is_local_label_name (abfd, name)
bfd *abfd;
@@ -739,7 +809,7 @@ elf_s390_create_dynamic_sections (dynobj, info)
static void
elf_s390_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_link_hash_entry *dir, *ind;
{
struct elf_s390_link_hash_entry *edir, *eind;
@@ -849,7 +919,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
bfd_signed_vma *local_got_refcounts;
int tls_type, old_tls_type;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf_s390_hash_table (info);
@@ -890,16 +960,19 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
{
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOT64:
case R_390_GOTENT:
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLT64:
case R_390_GOTPLTENT:
case R_390_TLS_GD64:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE64:
case R_390_TLS_IEENT:
case R_390_TLS_IE64:
@@ -969,6 +1042,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLT64:
case R_390_GOTPLTENT:
@@ -996,6 +1070,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_TLS_IE64:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE64:
case R_390_TLS_IEENT:
if (info->shared)
@@ -1004,6 +1079,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOT64:
case R_390_GOTENT:
@@ -1014,6 +1090,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
default:
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOTENT:
tls_type = GOT_NORMAL;
@@ -1026,6 +1103,7 @@ elf_s390_check_relocs (abfd, info, sec, relocs)
tls_type = GOT_TLS_IE;
break;
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_IEENT:
tls_type = GOT_TLS_IE_NLT;
break;
@@ -1355,10 +1433,12 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_TLS_GD64:
case R_390_TLS_IE64:
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_GOTIE64:
case R_390_TLS_IEENT:
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOT64:
case R_390_GOTOFF16:
@@ -1382,6 +1462,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_8:
case R_390_12:
case R_390_16:
+ case R_390_20:
case R_390_32:
case R_390_64:
case R_390_PC16:
@@ -1409,6 +1490,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relocs)
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLT64:
case R_390_GOTPLTENT:
@@ -2169,7 +2251,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf_s390_hash_table (info);
@@ -2219,51 +2301,19 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned ATTRIBUTE_UNUSED;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- {
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- relocation = 0;
- }
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
}
switch (r_type)
{
case R_390_GOTPLT12:
case R_390_GOTPLT16:
+ case R_390_GOTPLT20:
case R_390_GOTPLT32:
case R_390_GOTPLT64:
case R_390_GOTPLTENT:
@@ -2298,6 +2348,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
case R_390_GOT12:
case R_390_GOT16:
+ case R_390_GOT20:
case R_390_GOT32:
case R_390_GOT64:
case R_390_GOTENT:
@@ -2713,6 +2764,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
break;
case R_390_TLS_GOTIE12:
+ case R_390_TLS_GOTIE20:
case R_390_TLS_IEENT:
if (h == NULL)
{
@@ -2936,7 +2988,19 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
(long) rel->r_offset,
h->root.root.string);
- r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+ if (r_type == R_390_20
+ || r_type == R_390_GOT20
+ || r_type == R_390_GOTPLT20
+ || r_type == R_390_TLS_GOTIE20)
+ {
+ relocation += rel->r_addend;
+ relocation = (relocation&0xfff) << 8 | (relocation&0xff000) >> 12;
+ r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+ contents, rel->r_offset,
+ relocation, 0);
+ }
+ else
+ r = _bfd_final_link_relocate (howto, input_bfd, input_section,
contents, rel->r_offset,
relocation, rel->r_addend);
diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c
index fe3195c..e0bc8df 100644
--- a/bfd/elf64-sh64.c
+++ b/bfd/elf64-sh64.c
@@ -99,7 +99,7 @@ struct elf_sh64_link_hash_table
#define sh64_elf64_link_hash_traverse(table, func, info) \
(elf_link_hash_traverse \
(&(table)->root, \
- (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \
+ (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \
(info)))
/* Get the sh ELF linker hash table from a link_info structure. */
@@ -108,71 +108,69 @@ struct elf_sh64_link_hash_table
((struct elf_sh64_link_hash_table *) ((p)->hash))
static bfd_boolean sh_elf64_copy_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh_elf64_copy_private_data_internal
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_boolean sh_elf64_merge_private_data
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
static bfd_reloc_status_type sh_elf64_ignore_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static bfd_reloc_status_type sh_elf64_reloc
- PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
+ (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static reloc_howto_type *sh_elf64_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
+ (bfd *, bfd_reloc_code_real_type);
static void sh_elf64_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+ (bfd *, arelent *, Elf_Internal_Rela *);
static bfd_boolean sh_elf64_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
static bfd_byte *sh_elf64_get_relocated_section_contents
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
- bfd_byte *, bfd_boolean, asymbol **));
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+ bfd_boolean, asymbol **);
static bfd_boolean sh_elf64_set_mach_from_flags
- PARAMS ((bfd *));
+ (bfd *);
static bfd_boolean sh_elf64_set_private_flags
- PARAMS ((bfd *, flagword));
+ (bfd *, flagword);
static asection *sh_elf64_gc_mark_hook
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
+ (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+ struct elf_link_hash_entry *, Elf_Internal_Sym *);
static bfd_boolean sh_elf64_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
static bfd_boolean sh_elf64_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
static int sh64_elf64_get_symbol_type
- PARAMS ((Elf_Internal_Sym *, int));
+ (Elf_Internal_Sym *, int);
static bfd_boolean sh64_elf64_add_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
+ (bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **,
+ flagword *, asection **, bfd_vma *);
static bfd_boolean sh64_elf64_link_output_symbol_hook
- PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
- asection *));
+ (bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
+ asection *);
static bfd_boolean sh64_elf64_fake_sections
- PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+ (bfd *, Elf_Internal_Shdr *, asection *);
static void sh64_elf64_final_write_processing
- PARAMS ((bfd *, bfd_boolean));
+ (bfd *, bfd_boolean);
static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create
- PARAMS ((bfd *));
+ (bfd *);
inline static void movi_shori_putval
- PARAMS ((bfd *, unsigned long, char *));
+ (bfd *, unsigned long, char *);
inline static void movi_3shori_putval
- PARAMS ((bfd *, bfd_vma, char *));
+ (bfd *, bfd_vma, char *);
static bfd_boolean sh64_elf64_create_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_boolean sh64_elf64_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *));
+ (struct bfd_link_info *info, struct elf_link_hash_entry *);
static bfd_boolean sh64_elf64_discard_copies
- PARAMS ((struct elf_sh64_link_hash_entry *, PTR));
+ (struct elf_sh64_link_hash_entry *, void *);
static bfd_boolean sh64_elf64_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static bfd_boolean sh64_elf64_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *));
+ (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+ Elf_Internal_Sym *);
static bfd_boolean sh64_elf64_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
static reloc_howto_type sh_elf64_howto_table[] = {
/* No relocation. */
@@ -1300,15 +1298,11 @@ static reloc_howto_type sh_elf64_howto_table[] = {
which the linker should otherwise ignore. */
static bfd_reloc_status_type
-sh_elf64_ignore_reloc (abfd, reloc_entry, symbol, data, input_section,
- output_bfd, error_message)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *reloc_entry;
- asymbol *symbol ATTRIBUTE_UNUSED;
- PTR data ATTRIBUTE_UNUSED;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+sh_elf64_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry,
+ asymbol *symbol ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED, asection *input_section,
+ bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
if (output_bfd != NULL)
reloc_entry->address += input_section->output_offset;
@@ -1321,15 +1315,9 @@ sh_elf64_ignore_reloc (abfd, reloc_entry, symbol, data, input_section,
See sh_elf_reloc in elf32-sh.c for the original. */
static bfd_reloc_status_type
-sh_elf64_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
- error_message)
- bfd *abfd;
- arelent *reloc_entry;
- asymbol *symbol_in;
- PTR data;
- asection *input_section;
- bfd *output_bfd;
- char **error_message ATTRIBUTE_UNUSED;
+sh_elf64_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in,
+ void *data, asection *input_section, bfd *output_bfd,
+ char **error_message ATTRIBUTE_UNUSED)
{
unsigned long insn;
bfd_vma sym_value;
@@ -1449,9 +1437,8 @@ static const struct elf_reloc_map sh64_reloc_map[] =
corresponding SH ELf reloc. */
static reloc_howto_type *
-sh_elf64_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+sh_elf64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
unsigned int i;
@@ -1469,10 +1456,8 @@ sh_elf64_reloc_type_lookup (abfd, code)
See sh_elf_info_to_howto in elf32-sh.c for the original. */
static void
-sh_elf64_info_to_howto (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr;
- Elf_Internal_Rela *dst;
+sh_elf64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
+ Elf_Internal_Rela *dst)
{
unsigned int r;
@@ -1492,16 +1477,12 @@ sh_elf64_info_to_howto (abfd, cache_ptr, dst)
See sh_elf_info_to_howto in elf32-sh.c for the original. */
static bfd_boolean
-sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info, bfd *input_bfd,
+ asection *input_section, bfd_byte *contents,
+ Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -1585,9 +1566,9 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
_("Unexpected STO_SH5_ISA32 on local symbol is not handled"),
input_bfd, input_section, rel->r_offset));
- if (info->relocateable)
+ if (info->relocatable)
{
- /* This is a relocateable link. We don't have to change
+ /* This is a relocatable link. We don't have to change
anything, unless the reloc is against a section symbol,
in which case we have to adjust according to where the
section symbol winds up in the output section. */
@@ -1629,10 +1610,12 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
+ /* ??? Could we use the RELOC_FOR_GLOBAL_SYMBOL macro here ? */
+
/* Section symbols are never (?) placed in the hash table, so
we can just ignore hash relocations when creating a
- relocateable object file. */
- if (info->relocateable)
+ relocatable object file. */
+ if (info->relocatable)
continue;
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
@@ -1718,7 +1701,9 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
}
else if (h->root.type == bfd_link_hash_undefweak)
relocation = 0;
- else if (info->shared && !info->symbolic && !info->no_undefined)
+ else if (info->shared
+ && !info->symbolic
+ && info->unresolved_syms_in_objects == RM_IGNORE)
relocation = 0;
else
{
@@ -2177,14 +2162,12 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section,
See sh_elf_relocate_section in elf32-sh.c for the original. */
static bfd_byte *
-sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
- data, relocateable, symbols)
- bfd *output_bfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- bfd_byte *data;
- bfd_boolean relocateable;
- asymbol **symbols;
+sh_elf64_get_relocated_section_contents (bfd *output_bfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols)
{
Elf_Internal_Shdr *symtab_hdr;
asection *input_section = link_order->u.indirect.section;
@@ -2195,11 +2178,11 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
/* We only need to handle the case of relaxing, or of having a
particular set of section contents, specially. */
- if (relocateable
+ if (relocatable
|| elf_section_data (input_section)->this_hdr.contents == NULL)
return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
link_order, data,
- relocateable,
+ relocatable,
symbols);
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2227,7 +2210,7 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
}
internal_relocs = (_bfd_elf_link_read_relocs
- (input_bfd, input_section, (PTR) NULL,
+ (input_bfd, input_section, NULL,
(Elf_Internal_Rela *) NULL, FALSE));
if (internal_relocs == NULL)
goto error_return;
@@ -2291,10 +2274,9 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order,
/* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */
bfd_boolean
-sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- Elf_Internal_Shdr *elf_section_hdr;
- asection *asect;
+sh64_elf64_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Shdr *elf_section_hdr,
+ asection *asect)
{
/* Code sections can only contain SH64 code, so mark them as such. */
if (bfd_get_section_flags (output_bfd, asect) & SEC_CODE)
@@ -2304,8 +2286,7 @@ sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect)
}
static bfd_boolean
-sh_elf64_set_mach_from_flags (abfd)
- bfd *abfd;
+sh_elf64_set_mach_from_flags (bfd *abfd)
{
flagword flags = elf_elfheader (abfd)->e_flags;
@@ -2328,9 +2309,7 @@ sh_elf64_set_mach_from_flags (abfd)
See sh64_elf_set_private_flags in elf32-sh64.c for the original. */
static bfd_boolean
-sh_elf64_set_private_flags (abfd, flags)
- bfd * abfd;
- flagword flags;
+sh_elf64_set_private_flags (bfd *abfd, flagword flags)
{
BFD_ASSERT (! elf_flags_init (abfd)
|| elf_elfheader (abfd)->e_flags == flags);
@@ -2344,9 +2323,7 @@ sh_elf64_set_private_flags (abfd, flags)
code, to keep attributes the same as for SHmedia in 32-bit ELF. */
static bfd_boolean
-sh_elf64_copy_private_data_internal (ibfd, obfd)
- bfd * ibfd;
- bfd * obfd;
+sh_elf64_copy_private_data_internal (bfd *ibfd, bfd *obfd)
{
Elf_Internal_Shdr **o_shdrp;
asection *isec;
@@ -2377,17 +2354,13 @@ sh_elf64_copy_private_data_internal (ibfd, obfd)
}
static bfd_boolean
-sh_elf64_copy_private_data (ibfd, obfd)
- bfd * ibfd;
- bfd * obfd;
+sh_elf64_copy_private_data (bfd *ibfd, bfd *obfd)
{
return sh_elf64_copy_private_data_internal (ibfd, obfd);
}
static bfd_boolean
-sh_elf64_merge_private_data (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+sh_elf64_merge_private_data (bfd *ibfd, bfd *obfd)
{
flagword old_flags, new_flags;
@@ -2450,12 +2423,11 @@ sh_elf64_merge_private_data (ibfd, obfd)
relocation. */
static asection *
-sh_elf64_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+sh_elf64_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -2492,11 +2464,10 @@ sh_elf64_gc_mark_hook (sec, info, rel, h, sym)
/* Update the got entry reference counts for the section being removed. */
static bfd_boolean
-sh_elf64_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- asection *sec ATTRIBUTE_UNUSED;
- const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED;
+sh_elf64_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ asection *sec ATTRIBUTE_UNUSED,
+ const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
{
/* No got and plt entries for 64-bit SH at present. */
return TRUE;
@@ -2507,11 +2478,8 @@ sh_elf64_gc_sweep_hook (abfd, info, sec, relocs)
virtual table relocs for gc. */
static bfd_boolean
-sh_elf64_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info,
+ asection *sec, const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
@@ -2527,7 +2495,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
srelgot = NULL;
sreloc = NULL;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2884,9 +2852,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs)
}
static int
-sh64_elf64_get_symbol_type (elf_sym, type)
- Elf_Internal_Sym * elf_sym;
- int type;
+sh64_elf64_get_symbol_type (Elf_Internal_Sym * elf_sym, int type)
{
if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL)
return STT_DATALABEL;
@@ -2917,14 +2883,10 @@ sh64_elf64_get_symbol_type (elf_sym, type)
(not so good). */
static bfd_boolean
-sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info;
- const Elf_Internal_Sym *sym;
- const char **namep;
- flagword *flagsp ATTRIBUTE_UNUSED;
- asection **secp;
- bfd_vma *valp;
+sh64_elf64_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
+ const Elf_Internal_Sym *sym, const char **namep,
+ flagword *flagsp ATTRIBUTE_UNUSED,
+ asection **secp, bfd_vma *valp)
{
/* We want to do this for relocatable as well as final linking. */
if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL
@@ -2932,11 +2894,11 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
{
struct elf_link_hash_entry *h;
- /* For relocateable links, we register the DataLabel sym in its own
+ /* For relocatable links, we register the DataLabel sym in its own
right, and tweak the name when it's output. Otherwise, we make
an indirect symbol of it. */
flagword flags
- = info->relocateable || info->emitrelocations
+ = info->relocatable || info->emitrelocations
? BSF_GLOBAL : BSF_GLOBAL | BSF_INDIRECT;
char *dl_name
@@ -2959,7 +2921,7 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
{
/* No previous datalabel symbol. Make one. */
struct bfd_link_hash_entry *bh = NULL;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name,
flags, *secp, *valp,
@@ -2980,9 +2942,9 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
free (dl_name);
if (h->type != STT_DATALABEL
- || ((info->relocateable || info->emitrelocations)
+ || ((info->relocatable || info->emitrelocations)
&& h->root.type != bfd_link_hash_undefined)
- || (! info->relocateable && !info->emitrelocations
+ || (! info->relocatable && !info->emitrelocations
&& h->root.type != bfd_link_hash_indirect))
{
/* Make sure we don't get confused on invalid input. */
@@ -3018,16 +2980,15 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
DataLabel symbol. */
static bfd_boolean
-sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
- const char *cname;
- Elf_Internal_Sym *sym;
- asection *input_sec ATTRIBUTE_UNUSED;
+sh64_elf64_link_output_symbol_hook (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info,
+ const char *cname,
+ Elf_Internal_Sym *sym,
+ asection *input_sec ATTRIBUTE_UNUSED)
{
char *name = (char *) cname;
- if (info->relocateable || info->emitrelocations)
+ if (info->relocatable || info->emitrelocations)
{
if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL)
name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0;
@@ -3044,9 +3005,8 @@ sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec)
before jumping to the program entry. */
static void
-sh64_elf64_final_write_processing (abfd, linker)
- bfd *abfd;
- bfd_boolean linker ATTRIBUTE_UNUSED;
+sh64_elf64_final_write_processing (bfd *abfd,
+ bfd_boolean linker ATTRIBUTE_UNUSED)
{
/* FIXME: Perhaps we shouldn't do this if the entry address was supplied
numerically, but we currently lack the infrastructure to recognize
@@ -3190,10 +3150,9 @@ static const bfd_byte *elf_sh64_pic_plt_entry;
/* Create an entry in an sh ELF linker hash table. */
static struct bfd_hash_entry *
-sh64_elf64_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+sh64_elf64_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
struct elf_sh64_link_hash_entry *ret =
(struct elf_sh64_link_hash_entry *) entry;
@@ -3223,8 +3182,7 @@ sh64_elf64_link_hash_newfunc (entry, table, string)
/* Create an sh64 ELF linker hash table. */
static struct bfd_link_hash_table *
-sh64_elf64_link_hash_table_create (abfd)
- bfd *abfd;
+sh64_elf64_link_hash_table_create (bfd *abfd)
{
struct elf_sh64_link_hash_table *ret;
@@ -3244,10 +3202,7 @@ sh64_elf64_link_hash_table_create (abfd)
}
inline static void
-movi_shori_putval (output_bfd, value, addr)
- bfd *output_bfd;
- unsigned long value;
- char *addr;
+movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr)
{
bfd_put_32 (output_bfd,
bfd_get_32 (output_bfd, addr)
@@ -3260,10 +3215,7 @@ movi_shori_putval (output_bfd, value, addr)
}
inline static void
-movi_3shori_putval (output_bfd, value, addr)
- bfd *output_bfd;
- bfd_vma value;
- char *addr;
+movi_3shori_putval (bfd *output_bfd, bfd_vma value, char *addr)
{
bfd_put_32 (output_bfd,
bfd_get_32 (output_bfd, addr)
@@ -3286,13 +3238,11 @@ movi_3shori_putval (output_bfd, value, addr)
/* Create dynamic sections when linking against a dynamic object. */
static bfd_boolean
-sh64_elf64_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+sh64_elf64_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
flagword flags, pltflags;
register asection *s;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
int ptralign = 0;
switch (bed->s->arch_size)
@@ -3430,9 +3380,8 @@ sh64_elf64_create_dynamic_sections (abfd, info)
understand. */
static bfd_boolean
-sh64_elf64_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+sh64_elf64_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
bfd *dynobj;
asection *s;
@@ -3605,9 +3554,8 @@ sh64_elf64_adjust_dynamic_symbol (info, h)
relocate_section routine. */
static bfd_boolean
-sh64_elf64_discard_copies (h, ignore)
- struct elf_sh64_link_hash_entry *h;
- PTR ignore ATTRIBUTE_UNUSED;
+sh64_elf64_discard_copies (struct elf_sh64_link_hash_entry *h,
+ void *ignore ATTRIBUTE_UNUSED)
{
struct elf_sh64_pcrel_relocs_copied *s;
@@ -3627,9 +3575,8 @@ sh64_elf64_discard_copies (h, ignore)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-sh64_elf64_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+sh64_elf64_size_dynamic_sections (bfd *output_bfd,
+ struct bfd_link_info *info)
{
bfd *dynobj;
asection *s;
@@ -3669,8 +3616,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
will not fill them in in the relocate_section routine. */
if (info->shared && info->symbolic)
sh64_elf64_link_hash_traverse (sh64_elf64_hash_table (info),
- sh64_elf64_discard_copies,
- (PTR) NULL);
+ sh64_elf64_discard_copies, NULL);
/* The check_relocs and adjust_dynamic_symbol entry points have
determined the sizes of the various dynamic sections. Allocate
@@ -3815,11 +3761,10 @@ sh64_elf64_size_dynamic_sections (output_bfd, info)
dynamic sections here. */
static bfd_boolean
-sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+sh64_elf64_finish_dynamic_symbol (bfd *output_bfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
bfd *dynobj;
@@ -4015,9 +3960,8 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym)
/* Finish up the dynamic sections. */
static bfd_boolean
-sh64_elf64_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+sh64_elf64_finish_dynamic_sections (bfd *output_bfd,
+ struct bfd_link_info *info)
{
bfd *dynobj;
asection *sgot;
@@ -4172,6 +4116,14 @@ sh64_elf64_finish_dynamic_sections (output_bfd, info)
return TRUE;
}
+static struct bfd_elf_special_section const sh64_elf64_special_sections[]=
+{
+ { ".cranges", 0, NULL, 0,
+ SHT_PROGBITS, 0 },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
#define TARGET_BIG_SYM bfd_elf64_sh64_vec
#define TARGET_BIG_NAME "elf64-sh64"
#define TARGET_LITTLE_SYM bfd_elf64_sh64l_vec
@@ -4227,6 +4179,7 @@ sh64_elf64_finish_dynamic_sections (output_bfd, info)
sh64_elf64_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections \
sh64_elf64_finish_dynamic_sections
+#define elf_backend_special_sections sh64_elf64_special_sections
#define elf_backend_want_got_plt 1
#define elf_backend_plt_readonly 1
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 080c4e7..a74a7f3 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -518,7 +518,7 @@ sparc64_elf_canonicalize_reloc (abfd, section, relptr, symbols)
{
arelent *tblptr;
unsigned int i;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE))
return -1;
@@ -1101,7 +1101,7 @@ sparc64_elf_check_relocs (abfd, info, sec, relocs)
asection *srelgot;
asection *sreloc;
- if (info->relocateable || !(sec->flags & SEC_ALLOC))
+ if (info->relocatable || !(sec->flags & SEC_ALLOC))
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -2022,7 +2022,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -2074,42 +2074,14 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned;
- relocation = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
+ if (warned)
{
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- ;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
-
/* To avoid generating warning messages about truncated
relocations, set the relocation's address to be the same as
the start of this section. */
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index b39cdcd..8aed498 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -150,72 +150,14 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
{ BFD_RELOC_VTABLE_ENTRY, R_X86_64_GNU_VTENTRY, },
};
-static reloc_howto_type *elf64_x86_64_reloc_type_lookup
- PARAMS ((bfd *, bfd_reloc_code_real_type));
-static void elf64_x86_64_info_to_howto
- PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
-static bfd_boolean elf64_x86_64_grok_prstatus
- PARAMS ((bfd *, Elf_Internal_Note *));
-static bfd_boolean elf64_x86_64_grok_psinfo
- PARAMS ((bfd *, Elf_Internal_Note *));
-static struct bfd_link_hash_table *elf64_x86_64_link_hash_table_create
- PARAMS ((bfd *));
-static int elf64_x86_64_tls_transition
- PARAMS ((struct bfd_link_info *, int, int));
-static bfd_boolean elf64_x86_64_mkobject
- PARAMS((bfd *));
-static bfd_boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd));
-static bfd_boolean create_got_section
- PARAMS((bfd *, struct bfd_link_info *));
-static bfd_boolean elf64_x86_64_create_dynamic_sections
- PARAMS((bfd *, struct bfd_link_info *));
-static void elf64_x86_64_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *));
-static bfd_boolean elf64_x86_64_check_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection *sec,
- const Elf_Internal_Rela *));
-static asection *elf64_x86_64_gc_mark_hook
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
-
-static bfd_boolean elf64_x86_64_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
-
-static struct bfd_hash_entry *link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static bfd_boolean elf64_x86_64_adjust_dynamic_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
-
-static bfd_boolean allocate_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean readonly_dynrelocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean elf64_x86_64_size_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_vma dtpoff_base
- PARAMS ((struct bfd_link_info *));
-static bfd_vma tpoff
- PARAMS ((struct bfd_link_info *, bfd_vma));
-static bfd_boolean elf64_x86_64_relocate_section
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
-static bfd_boolean elf64_x86_64_finish_dynamic_symbol
- PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *sym));
-static bfd_boolean elf64_x86_64_finish_dynamic_sections
- PARAMS ((bfd *, struct bfd_link_info *));
-static enum elf_reloc_type_class elf64_x86_64_reloc_type_class
- PARAMS ((const Elf_Internal_Rela *));
/* Given a BFD reloc type, return a HOWTO structure. */
static reloc_howto_type *
-elf64_x86_64_reloc_type_lookup (abfd, code)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_reloc_code_real_type code;
+elf64_x86_64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
{
unsigned int i;
+
for (i = 0; i < sizeof (x86_64_reloc_map) / sizeof (struct elf_reloc_map);
i++)
{
@@ -228,10 +170,8 @@ elf64_x86_64_reloc_type_lookup (abfd, code)
/* Given an x86_64 ELF reloc type, fill in an arelent structure. */
static void
-elf64_x86_64_info_to_howto (abfd, cache_ptr, dst)
- bfd *abfd ATTRIBUTE_UNUSED;
- arelent *cache_ptr;
- Elf_Internal_Rela *dst;
+elf64_x86_64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
+ Elf_Internal_Rela *dst)
{
unsigned r_type, i;
@@ -252,9 +192,7 @@ elf64_x86_64_info_to_howto (abfd, cache_ptr, dst)
/* Support for core dump NOTE sections. */
static bfd_boolean
-elf64_x86_64_grok_prstatus (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf64_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
int offset;
size_t raw_size;
@@ -286,9 +224,7 @@ elf64_x86_64_grok_prstatus (abfd, note)
}
static bfd_boolean
-elf64_x86_64_grok_psinfo (abfd, note)
- bfd *abfd;
- Elf_Internal_Note *note;
+elf64_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
switch (note->descsz)
{
@@ -447,10 +383,8 @@ struct elf64_x86_64_link_hash_table
/* Create an entry in an x86-64 ELF linker hash table. */
static struct bfd_hash_entry *
-link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -479,8 +413,7 @@ link_hash_newfunc (entry, table, string)
/* Create an X86-64 ELF linker hash table. */
static struct bfd_link_hash_table *
-elf64_x86_64_link_hash_table_create (abfd)
- bfd *abfd;
+elf64_x86_64_link_hash_table_create (bfd *abfd)
{
struct elf64_x86_64_link_hash_table *ret;
bfd_size_type amt = sizeof (struct elf64_x86_64_link_hash_table);
@@ -512,9 +445,7 @@ elf64_x86_64_link_hash_table_create (abfd)
shortcuts to them in our hash table. */
static bfd_boolean
-create_got_section (dynobj, info)
- bfd *dynobj;
- struct bfd_link_info *info;
+create_got_section (bfd *dynobj, struct bfd_link_info *info)
{
struct elf64_x86_64_link_hash_table *htab;
@@ -543,9 +474,7 @@ create_got_section (dynobj, info)
hash table. */
static bfd_boolean
-elf64_x86_64_create_dynamic_sections (dynobj, info)
- bfd *dynobj;
- struct bfd_link_info *info;
+elf64_x86_64_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
{
struct elf64_x86_64_link_hash_table *htab;
@@ -572,9 +501,9 @@ elf64_x86_64_create_dynamic_sections (dynobj, info)
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf64_x86_64_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
- struct elf_link_hash_entry *dir, *ind;
+elf64_x86_64_copy_indirect_symbol (const struct elf_backend_data *bed,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct elf64_x86_64_link_hash_entry *edir, *eind;
@@ -637,8 +566,7 @@ elf64_x86_64_copy_indirect_symbol (bed, dir, ind)
}
static bfd_boolean
-elf64_x86_64_mkobject (abfd)
- bfd *abfd;
+elf64_x86_64_mkobject (bfd *abfd)
{
bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata);
abfd->tdata.any = bfd_zalloc (abfd, amt);
@@ -648,8 +576,7 @@ elf64_x86_64_mkobject (abfd)
}
static bfd_boolean
-elf64_x86_64_elf_object_p (abfd)
- bfd *abfd;
+elf64_x86_64_elf_object_p (bfd *abfd)
{
/* Allocate our special target data. */
struct elf64_x86_64_obj_tdata *new_tdata;
@@ -665,10 +592,7 @@ elf64_x86_64_elf_object_p (abfd)
}
static int
-elf64_x86_64_tls_transition (info, r_type, is_local)
- struct bfd_link_info *info;
- int r_type;
- int is_local;
+elf64_x86_64_tls_transition (struct bfd_link_info *info, int r_type, int is_local)
{
if (info->shared)
return r_type;
@@ -692,11 +616,8 @@ elf64_x86_64_tls_transition (info, r_type, is_local)
linkage table, and dynamic reloc sections. */
static bfd_boolean
-elf64_x86_64_check_relocs (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
+ const Elf_Internal_Rela *relocs)
{
struct elf64_x86_64_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -705,7 +626,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel_end;
asection *sreloc;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf64_x86_64_hash_table (info);
@@ -1060,12 +981,11 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
relocation. */
static asection *
-elf64_x86_64_gc_mark_hook (sec, info, rel, h, sym)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- Elf_Internal_Rela *rel;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf64_x86_64_gc_mark_hook (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ Elf_Internal_Rela *rel,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
if (h != NULL)
{
@@ -1099,11 +1019,8 @@ elf64_x86_64_gc_mark_hook (sec, info, rel, h, sym)
/* Update the got entry reference counts for the section being removed. */
static bfd_boolean
-elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- const Elf_Internal_Rela *relocs;
+elf64_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
+ asection *sec, const Elf_Internal_Rela *relocs)
{
Elf_Internal_Shdr *symtab_hdr;
struct elf_link_hash_entry **sym_hashes;
@@ -1202,9 +1119,8 @@ elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs)
understand. */
static bfd_boolean
-elf64_x86_64_adjust_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+elf64_x86_64_adjust_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
struct elf64_x86_64_link_hash_table *htab;
asection *s;
@@ -1217,11 +1133,9 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
|| (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0)
{
if (h->plt.refcount <= 0
- || (! info->shared
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
- && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
- && h->root.type != bfd_link_hash_undefweak
- && h->root.type != bfd_link_hash_undefined))
+ || SYMBOL_CALLS_LOCAL (info, h)
+ || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+ && h->root.type == bfd_link_hash_undefweak))
{
/* This case can occur if we saw a PLT32 reloc in an input
file, but the symbol was never referred to by a dynamic
@@ -1355,9 +1269,9 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
will be called from elflink.h. If elflink.h doesn't call our
finish_dynamic_symbol routine, we'll need to do something about
initializing any .plt and .got entries in elf64_x86_64_relocate_section. */
-#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \
+#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
((DYN) \
- && ((INFO)->shared \
+ && ((SHARED) \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
&& ((H)->dynindx != -1 \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
@@ -1366,9 +1280,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h)
dynamic relocs. */
static bfd_boolean
-allocate_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
{
struct bfd_link_info *info;
struct elf64_x86_64_link_hash_table *htab;
@@ -1385,9 +1297,7 @@ allocate_dynrelocs (h, inf)
htab = elf64_x86_64_hash_table (info);
if (htab->elf.dynamic_sections_created
- && h->plt.refcount > 0
- && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
- || h->root.type != bfd_link_hash_undefweak))
+ && h->plt.refcount > 0)
{
/* Make sure this symbol is output as a dynamic symbol.
Undefined weak syms won't yet be marked as dynamic. */
@@ -1398,7 +1308,8 @@ allocate_dynrelocs (h, inf)
return FALSE;
}
- if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h))
+ if (info->shared
+ || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
{
asection *s = htab->splt;
@@ -1482,7 +1393,8 @@ allocate_dynrelocs (h, inf)
htab->srelgot->_raw_size += 2 * sizeof (Elf64_External_Rela);
else if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|| h->root.type != bfd_link_hash_undefweak)
- && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h))
+ && (info->shared
+ || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
htab->srelgot->_raw_size += sizeof (Elf64_External_Rela);
}
else
@@ -1500,9 +1412,13 @@ allocate_dynrelocs (h, inf)
if (info->shared)
{
- if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0
- && ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0
- || info->symbolic))
+ /* Relocs that use pc_count are those that appear on a call
+ insn, or certain REL relocs that can generated via assembly.
+ We want calls to protected symbols to resolve directly to the
+ function rather than going via the plt. If people want
+ function pointer comparisons to work as expected then they
+ should avoid writing weird assembly. */
+ if (SYMBOL_CALLS_LOCAL (info, h))
{
struct elf64_x86_64_dyn_relocs **pp;
@@ -1569,9 +1485,7 @@ allocate_dynrelocs (h, inf)
/* Find any dynamic relocs that apply to read-only sections. */
static bfd_boolean
-readonly_dynrelocs (h, inf)
- struct elf_link_hash_entry *h;
- PTR inf;
+readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
{
struct elf64_x86_64_link_hash_entry *eh;
struct elf64_x86_64_dyn_relocs *p;
@@ -1600,9 +1514,8 @@ readonly_dynrelocs (h, inf)
/* Set the sizes of the dynamic sections. */
static bfd_boolean
-elf64_x86_64_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
+elf64_x86_64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info)
{
struct elf64_x86_64_link_hash_table *htab;
bfd *dynobj;
@@ -1824,8 +1737,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info)
This is PT_TLS segment p_vaddr. */
static bfd_vma
-dtpoff_base (info)
- struct bfd_link_info *info;
+dtpoff_base (struct bfd_link_info *info)
{
/* If tls_segment is NULL, we should have signalled an error already. */
if (elf_hash_table (info)->tls_segment == NULL)
@@ -1837,9 +1749,7 @@ dtpoff_base (info)
if STT_TLS virtual address is ADDRESS. */
static bfd_vma
-tpoff (info, address)
- struct bfd_link_info *info;
- bfd_vma address;
+tpoff (struct bfd_link_info *info, bfd_vma address)
{
struct elf_link_tls_segment *tls_segment
= elf_hash_table (info)->tls_segment;
@@ -1854,16 +1764,11 @@ tpoff (info, address)
/* Relocate an x86_64 ELF section. */
static bfd_boolean
-elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
- contents, relocs, local_syms, local_sections)
- bfd *output_bfd;
- struct bfd_link_info *info;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- Elf_Internal_Rela *relocs;
- Elf_Internal_Sym *local_syms;
- asection **local_sections;
+elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
+ bfd *input_bfd, asection *input_section,
+ bfd_byte *contents, Elf_Internal_Rela *relocs,
+ Elf_Internal_Sym *local_syms,
+ asection **local_sections)
{
struct elf64_x86_64_link_hash_table *htab;
Elf_Internal_Shdr *symtab_hdr;
@@ -1872,7 +1777,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
Elf_Internal_Rela *rel;
Elf_Internal_Rela *relend;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
htab = elf64_x86_64_hash_table (info);
@@ -1922,45 +1827,12 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean warned;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sec = h->root.u.def.section;
- if (sec->output_section == NULL)
- {
- /* Set a flag that will be cleared later if we find a
- relocation value for this symbol. output_section
- is typically NULL for symbols satisfied by a shared
- library. */
- unresolved_reloc = TRUE;
- relocation = 0;
- }
- else
- relocation = (h->root.u.def.value
- + sec->output_section->vma
- + sec->output_offset);
- }
- else if (h->root.type == bfd_link_hash_undefweak)
- relocation = 0;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- relocation = 0;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- relocation = 0;
- }
+ RELOC_FOR_GLOBAL_SYMBOL (h, sym_hashes, r_symndx,
+ symtab_hdr, relocation, sec,
+ unresolved_reloc, info,
+ warned);
}
/* When generating a shared object, the relocations handled here are
copied into the output file to be resolved at run time. */
@@ -1981,12 +1853,9 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
off = h->got.offset;
dyn = htab->elf.dynamic_sections_created;
- if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h)
+ if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|| (info->shared
- && (info->symbolic
- || h->dynindx == -1
- || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ && SYMBOL_REFERENCES_LOCAL (info, h))
|| (ELF_ST_VISIBILITY (h->other)
&& h->root.type == bfd_link_hash_undefweak))
{
@@ -2113,11 +1982,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
&& ((r_type != R_X86_64_PC8
&& r_type != R_X86_64_PC16
&& r_type != R_X86_64_PC32)
- || (h != NULL
- && h->dynindx != -1
- && (! info->symbolic
- || (h->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0))))
+ || !SYMBOL_CALLS_LOCAL (info, h)))
|| (ELIMINATE_COPY_RELOCS
&& !info->shared
&& h != NULL
@@ -2604,11 +2469,10 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
dynamic sections here. */
static bfd_boolean
-elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
- bfd *output_bfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- Elf_Internal_Sym *sym;
+elf64_x86_64_finish_dynamic_symbol (bfd *output_bfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ Elf_Internal_Sym *sym)
{
struct elf64_x86_64_link_hash_table *htab;
@@ -2714,10 +2578,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
The entry in the global offset table will already have been
initialized in the relocate_section function. */
if (info->shared
- && (info->symbolic
- || h->dynindx == -1
- || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL))
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
+ && SYMBOL_REFERENCES_LOCAL (info, h))
{
BFD_ASSERT((h->got.offset & 1) != 0);
rela.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE);
@@ -2774,8 +2635,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym)
dynamic linker, before writing them out. */
static enum elf_reloc_type_class
-elf64_x86_64_reloc_type_class (rela)
- const Elf_Internal_Rela *rela;
+elf64_x86_64_reloc_type_class (const Elf_Internal_Rela *rela)
{
switch ((int) ELF64_R_TYPE (rela->r_info))
{
@@ -2793,9 +2653,7 @@ elf64_x86_64_reloc_type_class (rela)
/* Finish up the dynamic sections. */
static bfd_boolean
-elf64_x86_64_finish_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf64_x86_64_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
{
struct elf64_x86_64_link_hash_table *htab;
bfd *dynobj;
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 0263631..a627e48 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -125,8 +125,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define elf_reloc_symbol_deleted_p NAME(_bfd_elf,reloc_symbol_deleted_p)
#define elf_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol
#define elf_bfd_final_link NAME(bfd_elf,bfd_final_link)
-#define elf_create_pointer_linker_section NAME(bfd_elf,create_pointer_linker_section)
-#define elf_finish_pointer_linker_section NAME(bfd_elf,finish_pointer_linker_section)
#define elf_gc_sections NAME(_bfd_elf,gc_sections)
#define elf_gc_common_finalize_got_offsets \
NAME(_bfd_elf,gc_common_finalize_got_offsets)
@@ -153,31 +151,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define LOG_FILE_ALIGN 2
#endif
-/* Static functions */
-
-static void elf_swap_ehdr_in
- PARAMS ((bfd *, const Elf_External_Ehdr *, Elf_Internal_Ehdr *));
-static void elf_swap_ehdr_out
- PARAMS ((bfd *, const Elf_Internal_Ehdr *, Elf_External_Ehdr *));
-static void elf_swap_shdr_in
- PARAMS ((bfd *, const Elf_External_Shdr *, Elf_Internal_Shdr *));
-static void elf_swap_shdr_out
- PARAMS ((bfd *, const Elf_Internal_Shdr *, Elf_External_Shdr *));
-
#define elf_stringtab_init _bfd_elf_stringtab_init
#define section_from_elf_index bfd_section_from_elf_index
-static bfd_boolean elf_slurp_reloc_table_from_section
- PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, bfd_size_type,
- arelent *, asymbol **, bfd_boolean));
-
-static bfd_boolean elf_file_p PARAMS ((Elf_External_Ehdr *));
-
#ifdef DEBUG
-static void elf_debug_section PARAMS ((int, Elf_Internal_Shdr *));
-static void elf_debug_file PARAMS ((Elf_Internal_Ehdr *));
-static char *elf_symbol_flags PARAMS ((flagword));
+static void elf_debug_section (int, Elf_Internal_Shdr *);
+static void elf_debug_file (Elf_Internal_Ehdr *);
+static char *elf_symbol_flags (flagword);
#endif
/* Structure swapping routines */
@@ -201,14 +182,13 @@ static char *elf_symbol_flags PARAMS ((flagword));
format. */
void
-elf_swap_symbol_in (abfd, psrc, pshn, dst)
- bfd *abfd;
- const PTR psrc;
- const PTR pshn;
- Elf_Internal_Sym *dst;
+elf_swap_symbol_in (bfd *abfd,
+ const void *psrc,
+ const void *pshn,
+ Elf_Internal_Sym *dst)
{
- const Elf_External_Sym *src = (const Elf_External_Sym *) psrc;
- const Elf_External_Sym_Shndx *shndx = (const Elf_External_Sym_Shndx *) pshn;
+ const Elf_External_Sym *src = psrc;
+ const Elf_External_Sym_Shndx *shndx = pshn;
int signed_vma = get_elf_backend_data (abfd)->sign_extend_vma;
dst->st_name = H_GET_32 (abfd, src->st_name);
@@ -232,14 +212,13 @@ elf_swap_symbol_in (abfd, psrc, pshn, dst)
format. */
void
-elf_swap_symbol_out (abfd, src, cdst, shndx)
- bfd *abfd;
- const Elf_Internal_Sym *src;
- PTR cdst;
- PTR shndx;
+elf_swap_symbol_out (bfd *abfd,
+ const Elf_Internal_Sym *src,
+ void *cdst,
+ void *shndx)
{
unsigned int tmp;
- Elf_External_Sym *dst = (Elf_External_Sym *) cdst;
+ Elf_External_Sym *dst = cdst;
H_PUT_32 (abfd, src->st_name, dst->st_name);
H_PUT_WORD (abfd, src->st_value, dst->st_value);
H_PUT_WORD (abfd, src->st_size, dst->st_size);
@@ -260,10 +239,9 @@ elf_swap_symbol_out (abfd, src, cdst, shndx)
internal format. */
static void
-elf_swap_ehdr_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Ehdr *src;
- Elf_Internal_Ehdr *dst;
+elf_swap_ehdr_in (bfd *abfd,
+ const Elf_External_Ehdr *src,
+ Elf_Internal_Ehdr *dst)
{
int signed_vma = get_elf_backend_data (abfd)->sign_extend_vma;
memcpy (dst->e_ident, src->e_ident, EI_NIDENT);
@@ -289,10 +267,9 @@ elf_swap_ehdr_in (abfd, src, dst)
external format. */
static void
-elf_swap_ehdr_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Ehdr *src;
- Elf_External_Ehdr *dst;
+elf_swap_ehdr_out (bfd *abfd,
+ const Elf_Internal_Ehdr *src,
+ Elf_External_Ehdr *dst)
{
unsigned int tmp;
int signed_vma = get_elf_backend_data (abfd)->sign_extend_vma;
@@ -326,10 +303,9 @@ elf_swap_ehdr_out (abfd, src, dst)
ELF section header table entry in internal format. */
static void
-elf_swap_shdr_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Shdr *src;
- Elf_Internal_Shdr *dst;
+elf_swap_shdr_in (bfd *abfd,
+ const Elf_External_Shdr *src,
+ Elf_Internal_Shdr *dst)
{
int signed_vma = get_elf_backend_data (abfd)->sign_extend_vma;
@@ -354,10 +330,9 @@ elf_swap_shdr_in (abfd, src, dst)
ELF section header table entry in external format. */
static void
-elf_swap_shdr_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Shdr *src;
- Elf_External_Shdr *dst;
+elf_swap_shdr_out (bfd *abfd,
+ const Elf_Internal_Shdr *src,
+ Elf_External_Shdr *dst)
{
/* note that all elements of dst are *arrays of unsigned char* already... */
H_PUT_32 (abfd, src->sh_name, dst->sh_name);
@@ -376,10 +351,9 @@ elf_swap_shdr_out (abfd, src, dst)
ELF program header table entry in internal format. */
void
-elf_swap_phdr_in (abfd, src, dst)
- bfd *abfd;
- const Elf_External_Phdr *src;
- Elf_Internal_Phdr *dst;
+elf_swap_phdr_in (bfd *abfd,
+ const Elf_External_Phdr *src,
+ Elf_Internal_Phdr *dst)
{
int signed_vma = get_elf_backend_data (abfd)->sign_extend_vma;
@@ -402,10 +376,9 @@ elf_swap_phdr_in (abfd, src, dst)
}
void
-elf_swap_phdr_out (abfd, src, dst)
- bfd *abfd;
- const Elf_Internal_Phdr *src;
- Elf_External_Phdr *dst;
+elf_swap_phdr_out (bfd *abfd,
+ const Elf_Internal_Phdr *src,
+ Elf_External_Phdr *dst)
{
/* note that all elements of dst are *arrays of unsigned char* already... */
H_PUT_32 (abfd, src->p_type, dst->p_type);
@@ -420,10 +393,9 @@ elf_swap_phdr_out (abfd, src, dst)
/* Translate an ELF reloc from external format to internal format. */
void
-elf_swap_reloc_in (abfd, s, dst)
- bfd *abfd;
- const bfd_byte *s;
- Elf_Internal_Rela *dst;
+elf_swap_reloc_in (bfd *abfd,
+ const bfd_byte *s,
+ Elf_Internal_Rela *dst)
{
const Elf_External_Rel *src = (const Elf_External_Rel *) s;
dst->r_offset = H_GET_WORD (abfd, src->r_offset);
@@ -432,10 +404,9 @@ elf_swap_reloc_in (abfd, s, dst)
}
void
-elf_swap_reloca_in (abfd, s, dst)
- bfd *abfd;
- const bfd_byte *s;
- Elf_Internal_Rela *dst;
+elf_swap_reloca_in (bfd *abfd,
+ const bfd_byte *s,
+ Elf_Internal_Rela *dst)
{
const Elf_External_Rela *src = (const Elf_External_Rela *) s;
dst->r_offset = H_GET_WORD (abfd, src->r_offset);
@@ -445,10 +416,9 @@ elf_swap_reloca_in (abfd, s, dst)
/* Translate an ELF reloc from internal format to external format. */
void
-elf_swap_reloc_out (abfd, src, d)
- bfd *abfd;
- const Elf_Internal_Rela *src;
- bfd_byte *d;
+elf_swap_reloc_out (bfd *abfd,
+ const Elf_Internal_Rela *src,
+ bfd_byte *d)
{
Elf_External_Rel *dst = (Elf_External_Rel *) d;
H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
@@ -456,10 +426,9 @@ elf_swap_reloc_out (abfd, src, d)
}
void
-elf_swap_reloca_out (abfd, src, d)
- bfd *abfd;
- const Elf_Internal_Rela *src;
- bfd_byte *d;
+elf_swap_reloca_out (bfd *abfd,
+ const Elf_Internal_Rela *src,
+ bfd_byte *d)
{
Elf_External_Rela *dst = (Elf_External_Rela *) d;
H_PUT_WORD (abfd, src->r_offset, dst->r_offset);
@@ -467,25 +436,23 @@ elf_swap_reloca_out (abfd, src, d)
H_PUT_SIGNED_WORD (abfd, src->r_addend, dst->r_addend);
}
-INLINE void
-elf_swap_dyn_in (abfd, p, dst)
- bfd *abfd;
- const PTR p;
- Elf_Internal_Dyn *dst;
+void
+elf_swap_dyn_in (bfd *abfd,
+ const void *p,
+ Elf_Internal_Dyn *dst)
{
- const Elf_External_Dyn *src = (const Elf_External_Dyn *) p;
+ const Elf_External_Dyn *src = p;
dst->d_tag = H_GET_WORD (abfd, src->d_tag);
dst->d_un.d_val = H_GET_WORD (abfd, src->d_un.d_val);
}
-INLINE void
-elf_swap_dyn_out (abfd, src, p)
- bfd *abfd;
- const Elf_Internal_Dyn *src;
- PTR p;
+void
+elf_swap_dyn_out (bfd *abfd,
+ const Elf_Internal_Dyn *src,
+ void *p)
{
- Elf_External_Dyn *dst = (Elf_External_Dyn *) p;
+ Elf_External_Dyn *dst = p;
H_PUT_WORD (abfd, src->d_tag, dst->d_tag);
H_PUT_WORD (abfd, src->d_un.d_val, dst->d_un.d_val);
@@ -498,9 +465,8 @@ elf_swap_dyn_out (abfd, src, p)
First we validate the file by reading in the ELF header and checking
the magic number. */
-static INLINE bfd_boolean
-elf_file_p (x_ehdrp)
- Elf_External_Ehdr *x_ehdrp;
+static inline bfd_boolean
+elf_file_p (Elf_External_Ehdr *x_ehdrp)
{
return ((x_ehdrp->e_ident[EI_MAG0] == ELFMAG0)
&& (x_ehdrp->e_ident[EI_MAG1] == ELFMAG1)
@@ -517,8 +483,7 @@ elf_file_p (x_ehdrp)
file does not match the target vector. */
const bfd_target *
-elf_object_p (abfd)
- bfd *abfd;
+elf_object_p (bfd *abfd)
{
Elf_External_Ehdr x_ehdr; /* Elf file header, external form */
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
@@ -527,7 +492,7 @@ elf_object_p (abfd)
Elf_Internal_Shdr *i_shdrp; /* Section header table, internal form */
unsigned int shindex;
char *shstrtab; /* Internal copy of section header stringtab */
- struct elf_backend_data *ebd;
+ const struct elf_backend_data *ebd;
struct bfd_preserve preserve;
asection *s;
bfd_size_type amt;
@@ -536,8 +501,7 @@ elf_object_p (abfd)
/* Read in the ELF header in external format. */
- if (bfd_bread ((PTR) & x_ehdr, (bfd_size_type) sizeof (x_ehdr), abfd)
- != sizeof (x_ehdr))
+ if (bfd_bread (&x_ehdr, sizeof (x_ehdr), abfd) != sizeof (x_ehdr))
{
if (bfd_get_error () != bfd_error_system_call)
goto got_wrong_format_error;
@@ -572,17 +536,15 @@ elf_object_p (abfd)
goto got_wrong_format_error;
}
+ if (!bfd_preserve_save (abfd, &preserve))
+ goto got_no_match;
+
/* Allocate an instance of the elf_obj_tdata structure and hook it up to
the tdata pointer in the bfd. */
- amt = sizeof (struct elf_obj_tdata);
- preserve.marker = bfd_zalloc (abfd, amt);
- if (preserve.marker == NULL)
+ if (! (*abfd->xvec->_bfd_set_format[bfd_object]) (abfd))
goto got_no_match;
- if (!bfd_preserve_save (abfd, &preserve))
- goto got_no_match;
-
- elf_tdata (abfd) = preserve.marker;
+ preserve.marker = elf_tdata (abfd);
/* Now that we know the byte order, swap in the rest of the header */
i_ehdrp = elf_elfheader (abfd);
@@ -629,11 +591,11 @@ elf_object_p (abfd)
for which we do not have a specific backend. */
for (target_ptr = bfd_target_vector; *target_ptr != NULL; target_ptr++)
{
- struct elf_backend_data *back;
+ const struct elf_backend_data *back;
if ((*target_ptr)->flavour != bfd_target_elf_flavour)
continue;
- back = (struct elf_backend_data *) (*target_ptr)->backend_data;
+ back = (const struct elf_backend_data *) (*target_ptr)->backend_data;
if (back->elf_machine_code == i_ehdrp->e_machine
|| (back->elf_machine_alt1 != 0
&& back->elf_machine_alt1 == i_ehdrp->e_machine)
@@ -673,8 +635,7 @@ elf_object_p (abfd)
/* Read the first section header at index 0, and convert to internal
form. */
- if (bfd_bread ((PTR) & x_shdr, (bfd_size_type) sizeof x_shdr, abfd)
- != sizeof (x_shdr))
+ if (bfd_bread (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
goto got_no_match;
elf_swap_shdr_in (abfd, &x_shdr, &i_shdr);
@@ -696,7 +657,7 @@ elf_object_p (abfd)
unsigned int num_sec;
amt = sizeof (*i_shdrp) * i_ehdrp->e_shnum;
- i_shdrp = (Elf_Internal_Shdr *) bfd_alloc (abfd, amt);
+ i_shdrp = bfd_alloc (abfd, amt);
if (!i_shdrp)
goto got_no_match;
num_sec = i_ehdrp->e_shnum;
@@ -704,7 +665,7 @@ elf_object_p (abfd)
num_sec += SHN_HIRESERVE + 1 - SHN_LORESERVE;
elf_numsections (abfd) = num_sec;
amt = sizeof (i_shdrp) * num_sec;
- elf_elfsections (abfd) = (Elf_Internal_Shdr **) bfd_alloc (abfd, amt);
+ elf_elfsections (abfd) = bfd_alloc (abfd, amt);
if (!elf_elfsections (abfd))
goto got_no_match;
@@ -725,8 +686,7 @@ elf_object_p (abfd)
to internal form. */
for (shindex = 1; shindex < i_ehdrp->e_shnum; shindex++)
{
- if (bfd_bread ((PTR) & x_shdr, (bfd_size_type) sizeof x_shdr, abfd)
- != sizeof (x_shdr))
+ if (bfd_bread (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
goto got_no_match;
elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex);
@@ -757,7 +717,7 @@ elf_object_p (abfd)
unsigned int i;
amt = i_ehdrp->e_phnum * sizeof (Elf_Internal_Phdr);
- elf_tdata (abfd)->phdr = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt);
+ elf_tdata (abfd)->phdr = bfd_alloc (abfd, amt);
if (elf_tdata (abfd)->phdr == NULL)
goto got_no_match;
if (bfd_seek (abfd, (file_ptr) i_ehdrp->e_phoff, SEEK_SET) != 0)
@@ -767,8 +727,7 @@ elf_object_p (abfd)
{
Elf_External_Phdr x_phdr;
- if (bfd_bread ((PTR) &x_phdr, (bfd_size_type) sizeof x_phdr, abfd)
- != sizeof x_phdr)
+ if (bfd_bread (&x_phdr, sizeof x_phdr, abfd) != sizeof x_phdr)
goto got_no_match;
elf_swap_phdr_in (abfd, &x_phdr, i_phdr);
}
@@ -854,15 +813,12 @@ elf_object_p (abfd)
/* Write out the relocs. */
void
-elf_write_relocs (abfd, sec, data)
- bfd *abfd;
- asection *sec;
- PTR data;
+elf_write_relocs (bfd *abfd, asection *sec, void *data)
{
- bfd_boolean *failedp = (bfd_boolean *) data;
+ bfd_boolean *failedp = data;
Elf_Internal_Shdr *rela_hdr;
bfd_vma addr_offset;
- void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ void (*swap_out) (bfd *, const Elf_Internal_Rela *, bfd_byte *);
size_t extsize;
bfd_byte *dst_rela;
unsigned int idx;
@@ -886,7 +842,7 @@ elf_write_relocs (abfd, sec, data)
rela_hdr = &elf_section_data (sec)->rel_hdr;
rela_hdr->sh_size = rela_hdr->sh_entsize * sec->reloc_count;
- rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size);
+ rela_hdr->contents = bfd_alloc (abfd, rela_hdr->sh_size);
if (rela_hdr->contents == NULL)
{
*failedp = TRUE;
@@ -964,17 +920,16 @@ elf_write_relocs (abfd, sec, data)
/* Write out the program headers. */
int
-elf_write_out_phdrs (abfd, phdr, count)
- bfd *abfd;
- const Elf_Internal_Phdr *phdr;
- unsigned int count;
+elf_write_out_phdrs (bfd *abfd,
+ const Elf_Internal_Phdr *phdr,
+ unsigned int count)
{
while (count--)
{
Elf_External_Phdr extphdr;
elf_swap_phdr_out (abfd, phdr, &extphdr);
- if (bfd_bwrite (&extphdr, (bfd_size_type) sizeof (Elf_External_Phdr),
- abfd) != sizeof (Elf_External_Phdr))
+ if (bfd_bwrite (&extphdr, sizeof (Elf_External_Phdr), abfd)
+ != sizeof (Elf_External_Phdr))
return -1;
phdr++;
}
@@ -984,8 +939,7 @@ elf_write_out_phdrs (abfd, phdr, count)
/* Write out the section headers and the ELF file header. */
bfd_boolean
-elf_write_shdrs_and_ehdr (abfd)
- bfd *abfd;
+elf_write_shdrs_and_ehdr (bfd *abfd)
{
Elf_External_Ehdr x_ehdr; /* Elf file header, external form */
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
@@ -1005,7 +959,7 @@ elf_write_shdrs_and_ehdr (abfd)
elf_swap_ehdr_out (abfd, i_ehdrp, &x_ehdr);
amt = sizeof (x_ehdr);
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0
- || bfd_bwrite ((PTR) & x_ehdr, amt, abfd) != amt)
+ || bfd_bwrite (&x_ehdr, amt, abfd) != amt)
return FALSE;
/* Some fields in the first section header handle overflow of ehdr
@@ -1018,7 +972,7 @@ elf_write_shdrs_and_ehdr (abfd)
/* at this point we've concocted all the ELF sections... */
amt = i_ehdrp->e_shnum;
amt *= sizeof (*x_shdrp);
- x_shdrp = (Elf_External_Shdr *) bfd_alloc (abfd, amt);
+ x_shdrp = bfd_alloc (abfd, amt);
if (!x_shdrp)
return FALSE;
@@ -1033,7 +987,7 @@ elf_write_shdrs_and_ehdr (abfd)
i_shdrp += SHN_HIRESERVE + 1 - SHN_LORESERVE;
}
if (bfd_seek (abfd, (file_ptr) i_ehdrp->e_shoff, SEEK_SET) != 0
- || bfd_bwrite ((PTR) x_shdrp, amt, abfd) != amt)
+ || bfd_bwrite (x_shdrp, amt, abfd) != amt)
return FALSE;
/* need to dump the string table too... */
@@ -1042,10 +996,7 @@ elf_write_shdrs_and_ehdr (abfd)
}
long
-elf_slurp_symbol_table (abfd, symptrs, dynamic)
- bfd *abfd;
- asymbol **symptrs; /* Buffer for generated bfd symbols */
- bfd_boolean dynamic;
+elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic)
{
Elf_Internal_Shdr *hdr;
Elf_Internal_Shdr *verhdr;
@@ -1057,7 +1008,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
Elf_Internal_Sym *isymbuf = NULL;
Elf_External_Versym *xver;
Elf_External_Versym *xverbuf = NULL;
- struct elf_backend_data *ebd;
+ const struct elf_backend_data *ebd;
bfd_size_type amt;
/* Read each raw ELF symbol, converting from external ELF form to
@@ -1105,7 +1056,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
amt = symcount;
amt *= sizeof (elf_symbol_type);
- symbase = (elf_symbol_type *) bfd_zalloc (abfd, amt);
+ symbase = bfd_zalloc (abfd, amt);
if (symbase == (elf_symbol_type *) NULL)
goto error_return;
@@ -1129,12 +1080,11 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
if (bfd_seek (abfd, verhdr->sh_offset, SEEK_SET) != 0)
goto error_return;
- xverbuf = (Elf_External_Versym *) bfd_malloc (verhdr->sh_size);
+ xverbuf = bfd_malloc (verhdr->sh_size);
if (xverbuf == NULL && verhdr->sh_size != 0)
goto error_return;
- if (bfd_bread ((PTR) xverbuf, verhdr->sh_size, abfd)
- != verhdr->sh_size)
+ if (bfd_bread (xverbuf, verhdr->sh_size, abfd) != verhdr->sh_size)
goto error_return;
}
@@ -1187,7 +1137,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
else
sym->symbol.section = bfd_abs_section_ptr;
- /* If this is a relocateable file, then the symbol value is
+ /* If this is a relocatable file, then the symbol value is
already section relative. */
if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
sym->symbol.value -= sym->symbol.section->vma;
@@ -1280,25 +1230,23 @@ error_return:
them. */
static bfd_boolean
-elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
- relents, symbols, dynamic)
- bfd *abfd;
- asection *asect;
- Elf_Internal_Shdr *rel_hdr;
- bfd_size_type reloc_count;
- arelent *relents;
- asymbol **symbols;
- bfd_boolean dynamic;
+elf_slurp_reloc_table_from_section (bfd *abfd,
+ asection *asect,
+ Elf_Internal_Shdr *rel_hdr,
+ bfd_size_type reloc_count,
+ arelent *relents,
+ asymbol **symbols,
+ bfd_boolean dynamic)
{
- struct elf_backend_data * const ebd = get_elf_backend_data (abfd);
- PTR allocated = NULL;
+ const struct elf_backend_data * const ebd = get_elf_backend_data (abfd);
+ void *allocated = NULL;
bfd_byte *native_relocs;
arelent *relent;
unsigned int i;
int entsize;
unsigned int symcount;
- allocated = (PTR) bfd_malloc (rel_hdr->sh_size);
+ allocated = bfd_malloc (rel_hdr->sh_size);
if (allocated == NULL)
goto error_return;
@@ -1307,7 +1255,7 @@ elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
!= rel_hdr->sh_size))
goto error_return;
- native_relocs = (bfd_byte *) allocated;
+ native_relocs = allocated;
entsize = rel_hdr->sh_entsize;
BFD_ASSERT (entsize == sizeof (Elf_External_Rel)
@@ -1385,11 +1333,10 @@ elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count,
/* Read in and swap the external relocs. */
bfd_boolean
-elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
- bfd *abfd;
- asection *asect;
- asymbol **symbols;
- bfd_boolean dynamic;
+elf_slurp_reloc_table (bfd *abfd,
+ asection *asect,
+ asymbol **symbols,
+ bfd_boolean dynamic)
{
struct bfd_elf_section_data * const d = elf_section_data (asect);
Elf_Internal_Shdr *rel_hdr;
@@ -1434,7 +1381,7 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
}
amt = (reloc_count + reloc_count2) * sizeof (arelent);
- relents = (arelent *) bfd_alloc (abfd, amt);
+ relents = bfd_alloc (abfd, amt);
if (relents == NULL)
return FALSE;
@@ -1457,9 +1404,7 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
#ifdef DEBUG
static void
-elf_debug_section (num, hdr)
- int num;
- Elf_Internal_Shdr *hdr;
+elf_debug_section (int num, Elf_Internal_Shdr *hdr)
{
fprintf (stderr, "\nSection#%d '%s' 0x%.8lx\n", num,
hdr->bfd_section != NULL ? hdr->bfd_section->name : "",
@@ -1485,8 +1430,7 @@ elf_debug_section (num, hdr)
}
static void
-elf_debug_file (ehdrp)
- Elf_Internal_Ehdr *ehdrp;
+elf_debug_file (Elf_Internal_Ehdr *ehdrp)
{
fprintf (stderr, "e_entry = 0x%.8lx\n", (long) ehdrp->e_entry);
fprintf (stderr, "e_phoff = %ld\n", (long) ehdrp->e_phoff);
@@ -1498,8 +1442,7 @@ elf_debug_file (ehdrp)
}
static char *
-elf_symbol_flags (flags)
- flagword flags;
+elf_symbol_flags (flagword flags)
{
static char buffer[1024];
@@ -1584,12 +1527,11 @@ elf_symbol_flags (flags)
remote memory. */
bfd *
-NAME(_bfd_elf,bfd_from_remote_memory) (templ, ehdr_vma, loadbasep,
- target_read_memory)
- bfd *templ;
- bfd_vma ehdr_vma;
- bfd_vma *loadbasep;
- int (*target_read_memory) PARAMS ((bfd_vma vma, char *myaddr, int len));
+NAME(_bfd_elf,bfd_from_remote_memory)
+ (bfd *templ,
+ bfd_vma ehdr_vma,
+ bfd_vma *loadbasep,
+ int (*target_read_memory) (bfd_vma, char *, int))
{
Elf_External_Ehdr x_ehdr; /* Elf file header, external form */
Elf_Internal_Ehdr i_ehdr; /* Elf file header, internal form */
@@ -1658,8 +1600,7 @@ NAME(_bfd_elf,bfd_from_remote_memory) (templ, ehdr_vma, loadbasep,
return NULL;
}
- x_phdrs = (Elf_External_Phdr *)
- bfd_malloc (i_ehdr.e_phnum * (sizeof *x_phdrs + sizeof *i_phdrs));
+ x_phdrs = bfd_malloc (i_ehdr.e_phnum * (sizeof *x_phdrs + sizeof *i_phdrs));
if (x_phdrs == NULL)
{
bfd_set_error (bfd_error_no_memory);
@@ -1720,7 +1661,7 @@ NAME(_bfd_elf,bfd_from_remote_memory) (templ, ehdr_vma, loadbasep,
contents_size = last_phdr->p_offset + last_phdr->p_filesz;
/* Now we know the size of the whole image we want read in. */
- contents = (char *) bfd_zmalloc ((bfd_size_type) contents_size);
+ contents = bfd_zmalloc (contents_size);
if (contents == NULL)
{
free (x_phdrs);
@@ -1765,8 +1706,7 @@ NAME(_bfd_elf,bfd_from_remote_memory) (templ, ehdr_vma, loadbasep,
memcpy (contents, &x_ehdr, sizeof x_ehdr);
/* Now we have a memory image of the ELF file contents. Make a BFD. */
- bim = ((struct bfd_in_memory *)
- bfd_malloc ((bfd_size_type) sizeof (struct bfd_in_memory)));
+ bim = bfd_malloc (sizeof (struct bfd_in_memory));
if (bim == NULL)
{
free (contents);
@@ -1785,7 +1725,7 @@ NAME(_bfd_elf,bfd_from_remote_memory) (templ, ehdr_vma, loadbasep,
nbfd->xvec = templ->xvec;
bim->size = contents_size;
bim->buffer = contents;
- nbfd->iostream = (PTR) bim;
+ nbfd->iostream = bim;
nbfd->flags = BFD_IN_MEMORY;
nbfd->direction = read_direction;
nbfd->mtime = time (NULL);
diff --git a/bfd/elfcore.h b/bfd/elfcore.h
index 724d607..81c4cff 100644
--- a/bfd/elfcore.h
+++ b/bfd/elfcore.h
@@ -19,23 +19,19 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
char*
-elf_core_file_failing_command (abfd)
- bfd *abfd;
+elf_core_file_failing_command (bfd *abfd)
{
return elf_tdata (abfd)->core_command;
}
int
-elf_core_file_failing_signal (abfd)
- bfd *abfd;
+elf_core_file_failing_signal (bfd *abfd)
{
return elf_tdata (abfd)->core_signal;
}
bfd_boolean
-elf_core_file_matches_executable_p (core_bfd, exec_bfd)
- bfd *core_bfd;
- bfd *exec_bfd;
+elf_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
{
char* corename;
@@ -55,7 +51,7 @@ elf_core_file_matches_executable_p (core_bfd, exec_bfd)
execname = execname ? execname + 1 : exec_bfd->filename;
- if (strcmp(execname, corename) != 0)
+ if (strcmp (execname, corename) != 0)
return FALSE;
}
@@ -74,22 +70,20 @@ elf_core_file_matches_executable_p (core_bfd, exec_bfd)
floating point registers (.reg2). */
const bfd_target *
-elf_core_file_p (abfd)
- bfd *abfd;
+elf_core_file_p (bfd *abfd)
{
Elf_External_Ehdr x_ehdr; /* Elf file header, external form. */
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form. */
Elf_Internal_Phdr *i_phdrp; /* Elf program header, internal form. */
unsigned int phindex;
- struct elf_backend_data *ebd;
+ const struct elf_backend_data *ebd;
struct bfd_preserve preserve;
bfd_size_type amt;
preserve.marker = NULL;
/* Read in the ELF header in external format. */
- if (bfd_bread ((PTR) &x_ehdr, (bfd_size_type) sizeof (x_ehdr), abfd)
- != sizeof (x_ehdr))
+ if (bfd_bread (&x_ehdr, sizeof (x_ehdr), abfd) != sizeof (x_ehdr))
{
if (bfd_get_error () != bfd_error_system_call)
goto wrong;
@@ -122,15 +116,13 @@ elf_core_file_p (abfd)
goto wrong;
}
- /* Give abfd an elf_obj_tdata. */
- amt = sizeof (struct elf_obj_tdata);
- preserve.marker = bfd_zalloc (abfd, amt);
- if (preserve.marker == NULL)
- goto fail;
if (!bfd_preserve_save (abfd, &preserve))
goto fail;
- elf_tdata (abfd) = preserve.marker;
+ /* Give abfd an elf_obj_tdata. */
+ if (! (*abfd->xvec->_bfd_set_format[bfd_core]) (abfd))
+ goto fail;
+ preserve.marker = elf_tdata (abfd);
/* Swap in the rest of the header, now that we have the byte order. */
i_ehdrp = elf_elfheader (abfd);
@@ -161,11 +153,11 @@ elf_core_file_p (abfd)
for (target_ptr = bfd_target_vector; *target_ptr != NULL; target_ptr++)
{
- struct elf_backend_data *back;
+ const struct elf_backend_data *back;
if ((*target_ptr)->flavour != bfd_target_elf_flavour)
continue;
- back = (struct elf_backend_data *) (*target_ptr)->backend_data;
+ back = (const struct elf_backend_data *) (*target_ptr)->backend_data;
if (back->elf_machine_code == i_ehdrp->e_machine
|| (back->elf_machine_alt1 != 0
&& i_ehdrp->e_machine == back->elf_machine_alt1)
@@ -195,7 +187,7 @@ elf_core_file_p (abfd)
/* Allocate space for the program headers. */
amt = sizeof (*i_phdrp) * i_ehdrp->e_phnum;
- i_phdrp = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt);
+ i_phdrp = bfd_alloc (abfd, amt);
if (!i_phdrp)
goto fail;
@@ -206,8 +198,7 @@ elf_core_file_p (abfd)
{
Elf_External_Phdr x_phdr;
- if (bfd_bread ((PTR) &x_phdr, (bfd_size_type) sizeof (x_phdr), abfd)
- != sizeof (x_phdr))
+ if (bfd_bread (&x_phdr, sizeof (x_phdr), abfd) != sizeof (x_phdr))
goto fail;
elf_swap_phdr_in (abfd, &x_phdr, i_phdrp + phindex);
diff --git a/bfd/elflink.c b/bfd/elflink.c
index d6f6d70..d53571d 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -25,19 +25,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ARCH_SIZE 0
#include "elf-bfd.h"
-static bfd_boolean elf_link_read_relocs_from_section
- PARAMS ((bfd *, Elf_Internal_Shdr *, PTR, Elf_Internal_Rela *));
-
bfd_boolean
-_bfd_elf_create_got_section (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_create_got_section (bfd *abfd, struct bfd_link_info *info)
{
flagword flags;
asection *s;
struct elf_link_hash_entry *h;
struct bfd_link_hash_entry *bh;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
int ptralign;
/* This function may be called more than once. */
@@ -87,8 +82,7 @@ _bfd_elf_create_got_section (abfd, info)
bh = NULL;
if (!(_bfd_generic_link_add_one_symbol
(info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
- bed->got_symbol_offset, (const char *) NULL, FALSE,
- bed->collect, &bh)))
+ bed->got_symbol_offset, NULL, FALSE, bed->collect, &bh)))
return FALSE;
h = (struct elf_link_hash_entry *) bh;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -115,15 +109,13 @@ _bfd_elf_create_got_section (abfd, info)
actual contents and size of these sections later. */
bfd_boolean
-_bfd_elf_link_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
flagword flags;
register asection *s;
struct elf_link_hash_entry *h;
struct bfd_link_hash_entry *bh;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
if (! is_elf_hash_table (info))
return FALSE;
@@ -220,8 +212,8 @@ _bfd_elf_link_create_dynamic_sections (abfd, info)
code examines it to decide how to initialize the process. */
bh = NULL;
if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, "_DYNAMIC", BSF_GLOBAL, s, (bfd_vma) 0,
- (const char *) 0, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+ (info, abfd, "_DYNAMIC", BSF_GLOBAL, s, 0, NULL, FALSE,
+ get_elf_backend_data (abfd)->collect, &bh)))
return FALSE;
h = (struct elf_link_hash_entry *) bh;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -252,13 +244,11 @@ _bfd_elf_link_create_dynamic_sections (abfd, info)
/* Create dynamic sections when linking against a dynamic object. */
bfd_boolean
-_bfd_elf_create_dynamic_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
{
flagword flags, pltflags;
asection *s;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
/* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
.rel[a].bss sections. */
@@ -287,9 +277,8 @@ _bfd_elf_create_dynamic_sections (abfd, info)
struct bfd_link_hash_entry *bh = NULL;
if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
- (bfd_vma) 0, (const char *) NULL, FALSE,
- get_elf_backend_data (abfd)->collect, &bh)))
+ (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, 0, NULL,
+ FALSE, get_elf_backend_data (abfd)->collect, &bh)))
return FALSE;
h = (struct elf_link_hash_entry *) bh;
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
@@ -320,7 +309,7 @@ _bfd_elf_create_dynamic_sections (abfd, info)
section into the .bss section of the final image. */
s = bfd_make_section (abfd, ".dynbss");
if (s == NULL
- || ! bfd_set_section_flags (abfd, s, SEC_ALLOC))
+ || ! bfd_set_section_flags (abfd, s, SEC_ALLOC | SEC_LINKER_CREATED))
return FALSE;
/* The .rel[a].bss section holds copy relocs. This section is not
@@ -358,9 +347,8 @@ _bfd_elf_create_dynamic_sections (abfd, info)
one. */
bfd_boolean
-_bfd_elf_link_record_dynamic_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+_bfd_elf_link_record_dynamic_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
if (h->dynindx == -1)
{
@@ -414,7 +402,7 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
{
size_t len = p - name + 1;
- alc = bfd_malloc ((bfd_size_type) len);
+ alc = bfd_malloc (len);
if (alc == NULL)
return FALSE;
memcpy (alc, name, len - 1);
@@ -440,11 +428,10 @@ _bfd_elf_link_record_dynamic_symbol (info, h)
this in case some dynamic object refers to this symbol. */
bfd_boolean
-bfd_elf_record_link_assignment (output_bfd, info, name, provide)
- bfd *output_bfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *info;
- const char *name;
- bfd_boolean provide;
+bfd_elf_record_link_assignment (bfd *output_bfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *info,
+ const char *name,
+ bfd_boolean provide)
{
struct elf_link_hash_entry *h;
@@ -505,10 +492,9 @@ bfd_elf_record_link_assignment (output_bfd, info, name, provide)
in a discarded section, eg. a discarded link-once section symbol. */
int
-elf_link_record_local_dynamic_symbol (info, input_bfd, input_indx)
- struct bfd_link_info *info;
- bfd *input_bfd;
- long input_indx;
+elf_link_record_local_dynamic_symbol (struct bfd_link_info *info,
+ bfd *input_bfd,
+ long input_indx)
{
bfd_size_type amt;
struct elf_link_local_dynamic_entry *entry;
@@ -528,14 +514,13 @@ elf_link_record_local_dynamic_symbol (info, input_bfd, input_indx)
return 1;
amt = sizeof (*entry);
- entry = (struct elf_link_local_dynamic_entry *) bfd_alloc (input_bfd, amt);
+ entry = bfd_alloc (input_bfd, amt);
if (entry == NULL)
return 0;
/* Go find the symbol, so that we can find it's name. */
if (!bfd_elf_get_elf_syms (input_bfd, &elf_tdata (input_bfd)->symtab_hdr,
- (size_t) 1, (size_t) input_indx,
- &entry->isym, esym, &eshndx))
+ 1, input_indx, &entry->isym, esym, &eshndx))
{
bfd_release (input_bfd, entry);
return 0;
@@ -595,10 +580,9 @@ elf_link_record_local_dynamic_symbol (info, input_bfd, input_indx)
/* Return the dynindex of a local dynamic symbol. */
long
-_bfd_elf_link_lookup_local_dynindx (info, input_bfd, input_indx)
- struct bfd_link_info *info;
- bfd *input_bfd;
- long input_indx;
+_bfd_elf_link_lookup_local_dynindx (struct bfd_link_info *info,
+ bfd *input_bfd,
+ long input_indx)
{
struct elf_link_local_dynamic_entry *e;
@@ -612,15 +596,11 @@ _bfd_elf_link_lookup_local_dynindx (info, input_bfd, input_indx)
them are removed because they are marked as local. This is called
via elf_link_hash_traverse. */
-static bfd_boolean elf_link_renumber_hash_table_dynsyms
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
static bfd_boolean
-elf_link_renumber_hash_table_dynsyms (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_link_renumber_hash_table_dynsyms (struct elf_link_hash_entry *h,
+ void *data)
{
- size_t *count = (size_t *) data;
+ size_t *count = data;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -637,9 +617,7 @@ elf_link_renumber_hash_table_dynsyms (h, data)
the global symbols. */
unsigned long
-_bfd_elf_link_renumber_dynsyms (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+_bfd_elf_link_renumber_dynsyms (bfd *output_bfd, struct bfd_link_info *info)
{
unsigned long dynsymcount = 0;
@@ -684,20 +662,18 @@ _bfd_elf_link_renumber_dynsyms (output_bfd, info)
a shared object. */
bfd_boolean
-_bfd_elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash, skip,
- override, type_change_ok, size_change_ok, dt_needed)
- bfd *abfd;
- struct bfd_link_info *info;
- const char *name;
- Elf_Internal_Sym *sym;
- asection **psec;
- bfd_vma *pvalue;
- struct elf_link_hash_entry **sym_hash;
- bfd_boolean *skip;
- bfd_boolean *override;
- bfd_boolean *type_change_ok;
- bfd_boolean *size_change_ok;
- bfd_boolean dt_needed;
+_bfd_elf_merge_symbol (bfd *abfd,
+ struct bfd_link_info *info,
+ const char *name,
+ Elf_Internal_Sym *sym,
+ asection **psec,
+ bfd_vma *pvalue,
+ struct elf_link_hash_entry **sym_hash,
+ bfd_boolean *skip,
+ bfd_boolean *override,
+ bfd_boolean *type_change_ok,
+ bfd_boolean *size_change_ok,
+ bfd_boolean dt_needed)
{
asection *sec;
struct elf_link_hash_entry *h;
@@ -1188,7 +1164,7 @@ _bfd_elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash, skip,
/* Handle the case where we had a versioned symbol in a dynamic
library and now find a definition in a normal object. In this
case, we make the versioned symbol point to the normal one. */
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
flip->root.type = h->root.type;
h->root.type = bfd_link_hash_indirect;
h->root.u.i.link = (struct bfd_link_hash_entry *) flip;
@@ -1254,18 +1230,16 @@ _bfd_elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash, skip,
indicates if it comes from a DT_NEEDED entry of a shared object. */
bfd_boolean
-_bfd_elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
- dynsym, override, dt_needed)
- bfd *abfd;
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
- const char *name;
- Elf_Internal_Sym *sym;
- asection **psec;
- bfd_vma *value;
- bfd_boolean *dynsym;
- bfd_boolean override;
- bfd_boolean dt_needed;
+_bfd_elf_add_default_symbol (bfd *abfd,
+ struct bfd_link_info *info,
+ struct elf_link_hash_entry *h,
+ const char *name,
+ Elf_Internal_Sym *sym,
+ asection **psec,
+ bfd_vma *value,
+ bfd_boolean *dynsym,
+ bfd_boolean override,
+ bfd_boolean dt_needed)
{
bfd_boolean type_change_ok;
bfd_boolean size_change_ok;
@@ -1273,7 +1247,7 @@ _bfd_elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
char *shortname;
struct elf_link_hash_entry *hi;
struct bfd_link_hash_entry *bh;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bfd_boolean collect;
bfd_boolean dynamic;
char *p;
@@ -1337,7 +1311,7 @@ _bfd_elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
bh = &hi->root;
if (! (_bfd_generic_link_add_one_symbol
(info, abfd, shortname, BSF_INDIRECT, bfd_ind_section_ptr,
- (bfd_vma) 0, name, FALSE, collect, &bh)))
+ 0, name, FALSE, collect, &bh)))
return FALSE;
hi = (struct elf_link_hash_entry *) bh;
}
@@ -1461,7 +1435,7 @@ nondefault:
bh = &hi->root;
if (! (_bfd_generic_link_add_one_symbol
(info, abfd, shortname, BSF_INDIRECT,
- bfd_ind_section_ptr, (bfd_vma) 0, name, FALSE, collect, &bh)))
+ bfd_ind_section_ptr, 0, name, FALSE, collect, &bh)))
return FALSE;
hi = (struct elf_link_hash_entry *) bh;
@@ -1507,11 +1481,9 @@ nondefault:
symbol table. It is called via elf_link_hash_traverse. */
bfd_boolean
-_bfd_elf_export_symbol (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+_bfd_elf_export_symbol (struct elf_link_hash_entry *h, void *data)
{
- struct elf_info_failed *eif = (struct elf_info_failed *) data;
+ struct elf_info_failed *eif = data;
/* Ignore indirect symbols. These are added by the versioning code. */
if (h->root.type == bfd_link_hash_indirect)
@@ -1568,11 +1540,10 @@ _bfd_elf_export_symbol (h, data)
This function is called via elf_link_hash_traverse. */
bfd_boolean
-_bfd_elf_link_find_version_dependencies (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+_bfd_elf_link_find_version_dependencies (struct elf_link_hash_entry *h,
+ void *data)
{
- struct elf_find_verdep_info *rinfo = (struct elf_find_verdep_info *) data;
+ struct elf_find_verdep_info *rinfo = data;
Elf_Internal_Verneed *t;
Elf_Internal_Vernaux *a;
bfd_size_type amt;
@@ -1606,7 +1577,7 @@ _bfd_elf_link_find_version_dependencies (h, data)
if (t == NULL)
{
amt = sizeof *t;
- t = (Elf_Internal_Verneed *) bfd_zalloc (rinfo->output_bfd, amt);
+ t = bfd_zalloc (rinfo->output_bfd, amt);
if (t == NULL)
{
rinfo->failed = TRUE;
@@ -1619,7 +1590,7 @@ _bfd_elf_link_find_version_dependencies (h, data)
}
amt = sizeof *a;
- a = (Elf_Internal_Vernaux *) bfd_zalloc (rinfo->output_bfd, amt);
+ a = bfd_zalloc (rinfo->output_bfd, amt);
/* Note that we are copying a string pointer here, and testing it
above. If bfd_elf_string_from_elf_section is ever changed to
@@ -1646,18 +1617,16 @@ _bfd_elf_link_find_version_dependencies (h, data)
local. This function is called via elf_link_hash_traverse. */
bfd_boolean
-_bfd_elf_link_assign_sym_version (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+_bfd_elf_link_assign_sym_version (struct elf_link_hash_entry *h, void *data)
{
struct elf_assign_sym_version_info *sinfo;
struct bfd_link_info *info;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_info_failed eif;
char *p;
bfd_size_type amt;
- sinfo = (struct elf_assign_sym_version_info *) data;
+ sinfo = data;
info = sinfo->info;
if (h->root.type == bfd_link_hash_warning)
@@ -1714,7 +1683,7 @@ _bfd_elf_link_assign_sym_version (h, data)
struct bfd_elf_version_expr *d;
len = p - h->root.root.string;
- alc = bfd_malloc ((bfd_size_type) len);
+ alc = bfd_malloc (len);
if (alc == NULL)
return FALSE;
memcpy (alc, h->root.root.string, len - 1);
@@ -1771,8 +1740,7 @@ _bfd_elf_link_assign_sym_version (h, data)
return TRUE;
amt = sizeof *t;
- t = ((struct bfd_elf_version_tree *)
- bfd_alloc (sinfo->output_bfd, amt));
+ t = bfd_alloc (sinfo->output_bfd, amt);
if (t == NULL)
{
sinfo->failed = TRUE;
@@ -1896,179 +1864,6 @@ _bfd_elf_link_assign_sym_version (h, data)
return TRUE;
}
-/* Create a special linker section, or return a pointer to a linker
- section already created */
-
-elf_linker_section_t *
-_bfd_elf_create_linker_section (abfd, info, which, defaults)
- bfd *abfd;
- struct bfd_link_info *info;
- enum elf_linker_section_enum which;
- elf_linker_section_t *defaults;
-{
- bfd *dynobj = elf_hash_table (info)->dynobj;
- elf_linker_section_t *lsect;
-
- /* Record the first bfd section that needs the special section */
- if (!dynobj)
- dynobj = elf_hash_table (info)->dynobj = abfd;
-
- /* If this is the first time, create the section */
- lsect = elf_linker_section (dynobj, which);
- if (!lsect)
- {
- asection *s;
- bfd_size_type amt = sizeof (elf_linker_section_t);
-
- lsect = (elf_linker_section_t *) bfd_alloc (dynobj, amt);
-
- *lsect = *defaults;
- elf_linker_section (dynobj, which) = lsect;
- lsect->which = which;
- lsect->hole_written_p = FALSE;
-
- /* See if the sections already exist */
- lsect->section = s = bfd_get_section_by_name (dynobj, lsect->name);
- if (!s || (s->flags & defaults->flags) != defaults->flags)
- {
- lsect->section = s = bfd_make_section_anyway (dynobj, lsect->name);
-
- if (s == NULL)
- return (elf_linker_section_t *)0;
-
- bfd_set_section_flags (dynobj, s, defaults->flags);
- bfd_set_section_alignment (dynobj, s, lsect->alignment);
- }
- else if (bfd_get_section_alignment (dynobj, s) < lsect->alignment)
- bfd_set_section_alignment (dynobj, s, lsect->alignment);
-
- s->_raw_size = align_power (s->_raw_size, lsect->alignment);
-
- /* Is there a hole we have to provide? If so check whether the
- segment is too big already */
- if (lsect->hole_size)
- {
- lsect->hole_offset = s->_raw_size;
- s->_raw_size += lsect->hole_size;
- if (lsect->hole_offset > lsect->max_hole_offset)
- {
- (*_bfd_error_handler)
- (_("%s: Section %s is too large to add hole of %ld bytes"),
- bfd_get_filename (abfd),
- lsect->name,
- (long) lsect->hole_size);
-
- bfd_set_error (bfd_error_bad_value);
- return (elf_linker_section_t *)0;
- }
- }
-
-#ifdef DEBUG
- fprintf (stderr, "Creating section %s, current size = %ld\n",
- lsect->name, (long)s->_raw_size);
-#endif
-
- if (lsect->sym_name)
- {
- struct elf_link_hash_entry *h;
- struct bfd_link_hash_entry *bh;
-
-#ifdef DEBUG
- fprintf (stderr, "Adding %s to section %s\n",
- lsect->sym_name,
- lsect->name);
-#endif
- bh = bfd_link_hash_lookup (info->hash, lsect->sym_name,
- FALSE, FALSE, FALSE);
-
- if ((bh == NULL || bh->type == bfd_link_hash_undefined)
- && !(_bfd_generic_link_add_one_symbol
- (info, abfd, lsect->sym_name, BSF_GLOBAL, s,
- (lsect->hole_size
- ? s->_raw_size - lsect->hole_size + lsect->sym_offset
- : lsect->sym_offset),
- (const char *) NULL, FALSE,
- get_elf_backend_data (abfd)->collect, &bh)))
- return (elf_linker_section_t *) 0;
- h = (struct elf_link_hash_entry *) bh;
-
- if ((defaults->which != LINKER_SECTION_SDATA)
- && (defaults->which != LINKER_SECTION_SDATA2))
- h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_DYNAMIC;
-
- h->type = STT_OBJECT;
- lsect->sym_hash = h;
-
- if (info->shared
- && ! _bfd_elf_link_record_dynamic_symbol (info, h))
- return (elf_linker_section_t *) 0;
- }
- }
-
-#if 0
- /* This does not make sense. The sections which may exist in the
- object file have nothing to do with the sections we want to
- create. */
-
- /* Find the related sections if they have been created */
- if (lsect->bss_name && !lsect->bss_section)
- lsect->bss_section = bfd_get_section_by_name (dynobj, lsect->bss_name);
-
- if (lsect->rel_name && !lsect->rel_section)
- lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name);
-#endif
-
- return lsect;
-}
-
-/* Find a linker generated pointer with a given addend and type. */
-
-elf_linker_section_pointers_t *
-_bfd_elf_find_pointer_linker_section (linker_pointers, addend, which)
- elf_linker_section_pointers_t *linker_pointers;
- bfd_vma addend;
- elf_linker_section_enum_t which;
-{
- for ( ; linker_pointers != NULL; linker_pointers = linker_pointers->next)
- {
- if (which == linker_pointers->which && addend == linker_pointers->addend)
- return linker_pointers;
- }
-
- return (elf_linker_section_pointers_t *)0;
-}
-
-/* Make the .rela section corresponding to the generated linker section. */
-
-bfd_boolean
-_bfd_elf_make_linker_section_rela (dynobj, lsect, alignment)
- bfd *dynobj;
- elf_linker_section_t *lsect;
- int alignment;
-{
- if (lsect->rel_section)
- return TRUE;
-
- lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name);
- if (lsect->rel_section == NULL)
- {
- lsect->rel_section = bfd_make_section (dynobj, lsect->rel_name);
- if (lsect->rel_section == NULL
- || ! bfd_set_section_flags (dynobj,
- lsect->rel_section,
- (SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_IN_MEMORY
- | SEC_LINKER_CREATED
- | SEC_READONLY))
- || ! bfd_set_section_alignment (dynobj, lsect->rel_section, alignment))
- return FALSE;
- }
-
- return TRUE;
-}
-
/* Read and swap the relocs from the section indicated by SHDR. This
may be either a REL or a RELA section. The relocations are
translated into RELA relocations and stored in INTERNAL_RELOCS,
@@ -2079,15 +1874,13 @@ _bfd_elf_make_linker_section_rela (dynobj, lsect, alignment)
Returns FALSE if something goes wrong. */
static bfd_boolean
-elf_link_read_relocs_from_section (abfd, shdr, external_relocs,
- internal_relocs)
- bfd *abfd;
- Elf_Internal_Shdr *shdr;
- PTR external_relocs;
- Elf_Internal_Rela *internal_relocs;
+elf_link_read_relocs_from_section (bfd *abfd,
+ Elf_Internal_Shdr *shdr,
+ void *external_relocs,
+ Elf_Internal_Rela *internal_relocs)
{
- struct elf_backend_data *bed;
- void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
+ const struct elf_backend_data *bed;
+ void (*swap_in) (bfd *, const bfd_byte *, Elf_Internal_Rela *);
const bfd_byte *erela;
const bfd_byte *erelaend;
Elf_Internal_Rela *irela;
@@ -2141,18 +1934,16 @@ elf_link_read_relocs_from_section (abfd, shdr, external_relocs,
REL_HDR2 relocations. */
Elf_Internal_Rela *
-_bfd_elf_link_read_relocs (abfd, o, external_relocs, internal_relocs,
- keep_memory)
- bfd *abfd;
- asection *o;
- PTR external_relocs;
- Elf_Internal_Rela *internal_relocs;
- bfd_boolean keep_memory;
+_bfd_elf_link_read_relocs (bfd *abfd,
+ asection *o,
+ void *external_relocs,
+ Elf_Internal_Rela *internal_relocs,
+ bfd_boolean keep_memory)
{
Elf_Internal_Shdr *rel_hdr;
- PTR alloc1 = NULL;
+ void *alloc1 = NULL;
Elf_Internal_Rela *alloc2 = NULL;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
if (elf_section_data (o)->relocs != NULL)
return elf_section_data (o)->relocs;
@@ -2169,9 +1960,9 @@ _bfd_elf_link_read_relocs (abfd, o, external_relocs, internal_relocs,
size = o->reloc_count;
size *= bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rela);
if (keep_memory)
- internal_relocs = (Elf_Internal_Rela *) bfd_alloc (abfd, size);
+ internal_relocs = bfd_alloc (abfd, size);
else
- internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_malloc (size);
+ internal_relocs = alloc2 = bfd_malloc (size);
if (internal_relocs == NULL)
goto error_return;
}
@@ -2182,7 +1973,7 @@ _bfd_elf_link_read_relocs (abfd, o, external_relocs, internal_relocs,
if (elf_section_data (o)->rel_hdr2)
size += elf_section_data (o)->rel_hdr2->sh_size;
- alloc1 = (PTR) bfd_malloc (size);
+ alloc1 = bfd_malloc (size);
if (alloc1 == NULL)
goto error_return;
external_relocs = alloc1;
@@ -2224,10 +2015,9 @@ _bfd_elf_link_read_relocs (abfd, o, external_relocs, internal_relocs,
section header for a section containing relocations for O. */
bfd_boolean
-_bfd_elf_link_size_reloc_section (abfd, rel_hdr, o)
- bfd *abfd;
- Elf_Internal_Shdr *rel_hdr;
- asection *o;
+_bfd_elf_link_size_reloc_section (bfd *abfd,
+ Elf_Internal_Shdr *rel_hdr,
+ asection *o)
{
bfd_size_type reloc_count;
bfd_size_type num_rel_hashes;
@@ -2249,7 +2039,7 @@ _bfd_elf_link_size_reloc_section (abfd, rel_hdr, o)
allocate it with bfd_alloc rather than malloc. Also since we
cannot be sure that the contents will actually be filled in,
we zero the allocated space. */
- rel_hdr->contents = (PTR) bfd_zalloc (abfd, rel_hdr->sh_size);
+ rel_hdr->contents = bfd_zalloc (abfd, rel_hdr->sh_size);
if (rel_hdr->contents == NULL && rel_hdr->sh_size != 0)
return FALSE;
@@ -2260,9 +2050,7 @@ _bfd_elf_link_size_reloc_section (abfd, rel_hdr, o)
{
struct elf_link_hash_entry **p;
- p = ((struct elf_link_hash_entry **)
- bfd_zmalloc (num_rel_hashes
- * sizeof (struct elf_link_hash_entry *)));
+ p = bfd_zmalloc (num_rel_hashes * sizeof (struct elf_link_hash_entry *));
if (p == NULL)
return FALSE;
@@ -2277,12 +2065,10 @@ _bfd_elf_link_size_reloc_section (abfd, rel_hdr, o)
OUTPUT_BFD. */
bfd_boolean
-_bfd_elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
- internal_relocs)
- bfd *output_bfd;
- asection *input_section;
- Elf_Internal_Shdr *input_rel_hdr;
- Elf_Internal_Rela *internal_relocs;
+_bfd_elf_link_output_relocs (bfd *output_bfd,
+ asection *input_section,
+ Elf_Internal_Shdr *input_rel_hdr,
+ Elf_Internal_Rela *internal_relocs)
{
Elf_Internal_Rela *irela;
Elf_Internal_Rela *irelaend;
@@ -2290,8 +2076,8 @@ _bfd_elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
Elf_Internal_Shdr *output_rel_hdr;
asection *output_section;
unsigned int *rel_countp = NULL;
- struct elf_backend_data *bed;
- void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ const struct elf_backend_data *bed;
+ void (*swap_out) (bfd *, const Elf_Internal_Rela *, bfd_byte *);
output_section = input_section->output_section;
output_rel_hdr = NULL;
@@ -2354,9 +2140,8 @@ _bfd_elf_link_output_relocs (output_bfd, input_section, input_rel_hdr,
the face of future changes. */
bfd_boolean
-_bfd_elf_fix_symbol_flags (h, eif)
- struct elf_link_hash_entry *h;
- struct elf_info_failed *eif;
+_bfd_elf_fix_symbol_flags (struct elf_link_hash_entry *h,
+ struct elf_info_failed *eif)
{
/* If this symbol was mentioned in a non-ELF file, try to set
DEF_REGULAR and REF_REGULAR correctly. This is the only way to
@@ -2438,7 +2223,7 @@ _bfd_elf_fix_symbol_flags (h, eif)
|| ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bfd_boolean force_local;
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
@@ -2453,7 +2238,7 @@ _bfd_elf_fix_symbol_flags (h, eif)
if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
&& h->root.type == bfd_link_hash_undefweak)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
(*bed->elf_backend_hide_symbol) (eif->info, h, TRUE);
}
@@ -2482,7 +2267,7 @@ _bfd_elf_fix_symbol_flags (h, eif)
h->weakdef = NULL;
else
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
(*bed->elf_backend_copy_indirect_symbol) (bed, weakdef, h);
@@ -2497,13 +2282,11 @@ _bfd_elf_fix_symbol_flags (h, eif)
recursively. */
bfd_boolean
-_bfd_elf_adjust_dynamic_symbol (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+_bfd_elf_adjust_dynamic_symbol (struct elf_link_hash_entry *h, void *data)
{
- struct elf_info_failed *eif = (struct elf_info_failed *) data;
+ struct elf_info_failed *eif = data;
bfd *dynobj;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
if (! is_elf_hash_table (eif->info))
return FALSE;
@@ -2591,7 +2374,7 @@ _bfd_elf_adjust_dynamic_symbol (h, data)
H->WEAKDEF before it finds H? */
h->weakdef->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR;
- if (! _bfd_elf_adjust_dynamic_symbol (h->weakdef, (PTR) eif))
+ if (! _bfd_elf_adjust_dynamic_symbol (h->weakdef, eif))
return FALSE;
}
@@ -2622,9 +2405,7 @@ _bfd_elf_adjust_dynamic_symbol (h, data)
to reflect the object merging within the sections. */
bfd_boolean
-_bfd_elf_link_sec_merge_syms (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+_bfd_elf_link_sec_merge_syms (struct elf_link_hash_entry *h, void *data)
{
asection *sec;
@@ -2636,14 +2417,117 @@ _bfd_elf_link_sec_merge_syms (h, data)
&& ((sec = h->root.u.def.section)->flags & SEC_MERGE)
&& sec->sec_info_type == ELF_INFO_TYPE_MERGE)
{
- bfd *output_bfd = (bfd *) data;
+ bfd *output_bfd = data;
h->root.u.def.value =
_bfd_merged_section_offset (output_bfd,
&h->root.u.def.section,
elf_section_data (sec)->sec_info,
- h->root.u.def.value, (bfd_vma) 0);
+ h->root.u.def.value, 0);
}
return TRUE;
}
+
+/* Returns false if the symbol referred to by H should be considered
+ to resolve local to the current module, and true if it should be
+ considered to bind dynamically. */
+
+bfd_boolean
+_bfd_elf_dynamic_symbol_p (struct elf_link_hash_entry *h,
+ struct bfd_link_info *info,
+ bfd_boolean ignore_protected)
+{
+ bfd_boolean binding_stays_local_p;
+
+ if (h == NULL)
+ return FALSE;
+
+ while (h->root.type == bfd_link_hash_indirect
+ || h->root.type == bfd_link_hash_warning)
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
+ /* If it was forced local, then clearly it's not dynamic. */
+ if (h->dynindx == -1)
+ return FALSE;
+ if (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)
+ return FALSE;
+
+ /* Identify the cases where name binding rules say that a
+ visible symbol resolves locally. */
+ binding_stays_local_p = info->executable || info->symbolic;
+
+ switch (ELF_ST_VISIBILITY (h->other))
+ {
+ case STV_INTERNAL:
+ case STV_HIDDEN:
+ return FALSE;
+
+ case STV_PROTECTED:
+ /* Proper resolution for function pointer equality may require
+ that these symbols perhaps be resolved dynamically, even though
+ we should be resolving them to the current module. */
+ if (!ignore_protected)
+ binding_stays_local_p = TRUE;
+ break;
+
+ default:
+ break;
+ }
+
+ /* If it isn't defined locally, then clearly it's dynamic. */
+ if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ return TRUE;
+
+ /* Otherwise, the symbol is dynamic if binding rules don't tell
+ us that it remains local. */
+ return !binding_stays_local_p;
+}
+
+/* Return true if the symbol referred to by H should be considered
+ to resolve local to the current module, and false otherwise. Differs
+ from (the inverse of) _bfd_elf_dynamic_symbol_p in the treatment of
+ undefined symbols and weak symbols. */
+
+bfd_boolean
+_bfd_elf_symbol_refs_local_p (struct elf_link_hash_entry *h,
+ struct bfd_link_info *info,
+ bfd_boolean local_protected)
+{
+ /* If it's a local sym, of course we resolve locally. */
+ if (h == NULL)
+ return TRUE;
+
+ /* If we don't have a definition in a regular file, then we can't
+ resolve locally. The sym is either undefined or dynamic. */
+ if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
+ return FALSE;
+
+ /* Forced local symbols resolve locally. */
+ if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
+ return TRUE;
+
+ /* As do non-dynamic symbols. */
+ if (h->dynindx == -1)
+ return TRUE;
+
+ /* At this point, we know the symbol is defined and dynamic. In an
+ executable it must resolve locally, likewise when building symbolic
+ shared libraries. */
+ if (info->executable || info->symbolic)
+ return TRUE;
+
+ /* Now deal with defined dynamic symbols in shared libraries. Ones
+ with default visibility might not resolve locally. */
+ if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+ return FALSE;
+
+ /* However, STV_HIDDEN or STV_INTERNAL ones must be local. */
+ if (ELF_ST_VISIBILITY (h->other) != STV_PROTECTED)
+ return TRUE;
+
+ /* Function pointer equality tests may require that STV_PROTECTED
+ symbols be treated as dynamic symbols, even when we know that the
+ dynamic linker will resolve them locally. */
+ return local_protected;
+}
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 4a7d27d..d667993 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -20,39 +20,19 @@
/* ELF linker code. */
-static bfd_boolean is_global_data_symbol_definition
- PARAMS ((bfd *, Elf_Internal_Sym *));
-static bfd_boolean elf_link_is_defined_archive_symbol
- PARAMS ((bfd *, carsym *));
-static bfd_boolean elf_link_add_object_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean elf_link_add_archive_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean elf_finalize_dynstr
- PARAMS ((bfd *, struct bfd_link_info *));
-static bfd_boolean elf_collect_hash_codes
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static size_t compute_bucket_count
- PARAMS ((struct bfd_link_info *));
-static void elf_link_adjust_relocs
- PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned int,
- struct elf_link_hash_entry **));
-static int elf_link_sort_cmp1
- PARAMS ((const void *, const void *));
-static int elf_link_sort_cmp2
- PARAMS ((const void *, const void *));
-static size_t elf_link_sort_relocs
- PARAMS ((bfd *, struct bfd_link_info *, asection **));
-static bfd_boolean elf_section_ignore_discarded_relocs
- PARAMS ((asection *));
+static bfd_boolean elf_link_add_object_symbols (bfd *, struct bfd_link_info *);
+static bfd_boolean elf_link_add_archive_symbols (bfd *,
+ struct bfd_link_info *);
+static bfd_boolean elf_finalize_dynstr (bfd *, struct bfd_link_info *);
+static bfd_boolean elf_collect_hash_codes (struct elf_link_hash_entry *,
+ void *);
+static bfd_boolean elf_section_ignore_discarded_relocs (asection *);
/* Given an ELF BFD, add symbols to the global hash table as
appropriate. */
bfd_boolean
-elf_bfd_link_add_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
switch (bfd_get_format (abfd))
{
@@ -68,9 +48,8 @@ elf_bfd_link_add_symbols (abfd, info)
/* Return TRUE iff this is a non-common, definition of a non-function symbol. */
static bfd_boolean
-is_global_data_symbol_definition (abfd, sym)
- bfd * abfd ATTRIBUTE_UNUSED;
- Elf_Internal_Sym * sym;
+is_global_data_symbol_definition (bfd *abfd ATTRIBUTE_UNUSED,
+ Elf_Internal_Sym *sym)
{
/* Local symbols do not count, but target specific ones might. */
if (ELF_ST_BIND (sym->st_info) != STB_GLOBAL
@@ -109,9 +88,7 @@ is_global_data_symbol_definition (abfd, sym)
whose archive map contains a mention of SYMDEF, and determine if
the symbol is defined in this element. */
static bfd_boolean
-elf_link_is_defined_archive_symbol (abfd, symdef)
- bfd * abfd;
- carsym * symdef;
+elf_link_is_defined_archive_symbol (bfd * abfd, carsym * symdef)
{
Elf_Internal_Shdr * hdr;
bfd_size_type symcount;
@@ -123,7 +100,7 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
bfd_boolean result;
abfd = _bfd_get_elt_at_filepos (abfd, symdef->file_offset);
- if (abfd == (bfd *) NULL)
+ if (abfd == NULL)
return FALSE;
if (! bfd_check_format (abfd, bfd_object))
@@ -174,7 +151,7 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
name = bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
isym->st_name);
- if (name == (const char *) NULL)
+ if (name == NULL)
break;
if (strcmp (name, symdef->name) == 0)
@@ -215,9 +192,7 @@ elf_link_is_defined_archive_symbol (abfd, symdef)
table until nothing further is resolved. */
static bfd_boolean
-elf_link_add_archive_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
{
symindex c;
bfd_boolean *defined = NULL;
@@ -229,7 +204,7 @@ elf_link_add_archive_symbols (abfd, info)
if (! bfd_has_map (abfd))
{
/* An empty archive is a special case. */
- if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL)
+ if (bfd_openr_next_archived_file (abfd, NULL) == NULL)
return TRUE;
bfd_set_error (bfd_error_no_armap);
return FALSE;
@@ -243,9 +218,9 @@ elf_link_add_archive_symbols (abfd, info)
return TRUE;
amt = c;
amt *= sizeof (bfd_boolean);
- defined = (bfd_boolean *) bfd_zmalloc (amt);
- included = (bfd_boolean *) bfd_zmalloc (amt);
- if (defined == (bfd_boolean *) NULL || included == (bfd_boolean *) NULL)
+ defined = bfd_zmalloc (amt);
+ included = bfd_zmalloc (amt);
+ if (defined == NULL || included == NULL)
goto error_return;
symdefs = bfd_ardata (abfd)->symdefs;
@@ -297,7 +272,7 @@ elf_link_add_archive_symbols (abfd, info)
/* First check with only one `@'. */
len = strlen (symdef->name);
- copy = bfd_alloc (abfd, (bfd_size_type) len);
+ copy = bfd_alloc (abfd, len);
if (copy == NULL)
goto error_return;
first = p - symdef->name + 1;
@@ -349,7 +324,7 @@ elf_link_add_archive_symbols (abfd, info)
/* We need to include this archive member. */
element = _bfd_get_elt_at_filepos (abfd, symdef->file_offset);
- if (element == (bfd *) NULL)
+ if (element == NULL)
goto error_return;
if (! bfd_check_format (element, bfd_object))
@@ -408,9 +383,9 @@ elf_link_add_archive_symbols (abfd, info)
return TRUE;
error_return:
- if (defined != (bfd_boolean *) NULL)
+ if (defined != NULL)
free (defined);
- if (included != (bfd_boolean *) NULL)
+ if (included != NULL)
free (included);
return FALSE;
}
@@ -418,16 +393,13 @@ elf_link_add_archive_symbols (abfd, info)
/* Add symbols from an ELF object file to the linker hash table. */
static bfd_boolean
-elf_link_add_object_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
{
bfd_boolean (*add_symbol_hook)
- PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
- const char **, flagword *, asection **, bfd_vma *));
+ (bfd *, struct bfd_link_info *, const Elf_Internal_Sym *,
+ const char **, flagword *, asection **, bfd_vma *);
bfd_boolean (*check_relocs)
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
bfd_boolean collect;
Elf_Internal_Shdr *hdr;
bfd_size_type symcount;
@@ -443,7 +415,7 @@ elf_link_add_object_symbols (abfd, info)
Elf_Internal_Sym *isymbuf = NULL;
Elf_Internal_Sym *isym;
Elf_Internal_Sym *isymend;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bfd_boolean dt_needed;
struct elf_link_hash_table * hash_table;
bfd_size_type amt;
@@ -463,7 +435,7 @@ elf_link_add_object_symbols (abfd, info)
/* You can't use -r against a dynamic object. Also, there's no
hope of using a dynamic object which does not exactly match
the format of the output file. */
- if (info->relocateable || info->hash->creator != abfd->xvec)
+ if (info->relocatable || info->hash->creator != abfd->xvec)
{
bfd_set_error (bfd_error_invalid_operation);
goto error_return;
@@ -487,6 +459,8 @@ elf_link_add_object_symbols (abfd, info)
{
char *msg;
bfd_size_type sz;
+ bfd_size_type prefix_len;
+ const char * gnu_warning_prefix = _("warning: ");
name += sizeof ".gnu.warning." - 1;
@@ -520,21 +494,23 @@ elf_link_add_object_symbols (abfd, info)
}
sz = bfd_section_size (abfd, s);
- msg = (char *) bfd_alloc (abfd, sz + 1);
+ prefix_len = strlen (gnu_warning_prefix);
+ msg = bfd_alloc (abfd, prefix_len + sz + 1);
if (msg == NULL)
goto error_return;
- if (! bfd_get_section_contents (abfd, s, msg, (file_ptr) 0, sz))
+ strcpy (msg, gnu_warning_prefix);
+ if (! bfd_get_section_contents (abfd, s, msg + prefix_len, 0, sz))
goto error_return;
- msg[sz] = '\0';
+ msg[prefix_len + sz] = '\0';
if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, name, BSF_WARNING, s, (bfd_vma) 0, msg,
- FALSE, collect, (struct bfd_link_hash_entry **) NULL)))
+ (info, abfd, name, BSF_WARNING, s, 0, msg,
+ FALSE, collect, NULL)))
goto error_return;
- if (! info->relocateable)
+ if (! info->relocatable)
{
/* Clobber the section size so that the warning does
not get copied into the output file. */
@@ -608,12 +584,11 @@ elf_link_add_object_symbols (abfd, info)
int elfsec;
unsigned long shlink;
- dynbuf = (Elf_External_Dyn *) bfd_malloc (s->_raw_size);
+ dynbuf = bfd_malloc (s->_raw_size);
if (dynbuf == NULL)
goto error_return;
- if (! bfd_get_section_contents (abfd, s, (PTR) dynbuf,
- (file_ptr) 0, s->_raw_size))
+ if (! bfd_get_section_contents (abfd, s, dynbuf, 0, s->_raw_size))
goto error_free_dyn;
elfsec = _bfd_elf_section_from_bfd_section (abfd, s);
@@ -642,7 +617,7 @@ elf_link_add_object_symbols (abfd, info)
unsigned int tagv = dyn.d_un.d_val;
amt = sizeof (struct bfd_link_needed_list);
- n = (struct bfd_link_needed_list *) bfd_alloc (abfd, amt);
+ n = bfd_alloc (abfd, amt);
fnm = bfd_elf_string_from_elf_section (abfd, shlink, tagv);
if (n == NULL || fnm == NULL)
goto error_free_dyn;
@@ -650,7 +625,7 @@ elf_link_add_object_symbols (abfd, info)
anm = bfd_alloc (abfd, amt);
if (anm == NULL)
goto error_free_dyn;
- memcpy (anm, fnm, (size_t) amt);
+ memcpy (anm, fnm, amt);
n->name = anm;
n->by = abfd;
n->next = NULL;
@@ -667,7 +642,7 @@ elf_link_add_object_symbols (abfd, info)
unsigned int tagv = dyn.d_un.d_val;
amt = sizeof (struct bfd_link_needed_list);
- n = (struct bfd_link_needed_list *) bfd_alloc (abfd, amt);
+ n = bfd_alloc (abfd, amt);
fnm = bfd_elf_string_from_elf_section (abfd, shlink, tagv);
if (n == NULL || fnm == NULL)
goto error_free_dyn;
@@ -675,7 +650,7 @@ elf_link_add_object_symbols (abfd, info)
anm = bfd_alloc (abfd, amt);
if (anm == NULL)
goto error_free_dyn;
- memcpy (anm, fnm, (size_t) amt);
+ memcpy (anm, fnm, amt);
n->name = anm;
n->by = abfd;
n->next = NULL;
@@ -693,7 +668,7 @@ elf_link_add_object_symbols (abfd, info)
unsigned int tagv = dyn.d_un.d_val;
amt = sizeof (struct bfd_link_needed_list);
- n = (struct bfd_link_needed_list *) bfd_alloc (abfd, amt);
+ n = bfd_alloc (abfd, amt);
fnm = bfd_elf_string_from_elf_section (abfd, shlink, tagv);
if (n == NULL || fnm == NULL)
goto error_free_dyn;
@@ -705,7 +680,7 @@ elf_link_add_object_symbols (abfd, info)
free (dynbuf);
goto error_return;
}
- memcpy (anm, fnm, (size_t) amt);
+ memcpy (anm, fnm, amt);
n->name = anm;
n->by = abfd;
n->next = NULL;
@@ -788,7 +763,7 @@ elf_link_add_object_symbols (abfd, info)
}
}
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_NEEDED, strindex))
+ if (! elf_add_dynamic_entry (info, DT_NEEDED, strindex))
goto error_return;
}
@@ -836,7 +811,7 @@ elf_link_add_object_symbols (abfd, info)
/* We store a pointer to the hash table entry for each external
symbol. */
amt = extsymcount * sizeof (struct elf_link_hash_entry *);
- sym_hash = (struct elf_link_hash_entry **) bfd_alloc (abfd, amt);
+ sym_hash = bfd_alloc (abfd, amt);
if (sym_hash == NULL)
goto error_free_sym;
elf_sym_hashes (abfd) = sym_hash;
@@ -855,12 +830,12 @@ elf_link_add_object_symbols (abfd, info)
Elf_Internal_Shdr *versymhdr;
versymhdr = &elf_tdata (abfd)->dynversym_hdr;
- extversym = (Elf_External_Versym *) bfd_malloc (versymhdr->sh_size);
+ extversym = bfd_malloc (versymhdr->sh_size);
if (extversym == NULL)
goto error_free_sym;
amt = versymhdr->sh_size;
if (bfd_seek (abfd, versymhdr->sh_offset, SEEK_SET) != 0
- || bfd_bread ((PTR) extversym, amt, abfd) != amt)
+ || bfd_bread (extversym, amt, abfd) != amt)
goto error_free_vers;
}
}
@@ -941,7 +916,7 @@ elf_link_add_object_symbols (abfd, info)
name = bfd_elf_string_from_elf_section (abfd, hdr->sh_link,
isym->st_name);
- if (name == (const char *) NULL)
+ if (name == NULL)
goto error_free_vers;
if (isym->st_shndx == SHN_COMMON
@@ -969,12 +944,12 @@ elf_link_add_object_symbols (abfd, info)
/* The hook function sets the name to NULL if this symbol
should be skipped for some reason. */
- if (name == (const char *) NULL)
+ if (name == NULL)
continue;
}
/* Sanity check that all possibilities were handled. */
- if (sec == (asection *) NULL)
+ if (sec == NULL)
{
bfd_set_error (bfd_error_bad_value);
goto error_free_vers;
@@ -1074,7 +1049,7 @@ elf_link_add_object_symbols (abfd, info)
&& isym->st_shndx != SHN_UNDEF)
++newlen;
- newname = (char *) bfd_alloc (abfd, (bfd_size_type) newlen);
+ newname = bfd_alloc (abfd, newlen);
if (newname == NULL)
goto error_free_vers;
memcpy (newname, name, namelen);
@@ -1139,8 +1114,8 @@ elf_link_add_object_symbols (abfd, info)
}
if (! (_bfd_generic_link_add_one_symbol
- (info, abfd, name, flags, sec, value, (const char *) NULL,
- FALSE, collect, (struct bfd_link_hash_entry **) sym_hash)))
+ (info, abfd, name, flags, sec, value, NULL, FALSE, collect,
+ (struct bfd_link_hash_entry **) sym_hash)))
goto error_free_vers;
h = *sym_hash;
@@ -1435,7 +1410,7 @@ elf_link_add_object_symbols (abfd, info)
}
}
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_NEEDED, strindex))
+ if (! elf_add_dynamic_entry (info, DT_NEEDED, strindex))
goto error_free_vers;
}
}
@@ -1608,10 +1583,8 @@ elf_link_add_object_symbols (abfd, info)
|| bfd_is_abs_section (o->output_section))
continue;
- internal_relocs
- = _bfd_elf_link_read_relocs (abfd, o, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
- info->keep_memory);
+ internal_relocs = _bfd_elf_link_read_relocs (abfd, o, NULL, NULL,
+ info->keep_memory);
if (internal_relocs == NULL)
goto error_return;
@@ -1658,7 +1631,7 @@ elf_link_add_object_symbols (abfd, info)
}
}
- if (! info->relocateable && ! dynamic
+ if (! info->relocatable && ! dynamic
&& is_elf_hash_table (info))
{
asection *s;
@@ -1684,8 +1657,7 @@ elf_link_add_object_symbols (abfd, info)
/* Add this bfd to the loaded list. */
struct elf_link_loaded_list *n;
- n = ((struct elf_link_loaded_list *)
- bfd_alloc (abfd, sizeof (struct elf_link_loaded_list)));
+ n = bfd_alloc (abfd, sizeof (struct elf_link_loaded_list));
if (n == NULL)
goto error_return;
n->abfd = abfd;
@@ -1710,10 +1682,7 @@ elf_link_add_object_symbols (abfd, info)
/* Add an entry to the .dynamic table. */
bfd_boolean
-elf_add_dynamic_entry (info, tag, val)
- struct bfd_link_info *info;
- bfd_vma tag;
- bfd_vma val;
+elf_add_dynamic_entry (struct bfd_link_info *info, bfd_vma tag, bfd_vma val)
{
Elf_Internal_Dyn dyn;
bfd *dynobj;
@@ -1730,7 +1699,7 @@ elf_add_dynamic_entry (info, tag, val)
BFD_ASSERT (s != NULL);
newsize = s->_raw_size + sizeof (Elf_External_Dyn);
- newcontents = (bfd_byte *) bfd_realloc (s->contents, newsize);
+ newcontents = bfd_realloc (s->contents, newsize);
if (newcontents == NULL)
return FALSE;
@@ -1766,8 +1735,7 @@ static const size_t elf_buckets[] =
Therefore the result is always a good payoff between few collisions
(= short chain lengths) and table size. */
static size_t
-compute_bucket_count (info)
- struct bfd_link_info *info;
+compute_bucket_count (struct bfd_link_info *info)
{
size_t dynsymcount = elf_hash_table (info)->dynsymcount;
size_t best_size = 0;
@@ -1781,7 +1749,7 @@ compute_bucket_count (info)
optimizations. */
amt = dynsymcount;
amt *= sizeof (unsigned long int);
- hashcodes = (unsigned long int *) bfd_malloc (amt);
+ hashcodes = bfd_malloc (amt);
if (hashcodes == NULL)
return 0;
hashcodesp = hashcodes;
@@ -1814,7 +1782,7 @@ compute_bucket_count (info)
since the size could be large. */
amt = maxsize;
amt *= sizeof (unsigned long int);
- counts = (unsigned long int *) bfd_malloc (amt);
+ counts = bfd_malloc (amt);
if (counts == NULL)
{
free (hashcodes);
@@ -1909,22 +1877,18 @@ compute_bucket_count (info)
addresses of the various sections. */
bfd_boolean
-NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
- filter_shlib,
- auxiliary_filters, info, sinterpptr,
- verdefs)
- bfd *output_bfd;
- const char *soname;
- const char *rpath;
- const char *filter_shlib;
- const char * const *auxiliary_filters;
- struct bfd_link_info *info;
- asection **sinterpptr;
- struct bfd_elf_version_tree *verdefs;
+NAME(bfd_elf,size_dynamic_sections) (bfd *output_bfd,
+ const char *soname,
+ const char *rpath,
+ const char *filter_shlib,
+ const char * const *auxiliary_filters,
+ struct bfd_link_info *info,
+ asection **sinterpptr,
+ struct bfd_elf_version_tree *verdefs)
{
bfd_size_type soname_indx;
bfd *dynobj;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_assign_sym_version_info asvinfo;
*sinterpptr = NULL;
@@ -1968,7 +1932,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
if (notesec)
{
elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | exec;
- if (exec && info->relocateable
+ if (exec && info->relocatable
&& notesec->output_section != bfd_abs_section_ptr)
notesec->output_section->flags |= SEC_CODE;
}
@@ -2012,15 +1976,13 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
soname_indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
soname, TRUE);
if (soname_indx == (bfd_size_type) -1
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SONAME,
- soname_indx))
+ || ! elf_add_dynamic_entry (info, DT_SONAME, soname_indx))
return FALSE;
}
if (info->symbolic)
{
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMBOLIC,
- (bfd_vma) 0))
+ if (! elf_add_dynamic_entry (info, DT_SYMBOLIC, 0))
return FALSE;
info->flags |= DF_SYMBOLIC;
}
@@ -2034,10 +1996,9 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
if (info->new_dtags)
_bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx);
if (indx == (bfd_size_type) -1
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_RPATH, indx)
+ || ! elf_add_dynamic_entry (info, DT_RPATH, indx)
|| (info->new_dtags
- && ! elf_add_dynamic_entry (info, (bfd_vma) DT_RUNPATH,
- indx)))
+ && ! elf_add_dynamic_entry (info, DT_RUNPATH, indx)))
return FALSE;
}
@@ -2048,7 +2009,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
filter_shlib, TRUE);
if (indx == (bfd_size_type) -1
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_FILTER, indx))
+ || ! elf_add_dynamic_entry (info, DT_FILTER, indx))
return FALSE;
}
@@ -2063,8 +2024,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
*p, TRUE);
if (indx == (bfd_size_type) -1
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_AUXILIARY,
- indx))
+ || ! elf_add_dynamic_entry (info, DT_AUXILIARY, indx))
return FALSE;
}
}
@@ -2079,7 +2039,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
{
elf_link_hash_traverse (elf_hash_table (info),
_bfd_elf_export_symbol,
- (PTR) &eif);
+ &eif);
if (eif.failed)
return FALSE;
}
@@ -2100,7 +2060,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
verlen = strlen (verstr);
newlen = namelen + verlen + 3;
- newname = (char *) bfd_malloc ((bfd_size_type) newlen);
+ newname = bfd_malloc (newlen);
if (newname == NULL)
return FALSE;
memcpy (newname, name, namelen);
@@ -2143,7 +2103,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
elf_link_hash_traverse (elf_hash_table (info),
_bfd_elf_link_assign_sym_version,
- (PTR) &asvinfo);
+ &asvinfo);
if (asvinfo.failed)
return FALSE;
@@ -2173,7 +2133,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
the backend pick a reasonable value for them. */
elf_link_hash_traverse (elf_hash_table (info),
_bfd_elf_adjust_dynamic_symbol,
- (PTR) &eif);
+ &eif);
if (eif.failed)
return FALSE;
@@ -2192,7 +2152,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
&& (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
| ELF_LINK_HASH_DEF_REGULAR)) != 0)
{
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_INIT, (bfd_vma) 0))
+ if (! elf_add_dynamic_entry (info, DT_INIT, 0))
return FALSE;
}
h = (info->fini_function
@@ -2204,7 +2164,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
&& (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR
| ELF_LINK_HASH_DEF_REGULAR)) != 0)
{
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FINI, (bfd_vma) 0))
+ if (! elf_add_dynamic_entry (info, DT_FINI, 0))
return FALSE;
}
@@ -2232,26 +2192,20 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
return FALSE;
}
- if (!elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAY,
- (bfd_vma) 0)
- || !elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAYSZ,
- (bfd_vma) 0))
+ if (!elf_add_dynamic_entry (info, DT_PREINIT_ARRAY, 0)
+ || !elf_add_dynamic_entry (info, DT_PREINIT_ARRAYSZ, 0))
return FALSE;
}
if (bfd_get_section_by_name (output_bfd, ".init_array") != NULL)
{
- if (!elf_add_dynamic_entry (info, (bfd_vma) DT_INIT_ARRAY,
- (bfd_vma) 0)
- || !elf_add_dynamic_entry (info, (bfd_vma) DT_INIT_ARRAYSZ,
- (bfd_vma) 0))
+ if (!elf_add_dynamic_entry (info, DT_INIT_ARRAY, 0)
+ || !elf_add_dynamic_entry (info, DT_INIT_ARRAYSZ, 0))
return FALSE;
}
if (bfd_get_section_by_name (output_bfd, ".fini_array") != NULL)
{
- if (!elf_add_dynamic_entry (info, (bfd_vma) DT_FINI_ARRAY,
- (bfd_vma) 0)
- || !elf_add_dynamic_entry (info, (bfd_vma) DT_FINI_ARRAYSZ,
- (bfd_vma) 0))
+ if (!elf_add_dynamic_entry (info, DT_FINI_ARRAY, 0)
+ || !elf_add_dynamic_entry (info, DT_FINI_ARRAYSZ, 0))
return FALSE;
}
@@ -2265,12 +2219,12 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
bfd_size_type strsize;
strsize = _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_HASH, (bfd_vma) 0)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_STRTAB, (bfd_vma) 0)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMTAB, (bfd_vma) 0)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_STRSZ, strsize)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMENT,
- (bfd_vma) sizeof (Elf_External_Sym)))
+ if (! elf_add_dynamic_entry (info, DT_HASH, 0)
+ || ! elf_add_dynamic_entry (info, DT_STRTAB, 0)
+ || ! elf_add_dynamic_entry (info, DT_SYMTAB, 0)
+ || ! elf_add_dynamic_entry (info, DT_STRSZ, strsize)
+ || ! elf_add_dynamic_entry (info, DT_SYMENT,
+ sizeof (Elf_External_Sym)))
return FALSE;
}
}
@@ -2333,7 +2287,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
}
s->_raw_size = size;
- s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
+ s->contents = bfd_alloc (output_bfd, s->_raw_size);
if (s->contents == NULL && s->_raw_size != 0)
return FALSE;
@@ -2393,7 +2347,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
bh = NULL;
if (! (_bfd_generic_link_add_one_symbol
(info, dynobj, t->name, BSF_GLOBAL, bfd_abs_section_ptr,
- (bfd_vma) 0, (const char *) NULL, FALSE,
+ 0, NULL, FALSE,
get_elf_backend_data (dynobj)->collect, &bh)))
return FALSE;
h = (struct elf_link_hash_entry *) bh;
@@ -2461,9 +2415,8 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
}
}
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEF, (bfd_vma) 0)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEFNUM,
- (bfd_vma) cdefs))
+ if (! elf_add_dynamic_entry (info, DT_VERDEF, 0)
+ || ! elf_add_dynamic_entry (info, DT_VERDEFNUM, cdefs))
return FALSE;
elf_tdata (output_bfd)->cverdefs = cdefs;
@@ -2471,7 +2424,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
if ((info->new_dtags && info->flags) || (info->flags & DF_STATIC_TLS))
{
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS, info->flags))
+ if (! elf_add_dynamic_entry (info, DT_FLAGS, info->flags))
return FALSE;
}
@@ -2481,8 +2434,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
info->flags_1 &= ~ (DF_1_INITFIRST
| DF_1_NODELETE
| DF_1_NOOPEN);
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS_1,
- info->flags_1))
+ if (! elf_add_dynamic_entry (info, DT_FLAGS_1, info->flags_1))
return FALSE;
}
@@ -2502,7 +2454,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
elf_link_hash_traverse (elf_hash_table (info),
_bfd_elf_link_find_version_dependencies,
- (PTR) &sinfo);
+ &sinfo);
if (elf_tdata (output_bfd)->verref == NULL)
_bfd_strip_section_from_output (info, s);
@@ -2529,7 +2481,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
}
s->_raw_size = size;
- s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
+ s->contents = bfd_alloc (output_bfd, s->_raw_size);
if (s->contents == NULL)
return FALSE;
@@ -2586,10 +2538,8 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
}
}
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERNEED,
- (bfd_vma) 0)
- || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERNEEDNUM,
- (bfd_vma) crefs))
+ if (! elf_add_dynamic_entry (info, DT_VERNEED, 0)
+ || ! elf_add_dynamic_entry (info, DT_VERNEEDNUM, crefs))
return FALSE;
elf_tdata (output_bfd)->cverrefs = crefs;
@@ -2617,11 +2567,11 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
else
{
s->_raw_size = dynsymcount * sizeof (Elf_External_Versym);
- s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
+ s->contents = bfd_zalloc (output_bfd, s->_raw_size);
if (s->contents == NULL)
return FALSE;
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERSYM, (bfd_vma) 0))
+ if (! elf_add_dynamic_entry (info, DT_VERSYM, 0))
return FALSE;
}
@@ -2634,7 +2584,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
s = bfd_get_section_by_name (dynobj, ".dynsym");
BFD_ASSERT (s != NULL);
s->_raw_size = dynsymcount * sizeof (Elf_External_Sym);
- s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size);
+ s->contents = bfd_alloc (output_bfd, s->_raw_size);
if (s->contents == NULL && s->_raw_size != 0)
return FALSE;
@@ -2649,7 +2599,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
isym.st_info = 0;
isym.st_other = 0;
isym.st_shndx = 0;
- elf_swap_symbol_out (output_bfd, &isym, (PTR) s->contents, (PTR) 0);
+ elf_swap_symbol_out (output_bfd, &isym, s->contents, 0);
}
/* Compute the size of the hashing table. As a side effect this
@@ -2660,13 +2610,12 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
BFD_ASSERT (s != NULL);
hash_entry_size = elf_section_data (s)->this_hdr.sh_entsize;
s->_raw_size = ((2 + bucketcount + dynsymcount) * hash_entry_size);
- s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size);
+ s->contents = bfd_zalloc (output_bfd, s->_raw_size);
if (s->contents == NULL)
return FALSE;
- bfd_put (8 * hash_entry_size, output_bfd, (bfd_vma) bucketcount,
- s->contents);
- bfd_put (8 * hash_entry_size, output_bfd, (bfd_vma) dynsymcount,
+ bfd_put (8 * hash_entry_size, output_bfd, bucketcount, s->contents);
+ bfd_put (8 * hash_entry_size, output_bfd, dynsymcount,
s->contents + hash_entry_size);
elf_hash_table (info)->bucketcount = bucketcount;
@@ -2679,7 +2628,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
s->_raw_size = _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
for (dtagcount = 0; dtagcount <= info->spare_dynamic_tags; ++dtagcount)
- if (! elf_add_dynamic_entry (info, (bfd_vma) DT_NULL, (bfd_vma) 0))
+ if (! elf_add_dynamic_entry (info, DT_NULL, 0))
return FALSE;
}
@@ -2689,15 +2638,10 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath,
/* This function is used to adjust offsets into .dynstr for
dynamic symbols. This is called via elf_link_hash_traverse. */
-static bfd_boolean elf_adjust_dynstr_offsets
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
static bfd_boolean
-elf_adjust_dynstr_offsets (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_adjust_dynstr_offsets (struct elf_link_hash_entry *h, void *data)
{
- struct elf_strtab_hash *dynstr = (struct elf_strtab_hash *) data;
+ struct elf_strtab_hash *dynstr = data;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -2711,9 +2655,7 @@ elf_adjust_dynstr_offsets (h, data)
them. */
static bfd_boolean
-elf_finalize_dynstr (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf_finalize_dynstr (bfd *output_bfd, struct bfd_link_info *info)
{
struct elf_link_local_dynamic_entry *entry;
struct elf_strtab_hash *dynstr = elf_hash_table (info)->dynstr;
@@ -2856,7 +2798,7 @@ struct elf_final_link_info
/* Buffer large enough to hold contents of any section. */
bfd_byte *contents;
/* Buffer large enough to hold external relocs of any section. */
- PTR external_relocs;
+ void *external_relocs;
/* Buffer large enough to hold internal relocs of any section. */
Elf_Internal_Rela *internal_relocs;
/* Buffer large enough to hold external local symbols of any input
@@ -2886,19 +2828,15 @@ struct elf_final_link_info
};
static bfd_boolean elf_link_output_sym
- PARAMS ((struct elf_final_link_info *, const char *,
- Elf_Internal_Sym *, asection *));
+ (struct elf_final_link_info *, const char *, Elf_Internal_Sym *, asection *);
static bfd_boolean elf_link_flush_output_syms
- PARAMS ((struct elf_final_link_info *));
+ (struct elf_final_link_info *);
static bfd_boolean elf_link_output_extsym
- PARAMS ((struct elf_link_hash_entry *, PTR));
-static bfd_boolean elf_link_check_versioned_symbol
- PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+ (struct elf_link_hash_entry *, void *);
static bfd_boolean elf_link_input_bfd
- PARAMS ((struct elf_final_link_info *, bfd *));
+ (struct elf_final_link_info *, bfd *);
static bfd_boolean elf_reloc_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
/* This struct is used to pass information to elf_link_output_extsym. */
@@ -2909,23 +2847,22 @@ struct elf_outext_info
struct elf_final_link_info *finfo;
};
-/* When performing a relocateable link, the input relocations are
+/* When performing a relocatable link, the input relocations are
preserved. But, if they reference global symbols, the indices
referenced must be updated. Update all the relocations in
REL_HDR (there are COUNT of them), using the data in REL_HASH. */
static void
-elf_link_adjust_relocs (abfd, rel_hdr, count, rel_hash)
- bfd *abfd;
- Elf_Internal_Shdr *rel_hdr;
- unsigned int count;
- struct elf_link_hash_entry **rel_hash;
+elf_link_adjust_relocs (bfd *abfd,
+ Elf_Internal_Shdr *rel_hdr,
+ unsigned int count,
+ struct elf_link_hash_entry **rel_hash)
{
unsigned int i;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
bfd_byte *erela;
- void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
- void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ void (*swap_in) (bfd *, const bfd_byte *, Elf_Internal_Rela *);
+ void (*swap_out) (bfd *, const Elf_Internal_Rela *, bfd_byte *);
if (rel_hdr->sh_entsize == sizeof (Elf_External_Rel))
{
@@ -2971,12 +2908,10 @@ struct elf_link_sort_rela
};
static int
-elf_link_sort_cmp1 (A, B)
- const PTR A;
- const PTR B;
+elf_link_sort_cmp1 (const void *A, const void *B)
{
- struct elf_link_sort_rela *a = (struct elf_link_sort_rela *) A;
- struct elf_link_sort_rela *b = (struct elf_link_sort_rela *) B;
+ const struct elf_link_sort_rela *a = A;
+ const struct elf_link_sort_rela *b = B;
int relativea, relativeb;
relativea = a->type == reloc_class_relative;
@@ -2998,12 +2933,10 @@ elf_link_sort_cmp1 (A, B)
}
static int
-elf_link_sort_cmp2 (A, B)
- const PTR A;
- const PTR B;
+elf_link_sort_cmp2 (const void *A, const void *B)
{
- struct elf_link_sort_rela *a = (struct elf_link_sort_rela *) A;
- struct elf_link_sort_rela *b = (struct elf_link_sort_rela *) B;
+ const struct elf_link_sort_rela *a = A;
+ const struct elf_link_sort_rela *b = B;
int copya, copyb;
if (a->offset < b->offset)
@@ -3024,21 +2957,18 @@ elf_link_sort_cmp2 (A, B)
}
static size_t
-elf_link_sort_relocs (abfd, info, psec)
- bfd *abfd;
- struct bfd_link_info *info;
- asection **psec;
+elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
{
- bfd *dynobj = elf_hash_table (info)->dynobj;
- asection *reldyn, *o;
+ asection *reldyn;
bfd_size_type count, size;
size_t i, ret, sort_elt, ext_size;
bfd_byte *sort, *s_non_relative, *p;
struct elf_link_sort_rela *sq;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
int i2e = bed->s->int_rels_per_ext_rel;
- void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *));
- void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *));
+ void (*swap_in) (bfd *, const bfd_byte *, Elf_Internal_Rela *);
+ void (*swap_out) (bfd *, const Elf_Internal_Rela *, bfd_byte *);
+ struct bfd_link_order *lo;
reldyn = bfd_get_section_by_name (abfd, ".rela.dyn");
if (reldyn == NULL || reldyn->_raw_size == 0)
@@ -3059,11 +2989,12 @@ elf_link_sort_relocs (abfd, info, psec)
count = reldyn->_raw_size / ext_size;
size = 0;
- for (o = dynobj->sections; o != NULL; o = o->next)
- if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED))
- == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)
- && o->output_section == reldyn)
- size += o->_raw_size;
+ for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next)
+ if (lo->type == bfd_indirect_link_order)
+ {
+ asection *o = lo->u.indirect.section;
+ size += o->_raw_size;
+ }
if (size != reldyn->_raw_size)
return 0;
@@ -3074,17 +3005,15 @@ elf_link_sort_relocs (abfd, info, psec)
if (sort == NULL)
{
(*info->callbacks->warning)
- (info, _("Not enough memory to sort relocations"), 0, abfd, 0,
- (bfd_vma) 0);
+ (info, _("Not enough memory to sort relocations"), 0, abfd, 0, 0);
return 0;
}
- for (o = dynobj->sections; o != NULL; o = o->next)
- if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED))
- == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)
- && o->output_section == reldyn)
+ for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next)
+ if (lo->type == bfd_indirect_link_order)
{
bfd_byte *erel, *erelend;
+ asection *o = lo->u.indirect.section;
erel = o->contents;
erelend = o->contents + o->_raw_size;
@@ -3099,7 +3028,7 @@ elf_link_sort_relocs (abfd, info, psec)
}
}
- qsort (sort, (size_t) count, sort_elt, elf_link_sort_cmp1);
+ qsort (sort, count, sort_elt, elf_link_sort_cmp1);
for (i = 0, p = sort; i < count; i++, p += sort_elt)
{
@@ -3119,14 +3048,13 @@ elf_link_sort_relocs (abfd, info, psec)
sp->offset = sq->rela->r_offset;
}
- qsort (s_non_relative, (size_t) count - ret, sort_elt, elf_link_sort_cmp2);
+ qsort (s_non_relative, count - ret, sort_elt, elf_link_sort_cmp2);
- for (o = dynobj->sections; o != NULL; o = o->next)
- if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED))
- == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)
- && o->output_section == reldyn)
+ for (lo = reldyn->link_order_head; lo != NULL; lo = lo->next)
+ if (lo->type == bfd_indirect_link_order)
{
bfd_byte *erel, *erelend;
+ asection *o = lo->u.indirect.section;
erel = o->contents;
erelend = o->contents + o->_raw_size;
@@ -3148,9 +3076,7 @@ elf_link_sort_relocs (abfd, info, psec)
/* Do the final step of an ELF link. */
bfd_boolean
-elf_bfd_final_link (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
{
bfd_boolean dynamic;
bfd_boolean emit_relocs;
@@ -3170,7 +3096,7 @@ elf_bfd_final_link (abfd, info)
Elf_Internal_Shdr *symtab_hdr;
Elf_Internal_Shdr *symtab_shndx_hdr;
Elf_Internal_Shdr *symstrtab_hdr;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
struct elf_outext_info eoinfo;
bfd_boolean merged;
size_t relativecount = 0;
@@ -3186,7 +3112,7 @@ elf_bfd_final_link (abfd, info)
dynamic = elf_hash_table (info)->dynamic_sections_created;
dynobj = elf_hash_table (info)->dynobj;
- emit_relocs = (info->relocateable
+ emit_relocs = (info->relocatable
|| info->emitrelocations
|| bed->elf_backend_emit_relocs);
@@ -3224,7 +3150,7 @@ elf_bfd_final_link (abfd, info)
finfo.symbuf_count = 0;
finfo.shndxbuf_size = 0;
finfo.first_tls_sec = NULL;
- for (o = abfd->sections; o != (asection *) NULL; o = o->next)
+ for (o = abfd->sections; o != NULL; o = o->next)
if ((o->flags & SEC_THREAD_LOCAL) != 0
&& (o->flags & SEC_LOAD) != 0)
{
@@ -3241,7 +3167,7 @@ elf_bfd_final_link (abfd, info)
max_sym_count = 0;
max_sym_shndx_count = 0;
merged = FALSE;
- for (o = abfd->sections; o != (asection *) NULL; o = o->next)
+ for (o = abfd->sections; o != NULL; o = o->next)
{
struct bfd_elf_section_data *esdo = elf_section_data (o);
o->reloc_count = 0;
@@ -3271,16 +3197,14 @@ elf_bfd_final_link (abfd, info)
if (sec->flags & SEC_MERGE)
merged = TRUE;
- if (info->relocateable || info->emitrelocations)
+ if (info->relocatable || info->emitrelocations)
reloc_count = sec->reloc_count;
else if (bed->elf_backend_count_relocs)
{
Elf_Internal_Rela * relocs;
- relocs
- = _bfd_elf_link_read_relocs (abfd, sec, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
- info->keep_memory);
+ relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL,
+ info->keep_memory);
reloc_count = (*bed->elf_backend_count_relocs) (sec, relocs);
@@ -3396,9 +3320,9 @@ elf_bfd_final_link (abfd, info)
o->vma = 0;
}
- if (! info->relocateable && merged)
+ if (! info->relocatable && merged)
elf_link_hash_traverse (elf_hash_table (info),
- _bfd_elf_link_sec_merge_syms, (PTR) abfd);
+ _bfd_elf_link_sec_merge_syms, abfd);
/* Figure out the file positions for everything but the symbol table
and the relocs. We set symcount to force assign_section_numbers
@@ -3462,7 +3386,7 @@ elf_bfd_final_link (abfd, info)
finfo.symbuf_size = max_sym_count;
amt = finfo.symbuf_size;
amt *= sizeof (Elf_External_Sym);
- finfo.symbuf = (Elf_External_Sym *) bfd_malloc (amt);
+ finfo.symbuf = bfd_malloc (amt);
if (finfo.symbuf == NULL)
goto error_return;
if (elf_numsections (abfd) > SHN_LORESERVE)
@@ -3471,7 +3395,7 @@ elf_bfd_final_link (abfd, info)
amt = 2 * max_sym_count + elf_numsections (abfd) + 1000;
finfo.shndxbuf_size = amt;
amt *= sizeof (Elf_External_Sym_Shndx);
- finfo.symshndxbuf = (Elf_External_Sym_Shndx *) bfd_zmalloc (amt);
+ finfo.symshndxbuf = bfd_zmalloc (amt);
if (finfo.symshndxbuf == NULL)
goto error_return;
}
@@ -3486,8 +3410,7 @@ elf_bfd_final_link (abfd, info)
elfsym.st_info = 0;
elfsym.st_other = 0;
elfsym.st_shndx = SHN_UNDEF;
- if (! elf_link_output_sym (&finfo, (const char *) NULL,
- &elfsym, bfd_und_section_ptr))
+ if (! elf_link_output_sym (&finfo, NULL, &elfsym, bfd_und_section_ptr))
goto error_return;
}
@@ -3524,12 +3447,11 @@ elf_bfd_final_link (abfd, info)
if (o != NULL)
o->target_index = bfd_get_symcount (abfd);
elfsym.st_shndx = i;
- if (info->relocateable || o == NULL)
+ if (info->relocatable || o == NULL)
elfsym.st_value = 0;
else
elfsym.st_value = o->vma;
- if (! elf_link_output_sym (&finfo, (const char *) NULL,
- &elfsym, o))
+ if (! elf_link_output_sym (&finfo, NULL, &elfsym, o))
goto error_return;
if (i == SHN_LORESERVE - 1)
i += SHN_HIRESERVE + 1 - SHN_LORESERVE;
@@ -3540,14 +3462,14 @@ elf_bfd_final_link (abfd, info)
files. */
if (max_contents_size != 0)
{
- finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
+ finfo.contents = bfd_malloc (max_contents_size);
if (finfo.contents == NULL)
goto error_return;
}
if (max_external_reloc_size != 0)
{
- finfo.external_relocs = (PTR) bfd_malloc (max_external_reloc_size);
+ finfo.external_relocs = bfd_malloc (max_external_reloc_size);
if (finfo.external_relocs == NULL)
goto error_return;
}
@@ -3556,7 +3478,7 @@ elf_bfd_final_link (abfd, info)
{
amt = max_internal_reloc_count * bed->s->int_rels_per_ext_rel;
amt *= sizeof (Elf_Internal_Rela);
- finfo.internal_relocs = (Elf_Internal_Rela *) bfd_malloc (amt);
+ finfo.internal_relocs = bfd_malloc (amt);
if (finfo.internal_relocs == NULL)
goto error_return;
}
@@ -3564,22 +3486,22 @@ elf_bfd_final_link (abfd, info)
if (max_sym_count != 0)
{
amt = max_sym_count * sizeof (Elf_External_Sym);
- finfo.external_syms = (Elf_External_Sym *) bfd_malloc (amt);
+ finfo.external_syms = bfd_malloc (amt);
if (finfo.external_syms == NULL)
goto error_return;
amt = max_sym_count * sizeof (Elf_Internal_Sym);
- finfo.internal_syms = (Elf_Internal_Sym *) bfd_malloc (amt);
+ finfo.internal_syms = bfd_malloc (amt);
if (finfo.internal_syms == NULL)
goto error_return;
amt = max_sym_count * sizeof (long);
- finfo.indices = (long *) bfd_malloc (amt);
+ finfo.indices = bfd_malloc (amt);
if (finfo.indices == NULL)
goto error_return;
amt = max_sym_count * sizeof (asection *);
- finfo.sections = (asection **) bfd_malloc (amt);
+ finfo.sections = bfd_malloc (amt);
if (finfo.sections == NULL)
goto error_return;
}
@@ -3587,7 +3509,7 @@ elf_bfd_final_link (abfd, info)
if (max_sym_shndx_count != 0)
{
amt = max_sym_shndx_count * sizeof (Elf_External_Sym_Shndx);
- finfo.locsym_shndx = (Elf_External_Sym_Shndx *) bfd_malloc (amt);
+ finfo.locsym_shndx = bfd_malloc (amt);
if (finfo.locsym_shndx == NULL)
goto error_return;
}
@@ -3635,13 +3557,13 @@ elf_bfd_final_link (abfd, info)
Unfortunately, there is no way to know the total number of local
symbols until we have seen all of them, and the local symbol
indices precede the global symbol indices. This means that when
- we are generating relocateable output, and we see a reloc against
+ we are generating relocatable output, and we see a reloc against
a global symbol, we can not know the symbol index until we have
finished examining all the local symbols to see which ones we are
going to output. To deal with this, we keep the relocations in
memory, and don't output them until the end of the link. This is
an unfortunate waste of memory, but I don't see a good way around
- it. Fortunately, it only happens when performing a relocateable
+ it. Fortunately, it only happens when performing a relocatable
link, which is not the common case. FIXME: If keep_memory is set
we could write the relocs out and then read them again; I don't
know how bad the memory loss will be. */
@@ -3688,7 +3610,7 @@ elf_bfd_final_link (abfd, info)
eoinfo.finfo = &finfo;
eoinfo.localsyms = TRUE;
elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym,
- (PTR) &eoinfo);
+ &eoinfo);
if (eoinfo.failed)
return FALSE;
@@ -3728,7 +3650,7 @@ elf_bfd_final_link (abfd, info)
sym.st_shndx = indx;
sym.st_value = s->vma;
dest = dynsym + elf_section_data (s)->dynindx;
- elf_swap_symbol_out (abfd, &sym, (PTR) dest, (PTR) 0);
+ elf_swap_symbol_out (abfd, &sym, dest, 0);
}
last_local = bfd_count_sections (abfd);
@@ -3769,7 +3691,7 @@ elf_bfd_final_link (abfd, info)
last_local = e->dynindx;
dest = dynsym + e->dynindx;
- elf_swap_symbol_out (abfd, &sym, (PTR) dest, (PTR) 0);
+ elf_swap_symbol_out (abfd, &sym, dest, 0);
}
}
@@ -3782,7 +3704,7 @@ elf_bfd_final_link (abfd, info)
eoinfo.localsyms = FALSE;
eoinfo.finfo = &finfo;
elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym,
- (PTR) &eoinfo);
+ &eoinfo);
if (eoinfo.failed)
return FALSE;
@@ -3791,10 +3713,10 @@ elf_bfd_final_link (abfd, info)
if (bed->elf_backend_output_arch_syms)
{
typedef bfd_boolean (*out_sym_func)
- PARAMS ((PTR, const char *, Elf_Internal_Sym *, asection *));
+ (void *, const char *, Elf_Internal_Sym *, asection *);
if (! ((*bed->elf_backend_output_arch_syms)
- (abfd, info, (PTR) &finfo, (out_sym_func) elf_link_output_sym)))
+ (abfd, info, &finfo, (out_sym_func) elf_link_output_sym)))
return FALSE;
}
@@ -3818,7 +3740,7 @@ elf_bfd_final_link (abfd, info)
off, TRUE);
if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0
- || (bfd_bwrite ((PTR) finfo.symshndxbuf, amt, abfd) != amt))
+ || (bfd_bwrite (finfo.symshndxbuf, amt, abfd) != amt))
return FALSE;
}
@@ -4081,7 +4003,7 @@ elf_bfd_final_link (abfd, info)
}
}
- if (info->relocateable)
+ if (info->relocatable)
{
bfd_boolean failed = FALSE;
@@ -4172,17 +4094,16 @@ elf_bfd_final_link (abfd, info)
/* Add a symbol to the output symbol table. */
static bfd_boolean
-elf_link_output_sym (finfo, name, elfsym, input_sec)
- struct elf_final_link_info *finfo;
- const char *name;
- Elf_Internal_Sym *elfsym;
- asection *input_sec;
+elf_link_output_sym (struct elf_final_link_info *finfo,
+ const char *name,
+ Elf_Internal_Sym *elfsym,
+ asection *input_sec)
{
Elf_External_Sym *dest;
Elf_External_Sym_Shndx *destshndx;
bfd_boolean (*output_symbol_hook)
- PARAMS ((bfd *, struct bfd_link_info *info, const char *,
- Elf_Internal_Sym *, asection *));
+ (bfd *, struct bfd_link_info *info, const char *,
+ Elf_Internal_Sym *, asection *);
output_symbol_hook = get_elf_backend_data (finfo->output_bfd)->
elf_backend_link_output_symbol_hook;
@@ -4193,7 +4114,7 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
return FALSE;
}
- if (name == (const char *) NULL || *name == '\0')
+ if (name == NULL || *name == '\0')
elfsym->st_name = 0;
else if (input_sec->flags & SEC_EXCLUDE)
elfsym->st_name = 0;
@@ -4229,7 +4150,7 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
destshndx += bfd_get_symcount (finfo->output_bfd);
}
- elf_swap_symbol_out (finfo->output_bfd, elfsym, (PTR) dest, (PTR) destshndx);
+ elf_swap_symbol_out (finfo->output_bfd, elfsym, dest, destshndx);
finfo->symbuf_count += 1;
bfd_get_symcount (finfo->output_bfd) += 1;
@@ -4239,8 +4160,7 @@ elf_link_output_sym (finfo, name, elfsym, input_sec)
/* Flush the output symbols to the file. */
static bfd_boolean
-elf_link_flush_output_syms (finfo)
- struct elf_final_link_info *finfo;
+elf_link_flush_output_syms (struct elf_final_link_info *finfo)
{
if (finfo->symbuf_count > 0)
{
@@ -4252,7 +4172,7 @@ elf_link_flush_output_syms (finfo)
pos = hdr->sh_offset + hdr->sh_size;
amt = finfo->symbuf_count * sizeof (Elf_External_Sym);
if (bfd_seek (finfo->output_bfd, pos, SEEK_SET) != 0
- || bfd_bwrite ((PTR) finfo->symbuf, amt, finfo->output_bfd) != amt)
+ || bfd_bwrite (finfo->symbuf, amt, finfo->output_bfd) != amt)
return FALSE;
hdr->sh_size += amt;
@@ -4269,9 +4189,8 @@ elf_link_flush_output_syms (finfo)
which may be satisfied by a versioned symbol in another DSO. */
static bfd_boolean
-elf_link_check_versioned_symbol (info, h)
- struct bfd_link_info *info;
- struct elf_link_hash_entry *h;
+elf_link_check_versioned_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *h)
{
bfd *abfd;
struct elf_link_loaded_list *loaded;
@@ -4351,12 +4270,12 @@ elf_link_check_versioned_symbol (info, h)
/* Read in any version definitions. */
versymhdr = &elf_tdata (input)->dynversym_hdr;
- extversym = (Elf_External_Versym *) bfd_malloc (versymhdr->sh_size);
+ extversym = bfd_malloc (versymhdr->sh_size);
if (extversym == NULL)
goto error_ret;
if (bfd_seek (input, versymhdr->sh_offset, SEEK_SET) != 0
- || (bfd_bread ((PTR) extversym, versymhdr->sh_size, input)
+ || (bfd_bread (extversym, versymhdr->sh_size, input)
!= versymhdr->sh_size))
{
free (extversym);
@@ -4417,11 +4336,9 @@ elf_link_check_versioned_symbol (info, h)
global symbols. */
static bfd_boolean
-elf_link_output_extsym (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_link_output_extsym (struct elf_link_hash_entry *h, void *data)
{
- struct elf_outext_info *eoinfo = (struct elf_outext_info *) data;
+ struct elf_outext_info *eoinfo = data;
struct elf_final_link_info *finfo = eoinfo->finfo;
bfd_boolean strip;
Elf_Internal_Sym sym;
@@ -4446,24 +4363,19 @@ elf_link_output_extsym (h, data)
return TRUE;
}
- /* If we are not creating a shared library, and this symbol is
- referenced by a shared library but is not defined anywhere, then
- warn that it is undefined. If we do not do this, the runtime
- linker will complain that the symbol is undefined when the
- program is run. We don't have to worry about symbols that are
- referenced by regular files, because we will already have issued
- warnings for them. */
- if (! finfo->info->relocateable
- && (finfo->info->executable
- || ! finfo->info->allow_shlib_undefined)
- && h->root.type == bfd_link_hash_undefined
+ /* If we have an undefined symbol reference here then it must have
+ come from a shared library that is being linked in. (Undefined
+ references in regular files have already been handled). If we
+ are reporting errors for this situation then do so now. */
+ if (h->root.type == bfd_link_hash_undefined
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0
&& (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0
- && ! elf_link_check_versioned_symbol (finfo->info, h))
+ && ! elf_link_check_versioned_symbol (finfo->info, h)
+ && finfo->info->unresolved_syms_in_shared_libs != RM_IGNORE)
{
if (! ((*finfo->info->callbacks->undefined_symbol)
(finfo->info, h->root.root.string, h->root.u.undef.abfd,
- (asection *) NULL, (bfd_vma) 0, TRUE)))
+ NULL, 0, finfo->info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR)))
{
eoinfo->failed = TRUE;
return FALSE;
@@ -4472,11 +4384,10 @@ elf_link_output_extsym (h, data)
/* We should also warn if a forced local symbol is referenced from
shared libraries. */
- if (! finfo->info->relocateable
- && (! finfo->info->shared || ! finfo->info->allow_shlib_undefined)
+ if (! finfo->info->relocatable
+ && (! finfo->info->shared)
&& (h->elf_link_hash_flags
- & (ELF_LINK_FORCED_LOCAL | ELF_LINK_HASH_REF_DYNAMIC
- | ELF_LINK_DYNAMIC_DEF | ELF_LINK_DYNAMIC_WEAK))
+ & (ELF_LINK_FORCED_LOCAL | ELF_LINK_HASH_REF_DYNAMIC | ELF_LINK_DYNAMIC_DEF | ELF_LINK_DYNAMIC_WEAK))
== (ELF_LINK_FORCED_LOCAL | ELF_LINK_HASH_REF_DYNAMIC)
&& ! elf_link_check_versioned_symbol (finfo->info, h))
{
@@ -4570,11 +4481,11 @@ elf_link_output_extsym (h, data)
return FALSE;
}
- /* ELF symbols in relocateable files are section relative,
- but in nonrelocateable files they are virtual
+ /* ELF symbols in relocatable files are section relative,
+ but in nonrelocatable files they are virtual
addresses. */
sym.st_value = h->root.u.def.value + input_sec->output_offset;
- if (! finfo->info->relocateable)
+ if (! finfo->info->relocatable)
{
sym.st_value += input_sec->output_section->vma;
if (h->type == STT_TLS)
@@ -4624,7 +4535,7 @@ elf_link_output_extsym (h, data)
|| (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)
&& elf_hash_table (finfo->info)->dynamic_sections_created)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bed = get_elf_backend_data (finfo->output_bfd);
if (! ((*bed->elf_backend_finish_dynamic_symbol)
@@ -4657,7 +4568,7 @@ elf_link_output_extsym (h, data)
/* If a non-weak symbol with non-default visibility is not defined
locally, it is a fatal error. */
- if (! finfo->info->relocateable
+ if (! finfo->info->relocatable
&& ELF_ST_VISIBILITY (sym.st_other) != STV_DEFAULT
&& ELF_ST_BIND (sym.st_info) != STB_WEAK
&& h->root.type == bfd_link_hash_undefined
@@ -4690,7 +4601,7 @@ elf_link_output_extsym (h, data)
sym.st_name = h->dynstr_index;
esym = (Elf_External_Sym *) finfo->dynsym_sec->contents + h->dynindx;
- elf_swap_symbol_out (finfo->output_bfd, &sym, (PTR) esym, (PTR) 0);
+ elf_swap_symbol_out (finfo->output_bfd, &sym, esym, 0);
bucketcount = elf_hash_table (finfo->info)->bucketcount;
bucket = h->elf_hash_value % bucketcount;
@@ -4699,8 +4610,7 @@ elf_link_output_extsym (h, data)
bucketpos = ((bfd_byte *) finfo->hash_sec->contents
+ (bucket + 2) * hash_entry_size);
chain = bfd_get (8 * hash_entry_size, finfo->output_bfd, bucketpos);
- bfd_put (8 * hash_entry_size, finfo->output_bfd, (bfd_vma) h->dynindx,
- bucketpos);
+ bfd_put (8 * hash_entry_size, finfo->output_bfd, h->dynindx, bucketpos);
bfd_put (8 * hash_entry_size, finfo->output_bfd, chain,
((bfd_byte *) finfo->hash_sec->contents
+ (bucketcount + 2 + h->dynindx) * hash_entry_size));
@@ -4756,13 +4666,11 @@ elf_link_output_extsym (h, data)
don't have to keep them in memory. */
static bfd_boolean
-elf_link_input_bfd (finfo, input_bfd)
- struct elf_final_link_info *finfo;
- bfd *input_bfd;
+elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
{
bfd_boolean (*relocate_section)
- PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
- Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
bfd *output_bfd;
Elf_Internal_Shdr *symtab_hdr;
size_t locsymcount;
@@ -4773,7 +4681,7 @@ elf_link_input_bfd (finfo, input_bfd)
long *pindex;
asection **ppsection;
asection *o;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bfd_boolean emit_relocs;
struct elf_link_hash_entry **sym_hashes;
@@ -4787,7 +4695,7 @@ elf_link_input_bfd (finfo, input_bfd)
if ((input_bfd->flags & DYNAMIC) != 0)
return TRUE;
- emit_relocs = (finfo->info->relocateable
+ emit_relocs = (finfo->info->relocatable
|| finfo->info->emitrelocations
|| bed->elf_backend_emit_relocs);
@@ -4850,7 +4758,7 @@ elf_link_input_bfd (finfo, input_bfd)
isym->st_value =
_bfd_merged_section_offset (output_bfd, &isec,
elf_section_data (isec)->sec_info,
- isym->st_value, (bfd_vma) 0);
+ isym->st_value, 0);
}
else if (isym->st_shndx == SHN_ABS)
isec = bfd_abs_section_ptr;
@@ -4882,7 +4790,7 @@ elf_link_input_bfd (finfo, input_bfd)
continue;
/* If we are discarding all local symbols, we don't want to
- output this one. If we are generating a relocateable output
+ output this one. If we are generating a relocatable output
file, then some of the local symbols may be required by
relocs; we output them below as we discover that they are
needed. */
@@ -4897,7 +4805,7 @@ elf_link_input_bfd (finfo, input_bfd)
if ((isym->st_shndx < SHN_LORESERVE || isym->st_shndx > SHN_HIRESERVE)
&& isec != NULL
&& ((! isec->linker_mark && (isec->flags & SEC_HAS_CONTENTS) != 0)
- || (! finfo->info->relocateable
+ || (! finfo->info->relocatable
&& (isec->flags & SEC_EXCLUDE) != 0)))
continue;
@@ -4912,7 +4820,7 @@ elf_link_input_bfd (finfo, input_bfd)
&& (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE)
== NULL))
|| (((finfo->info->discard == discard_sec_merge
- && (isec->flags & SEC_MERGE) && ! finfo->info->relocateable)
+ && (isec->flags & SEC_MERGE) && ! finfo->info->relocatable)
|| finfo->info->discard == discard_l)
&& bfd_is_local_label_name (input_bfd, name)))
continue;
@@ -4929,7 +4837,7 @@ elf_link_input_bfd (finfo, input_bfd)
*pindex = bfd_get_symcount (output_bfd);
- /* ELF symbols in relocateable files are section relative, but
+ /* ELF symbols in relocatable files are section relative, but
in executable files they are virtual addresses. Note that
this code assumes that all ELF sections have an associated
BFD section with a reasonable value for output_offset; below
@@ -4937,7 +4845,7 @@ elf_link_input_bfd (finfo, input_bfd)
output_section. Any special sections must be set up to meet
these requirements. */
osym.st_value += isec->output_offset;
- if (! finfo->info->relocateable)
+ if (! finfo->info->relocatable)
{
osym.st_value += isec->output_section->vma;
if (ELF_ST_TYPE (osym.st_info) == STT_TLS)
@@ -4984,8 +4892,8 @@ elf_link_input_bfd (finfo, input_bfd)
else
{
contents = finfo->contents;
- if (! bfd_get_section_contents (input_bfd, o, contents,
- (file_ptr) 0, o->_raw_size))
+ if (! bfd_get_section_contents (input_bfd, o, contents, 0,
+ o->_raw_size))
return FALSE;
}
@@ -5042,7 +4950,7 @@ elf_link_input_bfd (finfo, input_bfd)
/* Try to preserve debug information. */
if ((o->flags & SEC_DEBUGGING) != 0
&& sec->kept_section != NULL
- && sec->_cooked_size == sec->kept_section->_cooked_size)
+ && sec->_raw_size == sec->kept_section->_raw_size)
h->root.u.def.section
= sec->kept_section;
else
@@ -5071,7 +4979,7 @@ elf_link_input_bfd (finfo, input_bfd)
/* Try to preserve debug information. */
if ((o->flags & SEC_DEBUGGING) != 0
&& sec->kept_section != NULL
- && sec->_cooked_size == sec->kept_section->_cooked_size)
+ && sec->_raw_size == sec->kept_section->_raw_size)
finfo->sections[r_symndx]
= sec->kept_section;
else
@@ -5108,7 +5016,7 @@ elf_link_input_bfd (finfo, input_bfd)
The back end routine is responsible for adjusting the
section contents as necessary, and (if using Rela relocs
- and generating a relocateable output file) adjusting the
+ and generating a relocatable output file) adjusting the
reloc addend as necessary.
The back end routine does not have to worry about setting
@@ -5118,7 +5026,7 @@ elf_link_input_bfd (finfo, input_bfd)
internal symbols, and can access the hash table entries
for the external symbols via elf_sym_hashes (input_bfd).
- When generating relocateable output, the back end routine
+ When generating relocatable output, the back end routine
must handle STB_LOCAL/STT_SECTION symbols specially. The
output symbol is going to be a section symbol
corresponding to the output section, which will require
@@ -5140,8 +5048,7 @@ elf_link_input_bfd (finfo, input_bfd)
Elf_Internal_Shdr *input_rel_hdr, *input_rel_hdr2;
unsigned int next_erel;
bfd_boolean (*reloc_emitter)
- PARAMS ((bfd *, asection *, Elf_Internal_Shdr *,
- Elf_Internal_Rela *));
+ (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *);
bfd_boolean rela_normal;
input_rel_hdr = &elf_section_data (o)->rel_hdr;
@@ -5157,7 +5064,7 @@ elf_link_input_bfd (finfo, input_bfd)
+ elf_section_data (o->output_section)->rel_count
+ elf_section_data (o->output_section)->rel_count2);
last_offset = o->output_offset;
- if (!finfo->info->relocateable)
+ if (!finfo->info->relocatable)
last_offset += o->output_section->vma;
for (next_erel = 0; irela < irelaend; irela++, next_erel++)
{
@@ -5190,7 +5097,7 @@ elf_link_input_bfd (finfo, input_bfd)
irela->r_offset += o->output_offset;
/* Relocs in an executable have to be virtual addresses. */
- if (!finfo->info->relocateable)
+ if (!finfo->info->relocatable)
irela->r_offset += o->output_section->vma;
last_offset = irela->r_offset;
@@ -5294,7 +5201,7 @@ elf_link_input_bfd (finfo, input_bfd)
return FALSE;
sym.st_value += sec->output_offset;
- if (! finfo->info->relocateable)
+ if (! finfo->info->relocatable)
{
sym.st_value += osec->vma;
if (ELF_ST_TYPE (sym.st_info) == STT_TLS)
@@ -5322,7 +5229,7 @@ elf_link_input_bfd (finfo, input_bfd)
/* Swap out the relocs. */
if (bed->elf_backend_emit_relocs
- && !(finfo->info->relocateable
+ && !(finfo->info->relocatable
|| finfo->info->emitrelocations))
reloc_emitter = bed->elf_backend_emit_relocs;
else
@@ -5397,11 +5304,10 @@ elf_link_input_bfd (finfo, input_bfd)
with -Ur. */
static bfd_boolean
-elf_reloc_link_order (output_bfd, info, output_section, link_order)
- bfd *output_bfd;
- struct bfd_link_info *info;
- asection *output_section;
- struct bfd_link_order *link_order;
+elf_reloc_link_order (bfd *output_bfd,
+ struct bfd_link_info *info,
+ asection *output_section,
+ struct bfd_link_order *link_order)
{
reloc_howto_type *howto;
long indx;
@@ -5409,7 +5315,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
bfd_vma addend;
struct elf_link_hash_entry **rel_hash_ptr;
Elf_Internal_Shdr *rel_hdr;
- struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
Elf_Internal_Rela irel[MAX_INT_RELS_PER_EXT_REL];
bfd_byte *erel;
unsigned int i;
@@ -5468,8 +5374,7 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
else
{
if (! ((*info->callbacks->unattached_reloc)
- (info, link_order->u.reloc.p->u.name, (bfd *) NULL,
- (asection *) NULL, (bfd_vma) 0)))
+ (info, link_order->u.reloc.p->u.name, NULL, NULL, 0)))
return FALSE;
indx = 0;
}
@@ -5486,10 +5391,10 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
const char *sym_name;
size = bfd_get_reloc_size (howto);
- buf = (bfd_byte *) bfd_zmalloc (size);
- if (buf == (bfd_byte *) NULL)
+ buf = bfd_zmalloc (size);
+ if (buf == NULL)
return FALSE;
- rstat = _bfd_relocate_contents (howto, output_bfd, (bfd_vma) addend, buf);
+ rstat = _bfd_relocate_contents (howto, output_bfd, addend, buf);
switch (rstat)
{
case bfd_reloc_ok:
@@ -5506,26 +5411,25 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
else
sym_name = link_order->u.reloc.p->u.name;
if (! ((*info->callbacks->reloc_overflow)
- (info, sym_name, howto->name, addend,
- (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
+ (info, sym_name, howto->name, addend, NULL, NULL, 0)))
{
free (buf);
return FALSE;
}
break;
}
- ok = bfd_set_section_contents (output_bfd, output_section, (PTR) buf,
- (file_ptr) link_order->offset, size);
+ ok = bfd_set_section_contents (output_bfd, output_section, buf,
+ link_order->offset, size);
free (buf);
if (! ok)
return FALSE;
}
/* The address of a reloc is relative to the section in a
- relocateable file, and is a virtual address in an executable
+ relocatable file, and is a virtual address in an executable
file. */
offset = link_order->offset;
- if (! info->relocateable)
+ if (! info->relocatable)
offset += output_section->vma;
for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
@@ -5557,302 +5461,26 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
return TRUE;
}
-/* Allocate a pointer to live in a linker created section. */
-
-bfd_boolean
-elf_create_pointer_linker_section (abfd, info, lsect, h, rel)
- bfd *abfd;
- struct bfd_link_info *info;
- elf_linker_section_t *lsect;
- struct elf_link_hash_entry *h;
- const Elf_Internal_Rela *rel;
-{
- elf_linker_section_pointers_t **ptr_linker_section_ptr = NULL;
- elf_linker_section_pointers_t *linker_section_ptr;
- unsigned long r_symndx = ELF_R_SYM (rel->r_info);
- bfd_size_type amt;
-
- BFD_ASSERT (lsect != NULL);
-
- /* Is this a global symbol? */
- if (h != NULL)
- {
- /* Has this symbol already been allocated? If so, our work is done. */
- if (_bfd_elf_find_pointer_linker_section (h->linker_section_pointer,
- rel->r_addend,
- lsect->which))
- return TRUE;
-
- ptr_linker_section_ptr = &h->linker_section_pointer;
- /* Make sure this symbol is output as a dynamic symbol. */
- if (h->dynindx == -1)
- {
- if (! elf_link_record_dynamic_symbol (info, h))
- return FALSE;
- }
-
- if (lsect->rel_section)
- lsect->rel_section->_raw_size += sizeof (Elf_External_Rela);
- }
- else
- {
- /* Allocation of a pointer to a local symbol. */
- elf_linker_section_pointers_t **ptr = elf_local_ptr_offsets (abfd);
-
- /* Allocate a table to hold the local symbols if first time. */
- if (!ptr)
- {
- unsigned int num_symbols = elf_tdata (abfd)->symtab_hdr.sh_info;
- register unsigned int i;
-
- amt = num_symbols;
- amt *= sizeof (elf_linker_section_pointers_t *);
- ptr = (elf_linker_section_pointers_t **) bfd_alloc (abfd, amt);
-
- if (!ptr)
- return FALSE;
-
- elf_local_ptr_offsets (abfd) = ptr;
- for (i = 0; i < num_symbols; i++)
- ptr[i] = (elf_linker_section_pointers_t *) 0;
- }
-
- /* Has this symbol already been allocated? If so, our work is done. */
- if (_bfd_elf_find_pointer_linker_section (ptr[r_symndx],
- rel->r_addend,
- lsect->which))
- return TRUE;
-
- ptr_linker_section_ptr = &ptr[r_symndx];
-
- if (info->shared)
- {
- /* If we are generating a shared object, we need to
- output a R_<xxx>_RELATIVE reloc so that the
- dynamic linker can adjust this GOT entry. */
- BFD_ASSERT (lsect->rel_section != NULL);
- lsect->rel_section->_raw_size += sizeof (Elf_External_Rela);
- }
- }
-
- /* Allocate space for a pointer in the linker section, and allocate
- a new pointer record from internal memory. */
- BFD_ASSERT (ptr_linker_section_ptr != NULL);
- amt = sizeof (elf_linker_section_pointers_t);
- linker_section_ptr = (elf_linker_section_pointers_t *) bfd_alloc (abfd, amt);
-
- if (!linker_section_ptr)
- return FALSE;
-
- linker_section_ptr->next = *ptr_linker_section_ptr;
- linker_section_ptr->addend = rel->r_addend;
- linker_section_ptr->which = lsect->which;
- linker_section_ptr->written_address_p = FALSE;
- *ptr_linker_section_ptr = linker_section_ptr;
-
-#if 0
- if (lsect->hole_size && lsect->hole_offset < lsect->max_hole_offset)
- {
- linker_section_ptr->offset = (lsect->section->_raw_size
- - lsect->hole_size + (ARCH_SIZE / 8));
- lsect->hole_offset += ARCH_SIZE / 8;
- lsect->sym_offset += ARCH_SIZE / 8;
- if (lsect->sym_hash)
- {
- /* Bump up symbol value if needed. */
- lsect->sym_hash->root.u.def.value += ARCH_SIZE / 8;
-#ifdef DEBUG
- fprintf (stderr, "Bump up %s by %ld, current value = %ld\n",
- lsect->sym_hash->root.root.string,
- (long) ARCH_SIZE / 8,
- (long) lsect->sym_hash->root.u.def.value);
-#endif
- }
- }
- else
-#endif
- linker_section_ptr->offset = lsect->section->_raw_size;
-
- lsect->section->_raw_size += ARCH_SIZE / 8;
-
-#ifdef DEBUG
- fprintf (stderr,
- "Create pointer in linker section %s, offset = %ld, section size = %ld\n",
- lsect->name, (long) linker_section_ptr->offset,
- (long) lsect->section->_raw_size);
-#endif
-
- return TRUE;
-}
-
-#if ARCH_SIZE==64
-#define bfd_put_ptr(BFD,VAL,ADDR) bfd_put_64 (BFD, VAL, ADDR)
-#endif
-#if ARCH_SIZE==32
-#define bfd_put_ptr(BFD,VAL,ADDR) bfd_put_32 (BFD, VAL, ADDR)
-#endif
-
-/* Fill in the address for a pointer generated in a linker section. */
-
-bfd_vma
-elf_finish_pointer_linker_section (output_bfd, input_bfd, info, lsect, h,
- relocation, rel, relative_reloc)
- bfd *output_bfd;
- bfd *input_bfd;
- struct bfd_link_info *info;
- elf_linker_section_t *lsect;
- struct elf_link_hash_entry *h;
- bfd_vma relocation;
- const Elf_Internal_Rela *rel;
- int relative_reloc;
-{
- elf_linker_section_pointers_t *linker_section_ptr;
-
- BFD_ASSERT (lsect != NULL);
-
- if (h != NULL)
- {
- /* Handle global symbol. */
- linker_section_ptr = (_bfd_elf_find_pointer_linker_section
- (h->linker_section_pointer,
- rel->r_addend,
- lsect->which));
-
- BFD_ASSERT (linker_section_ptr != NULL);
-
- if (! elf_hash_table (info)->dynamic_sections_created
- || (info->shared
- && info->symbolic
- && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)))
- {
- /* This is actually a static link, or it is a
- -Bsymbolic link and the symbol is defined
- locally. We must initialize this entry in the
- global section.
-
- When doing a dynamic link, we create a .rela.<xxx>
- relocation entry to initialize the value. This
- is done in the finish_dynamic_symbol routine. */
- if (!linker_section_ptr->written_address_p)
- {
- linker_section_ptr->written_address_p = TRUE;
- bfd_put_ptr (output_bfd,
- relocation + linker_section_ptr->addend,
- (lsect->section->contents
- + linker_section_ptr->offset));
- }
- }
- }
- else
- {
- /* Handle local symbol. */
- unsigned long r_symndx = ELF_R_SYM (rel->r_info);
- BFD_ASSERT (elf_local_ptr_offsets (input_bfd) != NULL);
- BFD_ASSERT (elf_local_ptr_offsets (input_bfd)[r_symndx] != NULL);
- linker_section_ptr = (_bfd_elf_find_pointer_linker_section
- (elf_local_ptr_offsets (input_bfd)[r_symndx],
- rel->r_addend,
- lsect->which));
-
- BFD_ASSERT (linker_section_ptr != NULL);
-
- /* Write out pointer if it hasn't been rewritten out before. */
- if (!linker_section_ptr->written_address_p)
- {
- linker_section_ptr->written_address_p = TRUE;
- bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend,
- lsect->section->contents + linker_section_ptr->offset);
-
- if (info->shared)
- {
- asection *srel = lsect->rel_section;
- Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL];
- bfd_byte *erel;
- struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
- unsigned int i;
-
- /* We need to generate a relative reloc for the dynamic
- linker. */
- if (!srel)
- {
- srel = bfd_get_section_by_name (elf_hash_table (info)->dynobj,
- lsect->rel_name);
- lsect->rel_section = srel;
- }
-
- BFD_ASSERT (srel != NULL);
-
- for (i = 0; i < bed->s->int_rels_per_ext_rel; i++)
- {
- outrel[i].r_offset = (lsect->section->output_section->vma
- + lsect->section->output_offset
- + linker_section_ptr->offset);
- outrel[i].r_info = 0;
- outrel[i].r_addend = 0;
- }
- outrel[0].r_info = ELF_R_INFO (0, relative_reloc);
- erel = lsect->section->contents;
- erel += (elf_section_data (lsect->section)->rel_count++
- * sizeof (Elf_External_Rela));
- elf_swap_reloca_out (output_bfd, outrel, erel);
- }
- }
- }
-
- relocation = (lsect->section->output_offset
- + linker_section_ptr->offset
- - lsect->hole_offset
- - lsect->sym_offset);
-
-#ifdef DEBUG
- fprintf (stderr,
- "Finish pointer in linker section %s, offset = %ld (0x%lx)\n",
- lsect->name, (long) relocation, (long) relocation);
-#endif
-
- /* Subtract out the addend, because it will get added back in by the normal
- processing. */
- return relocation - linker_section_ptr->addend;
-}
-
/* Garbage collect unused sections. */
-static bfd_boolean elf_gc_mark
- PARAMS ((struct bfd_link_info *, asection *,
- asection * (*) (asection *, struct bfd_link_info *,
- Elf_Internal_Rela *, struct elf_link_hash_entry *,
- Elf_Internal_Sym *)));
-
-static bfd_boolean elf_gc_sweep
- PARAMS ((struct bfd_link_info *,
- bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *)));
-
static bfd_boolean elf_gc_sweep_symbol
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
static bfd_boolean elf_gc_allocate_got_offsets
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean elf_gc_propagate_vtable_entries_used
- PARAMS ((struct elf_link_hash_entry *, PTR));
-
-static bfd_boolean elf_gc_smash_unused_vtentry_relocs
- PARAMS ((struct elf_link_hash_entry *, PTR));
+ (struct elf_link_hash_entry *, void *);
/* The mark phase of garbage collection. For a given section, mark
it and any sections in this section's group, and all the sections
which define symbols to which it refers. */
typedef asection * (*gc_mark_hook_fn)
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *, Elf_Internal_Sym *));
+ (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+ struct elf_link_hash_entry *, Elf_Internal_Sym *);
static bfd_boolean
-elf_gc_mark (info, sec, gc_mark_hook)
- struct bfd_link_info *info;
- asection *sec;
- gc_mark_hook_fn gc_mark_hook;
+elf_gc_mark (struct bfd_link_info *info,
+ asection *sec,
+ gc_mark_hook_fn gc_mark_hook)
{
bfd_boolean ret;
asection *group_sec;
@@ -5875,7 +5503,7 @@ elf_gc_mark (info, sec, gc_mark_hook)
size_t nlocsyms;
size_t extsymoff;
bfd *input_bfd = sec->owner;
- struct elf_backend_data *bed = get_elf_backend_data (input_bfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (input_bfd);
Elf_Internal_Sym *isym = NULL;
symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -5900,8 +5528,7 @@ elf_gc_mark (info, sec, gc_mark_hook)
}
/* Read the relocations. */
- relstart = _bfd_elf_link_read_relocs (input_bfd, sec, NULL,
- (Elf_Internal_Rela *) NULL,
+ relstart = _bfd_elf_link_read_relocs (input_bfd, sec, NULL, NULL,
info->keep_memory);
if (relstart == NULL)
{
@@ -5962,13 +5589,10 @@ elf_gc_mark (info, sec, gc_mark_hook)
/* The sweep phase of garbage collection. Remove all garbage sections. */
typedef bfd_boolean (*gc_sweep_hook_fn)
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- const Elf_Internal_Rela *));
+ (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
static bfd_boolean
-elf_gc_sweep (info, gc_sweep_hook)
- struct bfd_link_info *info;
- gc_sweep_hook_fn gc_sweep_hook;
+elf_gc_sweep (struct bfd_link_info *info, gc_sweep_hook_fn gc_sweep_hook)
{
bfd *sub;
@@ -6006,8 +5630,7 @@ elf_gc_sweep (info, gc_sweep_hook)
bfd_boolean r;
internal_relocs
- = _bfd_elf_link_read_relocs (o->owner, o, NULL,
- (Elf_Internal_Rela *) NULL,
+ = _bfd_elf_link_read_relocs (o->owner, o, NULL, NULL,
info->keep_memory);
if (internal_relocs == NULL)
return FALSE;
@@ -6029,9 +5652,7 @@ elf_gc_sweep (info, gc_sweep_hook)
{
int i = 0;
- elf_link_hash_traverse (elf_hash_table (info),
- elf_gc_sweep_symbol,
- (PTR) &i);
+ elf_link_hash_traverse (elf_hash_table (info), elf_gc_sweep_symbol, &i);
elf_hash_table (info)->dynsymcount = i;
}
@@ -6042,11 +5663,9 @@ elf_gc_sweep (info, gc_sweep_hook)
/* Sweep symbols in swept sections. Called via elf_link_hash_traverse. */
static bfd_boolean
-elf_gc_sweep_symbol (h, idxptr)
- struct elf_link_hash_entry *h;
- PTR idxptr;
+elf_gc_sweep_symbol (struct elf_link_hash_entry *h, void *idxptr)
{
- int *idx = (int *) idxptr;
+ int *idx = idxptr;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -6064,9 +5683,7 @@ elf_gc_sweep_symbol (h, idxptr)
elf_link_hash_traverse. */
static bfd_boolean
-elf_gc_propagate_vtable_entries_used (h, okp)
- struct elf_link_hash_entry *h;
- PTR okp;
+elf_gc_propagate_vtable_entries_used (struct elf_link_hash_entry *h, void *okp)
{
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -6104,10 +5721,11 @@ elf_gc_propagate_vtable_entries_used (h, okp)
pu = h->vtable_parent->vtable_entries_used;
if (pu != NULL)
{
- asection *sec = h->root.u.def.section;
- struct elf_backend_data *bed = get_elf_backend_data (sec->owner);
- unsigned int log_file_align = bed->s->log_file_align;
+ const struct elf_backend_data *bed;
+ unsigned int log_file_align;
+ bed = get_elf_backend_data (h->root.u.def.section->owner);
+ log_file_align = bed->s->log_file_align;
n = h->vtable_parent->vtable_entries_size >> log_file_align;
while (n--)
{
@@ -6123,14 +5741,12 @@ elf_gc_propagate_vtable_entries_used (h, okp)
}
static bfd_boolean
-elf_gc_smash_unused_vtentry_relocs (h, okp)
- struct elf_link_hash_entry *h;
- PTR okp;
+elf_gc_smash_unused_vtentry_relocs (struct elf_link_hash_entry *h, void *okp)
{
asection *sec;
bfd_vma hstart, hend;
Elf_Internal_Rela *relstart, *relend, *rel;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
unsigned int log_file_align;
if (h->root.type == bfd_link_hash_warning)
@@ -6148,8 +5764,7 @@ elf_gc_smash_unused_vtentry_relocs (h, okp)
hstart = h->root.u.def.value;
hend = hstart + h->size;
- relstart = _bfd_elf_link_read_relocs (sec->owner, sec, NULL,
- (Elf_Internal_Rela *) NULL, TRUE);
+ relstart = _bfd_elf_link_read_relocs (sec->owner, sec, NULL, NULL, TRUE);
if (!relstart)
return *(bfd_boolean *) okp = FALSE;
bed = get_elf_backend_data (sec->owner);
@@ -6178,32 +5793,30 @@ elf_gc_smash_unused_vtentry_relocs (h, okp)
/* Do mark and sweep of unused sections. */
bfd_boolean
-elf_gc_sections (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_gc_sections (bfd *abfd, struct bfd_link_info *info)
{
bfd_boolean ok = TRUE;
bfd *sub;
asection * (*gc_mark_hook)
- PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
- struct elf_link_hash_entry *h, Elf_Internal_Sym *));
+ (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+ struct elf_link_hash_entry *h, Elf_Internal_Sym *);
if (!get_elf_backend_data (abfd)->can_gc_sections
- || info->relocateable || info->emitrelocations
+ || info->relocatable || info->emitrelocations
|| elf_hash_table (info)->dynamic_sections_created)
return TRUE;
/* Apply transitive closure to the vtable entry usage info. */
elf_link_hash_traverse (elf_hash_table (info),
elf_gc_propagate_vtable_entries_used,
- (PTR) &ok);
+ &ok);
if (!ok)
return FALSE;
/* Kill the vtable relocations that were not used. */
elf_link_hash_traverse (elf_hash_table (info),
elf_gc_smash_unused_vtentry_relocs,
- (PTR) &ok);
+ &ok);
if (!ok)
return FALSE;
@@ -6235,11 +5848,10 @@ elf_gc_sections (abfd, info)
/* Called from check_relocs to record the existance of a VTINHERIT reloc. */
bfd_boolean
-elf_gc_record_vtinherit (abfd, sec, h, offset)
- bfd *abfd;
- asection *sec;
- struct elf_link_hash_entry *h;
- bfd_vma offset;
+elf_gc_record_vtinherit (bfd *abfd,
+ asection *sec,
+ struct elf_link_hash_entry *h,
+ bfd_vma offset)
{
struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
struct elf_link_hash_entry **search, *child;
@@ -6292,13 +5904,12 @@ elf_gc_record_vtinherit (abfd, sec, h, offset)
/* Called from check_relocs to record the existance of a VTENTRY reloc. */
bfd_boolean
-elf_gc_record_vtentry (abfd, sec, h, addend)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *sec ATTRIBUTE_UNUSED;
- struct elf_link_hash_entry *h;
- bfd_vma addend;
+elf_gc_record_vtentry (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *sec ATTRIBUTE_UNUSED,
+ struct elf_link_hash_entry *h,
+ bfd_vma addend)
{
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
unsigned int log_file_align = bed->s->log_file_align;
if (addend >= h->vtable_entries_size)
@@ -6329,7 +5940,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
if (ptr)
{
- ptr = bfd_realloc (ptr - 1, (bfd_size_type) bytes);
+ ptr = bfd_realloc (ptr - 1, bytes);
if (ptr != NULL)
{
@@ -6341,7 +5952,7 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
}
}
else
- ptr = bfd_zmalloc ((bfd_size_type) bytes);
+ ptr = bfd_zmalloc (bytes);
if (ptr == NULL)
return FALSE;
@@ -6360,12 +5971,11 @@ elf_gc_record_vtentry (abfd, sec, h, addend)
we're done. Should be called from final_link. */
bfd_boolean
-elf_gc_common_finalize_got_offsets (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_gc_common_finalize_got_offsets (bfd *abfd,
+ struct bfd_link_info *info)
{
bfd *i;
- struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
bfd_vma gotoff;
/* The GOT offset is relative to the .got section, but the GOT header is
@@ -6411,7 +6021,7 @@ elf_gc_common_finalize_got_offsets (abfd, info)
adjust_dynamic_symbol */
elf_link_hash_traverse (elf_hash_table (info),
elf_gc_allocate_got_offsets,
- (PTR) &gotoff);
+ &gotoff);
return TRUE;
}
@@ -6419,11 +6029,9 @@ elf_gc_common_finalize_got_offsets (abfd, info)
to real got offsets. */
static bfd_boolean
-elf_gc_allocate_got_offsets (h, offarg)
- struct elf_link_hash_entry *h;
- PTR offarg;
+elf_gc_allocate_got_offsets (struct elf_link_hash_entry *h, void *offarg)
{
- bfd_vma *off = (bfd_vma *) offarg;
+ bfd_vma *off = offarg;
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
@@ -6443,9 +6051,7 @@ elf_gc_allocate_got_offsets (h, offarg)
got entry reference counting is enabled. */
bfd_boolean
-elf_gc_common_final_link (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+elf_gc_common_final_link (bfd *abfd, struct bfd_link_info *info)
{
if (!elf_gc_common_finalize_got_offsets (abfd, info))
return FALSE;
@@ -6458,11 +6064,9 @@ elf_gc_common_final_link (abfd, info)
all hash value of the exported symbols in an array. */
static bfd_boolean
-elf_collect_hash_codes (h, data)
- struct elf_link_hash_entry *h;
- PTR data;
+elf_collect_hash_codes (struct elf_link_hash_entry *h, void *data)
{
- unsigned long **valuep = (unsigned long **) data;
+ unsigned long **valuep = data;
const char *name;
char *p;
unsigned long ha;
@@ -6479,8 +6083,8 @@ elf_collect_hash_codes (h, data)
p = strchr (name, ELF_VER_CHR);
if (p != NULL)
{
- alc = bfd_malloc ((bfd_size_type) (p - name + 1));
- memcpy (alc, name, (size_t) (p - name));
+ alc = bfd_malloc (p - name + 1);
+ memcpy (alc, name, p - name);
alc[p - name] = '\0';
name = alc;
}
@@ -6502,11 +6106,9 @@ elf_collect_hash_codes (h, data)
}
bfd_boolean
-elf_reloc_symbol_deleted_p (offset, cookie)
- bfd_vma offset;
- PTR cookie;
+elf_reloc_symbol_deleted_p (bfd_vma offset, void *cookie)
{
- struct elf_reloc_cookie *rcookie = (struct elf_reloc_cookie *) cookie;
+ struct elf_reloc_cookie *rcookie = cookie;
if (rcookie->bad_symtab)
rcookie->rel = rcookie->rels;
@@ -6571,14 +6173,12 @@ elf_reloc_symbol_deleted_p (offset, cookie)
which is true for all known assemblers. */
bfd_boolean
-elf_bfd_discard_info (output_bfd, info)
- bfd *output_bfd;
- struct bfd_link_info *info;
+elf_bfd_discard_info (bfd *output_bfd, struct bfd_link_info *info)
{
struct elf_reloc_cookie cookie;
asection *stab, *eh;
Elf_Internal_Shdr *symtab_hdr;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bfd *abfd;
unsigned int count;
bfd_boolean ret = FALSE;
@@ -6599,7 +6199,7 @@ elf_bfd_discard_info (output_bfd, info)
continue;
eh = bfd_get_section_by_name (abfd, ".eh_frame");
- if (info->relocateable
+ if (info->relocatable
|| (eh != NULL
&& (eh->_raw_size == 0
|| bfd_is_abs_section (eh->output_section))))
@@ -6647,10 +6247,8 @@ elf_bfd_discard_info (output_bfd, info)
cookie.rels = NULL;
count = stab->reloc_count;
if (count != 0)
- cookie.rels
- = _bfd_elf_link_read_relocs (abfd, stab, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
- info->keep_memory);
+ cookie.rels = _bfd_elf_link_read_relocs (abfd, stab, NULL, NULL,
+ info->keep_memory);
if (cookie.rels != NULL)
{
cookie.rel = cookie.rels;
@@ -6671,10 +6269,8 @@ elf_bfd_discard_info (output_bfd, info)
cookie.rels = NULL;
count = eh->reloc_count;
if (count != 0)
- cookie.rels
- = _bfd_elf_link_read_relocs (abfd, eh, (PTR) NULL,
- (Elf_Internal_Rela *) NULL,
- info->keep_memory);
+ cookie.rels = _bfd_elf_link_read_relocs (abfd, eh, NULL, NULL,
+ info->keep_memory);
cookie.rel = cookie.rels;
cookie.relend = cookie.rels;
if (cookie.rels != NULL)
@@ -6705,7 +6301,7 @@ elf_bfd_discard_info (output_bfd, info)
}
if (info->eh_frame_hdr
- && !info->relocateable
+ && !info->relocatable
&& _bfd_elf_discard_section_eh_frame_hdr (output_bfd, info))
ret = TRUE;
@@ -6713,10 +6309,9 @@ elf_bfd_discard_info (output_bfd, info)
}
static bfd_boolean
-elf_section_ignore_discarded_relocs (sec)
- asection *sec;
+elf_section_ignore_discarded_relocs (asection *sec)
{
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
switch (sec->sec_info_type)
{
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
index 1741e35..60c6ad0 100644
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -1520,18 +1520,18 @@ mips_elf_assign_gp (output_bfd, pgp)
symbol value correctly. We look up the symbol _gp in the output
BFD. If we can't find it, we're stuck. We cache it in the ELF
target data. We don't need to adjust the symbol value for an
- external symbol if we are producing relocateable output. */
+ external symbol if we are producing relocatable output. */
static bfd_reloc_status_type
-mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
+mips_elf_final_gp (output_bfd, symbol, relocatable, error_message, pgp)
bfd *output_bfd;
asymbol *symbol;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
char **error_message;
bfd_vma *pgp;
{
if (bfd_is_und_section (symbol->section)
- && ! relocateable)
+ && ! relocatable)
{
*pgp = 0;
return bfd_reloc_undefined;
@@ -1539,10 +1539,10 @@ mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
*pgp = _bfd_get_gp_value (output_bfd);
if (*pgp == 0
- && (! relocateable
+ && (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0))
{
- if (relocateable)
+ if (relocatable)
{
/* Make up a value. */
*pgp = symbol->section->output_section->vma /*+ 0x4000*/;
@@ -1573,27 +1573,27 @@ mips_elf_gprel16_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
- input_section, relocateable,
+ input_section, relocatable,
data, gp);
}
@@ -1610,7 +1610,7 @@ mips_elf_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1618,20 +1618,20 @@ mips_elf_literal_reloc (abfd, reloc_entry, symbol, data, input_section,
/* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */
if (output_bfd != (bfd *) NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
return _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry,
- input_section, relocateable,
+ input_section, relocatable,
data, gp);
}
@@ -1649,7 +1649,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
@@ -1667,32 +1667,32 @@ mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section,
if (output_bfd != (bfd *) NULL)
{
- relocateable = TRUE;
+ relocatable = TRUE;
gp = _bfd_get_gp_value (output_bfd);
}
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable,
error_message, &gp);
if (ret != bfd_reloc_ok)
return ret;
}
return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
- relocateable, data, gp);
+ relocatable, data, gp);
}
static bfd_reloc_status_type
-gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
+gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocatable, data,
gp)
bfd *abfd;
asymbol *symbol;
arelent *reloc_entry;
asection *input_section;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
PTR data;
bfd_vma gp;
{
@@ -1719,15 +1719,15 @@ gprel32_with_gp (abfd, symbol, reloc_entry, input_section, relocateable, data,
val += reloc_entry->addend;
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
bfd_put_32 (abfd, (bfd_vma) val, (bfd_byte *) data + reloc_entry->address);
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
@@ -1800,7 +1800,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
bfd *output_bfd;
char **error_message;
{
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
bfd_reloc_status_type ret;
bfd_vma gp;
unsigned short extend = 0;
@@ -1811,14 +1811,14 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section)
if (output_bfd != NULL)
- relocateable = TRUE;
+ relocatable = TRUE;
else
{
- relocateable = FALSE;
+ relocatable = FALSE;
output_bfd = symbol->section->output_section->owner;
}
- ret = mips_elf_final_gp (output_bfd, symbol, relocateable, error_message,
+ ret = mips_elf_final_gp (output_bfd, symbol, relocatable, error_message,
&gp);
if (ret != bfd_reloc_ok)
return ret;
@@ -1848,9 +1848,9 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
_bfd_mips_elf_sign_extend(val, 16);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1869,7 +1869,7 @@ mips16_gprel_reloc (abfd, reloc_entry, symbol, data, input_section,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
return bfd_reloc_overflow;
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index 5e8dadf..5cc3110 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -143,6 +143,7 @@ struct elfNN_ia64_link_hash_table
asection *got_sec; /* the linkage table section (or NULL) */
asection *rel_got_sec; /* dynamic relocation section for same */
asection *fptr_sec; /* function descriptor table (or NULL) */
+ asection *rel_fptr_sec; /* dynamic relocation section for same */
asection *plt_sec; /* the primary plt section (or NULL) */
asection *pltoff_sec; /* private descriptors for plt (or NULL) */
asection *rel_pltoff_sec; /* dynamic relocation section for same */
@@ -192,14 +193,6 @@ static bfd_boolean elfNN_ia64_add_symbol_hook
PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
const char **namep, flagword *flagsp, asection **secp,
bfd_vma *valp));
-static bfd_boolean elfNN_ia64_aix_vec
- PARAMS ((const bfd_target *vec));
-static bfd_boolean elfNN_ia64_aix_add_symbol_hook
- PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
- const char **namep, flagword *flagsp, asection **secp,
- bfd_vma *valp));
-static bfd_boolean elfNN_ia64_aix_link_add_symbols
- PARAMS ((bfd *abfd, struct bfd_link_info *info));
static int elfNN_ia64_additional_program_headers
PARAMS ((bfd *abfd));
static bfd_boolean elfNN_ia64_modify_segment_map
@@ -207,7 +200,7 @@ static bfd_boolean elfNN_ia64_modify_segment_map
static bfd_boolean elfNN_ia64_is_local_label_name
PARAMS ((bfd *abfd, const char *name));
static bfd_boolean elfNN_ia64_dynamic_symbol_p
- PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info));
+ PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info, int));
static bfd_boolean elfNN_ia64_local_hash_table_init
PARAMS ((struct elfNN_ia64_local_hash_table *ht, bfd *abfd,
new_hash_entry_func new));
@@ -218,7 +211,7 @@ static struct bfd_hash_entry *elfNN_ia64_new_elf_hash_entry
PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,
const char *string));
static void elfNN_ia64_hash_copy_indirect
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static void elfNN_ia64_hash_hide_symbol
PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
@@ -367,7 +360,7 @@ elfNN_ia64_reloc (abfd, reloc, sym, data, input_section,
#define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN) \
HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \
- elfNN_ia64_reloc, NAME, FALSE, 0, 0, IN)
+ elfNN_ia64_reloc, NAME, FALSE, 0, -1, IN)
/* This table has to be sorted according to increasing number of the
TYPE field. */
@@ -656,9 +649,6 @@ static const bfd_byte plt_full_entry[PLT_FULL_ENTRY_SIZE] =
};
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
-#define AIX_DYNAMIC_INTERPRETER "/usr/lib/ia64l64/libc.so.1"
-#define DYNAMIC_INTERPRETER(abfd) \
- (elfNN_ia64_aix_vec (abfd->xvec) ? AIX_DYNAMIC_INTERPRETER : ELF_DYNAMIC_INTERPRETER)
static const bfd_byte oor_brl[16] =
{
@@ -841,7 +831,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
}
/* Can't do anything else with dynamic symbols. */
- else if (elfNN_ia64_dynamic_symbol_p (h, link_info))
+ else if (elfNN_ia64_dynamic_symbol_p (h, link_info, r_type))
continue;
else
@@ -1341,7 +1331,7 @@ elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
bfd_vma *valp;
{
if (sym->st_shndx == SHN_COMMON
- && !info->relocateable
+ && !info->relocatable
&& sym->st_size <= elf_gp_size (abfd))
{
/* Common symbols less than or equal to -G nn bytes are
@@ -1366,114 +1356,6 @@ elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
return TRUE;
}
-static bfd_boolean
-elfNN_ia64_aix_vec (const bfd_target *vec)
-{
- extern const bfd_target bfd_elfNN_ia64_aix_little_vec;
- extern const bfd_target bfd_elfNN_ia64_aix_big_vec;
-
- return (/**/vec == & bfd_elfNN_ia64_aix_little_vec
- || vec == & bfd_elfNN_ia64_aix_big_vec);
-}
-
-/* Hook called by the linker routine which adds symbols from an object
- file. We use it to handle OS-specific symbols. */
-
-static bfd_boolean
-elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info;
- const Elf_Internal_Sym *sym;
- const char **namep;
- flagword *flagsp;
- asection **secp;
- bfd_vma *valp;
-{
- if (strcmp (*namep, "__GLOB_DATA_PTR") == 0)
- {
- /* Define __GLOB_DATA_PTR when it is encountered. This is expected to
- be a linker-defined symbol by the Aix C runtime startup code. IBM sez
- no one else should use it b/c it is undocumented. */
- struct elf_link_hash_entry *h;
-
- h = elf_link_hash_lookup (elf_hash_table (info), *namep,
- FALSE, FALSE, FALSE);
- if (h == NULL)
- {
- struct elf_backend_data *bed;
- struct elfNN_ia64_link_hash_table *ia64_info;
- struct bfd_link_hash_entry *bh = NULL;
-
- bed = get_elf_backend_data (abfd);
- ia64_info = elfNN_ia64_hash_table (info);
-
- if (!(_bfd_generic_link_add_one_symbol
- (info, abfd, *namep, BSF_GLOBAL,
- bfd_get_section_by_name (abfd, ".bss"),
- bed->got_symbol_offset, (const char *) NULL, FALSE,
- bed->collect, &bh)))
- return FALSE;
-
- h = (struct elf_link_hash_entry *) bh;
- h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
- h->type = STT_OBJECT;
-
- if (! _bfd_elf_link_record_dynamic_symbol (info, h))
- return FALSE;
- }
-
- return TRUE;
- }
- else if (sym->st_shndx == SHN_LOOS)
- {
- unsigned int i;
-
- /* SHN_AIX_SYSCALL: Treat this as any other symbol. The special symbol
- is only relevant when compiling code for extended system calls.
- Replace the "special" section with .text, if possible.
- Note that these symbols are always assumed to be in .text. */
- for (i = 1; i < elf_numsections (abfd); i++)
- {
- asection * sec = bfd_section_from_elf_index (abfd, i);
-
- if (sec && strcmp (sec->name, ".text") == 0)
- {
- *secp = sec;
- break;
- }
- }
-
- if (*secp == NULL)
- *secp = bfd_abs_section_ptr;
-
- *valp = sym->st_size;
-
- return TRUE;
- }
- else
- {
- return elfNN_ia64_add_symbol_hook (abfd, info, sym,
- namep, flagsp, secp, valp);
- }
-}
-
-bfd_boolean
-elfNN_ia64_aix_link_add_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
-{
- /* Make sure dynamic sections are always created. */
- if (! elf_hash_table (info)->dynamic_sections_created
- && abfd->xvec == info->hash->creator)
- {
- if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
- return FALSE;
- }
-
- /* Now do the standard call. */
- return bfd_elfNN_bfd_link_add_symbols (abfd, info);
-}
-
/* Return the number of additional phdrs we will need. */
static int
@@ -1626,39 +1508,16 @@ elfNN_ia64_is_local_label_name (abfd, name)
/* Should we do dynamic things to this symbol? */
static bfd_boolean
-elfNN_ia64_dynamic_symbol_p (h, info)
+elfNN_ia64_dynamic_symbol_p (h, info, r_type)
struct elf_link_hash_entry *h;
struct bfd_link_info *info;
+ int r_type;
{
- if (h == NULL)
- return FALSE;
-
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ bfd_boolean ignore_protected
+ = ((r_type & 0xf8) == 0x40 /* FPTR relocs */
+ || (r_type & 0xf8) == 0x50); /* LTOFF_FPTR relocs */
- if (h->dynindx == -1)
- return FALSE;
- switch (ELF_ST_VISIBILITY (h->other))
- {
- case STV_INTERNAL:
- case STV_HIDDEN:
- return FALSE;
- default:
- break;
- }
-
- if (h->root.type == bfd_link_hash_undefweak
- || h->root.type == bfd_link_hash_defweak)
- return TRUE;
-
- if ((info->shared && (!info->symbolic || info->allow_shlib_undefined))
- || ((h->elf_link_hash_flags
- & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))
- == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)))
- return TRUE;
-
- return FALSE;
+ return _bfd_elf_dynamic_symbol_p (h, info, ignore_protected);
}
static bfd_boolean
@@ -1730,7 +1589,7 @@ elfNN_ia64_new_elf_hash_entry (entry, table, string)
static void
elfNN_ia64_hash_copy_indirect (bed, xdir, xind)
- struct elf_backend_data *bed ATTRIBUTE_UNUSED;
+ const struct elf_backend_data *bed ATTRIBUTE_UNUSED;
struct elf_link_hash_entry *xdir, *xind;
{
struct elfNN_ia64_link_hash_entry *dir, *ind;
@@ -2048,6 +1907,10 @@ get_got (abfd, info, ia64_info)
BFD_ASSERT (got);
ia64_info->got_sec = got;
+ /* The .got section is always aligned at 8 bytes. */
+ if (!bfd_set_section_alignment (abfd, got, 3))
+ return 0;
+
flags = bfd_get_section_flags (abfd, got);
bfd_set_section_flags (abfd, got, SEC_SMALL_DATA | flags);
}
@@ -2063,7 +1926,7 @@ get_got (abfd, info, ia64_info)
static asection *
get_fptr (abfd, info, ia64_info)
bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
+ struct bfd_link_info *info;
struct elfNN_ia64_link_hash_table *ia64_info;
{
asection *fptr;
@@ -2083,7 +1946,7 @@ get_fptr (abfd, info, ia64_info)
| SEC_LOAD
| SEC_HAS_CONTENTS
| SEC_IN_MEMORY
- | SEC_READONLY
+ | (info->pie ? 0 : SEC_READONLY)
| SEC_LINKER_CREATED))
|| !bfd_set_section_alignment (abfd, fptr, 4))
{
@@ -2092,6 +1955,26 @@ get_fptr (abfd, info, ia64_info)
}
ia64_info->fptr_sec = fptr;
+
+ if (info->pie)
+ {
+ asection *fptr_rel;
+ fptr_rel = bfd_make_section(abfd, ".rela.opd");
+ if (fptr_rel == NULL
+ || !bfd_set_section_flags (abfd, fptr_rel,
+ (SEC_ALLOC | SEC_LOAD
+ | SEC_HAS_CONTENTS
+ | SEC_IN_MEMORY
+ | SEC_LINKER_CREATED
+ | SEC_READONLY))
+ || !bfd_set_section_alignment (abfd, fptr_rel, 3))
+ {
+ BFD_ASSERT (0);
+ return NULL;
+ }
+
+ ia64_info->rel_fptr_sec = fptr_rel;
+ }
}
return fptr;
@@ -2228,7 +2111,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel;
asection *got, *fptr, *srel;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -2278,11 +2161,10 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
have yet been processed. Do something with what we know, as
this may help reduce memory usage and processing time later. */
maybe_dynamic = FALSE;
- if (h && ((info->shared
- && (!info->symbolic || info->allow_shlib_undefined))
+ if (h && ((!info->executable
+ && (!info->symbolic || info->unresolved_syms_in_shared_libs == RM_IGNORE))
|| ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
- || h->root.type == bfd_link_hash_defweak
- || elfNN_ia64_aix_vec (abfd->xvec)))
+ || h->root.type == bfd_link_hash_defweak))
maybe_dynamic = TRUE;
need_entry = 0;
@@ -2339,7 +2221,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
case R_IA64_FPTR32LSB:
case R_IA64_FPTR64MSB:
case R_IA64_FPTR64LSB:
- if (info->shared || h || elfNN_ia64_aix_vec (abfd->xvec))
+ if (info->shared || h)
need_entry = NEED_FPTR | NEED_DYNREL;
else
need_entry = NEED_FPTR;
@@ -2391,10 +2273,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Shared objects will always need at least a REL relocation. */
- if (info->shared || maybe_dynamic
- || (elfNN_ia64_aix_vec (abfd->xvec)
- && (!h || strcmp (h->root.root.string,
- "__GLOB_DATA_PTR") != 0)))
+ if (info->shared || maybe_dynamic)
need_entry = NEED_DYNREL;
dynrel_type = R_IA64_DIR64LSB;
break;
@@ -2468,9 +2347,7 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
/* FPTRs for shared libraries are allocated by the dynamic
linker. Make sure this local symbol will appear in the
dynamic symbol table. */
- if (!h && (info->shared
- /* AIX also needs one */
- || elfNN_ia64_aix_vec (abfd->xvec)))
+ if (!h && info->shared)
{
if (! (_bfd_elfNN_link_record_local_dynamic_symbol
(info, abfd, (long) r_symndx)))
@@ -2520,10 +2397,7 @@ allocate_global_data_got (dyn_i, data)
if ((dyn_i->want_got || dyn_i->want_gotx)
&& ! dyn_i->want_fptr
- && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
- || (elfNN_ia64_aix_vec (x->info->hash->creator)
- && (!dyn_i->h || strcmp (dyn_i->h->root.root.string,
- "__GLOB_DATA_PTR") != 0))))
+ && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
@@ -2535,7 +2409,7 @@ allocate_global_data_got (dyn_i, data)
}
if (dyn_i->want_dtpmod)
{
- if (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info))
+ if (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0))
{
dyn_i->dtpmod_offset = x->ofs;
x->ofs += 8;
@@ -2572,8 +2446,7 @@ allocate_global_fptr_got (dyn_i, data)
if (dyn_i->want_got
&& dyn_i->want_fptr
- && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
- || elfNN_ia64_aix_vec (x->info->hash->creator)))
+ && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, R_IA64_FPTR64LSB))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
@@ -2591,8 +2464,7 @@ allocate_local_got (dyn_i, data)
struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data;
if ((dyn_i->want_got || dyn_i->want_gotx)
- && ! (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
- || elfNN_ia64_aix_vec (x->info->hash->creator)))
+ && !elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
@@ -2638,15 +2510,10 @@ allocate_fptr (dyn_i, data)
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
- if ((x->info->shared
- && (!h
- || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
- || h->root.type != bfd_link_hash_undefweak))
- /* AIX needs an FPTR in this case. */
- || (elfNN_ia64_aix_vec (x->info->hash->creator)
- && (!h
- || h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)))
+ if (!x->info->executable
+ && (!h
+ || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+ || h->root.type != bfd_link_hash_undefweak))
{
if (h && h->dynindx == -1)
{
@@ -2691,7 +2558,7 @@ allocate_plt_entries (dyn_i, data)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
/* ??? Versioned symbols seem to lose ELF_LINK_HASH_NEEDS_PLT. */
- if (elfNN_ia64_dynamic_symbol_p (h, x->info))
+ if (elfNN_ia64_dynamic_symbol_p (h, x->info, 0))
{
bfd_size_type offset = x->ofs;
if (offset == 0)
@@ -2769,11 +2636,10 @@ allocate_dynrel_entries (dyn_i, data)
bfd_boolean dynamic_symbol, shared, resolved_zero;
ia64_info = elfNN_ia64_hash_table (x->info);
- dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
- || (elfNN_ia64_aix_vec (x->info->hash->creator)
- /* Don't allocate an entry for __GLOB_DATA_PTR */
- && (!dyn_i->h || strcmp (dyn_i->h->root.root.string,
- "__GLOB_DATA_PTR") != 0));
+
+ /* Note that this can't be used in relation to FPTR relocs below. */
+ dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info, 0);
+
shared = x->info->shared;
resolved_zero = (dyn_i->h
&& ELF_ST_VISIBILITY (dyn_i->h->other)
@@ -2788,10 +2654,11 @@ allocate_dynrel_entries (dyn_i, data)
switch (rent->type)
{
case R_IA64_FPTR64LSB:
- /* Allocate one iff !want_fptr, which by this point will
- be true only if we're actually allocating one statically
- in the main executable. */
- if (dyn_i->want_fptr)
+ /* Allocate one iff !want_fptr and not PIE, which by this point
+ will be true only if we're actually allocating one statically
+ in the main executable. Position independent executables
+ need a relative reloc. */
+ if (dyn_i->want_fptr && !x->info->pie)
continue;
break;
case R_IA64_PCREL64LSB:
@@ -2828,13 +2695,24 @@ allocate_dynrel_entries (dyn_i, data)
|| (dyn_i->want_ltoff_fptr
&& dyn_i->h
&& dyn_i->h->dynindx != -1))
- ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela);
+ {
+ if (!dyn_i->want_ltoff_fptr
+ || !x->info->pie
+ || dyn_i->h == NULL
+ || dyn_i->h->root.type != bfd_link_hash_undefweak)
+ ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela);
+ }
if ((dynamic_symbol || shared) && dyn_i->want_tprel)
ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela);
if (dynamic_symbol && dyn_i->want_dtpmod)
ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela);
if (dynamic_symbol && dyn_i->want_dtprel)
ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela);
+ if (ia64_info->rel_fptr_sec && dyn_i->want_fptr)
+ {
+ if (dyn_i->h == NULL || dyn_i->h->root.type != bfd_link_hash_undefweak)
+ ia64_info->rel_fptr_sec->_raw_size += sizeof (ElfNN_External_Rela);
+ }
if (!resolved_zero && dyn_i->want_pltoff)
{
@@ -2886,7 +2764,7 @@ elfNN_ia64_adjust_dynamic_symbol (info, h)
static bfd_boolean
elfNN_ia64_size_dynamic_sections (output_bfd, info)
- bfd *output_bfd;
+ bfd *output_bfd ATTRIBUTE_UNUSED;
struct bfd_link_info *info;
{
struct elfNN_ia64_allocate_data data;
@@ -2907,8 +2785,8 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info)
{
sec = bfd_get_section_by_name (dynobj, ".interp");
BFD_ASSERT (sec != NULL);
- sec->contents = (bfd_byte *) DYNAMIC_INTERPRETER (output_bfd);
- sec->_raw_size = strlen (DYNAMIC_INTERPRETER (output_bfd)) + 1;
+ sec->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
+ sec->_raw_size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
}
/* Allocate the GOT entries. */
@@ -3444,14 +3322,17 @@ set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type)
bfd_put_64 (abfd, value, got_sec->contents + got_offset);
/* Install a dynamic relocation if needed. */
- if ((info->shared
- && (!dyn_i->h
- || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
- || dyn_i->h->root.type != bfd_link_hash_undefweak)
- && dyn_r_type != R_IA64_DTPREL64LSB)
- || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info)
- || elfNN_ia64_aix_vec (abfd->xvec)
- || (dynindx != -1 && dyn_r_type == R_IA64_FPTR64LSB))
+ if (((info->shared
+ && (!dyn_i->h
+ || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
+ || dyn_i->h->root.type != bfd_link_hash_undefweak)
+ && dyn_r_type != R_IA64_DTPREL64LSB)
+ || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info, dyn_r_type)
+ || (dynindx != -1 && dyn_r_type == R_IA64_FPTR64LSB))
+ && (!dyn_i->want_ltoff_fptr
+ || !info->pie
+ || !dyn_i->h
+ || dyn_i->h->root.type != bfd_link_hash_undefweak))
{
if (dynindx == -1
&& dyn_r_type != R_IA64_TPREL64LSB
@@ -3530,6 +3411,24 @@ set_fptr_entry (abfd, info, dyn_i, value)
bfd_put_64 (abfd, value, fptr_sec->contents + dyn_i->fptr_offset);
bfd_put_64 (abfd, _bfd_get_gp_value (abfd),
fptr_sec->contents + dyn_i->fptr_offset + 8);
+ if (ia64_info->rel_fptr_sec)
+ {
+ Elf_Internal_Rela outrel;
+ bfd_byte *loc;
+
+ if (bfd_little_endian (abfd))
+ outrel.r_info = ELFNN_R_INFO (0, R_IA64_IPLTLSB);
+ else
+ outrel.r_info = ELFNN_R_INFO (0, R_IA64_IPLTMSB);
+ outrel.r_addend = value;
+ outrel.r_offset = (fptr_sec->output_section->vma
+ + fptr_sec->output_offset
+ + dyn_i->fptr_offset);
+ loc = ia64_info->rel_fptr_sec->contents;
+ loc += ia64_info->rel_fptr_sec->reloc_count++
+ * sizeof (ElfNN_External_Rela);
+ bfd_elfNN_swap_reloca_out (abfd, &outrel, loc);
+ }
}
/* Return the descriptor's address. */
@@ -3779,7 +3678,7 @@ elfNN_ia64_final_link (abfd, info)
ia64_info = elfNN_ia64_hash_table (info);
/* Make sure we've got ourselves a nice fat __gp value. */
- if (!info->relocateable)
+ if (!info->relocatable)
{
bfd_vma gp_val = _bfd_get_gp_value (abfd);
struct elf_link_hash_entry *gp;
@@ -3805,7 +3704,7 @@ elfNN_ia64_final_link (abfd, info)
of the .IA_64.unwind section. Force this section to be relocated
into memory rather than written immediately to the output file. */
unwind_output_sec = NULL;
- if (!info->relocateable)
+ if (!info->relocatable)
{
asection *s = bfd_get_section_by_name (abfd, ELF_STRING_ia64_unwind);
if (s)
@@ -3863,7 +3762,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
ia64_info = elfNN_ia64_hash_table (info);
/* Infect various flags from the input section to the output section. */
- if (info->relocateable)
+ if (info->relocatable)
{
bfd_vma flags;
@@ -3893,7 +3792,6 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
asection *sym_sec;
bfd_byte *hit_addr;
bfd_boolean dynamic_symbol_p;
- bfd_boolean local_symbol_p;
bfd_boolean undef_weak_ref;
r_type = ELFNN_R_TYPE (rel->r_info);
@@ -3954,62 +3852,24 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
}
else
{
- long indx;
-
- /* Reloc against global symbol. */
- indx = r_symndx - symtab_hdr->sh_info;
- h = elf_sym_hashes (input_bfd)[indx];
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- value = 0;
- if (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak)
- {
- sym_sec = h->root.u.def.section;
+ bfd_boolean unresolved_reloc;
+ bfd_boolean warned;
- /* Detect the cases that sym_sec->output_section is
- expected to be NULL -- all cases in which the symbol
- is defined in another shared module. This includes
- PLT relocs for which we've created a PLT entry and
- other relocs for which we're prepared to create
- dynamic relocations. */
- /* ??? Just accept it NULL and continue. */
+ RELOC_FOR_GLOBAL_SYMBOL (h, elf_sym_hashes (input_bfd),
+ r_symndx,
+ symtab_hdr, value, sym_sec,
+ unresolved_reloc, info,
+ warned);
- if (sym_sec->output_section != NULL)
- {
- value = (h->root.u.def.value
- + sym_sec->output_section->vma
- + sym_sec->output_offset);
- }
- }
- else if (h->root.type == bfd_link_hash_undefweak)
+ if (h->root.type == bfd_link_hash_undefweak)
undef_weak_ref = TRUE;
- else if (info->shared
- && !info->no_undefined
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- ;
- else
- {
- if (! ((*info->callbacks->undefined_symbol)
- (info, h->root.root.string, input_bfd,
- input_section, rel->r_offset,
- (!info->shared || info->no_undefined
- || ELF_ST_VISIBILITY (h->other)))))
- return FALSE;
- continue;
- }
+ else if (warned)
+ continue;
}
hit_addr = contents + rel->r_offset;
value += rel->r_addend;
- dynamic_symbol_p = elfNN_ia64_dynamic_symbol_p (h, info);
- /* Is this symbol locally defined? A protected symbol is locallly
- defined. But its function descriptor may not. Use it with
- caution. */
- local_symbol_p = (! dynamic_symbol_p
- || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT);
+ dynamic_symbol_p = elfNN_ia64_dynamic_symbol_p (h, info, r_type);
switch (r_type)
{
@@ -4025,11 +3885,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Install a dynamic relocation for this reloc. */
- if ((dynamic_symbol_p || info->shared
- || (elfNN_ia64_aix_vec (info->hash->creator)
- /* Don't emit relocs for __GLOB_DATA_PTR on AIX. */
- && (!h || strcmp (h->root.root.string,
- "__GLOB_DATA_PTR") != 0)))
+ if ((dynamic_symbol_p || info->shared)
&& r_symndx != 0
&& (input_section->flags & SEC_ALLOC) != 0)
{
@@ -4042,7 +3898,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
/* If we don't need dynamic symbol lookup, find a
matching RELATIVE relocation. */
dyn_r_type = r_type;
- if (! local_symbol_p)
+ if (dynamic_symbol_p)
{
dynindx = h->dynindx;
addend = rel->r_addend;
@@ -4082,8 +3938,6 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
addend = value;
}
- if (elfNN_ia64_aix_vec (info->hash->creator))
- rel->r_addend = value;
elfNN_ia64_install_dyn_reloc (output_bfd, info, input_section,
srel, rel->r_offset, dyn_r_type,
dynindx, addend);
@@ -4146,14 +4000,36 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
if (!undef_weak_ref)
value = set_fptr_entry (output_bfd, info, dyn_i, value);
}
- else
+ if (!dyn_i->want_fptr || info->pie)
{
long dynindx;
+ unsigned int dyn_r_type = r_type;
+ bfd_vma addend = rel->r_addend;
/* Otherwise, we expect the dynamic linker to create
the entry. */
- if (h)
+ if (dyn_i->want_fptr)
+ {
+ if (r_type == R_IA64_FPTR64I)
+ {
+ /* We can't represent this without a dynamic symbol.
+ Adjust the relocation to be against an output
+ section symbol, which are always present in the
+ dynamic symbol table. */
+ /* ??? People shouldn't be doing non-pic code in
+ shared libraries. Hork. */
+ (*_bfd_error_handler)
+ (_("%s: linking non-pic code in a position independent executable"),
+ bfd_archive_filename (input_bfd));
+ ret_val = FALSE;
+ continue;
+ }
+ dynindx = 0;
+ addend = value;
+ dyn_r_type = r_type + R_IA64_REL64LSB - R_IA64_FPTR64LSB;
+ }
+ else if (h)
{
if (h->dynindx != -1)
dynindx = h->dynindx;
@@ -4161,17 +4037,18 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
dynindx = (_bfd_elf_link_lookup_local_dynindx
(info, h->root.u.def.section->owner,
global_sym_index (h)));
+ value = 0;
}
else
{
dynindx = (_bfd_elf_link_lookup_local_dynindx
(info, input_bfd, (long) r_symndx));
+ value = 0;
}
elfNN_ia64_install_dyn_reloc (output_bfd, info, input_section,
- srel, rel->r_offset, r_type,
- dynindx, rel->r_addend);
- value = 0;
+ srel, rel->r_offset, dyn_r_type,
+ dynindx, addend);
}
r = elfNN_ia64_install_value (output_bfd, hit_addr, value, r_type);
@@ -4225,9 +4102,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
case R_IA64_PCREL64MSB:
case R_IA64_PCREL64LSB:
/* Install a dynamic relocation for this reloc. */
- if ((dynamic_symbol_p
- || elfNN_ia64_aix_vec (info->hash->creator))
- && r_symndx != 0)
+ if (dynamic_symbol_p && r_symndx != 0)
{
BFD_ASSERT (srel != NULL);
@@ -4371,7 +4246,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
/* If we don't need dynamic symbol lookup, install two
RELATIVE relocations. */
- if (local_symbol_p)
+ if (!dynamic_symbol_p)
{
unsigned int dyn_r_type;
@@ -4619,7 +4494,7 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
loc = ia64_info->rel_pltoff_sec->contents;
loc += ((ia64_info->rel_pltoff_sec->reloc_count + index)
- * sizeof (Elf64_External_Rela));
+ * sizeof (ElfNN_External_Rela));
bfd_elfNN_swap_reloca_out (output_bfd, &outrel, loc);
}
@@ -4869,6 +4744,16 @@ elfNN_ia64_reloc_type_class (rela)
}
}
+static struct bfd_elf_special_section const elfNN_ia64_special_sections[]=
+{
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
static bfd_boolean
elfNN_ia64_hpux_vec (const bfd_target *vec)
{
@@ -4976,27 +4861,7 @@ elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
#define elf_backend_hide_symbol elfNN_ia64_hash_hide_symbol
#define elf_backend_reloc_type_class elfNN_ia64_reloc_type_class
#define elf_backend_rela_normal 1
-
-#include "elfNN-target.h"
-
-/* AIX-specific vectors. */
-
-#undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM bfd_elfNN_ia64_aix_little_vec
-#undef TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME "elfNN-ia64-aix-little"
-#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM bfd_elfNN_ia64_aix_big_vec
-#undef TARGET_BIG_NAME
-#define TARGET_BIG_NAME "elfNN-ia64-aix-big"
-
-#undef elf_backend_add_symbol_hook
-#define elf_backend_add_symbol_hook elfNN_ia64_aix_add_symbol_hook
-
-#undef bfd_elfNN_bfd_link_add_symbols
-#define bfd_elfNN_bfd_link_add_symbols elfNN_ia64_aix_link_add_symbols
-
-#define elfNN_bed elfNN_ia64_aix_bed
+#define elf_backend_special_sections elfNN_ia64_special_sections
#include "elfNN-target.h"
@@ -5009,14 +4874,6 @@ elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elfNN-ia64-hpux-big"
-/* We need to undo the AIX specific functions. */
-
-#undef elf_backend_add_symbol_hook
-#define elf_backend_add_symbol_hook elfNN_ia64_add_symbol_hook
-
-#undef bfd_elfNN_bfd_link_add_symbols
-#define bfd_elfNN_bfd_link_add_symbols _bfd_generic_link_add_symbols
-
/* These are HP-UX specific functions. */
#undef elf_backend_post_process_headers
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index dbbfb31..919593d 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -188,10 +188,6 @@ struct mips_elf_link_hash_entry
a readonly section. */
bfd_boolean readonly_reloc;
- /* The index of the first dynamic relocation (in the .rel.dyn
- section) against this symbol. */
- unsigned int min_dyn_reloc_index;
-
/* We must not create a stub for a symbol that has relocations
related to taking the function's address, i.e. any but
R_MIPS_CALL*16 ones -- see "MIPS ABI Supplement, 3rd Edition",
@@ -390,12 +386,6 @@ static void bfd_elf32_swap_compact_rel_out
PARAMS ((bfd *, const Elf32_compact_rel *, Elf32_External_compact_rel *));
static void bfd_elf32_swap_crinfo_out
PARAMS ((bfd *, const Elf32_crinfo *, Elf32_External_crinfo *));
-#if 0
-static void bfd_mips_elf_swap_msym_in
- PARAMS ((bfd *, const Elf32_External_Msym *, Elf32_Internal_Msym *));
-#endif
-static void bfd_mips_elf_swap_msym_out
- PARAMS ((bfd *, const Elf32_Internal_Msym *, Elf32_External_Msym *));
static int sort_dynamic_relocs
PARAMS ((const void *, const void *));
static int sort_dynamic_relocs_64
@@ -442,8 +432,6 @@ static bfd_boolean mips_elf_create_compact_rel_section
PARAMS ((bfd *, struct bfd_link_info *));
static bfd_boolean mips_elf_create_got_section
PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean));
-static asection *mips_elf_create_msym_section
- PARAMS ((bfd *));
static bfd_reloc_status_type mips_elf_calculate_relocation
PARAMS ((bfd *, bfd *, asection *, struct bfd_link_info *,
const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *,
@@ -730,7 +718,6 @@ mips_elf_link_hash_newfunc (entry, table, string)
ret->esym.ifd = -2;
ret->possibly_dynamic_relocs = 0;
ret->readonly_reloc = FALSE;
- ret->min_dyn_reloc_index = 0;
ret->no_fn_stub = FALSE;
ret->fn_stub = NULL;
ret->need_fn_stub = FALSE;
@@ -1080,12 +1067,12 @@ mips_elf_check_mips16_stubs (h, data)
bfd_reloc_status_type
_bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section,
- relocateable, data, gp)
+ relocatable, data, gp)
bfd *abfd;
asymbol *symbol;
arelent *reloc_entry;
asection *input_section;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
PTR data;
bfd_vma gp;
{
@@ -1116,9 +1103,9 @@ _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section,
_bfd_mips_elf_sign_extend(val, 16);
/* Adjust val for the final section location and GP value. If we
- are producing relocateable output, we don't want to do this for
+ are producing relocatable output, we don't want to do this for
an external symbol. */
- if (! relocateable
+ if (! relocatable
|| (symbol->flags & BSF_SECTION_SYM) != 0)
val += relocation - gp;
@@ -1131,7 +1118,7 @@ _bfd_mips_elf_gprel16_with_gp (abfd, symbol, reloc_entry, input_section,
else
reloc_entry->addend = val;
- if (relocateable)
+ if (relocatable)
reloc_entry->address += input_section->output_offset;
else if (((val & ~0xffff) != ~0xffff) && ((val & ~0xffff) != 0))
return bfd_reloc_overflow;
@@ -1192,31 +1179,6 @@ bfd_elf32_swap_crinfo_out (abfd, in, ex)
H_PUT_32 (abfd, in->konst, ex->konst);
H_PUT_32 (abfd, in->vaddr, ex->vaddr);
}
-
-#if 0
-/* Swap in an MSYM entry. */
-
-static void
-bfd_mips_elf_swap_msym_in (abfd, ex, in)
- bfd *abfd;
- const Elf32_External_Msym *ex;
- Elf32_Internal_Msym *in;
-{
- in->ms_hash_value = H_GET_32 (abfd, ex->ms_hash_value);
- in->ms_info = H_GET_32 (abfd, ex->ms_info);
-}
-#endif
-/* Swap out an MSYM entry. */
-
-static void
-bfd_mips_elf_swap_msym_out (abfd, in, ex)
- bfd *abfd;
- const Elf32_Internal_Msym *in;
- Elf32_External_Msym *ex;
-{
- H_PUT_32 (abfd, in->ms_hash_value, ex->ms_hash_value);
- H_PUT_32 (abfd, in->ms_info, ex->ms_info);
-}
/* A .reginfo section holds a single Elf32_RegInfo structure. These
routines swap this structure in and out. They are used outside of
@@ -2870,10 +2832,12 @@ mips_elf_create_got_section (abfd, info, maybe_exclude)
if (maybe_exclude)
flags |= SEC_EXCLUDE;
+ /* We have to use an alignment of 2**4 here because this is hardcoded
+ in the function stub generation and in the linker script. */
s = bfd_make_section (abfd, ".got");
if (s == NULL
|| ! bfd_set_section_flags (abfd, s, flags)
- || ! bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)))
+ || ! bfd_set_section_alignment (abfd, s, 4))
return FALSE;
/* Define the symbol _GLOBAL_OFFSET_TABLE_. We don't do this in the
@@ -2915,34 +2879,6 @@ mips_elf_create_got_section (abfd, info, maybe_exclude)
return TRUE;
}
-
-/* Returns the .msym section for ABFD, creating it if it does not
- already exist. Returns NULL to indicate error. */
-
-static asection *
-mips_elf_create_msym_section (abfd)
- bfd *abfd;
-{
- asection *s;
-
- s = bfd_get_section_by_name (abfd, ".msym");
- if (!s)
- {
- s = bfd_make_section (abfd, ".msym");
- if (!s
- || !bfd_set_section_flags (abfd, s,
- SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS
- | SEC_LINKER_CREATED
- | SEC_READONLY)
- || !bfd_set_section_alignment (abfd, s,
- MIPS_ELF_LOG_FILE_ALIGN (abfd)))
- return NULL;
- }
-
- return s;
-}
/* Calculate the value produced by the RELOCATION (which comes from
the INPUT_BFD). The ADDEND is the addend to use for this
@@ -3072,6 +3008,8 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
}
else
{
+ /* ??? Could we use RELOC_FOR_GLOBAL_SYMBOL here ? */
+
/* For global symbols we look up the symbol in the hash-table. */
h = ((struct mips_elf_link_hash_entry *)
elf_sym_hashes (input_bfd) [r_symndx - extsymoff]);
@@ -3085,7 +3023,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
/* See if this is the special _gp_disp symbol. Note that such a
symbol must always be a global symbol. */
- if (strcmp (h->root.root.root.string, "_gp_disp") == 0
+ if (strcmp (*namep, "_gp_disp") == 0
&& ! NEWABI_P (input_bfd))
{
/* Relocations against _gp_disp are permitted only with
@@ -3118,11 +3056,11 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
addresses. */
symbol = 0;
else if (info->shared
- && !info->no_undefined
+ && info->unresolved_syms_in_objects == RM_IGNORE
&& ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
symbol = 0;
- else if (strcmp (h->root.root.root.string, "_DYNAMIC_LINK") == 0 ||
- strcmp (h->root.root.root.string, "_DYNAMIC_LINKING") == 0)
+ else if (strcmp (*namep, "_DYNAMIC_LINK") == 0 ||
+ strcmp (*namep, "_DYNAMIC_LINKING") == 0)
{
/* If this is a dynamic link, we should have created a
_DYNAMIC_LINK symbol or _DYNAMIC_LINKING(for normal mips) symbol
@@ -3139,7 +3077,8 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.root.string, input_bfd,
input_section, relocation->r_offset,
- (!info->shared || info->no_undefined
+ ((info->shared && info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR)
+ || (!info->shared && info->unresolved_syms_in_objects == RM_GENERATE_ERROR)
|| ELF_ST_VISIBILITY (h->root.other)))))
return bfd_reloc_undefined;
symbol = 0;
@@ -3151,7 +3090,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
/* If this is a 32- or 64-bit call to a 16-bit function with a stub, we
need to redirect the call to the stub, unless we're already *in*
a stub. */
- if (r_type != R_MIPS16_26 && !info->relocateable
+ if (r_type != R_MIPS16_26 && !info->relocatable
&& ((h != NULL && h->fn_stub != NULL)
|| (local_p && elf_tdata (input_bfd)->local_stubs != NULL
&& elf_tdata (input_bfd)->local_stubs[r_symndx] != NULL))
@@ -3172,7 +3111,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
}
/* If this is a 16-bit call to a 32- or 64-bit function with a stub, we
need to redirect the call to the stub. */
- else if (r_type == R_MIPS16_26 && !info->relocateable
+ else if (r_type == R_MIPS16_26 && !info->relocatable
&& h != NULL
&& (h->call_stub != NULL || h->call_fp_stub != NULL)
&& !target_is_16_bit_code_p)
@@ -3208,7 +3147,7 @@ mips_elf_calculate_relocation (abfd, input_bfd, input_section, info,
/* Calls from 16-bit code to 32-bit code and vice versa require the
special jalx instruction. */
- *require_jalxp = (!info->relocateable
+ *require_jalxp = (!info->relocatable
&& (((r_type == R_MIPS16_26) && !target_is_16_bit_code_p)
|| ((r_type == R_MIPS_26) && target_is_16_bit_code_p)));
@@ -3650,7 +3589,7 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
JALX is the 5-bit value 00011. X is 0 for jal, 1 for jalx.
Note that the immediate value in the first word is swapped.
- When producing a relocateable object file, R_MIPS16_26 is
+ When producing a relocatable object file, R_MIPS16_26 is
handled mostly like R_MIPS_26. In particular, the addend is
stored as a straight 26-bit value in a 32-bit instruction.
(gas makes life simpler for itself by never adjusting a
@@ -3688,13 +3627,13 @@ mips_elf_perform_relocation (info, howto, relocation, value, input_bfd,
where targ26-16 is sub1 followed by sub2 (i.e., the addend field A is
((sub1 << 16) | sub2)).
- When producing a relocateable object file, the calculation is
+ When producing a relocatable object file, the calculation is
(((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2)
When producing a fully linked file, the calculation is
let R = (((A < 2) | ((P + 4) & 0xf0000000) + S) >> 2)
((R & 0x1f0000) << 5) | ((R & 0x3e00000) >> 5) | (R & 0xffff) */
- if (!info->relocateable)
+ if (!info->relocatable)
/* Shuffle the bits according to the formula above. */
value = (((value & 0x1f0000) << 5)
| ((value & 0x3e00000) >> 5)
@@ -3873,9 +3812,17 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
}
#endif
- if (outrel[0].r_offset == (bfd_vma) -1
- || outrel[0].r_offset == (bfd_vma) -2)
+ if (outrel[0].r_offset == (bfd_vma) -1)
+ /* The relocation field has been deleted. */
skip = TRUE;
+ else if (outrel[0].r_offset == (bfd_vma) -2)
+ {
+ /* The relocation field has been converted into a relative value of
+ some sort. Functions like _bfd_elf_write_section_eh_frame expect
+ the field to be fully relocated, so add in the symbol's value. */
+ skip = TRUE;
+ *addendp += symbol;
+ }
/* If we've decided to skip this relocation, just output an empty
record. Note that R_MIPS_NONE == 0, so that this call to memset
@@ -3885,18 +3832,27 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
else
{
long indx;
+ bfd_boolean defined_p;
/* We must now calculate the dynamic symbol table index to use
in the relocation. */
if (h != NULL
&& (! info->symbolic || (h->root.elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0))
- {
- indx = h->root.dynindx;
+ & ELF_LINK_HASH_DEF_REGULAR) == 0)
/* h->root.dynindx may be -1 if this symbol was marked to
become local. */
- if (indx == -1)
- indx = 0;
+ && h->root.dynindx != -1)
+ {
+ indx = h->root.dynindx;
+ if (SGI_COMPAT (output_bfd))
+ defined_p = ((h->root.elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_REGULAR) != 0);
+ else
+ /* ??? glibc's ld.so just adds the final GOT entry to the
+ relocation field. It therefore treats relocs against
+ defined symbols in the same way as relocs against
+ undefined symbols. */
+ defined_p = FALSE;
}
else
{
@@ -3925,14 +3881,20 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
section-relative relocations. It's not like they're
useful, after all. This should be a bit more efficient
as well. */
- indx = 0;
+ /* ??? Although this behavior is compatible with glibc's ld.so,
+ the ABI says that relocations against STN_UNDEF should have
+ a symbol value of 0. Irix rld honors this, so relocations
+ against STN_UNDEF have no effect. */
+ if (!SGI_COMPAT (output_bfd))
+ indx = 0;
+ defined_p = TRUE;
}
/* If the relocation was previously an absolute relocation and
this symbol will not be referred to by the relocation, we must
adjust it by the value we give it in the dynamic symbol table.
Otherwise leave the job up to the dynamic linker. */
- if (!indx && r_type != R_MIPS_REL32)
+ if (defined_p && r_type != R_MIPS_REL32)
*addendp += symbol;
/* The relocation is always an REL32 relocation because we don't
@@ -3983,13 +3945,6 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
(output_bfd, &outrel[0],
(sreloc->contents + sreloc->reloc_count * sizeof (Elf32_External_Rel)));
- /* Record the index of the first relocation referencing H. This
- information is later emitted in the .msym section. */
- if (h != NULL
- && (h->min_dyn_reloc_index == 0
- || sreloc->reloc_count < h->min_dyn_reloc_index))
- h->min_dyn_reloc_index = sreloc->reloc_count;
-
/* We've now added another relocation. */
++sreloc->reloc_count;
@@ -4639,30 +4594,11 @@ _bfd_mips_elf_fake_sections (abfd, hdr, sec)
hdr->sh_entsize = 8;
}
- /* The generic elf_fake_sections will set up REL_HDR using the
- default kind of relocations. But, we may actually need both
- kinds of relocations, so we set up the second header here.
-
- This is not necessary for the O32 ABI since that only uses Elf32_Rel
- relocations (cf. System V ABI, MIPS RISC Processor Supplement,
- 3rd Edition, p. 4-17). It breaks the IRIX 5/6 32-bit ld, since one
- of the resulting empty .rela.<section> sections starts with
- sh_offset == object size, and ld doesn't allow that. While the check
- is arguably bogus for empty or SHT_NOBITS sections, it can easily be
- avoided by not emitting those useless sections in the first place. */
- if (! SGI_COMPAT (abfd) && ! NEWABI_P(abfd)
- && (sec->flags & SEC_RELOC) != 0)
- {
- struct bfd_elf_section_data *esd;
- bfd_size_type amt = sizeof (Elf_Internal_Shdr);
-
- esd = elf_section_data (sec);
- BFD_ASSERT (esd->rel_hdr2 == NULL);
- esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt);
- if (!esd->rel_hdr2)
- return FALSE;
- _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec, !sec->use_rela_p);
- }
+ /* The generic elf_fake_sections will set up REL_HDR using the default
+ kind of relocations. We used to set up a second header for the
+ non-default kind of relocations here, but only NewABI would use
+ these, and the IRIX ld doesn't like resulting empty RELA sections.
+ Thus we create those header only on demand now. */
return TRUE;
}
@@ -4909,13 +4845,6 @@ _bfd_mips_elf_create_dynamic_sections (abfd, info)
if (! mips_elf_rel_dyn_section (elf_hash_table (info)->dynobj, TRUE))
return FALSE;
- /* Create the .msym section on IRIX6. It is used by the dynamic
- linker to speed up dynamic relocations, and to avoid computing
- the ELF hash for symbols. */
- if (IRIX_COMPAT (abfd) == ict_irix6
- && !mips_elf_create_msym_section (abfd))
- return FALSE;
-
/* Create .stub section. */
if (bfd_get_section_by_name (abfd,
MIPS_ELF_STUB_SECTION_NAME (abfd)) == NULL)
@@ -5059,9 +4988,9 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
const Elf_Internal_Rela *rel_end;
asection *sgot;
asection *sreloc;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
dynobj = elf_hash_table (info)->dynobj;
@@ -5512,6 +5441,7 @@ _bfd_mips_elf_check_relocs (abfd, info, sec, relocs)
case R_MIPS_CALL16:
case R_MIPS_CALL_HI16:
case R_MIPS_CALL_LO16:
+ case R_MIPS_JALR:
break;
}
@@ -5557,7 +5487,7 @@ _bfd_mips_relax_section (abfd, sec, link_info, again)
/* We are not currently changing any sizes, so only one pass. */
*again = FALSE;
- if (link_info->relocateable)
+ if (link_info->relocatable)
return TRUE;
internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, (PTR) NULL,
@@ -5748,7 +5678,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (info, h)
any R_MIPS_32 or R_MIPS_REL32 relocs against it into the output
file. */
hmips = (struct mips_elf_link_hash_entry *) h;
- if (! info->relocateable
+ if (! info->relocatable
&& hmips->possibly_dynamic_relocs != 0
&& (h->root.type == bfd_link_hash_defweak
|| (h->elf_link_hash_flags
@@ -5846,7 +5776,7 @@ _bfd_mips_elf_always_size_sections (output_bfd, info)
bfd_set_section_size (output_bfd, ri,
(bfd_size_type) sizeof (Elf32_External_RegInfo));
- if (! (info->relocateable
+ if (! (info->relocatable
|| ! mips_elf_hash_table (info)->mips16_stubs_seen))
mips_elf_link_hash_traverse (mips_elf_hash_table (info),
mips_elf_check_mips16_stubs,
@@ -6077,10 +6007,6 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
else if (SGI_COMPAT (output_bfd)
&& strncmp (name, ".compact_rel", 12) == 0)
s->_raw_size += mips_elf_hash_table (info)->compact_rel_size;
- else if (strcmp (name, ".msym") == 0)
- s->_raw_size = (sizeof (Elf32_External_Msym)
- * (elf_hash_table (info)->dynsymcount
- + bfd_count_sections (output_bfd)));
else if (strncmp (name, ".init", 5) != 0)
{
/* It's not one of our sections, so don't allocate space. */
@@ -6225,10 +6151,6 @@ _bfd_mips_elf_size_dynamic_sections (output_bfd, info)
(dynobj, MIPS_ELF_OPTIONS_SECTION_NAME (dynobj)))
&& !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_OPTIONS, 0))
return FALSE;
-
- if (bfd_get_section_by_name (dynobj, ".msym")
- && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_MSYM, 0))
- return FALSE;
}
return TRUE;
@@ -6252,7 +6174,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
const Elf_Internal_Rela *relend;
bfd_vma addend = 0;
bfd_boolean use_saved_addend_p = FALSE;
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
bed = get_elf_backend_data (output_bfd);
relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
@@ -6384,7 +6306,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
addend = rel->r_addend;
}
- if (info->relocateable)
+ if (info->relocatable)
{
Elf_Internal_Sym *sym;
unsigned long r_symndx;
@@ -6398,7 +6320,7 @@ _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
they're against a section symbol, in which case we need
to adjust by the section offset, or unless they're GP
relative in which case we need to adjust by the amount
- that we're adjusting GP in this relocateable object. */
+ that we're adjusting GP in this relocatable object. */
if (! mips_elf_local_relocation_p (input_bfd, rel, local_sections,
FALSE))
@@ -6661,6 +6583,7 @@ mips_elf_irix6_finish_dynamic_symbol (abfd, name, sym)
/* All of these symbols are given type STT_SECTION by the
IRIX6 linker. */
sym->st_info = ELF_ST_INFO (STB_GLOBAL, STT_SECTION);
+ sym->st_other = STO_PROTECTED;
/* The IRIX linker puts these symbols in special sections. */
if (i == 0)
@@ -6685,14 +6608,11 @@ _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
bfd *dynobj;
bfd_vma gval;
asection *sgot;
- asection *smsym;
struct mips_got_info *g, *gg;
const char *name;
- struct mips_elf_link_hash_entry *mh;
dynobj = elf_hash_table (info)->dynobj;
gval = sym->st_value;
- mh = (struct mips_elf_link_hash_entry *) h;
if (h->plt.offset != (bfd_vma) -1)
{
@@ -6748,22 +6668,7 @@ _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
bfd_vma offset;
bfd_vma value;
- if (sym->st_value)
- value = sym->st_value;
- else
- {
- /* For an entity defined in a shared object, this will be
- NULL. (For functions in shared objects for
- which we have created stubs, ST_VALUE will be non-NULL.
- That's because such the functions are now no longer defined
- in a shared object.) */
-
- if ((info->shared && h->root.type == bfd_link_hash_undefined)
- || h->root.type == bfd_link_hash_undefweak)
- value = 0;
- else
- value = h->root.u.def.value;
- }
+ value = sym->st_value;
offset = mips_elf_global_got_index (dynobj, output_bfd, h);
MIPS_ELF_PUT_WORD (output_bfd, value, sgot->contents + offset);
}
@@ -6821,21 +6726,6 @@ _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
}
}
- /* Create a .msym entry, if appropriate. */
- smsym = bfd_get_section_by_name (dynobj, ".msym");
- if (smsym)
- {
- Elf32_Internal_Msym msym;
-
- msym.ms_hash_value = bfd_elf_hash (h->root.root.string);
- /* It is undocumented what the `1' indicates, but IRIX6 uses
- this value. */
- msym.ms_info = ELF32_MS_INFO (mh->min_dyn_reloc_index, 1);
- bfd_mips_elf_swap_msym_out
- (dynobj, &msym,
- ((Elf32_External_Msym *) smsym->contents) + h->dynindx);
- }
-
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
name = h->root.root.string;
if (strcmp (name, "_DYNAMIC") == 0
@@ -7158,33 +7048,9 @@ _bfd_mips_elf_finish_dynamic_sections (output_bfd, info)
}
{
- asection *smsym;
asection *s;
Elf32_compact_rel cpt;
- /* ??? The section symbols for the output sections were set up in
- _bfd_elf_final_link. SGI sets the STT_NOTYPE attribute for these
- symbols. Should we do so? */
-
- smsym = bfd_get_section_by_name (dynobj, ".msym");
- if (smsym != NULL)
- {
- Elf32_Internal_Msym msym;
-
- msym.ms_hash_value = 0;
- msym.ms_info = ELF32_MS_INFO (0, 1);
-
- for (s = output_bfd->sections; s != NULL; s = s->next)
- {
- long dynindx = elf_section_data (s)->dynindx;
-
- bfd_mips_elf_swap_msym_out
- (output_bfd, &msym,
- (((Elf32_External_Msym *) smsym->contents)
- + dynindx));
- }
- }
-
if (SGI_COMPAT (output_bfd))
{
/* Write .compact_rel section out. */
@@ -7300,6 +7166,7 @@ mips_set_isa_flags (abfd)
break;
case bfd_mach_mips5000:
+ case bfd_mach_mips7000:
case bfd_mach_mips8000:
case bfd_mach_mips10000:
case bfd_mach_mips12000:
@@ -7610,7 +7477,7 @@ _bfd_mips_elf_modify_segment_map (abfd)
unsigned int i, c;
struct elf_segment_map *n;
- low = 0xffffffff;
+ low = ~(bfd_vma) 0;
high = 0;
for (i = 0; i < sizeof sec_names / sizeof sec_names[0]; i++)
{
@@ -7762,7 +7629,7 @@ _bfd_mips_elf_gc_sweep_hook (abfd, info, sec, relocs)
void
_bfd_mips_elf_copy_indirect_symbol (bed, dir, ind)
- struct elf_backend_data *bed;
+ const struct elf_backend_data *bed;
struct elf_link_hash_entry *dir, *ind;
{
struct mips_elf_link_hash_entry *dirmips, *indmips;
@@ -7777,10 +7644,6 @@ _bfd_mips_elf_copy_indirect_symbol (bed, dir, ind)
dirmips->possibly_dynamic_relocs += indmips->possibly_dynamic_relocs;
if (indmips->readonly_reloc)
dirmips->readonly_reloc = TRUE;
- if (dirmips->min_dyn_reloc_index == 0
- || (indmips->min_dyn_reloc_index != 0
- && indmips->min_dyn_reloc_index < dirmips->min_dyn_reloc_index))
- dirmips->min_dyn_reloc_index = indmips->min_dyn_reloc_index;
if (indmips->no_fn_stub)
dirmips->no_fn_stub = TRUE;
}
@@ -8129,12 +7992,12 @@ _bfd_mips_elf_set_section_contents (abfd, section, location, offset, count)
bfd_byte *
_bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
- data, relocateable, symbols)
+ data, relocatable, symbols)
bfd *abfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
/* Get enough memory to hold the stuff */
@@ -8242,7 +8105,7 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
{
/* bypass special_function call */
r = _bfd_mips_elf_gprel16_with_gp (input_bfd, sym, *parent,
- input_section, relocateable,
+ input_section, relocatable,
(PTR) data, gp);
goto skip_bfd_perform_relocation;
}
@@ -8252,11 +8115,11 @@ _bfd_elf_mips_get_relocated_section_contents (abfd, link_info, link_order,
*parent,
(PTR) data,
input_section,
- relocateable ? abfd : (bfd *) NULL,
+ relocatable ? abfd : (bfd *) NULL,
&error_message);
skip_bfd_perform_relocation:
- if (relocateable)
+ if (relocatable)
{
asection *os = input_section->output_section;
@@ -8463,7 +8326,7 @@ _bfd_mips_elf_final_link (abfd, info)
elf_gp (abfd) = (h->u.def.value
+ h->u.def.section->output_section->vma
+ h->u.def.section->output_offset);
- else if (info->relocateable)
+ else if (info->relocatable)
{
bfd_vma lo = MINUS_ONE;
@@ -8784,7 +8647,7 @@ _bfd_mips_elf_final_link (abfd, info)
information describing how the small data area would
change depending upon the -G switch. These sections
not used in executables files. */
- if (! info->relocateable)
+ if (! info->relocatable)
{
for (p = o->link_order_head;
p != (struct bfd_link_order *) NULL;
@@ -9086,6 +8949,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = {
{ bfd_mach_mips5, bfd_mach_mips8000 },
{ bfd_mach_mips10000, bfd_mach_mips8000 },
{ bfd_mach_mips5000, bfd_mach_mips8000 },
+ { bfd_mach_mips7000, bfd_mach_mips8000 },
/* VR4100 extensions. */
{ bfd_mach_mips4120, bfd_mach_mips4100 },
@@ -9429,3 +9293,21 @@ _bfd_mips_elf_print_private_bfd_data (abfd, ptr)
return TRUE;
}
+
+struct bfd_elf_special_section const _bfd_mips_elf_special_sections[]=
+{
+ { ".sdata", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+ { ".sbss", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+ { ".lit4", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+ { ".lit8", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+ { ".ucode", 0, NULL, 0,
+ SHT_MIPS_UCODE, 0 },
+ { ".mdebug", 0, NULL, 0,
+ SHT_MIPS_DEBUG, 0 },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
diff --git a/bfd/elfxx-mips.h b/bfd/elfxx-mips.h
index 088dd6a..71cdc07 100644
--- a/bfd/elfxx-mips.h
+++ b/bfd/elfxx-mips.h
@@ -70,7 +70,7 @@ extern bfd_boolean _bfd_mips_elf_gc_sweep_hook
PARAMS ((bfd *, struct bfd_link_info *, asection *,
const Elf_Internal_Rela *));
extern void _bfd_mips_elf_copy_indirect_symbol
- PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
extern void _bfd_mips_elf_hide_symbol
PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
@@ -112,3 +112,6 @@ extern bfd_boolean _bfd_mips_relax_section
PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *));
extern bfd_vma _bfd_mips_elf_sign_extend
PARAMS ((bfd_vma, int));
+
+extern struct bfd_elf_special_section const _bfd_mips_elf_special_sections[];
+#define elf_backend_special_sections _bfd_mips_elf_special_sections
diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
index 58a96b1..544f8f3 100644
--- a/bfd/elfxx-target.h
+++ b/bfd/elfxx-target.h
@@ -32,7 +32,8 @@
#define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents
#endif
-#define bfd_elfNN_canonicalize_dynamic_symtab _bfd_elf_canonicalize_dynamic_symtab
+#define bfd_elfNN_canonicalize_dynamic_symtab \
+ _bfd_elf_canonicalize_dynamic_symtab
#ifndef bfd_elfNN_canonicalize_reloc
#define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc
#endif
@@ -41,7 +42,8 @@
#endif
#define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols
#define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol
-#define bfd_elfNN_get_dynamic_symtab_upper_bound _bfd_elf_get_dynamic_symtab_upper_bound
+#define bfd_elfNN_get_dynamic_symtab_upper_bound \
+ _bfd_elf_get_dynamic_symtab_upper_bound
#define bfd_elfNN_get_lineno _bfd_elf_get_lineno
#ifndef bfd_elfNN_get_reloc_upper_bound
#define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound
@@ -51,9 +53,6 @@
#endif
#define bfd_elfNN_get_symtab _bfd_elf_get_symtab
#define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound
-#if 0 /* done in elf-bfd.h */
-#define bfd_elfNN_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol
-#endif
#define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol
#ifndef bfd_elfNN_new_section_hook
#define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook
@@ -100,11 +99,11 @@
#define bfd_elfNN_bfd_debug_info_start bfd_void
#define bfd_elfNN_bfd_debug_info_end bfd_void
#define bfd_elfNN_bfd_debug_info_accumulate \
- (void (*) PARAMS ((bfd*, struct sec *))) bfd_void
+ ((void (*) (bfd*, struct sec *)) bfd_void)
#ifndef bfd_elfNN_bfd_get_relocated_section_contents
#define bfd_elfNN_bfd_get_relocated_section_contents \
- bfd_generic_get_relocated_section_contents
+ bfd_generic_get_relocated_section_contents
#endif
#ifndef bfd_elfNN_bfd_relax_section
@@ -141,7 +140,7 @@
#ifndef bfd_elfNN_bfd_make_debug_symbol
#define bfd_elfNN_bfd_make_debug_symbol \
- ((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
+ ((asymbol * (*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
#endif
#ifndef bfd_elfNN_bfd_copy_private_symbol_data
@@ -163,11 +162,11 @@
#endif
#ifndef bfd_elfNN_bfd_merge_private_bfd_data
#define bfd_elfNN_bfd_merge_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#endif
#ifndef bfd_elfNN_bfd_set_private_flags
#define bfd_elfNN_bfd_set_private_flags \
- ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
#endif
#ifndef bfd_elfNN_bfd_is_local_label_name
#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name
@@ -434,6 +433,10 @@
#define elf_backend_size_info _bfd_elfNN_size_info
#endif
+#ifndef elf_backend_special_sections
+#define elf_backend_special_sections NULL
+#endif
+
#ifndef elf_backend_sign_extend_vma
#define elf_backend_sign_extend_vma 0
#endif
@@ -497,6 +500,7 @@ static const struct elf_backend_data elfNN_bed =
ELF_MACHINE_ALT1,
ELF_MACHINE_ALT2,
&elf_backend_size_info,
+ elf_backend_special_sections,
elf_backend_got_symbol_offset,
elf_backend_got_header_size,
elf_backend_plt_header_size,
@@ -595,19 +599,19 @@ const bfd_target TARGET_BIG_SYM =
bfd_elfNN_write_corefile_contents,
},
- BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
- BFD_JUMP_TABLE_COPY (bfd_elfNN),
- BFD_JUMP_TABLE_CORE (bfd_elfNN),
+ BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
+ BFD_JUMP_TABLE_COPY (bfd_elfNN),
+ BFD_JUMP_TABLE_CORE (bfd_elfNN),
#ifdef bfd_elfNN_archive_functions
- BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
+ BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
#else
- BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
+ BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
#endif
- BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
- BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
- BFD_JUMP_TABLE_WRITE (bfd_elfNN),
- BFD_JUMP_TABLE_LINK (bfd_elfNN),
- BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
+ BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
+ BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
+ BFD_JUMP_TABLE_WRITE (bfd_elfNN),
+ BFD_JUMP_TABLE_LINK (bfd_elfNN),
+ BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
/* Alternative endian target. */
#ifdef TARGET_LITTLE_SYM
@@ -617,7 +621,7 @@ const bfd_target TARGET_BIG_SYM =
#endif
/* backend_data: */
- (PTR) &elfNN_bed
+ &elfNN_bed
};
#endif
@@ -691,19 +695,19 @@ const bfd_target TARGET_LITTLE_SYM =
bfd_elfNN_write_corefile_contents,
},
- BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
- BFD_JUMP_TABLE_COPY (bfd_elfNN),
- BFD_JUMP_TABLE_CORE (bfd_elfNN),
+ BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
+ BFD_JUMP_TABLE_COPY (bfd_elfNN),
+ BFD_JUMP_TABLE_CORE (bfd_elfNN),
#ifdef bfd_elfNN_archive_functions
- BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
+ BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
#else
- BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
+ BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
#endif
- BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
- BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
- BFD_JUMP_TABLE_WRITE (bfd_elfNN),
- BFD_JUMP_TABLE_LINK (bfd_elfNN),
- BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
+ BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
+ BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
+ BFD_JUMP_TABLE_WRITE (bfd_elfNN),
+ BFD_JUMP_TABLE_LINK (bfd_elfNN),
+ BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
/* Alternative endian target. */
#ifdef TARGET_BIG_SYM
@@ -713,6 +717,6 @@ const bfd_target TARGET_LITTLE_SYM =
#endif
/* backend_data: */
- (PTR) &elfNN_bed
+ &elfNN_bed
};
#endif
diff --git a/bfd/format.c b/bfd/format.c
index 6415b8d..256ec0e 100644
--- a/bfd/format.c
+++ b/bfd/format.c
@@ -86,9 +86,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_check_format (abfd, format)
- bfd *abfd;
- bfd_format format;
+bfd_check_format (bfd *abfd, bfd_format format)
{
return bfd_check_format_matches (abfd, format, NULL);
}
@@ -98,8 +96,8 @@ FUNCTION
bfd_check_format_matches
SYNOPSIS
- bfd_boolean bfd_check_format_matches (bfd *abfd, bfd_format format,
- char ***matching);
+ bfd_boolean bfd_check_format_matches
+ (bfd *abfd, bfd_format format, char ***matching);
DESCRIPTION
Like <<bfd_check_format>>, except when it returns FALSE with
@@ -114,10 +112,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_check_format_matches (abfd, format, matching)
- bfd *abfd;
- bfd_format format;
- char ***matching;
+bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
{
extern const bfd_target binary_vec;
const bfd_target * const *target;
@@ -148,7 +143,7 @@ bfd_check_format_matches (abfd, format, matching)
*matching = NULL;
amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries;
- matching_vector = (const bfd_target **) bfd_malloc (amt);
+ matching_vector = bfd_malloc (amt);
if (!matching_vector)
return FALSE;
}
@@ -165,7 +160,7 @@ bfd_check_format_matches (abfd, format, matching)
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) /* rewind! */
{
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
return FALSE;
}
@@ -176,7 +171,7 @@ bfd_check_format_matches (abfd, format, matching)
abfd->xvec = right_targ; /* Set the target as returned. */
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
return TRUE; /* File position has moved, BTW. */
}
@@ -199,7 +194,7 @@ bfd_check_format_matches (abfd, format, matching)
abfd->format = bfd_unknown;
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
bfd_set_error (bfd_error_file_not_recognized);
@@ -220,7 +215,7 @@ bfd_check_format_matches (abfd, format, matching)
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
{
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
return FALSE;
}
@@ -279,7 +274,7 @@ bfd_check_format_matches (abfd, format, matching)
abfd->format = bfd_unknown;
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
return FALSE;
}
@@ -332,7 +327,7 @@ bfd_check_format_matches (abfd, format, matching)
abfd->xvec = right_targ; /* Change BFD's target permanently. */
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
return TRUE; /* File position has moved, BTW. */
}
@@ -345,7 +340,7 @@ bfd_check_format_matches (abfd, format, matching)
bfd_set_error (bfd_error_file_not_recognized);
if (matching)
- free ((PTR) matching_vector);
+ free (matching_vector);
}
else
{
@@ -383,9 +378,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_format (abfd, format)
- bfd *abfd;
- bfd_format format;
+bfd_set_format (bfd *abfd, bfd_format format)
{
if (bfd_read_p (abfd)
|| (unsigned int) abfd->format >= (unsigned int) bfd_type_end)
@@ -423,11 +416,10 @@ DESCRIPTION
*/
const char *
-bfd_format_string (format)
- bfd_format format;
+bfd_format_string (bfd_format format)
{
- if (((int)format <(int) bfd_unknown)
- || ((int)format >=(int) bfd_type_end))
+ if (((int) format < (int) bfd_unknown)
+ || ((int) format >= (int) bfd_type_end))
return "invalid";
switch (format)
diff --git a/bfd/i386linux.c b/bfd/i386linux.c
index 6403e1c..84ae477 100644
--- a/bfd/i386linux.c
+++ b/bfd/i386linux.c
@@ -353,7 +353,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
insert = FALSE;
- if (! info->relocateable
+ if (! info->relocatable
&& linux_hash_table (info)->dynobj == NULL
&& strcmp (name, SHARABLE_CONFLICTS) == 0
&& (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/ieee.c b/bfd/ieee.c
index 59d5743..f0ba1e5 100644
--- a/bfd/ieee.c
+++ b/bfd/ieee.c
@@ -3590,7 +3590,7 @@ static const unsigned char exten[] =
0xf0, 0x20, 0x00,
0xf1, 0xce, 0x20, 0x00, 37, 3, 3, /* Set version 3 rev 3. */
0xf1, 0xce, 0x20, 0x00, 39, 2, /* Keep symbol in original case. */
- 0xf1, 0xce, 0x20, 0x00, 38 /* Set object type relocateable to x. */
+ 0xf1, 0xce, 0x20, 0x00, 38 /* Set object type relocatable to x. */
};
static const unsigned char envi[] =
diff --git a/bfd/init.c b/bfd/init.c
index 198b979..995213e 100644
--- a/bfd/init.c
+++ b/bfd/init.c
@@ -35,7 +35,7 @@ FUNCTION
bfd_init
SYNOPSIS
- void bfd_init(void);
+ void bfd_init (void);
DESCRIPTION
This routine must be called before any other BFD function to
@@ -46,6 +46,6 @@ DESCRIPTION
However, someday it may be needed, so keep it around. */
void
-bfd_init ()
+bfd_init (void)
{
}
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index 726883c..2c9c23c 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -1,7 +1,7 @@
/* libbfd.h -- Declarations used by bfd library *implementation*.
(This include file is not for users of the library.)
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -36,7 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Set a tdata field. Can't use the other macros for this, since they
do casts, and casting to the left of assignment isn't portable. */
-#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v))
+#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
to an instance of this structure. */
@@ -69,7 +69,7 @@ struct artdata {
archive. */
file_ptr armap_datepos; /* Position within archive to seek to
rewrite the date field. */
- PTR tdata; /* Backend specific information. */
+ void *tdata; /* Backend specific information. */
};
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
@@ -83,105 +83,105 @@ struct areltdata {
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
-extern PTR bfd_malloc
- PARAMS ((bfd_size_type));
-extern PTR bfd_realloc
- PARAMS ((PTR, bfd_size_type));
-extern PTR bfd_zmalloc
- PARAMS ((bfd_size_type));
+extern void *bfd_malloc
+ (bfd_size_type);
+extern void *bfd_realloc
+ (void *, bfd_size_type);
+extern void *bfd_zmalloc
+ (bfd_size_type);
extern bfd_error_handler_type _bfd_error_handler;
/* These routines allocate and free things on the BFD's objalloc. */
-extern PTR bfd_alloc
- PARAMS ((bfd *, bfd_size_type));
-extern PTR bfd_zalloc
- PARAMS ((bfd *, bfd_size_type));
+extern void *bfd_alloc
+ (bfd *, bfd_size_type);
+extern void *bfd_zalloc
+ (bfd *, bfd_size_type);
extern void bfd_release
- PARAMS ((bfd *, PTR));
+ (bfd *, void *);
bfd * _bfd_create_empty_archive_element_shell
- PARAMS ((bfd *obfd));
+ (bfd *obfd);
bfd * _bfd_look_for_bfd_in_cache
- PARAMS ((bfd *, file_ptr));
+ (bfd *, file_ptr);
bfd_boolean _bfd_add_bfd_to_archive_cache
- PARAMS ((bfd *, file_ptr, bfd *));
+ (bfd *, file_ptr, bfd *);
bfd_boolean _bfd_generic_mkarchive
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
const bfd_target *bfd_generic_archive_p
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean bfd_slurp_armap
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean bfd_slurp_bsd_armap_f2
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
#define bfd_slurp_bsd_armap bfd_slurp_armap
#define bfd_slurp_coff_armap bfd_slurp_armap
bfd_boolean _bfd_slurp_extended_name_table
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
extern bfd_boolean _bfd_construct_extended_name_table
- PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *));
+ (bfd *, bfd_boolean, char **, bfd_size_type *);
bfd_boolean _bfd_write_archive_contents
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean _bfd_compute_and_write_armap
- PARAMS ((bfd *, unsigned int elength));
+ (bfd *, unsigned int elength);
bfd *_bfd_get_elt_at_filepos
- PARAMS ((bfd *archive, file_ptr filepos));
+ (bfd *archive, file_ptr filepos);
extern bfd *_bfd_generic_get_elt_at_index
- PARAMS ((bfd *, symindex));
+ (bfd *, symindex);
bfd * _bfd_new_bfd
- PARAMS ((void));
+ (void);
void _bfd_delete_bfd
- PARAMS ((bfd *));
+ (bfd *);
bfd_boolean bfd_false
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
bfd_boolean bfd_true
- PARAMS ((bfd *ignore));
-PTR bfd_nullvoidptr
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
+void *bfd_nullvoidptr
+ (bfd *ignore);
int bfd_0
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
unsigned int bfd_0u
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
long bfd_0l
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
long _bfd_n1
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
void bfd_void
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
bfd *_bfd_new_bfd_contained_in
- PARAMS ((bfd *));
+ (bfd *);
const bfd_target *_bfd_dummy_target
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
void bfd_dont_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
void bfd_bsd_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
void bfd_gnu_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
bfd_boolean bsd_write_armap
- PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
- unsigned int orl_count, int stridx));
+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
+ int stridx);
bfd_boolean coff_write_armap
- PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
- unsigned int orl_count, int stridx));
+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
+ int stridx);
-extern PTR _bfd_generic_read_ar_hdr
- PARAMS ((bfd *));
+extern void *_bfd_generic_read_ar_hdr
+ (bfd *);
-extern PTR _bfd_generic_read_ar_hdr_mag
- PARAMS ((bfd *, const char *));
+extern void *_bfd_generic_read_ar_hdr_mag
+ (bfd *, const char *);
bfd * bfd_generic_openr_next_archived_file
- PARAMS ((bfd *archive, bfd *last_file));
+ (bfd *archive, bfd *last_file);
int bfd_generic_stat_arch_elt
- PARAMS ((bfd *, struct stat *));
+ (bfd *, struct stat *);
#define _bfd_read_ar_hdr(abfd) \
BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
@@ -192,37 +192,37 @@ int bfd_generic_stat_arch_elt
#define _bfd_generic_close_and_cleanup bfd_true
#define _bfd_generic_bfd_free_cached_info bfd_true
#define _bfd_generic_new_section_hook \
- ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asection *)) bfd_true)
extern bfd_boolean _bfd_generic_get_section_contents
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+ (bfd *, asection *, void *, file_ptr, bfd_size_type);
extern bfd_boolean _bfd_generic_get_section_contents_in_window
- PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type));
+ (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
/* Generic routines to use for BFD_JUMP_TABLE_COPY. Use
BFD_JUMP_TABLE_COPY (_bfd_generic). */
#define _bfd_generic_bfd_copy_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_merge_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_set_private_flags \
- ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
#define _bfd_generic_bfd_copy_private_section_data \
- ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
#define _bfd_generic_bfd_copy_private_symbol_data \
- ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
#define _bfd_generic_bfd_print_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
+ ((bfd_boolean (*) (bfd *, void *)) bfd_true)
/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */
extern char *_bfd_nocore_core_file_failing_command
- PARAMS ((bfd *));
+ (bfd *);
extern int _bfd_nocore_core_file_failing_signal
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */
@@ -230,20 +230,18 @@ extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
#define _bfd_noarchive_slurp_armap bfd_false
#define _bfd_noarchive_slurp_extended_name_table bfd_false
#define _bfd_noarchive_construct_extended_name_table \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+ ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
bfd_false)
#define _bfd_noarchive_truncate_arname \
- ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void)
+ ((void (*) (bfd *, const char *, char *)) bfd_void)
#define _bfd_noarchive_write_armap \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
+ ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
bfd_false)
#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
#define _bfd_noarchive_openr_next_archived_file \
- ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr)
+ ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
#define _bfd_noarchive_get_elt_at_index \
- ((bfd *(*) PARAMS ((bfd *, symindex))) bfd_nullvoidptr)
+ ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
#define _bfd_noarchive_update_armap_timestamp bfd_false
@@ -254,7 +252,7 @@ extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
#define _bfd_archive_bsd_slurp_extended_name_table \
_bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
+ (bfd *, char **, bfd_size_type *, const char **);
#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
#define _bfd_archive_bsd_write_armap bsd_write_armap
#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
@@ -264,7 +262,7 @@ extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
#define _bfd_archive_bsd_generic_stat_arch_elt \
bfd_generic_stat_arch_elt
extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
- PARAMS ((bfd *));
+ (bfd *);
/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */
@@ -273,7 +271,7 @@ extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
#define _bfd_archive_coff_slurp_extended_name_table \
_bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
+ (bfd *, char **, bfd_size_type *, const char **);
#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
#define _bfd_archive_coff_write_armap coff_write_armap
#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
@@ -289,49 +287,46 @@ extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
#define _bfd_nosymbols_get_symtab \
- ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
#define _bfd_nosymbols_print_symbol \
- ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void)
+ ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
#define _bfd_nosymbols_get_symbol_info \
- ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
+ ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
#define _bfd_nosymbols_bfd_is_local_label_name \
- ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
#define _bfd_nosymbols_get_lineno \
- ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
+ ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
#define _bfd_nosymbols_find_nearest_line \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \
- const char **, unsigned int *))) \
+ ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
+ const char **, unsigned int *)) \
bfd_false)
#define _bfd_nosymbols_bfd_make_debug_symbol \
- ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr)
+ ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
#define _bfd_nosymbols_read_minisymbols \
- ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1)
+ ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
#define _bfd_nosymbols_minisymbol_to_symbol \
- ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \
+ ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
bfd_nullvoidptr)
/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */
#define _bfd_norelocs_get_reloc_upper_bound \
- ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1)
+ ((long (*) (bfd *, asection *)) _bfd_n1)
#define _bfd_norelocs_canonicalize_reloc \
- ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asection *, arelent **, asymbol **)) _bfd_n1)
#define _bfd_norelocs_bfd_reloc_type_lookup \
- ((reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \
- bfd_nullvoidptr)
+ ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */
#define _bfd_nowrite_set_arch_mach \
- ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
+ ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
bfd_false)
#define _bfd_nowrite_set_section_contents \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
+ ((bfd_boolean (*) (bfd *, asection *, void *, file_ptr, bfd_size_type)) \
bfd_false)
/* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use
@@ -339,45 +334,41 @@ extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
extern bfd_boolean _bfd_generic_set_section_contents
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+ (bfd *, asection *, void *, file_ptr, bfd_size_type);
/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */
-#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0)
+#define _bfd_nolink_sizeof_headers ((int (*) (bfd *, bfd_boolean)) bfd_0)
#define _bfd_nolink_bfd_get_relocated_section_contents \
- ((bfd_byte *(*) \
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \
- bfd_byte *, bfd_boolean, asymbol **))) \
+ ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
+ bfd_byte *, bfd_boolean, asymbol **)) \
bfd_nullvoidptr)
#define _bfd_nolink_bfd_relax_section \
((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \
+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
bfd_false)
#define _bfd_nolink_bfd_gc_sections \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct bfd_link_info *))) \
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
bfd_false)
#define _bfd_nolink_bfd_merge_sections \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct bfd_link_info *))) \
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
bfd_false)
#define _bfd_nolink_bfd_discard_group \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct sec *))) \
+ ((bfd_boolean (*) (bfd *, struct sec *)) \
bfd_false)
#define _bfd_nolink_bfd_link_hash_table_create \
- ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
+ ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
#define _bfd_nolink_bfd_link_hash_table_free \
- ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void)
+ ((void (*) (struct bfd_link_hash_table *)) bfd_void)
#define _bfd_nolink_bfd_link_add_symbols \
- ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_just_syms \
- ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void)
+ ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
#define _bfd_nolink_bfd_final_link \
- ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_split_section \
- ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct sec *)) bfd_false)
/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC
@@ -385,195 +376,189 @@ extern bfd_boolean _bfd_generic_set_section_contents
#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_symtab \
- ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_reloc \
- ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
/* Generic routine to determine of the given symbol is a local
label. */
extern bfd_boolean bfd_generic_is_local_label_name
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
/* Generic minisymbol routines. */
extern long _bfd_generic_read_minisymbols
- PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
+ (bfd *, bfd_boolean, void **, unsigned int *);
extern asymbol *_bfd_generic_minisymbol_to_symbol
- PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
+ (bfd *, bfd_boolean, const void *, asymbol *);
/* Find the nearest line using .stab/.stabstr sections. */
extern bfd_boolean _bfd_stab_section_find_nearest_line
- PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
- const char **, const char **, unsigned int *, PTR *));
+ (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
+ const char **, const char **, unsigned int *, void **);
/* Find the neaderst line using DWARF 1 debugging information. */
extern bfd_boolean _bfd_dwarf1_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *));
+ (bfd *, asection *, asymbol **, bfd_vma, const char **,
+ const char **, unsigned int *);
/* Find the nearest line using DWARF 2 debugging information. */
extern bfd_boolean _bfd_dwarf2_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *, unsigned int,
- PTR *));
+ (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
+ unsigned int *, unsigned int, void **);
/* Create a new section entry. */
extern struct bfd_hash_entry *bfd_section_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* A routine to create entries for a bfd_link_hash_table. */
extern struct bfd_hash_entry *_bfd_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *entry,
- struct bfd_hash_table *table,
- const char *string));
+ (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
+ const char *string);
/* Initialize a bfd_link_hash_table. */
extern bfd_boolean _bfd_link_hash_table_init
- PARAMS ((struct bfd_link_hash_table *, bfd *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct bfd_link_hash_table *, bfd *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *));
/* Generic link hash table creation routine. */
extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
- PARAMS ((bfd *));
+ (bfd *);
/* Generic link hash table destruction routine. */
extern void _bfd_generic_link_hash_table_free
- PARAMS ((struct bfd_link_hash_table *));
+ (struct bfd_link_hash_table *);
/* Generic add symbol routine. */
extern bfd_boolean _bfd_generic_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Generic add symbol routine. This version is used by targets for
which the linker must collect constructors and destructors by name,
as the collect2 program does. */
extern bfd_boolean _bfd_generic_link_add_symbols_collect
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Generic archive add symbol routine. */
extern bfd_boolean _bfd_generic_link_add_archive_symbols
- PARAMS ((bfd *, struct bfd_link_info *,
- bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)));
+ (bfd *, struct bfd_link_info *,
+ bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
/* Forward declaration to avoid prototype errors. */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
/* Generic routine to add a single symbol. */
extern bfd_boolean _bfd_generic_link_add_one_symbol
- PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword,
- asection *, bfd_vma, const char *, bfd_boolean copy,
- bfd_boolean constructor, struct bfd_link_hash_entry **));
+ (struct bfd_link_info *, bfd *, const char *name, flagword,
+ asection *, bfd_vma, const char *, bfd_boolean copy,
+ bfd_boolean constructor, struct bfd_link_hash_entry **);
/* Generic routine to mark section as supplying symbols only. */
extern void _bfd_generic_link_just_syms
- PARAMS ((asection *, struct bfd_link_info *));
+ (asection *, struct bfd_link_info *);
/* Generic link routine. */
extern bfd_boolean _bfd_generic_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_generic_link_split_section
- PARAMS ((bfd *, struct sec *));
+ (bfd *, struct sec *);
/* Generic reloc_link_order processing routine. */
extern bfd_boolean _bfd_generic_reloc_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
/* Default link order processing routine. */
extern bfd_boolean _bfd_default_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
/* Count the number of reloc entries in a link order list. */
extern unsigned int _bfd_count_link_order_relocs
- PARAMS ((struct bfd_link_order *));
+ (struct bfd_link_order *);
/* Final link relocation routine. */
extern bfd_reloc_status_type _bfd_final_link_relocate
- PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
- bfd_vma, bfd_vma, bfd_vma));
+ (reloc_howto_type *, bfd *, asection *, bfd_byte *,
+ bfd_vma, bfd_vma, bfd_vma);
/* Relocate a particular location by a howto and a value. */
extern bfd_reloc_status_type _bfd_relocate_contents
- PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *));
+ (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
/* Link stabs in sections in the first pass. */
extern bfd_boolean _bfd_link_section_stabs
- PARAMS ((bfd *, PTR *, asection *, asection *, PTR *));
+ (bfd *, void **, asection *, asection *, void **);
/* Eliminate stabs for discarded functions and symbols. */
extern bfd_boolean _bfd_discard_section_stabs
- PARAMS ((bfd *, asection *, PTR,
- bfd_boolean (*) (bfd_vma, PTR), PTR));
+ (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
/* Write out the .stab section when linking stabs in sections. */
extern bfd_boolean _bfd_write_section_stabs
- PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *));
+ (bfd *, void **, asection *, void **, bfd_byte *);
/* Write out the .stabstr string table when linking stabs in sections. */
extern bfd_boolean _bfd_write_stab_strings
- PARAMS ((bfd *, PTR *));
+ (bfd *, void **);
/* Find an offset within a .stab section when linking stabs in
sections. */
extern bfd_vma _bfd_stab_section_offset
- PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma));
+ (bfd *, void **, asection *, void **, bfd_vma);
/* Attempt to merge a SEC_MERGE section. */
extern bfd_boolean _bfd_merge_section
- PARAMS ((bfd *, PTR *, asection *, PTR *));
+ (bfd *, void **, asection *, void **);
/* Attempt to merge SEC_MERGE sections. */
extern bfd_boolean _bfd_merge_sections
- PARAMS ((bfd *, PTR, void (*)(bfd *, asection *)));
+ (bfd *, void *, void (*) (bfd *, asection *));
/* Write out a merged section. */
extern bfd_boolean _bfd_write_merged_section
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
/* Find an offset within a modified SEC_MERGE section. */
extern bfd_vma _bfd_merged_section_offset
- PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma));
+ (bfd *, asection **, void *, bfd_vma, bfd_vma);
/* Create a string table. */
extern struct bfd_strtab_hash *_bfd_stringtab_init
- PARAMS ((void));
+ (void);
/* Create an XCOFF .debug section style string table. */
extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
- PARAMS ((void));
+ (void);
/* Free a string table. */
extern void _bfd_stringtab_free
- PARAMS ((struct bfd_strtab_hash *));
+ (struct bfd_strtab_hash *);
/* Get the size of a string table. */
extern bfd_size_type _bfd_stringtab_size
- PARAMS ((struct bfd_strtab_hash *));
+ (struct bfd_strtab_hash *);
/* Add a string to a string table. */
extern bfd_size_type _bfd_stringtab_add
- PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash,
- bfd_boolean copy));
+ (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
/* Write out a string table. */
extern bfd_boolean _bfd_stringtab_emit
- PARAMS ((bfd *, struct bfd_strtab_hash *));
+ (bfd *, struct bfd_strtab_hash *);
/* Check that endianness of input and output file match. */
extern bfd_boolean _bfd_generic_verify_endian_match
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
/* Macros to tell if bfds are read or write enabled.
@@ -584,20 +569,22 @@ extern bfd_boolean _bfd_generic_verify_endian_match
!bfd_read_p, and only sometimes bfd_write_p.
*/
-#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
-#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
+#define bfd_read_p(abfd) \
+ ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
+#define bfd_write_p(abfd) \
+ ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
void bfd_assert
- PARAMS ((const char*,int));
+ (const char*,int);
#define BFD_ASSERT(x) \
-{ if (!(x)) bfd_assert(__FILE__,__LINE__); }
+ { if (!(x)) bfd_assert(__FILE__,__LINE__); }
#define BFD_FAIL() \
-{ bfd_assert(__FILE__,__LINE__); }
+ { bfd_assert(__FILE__,__LINE__); }
extern void _bfd_abort
- PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN;
+ (const char *, int, const char *) ATTRIBUTE_NORETURN;
/* if gcc >= 2.6, we can give a function name, too */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
@@ -608,7 +595,7 @@ extern void _bfd_abort
#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
FILE * bfd_cache_lookup_worker
- PARAMS ((bfd *));
+ (bfd *);
extern bfd *bfd_last_cache;
@@ -628,26 +615,27 @@ struct ecoff_find_line;
#endif
extern bfd_boolean _bfd_ecoff_locate_line
- PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
- const struct ecoff_debug_swap * const, struct ecoff_find_line *,
- const char **, const char **, unsigned int *));
+ (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
+ const struct ecoff_debug_swap * const, struct ecoff_find_line *,
+ const char **, const char **, unsigned int *);
extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_sym
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_ss
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_vma _bfd_get_gp_value
- PARAMS ((bfd *));
+ (bfd *);
extern void _bfd_set_gp_value
- PARAMS ((bfd *, bfd_vma));
+ (bfd *, bfd_vma);
/* Function shared by the COFF and ELF SH backends, which have no
other common header files. */
+#ifndef _bfd_sh_align_load_span
extern bfd_boolean _bfd_sh_align_load_span
- PARAMS ((bfd *, asection *, bfd_byte *,
- bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
- PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *));
-
+ (bfd *, asection *, bfd_byte *,
+ bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
+ void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
+#endif
diff --git a/bfd/libbfd.c b/bfd/libbfd.c
index da93831..50bd215 100644
--- a/bfd/libbfd.c
+++ b/bfd/libbfd.c
@@ -1,6 +1,6 @@
/* Assorted BFD support routines, only used internally.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -42,8 +42,7 @@ DESCRIPTION
operations. */
bfd_boolean
-bfd_false (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_false (bfd *ignore ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
@@ -53,8 +52,7 @@ bfd_false (ignore)
which do not actually do anything. */
bfd_boolean
-bfd_true (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_true (bfd *ignore ATTRIBUTE_UNUSED)
{
return TRUE;
}
@@ -62,31 +60,27 @@ bfd_true (ignore)
/* A routine which is used in target vectors for unsupported
operations which return a pointer value. */
-PTR
-bfd_nullvoidptr (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+void *
+bfd_nullvoidptr (bfd *ignore ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
return NULL;
}
int
-bfd_0 (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_0 (bfd *ignore ATTRIBUTE_UNUSED)
{
return 0;
}
unsigned int
-bfd_0u (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_0u (bfd *ignore ATTRIBUTE_UNUSED)
{
return 0;
}
long
-bfd_0l (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_0l (bfd *ignore ATTRIBUTE_UNUSED)
{
return 0;
}
@@ -95,23 +89,21 @@ bfd_0l (ignore)
operations which return -1 on error. */
long
-_bfd_n1 (ignore_abfd)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
+_bfd_n1 (bfd *ignore_abfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
return -1;
}
void
-bfd_void (ignore)
- bfd *ignore ATTRIBUTE_UNUSED;
+bfd_void (bfd *ignore ATTRIBUTE_UNUSED)
{
}
bfd_boolean
-_bfd_nocore_core_file_matches_executable_p (ignore_core_bfd, ignore_exec_bfd)
- bfd *ignore_core_bfd ATTRIBUTE_UNUSED;
- bfd *ignore_exec_bfd ATTRIBUTE_UNUSED;
+_bfd_nocore_core_file_matches_executable_p
+ (bfd *ignore_core_bfd ATTRIBUTE_UNUSED,
+ bfd *ignore_exec_bfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
@@ -121,27 +113,24 @@ _bfd_nocore_core_file_matches_executable_p (ignore_core_bfd, ignore_exec_bfd)
without core file support. */
char *
-_bfd_nocore_core_file_failing_command (ignore_abfd)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
+_bfd_nocore_core_file_failing_command (bfd *ignore_abfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
- return (char *)NULL;
+ return NULL;
}
/* Routine to handle core_file_failing_signal entry point for targets
without core file support. */
int
-_bfd_nocore_core_file_failing_signal (ignore_abfd)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
+_bfd_nocore_core_file_failing_signal (bfd *ignore_abfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_invalid_operation);
return 0;
}
const bfd_target *
-_bfd_dummy_target (ignore_abfd)
- bfd *ignore_abfd ATTRIBUTE_UNUSED;
+_bfd_dummy_target (bfd *ignore_abfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_wrong_format);
return 0;
@@ -149,11 +138,10 @@ _bfd_dummy_target (ignore_abfd)
/* Allocate memory using malloc. */
-PTR
-bfd_malloc (size)
- bfd_size_type size;
+void *
+bfd_malloc (bfd_size_type size)
{
- PTR ptr;
+ void *ptr;
if (size != (size_t) size)
{
@@ -161,7 +149,7 @@ bfd_malloc (size)
return NULL;
}
- ptr = (PTR) malloc ((size_t) size);
+ ptr = malloc ((size_t) size);
if (ptr == NULL && (size_t) size != 0)
bfd_set_error (bfd_error_no_memory);
@@ -170,12 +158,10 @@ bfd_malloc (size)
/* Reallocate memory using realloc. */
-PTR
-bfd_realloc (ptr, size)
- PTR ptr;
- bfd_size_type size;
+void *
+bfd_realloc (void *ptr, bfd_size_type size)
{
- PTR ret;
+ void *ret;
if (size != (size_t) size)
{
@@ -184,9 +170,9 @@ bfd_realloc (ptr, size)
}
if (ptr == NULL)
- ret = (PTR) malloc ((size_t) size);
+ ret = malloc ((size_t) size);
else
- ret = (PTR) realloc (ptr, (size_t) size);
+ ret = realloc (ptr, (size_t) size);
if (ret == NULL && (size_t) size != 0)
bfd_set_error (bfd_error_no_memory);
@@ -196,11 +182,10 @@ bfd_realloc (ptr, size)
/* Allocate memory using malloc and clear it. */
-PTR
-bfd_zmalloc (size)
- bfd_size_type size;
+void *
+bfd_zmalloc (bfd_size_type size)
{
- PTR ptr;
+ void *ptr;
if (size != (size_t) size)
{
@@ -208,7 +193,7 @@ bfd_zmalloc (size)
return NULL;
}
- ptr = (PTR) malloc ((size_t) size);
+ ptr = malloc ((size_t) size);
if ((size_t) size != 0)
{
@@ -234,13 +219,11 @@ DESCRIPTION
*/
bfd_boolean
-bfd_write_bigendian_4byte_int (abfd, i)
- bfd *abfd;
- unsigned int i;
+bfd_write_bigendian_4byte_int (bfd *abfd, unsigned int i)
{
bfd_byte buffer[4];
bfd_putb32 ((bfd_vma) i, buffer);
- return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4;
+ return bfd_bwrite (buffer, (bfd_size_type) 4, abfd) == 4;
}
@@ -283,54 +266,54 @@ DESCRIPTION
.{* Byte swapping macros for user section data. *}
.
.#define bfd_put_8(abfd, val, ptr) \
-. ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val)))
+. ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val)))
.#define bfd_put_signed_8 \
-. bfd_put_8
+. bfd_put_8
.#define bfd_get_8(abfd, ptr) \
-. (*(unsigned char *) (ptr) & 0xff)
+. (*(unsigned char *) (ptr) & 0xff)
.#define bfd_get_signed_8(abfd, ptr) \
-. (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
+. (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
.
.#define bfd_put_16(abfd, val, ptr) \
-. BFD_SEND(abfd, bfd_putx16, ((val),(ptr)))
+. BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
.#define bfd_put_signed_16 \
-. bfd_put_16
+. bfd_put_16
.#define bfd_get_16(abfd, ptr) \
-. BFD_SEND(abfd, bfd_getx16, (ptr))
+. BFD_SEND (abfd, bfd_getx16, (ptr))
.#define bfd_get_signed_16(abfd, ptr) \
-. BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
+. BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
.
.#define bfd_put_32(abfd, val, ptr) \
-. BFD_SEND(abfd, bfd_putx32, ((val),(ptr)))
+. BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
.#define bfd_put_signed_32 \
-. bfd_put_32
+. bfd_put_32
.#define bfd_get_32(abfd, ptr) \
-. BFD_SEND(abfd, bfd_getx32, (ptr))
+. BFD_SEND (abfd, bfd_getx32, (ptr))
.#define bfd_get_signed_32(abfd, ptr) \
-. BFD_SEND(abfd, bfd_getx_signed_32, (ptr))
+. BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
.
.#define bfd_put_64(abfd, val, ptr) \
-. BFD_SEND(abfd, bfd_putx64, ((val), (ptr)))
+. BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
.#define bfd_put_signed_64 \
-. bfd_put_64
+. bfd_put_64
.#define bfd_get_64(abfd, ptr) \
-. BFD_SEND(abfd, bfd_getx64, (ptr))
+. BFD_SEND (abfd, bfd_getx64, (ptr))
.#define bfd_get_signed_64(abfd, ptr) \
-. BFD_SEND(abfd, bfd_getx_signed_64, (ptr))
+. BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
.
-.#define bfd_get(bits, abfd, ptr) \
-. ( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
-. : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
-. : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
-. : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
-. : (abort (), (bfd_vma) - 1))
+.#define bfd_get(bits, abfd, ptr) \
+. ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
+. : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
+. : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
+. : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
+. : (abort (), (bfd_vma) - 1))
.
-.#define bfd_put(bits, abfd, val, ptr) \
-. ( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
-. : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
-. : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
-. : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
-. : (abort (), (void) 0))
+.#define bfd_put(bits, abfd, val, ptr) \
+. ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
+. : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
+. : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
+. : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
+. : (abort (), (void) 0))
.
*/
@@ -435,61 +418,51 @@ DESCRIPTION
/* Sign extension to bfd_signed_vma. */
#define COERCE16(x) (((bfd_signed_vma) (x) ^ 0x8000) - 0x8000)
-#define COERCE32(x) \
- ((bfd_signed_vma) (long) (((unsigned long) (x) ^ 0x80000000) - 0x80000000))
-#define EIGHT_GAZILLION (((BFD_HOST_64_BIT)0x80000000) << 32)
+#define COERCE32(x) (((bfd_signed_vma) (x) ^ 0x80000000) - 0x80000000)
+#define EIGHT_GAZILLION ((BFD_HOST_64_BIT) 1 << 63)
#define COERCE64(x) \
(((bfd_signed_vma) (x) ^ EIGHT_GAZILLION) - EIGHT_GAZILLION)
bfd_vma
-bfd_getb16 (addr)
- register const bfd_byte *addr;
+bfd_getb16 (const bfd_byte *addr)
{
return (addr[0] << 8) | addr[1];
}
bfd_vma
-bfd_getl16 (addr)
- register const bfd_byte *addr;
+bfd_getl16 (const bfd_byte *addr)
{
return (addr[1] << 8) | addr[0];
}
bfd_signed_vma
-bfd_getb_signed_16 (addr)
- register const bfd_byte *addr;
+bfd_getb_signed_16 (const bfd_byte *addr)
{
- return COERCE16((addr[0] << 8) | addr[1]);
+ return COERCE16 ((addr[0] << 8) | addr[1]);
}
bfd_signed_vma
-bfd_getl_signed_16 (addr)
- register const bfd_byte *addr;
+bfd_getl_signed_16 (const bfd_byte *addr)
{
- return COERCE16((addr[1] << 8) | addr[0]);
+ return COERCE16 ((addr[1] << 8) | addr[0]);
}
void
-bfd_putb16 (data, addr)
- bfd_vma data;
- register bfd_byte *addr;
+bfd_putb16 (bfd_vma data, bfd_byte *addr)
{
addr[0] = (bfd_byte) (data >> 8);
addr[1] = (bfd_byte) data;
}
void
-bfd_putl16 (data, addr)
- bfd_vma data;
- register bfd_byte *addr;
+bfd_putl16 (bfd_vma data, bfd_byte *addr)
{
addr[0] = (bfd_byte) data;
addr[1] = (bfd_byte) (data >> 8);
}
bfd_vma
-bfd_getb32 (addr)
- register const bfd_byte *addr;
+bfd_getb32 (const bfd_byte *addr)
{
unsigned long v;
@@ -497,12 +470,11 @@ bfd_getb32 (addr)
v |= (unsigned long) addr[1] << 16;
v |= (unsigned long) addr[2] << 8;
v |= (unsigned long) addr[3];
- return (bfd_vma) v;
+ return v;
}
bfd_vma
-bfd_getl32 (addr)
- register const bfd_byte *addr;
+bfd_getl32 (const bfd_byte *addr)
{
unsigned long v;
@@ -510,12 +482,11 @@ bfd_getl32 (addr)
v |= (unsigned long) addr[1] << 8;
v |= (unsigned long) addr[2] << 16;
v |= (unsigned long) addr[3] << 24;
- return (bfd_vma) v;
+ return v;
}
bfd_signed_vma
-bfd_getb_signed_32 (addr)
- register const bfd_byte *addr;
+bfd_getb_signed_32 (const bfd_byte *addr)
{
unsigned long v;
@@ -527,8 +498,7 @@ bfd_getb_signed_32 (addr)
}
bfd_signed_vma
-bfd_getl_signed_32 (addr)
- register const bfd_byte *addr;
+bfd_getl_signed_32 (const bfd_byte *addr)
{
unsigned long v;
@@ -540,23 +510,21 @@ bfd_getl_signed_32 (addr)
}
bfd_vma
-bfd_getb64 (addr)
- register const bfd_byte *addr ATTRIBUTE_UNUSED;
+bfd_getb64 (const bfd_byte *addr ATTRIBUTE_UNUSED)
{
#ifdef BFD64
- bfd_vma low, high;
-
- high= ((((((((addr[0]) << 8) |
- addr[1]) << 8) |
- addr[2]) << 8) |
- addr[3]) );
-
- low = (((((((((bfd_vma)addr[4]) << 8) |
- addr[5]) << 8) |
- addr[6]) << 8) |
- addr[7]));
-
- return high << 32 | low;
+ bfd_vma v;
+
+ v = addr[0]; v <<= 8;
+ v |= addr[1]; v <<= 8;
+ v |= addr[2]; v <<= 8;
+ v |= addr[3]; v <<= 8;
+ v |= addr[4]; v <<= 8;
+ v |= addr[5]; v <<= 8;
+ v |= addr[6]; v <<= 8;
+ v |= addr[7];
+
+ return v;
#else
BFD_FAIL();
return 0;
@@ -564,22 +532,21 @@ bfd_getb64 (addr)
}
bfd_vma
-bfd_getl64 (addr)
- register const bfd_byte *addr ATTRIBUTE_UNUSED;
+bfd_getl64 (const bfd_byte *addr ATTRIBUTE_UNUSED)
{
#ifdef BFD64
- bfd_vma low, high;
- high= (((((((addr[7] << 8) |
- addr[6]) << 8) |
- addr[5]) << 8) |
- addr[4]));
-
- low = ((((((((bfd_vma)addr[3] << 8) |
- addr[2]) << 8) |
- addr[1]) << 8) |
- addr[0]) );
-
- return high << 32 | low;
+ bfd_vma v;
+
+ v = addr[7]; v <<= 8;
+ v |= addr[6]; v <<= 8;
+ v |= addr[5]; v <<= 8;
+ v |= addr[4]; v <<= 8;
+ v |= addr[3]; v <<= 8;
+ v |= addr[2]; v <<= 8;
+ v |= addr[1]; v <<= 8;
+ v |= addr[0];
+
+ return v;
#else
BFD_FAIL();
return 0;
@@ -592,19 +559,18 @@ bfd_getb_signed_64 (addr)
register const bfd_byte *addr ATTRIBUTE_UNUSED;
{
#ifdef BFD64
- bfd_vma low, high;
-
- high= ((((((((addr[0]) << 8) |
- addr[1]) << 8) |
- addr[2]) << 8) |
- addr[3]) );
-
- low = (((((((((bfd_vma)addr[4]) << 8) |
- addr[5]) << 8) |
- addr[6]) << 8) |
- addr[7]));
-
- return COERCE64(high << 32 | low);
+ bfd_vma v;
+
+ v = addr[0]; v <<= 8;
+ v |= addr[1]; v <<= 8;
+ v |= addr[2]; v <<= 8;
+ v |= addr[3]; v <<= 8;
+ v |= addr[4]; v <<= 8;
+ v |= addr[5]; v <<= 8;
+ v |= addr[6]; v <<= 8;
+ v |= addr[7];
+
+ return COERCE64 (v);
#else
BFD_FAIL();
return 0;
@@ -616,18 +582,18 @@ bfd_getl_signed_64 (addr)
register const bfd_byte *addr ATTRIBUTE_UNUSED;
{
#ifdef BFD64
- bfd_vma low, high;
- high= (((((((addr[7] << 8) |
- addr[6]) << 8) |
- addr[5]) << 8) |
- addr[4]));
-
- low = ((((((((bfd_vma)addr[3] << 8) |
- addr[2]) << 8) |
- addr[1]) << 8) |
- addr[0]) );
-
- return COERCE64(high << 32 | low);
+ bfd_vma v;
+
+ v = addr[7]; v <<= 8;
+ v |= addr[6]; v <<= 8;
+ v |= addr[5]; v <<= 8;
+ v |= addr[4]; v <<= 8;
+ v |= addr[3]; v <<= 8;
+ v |= addr[2]; v <<= 8;
+ v |= addr[1]; v <<= 8;
+ v |= addr[0];
+
+ return COERCE64 (v);
#else
BFD_FAIL();
return 0;
@@ -635,31 +601,25 @@ bfd_getl_signed_64 (addr)
}
void
-bfd_putb32 (data, addr)
- bfd_vma data;
- register bfd_byte *addr;
+bfd_putb32 (bfd_vma data, bfd_byte *addr)
{
- addr[0] = (bfd_byte) (data >> 24);
- addr[1] = (bfd_byte) (data >> 16);
- addr[2] = (bfd_byte) (data >> 8);
- addr[3] = (bfd_byte) data;
+ addr[0] = (bfd_byte) (data >> 24);
+ addr[1] = (bfd_byte) (data >> 16);
+ addr[2] = (bfd_byte) (data >> 8);
+ addr[3] = (bfd_byte) data;
}
void
-bfd_putl32 (data, addr)
- bfd_vma data;
- register bfd_byte *addr;
+bfd_putl32 (bfd_vma data, bfd_byte *addr)
{
- addr[0] = (bfd_byte) data;
- addr[1] = (bfd_byte) (data >> 8);
- addr[2] = (bfd_byte) (data >> 16);
- addr[3] = (bfd_byte) (data >> 24);
+ addr[0] = (bfd_byte) data;
+ addr[1] = (bfd_byte) (data >> 8);
+ addr[2] = (bfd_byte) (data >> 16);
+ addr[3] = (bfd_byte) (data >> 24);
}
void
-bfd_putb64 (data, addr)
- bfd_vma data ATTRIBUTE_UNUSED;
- register bfd_byte *addr ATTRIBUTE_UNUSED;
+bfd_putb64 (bfd_vma data ATTRIBUTE_UNUSED, bfd_byte *addr ATTRIBUTE_UNUSED)
{
#ifdef BFD64
addr[0] = (bfd_byte) (data >> (7*8));
@@ -676,9 +636,7 @@ bfd_putb64 (data, addr)
}
void
-bfd_putl64 (data, addr)
- bfd_vma data ATTRIBUTE_UNUSED;
- register bfd_byte *addr ATTRIBUTE_UNUSED;
+bfd_putl64 (bfd_vma data ATTRIBUTE_UNUSED, bfd_byte *addr ATTRIBUTE_UNUSED)
{
#ifdef BFD64
addr[7] = (bfd_byte) (data >> (7*8));
@@ -695,11 +653,7 @@ bfd_putl64 (data, addr)
}
void
-bfd_put_bits (data, addr, bits, big_p)
- bfd_vma data;
- bfd_byte *addr;
- int bits;
- bfd_boolean big_p;
+bfd_put_bits (bfd_vma data, bfd_byte *addr, int bits, bfd_boolean big_p)
{
int i;
int bytes;
@@ -718,10 +672,7 @@ bfd_put_bits (data, addr, bits, big_p)
}
bfd_vma
-bfd_get_bits (addr, bits, big_p)
- bfd_byte *addr;
- int bits;
- bfd_boolean big_p;
+bfd_get_bits (bfd_byte *addr, int bits, bfd_boolean big_p)
{
bfd_vma data;
int i;
@@ -745,12 +696,11 @@ bfd_get_bits (addr, bits, big_p)
/* Default implementation */
bfd_boolean
-_bfd_generic_get_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- bfd_size_type count;
+_bfd_generic_get_section_contents (bfd *abfd,
+ sec_ptr section,
+ void *location,
+ file_ptr offset,
+ bfd_size_type count)
{
if (count == 0)
return TRUE;
@@ -769,17 +719,18 @@ _bfd_generic_get_section_contents (abfd, section, location, offset, count)
}
bfd_boolean
-_bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
- bfd *abfd ATTRIBUTE_UNUSED;
- sec_ptr section ATTRIBUTE_UNUSED;
- bfd_window *w ATTRIBUTE_UNUSED;
- file_ptr offset ATTRIBUTE_UNUSED;
- bfd_size_type count ATTRIBUTE_UNUSED;
+_bfd_generic_get_section_contents_in_window
+ (bfd *abfd ATTRIBUTE_UNUSED,
+ sec_ptr section ATTRIBUTE_UNUSED,
+ bfd_window *w ATTRIBUTE_UNUSED,
+ file_ptr offset ATTRIBUTE_UNUSED,
+ bfd_size_type count ATTRIBUTE_UNUSED)
{
#ifdef USE_MMAP
if (count == 0)
return TRUE;
- if (abfd->xvec->_bfd_get_section_contents != _bfd_generic_get_section_contents)
+ if (abfd->xvec->_bfd_get_section_contents
+ != _bfd_generic_get_section_contents)
{
/* We don't know what changes the bfd's get_section_contents
method may have to make. So punt trying to map the file
@@ -787,11 +738,10 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
/* @@ FIXME : If the internal window has a refcount of 1 and was
allocated with malloc instead of mmap, just reuse it. */
bfd_free_window (w);
- w->i = ((bfd_window_internal *)
- bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal)));
+ w->i = bfd_zmalloc (sizeof (bfd_window_internal));
if (w->i == NULL)
return FALSE;
- w->i->data = (PTR) bfd_malloc (count);
+ w->i->data = bfd_malloc (count);
if (w->i->data == NULL)
{
free (w->i);
@@ -819,12 +769,11 @@ _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count)
in read-write files, though. See other set_section_contents functions
to see why it doesn't work for new sections. */
bfd_boolean
-_bfd_generic_set_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- bfd_size_type count;
+_bfd_generic_set_section_contents (bfd *abfd,
+ sec_ptr section,
+ void *location,
+ file_ptr offset,
+ bfd_size_type count)
{
if (count == 0)
return TRUE;
@@ -849,8 +798,7 @@ DESCRIPTION
*/
unsigned int
-bfd_log2 (x)
- bfd_vma x;
+bfd_log2 (bfd_vma x)
{
unsigned int result = 0;
@@ -860,9 +808,7 @@ bfd_log2 (x)
}
bfd_boolean
-bfd_generic_is_local_label_name (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_generic_is_local_label_name (bfd *abfd, const char *name)
{
char locals_prefix = (bfd_get_symbol_leading_char (abfd) == '_') ? 'L' : '.';
@@ -873,9 +819,7 @@ bfd_generic_is_local_label_name (abfd, name)
endianness matches between input and output file. Returns
TRUE for a match, otherwise returns FALSE and emits an error. */
bfd_boolean
-_bfd_generic_verify_endian_match (ibfd, obfd)
- bfd *ibfd;
- bfd *obfd;
+_bfd_generic_verify_endian_match (bfd *ibfd, bfd *obfd)
{
if (ibfd->xvec->byteorder != obfd->xvec->byteorder
&& ibfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN
@@ -901,11 +845,10 @@ _bfd_generic_verify_endian_match (ibfd, obfd)
old routines. */
void
-warn_deprecated (what, file, line, func)
- const char *what;
- const char *file;
- int line;
- const char *func;
+warn_deprecated (const char *what,
+ const char *file,
+ int line,
+ const char *func)
{
/* Poor man's tracking of functions we've already warned about. */
static size_t mask = 0;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 9bbdebd..61c8e65 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -6,7 +6,7 @@
/* libbfd.h -- Declarations used by bfd library *implementation*.
(This include file is not for users of the library.)
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -41,7 +41,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Set a tdata field. Can't use the other macros for this, since they
do casts, and casting to the left of assignment isn't portable. */
-#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v))
+#define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
to an instance of this structure. */
@@ -74,7 +74,7 @@ struct artdata {
archive. */
file_ptr armap_datepos; /* Position within archive to seek to
rewrite the date field. */
- PTR tdata; /* Backend specific information. */
+ void *tdata; /* Backend specific information. */
};
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
@@ -88,105 +88,105 @@ struct areltdata {
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
-extern PTR bfd_malloc
- PARAMS ((bfd_size_type));
-extern PTR bfd_realloc
- PARAMS ((PTR, bfd_size_type));
-extern PTR bfd_zmalloc
- PARAMS ((bfd_size_type));
+extern void *bfd_malloc
+ (bfd_size_type);
+extern void *bfd_realloc
+ (void *, bfd_size_type);
+extern void *bfd_zmalloc
+ (bfd_size_type);
extern bfd_error_handler_type _bfd_error_handler;
/* These routines allocate and free things on the BFD's objalloc. */
-extern PTR bfd_alloc
- PARAMS ((bfd *, bfd_size_type));
-extern PTR bfd_zalloc
- PARAMS ((bfd *, bfd_size_type));
+extern void *bfd_alloc
+ (bfd *, bfd_size_type);
+extern void *bfd_zalloc
+ (bfd *, bfd_size_type);
extern void bfd_release
- PARAMS ((bfd *, PTR));
+ (bfd *, void *);
bfd * _bfd_create_empty_archive_element_shell
- PARAMS ((bfd *obfd));
+ (bfd *obfd);
bfd * _bfd_look_for_bfd_in_cache
- PARAMS ((bfd *, file_ptr));
+ (bfd *, file_ptr);
bfd_boolean _bfd_add_bfd_to_archive_cache
- PARAMS ((bfd *, file_ptr, bfd *));
+ (bfd *, file_ptr, bfd *);
bfd_boolean _bfd_generic_mkarchive
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
const bfd_target *bfd_generic_archive_p
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean bfd_slurp_armap
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean bfd_slurp_bsd_armap_f2
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
#define bfd_slurp_bsd_armap bfd_slurp_armap
#define bfd_slurp_coff_armap bfd_slurp_armap
bfd_boolean _bfd_slurp_extended_name_table
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
extern bfd_boolean _bfd_construct_extended_name_table
- PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *));
+ (bfd *, bfd_boolean, char **, bfd_size_type *);
bfd_boolean _bfd_write_archive_contents
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
bfd_boolean _bfd_compute_and_write_armap
- PARAMS ((bfd *, unsigned int elength));
+ (bfd *, unsigned int elength);
bfd *_bfd_get_elt_at_filepos
- PARAMS ((bfd *archive, file_ptr filepos));
+ (bfd *archive, file_ptr filepos);
extern bfd *_bfd_generic_get_elt_at_index
- PARAMS ((bfd *, symindex));
+ (bfd *, symindex);
bfd * _bfd_new_bfd
- PARAMS ((void));
+ (void);
void _bfd_delete_bfd
- PARAMS ((bfd *));
+ (bfd *);
bfd_boolean bfd_false
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
bfd_boolean bfd_true
- PARAMS ((bfd *ignore));
-PTR bfd_nullvoidptr
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
+void *bfd_nullvoidptr
+ (bfd *ignore);
int bfd_0
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
unsigned int bfd_0u
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
long bfd_0l
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
long _bfd_n1
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
void bfd_void
- PARAMS ((bfd *ignore));
+ (bfd *ignore);
bfd *_bfd_new_bfd_contained_in
- PARAMS ((bfd *));
+ (bfd *);
const bfd_target *_bfd_dummy_target
- PARAMS ((bfd *abfd));
+ (bfd *abfd);
void bfd_dont_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
void bfd_bsd_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
void bfd_gnu_truncate_arname
- PARAMS ((bfd *abfd, const char *filename, char *hdr));
+ (bfd *abfd, const char *filename, char *hdr);
bfd_boolean bsd_write_armap
- PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
- unsigned int orl_count, int stridx));
+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
+ int stridx);
bfd_boolean coff_write_armap
- PARAMS ((bfd *arch, unsigned int elength, struct orl *map,
- unsigned int orl_count, int stridx));
+ (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
+ int stridx);
-extern PTR _bfd_generic_read_ar_hdr
- PARAMS ((bfd *));
+extern void *_bfd_generic_read_ar_hdr
+ (bfd *);
-extern PTR _bfd_generic_read_ar_hdr_mag
- PARAMS ((bfd *, const char *));
+extern void *_bfd_generic_read_ar_hdr_mag
+ (bfd *, const char *);
bfd * bfd_generic_openr_next_archived_file
- PARAMS ((bfd *archive, bfd *last_file));
+ (bfd *archive, bfd *last_file);
int bfd_generic_stat_arch_elt
- PARAMS ((bfd *, struct stat *));
+ (bfd *, struct stat *);
#define _bfd_read_ar_hdr(abfd) \
BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
@@ -197,37 +197,37 @@ int bfd_generic_stat_arch_elt
#define _bfd_generic_close_and_cleanup bfd_true
#define _bfd_generic_bfd_free_cached_info bfd_true
#define _bfd_generic_new_section_hook \
- ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asection *)) bfd_true)
extern bfd_boolean _bfd_generic_get_section_contents
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+ (bfd *, asection *, void *, file_ptr, bfd_size_type);
extern bfd_boolean _bfd_generic_get_section_contents_in_window
- PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type));
+ (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
/* Generic routines to use for BFD_JUMP_TABLE_COPY. Use
BFD_JUMP_TABLE_COPY (_bfd_generic). */
#define _bfd_generic_bfd_copy_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_merge_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
#define _bfd_generic_bfd_set_private_flags \
- ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
+ ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
#define _bfd_generic_bfd_copy_private_section_data \
- ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
#define _bfd_generic_bfd_copy_private_symbol_data \
- ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true)
+ ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
#define _bfd_generic_bfd_print_private_bfd_data \
- ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true)
+ ((bfd_boolean (*) (bfd *, void *)) bfd_true)
/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */
extern char *_bfd_nocore_core_file_failing_command
- PARAMS ((bfd *));
+ (bfd *);
extern int _bfd_nocore_core_file_failing_signal
- PARAMS ((bfd *));
+ (bfd *);
extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */
@@ -235,20 +235,18 @@ extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
#define _bfd_noarchive_slurp_armap bfd_false
#define _bfd_noarchive_slurp_extended_name_table bfd_false
#define _bfd_noarchive_construct_extended_name_table \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \
+ ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
bfd_false)
#define _bfd_noarchive_truncate_arname \
- ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void)
+ ((void (*) (bfd *, const char *, char *)) bfd_void)
#define _bfd_noarchive_write_armap \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
+ ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
bfd_false)
#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
#define _bfd_noarchive_openr_next_archived_file \
- ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr)
+ ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
#define _bfd_noarchive_get_elt_at_index \
- ((bfd *(*) PARAMS ((bfd *, symindex))) bfd_nullvoidptr)
+ ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
#define _bfd_noarchive_update_armap_timestamp bfd_false
@@ -259,7 +257,7 @@ extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
#define _bfd_archive_bsd_slurp_extended_name_table \
_bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
+ (bfd *, char **, bfd_size_type *, const char **);
#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
#define _bfd_archive_bsd_write_armap bsd_write_armap
#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
@@ -269,7 +267,7 @@ extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
#define _bfd_archive_bsd_generic_stat_arch_elt \
bfd_generic_stat_arch_elt
extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
- PARAMS ((bfd *));
+ (bfd *);
/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */
@@ -278,7 +276,7 @@ extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
#define _bfd_archive_coff_slurp_extended_name_table \
_bfd_slurp_extended_name_table
extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
- PARAMS ((bfd *, char **, bfd_size_type *, const char **));
+ (bfd *, char **, bfd_size_type *, const char **);
#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
#define _bfd_archive_coff_write_armap coff_write_armap
#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
@@ -294,49 +292,46 @@ extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
#define _bfd_nosymbols_get_symtab \
- ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
#define _bfd_nosymbols_print_symbol \
- ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void)
+ ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
#define _bfd_nosymbols_get_symbol_info \
- ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
+ ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
#define _bfd_nosymbols_bfd_is_local_label_name \
- ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
#define _bfd_nosymbols_get_lineno \
- ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
+ ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
#define _bfd_nosymbols_find_nearest_line \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \
- const char **, unsigned int *))) \
+ ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
+ const char **, unsigned int *)) \
bfd_false)
#define _bfd_nosymbols_bfd_make_debug_symbol \
- ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr)
+ ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
#define _bfd_nosymbols_read_minisymbols \
- ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1)
+ ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
#define _bfd_nosymbols_minisymbol_to_symbol \
- ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \
+ ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
bfd_nullvoidptr)
/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */
#define _bfd_norelocs_get_reloc_upper_bound \
- ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1)
+ ((long (*) (bfd *, asection *)) _bfd_n1)
#define _bfd_norelocs_canonicalize_reloc \
- ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asection *, arelent **, asymbol **)) _bfd_n1)
#define _bfd_norelocs_bfd_reloc_type_lookup \
- ((reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \
- bfd_nullvoidptr)
+ ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */
#define _bfd_nowrite_set_arch_mach \
- ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
+ ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
bfd_false)
#define _bfd_nowrite_set_section_contents \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
+ ((bfd_boolean (*) (bfd *, asection *, void *, file_ptr, bfd_size_type)) \
bfd_false)
/* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use
@@ -344,45 +339,41 @@ extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
extern bfd_boolean _bfd_generic_set_section_contents
- PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
+ (bfd *, asection *, void *, file_ptr, bfd_size_type);
/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */
-#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0)
+#define _bfd_nolink_sizeof_headers ((int (*) (bfd *, bfd_boolean)) bfd_0)
#define _bfd_nolink_bfd_get_relocated_section_contents \
- ((bfd_byte *(*) \
- PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \
- bfd_byte *, bfd_boolean, asymbol **))) \
+ ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
+ bfd_byte *, bfd_boolean, asymbol **)) \
bfd_nullvoidptr)
#define _bfd_nolink_bfd_relax_section \
((bfd_boolean (*) \
- PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \
+ (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
bfd_false)
#define _bfd_nolink_bfd_gc_sections \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct bfd_link_info *))) \
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
bfd_false)
#define _bfd_nolink_bfd_merge_sections \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct bfd_link_info *))) \
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
bfd_false)
#define _bfd_nolink_bfd_discard_group \
- ((bfd_boolean (*) \
- PARAMS ((bfd *, struct sec *))) \
+ ((bfd_boolean (*) (bfd *, struct sec *)) \
bfd_false)
#define _bfd_nolink_bfd_link_hash_table_create \
- ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
+ ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
#define _bfd_nolink_bfd_link_hash_table_free \
- ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void)
+ ((void (*) (struct bfd_link_hash_table *)) bfd_void)
#define _bfd_nolink_bfd_link_add_symbols \
- ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_just_syms \
- ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void)
+ ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
#define _bfd_nolink_bfd_final_link \
- ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
#define _bfd_nolink_bfd_link_split_section \
- ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false)
+ ((bfd_boolean (*) (bfd *, struct sec *)) bfd_false)
/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC
@@ -390,195 +381,189 @@ extern bfd_boolean _bfd_generic_set_section_contents
#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_symtab \
- ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, asymbol **)) _bfd_n1)
#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
#define _bfd_nodynamic_canonicalize_dynamic_reloc \
- ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1)
+ ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
/* Generic routine to determine of the given symbol is a local
label. */
extern bfd_boolean bfd_generic_is_local_label_name
- PARAMS ((bfd *, const char *));
+ (bfd *, const char *);
/* Generic minisymbol routines. */
extern long _bfd_generic_read_minisymbols
- PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
+ (bfd *, bfd_boolean, void **, unsigned int *);
extern asymbol *_bfd_generic_minisymbol_to_symbol
- PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
+ (bfd *, bfd_boolean, const void *, asymbol *);
/* Find the nearest line using .stab/.stabstr sections. */
extern bfd_boolean _bfd_stab_section_find_nearest_line
- PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
- const char **, const char **, unsigned int *, PTR *));
+ (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
+ const char **, const char **, unsigned int *, void **);
/* Find the neaderst line using DWARF 1 debugging information. */
extern bfd_boolean _bfd_dwarf1_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *));
+ (bfd *, asection *, asymbol **, bfd_vma, const char **,
+ const char **, unsigned int *);
/* Find the nearest line using DWARF 2 debugging information. */
extern bfd_boolean _bfd_dwarf2_find_nearest_line
- PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
- const char **, unsigned int *, unsigned int,
- PTR *));
+ (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
+ unsigned int *, unsigned int, void **);
/* Create a new section entry. */
extern struct bfd_hash_entry *bfd_section_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
+ (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
/* A routine to create entries for a bfd_link_hash_table. */
extern struct bfd_hash_entry *_bfd_link_hash_newfunc
- PARAMS ((struct bfd_hash_entry *entry,
- struct bfd_hash_table *table,
- const char *string));
+ (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
+ const char *string);
/* Initialize a bfd_link_hash_table. */
extern bfd_boolean _bfd_link_hash_table_init
- PARAMS ((struct bfd_link_hash_table *, bfd *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
+ (struct bfd_link_hash_table *, bfd *,
+ struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *));
/* Generic link hash table creation routine. */
extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
- PARAMS ((bfd *));
+ (bfd *);
/* Generic link hash table destruction routine. */
extern void _bfd_generic_link_hash_table_free
- PARAMS ((struct bfd_link_hash_table *));
+ (struct bfd_link_hash_table *);
/* Generic add symbol routine. */
extern bfd_boolean _bfd_generic_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Generic add symbol routine. This version is used by targets for
which the linker must collect constructors and destructors by name,
as the collect2 program does. */
extern bfd_boolean _bfd_generic_link_add_symbols_collect
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
/* Generic archive add symbol routine. */
extern bfd_boolean _bfd_generic_link_add_archive_symbols
- PARAMS ((bfd *, struct bfd_link_info *,
- bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)));
+ (bfd *, struct bfd_link_info *,
+ bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
/* Forward declaration to avoid prototype errors. */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
/* Generic routine to add a single symbol. */
extern bfd_boolean _bfd_generic_link_add_one_symbol
- PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword,
- asection *, bfd_vma, const char *, bfd_boolean copy,
- bfd_boolean constructor, struct bfd_link_hash_entry **));
+ (struct bfd_link_info *, bfd *, const char *name, flagword,
+ asection *, bfd_vma, const char *, bfd_boolean copy,
+ bfd_boolean constructor, struct bfd_link_hash_entry **);
/* Generic routine to mark section as supplying symbols only. */
extern void _bfd_generic_link_just_syms
- PARAMS ((asection *, struct bfd_link_info *));
+ (asection *, struct bfd_link_info *);
/* Generic link routine. */
extern bfd_boolean _bfd_generic_final_link
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_generic_link_split_section
- PARAMS ((bfd *, struct sec *));
+ (bfd *, struct sec *);
/* Generic reloc_link_order processing routine. */
extern bfd_boolean _bfd_generic_reloc_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
/* Default link order processing routine. */
extern bfd_boolean _bfd_default_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
/* Count the number of reloc entries in a link order list. */
extern unsigned int _bfd_count_link_order_relocs
- PARAMS ((struct bfd_link_order *));
+ (struct bfd_link_order *);
/* Final link relocation routine. */
extern bfd_reloc_status_type _bfd_final_link_relocate
- PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
- bfd_vma, bfd_vma, bfd_vma));
+ (reloc_howto_type *, bfd *, asection *, bfd_byte *,
+ bfd_vma, bfd_vma, bfd_vma);
/* Relocate a particular location by a howto and a value. */
extern bfd_reloc_status_type _bfd_relocate_contents
- PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *));
+ (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
/* Link stabs in sections in the first pass. */
extern bfd_boolean _bfd_link_section_stabs
- PARAMS ((bfd *, PTR *, asection *, asection *, PTR *));
+ (bfd *, void **, asection *, asection *, void **);
/* Eliminate stabs for discarded functions and symbols. */
extern bfd_boolean _bfd_discard_section_stabs
- PARAMS ((bfd *, asection *, PTR,
- bfd_boolean (*) (bfd_vma, PTR), PTR));
+ (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
/* Write out the .stab section when linking stabs in sections. */
extern bfd_boolean _bfd_write_section_stabs
- PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *));
+ (bfd *, void **, asection *, void **, bfd_byte *);
/* Write out the .stabstr string table when linking stabs in sections. */
extern bfd_boolean _bfd_write_stab_strings
- PARAMS ((bfd *, PTR *));
+ (bfd *, void **);
/* Find an offset within a .stab section when linking stabs in
sections. */
extern bfd_vma _bfd_stab_section_offset
- PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma));
+ (bfd *, void **, asection *, void **, bfd_vma);
/* Attempt to merge a SEC_MERGE section. */
extern bfd_boolean _bfd_merge_section
- PARAMS ((bfd *, PTR *, asection *, PTR *));
+ (bfd *, void **, asection *, void **);
/* Attempt to merge SEC_MERGE sections. */
extern bfd_boolean _bfd_merge_sections
- PARAMS ((bfd *, PTR, void (*)(bfd *, asection *)));
+ (bfd *, void *, void (*) (bfd *, asection *));
/* Write out a merged section. */
extern bfd_boolean _bfd_write_merged_section
- PARAMS ((bfd *, asection *, PTR));
+ (bfd *, asection *, void *);
/* Find an offset within a modified SEC_MERGE section. */
extern bfd_vma _bfd_merged_section_offset
- PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma));
+ (bfd *, asection **, void *, bfd_vma, bfd_vma);
/* Create a string table. */
extern struct bfd_strtab_hash *_bfd_stringtab_init
- PARAMS ((void));
+ (void);
/* Create an XCOFF .debug section style string table. */
extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
- PARAMS ((void));
+ (void);
/* Free a string table. */
extern void _bfd_stringtab_free
- PARAMS ((struct bfd_strtab_hash *));
+ (struct bfd_strtab_hash *);
/* Get the size of a string table. */
extern bfd_size_type _bfd_stringtab_size
- PARAMS ((struct bfd_strtab_hash *));
+ (struct bfd_strtab_hash *);
/* Add a string to a string table. */
extern bfd_size_type _bfd_stringtab_add
- PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash,
- bfd_boolean copy));
+ (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
/* Write out a string table. */
extern bfd_boolean _bfd_stringtab_emit
- PARAMS ((bfd *, struct bfd_strtab_hash *));
+ (bfd *, struct bfd_strtab_hash *);
/* Check that endianness of input and output file match. */
extern bfd_boolean _bfd_generic_verify_endian_match
- PARAMS ((bfd *, bfd *));
+ (bfd *, bfd *);
/* Macros to tell if bfds are read or write enabled.
@@ -589,20 +574,22 @@ extern bfd_boolean _bfd_generic_verify_endian_match
!bfd_read_p, and only sometimes bfd_write_p.
*/
-#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
-#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
+#define bfd_read_p(abfd) \
+ ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
+#define bfd_write_p(abfd) \
+ ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
void bfd_assert
- PARAMS ((const char*,int));
+ (const char*,int);
#define BFD_ASSERT(x) \
-{ if (!(x)) bfd_assert(__FILE__,__LINE__); }
+ { if (!(x)) bfd_assert(__FILE__,__LINE__); }
#define BFD_FAIL() \
-{ bfd_assert(__FILE__,__LINE__); }
+ { bfd_assert(__FILE__,__LINE__); }
extern void _bfd_abort
- PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN;
+ (const char *, int, const char *) ATTRIBUTE_NORETURN;
/* if gcc >= 2.6, we can give a function name, too */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
@@ -613,7 +600,7 @@ extern void _bfd_abort
#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
FILE * bfd_cache_lookup_worker
- PARAMS ((bfd *));
+ (bfd *);
extern bfd *bfd_last_cache;
@@ -633,42 +620,41 @@ struct ecoff_find_line;
#endif
extern bfd_boolean _bfd_ecoff_locate_line
- PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
- const struct ecoff_debug_swap * const, struct ecoff_find_line *,
- const char **, const char **, unsigned int *));
+ (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
+ const struct ecoff_debug_swap * const, struct ecoff_find_line *,
+ const char **, const char **, unsigned int *);
extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_sym
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_boolean _bfd_ecoff_get_accumulated_ss
- PARAMS ((PTR, bfd_byte *));
+ (void *, bfd_byte *);
extern bfd_vma _bfd_get_gp_value
- PARAMS ((bfd *));
+ (bfd *);
extern void _bfd_set_gp_value
- PARAMS ((bfd *, bfd_vma));
+ (bfd *, bfd_vma);
/* Function shared by the COFF and ELF SH backends, which have no
other common header files. */
+#ifndef _bfd_sh_align_load_span
extern bfd_boolean _bfd_sh_align_load_span
- PARAMS ((bfd *, asection *, bfd_byte *,
- bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
- PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *));
-
+ (bfd *, asection *, bfd_byte *,
+ bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
+ void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
+#endif
/* Extracted from init.c. */
/* Extracted from libbfd.c. */
-bfd_boolean
-bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int));
+bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
-unsigned int
-bfd_log2 PARAMS ((bfd_vma x));
+unsigned int bfd_log2 (bfd_vma x);
/* Extracted from bfdio.c. */
/* Extracted from bfdwin.c. */
struct _bfd_window_internal {
struct _bfd_window_internal *next;
- PTR data;
+ void *data;
bfd_size_type size;
int refcount : 31; /* should be enough... */
unsigned mapped : 1; /* 1 = mmap, 0 = malloc */
@@ -681,17 +667,13 @@ extern bfd *bfd_last_cache;
((x)==bfd_last_cache? \
(FILE*) (bfd_last_cache->iostream): \
bfd_cache_lookup_worker(x))
-bfd_boolean
-bfd_cache_init PARAMS ((bfd *abfd));
+bfd_boolean bfd_cache_init (bfd *abfd);
-bfd_boolean
-bfd_cache_close PARAMS ((bfd *abfd));
+bfd_boolean bfd_cache_close (bfd *abfd);
-FILE*
-bfd_open_file PARAMS ((bfd *abfd));
+FILE* bfd_open_file (bfd *abfd);
-FILE *
-bfd_cache_lookup_worker PARAMS ((bfd *abfd));
+FILE *bfd_cache_lookup_worker (bfd *abfd);
/* Extracted from reloc.c. */
#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
@@ -881,6 +863,14 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_FRV_GPREL32",
"BFD_RELOC_FRV_GPRELHI",
"BFD_RELOC_FRV_GPRELLO",
+ "BFD_RELOC_MN10300_GOTOFF24",
+ "BFD_RELOC_MN10300_GOT32",
+ "BFD_RELOC_MN10300_GOT24",
+ "BFD_RELOC_MN10300_GOT16",
+ "BFD_RELOC_MN10300_COPY",
+ "BFD_RELOC_MN10300_GLOB_DAT",
+ "BFD_RELOC_MN10300_JMP_SLOT",
+ "BFD_RELOC_MN10300_RELATIVE",
"BFD_RELOC_386_GOT32",
"BFD_RELOC_386_PLT32",
@@ -1302,6 +1292,10 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_390_TLS_DTPMOD",
"BFD_RELOC_390_TLS_DTPOFF",
"BFD_RELOC_390_TLS_TPOFF",
+ "BFD_RELOC_390_20",
+ "BFD_RELOC_390_GOT20",
+ "BFD_RELOC_390_GOTPLT20",
+ "BFD_RELOC_390_TLS_GOTIE20",
"BFD_RELOC_IP2K_FR9",
"BFD_RELOC_IP2K_BANK",
"BFD_RELOC_IP2K_ADDR16CJP",
@@ -1489,44 +1483,40 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
};
#endif
-reloc_howto_type *
-bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
+reloc_howto_type *bfd_default_reloc_type_lookup
+ (bfd *abfd, bfd_reloc_code_real_type code);
-bfd_boolean
-bfd_generic_relax_section PARAMS ((bfd *abfd,
+bfd_boolean bfd_generic_relax_section
+ (bfd *abfd,
asection *section,
struct bfd_link_info *,
- bfd_boolean *));
+ bfd_boolean *);
-bfd_boolean
-bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *));
+bfd_boolean bfd_generic_gc_sections
+ (bfd *, struct bfd_link_info *);
-bfd_boolean
-bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *));
+bfd_boolean bfd_generic_merge_sections
+ (bfd *, struct bfd_link_info *);
-bfd_byte *
-bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
+bfd_byte *bfd_generic_get_relocated_section_contents
+ (bfd *abfd,
struct bfd_link_info *link_info,
struct bfd_link_order *link_order,
bfd_byte *data,
- bfd_boolean relocateable,
- asymbol **symbols));
+ bfd_boolean relocatable,
+ asymbol **symbols);
/* Extracted from archures.c. */
extern const bfd_arch_info_type bfd_default_arch_struct;
-bfd_boolean
-bfd_default_set_arch_mach PARAMS ((bfd *abfd,
- enum bfd_architecture arch,
- unsigned long mach));
+bfd_boolean bfd_default_set_arch_mach
+ (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
-const bfd_arch_info_type *
-bfd_default_compatible PARAMS ((const bfd_arch_info_type *a,
- const bfd_arch_info_type *b));
+const bfd_arch_info_type *bfd_default_compatible
+ (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
-bfd_boolean
-bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string));
+bfd_boolean bfd_default_scan
+ (const struct bfd_arch_info *info, const char *string);
/* Extracted from elf.c. */
-struct elf_internal_shdr *
-bfd_elf_find_section PARAMS ((bfd *abfd, char *name));
+struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
diff --git a/bfd/libcoff-in.h b/bfd/libcoff-in.h
index fac7650..0c19433 100644
--- a/bfd/libcoff-in.h
+++ b/bfd/libcoff-in.h
@@ -1,6 +1,6 @@
/* BFD COFF object file private structure.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -434,7 +434,7 @@ struct coff_debug_merge_hash_table
bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
/* Information we keep for each section in the output file when doing
- a relocateable link. */
+ a relocatable link. */
struct coff_link_section_info
{
@@ -461,7 +461,7 @@ struct coff_final_link_info
bfd_boolean global_to_static;
/* Hash table for long symbol names. */
struct bfd_strtab_hash *strtab;
- /* When doing a relocateable link, an array of information kept for
+ /* When doing a relocatable link, an array of information kept for
each output section, indexed by the target_index field. */
struct coff_link_section_info *section_info;
/* Symbol index of last C_FILE symbol (-1 if none). */
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index 1beec22..3cac32a 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -4,7 +4,7 @@
/* BFD COFF object file private structure.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002
+ 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -438,7 +438,7 @@ struct coff_debug_merge_hash_table
bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
/* Information we keep for each section in the output file when doing
- a relocateable link. */
+ a relocatable link. */
struct coff_link_section_info
{
@@ -465,7 +465,7 @@ struct coff_final_link_info
bfd_boolean global_to_static;
/* Hash table for long symbol names. */
struct bfd_strtab_hash *strtab;
- /* When doing a relocateable link, an array of information kept for
+ /* When doing a relocatable link, an array of information kept for
each output section, indexed by the target_index field. */
struct coff_link_section_info *section_info;
/* Symbol index of last C_FILE symbol (-1 if none). */
diff --git a/bfd/libhppa.h b/bfd/libhppa.h
index 52ebf51..f6aa234 100644
--- a/bfd/libhppa.h
+++ b/bfd/libhppa.h
@@ -1,6 +1,6 @@
/* HP PA-RISC SOM object file format: definitions internal to BFD.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
- Free Software Foundation, Inc.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
+ 2003 Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -27,14 +27,6 @@
#define BYTES_IN_WORD 4
#define PA_PAGESIZE 0x1000
-#ifndef INLINE
-#ifdef __GNUC__
-#define INLINE inline
-#else
-#define INLINE
-#endif /* GNU C? */
-#endif /* INLINE */
-
/* The PA instruction set variants. */
enum pa_arch {pa10 = 10, pa11 = 11, pa20 = 20, pa20w = 25};
@@ -164,40 +156,38 @@ enum hppa_reloc_expr_type_alt
/* Some functions to manipulate PA instructions. */
/* Declare the functions with the unused attribute to avoid warnings. */
-static INLINE int sign_extend PARAMS ((int, int)) ATTRIBUTE_UNUSED;
-static INLINE int low_sign_extend PARAMS ((int, int)) ATTRIBUTE_UNUSED;
-static INLINE int sign_unext PARAMS ((int, int)) ATTRIBUTE_UNUSED;
-static INLINE int low_sign_unext PARAMS ((int, int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_3 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_12 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_14 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_16 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_17 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_21 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE int re_assemble_22 PARAMS ((int)) ATTRIBUTE_UNUSED;
-static INLINE bfd_signed_vma hppa_field_adjust
- PARAMS ((bfd_vma, bfd_signed_vma,
- enum hppa_reloc_field_selector_type_alt)) ATTRIBUTE_UNUSED;
-static INLINE int bfd_hppa_insn2fmt PARAMS ((bfd *, int)) ATTRIBUTE_UNUSED;
-static INLINE int hppa_rebuild_insn PARAMS ((int, int, int)) ATTRIBUTE_UNUSED;
+static inline int sign_extend (int, int) ATTRIBUTE_UNUSED;
+static inline int low_sign_extend (int, int) ATTRIBUTE_UNUSED;
+static inline int sign_unext (int, int) ATTRIBUTE_UNUSED;
+static inline int low_sign_unext (int, int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_3 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_12 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_14 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_16 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_17 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_21 (int) ATTRIBUTE_UNUSED;
+static inline int re_assemble_22 (int) ATTRIBUTE_UNUSED;
+static inline bfd_signed_vma hppa_field_adjust
+ (bfd_vma, bfd_signed_vma, enum hppa_reloc_field_selector_type_alt)
+ ATTRIBUTE_UNUSED;
+static inline int bfd_hppa_insn2fmt (bfd *, int) ATTRIBUTE_UNUSED;
+static inline int hppa_rebuild_insn (int, int, int) ATTRIBUTE_UNUSED;
/* The *sign_extend functions are used to assemble various bitfields
taken from an instruction and return the resulting immediate
value. */
-static INLINE int
-sign_extend (x, len)
- int x, len;
+static inline int
+sign_extend (int x, int len)
{
int signbit = (1 << (len - 1));
int mask = (signbit << 1) - 1;
return ((x & mask) ^ signbit) - signbit;
}
-static INLINE int
-low_sign_extend (x, len)
- int x, len;
+static inline int
+low_sign_extend (int x, int len)
{
return (x >> 1) - ((x & 1) << (len - 1));
}
@@ -207,9 +197,8 @@ low_sign_extend (x, len)
insertion into an opcode. pa-risc uses all sorts of weird bitfields
in the instruction to hold the value. */
-static INLINE int
-sign_unext (x, len)
- int x, len;
+static inline int
+sign_unext (int x, int len)
{
int len_ones;
@@ -218,9 +207,8 @@ sign_unext (x, len)
return x & len_ones;
}
-static INLINE int
-low_sign_unext (x, len)
- int x, len;
+static inline int
+low_sign_unext (int x, int len)
{
int temp;
int sign;
@@ -232,34 +220,30 @@ low_sign_unext (x, len)
return (temp << 1) | sign;
}
-static INLINE int
-re_assemble_3 (as3)
- int as3;
+static inline int
+re_assemble_3 (int as3)
{
return (( (as3 & 4) << (13-2))
| ((as3 & 3) << (13+1)));
}
-static INLINE int
-re_assemble_12 (as12)
- int as12;
+static inline int
+re_assemble_12 (int as12)
{
return (( (as12 & 0x800) >> 11)
| ((as12 & 0x400) >> (10 - 2))
| ((as12 & 0x3ff) << (1 + 2)));
}
-static INLINE int
-re_assemble_14 (as14)
- int as14;
+static inline int
+re_assemble_14 (int as14)
{
return (( (as14 & 0x1fff) << 1)
| ((as14 & 0x2000) >> 13));
}
-static INLINE int
-re_assemble_16 (as16)
- int as16;
+static inline int
+re_assemble_16 (int as16)
{
int s, t;
@@ -269,9 +253,8 @@ re_assemble_16 (as16)
return (t ^ s ^ (s >> 1)) | (s >> 15);
}
-static INLINE int
-re_assemble_17 (as17)
- int as17;
+static inline int
+re_assemble_17 (int as17)
{
return (( (as17 & 0x10000) >> 16)
| ((as17 & 0x0f800) << (16 - 11))
@@ -279,9 +262,8 @@ re_assemble_17 (as17)
| ((as17 & 0x003ff) << (1 + 2)));
}
-static INLINE int
-re_assemble_21 (as21)
- int as21;
+static inline int
+re_assemble_21 (int as21)
{
return (( (as21 & 0x100000) >> 20)
| ((as21 & 0x0ffe00) >> 8)
@@ -290,9 +272,8 @@ re_assemble_21 (as21)
| ((as21 & 0x000003) << 12));
}
-static INLINE int
-re_assemble_22 (as22)
- int as22;
+static inline int
+re_assemble_22 (int as22)
{
return (( (as22 & 0x200000) >> 21)
| ((as22 & 0x1f0000) << (21 - 16))
@@ -312,11 +293,10 @@ re_assemble_22 (as22)
This function returns sign extended values in all cases.
*/
-static INLINE bfd_signed_vma
-hppa_field_adjust (sym_val, addend, r_field)
- bfd_vma sym_val;
- bfd_signed_vma addend;
- enum hppa_reloc_field_selector_type_alt r_field;
+static inline bfd_signed_vma
+hppa_field_adjust (bfd_vma sym_val,
+ bfd_signed_vma addend,
+ enum hppa_reloc_field_selector_type_alt r_field)
{
bfd_signed_vma value;
@@ -479,10 +459,8 @@ enum hppa_opcode_type
/* Given a machine instruction, return its format. */
-static INLINE int
-bfd_hppa_insn2fmt (abfd, insn)
- bfd *abfd;
- int insn;
+static inline int
+bfd_hppa_insn2fmt (bfd *abfd, int insn)
{
enum hppa_opcode_type op = get_opcode (insn);
@@ -563,11 +541,8 @@ bfd_hppa_insn2fmt (abfd, insn)
/* Insert VALUE into INSN using R_FORMAT to determine exactly what
bits to change. */
-static INLINE int
-hppa_rebuild_insn (insn, value, r_format)
- int insn;
- int value;
- int r_format;
+static inline int
+hppa_rebuild_insn (int insn, int value, int r_format)
{
switch (r_format)
{
diff --git a/bfd/libpei.h b/bfd/libpei.h
index 72fa7b5..9ed9c12 100644
--- a/bfd/libpei.h
+++ b/bfd/libpei.h
@@ -332,4 +332,6 @@ bfd_boolean _bfd_XX_bfd_copy_private_section_data
PARAMS ((bfd *, asection *, bfd *, asection *));
/* Macro: Returns true if the bfd is a PE executable as opposed to a PE object file. */
-#define bfd_pe_executable_p(abfd) (strncmp ((abfd)->xvec->name, "pei-", 4) == 0)
+#define bfd_pe_executable_p(abfd) \
+ (strncmp ((abfd)->xvec->name, "pei-", 4) == 0 \
+ || strncmp ((abfd)->xvec->name, "efi-app-", 8) == 0)
diff --git a/bfd/linker.c b/bfd/linker.c
index c0e3236..b7c5576 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -88,7 +88,7 @@ SUBSECTION
For example, with each entry in the hash table the a.out
linker keeps the index the symbol has in the final output file
- (this index number is used so that when doing a relocateable
+ (this index number is used so that when doing a relocatable
link the symbol index used in the output file can be quickly
filled in when copying over a reloc). The a.out linker code
defines the required structures and functions for a hash table
@@ -277,7 +277,7 @@ SUBSECTION
the input sections and copy the data into the output sections.
It must build an output symbol table including any local
symbols from the input files and the global symbols from the
- hash table. When producing relocateable output, it must
+ hash table. When producing relocatable output, it must
modify the input relocs and write them into the output file.
There may also be object format dependent work to be done.
@@ -317,7 +317,7 @@ SUBSUBSECTION
types of information. They also describe relocs that must be
created by the BFD backend, but do not correspond to any input
file; this is used to support -Ur, which builds constructors
- while generating a relocateable object file.
+ while generating a relocatable object file.
INODE
Relocating the section contents, Writing the symbol table, Information provided by the linker, Performing the Final Link
@@ -339,7 +339,7 @@ SUBSUBSECTION
input files. The <<_bfd_final_link>> function should read the
contents of the section and any associated relocs, apply the
relocs to the section contents, and write out the modified
- section contents. If performing a relocateable link, the
+ section contents. If performing a relocatable link, the
relocs themselves must also be modified and written out.
@findex _bfd_relocate_contents
@@ -406,34 +406,26 @@ SUBSUBSECTION
file at the end of <<NAME(aout,final_link)>>.
*/
-static bfd_boolean generic_link_read_symbols
- PARAMS ((bfd *));
-static bfd_boolean generic_link_add_symbols
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect));
static bfd_boolean generic_link_add_object_symbols
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect));
+ (bfd *, struct bfd_link_info *, bfd_boolean collect);
+static bfd_boolean generic_link_add_symbols
+ (bfd *, struct bfd_link_info *, bfd_boolean);
static bfd_boolean generic_link_check_archive_element_no_collect
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+ (bfd *, struct bfd_link_info *, bfd_boolean *);
static bfd_boolean generic_link_check_archive_element_collect
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+ (bfd *, struct bfd_link_info *, bfd_boolean *);
static bfd_boolean generic_link_check_archive_element
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded,
- bfd_boolean collect));
+ (bfd *, struct bfd_link_info *, bfd_boolean *, bfd_boolean);
static bfd_boolean generic_link_add_symbol_list
- PARAMS ((bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **,
- bfd_boolean collect));
-static bfd *hash_entry_bfd
- PARAMS ((struct bfd_link_hash_entry *));
-static void set_symbol_from_hash
- PARAMS ((asymbol *, struct bfd_link_hash_entry *));
+ (bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **,
+ bfd_boolean);
static bfd_boolean generic_add_output_symbol
- PARAMS ((bfd *, size_t *psymalloc, asymbol *));
+ (bfd *, size_t *psymalloc, asymbol *);
static bfd_boolean default_data_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
static bfd_boolean default_indirect_link_order
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
- struct bfd_link_order *, bfd_boolean));
+ (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *,
+ bfd_boolean);
/* The link hash table structure is defined in bfdlink.h. It provides
a base hash table which the backend specific hash tables are built
@@ -442,17 +434,15 @@ static bfd_boolean default_indirect_link_order
/* Routine to create an entry in the link hash table. */
struct bfd_hash_entry *
-_bfd_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+_bfd_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
if (entry == NULL)
{
- entry = (struct bfd_hash_entry *)
- bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry));
+ entry = bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry));
if (entry == NULL)
return entry;
}
@@ -475,12 +465,12 @@ _bfd_link_hash_newfunc (entry, table, string)
responsible for creating this table. */
bfd_boolean
-_bfd_link_hash_table_init (table, abfd, newfunc)
- struct bfd_link_hash_table *table;
- bfd *abfd;
- struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *));
+_bfd_link_hash_table_init
+ (struct bfd_link_hash_table *table,
+ bfd *abfd,
+ struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *))
{
table->creator = abfd->xvec;
table->undefs = NULL;
@@ -495,19 +485,18 @@ _bfd_link_hash_table_init (table, abfd, newfunc)
the real symbol. */
struct bfd_link_hash_entry *
-bfd_link_hash_lookup (table, string, create, copy, follow)
- struct bfd_link_hash_table *table;
- const char *string;
- bfd_boolean create;
- bfd_boolean copy;
- bfd_boolean follow;
+bfd_link_hash_lookup (struct bfd_link_hash_table *table,
+ const char *string,
+ bfd_boolean create,
+ bfd_boolean copy,
+ bfd_boolean follow)
{
struct bfd_link_hash_entry *ret;
ret = ((struct bfd_link_hash_entry *)
bfd_hash_lookup (&table->table, string, create, copy));
- if (follow && ret != (struct bfd_link_hash_entry *) NULL)
+ if (follow && ret != NULL)
{
while (ret->type == bfd_link_hash_indirect
|| ret->type == bfd_link_hash_warning)
@@ -522,13 +511,12 @@ bfd_link_hash_lookup (table, string, create, copy, follow)
undefined symbol, not for definitions of a symbol. */
struct bfd_link_hash_entry *
-bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
- bfd *abfd;
- struct bfd_link_info *info;
- const char *string;
- bfd_boolean create;
- bfd_boolean copy;
- bfd_boolean follow;
+bfd_wrapped_link_hash_lookup (bfd *abfd,
+ struct bfd_link_info *info,
+ const char *string,
+ bfd_boolean create,
+ bfd_boolean copy,
+ bfd_boolean follow)
{
bfd_size_type amt;
@@ -552,7 +540,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
references to SYM with references to __wrap_SYM. */
amt = strlen (l) + sizeof WRAP + 1;
- n = (char *) bfd_malloc (amt);
+ n = bfd_malloc (amt);
if (n == NULL)
return NULL;
@@ -584,7 +572,7 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
with references to SYM. */
amt = strlen (l + sizeof REAL - 1) + 2;
- n = (char *) bfd_malloc (amt);
+ n = bfd_malloc (amt);
if (n == NULL)
return NULL;
@@ -610,28 +598,26 @@ bfd_wrapped_link_hash_lookup (abfd, info, string, create, copy, follow)
call. */
void
-bfd_link_hash_traverse (table, func, info)
- struct bfd_link_hash_table *table;
- bfd_boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR));
- PTR info;
+bfd_link_hash_traverse
+ (struct bfd_link_hash_table *table,
+ bfd_boolean (*func) (struct bfd_link_hash_entry *, void *),
+ void *info)
{
bfd_hash_traverse (&table->table,
- ((bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR)))
- func),
+ (bfd_boolean (*) (struct bfd_hash_entry *, void *)) func,
info);
}
/* Add a symbol to the linker hash table undefs list. */
-INLINE void
-bfd_link_add_undef (table, h)
- struct bfd_link_hash_table *table;
- struct bfd_link_hash_entry *h;
+void
+bfd_link_add_undef (struct bfd_link_hash_table *table,
+ struct bfd_link_hash_entry *h)
{
BFD_ASSERT (h->next == NULL);
- if (table->undefs_tail != (struct bfd_link_hash_entry *) NULL)
+ if (table->undefs_tail != NULL)
table->undefs_tail->next = h;
- if (table->undefs == (struct bfd_link_hash_entry *) NULL)
+ if (table->undefs == NULL)
table->undefs = h;
table->undefs_tail = h;
}
@@ -639,16 +625,15 @@ bfd_link_add_undef (table, h)
/* Routine to create an entry in a generic link hash table. */
struct bfd_hash_entry *
-_bfd_generic_link_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+_bfd_generic_link_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
if (entry == NULL)
{
- entry = (struct bfd_hash_entry *)
+ entry =
bfd_hash_allocate (table, sizeof (struct generic_link_hash_entry));
if (entry == NULL)
return entry;
@@ -672,27 +657,25 @@ _bfd_generic_link_hash_newfunc (entry, table, string)
/* Create a generic link hash table. */
struct bfd_link_hash_table *
-_bfd_generic_link_hash_table_create (abfd)
- bfd *abfd;
+_bfd_generic_link_hash_table_create (bfd *abfd)
{
struct generic_link_hash_table *ret;
bfd_size_type amt = sizeof (struct generic_link_hash_table);
- ret = (struct generic_link_hash_table *) bfd_malloc (amt);
+ ret = bfd_malloc (amt);
if (ret == NULL)
- return (struct bfd_link_hash_table *) NULL;
+ return NULL;
if (! _bfd_link_hash_table_init (&ret->root, abfd,
_bfd_generic_link_hash_newfunc))
{
free (ret);
- return (struct bfd_link_hash_table *) NULL;
+ return NULL;
}
return &ret->root;
}
void
-_bfd_generic_link_hash_table_free (hash)
- struct bfd_link_hash_table *hash;
+_bfd_generic_link_hash_table_free (struct bfd_link_hash_table *hash)
{
struct generic_link_hash_table *ret
= (struct generic_link_hash_table *) hash;
@@ -709,10 +692,9 @@ _bfd_generic_link_hash_table_free (hash)
structure. */
static bfd_boolean
-generic_link_read_symbols (abfd)
- bfd *abfd;
+generic_link_read_symbols (bfd *abfd)
{
- if (bfd_get_outsymbols (abfd) == (asymbol **) NULL)
+ if (bfd_get_outsymbols (abfd) == NULL)
{
long symsize;
long symcount;
@@ -720,8 +702,7 @@ generic_link_read_symbols (abfd)
symsize = bfd_get_symtab_upper_bound (abfd);
if (symsize < 0)
return FALSE;
- bfd_get_outsymbols (abfd) =
- (asymbol **) bfd_alloc (abfd, (bfd_size_type) symsize);
+ bfd_get_outsymbols (abfd) = bfd_alloc (abfd, symsize);
if (bfd_get_outsymbols (abfd) == NULL && symsize != 0)
return FALSE;
symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd));
@@ -738,9 +719,7 @@ generic_link_read_symbols (abfd)
constructors by name. */
bfd_boolean
-_bfd_generic_link_add_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_generic_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
return generic_link_add_symbols (abfd, info, FALSE);
}
@@ -753,9 +732,7 @@ _bfd_generic_link_add_symbols (abfd, info)
for which gcc uses collect2 and do not support stabs. */
bfd_boolean
-_bfd_generic_link_add_symbols_collect (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_generic_link_add_symbols_collect (bfd *abfd, struct bfd_link_info *info)
{
return generic_link_add_symbols (abfd, info, TRUE);
}
@@ -765,9 +742,8 @@ _bfd_generic_link_add_symbols_collect (abfd, info)
file are absolute. */
void
-_bfd_generic_link_just_syms (sec, info)
- asection *sec;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
+_bfd_generic_link_just_syms (asection *sec,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
sec->output_section = bfd_abs_section_ptr;
sec->output_offset = sec->vma;
@@ -776,10 +752,9 @@ _bfd_generic_link_just_syms (sec, info)
/* Add symbols from an object file to the global hash table. */
static bfd_boolean
-generic_link_add_symbols (abfd, info, collect)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean collect;
+generic_link_add_symbols (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean collect)
{
bfd_boolean ret;
@@ -806,10 +781,9 @@ generic_link_add_symbols (abfd, info, collect)
/* Add symbols from an object file to the global hash table. */
static bfd_boolean
-generic_link_add_object_symbols (abfd, info, collect)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean collect;
+generic_link_add_object_symbols (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean collect)
{
bfd_size_type symcount;
struct symbol_cache_entry **outsyms;
@@ -848,30 +822,20 @@ struct archive_hash_table
struct bfd_hash_table table;
};
-static struct bfd_hash_entry *archive_hash_newfunc
- PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
-static bfd_boolean archive_hash_table_init
- PARAMS ((struct archive_hash_table *,
- struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *)));
-
/* Create a new entry for an archive hash table. */
static struct bfd_hash_entry *
-archive_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+archive_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
struct archive_hash_entry *ret = (struct archive_hash_entry *) entry;
/* Allocate the structure if it has not already been allocated by a
subclass. */
- if (ret == (struct archive_hash_entry *) NULL)
- ret = ((struct archive_hash_entry *)
- bfd_hash_allocate (table, sizeof (struct archive_hash_entry)));
- if (ret == (struct archive_hash_entry *) NULL)
+ if (ret == NULL)
+ ret = bfd_hash_allocate (table, sizeof (struct archive_hash_entry));
+ if (ret == NULL)
return NULL;
/* Call the allocation method of the superclass. */
@@ -881,20 +845,20 @@ archive_hash_newfunc (entry, table, string)
if (ret)
{
/* Initialize the local fields. */
- ret->defs = (struct archive_list *) NULL;
+ ret->defs = NULL;
}
- return (struct bfd_hash_entry *) ret;
+ return &ret->root;
}
/* Initialize an archive hash table. */
static bfd_boolean
-archive_hash_table_init (table, newfunc)
- struct archive_hash_table *table;
- struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *,
- struct bfd_hash_table *,
- const char *));
+archive_hash_table_init
+ (struct archive_hash_table *table,
+ struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
+ struct bfd_hash_table *,
+ const char *))
{
return bfd_hash_table_init (&table->table, newfunc);
}
@@ -947,11 +911,10 @@ archive_hash_table_init (table, newfunc)
object file to be included. */
bfd_boolean
-_bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean (*checkfn)
- PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded));
+_bfd_generic_link_add_archive_symbols
+ (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean (*checkfn) (bfd *, struct bfd_link_info *, bfd_boolean *))
{
carsym *arsyms;
carsym *arsym_end;
@@ -964,7 +927,7 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
if (! bfd_has_map (abfd))
{
/* An empty archive is a special case. */
- if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL)
+ if (bfd_openr_next_archived_file (abfd, NULL) == NULL)
return TRUE;
bfd_set_error (bfd_error_no_armap);
return FALSE;
@@ -983,16 +946,14 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
struct archive_list *l, **pp;
arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE);
- if (arh == (struct archive_hash_entry *) NULL)
+ if (arh == NULL)
goto error_return;
l = ((struct archive_list *)
archive_hash_allocate (&arsym_hash, sizeof (struct archive_list)));
if (l == NULL)
goto error_return;
l->indx = indx;
- for (pp = &arh->defs;
- *pp != (struct archive_list *) NULL;
- pp = &(*pp)->next)
+ for (pp = &arh->defs; *pp != NULL; pp = &(*pp)->next)
;
*pp = l;
l->next = NULL;
@@ -1006,7 +967,7 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
/* New undefined symbols are added to the end of the list, so we
only need to look through it once. */
pundef = &info->hash->undefs;
- while (*pundef != (struct bfd_link_hash_entry *) NULL)
+ while (*pundef != NULL)
{
struct bfd_link_hash_entry *h;
struct archive_hash_entry *arh;
@@ -1035,14 +996,14 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
/* Look for this symbol in the archive symbol map. */
arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE);
- if (arh == (struct archive_hash_entry *) NULL)
+ if (arh == NULL)
{
/* If we haven't found the exact symbol we're looking for,
let's look for its import thunk */
if (info->pei386_auto_import)
{
bfd_size_type amt = strlen (h->root.string) + 10;
- char *buf = (char *) bfd_malloc (amt);
+ char *buf = bfd_malloc (amt);
if (buf == NULL)
return FALSE;
@@ -1050,14 +1011,14 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE);
free(buf);
}
- if (arh == (struct archive_hash_entry *) NULL)
+ if (arh == NULL)
{
pundef = &(*pundef)->next;
continue;
}
}
/* Look at all the objects which define this symbol. */
- for (l = arh->defs; l != (struct archive_list *) NULL; l = l->next)
+ for (l = arh->defs; l != NULL; l = l->next)
{
bfd *element;
bfd_boolean needed;
@@ -1068,7 +1029,7 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
break;
element = bfd_get_elt_at_index (abfd, l->indx);
- if (element == (bfd *) NULL)
+ if (element == NULL)
goto error_return;
/* If we've already included this element, or if we've
@@ -1122,10 +1083,10 @@ _bfd_generic_link_add_archive_symbols (abfd, info, checkfn)
for finding them. */
static bfd_boolean
-generic_link_check_archive_element_no_collect (abfd, info, pneeded)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean *pneeded;
+generic_link_check_archive_element_no_collect (
+ bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean *pneeded)
{
return generic_link_check_archive_element (abfd, info, pneeded, FALSE);
}
@@ -1135,10 +1096,9 @@ generic_link_check_archive_element_no_collect (abfd, info, pneeded)
symbol name, as collect2 does. */
static bfd_boolean
-generic_link_check_archive_element_collect (abfd, info, pneeded)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean *pneeded;
+generic_link_check_archive_element_collect (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean *pneeded)
{
return generic_link_check_archive_element (abfd, info, pneeded, TRUE);
}
@@ -1147,11 +1107,10 @@ generic_link_check_archive_element_collect (abfd, info, pneeded)
constructors. */
static bfd_boolean
-generic_link_check_archive_element (abfd, info, pneeded, collect)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_boolean *pneeded;
- bfd_boolean collect;
+generic_link_check_archive_element (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_boolean *pneeded,
+ bfd_boolean collect)
{
asymbol **pp, **ppend;
@@ -1181,7 +1140,7 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
SVR4 ABI, p. 4-27. */
h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), FALSE,
FALSE, TRUE);
- if (h == (struct bfd_link_hash_entry *) NULL
+ if (h == NULL
|| (h->type != bfd_link_hash_undefined
&& h->type != bfd_link_hash_common))
continue;
@@ -1215,7 +1174,7 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
unsigned int power;
symbfd = h->u.undef.abfd;
- if (symbfd == (bfd *) NULL)
+ if (symbfd == NULL)
{
/* This symbol was created as undefined from outside
BFD. We assume that we should link in the object
@@ -1236,9 +1195,8 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
will be linked in. */
h->type = bfd_link_hash_common;
h->u.c.p =
- ((struct bfd_link_hash_common_entry *)
- bfd_hash_allocate (&info->hash->table,
- sizeof (struct bfd_link_hash_common_entry)));
+ bfd_hash_allocate (&info->hash->table,
+ sizeof (struct bfd_link_hash_common_entry));
if (h->u.c.p == NULL)
return FALSE;
@@ -1279,12 +1237,11 @@ generic_link_check_archive_element (abfd, info, pneeded, collect)
as is done by collect2. */
static bfd_boolean
-generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
- bfd *abfd;
- struct bfd_link_info *info;
- bfd_size_type symbol_count;
- asymbol **symbols;
- bfd_boolean collect;
+generic_link_add_symbol_list (bfd *abfd,
+ struct bfd_link_info *info,
+ bfd_size_type symbol_count,
+ asymbol **symbols,
+ bfd_boolean collect)
{
asymbol **pp, **ppend;
@@ -1358,7 +1315,7 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
generic one. */
if (info->hash->creator == abfd->xvec)
{
- if (h->sym == (asymbol *) NULL
+ if (h->sym == NULL
|| (! bfd_is_und_section (bfd_get_section (p))
&& (! bfd_is_com_section (bfd_get_section (p))
|| bfd_is_und_section (bfd_get_section (h->sym)))))
@@ -1377,7 +1334,7 @@ generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect)
it gets rewritten to not use asymbol structures.
Setting this is also used to check whether these
symbols were set up by the generic linker. */
- p->udata.p = (PTR) h;
+ p->udata.p = h;
}
}
@@ -1477,8 +1434,7 @@ static const enum link_action link_action[8][8] =
/* Return the BFD in which a hash entry has been defined, if known. */
static bfd *
-hash_entry_bfd (h)
- struct bfd_link_hash_entry *h;
+hash_entry_bfd (struct bfd_link_hash_entry *h)
{
while (h->type == bfd_link_hash_warning)
h = h->u.i.link;
@@ -1517,18 +1473,16 @@ hash_entry_bfd (h)
the hash table entry, and stored it in *HASHP. */
bfd_boolean
-_bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
- string, copy, collect, hashp)
- struct bfd_link_info *info;
- bfd *abfd;
- const char *name;
- flagword flags;
- asection *section;
- bfd_vma value;
- const char *string;
- bfd_boolean copy;
- bfd_boolean collect;
- struct bfd_link_hash_entry **hashp;
+_bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
+ bfd *abfd,
+ const char *name,
+ flagword flags,
+ asection *section,
+ bfd_vma value,
+ const char *string,
+ bfd_boolean copy,
+ bfd_boolean collect,
+ struct bfd_link_hash_entry **hashp)
{
enum link_row row;
struct bfd_link_hash_entry *h;
@@ -1572,16 +1526,15 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
}
if (info->notice_all
- || (info->notice_hash != (struct bfd_hash_table *) NULL
- && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE)
- != (struct bfd_hash_entry *) NULL)))
+ || (info->notice_hash != NULL
+ && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL))
{
if (! (*info->callbacks->notice) (info, h->root.string, abfd, section,
value))
return FALSE;
}
- if (hashp != (struct bfd_link_hash_entry **) NULL)
+ if (hashp != NULL)
*hashp = h;
do
@@ -1619,7 +1572,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
if (! ((*info->callbacks->multiple_common)
(info, h->root.string,
h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size,
- abfd, bfd_link_hash_defined, (bfd_vma) 0)))
+ abfd, bfd_link_hash_defined, 0)))
return FALSE;
/* Fall through. */
case DEF:
@@ -1694,9 +1647,8 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
bfd_link_add_undef (info->hash, h);
h->type = bfd_link_hash_common;
h->u.c.p =
- ((struct bfd_link_hash_common_entry *)
- bfd_hash_allocate (&info->hash->table,
- sizeof (struct bfd_link_hash_common_entry)));
+ bfd_hash_allocate (&info->hash->table,
+ sizeof (struct bfd_link_hash_common_entry));
if (h->u.c.p == NULL)
return FALSE;
@@ -1802,7 +1754,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
else
obfd = NULL;
if (! ((*info->callbacks->multiple_common)
- (info, h->root.string, obfd, h->type, (bfd_vma) 0,
+ (info, h->root.string, obfd, h->type, 0,
abfd, bfd_link_hash_common, value)))
return FALSE;
}
@@ -1856,7 +1808,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
if (! ((*info->callbacks->multiple_common)
(info, h->root.string,
h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size,
- abfd, bfd_link_hash_indirect, (bfd_vma) 0)))
+ abfd, bfd_link_hash_indirect, 0)))
return FALSE;
/* Fall through. */
case IND:
@@ -1868,7 +1820,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
to. */
inh = bfd_wrapped_link_hash_lookup (abfd, info, string, TRUE,
copy, FALSE);
- if (inh == (struct bfd_link_hash_entry *) NULL)
+ if (inh == NULL)
return FALSE;
if (inh->type == bfd_link_hash_indirect
&& inh->u.i.link == h)
@@ -1913,8 +1865,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
{
if (! (*info->callbacks->warning) (info, h->u.i.warning,
h->root.string, abfd,
- (asection *) NULL,
- (bfd_vma) 0))
+ NULL, 0))
return FALSE;
/* Only issue a warning once. */
h->u.i.warning = NULL;
@@ -1937,8 +1888,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
case WARN:
/* Issue a warning. */
if (! (*info->callbacks->warning) (info, string, h->root.string,
- hash_entry_bfd (h),
- (asection *) NULL, (bfd_vma) 0))
+ hash_entry_bfd (h), NULL, 0))
return FALSE;
break;
@@ -1951,9 +1901,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
if (h->next != NULL || info->hash->undefs_tail == h)
{
if (! (*info->callbacks->warning) (info, string, h->root.string,
- hash_entry_bfd (h),
- (asection *) NULL,
- (bfd_vma) 0))
+ hash_entry_bfd (h), NULL, 0))
return FALSE;
break;
}
@@ -1966,8 +1914,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
/* STRING is the warning to give. */
sub = ((struct bfd_link_hash_entry *)
((*info->hash->table.newfunc)
- ((struct bfd_hash_entry *) NULL, &info->hash->table,
- h->root.string)));
+ (NULL, &info->hash->table, h->root.string)));
if (sub == NULL)
return FALSE;
*sub = *h;
@@ -2004,9 +1951,7 @@ _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value,
/* Generic final link routine. */
bfd_boolean
-_bfd_generic_final_link (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
+_bfd_generic_final_link (bfd *abfd, struct bfd_link_info *info)
{
bfd *sub;
asection *o;
@@ -2014,7 +1959,7 @@ _bfd_generic_final_link (abfd, info)
size_t outsymalloc;
struct generic_write_global_symbol_info wginfo;
- bfd_get_outsymbols (abfd) = (asymbol **) NULL;
+ bfd_get_outsymbols (abfd) = NULL;
bfd_get_symcount (abfd) = 0;
outsymalloc = 0;
@@ -2025,7 +1970,7 @@ _bfd_generic_final_link (abfd, info)
p->u.indirect.section->linker_mark = TRUE;
/* Build the output symbol table. */
- for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next)
+ for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
if (! _bfd_generic_link_output_symbols (abfd, sub, info, &outsymalloc))
return FALSE;
@@ -2035,7 +1980,7 @@ _bfd_generic_final_link (abfd, info)
wginfo.psymalloc = &outsymalloc;
_bfd_generic_link_hash_traverse (_bfd_generic_hash_table (info),
_bfd_generic_link_write_global_symbol,
- (PTR) &wginfo);
+ &wginfo);
/* Make sure we have a trailing NULL pointer on OUTSYMBOLS. We
shouldn't really need one, since we have SYMCOUNT, but some old
@@ -2043,17 +1988,13 @@ _bfd_generic_final_link (abfd, info)
if (! generic_add_output_symbol (abfd, &outsymalloc, NULL))
return FALSE;
- if (info->relocateable)
+ if (info->relocatable)
{
/* Allocate space for the output relocs for each section. */
- for (o = abfd->sections;
- o != (asection *) NULL;
- o = o->next)
+ for (o = abfd->sections; o != NULL; o = o->next)
{
o->reloc_count = 0;
- for (p = o->link_order_head;
- p != (struct bfd_link_order *) NULL;
- p = p->next)
+ for (p = o->link_order_head; p != NULL; p = p->next)
{
if (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order)
@@ -2073,7 +2014,7 @@ _bfd_generic_final_link (abfd, info)
input_section);
if (relsize < 0)
return FALSE;
- relocs = (arelent **) bfd_malloc ((bfd_size_type) relsize);
+ relocs = bfd_malloc (relsize);
if (!relocs && relsize != 0)
return FALSE;
symbols = _bfd_generic_link_get_symbols (input_bfd);
@@ -2095,7 +2036,7 @@ _bfd_generic_final_link (abfd, info)
amt = o->reloc_count;
amt *= sizeof (arelent *);
- o->orelocation = (arelent **) bfd_alloc (abfd, amt);
+ o->orelocation = bfd_alloc (abfd, amt);
if (!o->orelocation)
return FALSE;
o->flags |= SEC_RELOC;
@@ -2107,13 +2048,9 @@ _bfd_generic_final_link (abfd, info)
}
/* Handle all the link order information for the sections. */
- for (o = abfd->sections;
- o != (asection *) NULL;
- o = o->next)
+ for (o = abfd->sections; o != NULL; o = o->next)
{
- for (p = o->link_order_head;
- p != (struct bfd_link_order *) NULL;
- p = p->next)
+ for (p = o->link_order_head; p != NULL; p = p->next)
{
switch (p->type)
{
@@ -2140,10 +2077,7 @@ _bfd_generic_final_link (abfd, info)
/* Add an output symbol to the output BFD. */
static bfd_boolean
-generic_add_output_symbol (output_bfd, psymalloc, sym)
- bfd *output_bfd;
- size_t *psymalloc;
- asymbol *sym;
+generic_add_output_symbol (bfd *output_bfd, size_t *psymalloc, asymbol *sym)
{
if (bfd_get_symcount (output_bfd) >= *psymalloc)
{
@@ -2156,8 +2090,8 @@ generic_add_output_symbol (output_bfd, psymalloc, sym)
*psymalloc *= 2;
amt = *psymalloc;
amt *= sizeof (asymbol *);
- newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt);
- if (newsyms == (asymbol **) NULL)
+ newsyms = bfd_realloc (bfd_get_outsymbols (output_bfd), amt);
+ if (newsyms == NULL)
return FALSE;
bfd_get_outsymbols (output_bfd) = newsyms;
}
@@ -2172,11 +2106,10 @@ generic_add_output_symbol (output_bfd, psymalloc, sym)
/* Handle the symbols for an input BFD. */
bfd_boolean
-_bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
- bfd *output_bfd;
- bfd *input_bfd;
- struct bfd_link_info *info;
- size_t *psymalloc;
+_bfd_generic_link_output_symbols (bfd *output_bfd,
+ bfd *input_bfd,
+ struct bfd_link_info *info,
+ size_t *psymalloc)
{
asymbol **sym_ptr;
asymbol **sym_end;
@@ -2185,13 +2118,11 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
return FALSE;
/* Create a filename symbol if we are supposed to. */
- if (info->create_object_symbols_section != (asection *) NULL)
+ if (info->create_object_symbols_section != NULL)
{
asection *sec;
- for (sec = input_bfd->sections;
- sec != (asection *) NULL;
- sec = sec->next)
+ for (sec = input_bfd->sections; sec != NULL; sec = sec->next)
{
if (sec->output_section == info->create_object_symbols_section)
{
@@ -2224,7 +2155,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
struct generic_link_hash_entry *h;
bfd_boolean output;
- h = (struct generic_link_hash_entry *) NULL;
+ h = NULL;
sym = *sym_ptr;
if ((sym->flags & (BSF_INDIRECT
| BSF_WARNING
@@ -2236,7 +2167,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
|| bfd_is_ind_section (bfd_get_section (sym)))
{
if (sym->udata.p != NULL)
- h = (struct generic_link_hash_entry *) sym->udata.p;
+ h = sym->udata.p;
else if ((sym->flags & BSF_CONSTRUCTOR) != 0)
{
/* This case normally means that the main linker code
@@ -2259,7 +2190,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
bfd_asymbol_name (sym),
FALSE, FALSE, TRUE);
- if (h != (struct generic_link_hash_entry *) NULL)
+ if (h != NULL)
{
/* Force all references to this symbol to point to
the same area in memory. It is possible that
@@ -2268,7 +2199,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
check that. */
if (info->hash->creator == input_bfd->xvec)
{
- if (h->sym != (asymbol *) NULL)
+ if (h->sym != NULL)
*sym_ptr = sym = h->sym;
}
@@ -2320,9 +2251,8 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
write_file_locals in ldsym.c. */
if (info->strip == strip_all
|| (info->strip == strip_some
- && (bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym),
- FALSE, FALSE)
- == (struct bfd_hash_entry *) NULL)))
+ && bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym),
+ FALSE, FALSE) == NULL))
output = FALSE;
else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
{
@@ -2362,7 +2292,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
break;
case discard_sec_merge:
output = TRUE;
- if (info->relocateable
+ if (info->relocatable
|| ! (sym->section->flags & SEC_MERGE))
break;
/* FALLTHROUGH */
@@ -2401,7 +2331,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
{
if (! generic_add_output_symbol (output_bfd, psymalloc, sym))
return FALSE;
- if (h != (struct generic_link_hash_entry *) NULL)
+ if (h != NULL)
h->written = TRUE;
}
}
@@ -2413,9 +2343,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
hash table entry. */
static void
-set_symbol_from_hash (sym, h)
- asymbol *sym;
- struct bfd_link_hash_entry *h;
+set_symbol_from_hash (asymbol *sym, struct bfd_link_hash_entry *h)
{
switch (h->type)
{
@@ -2476,12 +2404,10 @@ set_symbol_from_hash (sym, h)
This is called for each symbol in the hash table. */
bfd_boolean
-_bfd_generic_link_write_global_symbol (h, data)
- struct generic_link_hash_entry *h;
- PTR data;
+_bfd_generic_link_write_global_symbol (struct generic_link_hash_entry *h,
+ void *data)
{
- struct generic_write_global_symbol_info *wginfo =
- (struct generic_write_global_symbol_info *) data;
+ struct generic_write_global_symbol_info *wginfo = data;
asymbol *sym;
if (h->root.type == bfd_link_hash_warning)
@@ -2498,7 +2424,7 @@ _bfd_generic_link_write_global_symbol (h, data)
FALSE, FALSE) == NULL))
return TRUE;
- if (h->sym != (asymbol *) NULL)
+ if (h->sym != NULL)
sym = h->sym;
else
{
@@ -2526,21 +2452,20 @@ _bfd_generic_link_write_global_symbol (h, data)
/* Create a relocation. */
bfd_boolean
-_bfd_generic_reloc_link_order (abfd, info, sec, link_order)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- struct bfd_link_order *link_order;
+_bfd_generic_reloc_link_order (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ struct bfd_link_order *link_order)
{
arelent *r;
- if (! info->relocateable)
+ if (! info->relocatable)
abort ();
- if (sec->orelocation == (arelent **) NULL)
+ if (sec->orelocation == NULL)
abort ();
- r = (arelent *) bfd_alloc (abfd, (bfd_size_type) sizeof (arelent));
- if (r == (arelent *) NULL)
+ r = bfd_alloc (abfd, sizeof (arelent));
+ if (r == NULL)
return FALSE;
r->address = link_order->offset;
@@ -2562,12 +2487,11 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
bfd_wrapped_link_hash_lookup (abfd, info,
link_order->u.reloc.p->u.name,
FALSE, FALSE, TRUE));
- if (h == (struct generic_link_hash_entry *) NULL
+ if (h == NULL
|| ! h->written)
{
if (! ((*info->callbacks->unattached_reloc)
- (info, link_order->u.reloc.p->u.name,
- (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
+ (info, link_order->u.reloc.p->u.name, NULL, NULL, 0)))
return FALSE;
bfd_set_error (bfd_error_bad_value);
return FALSE;
@@ -2588,8 +2512,8 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
file_ptr loc;
size = bfd_get_reloc_size (r->howto);
- buf = (bfd_byte *) bfd_zmalloc (size);
- if (buf == (bfd_byte *) NULL)
+ buf = bfd_zmalloc (size);
+ if (buf == NULL)
return FALSE;
rstat = _bfd_relocate_contents (r->howto, abfd,
(bfd_vma) link_order->u.reloc.p->addend,
@@ -2608,7 +2532,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
? bfd_section_name (abfd, link_order->u.reloc.p->u.section)
: link_order->u.reloc.p->u.name),
r->howto->name, link_order->u.reloc.p->addend,
- (bfd *) NULL, (asection *) NULL, (bfd_vma) 0)))
+ NULL, NULL, 0)))
{
free (buf);
return FALSE;
@@ -2616,8 +2540,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
break;
}
loc = link_order->offset * bfd_octets_per_byte (abfd);
- ok = bfd_set_section_contents (abfd, sec, (PTR) buf, loc,
- (bfd_size_type) size);
+ ok = bfd_set_section_contents (abfd, sec, buf, loc, size);
free (buf);
if (! ok)
return FALSE;
@@ -2634,20 +2557,18 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
/* Allocate a new link_order for a section. */
struct bfd_link_order *
-bfd_new_link_order (abfd, section)
- bfd *abfd;
- asection *section;
+bfd_new_link_order (bfd *abfd, asection *section)
{
bfd_size_type amt = sizeof (struct bfd_link_order);
struct bfd_link_order *new;
- new = (struct bfd_link_order *) bfd_zalloc (abfd, amt);
+ new = bfd_zalloc (abfd, amt);
if (!new)
return NULL;
new->type = bfd_undefined_link_order;
- if (section->link_order_tail != (struct bfd_link_order *) NULL)
+ if (section->link_order_tail != NULL)
section->link_order_tail->next = new;
else
section->link_order_head = new;
@@ -2661,11 +2582,10 @@ bfd_new_link_order (abfd, section)
of how the particular backends generates relocs. */
bfd_boolean
-_bfd_default_link_order (abfd, info, sec, link_order)
- bfd *abfd;
- struct bfd_link_info *info;
- asection *sec;
- struct bfd_link_order *link_order;
+_bfd_default_link_order (bfd *abfd,
+ struct bfd_link_info *info,
+ asection *sec,
+ struct bfd_link_order *link_order)
{
switch (link_order->type)
{
@@ -2685,11 +2605,10 @@ _bfd_default_link_order (abfd, info, sec, link_order)
/* Default routine to handle a bfd_data_link_order. */
static bfd_boolean
-default_data_link_order (abfd, info, sec, link_order)
- bfd *abfd;
- struct bfd_link_info *info ATTRIBUTE_UNUSED;
- asection *sec;
- struct bfd_link_order *link_order;
+default_data_link_order (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ asection *sec,
+ struct bfd_link_order *link_order)
{
bfd_size_type size;
size_t fill_size;
@@ -2708,7 +2627,7 @@ default_data_link_order (abfd, info, sec, link_order)
if (fill_size != 0 && fill_size < size)
{
bfd_byte *p;
- fill = (bfd_byte *) bfd_malloc (size);
+ fill = bfd_malloc (size);
if (fill == NULL)
return FALSE;
p = fill;
@@ -2740,13 +2659,11 @@ default_data_link_order (abfd, info, sec, link_order)
/* Default routine to handle a bfd_indirect_link_order. */
static bfd_boolean
-default_indirect_link_order (output_bfd, info, output_section, link_order,
- generic_linker)
- bfd *output_bfd;
- struct bfd_link_info *info;
- asection *output_section;
- struct bfd_link_order *link_order;
- bfd_boolean generic_linker;
+default_indirect_link_order (bfd *output_bfd,
+ struct bfd_link_info *info,
+ asection *output_section,
+ struct bfd_link_order *link_order,
+ bfd_boolean generic_linker)
{
asection *input_section;
bfd *input_bfd;
@@ -2767,9 +2684,9 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
BFD_ASSERT (input_section->output_offset == link_order->offset);
BFD_ASSERT (input_section->_cooked_size == link_order->size);
- if (info->relocateable
+ if (info->relocatable
&& input_section->reloc_count > 0
- && output_section->orelocation == (arelent **) NULL)
+ && output_section->orelocation == NULL)
{
/* Space has not been allocated for the output relocations.
This can happen when we are called by a specific backend
@@ -2777,7 +2694,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
types of object files. Handling this case correctly is
difficult, and sometimes impossible. */
(*_bfd_error_handler)
- (_("Attempt to do relocateable link with %s input and %s output"),
+ (_("Attempt to do relocatable link with %s input and %s output"),
bfd_get_target (input_bfd), bfd_get_target (output_bfd));
bfd_set_error (bfd_error_wrong_format);
return FALSE;
@@ -2821,7 +2738,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
/* sym->udata may have been set by
generic_link_add_symbol_list. */
if (sym->udata.p != NULL)
- h = (struct bfd_link_hash_entry *) sym->udata.p;
+ h = sym->udata.p;
else if (bfd_is_und_section (bfd_get_section (sym)))
h = bfd_wrapped_link_hash_lookup (output_bfd, info,
bfd_asymbol_name (sym),
@@ -2838,11 +2755,11 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
/* Get and relocate the section contents. */
sec_size = bfd_section_size (input_bfd, input_section);
- contents = ((bfd_byte *) bfd_malloc (sec_size));
+ contents = bfd_malloc (sec_size);
if (contents == NULL && sec_size != 0)
goto error_return;
new_contents = (bfd_get_relocated_section_contents
- (output_bfd, info, link_order, contents, info->relocateable,
+ (output_bfd, info, link_order, contents, info->relocatable,
_bfd_generic_link_get_symbols (input_bfd)));
if (!new_contents)
goto error_return;
@@ -2850,7 +2767,7 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
/* Output the section contents. */
loc = link_order->offset * bfd_octets_per_byte (output_bfd);
if (! bfd_set_section_contents (output_bfd, output_section,
- (PTR) new_contents, loc, link_order->size))
+ new_contents, loc, link_order->size))
goto error_return;
if (contents != NULL)
@@ -2867,14 +2784,13 @@ default_indirect_link_order (output_bfd, info, output_section, link_order,
list. */
unsigned int
-_bfd_count_link_order_relocs (link_order)
- struct bfd_link_order *link_order;
+_bfd_count_link_order_relocs (struct bfd_link_order *link_order)
{
register unsigned int c;
register struct bfd_link_order *l;
c = 0;
- for (l = link_order; l != (struct bfd_link_order *) NULL; l = l->next)
+ for (l = link_order; l != NULL; l = l->next)
{
if (l->type == bfd_section_reloc_link_order
|| l->type == bfd_symbol_reloc_link_order)
@@ -2889,7 +2805,7 @@ FUNCTION
bfd_link_split_section
SYNOPSIS
- bfd_boolean bfd_link_split_section(bfd *abfd, asection *sec);
+ bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
DESCRIPTION
Return nonzero if @var{sec} should be split during a
@@ -2902,9 +2818,8 @@ DESCRIPTION
*/
bfd_boolean
-_bfd_generic_link_split_section (abfd, sec)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *sec ATTRIBUTE_UNUSED;
+_bfd_generic_link_split_section (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *sec ATTRIBUTE_UNUSED)
{
return FALSE;
}
diff --git a/bfd/m68klinux.c b/bfd/m68klinux.c
index 1a82980..90f342c 100644
--- a/bfd/m68klinux.c
+++ b/bfd/m68klinux.c
@@ -357,7 +357,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
insert = FALSE;
- if (! info->relocateable
+ if (! info->relocatable
&& linux_hash_table (info)->dynobj == NULL
&& strcmp (name, SHARABLE_CONFLICTS) == 0
&& (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/opncls.c b/bfd/opncls.c
index b6b4097..086775b 100644
--- a/bfd/opncls.c
+++ b/bfd/opncls.c
@@ -47,17 +47,17 @@ static unsigned int _bfd_id_counter = 0;
/* Return a new BFD. All BFD's are allocated through this routine. */
bfd *
-_bfd_new_bfd ()
+_bfd_new_bfd (void)
{
bfd *nbfd;
- nbfd = (bfd *) bfd_zmalloc ((bfd_size_type) sizeof (bfd));
+ nbfd = bfd_zmalloc (sizeof (bfd));
if (nbfd == NULL)
return NULL;
nbfd->id = _bfd_id_counter++;
- nbfd->memory = (PTR) objalloc_create ();
+ nbfd->memory = objalloc_create ();
if (nbfd->memory == NULL)
{
bfd_set_error (bfd_error_no_memory);
@@ -77,15 +77,15 @@ _bfd_new_bfd ()
free (nbfd);
return NULL;
}
- nbfd->sections = (asection *) NULL;
+ nbfd->sections = NULL;
nbfd->section_tail = &nbfd->sections;
nbfd->format = bfd_unknown;
- nbfd->my_archive = (bfd *) NULL;
+ nbfd->my_archive = NULL;
nbfd->origin = 0;
nbfd->opened_once = FALSE;
nbfd->output_has_begun = FALSE;
nbfd->section_count = 0;
- nbfd->usrdata = (PTR) NULL;
+ nbfd->usrdata = NULL;
nbfd->cacheable = FALSE;
nbfd->flags = BFD_NO_FLAGS;
nbfd->mtime_set = FALSE;
@@ -96,8 +96,7 @@ _bfd_new_bfd ()
/* Allocate a new BFD as a member of archive OBFD. */
bfd *
-_bfd_new_bfd_contained_in (obfd)
- bfd *obfd;
+_bfd_new_bfd_contained_in (bfd *obfd)
{
bfd *nbfd;
@@ -114,8 +113,7 @@ _bfd_new_bfd_contained_in (obfd)
/* Delete a BFD. */
void
-_bfd_delete_bfd (abfd)
- bfd *abfd;
+_bfd_delete_bfd (bfd *abfd)
{
bfd_hash_table_free (&abfd->section_htab);
objalloc_free ((struct objalloc *) abfd->memory);
@@ -133,7 +131,7 @@ FUNCTION
bfd_openr
SYNOPSIS
- bfd *bfd_openr(const char *filename, const char *target);
+ bfd *bfd_openr (const char *filename, const char *target);
DESCRIPTION
Open the file @var{filename} (using <<fopen>>) with the target
@@ -148,9 +146,7 @@ DESCRIPTION
*/
bfd *
-bfd_openr (filename, target)
- const char *filename;
- const char *target;
+bfd_openr (const char *filename, const char *target)
{
bfd *nbfd;
const bfd_target *target_vec;
@@ -192,7 +188,7 @@ FUNCTION
bfd_fdopenr
SYNOPSIS
- bfd *bfd_fdopenr(const char *filename, const char *target, int fd);
+ bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
DESCRIPTION
<<bfd_fdopenr>> is to <<bfd_fopenr>> much like <<fdopen>> is to
@@ -214,10 +210,7 @@ DESCRIPTION
*/
bfd *
-bfd_fdopenr (filename, target, fd)
- const char *filename;
- const char *target;
- int fd;
+bfd_fdopenr (const char *filename, const char *target, int fd)
{
bfd *nbfd;
const bfd_target *target_vec;
@@ -244,14 +237,14 @@ bfd_fdopenr (filename, target, fd)
}
#ifndef HAVE_FDOPEN
- nbfd->iostream = (PTR) fopen (filename, FOPEN_RB);
+ nbfd->iostream = fopen (filename, FOPEN_RB);
#else
/* (O_ACCMODE) parens are to avoid Ultrix header file bug. */
switch (fdflags & (O_ACCMODE))
{
- case O_RDONLY: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RB); break;
- case O_WRONLY: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RUB); break;
- case O_RDWR: nbfd->iostream = (PTR) fdopen (fd, FOPEN_RUB); break;
+ case O_RDONLY: nbfd->iostream = fdopen (fd, FOPEN_RB); break;
+ case O_WRONLY: nbfd->iostream = fdopen (fd, FOPEN_RUB); break;
+ case O_RDWR: nbfd->iostream = fdopen (fd, FOPEN_RUB); break;
default: abort ();
}
#endif
@@ -292,7 +285,7 @@ FUNCTION
bfd_openstreamr
SYNOPSIS
- bfd *bfd_openstreamr(const char *, const char *, PTR);
+ bfd *bfd_openstreamr (const char *, const char *, void *);
DESCRIPTION
@@ -301,12 +294,9 @@ DESCRIPTION
*/
bfd *
-bfd_openstreamr (filename, target, streamarg)
- const char *filename;
- const char *target;
- PTR streamarg;
+bfd_openstreamr (const char *filename, const char *target, void *streamarg)
{
- FILE *stream = (FILE *) streamarg;
+ FILE *stream = streamarg;
bfd *nbfd;
const bfd_target *target_vec;
@@ -321,7 +311,7 @@ bfd_openstreamr (filename, target, streamarg)
return NULL;
}
- nbfd->iostream = (PTR) stream;
+ nbfd->iostream = stream;
nbfd->filename = filename;
nbfd->direction = read_direction;
@@ -344,7 +334,7 @@ FUNCTION
bfd_openw
SYNOPSIS
- bfd *bfd_openw(const char *filename, const char *target);
+ bfd *bfd_openw (const char *filename, const char *target);
DESCRIPTION
Create a BFD, associated with file @var{filename}, using the
@@ -355,9 +345,7 @@ DESCRIPTION
*/
bfd *
-bfd_openw (filename, target)
- const char *filename;
- const char *target;
+bfd_openw (const char *filename, const char *target)
{
bfd *nbfd;
const bfd_target *target_vec;
@@ -415,8 +403,7 @@ RETURNS
bfd_boolean
-bfd_close (abfd)
- bfd *abfd;
+bfd_close (bfd *abfd)
{
bfd_boolean ret;
@@ -478,8 +465,7 @@ RETURNS
*/
bfd_boolean
-bfd_close_all_done (abfd)
- bfd *abfd;
+bfd_close_all_done (bfd *abfd)
{
bfd_boolean ret;
@@ -514,7 +500,7 @@ FUNCTION
bfd_create
SYNOPSIS
- bfd *bfd_create(const char *filename, bfd *templ);
+ bfd *bfd_create (const char *filename, bfd *templ);
DESCRIPTION
Create a new BFD in the manner of <<bfd_openw>>, but without
@@ -523,9 +509,7 @@ DESCRIPTION
*/
bfd *
-bfd_create (filename, templ)
- const char *filename;
- bfd *templ;
+bfd_create (const char *filename, bfd *templ)
{
bfd *nbfd;
@@ -559,8 +543,7 @@ RETURNS
*/
bfd_boolean
-bfd_make_writable(abfd)
- bfd *abfd;
+bfd_make_writable (bfd *abfd)
{
struct bfd_in_memory *bim;
@@ -570,9 +553,8 @@ bfd_make_writable(abfd)
return FALSE;
}
- bim = ((struct bfd_in_memory *)
- bfd_malloc ((bfd_size_type) sizeof (struct bfd_in_memory)));
- abfd->iostream = (PTR) bim;
+ bim = bfd_malloc (sizeof (struct bfd_in_memory));
+ abfd->iostream = bim;
/* bfd_bwrite will grow these as needed. */
bim->size = 0;
bim->buffer = 0;
@@ -602,8 +584,7 @@ RETURNS
<<TRUE>> is returned if all is ok, otherwise <<FALSE>>. */
bfd_boolean
-bfd_make_readable(abfd)
- bfd *abfd;
+bfd_make_readable (bfd *abfd)
{
if (abfd->direction != write_direction || !(abfd->flags & BFD_IN_MEMORY))
{
@@ -622,12 +603,12 @@ bfd_make_readable(abfd)
abfd->where = 0;
abfd->format = bfd_unknown;
- abfd->my_archive = (bfd *) NULL;
+ abfd->my_archive = NULL;
abfd->origin = 0;
abfd->opened_once = FALSE;
abfd->output_has_begun = FALSE;
abfd->section_count = 0;
- abfd->usrdata = (PTR) NULL;
+ abfd->usrdata = NULL;
abfd->cacheable = FALSE;
abfd->flags = BFD_IN_MEMORY;
abfd->mtime_set = FALSE;
@@ -650,7 +631,7 @@ INTERNAL_FUNCTION
bfd_alloc
SYNOPSIS
- PTR bfd_alloc (bfd *abfd, size_t wanted);
+ void *bfd_alloc (bfd *abfd, size_t wanted);
DESCRIPTION
Allocate a block of @var{wanted} bytes of memory attached to
@@ -658,12 +639,10 @@ DESCRIPTION
*/
-PTR
-bfd_alloc (abfd, size)
- bfd *abfd;
- bfd_size_type size;
+void *
+bfd_alloc (bfd *abfd, bfd_size_type size)
{
- PTR ret;
+ void *ret;
if (size != (unsigned long) size)
{
@@ -677,12 +656,10 @@ bfd_alloc (abfd, size)
return ret;
}
-PTR
-bfd_zalloc (abfd, size)
- bfd *abfd;
- bfd_size_type size;
+void *
+bfd_zalloc (bfd *abfd, bfd_size_type size)
{
- PTR res;
+ void *res;
res = bfd_alloc (abfd, size);
if (res)
@@ -694,9 +671,7 @@ bfd_zalloc (abfd, size)
Note: Also frees all more recently allocated blocks! */
void
-bfd_release (abfd, block)
- bfd *abfd;
- PTR block;
+bfd_release (bfd *abfd, void *block)
{
objalloc_free_block ((struct objalloc *) abfd->memory, block);
}
@@ -716,17 +691,14 @@ bfd_release (abfd, block)
without debug symbols).
*/
-static char * get_debug_link_info PARAMS ((bfd *, unsigned long *));
-static bfd_boolean separate_debug_file_exists PARAMS ((const char *, const unsigned long));
-static char * find_separate_debug_file PARAMS ((bfd *, const char *));
-
#define GNU_DEBUGLINK ".gnu_debuglink"
/*
FUNCTION
bfd_calc_gnu_debuglink_crc32
SYNOPSIS
- unsigned long bfd_calc_gnu_debuglink_crc32 (unsigned long crc, const unsigned char *buf, bfd_size_type len);
+ unsigned long bfd_calc_gnu_debuglink_crc32
+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
DESCRIPTION
Computes a CRC value as used in the .gnu_debuglink section.
@@ -738,10 +710,9 @@ RETURNS
*/
unsigned long
-bfd_calc_gnu_debuglink_crc32 (crc, buf, len)
- unsigned long crc;
- const unsigned char *buf;
- bfd_size_type len;
+bfd_calc_gnu_debuglink_crc32 (unsigned long crc,
+ const unsigned char *buf,
+ bfd_size_type len)
{
static const unsigned long crc32_table[256] =
{
@@ -812,7 +783,7 @@ INTERNAL_FUNCTION
get_debug_link_info
SYNOPSIS
- char * get_debug_link_info (bfd * abfd, unsigned long * crc32_out)
+ char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
DESCRIPTION
fetch the filename and CRC32 value for any separate debuginfo
@@ -821,9 +792,7 @@ DESCRIPTION
*/
static char *
-get_debug_link_info (abfd, crc32_out)
- bfd * abfd;
- unsigned long * crc32_out;
+get_debug_link_info (bfd *abfd, unsigned long *crc32_out)
{
asection * sect;
bfd_size_type debuglink_size;
@@ -846,8 +815,7 @@ get_debug_link_info (abfd, crc32_out)
if (contents == NULL)
return NULL;
- ret = bfd_get_section_contents (abfd, sect, contents,
- (file_ptr)0, debuglink_size);
+ ret = bfd_get_section_contents (abfd, sect, contents, 0, debuglink_size);
if (! ret)
{
free (contents);
@@ -858,7 +826,7 @@ get_debug_link_info (abfd, crc32_out)
crc_offset = strlen (contents) + 1;
crc_offset = (crc_offset + 3) & ~3;
- crc32 = bfd_get_32 (abfd, (bfd_byte *) (contents + crc_offset));
+ crc32 = bfd_get_32 (abfd, contents + crc_offset);
*crc32_out = crc32;
return contents;
@@ -869,7 +837,8 @@ INTERNAL_FUNCTION
separate_debug_file_exists
SYNOPSIS
- bfd_boolean separate_debug_file_exists (char * name, unsigned long crc32)
+ bfd_boolean separate_debug_file_exists
+ (char *name, unsigned long crc32);
DESCRIPTION
Checks to see if @var{name} is a file and if its contents
@@ -877,9 +846,7 @@ DESCRIPTION
*/
static bfd_boolean
-separate_debug_file_exists (name, crc)
- const char *name;
- const unsigned long crc;
+separate_debug_file_exists (const char *name, const unsigned long crc)
{
static char buffer [8 * 1024];
unsigned long file_crc = 0;
@@ -906,7 +873,7 @@ INTERNAL_FUNCTION
find_separate_debug_file
SYNOPSIS
- char * find_separate_debug_file (bfd *abfd)
+ char *find_separate_debug_file (bfd *abfd);
DESCRIPTION
Searches @var{abfd} for a reference to separate debugging
@@ -918,9 +885,7 @@ DESCRIPTION
*/
static char *
-find_separate_debug_file (abfd, debug_file_directory)
- bfd *abfd;
- const char *debug_file_directory;
+find_separate_debug_file (bfd *abfd, const char *debug_file_directory)
{
char *basename;
char *dir;
@@ -1026,7 +991,7 @@ FUNCTION
bfd_follow_gnu_debuglink
SYNOPSIS
- char * bfd_follow_gnu_debuglink(bfd *abfd, const char *dir);
+ char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
DESCRIPTION
@@ -1045,9 +1010,7 @@ RETURNS
*/
char *
-bfd_follow_gnu_debuglink (abfd, dir)
- bfd *abfd;
- const char * dir;
+bfd_follow_gnu_debuglink (bfd *abfd, const char *dir)
{
#if 0 /* Disabled until DEBUGDIR can be defined by configure.in */
if (dir == NULL)
@@ -1058,16 +1021,82 @@ bfd_follow_gnu_debuglink (abfd, dir)
/*
FUNCTION
- bfd_add_gnu_debuglink
+ bfd_create_gnu_debuglink_section
SYNOPSIS
- bfd_boolean bfd_add_gnu_debuglink (bfd * abfd, const char * filename);
+ struct sec *bfd_create_gnu_debuglink_section
+ (bfd *abfd, const char *filename);
DESCRIPTION
- Takes a @var{BFD} and adds a .gnu_debuglink section containing a link
- to the specified @var{filename}. The filename should be relative to
- the current directory.
+ Takes a @var{BFD} and adds a .gnu_debuglink section to it. The section is sized
+ to be big enough to contain a link to the specified @var{filename}.
+
+RETURNS
+ A pointer to the new section is returned if all is ok. Otherwise <<NULL>> is
+ returned and bfd_error is set.
+*/
+
+asection *
+bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename)
+{
+ asection *sect;
+ bfd_size_type debuglink_size;
+
+ if (abfd == NULL || filename == NULL)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return NULL;
+ }
+
+ /* Strip off any path components in filename. */
+ filename = lbasename (filename);
+
+ sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK);
+ if (sect)
+ {
+ /* Section already exists. */
+ bfd_set_error (bfd_error_invalid_operation);
+ return NULL;
+ }
+
+ sect = bfd_make_section (abfd, GNU_DEBUGLINK);
+ if (sect == NULL)
+ return NULL;
+
+ if (! bfd_set_section_flags (abfd, sect,
+ SEC_HAS_CONTENTS | SEC_READONLY | SEC_DEBUGGING))
+ /* XXX Should we delete the section from the bfd ? */
+ return NULL;
+
+
+ debuglink_size = strlen (filename) + 1;
+ debuglink_size += 3;
+ debuglink_size &= ~3;
+ debuglink_size += 4;
+
+ if (! bfd_set_section_size (abfd, sect, debuglink_size))
+ /* XXX Should we delete the section from the bfd ? */
+ return NULL;
+
+ return sect;
+}
+
+
+/*
+FUNCTION
+ bfd_fill_in_gnu_debuglink_section
+
+SYNOPSIS
+ bfd_boolean bfd_fill_in_gnu_debuglink_section
+ (bfd *abfd, struct sec *sect, const char *filename);
+
+DESCRIPTION
+
+ Takes a @var{BFD} and containing a .gnu_debuglink section @var{SECT}
+ and fills in the contents of the section to contain a link to the
+ specified @var{filename}. The filename should be relative to the
+ current directory.
RETURNS
<<TRUE>> is returned if all is ok. Otherwise <<FALSE>> is returned
@@ -1075,11 +1104,10 @@ RETURNS
*/
bfd_boolean
-bfd_add_gnu_debuglink (abfd, filename)
- bfd *abfd;
- const char * filename;
+bfd_fill_in_gnu_debuglink_section (bfd *abfd,
+ struct sec *sect,
+ const char *filename)
{
- asection * sect;
bfd_size_type debuglink_size;
unsigned long crc32;
char * contents;
@@ -1088,7 +1116,7 @@ bfd_add_gnu_debuglink (abfd, filename)
static char buffer[8 * 1024];
size_t count;
- if (abfd == NULL || filename == NULL)
+ if (abfd == NULL || sect == NULL || filename == NULL)
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
@@ -1116,33 +1144,11 @@ bfd_add_gnu_debuglink (abfd, filename)
now that we no longer need them. */
filename = lbasename (filename);
- sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK);
- if (sect)
- {
- /* Section already exists. */
- bfd_set_error (bfd_error_invalid_operation);
- return FALSE;
- }
-
- sect = bfd_make_section (abfd, GNU_DEBUGLINK);
- if (sect == NULL)
- return FALSE;
-
- if (! bfd_set_section_flags (abfd, sect,
- SEC_HAS_CONTENTS | SEC_DEBUGGING))
- /* XXX Should we delete the section from the bfd ? */
- return FALSE;
-
-
debuglink_size = strlen (filename) + 1;
debuglink_size += 3;
debuglink_size &= ~3;
debuglink_size += 4;
- if (! bfd_set_section_size (abfd, sect, debuglink_size))
- /* XXX Should we delete the section from the bfd ? */
- return FALSE;
-
contents = malloc (debuglink_size);
if (contents == NULL)
{
@@ -1154,10 +1160,9 @@ bfd_add_gnu_debuglink (abfd, filename)
strcpy (contents, filename);
crc_offset = debuglink_size - 4;
- bfd_put_32 (abfd, crc32, (bfd_byte *) (contents + crc_offset));
+ bfd_put_32 (abfd, crc32, contents + crc_offset);
- if (! bfd_set_section_contents (abfd, sect, contents,
- (file_ptr)0, debuglink_size))
+ if (! bfd_set_section_contents (abfd, sect, contents, 0, debuglink_size))
{
/* XXX Should we delete the section from the bfd ? */
free (contents);
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index 95d78a1..52f7b70 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -1,5 +1,5 @@
/* BFD back-end for PDP-11 a.out binaries.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -3436,7 +3436,7 @@ NAME(aout,final_link) (abfd, info, callback)
includes_hash_initialized = TRUE;
/* Figure out the largest section size. Also, if generating
- relocateable output, count the relocs. */
+ relocatable output, count the relocs. */
trsize = 0;
drsize = 0;
max_contents_size = 0;
@@ -3446,7 +3446,7 @@ NAME(aout,final_link) (abfd, info, callback)
{
size_t sz;
- if (info->relocateable)
+ if (info->relocatable)
{
if (bfd_get_flavour (sub) == bfd_target_aout_flavour)
{
@@ -3460,7 +3460,7 @@ NAME(aout,final_link) (abfd, info, callback)
work out the number of relocs needed, and then multiply
by the reloc size. */
(*_bfd_error_handler)
- ("%s: relocateable link from %s to %s not supported",
+ ("%s: relocatable link from %s to %s not supported",
bfd_get_filename (abfd),
sub->xvec->name, abfd->xvec->name);
bfd_set_error (bfd_error_invalid_operation);
@@ -3490,7 +3490,7 @@ NAME(aout,final_link) (abfd, info, callback)
}
}
- if (info->relocateable)
+ if (info->relocatable)
{
if (obj_textsec (abfd) != (asection *) NULL)
trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd)
@@ -4460,9 +4460,9 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
input_size))
return FALSE;
- /* If we are producing relocateable output, the relocs were
+ /* If we are producing relocatable output, the relocs were
modified, and we now write them out. */
- if (finfo->info->relocateable && rel_size > 0)
+ if (finfo->info->relocatable && rel_size > 0)
{
if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
return FALSE;
@@ -4521,7 +4521,7 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *,
bfd_vma *));
bfd *output_bfd;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
struct external_nlist *syms;
char *strings;
struct aout_link_hash_entry **sym_hashes;
@@ -4537,7 +4537,7 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
BFD_ASSERT (input_bfd->xvec->header_byteorder
== output_bfd->xvec->header_byteorder);
- relocateable = finfo->info->relocateable;
+ relocatable = finfo->info->relocatable;
syms = obj_aout_external_syms (input_bfd);
strings = obj_aout_external_strings (input_bfd);
sym_hashes = obj_aout_sym_hashes (input_bfd);
@@ -4578,9 +4578,9 @@ pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs,
howto = howto_table_pdp11 + howto_idx;
}
- if (relocateable)
+ if (relocatable)
{
- /* We are generating a relocateable output file, and must
+ /* We are generating a relocatable output file, and must
modify the reloc accordingly. */
if (r_extern)
{
diff --git a/bfd/pe-mips.c b/bfd/pe-mips.c
index c9a4d58..3066aaa 100644
--- a/bfd/pe-mips.c
+++ b/bfd/pe-mips.c
@@ -1,6 +1,6 @@
/* BFD back-end for MIPS PE COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Modified from coff-i386.c by DJ Delorie, dj@cygnus.com
This file is part of BFD, the Binary File Descriptor library.
@@ -73,7 +73,7 @@ static bfd_boolean coff_pe_mips_relocate_section
section for a reference to a common symbol is the value itself plus
any desired offset. Ian Taylor, Cygnus Support. */
-/* If we are producing relocateable output, we need to do some
+/* If we are producing relocatable output, we need to do some
adjustments to the object file that are not done by the
bfd_perform_relocation function. This function is called by every
reloc type to make any required adjustments. */
@@ -118,7 +118,7 @@ coff_mips_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
{
/* For some reason bfd_perform_relocation always effectively
ignores the addend for a COFF target when producing
- relocateable output. This seems to be always wrong for 386
+ relocatable output. This seems to be always wrong for 386
COFF, so we handle the addend here instead. */
diff = reloc_entry->addend;
}
@@ -467,7 +467,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
#ifndef COFF_WITH_PE
/* If the output symbol is common (in which case this must be a
- relocateable link), we need to add in the final size of the
+ relocatable link), we need to add in the final size of the
common symbol. */
if (h != NULL && h->root.type == bfd_link_hash_common)
*addendp += h->root.u.c.size;
@@ -654,7 +654,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
unsigned int i;
bfd_boolean got_lo;
- if (info->relocateable)
+ if (info->relocatable)
{
(*_bfd_error_handler) (_("\
%s: `ld -r' not supported with PE MIPS objects\n"),
@@ -722,13 +722,13 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
if (howto == NULL)
return FALSE;
- /* If we are doing a relocateable link, then we can just ignore
+ /* If we are doing a relocatable link, then we can just ignore
a PC relative reloc that is pcrel_offset. It will already
- have the correct value. If this is not a relocateable link,
+ have the correct value. If this is not a relocatable link,
then we should ignore the symbol value. */
if (howto->pc_relative && howto->pcrel_offset)
{
- if (info->relocateable)
+ if (info->relocatable)
continue;
if (sym != NULL && sym->n_scnum != 0)
addend += sym->n_value;
@@ -768,7 +768,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
+ sec->output_offset);
}
- else if (! info->relocateable)
+ else if (! info->relocatable)
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index ba1c219..7f1a6a3 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -961,7 +961,7 @@ _bfd_XXi_swap_scnhdr_out (abfd, in, out)
}
if (coff_data (abfd)->link_info
- && ! coff_data (abfd)->link_info->relocateable
+ && ! coff_data (abfd)->link_info->relocatable
&& ! coff_data (abfd)->link_info->shared
&& strcmp (scnhdr_int->s_name, ".text") == 0)
{
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index bbd8dda..07742dd 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -1,19 +1,19 @@
aix386-core.c
aix5ppc-core.c
+aout0.c
+aout32.c
+aout64.c
aout-adobe.c
aout-arm.c
aout-cris.c
+aoutf1.h
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
-aout0.c
-aout32.c
-aout64.c
-aoutf1.h
aoutx.h
-archive.c
archive64.c
+archive.c
archures.c
armnetbsd.c
bfd.c
@@ -26,17 +26,21 @@ cf-i386lynx.c
cf-m68klynx.c
cf-sparclynx.c
cisco-core.c
+coff64-rs6000.c
coff-a29k.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
+coffcode.h
+coffgen.c
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
+cofflink.c
coff-m68k.c
coff-m88k.c
coff-mips.c
@@ -46,6 +50,7 @@ coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
+coffswap.h
coff-tic30.c
coff-tic4x.c
coff-tic54x.c
@@ -54,11 +59,6 @@ coff-u68k.c
coff-w65.c
coff-we32k.c
coff-z8k.c
-coff64-rs6000.c
-coffcode.h
-coffgen.c
-cofflink.c
-coffswap.h
corefile.c
cpu-a29k.c
cpu-alpha.c
@@ -121,16 +121,11 @@ ecofflink.c
ecoffswap.h
efi-app-ia32.c
efi-app-ia64.c
-elf-bfd.h
-elf-eh-frame.c
-elf-hppa.h
-elf-m10200.c
-elf-m10300.c
-elf-strtab.c
-elf.c
+elf32-am33lin.c
elf32-arc.c
elf32-arm.h
elf32-avr.c
+elf32.c
elf32-cris.c
elf32-d10v.c
elf32-d30v.c
@@ -161,16 +156,16 @@ elf32-or32.c
elf32-pj.c
elf32-ppc.c
elf32-s390.c
-elf32-sh.c
-elf32-sh64-com.c
elf32-sh64.c
+elf32-sh64-com.c
+elf32-sh.c
elf32-sparc.c
elf32-v850.c
elf32-vax.c
elf32-xstormy16.c
elf32-xtensa.c
-elf32.c
elf64-alpha.c
+elf64.c
elf64-gen.c
elf64-hppa.c
elf64-hppa.h
@@ -181,14 +176,20 @@ elf64-s390.c
elf64-sh64.c
elf64-sparc.c
elf64-x86-64.c
-elf64.c
elfarm-nabi.c
elfarm-oabi.c
+elf-bfd.h
+elf.c
elfcode.h
elfcore.h
+elf-eh-frame.c
+elf-hppa.h
elflink.c
elflink.h
+elf-m10200.c
+elf-m10300.c
elfn32-mips.c
+elf-strtab.c
elfxx-mips.c
epoc-pe-arm.c
epoc-pei-arm.c
@@ -239,16 +240,16 @@ mipsbsd.c
mmo.c
netbsd.h
newsos3.c
-nlm-target.h
-nlm.c
nlm32-alpha.c
+nlm32.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
-nlm32.c
nlm64.c
+nlm.c
nlmcode.h
nlmswap.h
+nlm-target.h
ns32k.h
ns32knetbsd.c
oasys.c
@@ -257,24 +258,24 @@ osf-core.c
pc532-mach.c
pdp11.c
pe-arm.c
-pe-i386.c
-pe-mcore.c
-pe-mips.c
-pe-ppc.c
-pe-sh.c
-pef-traceback.h
pef.c
pef.h
+pef-traceback.h
+pe-i386.c
pei-arm.c
+peicode.h
pei-i386.c
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
-peicode.h
+pe-mcore.c
+pe-mips.c
+pe-ppc.c
+pe-sh.c
ppcboot.c
-reloc.c
reloc16.c
+reloc.c
riscix.c
sco5-core.c
section.c
@@ -285,8 +286,8 @@ sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
-stab-syms.c
stabs.c
+stab-syms.c
sunos.c
syms.c
targets.c
@@ -297,14 +298,14 @@ vaxbsd.c
vaxnetbsd.c
versados.c
version.h
+vms.c
vms-gsd.c
+vms.h
vms-hdr.c
vms-misc.c
vms-tir.c
-vms.c
-vms.h
-xcoff-target.h
xcofflink.c
+xcoff-target.h
xsym.c
xsym.h
xtensa-isa.c
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index f402c96..5d4f234 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2003-06-03 14:40+0100\n"
+"POT-Creation-Date: 2003-07-17 14:52+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -51,126 +51,126 @@ msgstr ""
#: aoutx.h:3776
#, c-format
-msgid "%s: relocateable link from %s to %s not supported"
+msgid "%s: relocatable link from %s to %s not supported"
msgstr ""
-#: archive.c:1823
+#: archive.c:1751
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr ""
-#: archive.c:2090
+#: archive.c:2014
msgid "Reading archive file mod timestamp"
msgstr ""
-#: archive.c:2116
+#: archive.c:2040
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:286
+#: bfd.c:280
msgid "No error"
msgstr ""
-#: bfd.c:287
+#: bfd.c:281
msgid "System call error"
msgstr ""
-#: bfd.c:288
+#: bfd.c:282
msgid "Invalid bfd target"
msgstr ""
-#: bfd.c:289
+#: bfd.c:283
msgid "File in wrong format"
msgstr ""
-#: bfd.c:290
+#: bfd.c:284
msgid "Archive object file in wrong format"
msgstr ""
-#: bfd.c:291
+#: bfd.c:285
msgid "Invalid operation"
msgstr ""
-#: bfd.c:292
+#: bfd.c:286
msgid "Memory exhausted"
msgstr ""
-#: bfd.c:293
+#: bfd.c:287
msgid "No symbols"
msgstr ""
-#: bfd.c:294
+#: bfd.c:288
msgid "Archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:295
+#: bfd.c:289
msgid "No more archived files"
msgstr ""
-#: bfd.c:296
+#: bfd.c:290
msgid "Malformed archive"
msgstr ""
-#: bfd.c:297
+#: bfd.c:291
msgid "File format not recognized"
msgstr ""
-#: bfd.c:298
+#: bfd.c:292
msgid "File format is ambiguous"
msgstr ""
-#: bfd.c:299
+#: bfd.c:293
msgid "Section has no contents"
msgstr ""
-#: bfd.c:300
+#: bfd.c:294
msgid "Nonrepresentable section on output"
msgstr ""
-#: bfd.c:301
+#: bfd.c:295
msgid "Symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:302
+#: bfd.c:296
msgid "Bad value"
msgstr ""
-#: bfd.c:303
+#: bfd.c:297
msgid "File truncated"
msgstr ""
-#: bfd.c:304
+#: bfd.c:298
msgid "File too big"
msgstr ""
-#: bfd.c:305
+#: bfd.c:299
msgid "#<Invalid error code>"
msgstr ""
-#: bfd.c:712
+#: bfd.c:687
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:731
+#: bfd.c:703
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr ""
-#: bfd.c:735
+#: bfd.c:707
#, c-format
msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr ""
-#: bfd.c:737
+#: bfd.c:709
msgid "Please report this bug.\n"
msgstr ""
-#: bfdwin.c:206
+#: bfdwin.c:202
#, c-format
msgid "not mapping: data=%lx mapped=%d\n"
msgstr ""
-#: bfdwin.c:209
+#: bfdwin.c:205
msgid "not mapping: env var not set\n"
msgstr ""
@@ -184,23 +184,23 @@ msgstr ""
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr ""
-#: coff-a29k.c:119
+#: coff-a29k.c:120
msgid "Missing IHCONST"
msgstr ""
-#: coff-a29k.c:180
+#: coff-a29k.c:181
msgid "Missing IHIHALF"
msgstr ""
-#: coff-a29k.c:212 coff-or32.c:236
+#: coff-a29k.c:213 coff-or32.c:236
msgid "Unrecognized reloc"
msgstr ""
-#: coff-a29k.c:408
+#: coff-a29k.c:409
msgid "missing IHCONST reloc"
msgstr ""
-#: coff-a29k.c:498
+#: coff-a29k.c:499
msgid "missing IHIHALF reloc"
msgstr ""
@@ -241,7 +241,7 @@ msgstr ""
msgid " consider relinking with --support-old-code enabled"
msgstr ""
-#: coff-arm.c:1788 coff-tic80.c:686 cofflink.c:3038
+#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr ""
@@ -339,42 +339,42 @@ msgstr ""
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr ""
-#: coffcode.h:1102
+#: coffcode.h:1108
#, c-format
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr ""
-#: coffcode.h:2178
+#: coffcode.h:2214
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coffcode.h:4401
+#: coffcode.h:4439
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr ""
-#: coffcode.h:4415
+#: coffcode.h:4453
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:4769
+#: coffcode.h:4807
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:4902
+#: coffcode.h:4940
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr ""
-#: coff-tic4x.c:248 coff-tic54x.c:403 coffcode.h:5009
+#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5047
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr ""
-#: coffcode.h:5047
+#: coffcode.h:5085
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr ""
@@ -384,7 +384,7 @@ msgstr ""
msgid "%s: bad string table size %lu"
msgstr ""
-#: coff-h8300.c:1096
+#: coff-h8300.c:1047
#, c-format
msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
msgstr ""
@@ -413,11 +413,11 @@ msgstr ""
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1741
+#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783
msgid "unsupported reloc type"
msgstr ""
-#: coff-mips.c:839 elf32-mips.c:1061 elf64-mips.c:1587 elfn32-mips.c:1553
+#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554
msgid "GP relative relocation when _gp not defined"
msgstr ""
@@ -441,7 +441,7 @@ msgstr ""
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr ""
-#: coff-tic4x.c:200 coff-tic54x.c:292 coff-tic80.c:449
+#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450
#, c-format
msgid "Unrecognized reloc type 0x%x"
msgstr ""
@@ -531,61 +531,61 @@ msgstr ""
msgid "Dwarf Error: Bad abbrev number: %u."
msgstr ""
-#: ecoff.c:1337
+#: ecoff.c:1339
#, c-format
msgid "Unknown basic type %d"
msgstr ""
-#: ecoff.c:1597
+#: ecoff.c:1599
#, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1604 ecoff.c:1607
+#: ecoff.c:1606 ecoff.c:1609
#, c-format
msgid ""
"\n"
" First symbol: %ld"
msgstr ""
-#: ecoff.c:1619
+#: ecoff.c:1621
#, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
msgstr ""
-#: ecoff.c:1626
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
" Local symbol: %ld"
msgstr ""
-#: ecoff.c:1634
+#: ecoff.c:1636
#, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1639
+#: ecoff.c:1641
#, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1644
+#: ecoff.c:1646
#, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1650
+#: ecoff.c:1652
#, c-format
msgid ""
"\n"
@@ -602,7 +602,7 @@ msgstr ""
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr ""
-#: elf32-arm.h:1918 elf32-sh.c:4703 elf64-sh64.c:1613
+#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr ""
@@ -613,33 +613,33 @@ msgid ""
"%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr ""
-#: elf-m10200.c:442 elf-m10300.c:655 elf32-arm.h:2088 elf32-avr.c:812
-#: elf32-cris.c:1383 elf32-d10v.c:481 elf32-fr30.c:633 elf32-frv.c:815
-#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
+#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812
+#: elf32-cris.c:1390 elf32-d10v.c:482 elf32-fr30.c:634 elf32-frv.c:815
+#: elf32-h8300.c:509 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510
-#: elf32-openrisc.c:436 elf32-v850.c:1753 elf32-xstormy16.c:976
+#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976
#: elf64-mmix.c:1332
msgid "internal error: out of range error"
msgstr ""
-#: elf-m10200.c:446 elf-m10300.c:659 elf32-arm.h:2092 elf32-avr.c:816
-#: elf32-cris.c:1387 elf32-d10v.c:485 elf32-fr30.c:637 elf32-frv.c:819
-#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
+#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816
+#: elf32-cris.c:1394 elf32-d10v.c:486 elf32-fr30.c:638 elf32-frv.c:819
+#: elf32-h8300.c:513 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440
-#: elf32-v850.c:1757 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6533
+#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452
msgid "internal error: unsupported relocation error"
msgstr ""
-#: elf-m10200.c:450 elf-m10300.c:663 elf32-arm.h:2096 elf32-d10v.c:489
-#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
+#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:490
+#: elf32-h8300.c:517 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
msgid "internal error: dangerous error"
msgstr ""
-#: elf-m10200.c:454 elf-m10300.c:667 elf32-arm.h:2100 elf32-avr.c:824
-#: elf32-cris.c:1395 elf32-d10v.c:493 elf32-fr30.c:645 elf32-frv.c:827
-#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
+#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824
+#: elf32-cris.c:1402 elf32-d10v.c:494 elf32-fr30.c:646 elf32-frv.c:827
+#: elf32-h8300.c:521 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522
-#: elf32-openrisc.c:448 elf32-v850.c:1777 elf32-xstormy16.c:988
+#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988
#: elf64-mmix.c:1344
msgid "internal error: unknown error"
msgstr ""
@@ -690,8 +690,8 @@ msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2443 elf32-cris.c:2968 elf32-m68hc1x.c:1459 elf32-m68k.c:397
-#: elf32-vax.c:546 elfxx-mips.c:9379
+#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397
+#: elf32-vax.c:546 elfxx-mips.c:9240
#, c-format
msgid "private flags = %lx:"
msgstr ""
@@ -764,9 +764,9 @@ msgstr ""
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-avr.c:820 elf32-cris.c:1391 elf32-fr30.c:641 elf32-frv.c:823
+#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823
#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518
-#: elf32-openrisc.c:444 elf32-v850.c:1761 elf32-xstormy16.c:984
+#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984
#: elf64-mmix.c:1340
msgid "internal error: dangerous relocation"
msgstr ""
@@ -799,39 +799,39 @@ msgid ""
"%s: relocation %s with non-zero addend %d against symbol `%s' from %s section"
msgstr ""
-#: elf32-cris.c:1136
+#: elf32-cris.c:1143
#, c-format
msgid ""
"%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr ""
-#: elf32-cris.c:1151
+#: elf32-cris.c:1158
#, c-format
msgid "%s: relocation %s in section %s with no GOT created"
msgstr ""
-#: elf32-cris.c:1270
+#: elf32-cris.c:1277
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr ""
-#: elf32-cris.c:2493
+#: elf32-cris.c:2500
#, c-format
msgid ""
"%s, section %s:\n"
" relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:2971
+#: elf32-cris.c:2978
msgid " [symbols have a _ prefix]"
msgstr ""
-#: elf32-cris.c:3010
+#: elf32-cris.c:3017
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3011
+#: elf32-cris.c:3018
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr ""
@@ -864,7 +864,7 @@ msgstr ""
msgid "%s: Relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3147
+#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr ""
@@ -874,7 +874,7 @@ msgstr ""
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:1340 elf64-x86-64.c:751 elf64-x86-64.c:876
+#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797
#, c-format
msgid ""
"%s: relocation %s can not be used when making a shared object; recompile "
@@ -912,38 +912,38 @@ msgstr ""
msgid ".got section not immediately after .plt section"
msgstr ""
-#: elf32-i386.c:390
+#: elf32-i386.c:326
#, c-format
msgid "%s: invalid relocation type %d"
msgstr ""
-#: elf32-i386.c:923 elf32-s390.c:919 elf32-sparc.c:887 elf32-xtensa.c:635
-#: elf64-s390.c:873 elf64-x86-64.c:729
+#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637
+#: elf64-s390.c:943 elf64-x86-64.c:650
#, c-format
msgid "%s: bad symbol index: %d"
msgstr ""
-#: elf32-i386.c:1032 elf32-s390.c:1089 elf32-sh.c:6422 elf32-sparc.c:1011
-#: elf64-s390.c:1051
+#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011
+#: elf64-s390.c:1129
#, c-format
msgid "%s: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:1146 elf32-s390.c:1200 elf64-ppc.c:3956 elf64-s390.c:1165
-#: elf64-x86-64.c:965
+#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243
+#: elf64-x86-64.c:886
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr ""
-#: elf32-i386.c:3003 elf32-m68k.c:1757 elf32-s390.c:2936 elf32-sparc.c:2876
-#: elf32-xtensa.c:2160 elf64-s390.c:2933 elf64-sparc.c:2664
-#: elf64-x86-64.c:2553
+#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879
+#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664
+#: elf64-x86-64.c:2452
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-i386.c:3042 elf32-m68k.c:1796 elf32-s390.c:2974 elf64-s390.c:2971
-#: elf64-x86-64.c:2591
+#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068
+#: elf64-x86-64.c:2490
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr ""
@@ -972,8 +972,8 @@ msgstr ""
msgid "unsupported relocation between data/insn address spaces"
msgstr ""
-#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2211 elf64-sparc.c:3072
-#: elfxx-mips.c:9336
+#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072
+#: elfxx-mips.c:9197
#, c-format
msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
@@ -982,8 +982,8 @@ msgstr ""
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-ia64.c:3903 elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407
-#: elf64-ia64.c:3903
+#: elf32-ia64.c:3817 elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407
+#: elf64-ia64.c:3817
#, c-format
msgid "%s: unknown relocation type %d"
msgstr ""
@@ -1105,101 +1105,108 @@ msgstr ""
msgid "%s: Unknown relocation type %d\n"
msgstr ""
-#: elf32-mips.c:1151 elf64-mips.c:1720 elfn32-mips.c:1665
+#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr ""
-#: elf32-mips.c:1294 elf64-mips.c:1836 elfn32-mips.c:1781
+#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr ""
-#: elf32-ppc.c:2176
+#: elf32-ppc.c:2056
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr ""
+
+#: elf32-ppc.c:2138
#, c-format
msgid ""
"%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:2184
+#: elf32-ppc.c:2147
#, c-format
msgid ""
"%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr ""
-#: elf32-ppc.c:2309
+#: elf32-ppc.c:3413
#, c-format
-msgid "%s: unknown special linker type %d"
+msgid "%s: relocation %s cannot be used when making a shared object"
msgstr ""
-#: elf32-ppc.c:3178
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3619
#, c-format
-msgid "%s: relocation %s cannot be used when making a shared object"
+msgid "%s(%s+0x%lx): %s reloc against local symbol"
msgstr ""
-#: elf32-ppc.c:4651 elf64-ppc.c:7532
+#: elf32-ppc.c:4862 elf64-ppc.c:7789
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr ""
-#: elf32-ppc.c:4902
+#: elf32-ppc.c:5113
#, c-format
msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'"
msgstr ""
-#: elf32-ppc.c:5190 elf32-ppc.c:5214 elf32-ppc.c:5271
+#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484
#, c-format
msgid ""
"%s: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:5325
+#: elf32-ppc.c:5539
#, c-format
msgid "%s: relocation %s is not yet supported for symbol %s."
msgstr ""
-#: elf32-ppc.c:5379 elf64-ppc.c:8124
+#: elf32-ppc.c:5594 elf64-ppc.c:8461
#, c-format
msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
msgstr ""
-#: elf32-ppc.c:5429 elf64-ppc.c:8170
+#: elf32-ppc.c:5644 elf64-ppc.c:8507
#, c-format
msgid "%s(%s+0x%lx): %s reloc against `%s': error %d"
msgstr ""
-#: elf32-ppc.c:5695
+#: elf32-ppc.c:5888
#, c-format
msgid "corrupt or empty %s section in %s"
msgstr ""
-#: elf32-ppc.c:5702
+#: elf32-ppc.c:5895
#, c-format
msgid "unable to read in %s section from %s"
msgstr ""
-#: elf32-ppc.c:5708
+#: elf32-ppc.c:5901
#, c-format
msgid "corrupt %s section in %s"
msgstr ""
-#: elf32-ppc.c:5751
+#: elf32-ppc.c:5944
#, c-format
msgid "warning: unable to set size of %s section in %s"
msgstr ""
-#: elf32-ppc.c:5804
+#: elf32-ppc.c:5994
msgid "failed to allocate space for new APUinfo section."
msgstr ""
-#: elf32-ppc.c:5823
+#: elf32-ppc.c:6013
msgid "failed to compute new APUinfo section."
msgstr ""
-#: elf32-ppc.c:5826
+#: elf32-ppc.c:6016
msgid "failed to install new APUinfo section."
msgstr ""
-#: elf32-s390.c:2173 elf64-s390.c:2144
+#: elf32-s390.c:2256 elf64-s390.c:2226
#, c-format
msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s"
msgstr ""
@@ -1292,100 +1299,100 @@ msgstr ""
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr ""
-#: elf32-sh.c:4651 elf64-sh64.c:1585
+#: elf32-sh.c:4654 elf64-sh64.c:1585
msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
msgstr ""
-#: elf32-sh.c:4806
+#: elf32-sh.c:4809
#, c-format
msgid "%s: unresolvable relocation against symbol `%s' from %s section"
msgstr ""
-#: elf32-sh.c:4878
+#: elf32-sh.c:4881
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr ""
-#: elf32-sh.c:6621 elf64-alpha.c:4848
+#: elf32-sh.c:6627 elf64-alpha.c:4848
#, c-format
msgid "%s: TLS local exec code cannot be linked into shared objects"
msgstr ""
-#: elf32-sparc.c:2518 elf64-sparc.c:2314
+#: elf32-sparc.c:2521 elf64-sparc.c:2314
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr ""
-#: elf32-sparc.c:3345
+#: elf32-sparc.c:3348
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr ""
-#: elf32-sparc.c:3359
+#: elf32-sparc.c:3362
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr ""
-#: elf32-v850.c:736
+#: elf32-v850.c:753
#, c-format
msgid "Variable `%s' cannot occupy in multiple small data regions"
msgstr ""
-#: elf32-v850.c:739
+#: elf32-v850.c:756
#, c-format
msgid ""
"Variable `%s' can only be in one of the small, zero, and tiny data regions"
msgstr ""
-#: elf32-v850.c:742
+#: elf32-v850.c:759
#, c-format
msgid ""
"Variable `%s' cannot be in both small and zero data regions simultaneously"
msgstr ""
-#: elf32-v850.c:745
+#: elf32-v850.c:762
#, c-format
msgid ""
"Variable `%s' cannot be in both small and tiny data regions simultaneously"
msgstr ""
-#: elf32-v850.c:748
+#: elf32-v850.c:765
#, c-format
msgid ""
"Variable `%s' cannot be in both zero and tiny data regions simultaneously"
msgstr ""
-#: elf32-v850.c:1126
+#: elf32-v850.c:1144
msgid "FAILED to find previous HI16 reloc\n"
msgstr ""
-#: elf32-v850.c:1765
+#: elf32-v850.c:1789
msgid "could not locate special linker symbol __gp"
msgstr ""
-#: elf32-v850.c:1769
+#: elf32-v850.c:1793
msgid "could not locate special linker symbol __ep"
msgstr ""
-#: elf32-v850.c:1773
+#: elf32-v850.c:1797
msgid "could not locate special linker symbol __ctbp"
msgstr ""
-#: elf32-v850.c:1939
+#: elf32-v850.c:1963
#, c-format
msgid "%s: Architecture mismatch with previous modules"
msgstr ""
-#: elf32-v850.c:1959
+#: elf32-v850.c:1983
#, c-format
msgid "private flags = %lx: "
msgstr ""
-#: elf32-v850.c:1964
+#: elf32-v850.c:1988
msgid "v850 architecture"
msgstr ""
-#: elf32-v850.c:1965
+#: elf32-v850.c:1989
msgid "v850e architecture"
msgstr ""
@@ -1423,7 +1430,7 @@ msgstr ""
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr ""
-#: elf32-ia64.c:2429 elf32-xstormy16.c:462 elf64-ia64.c:2429
+#: elf32-ia64.c:2326 elf32-xstormy16.c:462 elf64-ia64.c:2326
msgid "non-zero addend in @fptr reloc"
msgstr ""
@@ -1539,61 +1546,91 @@ msgid ""
" Please report this bug."
msgstr ""
-#: elf64-ppc.c:2362 libbfd.c:887
+#: elf64-ppc.c:2388 libbfd.c:831
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr ""
-#: elf64-ppc.c:2364 libbfd.c:889
+#: elf64-ppc.c:2391 libbfd.c:833
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr ""
-#: elf64-ppc.c:4903
+#: elf64-ppc.c:4857
#, c-format
msgid "%s: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:4923
+#: elf64-ppc.c:4877
#, c-format
msgid "%s: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:4943
+#: elf64-ppc.c:4897
#, c-format
msgid "%s: undefined sym `%s' in .opd section"
msgstr ""
-#: elf64-ppc.c:6131
+#: elf64-ppc.c:6136
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:6170 elf64-ppc.c:6220
+#: elf64-ppc.c:6175 elf64-ppc.c:6250
#, c-format
msgid "linkage table error against `%s'"
msgstr ""
-#: elf64-ppc.c:6301
+#: elf64-ppc.c:6340
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:6934
+#: elf64-ppc.c:7047
+msgid ".glink and .plt too far apart"
+msgstr ""
+
+#: elf64-ppc.c:7135
msgid "stubs don't match calculated size"
msgstr ""
-#: elf64-ppc.c:8009
+#: elf64-ppc.c:7147
+#, c-format
+msgid ""
+"linker stubs in %u groups\n"
+" branch %lu\n"
+" toc adjust %lu\n"
+" long branch %lu\n"
+" long toc adj %lu\n"
+" plt call %lu"
+msgstr ""
+
+#: elf64-ppc.c:7723
+#, c-format
+msgid ""
+"%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; "
+"recompile with -mminimal-toc or upgrade gcc"
+msgstr ""
+
+#: elf64-ppc.c:7731
+#, c-format
+msgid ""
+"%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic "
+"multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, "
+"or make `%s' extern"
+msgstr ""
+
+#: elf64-ppc.c:8329
#, c-format
msgid "%s: relocation %s is not supported for symbol %s."
msgstr ""
-#: elf64-ppc.c:8078
+#: elf64-ppc.c:8408
#, c-format
-msgid "%s: error: relocation %s not a multiple of 4"
+msgid "%s: error: relocation %s not a multiple of %d"
msgstr ""
-#: elf-hppa.h:1458 elf-hppa.h:1491 elf64-sh64.c:1704
+#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704
#, c-format
msgid ""
"%s: warning: unresolvable relocation against symbol `%s' from %s section"
@@ -1629,7 +1666,7 @@ msgstr ""
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:818
+#: elf64-x86-64.c:739
#, c-format
msgid "%s: %s' accessed both as normal and thread local symbol"
msgstr ""
@@ -1655,25 +1692,25 @@ msgid ""
"Program Header:\n"
msgstr ""
-#: elf.c:1105
+#: elf.c:1106
msgid ""
"\n"
"Dynamic Section:\n"
msgstr ""
-#: elf.c:1234
+#: elf.c:1235
msgid ""
"\n"
"Version definitions:\n"
msgstr ""
-#: elf.c:1257
+#: elf.c:1258
msgid ""
"\n"
"Version References:\n"
msgstr ""
-#: elf.c:1262
+#: elf.c:1263
#, c-format
msgid " required from %s:\n"
msgstr ""
@@ -1683,55 +1720,55 @@ msgstr ""
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr ""
-#: elf.c:3668
+#: elf.c:3686
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr ""
-#: elf.c:3773
+#: elf.c:3791
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:3904
+#: elf.c:3922
#, c-format
msgid ""
"Error: First section in segment (%s) starts at 0x%x whereas the segment "
"starts at 0x%x"
msgstr ""
-#: elf.c:4218
+#: elf.c:4242
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:4542
+#: elf.c:4566
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr ""
-#: elf.c:4830
+#: elf.c:4854
#, c-format
msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr ""
-#: elf.c:5461
+#: elf.c:5485
#, c-format
msgid ""
"Unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:6274
+#: elf.c:6298
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr ""
-#: elfcode.h:1117
+#: elfcode.h:1113
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr ""
-#: elfcode.h:1346
+#: elfcode.h:1342
#, c-format
msgid "%s(%s): relocation %d has invalid symbol index %ld"
msgstr ""
@@ -1746,17 +1783,12 @@ msgstr ""
msgid "%s: undefined versioned symbol name %s"
msgstr ""
-#: elflink.c:1956
-#, c-format
-msgid "%s: Section %s is too large to add hole of %ld bytes"
-msgstr ""
-
-#: elflink.c:2315
+#: elflink.c:2142
#, c-format
msgid "%s: relocation size mismatch in %s section %s"
msgstr ""
-#: elflink.c:2607
+#: elflink.c:2434
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
@@ -1781,189 +1813,188 @@ msgstr ""
msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s"
msgstr ""
-#: elflink.h:2123
+#: elflink.h:2160
#, c-format
msgid "%s: undefined version: %s"
msgstr ""
-#: elflink.h:2189
+#: elflink.h:2226
#, c-format
msgid "%s: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.h:3040
+#: elflink.h:3078
msgid "Not enough memory to sort relocations"
msgstr ""
-#: elflink.h:3922 elflink.h:3965
+#: elflink.h:3958 elflink.h:4001
#, c-format
msgid "%s: could not find output section %s"
msgstr ""
-#: elflink.h:3928
+#: elflink.h:3964
#, c-format
msgid "warning: %s section has zero size"
msgstr ""
-#: elflink.h:4447
+#: elflink.h:4483
#, c-format
msgid "%s: %s symbol `%s' in %s is referenced by DSO"
msgstr ""
-#: elflink.h:4528
+#: elflink.h:4564
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr ""
-#: elflink.h:4630
+#: elflink.h:4666
#, c-format
msgid "%s: %s symbol `%s' isn't defined"
msgstr ""
-#: elflink.h:5033
-#, c-format
-msgid "local symbols in discarded section %s"
+#: elflink.h:5053 elflink.h:5095
+msgid "%T: discarded in section `%s' from %s\n"
msgstr ""
-#: elfxx-mips.c:901
+#: elfxx-mips.c:887
msgid "static procedure (no name)"
msgstr ""
-#: elfxx-mips.c:1935
+#: elfxx-mips.c:1897
msgid "not enough GOT space for local GOT entries"
msgstr ""
-#: elfxx-mips.c:3755
+#: elfxx-mips.c:3691
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr ""
-#: elfxx-mips.c:5266
+#: elfxx-mips.c:5192
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:5340
+#: elfxx-mips.c:5266
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr ""
-#: elfxx-mips.c:8833
+#: elfxx-mips.c:8693
#, c-format
msgid "%s: illegal section name `%s'"
msgstr ""
-#: elfxx-mips.c:9166
+#: elfxx-mips.c:9027
#, c-format
msgid "%s: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:9178
+#: elfxx-mips.c:9039
#, c-format
msgid "%s: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:9245
+#: elfxx-mips.c:9106
#, c-format
msgid "%s: warning: linking PIC files with non-PIC files"
msgstr ""
-#: elfxx-mips.c:9262
+#: elfxx-mips.c:9123
#, c-format
msgid "%s: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:9290
+#: elfxx-mips.c:9151
#, c-format
msgid "%s: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:9313
+#: elfxx-mips.c:9174
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:9382
+#: elfxx-mips.c:9243
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:9384
+#: elfxx-mips.c:9245
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:9386
+#: elfxx-mips.c:9247
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:9388
+#: elfxx-mips.c:9249
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:9390
+#: elfxx-mips.c:9251
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:9392
+#: elfxx-mips.c:9253
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:9394
+#: elfxx-mips.c:9255
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:9396
+#: elfxx-mips.c:9257
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:9399
+#: elfxx-mips.c:9260
msgid " [mips1]"
msgstr ""
-#: elfxx-mips.c:9401
+#: elfxx-mips.c:9262
msgid " [mips2]"
msgstr ""
-#: elfxx-mips.c:9403
+#: elfxx-mips.c:9264
msgid " [mips3]"
msgstr ""
-#: elfxx-mips.c:9405
+#: elfxx-mips.c:9266
msgid " [mips4]"
msgstr ""
-#: elfxx-mips.c:9407
+#: elfxx-mips.c:9268
msgid " [mips5]"
msgstr ""
-#: elfxx-mips.c:9409
+#: elfxx-mips.c:9270
msgid " [mips32]"
msgstr ""
-#: elfxx-mips.c:9411
+#: elfxx-mips.c:9272
msgid " [mips64]"
msgstr ""
-#: elfxx-mips.c:9413
+#: elfxx-mips.c:9274
msgid " [mips32r2]"
msgstr ""
-#: elfxx-mips.c:9415
+#: elfxx-mips.c:9276
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:9418
+#: elfxx-mips.c:9279
msgid " [mdmx]"
msgstr ""
-#: elfxx-mips.c:9421
+#: elfxx-mips.c:9282
msgid " [mips16]"
msgstr ""
-#: elfxx-mips.c:9424
+#: elfxx-mips.c:9285
msgid " [32bitmode]"
msgstr ""
-#: elfxx-mips.c:9426
+#: elfxx-mips.c:9287
msgid " [not 32bitmode]"
msgstr ""
@@ -2062,24 +2093,24 @@ msgstr ""
msgid "%s: address 0x%s out of range for Intel Hex file"
msgstr ""
-#: libbfd.c:918
+#: libbfd.c:861
#, c-format
msgid "Deprecated %s called at %s line %d in %s\n"
msgstr ""
-#: libbfd.c:921
+#: libbfd.c:864
#, c-format
msgid "Deprecated %s called\n"
msgstr ""
-#: linker.c:1877
+#: linker.c:1829
#, c-format
msgid "%s: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:2780
+#: linker.c:2697
#, c-format
-msgid "Attempt to do relocateable link with %s input and %s output"
+msgid "Attempt to do relocatable link with %s input and %s output"
msgstr ""
#: merge.c:896
@@ -2364,7 +2395,7 @@ msgstr ""
msgid "%s(%s+0x%lx): Stabs entry has invalid string index."
msgstr ""
-#: syms.c:1042
+#: syms.c:1019
msgid "Unsupported .stab relocation"
msgstr ""
@@ -2611,70 +2642,75 @@ msgstr ""
msgid "%s: loader reloc in read-only section %s"
msgstr ""
-#: elf32-ia64.c:2371 elf64-ia64.c:2371
+#: elf32-ia64.c:2271 elf64-ia64.c:2271
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf32-ia64.c:3749 elf64-ia64.c:3749
+#: elf32-ia64.c:3663 elf64-ia64.c:3663
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr ""
-#: elf32-ia64.c:3760 elf64-ia64.c:3760
+#: elf32-ia64.c:3674 elf64-ia64.c:3674
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr ""
-#: elf32-ia64.c:4076 elf64-ia64.c:4076
+#: elf32-ia64.c:3986 elf64-ia64.c:3986
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr ""
-#: elf32-ia64.c:4109 elf64-ia64.c:4109
+#: elf32-ia64.c:4017 elf64-ia64.c:4017
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4285 elf64-ia64.c:4285
+#: elf32-ia64.c:4077 elf64-ia64.c:4077
+#, c-format
+msgid "%s: linking non-pic code in a position independent executable"
+msgstr ""
+
+#: elf32-ia64.c:4214 elf64-ia64.c:4214
#, c-format
msgid "%s: @internal branch to dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4287 elf64-ia64.c:4287
+#: elf32-ia64.c:4216 elf64-ia64.c:4216
#, c-format
msgid "%s: speculation fixup to dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4289 elf64-ia64.c:4289
+#: elf32-ia64.c:4218 elf64-ia64.c:4218
#, c-format
msgid "%s: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4501 elf64-ia64.c:4501
+#: elf32-ia64.c:4430 elf64-ia64.c:4430
msgid "unsupported reloc"
msgstr ""
-#: elf32-ia64.c:4780 elf64-ia64.c:4780
+#: elf32-ia64.c:4709 elf64-ia64.c:4709
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf32-ia64.c:4789 elf64-ia64.c:4789
+#: elf32-ia64.c:4718 elf64-ia64.c:4718
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr ""
-#: elf32-ia64.c:4798 elf64-ia64.c:4798
+#: elf32-ia64.c:4727 elf64-ia64.c:4727
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf32-ia64.c:4807 elf64-ia64.c:4807
+#: elf32-ia64.c:4736 elf64-ia64.c:4736
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf32-ia64.c:4817 elf64-ia64.c:4817
+#: elf32-ia64.c:4746 elf64-ia64.c:4746
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr ""
diff --git a/bfd/po/es.po b/bfd/po/es.po
index ab8b837..3aa3336 100644
--- a/bfd/po/es.po
+++ b/bfd/po/es.po
@@ -1,498 +1,521 @@
-# Mensajes en español para bfd 2.12.91.
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002.
+# Mensajes en español para bfd 2.14rel030712.
+# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-24 02:29-0500\n"
+"Project-Id-Version: bfd 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:53+0930\n"
+"PO-Revision-Date: 2003-07-13 21:49-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: aout-adobe.c:197
+#: aout-adobe.c:204
#, c-format
msgid "%s: Unknown section type in a.out.adobe file: %x\n"
msgstr "%s: Tipo de sección desconocido en el fichero a.out.adobe: %x\n"
-#: aout-cris.c:208
+#: aout-cris.c:207
#, c-format
msgid "%s: Invalid relocation type exported: %d"
msgstr "%s: Tipo de reubicación exportado inválido: %d"
-#: aout-cris.c:252
+#: aout-cris.c:251
#, c-format
msgid "%s: Invalid relocation type imported: %d"
msgstr "%s: Tipo de reubicación importado inválido: %d"
-#: aout-cris.c:263
+#: aout-cris.c:262
#, c-format
msgid "%s: Bad relocation record imported: %d"
msgstr "%s: Registro de reubicación importado erróneo: %d"
-#: aoutx.h:1282 aoutx.h:1699
+#: aoutx.h:1295 aoutx.h:1716
#, c-format
msgid "%s: can not represent section `%s' in a.out object file format"
msgstr "%s: no se puede representar la sección `%s' en el fichero objeto de formato a.out"
-#: aoutx.h:1669
+#: aoutx.h:1682
#, c-format
msgid "%s: can not represent section for symbol `%s' in a.out object file format"
msgstr "%s: no se puede representar la sección para el símbolo `%s' en el fichero objeto de formato a.out"
-#: aoutx.h:1671
+#: aoutx.h:1684
msgid "*unknown*"
msgstr "*desconocido*"
-#: aoutx.h:3732
+#: aoutx.h:3776
#, c-format
-msgid "%s: relocateable link from %s to %s not supported"
-msgstr "%s: enlace reubicable desde %s a %s sin soporte"
+msgid "%s: relocatable link from %s to %s not supported"
+msgstr "%s: el enlace reubicable de %s a %s no está soportado"
-#: archive.c:1826
+#: archive.c:1751
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr "Aviso: la escritura del fichero fue lenta: reescribiendo la marca de tiempo\n"
# ¡Uff! Si utilizáramos file=archivo, esta traducción sería imposible. cfuga
-#: archive.c:2093
+#: archive.c:2014
msgid "Reading archive file mod timestamp"
msgstr "Leyendo el archivo de la modificación de marca de tiempo del fichero"
-#. FIXME: bfd can't call perror.
-#: archive.c:2120
+#: archive.c:2040
msgid "Writing updated armap timestamp"
msgstr "Escribiendo la marca de tiempo actualizada de armap"
-#: bfd.c:274
+#: bfd.c:280
msgid "No error"
msgstr "No hay error"
-#: bfd.c:275
+#: bfd.c:281
msgid "System call error"
msgstr "Error en la llamada al sistema"
-#: bfd.c:276
+#: bfd.c:282
msgid "Invalid bfd target"
msgstr "Objetivo bfd inválido"
-#: bfd.c:277
+#: bfd.c:283
msgid "File in wrong format"
msgstr "Fichero en formato erróneo"
-#: bfd.c:278
+#: bfd.c:284
msgid "Archive object file in wrong format"
msgstr "Archivo de ficheros objeto en formato erróneo"
-#: bfd.c:279
+#: bfd.c:285
msgid "Invalid operation"
msgstr "Operación inválida"
-#: bfd.c:280
+#: bfd.c:286
msgid "Memory exhausted"
msgstr "Memoria agotada"
-#: bfd.c:281
+#: bfd.c:287
msgid "No symbols"
msgstr "No hay símbolos"
-#: bfd.c:282
+#: bfd.c:288
msgid "Archive has no index; run ranlib to add one"
msgstr "El archivo no tiene índice; ejecute ranlib para agregar uno"
-#: bfd.c:283
+#: bfd.c:289
msgid "No more archived files"
msgstr "No hay más ficheros archivados"
-#: bfd.c:284
+#: bfd.c:290
msgid "Malformed archive"
msgstr "Archivo malformado"
-#: bfd.c:285
+#: bfd.c:291
msgid "File format not recognized"
msgstr "No se reconoce el formato del fichero"
-#: bfd.c:286
+#: bfd.c:292
msgid "File format is ambiguous"
msgstr "El formato del fichero es ambiguo"
-#: bfd.c:287
+#: bfd.c:293
msgid "Section has no contents"
msgstr "La sección no tiene contenidos"
-#: bfd.c:288
+#: bfd.c:294
msgid "Nonrepresentable section on output"
msgstr "Sección no representable en la salida"
-#: bfd.c:289
+#: bfd.c:295
msgid "Symbol needs debug section which does not exist"
msgstr "Un símbolo requiere de una sección de depuración, la cual no existe"
-#: bfd.c:290
+#: bfd.c:296
msgid "Bad value"
msgstr "Valor erróneo"
-#: bfd.c:291
+#: bfd.c:297
msgid "File truncated"
msgstr "Fichero truncado"
-#: bfd.c:292
+#: bfd.c:298
msgid "File too big"
msgstr "Fichero demasiado grande"
-#: bfd.c:293
+#: bfd.c:299
msgid "#<Invalid error code>"
msgstr "#<Código de error inválido>"
-#: bfd.c:700
+#: bfd.c:687
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "falló la aseveración BFD %s %s:%d"
-#: bfd.c:719
+#: bfd.c:703
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr "error interno de BFD %s, abortando en %s línea %d en %s\n"
-#: bfd.c:723
+#: bfd.c:707
#, c-format
msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr "error interno de BFD %s, abortando en %s línea %d\n"
-#: bfd.c:725
+#: bfd.c:709
msgid "Please report this bug.\n"
msgstr "Por favor reporte este bicho.\n"
+#: bfdwin.c:202
+#, c-format
+msgid "not mapping: data=%lx mapped=%d\n"
+msgstr "no se mapea: datos=%lx mapeados%d\n"
+
+#: bfdwin.c:205
+msgid "not mapping: env var not set\n"
+msgstr "no se mapea: no se estableció la variable de ambiente\n"
+
#: binary.c:306
#, c-format
msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
msgstr "Aviso: Escribiendo la sección `%s' a un desplazamiento de fichero grande (pe negativo) 0x%lx."
-#: coff-a29k.c:119
+#: coff-a29k.c:120
msgid "Missing IHCONST"
msgstr "IHCONST faltante"
-#: coff-a29k.c:180
+#: coff-a29k.c:181
msgid "Missing IHIHALF"
msgstr "IHIHALF faltante"
-#: coff-a29k.c:212 coff-or32.c:229
+#: coff-a29k.c:213 coff-or32.c:236
msgid "Unrecognized reloc"
msgstr "Reubicación no reconocida"
-#: coff-a29k.c:408
+#: coff-a29k.c:409
msgid "missing IHCONST reloc"
msgstr "reubicación IHCONST faltante"
-#: coff-a29k.c:498
+#: coff-a29k.c:499
msgid "missing IHIHALF reloc"
msgstr "reubicación IHIHALF faltante"
-#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432
+#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397
msgid "GP relative relocation used when GP not defined"
msgstr "se usó una reubicación GP relativa cuando GP no estaba definido"
-#: coff-alpha.c:1485
+#: coff-alpha.c:1488
msgid "using multiple gp values"
msgstr "usando valores múltiples de gp"
-#: coff-arm.c:1066 elf32-arm.h:285
+#: coff-arm.c:1066 elf32-arm.h:294
#, c-format
msgid "%s: unable to find THUMB glue '%s' for `%s'"
msgstr "%s: no se puede encontrar el pegamento THUMB '%s' para `%s'"
-#: coff-arm.c:1096 elf32-arm.h:320
+#: coff-arm.c:1096 elf32-arm.h:329
#, c-format
msgid "%s: unable to find ARM glue '%s' for `%s'"
msgstr "%s: no se puede encontrar el pegamento ARM '%s' para `%s'"
-#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991
+#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999
#, c-format
msgid "%s(%s): warning: interworking not enabled."
msgstr "%s(%s): aviso: interoperabilidad no activada."
-#: coff-arm.c:1395 elf32-arm.h:994
+#: coff-arm.c:1398 elf32-arm.h:1002
#, c-format
msgid " first occurrence: %s: arm call to thumb"
msgstr " primera ocurrencia: %s: llamada arm a thumb"
-#: coff-arm.c:1490 elf32-arm.h:890
+#: coff-arm.c:1493 elf32-arm.h:895
#, c-format
msgid " first occurrence: %s: thumb call to arm"
msgstr " primera ocurrencia: %s: llamada thumb a arm"
-#: coff-arm.c:1493
+#: coff-arm.c:1496
msgid " consider relinking with --support-old-code enabled"
msgstr " considere el reenlace con --support-old-code activado"
-#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031
+#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr "%s: dirección de reubicación 0x%lx errónea en la sección `%s'"
-#: coff-arm.c:2127
+#: coff-arm.c:2132
#, c-format
msgid "%s: illegal symbol index in reloc: %d"
msgstr "%s: índice de símbolos ilegal en la reubicación: %d"
-#: coff-arm.c:2255
+#: coff-arm.c:2265
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr "ERROR: %s está compilado para APCS-%d, mientras que %s está compilado para APCS-%d"
-#: coff-arm.c:2270 elf32-arm.h:2297
+#: coff-arm.c:2280 elf32-arm.h:2328
#, c-format
msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers"
msgstr "ERROR: %s pasa números de coma flotante en registros de coma flotante, mientras que %s los pasa en registros enteros"
-#: coff-arm.c:2273 elf32-arm.h:2302
+#: coff-arm.c:2283 elf32-arm.h:2333
#, c-format
msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers"
msgstr "ERROR: %s pasa números de coma flotante en registros enteros, mientras que %s los pasa en registros de coma flotante"
-#: coff-arm.c:2288
+#: coff-arm.c:2298
#, c-format
msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position"
msgstr "ERROR: %s está compilado como código independiente de posición, mientras que el objetivo %s es de posición absoluta"
-#: coff-arm.c:2291
+#: coff-arm.c:2301
#, c-format
msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent"
msgstr "ERROR: %s está compilado como código de posición absoluta, mientras que el objetivo %s es independiente de posición"
-#: coff-arm.c:2320 elf32-arm.h:2358
+#: coff-arm.c:2330 elf32-arm.h:2405
#, c-format
msgid "Warning: %s supports interworking, whereas %s does not"
msgstr "Aviso: el fichero de entrada %s soporta interoperabilidad, mientras que %s no"
-#: coff-arm.c:2323 elf32-arm.h:2365
+#: coff-arm.c:2333 elf32-arm.h:2412
#, c-format
msgid "Warning: %s does not support interworking, whereas %s does"
msgstr "Aviso: el fichero de entrada %s no soporta interoperabilidad, mientras que %s sí"
-#: coff-arm.c:2350
+#: coff-arm.c:2360
#, c-format
msgid "private flags = %x:"
msgstr "opciones privadas = %x:"
-#: coff-arm.c:2358 elf32-arm.h:2418
+#: coff-arm.c:2368 elf32-arm.h:2467
msgid " [floats passed in float registers]"
msgstr "[números de coma flotante pasados en registros de coma flotante]"
-#: coff-arm.c:2360
+#: coff-arm.c:2370
msgid " [floats passed in integer registers]"
msgstr "[números de coma flotante pasados en registros enteros]"
-#: coff-arm.c:2363 elf32-arm.h:2421
+#: coff-arm.c:2373 elf32-arm.h:2470
msgid " [position independent]"
msgstr "[independiente de posición]"
-#: coff-arm.c:2365
+#: coff-arm.c:2375
msgid " [absolute position]"
msgstr "[posición absoluta]"
-#: coff-arm.c:2369
+#: coff-arm.c:2379
msgid " [interworking flag not initialised]"
msgstr "[opción de interoperabilidad no iniciada]"
-#: coff-arm.c:2371
+#: coff-arm.c:2381
msgid " [interworking supported]"
msgstr "[soporte para interoperabilidad]"
-#: coff-arm.c:2373
+#: coff-arm.c:2383
msgid " [interworking not supported]"
msgstr "[sin soporte para interoperabilidad]"
-#: coff-arm.c:2421 elf32-arm.h:2124
+#: coff-arm.c:2431 elf32-arm.h:2150
#, c-format
msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"
msgstr "Aviso: No se establece la opción de interoperabilidad de %s ya que se había especificado con anterioridad como no interoperable"
-#: coff-arm.c:2425 elf32-arm.h:2128
+#: coff-arm.c:2435 elf32-arm.h:2154
#, c-format
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr "Aviso: Limpiando la opción de interoperabilidad de %s debido a una petición externa"
-#: coff-i960.c:136 coff-i960.c:485
+#: coff-h8300.c:1096
+#, c-format
+msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
+msgstr "no se puede manejar la reubicación R_MEM_INDIRECT cuando se utiliza la salida %s"
+
+#: coff-i960.c:137 coff-i960.c:486
msgid "uncertain calling convention for non-COFF symbol"
msgstr "convención de llamada incierta para un símbolo que no es COFF"
-#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844
+#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783
msgid "unsupported reloc type"
msgstr "tipo de reubicación sin soporte"
-#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609
+#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554
msgid "GP relative relocation when _gp not defined"
msgstr "reubicación GP relativa cuando _gp no está definido"
#. No other sections should appear in -membedded-pic
#. code.
-#: coff-mips.c:2466
+#: coff-mips.c:2431
msgid "reloc against unsupported section"
msgstr "reubicación contra una sección sin soporte"
-#: coff-mips.c:2474
+#: coff-mips.c:2439
msgid "reloc not properly aligned"
msgstr "reubicación no alineada adecuadamente"
-#: coff-rs6000.c:2766
+#: coff-rs6000.c:2790
#, c-format
msgid "%s: unsupported relocation type 0x%02x"
msgstr "%s: tipo de reubicación 0x%02x sin soporte"
-#: coff-rs6000.c:2859
+#: coff-rs6000.c:2883
#, c-format
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr "%s: reubicación de TOC en 0x%x al símbolo `%s' sin entrada TOC"
-#: coff-rs6000.c:3590 coff64-rs6000.c:2091
+#: coff-rs6000.c:3616 coff64-rs6000.c:2109
#, c-format
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr "%s: el símbolo `%s' tiene smclas %d no reconocido"
-#: coff-tic54x.c:279 coff-tic80.c:449
+#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450
#, c-format
msgid "Unrecognized reloc type 0x%x"
msgstr "Tipo de reubicación 0x%x no reconocida"
-#: coff-tic54x.c:390 coffcode.h:4974
+#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr "%s: aviso: íncide de símbolos %ld ilegal en reubicaciones"
-#: coff-w65.c:363
+#: coff-w65.c:364
#, c-format
msgid "ignoring reloc %s\n"
msgstr "ignorando la reubicación %s\n"
-#: coffcode.h:1086
+#: coffcode.h:1108
#, c-format
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr "%s (%s): Se ignora la opción de sección %s (0x%x)"
-#: coffcode.h:2143
+#: coffcode.h:2214
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr "Id de objetivo TI COFF '0x%x' no reconocido"
-#: coffcode.h:4365
+#: coffcode.h:4437
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr "%s: aviso: índice de símbolos %ld ilegal en los números de línea"
-#: coffcode.h:4379
+#: coffcode.h:4451
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr "%s: aviso: información duplicada de números de línea para `%s'"
-#: coffcode.h:4736
+#: coffcode.h:4805
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr "%s: Clase de almacenamiento %d no reconocida para %s símbolo `%s'"
-#: coffcode.h:4867
+#: coffcode.h:4938
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr "aviso: %s: el símbolo local `%s' no tiene sección"
-#: coffcode.h:5012
+#: coffcode.h:5083
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr "%s: tipo de reubicación %d ilegal en la dirección 0x%lx"
-#: coffgen.c:1661
+#: coffgen.c:1666
#, c-format
msgid "%s: bad string table size %lu"
msgstr "%s: tamaño de tabla de cadenas %lu erróneo"
-#: cofflink.c:534 elflink.h:1912
+#: cofflink.c:538 elflink.h:1276
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
msgstr "Aviso: el tipo del símbolo `%s' cambió de %d a %d en %s"
-#: cofflink.c:2321
+#: cofflink.c:2328
#, c-format
msgid "%s: relocs in section `%s', but it has no contents"
msgstr "%s: reubicaciones en la sección `%s', pero no tiene contenidos"
-#: cofflink.c:2664 coffswap.h:877
+#: cofflink.c:2671 coffswap.h:890
#, c-format
msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%s: %s: desbordamiento de reubicación: 0x%lx > 0xffff"
-#: cofflink.c:2673 coffswap.h:864
+#: cofflink.c:2680 coffswap.h:876
#, c-format
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: aviso: %s: desbordamiento de número de línea: 0x%lx > 0xffff"
-#: dwarf2.c:382
+#: cpu-arm.c:196 cpu-arm.c:206
+#, c-format
+msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale"
+msgstr "ERROR: %s está compilado para el EP9312, mientras que %s está compilado para Xscale"
+
+#: cpu-arm.c:344
+#, c-format
+msgid "warning: unable to update contents of %s section in %s"
+msgstr "aviso: no se puede actualizar el contenido de la sección %s en %s"
+
+#: dwarf2.c:380
msgid "Dwarf Error: Can't find .debug_str section."
msgstr "Error de Dwarf: No se puede encontrar la sección .debug_str."
-#: dwarf2.c:399
+#: dwarf2.c:397
#, c-format
msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)."
msgstr "Error de Dwarf: El desplazamiento DW_FROM_strp (%lu) es más grande o igual que el tamaño de .debug_str (%lu)."
-#: dwarf2.c:543
+#: dwarf2.c:541
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr "Error de Dwarf: No se puede encontrar la sección .debug_abbrev."
-#: dwarf2.c:560
+#: dwarf2.c:556
#, c-format
msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)."
msgstr "Error de Dwarf: El desplazamiento de abreviatura (%lu) es más grande o igual que el tamaño de .debug_abbrev (%lu)."
-#: dwarf2.c:757
+#: dwarf2.c:756
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
msgstr "Error de Dwarf: Valor de FORM inválido o no manejado: %u."
-#: dwarf2.c:852
+#: dwarf2.c:933
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr "Error de Dwarf: sección de números de línea revuelta (número erróneo de fichero)."
-#: dwarf2.c:938
+#: dwarf2.c:1032
msgid "Dwarf Error: Can't find .debug_line section."
msgstr "Error de Dwarf: No se puede encontrar lan sección .debug_line."
-#: dwarf2.c:961
+#: dwarf2.c:1049
#, c-format
msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)."
msgstr "Error de Dwarf: El desplazamiento de línea (%lu) es más grande o igual que el tamaño de .debug_line (%lu)."
-#: dwarf2.c:1159
+#: dwarf2.c:1255
msgid "Dwarf Error: mangled line number section."
msgstr "Error de Dwarf: sección de números de línea revuelta."
-#: dwarf2.c:1355 dwarf2.c:1566
+#: dwarf2.c:1470 dwarf2.c:1620
#, c-format
msgid "Dwarf Error: Could not find abbrev number %u."
msgstr "Error de Dwarf: No se puede encontrar el número de abreviatura %u."
-#: dwarf2.c:1527
+#: dwarf2.c:1581
#, c-format
msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information."
msgstr "Error de Dwarf: se encontró la versión de dwarf '%u', este lector solamente maneja información de la versión 2."
-#: dwarf2.c:1534
+#: dwarf2.c:1588
#, c-format
msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
msgstr "Error de Dwarf: se encontró el tamaño de dirección '%u', este lector no puede manejar tamaños más grandes que '%u'."
-#: dwarf2.c:1557
+#: dwarf2.c:1611
#, c-format
msgid "Dwarf Error: Bad abbrev number: %u."
msgstr "Error de Dwarf: Número de abreviación erróneo: %u."
-#: ecoff.c:1318
+#: ecoff.c:1339
#, c-format
msgid "Unknown basic type %d"
msgstr "Tipo básico %d desconocido"
-#: ecoff.c:1578
+#: ecoff.c:1599
#, c-format
msgid ""
"\n"
@@ -501,7 +524,7 @@ msgstr ""
"\n"
" Símbolo final+1: %ld"
-#: ecoff.c:1585 ecoff.c:1588
+#: ecoff.c:1606 ecoff.c:1609
#, c-format
msgid ""
"\n"
@@ -510,7 +533,7 @@ msgstr ""
"\n"
" Primer símbolo: %ld"
-#: ecoff.c:1600
+#: ecoff.c:1621
#, c-format
msgid ""
"\n"
@@ -519,7 +542,7 @@ msgstr ""
"\n"
" Símbolo final+1: %-7ld Tipo: %s"
-#: ecoff.c:1607
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
@@ -528,7 +551,7 @@ msgstr ""
"\n"
" Símbolo local: %ld"
-#: ecoff.c:1615
+#: ecoff.c:1636
#, c-format
msgid ""
"\n"
@@ -537,7 +560,7 @@ msgstr ""
"\n"
" struct; símbolo final+1: %ld"
-#: ecoff.c:1620
+#: ecoff.c:1641
#, c-format
msgid ""
"\n"
@@ -546,7 +569,7 @@ msgstr ""
"\n"
" union; símbolo final+1: %ld"
-#: ecoff.c:1625
+#: ecoff.c:1646
#, c-format
msgid ""
"\n"
@@ -555,7 +578,7 @@ msgstr ""
"\n"
" enum; símbolo final+1: %ld"
-#: ecoff.c:1631
+#: ecoff.c:1652
#, c-format
msgid ""
"\n"
@@ -564,54 +587,58 @@ msgstr ""
"\n"
" Tipo: %s"
-#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213
-#: elf64-sh64.c:1659
+#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704
#, c-format
msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr "%s: aviso: reubicación sin resolución contra el símbolo `%s' de la sección %s"
-#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833
-#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809
-#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439
-#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302
+#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812
+#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815
+#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
+#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510
+#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976
+#: elf64-mmix.c:1332
msgid "internal error: out of range error"
msgstr "error interno: error fuera de rango"
-#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837
-#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813
-#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443
-#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264
+#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816
+#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819
+#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
+#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440
+#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452
msgid "internal error: unsupported relocation error"
msgstr "error interno: error de reubicación sin soporte"
-#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489
-#: elf32-h8300.c:556 elf32-m32r.c:1286
+#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578
+#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
msgid "internal error: dangerous error"
msgstr "error interno: error peligroso"
-#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845
-#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821
-#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451
-#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314
+#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824
+#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827
+#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
+#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522
+#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988
+#: elf64-mmix.c:1344
msgid "internal error: unknown error"
msgstr "error interno: error desconocido"
-#: elf.c:343
+#: elf.c:372
#, c-format
msgid "%s: invalid string offset %u >= %lu for section `%s'"
msgstr "%s: desplazamiento de cadena inválido %u >= %lu para la sección `%s'"
-#: elf.c:589
+#: elf.c:624
#, c-format
msgid "%s: invalid SHT_GROUP entry"
msgstr "%s: entrada SHT_GROUP inválida"
-#: elf.c:660
+#: elf.c:695
#, c-format
msgid "%s: no group info for section %s"
msgstr "%s: no hay información de grupo para la sección %s"
-#: elf.c:1023
+#: elf.c:1055
msgid ""
"\n"
"Program Header:\n"
@@ -619,7 +646,7 @@ msgstr ""
"\n"
"Encabezado del Programa:\n"
-#: elf.c:1073
+#: elf.c:1106
msgid ""
"\n"
"Dynamic Section:\n"
@@ -627,7 +654,7 @@ msgstr ""
"\n"
"Sección Dinámica:\n"
-#: elf.c:1202
+#: elf.c:1235
msgid ""
"\n"
"Version definitions:\n"
@@ -635,7 +662,7 @@ msgstr ""
"\n"
"Definiciones de versión:\n"
-#: elf.c:1225
+#: elf.c:1258
msgid ""
"\n"
"Version References:\n"
@@ -643,224 +670,239 @@ msgstr ""
"\n"
"Referencias de Versión:\n"
-#: elf.c:1230
+#: elf.c:1263
#, c-format
msgid " required from %s:\n"
msgstr " requerido desde %s:\n"
-#: elf.c:1902
+#: elf.c:1944
#, c-format
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr "%s: enlace %lu inválido para la sección de reubicación %s (índice %u)"
-#: elf.c:3603
+#: elf.c:3686
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr "%s: No hay suficiente espacio para los encabezados del programa (%u asignados, %u necesarios)"
-#: elf.c:3708
+#: elf.c:3791
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr "%s: No hay suficiente espacio para los encabezados del programa, pruebe enlazar con -N"
-#: elf.c:3833
+#: elf.c:3922
#, c-format
msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x"
msgstr "Error: La primera sección en el segmento (%s) inicia en 0x%x mientras que el segmento inicia en 0x%x"
-#: elf.c:4148
+#: elf.c:4242
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr "%s: aviso: la sección asignada `%s' no está en el segmento"
-#: elf.c:4472
+#: elf.c:4566
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr "%s: se requiere el símbolo `%s' pero no está presente"
-#: elf.c:4749
+#: elf.c:4854
#, c-format
msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr "%s: aviso: Se detectó un segmento cargable vacío, ¿ es intencional ?\n"
-#: elf.c:6193
+#: elf.c:5485
+#, c-format
+msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr "No se puede encontrar la sección de salida equivalente para el símbolo '%s' de la sección '%s'"
+
+#: elf.c:6298
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr "%s: tipo de reubicación %s sin soporte"
-#: elf32-arm.h:1221
+#: elf32-arm.h:1228
#, c-format
msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr "%s: Aviso: La instrucción Arm BLX apunta a la función Arm '%s'."
-#: elf32-arm.h:1417
+#: elf32-arm.h:1424
#, c-format
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr "%s: Aviso: La instrucción Thumb BLX apunta a la función thumb '%s'."
-#: elf32-arm.h:1914 elf32-sh.c:4125
+#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr "%s(%s+0x%lx): reubicación %s contra la sección SEC_MERGE"
-#: elf32-arm.h:2008
+#: elf32-arm.h:2012
#, c-format
msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr "%s: aviso: reubicación %d sin resolución contra el símbolo `%s' de la sección %s"
-#: elf32-arm.h:2176
+#: elf32-arm.h:2202
#, c-format
msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"
msgstr "Aviso: Limpiando la opción de interoperación en %s porque se ha enlazado con él código no interoperable en %s"
-#: elf32-arm.h:2271
+#: elf32-arm.h:2302
#, c-format
msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d"
msgstr "ERROR: %s está compilado para EABI versión %d, mientras que %s está compilado para la versión %d"
-#: elf32-arm.h:2285
+#: elf32-arm.h:2316
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"
msgstr "ERROR: %s está compilado para APCS-%d mientras que el objetivo %s usa APCS-%d"
-#: elf32-arm.h:2313
+#: elf32-arm.h:2344
#, c-format
-msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"
-msgstr "ERROR: %s utiliza instrucciones VFP, mientras que %s utiliza instrucciones FPA"
+msgid "ERROR: %s uses VFP instructions, whereas %s does not"
+msgstr "ERROR: %s utiliza instrucciones VFP, mientras que %s no"
-#: elf32-arm.h:2318
+#: elf32-arm.h:2349
#, c-format
-msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"
-msgstr "ERROR: %s utiliza instrucciones FPA, mientras que %s utiliza instrucciones VFP"
+msgid "ERROR: %s uses FPA instructions, whereas %s does not"
+msgstr "ERROR: %s utiliza instrucciones FPA, mientras que %s no"
-#: elf32-arm.h:2338
+#: elf32-arm.h:2360 elf32-arm.h:2365
+#, c-format
+msgid "ERROR: %s uses Maverick instructions, whereas %s does not"
+msgstr "ERROR: %s utiliza instrucciones Maverick, mientras que %s no"
+
+#: elf32-arm.h:2385
#, c-format
msgid "ERROR: %s uses software FP, whereas %s uses hardware FP"
msgstr "ERROR: %s utiliza FP de software, mientras que %s utiliza FP de hardware"
-#: elf32-arm.h:2343
+#: elf32-arm.h:2390
#, c-format
msgid "ERROR: %s uses hardware FP, whereas %s uses software FP"
msgstr "ERROR: %s utiliza FP de hardware, mientras que %s utiliza FP de software"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543
-#: elfxx-mips.c:7756
+#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397
+#: elf32-vax.c:546 elfxx-mips.c:9238
#, c-format
msgid "private flags = %lx:"
msgstr "opciones privadas = %lx:"
-#: elf32-arm.h:2405
+#: elf32-arm.h:2452
msgid " [interworking enabled]"
msgstr " [interoperabilidad activada]"
-#: elf32-arm.h:2413
+#: elf32-arm.h:2460
msgid " [VFP float format]"
msgstr " [formato de coma flotante VFP]"
-#: elf32-arm.h:2415
+#: elf32-arm.h:2462
+msgid " [Maverick float format]"
+msgstr " [formato de coma flotante Maverick]"
+
+#: elf32-arm.h:2464
msgid " [FPA float format]"
msgstr " [formato de coma flotante FPA]"
-#: elf32-arm.h:2424
+#: elf32-arm.h:2473
msgid " [new ABI]"
msgstr " [ABI nuevo]"
-#: elf32-arm.h:2427
+#: elf32-arm.h:2476
msgid " [old ABI]"
msgstr " [ABI antiguo]"
-#: elf32-arm.h:2430
+#: elf32-arm.h:2479
msgid " [software FP]"
msgstr " [FP por software]"
-#: elf32-arm.h:2438
+#: elf32-arm.h:2488
msgid " [Version1 EABI]"
msgstr " [EABI Version1]"
-#: elf32-arm.h:2441 elf32-arm.h:2452
+#: elf32-arm.h:2491 elf32-arm.h:2502
msgid " [sorted symbol table]"
msgstr " [tabla de símbolos ordenados]"
-#: elf32-arm.h:2443 elf32-arm.h:2454
+#: elf32-arm.h:2493 elf32-arm.h:2504
msgid " [unsorted symbol table]"
msgstr " [tabla de símbolos sin ordenar]"
-#: elf32-arm.h:2449
+#: elf32-arm.h:2499
msgid " [Version2 EABI]"
msgstr " [EABI Version2]"
-#: elf32-arm.h:2457
+#: elf32-arm.h:2507
msgid " [dynamic symbols use segment index]"
msgstr " [los símbolos dinámicos utilizan índices de segmento]"
-#: elf32-arm.h:2460
+#: elf32-arm.h:2510
msgid " [mapping symbols precede others]"
msgstr " [el mapeo de símbolos precede a otros]"
-#: elf32-arm.h:2467
+#: elf32-arm.h:2517
msgid " <EABI version unrecognised>"
msgstr " <versión de EABI no reconocida>"
-#: elf32-arm.h:2474
+#: elf32-arm.h:2524
msgid " [relocatable executable]"
msgstr " [ejecutable reubicable]"
-#: elf32-arm.h:2477
+#: elf32-arm.h:2527
msgid " [has entry point]"
msgstr " [tiene punto de entrada]"
-#: elf32-arm.h:2482
+#: elf32-arm.h:2532
msgid "<Unrecognised flag bits set>"
msgstr "<Conjunto de bits de opción no reconocidos>"
-#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817
-#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699
-#: elf32-xstormy16.c:941 elf64-mmix.c:1310
+#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823
+#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518
+#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984
+#: elf64-mmix.c:1340
msgid "internal error: dangerous relocation"
msgstr "error interno: reubicación peligrosa"
-#: elf32-cris.c:949
+#: elf32-cris.c:931
#, c-format
msgid "%s: unresolvable relocation %s against symbol `%s' from %s section"
msgstr "%s: reubicación %s sin resolución contra el símbolo `%s' de la sección %s"
-#: elf32-cris.c:1012
+#: elf32-cris.c:993
#, c-format
msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section"
msgstr "%s: No hay PLT ni GOT para la reubicación %s contra el símbolo `%s' de la sección %s"
-#: elf32-cris.c:1015 elf32-cris.c:1141
+#: elf32-cris.c:996 elf32-cris.c:1122
msgid "[whose name is lost]"
msgstr "[cuyo nombre se pierde]"
-#: elf32-cris.c:1130
+#: elf32-cris.c:1111
#, c-format
msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section"
msgstr "%s: reubicación %s con adición %d que no es cero contra un símbolo local de la sección %s"
-#: elf32-cris.c:1137
+#: elf32-cris.c:1118
#, c-format
msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section"
msgstr "%s: reubicación %s con adición %d que no es cero contra el símbolo `%s' de la sección %s"
-#: elf32-cris.c:1155
+#: elf32-cris.c:1143
#, c-format
msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr "%s: no se permite la reubicación %s para el símbolo global: `%s' de la sección %s"
-#: elf32-cris.c:1170
+#: elf32-cris.c:1158
#, c-format
msgid "%s: relocation %s in section %s with no GOT created"
msgstr "%s: la reubicación %s en la sección %s sin GOT creado"
-#: elf32-cris.c:1288
+#: elf32-cris.c:1277
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr "%s: Inconsistencia interna; no se encuentra la sección de reubicación %s"
-#: elf32-cris.c:2514
+#: elf32-cris.c:2500
#, c-format
msgid ""
"%s, section %s:\n"
@@ -869,492 +911,645 @@ msgstr ""
"%s, sección %s:\n"
" no se debe usar la reubicación %s en un objeto compartido; recompile con -fPIC"
-#: elf32-cris.c:2991
+#: elf32-cris.c:2978
msgid " [symbols have a _ prefix]"
msgstr " [los símbolos tiene un prefijo _]"
-#: elf32-cris.c:3030
+#: elf32-cris.c:3017
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%s: utiliza símbolos con prefijo _, pero escribe el fichero con símbolos sin prefijo"
-#: elf32-cris.c:3031
+#: elf32-cris.c:3018
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%s: utiliza símbolos sin prefijo, pero escribe el fichero con símbolos con prefijo _"
-#: elf32-frv.c:1217
+#: elf32-frv.c:1223
#, c-format
msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%s: compilado con %s y enlazado con módulos que usan reubicaciones que no son pic"
-#: elf32-frv.c:1267
+#: elf32-frv.c:1273 elf32-iq2000.c:895
#, c-format
msgid "%s: compiled with %s and linked with modules compiled with %s"
msgstr "%s: compilado con %s y enlazado con módulos compilados con %s"
-#: elf32-frv.c:1279
+#: elf32-frv.c:1285
#, c-format
msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr "%s: usa campos e_flags desconocidos (0x%lx) diferentes a aquéllos de los módulos previos (0x%lx)"
-#: elf32-frv.c:1315
+#: elf32-frv.c:1321 elf32-iq2000.c:933
#, c-format
msgid "private flags = 0x%lx:"
msgstr "opciones privadas = 0x%lx:"
-#: elf32-gen.c:82 elf64-gen.c:82
+#: elf32-gen.c:83 elf64-gen.c:82
#, c-format
msgid "%s: Relocations in generic ELF (EM: %d)"
msgstr "%s: Reubicaciones en ELF genérico (EM: %d)"
-#: elf32-hppa.c:671 elf64-ppc.c:2323
+#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr "%s: no se puede crear la entrada de cabo %s"
-#: elf32-hppa.c:956 elf32-hppa.c:3555
+#: elf32-hppa.c:957 elf32-hppa.c:3538
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr "%s(%s+0x%lx): no se puede alcanzar %s, recompile con -ffuntion-sections"
-#: elf32-hppa.c:1338 elf64-x86-64.c:673
+#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797
#, c-format
msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr "%s: no se puede usar la reubicación %s cuando se hace un objeto compartido; recompile con -fPIC"
-#: elf32-hppa.c:1358
+#: elf32-hppa.c:1360
#, c-format
msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC"
msgstr "%s: no se debe usar la reubicación %s cuando se hace un objeto compartido; recompile con -fPIC"
-#: elf32-hppa.c:1551
+#: elf32-hppa.c:1553
#, c-format
msgid "Could not find relocation section for %s"
msgstr "No se puede encontrar la sección de reubicación para %s"
-#: elf32-hppa.c:2855
+#: elf32-hppa.c:2828
#, c-format
msgid "%s: duplicate export stub %s"
msgstr "%s: cabo de exportación %s duplicado"
-#: elf32-hppa.c:3433
+#: elf32-hppa.c:3416
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr "%s(%s+0x%lx): componiendo %s"
-#: elf32-hppa.c:4080
+#: elf32-hppa.c:4039
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr "%s(%s+0x%lx): no se puede manejar %s para %s"
-#: elf32-hppa.c:4393
+#: elf32-hppa.c:4357
msgid ".got section not immediately after .plt section"
msgstr "la sección .got no está inmediatamente después de la sección .plt"
-#: elf32-i386.c:379
+#: elf32-i386.c:326
#, c-format
msgid "%s: invalid relocation type %d"
msgstr "%s: tipo de reubicación %d inválido"
-#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591
+#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637
+#: elf64-s390.c:943 elf64-x86-64.c:650
#, c-format
msgid "%s: bad symbol index: %d"
msgstr "%s: índice de símbolos erróneo: %d"
-#: elf32-i386.c:948
+#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011
+#: elf64-s390.c:1129
#, c-format
msgid "%s: `%s' accessed both as normal and thread local symbol"
msgstr "%s: se accesó `%s' como un símbolo normal y un símbolo local de hilo"
-#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759
-#: elf64-x86-64.c:761
+#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243
+#: elf64-x86-64.c:886
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr "%s: nombre de sección de reubicación `%s' erróneo"
-#: elf32-i386.c:1159 elf64-alpha.c:4768
-#, c-format
-msgid "%s: TLS local exec code cannot be linked into shared objects"
-msgstr "%s: el código de ejecución local TLS no se puede enlazar en objetos compartidos"
-
-#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918
-#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948
+#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879
+#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664
+#: elf64-x86-64.c:2452
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr "%s(%s+0x%lx): reubicación sin resolución contra el símbolo `%s'"
-#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983
-#: elf64-x86-64.c:1986
+#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068
+#: elf64-x86-64.c:2490
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr "%s(%s+0x%lx): reubicación contra `%s': error %d"
-#: elf32-m32r.c:924
+#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740
+msgid "ip2k relaxer: switch table without complete matching relocation information."
+msgstr "relajador ip2k: tabla switch sin información completa de reubicación de coincidencias."
+
+#: elf32-ip2k.c:588 elf32-ip2k.c:767
+msgid "ip2k relaxer: switch table header corrupt."
+msgstr "relajador ip2k: encabezado de tabla switch corrupto."
+
+#: elf32-ip2k.c:1395
+#, c-format
+msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "enlazador ip2k: instrucción de página faltante en 0x%08lx (dest = 0x%08lx)."
+
+#: elf32-ip2k.c:1409
+#, c-format
+msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "enlazador ip2k: instrucción de página redundante en 0x%08lx (dest = 0x%08lx)."
+
+#. Only if it's not an unresolved symbol.
+#: elf32-ip2k.c:1593
+msgid "unsupported relocation between data/insn address spaces"
+msgstr "reubicación sin soporte entre espacios de direcciones datos/insn"
+
+#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072
+#: elfxx-mips.c:9195
+#, c-format
+msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%s: usa campos de e_flags diferentes (0x%lx) que los módulos previos (0x%lx)"
+
+#: elf32-m32r.c:930
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "reubicación SDA cuando _SDA_BASE_ no está definido"
-#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185
-#: elf64-alpha.c:4313 elf64-ia64.c:3687
+#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958
+#: elf64-ia64.c:3958
#, c-format
msgid "%s: unknown relocation type %d"
msgstr "%s: tipo de reubicación %d desconocido"
-#: elf32-m32r.c:1221
+#: elf32-m32r.c:1226
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr "%s: El objetivo (%s) de una reubicación %s está en la sección errónea (%s)"
-#: elf32-m32r.c:1947
+#: elf32-m32r.c:1952
#, c-format
msgid "%s: Instruction set mismatch with previous modules"
msgstr "%s: Conjunto de instrucciones no coincidente con módulos previos"
-#: elf32-m32r.c:1970
+#: elf32-m32r.c:1975
#, c-format
msgid "private flags = %lx"
msgstr "opciones privadas = %lx"
-#: elf32-m32r.c:1975
+#: elf32-m32r.c:1980
msgid ": m32r instructions"
msgstr ": instrucciones m32r"
-#: elf32-m32r.c:1976
+#: elf32-m32r.c:1981
msgid ": m32rx instructions"
msgstr ": instrucciones m32rx"
-#: elf32-m68k.c:413
+#: elf32-m68hc1x.c:1217
+#, c-format
+msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr "Una referencia al símbolo far `%s' usando una reubicación incorrecta puede resultar en una ejecución incorrecta"
+
+#: elf32-m68hc1x.c:1240
+#, c-format
+msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
+msgstr "la dirección almacenada [%lx:%04lx] (%lx) no está en el mismo banco que la dirección almacenada actual [%lx:%04lx] (%lx)"
+
+#: elf32-m68hc1x.c:1259
+#, c-format
+msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
+msgstr "referencia a una dirección almacenada [%lx:%04lx] en el espacio normal de direcciones en %04lx"
+
+#: elf32-m68hc1x.c:1396
+#, c-format
+msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr "%s: enlazando ficheros compilados con enteros de 16-bit (-mshort) y otros con enteros de 32-bit"
+
+#: elf32-m68hc1x.c:1404
+#, c-format
+msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr "%s: enlazando ficheros compilados con dobles de 32-bit (-fshort-double) y otros con dobles de 64-bit"
+
+#: elf32-m68hc1x.c:1414
+#, c-format
+msgid "%s: linking files compiled for HCS12 with others compiled for HC12"
+msgstr "%s: enlazando ficheros compilados para HCS12, con otros compilados para HC12"
+
+#: elf32-m68hc1x.c:1462
+msgid "[abi=32-bit int, "
+msgstr "[abi=int de 32-bit, "
+
+#: elf32-m68hc1x.c:1464
+msgid "[abi=16-bit int, "
+msgstr "[abi=int de 16-bit, "
+
+#: elf32-m68hc1x.c:1467
+msgid "64-bit double, "
+msgstr "doble de 64-bit, "
+
+#: elf32-m68hc1x.c:1469
+msgid "32-bit double, "
+msgstr "doble de 32-bit, "
+
+#: elf32-m68hc1x.c:1472
+msgid "cpu=HC11]"
+msgstr "cpu=HC11]"
+
+#: elf32-m68hc1x.c:1474
+msgid "cpu=HCS12]"
+msgstr "cpu=HCS12]"
+
+#: elf32-m68hc1x.c:1476
+msgid "cpu=HC12]"
+msgstr "cpu=HC12]"
+
+#: elf32-m68hc1x.c:1479
+msgid " [memory=bank-model]"
+msgstr " [memoria=modelo de bancos]"
+
+#: elf32-m68hc1x.c:1481
+msgid " [memory=flat]"
+msgstr " [memoria=plana]"
+
+#: elf32-m68k.c:400
msgid " [cpu32]"
msgstr " [cpu32]"
-#: elf32-m68k.c:416
+#: elf32-m68k.c:403
msgid " [m68000]"
msgstr " [m68000]"
-#: elf32-mcore.c:354 elf32-mcore.c:457
+#: elf32-mcore.c:353 elf32-mcore.c:456
#, c-format
msgid "%s: Relocation %s (%d) is not currently supported.\n"
msgstr "%s: La reubicación %s (%d) actualmente no tiene soporte.\n"
-#: elf32-mcore.c:442
+#: elf32-mcore.c:441
#, c-format
msgid "%s: Unknown relocation type %d\n"
msgstr "%s: Tipo de reubicación %d desconocido\n"
-#: elf32-mips.c:1152 elf64-mips.c:1783
+#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr "la reubicación gp relativa de 32bits sucede para un símbolo externo"
-#: elf32-mips.c:1301
+#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr "Enlazar objetos mips16 en el formato %s no tiene soporte"
-#: elf32-ppc.c:1460
+#: elf32-ppc.c:2056
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr "el enlazador genérico no puede manejar %s"
+
+#: elf32-ppc.c:2138
#, c-format
msgid "%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr "%s: compilado con -mrelocatable y enlazado con módulos compilados de forma normal"
-#: elf32-ppc.c:1468
+#: elf32-ppc.c:2147
#, c-format
msgid "%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr "%s: compilado de forma normal y enlazado con módulos compilados con -mrelocatable"
-#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713
-#, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: usa campos de e_flags diferentes (0x%lx) que los módulos previos (0x%lx)"
-
-#: elf32-ppc.c:1592
-#, c-format
-msgid "%s: Unknown special linker type %d"
-msgstr "%s: Tipo de enlazador especial %d desconocido"
-
-#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342
+#: elf32-ppc.c:3413
#, c-format
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr "%s: no se puede usar la reubicación %s cuando se hace un objeto compartido"
-#: elf32-ppc.c:3126 elf64-ppc.c:5473
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3619
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against local symbol"
+msgstr "%s(%s+0x%lx): reubicación %s contra un símbolo local"
+
+#: elf32-ppc.c:4862 elf64-ppc.c:7789
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr "%s: tipo de reubicación %d desconocido para el símbolo %s"
-#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553
+#: elf32-ppc.c:5113
#, c-format
-msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)"
-msgstr "%s: El objetivo (%s) de una reubicación %s está en la sección de salida errónea (%s)"
+msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'"
+msgstr "%s(%s+0x%lx): adición que no es cero en la reubicación %s contra `%s'"
-#: elf32-ppc.c:3619
+#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484
+#, c-format
+msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)"
+msgstr "%s: el objetivo (%s) de una reubicación %s está en la sección de salida errónea (%s)"
+
+#: elf32-ppc.c:5539
#, c-format
-msgid "%s: Relocation %s is not yet supported for symbol %s."
-msgstr "%s: La reubicación %s aún no tiene soporte para el símbolo %s."
+msgid "%s: relocation %s is not yet supported for symbol %s."
+msgstr "%s: la reubicación %s aún no tiene soporte para el símbolo %s."
-#: elf32-sh.c:1964
+#: elf32-ppc.c:5594 elf64-ppc.c:8461
+#, c-format
+msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr "%s(%s+0x%lx): reubicación %s sin resolución contra el símbolo `%s'"
+
+#: elf32-ppc.c:5644 elf64-ppc.c:8507
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against `%s': error %d"
+msgstr "%s(%s+0x%lx): reubicación %s contra `%s': error %d"
+
+#: elf32-ppc.c:5888
+#, c-format
+msgid "corrupt or empty %s section in %s"
+msgstr "sección %s corrupta o vacía en %s"
+
+#: elf32-ppc.c:5895
+#, c-format
+msgid "unable to read in %s section from %s"
+msgstr "no se puede leer en la sección %s desde %s"
+
+#: elf32-ppc.c:5901
+#, c-format
+msgid "corrupt %s section in %s"
+msgstr "sección %s corrupta en %s"
+
+#: elf32-ppc.c:5944
+#, c-format
+msgid "warning: unable to set size of %s section in %s"
+msgstr "aviso: no se puede establecer el tamaño de la sección %s en %s"
+
+#: elf32-ppc.c:5994
+msgid "failed to allocate space for new APUinfo section."
+msgstr "no se puede reservar espacio para la nueva sección APUinfo."
+
+#: elf32-ppc.c:6013
+msgid "failed to compute new APUinfo section."
+msgstr "no se puede calcular la nueva sección APUinfo."
+
+#: elf32-ppc.c:6016
+msgid "failed to install new APUinfo section."
+msgstr "no se puede instalar la nueva sección APUinfo."
+
+#: elf32-s390.c:2256 elf64-s390.c:2226
+#, c-format
+msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s"
+msgstr "%s(%s+0x%lx): instrucción inválida para la reubicación TLS %s"
+
+#: elf32-sh.c:2103
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr "%s: 0x%lx: aviso: desplazamiento R_SH_USES erróneo"
-#: elf32-sh.c:1976
+#: elf32-sh.c:2115
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%s: 0x%lx: aviso: R_SH_USES señala al insn 0x%x no reconocido"
-#: elf32-sh.c:1993
+#: elf32-sh.c:2132
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr "%s: 0x%lx: aviso: desplazamiento de carga R_SH_USES erróneo"
-#: elf32-sh.c:2008
+#: elf32-sh.c:2147
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr "%s: 0x%lx: aviso: no se puede encontrar la reubicación esperada"
-#: elf32-sh.c:2036
+#: elf32-sh.c:2175
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr "%s: 0x%lx: aviso: símbolo en una sección inesperada"
-#: elf32-sh.c:2153
+#: elf32-sh.c:2300
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr "%s: 0x%lx: aviso: no se puede encontrar la reubicación COUNT esperada"
-#: elf32-sh.c:2162
+#: elf32-sh.c:2309
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr "%s: 0x%lx: aviso: cuenta errónea"
-#: elf32-sh.c:2550 elf32-sh.c:2926
+#: elf32-sh.c:2712 elf32-sh.c:3088
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr "%s: 0x%lx: fatal: desbordamiento de reubicación durante la relajación"
-#: elf32-sh.c:4073 elf64-sh64.c:1576
+#: elf32-sh.c:4654 elf64-sh64.c:1585
msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
msgstr "No se maneja un STO_SH5_ISA32 inesperado en un símbolo local"
-#: elf32-sh.c:4284
+#: elf32-sh.c:4809
+#, c-format
+msgid "%s: unresolvable relocation against symbol `%s' from %s section"
+msgstr "%s: reubicación sin resolución contra el símbolo `%s' de la sección %s"
+
+#: elf32-sh.c:4881
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr "%s: 0x%lx: fatal: objetivo de ramificación sin alineación para la reubicación de soporte de relajamiento"
-#: elf32-sh64.c:203 elf64-sh64.c:2364
+#: elf32-sh.c:6627 elf64-alpha.c:4848
+#, c-format
+msgid "%s: TLS local exec code cannot be linked into shared objects"
+msgstr "%s: el código de ejecución local TLS no se puede enlazar en objetos compartidos"
+
+#: elf32-sh64.c:221 elf64-sh64.c:2407
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: compilado como un objeto de 32-bit y %s es de 64-bit"
-#: elf32-sh64.c:206 elf64-sh64.c:2367
+#: elf32-sh64.c:224 elf64-sh64.c:2410
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: compilado como un objeto de 64-bit y %s es de 32-bit"
-#: elf32-sh64.c:208 elf64-sh64.c:2369
+#: elf32-sh64.c:226 elf64-sh64.c:2412
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: el tamaño del objeto no coincide con el tamaño del objetivo %s"
-#: elf32-sh64.c:440 elf64-sh64.c:2941
+#: elf32-sh64.c:461 elf64-sh64.c:2990
#, c-format
msgid "%s: encountered datalabel symbol in input"
msgstr "%s: se encontró un símbolo datalabel en la entrada"
-#: elf32-sh64.c:523
+#: elf32-sh64.c:544
msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
msgstr "No coincide PTB: una dirección SHmedia (bit 0 == 1)"
-#: elf32-sh64.c:526
+#: elf32-sh64.c:547
msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
msgstr "No coincide PTA: una dirección SHcompact (bit 0 == 0)"
-#: elf32-sh64.c:544
+#: elf32-sh64.c:565
#, c-format
msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
msgstr "%s: error de GAS: instrucción PTB inesperada con R_SH_PT_16"
-#: elf32-sh64.c:593 elf64-sh64.c:1703
+#: elf32-sh64.c:614 elf64-sh64.c:1748
#, c-format
msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
msgstr "%s: error: tipo de reubicación %d sin alinear en %08x reubicación %08x\n"
-#: elf32-sh64.c:677
+#: elf32-sh64.c:698
#, c-format
msgid "%s: could not write out added .cranges entries"
msgstr "%s: no se pueden escribir las entradas .cranges agregadas"
-#: elf32-sh64.c:739
+#: elf32-sh64.c:760
#, c-format
msgid "%s: could not write out sorted .cranges entries"
msgstr "%s: no se pueden escribir las entradas .cranges ordenadas"
-#: elf32-sparc.c:1535 elf64-sparc.c:2224
+#: elf32-sparc.c:2521 elf64-sparc.c:2314
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr "%s: ¿Compilado probablemente sin -fPIC?"
-#: elf32-sparc.c:2002
+#: elf32-sparc.c:3348
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr "%s: compilado para un sistema de 64 bit y el objetivo es de 32 bit"
-#: elf32-sparc.c:2016
+#: elf32-sparc.c:3362
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr "%s: enlazando ficheros little endian con ficheros big endian"
-#: elf32-v850.c:682
+#: elf32-v850.c:753
#, c-format
msgid "Variable `%s' cannot occupy in multiple small data regions"
msgstr "La variable `%s' no puede ocupar múltiples regiones de datos small"
-#: elf32-v850.c:685
+#: elf32-v850.c:756
#, c-format
msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
msgstr "La variable `%s' solamente puede estar en una de las regiones de datos small, cero, y tiny"
-#: elf32-v850.c:688
+#: elf32-v850.c:759
#, c-format
msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos small y cero"
-#: elf32-v850.c:691
+#: elf32-v850.c:762
#, c-format
msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos small y tiny"
-#: elf32-v850.c:694
+#: elf32-v850.c:765
#, c-format
msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
msgstr "La variable `%s' no puede estar simultáneamente en las regiones de datos cero y tiny"
-#: elf32-v850.c:1072
+#: elf32-v850.c:1144
msgid "FAILED to find previous HI16 reloc\n"
msgstr "FALLO para encontrar la reubicación HI16 previa\n"
-#: elf32-v850.c:1703
+#: elf32-v850.c:1789
msgid "could not locate special linker symbol __gp"
msgstr "no se puede localizar el símbolo especial del enlazador __gp"
-#: elf32-v850.c:1707
+#: elf32-v850.c:1793
msgid "could not locate special linker symbol __ep"
msgstr "no se puede localizar el símbolo especial del enlazador __ep"
-#: elf32-v850.c:1711
+#: elf32-v850.c:1797
msgid "could not locate special linker symbol __ctbp"
msgstr "no se puede localizar el símbolo especial del enlazador __ctbp"
-#: elf32-v850.c:1875
+#: elf32-v850.c:1963
#, c-format
msgid "%s: Architecture mismatch with previous modules"
msgstr "%s: No coincide la arquitectura con los módulos previos"
-#: elf32-v850.c:1895
+#: elf32-v850.c:1983
#, c-format
msgid "private flags = %lx: "
msgstr "opciones privadas = %lx: "
-#: elf32-v850.c:1900
+#: elf32-v850.c:1988
msgid "v850 architecture"
msgstr "arquitectura v850"
-#: elf32-v850.c:1901
+#: elf32-v850.c:1989
msgid "v850e architecture"
msgstr "arquitectura v850e"
-#: elf32-v850.c:1902
-msgid "v850ea architecture"
-msgstr "arquitectura v850ea"
-
-#: elf32-vax.c:546
+#: elf32-vax.c:549
msgid " [nonpic]"
msgstr " [no pic]"
-#: elf32-vax.c:549
+#: elf32-vax.c:552
msgid " [d-float]"
msgstr " [flotante-d]"
-#: elf32-vax.c:552
+#: elf32-vax.c:555
msgid " [g-float]"
msgstr " [flotante-g]"
-#: elf32-vax.c:674
+#: elf32-vax.c:663
#, c-format
msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
msgstr "%s: aviso: la adición GOT de %ld a `%s' no coincide con la adición previa GOT de %ld"
-#: elf32-vax.c:1679
+#: elf32-vax.c:1667
#, c-format
msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
msgstr "%s: aviso: se ignora la adición PLT de %d a `%s' de la sección %s"
-#: elf32-vax.c:1814
+#: elf32-vax.c:1802
#, c-format
msgid "%s: warning: %s relocation against symbol `%s' from %s section"
msgstr "%s: aviso: reubicación %s contra el símbolo `%s' de la sección %s"
-#: elf32-vax.c:1820
+#: elf32-vax.c:1808
#, c-format
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr "%s: aviso: reubicación %s a 0x%x de la sección %s"
-#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280
+#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450
msgid "non-zero addend in @fptr reloc"
msgstr "adición que no es cero en la reubicación @fptr"
-#: elf64-alpha.c:1097
+#: elf64-alpha.c:1108
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "la reubicación GPDISP no encontró las instrucciones ldah y lda"
-#: elf64-alpha.c:3675
+#: elf64-alpha.c:3731
#, c-format
msgid "%s: .got subsegment exceeds 64K (size %d)"
msgstr "%s: el subsegmento .got excede los 64K (tamaño %d)"
-#: elf64-alpha.c:4498 elf64-alpha.c:4510
+#: elf64-alpha.c:4602 elf64-alpha.c:4614
#, c-format
msgid "%s: gp-relative relocation against dynamic symbol %s"
msgstr "%s: reubicación gp relativa contra el símbolo dinámico %s"
-#: elf64-alpha.c:4536 elf64-alpha.c:4676
+#: elf64-alpha.c:4640 elf64-alpha.c:4773
#, c-format
msgid "%s: pc-relative relocation against dynamic symbol %s"
msgstr "%s: reubicación relativa al pc contra el símbolo dinámico %s"
-#: elf64-alpha.c:4564
+#: elf64-alpha.c:4668
#, c-format
msgid "%s: change in gp: BRSGP %s"
msgstr "%s: cambio en gp: BRSGP %s"
-#: elf64-alpha.c:4589
+#: elf64-alpha.c:4693
msgid "<unknown>"
msgstr "<desconocido>"
-#: elf64-alpha.c:4594
+#: elf64-alpha.c:4698
#, c-format
msgid "%s: !samegp reloc against symbol without .prologue: %s"
msgstr "%s: reubicación !samegp contra un símbolo sin .prologue: %s"
-#: elf64-alpha.c:4639
+#: elf64-alpha.c:4749
#, c-format
msgid "%s: unhandled dynamic relocation against %s"
msgstr "%s: reubicación dinámica sin manejar contra %s"
-#: elf64-alpha.c:4752
+#: elf64-alpha.c:4832
#, c-format
msgid "%s: dtp-relative relocation against dynamic symbol %s"
msgstr "%s: reubicación relativa a dtp contra el símbolo dinámico %s"
-#: elf64-alpha.c:4775
+#: elf64-alpha.c:4855
#, c-format
msgid "%s: tp-relative relocation against dynamic symbol %s"
msgstr "%s: reubicación relativa a tp contra el símbolo dinámico %s"
-#: elf64-hppa.c:2080
+#: elf64-hppa.c:2086
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %ld"
msgstr "la entrada de cabo para %s no puede cargar .plt, desplazamiento dp = %ld"
-#: elf64-mmix.c:1002
+#: elf64-mmix.c:1032
#, c-format
msgid ""
"%s: Internal inconsistency error for value for\n"
@@ -1363,46 +1558,46 @@ msgstr ""
"%s: Error de inconsistencia interna para el valor para\n"
" un registro global colocado por el enlazador: enlazado: 0x%lx%08lx != relajado: 0x%lx%08lx\n"
-#: elf64-mmix.c:1386
+#: elf64-mmix.c:1416
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
msgstr "%s: reubicación base-más-desplazamiento contra un símbolo de registro: (desconocido) en %s"
-#: elf64-mmix.c:1391
+#: elf64-mmix.c:1421
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
msgstr "%s: reubicación base-más-desplazamiento contra un símbolo de registro: %s en %s"
-#: elf64-mmix.c:1435
+#: elf64-mmix.c:1465
#, c-format
msgid "%s: register relocation against non-register symbol: (unknown) in %s"
msgstr "%s: reubicación de registro contra un símbolo que no es registro: (desconocido) en %s"
-#: elf64-mmix.c:1440
+#: elf64-mmix.c:1470
#, c-format
msgid "%s: register relocation against non-register symbol: %s in %s"
msgstr "%s: reubicación de registro contra un símbolo que no es registro: %s en %s"
-#: elf64-mmix.c:1477
+#: elf64-mmix.c:1507
#, c-format
msgid "%s: directive LOCAL valid only with a register or absolute value"
msgstr "%s: la directiva LOCAL sólo es válida con un registro o un valor absoluto"
-#: elf64-mmix.c:1505
+#: elf64-mmix.c:1535
#, c-format
msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld."
msgstr "%s: directiva LOCAL: El registro $%ld no es un registro local. El primer registro global es $%ld."
-#: elf64-mmix.c:1965
+#: elf64-mmix.c:1994
#, c-format
msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
msgstr "%s: Error: definición múltiple de `%s'; el inicio de %s está definido en un fichero enlazado con anterioridad\n"
-#: elf64-mmix.c:2024
+#: elf64-mmix.c:2053
msgid "Register section has contents\n"
msgstr "La sección de registros no tiene contenido\n"
-#: elf64-mmix.c:2186
+#: elf64-mmix.c:2216
#, c-format
msgid ""
"Internal inconsistency: remaining %u != max %u.\n"
@@ -1411,574 +1606,617 @@ msgstr ""
"Inconsistencia interna: %u restante != %u máximo.\n"
" Por favor reporte este bicho."
-#: elf64-ppc.c:1669 libbfd.c:1435
+#: elf64-ppc.c:2388 libbfd.c:831
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr "%s: compilado para un sistema big endian y el objetivo es little endian"
-#: elf64-ppc.c:1671 libbfd.c:1437
+#: elf64-ppc.c:2391 libbfd.c:833
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr "%s: compilado para un sistema little endian y el objetivo es big endian"
-#: elf64-ppc.c:3610
+#: elf64-ppc.c:4857
#, c-format
msgid "%s: unexpected reloc type %u in .opd section"
msgstr "%s: tipo de reubicación %u inesperado en la sección .opd"
-#: elf64-ppc.c:3630
+#: elf64-ppc.c:4877
#, c-format
msgid "%s: .opd is not a regular array of opd entries"
msgstr "%s: .opd no es una matriz regular de entradas opd"
-#: elf64-ppc.c:3672
+#: elf64-ppc.c:4897
#, c-format
msgid "%s: undefined sym `%s' in .opd section"
msgstr "%s: símbolo `%s' indefinido en la sección .opd"
-#: elf64-ppc.c:4397
+#: elf64-ppc.c:6136
#, c-format
msgid "can't find branch stub `%s'"
msgstr "no se puede encontrar la ramificación de cabo `%s'"
-#: elf64-ppc.c:4436 elf64-ppc.c:4501
+#: elf64-ppc.c:6175 elf64-ppc.c:6250
#, c-format
msgid "linkage table error against `%s'"
msgstr "error de la tabla de enlazado contra `%s'"
-#: elf64-ppc.c:4573
+#: elf64-ppc.c:6340
#, c-format
msgid "can't build branch stub `%s'"
msgstr "no se puede construir la ramificación de cabos `%s'"
-#: elf64-ppc.c:5179
+#: elf64-ppc.c:7047
+msgid ".glink and .plt too far apart"
+msgstr ".glink y .plt están demasiado alejados"
+
+#: elf64-ppc.c:7135
msgid "stubs don't match calculated size"
msgstr "los cabos no coinciden con el tamaño calculado"
-#: elf64-ppc.c:5828
+#: elf64-ppc.c:7147
+#, c-format
+msgid ""
+"linker stubs in %u groups\n"
+" branch %lu\n"
+" toc adjust %lu\n"
+" long branch %lu\n"
+" long toc adj %lu\n"
+" plt call %lu"
+msgstr ""
+"cabos de enlazador en %u grupos\n"
+" rama %lu\n"
+" ajuste toc %lu\n"
+" rama long %lu\n"
+" ajuste toc long %lu\n"
+" llamada plt %lu"
+
+#: elf64-ppc.c:7723
+#, c-format
+msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc"
+msgstr "%s(%s+0x%lx): los TOCs múltiples automáticos no tienes soporte utilizando sus ficheros crt; recompile con -mminimal-toc o actualice gcc"
+
+#: elf64-ppc.c:7731
+#, c-format
+msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern"
+msgstr "%s(%s+0x%lx): la optimización de llamada hermana a `%s' no permite TOCs múltiples automáticos; recompile con -mminimal-toc ó -fno-optimize-sibling-calls, o vuelva `%s' externa"
+
+#: elf64-ppc.c:8329
#, c-format
-msgid "%s: Relocation %s is not supported for symbol %s."
-msgstr "%s: La reubicación %s no tiene soporte para el símbolo %s."
+msgid "%s: relocation %s is not supported for symbol %s."
+msgstr "%s: la reubicación %s no tiene soporte para el símbolo %s."
-#: elf64-ppc.c:5872
+#: elf64-ppc.c:8408
#, c-format
-msgid "%s: error: relocation %s not a multiple of 4"
-msgstr "%s: error: la reubicación %s no es un múltiplo de 4"
+msgid "%s: error: relocation %s not a multiple of %d"
+msgstr "%s: error: la reubicación %s no es un múltiplo de %d"
-#: elf64-sparc.c:1280
+#: elf64-sparc.c:1370
#, c-format
msgid "%s: check_relocs: unhandled reloc type %d"
msgstr "%s: check_relocs: tipo de reubicación %d sin manejar"
-#: elf64-sparc.c:1317
+#: elf64-sparc.c:1407
#, c-format
msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr "%s: Solamente los registros %%g[2367] pueden ser declarados utilizando STT_REGISTER"
-#: elf64-sparc.c:1337
+#: elf64-sparc.c:1427
#, c-format
msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s"
msgstr "El registro %%g%d se usó de forma incompatible: %s en %s, previamente %s en %s"
-#: elf64-sparc.c:1360
+#: elf64-sparc.c:1450
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"
msgstr "El símbolo `%s' tiene tipos divergentes: REGISTER en %s, previamente %s en %s"
-#: elf64-sparc.c:1406
+#: elf64-sparc.c:1496
#, c-format
msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"
msgstr "El símbolo `%s' tiene tipos divergentes: %s en %s, previamente REGISTER en %s"
-#: elf64-sparc.c:2970
+#: elf64-sparc.c:3053
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr "%s: enlazando código específico de UltraSPARC con código específico de HAL"
-#: elfcode.h:1198
+#: elf64-x86-64.c:739
+#, c-format
+msgid "%s: %s' accessed both as normal and thread local symbol"
+msgstr "%s: se accesó `%s' como un símbolo normal y como un símbolo local de hilo"
+
+#: elfcode.h:1113
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr "%s: la cuenta de versión (%ld) no coincide con la cuenta de símbolos (%ld)"
-#: elflink.c:440
+#: elfcode.h:1342
+#, c-format
+msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgstr "%s(%s): la reubicación %d tiene un índice de símbolo %ld inválido"
+
+#: elflink.c:1456
+#, c-format
+msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr "%s: aviso: redefinición inesperada del símbolo con versión indirecta `%s'"
+
+#: elflink.c:1807
#, c-format
-msgid "%s: Section %s is too large to add hole of %ld bytes"
-msgstr "%s: La sección %s es muy grande para agregar un agujero de %ld bytes"
+msgid "%s: undefined versioned symbol name %s"
+msgstr "%s: nombre de símbolo con versión %s sin definir"
-#: elflink.h:1090
+#: elflink.c:2142
#, c-format
-msgid "%s: warning: unexpected redefinition of `%s'"
-msgstr "%s: aviso: redefinición inesperada de `%s'"
+msgid "%s: relocation size mismatch in %s section %s"
+msgstr "%s: tamaño de reubicación no coincidente en %s sección %s"
-#: elflink.h:1727
+#: elflink.c:2434
+#, c-format
+msgid "warning: type and size of dynamic symbol `%s' are not defined"
+msgstr "aviso: el tipo y tamaño del símbolo dinámico `%s' no están definidos"
+
+#: elflink.h:1022
#, c-format
msgid "%s: %s: invalid version %u (max %d)"
msgstr "%s: %s: versión %u inválida (máximo %d)"
-#: elflink.h:1768
+#: elflink.h:1063
#, c-format
msgid "%s: %s: invalid needed version %d"
msgstr "%s: %s: versión requerida %d inválida"
-#: elflink.h:1890
+#: elflink.h:1238
#, c-format
-msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
-msgstr "Aviso: el tamaño del símbolo `%s' cambió de %lu a %lu en %s"
+msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s"
+msgstr "Aviso: la alineación %u del símbolo `%s' en %s es más pequeña que %u en %s"
-#: elflink.h:3174
+#: elflink.h:1252
#, c-format
-msgid "%s: .preinit_array section is not allowed in DSO"
-msgstr "%s: no se permite la sección .preinit_array en DSO"
+msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s"
+msgstr "Aviso: el tamaño del símbolo `%s' cambió de %lu en %s a %lu en %s"
-#: elflink.h:4030
+#: elflink.h:2160
#, c-format
-msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "aviso: el tipo y tamaño del símbolo dinámico `%s' no están definidos"
+msgid "%s: undefined version: %s"
+msgstr "%s: versión sin definir: %s"
-#: elflink.h:4345
+#: elflink.h:2226
#, c-format
-msgid "%s: undefined versioned symbol name %s"
-msgstr "%s: nombre de símbolo con versión %s sin definir"
-
-#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600
-msgid "Error: out of memory"
-msgstr "Error: memoria agotada"
+msgid "%s: .preinit_array section is not allowed in DSO"
+msgstr "%s: no se permite la sección .preinit_array en DSO"
-#: elflink.h:4781
+#: elflink.h:3078
msgid "Not enough memory to sort relocations"
msgstr "No hay suficiente memoria para ordenar las reubicaciones"
-#: elflink.h:5682 elflink.h:5725
+#: elflink.h:3958 elflink.h:4001
#, c-format
msgid "%s: could not find output section %s"
msgstr "%s: no se puede encontrar la sección de salida %s"
-#: elflink.h:5688
+#: elflink.h:3964
#, c-format
msgid "warning: %s section has zero size"
msgstr "aviso: la sección %s es de tamaño cero"
-#: elflink.h:6275
+#: elflink.h:4483
+#, c-format
+msgid "%s: %s symbol `%s' in %s is referenced by DSO"
+msgstr "%s: el símbolo %s `%s' en %s está referenciado por DSO"
+
+#: elflink.h:4564
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr "%s: no se puede encontrar la sección de salida %s para la sección de entrada %s"
-#: elflink.h:6486
+#: elflink.h:4666
#, c-format
-msgid "%s: relocation size mismatch in %s section %s"
-msgstr "%s: tamaño de reubicación no coincidente en %s sección %s"
-
-#: elflink.h:6849
-msgid "warning: relocation against removed section; zeroing"
-msgstr "aviso: reubicación contra una sección eliminada; cambiando a ceros"
+msgid "%s: %s symbol `%s' isn't defined"
+msgstr "%s: el símbolo %s `%s' no está definido"
-#: elflink.h:6879
-msgid "warning: relocation against removed section"
-msgstr "aviso: reubicación contra una sección eliminada"
+#: elflink.h:5053 elflink.h:5095
+msgid "%T: discarded in section `%s' from %s\n"
+msgstr "%T: descartado en la sección `%s' desde %s\n"
-#: elflink.h:6892
-#, c-format
-msgid "local symbols in discarded section %s"
-msgstr "símbolos locales en la sección descartada %s"
-
-#: elfxx-mips.c:734
+#: elfxx-mips.c:887
msgid "static procedure (no name)"
msgstr "procedimiento estático (sin nombre)"
-#: elfxx-mips.c:1601
+#: elfxx-mips.c:1897
msgid "not enough GOT space for local GOT entries"
msgstr "no hay suficiente espacio GOT para entradas GOT locales"
-#: elfxx-mips.c:2750
+#: elfxx-mips.c:3691
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr "%s: %s+0x%lx: salto a una rutina cabo la cual no es jal"
-#: elfxx-mips.c:4270
+#: elfxx-mips.c:5192
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr "%s: Se detectó una reubicación malformada para la sección %s"
-#: elfxx-mips.c:4348
+#: elfxx-mips.c:5266
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr "%s: la reubicación CALL16 en 0x%lx no es contra un símbolo global"
-#: elfxx-mips.c:7301
+#: elfxx-mips.c:8692
#, c-format
msgid "%s: illegal section name `%s'"
msgstr "%s: nombre de sección `%s' ilegal"
-#: elfxx-mips.c:7615
+#: elfxx-mips.c:9025
+#, c-format
+msgid "%s: endianness incompatible with that of the selected emulation"
+msgstr "%s: la endianez es incompatible con aquella de la emulación seleccionada"
+
+#: elfxx-mips.c:9037
#, c-format
-msgid "%s: linking PIC files with non-PIC files"
-msgstr "%s: enlazando ficheros PIC con ficheros que no son PIC"
+msgid "%s: ABI is incompatible with that of the selected emulation"
+msgstr "%s: la ABI es incompatible con aquella de la emulación seleccionada"
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:9104
#, c-format
-msgid "%s: linking abicalls files with non-abicalls files"
-msgstr "%s: enlazando ficheros de llamadas abi con ficheros que no son de llamadas abi"
+msgid "%s: warning: linking PIC files with non-PIC files"
+msgstr "%s: aviso: enlazando ficheros PIC con ficheros que no son PIC"
-#: elfxx-mips.c:7654
+#: elfxx-mips.c:9121
#, c-format
-msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
-msgstr "%s: no coincide el ISA (-mips%d) con módulos previos (-mips%d)"
+msgid "%s: linking 32-bit code with 64-bit code"
+msgstr "%s: enlazando código de 32-bit con código de 64-bit"
-#: elfxx-mips.c:7676
+#: elfxx-mips.c:9149
#, c-format
-msgid "%s: ISA mismatch (%d) with previous modules (%d)"
-msgstr "%s: no coincide el ISA (%d) con módulos previos (%d)"
+msgid "%s: linking %s module with previous %s modules"
+msgstr "%s: enlazando el módulo %s con módulos %s previos"
-#: elfxx-mips.c:7699
+#: elfxx-mips.c:9172
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr "%s: no coincide el ABI: enlazando el módulo %s con módulos %s previos"
-#: elfxx-mips.c:7759
+#: elfxx-mips.c:9241
msgid " [abi=O32]"
msgstr " [abi=O32]"
-#: elfxx-mips.c:7761
+#: elfxx-mips.c:9243
msgid " [abi=O64]"
msgstr " [abi=O64]"
-#: elfxx-mips.c:7763
+#: elfxx-mips.c:9245
msgid " [abi=EABI32]"
msgstr " [abi=EABI32]"
-#: elfxx-mips.c:7765
+#: elfxx-mips.c:9247
msgid " [abi=EABI64]"
msgstr " [abi=EABI64]"
-#: elfxx-mips.c:7767
+#: elfxx-mips.c:9249
msgid " [abi unknown]"
msgstr " [abi desconocido]"
-#: elfxx-mips.c:7769
+#: elfxx-mips.c:9251
msgid " [abi=N32]"
msgstr " [abi=N32]"
-#: elfxx-mips.c:7771
+#: elfxx-mips.c:9253
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:7773
+#: elfxx-mips.c:9255
msgid " [no abi set]"
msgstr " [no hay conjunto abi]"
-#: elfxx-mips.c:7776
+#: elfxx-mips.c:9258
msgid " [mips1]"
msgstr " [mips1]"
-#: elfxx-mips.c:7778
+#: elfxx-mips.c:9260
msgid " [mips2]"
msgstr " [mips2]"
-#: elfxx-mips.c:7780
+#: elfxx-mips.c:9262
msgid " [mips3]"
msgstr " [mips3]"
-#: elfxx-mips.c:7782
+#: elfxx-mips.c:9264
msgid " [mips4]"
msgstr " [mips4]"
-#: elfxx-mips.c:7784
+#: elfxx-mips.c:9266
msgid " [mips5]"
msgstr " [mips5]"
-#: elfxx-mips.c:7786
+#: elfxx-mips.c:9268
msgid " [mips32]"
msgstr " [mips32]"
-#: elfxx-mips.c:7788
+#: elfxx-mips.c:9270
msgid " [mips64]"
msgstr " [mips64]"
-#: elfxx-mips.c:7790
+#: elfxx-mips.c:9272
+msgid " [mips32r2]"
+msgstr " [mips32r2]"
+
+#: elfxx-mips.c:9274
msgid " [unknown ISA]"
msgstr " [ISA desconocido]"
-#: elfxx-mips.c:7793
+#: elfxx-mips.c:9277
msgid " [mdmx]"
msgstr " [mdmx]"
-#: elfxx-mips.c:7796
+#: elfxx-mips.c:9280
msgid " [mips16]"
msgstr " [mips16]"
-#: elfxx-mips.c:7799
+#: elfxx-mips.c:9283
msgid " [32bitmode]"
msgstr " [modo 32bit]"
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:9285
msgid " [not 32bitmode]"
msgstr " [no es modo 32bit]"
-#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459
+#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458
#, c-format
msgid "Output file requires shared library `%s'\n"
msgstr "El fichero de salida requiere la biblioteca compartida `%s'\n"
-#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467
+#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466
#, c-format
msgid "Output file requires shared library `%s.so.%s'\n"
msgstr "El fichero de salida requiere la biblioteca compartida `%s.so.%s'\n"
-#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710
-#: sparclinux.c:657 sparclinux.c:707
+#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709
+#: sparclinux.c:656 sparclinux.c:706
#, c-format
msgid "Symbol %s not defined for fixups\n"
msgstr "El símbolo %s no está definido para composturas\n"
-#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731
+#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730
msgid "Warning: fixup count mismatch\n"
msgstr "Aviso: no coincide la cuenta de composturas\n"
-#: ieee.c:235
+#: ieee.c:293
#, c-format
msgid "%s: string too long (%d chars, max 65535)"
msgstr "%s: la cadena es demasiado larga (%d caracteres, máximo 65535)"
-#: ieee.c:365
+#: ieee.c:428
#, c-format
msgid "%s: unrecognized symbol `%s' flags 0x%x"
msgstr "%s: símbolo `%s' no reconocido opciones 0x%x"
-#: ieee.c:877
+#: ieee.c:938
#, c-format
msgid "%s: unimplemented ATI record %u for symbol %u"
msgstr "%s: grabación ATI %u sin implementar para el símbolo %u"
-#: ieee.c:902
+#: ieee.c:963
#, c-format
msgid "%s: unexpected ATN type %d in external part"
msgstr "%s: tipo ATN %d inesperado en la parte externa"
-#: ieee.c:924
+#: ieee.c:985
#, c-format
msgid "%s: unexpected type after ATN"
msgstr "%s: tipo inesperado después de ATN"
-#: ihex.c:258
+#: ihex.c:264
#, c-format
msgid "%s:%d: unexpected character `%s' in Intel Hex file\n"
msgstr "%s:%d: carácter `%s' inesperado en el fichero Hexadecimal de Intel\n"
-#: ihex.c:366
+#: ihex.c:372
#, c-format
msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)"
msgstr "%s:%u: suma de comprobación errónea en el fichero Hexadecimal de Intel (se esperaba %u, se obtuvo %u)"
-#: ihex.c:420
+#: ihex.c:426
#, c-format
msgid "%s:%u: bad extended address record length in Intel Hex file"
msgstr "%s:%u: longitud de registro de dirección extendida errónea en el fichero Hexadecimal de Intel"
-#: ihex.c:437
+#: ihex.c:443
#, c-format
msgid "%s:%u: bad extended start address length in Intel Hex file"
msgstr "%s:%u: longitud de dirección de inicio extendida errónea en el fichero Hexadecimal de Intel"
-#: ihex.c:454
+#: ihex.c:460
#, c-format
msgid "%s:%u: bad extended linear address record length in Intel Hex file"
msgstr "%s:%u: longitud de registro de dirección lineal extendida errónea en el fichero Hexadecimal de Intel"
-#: ihex.c:471
+#: ihex.c:477
#, c-format
msgid "%s:%u: bad extended linear start address length in Intel Hex file"
msgstr "%s:%u: longitud de dirección de inicio lineal extendida errónea en el fichero Hexadecimal de Intel"
-#: ihex.c:488
+#: ihex.c:494
#, c-format
msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n"
msgstr "%s:%u: tipo ihex %u no reconocido en el fichero Hexadecimal de Intel\n"
-#: ihex.c:607
+#: ihex.c:619
#, c-format
msgid "%s: internal error in ihex_read_section"
msgstr "%s: error interno en ihex_read_section"
-#: ihex.c:642
+#: ihex.c:654
#, c-format
msgid "%s: bad section length in ihex_read_section"
msgstr "%s: longitud de sección errónea en ihex_read_section"
-#: ihex.c:860
+#: ihex.c:872
#, c-format
msgid "%s: address 0x%s out of range for Intel Hex file"
msgstr "%s: la dirección 0x%s está fuera de rango en el fichero Hexadecimal de Intel"
-#: libbfd.c:492
-#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr "no se mapea: datos=%lx mapeados%d\n"
-
-#: libbfd.c:495
-msgid "not mapping: env var not set\n"
-msgstr "no se mapea: no se estableció la variable de ambiente\n"
-
-#: libbfd.c:1466
+#: libbfd.c:861
#, c-format
msgid "Deprecated %s called at %s line %d in %s\n"
msgstr "Se llamó a %s que está deprecado en %s línea %d en %s\n"
-#: libbfd.c:1469
+#: libbfd.c:864
#, c-format
msgid "Deprecated %s called\n"
msgstr "Se llamó a %s que está deprecado\n"
-#: linker.c:1873
+#: linker.c:1829
#, c-format
msgid "%s: indirect symbol `%s' to `%s' is a loop"
msgstr "%s: el símbolo indirecto `%s' para `%s' es un ciclo"
-#: linker.c:2776
+#: linker.c:2697
#, c-format
-msgid "Attempt to do relocateable link with %s input and %s output"
+msgid "Attempt to do relocatable link with %s input and %s output"
msgstr "Se intentó hacer un enlace reubicable con entrada %s y salida %s"
-#: merge.c:892
+#: merge.c:896
#, c-format
msgid "%s: access beyond end of merged section (%ld + %ld)"
msgstr "%s: acceso más allá del final de la sección mezclada (%ld + %ld)"
-#: mmo.c:460
+#: mmo.c:503
#, c-format
msgid "%s: No core to allocate section name %s\n"
msgstr "%s: No hay core para asignar el nombre de sección %s\n"
-#: mmo.c:536
+#: mmo.c:579
#, c-format
msgid "%s: No core to allocate a symbol %d bytes long\n"
msgstr "%s: No hay core para asignar un símbolo de %d bytes de longitud\n"
-#: mmo.c:1245
+#: mmo.c:1287
#, c-format
msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr "%s: fichero mmo inválido: el valor de iniciación para $255 no es `Main'\n"
-#: mmo.c:1391
+#: mmo.c:1433
#, c-format
msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr "%s: secuencia de caracteres anchos 0x%02X 0x%02X sin soporte después del nombre de símbolo que inicia con `%s'\n"
-#: mmo.c:1633
+#: mmo.c:1674
#, c-format
msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
msgstr "%s: fichero mmo inválido: código de operación-l `%d' sin soporte\n"
-#: mmo.c:1643
+#: mmo.c:1684
#, c-format
msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr "%s: fichero mmo inválido: se esperaba YZ = 1 se obtuvo YZ = %d para lop_quote\n"
-#: mmo.c:1679
+#: mmo.c:1720
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr "%s: fichero mmo inválido: se esperaba z = 1 ó z = 2, se obtuvo z = %d para lop_loc\n"
-#: mmo.c:1725
+#: mmo.c:1766
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr "%s: fichero mmo inválido: se esperaba z = 1 ó z = 2, se obtuvo z = %d para lop_fixo\n"
-#: mmo.c:1764
+#: mmo.c:1805
#, c-format
msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr "%s: fichero mmo inválido: se esperaba y = 0, se obtuvo y = %d para lop_fixrx\n"
-#: mmo.c:1773
+#: mmo.c:1814
#, c-format
msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr "%s: fichero mmo inválido: se esperaba z = 16 ó z = 24, se obtuvo z = %d para lop_fixrx\n"
-#: mmo.c:1796
+#: mmo.c:1837
#, c-format
msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr "%s: fichero mmo inválido: el byte inicial de la palabra operando debe ser 0 ó 1, se obtuvo %d para lop_fixrx\n"
-#: mmo.c:1819
+#: mmo.c:1860
#, c-format
msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
msgstr "%s: no se puede asignar el nombre de fichero para el número de fichero %d, %d bytes\n"
-#: mmo.c:1839
+#: mmo.c:1880
#, c-format
msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr "%s: fichero mmo inválido: el número de fichero %d `%s' ya se había introducido como `%s'\n"
-#: mmo.c:1852
+#: mmo.c:1893
#, c-format
msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
msgstr "%s: fichero mmo inválido: no se especificó un nombre de fichero para el número %d antes de utilizarse\n"
-#: mmo.c:1958
+#: mmo.c:1999
#, c-format
msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr "%s: fichero mmo inválido: los campos y y z de lop_stab no son cero, y: %d, z: %d\n"
-#: mmo.c:1994
+#: mmo.c:2035
#, c-format
msgid "%s: invalid mmo file: lop_end not last item in file\n"
msgstr "%s: fichero mmo inválido: lop_end no es el último elemento en el fichero\n"
-#: mmo.c:2007
+#: mmo.c:2048
#, c-format
msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr "%s: fichero mmo inválido: YZ de lop_end (%ld) no es igual al número de tetras del lop_stab precedente (%ld)\n"
-#: mmo.c:2670
+#: mmo.c:2698
#, c-format
msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
msgstr "%s: tabla de símbolos inválida: símbolo `%s' duplicado\n"
-#: mmo.c:2921
+#: mmo.c:2949
#, c-format
msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
msgstr "%s: Definición de símbolo errónea: `Main' se estableción como %s en lugar de la dirección de inicio %s\n"
-#: mmo.c:3011
+#: mmo.c:3039
#, c-format
msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr "%s: aviso: la tabla de símbolos es demasiado grande para mmo, es más grande que 65535 words de 32-bit: %d. Sólo se emitirá `Main'.\n"
-#: mmo.c:3056
+#: mmo.c:3084
#, c-format
msgid "%s: internal error, symbol table changed size from %d to %d words\n"
msgstr "%s: error interno, la tabla de símbolos cambió de tamaño de %d a %d words\n"
-#: mmo.c:3111
+#: mmo.c:3139
#, c-format
msgid "%s: internal error, internal register section %s had contents\n"
msgstr "%s: error interno, la sección interna de registros %s tiene contenido\n"
-#: mmo.c:3163
+#: mmo.c:3191
#, c-format
msgid "%s: no initialized registers; section length 0\n"
msgstr "%s: no hay registros iniciados; longitud de sección 0\n"
-#: mmo.c:3169
+#: mmo.c:3197
#, c-format
msgid "%s: too many initialized registers; section length %ld\n"
msgstr "%s: demasiados registros iniciados: longitud de sección %ld\n"
-#: mmo.c:3174
+#: mmo.c:3202
#, c-format
msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
msgstr "%s: dirección de inicio inválida para los registros iniciados de longitud %ld: 0x%lx%08lx\n"
-#: oasys.c:1029
+#: oasys.c:1052
#, c-format
msgid "%s: can not represent section `%s' in oasys"
msgstr "%s: no se puede representar la sección `%s' en oasys"
-#: osf-core.c:132
+#: osf-core.c:137
#, c-format
msgid "Unhandled OSF/1 core file section type %d\n"
msgstr "Tipo de sección de fichero núcleo OSF/1 %d sin manejar\n"
-#: pe-mips.c:658
+#: pe-mips.c:659
#, c-format
msgid "%s: `ld -r' not supported with PE MIPS objects\n"
msgstr "%s: `ld -r' no tiene soporte con objetos PE MIPS\n"
@@ -1988,53 +2226,53 @@ msgstr "%s: `ld -r' no tiene soporte con objetos PE MIPS\n"
#. mem = pointer to memory we're fixing up
#. val = VMA of what we need to refer to
#.
-#: pe-mips.c:794
+#: pe-mips.c:795
#, c-format
msgid "%s: unimplemented %s\n"
msgstr "%s: %s sin implementar\n"
-#: pe-mips.c:820
+#: pe-mips.c:821
#, c-format
msgid "%s: jump too far away\n"
msgstr "%s: salto demasiado lejos\n"
-#: pe-mips.c:847
+#: pe-mips.c:848
#, c-format
msgid "%s: bad pair/reflo after refhi\n"
msgstr "%s: pair/reflo erróneo después de refhi\n"
#. XXX code yet to be written.
-#: peicode.h:785
+#: peicode.h:787
#, c-format
msgid "%s: Unhandled import type; %x"
msgstr "%s: Tipo de importación sin manejar; %x"
-#: peicode.h:790
+#: peicode.h:792
#, c-format
msgid "%s: Unrecognised import type; %x"
msgstr "%s: Tipo de importación no reconocida; %x"
-#: peicode.h:804
+#: peicode.h:806
#, c-format
msgid "%s: Unrecognised import name type; %x"
msgstr "%s: Tipo de nombre de importación no reconocida; %x"
-#: peicode.h:1162
+#: peicode.h:1164
#, c-format
msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%s: Tipo de máquina (0x%x) no reconocida en el archivo de Formato de Importación de Bibliotecas"
-#: peicode.h:1174
+#: peicode.h:1176
#, c-format
msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%s: Tipo de máquina (0x%x) reconocida pero sin manejar en el archivo de Formato de Importación de Bibliotecas"
-#: peicode.h:1191
+#: peicode.h:1193
#, c-format
msgid "%s: size field is zero in Import Library Format header"
msgstr "%s: el tamaño del campo es cero en el encabezado del Formato de Importación de Bibliotecas"
-#: peicode.h:1219
+#: peicode.h:1224
#, c-format
msgid "%s: string not null terminated in ILF object file."
msgstr "%s: la cadena no termina en null en el fichero objeto ILF."
@@ -2091,11 +2329,11 @@ msgstr "Partición[%d] sector = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Partición[%d] longitud = 0x%.8lx (%ld)\n"
-#: som.c:5398
+#: som.c:5422
msgid "som_sizeof_headers unimplemented"
msgstr "som_sizeof_headers sin implementar"
-#: srec.c:301
+#: srec.c:302
#, c-format
msgid "%s:%d: Unexpected character `%s' in S-record file\n"
msgstr "%s:%d: Caractér `%s' inesperado en el fichero S-record\n"
@@ -2105,7 +2343,7 @@ msgstr "%s:%d: Caractér `%s' inesperado en el fichero S-record\n"
msgid "%s(%s+0x%lx): Stabs entry has invalid string index."
msgstr "%s(%s+0x%lx): La entrada de cabos tiene una cadena índice inválida."
-#: syms.c:1044
+#: syms.c:1019
msgid "Unsupported .stab relocation"
msgstr "Reubicación .stab sin soporte"
@@ -2124,33 +2362,33 @@ msgstr "bfd_set_section_flags (%s, %x) falló"
msgid "Size mismatch section %s=%lx, %s=%lx"
msgstr "No coincide el tamaño de la sección %s=%lx, %s=%lx"
-#: vms-gsd.c:702
+#: vms-gsd.c:704
#, c-format
msgid "unknown gsd/egsd subtype %d"
msgstr "subtipo de gsd/egsd %d desconocido"
-#: vms-hdr.c:406
+#: vms-hdr.c:408
msgid "Object module NOT error-free !\n"
msgstr "¡ El módulo objeto NO está libre de errores !\n"
-#: vms-misc.c:543
+#: vms-misc.c:541
#, c-format
msgid "Stack overflow (%d) in _bfd_vms_push"
msgstr "Desbordamiento de la pila (%d) en _bfd_vms_push"
-#: vms-misc.c:561
+#: vms-misc.c:559
msgid "Stack underflow in _bfd_vms_pop"
msgstr "Desbordamiento por debajo de la pila en _bfd_vms_pop"
-#: vms-misc.c:919
+#: vms-misc.c:918
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr "se llamó _bfd_vms_output_counted con cero bytes"
-#: vms-misc.c:924
+#: vms-misc.c:923
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "se llamó _bfd_vms_output_counted con demasiados bytes"
-#: vms-misc.c:1055
+#: vms-misc.c:1054
#, c-format
msgid "Symbol %s replaced by %s\n"
msgstr "El símbolo %s fue reemplazado por %s\n"
@@ -2160,26 +2398,26 @@ msgstr "El símbolo %s fue reemplazado por %s\n"
msgid "failed to enter %s"
msgstr "falló la introducción de %s"
-#: vms-tir.c:81
+#: vms-tir.c:102
msgid "No Mem !"
msgstr "¡ No hay Memoria !"
-#: vms-tir.c:362
+#: vms-tir.c:383
#, c-format
msgid "bad section index in %s"
msgstr "Índice de sección erróneo en %s"
-#: vms-tir.c:375
+#: vms-tir.c:396
#, c-format
msgid "unsupported STA cmd %s"
msgstr "orden STA %s sin soporte"
-#: vms-tir.c:380 vms-tir.c:1240
+#: vms-tir.c:401 vms-tir.c:1261
#, c-format
msgid "reserved STA cmd %d"
msgstr "orden STA %d reservada"
-#: vms-tir.c:491 vms-tir.c:514
+#: vms-tir.c:512 vms-tir.c:535
#, c-format
msgid "%s: no symbol \"%s\""
msgstr "%s: no existe el símbolo \"%s\""
@@ -2188,39 +2426,39 @@ msgstr "%s: no existe el símbolo \"%s\""
#. rotate
#. Redefine symbol to current location.
#. Define a literal.
-#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829
-#: vms-tir.c:838 vms-tir.c:1563
+#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850
+#: vms-tir.c:859 vms-tir.c:1584
#, c-format
msgid "%s: not supported"
msgstr "%s: no tiene soporte"
-#: vms-tir.c:586 vms-tir.c:1418
+#: vms-tir.c:607 vms-tir.c:1439
#, c-format
msgid "%s: not implemented"
msgstr "%s: sin implementar"
-#: vms-tir.c:590 vms-tir.c:1422
+#: vms-tir.c:611 vms-tir.c:1443
#, c-format
msgid "reserved STO cmd %d"
msgstr "orden STO %d reservada"
-#: vms-tir.c:708 vms-tir.c:1568
+#: vms-tir.c:729 vms-tir.c:1589
#, c-format
msgid "reserved OPR cmd %d"
msgstr "orden OPR %d reservada"
-#: vms-tir.c:776 vms-tir.c:1632
+#: vms-tir.c:797 vms-tir.c:1653
#, c-format
msgid "reserved CTL cmd %d"
msgstr "orden CTL %d reservada"
#. stack byte from image
#. arg: none.
-#: vms-tir.c:1148
+#: vms-tir.c:1169
msgid "stack-from-image not implemented"
msgstr "pila-desde-imagen sin implementar"
-#: vms-tir.c:1166
+#: vms-tir.c:1187
msgid "stack-entry-mask not fully implemented"
msgstr "pila-máscara-entrada no está completamente implementado"
@@ -2231,261 +2469,271 @@ msgstr "pila-máscara-entrada no está completamente implementado"
#.
#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
#. and stack TRUE (args match) or FALSE (args dont match) value.
-#: vms-tir.c:1180
+#: vms-tir.c:1201
msgid "PASSMECH not fully implemented"
msgstr "PASSMECH no está completamente implementado"
-#: vms-tir.c:1199
+#: vms-tir.c:1220
msgid "stack-local-symbol not fully implemented"
msgstr "pila-símbolo-local no está completamente implementado"
-#: vms-tir.c:1212
+#: vms-tir.c:1233
msgid "stack-literal not fully implemented"
msgstr "pila-literal no está completamente implementado"
-#: vms-tir.c:1233
+#: vms-tir.c:1254
msgid "stack-local-symbol-entry-point-mask not fully implemented"
msgstr "pila-símbolo-local-máscara-punto-entrada no está completamente implementado"
-#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611
-#: vms-tir.c:1619 vms-tir.c:1627
+#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632
+#: vms-tir.c:1640 vms-tir.c:1648
#, c-format
msgid "%s: not fully implemented"
msgstr "%s: no está completamente implementado"
-#: vms-tir.c:1684
+#: vms-tir.c:1705
#, c-format
msgid "obj code %d not found"
msgstr "no se encontró el código objeto %d"
-#: vms-tir.c:2019
+#: vms-tir.c:2043
#, c-format
msgid "SEC_RELOC with no relocs in section %s"
msgstr "SEC_RELOC sin reubicaciones en la sección %s"
-#: vms-tir.c:2307
+#: vms-tir.c:2331
#, c-format
msgid "Unhandled relocation %s"
msgstr "Reubicación %s sin manejar"
-#: xcofflink.c:1243
+#: xcofflink.c:1244
#, c-format
msgid "%s: `%s' has line numbers but no enclosing section"
msgstr "%s: `%s' tiene números de línea pero no una sección contenedora"
-#: xcofflink.c:1296
+#: xcofflink.c:1297
#, c-format
msgid "%s: class %d symbol `%s' has no aux entries"
msgstr "%s: clase %d símbolo `%s' no tiene entradas auxiliares"
-#: xcofflink.c:1319
+#: xcofflink.c:1320
#, c-format
msgid "%s: symbol `%s' has unrecognized csect type %d"
msgstr "%s: el símbolo `%s' tiene un tipo csect %d no reconocido"
-#: xcofflink.c:1331
+#: xcofflink.c:1332
#, c-format
msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
msgstr "%s: símbolo XTY_ER `%s' erróneo: clase %d scnum %d scnlen %d"
-#: xcofflink.c:1367
+#: xcofflink.c:1368
#, c-format
msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d"
msgstr "%s: símbolo XMC_TCO `%s' es clase %d scnlen %d"
-#: xcofflink.c:1519
+#: xcofflink.c:1520
#, c-format
msgid "%s: csect `%s' not in enclosing section"
msgstr "%s: csect `%s' no está contenido en una sección"
-#: xcofflink.c:1626
+#: xcofflink.c:1627
#, c-format
msgid "%s: misplaced XTY_LD `%s'"
msgstr "%s: XTY_LD `%s' mal ubicado"
-#: xcofflink.c:1957
+#: xcofflink.c:1958
#, c-format
msgid "%s: reloc %s:%d not in csect"
msgstr "%s: la reubicación %s:%d no está en csect"
-#: xcofflink.c:2092
+#: xcofflink.c:2095
#, c-format
msgid "%s: XCOFF shared object when not producing XCOFF output"
msgstr "%s: objeto compartido XCOFF cuando no se produce salida XCOFF"
-#: xcofflink.c:2113
+#: xcofflink.c:2116
#, c-format
msgid "%s: dynamic object with no .loader section"
msgstr "%s: objeto dinámico sin sección .loader"
-#: xcofflink.c:2758
+#: xcofflink.c:2761
#, c-format
msgid "%s: no such symbol"
msgstr "%s: no hay tal símbolo"
-#: xcofflink.c:2891
+#: xcofflink.c:2894
msgid "error: undefined symbol __rtinit"
msgstr "error: símbolo __rtinit indefinido"
-#: xcofflink.c:3453
+#: xcofflink.c:3455
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "aviso: intento de exportar el símbolo sin definir `%s'"
-#: xcofflink.c:4447
+#: xcofflink.c:4448
#, c-format
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr "Desbordamiento de TOC: 0x%lx > 0x10000; pruebe -mminimal-toc al compilar"
-#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119
+#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119
#, c-format
msgid "%s: loader reloc in unrecognized section `%s'"
msgstr "%s: reubicación del cargador en la sección `%s' no reconocida"
-#: xcofflink.c:5309 xcofflink.c:6130
+#: xcofflink.c:5310 xcofflink.c:6130
#, c-format
msgid "%s: `%s' in loader reloc but not loader sym"
msgstr "%s: `%s' en la reubicación del cargador pero no es un símbolo del cargador"
-#: xcofflink.c:5324
+#: xcofflink.c:5325
#, c-format
msgid "%s: loader reloc in read-only section %s"
msgstr "%s: reubicación del cargador en la sección de sólo lectura %s"
-#: elf32-ia64.c:2222 elf64-ia64.c:2222
+#: elf32-ia64.c:2392 elf64-ia64.c:2392
msgid "@pltoff reloc against local symbol"
msgstr "reubicación @pltoff contra un símbolo local"
-#: elf32-ia64.c:3562 elf64-ia64.c:3562
+#: elf32-ia64.c:3804 elf64-ia64.c:3804
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr "%s: segmento de datos short desbordado (0x%lx >= 0x400000)"
-#: elf32-ia64.c:3573 elf64-ia64.c:3573
+#: elf32-ia64.c:3815 elf64-ia64.c:3815
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr "%s: __gp no cubre el segmento de datos short"
-#: elf32-ia64.c:3858 elf64-ia64.c:3858
+#: elf32-ia64.c:4131 elf64-ia64.c:4131
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr "%s: enlazando código que no es pic en una biblioteca compartida"
-#: elf32-ia64.c:3891 elf64-ia64.c:3891
+#: elf32-ia64.c:4164 elf64-ia64.c:4164
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr "%s: reubicación @gprel contra el símbolo dinámico %s"
-#: elf32-ia64.c:4030 elf64-ia64.c:4030
+#: elf32-ia64.c:4224 elf64-ia64.c:4224
+#, c-format
+msgid "%s: linking non-pic code in a position independent executable"
+msgstr "%s: enlazando código que no es pic en un ejecutable independiente de posición"
+
+#: elf32-ia64.c:4363 elf64-ia64.c:4363
#, c-format
-msgid "%s: dynamic relocation against speculation fixup"
-msgstr "%s: reubicación dinámica contra una compostura de especulación"
+msgid "%s: @internal branch to dynamic symbol %s"
+msgstr "%s: ramificación @internal al símbolo dinámico %s"
-#: elf32-ia64.c:4038 elf64-ia64.c:4038
+#: elf32-ia64.c:4365 elf64-ia64.c:4365
#, c-format
-msgid "%s: speculation fixup against undefined weak symbol"
-msgstr "%s: compostura de especulación contra un símbolo débil indefinido"
+msgid "%s: speculation fixup to dynamic symbol %s"
+msgstr "%s: compostura de especulación al símbolo dinámico %s"
-#: elf32-ia64.c:4271 elf64-ia64.c:4271
+#: elf32-ia64.c:4367 elf64-ia64.c:4367
+#, c-format
+msgid "%s: @pcrel relocation against dynamic symbol %s"
+msgstr "%s: reubicación @pcrel contra el símbolo dinámico %s"
+
+#: elf32-ia64.c:4579 elf64-ia64.c:4579
msgid "unsupported reloc"
msgstr "reubicación sin soporte"
-#: elf32-ia64.c:4551 elf64-ia64.c:4551
+#: elf32-ia64.c:4858 elf64-ia64.c:4858
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%s: enlazando deferencias-captura-en-NULL con ficheros que no son de captura"
-#: elf32-ia64.c:4560 elf64-ia64.c:4560
+#: elf32-ia64.c:4867 elf64-ia64.c:4867
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr "%s: enlazando ficheros big endian con ficheros little endian"
-#: elf32-ia64.c:4569 elf64-ia64.c:4569
+#: elf32-ia64.c:4876 elf64-ia64.c:4876
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr "%s: enlazando ficheros de 64-bit con ficheros de 32-bit"
-#: elf32-ia64.c:4578 elf64-ia64.c:4578
+#: elf32-ia64.c:4885 elf64-ia64.c:4885
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr "%s: enlazando ficheros de gp constante con ficheros con gp no constante"
-#: elf32-ia64.c:4588 elf64-ia64.c:4588
+#: elf32-ia64.c:4895 elf64-ia64.c:4895
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr "%s: enlazando ficheros de pic automático con ficheros sin pic automático"
-#: peigen.c:962 pepigen.c:962
+#: peigen.c:985 pepigen.c:985
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: desbordamiento de número de línea: 0x%lx > 0xffff"
-#: peigen.c:979 pepigen.c:979
+#: peigen.c:1002 pepigen.c:1002
#, c-format
msgid "%s: reloc overflow 1: 0x%lx > 0xffff"
msgstr "%s: desbordamiento de reubicación 1: 0x%lx > 0xffff"
-#: peigen.c:993 pepigen.c:993
+#: peigen.c:1016 pepigen.c:1016
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Directorio de Exportación [.edata (o donde quiera que se encuentre)]"
-#: peigen.c:994 pepigen.c:994
+#: peigen.c:1017 pepigen.c:1017
msgid "Import Directory [parts of .idata]"
msgstr "Directorio de Importación [partes de .idata]"
-#: peigen.c:995 pepigen.c:995
+#: peigen.c:1018 pepigen.c:1018
msgid "Resource Directory [.rsrc]"
msgstr "Directorio de Recursos [.rsrc]"
-#: peigen.c:996 pepigen.c:996
+#: peigen.c:1019 pepigen.c:1019
msgid "Exception Directory [.pdata]"
msgstr "Directorio de Excepciones [.pdata]"
-#: peigen.c:997 pepigen.c:997
+#: peigen.c:1020 pepigen.c:1020
msgid "Security Directory"
msgstr "Directorio de Seguridad"
-#: peigen.c:998 pepigen.c:998
+#: peigen.c:1021 pepigen.c:1021
msgid "Base Relocation Directory [.reloc]"
msgstr "Directorio de Reubicación Base [.reloc]"
-#: peigen.c:999 pepigen.c:999
+#: peigen.c:1022 pepigen.c:1022
msgid "Debug Directory"
msgstr "Directorio de Depuración"
-#: peigen.c:1000 pepigen.c:1000
+#: peigen.c:1023 pepigen.c:1023
msgid "Description Directory"
msgstr "Directorio de Descripciones"
-#: peigen.c:1001 pepigen.c:1001
+#: peigen.c:1024 pepigen.c:1024
msgid "Special Directory"
msgstr "Directorio Especial"
-#: peigen.c:1002 pepigen.c:1002
+#: peigen.c:1025 pepigen.c:1025
msgid "Thread Storage Directory [.tls]"
msgstr "Directorio de Almacenamiento de Hilos [.tls]"
-#: peigen.c:1003 pepigen.c:1003
+#: peigen.c:1026 pepigen.c:1026
msgid "Load Configuration Directory"
msgstr "Directorio de Carga de Configuraciones"
-#: peigen.c:1004 pepigen.c:1004
+#: peigen.c:1027 pepigen.c:1027
msgid "Bound Import Directory"
msgstr "Directorio de Importación de Relaciones"
-#: peigen.c:1005 pepigen.c:1005
+#: peigen.c:1028 pepigen.c:1028
msgid "Import Address Table Directory"
msgstr "Directorio de Importación de Tablas de Direcciones"
-#: peigen.c:1006 pepigen.c:1006
+#: peigen.c:1029 pepigen.c:1029
msgid "Delay Import Directory"
msgstr "Directorio de Retardo de Importación"
-#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008
+#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031
msgid "Reserved"
msgstr "Reservado"
-#: peigen.c:1071 pepigen.c:1071
+#: peigen.c:1094 pepigen.c:1094
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
@@ -2493,7 +2741,7 @@ msgstr ""
"\n"
"Hay una tabla de importación, pero la sección que la contiene no se puede encontrar\n"
-#: peigen.c:1076 pepigen.c:1076
+#: peigen.c:1099 pepigen.c:1099
#, c-format
msgid ""
"\n"
@@ -2502,7 +2750,7 @@ msgstr ""
"\n"
"Hay una tabla de importación en %s en 0x%lx\n"
-#: peigen.c:1113 pepigen.c:1113
+#: peigen.c:1136 pepigen.c:1136
#, c-format
msgid ""
"\n"
@@ -2511,12 +2759,12 @@ msgstr ""
"\n"
"Se localizó el descriptor de función en la dirección de inicio: %04lx\n"
-#: peigen.c:1116 pepigen.c:1116
+#: peigen.c:1139 pepigen.c:1139
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr "\tcódigo-base %08lx tabla-de-contenidos (cargable/actual) %08lx/%08lx\n"
-#: peigen.c:1122 pepigen.c:1122
+#: peigen.c:1145 pepigen.c:1145
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
@@ -2524,7 +2772,7 @@ msgstr ""
"\n"
"¡No está la sección reldata! No se decodificó el descriptor de función.\n"
-#: peigen.c:1127 pepigen.c:1127
+#: peigen.c:1150 pepigen.c:1150
#, c-format
msgid ""
"\n"
@@ -2533,7 +2781,7 @@ msgstr ""
"\n"
"Las Tablas de Importación (se interpretaron los contenidos de la sección %s)\n"
-#: peigen.c:1130 pepigen.c:1130
+#: peigen.c:1153 pepigen.c:1153
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
@@ -2541,7 +2789,7 @@ msgstr ""
" vma: Pista Fecha Adelante DLL Primero\n"
" Tabla Estampa Cadena Nombre Thunk\n"
-#: peigen.c:1181 pepigen.c:1181
+#: peigen.c:1204 pepigen.c:1204
#, c-format
msgid ""
"\n"
@@ -2550,11 +2798,11 @@ msgstr ""
"\n"
"\tNombre de la DLL: %s\n"
-#: peigen.c:1192 pepigen.c:1192
+#: peigen.c:1215 pepigen.c:1215
msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
msgstr "\tvma: Pista/Ord Nombre-Miembro Unido-A\n"
-#: peigen.c:1217 pepigen.c:1217
+#: peigen.c:1240 pepigen.c:1240
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
@@ -2562,7 +2810,7 @@ msgstr ""
"\n"
"Hay un thunk inicial, pero la sección que lo contiene no se puede encontrar\n"
-#: peigen.c:1357 pepigen.c:1357
+#: peigen.c:1380 pepigen.c:1380
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
@@ -2570,7 +2818,7 @@ msgstr ""
"\n"
"Hay una tabla de exportación, pero la sección que la contiene no se puede encontrar\n"
-#: peigen.c:1362 pepigen.c:1362
+#: peigen.c:1385 pepigen.c:1385
#, c-format
msgid ""
"\n"
@@ -2579,7 +2827,7 @@ msgstr ""
"\n"
"Hay una tabla de exportación en %s en 0x%lx\n"
-#: peigen.c:1393 pepigen.c:1393
+#: peigen.c:1416 pepigen.c:1416
#, c-format
msgid ""
"\n"
@@ -2590,62 +2838,62 @@ msgstr ""
"Las Tablas de Exportación (se interpretaron los contenidos de la sección %s)\n"
"\n"
-#: peigen.c:1397 pepigen.c:1397
+#: peigen.c:1420 pepigen.c:1420
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "Opciones de Exportación \t\t\t%lx\n"
-#: peigen.c:1400 pepigen.c:1400
+#: peigen.c:1423 pepigen.c:1423
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "marca de Hora/Fecha \t\t%lx\n"
-#: peigen.c:1403 pepigen.c:1403
+#: peigen.c:1426 pepigen.c:1426
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Mayor/Menor \t\t\t%d/%d\n"
-#: peigen.c:1406 pepigen.c:1406
+#: peigen.c:1429 pepigen.c:1429
msgid "Name \t\t\t\t"
msgstr "Nombre \t\t\t\t"
-#: peigen.c:1412 pepigen.c:1412
+#: peigen.c:1435 pepigen.c:1435
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "Base Ordinal \t\t\t%ld\n"
-#: peigen.c:1415 pepigen.c:1415
+#: peigen.c:1438 pepigen.c:1438
msgid "Number in:\n"
msgstr "Número en:\n"
-#: peigen.c:1418 pepigen.c:1418
+#: peigen.c:1441 pepigen.c:1441
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tTabla de Exportación de Direcciones \t\t%08lx\n"
-#: peigen.c:1422 pepigen.c:1422
+#: peigen.c:1445 pepigen.c:1445
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\tTabla [Nombre Apuntador/Ordinal]\t%08lx\n"
-#: peigen.c:1425 pepigen.c:1425
+#: peigen.c:1448 pepigen.c:1448
msgid "Table Addresses\n"
msgstr "Direcciones de la Tabla\n"
-#: peigen.c:1428 pepigen.c:1428
+#: peigen.c:1451 pepigen.c:1451
msgid "\tExport Address Table \t\t"
msgstr "\tTabla de Exportación de Direcciones \t\t"
-#: peigen.c:1433 pepigen.c:1433
+#: peigen.c:1456 pepigen.c:1456
msgid "\tName Pointer Table \t\t"
msgstr "\tNombre de la Tabla de Apuntadores \t\t"
# continuar aqui
-#: peigen.c:1438 pepigen.c:1438
+#: peigen.c:1461 pepigen.c:1461
msgid "\tOrdinal Table \t\t\t"
msgstr "\tTabla Ordinal \t\t\t"
-#: peigen.c:1453 pepigen.c:1453
+#: peigen.c:1476 pepigen.c:1476
#, c-format
msgid ""
"\n"
@@ -2654,15 +2902,15 @@ msgstr ""
"\n"
"Tabla de Exportación de Direcciones -- Base Ordinal %ld\n"
-#: peigen.c:1472 pepigen.c:1472
+#: peigen.c:1495 pepigen.c:1495
msgid "Forwarder RVA"
msgstr "RVA Adelantador"
-#: peigen.c:1483 pepigen.c:1483
+#: peigen.c:1506 pepigen.c:1506
msgid "Export RVA"
msgstr "RVA Exportador"
-#: peigen.c:1490 pepigen.c:1490
+#: peigen.c:1513 pepigen.c:1513
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
@@ -2670,12 +2918,12 @@ msgstr ""
"\n"
"Tabla [Apuntador a Ordinal/Nombre]\n"
-#: peigen.c:1545 pepigen.c:1545
+#: peigen.c:1568 pepigen.c:1568
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "Aviso, el tamaño de la sección .pdata (%ld) no es un múltiplo de %d\n"
-#: peigen.c:1549 pepigen.c:1549
+#: peigen.c:1572 pepigen.c:1572
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
@@ -2683,11 +2931,11 @@ msgstr ""
"\n"
"La Tabla de Funciones (se interpretaron los contenidos de la sección .pdata)\n"
-#: peigen.c:1552 pepigen.c:1552
+#: peigen.c:1575 pepigen.c:1575
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tDirección Inicio Dirección Fin Información Desenvuelta\n"
-#: peigen.c:1554 pepigen.c:1554
+#: peigen.c:1577 pepigen.c:1577
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
@@ -2695,19 +2943,19 @@ msgstr ""
" vma:\t\tInicio Fin EH EH FinPrólogo Excepción\n"
" \t\tDirecc Direcc Asa Datos Dirección Máscara\n"
-#: peigen.c:1624 pepigen.c:1624
+#: peigen.c:1647 pepigen.c:1647
msgid " Register save millicode"
msgstr " Registro para guardar milicódigo"
-#: peigen.c:1627 pepigen.c:1627
+#: peigen.c:1650 pepigen.c:1650
msgid " Register restore millicode"
msgstr " Registro para restaurar milicódigo"
-#: peigen.c:1630 pepigen.c:1630
+#: peigen.c:1653 pepigen.c:1653
msgid " Glue code sequence"
msgstr " Secuencia de código pegamento"
-#: peigen.c:1682 pepigen.c:1682
+#: peigen.c:1705 pepigen.c:1705
msgid ""
"\n"
"\n"
@@ -2717,7 +2965,7 @@ msgstr ""
"\n"
"Reubicaciones de Fichero Base PE (se interpretaron los contenidos de la sección .reloc)\n"
-#: peigen.c:1712 pepigen.c:1712
+#: peigen.c:1735 pepigen.c:1735
#, c-format
msgid ""
"\n"
@@ -2726,7 +2974,7 @@ msgstr ""
"\n"
"Dirección Virtual: %08lx Tamaño del trozo %ld (0x%lx) Número de composturas %ld\n"
-#: peigen.c:1725 pepigen.c:1725
+#: peigen.c:1748 pepigen.c:1748
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\treubicación %4d desplazamiento %4x [%4lx] %s"
@@ -2734,7 +2982,7 @@ msgstr "\treubicación %4d desplazamiento %4x [%4lx] %s"
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1765 pepigen.c:1765
+#: peigen.c:1788 pepigen.c:1788
#, c-format
msgid ""
"\n"
@@ -2743,6 +2991,42 @@ msgstr ""
"\n"
"Características 0x%x\n"
+#~ msgid "%s: Unknown special linker type %d"
+#~ msgstr "%s: Tipo de enlazador especial %d desconocido"
+
+#~ msgid "v850ea architecture"
+#~ msgstr "arquitectura v850ea"
+
+#~ msgid "%s: Section %s is too large to add hole of %ld bytes"
+#~ msgstr "%s: La sección %s es muy grande para agregar un agujero de %ld bytes"
+
+#~ msgid "Error: out of memory"
+#~ msgstr "Error: memoria agotada"
+
+#~ msgid "warning: relocation against removed section; zeroing"
+#~ msgstr "aviso: reubicación contra una sección eliminada; cambiando a ceros"
+
+#~ msgid "warning: relocation against removed section"
+#~ msgstr "aviso: reubicación contra una sección eliminada"
+
+#~ msgid "local symbols in discarded section %s"
+#~ msgstr "símbolos locales en la sección descartada %s"
+
+#~ msgid "%s: linking abicalls files with non-abicalls files"
+#~ msgstr "%s: enlazando ficheros de llamadas abi con ficheros que no son de llamadas abi"
+
+#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
+#~ msgstr "%s: no coincide el ISA (-mips%d) con módulos previos (-mips%d)"
+
+#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)"
+#~ msgstr "%s: no coincide el ISA (%d) con módulos previos (%d)"
+
+#~ msgid "%s: dynamic relocation against speculation fixup"
+#~ msgstr "%s: reubicación dinámica contra una compostura de especulación"
+
+#~ msgid "%s: speculation fixup against undefined weak symbol"
+#~ msgstr "%s: compostura de especulación contra un símbolo débil indefinido"
+
#~ msgid "\tThe Import Address Table (difference found)\n"
#~ msgstr "\tLa Tabla de Importación de Direcciones (se encontró una diferencia)\n"
diff --git a/bfd/po/fr.po b/bfd/po/fr.po
index 4c0defd..831daff 100644
--- a/bfd/po/fr.po
+++ b/bfd/po/fr.po
@@ -4,494 +4,517 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU bfd 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-24 08:00-0500\n"
+"Project-Id-Version: GNU bfd 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:53+0930\n"
+"PO-Revision-Date: 2003-08-05 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: aout-adobe.c:197
+#: aout-adobe.c:204
#, c-format
msgid "%s: Unknown section type in a.out.adobe file: %x\n"
msgstr "%s: type de section inconnu dans le fichier a.out.adobe: %x\n"
-#: aout-cris.c:208
+#: aout-cris.c:207
#, c-format
msgid "%s: Invalid relocation type exported: %d"
msgstr "%s: relocalisation invalide du type exporté: %d"
-#: aout-cris.c:252
+#: aout-cris.c:251
#, c-format
msgid "%s: Invalid relocation type imported: %d"
msgstr "%s: relocalisation invalide du type importé: %d"
-#: aout-cris.c:263
+#: aout-cris.c:262
#, c-format
msgid "%s: Bad relocation record imported: %d"
msgstr "%s: mauvais enregistrement de relocalisation importé: %d"
-#: aoutx.h:1282 aoutx.h:1699
+#: aoutx.h:1295 aoutx.h:1716
#, c-format
msgid "%s: can not represent section `%s' in a.out object file format"
msgstr "%s: ne peut représenter la section « %s » dans le fichier format objet a.out"
-#: aoutx.h:1669
+#: aoutx.h:1682
#, c-format
msgid "%s: can not represent section for symbol `%s' in a.out object file format"
msgstr "%s: ne peut représenter la section pour le symbole « %s » dans le fichier format objet a.out"
-#: aoutx.h:1671
+#: aoutx.h:1684
msgid "*unknown*"
msgstr "*inconnu*"
-#: aoutx.h:3732
+#: aoutx.h:3776
#, c-format
-msgid "%s: relocateable link from %s to %s not supported"
-msgstr "%s: relocalisation de liens de %s vers %s n'est pas supporté"
+msgid "%s: relocatable link from %s to %s not supported"
+msgstr "%s: lien relocalisable de %s vers %s n'est pas supporté"
-#: archive.c:1826
+#: archive.c:1751
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr "AVERTISSEMENT: l'écriture de l'archive était lente: réécriture du cachet de date-heure\n"
-#: archive.c:2093
+#: archive.c:2014
msgid "Reading archive file mod timestamp"
msgstr "Lecture du cachet date-heure modifé du fichier d'archive"
-#. FIXME: bfd can't call perror.
-#: archive.c:2120
+#: archive.c:2040
msgid "Writing updated armap timestamp"
msgstr "Écriture du cachet date-heure armap mise à jour"
-#: bfd.c:274
+#: bfd.c:280
msgid "No error"
msgstr "Pas d'erreur"
-#: bfd.c:275
+#: bfd.c:281
msgid "System call error"
msgstr "Erreur d'appel système"
-#: bfd.c:276
+#: bfd.c:282
msgid "Invalid bfd target"
msgstr "cible bfd invalide"
-#: bfd.c:277
+#: bfd.c:283
msgid "File in wrong format"
msgstr "Fichier dans un mauvais format"
-#: bfd.c:278
+#: bfd.c:284
msgid "Archive object file in wrong format"
msgstr "Fichier objet d'archive dans un mauvais format"
-#: bfd.c:279
+#: bfd.c:285
msgid "Invalid operation"
msgstr "Opération invalide"
-#: bfd.c:280
+#: bfd.c:286
msgid "Memory exhausted"
msgstr "Mémoire épuisée"
-#: bfd.c:281
+#: bfd.c:287
msgid "No symbols"
msgstr "Aucun symbole"
-#: bfd.c:282
+#: bfd.c:288
msgid "Archive has no index; run ranlib to add one"
msgstr "L'archive n'a pas d'index; exécuter ranlib pour en ajouter un"
-#: bfd.c:283
+#: bfd.c:289
msgid "No more archived files"
msgstr "Aucun autre fichier d'archive"
-#: bfd.c:284
+#: bfd.c:290
msgid "Malformed archive"
msgstr "Archive mal formé"
-#: bfd.c:285
+#: bfd.c:291
msgid "File format not recognized"
msgstr "Format de fichier non reconnu"
-#: bfd.c:286
+#: bfd.c:292
msgid "File format is ambiguous"
msgstr "Format de fichier ambiguë"
-#: bfd.c:287
+#: bfd.c:293
msgid "Section has no contents"
msgstr "Section sans contenu"
-#: bfd.c:288
+#: bfd.c:294
msgid "Nonrepresentable section on output"
msgstr "Section non-représentable pour la sortie"
-#: bfd.c:289
+#: bfd.c:295
msgid "Symbol needs debug section which does not exist"
msgstr "Symboles ont besoin de la section de débug qui est inexistente"
-#: bfd.c:290
+#: bfd.c:296
msgid "Bad value"
msgstr "Mauvaise valeur"
-#: bfd.c:291
+#: bfd.c:297
msgid "File truncated"
msgstr "Fichier tronqué"
-#: bfd.c:292
+#: bfd.c:298
msgid "File too big"
msgstr "Fichier trop gros"
-#: bfd.c:293
+#: bfd.c:299
msgid "#<Invalid error code>"
msgstr "#<Code d'erreur invalide>"
-#: bfd.c:700
+#: bfd.c:687
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "BFD assertion %s a échoué %s:%d"
-#: bfd.c:719
+#: bfd.c:703
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr "BFD erreur interne %s, abandon à %s, ligne %d dans %s\n"
-#: bfd.c:723
+#: bfd.c:707
#, c-format
msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr "BFD erreur interne %s, abandon à %s, ligne %d\n"
-#: bfd.c:725
+#: bfd.c:709
msgid "Please report this bug.\n"
msgstr "SVP rapporter cette anomalie.\n"
+#: bfdwin.c:202
+#, c-format
+msgid "not mapping: data=%lx mapped=%d\n"
+msgstr "pas de table de projection: données=%lx adresse de la table=%d\n"
+
+#: bfdwin.c:205
+msgid "not mapping: env var not set\n"
+msgstr "pas de table de projection: variable d'environnement pas initialisée\n"
+
#: binary.c:306
#, c-format
msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
msgstr "AVERTISSEMENT: écriture de la section « %s » vers un énorme décalage (ie négatif) dans le fichier 0x%lx."
-#: coff-a29k.c:119
+#: coff-a29k.c:120
msgid "Missing IHCONST"
msgstr "IHCONST manquant"
-#: coff-a29k.c:180
+#: coff-a29k.c:181
msgid "Missing IHIHALF"
msgstr "IHIHALF manquant"
-#: coff-a29k.c:212 coff-or32.c:229
+#: coff-a29k.c:213 coff-or32.c:236
msgid "Unrecognized reloc"
msgstr "Relocalisation non reconnue"
-#: coff-a29k.c:408
+#: coff-a29k.c:409
msgid "missing IHCONST reloc"
msgstr "IHCONST de relocalisation manquant"
-#: coff-a29k.c:498
+#: coff-a29k.c:499
msgid "missing IHIHALF reloc"
msgstr "IHIHALF de relocalisation manquant"
-#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432
+#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397
msgid "GP relative relocation used when GP not defined"
msgstr "Relocalisation relative GP utilisé alors que GP n'est pas défini"
-#: coff-alpha.c:1485
+#: coff-alpha.c:1488
msgid "using multiple gp values"
msgstr "utilisation de valeurs multiples gp"
-#: coff-arm.c:1066 elf32-arm.h:285
+#: coff-arm.c:1066 elf32-arm.h:294
#, c-format
msgid "%s: unable to find THUMB glue '%s' for `%s'"
msgstr "%s: incapable de repérer le REPÈRE de liant « %s » pour « %s »"
-#: coff-arm.c:1096 elf32-arm.h:320
+#: coff-arm.c:1096 elf32-arm.h:329
#, c-format
msgid "%s: unable to find ARM glue '%s' for `%s'"
msgstr "%s: incapable de repérer le liant ARM « %s » pour « %s »"
-#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991
+#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999
#, c-format
msgid "%s(%s): warning: interworking not enabled."
msgstr "%s(%s): AVERTISSEMENT: l'inter-réseautage n'est pas permis."
-#: coff-arm.c:1395 elf32-arm.h:994
+#: coff-arm.c:1398 elf32-arm.h:1002
#, c-format
msgid " first occurrence: %s: arm call to thumb"
msgstr " première occurrence: %s: appel arm de repérage"
-#: coff-arm.c:1490 elf32-arm.h:890
+#: coff-arm.c:1493 elf32-arm.h:895
#, c-format
msgid " first occurrence: %s: thumb call to arm"
msgstr " première occurrence: %s: appel de repérage à ARM"
-#: coff-arm.c:1493
+#: coff-arm.c:1496
msgid " consider relinking with --support-old-code enabled"
msgstr " considérer de rafaire les liens avec --support-old-code enabled"
-#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031
+#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr "%s: mauvaise adresse de relocalisation 0x%lx dans la section « %s »"
-#: coff-arm.c:2127
+#: coff-arm.c:2132
#, c-format
msgid "%s: illegal symbol index in reloc: %d"
msgstr "%s: symbole index illégal dans la relocalisation: %d"
-#: coff-arm.c:2255
+#: coff-arm.c:2265
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr "Erreur: %s compilé pour APCS-%d alors que %s a été compilé pour APCS-%d"
-#: coff-arm.c:2270 elf32-arm.h:2297
+#: coff-arm.c:2280 elf32-arm.h:2328
#, c-format
msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers"
msgstr "Erreur: %s passage de valeurs en virgule flottante dans les registres FP alors que %s les passe dans les registres entiers"
-#: coff-arm.c:2273 elf32-arm.h:2302
+#: coff-arm.c:2283 elf32-arm.h:2333
#, c-format
msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers"
msgstr "Erreur: %s passage de valeurs en virgule flottante dans les registres entiers alors que %s les passe dans les registres FP"
-#: coff-arm.c:2288
+#: coff-arm.c:2298
#, c-format
msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position"
msgstr "ERREUR: %s compilé avec du code à position indépendante alors que la cible %s est à position absolue"
-#: coff-arm.c:2291
+#: coff-arm.c:2301
#, c-format
msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent"
msgstr "ERREUR: %s compilé avec du code à position absolu alors que la cible %s est à position indépendante"
-#: coff-arm.c:2320 elf32-arm.h:2358
+#: coff-arm.c:2330 elf32-arm.h:2405
#, c-format
msgid "Warning: %s supports interworking, whereas %s does not"
msgstr "AVERTISSEMENT: %s supporte l'inter-réseautage, contrairement à %s."
-#: coff-arm.c:2323 elf32-arm.h:2365
+#: coff-arm.c:2333 elf32-arm.h:2412
#, c-format
msgid "Warning: %s does not support interworking, whereas %s does"
msgstr "AVERTISSEMENT: %s ne supporte pas l'inter-réseautage, contrairement à %s."
-#: coff-arm.c:2350
+#: coff-arm.c:2360
#, c-format
msgid "private flags = %x:"
msgstr "fanions privés = %x"
-#: coff-arm.c:2358 elf32-arm.h:2418
+#: coff-arm.c:2368 elf32-arm.h:2467
msgid " [floats passed in float registers]"
msgstr " [valeurs en virgule flottante passées dans des registres de valeurs en virgule flottante]"
-#: coff-arm.c:2360
+#: coff-arm.c:2370
msgid " [floats passed in integer registers]"
msgstr " [valeurs en virgule flottante passées dans des registres de valeurs entières]"
-#: coff-arm.c:2363 elf32-arm.h:2421
+#: coff-arm.c:2373 elf32-arm.h:2470
msgid " [position independent]"
msgstr " [position indépendante]"
-#: coff-arm.c:2365
+#: coff-arm.c:2375
msgid " [absolute position]"
msgstr " [position absolue]"
-#: coff-arm.c:2369
+#: coff-arm.c:2379
msgid " [interworking flag not initialised]"
msgstr " [fanion d'inter-réseautage n'a pas été initialisé]"
-#: coff-arm.c:2371
+#: coff-arm.c:2381
msgid " [interworking supported]"
msgstr " [inter-réseautage supporté]"
-#: coff-arm.c:2373
+#: coff-arm.c:2383
msgid " [interworking not supported]"
msgstr " [inter-réseautage non supporté]"
-#: coff-arm.c:2421 elf32-arm.h:2124
+#: coff-arm.c:2431 elf32-arm.h:2150
#, c-format
msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"
msgstr "AVERTISSEMENT: pas d'initialisation du fanion d'inter-réseautage %s puisqu'il a déjà été spécifié sans inter-réseautage"
-#: coff-arm.c:2425 elf32-arm.h:2128
+#: coff-arm.c:2435 elf32-arm.h:2154
#, c-format
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr "AVERTISSEMENT: mise à zéro du fanion d'inter-réseautage %s en raison d'une requête externe"
-#: coff-i960.c:136 coff-i960.c:485
+#: coff-h8300.c:1096
+#, c-format
+msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
+msgstr "ne peut traiter la relocalisation R_MEM_INDIRECT lorsque %s est utilisé en sortie"
+
+#: coff-i960.c:137 coff-i960.c:486
msgid "uncertain calling convention for non-COFF symbol"
msgstr "convention d'appel incertaine pour un symbole non COFF"
-#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844
+#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783
msgid "unsupported reloc type"
msgstr "type de relocalisation non supporté"
-#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609
+#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554
msgid "GP relative relocation when _gp not defined"
msgstr "relocalisation relative GP sans que _gp ne soit défini"
#. No other sections should appear in -membedded-pic
#. code.
-#: coff-mips.c:2466
+#: coff-mips.c:2431
msgid "reloc against unsupported section"
msgstr "relocalisation vers une section non supportée"
-#: coff-mips.c:2474
+#: coff-mips.c:2439
msgid "reloc not properly aligned"
msgstr "relocalisation n'est pas alignée correctement"
-#: coff-rs6000.c:2766
+#: coff-rs6000.c:2790
#, c-format
msgid "%s: unsupported relocation type 0x%02x"
msgstr "%s: type de relocalisation non supporté 0x%02x"
-#: coff-rs6000.c:2859
+#: coff-rs6000.c:2883
#, c-format
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr "%s: table des matières des relocalisation à 0x%x pour les symboles « %s » sans aucune entrée"
-#: coff-rs6000.c:3590 coff64-rs6000.c:2091
+#: coff-rs6000.c:3616 coff64-rs6000.c:2109
#, c-format
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr "%s: symbole « %s » a une classe smclas non reconnue %d"
-#: coff-tic54x.c:279 coff-tic80.c:449
+#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450
#, c-format
msgid "Unrecognized reloc type 0x%x"
msgstr "Type de relocalisation non reconnu 0x%x"
-#: coff-tic54x.c:390 coffcode.h:4974
+#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr "%s: AVERTISSEMENT: symbole index illégal %ld dans les relocalisations"
-#: coff-w65.c:363
+#: coff-w65.c:364
#, c-format
msgid "ignoring reloc %s\n"
msgstr "relocalisation de %s ignorée\n"
-#: coffcode.h:1086
+#: coffcode.h:1108
#, c-format
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr "%s (%s): fanion de section %s (0x%x) ignoré"
-#: coffcode.h:2143
+#: coffcode.h:2214
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr "cible TI COFF non reconnue identificateur '0x%x'"
-#: coffcode.h:4365
+#: coffcode.h:4437
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr "%s: AVERTISSEMENT: symbole d'index illégal %ld dans le numéro de ligne"
-#: coffcode.h:4379
+#: coffcode.h:4451
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr "%s: AVERTISSEMENT: information de numéro de ligne dédoublée pour « %s »"
-#: coffcode.h:4736
+#: coffcode.h:4805
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr "%s: classe de stockage non reconnue %d pour %s symbole « %s »"
-#: coffcode.h:4867
+#: coffcode.h:4938
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr "AVERTISSEMENT: %s: symbole local « %s » n'a pas de section"
-#: coffcode.h:5012
+#: coffcode.h:5083
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr "%s: type de relocalisation illégal %d à l'adresse 0x%lx"
-#: coffgen.c:1661
+#: coffgen.c:1666
#, c-format
msgid "%s: bad string table size %lu"
msgstr "%s: chaîne erronée de la taille de table %lu"
-#: cofflink.c:534 elflink.h:1912
+#: cofflink.c:538 elflink.h:1276
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
msgstr "AVERTISSEMENT: type de symbole « %s » a changé de %d à %d dans %s"
-#: cofflink.c:2321
+#: cofflink.c:2328
#, c-format
msgid "%s: relocs in section `%s', but it has no contents"
msgstr "%s: relocalisations dans la section « %s », mais n'a aucun contenu"
-#: cofflink.c:2664 coffswap.h:877
+#: cofflink.c:2671 coffswap.h:890
#, c-format
msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%s: %s: débordement de relocalisation: 0x%lx > 0xffff"
-#: cofflink.c:2673 coffswap.h:864
+#: cofflink.c:2680 coffswap.h:876
#, c-format
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: AVERTISSEMENT: %s: débordement du compteur de numéro de ligne: 0x%lx > 0xffff"
-#: dwarf2.c:382
+#: cpu-arm.c:196 cpu-arm.c:206
+#, c-format
+msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale"
+msgstr "ERREUR: %s compilé pour EP9312 alors que %s a été compilé pour XScale"
+
+#: cpu-arm.c:344
+#, c-format
+msgid "warning: unable to update contents of %s section in %s"
+msgstr "AVERTISSEMENT: incapable de mettre à jour le contenu de la section %s dans %s"
+
+#: dwarf2.c:380
msgid "Dwarf Error: Can't find .debug_str section."
msgstr "Erreur DWARF: ne peut repérer la section .debug_str"
-#: dwarf2.c:399
+#: dwarf2.c:397
#, c-format
msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)."
msgstr "Erreur DWARF: décalage DW_FORM_strp (%lu) est >= à la taille de .debug_str (%lu)."
-#: dwarf2.c:543
+#: dwarf2.c:541
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr "Erreur DWARF: ne peut repérer la section .debug_abbrev"
-#: dwarf2.c:560
+#: dwarf2.c:556
#, c-format
msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)."
msgstr "Erreur DWARF: décalage Abbrev (%lu) est >= à la taille .debug_abbrev (%lu)."
-#: dwarf2.c:757
+#: dwarf2.c:756
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
msgstr "Erreur DWARF: valeur de FORME invalide ou mal traitée: %u"
-#: dwarf2.c:852
+#: dwarf2.c:933
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr "Erreur DWARF: numéro mutilé de ligne de section (mauvais no. de fichier)"
-#: dwarf2.c:938
+#: dwarf2.c:1032
msgid "Dwarf Error: Can't find .debug_line section."
msgstr "Erreur DWARF: ne peut repérer la section .debug_line"
-#: dwarf2.c:961
+#: dwarf2.c:1049
#, c-format
msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)."
msgstr "Erreur DWARF: décalage de ligne (%lu) est >= à la taille de .debug_line (%lu)"
-#: dwarf2.c:1159
+#: dwarf2.c:1255
msgid "Dwarf Error: mangled line number section."
msgstr "Erreur DWARF: numéro mutilé de ligne de section"
-#: dwarf2.c:1355 dwarf2.c:1566
+#: dwarf2.c:1470 dwarf2.c:1620
#, c-format
msgid "Dwarf Error: Could not find abbrev number %u."
msgstr "Erreur DWARF: ne peut repérer le numéro abrégé %u"
-#: dwarf2.c:1527
+#: dwarf2.c:1581
#, c-format
msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information."
msgstr "Erreur DWARF: version DWARF retrouvée « %u », ce lecteur ne supporte que les informations de la version 2."
-#: dwarf2.c:1534
+#: dwarf2.c:1588
#, c-format
msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
msgstr "Erreur DWARF: taille d'adresse obtenue « %u », ce lecteur ne peut traiter des tailles plus grandes que « %u »."
-#: dwarf2.c:1557
+#: dwarf2.c:1611
#, c-format
msgid "Dwarf Error: Bad abbrev number: %u."
msgstr "Erreur DWARF: mauvais numéro abrégé: %u"
-#: ecoff.c:1318
+#: ecoff.c:1339
#, c-format
msgid "Unknown basic type %d"
msgstr "type de base inconnu %d"
-#: ecoff.c:1578
+#: ecoff.c:1599
#, c-format
msgid ""
"\n"
@@ -500,7 +523,7 @@ msgstr ""
"\n"
" Dernier+1 symbole: %ld"
-#: ecoff.c:1585 ecoff.c:1588
+#: ecoff.c:1606 ecoff.c:1609
#, c-format
msgid ""
"\n"
@@ -509,7 +532,7 @@ msgstr ""
"\n"
" Premier symbole: %ld"
-#: ecoff.c:1600
+#: ecoff.c:1621
#, c-format
msgid ""
"\n"
@@ -518,7 +541,7 @@ msgstr ""
"\n"
" Dernier+1 symbole: %-7ld Type: %s"
-#: ecoff.c:1607
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
@@ -527,7 +550,7 @@ msgstr ""
"\n"
" Symbole local: %ld"
-#: ecoff.c:1615
+#: ecoff.c:1636
#, c-format
msgid ""
"\n"
@@ -536,7 +559,7 @@ msgstr ""
"\n"
" struct; Symbole Fin+1: %ld"
-#: ecoff.c:1620
+#: ecoff.c:1641
#, c-format
msgid ""
"\n"
@@ -545,7 +568,7 @@ msgstr ""
"\n"
" union; Dernier+1 symbole: %ld"
-#: ecoff.c:1625
+#: ecoff.c:1646
#, c-format
msgid ""
"\n"
@@ -554,7 +577,7 @@ msgstr ""
"\n"
" enum; Dernier+1 symbol: %ld"
-#: ecoff.c:1631
+#: ecoff.c:1652
#, c-format
msgid ""
"\n"
@@ -563,54 +586,58 @@ msgstr ""
"\n"
" Type: %s"
-#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213
-#: elf64-sh64.c:1659
+#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704
#, c-format
msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr "%s: AVERTISSEMENT: relocalisation sans solution vers le symbole « %s » de la section %s"
-#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833
-#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809
-#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439
-#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302
+#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812
+#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815
+#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
+#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510
+#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976
+#: elf64-mmix.c:1332
msgid "internal error: out of range error"
-msgstr "erreur interne: hors gamme"
+msgstr "erreur interne: hors limite"
-#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837
-#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813
-#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443
-#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264
+#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816
+#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819
+#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
+#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440
+#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452
msgid "internal error: unsupported relocation error"
msgstr "erreur interne: erreur de relocalisation non supportée"
-#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489
-#: elf32-h8300.c:556 elf32-m32r.c:1286
+#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578
+#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
msgid "internal error: dangerous error"
msgstr "erreur interne: erreur dangereuse"
-#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845
-#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821
-#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451
-#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314
+#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824
+#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827
+#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
+#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522
+#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988
+#: elf64-mmix.c:1344
msgid "internal error: unknown error"
msgstr "erreur interne: erreur inconnue"
-#: elf.c:343
+#: elf.c:372
#, c-format
msgid "%s: invalid string offset %u >= %lu for section `%s'"
msgstr "%s: chaîne de décalage invalide %u >= %lu pour la section « %s »"
-#: elf.c:589
+#: elf.c:624
#, c-format
msgid "%s: invalid SHT_GROUP entry"
msgstr "%s: entrée SHT_GROUP invalide"
-#: elf.c:660
+#: elf.c:695
#, c-format
msgid "%s: no group info for section %s"
msgstr "%s: aucune info de groupe pour la section %s"
-#: elf.c:1023
+#: elf.c:1055
msgid ""
"\n"
"Program Header:\n"
@@ -618,7 +645,7 @@ msgstr ""
"\n"
"En-tête de programme:\n"
-#: elf.c:1073
+#: elf.c:1106
msgid ""
"\n"
"Dynamic Section:\n"
@@ -626,7 +653,7 @@ msgstr ""
"\n"
"Section dynamique:\n"
-#: elf.c:1202
+#: elf.c:1235
msgid ""
"\n"
"Version definitions:\n"
@@ -634,7 +661,7 @@ msgstr ""
"\n"
"Définitions des versions:\n"
-#: elf.c:1225
+#: elf.c:1258
msgid ""
"\n"
"Version References:\n"
@@ -642,224 +669,239 @@ msgstr ""
"\n"
"Références de version:\n"
-#: elf.c:1230
+#: elf.c:1263
#, c-format
msgid " required from %s:\n"
msgstr " requis par %s:\n"
-#: elf.c:1902
+#: elf.c:1944
#, c-format
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr "%s: lien invalide %lu pour la section de relocalisation %s (index %u)"
-#: elf.c:3603
+#: elf.c:3686
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr "%s: pas suffisamment d'espace pour les en-têtes du programme (alloué %u, besoin de %u)"
-#: elf.c:3708
+#: elf.c:3791
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr "%s: pas suffisamment d'espace pour les en-têtes du programme, essayer l'option -N"
-#: elf.c:3833
+#: elf.c:3922
#, c-format
msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x"
msgstr "Erreur: première section dans le segment (%s) débute à 0x%x alors que le segment débute à 0x%x"
-#: elf.c:4148
+#: elf.c:4242
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr "%s: AVERTISSEMENT: section allouée « %s » n'est pas dans le segment"
-#: elf.c:4472
+#: elf.c:4566
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr "%s: symbole « %s » requis mais absent"
-#: elf.c:4749
+#: elf.c:4854
#, c-format
msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr "%s: AVERTISSEMENT: segment chargeable vide détecté, est-ce intentionnel ?\n"
-#: elf.c:6193
+#: elf.c:5485
+#, c-format
+msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr "Incapable de trouver un équivalent pour le symbole « %s » de la section « %s »"
+
+#: elf.c:6298
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr "%s: type de relocalisation non supporté %s"
-#: elf32-arm.h:1221
+#: elf32-arm.h:1228
#, c-format
msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr "%s: AVERTISSEMENT: instruction Arm BLX vise la fonction Arm « %s »."
-#: elf32-arm.h:1417
+#: elf32-arm.h:1424
#, c-format
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr "%s: AVERTISSEMENT: instruction de repérage BLX vise la function de repérage « %s »."
-#: elf32-arm.h:1914 elf32-sh.c:4125
+#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr "%s(%s+0x%lx): %s relocation vers une section SEC_MERGE"
-#: elf32-arm.h:2008
+#: elf32-arm.h:2012
#, c-format
msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr "%s: AVERTISSEMENT: relocalisation sans solution %d vers le symbole « %s » de la section %s"
-#: elf32-arm.h:2176
+#: elf32-arm.h:2202
#, c-format
msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"
msgstr "AVERTISSEMENT: mise à zéro du fanion d'inter-réseautage %s en raison du code sans inter-réseautage dans %s lié avec lui"
-#: elf32-arm.h:2271
+#: elf32-arm.h:2302
#, c-format
msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d"
msgstr "ERREUR: %s compilé pour une version EABI %d alors que %s a été compilé pour la version %d"
-#: elf32-arm.h:2285
+#: elf32-arm.h:2316
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"
msgstr "ERREUR: %s compilé pour APCS-%d alors que la cible %s utilise APCS-%d"
-#: elf32-arm.h:2313
+#: elf32-arm.h:2344
#, c-format
-msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"
-msgstr "ERREUR: %s utilise les instructions VFP alors que %s utilise les instructions FPA"
+msgid "ERROR: %s uses VFP instructions, whereas %s does not"
+msgstr "ERREUR: %s utilise les instructions VFP alors que %s ne les utilise pas"
-#: elf32-arm.h:2318
+#: elf32-arm.h:2349
#, c-format
-msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"
-msgstr "ERREUR: %s utilise les instructions FPA alors que %s utilise les instructions VFP"
+msgid "ERROR: %s uses FPA instructions, whereas %s does not"
+msgstr "ERREUR: %s utilise les instructions FPA alors que %s ne les utilise pas"
-#: elf32-arm.h:2338
+#: elf32-arm.h:2360 elf32-arm.h:2365
+#, c-format
+msgid "ERROR: %s uses Maverick instructions, whereas %s does not"
+msgstr "ERREUR: %s utilise les instructions Maverick alors que %s ne les utilise pas"
+
+#: elf32-arm.h:2385
#, c-format
msgid "ERROR: %s uses software FP, whereas %s uses hardware FP"
msgstr "ERREUR: %s utilise le logiciel pour virgule flottante alors que %s utilise le matériel pour virgule flottante"
-#: elf32-arm.h:2343
+#: elf32-arm.h:2390
#, c-format
msgid "ERROR: %s uses hardware FP, whereas %s uses software FP"
msgstr "ERREUR: %s utilise le matériel pour virgule flottante alors que %s utilise le logiciel pour virgule flottante"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543
-#: elfxx-mips.c:7756
+#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397
+#: elf32-vax.c:546 elfxx-mips.c:9238
#, c-format
msgid "private flags = %lx:"
msgstr "fanions privés = %lx"
-#: elf32-arm.h:2405
+#: elf32-arm.h:2452
msgid " [interworking enabled]"
msgstr " [inter-réseautage autorisé]"
-#: elf32-arm.h:2413
+#: elf32-arm.h:2460
msgid " [VFP float format]"
msgstr " [format flottant VFP]"
-#: elf32-arm.h:2415
+#: elf32-arm.h:2462
+msgid " [Maverick float format]"
+msgstr " [format flottant Maverick]"
+
+#: elf32-arm.h:2464
msgid " [FPA float format]"
msgstr " [format flottant FPA]"
-#: elf32-arm.h:2424
+#: elf32-arm.h:2473
msgid " [new ABI]"
msgstr " [nouvel ABI]"
-#: elf32-arm.h:2427
+#: elf32-arm.h:2476
msgid " [old ABI]"
msgstr " [ancien ABI]"
-#: elf32-arm.h:2430
+#: elf32-arm.h:2479
msgid " [software FP]"
msgstr " [virgule flottante logiciel]"
-#: elf32-arm.h:2438
+#: elf32-arm.h:2488
msgid " [Version1 EABI]"
msgstr " [Version 1 EABI]"
-#: elf32-arm.h:2441 elf32-arm.h:2452
+#: elf32-arm.h:2491 elf32-arm.h:2502
msgid " [sorted symbol table]"
msgstr " [table des symboles triés]"
-#: elf32-arm.h:2443 elf32-arm.h:2454
+#: elf32-arm.h:2493 elf32-arm.h:2504
msgid " [unsorted symbol table]"
msgstr " [table des symboles non triés]"
-#: elf32-arm.h:2449
+#: elf32-arm.h:2499
msgid " [Version2 EABI]"
msgstr " [Version2 EABI]"
-#: elf32-arm.h:2457
+#: elf32-arm.h:2507
msgid " [dynamic symbols use segment index]"
msgstr " [symboles dynamiques utilisent un index de segment]"
-#: elf32-arm.h:2460
+#: elf32-arm.h:2510
msgid " [mapping symbols precede others]"
msgstr " [mapping de symboles précèdes les autres]"
-#: elf32-arm.h:2467
+#: elf32-arm.h:2517
msgid " <EABI version unrecognised>"
msgstr " <Version EABI non reconnue>"
-#: elf32-arm.h:2474
+#: elf32-arm.h:2524
msgid " [relocatable executable]"
msgstr " [exécutables relocalisés]"
-#: elf32-arm.h:2477
+#: elf32-arm.h:2527
msgid " [has entry point]"
msgstr " [a des points d'entrées]"
-#: elf32-arm.h:2482
+#: elf32-arm.h:2532
msgid "<Unrecognised flag bits set>"
msgstr "<Bits de fanions non reconnus>"
-#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817
-#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699
-#: elf32-xstormy16.c:941 elf64-mmix.c:1310
+#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823
+#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518
+#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984
+#: elf64-mmix.c:1340
msgid "internal error: dangerous relocation"
msgstr "erreur interne: relocalisation dangereuse"
-#: elf32-cris.c:949
+#: elf32-cris.c:931
#, c-format
msgid "%s: unresolvable relocation %s against symbol `%s' from %s section"
msgstr "%s: relocalisation %s sans solution vers le symbole « %s » à partir de la section %s"
-#: elf32-cris.c:1012
+#: elf32-cris.c:993
#, c-format
msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section"
msgstr "%s: pas de relocalisation %s PLT ni GOT vers le symbole « %s » à partir de la section %s"
-#: elf32-cris.c:1015 elf32-cris.c:1141
+#: elf32-cris.c:996 elf32-cris.c:1122
msgid "[whose name is lost]"
msgstr "[où le nom est perdu]"
-#: elf32-cris.c:1130
+#: elf32-cris.c:1111
#, c-format
msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section"
msgstr "%s: relocalisation %s sans zéro ajoute %d vers le symbole local à partir de la section %s"
-#: elf32-cris.c:1137
+#: elf32-cris.c:1118
#, c-format
msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section"
msgstr "%s: relocalisation %s sans zéro ajoute %d vers le symbole « %s » à partir de la section %s"
-#: elf32-cris.c:1155
+#: elf32-cris.c:1143
#, c-format
msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr "%s: relocalisation %s n'est pas permise pour le symbole global: « %s » de la section %s."
-#: elf32-cris.c:1170
+#: elf32-cris.c:1158
#, c-format
msgid "%s: relocation %s in section %s with no GOT created"
msgstr "%s: relocalisation %s dans la section %s mais aucun GOT créé"
-#: elf32-cris.c:1288
+#: elf32-cris.c:1277
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr "%s: inconsistence interne; pas de section de relocalisation %s"
-#: elf32-cris.c:2514
+#: elf32-cris.c:2500
#, c-format
msgid ""
"%s, section %s:\n"
@@ -868,494 +910,647 @@ msgstr ""
"%s, section %s:\n"
" relocalisation %s devrait être utilisée dans un objet partagé; recompiler avec -fPIC"
-#: elf32-cris.c:2991
+#: elf32-cris.c:2978
msgid " [symbols have a _ prefix]"
msgstr " [symboles sont préfixés par « _ »]"
-#: elf32-cris.c:3030
+#: elf32-cris.c:3017
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%s: utilise _-prefixed symbols, mais avec écriture au fichier avec des symboles sans préfixes"
-#: elf32-cris.c:3031
+#: elf32-cris.c:3018
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%s: utilise des symboles sans préfixes, mais avec écriture au fichier avec des symboles ayant des préfixes_-prefixed"
-#: elf32-frv.c:1217
+#: elf32-frv.c:1223
#, c-format
msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%s: compilé avec %s et lié avec les modules qui utilisent de la relocalisation non PIC"
-#: elf32-frv.c:1267
+#: elf32-frv.c:1273 elf32-iq2000.c:895
#, c-format
msgid "%s: compiled with %s and linked with modules compiled with %s"
msgstr "%s: compilé avec %s et lié avec les modules compilés avec %s"
-#: elf32-frv.c:1279
+#: elf32-frv.c:1285
#, c-format
msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr "%s: utilise différents champs e_flags (0x%lx) que les modules précédents (0x%lx)"
-#: elf32-frv.c:1315
+#: elf32-frv.c:1321 elf32-iq2000.c:933
#, c-format
msgid "private flags = 0x%lx:"
msgstr "fanions privés = 0x%lx:"
-#: elf32-gen.c:82 elf64-gen.c:82
+#: elf32-gen.c:83 elf64-gen.c:82
#, c-format
msgid "%s: Relocations in generic ELF (EM: %d)"
msgstr "%s: relocalisation en format ELF générique (EM: %d)"
-#: elf32-hppa.c:671 elf64-ppc.c:2323
+#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr "%s: ne peut créer l'entrée du talon %s"
-#: elf32-hppa.c:956 elf32-hppa.c:3555
+#: elf32-hppa.c:957 elf32-hppa.c:3538
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr "%s(%s+0x%lx): ne peut atteindre %s, recompiler avec -ffunction-sections"
-#: elf32-hppa.c:1338 elf64-x86-64.c:673
+#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797
#, c-format
msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr "%s: relocalisation de %s ne peut être utilisée lors de la création d'un objet partagé; recompiler avec -fPIC"
-#: elf32-hppa.c:1358
+#: elf32-hppa.c:1360
#, c-format
msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC"
msgstr "%s: relocalisation %s ne doit pas être utilisée lors de la création d'un objet partagé; recompiler avec -fPIC"
-#: elf32-hppa.c:1551
+#: elf32-hppa.c:1553
#, c-format
msgid "Could not find relocation section for %s"
msgstr "Ne peut repérer la section de relocalisation pour %s"
-#: elf32-hppa.c:2855
+#: elf32-hppa.c:2828
#, c-format
msgid "%s: duplicate export stub %s"
msgstr "%s: talon d'exportation en double %s"
-#: elf32-hppa.c:3433
+#: elf32-hppa.c:3416
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr "%s(%s+0x%lx): corrigeant %s"
-#: elf32-hppa.c:4080
+#: elf32-hppa.c:4039
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr "%s(%s+0x%lx): ne traiter %s pour %s"
-#: elf32-hppa.c:4393
+#: elf32-hppa.c:4357
msgid ".got section not immediately after .plt section"
msgstr "section .got pas immédiatement après la section .plt"
-#: elf32-i386.c:379
+#: elf32-i386.c:326
#, c-format
msgid "%s: invalid relocation type %d"
msgstr "%s: type de relocalisation invalide %d"
-#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591
+#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637
+#: elf64-s390.c:943 elf64-x86-64.c:650
#, c-format
msgid "%s: bad symbol index: %d"
msgstr "%s: symbole index erroné: %d"
-#: elf32-i386.c:948
+#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011
+#: elf64-s390.c:1129
#, c-format
msgid "%s: `%s' accessed both as normal and thread local symbol"
msgstr "%s: « %s » symbole local accéder à la fois comme normal et avec thread"
-#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759
-#: elf64-x86-64.c:761
+#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243
+#: elf64-x86-64.c:886
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr "%s: nom de section de relocalisation erroné « %s »"
-#: elf32-i386.c:1159 elf64-alpha.c:4768
-#, c-format
-msgid "%s: TLS local exec code cannot be linked into shared objects"
-msgstr "%s: code exécutable local TLS ne peut être lié en objets partagés"
-
-#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918
-#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948
+#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879
+#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664
+#: elf64-x86-64.c:2452
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr "%s(%s+0x%lx): relocalisation sans solution vers le symbole « %s »"
-#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983
-#: elf64-x86-64.c:1986
+#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068
+#: elf64-x86-64.c:2490
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr "%s(%s+0x%lx): relocalisation vers « %s »: erreur %d"
-#: elf32-m32r.c:924
+#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740
+msgid "ip2k relaxer: switch table without complete matching relocation information."
+msgstr "relâche ip2k: table de commutation sans concordance complète des informations de relocalisation"
+
+#: elf32-ip2k.c:588 elf32-ip2k.c:767
+msgid "ip2k relaxer: switch table header corrupt."
+msgstr "relâche ip2k: en-tête de table de commutation corrompue"
+
+#: elf32-ip2k.c:1395
+#, c-format
+msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "liaison ip2k: instruction de page manquante à 0x%08lx (cible = 0x%08lx)."
+
+#: elf32-ip2k.c:1409
+#, c-format
+msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "liaison ip2k: instruction de page redondante à 0x%08lx (cible = 0x%08lx)."
+
+#. Only if it's not an unresolved symbol.
+#: elf32-ip2k.c:1593
+msgid "unsupported relocation between data/insn address spaces"
+msgstr "relocalisation non supporté entre les espaces d'adresses data/insn"
+
+#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072
+#: elfxx-mips.c:9195
+#, c-format
+msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%s: utilise differents champs e_flags (0x%lx) que les modules précédents (0x%lx)"
+
+#: elf32-m32r.c:930
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "relocalisation SDA alors que _SDA_BASE_ n'est pas définie"
-#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185
-#: elf64-alpha.c:4313 elf64-ia64.c:3687
+#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958
+#: elf64-ia64.c:3958
#, c-format
msgid "%s: unknown relocation type %d"
msgstr "%s: type de relocalisation inconnu %d"
-#: elf32-m32r.c:1221
+#: elf32-m32r.c:1226
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr "%s: la cible (%s) de la relocalisation %s est dans la mauvaise section (%s)"
-#: elf32-m32r.c:1947
+#: elf32-m32r.c:1952
#, c-format
msgid "%s: Instruction set mismatch with previous modules"
msgstr "%s: jeu d'instructions ne concorde par avec les modules précédents"
-#: elf32-m32r.c:1970
+#: elf32-m32r.c:1975
#, c-format
msgid "private flags = %lx"
msgstr "fanions privés = %lx"
-#: elf32-m32r.c:1975
+#: elf32-m32r.c:1980
msgid ": m32r instructions"
msgstr ": instructions m32r"
-#: elf32-m32r.c:1976
+#: elf32-m32r.c:1981
msgid ": m32rx instructions"
msgstr ": instruction m32rx"
-#: elf32-m68k.c:413
+#: elf32-m68hc1x.c:1217
+#, c-format
+msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr "Référence à un symbole far « %s » utilisant la mauvaise relocalisation peut provoquer une exécution incorrecte"
+
+#: elf32-m68hc1x.c:1240
+#, c-format
+msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
+msgstr "banque d'adresses [%lx:%04lx] (%lx) n'es pas dans la même banque que la banque courante d'adresses [%lx:%04lx] (%lx)"
+
+#: elf32-m68hc1x.c:1259
+#, c-format
+msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
+msgstr "référence à une banque d'adresses [%lx:%04lx] dans l'espace normal d'adresses à %04lx"
+
+#: elf32-m68hc1x.c:1396
+#, c-format
+msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr "%s: fichiers liés compilés pour des entiers de 16 bits (-mshort) et d'autres pour des entiers de 32 bits"
+
+#: elf32-m68hc1x.c:1404
+#, c-format
+msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr "%s: fichiers liés compilés pour des doubles de 32 bits (-fshort-double) et d'autres pour des doubles de 64 bits"
+
+#: elf32-m68hc1x.c:1414
+#, c-format
+msgid "%s: linking files compiled for HCS12 with others compiled for HC12"
+msgstr "%s: certains fichiers liés compilés pour HCS12 avec d'autres compilés pour HC12"
+
+#: elf32-m68hc1x.c:1462
+msgid "[abi=32-bit int, "
+msgstr "[abi=32-bit int, "
+
+#: elf32-m68hc1x.c:1464
+msgid "[abi=16-bit int, "
+msgstr "[abi=16-bit int, "
+
+#: elf32-m68hc1x.c:1467
+msgid "64-bit double, "
+msgstr "double de 64 bits, "
+
+#: elf32-m68hc1x.c:1469
+msgid "32-bit double, "
+msgstr "double de 32 bits, "
+
+#: elf32-m68hc1x.c:1472
+msgid "cpu=HC11]"
+msgstr "cpu=HC11]"
+
+#: elf32-m68hc1x.c:1474
+msgid "cpu=HCS12]"
+msgstr "cpu=HCS12]"
+
+#: elf32-m68hc1x.c:1476
+msgid "cpu=HC12]"
+msgstr "cpu=HC12]"
+
+#: elf32-m68hc1x.c:1479
+msgid " [memory=bank-model]"
+msgstr " [memory=bank-model]"
+
+#: elf32-m68hc1x.c:1481
+msgid " [memory=flat]"
+msgstr " [memory=flat]"
+
+#: elf32-m68k.c:400
msgid " [cpu32]"
msgstr " [cpu32]"
-#: elf32-m68k.c:416
+#: elf32-m68k.c:403
msgid " [m68000]"
msgstr " [m68000]"
-#: elf32-mcore.c:354 elf32-mcore.c:457
+#: elf32-mcore.c:353 elf32-mcore.c:456
#, c-format
msgid "%s: Relocation %s (%d) is not currently supported.\n"
msgstr "%s: relocalisation %s (%d) n'est pas couramment supportée.\n"
-#: elf32-mcore.c:442
+#: elf32-mcore.c:441
#, c-format
msgid "%s: Unknown relocation type %d\n"
msgstr "%s: type de relocalisation inconnue %d\n"
-#: elf32-mips.c:1152 elf64-mips.c:1783
+#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr "relocalisation relative gp 32bits est survenue pour un symbole externe"
-#: elf32-mips.c:1301
+#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr "Édition de liens d'objets mips16 dans le format %s n'est pas supporté"
-#: elf32-ppc.c:1460
+#: elf32-ppc.c:2056
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr "liaison générique ne peut traiter %s"
+
+#: elf32-ppc.c:2138
#, c-format
msgid "%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr "%s: compilé avec -mrelocatable et fait l'édition de lien avec les modules compilés normalement"
-#: elf32-ppc.c:1468
+#: elf32-ppc.c:2147
#, c-format
msgid "%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr "%s: compilé normalement et fait l'édition de lien avec les modules compilés avec -mrelocatable"
-#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713
-#, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: utilise differents champs e_flags (0x%lx) que les modules précédents (0x%lx)"
-
-#: elf32-ppc.c:1592
-#, c-format
-msgid "%s: Unknown special linker type %d"
-msgstr "%s: type d'édition spécial de lien inconnu %d"
-
-#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342
+#: elf32-ppc.c:3413
#, c-format
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr "%s: relocalisation %s ne peut être utilisée lors de la création d'un objet partagé"
-#: elf32-ppc.c:3126 elf64-ppc.c:5473
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3619
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against local symbol"
+msgstr "%s(%s+0x%lx): %s relocalisation vers un symbole local"
+
+#: elf32-ppc.c:4862 elf64-ppc.c:7789
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr "%s: type de relocalisation inconnue %d pour le symbole %s"
-#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553
+#: elf32-ppc.c:5113
#, c-format
-msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)"
+msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'"
+msgstr "%s(%s+0x%lx): ajot non nulle sur la relocalisation %s vers « %s »"
+
+#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484
+#, c-format
+msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr "%s: la cible (%s) d'une relocalisation %s est dans la mauvaise section de sortie (%s)"
-#: elf32-ppc.c:3619
+#: elf32-ppc.c:5539
#, c-format
-msgid "%s: Relocation %s is not yet supported for symbol %s."
+msgid "%s: relocation %s is not yet supported for symbol %s."
msgstr "%s: relocalisation %s n'est pas encore supporté pour le symbole %s."
-#: elf32-sh.c:1964
+#: elf32-ppc.c:5594 elf64-ppc.c:8461
+#, c-format
+msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr "%s(%s+0x%lx): relocalisation %s sans solution vers le symbole « %s »"
+
+#: elf32-ppc.c:5644 elf64-ppc.c:8507
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against `%s': error %d"
+msgstr "%s(%s+0x%lx): %s relocalisation vers « %s »: erreur %d"
+
+#: elf32-ppc.c:5888
+#, c-format
+msgid "corrupt or empty %s section in %s"
+msgstr "section %s vide ou corrompue dans %s"
+
+#: elf32-ppc.c:5895
+#, c-format
+msgid "unable to read in %s section from %s"
+msgstr "incapable de lire dans la section %s à partir de %s"
+
+#: elf32-ppc.c:5901
+#, c-format
+msgid "corrupt %s section in %s"
+msgstr "section %s corrompue dans %s"
+
+#: elf32-ppc.c:5944
+#, c-format
+msgid "warning: unable to set size of %s section in %s"
+msgstr "AVERTISSEMENT: incapable d'initialiser la taille de la section %s dans %s"
+
+#: elf32-ppc.c:5994
+msgid "failed to allocate space for new APUinfo section."
+msgstr "échec d'allocation d'espace pour une nouvelle section APUinfo"
+
+#: elf32-ppc.c:6013
+msgid "failed to compute new APUinfo section."
+msgstr "échec d'évaluation de la nouvelle section APUinfo"
+
+#: elf32-ppc.c:6016
+msgid "failed to install new APUinfo section."
+msgstr "échec d'installation de la nouvelle section APUinfo"
+
+#: elf32-s390.c:2256 elf64-s390.c:2226
+#, c-format
+msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s"
+msgstr "%s(%s+0x%lx): instruction invalide pour la relocalisation TLS %s"
+
+#: elf32-sh.c:2103
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr "%s: 0x%lx: AVERTISSEMENT: mauvais décalage pour R_SH_USES"
-#: elf32-sh.c:1976
+#: elf32-sh.c:2115
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%s: 0x%lx: AVERTISSEMENT: R_SH_USES pointe vers un insn inconnu 0x%x "
-#: elf32-sh.c:1993
+#: elf32-sh.c:2132
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr "%s: 0x%lx: AVERTISSEMENT: mauvais décalage de chargement R_SH_USES"
-#: elf32-sh.c:2008
+#: elf32-sh.c:2147
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr "%s: 0x%lx: AVERTISSEMENT: ne peut repérer la relocalisation attendue"
-#: elf32-sh.c:2036
+#: elf32-sh.c:2175
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr "%s: 0x%lx: AVERTISSEMENT: symbole dans une section inattendue"
-#: elf32-sh.c:2153
+#: elf32-sh.c:2300
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr "%s: 0x%lx: AVERTISSEMENT: ne peut repérer le compteur de relocalisation attendu"
-#: elf32-sh.c:2162
+#: elf32-sh.c:2309
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr "%s: 0x%lx: AVERTISSEMENT: mauvais décompte"
-#: elf32-sh.c:2550 elf32-sh.c:2926
+#: elf32-sh.c:2712 elf32-sh.c:3088
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr "%s: 0x%lx: erreur fatale: débordement de relocalisation lors de relâches"
-#: elf32-sh.c:4073 elf64-sh64.c:1576
+#: elf32-sh.c:4654 elf64-sh64.c:1585
msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
msgstr "STO_SH5_ISA32 inattendu sur le symbole local n'est pas traité"
-#: elf32-sh.c:4284
+#: elf32-sh.c:4809
+#, c-format
+msgid "%s: unresolvable relocation against symbol `%s' from %s section"
+msgstr "%s: relocalisation sans solution vers le symbole « %s » à partir de la section %s"
+
+#: elf32-sh.c:4881
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr "%s: 0x%lx: fatal: cible de branchement non aligné pour une relocalisatin de type relax-support"
-#: elf32-sh64.c:203 elf64-sh64.c:2364
+#: elf32-sh.c:6627 elf64-alpha.c:4848
+#, c-format
+msgid "%s: TLS local exec code cannot be linked into shared objects"
+msgstr "%s: code exécutable local TLS ne peut être lié en objets partagés"
+
+#: elf32-sh64.c:221 elf64-sh64.c:2407
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: compilé comme un objet de 32 bits et %s est de 64 bits"
-#: elf32-sh64.c:206 elf64-sh64.c:2367
+#: elf32-sh64.c:224 elf64-sh64.c:2410
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: compilé comme un objet de 64 bits et %s est de 32 bits"
-#: elf32-sh64.c:208 elf64-sh64.c:2369
+#: elf32-sh64.c:226 elf64-sh64.c:2412
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: taille de l'objet ne concorde pas avec la taille de la cible %s"
-#: elf32-sh64.c:440 elf64-sh64.c:2941
+#: elf32-sh64.c:461 elf64-sh64.c:2990
#, c-format
msgid "%s: encountered datalabel symbol in input"
msgstr "%s: rencontre du symbole d'une étiquette de donnée dans l'entrée"
-#: elf32-sh64.c:523
+#: elf32-sh64.c:544
msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
msgstr "Non concordance PTB: adresse SHmedia (bit 0 == 1)"
-#: elf32-sh64.c:526
+#: elf32-sh64.c:547
msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
msgstr "Non concordance PTA: adresse SHcompact (bit 0 == 0)"
-#: elf32-sh64.c:544
+#: elf32-sh64.c:565
#, c-format
msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
msgstr "%s: ERREUR GAS: insn PTB inattendue avec R_SH_PT_16"
-#: elf32-sh64.c:593 elf64-sh64.c:1703
+#: elf32-sh64.c:614 elf64-sh64.c:1748
#, c-format
msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
msgstr "%s: ERREUR: relocalisation non alignée type %d à %08x relocalisé`%08x\n"
-#: elf32-sh64.c:677
+#: elf32-sh64.c:698
#, c-format
msgid "%s: could not write out added .cranges entries"
msgstr "%s: ne peut écrire en sortie des entrées .cranges"
-#: elf32-sh64.c:739
+#: elf32-sh64.c:760
#, c-format
msgid "%s: could not write out sorted .cranges entries"
msgstr "%s: ne peut écrire en sortie des entrées .cranges"
-#: elf32-sparc.c:1535 elf64-sparc.c:2224
+#: elf32-sparc.c:2521 elf64-sparc.c:2314
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr "%s: probablement compilé sans -fPIC?"
-#: elf32-sparc.c:2002
+#: elf32-sparc.c:3348
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr "%s: compilé pour un système à 64 bits et la cible est de 32 bits"
-#: elf32-sparc.c:2016
+#: elf32-sparc.c:3362
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr ""
"%s: édition de liens pour des fichiers en système à octets de poids faibles\n"
"avec des fichiers pour des systèmes à octets de poids fort"
-#: elf32-v850.c:682
+#: elf32-v850.c:753
#, c-format
msgid "Variable `%s' cannot occupy in multiple small data regions"
msgstr "Variable « %s » ne peut occuper de multiples petites régions de données"
-#: elf32-v850.c:685
+#: elf32-v850.c:756
#, c-format
msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
msgstr "Variable « %s » peut seulement être dans une région de données petite, zéro ou minuscule"
-#: elf32-v850.c:688
+#: elf32-v850.c:759
#, c-format
msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
msgstr "Variable « %s » ne peut être dans une région de données petite et zéro à la fois"
-#: elf32-v850.c:691
+#: elf32-v850.c:762
#, c-format
msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
msgstr "Variable « %s » ne peut être dans une région de données petite et minuscule zéro à la fois"
-#: elf32-v850.c:694
+#: elf32-v850.c:765
#, c-format
msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
msgstr "Variable « %s » ne peut être dans une région de données zéro et minuscule zéro à la fois"
-#: elf32-v850.c:1072
+#: elf32-v850.c:1144
msgid "FAILED to find previous HI16 reloc\n"
msgstr "ÉCHEC de repérage de la relocalisation précédente HI16\n"
-#: elf32-v850.c:1703
+#: elf32-v850.c:1789
msgid "could not locate special linker symbol __gp"
msgstr "ne peut repérer le symbole spécial d'édition de lien __gp"
-#: elf32-v850.c:1707
+#: elf32-v850.c:1793
msgid "could not locate special linker symbol __ep"
msgstr "ne peut repérer le symbole spécial d'édition de lien __ep"
-#: elf32-v850.c:1711
+#: elf32-v850.c:1797
msgid "could not locate special linker symbol __ctbp"
msgstr "ne peut repérer le symbole spécial d'édition de lien __ctbp"
-#: elf32-v850.c:1875
+#: elf32-v850.c:1963
#, c-format
msgid "%s: Architecture mismatch with previous modules"
msgstr "%s: l'architecture ne concorde pas avec les modules précédents"
-#: elf32-v850.c:1895
+#: elf32-v850.c:1983
#, c-format
msgid "private flags = %lx: "
msgstr "fanions privés = %lx"
-#: elf32-v850.c:1900
+#: elf32-v850.c:1988
msgid "v850 architecture"
msgstr "architecture v850"
-#: elf32-v850.c:1901
+#: elf32-v850.c:1989
msgid "v850e architecture"
msgstr "architecture v850e"
-#: elf32-v850.c:1902
-msgid "v850ea architecture"
-msgstr "architecture v850ea"
-
-#: elf32-vax.c:546
+#: elf32-vax.c:549
msgid " [nonpic]"
msgstr " [nonpic]"
-#: elf32-vax.c:549
+#: elf32-vax.c:552
msgid " [d-float]"
msgstr " [d-float]"
-#: elf32-vax.c:552
+#: elf32-vax.c:555
msgid " [g-float]"
msgstr " [g-float]"
-#: elf32-vax.c:674
+#: elf32-vax.c:663
#, c-format
msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
msgstr "%s: AVERTISSEMENT: GOT ajouté de %ld vers « %s » ne concorde par avec le GOT ajouté de %ld"
-#: elf32-vax.c:1679
+#: elf32-vax.c:1667
#, c-format
msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
msgstr "%s: AVERTISSEMENT: PLT ajouté de %d vers « %s » de la section %s ignoré"
-#: elf32-vax.c:1814
+#: elf32-vax.c:1802
#, c-format
msgid "%s: warning: %s relocation against symbol `%s' from %s section"
msgstr "%s: AVERTISSEMENT: relocalisation %s vers le symbole « %s » de la section %s"
-#: elf32-vax.c:1820
+#: elf32-vax.c:1808
#, c-format
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr "%s: AVERTISSEMENT: relocalisation %s vers 0x%x de la section %s"
-#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280
+#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450
msgid "non-zero addend in @fptr reloc"
msgstr "ajout non null dans la relocalisation @fptr"
-#: elf64-alpha.c:1097
+#: elf64-alpha.c:1108
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "la relocalisation GPDISP n'a pas repéré les instructions ldah et lda"
-#: elf64-alpha.c:3675
+#: elf64-alpha.c:3731
#, c-format
msgid "%s: .got subsegment exceeds 64K (size %d)"
msgstr "%s: le sous-segment .got excède 64K (taille %d)"
-#: elf64-alpha.c:4498 elf64-alpha.c:4510
+#: elf64-alpha.c:4602 elf64-alpha.c:4614
#, c-format
msgid "%s: gp-relative relocation against dynamic symbol %s"
msgstr "%s: relocalisation relative gp vers le symbole dynamique %s"
-#: elf64-alpha.c:4536 elf64-alpha.c:4676
+#: elf64-alpha.c:4640 elf64-alpha.c:4773
#, c-format
msgid "%s: pc-relative relocation against dynamic symbol %s"
msgstr "%s: relocalisation relative au PC vers le symbole dynamique %s"
-#: elf64-alpha.c:4564
+#: elf64-alpha.c:4668
#, c-format
msgid "%s: change in gp: BRSGP %s"
msgstr "%s: changé dans le GP: BRSGP %s"
-#: elf64-alpha.c:4589
+#: elf64-alpha.c:4693
msgid "<unknown>"
msgstr "<inconnu>"
-#: elf64-alpha.c:4594
+#: elf64-alpha.c:4698
#, c-format
msgid "%s: !samegp reloc against symbol without .prologue: %s"
msgstr "%s: relocalisation !samegp vers le symbole sans .prologue: %s"
-#: elf64-alpha.c:4639
+#: elf64-alpha.c:4749
#, c-format
msgid "%s: unhandled dynamic relocation against %s"
msgstr "%s: relocalisation dynamique non traitée vers %s"
-#: elf64-alpha.c:4752
+#: elf64-alpha.c:4832
#, c-format
msgid "%s: dtp-relative relocation against dynamic symbol %s"
msgstr "%s: relocalisation relative dtp vers le symbole dynamique %s"
-#: elf64-alpha.c:4775
+#: elf64-alpha.c:4855
#, c-format
msgid "%s: tp-relative relocation against dynamic symbol %s"
msgstr "%s: relocalisation relative tp vers le symbole dynamique %s"
-#: elf64-hppa.c:2080
+#: elf64-hppa.c:2086
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %ld"
msgstr "entrée du talon pour %s ne peut charger .plt, décalage dp = %ld"
-#: elf64-mmix.c:1002
+#: elf64-mmix.c:1032
#, c-format
msgid ""
"%s: Internal inconsistency error for value for\n"
@@ -1364,46 +1559,46 @@ msgstr ""
"%s: erreur d'inconsistence interne pour la valeur du registre global\n"
" alloué à l'édition de lien: lié: 0x%lx%08lx != relâché: 0x%lx%08lx\n"
-#: elf64-mmix.c:1386
+#: elf64-mmix.c:1416
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
msgstr "%s: relocalisation base plus décalage vers le symbole registre: (inconnu) dans %s"
-#: elf64-mmix.c:1391
+#: elf64-mmix.c:1421
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
msgstr "%s: relocalisation base plus décalage vers le symbole registre: %s dans %s"
-#: elf64-mmix.c:1435
+#: elf64-mmix.c:1465
#, c-format
msgid "%s: register relocation against non-register symbol: (unknown) in %s"
msgstr "%s: relocalisation de registre vers le symbole non-registre: (inconnu) dans %s"
-#: elf64-mmix.c:1440
+#: elf64-mmix.c:1470
#, c-format
msgid "%s: register relocation against non-register symbol: %s in %s"
msgstr "%s: relocalisation de registre vers le symbole non-registre: %s dans %s"
-#: elf64-mmix.c:1477
+#: elf64-mmix.c:1507
#, c-format
msgid "%s: directive LOCAL valid only with a register or absolute value"
msgstr "%s: directive LOCAL valide seulement avec un registre ou une valeur absolue"
-#: elf64-mmix.c:1505
+#: elf64-mmix.c:1535
#, c-format
msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld."
msgstr "%s: directive LOCAL: registre $%ld n'est pas un registre local. Premier registre global est $%ld."
-#: elf64-mmix.c:1965
+#: elf64-mmix.c:1994
#, c-format
msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
msgstr "%s: erreur: multiple définitions de « %s »; début de %s est initialisé dans un précédent fichier lié\n"
-#: elf64-mmix.c:2024
+#: elf64-mmix.c:2053
msgid "Register section has contents\n"
msgstr "Registre de section contient\n"
-#: elf64-mmix.c:2186
+#: elf64-mmix.c:2216
#, c-format
msgid ""
"Internal inconsistency: remaining %u != max %u.\n"
@@ -1412,578 +1607,621 @@ msgstr ""
"Inconsistence interne: reste %u != max %u.\n"
" SVP rapporter cette anomalie."
-#: elf64-ppc.c:1669 libbfd.c:1435
+#: elf64-ppc.c:2388 libbfd.c:831
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr ""
"%s: compilé pour un système à octets de poids fort alors que la cible\n"
"est un système à octets de poids faible"
-#: elf64-ppc.c:1671 libbfd.c:1437
+#: elf64-ppc.c:2391 libbfd.c:833
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr ""
"%s: compilé pour un système à octets de poids faible alors que la cible\n"
"est un système à octets de poids fort"
-#: elf64-ppc.c:3610
+#: elf64-ppc.c:4857
#, c-format
msgid "%s: unexpected reloc type %u in .opd section"
msgstr "%s: type inattendu de relocalisation %u dans la section .opd"
-#: elf64-ppc.c:3630
+#: elf64-ppc.c:4877
#, c-format
msgid "%s: .opd is not a regular array of opd entries"
msgstr "%s: .opd n'est pas un tableau régulier d'entrées opd"
-#: elf64-ppc.c:3672
+#: elf64-ppc.c:4897
#, c-format
msgid "%s: undefined sym `%s' in .opd section"
msgstr "%s: symbole « %s » indéfini dans la section .opd"
-#: elf64-ppc.c:4397
+#: elf64-ppc.c:6136
#, c-format
msgid "can't find branch stub `%s'"
msgstr "ne peut repérer le talon de branchement « %s »"
-#: elf64-ppc.c:4436 elf64-ppc.c:4501
+#: elf64-ppc.c:6175 elf64-ppc.c:6250
#, c-format
msgid "linkage table error against `%s'"
msgstr "erreur de liaison de la table de liaison vers « %s »"
-#: elf64-ppc.c:4573
+#: elf64-ppc.c:6340
#, c-format
msgid "can't build branch stub `%s'"
msgstr "ne peut construire un talon de branchement « %s »"
-#: elf64-ppc.c:5179
+#: elf64-ppc.c:7047
+msgid ".glink and .plt too far apart"
+msgstr ".glink et .plt trop éloignée"
+
+#: elf64-ppc.c:7135
msgid "stubs don't match calculated size"
msgstr "taille des talons ne concorde pas avec la taille calculée"
-#: elf64-ppc.c:5828
+#: elf64-ppc.c:7147
+#, c-format
+msgid ""
+"linker stubs in %u groups\n"
+" branch %lu\n"
+" toc adjust %lu\n"
+" long branch %lu\n"
+" long toc adj %lu\n"
+" plt call %lu"
+msgstr ""
+"talons d'édition de liens dans les groupes %u\n"
+" branchements %lu\n"
+" ajustements toc %lu\n"
+" long branchements %lu\n"
+" long ajustements toc %lu\n"
+" appels plt %lu"
+
+#: elf64-ppc.c:7723
+#, c-format
+msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc"
+msgstr "%s(%s+0x%lx): TOC multiples et automatiques non supportés utilisant votre fichier crt; recompiler avec -mminimal-toc ou mettre à jour gcc"
+
+#: elf64-ppc.c:7731
+#, c-format
+msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern"
+msgstr "%s(%s+0x%lx): optimisation soeurs des appels vers `%s' ne permet par de TOC multiples et automatiques; recompiler avec -mminimal-toc ou -fno-optimize-sibling-calls, ou rendre externe `%s'"
+
+#: elf64-ppc.c:8329
#, c-format
-msgid "%s: Relocation %s is not supported for symbol %s."
+msgid "%s: relocation %s is not supported for symbol %s."
msgstr "%s: relocalisation %s n'est pas supportée pour le symbole %s."
-#: elf64-ppc.c:5872
+#: elf64-ppc.c:8408
#, c-format
-msgid "%s: error: relocation %s not a multiple of 4"
-msgstr "%s: erreur: relocalisation %s n'est pas un multiple de 4"
+msgid "%s: error: relocation %s not a multiple of %d"
+msgstr "%s: erreur: relocalisation %s n'est pas un multiple de %d"
-#: elf64-sparc.c:1280
+#: elf64-sparc.c:1370
#, c-format
msgid "%s: check_relocs: unhandled reloc type %d"
msgstr "%s: check_relocs: type de relocalisation non traitée %d"
-#: elf64-sparc.c:1317
+#: elf64-sparc.c:1407
#, c-format
msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr "%s: seuls les registres %%g[2367] peuvent être déclarés en utilisant les registres STT_REGISTER"
-#: elf64-sparc.c:1337
+#: elf64-sparc.c:1427
#, c-format
msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s"
msgstr "Registre %%g%d utilisé de manière incompatible: %s dans %s précédemment %s dans %s"
-#: elf64-sparc.c:1360
+#: elf64-sparc.c:1450
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"
msgstr "Symbole « %s » a des types qui diffèrent: REGISTRE dans %s, précédemment %s dans %s"
-#: elf64-sparc.c:1406
+#: elf64-sparc.c:1496
#, c-format
msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"
msgstr "Symbole « %s » a des types qui diffèrent: %s dans %s, précédemment REGISTRE dans %s"
-#: elf64-sparc.c:2970
+#: elf64-sparc.c:3053
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr "%s: édition de liens spécifiques pour UltraSPARC avec du code spécifique HAL"
-#: elfcode.h:1198
+#: elf64-x86-64.c:739
+#, c-format
+msgid "%s: %s' accessed both as normal and thread local symbol"
+msgstr "%s: %s symbole accédé à la fois comme normal et comme thread"
+
+#: elfcode.h:1113
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr "%s: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)"
-#: elflink.c:440
+#: elfcode.h:1342
+#, c-format
+msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgstr "%s(%s): relocalisation %d a un index de symbole invalide %ld"
+
+#: elflink.c:1456
+#, c-format
+msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr "%s: AVERTISSEMENT: redéfinition inattendue du symbole indirect avec version « %s »"
+
+#: elflink.c:1807
#, c-format
-msgid "%s: Section %s is too large to add hole of %ld bytes"
-msgstr "%s: section %s est trop grande pour ajouter un trou de %ld octets"
+msgid "%s: undefined versioned symbol name %s"
+msgstr "%s: nom symbole avec version indéfinie %s"
-#: elflink.h:1090
+#: elflink.c:2142
#, c-format
-msgid "%s: warning: unexpected redefinition of `%s'"
-msgstr "%s: AVERTISSEMENT: redéfinition inattendue de « %s »"
+msgid "%s: relocation size mismatch in %s section %s"
+msgstr "%s: taille de la relocalisation ne concorde pas dans %s section %s"
-#: elflink.h:1727
+#: elflink.c:2434
+#, c-format
+msgid "warning: type and size of dynamic symbol `%s' are not defined"
+msgstr "AVERTISSEMENT: type et taille du symbole dynamique « %s » ne sont pas définis"
+
+#: elflink.h:1022
#, c-format
msgid "%s: %s: invalid version %u (max %d)"
msgstr "%s: %s: version invalide %u (max %d)"
-#: elflink.h:1768
+#: elflink.h:1063
#, c-format
msgid "%s: %s: invalid needed version %d"
msgstr "%s: %s: version requise invalide %d"
-#: elflink.h:1890
+#: elflink.h:1238
#, c-format
-msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
-msgstr "AVERTISSEMENT: taille du symbole « %s » a changé de %lu à %lu dans %s"
+msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s"
+msgstr "AVERTISSEMENT: alignement %u du symbole « %s » ans %s est plus petit que %u dans %s"
-#: elflink.h:3174
+#: elflink.h:1252
#, c-format
-msgid "%s: .preinit_array section is not allowed in DSO"
-msgstr "%s: section .preinit_array n'est pas permise dans DSO"
+msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s"
+msgstr "AVERTISSEMENT: taille du symbole « %s » a changé de %lu dans %s à %lu dans %s"
-#: elflink.h:4030
+#: elflink.h:2160
#, c-format
-msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "AVERTISSEMENT: type et taille du symbole dynamique « %s » ne sont pas définis"
+msgid "%s: undefined version: %s"
+msgstr "%s: version non définie: %s"
-#: elflink.h:4345
+#: elflink.h:2226
#, c-format
-msgid "%s: undefined versioned symbol name %s"
-msgstr "%s: nom symbole avec version indéfinie %s"
-
-#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600
-msgid "Error: out of memory"
-msgstr "Erreur: mémoire épuisée"
+msgid "%s: .preinit_array section is not allowed in DSO"
+msgstr "%s: section .preinit_array n'est pas permise dans DSO"
-#: elflink.h:4781
+#: elflink.h:3078
msgid "Not enough memory to sort relocations"
msgstr "Pas assez de mémoire pour effectuer le trie des relocalisations"
-#: elflink.h:5682 elflink.h:5725
+#: elflink.h:3958 elflink.h:4001
#, c-format
msgid "%s: could not find output section %s"
msgstr "%s: ne peut repérer la section de sortie %s"
-#: elflink.h:5688
+#: elflink.h:3964
#, c-format
msgid "warning: %s section has zero size"
msgstr "AVERTISSEMENT: section %s a une taille nulle"
-#: elflink.h:6275
+#: elflink.h:4483
+#, c-format
+msgid "%s: %s symbol `%s' in %s is referenced by DSO"
+msgstr "%s: %s symbole « %s » in %s est référencé par DSO"
+
+#: elflink.h:4564
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr "%s: ne peut repérer la section de sortie %s pour la section d'entrée %s"
-#: elflink.h:6486
+#: elflink.h:4666
#, c-format
-msgid "%s: relocation size mismatch in %s section %s"
-msgstr "%s: taille de la relocalisation ne concorde pas dans %s section %s"
-
-#: elflink.h:6849
-msgid "warning: relocation against removed section; zeroing"
-msgstr "AVERTISSEMENT: relocalisation vers une section qui a été enlevée; mise à zéro"
+msgid "%s: %s symbol `%s' isn't defined"
+msgstr "%s: %s symbole « %s » n'est pas défini"
-#: elflink.h:6879
-msgid "warning: relocation against removed section"
-msgstr "AVERTISSEMENT: relocalisation vers une section enlevée"
+#: elflink.h:5053 elflink.h:5095
+msgid "%T: discarded in section `%s' from %s\n"
+msgstr "%T: mis de côté dans la section « %s » à partir de %s\n"
-#: elflink.h:6892
-#, c-format
-msgid "local symbols in discarded section %s"
-msgstr "symboles locaux de la section mise à l'écart %s"
-
-#: elfxx-mips.c:734
+#: elfxx-mips.c:887
msgid "static procedure (no name)"
msgstr "procédure statique (sans name)"
-#: elfxx-mips.c:1601
+#: elfxx-mips.c:1897
msgid "not enough GOT space for local GOT entries"
msgstr "pas suffisamment d'espace GOT pour les entrées locales GOT"
-#: elfxx-mips.c:2750
+#: elfxx-mips.c:3691
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr "%s: %s+0x%lx: saut vers la routine dans la partie du talon (stub) qui n'est pas jal"
-#: elfxx-mips.c:4270
+#: elfxx-mips.c:5192
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr "%s: relocalisation mal composée détectée dans la section %s"
-#: elfxx-mips.c:4348
+#: elfxx-mips.c:5266
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr "%s: appel CALL16 de relocalisation à 0x%lx qui n'est pas pourun symbole global"
-#: elfxx-mips.c:7301
+#: elfxx-mips.c:8692
#, c-format
msgid "%s: illegal section name `%s'"
msgstr "%s: nom illégal de section « %s »"
-#: elfxx-mips.c:7615
+#: elfxx-mips.c:9025
+#, c-format
+msgid "%s: endianness incompatible with that of the selected emulation"
+msgstr "%s: système de poids fort ou faible incompatible avec celui sélectionné pour l'émulation"
+
+#: elfxx-mips.c:9037
#, c-format
-msgid "%s: linking PIC files with non-PIC files"
-msgstr "%s: édition de liens des fichiers PIC avec des fichiers non PIC"
+msgid "%s: ABI is incompatible with that of the selected emulation"
+msgstr "%s: ABI est incompatible avec celui sélectionné pour l'émulation"
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:9104
#, c-format
-msgid "%s: linking abicalls files with non-abicalls files"
-msgstr "%s: édition de liens des fichier abicalls avec des fichiers non abicalls"
+msgid "%s: warning: linking PIC files with non-PIC files"
+msgstr "%s: AVERTISSEMENT: édition de liens des fichiers PIC avec des fichiers non PIC"
-#: elfxx-mips.c:7654
+#: elfxx-mips.c:9121
#, c-format
-msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
-msgstr "%s: ISA ne concorde pas (-mips%d) avec les modules précédents (-mips%d)"
+msgid "%s: linking 32-bit code with 64-bit code"
+msgstr "%s: édition de liens de code de 32 bits avec du code de 64 bits"
-#: elfxx-mips.c:7676
+#: elfxx-mips.c:9149
#, c-format
-msgid "%s: ISA mismatch (%d) with previous modules (%d)"
-msgstr "%s: ISA ne concorde pas (%d) avec les modules précédents (%d)"
+msgid "%s: linking %s module with previous %s modules"
+msgstr "%s: édition de liens du module %s avec les modules précédents %s"
-#: elfxx-mips.c:7699
+#: elfxx-mips.c:9172
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr "%s: ABI ne concorde pas: édition de lien du module %s avec les modules précédents %s"
-#: elfxx-mips.c:7759
+#: elfxx-mips.c:9241
msgid " [abi=O32]"
msgstr " [abi=O32]"
-#: elfxx-mips.c:7761
+#: elfxx-mips.c:9243
msgid " [abi=O64]"
msgstr " [abi=O64]"
-#: elfxx-mips.c:7763
+#: elfxx-mips.c:9245
msgid " [abi=EABI32]"
msgstr " [abi=EABI32]"
-#: elfxx-mips.c:7765
+#: elfxx-mips.c:9247
msgid " [abi=EABI64]"
msgstr " [abi=EABI64]"
-#: elfxx-mips.c:7767
+#: elfxx-mips.c:9249
msgid " [abi unknown]"
msgstr " [abi inconnu]"
-#: elfxx-mips.c:7769
+#: elfxx-mips.c:9251
msgid " [abi=N32]"
msgstr " [abi=N32]"
-#: elfxx-mips.c:7771
+#: elfxx-mips.c:9253
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:7773
+#: elfxx-mips.c:9255
msgid " [no abi set]"
msgstr " [aucun jeu abi]"
-#: elfxx-mips.c:7776
+#: elfxx-mips.c:9258
msgid " [mips1]"
msgstr " [mips1]"
-#: elfxx-mips.c:7778
+#: elfxx-mips.c:9260
msgid " [mips2]"
msgstr " [mips2]"
-#: elfxx-mips.c:7780
+#: elfxx-mips.c:9262
msgid " [mips3]"
msgstr " [mips3]"
-#: elfxx-mips.c:7782
+#: elfxx-mips.c:9264
msgid " [mips4]"
msgstr " [mips4]"
-#: elfxx-mips.c:7784
+#: elfxx-mips.c:9266
msgid " [mips5]"
msgstr " [mips5]"
-#: elfxx-mips.c:7786
+#: elfxx-mips.c:9268
msgid " [mips32]"
msgstr " [mips32]"
-#: elfxx-mips.c:7788
+#: elfxx-mips.c:9270
msgid " [mips64]"
msgstr " [mips64]"
-#: elfxx-mips.c:7790
+#: elfxx-mips.c:9272
+msgid " [mips32r2]"
+msgstr " [mips32r2]"
+
+#: elfxx-mips.c:9274
msgid " [unknown ISA]"
msgstr " [ISA inconnu]"
-#: elfxx-mips.c:7793
+#: elfxx-mips.c:9277
msgid " [mdmx]"
msgstr " [mdmx]"
-#: elfxx-mips.c:7796
+#: elfxx-mips.c:9280
msgid " [mips16]"
msgstr " [mips16]"
-#: elfxx-mips.c:7799
+#: elfxx-mips.c:9283
msgid " [32bitmode]"
msgstr " [mode 32 bits]"
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:9285
msgid " [not 32bitmode]"
msgstr " [aucun mode 32 bits]"
-#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459
+#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458
#, c-format
msgid "Output file requires shared library `%s'\n"
msgstr "La sortie requiert une ilbrairie partagée « %s »\n"
-#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467
+#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466
#, c-format
msgid "Output file requires shared library `%s.so.%s'\n"
msgstr "Le fichier de sortie requiert une librairie partagée « %s.so.%s »\n"
-#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710
-#: sparclinux.c:657 sparclinux.c:707
+#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709
+#: sparclinux.c:656 sparclinux.c:706
#, c-format
msgid "Symbol %s not defined for fixups\n"
msgstr "Symbole %s n'est pas défini pour les corrections\n"
-#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731
+#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730
msgid "Warning: fixup count mismatch\n"
msgstr "AVERTISSEMENT: correction du compteur qui ne concordait pas\n"
-#: ieee.c:235
+#: ieee.c:293
#, c-format
msgid "%s: string too long (%d chars, max 65535)"
msgstr "%s: chaîne trop longue (%d caractères, max 65535)"
-#: ieee.c:365
+#: ieee.c:428
#, c-format
msgid "%s: unrecognized symbol `%s' flags 0x%x"
msgstr "%s: symbole non reconnue « %s » fanions 0x%x"
-#: ieee.c:877
+#: ieee.c:938
#, c-format
msgid "%s: unimplemented ATI record %u for symbol %u"
msgstr "%s: enregistrement ATI non implanté %u pour le symbole %u"
-#: ieee.c:902
+#: ieee.c:963
#, c-format
msgid "%s: unexpected ATN type %d in external part"
msgstr "%s: type ATN inattendu %d dans la partie externe"
-#: ieee.c:924
+#: ieee.c:985
#, c-format
msgid "%s: unexpected type after ATN"
msgstr "%s: type inattendu après ATN"
-#: ihex.c:258
+#: ihex.c:264
#, c-format
msgid "%s:%d: unexpected character `%s' in Intel Hex file\n"
msgstr "%s:%d: caractères inattendue « %s » dans le fichier Intel hexadécimal\n"
-#: ihex.c:366
+#: ihex.c:372
#, c-format
msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)"
msgstr "%s:%u: somme de contrôle erronée dans le fichier Intel hexadécimal (attendu %u, obtenu %u)"
-#: ihex.c:420
+#: ihex.c:426
#, c-format
msgid "%s:%u: bad extended address record length in Intel Hex file"
msgstr "%s:%u: longueur erronée de l'enregistrement d'adresse étendue dans le fichier Intel hexadécimal"
-#: ihex.c:437
+#: ihex.c:443
#, c-format
msgid "%s:%u: bad extended start address length in Intel Hex file"
msgstr "%s:%u: longueur erronée d'adresse étendue de début dans le fichier Intel hexadécimal"
-#: ihex.c:454
+#: ihex.c:460
#, c-format
msgid "%s:%u: bad extended linear address record length in Intel Hex file"
msgstr "%s:%u: longueur erronée de l'enregistrement d'adresse étendue linéaire dans le fichier Intel hexadécimal"
-#: ihex.c:471
+#: ihex.c:477
#, c-format
msgid "%s:%u: bad extended linear start address length in Intel Hex file"
msgstr "%s:%u: longueur erronée d'adresse étendue linéraire de début dans le fichier Intel hexadécimal"
-#: ihex.c:488
+#: ihex.c:494
#, c-format
msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n"
msgstr "%s:%u: type ihex non reconnu %u dans le fichier Intel hexadécimal\n"
-#: ihex.c:607
+#: ihex.c:619
#, c-format
msgid "%s: internal error in ihex_read_section"
msgstr "%s: erreur interne dans ihex_read_section"
-#: ihex.c:642
+#: ihex.c:654
#, c-format
msgid "%s: bad section length in ihex_read_section"
msgstr "%s: longuer erronée de section dans ihex_read_section"
-#: ihex.c:860
+#: ihex.c:872
#, c-format
msgid "%s: address 0x%s out of range for Intel Hex file"
-msgstr "%s: adresse 0x%s hors gamme pour le fichier Intel hexadécimal"
-
-#: libbfd.c:492
-#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr "pas de table de projection: données=%lx adresse de la table=%d\n"
+msgstr "%s: adresse 0x%s hors limite pour le fichier Intel hexadécimal"
-#: libbfd.c:495
-msgid "not mapping: env var not set\n"
-msgstr "pas de table de projection: variable d'environnement pas initialisée\n"
-
-#: libbfd.c:1466
+#: libbfd.c:861
#, c-format
msgid "Deprecated %s called at %s line %d in %s\n"
msgstr "%s déprécié appelé à %s dans la ligne %d dans %s\n"
-#: libbfd.c:1469
+#: libbfd.c:864
#, c-format
msgid "Deprecated %s called\n"
msgstr "%s appel déprécié\n"
-#: linker.c:1873
+#: linker.c:1829
#, c-format
msgid "%s: indirect symbol `%s' to `%s' is a loop"
msgstr "%s: symbole indirect « %s » vers « %s » est une boucle"
-#: linker.c:2776
+#: linker.c:2697
#, c-format
-msgid "Attempt to do relocateable link with %s input and %s output"
+msgid "Attempt to do relocatable link with %s input and %s output"
msgstr "Tentative de relocalisation d'un lien avec %s à l'entrée et %s à la sortie"
-#: merge.c:892
+#: merge.c:896
#, c-format
msgid "%s: access beyond end of merged section (%ld + %ld)"
msgstr "%s: accès au-delà de la fin de la section fusionnée (%ld + %ld)"
-#: mmo.c:460
+#: mmo.c:503
#, c-format
msgid "%s: No core to allocate section name %s\n"
msgstr "%s: pas de corps pour allouer un nom de section %s\n"
-#: mmo.c:536
+#: mmo.c:579
#, c-format
msgid "%s: No core to allocate a symbol %d bytes long\n"
msgstr "%s: pas de corps pour allouer un symbole %d octets de longueur\n"
-#: mmo.c:1245
+#: mmo.c:1287
#, c-format
msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr "%s: fichier mmo invalide: valeur d'initialisation pour $255 n'est pas « Main »\n"
-#: mmo.c:1391
+#: mmo.c:1433
#, c-format
msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr "%s: séquence de caractères large 0x%02X 0x%02X non supportée après le nom de symbole débutant avec « %s »\n"
-#: mmo.c:1633
+#: mmo.c:1674
#, c-format
msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
msgstr "%s: fichier mmo invalide: lopcode non supporté « %d »\n"
-#: mmo.c:1643
+#: mmo.c:1684
#, c-format
msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr "%s: fichier mmo invalide: attendu YZ = 1 obtenu YZ = %d pour lop_quote\n"
-#: mmo.c:1679
+#: mmo.c:1720
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr "%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_loc\n"
-#: mmo.c:1725
+#: mmo.c:1766
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr "%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_fixo\n"
-#: mmo.c:1764
+#: mmo.c:1805
#, c-format
msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr "%s: fichier mmo invalide: attendu y = 0, obtenu y = %d pour lop_fixrx\n"
-#: mmo.c:1773
+#: mmo.c:1814
#, c-format
msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr "%s: fichier mmo invalide: attendu z = 16 ou z = 24, obtenu z = %d pour lop_fixrx\n"
-#: mmo.c:1796
+#: mmo.c:1837
#, c-format
msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr "%s: fichier mmo invalide: octet de tête du mot de l'opérande doit être 0 ou 1, obtenu %d pour lop_fixrx\n"
-#: mmo.c:1819
+#: mmo.c:1860
#, c-format
msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
msgstr "%s: ne allouer un nom de ficheir pour le no. de fichier %d, %d octets\n"
-#: mmo.c:1839
+#: mmo.c:1880
#, c-format
msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr "%s: fichier mmo invalide: no. de fichier %d « %s », a déjà été entré comme « %s »\n"
-#: mmo.c:1852
+#: mmo.c:1893
#, c-format
msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
msgstr "%s: fichier mmo invalide: nom de fichier %d n'a pas été spécifié avant son utilisation\n"
-#: mmo.c:1958
+#: mmo.c:1999
#, c-format
msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr "%s: fichier mmo invalide: champs y et z de lop_stab non null, y: %d, z: %d\n"
-#: mmo.c:1994
+#: mmo.c:2035
#, c-format
msgid "%s: invalid mmo file: lop_end not last item in file\n"
msgstr "%s: fichier mmo invalide: lop_end N,est pas le dernier item dans le fichier\n"
-#: mmo.c:2007
+#: mmo.c:2048
#, c-format
msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr "%s: fichier mmo invalide: YZ de lop_end (%ld) n'est pas égal au nombre de teras du lop_stab précédent (%ld)\n"
-#: mmo.c:2670
+#: mmo.c:2698
#, c-format
msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
msgstr "%s: table de symboles invalides: duplication du symbole « %s »\n"
-#: mmo.c:2921
+#: mmo.c:2949
#, c-format
msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
msgstr "%s: définition de symbole erronée: « Main » initialisé à %s au lieu de l'adresse de départ %s\n"
-#: mmo.c:3011
+#: mmo.c:3039
#, c-format
msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr "%s: avertissement: table de symboles trop grande pour mmo, plus grande que 65535 mots de 32 bits: %d. Seul « Main » sera produit.\n"
-#: mmo.c:3056
+#: mmo.c:3084
#, c-format
msgid "%s: internal error, symbol table changed size from %d to %d words\n"
msgstr "%s: erreur interne, table de symbole a changé de taille de %d à %d mots\n"
-#: mmo.c:3111
+#: mmo.c:3139
#, c-format
msgid "%s: internal error, internal register section %s had contents\n"
msgstr "%s: erreur interne, registre interne de section %s a du contenu\n"
-#: mmo.c:3163
+#: mmo.c:3191
#, c-format
msgid "%s: no initialized registers; section length 0\n"
msgstr "%s: pas de registres initialisés; section de longeur 0\n"
-#: mmo.c:3169
+#: mmo.c:3197
#, c-format
msgid "%s: too many initialized registers; section length %ld\n"
msgstr "%s: trop de resigstres initialisés; longueur de section %ld\n"
-#: mmo.c:3174
+#: mmo.c:3202
#, c-format
msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
msgstr "%s: adresse de départ invalide pour des registres initialisés de longueur %ld: 0x%lx%08lx\n"
-#: oasys.c:1029
+#: oasys.c:1052
#, c-format
msgid "%s: can not represent section `%s' in oasys"
msgstr "%s: ne peut représenter la section « %s » dans oasis"
-#: osf-core.c:132
+#: osf-core.c:137
#, c-format
msgid "Unhandled OSF/1 core file section type %d\n"
msgstr "Type de section de fichier core OSF/1 non traité %d\n"
-#: pe-mips.c:658
+#: pe-mips.c:659
#, c-format
msgid "%s: `ld -r' not supported with PE MIPS objects\n"
msgstr "%s: « ld -r » non supporté avec les objets PE MIPS\n"
@@ -1993,53 +2231,53 @@ msgstr "%s: « ld -r » non supporté avec les objets PE MIPS\n"
#. mem = pointer to memory we're fixing up
#. val = VMA of what we need to refer to
#.
-#: pe-mips.c:794
+#: pe-mips.c:795
#, c-format
msgid "%s: unimplemented %s\n"
msgstr "%s: non implanté %s\n"
-#: pe-mips.c:820
+#: pe-mips.c:821
#, c-format
msgid "%s: jump too far away\n"
msgstr "%s: le saut va trop loin\n"
-#: pe-mips.c:847
+#: pe-mips.c:848
#, c-format
msgid "%s: bad pair/reflo after refhi\n"
msgstr "%s: pairage erronée pair/reflo après refhi\n"
#. XXX code yet to be written.
-#: peicode.h:785
+#: peicode.h:787
#, c-format
msgid "%s: Unhandled import type; %x"
msgstr "%s: type d'importation non traitée; %x"
-#: peicode.h:790
+#: peicode.h:792
#, c-format
msgid "%s: Unrecognised import type; %x"
msgstr "%s: type d'importation non reconnu; %x"
-#: peicode.h:804
+#: peicode.h:806
#, c-format
msgid "%s: Unrecognised import name type; %x"
msgstr "%s: type de nom d'importation non reconnu: %x"
-#: peicode.h:1162
+#: peicode.h:1164
#, c-format
msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%s: type de machine non reconnue (0x%x) dans l'archive de librairie d'importation"
-#: peicode.h:1174
+#: peicode.h:1176
#, c-format
msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%s: type de machine reconnue mais non traitée (0x%x) dans l'archive da la librairie de formats d'importation"
-#: peicode.h:1191
+#: peicode.h:1193
#, c-format
msgid "%s: size field is zero in Import Library Format header"
msgstr "%s: taille du champ est zéro dans l'en-tête de la librairie de formats d'importation"
-#: peicode.h:1219
+#: peicode.h:1224
#, c-format
msgid "%s: string not null terminated in ILF object file."
msgstr "%s: chaîne n'est pas terminée par un nulle dans le fichier objet ILF."
@@ -2096,11 +2334,11 @@ msgstr "Secteur de la partition[%d] = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Longueur de la partition[%d] = 0x%.8lx (%ld)\n"
-#: som.c:5398
+#: som.c:5422
msgid "som_sizeof_headers unimplemented"
msgstr "som_sizeof_headers non implanté"
-#: srec.c:301
+#: srec.c:302
#, c-format
msgid "%s:%d: Unexpected character `%s' in S-record file\n"
msgstr "%s:%d: caractère inattendue « %s » dans le fichier S-record\n"
@@ -2110,7 +2348,7 @@ msgstr "%s:%d: caractère inattendue « %s » dans le fichier S-record\n"
msgid "%s(%s+0x%lx): Stabs entry has invalid string index."
msgstr "%s(%s+0x%lx): entrée des talons a une chaîne index invalide"
-#: syms.c:1044
+#: syms.c:1019
msgid "Unsupported .stab relocation"
msgstr "Relocalisation du .stab non supporté"
@@ -2129,33 +2367,33 @@ msgstr "bfd_set_section_flags (%s, %x) a échoué"
msgid "Size mismatch section %s=%lx, %s=%lx"
msgstr "Taille de section ne concorde pas %s=%lx, %s=%lx"
-#: vms-gsd.c:702
+#: vms-gsd.c:704
#, c-format
msgid "unknown gsd/egsd subtype %d"
msgstr "sous type gsd/egsd inconnu %d"
-#: vms-hdr.c:406
+#: vms-hdr.c:408
msgid "Object module NOT error-free !\n"
msgstr "Module objet N'EST PAS sans erreur !\n"
-#: vms-misc.c:543
+#: vms-misc.c:541
#, c-format
msgid "Stack overflow (%d) in _bfd_vms_push"
msgstr "Débordement de la pile (%d) dans _bfd_vms_push"
-#: vms-misc.c:561
+#: vms-misc.c:559
msgid "Stack underflow in _bfd_vms_pop"
msgstr "Sous dépilage de la pile dans _bfd_vms_pop"
-#: vms-misc.c:919
+#: vms-misc.c:918
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr "_bfd_vms_output_counted appelé avec un compte de zéro octet"
-#: vms-misc.c:924
+#: vms-misc.c:923
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "_bfd_vms_output_counted appelé avec trop d'octets"
-#: vms-misc.c:1055
+#: vms-misc.c:1054
#, c-format
msgid "Symbol %s replaced by %s\n"
msgstr "Symbole %s remplacé par %s\n"
@@ -2165,26 +2403,26 @@ msgstr "Symbole %s remplacé par %s\n"
msgid "failed to enter %s"
msgstr "échec d'insertion de %s"
-#: vms-tir.c:81
+#: vms-tir.c:102
msgid "No Mem !"
msgstr "Mémoire épuisée!"
-#: vms-tir.c:362
+#: vms-tir.c:383
#, c-format
msgid "bad section index in %s"
msgstr "index de section erronée dans %s"
-#: vms-tir.c:375
+#: vms-tir.c:396
#, c-format
msgid "unsupported STA cmd %s"
msgstr "commande STA non supportée %s"
-#: vms-tir.c:380 vms-tir.c:1240
+#: vms-tir.c:401 vms-tir.c:1261
#, c-format
msgid "reserved STA cmd %d"
msgstr "commande STA réservée %d"
-#: vms-tir.c:491 vms-tir.c:514
+#: vms-tir.c:512 vms-tir.c:535
#, c-format
msgid "%s: no symbol \"%s\""
msgstr "%s: pas de symbole \"%s\""
@@ -2193,39 +2431,39 @@ msgstr "%s: pas de symbole \"%s\""
#. rotate
#. Redefine symbol to current location.
#. Define a literal.
-#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829
-#: vms-tir.c:838 vms-tir.c:1563
+#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850
+#: vms-tir.c:859 vms-tir.c:1584
#, c-format
msgid "%s: not supported"
msgstr "%s: pas supporté"
-#: vms-tir.c:586 vms-tir.c:1418
+#: vms-tir.c:607 vms-tir.c:1439
#, c-format
msgid "%s: not implemented"
msgstr "%s: non implanté"
-#: vms-tir.c:590 vms-tir.c:1422
+#: vms-tir.c:611 vms-tir.c:1443
#, c-format
msgid "reserved STO cmd %d"
msgstr "commande STO réservée %d"
-#: vms-tir.c:708 vms-tir.c:1568
+#: vms-tir.c:729 vms-tir.c:1589
#, c-format
msgid "reserved OPR cmd %d"
msgstr "commande OPR réservée %d"
-#: vms-tir.c:776 vms-tir.c:1632
+#: vms-tir.c:797 vms-tir.c:1653
#, c-format
msgid "reserved CTL cmd %d"
msgstr "commande CTL réservée %d"
#. stack byte from image
#. arg: none.
-#: vms-tir.c:1148
+#: vms-tir.c:1169
msgid "stack-from-image not implemented"
msgstr "pile depuis l'image non implanté"
-#: vms-tir.c:1166
+#: vms-tir.c:1187
msgid "stack-entry-mask not fully implemented"
msgstr "masque de pile d'entrée pas complètement implanté"
@@ -2236,263 +2474,273 @@ msgstr "masque de pile d'entrée pas complètement implanté"
#.
#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
#. and stack TRUE (args match) or FALSE (args dont match) value.
-#: vms-tir.c:1180
+#: vms-tir.c:1201
msgid "PASSMECH not fully implemented"
msgstr "PASSMECH pas complètement implanté"
-#: vms-tir.c:1199
+#: vms-tir.c:1220
msgid "stack-local-symbol not fully implemented"
msgstr "symbole local de pile pas complètement implanté"
-#: vms-tir.c:1212
+#: vms-tir.c:1233
msgid "stack-literal not fully implemented"
msgstr "litéral de pile pas complètement implanté"
-#: vms-tir.c:1233
+#: vms-tir.c:1254
msgid "stack-local-symbol-entry-point-mask not fully implemented"
msgstr "masque du symbole local de point d'entrée de pile pas complètement implanté"
-#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611
-#: vms-tir.c:1619 vms-tir.c:1627
+#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632
+#: vms-tir.c:1640 vms-tir.c:1648
#, c-format
msgid "%s: not fully implemented"
msgstr "%s: pas complètement implanté"
-#: vms-tir.c:1684
+#: vms-tir.c:1705
#, c-format
msgid "obj code %d not found"
msgstr "code objet %d non repéré"
-#: vms-tir.c:2019
+#: vms-tir.c:2043
#, c-format
msgid "SEC_RELOC with no relocs in section %s"
msgstr "SEC_RELOC sans relocalisation dans la section %s"
-#: vms-tir.c:2307
+#: vms-tir.c:2331
#, c-format
msgid "Unhandled relocation %s"
msgstr "Relocalisation non traitée: %s"
-#: xcofflink.c:1243
+#: xcofflink.c:1244
#, c-format
msgid "%s: `%s' has line numbers but no enclosing section"
msgstr "%s: « %s » contient des numéros de lignes mais de section de fermeture"
-#: xcofflink.c:1296
+#: xcofflink.c:1297
#, c-format
msgid "%s: class %d symbol `%s' has no aux entries"
msgstr "%s: classe %d symbole « %s » n'a pas d'entrée auxiliaire"
-#: xcofflink.c:1319
+#: xcofflink.c:1320
#, c-format
msgid "%s: symbol `%s' has unrecognized csect type %d"
msgstr "%s: symbole « %s » a un type csect non reconnu %d"
-#: xcofflink.c:1331
+#: xcofflink.c:1332
#, c-format
msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
msgstr "%s: symbole XTY_ER erroné « %s »: classe %d scnum %d scnlen %d"
-#: xcofflink.c:1367
+#: xcofflink.c:1368
#, c-format
msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d"
msgstr "%s: XMC_TC0 symbol « %s » est la classe %d scnlen %d"
-#: xcofflink.c:1519
+#: xcofflink.c:1520
#, c-format
msgid "%s: csect `%s' not in enclosing section"
msgstr "%s: csect « %s » n'est pas dans un section fermée"
-#: xcofflink.c:1626
+#: xcofflink.c:1627
#, c-format
msgid "%s: misplaced XTY_LD `%s'"
msgstr "%s: XTY_LD mal placé « %s »"
-#: xcofflink.c:1957
+#: xcofflink.c:1958
#, c-format
msgid "%s: reloc %s:%d not in csect"
msgstr "%s: relocalisation %s:%d n'est pas dans csect"
-#: xcofflink.c:2092
+#: xcofflink.c:2095
#, c-format
msgid "%s: XCOFF shared object when not producing XCOFF output"
msgstr "%s: objet XCOFF partagé sans être en production de sortie XCOFF"
-#: xcofflink.c:2113
+#: xcofflink.c:2116
#, c-format
msgid "%s: dynamic object with no .loader section"
msgstr "%s: objet dynamique sans section .loader"
-#: xcofflink.c:2758
+#: xcofflink.c:2761
#, c-format
msgid "%s: no such symbol"
msgstr "%s: pas de tel symbole"
-#: xcofflink.c:2891
+#: xcofflink.c:2894
msgid "error: undefined symbol __rtinit"
msgstr "erreur: symbole __rtinit indéfini"
-#: xcofflink.c:3453
+#: xcofflink.c:3455
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "AVERTISSEMENT: tentative d'exportation d'un symbole indéfini « %s »"
-#: xcofflink.c:4447
+#: xcofflink.c:4448
#, c-format
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr "Débordement de la table des entrées: 0x%lx > 0x10000; essayer l'option -mminimal-toc"
-#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119
+#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119
#, c-format
msgid "%s: loader reloc in unrecognized section `%s'"
msgstr "%s: chargeur de relocalisation dans une section non reconnnue « %s »"
-#: xcofflink.c:5309 xcofflink.c:6130
+#: xcofflink.c:5310 xcofflink.c:6130
#, c-format
msgid "%s: `%s' in loader reloc but not loader sym"
msgstr "%s: « %s » est dans le chargeur de relocalisation mais pas dans celui des symboles"
-#: xcofflink.c:5324
+#: xcofflink.c:5325
#, c-format
msgid "%s: loader reloc in read-only section %s"
msgstr "%s: chargeur de relocalisation dans un section en lecture seulement %s"
-#: elf32-ia64.c:2222 elf64-ia64.c:2222
+#: elf32-ia64.c:2392 elf64-ia64.c:2392
msgid "@pltoff reloc against local symbol"
msgstr "relocalisation @pltoff vers un symbole local"
-#: elf32-ia64.c:3562 elf64-ia64.c:3562
+#: elf32-ia64.c:3804 elf64-ia64.c:3804
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr "%s: débordement du segment de données court (0x%lx >= 0x400000)"
-#: elf32-ia64.c:3573 elf64-ia64.c:3573
+#: elf32-ia64.c:3815 elf64-ia64.c:3815
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr "%s: __gp ne couvre pas ce segment de données court"
-#: elf32-ia64.c:3858 elf64-ia64.c:3858
+#: elf32-ia64.c:4131 elf64-ia64.c:4131
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr "%s: liaison de code non-pic dans une librairie partagée"
-#: elf32-ia64.c:3891 elf64-ia64.c:3891
+#: elf32-ia64.c:4164 elf64-ia64.c:4164
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr "%s: relocalisation @gprel vers le symbole dynamique %s"
-#: elf32-ia64.c:4030 elf64-ia64.c:4030
+#: elf32-ia64.c:4224 elf64-ia64.c:4224
+#, c-format
+msgid "%s: linking non-pic code in a position independent executable"
+msgstr "%s: liaison de code non-pic dans un exécutable à position indépendante"
+
+#: elf32-ia64.c:4363 elf64-ia64.c:4363
#, c-format
-msgid "%s: dynamic relocation against speculation fixup"
-msgstr "%s: relocalisation dynamique vers un correctif spéculé"
+msgid "%s: @internal branch to dynamic symbol %s"
+msgstr "%s: relocalisation @internal vers le symbole dynamique %s"
-#: elf32-ia64.c:4038 elf64-ia64.c:4038
+#: elf32-ia64.c:4365 elf64-ia64.c:4365
#, c-format
-msgid "%s: speculation fixup against undefined weak symbol"
-msgstr "%s: correctif spéculé vers un symbole faible indéfini"
+msgid "%s: speculation fixup to dynamic symbol %s"
+msgstr "%s: spéculation d'ajustements vers un symbole dynamique %s"
-#: elf32-ia64.c:4271 elf64-ia64.c:4271
+#: elf32-ia64.c:4367 elf64-ia64.c:4367
+#, c-format
+msgid "%s: @pcrel relocation against dynamic symbol %s"
+msgstr "%s: relocalisation @pcrel vers le symbole dynamique %s"
+
+#: elf32-ia64.c:4579 elf64-ia64.c:4579
msgid "unsupported reloc"
-msgstr "relocalisation non supporté"
+msgstr "relocalisation non supportée"
-#: elf32-ia64.c:4551 elf64-ia64.c:4551
+#: elf32-ia64.c:4858 elf64-ia64.c:4858
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%s: édition de liens trap-on-NULL-dereference avec des fichiers non-trapping"
-#: elf32-ia64.c:4560 elf64-ia64.c:4560
+#: elf32-ia64.c:4867 elf64-ia64.c:4867
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr ""
"%s: édition de liens pour des fichiers en système à octets de poids fort\n"
"avec des fichiers pour des systèmes à octets de poids faible"
-#: elf32-ia64.c:4569 elf64-ia64.c:4569
+#: elf32-ia64.c:4876 elf64-ia64.c:4876
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr "%s: édition de liens de fichiers de 64 bits avec des fichiers de 32 bits"
-#: elf32-ia64.c:4578 elf64-ia64.c:4578
+#: elf32-ia64.c:4885 elf64-ia64.c:4885
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr "%s: édition de liens de fichiers constant-gp avec des fichier non-constant-gp"
-#: elf32-ia64.c:4588 elf64-ia64.c:4588
+#: elf32-ia64.c:4895 elf64-ia64.c:4895
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr "%s: édition de liens de fichiers auto-pic avec des fichiers non-auto-pic"
-#: peigen.c:962 pepigen.c:962
+#: peigen.c:985 pepigen.c:985
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: débordement du nombre de lignes: 0x%lx > 0xffff"
-#: peigen.c:979 pepigen.c:979
+#: peigen.c:1002 pepigen.c:1002
#, c-format
msgid "%s: reloc overflow 1: 0x%lx > 0xffff"
msgstr "%s: débordement de la relocalisation 1: 0x%lx > 0xffff"
-#: peigen.c:993 pepigen.c:993
+#: peigen.c:1016 pepigen.c:1016
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Répertoire d'exportation [.edata (ou là où il a été repéré)]"
-#: peigen.c:994 pepigen.c:994
+#: peigen.c:1017 pepigen.c:1017
msgid "Import Directory [parts of .idata]"
msgstr "Répertoire d'importation [faisant partie de .idata]"
-#: peigen.c:995 pepigen.c:995
+#: peigen.c:1018 pepigen.c:1018
msgid "Resource Directory [.rsrc]"
msgstr "Répertoire des resources [.rsrc]"
-#: peigen.c:996 pepigen.c:996
+#: peigen.c:1019 pepigen.c:1019
msgid "Exception Directory [.pdata]"
msgstr "Répertoire des exceptions [.pdata]"
-#: peigen.c:997 pepigen.c:997
+#: peigen.c:1020 pepigen.c:1020
msgid "Security Directory"
msgstr "Répertoire de la sécurité"
-#: peigen.c:998 pepigen.c:998
+#: peigen.c:1021 pepigen.c:1021
msgid "Base Relocation Directory [.reloc]"
msgstr "Répertoire de base de relocalisation [.reloc]"
-#: peigen.c:999 pepigen.c:999
+#: peigen.c:1022 pepigen.c:1022
msgid "Debug Directory"
msgstr "Répertoire de débug"
-#: peigen.c:1000 pepigen.c:1000
+#: peigen.c:1023 pepigen.c:1023
msgid "Description Directory"
msgstr "Répertoire de description"
-#: peigen.c:1001 pepigen.c:1001
+#: peigen.c:1024 pepigen.c:1024
msgid "Special Directory"
msgstr "Répertoire spécial"
-#: peigen.c:1002 pepigen.c:1002
+#: peigen.c:1025 pepigen.c:1025
msgid "Thread Storage Directory [.tls]"
msgstr "Répertoire des files de stockage [.tls]"
-#: peigen.c:1003 pepigen.c:1003
+#: peigen.c:1026 pepigen.c:1026
msgid "Load Configuration Directory"
msgstr "Répertoire de chargement de configuration"
-#: peigen.c:1004 pepigen.c:1004
+#: peigen.c:1027 pepigen.c:1027
msgid "Bound Import Directory"
msgstr "Répertoire des importations limitées"
-#: peigen.c:1005 pepigen.c:1005
+#: peigen.c:1028 pepigen.c:1028
msgid "Import Address Table Directory"
msgstr "Répertoire de la table d'adresse d'importation"
-#: peigen.c:1006 pepigen.c:1006
+#: peigen.c:1029 pepigen.c:1029
msgid "Delay Import Directory"
msgstr "Répertoire des délais d'importation"
-#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008
+#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031
msgid "Reserved"
msgstr "Réservé"
-#: peigen.c:1071 pepigen.c:1071
+#: peigen.c:1094 pepigen.c:1094
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
@@ -2500,7 +2748,7 @@ msgstr ""
"\n"
"Il y a une table d'importation, mais la section la contenant ne peut être repérée\n"
-#: peigen.c:1076 pepigen.c:1076
+#: peigen.c:1099 pepigen.c:1099
#, c-format
msgid ""
"\n"
@@ -2509,7 +2757,7 @@ msgstr ""
"\n"
"Il y a une table d'importation dans %s à 0x%lx\n"
-#: peigen.c:1113 pepigen.c:1113
+#: peigen.c:1136 pepigen.c:1136
#, c-format
msgid ""
"\n"
@@ -2518,12 +2766,12 @@ msgstr ""
"\n"
"Descripteur de fonction localisé à l'adresse de départ: %04lx\n"
-#: peigen.c:1116 pepigen.c:1116
+#: peigen.c:1139 pepigen.c:1139
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr "\tcode-base %08lx tab. des entrées (chargeable/actuel) %08lx/%08lx\n"
-#: peigen.c:1122 pepigen.c:1122
+#: peigen.c:1145 pepigen.c:1145
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
@@ -2531,7 +2779,7 @@ msgstr ""
"\n"
"Pas de section reldata! Descripteur de fonction n'a pas été décodé.\n"
-#: peigen.c:1127 pepigen.c:1127
+#: peigen.c:1150 pepigen.c:1150
#, c-format
msgid ""
"\n"
@@ -2540,7 +2788,7 @@ msgstr ""
"\n"
"Les tables d'importation (contenus interprétés de la section %s)\n"
-#: peigen.c:1130 pepigen.c:1130
+#: peigen.c:1153 pepigen.c:1153
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
@@ -2548,7 +2796,7 @@ msgstr ""
" vma: Hint Temps Avant DLL Premier\n"
" Table Estampil. Chaîne Nom Thunk\n"
-#: peigen.c:1181 pepigen.c:1181
+#: peigen.c:1204 pepigen.c:1204
#, c-format
msgid ""
"\n"
@@ -2557,11 +2805,11 @@ msgstr ""
"\n"
"\tNom DLL: %s\n"
-#: peigen.c:1192 pepigen.c:1192
+#: peigen.c:1215 pepigen.c:1215
msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
msgstr "\tvma: Hint/Ord Membre Lien\n"
-#: peigen.c:1217 pepigen.c:1217
+#: peigen.c:1240 pepigen.c:1240
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
@@ -2569,7 +2817,7 @@ msgstr ""
"\n"
"Il y a un premier « thunk », mais la section le contenant ne peut être repérée\n"
-#: peigen.c:1357 pepigen.c:1357
+#: peigen.c:1380 pepigen.c:1380
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
@@ -2577,7 +2825,7 @@ msgstr ""
"\n"
"Il y a une table d'exportation, mais la section la contenant n'a pu être repérée\n"
-#: peigen.c:1362 pepigen.c:1362
+#: peigen.c:1385 pepigen.c:1385
#, c-format
msgid ""
"\n"
@@ -2586,7 +2834,7 @@ msgstr ""
"\n"
"Il y a une table d'exportation dans %s à 0x%lx\n"
-#: peigen.c:1393 pepigen.c:1393
+#: peigen.c:1416 pepigen.c:1416
#, c-format
msgid ""
"\n"
@@ -2597,61 +2845,61 @@ msgstr ""
"Les tables d'exportation (contenus interprétés de la section %s)\n"
"\n"
-#: peigen.c:1397 pepigen.c:1397
+#: peigen.c:1420 pepigen.c:1420
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "Fanion d'exportation \t\t\t%lx\n"
-#: peigen.c:1400 pepigen.c:1400
+#: peigen.c:1423 pepigen.c:1423
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "Tampon Heure/Date \t\t%lx\n"
-#: peigen.c:1403 pepigen.c:1403
+#: peigen.c:1426 pepigen.c:1426
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Majeur/Mineur \t\t\t%d/%d\n"
-#: peigen.c:1406 pepigen.c:1406
+#: peigen.c:1429 pepigen.c:1429
msgid "Name \t\t\t\t"
msgstr "Nom \t\t\t\t"
-#: peigen.c:1412 pepigen.c:1412
+#: peigen.c:1435 pepigen.c:1435
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "base de nombre ordinal \t\t\t%ld\n"
-#: peigen.c:1415 pepigen.c:1415
+#: peigen.c:1438 pepigen.c:1438
msgid "Number in:\n"
msgstr "Numéro dans:\n"
-#: peigen.c:1418 pepigen.c:1418
+#: peigen.c:1441 pepigen.c:1441
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tTable d'adresses d'exportation \t\t%08lx\n"
-#: peigen.c:1422 pepigen.c:1422
+#: peigen.c:1445 pepigen.c:1445
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\tTable de noms [Pointeur/Nombre ordinal]\t%08lx\n"
-#: peigen.c:1425 pepigen.c:1425
+#: peigen.c:1448 pepigen.c:1448
msgid "Table Addresses\n"
msgstr "Table d'adresses\n"
-#: peigen.c:1428 pepigen.c:1428
+#: peigen.c:1451 pepigen.c:1451
msgid "\tExport Address Table \t\t"
msgstr "\tTable d'adresse d'exportation \t\t"
-#: peigen.c:1433 pepigen.c:1433
+#: peigen.c:1456 pepigen.c:1456
msgid "\tName Pointer Table \t\t"
msgstr "\tTable des noms de pointeurs \t\t"
-#: peigen.c:1438 pepigen.c:1438
+#: peigen.c:1461 pepigen.c:1461
msgid "\tOrdinal Table \t\t\t"
msgstr "\tTable des ordinals \t\t\t"
-#: peigen.c:1453 pepigen.c:1453
+#: peigen.c:1476 pepigen.c:1476
#, c-format
msgid ""
"\n"
@@ -2660,15 +2908,15 @@ msgstr ""
"\n"
"Table d'adresses d'exportation -- base de nombre ordinal %ld\n"
-#: peigen.c:1472 pepigen.c:1472
+#: peigen.c:1495 pepigen.c:1495
msgid "Forwarder RVA"
msgstr "Adresseur RVA"
-#: peigen.c:1483 pepigen.c:1483
+#: peigen.c:1506 pepigen.c:1506
msgid "Export RVA"
msgstr "Exportation RVA"
-#: peigen.c:1490 pepigen.c:1490
+#: peigen.c:1513 pepigen.c:1513
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
@@ -2676,12 +2924,12 @@ msgstr ""
"\n"
"Table [Ordinal/Nom de pointeurs]\n"
-#: peigen.c:1545 pepigen.c:1545
+#: peigen.c:1568 pepigen.c:1568
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "AVERTISSEMENT, taille de la section .pdata (%ld) n'est pas un multiple de %d\n"
-#: peigen.c:1549 pepigen.c:1549
+#: peigen.c:1572 pepigen.c:1572
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
@@ -2689,11 +2937,11 @@ msgstr ""
"\n"
"La table de fonctions (interprétation du contenu de la section .pdata)\n"
-#: peigen.c:1552 pepigen.c:1552
+#: peigen.c:1575 pepigen.c:1575
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tDébut Adresse Fin Adresse Unwind Info\n"
-#: peigen.c:1554 pepigen.c:1554
+#: peigen.c:1577 pepigen.c:1577
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
@@ -2701,19 +2949,19 @@ msgstr ""
" vma:\t\tDébut Fin EH EH FinProlog Exception\n"
" \t\tAdresse Adresse Handler Données Adresse Masque\n"
-#: peigen.c:1624 pepigen.c:1624
+#: peigen.c:1647 pepigen.c:1647
msgid " Register save millicode"
msgstr " Registre a préservé le millicode"
-#: peigen.c:1627 pepigen.c:1627
+#: peigen.c:1650 pepigen.c:1650
msgid " Register restore millicode"
msgstr " Registre a restauré le millicode"
-#: peigen.c:1630 pepigen.c:1630
+#: peigen.c:1653 pepigen.c:1653
msgid " Glue code sequence"
msgstr " Séquence du code de liants"
-#: peigen.c:1682 pepigen.c:1682
+#: peigen.c:1705 pepigen.c:1705
msgid ""
"\n"
"\n"
@@ -2723,7 +2971,7 @@ msgstr ""
"\n"
"Fichier de base des relocalisation PE (contenus interprétés de la section .reloc)\n"
-#: peigen.c:1712 pepigen.c:1712
+#: peigen.c:1735 pepigen.c:1735
#, c-format
msgid ""
"\n"
@@ -2732,7 +2980,7 @@ msgstr ""
"\n"
"Adresse virtuelle: %08lx taille des morceaux %ld (0x%lx) nombre de correctifs %ld\n"
-#: peigen.c:1725 pepigen.c:1725
+#: peigen.c:1748 pepigen.c:1748
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\trelocalisation %4d décalage %4x [%4lx] %s"
@@ -2740,7 +2988,7 @@ msgstr "\trelocalisation %4d décalage %4x [%4lx] %s"
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1765 pepigen.c:1765
+#: peigen.c:1788 pepigen.c:1788
#, c-format
msgid ""
"\n"
@@ -2749,6 +2997,42 @@ msgstr ""
"\n"
"Caractéristiques 0x%x\n"
+#~ msgid "%s: Unknown special linker type %d"
+#~ msgstr "%s: type d'édition spécial de lien inconnu %d"
+
+#~ msgid "v850ea architecture"
+#~ msgstr "architecture v850ea"
+
+#~ msgid "%s: Section %s is too large to add hole of %ld bytes"
+#~ msgstr "%s: section %s est trop grande pour ajouter un trou de %ld octets"
+
+#~ msgid "Error: out of memory"
+#~ msgstr "Erreur: mémoire épuisée"
+
+#~ msgid "warning: relocation against removed section; zeroing"
+#~ msgstr "AVERTISSEMENT: relocalisation vers une section qui a été enlevée; mise à zéro"
+
+#~ msgid "warning: relocation against removed section"
+#~ msgstr "AVERTISSEMENT: relocalisation vers une section enlevée"
+
+#~ msgid "local symbols in discarded section %s"
+#~ msgstr "symboles locaux de la section mise à l'écart %s"
+
+#~ msgid "%s: linking abicalls files with non-abicalls files"
+#~ msgstr "%s: édition de liens des fichier abicalls avec des fichiers non abicalls"
+
+#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
+#~ msgstr "%s: ISA ne concorde pas (-mips%d) avec les modules précédents (-mips%d)"
+
+#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)"
+#~ msgstr "%s: ISA ne concorde pas (%d) avec les modules précédents (%d)"
+
+#~ msgid "%s: dynamic relocation against speculation fixup"
+#~ msgstr "%s: relocalisation dynamique vers un correctif spéculé"
+
+#~ msgid "%s: speculation fixup against undefined weak symbol"
+#~ msgstr "%s: correctif spéculé vers un symbole faible indéfini"
+
#~ msgid "\tThe Import Address Table (difference found)\n"
#~ msgstr "\tL'adresse de la table d'importation (différence détectée)\n"
diff --git a/bfd/po/sv.po b/bfd/po/sv.po
index e73f09b..e0b667c 100644
--- a/bfd/po/sv.po
+++ b/bfd/po/sv.po
@@ -1,499 +1,522 @@
# Swedish messages for bfd.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-# Christian Rose <menthos@menthos.com>, 2001, 2002.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-30 21:55+0200\n"
+"Project-Id-Version: bfd 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:53+0930\n"
+"PO-Revision-Date: 2003-08-14 22:40+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: aout-adobe.c:197
+#: aout-adobe.c:204
#, c-format
msgid "%s: Unknown section type in a.out.adobe file: %x\n"
msgstr "%s: Okänd sektionstyp i a.out.adobe-fil: %x\n"
-#: aout-cris.c:208
+#: aout-cris.c:207
#, c-format
msgid "%s: Invalid relocation type exported: %d"
msgstr "%s: Ogiltig omlokaliseringstyp exporterad: %d"
-#: aout-cris.c:252
+#: aout-cris.c:251
#, c-format
msgid "%s: Invalid relocation type imported: %d"
msgstr "%s: Ogiltig omlokaliseringstyp importerad: %d"
-#: aout-cris.c:263
+#: aout-cris.c:262
#, c-format
msgid "%s: Bad relocation record imported: %d"
msgstr "%s: Felaktig omlokaliseringstyp importerad: %d"
-#: aoutx.h:1282 aoutx.h:1699
+#: aoutx.h:1295 aoutx.h:1716
#, c-format
msgid "%s: can not represent section `%s' in a.out object file format"
msgstr "%s: kan inte representera sektionen \"%s\" i a.out-objektfilformat"
-#: aoutx.h:1669
+#: aoutx.h:1682
#, c-format
msgid "%s: can not represent section for symbol `%s' in a.out object file format"
msgstr "%s: kan inte representera sektion för symbolen \"%s\" i a.out-objektfilformat"
-#: aoutx.h:1671
+#: aoutx.h:1684
msgid "*unknown*"
msgstr "*okänd*"
-#: aoutx.h:3732
+#: aoutx.h:3776
#, c-format
-msgid "%s: relocateable link from %s to %s not supported"
+msgid "%s: relocatable link from %s to %s not supported"
msgstr "%s: omlokaliseringsbar länk från %s till %s stöds inte"
-#: archive.c:1826
+#: archive.c:1751
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr "Varning: arkivskrivning var långsam: skriver om tidsstämpel\n"
-#: archive.c:2093
+#: archive.c:2014
msgid "Reading archive file mod timestamp"
msgstr "Läser arkivfilens modifieringstidsstämpel"
-#. FIXME: bfd can't call perror.
-#: archive.c:2120
+#: archive.c:2040
msgid "Writing updated armap timestamp"
msgstr "Skriver uppdaterad armap-tidsstämpel"
-#: bfd.c:274
+#: bfd.c:280
msgid "No error"
msgstr "Inget fel"
-#: bfd.c:275
+#: bfd.c:281
msgid "System call error"
msgstr "Systemanropsfel"
-#: bfd.c:276
+#: bfd.c:282
msgid "Invalid bfd target"
msgstr "Ogiltigt bfd-mål"
-#: bfd.c:277
+#: bfd.c:283
msgid "File in wrong format"
msgstr "Filen är i fel format"
-#: bfd.c:278
+#: bfd.c:284
msgid "Archive object file in wrong format"
msgstr "Arkivobjektfil är i fel format"
-#: bfd.c:279
+#: bfd.c:285
msgid "Invalid operation"
msgstr "Ogiltig åtgärd"
-#: bfd.c:280
+#: bfd.c:286
msgid "Memory exhausted"
msgstr "Minnet är slut"
-#: bfd.c:281
+#: bfd.c:287
msgid "No symbols"
msgstr "Inga symboler"
-#: bfd.c:282
+#: bfd.c:288
msgid "Archive has no index; run ranlib to add one"
msgstr "Arkivet har inget index; kör ranlib för att lägga till ett"
-#: bfd.c:283
+#: bfd.c:289
msgid "No more archived files"
msgstr "Inga fler arkiverade filer"
-#: bfd.c:284
+#: bfd.c:290
msgid "Malformed archive"
msgstr "Trasigt arkiv"
-#: bfd.c:285
+#: bfd.c:291
msgid "File format not recognized"
msgstr "Filformatet känns inte igen"
-#: bfd.c:286
+#: bfd.c:292
msgid "File format is ambiguous"
msgstr "Filformatet är tvetydigt"
-#: bfd.c:287
+#: bfd.c:293
msgid "Section has no contents"
msgstr "Sektionen har inget innehåll"
-#: bfd.c:288
+#: bfd.c:294
msgid "Nonrepresentable section on output"
msgstr "Ickerepresenterbar sektion i utdata"
-#: bfd.c:289
+#: bfd.c:295
msgid "Symbol needs debug section which does not exist"
msgstr "Symbolen kräver felsökningssektion som inte finns"
-#: bfd.c:290
+#: bfd.c:296
msgid "Bad value"
msgstr "Felaktigt värde"
-#: bfd.c:291
+#: bfd.c:297
msgid "File truncated"
msgstr "Filen trunkerad"
-#: bfd.c:292
+#: bfd.c:298
msgid "File too big"
msgstr "Filen är för stor"
-#: bfd.c:293
+#: bfd.c:299
msgid "#<Invalid error code>"
msgstr "#<Ogiltig felkod>"
-#: bfd.c:700
+#: bfd.c:687
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "BFD %s-försäkran misslyckades %s:%d"
-#: bfd.c:719
+#: bfd.c:703
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr "Internt BFD %s-fel, avbryter vid %s rad %d i %s\n"
-#: bfd.c:723
+#: bfd.c:707
#, c-format
msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr "Internt BFD %s-fel, avbryter vid %s rad %d\n"
-#: bfd.c:725
+#: bfd.c:709
msgid "Please report this bug.\n"
msgstr "Rapportera gärna detta fel.\n"
+#: bfdwin.c:202
+#, c-format
+msgid "not mapping: data=%lx mapped=%d\n"
+msgstr "mappar inte: data=%lx mappat=%d\n"
+
+#: bfdwin.c:205
+msgid "not mapping: env var not set\n"
+msgstr "mappar inte: miljövariabel är inte satt\n"
+
#: binary.c:306
#, c-format
msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
msgstr "Varning: Skrivning av sektionen \"%s\" till enormt (dvs negativt) avlägsen byte 0x%lx."
# src/menus.c:341
-#: coff-a29k.c:119
+#: coff-a29k.c:120
msgid "Missing IHCONST"
msgstr "IHCONST saknas"
# src/menus.c:341
-#: coff-a29k.c:180
+#: coff-a29k.c:181
msgid "Missing IHIHALF"
msgstr "IHIHALF saknas"
-#: coff-a29k.c:212 coff-or32.c:229
+#: coff-a29k.c:213 coff-or32.c:236
msgid "Unrecognized reloc"
msgstr "Okänd omlokalisering"
-#: coff-a29k.c:408
+#: coff-a29k.c:409
msgid "missing IHCONST reloc"
msgstr "IHCONST-omlokalisering saknas"
-#: coff-a29k.c:498
+#: coff-a29k.c:499
msgid "missing IHIHALF reloc"
msgstr "IHIHALF-omlokalisering saknas"
-#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432
+#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397
msgid "GP relative relocation used when GP not defined"
msgstr "GP-relativ omlokalisering användes då GP inte är definierad"
-#: coff-alpha.c:1485
+#: coff-alpha.c:1488
msgid "using multiple gp values"
msgstr "använder flera gp-värden"
-#: coff-arm.c:1066 elf32-arm.h:285
+#: coff-arm.c:1066 elf32-arm.h:294
#, c-format
msgid "%s: unable to find THUMB glue '%s' for `%s'"
msgstr "%s: kunde inte hitta THUMB-klistret \"%s\" till \"%s\""
-#: coff-arm.c:1096 elf32-arm.h:320
+#: coff-arm.c:1096 elf32-arm.h:329
#, c-format
msgid "%s: unable to find ARM glue '%s' for `%s'"
msgstr "%s: kunde inte hitta ARM-klistret \"%s\" till \"%s\""
-#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991
+#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999
#, c-format
msgid "%s(%s): warning: interworking not enabled."
msgstr "%s(%s): varning: samverkande är inte aktiverat."
-#: coff-arm.c:1395 elf32-arm.h:994
+#: coff-arm.c:1398 elf32-arm.h:1002
#, c-format
msgid " first occurrence: %s: arm call to thumb"
msgstr " första förekomst: %s: arm-anrop till thumb"
-#: coff-arm.c:1490 elf32-arm.h:890
+#: coff-arm.c:1493 elf32-arm.h:895
#, c-format
msgid " first occurrence: %s: thumb call to arm"
msgstr " första förekomst: %s: thumb-anrop till arm"
-#: coff-arm.c:1493
+#: coff-arm.c:1496
msgid " consider relinking with --support-old-code enabled"
msgstr " överväg omlänkning med --support-old-code aktiverat"
-#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031
+#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr "%s: felaktig omlokaliseringsadress 0x%lx i sektionen \"%s\""
-#: coff-arm.c:2127
+#: coff-arm.c:2132
#, c-format
msgid "%s: illegal symbol index in reloc: %d"
msgstr "%s: otillåtet symbolindex i omlokalisering: %d"
-#: coff-arm.c:2255
+#: coff-arm.c:2265
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr "FEL: %s kompilerad för APCS-%d, medan %s är kompilerad för APCS-%d"
-#: coff-arm.c:2270 elf32-arm.h:2297
+#: coff-arm.c:2280 elf32-arm.h:2328
#, c-format
msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers"
msgstr "FEL: %s skickar flyttal i flyttalsregister, medan %s skickar dem i heltalsregister"
-#: coff-arm.c:2273 elf32-arm.h:2302
+#: coff-arm.c:2283 elf32-arm.h:2333
#, c-format
msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers"
msgstr "FEL: %s skickar flyttal i heltalsregister, medan %s skickar dem i flyttalsregister"
-#: coff-arm.c:2288
+#: coff-arm.c:2298
#, c-format
msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position"
msgstr "FEL: %s är kompilerad som positionsoberoende kod, medan målet %s har absolut position"
-#: coff-arm.c:2291
+#: coff-arm.c:2301
#, c-format
msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent"
msgstr "FEL: %s är kompilerad som kod med absolut position, medan målet %s är positionsoberoende"
-#: coff-arm.c:2320 elf32-arm.h:2358
+#: coff-arm.c:2330 elf32-arm.h:2405
#, c-format
msgid "Warning: %s supports interworking, whereas %s does not"
msgstr "Varning: %s stöder samverkande, medan %s däremot inte gör det"
-#: coff-arm.c:2323 elf32-arm.h:2365
+#: coff-arm.c:2333 elf32-arm.h:2412
#, c-format
msgid "Warning: %s does not support interworking, whereas %s does"
msgstr "Varning: %s stöder inte samverkande, medan %s däremot gör det"
-#: coff-arm.c:2350
+#: coff-arm.c:2360
#, c-format
msgid "private flags = %x:"
msgstr "privata flaggor = %x:"
-#: coff-arm.c:2358 elf32-arm.h:2418
+#: coff-arm.c:2368 elf32-arm.h:2467
msgid " [floats passed in float registers]"
msgstr " [flyttal skickade i flyttalsregister]"
-#: coff-arm.c:2360
+#: coff-arm.c:2370
msgid " [floats passed in integer registers]"
msgstr " [flyttal skickade i heltalsregister]"
-#: coff-arm.c:2363 elf32-arm.h:2421
+#: coff-arm.c:2373 elf32-arm.h:2470
msgid " [position independent]"
msgstr " [positionsoberoende]"
-#: coff-arm.c:2365
+#: coff-arm.c:2375
msgid " [absolute position]"
msgstr " [absolut position]"
-#: coff-arm.c:2369
+#: coff-arm.c:2379
msgid " [interworking flag not initialised]"
msgstr " [samverkandeflagga är inte initierad]"
-#: coff-arm.c:2371
+#: coff-arm.c:2381
msgid " [interworking supported]"
msgstr " [samverkan stöds]"
-#: coff-arm.c:2373
+#: coff-arm.c:2383
msgid " [interworking not supported]"
msgstr " [samverkan stöds inte]"
-#: coff-arm.c:2421 elf32-arm.h:2124
+#: coff-arm.c:2431 elf32-arm.h:2150
#, c-format
msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"
msgstr "Varning: Ställer inte in samverkansflaggan för %s eftersom den redan har angivits som inte samverkande"
-#: coff-arm.c:2425 elf32-arm.h:2128
+#: coff-arm.c:2435 elf32-arm.h:2154
#, c-format
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr "Varning: Stänger av samverkansflaggan för %s på grund av begäran utifrån"
-#: coff-i960.c:136 coff-i960.c:485
+#: coff-h8300.c:1096
+#, c-format
+msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
+msgstr "kan inte hantera R_MEM_INDIRECT-omlokalisering vid användning av %s-utdata"
+
+#: coff-i960.c:137 coff-i960.c:486
msgid "uncertain calling convention for non-COFF symbol"
msgstr "osäker anropskonvention för icke-COFF-symbol"
-#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844
+#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783
msgid "unsupported reloc type"
msgstr "omlokaliseringstypen stöds inte"
-#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609
+#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554
msgid "GP relative relocation when _gp not defined"
msgstr "GP-relativ omlokalisering då _gp inte var definierat"
#. No other sections should appear in -membedded-pic
#. code.
-#: coff-mips.c:2466
+#: coff-mips.c:2431
msgid "reloc against unsupported section"
msgstr "omlokalisering mot sektion som inte stöds"
-#: coff-mips.c:2474
+#: coff-mips.c:2439
msgid "reloc not properly aligned"
msgstr "omlokalisering inte på jämn gräns"
-#: coff-rs6000.c:2766
+#: coff-rs6000.c:2790
#, c-format
msgid "%s: unsupported relocation type 0x%02x"
msgstr "%s: omlokaliseringstypen 0x%02x stöds inte"
-#: coff-rs6000.c:2859
+#: coff-rs6000.c:2883
#, c-format
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr "%s: TOC-omlokalisering vid 0x%x till symbolen \"%s\" utan någon TOC-post"
-#: coff-rs6000.c:3590 coff64-rs6000.c:2091
+#: coff-rs6000.c:3616 coff64-rs6000.c:2109
#, c-format
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr "%s: symbolen \"%s\" har okänd smclas %d"
-#: coff-tic54x.c:279 coff-tic80.c:449
+#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450
#, c-format
msgid "Unrecognized reloc type 0x%x"
msgstr "Okänd omlokaliseringstyp 0x%x"
-#: coff-tic54x.c:390 coffcode.h:4974
+#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr "%s: varning: otillåtet symbolindex %ld i omlokaliseringarna"
-#: coff-w65.c:363
+#: coff-w65.c:364
#, c-format
msgid "ignoring reloc %s\n"
msgstr "ignorerar omlokalisering %s\n"
-#: coffcode.h:1086
+#: coffcode.h:1108
#, c-format
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr "%s (%s): Sektionsflaggan %s (0x%x) ignorerades"
-#: coffcode.h:2143
+#: coffcode.h:2214
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr "Okänt TI COFF-målid \"0x%x\""
-#: coffcode.h:4365
+#: coffcode.h:4437
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr "%s: varning: otillåtet symbolindex %ld i radnummer"
-#: coffcode.h:4379
+#: coffcode.h:4451
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr "%s: varning: dubbel radnummersinformation för \"%s\""
-#: coffcode.h:4736
+#: coffcode.h:4805
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr "%s: Okänd lagringsklass %d för %s-symbolen \"%s\""
-#: coffcode.h:4867
+#: coffcode.h:4938
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr "varning: %s: lokala symbolen \"%s\" har ingen sektion"
-#: coffcode.h:5012
+#: coffcode.h:5083
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr "%s: otillåten omlokaliseringstyp %d på adress 0x%lx"
-#: coffgen.c:1661
+#: coffgen.c:1666
#, c-format
msgid "%s: bad string table size %lu"
msgstr "%s: felaktig strängtabellstorlek %lu"
-#: cofflink.c:534 elflink.h:1912
+#: cofflink.c:538 elflink.h:1276
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
msgstr "Varning: typen på symbolen \"%s\" ändrades från %d till %d i %s"
-#: cofflink.c:2321
+#: cofflink.c:2328
#, c-format
msgid "%s: relocs in section `%s', but it has no contents"
msgstr "%s: omlokaliseringar i sektionen \"%s\", men den har inget innehåll"
-#: cofflink.c:2664 coffswap.h:877
+#: cofflink.c:2671 coffswap.h:890
#, c-format
msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%s: %s: omlokalisering ger överspill: 0x%lx > 0xffff"
-#: cofflink.c:2673 coffswap.h:864
+#: cofflink.c:2680 coffswap.h:876
#, c-format
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: varning: %s: radnummer ger överspill: 0x%lx > 0xffff"
-#: dwarf2.c:382
+#: cpu-arm.c:196 cpu-arm.c:206
+#, c-format
+msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale"
+msgstr "FEL: %s kompilerad för EP9312, medan %s är kompilerad för XScale"
+
+#: cpu-arm.c:344
+#, c-format
+msgid "warning: unable to update contents of %s section in %s"
+msgstr "varning: kan inte uppdatera innehållet i %s-sektion i %s"
+
+#: dwarf2.c:380
msgid "Dwarf Error: Can't find .debug_str section."
msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_str."
-#: dwarf2.c:399
+#: dwarf2.c:397
#, c-format
msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)."
msgstr "Dwarf-fel: DW_FORM_strp-avståndet (%lu) större än eller lika med storleken på .debug_str (%lu)."
-#: dwarf2.c:543
+#: dwarf2.c:541
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_abbrev."
-#: dwarf2.c:560
+#: dwarf2.c:556
#, c-format
msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)."
msgstr "Dwarf-fel: Förkortningsavståndet (%lu) större än eller lika med storleken .debug_abbrev (%lu)."
-#: dwarf2.c:757
+#: dwarf2.c:756
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
msgstr "Dwarf-fel: Ogiltig eller ohanterat FORM-värde: %u."
-#: dwarf2.c:852
+#: dwarf2.c:933
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr "Dwarf-fel: trasig radnummerssektion (felaktigt filnummer)."
-#: dwarf2.c:938
+#: dwarf2.c:1032
msgid "Dwarf Error: Can't find .debug_line section."
msgstr "Dwarf-fel: Kan inte hitta sektionen .debug_line."
-#: dwarf2.c:961
+#: dwarf2.c:1049
#, c-format
msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)."
msgstr "Dwarf-fel: Radavståndet (%lu) större än eller lika med storleken .debug_line (%lu)."
-#: dwarf2.c:1159
+#: dwarf2.c:1255
msgid "Dwarf Error: mangled line number section."
msgstr "Dwarf-fel: trasig radnummerssektion."
-#: dwarf2.c:1355 dwarf2.c:1566
+#: dwarf2.c:1470 dwarf2.c:1620
#, c-format
msgid "Dwarf Error: Could not find abbrev number %u."
msgstr "Dwarf-fel: Kunde inte hitta förkortningsnumret %u."
-#: dwarf2.c:1527
+#: dwarf2.c:1581
#, c-format
msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information."
msgstr "Dwarf-fel: hittade dwarf version \"%u\", denna läsare hanterar endast information från version 2."
-#: dwarf2.c:1534
+#: dwarf2.c:1588
#, c-format
msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
msgstr "Dwarf-fel: hittade adresstorleken \"%u\", denna läsare kan inte hantera storlekar större än \"%u\"."
-#: dwarf2.c:1557
+#: dwarf2.c:1611
#, c-format
msgid "Dwarf Error: Bad abbrev number: %u."
msgstr "Dwarf-fel: Felaktigt förkortningsnummer: %u."
-#: ecoff.c:1318
+#: ecoff.c:1339
#, c-format
msgid "Unknown basic type %d"
msgstr "Okänd grundtyp %d"
-#: ecoff.c:1578
+#: ecoff.c:1599
#, c-format
msgid ""
"\n"
@@ -502,7 +525,7 @@ msgstr ""
"\n"
" Symbol slut+1: %ld"
-#: ecoff.c:1585 ecoff.c:1588
+#: ecoff.c:1606 ecoff.c:1609
#, c-format
msgid ""
"\n"
@@ -511,7 +534,7 @@ msgstr ""
"\n"
" Första symbolen: %ld"
-#: ecoff.c:1600
+#: ecoff.c:1621
#, c-format
msgid ""
"\n"
@@ -520,7 +543,7 @@ msgstr ""
"\n"
" Symbol slut+1: %-7ld Typ: %s"
-#: ecoff.c:1607
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
@@ -529,7 +552,7 @@ msgstr ""
"\n"
" Lokal symbol: %ld"
-#: ecoff.c:1615
+#: ecoff.c:1636
#, c-format
msgid ""
"\n"
@@ -538,7 +561,7 @@ msgstr ""
"\n"
" struct; symbol slut+1: %ld"
-#: ecoff.c:1620
+#: ecoff.c:1641
#, c-format
msgid ""
"\n"
@@ -547,7 +570,7 @@ msgstr ""
"\n"
" union; symbol slut+1: %ld"
-#: ecoff.c:1625
+#: ecoff.c:1646
#, c-format
msgid ""
"\n"
@@ -556,7 +579,7 @@ msgstr ""
"\n"
" enum; symbol slut+1: %ld"
-#: ecoff.c:1631
+#: ecoff.c:1652
#, c-format
msgid ""
"\n"
@@ -565,54 +588,58 @@ msgstr ""
"\n"
" Typ: %s"
-#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213
-#: elf64-sh64.c:1659
+#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704
#, c-format
msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr "%s: varning: olöslig omlokalisering mot symbolen \"%s\" från sektionen %s"
-#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833
-#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809
-#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439
-#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302
+#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812
+#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815
+#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
+#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510
+#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976
+#: elf64-mmix.c:1332
msgid "internal error: out of range error"
msgstr "internt fel: utanför intervallet"
-#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837
-#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813
-#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443
-#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264
+#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816
+#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819
+#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
+#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440
+#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452
msgid "internal error: unsupported relocation error"
msgstr "internt fel: omlokaliseringen stöds inte"
-#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489
-#: elf32-h8300.c:556 elf32-m32r.c:1286
+#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578
+#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
msgid "internal error: dangerous error"
msgstr "internt fel: farligt fel"
-#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845
-#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821
-#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451
-#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314
+#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824
+#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827
+#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
+#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522
+#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988
+#: elf64-mmix.c:1344
msgid "internal error: unknown error"
msgstr "internt fel: okänt fel"
-#: elf.c:343
+#: elf.c:372
#, c-format
msgid "%s: invalid string offset %u >= %lu for section `%s'"
msgstr "%s: ogiltigt strängavstånd %u >= %lu för sektionen \"%s\""
-#: elf.c:589
+#: elf.c:624
#, c-format
msgid "%s: invalid SHT_GROUP entry"
msgstr "%s: ogiltig SHT_GROUP-post"
-#: elf.c:660
+#: elf.c:695
#, c-format
msgid "%s: no group info for section %s"
msgstr "%s: ingen gruppinformation för sektionen %s"
-#: elf.c:1023
+#: elf.c:1055
msgid ""
"\n"
"Program Header:\n"
@@ -620,7 +647,7 @@ msgstr ""
"\n"
"Programhuvud:\n"
-#: elf.c:1073
+#: elf.c:1106
msgid ""
"\n"
"Dynamic Section:\n"
@@ -628,7 +655,7 @@ msgstr ""
"\n"
"Dynamisk sektion:\n"
-#: elf.c:1202
+#: elf.c:1235
msgid ""
"\n"
"Version definitions:\n"
@@ -636,7 +663,7 @@ msgstr ""
"\n"
"Versionsdefinitioner:\n"
-#: elf.c:1225
+#: elf.c:1258
msgid ""
"\n"
"Version References:\n"
@@ -644,224 +671,239 @@ msgstr ""
"\n"
"Versionsreferenser:\n"
-#: elf.c:1230
+#: elf.c:1263
#, c-format
msgid " required from %s:\n"
msgstr " krävs från %s:\n"
-#: elf.c:1902
+#: elf.c:1944
#, c-format
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr "%s: ogiltig länk %lu för omlokaliseringssektion %s (index %u)"
-#: elf.c:3603
+#: elf.c:3686
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr "%s: Inte tillräckligt med utrymme för programhuvuden (allokerade %u, behöver %u)"
-#: elf.c:3708
+#: elf.c:3791
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr "%s: Inte tillräckligt med utrymme för programhuvuden, försök att länka med -N"
-#: elf.c:3833
+#: elf.c:3922
#, c-format
msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x"
msgstr "Fel: Första sektionen i segmentet (%s) börjar vid 0x%x medan segmentet börjar med 0x%x"
-#: elf.c:4148
+#: elf.c:4242
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr "%s: varning: allokerad sektion \"%s\" inte i segment"
-#: elf.c:4472
+#: elf.c:4566
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr "%s: symbolen \"%s\" krävs men finns inte med"
-#: elf.c:4749
+#: elf.c:4854
#, c-format
msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr "%s: varning: Tomt inläsningsbart segment upptäckt, är detta meningen?\n"
-#: elf.c:6193
+#: elf.c:5485
+#, c-format
+msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr "Kan inte hitta ekvivalent utdatasektion för symbolen \"%s\" från sektionen \"%s\""
+
+#: elf.c:6298
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr "%s: omlokaliseringstypen %s stöds inte"
-#: elf32-arm.h:1221
+#: elf32-arm.h:1228
#, c-format
msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr "%s: Varning: Arm BLX-instruktion använder Arm-funktionen \"%s\" som mål."
-#: elf32-arm.h:1417
+#: elf32-arm.h:1424
#, c-format
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr "%s: Varning: Thumb BLX-instruktionen använder thumb-funktionen \"%s\" som mål."
-#: elf32-arm.h:1914 elf32-sh.c:4125
+#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr "%s(%s+0x%lx): %s omlokalisering mot SEC_MERGE-sektion"
-#: elf32-arm.h:2008
+#: elf32-arm.h:2012
#, c-format
msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr "%s: varning: olöslig omlokalisering %d mot symbolen \"%s\" från sektionen %s"
-#: elf32-arm.h:2176
+#: elf32-arm.h:2202
#, c-format
msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"
msgstr "Varning: Stänger av samverkandeflaggan i %s eftersom icke-samverkande kod i %s har länkats med det"
-#: elf32-arm.h:2271
+#: elf32-arm.h:2302
#, c-format
msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d"
msgstr "FEL: %s är kompilerad för EABI version %d, medan %s är kompilerad för version %d"
-#: elf32-arm.h:2285
+#: elf32-arm.h:2316
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"
msgstr "FEL: %s är kompilerad för APCS-%d, medan målet %s använder APCS-%d"
-#: elf32-arm.h:2313
+#: elf32-arm.h:2344
#, c-format
-msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"
-msgstr "FEL: %s använder VFP-instruktioner, medan %s använder FPA-instruktioner"
+msgid "ERROR: %s uses VFP instructions, whereas %s does not"
+msgstr "FEL: %s använder VFP-instruktioner, men det gör inte %s"
-#: elf32-arm.h:2318
+#: elf32-arm.h:2349
#, c-format
-msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"
-msgstr "FEL: %s använder FPA-instruktioner, medan %s använder VFP-instruktioner"
+msgid "ERROR: %s uses FPA instructions, whereas %s does not"
+msgstr "FEL: %s använder FPA-instruktioner, men det gör inte %s"
-#: elf32-arm.h:2338
+#: elf32-arm.h:2360 elf32-arm.h:2365
+#, c-format
+msgid "ERROR: %s uses Maverick instructions, whereas %s does not"
+msgstr "FEL: %s använder Maverick-instruktioner, men det gör inte %s"
+
+#: elf32-arm.h:2385
#, c-format
msgid "ERROR: %s uses software FP, whereas %s uses hardware FP"
msgstr "FEL: %s använder programvaruflyttal, medan %s använder hårdvaruflyttal"
-#: elf32-arm.h:2343
+#: elf32-arm.h:2390
#, c-format
msgid "ERROR: %s uses hardware FP, whereas %s uses software FP"
msgstr "FEL: %s använder hårdvaruflyttal, medan %s använder programvaruflyttal"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543
-#: elfxx-mips.c:7756
+#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397
+#: elf32-vax.c:546 elfxx-mips.c:9238
#, c-format
msgid "private flags = %lx:"
msgstr "privata flaggor = %lx:"
-#: elf32-arm.h:2405
+#: elf32-arm.h:2452
msgid " [interworking enabled]"
msgstr " [samverkande är aktiverat]"
-#: elf32-arm.h:2413
+#: elf32-arm.h:2460
msgid " [VFP float format]"
msgstr " [VFP-flyttalsformat]"
-#: elf32-arm.h:2415
+#: elf32-arm.h:2462
+msgid " [Maverick float format]"
+msgstr " [Maverick-flyttalsformat]"
+
+#: elf32-arm.h:2464
msgid " [FPA float format]"
msgstr " [FPA-flyttalsformat]"
-#: elf32-arm.h:2424
+#: elf32-arm.h:2473
msgid " [new ABI]"
msgstr " [nytt ABI]"
-#: elf32-arm.h:2427
+#: elf32-arm.h:2476
msgid " [old ABI]"
msgstr " [gammalt ABI]"
-#: elf32-arm.h:2430
+#: elf32-arm.h:2479
msgid " [software FP]"
msgstr " [programvaru-FP]"
-#: elf32-arm.h:2438
+#: elf32-arm.h:2488
msgid " [Version1 EABI]"
msgstr " [Version1 EABI]"
-#: elf32-arm.h:2441 elf32-arm.h:2452
+#: elf32-arm.h:2491 elf32-arm.h:2502
msgid " [sorted symbol table]"
msgstr " [sorterad symboltabell]"
-#: elf32-arm.h:2443 elf32-arm.h:2454
+#: elf32-arm.h:2493 elf32-arm.h:2504
msgid " [unsorted symbol table]"
msgstr " [osorterad symboltabell]"
-#: elf32-arm.h:2449
+#: elf32-arm.h:2499
msgid " [Version2 EABI]"
msgstr " [Version2 EABI]"
-#: elf32-arm.h:2457
+#: elf32-arm.h:2507
msgid " [dynamic symbols use segment index]"
msgstr " [dynamiska symboler använder segmentindex]"
-#: elf32-arm.h:2460
+#: elf32-arm.h:2510
msgid " [mapping symbols precede others]"
msgstr " [mappsymboler har företräde före andra]"
-#: elf32-arm.h:2467
+#: elf32-arm.h:2517
msgid " <EABI version unrecognised>"
msgstr " <EABI-version känns inte igen>"
-#: elf32-arm.h:2474
+#: elf32-arm.h:2524
msgid " [relocatable executable]"
msgstr " [omlokaliseringsbar körbar fil]"
-#: elf32-arm.h:2477
+#: elf32-arm.h:2527
msgid " [has entry point]"
msgstr " [har startpunkt]"
-#: elf32-arm.h:2482
+#: elf32-arm.h:2532
msgid "<Unrecognised flag bits set>"
msgstr "<Okända flaggbitar satta>"
-#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817
-#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699
-#: elf32-xstormy16.c:941 elf64-mmix.c:1310
+#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823
+#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518
+#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984
+#: elf64-mmix.c:1340
msgid "internal error: dangerous relocation"
msgstr "internt fel: farlig omlokalisering"
-#: elf32-cris.c:949
+#: elf32-cris.c:931
#, c-format
msgid "%s: unresolvable relocation %s against symbol `%s' from %s section"
msgstr "%s: olöslig omlokalisering %s mot symbolen \"%s\" från sektionen %s"
-#: elf32-cris.c:1012
+#: elf32-cris.c:993
#, c-format
msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section"
msgstr "%s: Varken någon PLT eller GOT för omlokalisering %s mot symbolen \"%s\" från sektionen %s"
-#: elf32-cris.c:1015 elf32-cris.c:1141
+#: elf32-cris.c:996 elf32-cris.c:1122
msgid "[whose name is lost]"
msgstr "[vars namn tappats bort]"
-#: elf32-cris.c:1130
+#: elf32-cris.c:1111
#, c-format
msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section"
msgstr "%s: omlokalisering %s med icke-tomt addendum %d mot lokal symbol från sektionen %s"
-#: elf32-cris.c:1137
+#: elf32-cris.c:1118
#, c-format
msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section"
msgstr "%s: omlokalisering %s med icke-tomt addendum %d mot symbolen \"%s\" från sektionen %s"
-#: elf32-cris.c:1155
+#: elf32-cris.c:1143
#, c-format
msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr "%s: omlokaliseringen %s är inte tillåten för global symbol: \"%s\" från sektionen %s"
-#: elf32-cris.c:1170
+#: elf32-cris.c:1158
#, c-format
msgid "%s: relocation %s in section %s with no GOT created"
msgstr "%s: omlokalisering %s i sektionen %s utan GOT skapad"
-#: elf32-cris.c:1288
+#: elf32-cris.c:1277
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr "%s: Intern inkonsistens; ingen omlokaliseringssektion %s"
-#: elf32-cris.c:2514
+#: elf32-cris.c:2500
#, c-format
msgid ""
"%s, section %s:\n"
@@ -870,492 +912,645 @@ msgstr ""
"%s, sektion %s:\n"
" omlokaliseringen %s bör inte användas i ett delat objekt; kompilera om med -fPIC"
-#: elf32-cris.c:2991
+#: elf32-cris.c:2978
msgid " [symbols have a _ prefix]"
msgstr " [symboler har ett _-prefix]"
-#: elf32-cris.c:3030
+#: elf32-cris.c:3017
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%s: använder symboler med _-prefix, men skriver fil med symboler utan prefix"
-#: elf32-cris.c:3031
+#: elf32-cris.c:3018
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%s: använder symboler utan prefix, men skriver fil med symboler med _-prefix"
-#: elf32-frv.c:1217
+#: elf32-frv.c:1223
#, c-format
msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%s: kompilerad med %s och länkad med moduler som använder icke-pic-omlokalisering"
-#: elf32-frv.c:1267
+#: elf32-frv.c:1273 elf32-iq2000.c:895
#, c-format
msgid "%s: compiled with %s and linked with modules compiled with %s"
msgstr "%s: kompilerad med %s och länkad med moduler som kompilerats med %s"
-#: elf32-frv.c:1279
+#: elf32-frv.c:1285
#, c-format
msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr "%s: använder andra okända e_flags-fält (0x%lx) än tidigare moduler (0x%lx)"
-#: elf32-frv.c:1315
+#: elf32-frv.c:1321 elf32-iq2000.c:933
#, c-format
msgid "private flags = 0x%lx:"
msgstr "privata flaggor = 0x%lx:"
-#: elf32-gen.c:82 elf64-gen.c:82
+#: elf32-gen.c:83 elf64-gen.c:82
#, c-format
msgid "%s: Relocations in generic ELF (EM: %d)"
msgstr "%s: Omlokalisering i allmän ELF (EM: %d)"
-#: elf32-hppa.c:671 elf64-ppc.c:2323
+#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr "%s: kan inte skapa stubbstarten %s"
-#: elf32-hppa.c:956 elf32-hppa.c:3555
+#: elf32-hppa.c:957 elf32-hppa.c:3538
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr "%s(%s+0x%lx): kan inte nå %s, kompilera om med -ffunction-sections"
-#: elf32-hppa.c:1338 elf64-x86-64.c:673
+#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797
#, c-format
msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr "%s: omlokaliseringen %s kan inte användas då ett delat objekt skapas; kompilera om med -fPIC"
-#: elf32-hppa.c:1358
+#: elf32-hppa.c:1360
#, c-format
msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC"
msgstr "%s: omlokaliseringen %s bör inte användas då ett delat objekt skapas; kompilera om med -fPIC"
-#: elf32-hppa.c:1551
+#: elf32-hppa.c:1553
#, c-format
msgid "Could not find relocation section for %s"
msgstr "Kunde inte hitta omlokaliseringssektion för %s"
-#: elf32-hppa.c:2855
+#: elf32-hppa.c:2828
#, c-format
msgid "%s: duplicate export stub %s"
msgstr "%s: dubbel exportstubb %s"
-#: elf32-hppa.c:3433
+#: elf32-hppa.c:3416
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr "%s(%s+0x%lx): fixar %s"
-#: elf32-hppa.c:4080
+#: elf32-hppa.c:4039
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr "%s(%s+0x%lx): kan inte hantera %s för %s"
-#: elf32-hppa.c:4393
+#: elf32-hppa.c:4357
msgid ".got section not immediately after .plt section"
msgstr ".got-sektionen följer inte omedelbart efter .plt-sektion"
-#: elf32-i386.c:379
+#: elf32-i386.c:326
#, c-format
msgid "%s: invalid relocation type %d"
msgstr "%s: ogiltig omlokaliseringstyp %d"
-#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591
+#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637
+#: elf64-s390.c:943 elf64-x86-64.c:650
#, c-format
msgid "%s: bad symbol index: %d"
msgstr "%s: felaktigt symbolindex: %d"
-#: elf32-i386.c:948
+#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011
+#: elf64-s390.c:1129
#, c-format
msgid "%s: `%s' accessed both as normal and thread local symbol"
msgstr "%s: \"%s\" anropad både som lokal normal symbol och lokal trådsymbol"
-#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759
-#: elf64-x86-64.c:761
+#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243
+#: elf64-x86-64.c:886
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr "%s: felaktig omlokaliseringssektionsnamn \"%s\""
-#: elf32-i386.c:1159 elf64-alpha.c:4768
-#, c-format
-msgid "%s: TLS local exec code cannot be linked into shared objects"
-msgstr "%s: lokal TLS-exekveringskod kan inte länkas in i delade objekt"
-
-#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918
-#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948
+#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879
+#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664
+#: elf64-x86-64.c:2452
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr "%s(%s+0x%lx): olöslig omlokalisering mot symbolen \"%s\""
-#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983
-#: elf64-x86-64.c:1986
+#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068
+#: elf64-x86-64.c:2490
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr "%s(%s+0x%lx): omlokalisering mot \"%s\": fel %d"
-#: elf32-m32r.c:924
+#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740
+msgid "ip2k relaxer: switch table without complete matching relocation information."
+msgstr "ip2k-relaxerare: switchtabell utan helt matchande omlokaliseringsinformation."
+
+#: elf32-ip2k.c:588 elf32-ip2k.c:767
+msgid "ip2k relaxer: switch table header corrupt."
+msgstr "ip2k-relaxerare: switchtabellshuvud trasigt."
+
+#: elf32-ip2k.c:1395
+#, c-format
+msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "ip2k-länkare: sidinstruktion saknas vid 0x%08lx (dest = 0x%08lx)."
+
+#: elf32-ip2k.c:1409
+#, c-format
+msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "ip2k-länkare: redundant sidinstruktion vid 0x%08lx (dest = 0x%08lx)."
+
+#. Only if it's not an unresolved symbol.
+#: elf32-ip2k.c:1593
+msgid "unsupported relocation between data/insn address spaces"
+msgstr "omlokalisering mellan data/-instruktionsadressutrymmen stöds inte"
+
+#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072
+#: elfxx-mips.c:9195
+#, c-format
+msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%s: använder andra e_flags-fält (0x%lx) än tidigare moduler (0x%lx)"
+
+#: elf32-m32r.c:930
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "SDA-omlokalisering då _SDA_BASE_ inte är definierat"
-#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185
-#: elf64-alpha.c:4313 elf64-ia64.c:3687
+#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958
+#: elf64-ia64.c:3958
#, c-format
msgid "%s: unknown relocation type %d"
msgstr "%s: okänd omlokaliseringstyp %d"
-#: elf32-m32r.c:1221
+#: elf32-m32r.c:1226
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr "%s: Målet (%s) för en %s-omlokalisering är i fel sektion (%s)"
-#: elf32-m32r.c:1947
+#: elf32-m32r.c:1952
#, c-format
msgid "%s: Instruction set mismatch with previous modules"
msgstr "%s: Instruktionsuppsättning passar inte med tidigare moduler"
-#: elf32-m32r.c:1970
+#: elf32-m32r.c:1975
#, c-format
msgid "private flags = %lx"
msgstr "privata flaggor = %lx"
-#: elf32-m32r.c:1975
+#: elf32-m32r.c:1980
msgid ": m32r instructions"
msgstr ": m32r-instruktioner"
-#: elf32-m32r.c:1976
+#: elf32-m32r.c:1981
msgid ": m32rx instructions"
msgstr ": m32rx-instruktioner"
-#: elf32-m68k.c:413
+#: elf32-m68hc1x.c:1217
+#, c-format
+msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr "Referens till den avlägsna symbolen \"%s\" med hjälp av en felaktig omlokalisering kan resultera i felaktig exekvering"
+
+#: elf32-m68hc1x.c:1240
+#, c-format
+msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
+msgstr "bankad adress [%lx:%04lx] (%lx) är inte i samma bank som den aktuella bankade adressen [%lx:%04lx] (%lx)"
+
+#: elf32-m68hc1x.c:1259
+#, c-format
+msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
+msgstr "referens till en bankad adress [%lx:%04lx] i det normala adressutrymmet vid %04lx"
+
+#: elf32-m68hc1x.c:1396
+#, c-format
+msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr "%s: länkar filer kompilerade för 16-bitars heltal (-mshort) och andra för 32-bitars heltal"
+
+#: elf32-m68hc1x.c:1404
+#, c-format
+msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr "%s: länkar filer kompilerade för 32-bitars dubbelprecisionsflyttal (-fshort-double) och andra för 64-bitars dubbelprecisionsflyttal"
+
+#: elf32-m68hc1x.c:1414
+#, c-format
+msgid "%s: linking files compiled for HCS12 with others compiled for HC12"
+msgstr "%s: länkar filer kompilerade för HCS12 med andra kompilerade för HC12"
+
+#: elf32-m68hc1x.c:1462
+msgid "[abi=32-bit int, "
+msgstr "[abi=32-bitars heltal, "
+
+#: elf32-m68hc1x.c:1464
+msgid "[abi=16-bit int, "
+msgstr "[abi=16-bitars heltal, "
+
+#: elf32-m68hc1x.c:1467
+msgid "64-bit double, "
+msgstr "64-bitars dubbelprecisionsflyttal, "
+
+#: elf32-m68hc1x.c:1469
+msgid "32-bit double, "
+msgstr "32-bitars dubbelprecisionsflyttal, "
+
+#: elf32-m68hc1x.c:1472
+msgid "cpu=HC11]"
+msgstr "cpu=HC11]"
+
+#: elf32-m68hc1x.c:1474
+msgid "cpu=HCS12]"
+msgstr "cpu=HCS12]"
+
+#: elf32-m68hc1x.c:1476
+msgid "cpu=HC12]"
+msgstr "cpu=HC12]"
+
+#: elf32-m68hc1x.c:1479
+msgid " [memory=bank-model]"
+msgstr " [memory=bank-modell]"
+
+#: elf32-m68hc1x.c:1481
+msgid " [memory=flat]"
+msgstr " [memory=platt]"
+
+#: elf32-m68k.c:400
msgid " [cpu32]"
msgstr " [cpu32]"
-#: elf32-m68k.c:416
+#: elf32-m68k.c:403
msgid " [m68000]"
msgstr " [m68000]"
-#: elf32-mcore.c:354 elf32-mcore.c:457
+#: elf32-mcore.c:353 elf32-mcore.c:456
#, c-format
msgid "%s: Relocation %s (%d) is not currently supported.\n"
msgstr "%s: Omlokalisering %s (%d) stöds för närvarande inte.\n"
-#: elf32-mcore.c:442
+#: elf32-mcore.c:441
#, c-format
msgid "%s: Unknown relocation type %d\n"
msgstr "%s: Okänd omlokaliseringstyp %d\n"
-#: elf32-mips.c:1152 elf64-mips.c:1783
+#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr "32-bitars gp-relativ omlokalisering förekom för en extern symbol"
-#: elf32-mips.c:1301
+#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr "Länkning av mips16-objekt till %s-format stöds inte"
-#: elf32-ppc.c:1460
+#: elf32-ppc.c:2056
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr "allmän länkare kan inte hantera %s"
+
+#: elf32-ppc.c:2138
#, c-format
msgid "%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr "%s: kompilerad med -mrelocatable och länkad med moduler som kompilerats normalt"
-#: elf32-ppc.c:1468
+#: elf32-ppc.c:2147
#, c-format
msgid "%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr "%s: kompilerad normalt och länkad med moduler som kompilerats med -mrelocatable"
-#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713
-#, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: använder andra e_flags-fält (0x%lx) än tidigare moduler (0x%lx)"
-
-#: elf32-ppc.c:1592
-#, c-format
-msgid "%s: Unknown special linker type %d"
-msgstr "%s: Okänd speciallänkartyp %d"
-
-#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342
+#: elf32-ppc.c:3413
#, c-format
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr "%s: omlokaliseringen %s kan inte användas då ett delat objekt skapas"
-#: elf32-ppc.c:3126 elf64-ppc.c:5473
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3619
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against local symbol"
+msgstr "%s(%s+0x%lx): %s-omlokalisering mot lokal symbol"
+
+#: elf32-ppc.c:4862 elf64-ppc.c:7789
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr "%s: okänd omlokaliseringstyp %d för symbolen %s"
-#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553
+#: elf32-ppc.c:5113
#, c-format
-msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)"
-msgstr "%s: Målet (%s) för en %s-omlokalisering är i fel utdatasektion (%s)"
+msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'"
+msgstr "%s(%s+0x%lx): icke-tomt addendum på %s-omlokalisering mot \"%s\""
-#: elf32-ppc.c:3619
+#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484
+#, c-format
+msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)"
+msgstr "%s: målet (%s) för en %s-omlokalisering är i fel utdatasektion (%s)"
+
+#: elf32-ppc.c:5539
+#, c-format
+msgid "%s: relocation %s is not yet supported for symbol %s."
+msgstr "%s: omlokaliseringen %s stöds inte än för symbolen %s."
+
+#: elf32-ppc.c:5594 elf64-ppc.c:8461
+#, c-format
+msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr "%s(%s+0x%lx): olöslig %s-omlokalisering mot symbolen \"%s\""
+
+#: elf32-ppc.c:5644 elf64-ppc.c:8507
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against `%s': error %d"
+msgstr "%s(%s+0x%lx): %s-omlokalisering mot \"%s\": fel %d"
+
+#: elf32-ppc.c:5888
+#, c-format
+msgid "corrupt or empty %s section in %s"
+msgstr "trasig eller tom %s-sektion i %s"
+
+#: elf32-ppc.c:5895
+#, c-format
+msgid "unable to read in %s section from %s"
+msgstr "kan inte läsa in %s-sektion från %s"
+
+#: elf32-ppc.c:5901
+#, c-format
+msgid "corrupt %s section in %s"
+msgstr "trasig %s-sektion i %s"
+
+#: elf32-ppc.c:5944
#, c-format
-msgid "%s: Relocation %s is not yet supported for symbol %s."
-msgstr "%s: Omlokaliseringen %s stöds inte än för symbolen %s."
+msgid "warning: unable to set size of %s section in %s"
+msgstr "varning: kan inte ställa in storleken för sektionen %s i %s"
-#: elf32-sh.c:1964
+#: elf32-ppc.c:5994
+msgid "failed to allocate space for new APUinfo section."
+msgstr "misslyckades med att allokera utrymme för ny APUinfo-sektion."
+
+#: elf32-ppc.c:6013
+msgid "failed to compute new APUinfo section."
+msgstr "misslyckades med att beräkna ny APUinfo-sektion."
+
+#: elf32-ppc.c:6016
+msgid "failed to install new APUinfo section."
+msgstr "misslyckades med att installera ny APUinfo-sektion."
+
+#: elf32-s390.c:2256 elf64-s390.c:2226
+#, c-format
+msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s"
+msgstr "%s(%s+0x%lx): ogiltig instruktion för TLS-omlokalisering %s"
+
+#: elf32-sh.c:2103
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr "%s: 0x%lx: varning: felaktigt R_SH_USES-avstånd"
-#: elf32-sh.c:1976
+#: elf32-sh.c:2115
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%s: 0x%lx: varning: R_SH_USES pekar till okänd instruktion 0x%x"
-#: elf32-sh.c:1993
+#: elf32-sh.c:2132
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr "%s: 0x%lx: varning: felaktigt R_SH_USES-inläsningsavstånd"
-#: elf32-sh.c:2008
+#: elf32-sh.c:2147
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr "%s: 0x%lx: varning: kunde inte hitta förväntad omlokalisering"
-#: elf32-sh.c:2036
+#: elf32-sh.c:2175
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr "%s: 0x%lx: varning: symbol i oväntad sektion"
-#: elf32-sh.c:2153
+#: elf32-sh.c:2300
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr "%s: 0x%lx: varning: kunde inte hitta förväntad COUNT-omlokalisering"
-#: elf32-sh.c:2162
+#: elf32-sh.c:2309
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr "%s: 0x%lx: varning: felaktigt antal"
-#: elf32-sh.c:2550 elf32-sh.c:2926
+#: elf32-sh.c:2712 elf32-sh.c:3088
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr "%s: 0x%lx: ödesdigert: omlokalisering ger överspill vid förenklingen"
-#: elf32-sh.c:4073 elf64-sh64.c:1576
+#: elf32-sh.c:4654 elf64-sh64.c:1585
msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
msgstr "Oväntat STO_SH5_ISA32 på lokal symbol hanteras inte"
-#: elf32-sh.c:4284
+#: elf32-sh.c:4809
+#, c-format
+msgid "%s: unresolvable relocation against symbol `%s' from %s section"
+msgstr "%s: olöslig omlokalisering mot symbolen \"%s\" från sektionen %s"
+
+#: elf32-sh.c:4881
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr "%s: 0x%lx: ödesdigert: ojusterat grenmål för omlokalisering för förenklingsstöd"
-#: elf32-sh64.c:203 elf64-sh64.c:2364
+#: elf32-sh.c:6627 elf64-alpha.c:4848
+#, c-format
+msgid "%s: TLS local exec code cannot be linked into shared objects"
+msgstr "%s: lokal TLS-exekveringskod kan inte länkas in i delade objekt"
+
+#: elf32-sh64.c:221 elf64-sh64.c:2407
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: kompilerat som 32-bitarsobjekt och %s är 64-bitars"
-#: elf32-sh64.c:206 elf64-sh64.c:2367
+#: elf32-sh64.c:224 elf64-sh64.c:2410
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: kompilerat som 64-bitarsobjekt och %s är 32-bitars"
-#: elf32-sh64.c:208 elf64-sh64.c:2369
+#: elf32-sh64.c:226 elf64-sh64.c:2412
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: objektstorleken stämmer inte överens med den hos målet %s"
-#: elf32-sh64.c:440 elf64-sh64.c:2941
+#: elf32-sh64.c:461 elf64-sh64.c:2990
#, c-format
msgid "%s: encountered datalabel symbol in input"
msgstr "%s: påträffade dataetikettssymbol i indata"
-#: elf32-sh64.c:523
+#: elf32-sh64.c:544
msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
msgstr "PTB passar inte: en SHmedia-adress (bit 0 == 1)"
-#: elf32-sh64.c:526
+#: elf32-sh64.c:547
msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
msgstr "PTA passar inte: en SHcompact-adress (bit 0 == 0)"
-#: elf32-sh64.c:544
+#: elf32-sh64.c:565
#, c-format
msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
msgstr "%s: GAS-fel: oväntad PTB-instruktion med R_SH_PT_16"
-#: elf32-sh64.c:593 elf64-sh64.c:1703
+#: elf32-sh64.c:614 elf64-sh64.c:1748
#, c-format
msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
msgstr "%s: fel: ojusterad omlokaliseringstyp %d på %08x omlokalisering %08x\n"
-#: elf32-sh64.c:677
+#: elf32-sh64.c:698
#, c-format
msgid "%s: could not write out added .cranges entries"
msgstr "%s: kunde inte skriva ut tillagda .cranges-poster"
-#: elf32-sh64.c:739
+#: elf32-sh64.c:760
#, c-format
msgid "%s: could not write out sorted .cranges entries"
msgstr "%s: kunde inte skriva ut sorterade cranges-poster"
-#: elf32-sparc.c:1535 elf64-sparc.c:2224
+#: elf32-sparc.c:2521 elf64-sparc.c:2314
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr "%s: troligen kompilerad utan -fPIC?"
-#: elf32-sparc.c:2002
+#: elf32-sparc.c:3348
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr "%s: kompilerat för ett 64-bitarssystem och målet är 32-bitars"
-#: elf32-sparc.c:2016
+#: elf32-sparc.c:3362
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr "%s: länkar little endian-filer med big endian-filer"
-#: elf32-v850.c:682
+#: elf32-v850.c:753
#, c-format
msgid "Variable `%s' cannot occupy in multiple small data regions"
msgstr "Variabel \"%s\" kan inte befinna sig i flera små dataområden"
-#: elf32-v850.c:685
+#: elf32-v850.c:756
#, c-format
msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
msgstr "Variabel \"%s\" kan bara vara i ett av de små, tomma och pyttesmå dataområdena"
-#: elf32-v850.c:688
+#: elf32-v850.c:759
#, c-format
msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
msgstr "Variabel \"%s\" kan inte vara i både små och tomma dataområden samtidigt"
-#: elf32-v850.c:691
+#: elf32-v850.c:762
#, c-format
msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
msgstr "Variabel \"%s\" kan inte vara i både små och pyttesmå dataområden samtidigt"
-#: elf32-v850.c:694
+#: elf32-v850.c:765
#, c-format
msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
msgstr "Variabel \"%s\" kan inte vara i både tomma och pyttesmå dataområden samtidigt"
-#: elf32-v850.c:1072
+#: elf32-v850.c:1144
msgid "FAILED to find previous HI16 reloc\n"
msgstr "MISSLYCKADES med att hitta tidigare HI16-omlokalisering\n"
-#: elf32-v850.c:1703
+#: elf32-v850.c:1789
msgid "could not locate special linker symbol __gp"
msgstr "kunde inte lokalisera speciell länkarsymbol __gp"
-#: elf32-v850.c:1707
+#: elf32-v850.c:1793
msgid "could not locate special linker symbol __ep"
msgstr "kunde inte lokalisera speciell länkarsymbol __ep"
-#: elf32-v850.c:1711
+#: elf32-v850.c:1797
msgid "could not locate special linker symbol __ctbp"
msgstr "kunde inte lokalisera speciell länkarsymbol __ctbp"
-#: elf32-v850.c:1875
+#: elf32-v850.c:1963
#, c-format
msgid "%s: Architecture mismatch with previous modules"
msgstr "%s: Arkitekturen passar inte ihop med tidigare moduler"
-#: elf32-v850.c:1895
+#: elf32-v850.c:1983
#, c-format
msgid "private flags = %lx: "
msgstr "privata flaggor = %lx: "
-#: elf32-v850.c:1900
+#: elf32-v850.c:1988
msgid "v850 architecture"
msgstr "v850-arkitektur"
-#: elf32-v850.c:1901
+#: elf32-v850.c:1989
msgid "v850e architecture"
msgstr "v850e-arkitektur"
-#: elf32-v850.c:1902
-msgid "v850ea architecture"
-msgstr "v850ea-arkitektur"
-
-#: elf32-vax.c:546
+#: elf32-vax.c:549
msgid " [nonpic]"
msgstr " [icke-pic]"
-#: elf32-vax.c:549
+#: elf32-vax.c:552
msgid " [d-float]"
msgstr " [d-flyttal]"
-#: elf32-vax.c:552
+#: elf32-vax.c:555
msgid " [g-float]"
msgstr " [g-flyttal]"
-#: elf32-vax.c:674
+#: elf32-vax.c:663
#, c-format
msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
msgstr "%s: varning: GOT-addendum %ld till \"%s\" stämmer inte överens med tidigare GOT-addendum %ld"
-#: elf32-vax.c:1679
+#: elf32-vax.c:1667
#, c-format
msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
msgstr "%s: varning: PLT-addendum %d till \"%s\" från sektionen %s ignorerades"
-#: elf32-vax.c:1814
+#: elf32-vax.c:1802
#, c-format
msgid "%s: warning: %s relocation against symbol `%s' from %s section"
msgstr "%s: varning: %s-omlokalisering mot symbolen \"%s\" från sektionen %s"
-#: elf32-vax.c:1820
+#: elf32-vax.c:1808
#, c-format
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr "%s: varning: %s-omlokalisering till 0x%x från sektionen %s"
-#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280
+#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450
msgid "non-zero addend in @fptr reloc"
msgstr "icke-tomt addendum i @fptr-omlokalisering"
-#: elf64-alpha.c:1097
+#: elf64-alpha.c:1108
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "GPDISP-omlokalisering hittade inga ldah- och lda-instruktioner"
-#: elf64-alpha.c:3675
+#: elf64-alpha.c:3731
#, c-format
msgid "%s: .got subsegment exceeds 64K (size %d)"
msgstr "%s: .got-subsegment överskrider 64 kB (storlek %d)"
-#: elf64-alpha.c:4498 elf64-alpha.c:4510
+#: elf64-alpha.c:4602 elf64-alpha.c:4614
#, c-format
msgid "%s: gp-relative relocation against dynamic symbol %s"
msgstr "%s: gp-relativ omlokalisering mot dynamiska symbolen %s"
-#: elf64-alpha.c:4536 elf64-alpha.c:4676
+#: elf64-alpha.c:4640 elf64-alpha.c:4773
#, c-format
msgid "%s: pc-relative relocation against dynamic symbol %s"
msgstr "%s: pc-relativ omlokalisering mot dynamiska symbolen %s"
-#: elf64-alpha.c:4564
+#: elf64-alpha.c:4668
#, c-format
msgid "%s: change in gp: BRSGP %s"
msgstr "%s: ändring i gp: BRSGP %s"
-#: elf64-alpha.c:4589
+#: elf64-alpha.c:4693
msgid "<unknown>"
msgstr "<okänd>"
-#: elf64-alpha.c:4594
+#: elf64-alpha.c:4698
#, c-format
msgid "%s: !samegp reloc against symbol without .prologue: %s"
msgstr "%s: !samegp-omlokalisering mot symbol utan .prologue: %s"
-#: elf64-alpha.c:4639
+#: elf64-alpha.c:4749
#, c-format
msgid "%s: unhandled dynamic relocation against %s"
msgstr "%s: ohanterad dynamisk omlokalisering mot %s"
-#: elf64-alpha.c:4752
+#: elf64-alpha.c:4832
#, c-format
msgid "%s: dtp-relative relocation against dynamic symbol %s"
msgstr "%s: dtp-relativ omlokalisering mot dynamiska symbolen %s"
-#: elf64-alpha.c:4775
+#: elf64-alpha.c:4855
#, c-format
msgid "%s: tp-relative relocation against dynamic symbol %s"
msgstr "%s: tp-relativ omlokalisering mot dynamiska symbolen %s"
-#: elf64-hppa.c:2080
+#: elf64-hppa.c:2086
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %ld"
msgstr "stubbpost för %s kan inte läsa in .plt, dp-avstånd = %ld"
-#: elf64-mmix.c:1002
+#: elf64-mmix.c:1032
#, c-format
msgid ""
"%s: Internal inconsistency error for value for\n"
@@ -1364,46 +1559,46 @@ msgstr ""
"%s: Intern inkkonsistensfel för värdet för\n"
" länkarallokerat globalt register: länkat: 0x%lx%08lx != avslappnat: 0x%lx%08lx\n"
-#: elf64-mmix.c:1386
+#: elf64-mmix.c:1416
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
msgstr "%s: bas-plus-avståndsomlokalisering mot registersymbol: (okänd) i %s"
-#: elf64-mmix.c:1391
+#: elf64-mmix.c:1421
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
msgstr "%s: bas-plus-avståndsomlokalisering mot registersymbol: %s i %s"
-#: elf64-mmix.c:1435
+#: elf64-mmix.c:1465
#, c-format
msgid "%s: register relocation against non-register symbol: (unknown) in %s"
msgstr "%s: registeromlokalisering mot icke-registersymbol: (okänd) i %s"
-#: elf64-mmix.c:1440
+#: elf64-mmix.c:1470
#, c-format
msgid "%s: register relocation against non-register symbol: %s in %s"
msgstr "%s: registeromlokalisering mot icke-registersymbol: %s i %s"
-#: elf64-mmix.c:1477
+#: elf64-mmix.c:1507
#, c-format
msgid "%s: directive LOCAL valid only with a register or absolute value"
msgstr "%s: LOCAL-direktivet är endast giltigt med ett register eller absolutvärde"
-#: elf64-mmix.c:1505
+#: elf64-mmix.c:1535
#, c-format
msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld."
msgstr "%s: LOCAL-direktiv: Register $%ld är inte ett lokalt register. Första globala registret är $%ld."
-#: elf64-mmix.c:1965
+#: elf64-mmix.c:1994
#, c-format
msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
msgstr "%s: Fel: flera definitioner av \"%s\"; början på %s är inställd i en tidigare länkad fil\n"
-#: elf64-mmix.c:2024
+#: elf64-mmix.c:2053
msgid "Register section has contents\n"
msgstr "Registersektion har innehåll\n"
-#: elf64-mmix.c:2186
+#: elf64-mmix.c:2216
#, c-format
msgid ""
"Internal inconsistency: remaining %u != max %u.\n"
@@ -1412,574 +1607,617 @@ msgstr ""
"Intern inkonsekvens: återstående %u != max %u.\n"
" Rapportera gärna detta fel."
-#: elf64-ppc.c:1669 libbfd.c:1435
+#: elf64-ppc.c:2388 libbfd.c:831
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr "%s: kompilerad för big endian-system och målet är little endian"
-#: elf64-ppc.c:1671 libbfd.c:1437
+#: elf64-ppc.c:2391 libbfd.c:833
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr "%s: kompilerad för ett little endian-system och målet är big endian"
-#: elf64-ppc.c:3610
+#: elf64-ppc.c:4857
#, c-format
msgid "%s: unexpected reloc type %u in .opd section"
msgstr "%s: oväntad omlokaliseringstyp %u i .opd-sektion"
-#: elf64-ppc.c:3630
+#: elf64-ppc.c:4877
#, c-format
msgid "%s: .opd is not a regular array of opd entries"
msgstr "%s: .opd är inte en vanlig vektor med opd-poster"
-#: elf64-ppc.c:3672
+#: elf64-ppc.c:4897
#, c-format
msgid "%s: undefined sym `%s' in .opd section"
msgstr "%s: odefinierad symbol \"%s\" i .opd-sektion"
-#: elf64-ppc.c:4397
+#: elf64-ppc.c:6136
#, c-format
msgid "can't find branch stub `%s'"
msgstr "kan inte hitta grenstubb \"%s\""
-#: elf64-ppc.c:4436 elf64-ppc.c:4501
+#: elf64-ppc.c:6175 elf64-ppc.c:6250
#, c-format
msgid "linkage table error against `%s'"
msgstr "länktabellsfel mot \"%s\""
-#: elf64-ppc.c:4573
+#: elf64-ppc.c:6340
#, c-format
msgid "can't build branch stub `%s'"
msgstr "kan inte bygga grenstubb \"%s\""
-#: elf64-ppc.c:5179
+#: elf64-ppc.c:7047
+msgid ".glink and .plt too far apart"
+msgstr ".glink och .plt för långt ifrån varandra"
+
+#: elf64-ppc.c:7135
msgid "stubs don't match calculated size"
msgstr "stubbar stämmer inte överens med beräknad storlek"
-#: elf64-ppc.c:5828
+#: elf64-ppc.c:7147
#, c-format
-msgid "%s: Relocation %s is not supported for symbol %s."
-msgstr "%s: Omlokaliseringen %s stöds inte för symbolen %s."
+msgid ""
+"linker stubs in %u groups\n"
+" branch %lu\n"
+" toc adjust %lu\n"
+" long branch %lu\n"
+" long toc adj %lu\n"
+" plt call %lu"
+msgstr ""
+"länkarstubbar i %u grupper\n"
+" gren %lu\n"
+" toc-justering %lu\n"
+" lång gren %lu\n"
+" lång toc-just. %lu\n"
+" plt-anrop %lu"
+
+#: elf64-ppc.c:7723
+#, c-format
+msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc"
+msgstr "%s(%s+0x%lx): flera automatiska TOC stöds inte vid användning av dina crt-filer; kompilera om med -mminimal-toc eller uppgradera gcc"
-#: elf64-ppc.c:5872
+#: elf64-ppc.c:7731
#, c-format
-msgid "%s: error: relocation %s not a multiple of 4"
-msgstr "%s: fel: omlokaliseringen %s är inte en multipel av 4"
+msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern"
+msgstr "%s(%s+0x%lx): syskonanropsoptimering till \"%s\" stöder inte flera automatiska TOC; kompilera om med -mminimal-toc eller -fno-optimize-sibling-calls, eller gör \"%s\" extern"
-#: elf64-sparc.c:1280
+#: elf64-ppc.c:8329
+#, c-format
+msgid "%s: relocation %s is not supported for symbol %s."
+msgstr "%s: omlokaliseringen %s stöds inte för symbolen %s."
+
+#: elf64-ppc.c:8408
+#, c-format
+msgid "%s: error: relocation %s not a multiple of %d"
+msgstr "%s: fel: omlokaliseringen %s är inte en multipel av %d"
+
+#: elf64-sparc.c:1370
#, c-format
msgid "%s: check_relocs: unhandled reloc type %d"
msgstr "%s: check_relocs: ohanterad omlokaliseringstyp %d"
-#: elf64-sparc.c:1317
+#: elf64-sparc.c:1407
#, c-format
msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr "%s: Endast register %%g[2367] kan deklareras med STT_REGISTER"
-#: elf64-sparc.c:1337
+#: elf64-sparc.c:1427
#, c-format
msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s"
msgstr "Register %%g%d används inkompatibelt: %s i %s, tidigare %s i %s"
-#: elf64-sparc.c:1360
+#: elf64-sparc.c:1450
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"
msgstr "Symbolen \"%s\" har olika typer: REGISTER i %s, tidigare %s i %s"
-#: elf64-sparc.c:1406
+#: elf64-sparc.c:1496
#, c-format
msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"
msgstr "Symbolen \"%s\" har olika typer: %s i %s, tidigare REGISTER i %s"
-#: elf64-sparc.c:2970
+#: elf64-sparc.c:3053
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr "%s: länkar UltraSPARC-specifik med HAL-specifik kod"
-#: elfcode.h:1198
+#: elf64-x86-64.c:739
+#, c-format
+msgid "%s: %s' accessed both as normal and thread local symbol"
+msgstr "%s: \"%s\" anropad både som lokal normal symbol och lokal trådsymbol"
+
+#: elfcode.h:1113
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr "%s: versionsantal (%ld) stämmer inte med symbolantal (%ld)"
-#: elflink.c:440
+#: elfcode.h:1342
+#, c-format
+msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgstr "%s(%s): omlokalisering %d har ogiltigt symbolindex %ld"
+
+#: elflink.c:1456
#, c-format
-msgid "%s: Section %s is too large to add hole of %ld bytes"
-msgstr "%s: Sektionen %s är för stor för att stoppa hål med %ld byte i"
+msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr "%s: varning: oväntad omdefinition av indirekt versionsangiven symbol \"%s\""
-#: elflink.h:1090
+#: elflink.c:1807
#, c-format
-msgid "%s: warning: unexpected redefinition of `%s'"
-msgstr "%s: varning: oväntad omdefinition av \"%s\""
+msgid "%s: undefined versioned symbol name %s"
+msgstr "%s: odefinierat symbolnamn med version %s"
+
+#: elflink.c:2142
+#, c-format
+msgid "%s: relocation size mismatch in %s section %s"
+msgstr "%s: omlokaliseringsstorleken stämmer inte överens i %s, sektion %s"
-#: elflink.h:1727
+#: elflink.c:2434
+#, c-format
+msgid "warning: type and size of dynamic symbol `%s' are not defined"
+msgstr "varning: typen och storleken på dynamiska symbolen \"%s\" är inte definierade"
+
+#: elflink.h:1022
#, c-format
msgid "%s: %s: invalid version %u (max %d)"
msgstr "%s: %s: ogiltig version %u (max %d)"
-#: elflink.h:1768
+#: elflink.h:1063
#, c-format
msgid "%s: %s: invalid needed version %d"
msgstr "%s: %s: ogiltig krävd version %d"
-#: elflink.h:1890
+#: elflink.h:1238
#, c-format
-msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
-msgstr "Varning: storleken på symbolen \"%s\" ändrades från %lu till %lu i %s"
+msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s"
+msgstr "Varning: justeringen %u på symbolen \"%s\" i %s är mindre än %u i %s"
-#: elflink.h:3174
+#: elflink.h:1252
#, c-format
-msgid "%s: .preinit_array section is not allowed in DSO"
-msgstr "%s: .preinit_array-sektionen är inte tillåten i DSO"
+msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s"
+msgstr "Varning: storleken på symbolen \"%s\" ändrades från %lu i %s till %lu i %s"
-#: elflink.h:4030
+#: elflink.h:2160
#, c-format
-msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "varning: typen och storleken på dynamiska symbolen \"%s\" är inte definierade"
+msgid "%s: undefined version: %s"
+msgstr "%s: odefinierad version: %s"
-#: elflink.h:4345
+#: elflink.h:2226
#, c-format
-msgid "%s: undefined versioned symbol name %s"
-msgstr "%s: odefinierat symbolnamn med version %s"
-
-#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600
-msgid "Error: out of memory"
-msgstr "Fel: slut på minne"
+msgid "%s: .preinit_array section is not allowed in DSO"
+msgstr "%s: .preinit_array-sektionen är inte tillåten i DSO"
-#: elflink.h:4781
+#: elflink.h:3078
msgid "Not enough memory to sort relocations"
msgstr "Inte tillräckligt med minne för att sortera omlokaliseringar"
-#: elflink.h:5682 elflink.h:5725
+#: elflink.h:3958 elflink.h:4001
#, c-format
msgid "%s: could not find output section %s"
msgstr "%s: kunde inte hitta utdatasektionen %s"
-#: elflink.h:5688
+#: elflink.h:3964
#, c-format
msgid "warning: %s section has zero size"
-msgstr "varning: %s-sektionen har nollstorlek"
+msgstr "varning: sektionen %s har nollstorlek"
-#: elflink.h:6275
+#: elflink.h:4483
+#, c-format
+msgid "%s: %s symbol `%s' in %s is referenced by DSO"
+msgstr "%s: %s-symbolen \"%s\" i %s refereras till av DSO"
+
+#: elflink.h:4564
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr "%s: kunde inte hitta utdatasektionen %s för indatasektionen %s"
-#: elflink.h:6486
+#: elflink.h:4666
#, c-format
-msgid "%s: relocation size mismatch in %s section %s"
-msgstr "%s: omlokaliseringsstorleken stämmer inte överens i %s-sektionen %s"
-
-#: elflink.h:6849
-msgid "warning: relocation against removed section; zeroing"
-msgstr "varning: omlokalisering mot borttagen sektion; nollställer"
+msgid "%s: %s symbol `%s' isn't defined"
+msgstr "%s: %s-symbolen \"%s\" är inte definierad"
-#: elflink.h:6879
-msgid "warning: relocation against removed section"
-msgstr "varning: omlokalisering mot borttagen sektion"
+#: elflink.h:5053 elflink.h:5095
+msgid "%T: discarded in section `%s' from %s\n"
+msgstr "%T: bortkastade i sektionen \"%s\" från %s\n"
-#: elflink.h:6892
-#, c-format
-msgid "local symbols in discarded section %s"
-msgstr "lokala symboler i bortkastade sektionen %s"
-
-#: elfxx-mips.c:734
+#: elfxx-mips.c:887
msgid "static procedure (no name)"
msgstr "statisk procedur (inget namn)"
-#: elfxx-mips.c:1601
+#: elfxx-mips.c:1897
msgid "not enough GOT space for local GOT entries"
msgstr "inte tillräckligt med GOT-utrymme för lokala GOT-poster"
-#: elfxx-mips.c:2750
+#: elfxx-mips.c:3691
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr "%s: %s+0x%lx: hoppa till stubbrutin som inte är jal"
-#: elfxx-mips.c:4270
+#: elfxx-mips.c:5192
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr "%s: Felaktig omlokalisering för sektion %s upptäckt"
-#: elfxx-mips.c:4348
+#: elfxx-mips.c:5266
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr "%s: CALL16-omlokalisering vid 0x%lx är inte mot global symbol"
-#: elfxx-mips.c:7301
+#: elfxx-mips.c:8692
#, c-format
msgid "%s: illegal section name `%s'"
msgstr "%s: ogiltigt sektionsnamn \"%s\""
-#: elfxx-mips.c:7615
+#: elfxx-mips.c:9025
+#, c-format
+msgid "%s: endianness incompatible with that of the selected emulation"
+msgstr "%s: endianness inkompatibel med den för den valda emuleringen"
+
+#: elfxx-mips.c:9037
#, c-format
-msgid "%s: linking PIC files with non-PIC files"
-msgstr "%s: länkar PIC-filer med icke-PIC-filer"
+msgid "%s: ABI is incompatible with that of the selected emulation"
+msgstr "%s: ABI är inkompatibelt med den för den valda emuleringen"
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:9104
#, c-format
-msgid "%s: linking abicalls files with non-abicalls files"
-msgstr "%s: länkar abicalls-filer med icke-abicalls-filer"
+msgid "%s: warning: linking PIC files with non-PIC files"
+msgstr "%s: varning: länkar PIC-filer med icke-PIC-filer"
-#: elfxx-mips.c:7654
+#: elfxx-mips.c:9121
#, c-format
-msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
-msgstr "%s: ISA (-mips%d) passar inte med tidigare moduler (-mips%d)"
+msgid "%s: linking 32-bit code with 64-bit code"
+msgstr "%s: länkar 32-bitarskod med 64-bitarskod"
-#: elfxx-mips.c:7676
+#: elfxx-mips.c:9149
#, c-format
-msgid "%s: ISA mismatch (%d) with previous modules (%d)"
-msgstr "%s: ISA (%d) passar inte med tidigare moduler (%d)"
+msgid "%s: linking %s module with previous %s modules"
+msgstr "%s: länkar %s-modul med tidigare %s-moduler"
-#: elfxx-mips.c:7699
+#: elfxx-mips.c:9172
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr "%s: ABI passar inte: länkar %s-modul med tidigare %s-moduler"
-#: elfxx-mips.c:7759
+#: elfxx-mips.c:9241
msgid " [abi=O32]"
msgstr " [abi=O32]"
-#: elfxx-mips.c:7761
+#: elfxx-mips.c:9243
msgid " [abi=O64]"
msgstr " [abi=O64]"
-#: elfxx-mips.c:7763
+#: elfxx-mips.c:9245
msgid " [abi=EABI32]"
msgstr " [abi=EABI32]"
-#: elfxx-mips.c:7765
+#: elfxx-mips.c:9247
msgid " [abi=EABI64]"
msgstr " [abi=EABI64]"
-#: elfxx-mips.c:7767
+#: elfxx-mips.c:9249
msgid " [abi unknown]"
msgstr " [okänt abi]"
-#: elfxx-mips.c:7769
+#: elfxx-mips.c:9251
msgid " [abi=N32]"
msgstr " [abi=N32]"
-#: elfxx-mips.c:7771
+#: elfxx-mips.c:9253
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:7773
+#: elfxx-mips.c:9255
msgid " [no abi set]"
msgstr " [inget abi inställt]"
-#: elfxx-mips.c:7776
+#: elfxx-mips.c:9258
msgid " [mips1]"
msgstr " [mips1]"
-#: elfxx-mips.c:7778
+#: elfxx-mips.c:9260
msgid " [mips2]"
msgstr " [mips2]"
-#: elfxx-mips.c:7780
+#: elfxx-mips.c:9262
msgid " [mips3]"
msgstr " [mips3]"
-#: elfxx-mips.c:7782
+#: elfxx-mips.c:9264
msgid " [mips4]"
msgstr " [mips4]"
-#: elfxx-mips.c:7784
+#: elfxx-mips.c:9266
msgid " [mips5]"
msgstr " [mips5]"
-#: elfxx-mips.c:7786
+#: elfxx-mips.c:9268
msgid " [mips32]"
msgstr " [mips32]"
-#: elfxx-mips.c:7788
+#: elfxx-mips.c:9270
msgid " [mips64]"
msgstr " [mips64]"
-#: elfxx-mips.c:7790
+#: elfxx-mips.c:9272
+msgid " [mips32r2]"
+msgstr " [mips32r2]"
+
+#: elfxx-mips.c:9274
msgid " [unknown ISA]"
msgstr " [okänd ISA]"
-#: elfxx-mips.c:7793
+#: elfxx-mips.c:9277
msgid " [mdmx]"
msgstr " [mdmx]"
-#: elfxx-mips.c:7796
+#: elfxx-mips.c:9280
msgid " [mips16]"
msgstr " [mips16]"
-#: elfxx-mips.c:7799
+#: elfxx-mips.c:9283
msgid " [32bitmode]"
msgstr " [32-bitarsläge]"
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:9285
msgid " [not 32bitmode]"
msgstr " [inte 32-bitarsläge]"
-#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459
+#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458
#, c-format
msgid "Output file requires shared library `%s'\n"
msgstr "Utdatafilen kräver delade biblioteket \"%s\"\n"
-#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467
+#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466
#, c-format
msgid "Output file requires shared library `%s.so.%s'\n"
msgstr "Utdatafilen kräver delade biblioteket \"%s.so.%s\"\n"
-#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710
-#: sparclinux.c:657 sparclinux.c:707
+#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709
+#: sparclinux.c:656 sparclinux.c:706
#, c-format
msgid "Symbol %s not defined for fixups\n"
msgstr "Symbolen %s är inte definierad för fixar\n"
-#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731
+#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730
msgid "Warning: fixup count mismatch\n"
msgstr "Varning: antalet fixar stämmer inte\n"
-#: ieee.c:235
+#: ieee.c:293
#, c-format
msgid "%s: string too long (%d chars, max 65535)"
msgstr "%s: strängen är för lång (%d tecken, max 65535)"
-#: ieee.c:365
+#: ieee.c:428
#, c-format
msgid "%s: unrecognized symbol `%s' flags 0x%x"
msgstr "%s: okänd symbol \"%s\" flaggor 0x%x"
-#: ieee.c:877
+#: ieee.c:938
#, c-format
msgid "%s: unimplemented ATI record %u for symbol %u"
msgstr "%s: inte implementerad ATI-post %u för symbolen %u"
-#: ieee.c:902
+#: ieee.c:963
#, c-format
msgid "%s: unexpected ATN type %d in external part"
msgstr "%s: oväntad ATN-typ %d i extern del"
-#: ieee.c:924
+#: ieee.c:985
#, c-format
msgid "%s: unexpected type after ATN"
msgstr "%s: oväntad typ efter ATN"
-#: ihex.c:258
+#: ihex.c:264
#, c-format
msgid "%s:%d: unexpected character `%s' in Intel Hex file\n"
msgstr "%s:%d: oväntat tecken \"%s\" i hexadecimal Intel-fil\n"
-#: ihex.c:366
+#: ihex.c:372
#, c-format
msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)"
msgstr "%s:%u: felaktig kontrollsumma i hexadecimal Intel-fil (förväntade %u, hittade %u)"
-#: ihex.c:420
+#: ihex.c:426
#, c-format
msgid "%s:%u: bad extended address record length in Intel Hex file"
msgstr "%s:%u: felaktig längd på post för utökad adress i hexadecimal Intel-fil"
-#: ihex.c:437
+#: ihex.c:443
#, c-format
msgid "%s:%u: bad extended start address length in Intel Hex file"
msgstr "%s:%u: felaktig längd på utökad startadress i hexadecimal Intel-fil"
-#: ihex.c:454
+#: ihex.c:460
#, c-format
msgid "%s:%u: bad extended linear address record length in Intel Hex file"
msgstr "%s:%u: felaktig längd på post för utökad linjär adress i hexadecimal Intel-fil"
-#: ihex.c:471
+#: ihex.c:477
#, c-format
msgid "%s:%u: bad extended linear start address length in Intel Hex file"
msgstr "%s:%u: felaktig längd på post för utökad linjär startadress i hexadecimal Intel-fil"
-#: ihex.c:488
+#: ihex.c:494
#, c-format
msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n"
msgstr "%s:%u: okänd ihex-typ %u i hexadecimal Intel-fil\n"
-#: ihex.c:607
+#: ihex.c:619
#, c-format
msgid "%s: internal error in ihex_read_section"
msgstr "%s: internt fel i ihex_read_section"
-#: ihex.c:642
+#: ihex.c:654
#, c-format
msgid "%s: bad section length in ihex_read_section"
msgstr "%s: felaktig sektionslängd i ihex_read_sektion"
-#: ihex.c:860
+#: ihex.c:872
#, c-format
msgid "%s: address 0x%s out of range for Intel Hex file"
msgstr "%s: adressen 0x%s är utanför intervallet för hexadecimal Intel-fil"
-#: libbfd.c:492
-#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr "mappar inte: data=%lx mappat=%d\n"
-
-#: libbfd.c:495
-msgid "not mapping: env var not set\n"
-msgstr "mappar inte: miljövariabel är inte satt\n"
-
-#: libbfd.c:1466
+#: libbfd.c:861
#, c-format
msgid "Deprecated %s called at %s line %d in %s\n"
msgstr "Föråldrad %s anropad vid %s rad %d i %s\n"
-#: libbfd.c:1469
+#: libbfd.c:864
#, c-format
msgid "Deprecated %s called\n"
msgstr "Föråldrad %s anropad\n"
-#: linker.c:1873
+#: linker.c:1829
#, c-format
msgid "%s: indirect symbol `%s' to `%s' is a loop"
msgstr "%s: indirekt symbol \"%s\" till \"%s\" är en slinga"
-#: linker.c:2776
+#: linker.c:2697
#, c-format
-msgid "Attempt to do relocateable link with %s input and %s output"
+msgid "Attempt to do relocatable link with %s input and %s output"
msgstr "Försök att göra en omlokaliseringsbar länk med %s-indata och %s-utdata"
-#: merge.c:892
+#: merge.c:896
#, c-format
msgid "%s: access beyond end of merged section (%ld + %ld)"
msgstr "%s: åtkomst bortom slut på sammanslagen sektion (%ld + %ld)"
-#: mmo.c:460
+#: mmo.c:503
#, c-format
msgid "%s: No core to allocate section name %s\n"
msgstr "%s: Ingen kärna för att allokera sektionsnamn %s\n"
-#: mmo.c:536
+#: mmo.c:579
#, c-format
msgid "%s: No core to allocate a symbol %d bytes long\n"
msgstr "%s: Ingen kärna för att allokera en %d byte lång symbol\n"
-#: mmo.c:1245
+#: mmo.c:1287
#, c-format
msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr "%s: ogiltig mmo-fil: initieringsvärde för $255 är inte \"Main\"\n"
-#: mmo.c:1391
+#: mmo.c:1433
#, c-format
msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr "%s: bred teckensekvens som inte stöds 0x%02X 0x%02X efter symbolnamnet som börjar med \"%s\"\n"
-#: mmo.c:1633
+#: mmo.c:1674
#, c-format
msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
msgstr "%s: ogiltig mmo-fil: lopkod \"%d\" stöds inte\n"
-#: mmo.c:1643
+#: mmo.c:1684
#, c-format
msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr "%s: ogiltig mmo-fil: förväntade YZ = 1 fick YZ = %d för lop_quote\n"
-#: mmo.c:1679
+#: mmo.c:1720
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_loc\n"
-#: mmo.c:1725
+#: mmo.c:1766
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_fixo\n"
-#: mmo.c:1764
+#: mmo.c:1805
#, c-format
msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr "%s: ogiltig mmo-fil: förväntade y = 0, fick y = %d för lop_fixrx\n"
-#: mmo.c:1773
+#: mmo.c:1814
#, c-format
msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr "%s: ogiltig mmo-fil: förväntade z = 16 eller z = 24, fick z = %d för lop_fixr\n"
-#: mmo.c:1796
+#: mmo.c:1837
#, c-format
msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr "%s: ogiltig mmo-fil: inledande byte i operandord måste vara 0 eller 1, fick %d för lop_fixrx\n"
-#: mmo.c:1819
+#: mmo.c:1860
#, c-format
msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
msgstr "%s: kan inte allokera filnamn för fil nummer %d, %d byte\n"
-#: mmo.c:1839
+#: mmo.c:1880
#, c-format
msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr "%s: ogiltig mmo-fil: fil nummer %d \"%s\", var redan angiven som \"%s\"\n"
-#: mmo.c:1852
+#: mmo.c:1893
#, c-format
msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
msgstr "%s: ogiltig mmo-fil: filnamnet för nummer %d angavs inte innan användning\n"
-#: mmo.c:1958
+#: mmo.c:1999
#, c-format
msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr "%s: ogiltig mmo-fil: fälten y och z i lop_stab är icke-tomma, y: %d, z: %d\n"
-#: mmo.c:1994
+#: mmo.c:2035
#, c-format
msgid "%s: invalid mmo file: lop_end not last item in file\n"
msgstr "%s: ogiltig mmo-fil: lop_end är inte sista objektet i fil\n"
-#: mmo.c:2007
+#: mmo.c:2048
#, c-format
msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr "%s: ogiltig mmo-fil: YZ i lop_end (%ld) är inte lika med antalet tetra till den föregående lop_stab (%ld)\n"
-#: mmo.c:2670
+#: mmo.c:2698
#, c-format
msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
msgstr "%s: ogiltig symboltabell: dublettsymbol \"%s\"\n"
-#: mmo.c:2921
+#: mmo.c:2949
#, c-format
msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
msgstr "%s: Felaktig symboldefinition: \"Main\" är inställd till %s istället för startadressen %s\n"
-#: mmo.c:3011
+#: mmo.c:3039
#, c-format
msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr "%s: varning: symboltabellen är för stor för mmo, större än 65535 32-bitars ord: %d. Endast \"Main\" kommer att skickas.\n"
-#: mmo.c:3056
+#: mmo.c:3084
#, c-format
msgid "%s: internal error, symbol table changed size from %d to %d words\n"
msgstr "%s: internt fel, symboltabellen ändrade storlek från %d till %d ord\n"
-#: mmo.c:3111
+#: mmo.c:3139
#, c-format
msgid "%s: internal error, internal register section %s had contents\n"
msgstr "%s: internt fel, interna registersektionen %s hade innehåll\n"
-#: mmo.c:3163
+#: mmo.c:3191
#, c-format
msgid "%s: no initialized registers; section length 0\n"
msgstr "%s: inga initierade register; sektionslängd 0\n"
-#: mmo.c:3169
+#: mmo.c:3197
#, c-format
msgid "%s: too many initialized registers; section length %ld\n"
msgstr "%s: för många initierade register; sektionslängd %ld\n"
-#: mmo.c:3174
+#: mmo.c:3202
#, c-format
msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
msgstr "%s: ogiltig startadress för initierade register med längden %ld: 0x%lx%08lx\n"
-#: oasys.c:1029
+#: oasys.c:1052
#, c-format
msgid "%s: can not represent section `%s' in oasys"
msgstr "%s: kan inte representera sektionen \"%s\" i oasys"
-#: osf-core.c:132
+#: osf-core.c:137
#, c-format
msgid "Unhandled OSF/1 core file section type %d\n"
msgstr "Ohanterad sektionstyp %d för OSF/1-minnesfil\n"
-#: pe-mips.c:658
+#: pe-mips.c:659
#, c-format
msgid "%s: `ld -r' not supported with PE MIPS objects\n"
msgstr "%s: \"ld -r\" stöds inte med PE MIPS-objekt\n"
@@ -1989,53 +2227,53 @@ msgstr "%s: \"ld -r\" stöds inte med PE MIPS-objekt\n"
#. mem = pointer to memory we're fixing up
#. val = VMA of what we need to refer to
#.
-#: pe-mips.c:794
+#: pe-mips.c:795
#, c-format
msgid "%s: unimplemented %s\n"
msgstr "%s: oimplementerat %s\n"
-#: pe-mips.c:820
+#: pe-mips.c:821
#, c-format
msgid "%s: jump too far away\n"
msgstr "%s: hopp för långt bort\n"
-#: pe-mips.c:847
+#: pe-mips.c:848
#, c-format
msgid "%s: bad pair/reflo after refhi\n"
msgstr "%s: felaktigt par/reflo efter refhi\n"
#. XXX code yet to be written.
-#: peicode.h:785
+#: peicode.h:787
#, c-format
msgid "%s: Unhandled import type; %x"
msgstr "%s: Ohanterad importtyp; %x"
-#: peicode.h:790
+#: peicode.h:792
#, c-format
msgid "%s: Unrecognised import type; %x"
msgstr "%s: Okänd importtyp; %x"
-#: peicode.h:804
+#: peicode.h:806
#, c-format
msgid "%s: Unrecognised import name type; %x"
msgstr "%s: Okänd importnamnstyp; %x"
-#: peicode.h:1162
+#: peicode.h:1164
#, c-format
msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%s: Okänd maskintyp (0x%x) i Import Library Format-arkiv"
-#: peicode.h:1174
+#: peicode.h:1176
#, c-format
msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%s: Känd men ohanterad maskintyp (0x%x) i Import Library Format-arkiv"
-#: peicode.h:1191
+#: peicode.h:1193
#, c-format
msgid "%s: size field is zero in Import Library Format header"
msgstr "%s: storleksfältet är noll i Import Library Format-huvud"
-#: peicode.h:1219
+#: peicode.h:1224
#, c-format
msgid "%s: string not null terminated in ILF object file."
msgstr "%s: sträng inte nollterminerad i ILF-objektfil."
@@ -2092,11 +2330,11 @@ msgstr "Sektor för partition[%d] = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Längd på partition[%d] = 0x%.8lx (%ld)\n"
-#: som.c:5398
+#: som.c:5422
msgid "som_sizeof_headers unimplemented"
msgstr "som_sizeof_headers är inte implementerat"
-#: srec.c:301
+#: srec.c:302
#, c-format
msgid "%s:%d: Unexpected character `%s' in S-record file\n"
msgstr "%s:%d: Oväntat tecken \"%s\" i S-postfil\n"
@@ -2107,7 +2345,7 @@ msgstr "%s:%d: Oväntat tecken \"%s\" i S-postfil\n"
msgid "%s(%s+0x%lx): Stabs entry has invalid string index."
msgstr "%s(%s+0x%lx): Stabbpost har ogiltigt strängindex."
-#: syms.c:1044
+#: syms.c:1019
msgid "Unsupported .stab relocation"
msgstr ".stab-omlokalisering som inte stöds"
@@ -2126,33 +2364,33 @@ msgstr "bfd_set_section_flags (%s, %x) misslyckades"
msgid "Size mismatch section %s=%lx, %s=%lx"
msgstr "Storleken passar inte på sektion %s=%lx, %s=%lx"
-#: vms-gsd.c:702
+#: vms-gsd.c:704
#, c-format
msgid "unknown gsd/egsd subtype %d"
msgstr "okänd gsd/egsd-undertyp %d"
-#: vms-hdr.c:406
+#: vms-hdr.c:408
msgid "Object module NOT error-free !\n"
msgstr "Objektmodulen INTE felfri!\n"
-#: vms-misc.c:543
+#: vms-misc.c:541
#, c-format
msgid "Stack overflow (%d) in _bfd_vms_push"
msgstr "Stacken ger överspill (%d) i _bfd_vms_push"
-#: vms-misc.c:561
+#: vms-misc.c:559
msgid "Stack underflow in _bfd_vms_pop"
msgstr "Stacken ger underspill i _bfd_vms_pop"
-#: vms-misc.c:919
+#: vms-misc.c:918
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr "_bfd_vms_output_counted anropad med noll byte"
-#: vms-misc.c:924
+#: vms-misc.c:923
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "_bfd_vms_output_counted called anropad med för många byte"
-#: vms-misc.c:1055
+#: vms-misc.c:1054
#, c-format
msgid "Symbol %s replaced by %s\n"
msgstr "Symbolen %s ersatt med %s\n"
@@ -2162,26 +2400,26 @@ msgstr "Symbolen %s ersatt med %s\n"
msgid "failed to enter %s"
msgstr "misslyckades med att gå in i %s"
-#: vms-tir.c:81
+#: vms-tir.c:102
msgid "No Mem !"
msgstr "Inget minne!"
-#: vms-tir.c:362
+#: vms-tir.c:383
#, c-format
msgid "bad section index in %s"
msgstr "felaktigt sektionsindex i %s"
-#: vms-tir.c:375
+#: vms-tir.c:396
#, c-format
msgid "unsupported STA cmd %s"
msgstr "STA-kommando %s stöds inte"
-#: vms-tir.c:380 vms-tir.c:1240
+#: vms-tir.c:401 vms-tir.c:1261
#, c-format
msgid "reserved STA cmd %d"
msgstr "reserverat STA-kommando %d"
-#: vms-tir.c:491 vms-tir.c:514
+#: vms-tir.c:512 vms-tir.c:535
#, c-format
msgid "%s: no symbol \"%s\""
msgstr "%s: ingen symbol \"%s\""
@@ -2190,39 +2428,39 @@ msgstr "%s: ingen symbol \"%s\""
#. rotate
#. Redefine symbol to current location.
#. Define a literal.
-#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829
-#: vms-tir.c:838 vms-tir.c:1563
+#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850
+#: vms-tir.c:859 vms-tir.c:1584
#, c-format
msgid "%s: not supported"
msgstr "%s: stöds inte"
-#: vms-tir.c:586 vms-tir.c:1418
+#: vms-tir.c:607 vms-tir.c:1439
#, c-format
msgid "%s: not implemented"
msgstr "%s: inte implementerad"
-#: vms-tir.c:590 vms-tir.c:1422
+#: vms-tir.c:611 vms-tir.c:1443
#, c-format
msgid "reserved STO cmd %d"
msgstr "reserverat STO-kommando %d"
-#: vms-tir.c:708 vms-tir.c:1568
+#: vms-tir.c:729 vms-tir.c:1589
#, c-format
msgid "reserved OPR cmd %d"
msgstr "reserverat OPR-kommando %d"
-#: vms-tir.c:776 vms-tir.c:1632
+#: vms-tir.c:797 vms-tir.c:1653
#, c-format
msgid "reserved CTL cmd %d"
msgstr "reserverat CTL-kommando %d"
#. stack byte from image
#. arg: none.
-#: vms-tir.c:1148
+#: vms-tir.c:1169
msgid "stack-from-image not implemented"
msgstr "stack-from-image är inte implementerat"
-#: vms-tir.c:1166
+#: vms-tir.c:1187
msgid "stack-entry-mask not fully implemented"
msgstr "stack-entry-mask är inte helt implementerat"
@@ -2233,261 +2471,271 @@ msgstr "stack-entry-mask är inte helt implementerat"
#.
#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
#. and stack TRUE (args match) or FALSE (args dont match) value.
-#: vms-tir.c:1180
+#: vms-tir.c:1201
msgid "PASSMECH not fully implemented"
msgstr "PASSMECH är inte helt implementerat"
-#: vms-tir.c:1199
+#: vms-tir.c:1220
msgid "stack-local-symbol not fully implemented"
msgstr "stack-local-symbol är inte helt implementerat"
-#: vms-tir.c:1212
+#: vms-tir.c:1233
msgid "stack-literal not fully implemented"
msgstr "stack-literal är inte helt implementerat"
-#: vms-tir.c:1233
+#: vms-tir.c:1254
msgid "stack-local-symbol-entry-point-mask not fully implemented"
msgstr "stack-local-symbol-entry-point-mask är inte helt implementerat"
-#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611
-#: vms-tir.c:1619 vms-tir.c:1627
+#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632
+#: vms-tir.c:1640 vms-tir.c:1648
#, c-format
msgid "%s: not fully implemented"
msgstr "%s: inte helt implementerat"
-#: vms-tir.c:1684
+#: vms-tir.c:1705
#, c-format
msgid "obj code %d not found"
msgstr "objektkod %d kunde inte hittas"
-#: vms-tir.c:2019
+#: vms-tir.c:2043
#, c-format
msgid "SEC_RELOC with no relocs in section %s"
msgstr "SEC_RELOC utan omlokaliseringar i sektion %s"
-#: vms-tir.c:2307
+#: vms-tir.c:2331
#, c-format
msgid "Unhandled relocation %s"
msgstr "Ohanterad omlokalisering %s"
-#: xcofflink.c:1243
+#: xcofflink.c:1244
#, c-format
msgid "%s: `%s' has line numbers but no enclosing section"
msgstr "%s: \"%s\" har radnummer men ingen inneslutande sektion"
-#: xcofflink.c:1296
+#: xcofflink.c:1297
#, c-format
msgid "%s: class %d symbol `%s' has no aux entries"
msgstr "%s: klass %d-symbolen \"%s\" har inga yttre poster"
-#: xcofflink.c:1319
+#: xcofflink.c:1320
#, c-format
msgid "%s: symbol `%s' has unrecognized csect type %d"
msgstr "%s: symbolen \"%s\" har okänd csect-typ %d"
-#: xcofflink.c:1331
+#: xcofflink.c:1332
#, c-format
msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
msgstr "%s: felaktig XTY_ER-symbol \"%s\": klass %d scnum %d scnlen %d"
-#: xcofflink.c:1367
+#: xcofflink.c:1368
#, c-format
msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d"
msgstr "%s: XMC_TC0-symbolen \"%s\" är klass %d scnlen %d"
-#: xcofflink.c:1519
+#: xcofflink.c:1520
#, c-format
msgid "%s: csect `%s' not in enclosing section"
msgstr "%s: csect \"%s\" är inte i inneslutande sektion"
-#: xcofflink.c:1626
+#: xcofflink.c:1627
#, c-format
msgid "%s: misplaced XTY_LD `%s'"
msgstr "%s: felaktigt placerat XTY_LD \"%s\""
-#: xcofflink.c:1957
+#: xcofflink.c:1958
#, c-format
msgid "%s: reloc %s:%d not in csect"
msgstr "%s: omlokaliseringen %s:%d är inte i csect"
-#: xcofflink.c:2092
+#: xcofflink.c:2095
#, c-format
msgid "%s: XCOFF shared object when not producing XCOFF output"
msgstr "%s: XCOFF delade objekt när inte XCOFF-utdata produceras"
-#: xcofflink.c:2113
+#: xcofflink.c:2116
#, c-format
msgid "%s: dynamic object with no .loader section"
msgstr "%s: dynamiskt objekt utan någon .loader-sektion"
-#: xcofflink.c:2758
+#: xcofflink.c:2761
#, c-format
msgid "%s: no such symbol"
msgstr "%s: ingen sådan symbol"
-#: xcofflink.c:2891
+#: xcofflink.c:2894
msgid "error: undefined symbol __rtinit"
msgstr "fel: odefinierad symbol __rtinit"
-#: xcofflink.c:3453
+#: xcofflink.c:3455
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "varning: försök att exportera odefinierade symbolen \"%s\""
-#: xcofflink.c:4447
+#: xcofflink.c:4448
#, c-format
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr "TOC ger överspill: 0x%lx > 0x10000; prova -mminimal-toc vid kompilering"
-#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119
+#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119
#, c-format
msgid "%s: loader reloc in unrecognized section `%s'"
msgstr "%s: inläsaromlokalisering i okända sektionen \"%s\""
-#: xcofflink.c:5309 xcofflink.c:6130
+#: xcofflink.c:5310 xcofflink.c:6130
#, c-format
msgid "%s: `%s' in loader reloc but not loader sym"
msgstr "%s: \"%s\" i inläsaromlokalisering men inte inläsarsym"
-#: xcofflink.c:5324
+#: xcofflink.c:5325
#, c-format
msgid "%s: loader reloc in read-only section %s"
msgstr "%s: inläsaromlokalisering i skrivskyddade sektionen %s"
-#: elf32-ia64.c:2222 elf64-ia64.c:2222
+#: elf32-ia64.c:2392 elf64-ia64.c:2392
msgid "@pltoff reloc against local symbol"
msgstr "@pltoff-omlokalisering mot lokal symbol"
-#: elf32-ia64.c:3562 elf64-ia64.c:3562
+#: elf32-ia64.c:3804 elf64-ia64.c:3804
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr "%s: kort datasegment spillde över (0x%lx >= 0x400000)"
-#: elf32-ia64.c:3573 elf64-ia64.c:3573
+#: elf32-ia64.c:3815 elf64-ia64.c:3815
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr "%s: __gp täcker inte kort datasegment"
-#: elf32-ia64.c:3858 elf64-ia64.c:3858
+#: elf32-ia64.c:4131 elf64-ia64.c:4131
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr "%s: länkar icke-pic-kod i delat bibliotek"
-#: elf32-ia64.c:3891 elf64-ia64.c:3891
+#: elf32-ia64.c:4164 elf64-ia64.c:4164
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr "%s: @gprel-omlokalisering mot dynamiska symbolen %s"
-#: elf32-ia64.c:4030 elf64-ia64.c:4030
+#: elf32-ia64.c:4224 elf64-ia64.c:4224
+#, c-format
+msgid "%s: linking non-pic code in a position independent executable"
+msgstr "%s: länkar icke-pic-kod i en positionsoberoende körbar fil"
+
+#: elf32-ia64.c:4363 elf64-ia64.c:4363
#, c-format
-msgid "%s: dynamic relocation against speculation fixup"
-msgstr "%s: dynamisk omlokalisering utan spekulationsfixar"
+msgid "%s: @internal branch to dynamic symbol %s"
+msgstr "%s: @internal-gren till dynamiska symbolen %s"
-#: elf32-ia64.c:4038 elf64-ia64.c:4038
+#: elf32-ia64.c:4365 elf64-ia64.c:4365
#, c-format
-msgid "%s: speculation fixup against undefined weak symbol"
-msgstr "%s: spekulationsfix mot odefinierad svag symbol"
+msgid "%s: speculation fixup to dynamic symbol %s"
+msgstr "%s: spekulationsfix till dynamiska symbolen %s"
-#: elf32-ia64.c:4271 elf64-ia64.c:4271
+#: elf32-ia64.c:4367 elf64-ia64.c:4367
+#, c-format
+msgid "%s: @pcrel relocation against dynamic symbol %s"
+msgstr "%s: @pcrel-omlokalisering mot dynamiska symbolen %s"
+
+#: elf32-ia64.c:4579 elf64-ia64.c:4579
msgid "unsupported reloc"
msgstr "omlokaliseringen stöds inte"
-#: elf32-ia64.c:4551 elf64-ia64.c:4551
+#: elf32-ia64.c:4858 elf64-ia64.c:4858
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%s: länkar fånga-vid-NULL-dereferens med ickefångande filer"
-#: elf32-ia64.c:4560 elf64-ia64.c:4560
+#: elf32-ia64.c:4867 elf64-ia64.c:4867
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr "%s: länkar big endian-filer med little endian-filer"
-#: elf32-ia64.c:4569 elf64-ia64.c:4569
+#: elf32-ia64.c:4876 elf64-ia64.c:4876
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr "%s: länkar 64-bitarsfiler med 32-bitarsfiler"
-#: elf32-ia64.c:4578 elf64-ia64.c:4578
+#: elf32-ia64.c:4885 elf64-ia64.c:4885
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr "%s: länkar konstant-gp-filer med icke-konstant-gp-filer"
-#: elf32-ia64.c:4588 elf64-ia64.c:4588
+#: elf32-ia64.c:4895 elf64-ia64.c:4895
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr "%s: länkar auto-pic-filer med icke-auto-pic-filer"
-#: peigen.c:962 pepigen.c:962
+#: peigen.c:985 pepigen.c:985
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: radnummer ger överspill: 0x%lx > 0xffff"
-#: peigen.c:979 pepigen.c:979
+#: peigen.c:1002 pepigen.c:1002
#, c-format
msgid "%s: reloc overflow 1: 0x%lx > 0xffff"
msgstr "%s: omlokalisering ger överspill 1: 0x%lx > 0xffff"
-#: peigen.c:993 pepigen.c:993
+#: peigen.c:1016 pepigen.c:1016
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Exportkatalog [.edata (eller där vi hittade det)]"
-#: peigen.c:994 pepigen.c:994
+#: peigen.c:1017 pepigen.c:1017
msgid "Import Directory [parts of .idata]"
msgstr "Importkatalog [delar av .idata]"
-#: peigen.c:995 pepigen.c:995
+#: peigen.c:1018 pepigen.c:1018
msgid "Resource Directory [.rsrc]"
msgstr "Resurskatalog [.rsrc]"
-#: peigen.c:996 pepigen.c:996
+#: peigen.c:1019 pepigen.c:1019
msgid "Exception Directory [.pdata]"
msgstr "Undantagskatalog [.pdata]"
-#: peigen.c:997 pepigen.c:997
+#: peigen.c:1020 pepigen.c:1020
msgid "Security Directory"
msgstr "Säkerhetskatalog"
-#: peigen.c:998 pepigen.c:998
+#: peigen.c:1021 pepigen.c:1021
msgid "Base Relocation Directory [.reloc]"
msgstr "Basomlokaliseringskatalog [.reloc]"
-#: peigen.c:999 pepigen.c:999
+#: peigen.c:1022 pepigen.c:1022
msgid "Debug Directory"
msgstr "Felsökningskatalog"
-#: peigen.c:1000 pepigen.c:1000
+#: peigen.c:1023 pepigen.c:1023
msgid "Description Directory"
msgstr "Beskrivningskatalog"
-#: peigen.c:1001 pepigen.c:1001
+#: peigen.c:1024 pepigen.c:1024
msgid "Special Directory"
msgstr "Specialkatalog"
-#: peigen.c:1002 pepigen.c:1002
+#: peigen.c:1025 pepigen.c:1025
msgid "Thread Storage Directory [.tls]"
msgstr "Trådlagringskatalog [.tls]"
-#: peigen.c:1003 pepigen.c:1003
+#: peigen.c:1026 pepigen.c:1026
msgid "Load Configuration Directory"
msgstr "Inläsningskonfigurationskatalog"
-#: peigen.c:1004 pepigen.c:1004
+#: peigen.c:1027 pepigen.c:1027
msgid "Bound Import Directory"
msgstr "Katalog över bundna importer"
-#: peigen.c:1005 pepigen.c:1005
+#: peigen.c:1028 pepigen.c:1028
msgid "Import Address Table Directory"
msgstr "Importadresstabellkatalog"
-#: peigen.c:1006 pepigen.c:1006
+#: peigen.c:1029 pepigen.c:1029
msgid "Delay Import Directory"
msgstr "Katalog över fördröjda importer"
-#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008
+#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031
msgid "Reserved"
msgstr "Reserverad"
-#: peigen.c:1071 pepigen.c:1071
+#: peigen.c:1094 pepigen.c:1094
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
@@ -2495,7 +2743,7 @@ msgstr ""
"\n"
"Det finns en importtabell, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1076 pepigen.c:1076
+#: peigen.c:1099 pepigen.c:1099
#, c-format
msgid ""
"\n"
@@ -2504,7 +2752,7 @@ msgstr ""
"\n"
"Det finns en importtabell i %s på 0x%lx\n"
-#: peigen.c:1113 pepigen.c:1113
+#: peigen.c:1136 pepigen.c:1136
#, c-format
msgid ""
"\n"
@@ -2513,12 +2761,12 @@ msgstr ""
"\n"
"Funktionsidentifierare hittad på startadressen: %04lx\n"
-#: peigen.c:1116 pepigen.c:1116
+#: peigen.c:1139 pepigen.c:1139
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr "\tkodbas %08lx toc (inläsningsbar/verklig) %08lx/%08lx\n"
-#: peigen.c:1122 pepigen.c:1122
+#: peigen.c:1145 pepigen.c:1145
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
@@ -2526,7 +2774,7 @@ msgstr ""
"\n"
"Ingen reldata-sektion! Funktionsidentifierare avkodades inte.\n"
-#: peigen.c:1127 pepigen.c:1127
+#: peigen.c:1150 pepigen.c:1150
#, c-format
msgid ""
"\n"
@@ -2536,7 +2784,7 @@ msgstr ""
"Importtabellerna (tolkade innehåll i %s-sektion)\n"
# Vad är thunk?
-#: peigen.c:1130 pepigen.c:1130
+#: peigen.c:1153 pepigen.c:1153
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
@@ -2544,7 +2792,7 @@ msgstr ""
" vma: Tips- Tids- Framåt- DLL- Första\n"
" tabell stämpel kedja namn thunk\n"
-#: peigen.c:1181 pepigen.c:1181
+#: peigen.c:1204 pepigen.c:1204
#, c-format
msgid ""
"\n"
@@ -2553,11 +2801,11 @@ msgstr ""
"\n"
"\tDLL-namn: %s\n"
-#: peigen.c:1192 pepigen.c:1192
+#: peigen.c:1215 pepigen.c:1215
msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
msgstr "\tvma: Tips/Ordn Medlemsnamn Bundet till\n"
-#: peigen.c:1217 pepigen.c:1217
+#: peigen.c:1240 pepigen.c:1240
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
@@ -2565,7 +2813,7 @@ msgstr ""
"\n"
"Det finns en första thunk, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1357 pepigen.c:1357
+#: peigen.c:1380 pepigen.c:1380
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
@@ -2573,7 +2821,7 @@ msgstr ""
"\n"
"Det finns en exporttabell, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1362 pepigen.c:1362
+#: peigen.c:1385 pepigen.c:1385
#, c-format
msgid ""
"\n"
@@ -2582,7 +2830,7 @@ msgstr ""
"\n"
"Det finns en exporttabell i %s vid 0x%lx\n"
-#: peigen.c:1393 pepigen.c:1393
+#: peigen.c:1416 pepigen.c:1416
#, c-format
msgid ""
"\n"
@@ -2592,61 +2840,61 @@ msgstr ""
"\n"
"Exporttabellerna (tolkade innehåll i %s-sektion)\n"
-#: peigen.c:1397 pepigen.c:1397
+#: peigen.c:1420 pepigen.c:1420
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "Exportflaggor \t\t\t%lx\n"
-#: peigen.c:1400 pepigen.c:1400
+#: peigen.c:1423 pepigen.c:1423
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "Tid-/Datumstämpel \t\t%lx\n"
-#: peigen.c:1403 pepigen.c:1403
+#: peigen.c:1426 pepigen.c:1426
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Övre/Undre \t\t\t%d/%d\n"
-#: peigen.c:1406 pepigen.c:1406
+#: peigen.c:1429 pepigen.c:1429
msgid "Name \t\t\t\t"
msgstr "Namn \t\t\t\t"
-#: peigen.c:1412 pepigen.c:1412
+#: peigen.c:1435 pepigen.c:1435
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "Ordningsbas \t\t\t%ld\n"
-#: peigen.c:1415 pepigen.c:1415
+#: peigen.c:1438 pepigen.c:1438
msgid "Number in:\n"
msgstr "Tal i:\n"
-#: peigen.c:1418 pepigen.c:1418
+#: peigen.c:1441 pepigen.c:1441
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tExportadresstabell \t\t%08lx\n"
-#: peigen.c:1422 pepigen.c:1422
+#: peigen.c:1445 pepigen.c:1445
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\t[Namnpekare/Ordningstal]-tabell\t%08lx\n"
-#: peigen.c:1425 pepigen.c:1425
+#: peigen.c:1448 pepigen.c:1448
msgid "Table Addresses\n"
msgstr "Tabelladresser\n"
-#: peigen.c:1428 pepigen.c:1428
+#: peigen.c:1451 pepigen.c:1451
msgid "\tExport Address Table \t\t"
msgstr "\tExportadresstabell \t\t"
-#: peigen.c:1433 pepigen.c:1433
+#: peigen.c:1456 pepigen.c:1456
msgid "\tName Pointer Table \t\t"
msgstr "\tNamnpekartabell \t\t"
-#: peigen.c:1438 pepigen.c:1438
+#: peigen.c:1461 pepigen.c:1461
msgid "\tOrdinal Table \t\t\t"
msgstr "\tOrdningstalstabell \t\t\t"
-#: peigen.c:1453 pepigen.c:1453
+#: peigen.c:1476 pepigen.c:1476
#, c-format
msgid ""
"\n"
@@ -2655,15 +2903,15 @@ msgstr ""
"\n"
"Exportadresstabell -- Orningsbas %ld\n"
-#: peigen.c:1472 pepigen.c:1472
+#: peigen.c:1495 pepigen.c:1495
msgid "Forwarder RVA"
msgstr "Vidarebefordrar-RVA"
-#: peigen.c:1483 pepigen.c:1483
+#: peigen.c:1506 pepigen.c:1506
msgid "Export RVA"
msgstr "Export-RVA"
-#: peigen.c:1490 pepigen.c:1490
+#: peigen.c:1513 pepigen.c:1513
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
@@ -2671,12 +2919,12 @@ msgstr ""
"\n"
"[Ordningstals-/Namnpekar-]tabell\n"
-#: peigen.c:1545 pepigen.c:1545
+#: peigen.c:1568 pepigen.c:1568
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "Varning, storleken på .pdata-sektionen (%ld) är inte en multipel av %d\n"
-#: peigen.c:1549 pepigen.c:1549
+#: peigen.c:1572 pepigen.c:1572
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
@@ -2684,11 +2932,11 @@ msgstr ""
"\n"
"Funktionstabellen (tolkade innehåll från .pdata-sektionen)\n"
-#: peigen.c:1552 pepigen.c:1552
+#: peigen.c:1575 pepigen.c:1575
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tStartadress Slutadress Ospola information\n"
-#: peigen.c:1554 pepigen.c:1554
+#: peigen.c:1577 pepigen.c:1577
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
@@ -2696,19 +2944,19 @@ msgstr ""
" vma:\t\tStart- Slut- EH- EH- Prologsluts- Undantags-\n"
" \t\tadress adress hanterare data adress mask\n"
-#: peigen.c:1624 pepigen.c:1624
+#: peigen.c:1647 pepigen.c:1647
msgid " Register save millicode"
msgstr " Registerspara millikod"
-#: peigen.c:1627 pepigen.c:1627
+#: peigen.c:1650 pepigen.c:1650
msgid " Register restore millicode"
msgstr " Registeråterställ millikod"
-#: peigen.c:1630 pepigen.c:1630
+#: peigen.c:1653 pepigen.c:1653
msgid " Glue code sequence"
msgstr " Klisterkodsekvens"
-#: peigen.c:1682 pepigen.c:1682
+#: peigen.c:1705 pepigen.c:1705
msgid ""
"\n"
"\n"
@@ -2718,7 +2966,7 @@ msgstr ""
"\n"
"PE-filbasomlokaliseringar (tolkat innehåll i .reloc-sektionen)\n"
-#: peigen.c:1712 pepigen.c:1712
+#: peigen.c:1735 pepigen.c:1735
#, c-format
msgid ""
"\n"
@@ -2727,7 +2975,7 @@ msgstr ""
"\n"
"Virtuell adress: %08lx Områdesstorlek %ld (0x%lx) Antal fixar %ld\n"
-#: peigen.c:1725 pepigen.c:1725
+#: peigen.c:1748 pepigen.c:1748
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\tomlokalisering %4d avstånd %4x [%4lx] %s"
@@ -2735,7 +2983,7 @@ msgstr "\tomlokalisering %4d avstånd %4x [%4lx] %s"
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1765 pepigen.c:1765
+#: peigen.c:1788 pepigen.c:1788
#, c-format
msgid ""
"\n"
@@ -2744,6 +2992,42 @@ msgstr ""
"\n"
"Karakteristik 0x%x\n"
+#~ msgid "%s: Unknown special linker type %d"
+#~ msgstr "%s: Okänd speciallänkartyp %d"
+
+#~ msgid "v850ea architecture"
+#~ msgstr "v850ea-arkitektur"
+
+#~ msgid "%s: Section %s is too large to add hole of %ld bytes"
+#~ msgstr "%s: Sektionen %s är för stor för att stoppa hål med %ld byte i"
+
+#~ msgid "Error: out of memory"
+#~ msgstr "Fel: slut på minne"
+
+#~ msgid "warning: relocation against removed section; zeroing"
+#~ msgstr "varning: omlokalisering mot borttagen sektion; nollställer"
+
+#~ msgid "warning: relocation against removed section"
+#~ msgstr "varning: omlokalisering mot borttagen sektion"
+
+#~ msgid "local symbols in discarded section %s"
+#~ msgstr "lokala symboler i bortkastade sektionen %s"
+
+#~ msgid "%s: linking abicalls files with non-abicalls files"
+#~ msgstr "%s: länkar abicalls-filer med icke-abicalls-filer"
+
+#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
+#~ msgstr "%s: ISA (-mips%d) passar inte med tidigare moduler (-mips%d)"
+
+#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)"
+#~ msgstr "%s: ISA (%d) passar inte med tidigare moduler (%d)"
+
+#~ msgid "%s: dynamic relocation against speculation fixup"
+#~ msgstr "%s: dynamisk omlokalisering utan spekulationsfixar"
+
+#~ msgid "%s: speculation fixup against undefined weak symbol"
+#~ msgstr "%s: spekulationsfix mot odefinierad svag symbol"
+
#~ msgid "\tThe Import Address Table (difference found)\n"
#~ msgstr "\tImportadresstabellen (skillnad hittad)\n"
diff --git a/bfd/po/tr.po b/bfd/po/tr.po
index 092c0ac..11630c6 100644
--- a/bfd/po/tr.po
+++ b/bfd/po/tr.po
@@ -1,508 +1,531 @@
-# BFD Turkish Translation.
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Deniz Akkus Kanca <deniz@arayan.com>, 2001.
+# translation of bfd-2.14rel030712.tr.po to Turkish
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Deniz Akkus Kanca <deniz@arayan.com>, 2001,2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-08-10 13:11EET\n"
+"Project-Id-Version: bfd 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:53+0930\n"
+"PO-Revision-Date: 2003-07-13 22:07+0300\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
+"X-Generator: KBabel 1.0\n"
-#: aout-adobe.c:197
+#: aout-adobe.c:204
#, c-format
msgid "%s: Unknown section type in a.out.adobe file: %x\n"
msgstr "%s: a.out.adobe dosyasında bilinmeyen bölüm türü: %x\n"
-#: aout-cris.c:208
+#: aout-cris.c:207
#, c-format
msgid "%s: Invalid relocation type exported: %d"
msgstr "%s: Geçersiz yer değiştirme türü ihraç edilmiş: %d"
-#: aout-cris.c:252
+#: aout-cris.c:251
#, c-format
msgid "%s: Invalid relocation type imported: %d"
msgstr "%s: Geçersiz yer değiştirme türü ithal edilmiş: %d"
-#: aout-cris.c:263
+#: aout-cris.c:262
#, c-format
msgid "%s: Bad relocation record imported: %d"
msgstr "%s: Geçersiz yer değiştirme kaydı ithal edilmiş: %d"
-#: aoutx.h:1282 aoutx.h:1699
+#: aoutx.h:1295 aoutx.h:1716
#, c-format
msgid "%s: can not represent section `%s' in a.out object file format"
msgstr "%s: `%s' bölümü a.out nesne dosya biçeminde gösterilemez"
-#: aoutx.h:1669
+#: aoutx.h:1682
#, c-format
msgid "%s: can not represent section for symbol `%s' in a.out object file format"
msgstr "%s: `%s' sembol bölümü a.out nesne dosyasında gösterilemez"
-#: aoutx.h:1671
+#: aoutx.h:1684
msgid "*unknown*"
msgstr "*bilinmeyen*"
-#: aoutx.h:3732
+#: aoutx.h:3776
#, c-format
-msgid "%s: relocateable link from %s to %s not supported"
+msgid "%s: relocatable link from %s to %s not supported"
msgstr "%s: %s'dan %s'ya yeri deÄŸiÅŸtirilebilen baÄŸ desteklenmiyor"
-#: archive.c:1826
+#: archive.c:1751
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr "Uyarı: arşiv yazma işlemi yavaş: zaman damgası yeniden yazılıyor\n"
-#: archive.c:2093
+#: archive.c:2014
msgid "Reading archive file mod timestamp"
msgstr "Arşiv dosyası değişim zaman damgası okunuyor"
-#. FIXME: bfd can't call perror.
-#: archive.c:2120
+#: archive.c:2040
msgid "Writing updated armap timestamp"
msgstr "Güncellenmiş armap zaman damgası yazılıyor"
-#: bfd.c:274
+#: bfd.c:280
msgid "No error"
msgstr "Hata yok"
-#: bfd.c:275
+#: bfd.c:281
msgid "System call error"
msgstr "Sistem çağrı hatası"
-#: bfd.c:276
+#: bfd.c:282
msgid "Invalid bfd target"
msgstr "Geçersiz bfd hedefi"
-#: bfd.c:277
+#: bfd.c:283
msgid "File in wrong format"
msgstr "Dosya yanlış biçemde"
-#: bfd.c:278
+#: bfd.c:284
msgid "Archive object file in wrong format"
msgstr "Arşiv nesne dosyası yanlış biçemde"
-#: bfd.c:279
+#: bfd.c:285
msgid "Invalid operation"
msgstr "Geçersiz işlem"
-#: bfd.c:280
+#: bfd.c:286
msgid "Memory exhausted"
msgstr "Bellek tükendi"
-#: bfd.c:281
+#: bfd.c:287
msgid "No symbols"
msgstr "Sembol yok"
-#: bfd.c:282
+#: bfd.c:288
msgid "Archive has no index; run ranlib to add one"
msgstr "Arşivin indeksi yok; ranlib çalıştırarak indeks ekleyin"
-#: bfd.c:283
+#: bfd.c:289
msgid "No more archived files"
msgstr "BaÅŸka arÅŸivlenmiÅŸ dosya yok"
-#: bfd.c:284
+#: bfd.c:290
msgid "Malformed archive"
msgstr "Bozuk arÅŸiv"
-#: bfd.c:285
+#: bfd.c:291
msgid "File format not recognized"
msgstr "Dosya biçemi tanınmıyor"
-#: bfd.c:286
+#: bfd.c:292
msgid "File format is ambiguous"
msgstr "Dosya biçemi belirsiz"
-#: bfd.c:287
+#: bfd.c:293
msgid "Section has no contents"
msgstr "Bölümde içerik yok"
-#: bfd.c:288
+#: bfd.c:294
msgid "Nonrepresentable section on output"
msgstr "Çıktıda gösterilemeyen bölüm"
-#: bfd.c:289
+#: bfd.c:295
msgid "Symbol needs debug section which does not exist"
msgstr "Sembol, olmayan hata ayıklama bölümünü istiyor"
-#: bfd.c:290
+#: bfd.c:296
msgid "Bad value"
msgstr "Geçersiz değer"
-#: bfd.c:291
+#: bfd.c:297
msgid "File truncated"
msgstr "Dosya budandı"
-#: bfd.c:292
+#: bfd.c:298
msgid "File too big"
msgstr "Dosya fazla büyük"
-#: bfd.c:293
+#: bfd.c:299
msgid "#<Invalid error code>"
msgstr "#<Geçersiz hata kodu>"
-#: bfd.c:700
+#: bfd.c:687
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "BFD %s, olumlama başarısız %s:%d"
-#: bfd.c:719
+#: bfd.c:703
#, c-format
msgid "BFD %s internal error, aborting at %s line %d in %s\n"
msgstr "BFD %s iç hatası, %s'da, %d satırı, %s içerisinde işlem durduruldu\n"
-#: bfd.c:723
+#: bfd.c:707
#, c-format
msgid "BFD %s internal error, aborting at %s line %d\n"
msgstr "BFD %s iç hatası, %s, %d satırında işlem durduruldu\n"
-#: bfd.c:725
+#: bfd.c:709
msgid "Please report this bug.\n"
msgstr "Lütfen bu hatayı bildirin.\n"
+#: bfdwin.c:202
+#, c-format
+msgid "not mapping: data=%lx mapped=%d\n"
+msgstr "eÅŸlenmeyen: veri=%lx eÅŸleÅŸen=%d\n"
+
+#: bfdwin.c:205
+msgid "not mapping: env var not set\n"
+msgstr "eşlenmeyen: çevre değişkeni atanmamış\n"
+
#: binary.c:306
#, c-format
msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
msgstr "Uyarı: `%s' bölümü çok büyük (negatif) dosya göreli konumu 0x%lx'e yazılıyor."
-#: coff-a29k.c:119
+#: coff-a29k.c:120
msgid "Missing IHCONST"
msgstr "IHCONST yok"
-#: coff-a29k.c:180
+#: coff-a29k.c:181
msgid "Missing IHIHALF"
msgstr "IHIHALF yok"
-#: coff-a29k.c:212 coff-or32.c:229
+#: coff-a29k.c:213 coff-or32.c:236
msgid "Unrecognized reloc"
msgstr "Tanınmayan yer değiştirme"
-#: coff-a29k.c:408
+#: coff-a29k.c:409
msgid "missing IHCONST reloc"
msgstr "eksik IHCONST yer deÄŸiÅŸtirmesi"
-#: coff-a29k.c:498
+#: coff-a29k.c:499
msgid "missing IHIHALF reloc"
msgstr "eksik IHIHALF yer deÄŸiÅŸtirmesi"
-#: coff-alpha.c:881 coff-alpha.c:918 coff-alpha.c:1989 coff-mips.c:1432
+#: coff-alpha.c:884 coff-alpha.c:921 coff-alpha.c:1992 coff-mips.c:1397
msgid "GP relative relocation used when GP not defined"
msgstr "GP tanımlanmamışken GP göreli yer değiştirmesi kullanılmış"
-#: coff-alpha.c:1485
+#: coff-alpha.c:1488
msgid "using multiple gp values"
msgstr "birden fazla gp değeri kullanılıyor"
-#: coff-arm.c:1066 elf32-arm.h:285
+#: coff-arm.c:1066 elf32-arm.h:294
#, c-format
msgid "%s: unable to find THUMB glue '%s' for `%s'"
msgstr "%1$s: `%3$s' için THUMB birleştiricisi '%2$s' bulunamadı "
-#: coff-arm.c:1096 elf32-arm.h:320
+#: coff-arm.c:1096 elf32-arm.h:329
#, c-format
msgid "%s: unable to find ARM glue '%s' for `%s'"
msgstr "%1$s: `%3$s' için ARM birleştiricisi '%2$s' bulunamadı"
-#: coff-arm.c:1391 coff-arm.c:1486 elf32-arm.h:887 elf32-arm.h:991
+#: coff-arm.c:1394 coff-arm.c:1489 elf32-arm.h:892 elf32-arm.h:999
#, c-format
msgid "%s(%s): warning: interworking not enabled."
msgstr "%s(%s): uyarı: beraber çalışma kipi etkin değil."
-#: coff-arm.c:1395 elf32-arm.h:994
+#: coff-arm.c:1398 elf32-arm.h:1002
#, c-format
msgid " first occurrence: %s: arm call to thumb"
msgstr " ilk ortaya çıkış: %s: thumb'a arm'dan çağrı"
-#: coff-arm.c:1490 elf32-arm.h:890
+#: coff-arm.c:1493 elf32-arm.h:895
#, c-format
msgid " first occurrence: %s: thumb call to arm"
msgstr " ilk ortaya çıkış: %s: arm'a thumb'dan çağrı"
-#: coff-arm.c:1493
+#: coff-arm.c:1496
msgid " consider relinking with --support-old-code enabled"
msgstr " --support-old-code seçeneği ile yeniden bağlamayı deneyin"
-#: coff-arm.c:1785 coff-tic80.c:686 cofflink.c:3031
+#: coff-arm.c:1788 coff-tic80.c:687 cofflink.c:3038
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr "%1$s: `%3$s' bölümünde geçersiz yer değiştirme adresi 0x%2$lx"
-#: coff-arm.c:2127
+#: coff-arm.c:2132
#, c-format
msgid "%s: illegal symbol index in reloc: %d"
msgstr "%s: yer değiştirmede geçersiz sembol indeksi: %d"
-#: coff-arm.c:2255
+#: coff-arm.c:2265
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr "Hata: %s APCS-%d için derlenmiş, fakat %s APCS-%d için derlenmiş"
-#: coff-arm.c:2270 elf32-arm.h:2297
+#: coff-arm.c:2280 elf32-arm.h:2328
#, c-format
msgid "ERROR: %s passes floats in float registers, whereas %s passes them in integer registers"
msgstr ""
"Hata: %s kayan sayıları kayan sayı yazmaçlarında geçiriyor, \n"
" fakat %s tamsayı yazmaçlarında geçiriyor"
-#: coff-arm.c:2273 elf32-arm.h:2302
+#: coff-arm.c:2283 elf32-arm.h:2333
#, c-format
msgid "ERROR: %s passes floats in integer registers, whereas %s passes them in float registers"
msgstr ""
"Hata: %s kayan sayıları tamsayı yazmaçlarında geçiriyor, \n"
" fakat %s kayan sayı yazmaçlarında geçiriyor"
-#: coff-arm.c:2288
+#: coff-arm.c:2298
#, c-format
msgid "ERROR: %s is compiled as position independent code, whereas target %s is absolute position"
msgstr "HATA: %s yerden bağımsız kod olarak derlendi, fakat hedef %s yere bağımlı"
-#: coff-arm.c:2291
+#: coff-arm.c:2301
#, c-format
msgid "ERROR: %s is compiled as absolute position code, whereas target %s is position independent"
msgstr "HATA: %s yere bağımlı kod olarak derlendi, fakat hedef %s yerden bağımsız"
-#: coff-arm.c:2320 elf32-arm.h:2358
+#: coff-arm.c:2330 elf32-arm.h:2405
#, c-format
msgid "Warning: %s supports interworking, whereas %s does not"
msgstr "Uyarı: %s girdi dosyası beraber çalışmayı destekliyor, fakat %s desteklemiyor."
-#: coff-arm.c:2323 elf32-arm.h:2365
+#: coff-arm.c:2333 elf32-arm.h:2412
#, c-format
msgid "Warning: %s does not support interworking, whereas %s does"
msgstr "Uyarı: %s girdi dosyası beraber çalışmayı desteklemiyor, fakat %s destekliyor."
-#: coff-arm.c:2350
+#: coff-arm.c:2360
#, c-format
msgid "private flags = %x:"
msgstr "özel bayraklar = %x:"
-#: coff-arm.c:2358 elf32-arm.h:2418
+#: coff-arm.c:2368 elf32-arm.h:2467
msgid " [floats passed in float registers]"
msgstr " [kayan sayılar kayan yazmaçlarda geçirildi]"
-#: coff-arm.c:2360
+#: coff-arm.c:2370
msgid " [floats passed in integer registers]"
msgstr " [kayan sayılar tamsayı yazmaçlarda geçirildi]"
-#: coff-arm.c:2363 elf32-arm.h:2421
+#: coff-arm.c:2373 elf32-arm.h:2470
msgid " [position independent]"
msgstr " [yerden bağımsız]"
-#: coff-arm.c:2365
+#: coff-arm.c:2375
msgid " [absolute position]"
msgstr " [yere bağımlı]"
-#: coff-arm.c:2369
+#: coff-arm.c:2379
msgid " [interworking flag not initialised]"
msgstr " [beraber çalışma bayrağına öndeğer atanmamış]"
-#: coff-arm.c:2371
+#: coff-arm.c:2381
msgid " [interworking supported]"
msgstr " [beraber çalışma destekleniyor]"
-#: coff-arm.c:2373
+#: coff-arm.c:2383
msgid " [interworking not supported]"
msgstr " [beraber çalışma desteklenmiyor]"
-#: coff-arm.c:2421 elf32-arm.h:2124
+#: coff-arm.c:2431 elf32-arm.h:2150
#, c-format
msgid "Warning: Not setting interworking flag of %s since it has already been specified as non-interworking"
msgstr "Uyarı: %s beraber çalışma bayrağı atanmadı, çünkü beraber çalışma olmayacağı önceden belirtilmiş"
-#: coff-arm.c:2425 elf32-arm.h:2128
+#: coff-arm.c:2435 elf32-arm.h:2154
#, c-format
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr "Uyarı: %s beraber çalışma bayrağı dış istek üzerine temizlendi"
-#: coff-i960.c:136 coff-i960.c:485
+#: coff-h8300.c:1096
+#, c-format
+msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
+msgstr "%s çıktısı kullanılırken R_MEM_INDIRECT yerdeğiştirmesi kullanılamıyor"
+
+#: coff-i960.c:137 coff-i960.c:486
msgid "uncertain calling convention for non-COFF symbol"
msgstr "COFF olmayan sembol için belirsiz çağrı davranışı"
-#: coff-m68k.c:481 coff-mips.c:2429 elf32-m68k.c:2157 elf32-mips.c:1844
+#: coff-m68k.c:482 coff-mips.c:2394 elf32-m68k.c:2193 elf32-mips.c:1783
msgid "unsupported reloc type"
msgstr "desteklenmeyen yer değiştirme türü"
-#: coff-mips.c:874 elf32-mips.c:1062 elf64-mips.c:1609
+#: coff-mips.c:839 elf32-mips.c:1088 elf64-mips.c:1590 elfn32-mips.c:1554
msgid "GP relative relocation when _gp not defined"
msgstr "_gp tanımsız iken GP göreli yer değiştirmesi"
#. No other sections should appear in -membedded-pic
#. code.
-#: coff-mips.c:2466
+#: coff-mips.c:2431
msgid "reloc against unsupported section"
msgstr "desteklenmeyen bölümde yer değiştirme"
-#: coff-mips.c:2474
+#: coff-mips.c:2439
msgid "reloc not properly aligned"
msgstr "yer değiştirme doğru hizalanmamış"
-#: coff-rs6000.c:2766
+#: coff-rs6000.c:2790
#, c-format
msgid "%s: unsupported relocation type 0x%02x"
msgstr "%s: desteklenmeyen yükleyici yerdeğişimi 0x%02x"
-#: coff-rs6000.c:2859
+#: coff-rs6000.c:2883
#, c-format
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr "%s: 0x%x'da TOC girdisi olmayan `%s' sembolüne TOC yerdeğişimi"
-#: coff-rs6000.c:3590 coff64-rs6000.c:2091
+#: coff-rs6000.c:3616 coff64-rs6000.c:2109
#, c-format
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr "%s: `%s' sembolünde bilinmeyen %d var"
-#: coff-tic54x.c:279 coff-tic80.c:449
+#: coff-tic4x.c:170 coff-tic54x.c:288 coff-tic80.c:450
#, c-format
msgid "Unrecognized reloc type 0x%x"
msgstr "Bilinmeyen yer değiştirme türü 0x%x"
-#: coff-tic54x.c:390 coffcode.h:4974
+#: coff-tic4x.c:218 coff-tic54x.c:373 coffcode.h:5045
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr "%s: uyarı: yer değiştirmelerde geçersiz sembol indeksi %ld"
-#: coff-w65.c:363
+#: coff-w65.c:364
#, c-format
msgid "ignoring reloc %s\n"
msgstr "yer değiştirme %s yoksayıldı\n"
-#: coffcode.h:1086
+#: coffcode.h:1108
#, c-format
msgid "%s (%s): Section flag %s (0x%x) ignored"
msgstr "%s (%s): Bölüm bayrağı %s (0x%x) yoksayıldı"
-#: coffcode.h:2143
+#: coffcode.h:2214
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr "Tanınmayan TI COFF hedef kimliği '0x%x'"
-#: coffcode.h:4365
+#: coffcode.h:4437
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr "%s: uyarı: satır numaralarında geçersiz sembol indeksi %ld"
-#: coffcode.h:4379
+#: coffcode.h:4451
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr "%s: uyarı: `%s' için tekrarlanmış satır numarası bilgisi"
-#: coffcode.h:4736
+#: coffcode.h:4805
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr "%1$s: %3$s sembolü `%4$s' için bilinmeyen saklama sınıfı %2$d"
-#: coffcode.h:4867
+#: coffcode.h:4938
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr "uyarı: %s: `%s' yerel sembolünün bölümü yok"
-#: coffcode.h:5012
+#: coffcode.h:5083
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr "%1$s: 0x%3$lx adresinde geçersiz yer değiştirme türü %2$d"
-#: coffgen.c:1661
+#: coffgen.c:1666
#, c-format
msgid "%s: bad string table size %lu"
msgstr "%s: geçersiz dizge tablo boyu %lu"
-#: cofflink.c:534 elflink.h:1912
+#: cofflink.c:538 elflink.h:1276
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
msgstr "Uyarı: %4$s içerisinde `%1$s' sembolünün türü %2$d'den %3$d'e değiştirildi"
-#: cofflink.c:2321
+#: cofflink.c:2328
#, c-format
msgid "%s: relocs in section `%s', but it has no contents"
msgstr "%s: `%s' bölümünde yer değiştirmeler mevcut, fakat içi boş"
-#: cofflink.c:2664 coffswap.h:877
+#: cofflink.c:2671 coffswap.h:890
#, c-format
msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%s: %s: yer değiştirme taşması: 0x%lx > 0xffff"
-#: cofflink.c:2673 coffswap.h:864
+#: cofflink.c:2680 coffswap.h:876
#, c-format
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: uyarı: %s: satır numarası taşması: 0x%lx > 0xffff"
-#: dwarf2.c:382
+#: cpu-arm.c:196 cpu-arm.c:206
+#, c-format
+msgid "ERROR: %s is compiled for the EP9312, whereas %s is compiled for XScale"
+msgstr "Hata: %s EP9312 için derlenmiş, fakat %s XScale için derlenmiş"
+
+#: cpu-arm.c:344
+#, c-format
+msgid "warning: unable to update contents of %s section in %s"
+msgstr "uyarı: %2$s içinde %1$s bölümünün içeriği güncellenemedi"
+
+#: dwarf2.c:380
msgid "Dwarf Error: Can't find .debug_str section."
msgstr "Dwarf Hatası: .debug_str bölümü bulunamadı."
-#: dwarf2.c:399
+#: dwarf2.c:397
#, c-format
msgid "Dwarf Error: DW_FORM_strp offset (%lu) greater than or equal to .debug_str size (%lu)."
msgstr ""
"Dwarf Hatası: DW_FORM_strp göreli konumu (%lu) .debug_str boyutundan (%lu) \n"
" daha büyük veya eşit."
-#: dwarf2.c:543
+#: dwarf2.c:541
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr "Dwarf Hatası: .debug_abbrev bölümü bulunamadı."
-#: dwarf2.c:560
+#: dwarf2.c:556
#, c-format
msgid "Dwarf Error: Abbrev offset (%lu) greater than or equal to .debug_abbrev size (%lu)."
msgstr ""
"Dwarf Hatası: Kısaltma göreli konumu (%lu) kısaltma boyutundan (%lu) \n"
" daha büyük veya eşit."
-#: dwarf2.c:757
+#: dwarf2.c:756
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
msgstr "Dwarf Hatası: Geçersiz veya desteklenmeyen FORM değeri: %u."
-#: dwarf2.c:852
+#: dwarf2.c:933
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr "Dwarf Hatası: bozulmuş satır numarası bölümü (geçersiz dosya numarası)."
-#: dwarf2.c:938
+#: dwarf2.c:1032
msgid "Dwarf Error: Can't find .debug_line section."
msgstr "Dwarf Hatası: .debug_line bölümü bulunamadı."
-#: dwarf2.c:961
+#: dwarf2.c:1049
#, c-format
msgid "Dwarf Error: Line offset (%lu) greater than or equal to .debug_line size (%lu)."
msgstr ""
"Dwarf Hatası: Satır göreli konumu (%lu) satır boyutundan (%lu)\n"
" daha büyük veya eşit."
-#: dwarf2.c:1159
+#: dwarf2.c:1255
msgid "Dwarf Error: mangled line number section."
msgstr "Dwarf Hatası: bozuk satır numarası bölümü."
-#: dwarf2.c:1355 dwarf2.c:1566
+#: dwarf2.c:1470 dwarf2.c:1620
#, c-format
msgid "Dwarf Error: Could not find abbrev number %u."
msgstr "Dwarf Hatası: Kısaltma numarası %u bulunamadı."
-#: dwarf2.c:1527
+#: dwarf2.c:1581
#, c-format
msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 information."
msgstr "Dwarf Hatası: dwarf sürümü '%u' bulundu, bu okuyucu yalnızca sürüm 2 bilgisini anlayabiliyor."
-#: dwarf2.c:1534
+#: dwarf2.c:1588
#, c-format
msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
msgstr "Dwarf Hatası: adres boyu '%u' bulundu, bu okuyucu '%u'dan daha büyük boyları okuyamıyor."
-#: dwarf2.c:1557
+#: dwarf2.c:1611
#, c-format
msgid "Dwarf Error: Bad abbrev number: %u."
msgstr "Dwarf Hatası: Geçersiz kısaltma numarası: %u."
-#: ecoff.c:1318
+#: ecoff.c:1339
#, c-format
msgid "Unknown basic type %d"
msgstr "Bilinmeyen temel tür %d"
-#: ecoff.c:1578
+#: ecoff.c:1599
#, c-format
msgid ""
"\n"
@@ -511,7 +534,7 @@ msgstr ""
"\n"
" Son+1 sembolü: %ld"
-#: ecoff.c:1585 ecoff.c:1588
+#: ecoff.c:1606 ecoff.c:1609
#, c-format
msgid ""
"\n"
@@ -520,7 +543,7 @@ msgstr ""
"\n"
" Ä°lk sembol: %ld"
-#: ecoff.c:1600
+#: ecoff.c:1621
#, c-format
msgid ""
"\n"
@@ -529,7 +552,7 @@ msgstr ""
"\n"
" Son+1 sembolü: %-7ld Tür: %s"
-#: ecoff.c:1607
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
@@ -538,7 +561,7 @@ msgstr ""
"\n"
" Yerel sembol: %ld"
-#: ecoff.c:1615
+#: ecoff.c:1636
#, c-format
msgid ""
"\n"
@@ -547,7 +570,7 @@ msgstr ""
"\n"
" yapı; Son+1 sembolü: %ld"
-#: ecoff.c:1620
+#: ecoff.c:1641
#, c-format
msgid ""
"\n"
@@ -556,7 +579,7 @@ msgstr ""
"\n"
" birleşim; Son+1 sembolü: %ld"
-#: ecoff.c:1625
+#: ecoff.c:1646
#, c-format
msgid ""
"\n"
@@ -565,7 +588,7 @@ msgstr ""
"\n"
" enum; Son+1 sembolü: %ld"
-#: ecoff.c:1631
+#: ecoff.c:1652
#, c-format
msgid ""
"\n"
@@ -574,54 +597,58 @@ msgstr ""
"\n"
" Tür: %s"
-#: elf-hppa.h:1476 elf-hppa.h:1509 elf32-ppc.c:3091 elf32-sh.c:4213
-#: elf64-sh64.c:1659
+#: elf-hppa.h:1458 elf-hppa.h:1491 elf-m10300.c:1628 elf64-sh64.c:1704
#, c-format
msgid "%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr "%1$s: uyarı: %3$s bölümünden `%2$s' sembolüne çözümlenemeyen yer değişimi"
-#: elf-m10200.c:446 elf-m10300.c:656 elf32-arm.h:2084 elf32-avr.c:833
-#: elf32-cris.c:1403 elf32-d10v.c:481 elf32-fr30.c:635 elf32-frv.c:809
-#: elf32-h8300.c:548 elf32-i860.c:1031 elf32-m32r.c:1278 elf32-openrisc.c:439
-#: elf32-v850.c:1691 elf32-xstormy16.c:933 elf64-mmix.c:1302
+#: elf-m10200.c:442 elf-m10300.c:1695 elf32-arm.h:2088 elf32-avr.c:812
+#: elf32-cris.c:1390 elf32-d10v.c:570 elf32-fr30.c:634 elf32-frv.c:815
+#: elf32-h8300.c:528 elf32-i860.c:1028 elf32-ip2k.c:1586 elf32-iq2000.c:699
+#: elf32-m32r.c:1283 elf32-m68hc1x.c:1305 elf32-msp430.c:510
+#: elf32-openrisc.c:436 elf32-v850.c:1777 elf32-xstormy16.c:976
+#: elf64-mmix.c:1332
msgid "internal error: out of range error"
msgstr "iç hata: kapsam dışı hatası"
-#: elf-m10200.c:450 elf-m10300.c:660 elf32-arm.h:2088 elf32-avr.c:837
-#: elf32-cris.c:1407 elf32-d10v.c:485 elf32-fr30.c:639 elf32-frv.c:813
-#: elf32-h8300.c:552 elf32-i860.c:1035 elf32-m32r.c:1282 elf32-openrisc.c:443
-#: elf32-v850.c:1695 elf32-xstormy16.c:937 elf64-mmix.c:1306 elfxx-mips.c:5264
+#: elf-m10200.c:446 elf-m10300.c:1699 elf32-arm.h:2092 elf32-avr.c:816
+#: elf32-cris.c:1394 elf32-d10v.c:574 elf32-fr30.c:638 elf32-frv.c:819
+#: elf32-h8300.c:532 elf32-i860.c:1032 elf32-iq2000.c:703 elf32-m32r.c:1287
+#: elf32-m68hc1x.c:1309 elf32-msp430.c:514 elf32-openrisc.c:440
+#: elf32-v850.c:1781 elf32-xstormy16.c:980 elf64-mmix.c:1336 elfxx-mips.c:6452
msgid "internal error: unsupported relocation error"
msgstr "iç hata: desteklenmeyen yer değişim hatası"
-#: elf-m10200.c:454 elf-m10300.c:664 elf32-arm.h:2092 elf32-d10v.c:489
-#: elf32-h8300.c:556 elf32-m32r.c:1286
+#: elf-m10200.c:450 elf-m10300.c:1703 elf32-arm.h:2096 elf32-d10v.c:578
+#: elf32-h8300.c:536 elf32-m32r.c:1291 elf32-m68hc1x.c:1313
msgid "internal error: dangerous error"
msgstr "iç hata: ölümcül hata"
-#: elf-m10200.c:458 elf-m10300.c:668 elf32-arm.h:2096 elf32-avr.c:845
-#: elf32-cris.c:1415 elf32-d10v.c:493 elf32-fr30.c:647 elf32-frv.c:821
-#: elf32-h8300.c:560 elf32-i860.c:1043 elf32-m32r.c:1290 elf32-openrisc.c:451
-#: elf32-v850.c:1715 elf32-xstormy16.c:945 elf64-mmix.c:1314
+#: elf-m10200.c:454 elf-m10300.c:1707 elf32-arm.h:2100 elf32-avr.c:824
+#: elf32-cris.c:1402 elf32-d10v.c:582 elf32-fr30.c:646 elf32-frv.c:827
+#: elf32-h8300.c:540 elf32-i860.c:1040 elf32-ip2k.c:1601 elf32-iq2000.c:711
+#: elf32-m32r.c:1295 elf32-m68hc1x.c:1317 elf32-msp430.c:522
+#: elf32-openrisc.c:448 elf32-v850.c:1801 elf32-xstormy16.c:988
+#: elf64-mmix.c:1344
msgid "internal error: unknown error"
msgstr "iç hata: bilinmeyen hata"
-#: elf.c:343
+#: elf.c:372
#, c-format
msgid "%s: invalid string offset %u >= %lu for section `%s'"
msgstr "%1$s: `%4$s' bölümünde geçersiz dizge göreli konumu %2$u >= %3$lu"
-#: elf.c:589
+#: elf.c:624
#, c-format
msgid "%s: invalid SHT_GROUP entry"
msgstr "%s: geçersiz SHT_GROUP girdisi"
-#: elf.c:660
+#: elf.c:695
#, c-format
msgid "%s: no group info for section %s"
msgstr "%s: %s bölümünde grup bilgisi yok"
-#: elf.c:1023
+#: elf.c:1055
msgid ""
"\n"
"Program Header:\n"
@@ -629,7 +656,7 @@ msgstr ""
"\n"
"Yazılım Başlığı:\n"
-#: elf.c:1073
+#: elf.c:1106
msgid ""
"\n"
"Dynamic Section:\n"
@@ -637,7 +664,7 @@ msgstr ""
"\n"
"Dinamik Bölüm:\n"
-#: elf.c:1202
+#: elf.c:1235
msgid ""
"\n"
"Version definitions:\n"
@@ -645,7 +672,7 @@ msgstr ""
"\n"
"Sürüm tanımları:\n"
-#: elf.c:1225
+#: elf.c:1258
msgid ""
"\n"
"Version References:\n"
@@ -653,104 +680,114 @@ msgstr ""
"\n"
"Sürüm Referansları:\n"
-#: elf.c:1230
+#: elf.c:1263
#, c-format
msgid " required from %s:\n"
msgstr " %s'den isteniyor:\n"
-#: elf.c:1902
+#: elf.c:1944
#, c-format
msgid "%s: invalid link %lu for reloc section %s (index %u)"
msgstr "%1$s: yerdeğişim bölümü %3$s (indeks %4$u) için geçersiz bağ %2$lu"
-#: elf.c:3603
+#: elf.c:3686
#, c-format
msgid "%s: Not enough room for program headers (allocated %u, need %u)"
msgstr "%s: Yazılım başlıkları için yeterli yer yok (%u ayrıldı, %u gerekli)"
-#: elf.c:3708
+#: elf.c:3791
#, c-format
msgid "%s: Not enough room for program headers, try linking with -N"
msgstr "%s: yazılım başlıkları için gerekli yer yok, -N ile bağlamayı deneyin"
-#: elf.c:3833
+#: elf.c:3922
#, c-format
msgid "Error: First section in segment (%s) starts at 0x%x whereas the segment starts at 0x%x"
msgstr "Hata: Parçadaki (%s) ilk bölüm 0x%x'de, parça ise 0x%x'de başlıyor"
-#: elf.c:4148
+#: elf.c:4242
#, c-format
msgid "%s: warning: allocated section `%s' not in segment"
msgstr "%s: uyarı: ayrılmış `%s' bölümü parça içinde değil"
-#: elf.c:4472
+#: elf.c:4566
#, c-format
msgid "%s: symbol `%s' required but not present"
msgstr "%s: `%s' sembolü gerekli fakat mevcut değil"
-#: elf.c:4749
+#: elf.c:4854
#, c-format
msgid "%s: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr "%s: uyarı: Boş yüklenebilir parça bulundu, bu isteyerek mi yapılıyor?\n"
-#: elf.c:6193
+#: elf.c:5485
+#, c-format
+msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr "'%2$s' bölümünden '%1$s' sembolü için eşdeğer çıktı bölümü bulunamadı"
+
+#: elf.c:6298
#, c-format
msgid "%s: unsupported relocation type %s"
msgstr "%s: desteklenmeyen yerdeğişim türü %s"
-#: elf32-arm.h:1221
+#: elf32-arm.h:1228
#, c-format
msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr "%s: Uyarı: Arm BLX işlemi Arm işlevi '%s' hedefliyor."
-#: elf32-arm.h:1417
+#: elf32-arm.h:1424
#, c-format
msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr "%s: Uyarı: Thumb BLX işlemi thumb işlevi '%s'ı hedefliyor."
-#: elf32-arm.h:1914 elf32-sh.c:4125
+#: elf32-arm.h:1918 elf32-sh.c:4706 elf64-sh64.c:1613
#, c-format
msgid "%s(%s+0x%lx): %s relocation against SEC_MERGE section"
msgstr "%s(%s+0x%lx): SEC_MERGE bölümüne %s yerdeğişimi"
-#: elf32-arm.h:2008
+#: elf32-arm.h:2012
#, c-format
msgid "%s: warning: unresolvable relocation %d against symbol `%s' from %s section"
msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$d yer değişimi"
-#: elf32-arm.h:2176
+#: elf32-arm.h:2202
#, c-format
msgid "Warning: Clearing the interworking flag of %s because non-interworking code in %s has been linked with it"
msgstr "Uyarı: %2$s'deki beraber çalışmaz kod ona bağlandığı için %1$s'nin beraber çalışma bayrağı temizlendi"
-#: elf32-arm.h:2271
+#: elf32-arm.h:2302
#, c-format
msgid "ERROR: %s is compiled for EABI version %d, whereas %s is compiled for version %d"
msgstr "Hata: %s EABI sürüm %d için derlenmiş, fakat %s %d sürümü için derlenmiş"
-#: elf32-arm.h:2285
+#: elf32-arm.h:2316
#, c-format
msgid "ERROR: %s is compiled for APCS-%d, whereas target %s uses APCS-%d"
msgstr "HATA: %s, APCS-%d için derlenmiş fakat hedef %s APCS-%d kullanıyor"
-#: elf32-arm.h:2313
+#: elf32-arm.h:2344
#, c-format
-msgid "ERROR: %s uses VFP instructions, whereas %s uses FPA instructions"
-msgstr "Hata: %s VFP işlemi kullanıyor, fakat %s FPA işlemi kullanıyor"
+msgid "ERROR: %s uses VFP instructions, whereas %s does not"
+msgstr "Hata: %s VFP işlemi kullanıyor, fakat %s kullanmıyor"
-#: elf32-arm.h:2318
+#: elf32-arm.h:2349
#, c-format
-msgid "ERROR: %s uses FPA instructions, whereas %s uses VFP instructions"
-msgstr "Hata: %s FPA işlemi kullanıyor, fakat %s VFP işlemi kullanıyor"
+msgid "ERROR: %s uses FPA instructions, whereas %s does not"
+msgstr "Hata: %s FPA işlemi kullanıyor, fakat %s kullanmıyor"
-#: elf32-arm.h:2338
+#: elf32-arm.h:2360 elf32-arm.h:2365
+#, c-format
+msgid "ERROR: %s uses Maverick instructions, whereas %s does not"
+msgstr "Hata: %s Maverick işlemi kullanıyor, fakat %s kullanmıyor"
+
+#: elf32-arm.h:2385
#, c-format
msgid "ERROR: %s uses software FP, whereas %s uses hardware FP"
msgstr ""
"Hata: %s yazılımda kayan sayı kullanıyor,\n"
" fakat %s donanımda kayan sayı kullanıyor"
-#: elf32-arm.h:2343
+#: elf32-arm.h:2390
#, c-format
msgid "ERROR: %s uses hardware FP, whereas %s uses software FP"
msgstr ""
@@ -759,124 +796,129 @@ msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2396 elf32-cris.c:2988 elf32-m68k.c:410 elf32-vax.c:543
-#: elfxx-mips.c:7756
+#: elf32-arm.h:2443 elf32-cris.c:2975 elf32-m68hc1x.c:1459 elf32-m68k.c:397
+#: elf32-vax.c:546 elfxx-mips.c:9238
#, c-format
msgid "private flags = %lx:"
msgstr "özel bayraklar = %lx:"
-#: elf32-arm.h:2405
+#: elf32-arm.h:2452
msgid " [interworking enabled]"
msgstr " [beraber çalışma etkinleştirilmiş]"
-#: elf32-arm.h:2413
+#: elf32-arm.h:2460
msgid " [VFP float format]"
msgstr " [VFP kayan nokta biçemi]"
-#: elf32-arm.h:2415
+#: elf32-arm.h:2462
+msgid " [Maverick float format]"
+msgstr " [Maverick kayan nokta biçemi]"
+
+#: elf32-arm.h:2464
msgid " [FPA float format]"
msgstr " [FPA kayan nokta biçemi]"
-#: elf32-arm.h:2424
+#: elf32-arm.h:2473
msgid " [new ABI]"
msgstr " [yeni ABI]"
-#: elf32-arm.h:2427
+#: elf32-arm.h:2476
msgid " [old ABI]"
msgstr " [eski ABI]"
-#: elf32-arm.h:2430
+#: elf32-arm.h:2479
msgid " [software FP]"
msgstr " [yazılım FP]"
-#: elf32-arm.h:2438
+#: elf32-arm.h:2488
msgid " [Version1 EABI]"
msgstr " [Sürüm1 EABI]"
-#: elf32-arm.h:2441 elf32-arm.h:2452
+#: elf32-arm.h:2491 elf32-arm.h:2502
msgid " [sorted symbol table]"
msgstr " [sıralanmış sembol tablosu]"
-#: elf32-arm.h:2443 elf32-arm.h:2454
+#: elf32-arm.h:2493 elf32-arm.h:2504
msgid " [unsorted symbol table]"
msgstr " [sıralanmamış sembol tablosu]"
-#: elf32-arm.h:2449
+#: elf32-arm.h:2499
msgid " [Version2 EABI]"
msgstr " [Sürüm2 EABI]"
-#: elf32-arm.h:2457
+#: elf32-arm.h:2507
msgid " [dynamic symbols use segment index]"
msgstr " [dinamik semboller bölüm indeksini kullanıyor]"
-#: elf32-arm.h:2460
+#: elf32-arm.h:2510
msgid " [mapping symbols precede others]"
msgstr " [eşleşme sembolleri diğerlerinden önceliklidir]"
-#: elf32-arm.h:2467
+#: elf32-arm.h:2517
msgid " <EABI version unrecognised>"
msgstr " <EABI sürümü bilinmiyor>"
-#: elf32-arm.h:2474
+#: elf32-arm.h:2524
msgid " [relocatable executable]"
msgstr " [yer deÄŸiÅŸtirebilir uygulama]"
-#: elf32-arm.h:2477
+#: elf32-arm.h:2527
msgid " [has entry point]"
msgstr " [girdi noktası var]"
-#: elf32-arm.h:2482
+#: elf32-arm.h:2532
msgid "<Unrecognised flag bits set>"
msgstr "<Bilinmeyen bayrak bitleri atanmış>"
-#: elf32-avr.c:841 elf32-cris.c:1411 elf32-fr30.c:643 elf32-frv.c:817
-#: elf32-i860.c:1039 elf32-openrisc.c:447 elf32-v850.c:1699
-#: elf32-xstormy16.c:941 elf64-mmix.c:1310
+#: elf32-avr.c:820 elf32-cris.c:1398 elf32-fr30.c:642 elf32-frv.c:823
+#: elf32-i860.c:1036 elf32-ip2k.c:1597 elf32-iq2000.c:707 elf32-msp430.c:518
+#: elf32-openrisc.c:444 elf32-v850.c:1785 elf32-xstormy16.c:984
+#: elf64-mmix.c:1340
msgid "internal error: dangerous relocation"
msgstr "iç hata: tehlikeli yer değişim"
-#: elf32-cris.c:949
+#: elf32-cris.c:931
#, c-format
msgid "%s: unresolvable relocation %s against symbol `%s' from %s section"
msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne çözümlenemeyen %2$s yer değişimi"
-#: elf32-cris.c:1012
+#: elf32-cris.c:993
#, c-format
msgid "%s: No PLT nor GOT for relocation %s against symbol `%s' from %s section"
msgstr "%1$s: %4$s bölümünden `%3$s' sembolüne %2$s yer değişimi için PLT veya GOT yok"
-#: elf32-cris.c:1015 elf32-cris.c:1141
+#: elf32-cris.c:996 elf32-cris.c:1122
msgid "[whose name is lost]"
msgstr "[adı kaybolmuş]"
-#: elf32-cris.c:1130
+#: elf32-cris.c:1111
#, c-format
msgid "%s: relocation %s with non-zero addend %d against local symbol from %s section"
msgstr ""
"%1$s: %4$s bölümünden yerel sembol sıfır olmayan %3$d eklemesi ile\n"
" %2$s yerdeÄŸiÅŸimi"
-#: elf32-cris.c:1137
+#: elf32-cris.c:1118
#, c-format
msgid "%s: relocation %s with non-zero addend %d against symbol `%s' from %s section"
-msgstr "%1$s: %5$s bölümünden `%4$s' sembolüne sıfır olmayan %3$d eklemesi ile %2$s yerdeğişimi"
+msgstr "%1$s: %5$s bölümünden `%4$s' sembolüne sıfır olmayan %3$d eklemesi ile %2$s yerdeğişimi"
-#: elf32-cris.c:1155
+#: elf32-cris.c:1143
#, c-format
msgid "%s: relocation %s is not allowed for global symbol: `%s' from %s section"
msgstr "%1$s: %4$s bölümünden %3$s evrensel sembolü için %2$s yerdeğişimi yapılamaz"
-#: elf32-cris.c:1170
+#: elf32-cris.c:1158
#, c-format
msgid "%s: relocation %s in section %s with no GOT created"
msgstr "%1$s: `%3$s' bölümünde %2$s yer değiştirmesi mevcut, fakat GOT oluşturulmamış"
-#: elf32-cris.c:1288
+#: elf32-cris.c:1277
#, c-format
msgid "%s: Internal inconsistency; no relocation section %s"
msgstr "%s: İç tutarsızlık; %s yerdeğişim bölümü yok"
-#: elf32-cris.c:2514
+#: elf32-cris.c:2500
#, c-format
msgid ""
"%s, section %s:\n"
@@ -886,492 +928,645 @@ msgstr ""
" %s yer değişimi paylaşımlı nesne oluştururken kullanılamaz;\n"
" -fPIC ile yeniden derleyin"
-#: elf32-cris.c:2991
+#: elf32-cris.c:2978
msgid " [symbols have a _ prefix]"
msgstr " [semboller _ önekine sahip]"
-#: elf32-cris.c:3030
+#: elf32-cris.c:3017
#, c-format
msgid "%s: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%s: _-önekli sembolleri kullanıyor, fakat dosyaya öneksiz sembolleri yazıyor"
-#: elf32-cris.c:3031
+#: elf32-cris.c:3018
#, c-format
msgid "%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%s: öneksiz sembolleri kullanıyor, fakat dosyaya _-önekli sembolleri yazıyor"
-#: elf32-frv.c:1217
+#: elf32-frv.c:1223
#, c-format
msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%s: %s ile derlendi ve normal derlenmiş modüllerle bağlandı"
-#: elf32-frv.c:1267
+#: elf32-frv.c:1273 elf32-iq2000.c:895
#, c-format
msgid "%s: compiled with %s and linked with modules compiled with %s"
msgstr "%s: %s ile derlendi ve %s ile derlenmiş modüllerle bağlandı"
-#: elf32-frv.c:1279
+#: elf32-frv.c:1285
#, c-format
msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr "%s: önceki modüllerden farklı bilinmeyen e_flags (0x%lx) alanları kullanılıyor (0x%lx)"
-#: elf32-frv.c:1315
+#: elf32-frv.c:1321 elf32-iq2000.c:933
#, c-format
msgid "private flags = 0x%lx:"
msgstr "özel bayraklar = 0x%lx:"
-#: elf32-gen.c:82 elf64-gen.c:82
+#: elf32-gen.c:83 elf64-gen.c:82
#, c-format
msgid "%s: Relocations in generic ELF (EM: %d)"
msgstr "%s: Normal ELF'de yerdeÄŸiÅŸimler (EM: %d)"
-#: elf32-hppa.c:671 elf64-ppc.c:2323
+#: elf32-hppa.c:672 elf32-m68hc1x.c:176 elf64-ppc.c:3118
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr "%s: koçan girişi %s oluşturulamadı"
-#: elf32-hppa.c:956 elf32-hppa.c:3555
+#: elf32-hppa.c:957 elf32-hppa.c:3538
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr "%s(%s+0x%lx): %s'e ulaşılamadı, -ffunction-sections ile derleyin"
-#: elf32-hppa.c:1338 elf64-x86-64.c:673
+#: elf32-hppa.c:1340 elf64-x86-64.c:672 elf64-x86-64.c:797
#, c-format
msgid "%s: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr "%s: %s yer değişimi paylaşımlı nesne oluşturulurken kullanılamaz; -fPIC ile yeniden derleyin"
-#: elf32-hppa.c:1358
+#: elf32-hppa.c:1360
#, c-format
msgid "%s: relocation %s should not be used when making a shared object; recompile with -fPIC"
msgstr "%s: %s yer değişimi paylaşımlı nesne oluştururken kullanılamaz; -fPIC ile yeniden derleyin"
-#: elf32-hppa.c:1551
+#: elf32-hppa.c:1553
#, c-format
msgid "Could not find relocation section for %s"
msgstr "%s için yer değiştirme bölümü bulunamadı"
-#: elf32-hppa.c:2855
+#: elf32-hppa.c:2828
#, c-format
msgid "%s: duplicate export stub %s"
msgstr "%s: birden fazla ihraç koçanı %s"
-#: elf32-hppa.c:3433
+#: elf32-hppa.c:3416
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr "%s(%s+0x%lx): %s düzeltiliyor"
-#: elf32-hppa.c:4080
+#: elf32-hppa.c:4039
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr "%1$s(%2$s+0x%3$lx): %5$s için %4$s işlenemedi"
-#: elf32-hppa.c:4393
+#: elf32-hppa.c:4357
msgid ".got section not immediately after .plt section"
msgstr ".got bölümü .plt bölümünün hemen arkasında değil"
-#: elf32-i386.c:379
+#: elf32-i386.c:326
#, c-format
msgid "%s: invalid relocation type %d"
msgstr "%s: geçersiz yer değişim türü %d"
-#: elf32-i386.c:876 elf32-s390.c:649 elf64-s390.c:595 elf64-x86-64.c:591
+#: elf32-i386.c:841 elf32-s390.c:990 elf32-sparc.c:887 elf32-xtensa.c:637
+#: elf64-s390.c:943 elf64-x86-64.c:650
#, c-format
msgid "%s: bad symbol index: %d"
msgstr "%s: geçersiz sembol indeksi: %d"
-#: elf32-i386.c:948
+#: elf32-i386.c:949 elf32-s390.c:1168 elf32-sh.c:6426 elf32-sparc.c:1011
+#: elf64-s390.c:1129
#, c-format
msgid "%s: `%s' accessed both as normal and thread local symbol"
msgstr "%s: `%s'a hem normal, hem de dal yerel sembolü olarak erişildi"
-#: elf32-i386.c:1072 elf32-s390.c:808 elf64-ppc.c:2827 elf64-s390.c:759
-#: elf64-x86-64.c:761
+#: elf32-i386.c:1064 elf32-s390.c:1279 elf64-ppc.c:3929 elf64-s390.c:1243
+#: elf64-x86-64.c:886
#, c-format
msgid "%s: bad relocation section name `%s'"
msgstr "%s: geçersiz yerdeğişim bölümü adı `%s'"
-#: elf32-i386.c:1159 elf64-alpha.c:4768
-#, c-format
-msgid "%s: TLS local exec code cannot be linked into shared objects"
-msgstr "%s: TLS yerel çalıştırma kodu paylaşımlı nesnelere bağlanamaz"
-
-#: elf32-i386.c:2747 elf32-s390.c:1981 elf32-sparc.c:1571 elf64-ppc.c:5918
-#: elf64-s390.c:1945 elf64-sparc.c:2578 elf64-x86-64.c:1948
+#: elf32-i386.c:2908 elf32-m68k.c:1757 elf32-s390.c:3022 elf32-sparc.c:2879
+#: elf32-xtensa.c:2193 elf64-s390.c:3018 elf64-sparc.c:2664
+#: elf64-x86-64.c:2452
#, c-format
msgid "%s(%s+0x%lx): unresolvable relocation against symbol `%s'"
msgstr "%s(%s+0x%lx): `%s' sembolüne çözümlenemeyen yer değişimi"
-#: elf32-i386.c:2784 elf32-s390.c:2019 elf64-ppc.c:5977 elf64-s390.c:1983
-#: elf64-x86-64.c:1986
+#: elf32-i386.c:2947 elf32-m68k.c:1796 elf32-s390.c:3072 elf64-s390.c:3068
+#: elf64-x86-64.c:2490
#, c-format
msgid "%s(%s+0x%lx): reloc against `%s': error %d"
msgstr "%s(%s+0x%lx): %s'e yer değişimi: %d hatası"
-#: elf32-m32r.c:924
+#: elf32-ip2k.c:565 elf32-ip2k.c:571 elf32-ip2k.c:734 elf32-ip2k.c:740
+msgid "ip2k relaxer: switch table without complete matching relocation information."
+msgstr "ip2k esneticisi: tamamen eÅŸleÅŸen yerdeÄŸiÅŸim bilgisi olmadan tabloyu deÄŸiÅŸtirir."
+
+#: elf32-ip2k.c:588 elf32-ip2k.c:767
+msgid "ip2k relaxer: switch table header corrupt."
+msgstr "ip2k esneticisi: değişiklik tablosu başlığı bozuk."
+
+#: elf32-ip2k.c:1395
+#, c-format
+msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "ip2k bağlayıcısı: 0x%08lx adresinde sayfa işlemi eksik (hedef = 0x%08lx)."
+
+#: elf32-ip2k.c:1409
+#, c-format
+msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr "ip2k bağlayıcısı: 0x%08lx adresinde gereksiz sayfa işlemi (hedef = 0x%08lx)."
+
+#. Only if it's not an unresolved symbol.
+#: elf32-ip2k.c:1593
+msgid "unsupported relocation between data/insn address spaces"
+msgstr "veri/işlem adres yerleri arasında desteklenmeyen yerdeğişim"
+
+#: elf32-iq2000.c:907 elf32-m68hc1x.c:1431 elf32-ppc.c:2175 elf64-sparc.c:3072
+#: elfxx-mips.c:9195
+#, c-format
+msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%1$s: önceki modüllerden (0x%3$lx) farklı e_flags (0x%2$lx) alanları kullanılıyor"
+
+#: elf32-m32r.c:930
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "_SDA_BASE_ tanımlanmamış iken SDA yer değişimi"
-#: elf32-ia64.c:3687 elf32-m32r.c:1013 elf32-ppc.c:2987 elf64-alpha.c:4185
-#: elf64-alpha.c:4313 elf64-ia64.c:3687
+#: elf32-m32r.c:1018 elf64-alpha.c:4279 elf64-alpha.c:4407 elf32-ia64.c:3958
+#: elf64-ia64.c:3958
#, c-format
msgid "%s: unknown relocation type %d"
msgstr "%s: bilinmeyen yer değişim türü %d"
-#: elf32-m32r.c:1221
+#: elf32-m32r.c:1226
#, c-format
msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
msgstr "%1$s: Bir %3$s yer değişiminin hedefi (%2$s) yanlış bölümde (%4$s)"
-#: elf32-m32r.c:1947
+#: elf32-m32r.c:1952
#, c-format
msgid "%s: Instruction set mismatch with previous modules"
msgstr "%s: Önceki modüllerle işlem uyuşmazlığı"
-#: elf32-m32r.c:1970
+#: elf32-m32r.c:1975
#, c-format
msgid "private flags = %lx"
msgstr "özel bayraklar = %lx"
-#: elf32-m32r.c:1975
+#: elf32-m32r.c:1980
msgid ": m32r instructions"
msgstr ": m32r iÅŸlemleri"
-#: elf32-m32r.c:1976
+#: elf32-m32r.c:1981
msgid ": m32rx instructions"
msgstr ": m32rx iÅŸlemleri"
-#: elf32-m68k.c:413
+#: elf32-m68hc1x.c:1217
+#, c-format
+msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr "Uzak sembol `%s''ye yanlış bir yerdeğişim ile referans yanlış işlemeye yol açabilir."
+
+#: elf32-m68hc1x.c:1240
+#, c-format
+msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
+msgstr "saklanmış adres [%lx:%04lx] (%lx) şimdiki saklanmış adres [%lx:%04lx] (%lx) ile aynı saklama bankında değil"
+
+#: elf32-m68hc1x.c:1259
+#, c-format
+msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
+msgstr "%3$04lx normal adresinde saklanmış adres [%1$lx:%2$04lx]'e referans var"
+
+#: elf32-m68hc1x.c:1396
+#, c-format
+msgid "%s: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr "%s: 16-bit tamsayı için derlenmiş (-mshort) dosyalar, 32 bit tamsayı için derlenmiş başka dosyalarla bağlanıyor"
+
+#: elf32-m68hc1x.c:1404
+#, c-format
+msgid "%s: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr "%s: 32-bit double (-fshort-double) için derlenmiş dosyalar 64-bit double için derlenmiş dosyalarla bağlanıyor"
+
+#: elf32-m68hc1x.c:1414
+#, c-format
+msgid "%s: linking files compiled for HCS12 with others compiled for HC12"
+msgstr "%s: HCS12 için derlenmiş dosyalar HC12 için derlenmiş dosyalarla bağlanıyor"
+
+#: elf32-m68hc1x.c:1462
+msgid "[abi=32-bit int, "
+msgstr "[abi=32-bit int, "
+
+#: elf32-m68hc1x.c:1464
+msgid "[abi=16-bit int, "
+msgstr "[abi=16-bit int, "
+
+#: elf32-m68hc1x.c:1467
+msgid "64-bit double, "
+msgstr "64-bit double, "
+
+#: elf32-m68hc1x.c:1469
+msgid "32-bit double, "
+msgstr "32-bit double, "
+
+#: elf32-m68hc1x.c:1472
+msgid "cpu=HC11]"
+msgstr "cpu=HC11]"
+
+#: elf32-m68hc1x.c:1474
+msgid "cpu=HCS12]"
+msgstr "cpu=HCS12]"
+
+#: elf32-m68hc1x.c:1476
+msgid "cpu=HC12]"
+msgstr "cpu=HC12]"
+
+#: elf32-m68hc1x.c:1479
+msgid " [memory=bank-model]"
+msgstr " [bellek=bank türü]"
+
+#: elf32-m68hc1x.c:1481
+msgid " [memory=flat]"
+msgstr " [bellek=düz]"
+
+#: elf32-m68k.c:400
msgid " [cpu32]"
msgstr " [cpu32]"
-#: elf32-m68k.c:416
+#: elf32-m68k.c:403
msgid " [m68000]"
msgstr " [m68000]"
-#: elf32-mcore.c:354 elf32-mcore.c:457
+#: elf32-mcore.c:353 elf32-mcore.c:456
#, c-format
msgid "%s: Relocation %s (%d) is not currently supported.\n"
msgstr "%s: %s (%d) yer değişimi henüz desteklenmiyor.\n"
-#: elf32-mcore.c:442
+#: elf32-mcore.c:441
#, c-format
msgid "%s: Unknown relocation type %d\n"
msgstr "%s: Bilinmeyen yer değişim türü %d\n"
-#: elf32-mips.c:1152 elf64-mips.c:1783
+#: elf32-mips.c:1170 elf64-mips.c:1717 elfn32-mips.c:1664
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr "32 bitlik gp göreceli yer değişim bir dış sembol için yapılıyor"
-#: elf32-mips.c:1301
+#: elf32-mips.c:1314 elf64-mips.c:1830 elfn32-mips.c:1783
#, c-format
msgid "Linking mips16 objects into %s format is not supported"
msgstr "mips16 nesnelerini %s biçemine bağlamak desteklenmiyor"
-#: elf32-ppc.c:1460
+#: elf32-ppc.c:2056
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr "jenerik bağlayıcı %s desteklemiyor"
+
+#: elf32-ppc.c:2138
#, c-format
msgid "%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr "%s: -mrelocatable ile derlendi ve normal derlenmiş modüllerle bağlandı"
-#: elf32-ppc.c:1468
+#: elf32-ppc.c:2147
#, c-format
msgid "%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr "%s: normal derlendi ve -mrelocatable ile derlenmiş modüllere bağlandı"
-#: elf32-ppc.c:1494 elf64-sparc.c:2989 elfxx-mips.c:7713
-#, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%1$s: önceki modüllerden (0x%3$lx) farklı e_flags (0x%2$lx) alanları kullanılıyor"
-
-#: elf32-ppc.c:1592
-#, c-format
-msgid "%s: Unknown special linker type %d"
-msgstr "%s: Bilinmeyen özel bağlayıcı türü %d"
-
-#: elf32-ppc.c:2273 elf32-ppc.c:2307 elf32-ppc.c:2342
+#: elf32-ppc.c:3413
#, c-format
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr "%s: %s yerdeğişimi paylaşımlı nesne oluşturulurken kullanılamaz"
-#: elf32-ppc.c:3126 elf64-ppc.c:5473
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3619
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against local symbol"
+msgstr "%s(%s+0x%lx): %s yerel sembole yerdeÄŸiÅŸimi"
+
+#: elf32-ppc.c:4862 elf64-ppc.c:7789
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr "%1$s: %3$s sembolü için bilinmeyen %2$d türünde yerdeğişimi"
-#: elf32-ppc.c:3482 elf32-ppc.c:3503 elf32-ppc.c:3553
+#: elf32-ppc.c:5113
+#, c-format
+msgid "%s(%s+0x%lx): non-zero addend on %s reloc against `%s'"
+msgstr "%1$s(%2$s+0x%3$lx): %5$s'ye yerdeğişimde `%4$s'de sıfır olmayan ekleme"
+
+#: elf32-ppc.c:5399 elf32-ppc.c:5425 elf32-ppc.c:5484
#, c-format
-msgid "%s: The target (%s) of a %s relocation is in the wrong output section (%s)"
+msgid "%s: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr "%1$s: %3$s yerdeğişiminin hedefi (%2$s) yanlış çıktı bölümünde (%4$s)"
-#: elf32-ppc.c:3619
+#: elf32-ppc.c:5539
#, c-format
-msgid "%s: Relocation %s is not yet supported for symbol %s."
+msgid "%s: relocation %s is not yet supported for symbol %s."
msgstr "%s: %s yerdeğişimi %s sembolü için henüz desteklenmiyor."
-#: elf32-sh.c:1964
+#: elf32-ppc.c:5594 elf64-ppc.c:8461
+#, c-format
+msgid "%s(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr "%1$s(%2$s+0x%3$lx): `%5$s' sembolüne çözümlenemeyen yer değişimi %4$s"
+
+#: elf32-ppc.c:5644 elf64-ppc.c:8507
+#, c-format
+msgid "%s(%s+0x%lx): %s reloc against `%s': error %d"
+msgstr "%1$s(%2$s+0x%3$lx): %5$s'e %4$s yer değişimi: %6$d hatası"
+
+#: elf32-ppc.c:5888
+#, c-format
+msgid "corrupt or empty %s section in %s"
+msgstr "%2$s içinde bozuk veya boş %1$s bölümü"
+
+#: elf32-ppc.c:5895
+#, c-format
+msgid "unable to read in %s section from %s"
+msgstr "%s bölümü %s'den okunamadı"
+
+#: elf32-ppc.c:5901
+#, c-format
+msgid "corrupt %s section in %s"
+msgstr "%2$s içinde bozuk %1$s bölümü"
+
+#: elf32-ppc.c:5944
+#, c-format
+msgid "warning: unable to set size of %s section in %s"
+msgstr "uyarı: %2$s içinde %1$s bölümünün boyu atanamadı"
+
+#: elf32-ppc.c:5994
+msgid "failed to allocate space for new APUinfo section."
+msgstr "yeni APUinfo bölümü için yer ayrılamadı."
+
+#: elf32-ppc.c:6013
+msgid "failed to compute new APUinfo section."
+msgstr "yeni APUinfo bölümü hesaplanamadı."
+
+#: elf32-ppc.c:6016
+msgid "failed to install new APUinfo section."
+msgstr "yeni APUinfo bölümü kurulamadı."
+
+#: elf32-s390.c:2256 elf64-s390.c:2226
+#, c-format
+msgid "%s(%s+0x%lx): invalid instruction for TLS relocation %s"
+msgstr "%s(%s+0x%lx): TLS yerdeğişimi %s için geçersiz işlem"
+
+#: elf32-sh.c:2103
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr "%s: 0x%lx: uyarı: hatalı R_SH_USES göreli konumu"
-#: elf32-sh.c:1976
+#: elf32-sh.c:2115
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%s: 0x%lx: uyarı: R_SH_USES bilinmeyen insn 0x%x'ı imliyor"
-#: elf32-sh.c:1993
+#: elf32-sh.c:2132
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr "%s: 0x%lx: uyarı: hatalı R_SH_USES yükleme göreli konumu"
-#: elf32-sh.c:2008
+#: elf32-sh.c:2147
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr "%s: 0x%lx: uyarı: beklenen yerdeğişim bulunamadı"
-#: elf32-sh.c:2036
+#: elf32-sh.c:2175
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr "%s: 0x%lx: uyarı: beklenmeyen bölümde sembol"
-#: elf32-sh.c:2153
+#: elf32-sh.c:2300
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr "%s: 0x%lx: uyarı: beklenen COUNT yerdeğişimi bulunamadı"
-#: elf32-sh.c:2162
+#: elf32-sh.c:2309
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr "%s: 0x%lx: uyarı: hatalı sayım"
-#: elf32-sh.c:2550 elf32-sh.c:2926
+#: elf32-sh.c:2712 elf32-sh.c:3088
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr "%s: 0x%lx: ölümcül: gevşetilirken yerdeğişim taşması"
-#: elf32-sh.c:4073 elf64-sh64.c:1576
+#: elf32-sh.c:4654 elf64-sh64.c:1585
msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
msgstr "Yerel sembolde STO_SH5_ISA32 desteklenmiyor"
-#: elf32-sh.c:4284
+#: elf32-sh.c:4809
+#, c-format
+msgid "%s: unresolvable relocation against symbol `%s' from %s section"
+msgstr "%1$s: %3$s bölümünden `%2$s' sembolüne çözümlenemeyen yer değişimi"
+
+#: elf32-sh.c:4881
#, c-format
msgid "%s: 0x%lx: fatal: unaligned branch target for relax-support relocation"
msgstr "%s: 0x%lx: ölümcül: gevşetme destek yerdeğişimi için hizalanmamış dal"
-#: elf32-sh64.c:203 elf64-sh64.c:2364
+#: elf32-sh.c:6627 elf64-alpha.c:4848
+#, c-format
+msgid "%s: TLS local exec code cannot be linked into shared objects"
+msgstr "%s: TLS yerel çalıştırma kodu paylaşımlı nesnelere bağlanamaz"
+
+#: elf32-sh64.c:221 elf64-sh64.c:2407
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: 32 bitlik sistem için derlenmiş ve %s 64 bit"
-#: elf32-sh64.c:206 elf64-sh64.c:2367
+#: elf32-sh64.c:224 elf64-sh64.c:2410
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: 64 bitlik sistem için derlenmiş ve %s 32 bit"
-#: elf32-sh64.c:208 elf64-sh64.c:2369
+#: elf32-sh64.c:226 elf64-sh64.c:2412
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: nesne boyu hedef %s'nin boyuyla eÅŸleÅŸmiyor"
-#: elf32-sh64.c:440 elf64-sh64.c:2941
+#: elf32-sh64.c:461 elf64-sh64.c:2990
#, c-format
msgid "%s: encountered datalabel symbol in input"
msgstr "%s: girdide veri etiketi sembolüne rastlandı"
-#: elf32-sh64.c:523
+#: elf32-sh64.c:544
msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
msgstr "PTB uyumsuzluÄŸu: SHmedia adresi (bit 0 == 1)"
-#: elf32-sh64.c:526
+#: elf32-sh64.c:547
msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
msgstr "PTA uyumsuzluÄŸu: SHcompact adresi (bit 0 == 0)"
-#: elf32-sh64.c:544
+#: elf32-sh64.c:565
#, c-format
msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
msgstr "%s: GAS hatası: R_SH_PT_16 içeren PTB yönergesi beklenmiyordu"
-#: elf32-sh64.c:593 elf64-sh64.c:1703
+#: elf32-sh64.c:614 elf64-sh64.c:1748
#, c-format
msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
msgstr "%1$s: %3$08x ve %4$08x yerdeğiştirmesinde hizalanmamış yer değiştirme türü %2$d\n"
-#: elf32-sh64.c:677
+#: elf32-sh64.c:698
#, c-format
msgid "%s: could not write out added .cranges entries"
msgstr "%s: eklenen .cranges girdileri yazılamadı"
-#: elf32-sh64.c:739
+#: elf32-sh64.c:760
#, c-format
msgid "%s: could not write out sorted .cranges entries"
msgstr "%s: sıralanmış .cranges girdileri yazılamadı"
-#: elf32-sparc.c:1535 elf64-sparc.c:2224
+#: elf32-sparc.c:2521 elf64-sparc.c:2314
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr "%s: acaba -fPIC olmaksızın mı derlenmiş?"
-#: elf32-sparc.c:2002
+#: elf32-sparc.c:3348
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr "%s: 64 bitlik sistem için derlenmiş ve hedef 32 bit"
-#: elf32-sparc.c:2016
+#: elf32-sparc.c:3362
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr "%s: küçük sonlu dosyalar büyük sonlu dosyalarla bağlanıyor"
-#: elf32-v850.c:682
+#: elf32-v850.c:753
#, c-format
msgid "Variable `%s' cannot occupy in multiple small data regions"
msgstr "`%s' değişkeni birden fazla küçük veri sahasını kapsayamaz"
-#: elf32-v850.c:685
+#: elf32-v850.c:756
#, c-format
msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
msgstr "`%s' değişkeni küçük, sıfır ve ufak veri sahalarından yalnız birinde olabilir"
-#: elf32-v850.c:688
+#: elf32-v850.c:759
#, c-format
msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
msgstr "`%s' değişkeni aynı anda hem küçük hem sıfır veri sahalarında bulunamaz"
-#: elf32-v850.c:691
+#: elf32-v850.c:762
#, c-format
msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
msgstr "`%s' değişkeni aynı anda hem küçük hem ufak veri sahalarında bulunamaz"
-#: elf32-v850.c:694
+#: elf32-v850.c:765
#, c-format
msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
msgstr "`%s' değişkeni aynı anda hem sıfır hem ufak veri sahalarında bulunamaz"
-#: elf32-v850.c:1072
+#: elf32-v850.c:1144
msgid "FAILED to find previous HI16 reloc\n"
msgstr "önceki HI16 yerdeğişimi BULUNAMADI\n"
-#: elf32-v850.c:1703
+#: elf32-v850.c:1789
msgid "could not locate special linker symbol __gp"
msgstr "özel bağlayıcı sembolü __gp bulunamadı"
-#: elf32-v850.c:1707
+#: elf32-v850.c:1793
msgid "could not locate special linker symbol __ep"
msgstr "özel bağlayıcı sembolü __ep bulunamadı"
-#: elf32-v850.c:1711
+#: elf32-v850.c:1797
msgid "could not locate special linker symbol __ctbp"
msgstr "özel bağlayıcı sembolü __ctbp bulunamadı"
-#: elf32-v850.c:1875
+#: elf32-v850.c:1963
#, c-format
msgid "%s: Architecture mismatch with previous modules"
msgstr "%s: Önceki modüllerle platform uyumsuzluğu"
-#: elf32-v850.c:1895
+#: elf32-v850.c:1983
#, c-format
msgid "private flags = %lx: "
msgstr "özel bayraklar = %lx:"
-#: elf32-v850.c:1900
+#: elf32-v850.c:1988
msgid "v850 architecture"
msgstr "v850 platformu"
-#: elf32-v850.c:1901
+#: elf32-v850.c:1989
msgid "v850e architecture"
msgstr "v850e platformu"
-#: elf32-v850.c:1902
-msgid "v850ea architecture"
-msgstr "v850ea platformu"
-
-#: elf32-vax.c:546
+#: elf32-vax.c:549
msgid " [nonpic]"
msgstr " [nonpic]"
-#: elf32-vax.c:549
+#: elf32-vax.c:552
msgid " [d-float]"
msgstr " [d-float]"
-#: elf32-vax.c:552
+#: elf32-vax.c:555
msgid " [g-float]"
msgstr " [g-float]"
-#: elf32-vax.c:674
+#: elf32-vax.c:663
#, c-format
msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
msgstr "%1$s: uyarı: `%3$s'ye GOT %2$ld eklentisi bir önceki %4$ld GOT eklentisiyle eşleşmiyor"
-#: elf32-vax.c:1679
+#: elf32-vax.c:1667
#, c-format
msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne PLT eklentisi %2$d yok sayıldı"
-#: elf32-vax.c:1814
+#: elf32-vax.c:1802
#, c-format
msgid "%s: warning: %s relocation against symbol `%s' from %s section"
msgstr "%1$s: uyarı: %4$s bölümünden `%3$s' sembolüne %2$s yer değişimi"
-#: elf32-vax.c:1820
+#: elf32-vax.c:1808
#, c-format
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr "%1$s: uyarı: %4$s bölümünden 0x%3$x'e %2$s yer değişimi"
-#: elf32-ia64.c:2280 elf32-xstormy16.c:414 elf64-ia64.c:2280
+#: elf32-xstormy16.c:462 elf32-ia64.c:2450 elf64-ia64.c:2450
msgid "non-zero addend in @fptr reloc"
msgstr "@fptr yerdeğişiminde sıfır olmayan eklenti"
-#: elf64-alpha.c:1097
+#: elf64-alpha.c:1108
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "GPDISP yerdeğişimi ldah ve lda işlemlerini bulamadı"
-#: elf64-alpha.c:3675
+#: elf64-alpha.c:3731
#, c-format
msgid "%s: .got subsegment exceeds 64K (size %d)"
msgstr "%s: .got alt parçası 64K'yı aşıyor (boy %d)"
-#: elf64-alpha.c:4498 elf64-alpha.c:4510
+#: elf64-alpha.c:4602 elf64-alpha.c:4614
#, c-format
msgid "%s: gp-relative relocation against dynamic symbol %s"
msgstr "%s: %s dinamik sembolüne gp göreceli yer değişimi"
-#: elf64-alpha.c:4536 elf64-alpha.c:4676
+#: elf64-alpha.c:4640 elf64-alpha.c:4773
#, c-format
msgid "%s: pc-relative relocation against dynamic symbol %s"
msgstr "%s: %s dinamik sembolüne pc göreceli yer değişimi"
-#: elf64-alpha.c:4564
+#: elf64-alpha.c:4668
#, c-format
msgid "%s: change in gp: BRSGP %s"
msgstr "%s: gp içinde değişiklik: BRSGP %s"
-#: elf64-alpha.c:4589
+#: elf64-alpha.c:4693
msgid "<unknown>"
msgstr "<bilinmeyen>"
-#: elf64-alpha.c:4594
+#: elf64-alpha.c:4698
#, c-format
msgid "%s: !samegp reloc against symbol without .prologue: %s"
msgstr "%s: .prologue olmaksızın sembole !samegp yerdeğişimi: %s"
-#: elf64-alpha.c:4639
+#: elf64-alpha.c:4749
#, c-format
msgid "%s: unhandled dynamic relocation against %s"
msgstr "%s: %s'e desteklenmeyen dinamik yerdeÄŸiÅŸim"
-#: elf64-alpha.c:4752
+#: elf64-alpha.c:4832
#, c-format
msgid "%s: dtp-relative relocation against dynamic symbol %s"
msgstr "%s: %s dinamik sembolüne dtp göreceli yer değişimi"
-#: elf64-alpha.c:4775
+#: elf64-alpha.c:4855
#, c-format
msgid "%s: tp-relative relocation against dynamic symbol %s"
msgstr "%s: %s dinamik sembolüne tp göreceli yer değişimi"
-#: elf64-hppa.c:2080
+#: elf64-hppa.c:2086
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %ld"
msgstr "%s için koçan girdisi .plt'yi yükleyemedi, dp görecesi = %ld"
-#: elf64-mmix.c:1002
+#: elf64-mmix.c:1032
#, c-format
msgid ""
"%s: Internal inconsistency error for value for\n"
@@ -1380,50 +1575,50 @@ msgstr ""
"%s: bağlayıcı tarafından ayrılmış global yazmaç değeri için iç tutarsızlık hatası:\n"
" 0x%lx%08lx != gevÅŸetilmiÅŸ: 0x%lx%08lx\n"
-#: elf64-mmix.c:1386
+#: elf64-mmix.c:1416
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
msgstr "%s: yazmaç sembolüne temel artı görece yerdeğişimi: %s içinde (bilinmeyen)"
-#: elf64-mmix.c:1391
+#: elf64-mmix.c:1421
#, c-format
msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
msgstr "%1$s: yazmaç sembolüne temel artı görece yerdeğişimi: %3$s içinde %2$s"
-#: elf64-mmix.c:1435
+#: elf64-mmix.c:1465
#, c-format
msgid "%s: register relocation against non-register symbol: (unknown) in %s"
msgstr "%s: yazmaç olmayan sembole yazmaç yerdeğişimi: %s içinde (bilinmeyen)"
-#: elf64-mmix.c:1440
+#: elf64-mmix.c:1470
#, c-format
msgid "%s: register relocation against non-register symbol: %s in %s"
msgstr "%1$s: yazmaç olmayan sembole yazmaç yerdeğişimi: %3$s içinde %2$s"
-#: elf64-mmix.c:1477
+#: elf64-mmix.c:1507
#, c-format
msgid "%s: directive LOCAL valid only with a register or absolute value"
msgstr "%s: YEREL (LOCAL) yönergesi yalnız bir yazmaç veya kesin değerle geçerlidir"
-#: elf64-mmix.c:1505
+#: elf64-mmix.c:1535
#, c-format
msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld."
msgstr ""
"%s: YEREL (LOCAL) yönergesi: $%ld yazmacı yerel yazmaç değil.\n"
" İlk evrensel yazmaç: $%ld."
-#: elf64-mmix.c:1965
+#: elf64-mmix.c:1994
#, c-format
msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
msgstr ""
"%s: Hata: `%s' birden fazla defa tanımlanmış; %s'nin başlangıcı daha önce\n"
" baÄŸlanan bir dosyada.\n"
-#: elf64-mmix.c:2024
+#: elf64-mmix.c:2053
msgid "Register section has contents\n"
msgstr "Yazmaç bölümünde içerik yok\n"
-#: elf64-mmix.c:2186
+#: elf64-mmix.c:2216
#, c-format
msgid ""
"Internal inconsistency: remaining %u != max %u.\n"
@@ -1432,596 +1627,639 @@ msgstr ""
"İç uyumsuzluk: kalan %u != maksimum %u. \n"
" Lütfen bu hatayı bildirin."
-#: elf64-ppc.c:1669 libbfd.c:1435
+#: elf64-ppc.c:2388 libbfd.c:831
#, c-format
msgid "%s: compiled for a big endian system and target is little endian"
msgstr "%s: büyük sonlu sistem için derlenmiş ve hedef küçük sonlu"
-#: elf64-ppc.c:1671 libbfd.c:1437
+#: elf64-ppc.c:2391 libbfd.c:833
#, c-format
msgid "%s: compiled for a little endian system and target is big endian"
msgstr "%s: küçük sonlu sistem için derlenmiş ve hedef büyük sonlu"
-#: elf64-ppc.c:3610
+#: elf64-ppc.c:4857
#, c-format
msgid "%s: unexpected reloc type %u in .opd section"
msgstr "%s: opd bölümünde beklenmeyen yerdeğişim türü %u"
-#: elf64-ppc.c:3630
+#: elf64-ppc.c:4877
#, c-format
msgid "%s: .opd is not a regular array of opd entries"
msgstr "%s: opd, opd girdilerinin düzenli dizisi değil"
-#: elf64-ppc.c:3672
+#: elf64-ppc.c:4897
#, c-format
msgid "%s: undefined sym `%s' in .opd section"
msgstr "%s: opd bölümünde tanımlanmamış `%s' sembolü"
-#: elf64-ppc.c:4397
+#: elf64-ppc.c:6136
#, c-format
msgid "can't find branch stub `%s'"
msgstr "`%s' dal koçanı bulunamadı"
-#: elf64-ppc.c:4436 elf64-ppc.c:4501
+#: elf64-ppc.c:6175 elf64-ppc.c:6250
#, c-format
msgid "linkage table error against `%s'"
msgstr "`%s'ye bağlama tablosu hatası"
-#: elf64-ppc.c:4573
+#: elf64-ppc.c:6340
#, c-format
msgid "can't build branch stub `%s'"
msgstr "`%s' dal koçanı derlenemedi"
-#: elf64-ppc.c:5179
+#: elf64-ppc.c:7047
+msgid ".glink and .plt too far apart"
+msgstr " glink ve plt birbirine fazla uzak"
+
+#: elf64-ppc.c:7135
msgid "stubs don't match calculated size"
msgstr "koçanlar hesaplanan boyla eşleşmiyor"
-#: elf64-ppc.c:5828
+#: elf64-ppc.c:7147
#, c-format
-msgid "%s: Relocation %s is not supported for symbol %s."
-msgstr "%s: %s yerdeğişimi %s sembolü için henüz desteklenmiyor."
+msgid ""
+"linker stubs in %u groups\n"
+" branch %lu\n"
+" toc adjust %lu\n"
+" long branch %lu\n"
+" long toc adj %lu\n"
+" plt call %lu"
+msgstr ""
+"%u grupta bağlayıcı koçanları\n"
+" dal %lu\n"
+" toc ayarlama %lu\n"
+" uzun dal %lu\n"
+" uzun toc ayar%lu\n"
+" plt çağrısı %lu"
+
+#: elf64-ppc.c:7723
+#, c-format
+msgid "%s(%s+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc"
+msgstr "%s(%s+0x%lx): otomatik çoklu TOC sizin crt dosyalarınızı kullanarak desteklenmez; -mminimal-toc kullanarak yeniden derleyin veya gcc'de sürüm yükseltmesi yapın"
+
+#: elf64-ppc.c:7731
+#, c-format
+msgid "%s(%s+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern"
+msgstr "%s(%s+0x%lx): `%s'e kardeş çağrı iyileştirmesi otomatik çoklu TOCa izin vermez; -mminimal-toc veya -fno-optimize-sibling-calls ile yeniden derleyin, veya make `%s' extern"
+
+#: elf64-ppc.c:8329
+#, c-format
+msgid "%s: relocation %s is not supported for symbol %s."
+msgstr "%s: %s yerdeğişimi %s sembolü için desteklenmiyor."
-#: elf64-ppc.c:5872
+#: elf64-ppc.c:8408
#, c-format
-msgid "%s: error: relocation %s not a multiple of 4"
-msgstr "%s: hata: %s yerdeğişimi 4'ün katı değil"
+msgid "%s: error: relocation %s not a multiple of %d"
+msgstr "%s: hata: %s yerdeğişimi %d'nin katı değil"
-#: elf64-sparc.c:1280
+#: elf64-sparc.c:1370
#, c-format
msgid "%s: check_relocs: unhandled reloc type %d"
msgstr "%s: check_relocs: desteklenmeyen yerdeğişim türü %d"
-#: elf64-sparc.c:1317
+#: elf64-sparc.c:1407
#, c-format
msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr "%s: Yalnız %%g[2367] yazmaçları STT_REGISTER ile bildirilebilir"
-#: elf64-sparc.c:1337
+#: elf64-sparc.c:1427
#, c-format
msgid "Register %%g%d used incompatibly: %s in %s, previously %s in %s"
msgstr "%%g%1$d yazmacı uyumsuz kullanılmış: %3$s içinde %2$s, daha önce %5$s içinde %4$s idi"
-#: elf64-sparc.c:1360
+#: elf64-sparc.c:1450
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"
msgstr "`%1$s' sembolünün farklı türleri var: %2$s içinde REGISTER (yazmaç), daha önce %4$s içinde %3$s"
-#: elf64-sparc.c:1406
+#: elf64-sparc.c:1496
#, c-format
msgid "Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"
msgstr ""
"`%1$s' sembolünün farklı türleri var: %3$s içinde %2$s, \n"
" daha önce %4$s içinde REGISTER (yazmaç)"
-#: elf64-sparc.c:2970
+#: elf64-sparc.c:3053
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr "%s: UltraSPARC'a özel kod HAL'e özel kod ile bağlanıyor"
-#: elfcode.h:1198
+#: elf64-x86-64.c:739
+#, c-format
+msgid "%s: %s' accessed both as normal and thread local symbol"
+msgstr "%s: `%s'a hem normal, hem de iplikçik yerel sembolü olarak erişildi"
+
+#: elfcode.h:1113
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr "%s: sürüm sayısı (%ld) sembol sayısı (%ld) ile eşleşmiyor"
-#: elflink.c:440
+#: elfcode.h:1342
+#, c-format
+msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgstr "%s(%s): %d yerdeğişimi geçersiz sembol indeksi %ld'ye sahip"
+
+#: elflink.c:1456
+#, c-format
+msgid "%s: warning: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr "%s: uyarı: endirekt sürümlü sembol `%s' için beklenmeyen yeniden tanımlama"
+
+#: elflink.c:1807
#, c-format
-msgid "%s: Section %s is too large to add hole of %ld bytes"
-msgstr "%s: %s bölümü içine %ld baytlık bir delik koymak için fazla büyük"
+msgid "%s: undefined versioned symbol name %s"
+msgstr "%s: sürümlü sembol ismi %s tanımlı değil"
+
+#: elflink.c:2142
+#, c-format
+msgid "%s: relocation size mismatch in %s section %s"
+msgstr "%1$s: %3$s bölümünde %2$s içinde yerdeğişim boy uyuşmazlığı"
-#: elflink.h:1090
+#: elflink.c:2434
#, c-format
-msgid "%s: warning: unexpected redefinition of `%s'"
-msgstr "%s: uyarı: `%s' için beklenmeyen yeniden tanımlama"
+msgid "warning: type and size of dynamic symbol `%s' are not defined"
+msgstr "uyarı: `%s' dinamik sembolünün türü ve boyu tanımlı değil"
-#: elflink.h:1727
+#: elflink.h:1022
#, c-format
msgid "%s: %s: invalid version %u (max %d)"
msgstr "%s: %s: geçersiz sürüm %u (maksimum %d)"
-#: elflink.h:1768
+#: elflink.h:1063
#, c-format
msgid "%s: %s: invalid needed version %d"
msgstr "%s: %s: geçersiz gerekli sürüm %d"
-#: elflink.h:1890
+#: elflink.h:1238
#, c-format
-msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
-msgstr "Uyarı: `%s' sembolünün boyu %lu'dan %lu'ya %s içerisinde değişti"
+msgid "Warning: alignment %u of symbol `%s' in %s is smaller than %u in %s"
+msgstr "Uyarı: %3$s içinde `%2$s' sembolünün %1$u hizalaması %5$s içinde %4$u'dan daha küçük"
-#: elflink.h:3174
+#: elflink.h:1252
#, c-format
-msgid "%s: .preinit_array section is not allowed in DSO"
-msgstr "%s: DSO içinde preinit_array'e izin verilmiyor"
+msgid "Warning: size of symbol `%s' changed from %lu in %s to %lu in %s"
+msgstr "Uyarı: `%1$s' sembolünün boyu %3$s içinde %2$lu'dan %5$s içinde %4$lu'ya değişti"
-#: elflink.h:4030
+#: elflink.h:2160
#, c-format
-msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "uyarı: `%s' dinamik sembolünün türü ve boyu tanımlı değil"
+msgid "%s: undefined version: %s"
+msgstr "%s: tanımsız sürüm: %s"
-#: elflink.h:4345
+#: elflink.h:2226
#, c-format
-msgid "%s: undefined versioned symbol name %s"
-msgstr "%s: sürümlü sembol ismi %s tanımlı değil"
-
-#: elflink.h:4611 elflink.h:4619 elflink.h:6508 elflink.h:7600
-msgid "Error: out of memory"
-msgstr "Hata: bellek tükendi"
+msgid "%s: .preinit_array section is not allowed in DSO"
+msgstr "%s: DSO içinde preinit_array'e izin verilmiyor"
-#: elflink.h:4781
+#: elflink.h:3078
msgid "Not enough memory to sort relocations"
msgstr "Yerdeğişimleri sıralamak için gerekli bellek yok"
-#: elflink.h:5682 elflink.h:5725
+#: elflink.h:3958 elflink.h:4001
#, c-format
msgid "%s: could not find output section %s"
msgstr "%s: çıktı bölümü %s bulunamadı"
-#: elflink.h:5688
+#: elflink.h:3964
#, c-format
msgid "warning: %s section has zero size"
msgstr "uyarı: %s bölümü sıfır boyunda"
-#: elflink.h:6275
+#: elflink.h:4483
+#, c-format
+msgid "%s: %s symbol `%s' in %s is referenced by DSO"
+msgstr "%1$s: %4$s içinde %2$s sembolü `%3$s' DSO tarafından referans ediliyor"
+
+#: elflink.h:4564
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr "%1$s: girdi bölümü %3$s için çıktı bölümü %2$s bulunamadı"
-#: elflink.h:6486
+#: elflink.h:4666
#, c-format
-msgid "%s: relocation size mismatch in %s section %s"
-msgstr "%1$s: %3$s bölümünde %2$s içinde yerdeğişim boy uyuşmazlığı"
+msgid "%s: %s symbol `%s' isn't defined"
+msgstr "%s: %s sembol `%s' tanımlı değil"
-#: elflink.h:6849
-msgid "warning: relocation against removed section; zeroing"
-msgstr "uyarı: silinmiş bölüme yer değişim; sıfırlandı"
+#: elflink.h:5053 elflink.h:5095
+msgid "%T: discarded in section `%s' from %s\n"
+msgstr "%1$T: %3$s `%2$s' bölümünde atıldı\n"
-#: elflink.h:6879
-msgid "warning: relocation against removed section"
-msgstr "%1$s: silinmiş bölüme yerdeğişim"
-
-#: elflink.h:6892
-#, c-format
-msgid "local symbols in discarded section %s"
-msgstr "atılmış %s bölümünde yerel semboller"
-
-#: elfxx-mips.c:734
+#: elfxx-mips.c:887
msgid "static procedure (no name)"
msgstr "statik altyordam (isimsiz)"
-#: elfxx-mips.c:1601
+#: elfxx-mips.c:1897
msgid "not enough GOT space for local GOT entries"
msgstr "yerel GOT girdileri için yeterli GOT yeri yok"
-#: elfxx-mips.c:2750
+#: elfxx-mips.c:3691
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr "%s: %s+0x%lx: jal olmayan koçan yordamına sıçrama"
-#: elfxx-mips.c:4270
+#: elfxx-mips.c:5192
#, c-format
msgid "%s: Malformed reloc detected for section %s"
msgstr "%s: %s bölümü için geçersiz yer değişim bulundu"
-#: elfxx-mips.c:4348
+#: elfxx-mips.c:5266
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr "%s: 0x%lx'deki CALL16 yerdeğişimi evrensel sembole göre değil"
-#: elfxx-mips.c:7301
+#: elfxx-mips.c:8692
#, c-format
msgid "%s: illegal section name `%s'"
msgstr "%s: geçersiz bölüm adı `%s'"
-#: elfxx-mips.c:7615
+#: elfxx-mips.c:9025
#, c-format
-msgid "%s: linking PIC files with non-PIC files"
-msgstr "%s: PIC dosyaları PIC olmayan dosyalarla bağlanıyor"
+msgid "%s: endianness incompatible with that of the selected emulation"
+msgstr "%s: seçilen öykünüm ile sonluluk uyumlu değil"
-#: elfxx-mips.c:7625
+#: elfxx-mips.c:9037
#, c-format
-msgid "%s: linking abicalls files with non-abicalls files"
-msgstr "%s: abicalls dosyaları abicalls olmayan dosyalarla bağlanıyor"
+msgid "%s: ABI is incompatible with that of the selected emulation"
+msgstr "%s: ABI, seçilen öykünümle uyumlu değil"
-#: elfxx-mips.c:7654
+#: elfxx-mips.c:9104
#, c-format
-msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
-msgstr "%1$s: Önceki modüllerle (-mips%3$d) ile ISA uyumsuzluğu (-mips%2$d)"
+msgid "%s: warning: linking PIC files with non-PIC files"
+msgstr "%s: uyarı: PIC dosyaları PIC olmayan dosyalarla bağlanıyor"
-#: elfxx-mips.c:7676
+#: elfxx-mips.c:9121
#, c-format
-msgid "%s: ISA mismatch (%d) with previous modules (%d)"
-msgstr "%1$s: Önceki modüllerle (%3$d) ile ISA uyumsuzluğu (%2$d)"
+msgid "%s: linking 32-bit code with 64-bit code"
+msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla bağlanıyor"
-#: elfxx-mips.c:7699
+#: elfxx-mips.c:9149
+#, c-format
+msgid "%s: linking %s module with previous %s modules"
+msgstr "%s: %s modülü önceki %s modülle bağlanıyor"
+
+#: elfxx-mips.c:9172
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr "%s: ABI uyumsuzluğu: %s modülü önceki %s modülle bağlanıyor"
-#: elfxx-mips.c:7759
+#: elfxx-mips.c:9241
msgid " [abi=O32]"
msgstr " [abi=O32]"
-#: elfxx-mips.c:7761
+#: elfxx-mips.c:9243
msgid " [abi=O64]"
msgstr " [abi=O64]"
-#: elfxx-mips.c:7763
+#: elfxx-mips.c:9245
msgid " [abi=EABI32]"
msgstr " [abi=EABI32]"
-#: elfxx-mips.c:7765
+#: elfxx-mips.c:9247
msgid " [abi=EABI64]"
msgstr " [abi=EABI64]"
-#: elfxx-mips.c:7767
+#: elfxx-mips.c:9249
msgid " [abi unknown]"
msgstr " [abi bilinmiyor]"
-#: elfxx-mips.c:7769
+#: elfxx-mips.c:9251
msgid " [abi=N32]"
msgstr " [abi=N32]"
-#: elfxx-mips.c:7771
+#: elfxx-mips.c:9253
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:7773
+#: elfxx-mips.c:9255
msgid " [no abi set]"
msgstr " [abi atanmamış]"
-#: elfxx-mips.c:7776
+#: elfxx-mips.c:9258
msgid " [mips1]"
msgstr " [mips1]"
-#: elfxx-mips.c:7778
+#: elfxx-mips.c:9260
msgid " [mips2]"
msgstr " [mips2]"
-#: elfxx-mips.c:7780
+#: elfxx-mips.c:9262
msgid " [mips3]"
msgstr " [mips3]"
-#: elfxx-mips.c:7782
+#: elfxx-mips.c:9264
msgid " [mips4]"
msgstr " [mips4]"
-#: elfxx-mips.c:7784
+#: elfxx-mips.c:9266
msgid " [mips5]"
msgstr " [mips5]"
-#: elfxx-mips.c:7786
+#: elfxx-mips.c:9268
msgid " [mips32]"
msgstr " [mips32]"
-#: elfxx-mips.c:7788
+#: elfxx-mips.c:9270
msgid " [mips64]"
msgstr " [mips64]"
-#: elfxx-mips.c:7790
+#: elfxx-mips.c:9272
+msgid " [mips32r2]"
+msgstr " [mips32r2]"
+
+#: elfxx-mips.c:9274
msgid " [unknown ISA]"
msgstr " [bilinmeyen ISA]"
-#: elfxx-mips.c:7793
+#: elfxx-mips.c:9277
msgid " [mdmx]"
msgstr " [mdmx]"
-#: elfxx-mips.c:7796
+#: elfxx-mips.c:9280
msgid " [mips16]"
msgstr " [mips16]"
-#: elfxx-mips.c:7799
+#: elfxx-mips.c:9283
msgid " [32bitmode]"
msgstr " [32bitkipi]"
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:9285
msgid " [not 32bitmode]"
msgstr " [32bitkipi deÄŸil]"
-#: i386linux.c:458 m68klinux.c:462 sparclinux.c:459
+#: i386linux.c:457 m68klinux.c:461 sparclinux.c:458
#, c-format
msgid "Output file requires shared library `%s'\n"
msgstr "Çıktı dosyası için paylaşımlı kitaplık `%s' gerekli\n"
-#: i386linux.c:466 m68klinux.c:470 sparclinux.c:467
+#: i386linux.c:465 m68klinux.c:469 sparclinux.c:466
#, c-format
msgid "Output file requires shared library `%s.so.%s'\n"
msgstr "Çıktı dosyası için paylaşımlı kitaplık `%s.so.%s' gerekli\n"
-#: i386linux.c:655 i386linux.c:705 m68klinux.c:662 m68klinux.c:710
-#: sparclinux.c:657 sparclinux.c:707
+#: i386linux.c:654 i386linux.c:704 m68klinux.c:661 m68klinux.c:709
+#: sparclinux.c:656 sparclinux.c:706
#, c-format
msgid "Symbol %s not defined for fixups\n"
msgstr "%s sembolü düzeltmeler için tanımlı değil\n"
-#: i386linux.c:729 m68klinux.c:734 sparclinux.c:731
+#: i386linux.c:728 m68klinux.c:733 sparclinux.c:730
msgid "Warning: fixup count mismatch\n"
msgstr "Uyarı: düzeltme sayı uyumsuzluğu\n"
-#: ieee.c:235
+#: ieee.c:293
#, c-format
msgid "%s: string too long (%d chars, max 65535)"
msgstr "%s: dizge fazla uzun (%d karakter, en fazla 65535)"
-#: ieee.c:365
+#: ieee.c:428
#, c-format
msgid "%s: unrecognized symbol `%s' flags 0x%x"
msgstr "%s: bilinmeyen `%s' sembol bayrakları 0x%x"
-#: ieee.c:877
+#: ieee.c:938
#, c-format
msgid "%s: unimplemented ATI record %u for symbol %u"
msgstr "%1$s: %3$u sembolü için desteklenmeyen ATI kaydı %2$u"
-#: ieee.c:902
+#: ieee.c:963
#, c-format
msgid "%s: unexpected ATN type %d in external part"
msgstr "%s: dış parçada beklenmeyen ATN türü %d"
-#: ieee.c:924
+#: ieee.c:985
#, c-format
msgid "%s: unexpected type after ATN"
msgstr "%s: ATN'den sonra beklenmeyen tür"
-#: ihex.c:258
+#: ihex.c:264
#, c-format
msgid "%s:%d: unexpected character `%s' in Intel Hex file\n"
msgstr "%s:%d: Intel Onaltılık dosyasında beklenmeyen `%s' karakteri\n"
-#: ihex.c:366
+#: ihex.c:372
#, c-format
msgid "%s:%u: bad checksum in Intel Hex file (expected %u, found %u)"
msgstr ""
"%s:%u: Intel Onaltılık dosyasında hatalı sağlama toplamı\n"
" (%u beklendi, %u bulundu)"
-#: ihex.c:420
+#: ihex.c:426
#, c-format
msgid "%s:%u: bad extended address record length in Intel Hex file"
msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun adres kaydı uzunluğu"
-#: ihex.c:437
+#: ihex.c:443
#, c-format
msgid "%s:%u: bad extended start address length in Intel Hex file"
msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun başlangıç adresi uzunluğu"
-#: ihex.c:454
+#: ihex.c:460
#, c-format
msgid "%s:%u: bad extended linear address record length in Intel Hex file"
msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun lineer adres kaydı uzunluğu"
-#: ihex.c:471
+#: ihex.c:477
#, c-format
msgid "%s:%u: bad extended linear start address length in Intel Hex file"
msgstr "%s:%u: Intel Onaltılık dosyasında hatalı uzun lineer başlangıç adres uzunluğu"
-#: ihex.c:488
+#: ihex.c:494
#, c-format
msgid "%s:%u: unrecognized ihex type %u in Intel Hex file\n"
msgstr "%s:%u: Intel Onaltılık dosyasında bilinmeyen onaltılık türü %u\n"
-#: ihex.c:607
+#: ihex.c:619
#, c-format
msgid "%s: internal error in ihex_read_section"
msgstr "%s: ihex_read_section'da iç hata"
-#: ihex.c:642
+#: ihex.c:654
#, c-format
msgid "%s: bad section length in ihex_read_section"
msgstr "%s: ihex_read_section'da hatalı bölüm uzunluğu"
-#: ihex.c:860
+#: ihex.c:872
#, c-format
msgid "%s: address 0x%s out of range for Intel Hex file"
msgstr "%s: Intex Onaltılık dosyası için 0x%s adresi kapsamdışı"
-#: libbfd.c:492
-#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr "eÅŸlenmeyen: veri=%lx eÅŸleÅŸen=%d\n"
-
-#: libbfd.c:495
-msgid "not mapping: env var not set\n"
-msgstr "eşlenmeyen: çevre değişkeni atanmamış\n"
-
-#: libbfd.c:1466
+#: libbfd.c:861
#, c-format
msgid "Deprecated %s called at %s line %d in %s\n"
msgstr "Geçersizleşmiş %s, %s'da, %d satırı, %s içerisinde çağrıldı\n"
-#: libbfd.c:1469
+#: libbfd.c:864
#, c-format
msgid "Deprecated %s called\n"
msgstr "Geçerliliği kalkmış %s çağrıldı\n"
-#: linker.c:1873
+#: linker.c:1829
#, c-format
msgid "%s: indirect symbol `%s' to `%s' is a loop"
msgstr "%1$s: `%3$s'den endirekt sembol `%2$s'e çevrim"
-#: linker.c:2776
+#: linker.c:2697
#, c-format
-msgid "Attempt to do relocateable link with %s input and %s output"
+msgid "Attempt to do relocatable link with %s input and %s output"
msgstr "%s girdi ve %s çıktısı ile yerdeğişimli bağ deneniyor"
-#: merge.c:892
+#: merge.c:896
#, c-format
msgid "%s: access beyond end of merged section (%ld + %ld)"
msgstr "%s: karıştırılmış bölümün sonundan ileride erişim (%ld + %ld)"
-#: mmo.c:460
+#: mmo.c:503
#, c-format
msgid "%s: No core to allocate section name %s\n"
msgstr "%s: %s bölüm adını ayıracak `core' yok\n"
-#: mmo.c:536
+#: mmo.c:579
#, c-format
msgid "%s: No core to allocate a symbol %d bytes long\n"
msgstr "%s: %d bayt uzunluğunda bir sembole yer ayırmak için `core' yok\n"
-#: mmo.c:1245
+#: mmo.c:1287
#, c-format
msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr "%s: geçersiz mmo dosyası: $255 için başlangıç değeri `Main' değil\n"
-#: mmo.c:1391
+#: mmo.c:1433
#, c-format
msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr ""
"%1$s: `%4$s' ile başlayan sembol adından sonra desteklenmeyen\n"
" geniÅŸ karakter dizisi 0x%2$02X 0x%3$02X\n"
-#: mmo.c:1633
+#: mmo.c:1674
#, c-format
msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
msgstr "%s: geçersiz mmo dosyası: desteklenmeyen lopkod `%d'\n"
-#: mmo.c:1643
+#: mmo.c:1684
#, c-format
msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr "%s: geçersiz mmo dosyası: YZ = 1 beklendi, lop_quote için YZ = %d bulundu\n"
-#: mmo.c:1679
+#: mmo.c:1720
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr ""
"%s: geçersiz mmo dosyası: z = 1 veya z = 2 beklendi, \n"
" lop_loc için z = %d bulundu\n"
-#: mmo.c:1725
+#: mmo.c:1766
#, c-format
msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr "%s: geçersiz mmo dosyası: z = 1 veya z = 2 beklendi; lop_fixo için z = %d bulundu\n"
-#: mmo.c:1764
+#: mmo.c:1805
#, c-format
msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr "%s: geçersiz mmo dosyası: y = 0 beklendi; lop_fixrx için y = %d bulundu\n"
-#: mmo.c:1773
+#: mmo.c:1814
#, c-format
msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr ""
"%s: geçersiz mmo dosyası: z = 16 veya z = 24 beklendi;\n"
" lop_fixrx için z = %d bulundu\n"
-#: mmo.c:1796
+#: mmo.c:1837
#, c-format
msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr ""
"%s: geçersiz mmo dosyası: işlenen word'un ilk baytı 0 veya 1 olmalı; \n"
" lop_fixrx için %d bulundu\n"
-#: mmo.c:1819
+#: mmo.c:1860
#, c-format
msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
msgstr "%s: %d sayılı dosya için dosya adı ayrılamadı, %d bayt\n"
-#: mmo.c:1839
+#: mmo.c:1880
#, c-format
msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr "%s: geçersiz mmo dosyası: %d sayılı dosya, `%s', zaten `%s' olarak girilmiş\n"
-#: mmo.c:1852
+#: mmo.c:1893
#, c-format
msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
msgstr ""
"%s: geçersiz mmo dosyası: %d sayısı için dosya adı kullanımdan\n"
" önce belirtilmemiş\n"
-#: mmo.c:1958
+#: mmo.c:1999
#, c-format
msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr ""
"%s: geçersiz mmo dosyası: lop_stab'in y ve z alanları sıfır değil;\n"
" y: %d, z: %d\n"
-#: mmo.c:1994
+#: mmo.c:2035
#, c-format
msgid "%s: invalid mmo file: lop_end not last item in file\n"
msgstr "%s: geçersiz mmo dosyası: lop_end dosyadaki son girdi değil\n"
-#: mmo.c:2007
+#: mmo.c:2048
#, c-format
msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr ""
"%s: geçersiz mmo dosyası: lop_end'in YZ'si (%ld); bir önceki \n"
" lop_stab'in (%ld) dörtlü sayısına eşit değil\n"
-#: mmo.c:2670
+#: mmo.c:2698
#, c-format
msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
msgstr "%s: geçersiz sembol tablosu: tekrarlanmış sembol `%s'\n"
-#: mmo.c:2921
+#: mmo.c:2949
#, c-format
msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
msgstr ""
"%1$s: Hatalı sembol tanımı: `Main' başlangıç adresi %3$s yerine \n"
" %2$s olarak tanımlanmış\n"
-#: mmo.c:3011
+#: mmo.c:3039
#, c-format
msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr ""
"%s: uyarı: sembol tablosu mmo için fazla büyük, 65535 32-bit word'den\n"
" fazla: %d. Yalnız `Main' üretilecek. \n"
-#: mmo.c:3056
+#: mmo.c:3084
#, c-format
msgid "%s: internal error, symbol table changed size from %d to %d words\n"
msgstr "%s: iç hata, sembol tablosu büyüklüğü %d'den %d word'e değişti\n"
-#: mmo.c:3111
+#: mmo.c:3139
#, c-format
msgid "%s: internal error, internal register section %s had contents\n"
msgstr "%s: iç hata, %s iç yazmaç bölümü içerik taşıyor\n"
-#: mmo.c:3163
+#: mmo.c:3191
#, c-format
msgid "%s: no initialized registers; section length 0\n"
msgstr "%s: ilklenen yazmaç yok; bölüm uzunluğu 0\n"
-#: mmo.c:3169
+#: mmo.c:3197
#, c-format
msgid "%s: too many initialized registers; section length %ld\n"
msgstr "%s: çok fazla ilklenmiş yazmaç; bölüm uzunluğu %ld\n"
-#: mmo.c:3174
+#: mmo.c:3202
#, c-format
msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
msgstr "%s: %ld uzunluğunda ilklenmiş yazmaçlar için hatalı başlangıç adresi: 0x%lx%08lx\n"
-#: oasys.c:1029
+#: oasys.c:1052
#, c-format
msgid "%s: can not represent section `%s' in oasys"
msgstr "%s: oasys'de `%s' bölümü gösterilemiyor"
-#: osf-core.c:132
+#: osf-core.c:137
#, c-format
msgid "Unhandled OSF/1 core file section type %d\n"
msgstr "Desteklenmeyen OSF/1 core dosyası bölüm türü %d\n"
-#: pe-mips.c:658
+#: pe-mips.c:659
#, c-format
msgid "%s: `ld -r' not supported with PE MIPS objects\n"
msgstr "%s: `ld -r' PE MIPS nesneleri ile birlikte desteklenmiyor\n"
@@ -2031,53 +2269,53 @@ msgstr "%s: `ld -r' PE MIPS nesneleri ile birlikte desteklenmiyor\n"
#. mem = pointer to memory we're fixing up
#. val = VMA of what we need to refer to
#.
-#: pe-mips.c:794
+#: pe-mips.c:795
#, c-format
msgid "%s: unimplemented %s\n"
msgstr "%s: tamamlanmamış %s\n"
-#: pe-mips.c:820
+#: pe-mips.c:821
#, c-format
msgid "%s: jump too far away\n"
msgstr "%s: sıçrama fazla uzak\n"
-#: pe-mips.c:847
+#: pe-mips.c:848
#, c-format
msgid "%s: bad pair/reflo after refhi\n"
msgstr "%s: refhi'den sonra hatalı çift/reflo\n"
#. XXX code yet to be written.
-#: peicode.h:785
+#: peicode.h:787
#, c-format
msgid "%s: Unhandled import type; %x"
msgstr "%s: Desteklenmeyen ithal türü; %x"
-#: peicode.h:790
+#: peicode.h:792
#, c-format
msgid "%s: Unrecognised import type; %x"
msgstr "%s: Tanınmayan ithal türü; %x"
-#: peicode.h:804
+#: peicode.h:806
#, c-format
msgid "%s: Unrecognised import name type; %x"
msgstr "%s: Tanınmayan ithal isim türü; %x"
-#: peicode.h:1162
+#: peicode.h:1164
#, c-format
msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%s: İthal Kitaplık Biçem (ILF) arşivinde tanınmayan makina türü (0x%x) "
-#: peicode.h:1174
+#: peicode.h:1176
#, c-format
msgid "%s: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%s: İthal Kitaplık Biçem (ILF) arşivinde bilinen fakat desteklenmeyen makina türü (0x%x)"
-#: peicode.h:1191
+#: peicode.h:1193
#, c-format
msgid "%s: size field is zero in Import Library Format header"
msgstr "%s: İthal Kitaplık Biçem (ILF) başlığında boy alanı sıfır"
-#: peicode.h:1219
+#: peicode.h:1224
#, c-format
msgid "%s: string not null terminated in ILF object file."
msgstr "%s: ILF nesne dosyasında dizge boş değerle sonlanmamış."
@@ -2134,11 +2372,11 @@ msgstr "Bölüm[%d] sektörü = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Bölüm[%d] uzunluğu = 0x%.8lx (%ld)\n"
-#: som.c:5398
+#: som.c:5422
msgid "som_sizeof_headers unimplemented"
msgstr "som_sizeof_headers tamamlanmamış"
-#: srec.c:301
+#: srec.c:302
#, c-format
msgid "%s:%d: Unexpected character `%s' in S-record file\n"
msgstr "%s:%d: S-kayıt dosyasında beklenmeyen `%s' karakteri\n"
@@ -2148,7 +2386,7 @@ msgstr "%s:%d: S-kayıt dosyasında beklenmeyen `%s' karakteri\n"
msgid "%s(%s+0x%lx): Stabs entry has invalid string index."
msgstr "%s(%s+0x%lx): Stabs girdisinde geçersiz dizge indeksi."
-#: syms.c:1044
+#: syms.c:1019
msgid "Unsupported .stab relocation"
msgstr "Desteklenmeyen .stab yerdeÄŸiÅŸimi"
@@ -2167,33 +2405,33 @@ msgstr "bfd_set_section_flags (%s, %x) başarısız"
msgid "Size mismatch section %s=%lx, %s=%lx"
msgstr "Boy uyumsuzluğu bölümü %s=%lx, %s=%lx"
-#: vms-gsd.c:702
+#: vms-gsd.c:704
#, c-format
msgid "unknown gsd/egsd subtype %d"
msgstr "bilinmeyen gsd/egsd alt türü %d"
-#: vms-hdr.c:406
+#: vms-hdr.c:408
msgid "Object module NOT error-free !\n"
msgstr "Nesne modülü hatasız DEĞİL !\n"
-#: vms-misc.c:543
+#: vms-misc.c:541
#, c-format
msgid "Stack overflow (%d) in _bfd_vms_push"
msgstr "_bfd_vms_push'da yığıt taşması (%d)"
-#: vms-misc.c:561
+#: vms-misc.c:559
msgid "Stack underflow in _bfd_vms_pop"
msgstr "_bfd_vms_pop'da yığıt alt taşması"
-#: vms-misc.c:919
+#: vms-misc.c:918
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr "_bfd_vms_output_counted sıfır bayt ile çağrıldı"
-#: vms-misc.c:924
+#: vms-misc.c:923
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "_bfd_vms_output_counted fazla bayt ile çağrıldı"
-#: vms-misc.c:1055
+#: vms-misc.c:1054
#, c-format
msgid "Symbol %s replaced by %s\n"
msgstr "%s sembolü %s ile değiştirildi\n"
@@ -2203,26 +2441,26 @@ msgstr "%s sembolü %s ile değiştirildi\n"
msgid "failed to enter %s"
msgstr "%s'e giriş başarısız"
-#: vms-tir.c:81
+#: vms-tir.c:102
msgid "No Mem !"
msgstr "Hafıza Yok !"
-#: vms-tir.c:362
+#: vms-tir.c:383
#, c-format
msgid "bad section index in %s"
msgstr "%s içinde hatalı bölüm indeksi"
-#: vms-tir.c:375
+#: vms-tir.c:396
#, c-format
msgid "unsupported STA cmd %s"
msgstr "Desteklenmeyen STA komutu %s"
-#: vms-tir.c:380 vms-tir.c:1240
+#: vms-tir.c:401 vms-tir.c:1261
#, c-format
msgid "reserved STA cmd %d"
msgstr "Ayrılmış STA komutu %d"
-#: vms-tir.c:491 vms-tir.c:514
+#: vms-tir.c:512 vms-tir.c:535
#, c-format
msgid "%s: no symbol \"%s\""
msgstr "%s: \"%s\" sembolü yok"
@@ -2231,39 +2469,39 @@ msgstr "%s: \"%s\" sembolü yok"
#. rotate
#. Redefine symbol to current location.
#. Define a literal.
-#: vms-tir.c:581 vms-tir.c:693 vms-tir.c:803 vms-tir.c:821 vms-tir.c:829
-#: vms-tir.c:838 vms-tir.c:1563
+#: vms-tir.c:602 vms-tir.c:714 vms-tir.c:824 vms-tir.c:842 vms-tir.c:850
+#: vms-tir.c:859 vms-tir.c:1584
#, c-format
msgid "%s: not supported"
msgstr "%s: desteklenmiyor"
-#: vms-tir.c:586 vms-tir.c:1418
+#: vms-tir.c:607 vms-tir.c:1439
#, c-format
msgid "%s: not implemented"
msgstr "%s: tamamlanmamış"
-#: vms-tir.c:590 vms-tir.c:1422
+#: vms-tir.c:611 vms-tir.c:1443
#, c-format
msgid "reserved STO cmd %d"
msgstr "Ayrılmış STO komutu %d"
-#: vms-tir.c:708 vms-tir.c:1568
+#: vms-tir.c:729 vms-tir.c:1589
#, c-format
msgid "reserved OPR cmd %d"
msgstr "Ayrılmış OPR komutu %d"
-#: vms-tir.c:776 vms-tir.c:1632
+#: vms-tir.c:797 vms-tir.c:1653
#, c-format
msgid "reserved CTL cmd %d"
msgstr "Ayrılmış CTL komutu %d"
#. stack byte from image
#. arg: none.
-#: vms-tir.c:1148
+#: vms-tir.c:1169
msgid "stack-from-image not implemented"
msgstr "Görüntüden-yığıt tamamlanmamış"
-#: vms-tir.c:1166
+#: vms-tir.c:1187
msgid "stack-entry-mask not fully implemented"
msgstr "Yığın girdi maskı tamamlanmamış"
@@ -2274,261 +2512,271 @@ msgstr "Yığın girdi maskı tamamlanmamış"
#.
#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
#. and stack TRUE (args match) or FALSE (args dont match) value.
-#: vms-tir.c:1180
+#: vms-tir.c:1201
msgid "PASSMECH not fully implemented"
msgstr "PASSMECH tamamlanmamış"
-#: vms-tir.c:1199
+#: vms-tir.c:1220
msgid "stack-local-symbol not fully implemented"
msgstr "Yerel sembol yığıtı tamamlanmamış"
-#: vms-tir.c:1212
+#: vms-tir.c:1233
msgid "stack-literal not fully implemented"
msgstr "Yığıt sabiti tamamlanmamış"
-#: vms-tir.c:1233
+#: vms-tir.c:1254
msgid "stack-local-symbol-entry-point-mask not fully implemented"
msgstr "Yığın yerel sembol girdi noktası maskı tamamlanmamış"
-#: vms-tir.c:1510 vms-tir.c:1522 vms-tir.c:1534 vms-tir.c:1546 vms-tir.c:1611
-#: vms-tir.c:1619 vms-tir.c:1627
+#: vms-tir.c:1531 vms-tir.c:1543 vms-tir.c:1555 vms-tir.c:1567 vms-tir.c:1632
+#: vms-tir.c:1640 vms-tir.c:1648
#, c-format
msgid "%s: not fully implemented"
msgstr "%s: tamamlanmamış"
-#: vms-tir.c:1684
+#: vms-tir.c:1705
#, c-format
msgid "obj code %d not found"
msgstr "Nesne kodu %d bulunmadı"
-#: vms-tir.c:2019
+#: vms-tir.c:2043
#, c-format
msgid "SEC_RELOC with no relocs in section %s"
msgstr "%s bölümünde yerdeğişim olmaksızın SEC_RELOC"
-#: vms-tir.c:2307
+#: vms-tir.c:2331
#, c-format
msgid "Unhandled relocation %s"
msgstr "Desteklenmeyen yerdeÄŸiÅŸim %s"
-#: xcofflink.c:1243
+#: xcofflink.c:1244
#, c-format
msgid "%s: `%s' has line numbers but no enclosing section"
msgstr "%s: `%s' satır numaralarına sahip fakat onu içeren bölümü yok"
-#: xcofflink.c:1296
+#: xcofflink.c:1297
#, c-format
msgid "%s: class %d symbol `%s' has no aux entries"
msgstr "%s: sınıf %d sembol `%s'un alternatif girdileri yok"
-#: xcofflink.c:1319
+#: xcofflink.c:1320
#, c-format
msgid "%s: symbol `%s' has unrecognized csect type %d"
msgstr "%s: `%s' sembolünde bilinmeyen csect türü %d var"
-#: xcofflink.c:1331
+#: xcofflink.c:1332
#, c-format
msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
msgstr "%s: hatalı XTY_ER sembolü `%s': sınıf %d scnum %d scnlen %d"
-#: xcofflink.c:1367
+#: xcofflink.c:1368
#, c-format
msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d"
msgstr "%s: XMC_TC0 sembolü `%s': sınıf %d scnlen %d"
-#: xcofflink.c:1519
+#: xcofflink.c:1520
#, c-format
msgid "%s: csect `%s' not in enclosing section"
msgstr "%s: csect `%s' onu içeren bölümde değil"
-#: xcofflink.c:1626
+#: xcofflink.c:1627
#, c-format
msgid "%s: misplaced XTY_LD `%s'"
msgstr "%s: XTY_LD `%s'yanlış yerde"
-#: xcofflink.c:1957
+#: xcofflink.c:1958
#, c-format
msgid "%s: reloc %s:%d not in csect"
msgstr "%s: yerdeğişim %s:%d csect içinde değil"
-#: xcofflink.c:2092
+#: xcofflink.c:2095
#, c-format
msgid "%s: XCOFF shared object when not producing XCOFF output"
msgstr "%s: XCOFF çıktısı oluşturulmazken XCOFF paylaşımlı nesnesi"
-#: xcofflink.c:2113
+#: xcofflink.c:2116
#, c-format
msgid "%s: dynamic object with no .loader section"
msgstr "%s: .loader bölümü olmayan dinamik nesne"
-#: xcofflink.c:2758
+#: xcofflink.c:2761
#, c-format
msgid "%s: no such symbol"
msgstr "%s: böyle bir sembol yok"
-#: xcofflink.c:2891
+#: xcofflink.c:2894
msgid "error: undefined symbol __rtinit"
msgstr "hata: tanımlanmamış sembol __rtinit"
-#: xcofflink.c:3453
+#: xcofflink.c:3455
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "uyarı: tanımlanmamış `%s' sembolünü ihraç denemesi"
-#: xcofflink.c:4447
+#: xcofflink.c:4448
#, c-format
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr "TOC taşması: 0x%lx > 0x10000; -mminimal-toc ile derlemeyi deneyin"
-#: xcofflink.c:5287 xcofflink.c:5756 xcofflink.c:5818 xcofflink.c:6119
+#: xcofflink.c:5288 xcofflink.c:5755 xcofflink.c:5817 xcofflink.c:6119
#, c-format
msgid "%s: loader reloc in unrecognized section `%s'"
msgstr "%s: bilinmeyen `%s' bölümünde yükleyici yerdeğişimi"
-#: xcofflink.c:5309 xcofflink.c:6130
+#: xcofflink.c:5310 xcofflink.c:6130
#, c-format
msgid "%s: `%s' in loader reloc but not loader sym"
msgstr "%s: `%s' yükleyici yerdeğişiminde fakat yükleyici sembolü değil"
-#: xcofflink.c:5324
+#: xcofflink.c:5325
#, c-format
msgid "%s: loader reloc in read-only section %s"
msgstr "%s: %s salt-okunur bölümünde yükleyici yerdeğişimi"
-#: elf32-ia64.c:2222 elf64-ia64.c:2222
+#: elf32-ia64.c:2392 elf64-ia64.c:2392
msgid "@pltoff reloc against local symbol"
msgstr "yerel sembole @pltoff yerdegisimi"
-#: elf32-ia64.c:3562 elf64-ia64.c:3562
+#: elf32-ia64.c:3804 elf64-ia64.c:3804
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr "%s: kısa veri bölümünde taşma (0x%lx >= 0x400000)"
-#: elf32-ia64.c:3573 elf64-ia64.c:3573
+#: elf32-ia64.c:3815 elf64-ia64.c:3815
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr "%s: __gp kısa veri bölümünü kapsamıyor"
-#: elf32-ia64.c:3858 elf64-ia64.c:3858
+#: elf32-ia64.c:4131 elf64-ia64.c:4131
#, c-format
msgid "%s: linking non-pic code in a shared library"
msgstr "%s: pic olmayan kod paylaşmalı kitaplıkta bağlanıyor"
-#: elf32-ia64.c:3891 elf64-ia64.c:3891
+#: elf32-ia64.c:4164 elf64-ia64.c:4164
#, c-format
msgid "%s: @gprel relocation against dynamic symbol %s"
msgstr "%s: %s dinamik sembolüne @gprel yerdeğişimi"
-#: elf32-ia64.c:4030 elf64-ia64.c:4030
+#: elf32-ia64.c:4224 elf64-ia64.c:4224
+#, c-format
+msgid "%s: linking non-pic code in a position independent executable"
+msgstr "%s: pic olmayan kod yer bağımsız uygulamaya bağlanıyor"
+
+#: elf32-ia64.c:4363 elf64-ia64.c:4363
#, c-format
-msgid "%s: dynamic relocation against speculation fixup"
-msgstr "%s: kuşkulu düzeltmeye dinamik yerdeğişim"
+msgid "%s: @internal branch to dynamic symbol %s"
+msgstr "%s: %s dinamik sembolüne @internal dalı"
-#: elf32-ia64.c:4038 elf64-ia64.c:4038
+#: elf32-ia64.c:4365 elf64-ia64.c:4365
#, c-format
-msgid "%s: speculation fixup against undefined weak symbol"
-msgstr "%s: tanımlanmamış gevşek sembole tartışmalı düzeltme"
+msgid "%s: speculation fixup to dynamic symbol %s"
+msgstr "%s: %s dinamik sembolüne spekülasyon düzeltmesi"
-#: elf32-ia64.c:4271 elf64-ia64.c:4271
+#: elf32-ia64.c:4367 elf64-ia64.c:4367
+#, c-format
+msgid "%s: @pcrel relocation against dynamic symbol %s"
+msgstr "%s: %s dinamik sembolüne @pcrel yerdeğişimi"
+
+#: elf32-ia64.c:4579 elf64-ia64.c:4579
msgid "unsupported reloc"
msgstr "desteklenmeyen yerdeÄŸiÅŸim"
-#: elf32-ia64.c:4551 elf64-ia64.c:4551
+#: elf32-ia64.c:4858 elf64-ia64.c:4858
#, c-format
msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%s: NULL-halinde-tuzakla karşı-başvurusu tuzaklamayan dosyalarla bağlandı"
-#: elf32-ia64.c:4560 elf64-ia64.c:4560
+#: elf32-ia64.c:4867 elf64-ia64.c:4867
#, c-format
msgid "%s: linking big-endian files with little-endian files"
msgstr "%s: büyük sonlu dosyalar küçük sonlu dosyalarla bağlanıyor"
-#: elf32-ia64.c:4569 elf64-ia64.c:4569
+#: elf32-ia64.c:4876 elf64-ia64.c:4876
#, c-format
msgid "%s: linking 64-bit files with 32-bit files"
msgstr "%s: 64 bitlik dosyalar 32 bitlik dosyalarla bağlanıyor"
-#: elf32-ia64.c:4578 elf64-ia64.c:4578
+#: elf32-ia64.c:4885 elf64-ia64.c:4885
#, c-format
msgid "%s: linking constant-gp files with non-constant-gp files"
msgstr "%s: constant-gp dosyaları constant-gp olmayan dosyalarla bağlanıyor"
-#: elf32-ia64.c:4588 elf64-ia64.c:4588
+#: elf32-ia64.c:4895 elf64-ia64.c:4895
#, c-format
msgid "%s: linking auto-pic files with non-auto-pic files"
msgstr "%s: auto-pic dosyaları auto-pic olmayan dosyalarla bağlanıyor"
-#: peigen.c:962 pepigen.c:962
+#: peigen.c:985 pepigen.c:985
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr "%s: satır numarası taşması: 0x%lx > 0xffff"
-#: peigen.c:979 pepigen.c:979
+#: peigen.c:1002 pepigen.c:1002
#, c-format
msgid "%s: reloc overflow 1: 0x%lx > 0xffff"
msgstr "%s: yerdeğişim taşması 1: 0x%lx > 0xffff"
-#: peigen.c:993 pepigen.c:993
+#: peigen.c:1016 pepigen.c:1016
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "İhraç Dizini [.edata (veya nerede bulundu ise)]"
-#: peigen.c:994 pepigen.c:994
+#: peigen.c:1017 pepigen.c:1017
msgid "Import Directory [parts of .idata]"
msgstr "İthal Dizini [.idata'nın parçaları]"
-#: peigen.c:995 pepigen.c:995
+#: peigen.c:1018 pepigen.c:1018
msgid "Resource Directory [.rsrc]"
msgstr "Kaynak Dizini [.rsrc]"
-#: peigen.c:996 pepigen.c:996
+#: peigen.c:1019 pepigen.c:1019
msgid "Exception Directory [.pdata]"
msgstr "Ä°stisna Dizini [.pdata]"
-#: peigen.c:997 pepigen.c:997
+#: peigen.c:1020 pepigen.c:1020
msgid "Security Directory"
msgstr "Güvenlik Dizini"
-#: peigen.c:998 pepigen.c:998
+#: peigen.c:1021 pepigen.c:1021
msgid "Base Relocation Directory [.reloc]"
msgstr "Temel YerdeÄŸiÅŸim Dizini [.reloc]"
-#: peigen.c:999 pepigen.c:999
+#: peigen.c:1022 pepigen.c:1022
msgid "Debug Directory"
msgstr "Hata Ayıklama Dizini"
-#: peigen.c:1000 pepigen.c:1000
+#: peigen.c:1023 pepigen.c:1023
msgid "Description Directory"
msgstr "Açıklama Dizini"
-#: peigen.c:1001 pepigen.c:1001
+#: peigen.c:1024 pepigen.c:1024
msgid "Special Directory"
msgstr "Özel Dizin"
-#: peigen.c:1002 pepigen.c:1002
+#: peigen.c:1025 pepigen.c:1025
msgid "Thread Storage Directory [.tls]"
msgstr "Dal Saklama Dizini [.tls]"
-#: peigen.c:1003 pepigen.c:1003
+#: peigen.c:1026 pepigen.c:1026
msgid "Load Configuration Directory"
msgstr "Ayar Yükleme Dizini"
-#: peigen.c:1004 pepigen.c:1004
+#: peigen.c:1027 pepigen.c:1027
msgid "Bound Import Directory"
msgstr "Sınır İthal Dizini"
-#: peigen.c:1005 pepigen.c:1005
+#: peigen.c:1028 pepigen.c:1028
msgid "Import Address Table Directory"
msgstr "Adres Tablosu Ä°thal Dizini"
-#: peigen.c:1006 pepigen.c:1006
+#: peigen.c:1029 pepigen.c:1029
msgid "Delay Import Directory"
msgstr "Gecikmeli Ä°thal Dizini"
-#: peigen.c:1007 peigen.c:1008 pepigen.c:1007 pepigen.c:1008
+#: peigen.c:1030 peigen.c:1031 pepigen.c:1030 pepigen.c:1031
msgid "Reserved"
msgstr "Ayrılmış"
-#: peigen.c:1071 pepigen.c:1071
+#: peigen.c:1094 pepigen.c:1094
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
@@ -2536,7 +2784,7 @@ msgstr ""
"\n"
"Bir ithal tablosu var, fakat onu içeren bölüm bulunamadı\n"
-#: peigen.c:1076 pepigen.c:1076
+#: peigen.c:1099 pepigen.c:1099
#, c-format
msgid ""
"\n"
@@ -2545,7 +2793,7 @@ msgstr ""
"\n"
"%s içerisinde 0x%lx'de bir ithal tablosu var\n"
-#: peigen.c:1113 pepigen.c:1113
+#: peigen.c:1136 pepigen.c:1136
#, c-format
msgid ""
"\n"
@@ -2554,12 +2802,12 @@ msgstr ""
"\n"
"Başlangıç adresinde işlev betimleyicisi bulundu: %04lx\n"
-#: peigen.c:1116 pepigen.c:1116
+#: peigen.c:1139 pepigen.c:1139
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr "\tkod temeli %08lx toc (yüklenebilir/gerçek) %08lx/%08lx\n"
-#: peigen.c:1122 pepigen.c:1122
+#: peigen.c:1145 pepigen.c:1145
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
@@ -2567,7 +2815,7 @@ msgstr ""
"\n"
"Reldata bölümü yok! İşlev betimleyicisi çözümlenemedi.\n"
-#: peigen.c:1127 pepigen.c:1127
+#: peigen.c:1150 pepigen.c:1150
#, c-format
msgid ""
"\n"
@@ -2576,7 +2824,7 @@ msgstr ""
"\n"
"İthal Tabloları (%s bölüm içeriği çözümlendi)\n"
-#: peigen.c:1130 pepigen.c:1130
+#: peigen.c:1153 pepigen.c:1153
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
@@ -2584,7 +2832,7 @@ msgstr ""
" vma: Ä°pucu Zaman Ä°leri DLL Ä°lk\n"
" Tablo Damga Zincir İsim Parça\n"
-#: peigen.c:1181 pepigen.c:1181
+#: peigen.c:1204 pepigen.c:1204
#, c-format
msgid ""
"\n"
@@ -2593,11 +2841,11 @@ msgstr ""
"\n"
"\tDLL Adı: %s\n"
-#: peigen.c:1192 pepigen.c:1192
+#: peigen.c:1215 pepigen.c:1215
msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
msgstr "\tvma: İpucu/Sıra Üye-Adı Sınır\n"
-#: peigen.c:1217 pepigen.c:1217
+#: peigen.c:1240 pepigen.c:1240
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
@@ -2605,7 +2853,7 @@ msgstr ""
"\n"
"Bir ilk parça var, fakat onu içeren bölüm bulunamadı\n"
-#: peigen.c:1357 pepigen.c:1357
+#: peigen.c:1380 pepigen.c:1380
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
@@ -2613,7 +2861,7 @@ msgstr ""
"\n"
"Bir ihraç tablosu var, fakat onu içeren bölüm bulunamadı\n"
-#: peigen.c:1362 pepigen.c:1362
+#: peigen.c:1385 pepigen.c:1385
#, c-format
msgid ""
"\n"
@@ -2622,7 +2870,7 @@ msgstr ""
"\n"
"%s içinde 0x%lx'de bir ihraç tablosu var\n"
-#: peigen.c:1393 pepigen.c:1393
+#: peigen.c:1416 pepigen.c:1416
#, c-format
msgid ""
"\n"
@@ -2633,61 +2881,61 @@ msgstr ""
"İhraç Tabloları (%s bölüm içeriği çözümlendi)\n"
"\n"
-#: peigen.c:1397 pepigen.c:1397
+#: peigen.c:1420 pepigen.c:1420
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "İhraç Bayrakları \t\t\t%lx\n"
-#: peigen.c:1400 pepigen.c:1400
+#: peigen.c:1423 pepigen.c:1423
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "Saat/Tarih damgası \t\t%lx\n"
-#: peigen.c:1403 pepigen.c:1403
+#: peigen.c:1426 pepigen.c:1426
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Majör/Minör \t\t\t%d/%d\n"
-#: peigen.c:1406 pepigen.c:1406
+#: peigen.c:1429 pepigen.c:1429
msgid "Name \t\t\t\t"
msgstr "Ä°sim \t\t\t\t"
-#: peigen.c:1412 pepigen.c:1412
+#: peigen.c:1435 pepigen.c:1435
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "Onluk Sistem \t\t\t%ld\n"
-#: peigen.c:1415 pepigen.c:1415
+#: peigen.c:1438 pepigen.c:1438
msgid "Number in:\n"
msgstr "Sayı içinde:\n"
-#: peigen.c:1418 pepigen.c:1418
+#: peigen.c:1441 pepigen.c:1441
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tİhraç Adres Tablosu \t\t%08lx\n"
-#: peigen.c:1422 pepigen.c:1422
+#: peigen.c:1445 pepigen.c:1445
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\t[İsim Gösterge/Onluk] Tablo\t%08lx\n"
-#: peigen.c:1425 pepigen.c:1425
+#: peigen.c:1448 pepigen.c:1448
msgid "Table Addresses\n"
msgstr "Tablo Adresleri\n"
-#: peigen.c:1428 pepigen.c:1428
+#: peigen.c:1451 pepigen.c:1451
msgid "\tExport Address Table \t\t"
msgstr "\tİhraç Adres Tablosu \t\t"
-#: peigen.c:1433 pepigen.c:1433
+#: peigen.c:1456 pepigen.c:1456
msgid "\tName Pointer Table \t\t"
msgstr "\tİsim Gösterge Tablosu \t\t"
-#: peigen.c:1438 pepigen.c:1438
+#: peigen.c:1461 pepigen.c:1461
msgid "\tOrdinal Table \t\t\t"
msgstr "\tOnluk Tablo \t\t\t"
-#: peigen.c:1453 pepigen.c:1453
+#: peigen.c:1476 pepigen.c:1476
#, c-format
msgid ""
"\n"
@@ -2696,15 +2944,15 @@ msgstr ""
"\n"
"İhraç Adres Tablosu -- Onluk Sistem %ld\n"
-#: peigen.c:1472 pepigen.c:1472
+#: peigen.c:1495 pepigen.c:1495
msgid "Forwarder RVA"
msgstr "RVA Yönlendiricisi"
-#: peigen.c:1483 pepigen.c:1483
+#: peigen.c:1506 pepigen.c:1506
msgid "Export RVA"
msgstr "RVA İhracı"
-#: peigen.c:1490 pepigen.c:1490
+#: peigen.c:1513 pepigen.c:1513
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
@@ -2712,12 +2960,12 @@ msgstr ""
"\n"
"[Onluk/İsim Gösterge] Tablosu\n"
-#: peigen.c:1545 pepigen.c:1545
+#: peigen.c:1568 pepigen.c:1568
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "Uyarı, .pdata bölüm boyu (%ld) %d'nin katı değil\n"
-#: peigen.c:1549 pepigen.c:1549
+#: peigen.c:1572 pepigen.c:1572
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
@@ -2725,11 +2973,11 @@ msgstr ""
"\n"
"İşlev Tablosu (.pdata bölüm içeriği çözümlendi)\n"
-#: peigen.c:1552 pepigen.c:1552
+#: peigen.c:1575 pepigen.c:1575
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tBaşlangıç Adresi Sonlanma Adresi Geri Al Bilgisi\n"
-#: peigen.c:1554 pepigen.c:1554
+#: peigen.c:1577 pepigen.c:1577
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
@@ -2737,19 +2985,19 @@ msgstr ""
" vma:\t\tBaÅŸl. Son EH EH PrologSon Ä°stisna\n"
" \t\tAdres Adres Yakalay Veri Adres Maske\n"
-#: peigen.c:1624 pepigen.c:1624
+#: peigen.c:1647 pepigen.c:1647
msgid " Register save millicode"
msgstr " Yazma milikodunu kaydet"
-#: peigen.c:1627 pepigen.c:1627
+#: peigen.c:1650 pepigen.c:1650
msgid " Register restore millicode"
msgstr " Geri alma milikodunu kaydet"
-#: peigen.c:1630 pepigen.c:1630
+#: peigen.c:1653 pepigen.c:1653
msgid " Glue code sequence"
msgstr " BirleÅŸtirici kod dizisi"
-#: peigen.c:1682 pepigen.c:1682
+#: peigen.c:1705 pepigen.c:1705
msgid ""
"\n"
"\n"
@@ -2759,7 +3007,7 @@ msgstr ""
"\n"
"PE Dosya Temel Yerdeğişimi (.reloc bölüm içeriği çözümlendi)\n"
-#: peigen.c:1712 pepigen.c:1712
+#: peigen.c:1735 pepigen.c:1735
#, c-format
msgid ""
"\n"
@@ -2768,7 +3016,7 @@ msgstr ""
"\n"
"Sanal Adres: %08lx Parça boyu %ld (0x%lx) Düzeltme Sayısı %ld\n"
-#: peigen.c:1725 pepigen.c:1725
+#: peigen.c:1748 pepigen.c:1748
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\tyer değişim %4d göreli konum %4x [%4lx] %s"
@@ -2776,7 +3024,7 @@ msgstr "\tyer değişim %4d göreli konum %4x [%4lx] %s"
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1765 pepigen.c:1765
+#: peigen.c:1788 pepigen.c:1788
#, c-format
msgid ""
"\n"
@@ -2785,6 +3033,42 @@ msgstr ""
"\n"
"Özellikler 0x%x\n"
+#~ msgid "%s: Unknown special linker type %d"
+#~ msgstr "%s: Bilinmeyen özel bağlayıcı türü %d"
+
+#~ msgid "v850ea architecture"
+#~ msgstr "v850ea platformu"
+
+#~ msgid "%s: Section %s is too large to add hole of %ld bytes"
+#~ msgstr "%s: %s bölümü içine %ld baytlık bir delik koymak için fazla büyük"
+
+#~ msgid "Error: out of memory"
+#~ msgstr "Hata: bellek tükendi"
+
+#~ msgid "warning: relocation against removed section; zeroing"
+#~ msgstr "uyarı: silinmiş bölüme yer değişim; sıfırlandı"
+
+#~ msgid "warning: relocation against removed section"
+#~ msgstr "%1$s: silinmiş bölüme yerdeğişim"
+
+#~ msgid "local symbols in discarded section %s"
+#~ msgstr "atılmış %s bölümünde yerel semboller"
+
+#~ msgid "%s: linking abicalls files with non-abicalls files"
+#~ msgstr "%s: abicalls dosyaları abicalls olmayan dosyalarla bağlanıyor"
+
+#~ msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
+#~ msgstr "%1$s: Önceki modüllerle (-mips%3$d) ile ISA uyumsuzluğu (-mips%2$d)"
+
+#~ msgid "%s: ISA mismatch (%d) with previous modules (%d)"
+#~ msgstr "%1$s: Önceki modüllerle (%3$d) ile ISA uyumsuzluğu (%2$d)"
+
+#~ msgid "%s: dynamic relocation against speculation fixup"
+#~ msgstr "%s: kuşkulu düzeltmeye dinamik yerdeğişim"
+
+#~ msgid "%s: speculation fixup against undefined weak symbol"
+#~ msgstr "%s: tanımlanmamış gevşek sembole tartışmalı düzeltme"
+
#~ msgid "GP relative relocation when GP not defined"
#~ msgstr "GP tanımlanmamışken GP göreli yer değiştirmesi"
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 6aea881..58c9c51 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -321,8 +321,8 @@ CODE_FRAGMENT
. strange relocation methods to be accomodated (e.g., i960 callj
. instructions). *}
. bfd_reloc_status_type (*special_function)
-. PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *,
-. bfd *, char **));
+. (bfd *, arelent *, struct symbol_cache_entry *, void *, asection *,
+. bfd *, char **);
.
. {* The textual name of the relocation type. *}
. char *name;
@@ -401,7 +401,7 @@ DESCRIPTION
.#define HOWTO_PREPARE(relocation, symbol) \
. { \
-. if (symbol != (asymbol *) NULL) \
+. if (symbol != NULL) \
. { \
. if (bfd_is_com_section (symbol->section)) \
. { \
@@ -429,8 +429,7 @@ DESCRIPTION
*/
unsigned int
-bfd_get_reloc_size (howto)
- reloc_howto_type *howto;
+bfd_get_reloc_size (reloc_howto_type *howto)
{
switch (howto->size)
{
@@ -470,13 +469,12 @@ FUNCTION
bfd_check_overflow
SYNOPSIS
- bfd_reloc_status_type
- bfd_check_overflow
- (enum complain_overflow how,
- unsigned int bitsize,
- unsigned int rightshift,
- unsigned int addrsize,
- bfd_vma relocation);
+ bfd_reloc_status_type bfd_check_overflow
+ (enum complain_overflow how,
+ unsigned int bitsize,
+ unsigned int rightshift,
+ unsigned int addrsize,
+ bfd_vma relocation);
DESCRIPTION
Perform overflow checking on @var{relocation} which has
@@ -488,12 +486,11 @@ DESCRIPTION
*/
bfd_reloc_status_type
-bfd_check_overflow (how, bitsize, rightshift, addrsize, relocation)
- enum complain_overflow how;
- unsigned int bitsize;
- unsigned int rightshift;
- unsigned int addrsize;
- bfd_vma relocation;
+bfd_check_overflow (enum complain_overflow how,
+ unsigned int bitsize,
+ unsigned int rightshift,
+ unsigned int addrsize,
+ bfd_vma relocation)
{
bfd_vma fieldmask, addrmask, signmask, ss, a;
bfd_reloc_status_type flag = bfd_reloc_ok;
@@ -553,14 +550,13 @@ FUNCTION
bfd_perform_relocation
SYNOPSIS
- bfd_reloc_status_type
- bfd_perform_relocation
- (bfd *abfd,
- arelent *reloc_entry,
- PTR data,
- asection *input_section,
- bfd *output_bfd,
- char **error_message);
+ bfd_reloc_status_type bfd_perform_relocation
+ (bfd *abfd,
+ arelent *reloc_entry,
+ void *data,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message);
DESCRIPTION
If @var{output_bfd} is supplied to this function, the
@@ -581,14 +577,12 @@ DESCRIPTION
*/
bfd_reloc_status_type
-bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
- error_message)
- bfd *abfd;
- arelent *reloc_entry;
- PTR data;
- asection *input_section;
- bfd *output_bfd;
- char **error_message;
+bfd_perform_relocation (bfd *abfd,
+ arelent *reloc_entry,
+ void *data,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message)
{
bfd_vma relocation;
bfd_reloc_status_type flag = bfd_reloc_ok;
@@ -600,18 +594,18 @@ bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
symbol = *(reloc_entry->sym_ptr_ptr);
if (bfd_is_abs_section (symbol->section)
- && output_bfd != (bfd *) NULL)
+ && output_bfd != NULL)
{
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
}
- /* If we are not producing relocateable output, return an error if
+ /* If we are not producing relocatable output, return an error if
the symbol is not defined. An undefined weak symbol is
considered to have a value of zero (SVR4 ABI, p. 4-27). */
if (bfd_is_und_section (symbol->section)
&& (symbol->flags & BSF_WEAK) == 0
- && output_bfd == (bfd *) NULL)
+ && output_bfd == NULL)
flag = bfd_reloc_undefined;
/* If there is a function supplied to handle this relocation type,
@@ -675,7 +669,7 @@ bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
include the position of the location; for example, m88kbcs,
or ELF. For those targets, pcrel_offset is TRUE.
- If we are producing relocateable output, then we must ensure
+ If we are producing relocatable output, then we must ensure
that this reloc will be correctly computed when the final
relocation is done. If pcrel_offset is FALSE we want to wind
up with the negative of the location within the section,
@@ -684,7 +678,7 @@ bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
we do not want to adjust the existing addend at all.
FIXME: This seems logical to me, but for the case of
- producing relocateable output it is not what the code
+ producing relocatable output it is not what the code
actually does. I don't want to change it, because it seems
far too likely that something will break. */
@@ -695,7 +689,7 @@ bfd_perform_relocation (abfd, reloc_entry, data, input_section, output_bfd,
relocation -= reloc_entry->address;
}
- if (output_bfd != (bfd *) NULL)
+ if (output_bfd != NULL)
{
if (! howto->partial_inplace)
{
@@ -739,7 +733,7 @@ Hmmm. The first obvious point is that bfd_perform_relocation should
not have any tests that depend upon the flavour. It's seem like
entirely the wrong place for such a thing. The second obvious point
is that the current code ignores the reloc addend when producing
-relocateable output for COFF. That's peculiar. In fact, I really
+relocatable output for COFF. That's peculiar. In fact, I really
have no idea what the point of the line you want to remove is.
A typical COFF reloc subtracts the old value of the symbol and adds in
@@ -754,9 +748,9 @@ different story (we can't change it without losing backward
compatibility with old object files) (coff-i386 does subtract the old
value, to be compatible with existing coff-i386 targets, like SCO).
-So everything works fine when not producing relocateable output. When
-we are producing relocateable output, logically we should do exactly
-what we do when not producing relocateable output. Therefore, your
+So everything works fine when not producing relocatable output. When
+we are producing relocatable output, logically we should do exactly
+what we do when not producing relocatable output. Therefore, your
patch is correct. In fact, it should probably always just set
reloc_entry->addend to 0 for all cases, since it is, in fact, going to
add the value into the object file. This won't hurt the COFF code,
@@ -764,7 +758,7 @@ which doesn't use the addend; I'm not sure what it will do to other
formats (the thing to check for would be whether any formats both use
the addend and set partial_inplace).
-When I wanted to make coff-i386 produce relocateable output, I ran
+When I wanted to make coff-i386 produce relocatable output, I ran
into the problem that you are running into: I wanted to remove that
line. Rather than risk it, I made the coff-i386 relocs use a special
function; it's coff_i386_reloc in coff-i386.c. The function
@@ -958,13 +952,12 @@ FUNCTION
bfd_install_relocation
SYNOPSIS
- bfd_reloc_status_type
- bfd_install_relocation
- (bfd *abfd,
- arelent *reloc_entry,
- PTR data, bfd_vma data_start,
- asection *input_section,
- char **error_message);
+ bfd_reloc_status_type bfd_install_relocation
+ (bfd *abfd,
+ arelent *reloc_entry,
+ void *data, bfd_vma data_start,
+ asection *input_section,
+ char **error_message);
DESCRIPTION
This looks remarkably like <<bfd_perform_relocation>>, except it
@@ -977,14 +970,12 @@ DESCRIPTION
*/
bfd_reloc_status_type
-bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
- input_section, error_message)
- bfd *abfd;
- arelent *reloc_entry;
- PTR data_start;
- bfd_vma data_start_offset;
- asection *input_section;
- char **error_message;
+bfd_install_relocation (bfd *abfd,
+ arelent *reloc_entry,
+ void *data_start,
+ bfd_vma data_start_offset,
+ asection *input_section,
+ char **error_message)
{
bfd_vma relocation;
bfd_reloc_status_type flag = bfd_reloc_ok;
@@ -1067,7 +1058,7 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
include the position of the location; for example, m88kbcs,
or ELF. For those targets, pcrel_offset is TRUE.
- If we are producing relocateable output, then we must ensure
+ If we are producing relocatable output, then we must ensure
that this reloc will be correctly computed when the final
relocation is done. If pcrel_offset is FALSE we want to wind
up with the negative of the location within the section,
@@ -1076,7 +1067,7 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
we do not want to adjust the existing addend at all.
FIXME: This seems logical to me, but for the case of
- producing relocateable output it is not what the code
+ producing relocatable output it is not what the code
actually does. I don't want to change it, because it seems
far too likely that something will break. */
@@ -1128,7 +1119,7 @@ Hmmm. The first obvious point is that bfd_install_relocation should
not have any tests that depend upon the flavour. It's seem like
entirely the wrong place for such a thing. The second obvious point
is that the current code ignores the reloc addend when producing
-relocateable output for COFF. That's peculiar. In fact, I really
+relocatable output for COFF. That's peculiar. In fact, I really
have no idea what the point of the line you want to remove is.
A typical COFF reloc subtracts the old value of the symbol and adds in
@@ -1143,9 +1134,9 @@ different story (we can't change it without losing backward
compatibility with old object files) (coff-i386 does subtract the old
value, to be compatible with existing coff-i386 targets, like SCO).
-So everything works fine when not producing relocateable output. When
-we are producing relocateable output, logically we should do exactly
-what we do when not producing relocateable output. Therefore, your
+So everything works fine when not producing relocatable output. When
+we are producing relocatable output, logically we should do exactly
+what we do when not producing relocatable output. Therefore, your
patch is correct. In fact, it should probably always just set
reloc_entry->addend to 0 for all cases, since it is, in fact, going to
add the value into the object file. This won't hurt the COFF code,
@@ -1153,7 +1144,7 @@ which doesn't use the addend; I'm not sure what it will do to other
formats (the thing to check for would be whether any formats both use
the addend and set partial_inplace).
-When I wanted to make coff-i386 produce relocateable output, I ran
+When I wanted to make coff-i386 produce relocatable output, I ran
into the problem that you are running into: I wanted to remove that
line. Rather than risk it, I made the coff-i386 relocs use a special
function; it's coff_i386_reloc in coff-i386.c. The function
@@ -1277,32 +1268,32 @@ space consuming. For each target:
{
case 0:
{
- char x = bfd_get_8 (abfd, (char *) data);
+ char x = bfd_get_8 (abfd, data);
DOIT (x);
- bfd_put_8 (abfd, x, (unsigned char *) data);
+ bfd_put_8 (abfd, x, data);
}
break;
case 1:
{
- short x = bfd_get_16 (abfd, (bfd_byte *) data);
+ short x = bfd_get_16 (abfd, data);
DOIT (x);
- bfd_put_16 (abfd, (bfd_vma) x, (unsigned char *) data);
+ bfd_put_16 (abfd, (bfd_vma) x, data);
}
break;
case 2:
{
- long x = bfd_get_32 (abfd, (bfd_byte *) data);
+ long x = bfd_get_32 (abfd, data);
DOIT (x);
- bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data);
+ bfd_put_32 (abfd, (bfd_vma) x, data);
}
break;
case -2:
{
- long x = bfd_get_32 (abfd, (bfd_byte *) data);
+ long x = bfd_get_32 (abfd, data);
relocation = -relocation;
DOIT (x);
- bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data);
+ bfd_put_32 (abfd, (bfd_vma) x, data);
}
break;
@@ -1312,9 +1303,9 @@ space consuming. For each target:
case 4:
{
- bfd_vma x = bfd_get_64 (abfd, (bfd_byte *) data);
+ bfd_vma x = bfd_get_64 (abfd, data);
DOIT (x);
- bfd_put_64 (abfd, x, (bfd_byte *) data);
+ bfd_put_64 (abfd, x, data);
}
break;
default:
@@ -1331,7 +1322,7 @@ space consuming. For each target:
function than to try to deal with it.
This routine does a final relocation. Whether it is useful for a
- relocateable link depends upon how the object format defines
+ relocatable link depends upon how the object format defines
relocations.
FIXME: This routine ignores any special_function in the HOWTO,
@@ -1347,15 +1338,13 @@ space consuming. For each target:
ADDEND is the addend of the reloc. */
bfd_reloc_status_type
-_bfd_final_link_relocate (howto, input_bfd, input_section, contents, address,
- value, addend)
- reloc_howto_type *howto;
- bfd *input_bfd;
- asection *input_section;
- bfd_byte *contents;
- bfd_vma address;
- bfd_vma value;
- bfd_vma addend;
+_bfd_final_link_relocate (reloc_howto_type *howto,
+ bfd *input_bfd,
+ asection *input_section,
+ bfd_byte *contents,
+ bfd_vma address,
+ bfd_vma value,
+ bfd_vma addend)
{
bfd_vma relocation;
@@ -1394,11 +1383,10 @@ _bfd_final_link_relocate (howto, input_bfd, input_section, contents, address,
/* Relocate a given location using a given value and howto. */
bfd_reloc_status_type
-_bfd_relocate_contents (howto, input_bfd, relocation, location)
- reloc_howto_type *howto;
- bfd *input_bfd;
- bfd_vma relocation;
- bfd_byte *location;
+_bfd_relocate_contents (reloc_howto_type *howto,
+ bfd *input_bfd,
+ bfd_vma relocation,
+ bfd_byte *location)
{
int size;
bfd_vma x = 0;
@@ -2155,6 +2143,42 @@ ENUMDOC
MIPS ELF relocations.
COMMENT
+ENUM
+ BFD_RELOC_MN10300_GOTOFF24
+ENUMDOC
+ This is a 24bit GOT-relative reloc for the mn10300.
+ENUM
+ BFD_RELOC_MN10300_GOT32
+ENUMDOC
+ This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
+ in the instruction.
+ENUM
+ BFD_RELOC_MN10300_GOT24
+ENUMDOC
+ This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
+ in the instruction.
+ENUM
+ BFD_RELOC_MN10300_GOT16
+ENUMDOC
+ This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
+ in the instruction.
+ENUM
+ BFD_RELOC_MN10300_COPY
+ENUMDOC
+ Copy symbol at runtime.
+ENUM
+ BFD_RELOC_MN10300_GLOB_DAT
+ENUMDOC
+ Create GOT entry.
+ENUM
+ BFD_RELOC_MN10300_JMP_SLOT
+ENUMDOC
+ Create PLT entry.
+ENUM
+ BFD_RELOC_MN10300_RELATIVE
+ENUMDOC
+ Adjust by program base.
+COMMENT
ENUM
BFD_RELOC_386_GOT32
@@ -3385,6 +3409,17 @@ ENUMDOC
s390 tls relocations.
ENUM
+ BFD_RELOC_390_20
+ENUMX
+ BFD_RELOC_390_GOT20
+ENUMX
+ BFD_RELOC_390_GOTPLT20
+ENUMX
+ BFD_RELOC_390_TLS_GOTIE20
+ENUMDOC
+ Long displacement extension.
+
+ENUM
BFD_RELOC_IP2K_FR9
ENUMDOC
Scenix IP2K - 9-bit register number / data address
@@ -3905,8 +3940,8 @@ FUNCTION
bfd_reloc_type_lookup
SYNOPSIS
- reloc_howto_type *
- bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code);
+ reloc_howto_type *bfd_reloc_type_lookup
+ (bfd *abfd, bfd_reloc_code_real_type code);
DESCRIPTION
Return a pointer to a howto structure which, when
@@ -3916,9 +3951,7 @@ DESCRIPTION
*/
reloc_howto_type *
-bfd_reloc_type_lookup (abfd, code)
- bfd *abfd;
- bfd_reloc_code_real_type code;
+bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
{
return BFD_SEND (abfd, reloc_type_lookup, (abfd, code));
}
@@ -3932,7 +3965,7 @@ INTERNAL_FUNCTION
SYNOPSIS
reloc_howto_type *bfd_default_reloc_type_lookup
- (bfd *abfd, bfd_reloc_code_real_type code);
+ (bfd *abfd, bfd_reloc_code_real_type code);
DESCRIPTION
Provides a default relocation lookup routine for any architecture.
@@ -3940,9 +3973,7 @@ DESCRIPTION
*/
reloc_howto_type *
-bfd_default_reloc_type_lookup (abfd, code)
- bfd *abfd;
- bfd_reloc_code_real_type code;
+bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
{
switch (code)
{
@@ -3963,7 +3994,7 @@ bfd_default_reloc_type_lookup (abfd, code)
default:
BFD_FAIL ();
}
- return (reloc_howto_type *) NULL;
+ return NULL;
}
/*
@@ -3979,12 +4010,11 @@ DESCRIPTION
*/
const char *
-bfd_get_reloc_code_name (code)
- bfd_reloc_code_real_type code;
+bfd_get_reloc_code_name (bfd_reloc_code_real_type code)
{
- if ((int) code > (int) BFD_RELOC_UNUSED)
+ if (code > BFD_RELOC_UNUSED)
return 0;
- return bfd_reloc_code_real_names[(int)code];
+ return bfd_reloc_code_real_names[code];
}
/*
@@ -3993,10 +4023,10 @@ INTERNAL_FUNCTION
SYNOPSIS
bfd_boolean bfd_generic_relax_section
- (bfd *abfd,
- asection *section,
- struct bfd_link_info *,
- bfd_boolean *);
+ (bfd *abfd,
+ asection *section,
+ struct bfd_link_info *,
+ bfd_boolean *);
DESCRIPTION
Provides default handling for relaxing for back ends which
@@ -4004,11 +4034,10 @@ DESCRIPTION
*/
bfd_boolean
-bfd_generic_relax_section (abfd, section, link_info, again)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- bfd_boolean *again;
+bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ bfd_boolean *again)
{
*again = FALSE;
return TRUE;
@@ -4020,7 +4049,7 @@ INTERNAL_FUNCTION
SYNOPSIS
bfd_boolean bfd_generic_gc_sections
- (bfd *, struct bfd_link_info *);
+ (bfd *, struct bfd_link_info *);
DESCRIPTION
Provides default handling for relaxing for back ends which
@@ -4028,9 +4057,8 @@ DESCRIPTION
*/
bfd_boolean
-bfd_generic_gc_sections (abfd, link_info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
{
return TRUE;
}
@@ -4041,7 +4069,7 @@ INTERNAL_FUNCTION
SYNOPSIS
bfd_boolean bfd_generic_merge_sections
- (bfd *, struct bfd_link_info *);
+ (bfd *, struct bfd_link_info *);
DESCRIPTION
Provides default handling for SEC_MERGE section merging for back ends
@@ -4049,9 +4077,8 @@ DESCRIPTION
*/
bfd_boolean
-bfd_generic_merge_sections (abfd, link_info)
- bfd *abfd ATTRIBUTE_UNUSED;
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
+bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED,
+ struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
{
return TRUE;
}
@@ -4061,13 +4088,13 @@ INTERNAL_FUNCTION
bfd_generic_get_relocated_section_contents
SYNOPSIS
- bfd_byte *
- bfd_generic_get_relocated_section_contents (bfd *abfd,
- struct bfd_link_info *link_info,
- struct bfd_link_order *link_order,
- bfd_byte *data,
- bfd_boolean relocateable,
- asymbol **symbols);
+ bfd_byte *bfd_generic_get_relocated_section_contents
+ (bfd *abfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols);
DESCRIPTION
Provides default handling of relocation effort for back ends
@@ -4076,14 +4103,12 @@ DESCRIPTION
*/
bfd_byte *
-bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
- relocateable, symbols)
- bfd *abfd;
- struct bfd_link_info *link_info;
- struct bfd_link_order *link_order;
- bfd_byte *data;
- bfd_boolean relocateable;
- asymbol **symbols;
+bfd_generic_get_relocated_section_contents (bfd *abfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols)
{
/* Get enough memory to hold the stuff. */
bfd *input_bfd = link_order->u.indirect.section->owner;
@@ -4096,15 +4121,15 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
if (reloc_size < 0)
goto error_return;
- reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
+ reloc_vector = bfd_malloc (reloc_size);
if (reloc_vector == NULL && reloc_size != 0)
goto error_return;
/* Read in the section. */
if (!bfd_get_section_contents (input_bfd,
input_section,
- (PTR) data,
- (bfd_vma) 0,
+ data,
+ 0,
input_section->_raw_size))
goto error_return;
@@ -4122,19 +4147,18 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
if (reloc_count > 0)
{
arelent **parent;
- for (parent = reloc_vector; *parent != (arelent *) NULL;
- parent++)
+ for (parent = reloc_vector; *parent != NULL; parent++)
{
- char *error_message = (char *) NULL;
+ char *error_message = NULL;
bfd_reloc_status_type r =
bfd_perform_relocation (input_bfd,
*parent,
- (PTR) data,
+ data,
input_section,
- relocateable ? abfd : (bfd *) NULL,
+ relocatable ? abfd : NULL,
&error_message);
- if (relocateable)
+ if (relocatable)
{
asection *os = input_section->output_section;
@@ -4155,7 +4179,7 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
goto error_return;
break;
case bfd_reloc_dangerous:
- BFD_ASSERT (error_message != (char *) NULL);
+ BFD_ASSERT (error_message != NULL);
if (!((*link_info->callbacks->reloc_dangerous)
(link_info, error_message, input_bfd, input_section,
(*parent)->address)))
diff --git a/bfd/reloc16.c b/bfd/reloc16.c
index 39f36e7..3a4c3d3 100644
--- a/bfd/reloc16.c
+++ b/bfd/reloc16.c
@@ -1,6 +1,6 @@
/* 8 and 16 bit COFF relocation functions, for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -240,13 +240,13 @@ bfd_coff_reloc16_get_relocated_section_contents (in_abfd,
link_info,
link_order,
data,
- relocateable,
+ relocatable,
symbols)
bfd *in_abfd;
struct bfd_link_info *link_info;
struct bfd_link_order *link_order;
bfd_byte *data;
- bfd_boolean relocateable;
+ bfd_boolean relocatable;
asymbol **symbols;
{
/* Get enough memory to hold the stuff. */
@@ -259,11 +259,11 @@ bfd_coff_reloc16_get_relocated_section_contents (in_abfd,
if (reloc_size < 0)
return NULL;
- /* If producing relocateable output, don't bother to relax. */
- if (relocateable)
+ /* If producing relocatable output, don't bother to relax. */
+ if (relocatable)
return bfd_generic_get_relocated_section_contents (in_abfd, link_info,
link_order,
- data, relocateable,
+ data, relocatable,
symbols);
/* Read in the section. */
diff --git a/bfd/section.c b/bfd/section.c
index 44edb07..5347c2b 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -475,7 +475,7 @@ CODE_FRAGMENT
. file_ptr line_filepos;
.
. {* Pointer to data for applications. *}
-. PTR userdata;
+. void *userdata;
.
. {* If the SEC_IN_MEMORY flag is set, this points to the actual
. contents. *}
@@ -504,7 +504,7 @@ CODE_FRAGMENT
. {* What the section number is in the target world. *}
. int target_index;
.
-. PTR used_by_bfd;
+. void *used_by_bfd;
.
. {* If this is a constructor section then here is a list of the
. relocations created to relocate items within it. *}
@@ -532,18 +532,18 @@ CODE_FRAGMENT
.#define BFD_IND_SECTION_NAME "*IND*"
.
.{* The absolute section. *}
-.extern const asection bfd_abs_section;
+.extern asection bfd_abs_section;
.#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
.#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
.{* Pointer to the undefined section. *}
-.extern const asection bfd_und_section;
+.extern asection bfd_und_section;
.#define bfd_und_section_ptr ((asection *) &bfd_und_section)
.#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
.{* Pointer to the common section. *}
-.extern const asection bfd_com_section;
+.extern asection bfd_com_section;
.#define bfd_com_section_ptr ((asection *) &bfd_com_section)
.{* Pointer to the indirect section. *}
-.extern const asection bfd_ind_section;
+.extern asection bfd_ind_section;
.#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
.#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
.
@@ -616,7 +616,7 @@ static const asymbol global_syms[] =
#define STD_SECTION(SEC, FLAGS, SYM, NAME, IDX) \
const asymbol * const SYM = (asymbol *) &global_syms[IDX]; \
- const asection SEC = \
+ asection SEC = \
/* name, id, index, next, flags, user_set_vma, reloc_done, */ \
{ NAME, IDX, 0, NULL, FLAGS, 0, 0, \
\
@@ -676,10 +676,9 @@ struct section_hash_entry
/* Initialize an entry in the section hash table. */
struct bfd_hash_entry *
-bfd_section_hash_newfunc (entry, table, string)
- struct bfd_hash_entry *entry;
- struct bfd_hash_table *table;
- const char *string;
+bfd_section_hash_newfunc (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
{
/* Allocate the structure if it has not already been allocated by a
subclass. */
@@ -694,10 +693,8 @@ bfd_section_hash_newfunc (entry, table, string)
/* Call the allocation method of the superclass. */
entry = bfd_hash_newfunc (entry, table, string);
if (entry != NULL)
- {
- memset ((PTR) &((struct section_hash_entry *) entry)->section,
- 0, sizeof (asection));
- }
+ memset (&((struct section_hash_entry *) entry)->section, 0,
+ sizeof (asection));
return entry;
}
@@ -708,12 +705,8 @@ bfd_section_hash_newfunc (entry, table, string)
/* Initializes a new section. NEWSECT->NAME is already set. */
-static asection *bfd_section_init PARAMS ((bfd *, asection *));
-
static asection *
-bfd_section_init (abfd, newsect)
- bfd *abfd;
- asection *newsect;
+bfd_section_init (bfd *abfd, asection *newsect)
{
static int section_id = 0x10; /* id 0 to 3 used by STD_SECTION. */
@@ -768,13 +761,12 @@ DESCRIPTION
*/
void
-bfd_section_list_clear (abfd)
- bfd *abfd;
+bfd_section_list_clear (bfd *abfd)
{
abfd->sections = NULL;
abfd->section_tail = &abfd->sections;
abfd->section_count = 0;
- memset ((PTR) abfd->section_htab.table, 0,
+ memset (abfd->section_htab.table, 0,
abfd->section_htab.size * sizeof (struct bfd_hash_entry *));
}
@@ -783,7 +775,7 @@ FUNCTION
bfd_get_section_by_name
SYNOPSIS
- asection *bfd_get_section_by_name(bfd *abfd, const char *name);
+ asection *bfd_get_section_by_name (bfd *abfd, const char *name);
DESCRIPTION
Run through @var{abfd} and return the one of the
@@ -797,9 +789,7 @@ DESCRIPTION
*/
asection *
-bfd_get_section_by_name (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_get_section_by_name (bfd *abfd, const char *name)
{
struct section_hash_entry *sh;
@@ -815,9 +805,8 @@ FUNCTION
bfd_get_unique_section_name
SYNOPSIS
- char *bfd_get_unique_section_name(bfd *abfd,
- const char *templat,
- int *count);
+ char *bfd_get_unique_section_name
+ (bfd *abfd, const char *templat, int *count);
DESCRIPTION
Invent a section name that is unique in @var{abfd} by tacking
@@ -828,17 +817,14 @@ DESCRIPTION
*/
char *
-bfd_get_unique_section_name (abfd, templat, count)
- bfd *abfd;
- const char *templat;
- int *count;
+bfd_get_unique_section_name (bfd *abfd, const char *templat, int *count)
{
int num;
unsigned int len;
char *sname;
len = strlen (templat);
- sname = bfd_malloc ((bfd_size_type) len + 8);
+ sname = bfd_malloc (len + 8);
if (sname == NULL)
return NULL;
memcpy (sname, templat, len);
@@ -865,7 +851,7 @@ FUNCTION
bfd_make_section_old_way
SYNOPSIS
- asection *bfd_make_section_old_way(bfd *abfd, const char *name);
+ asection *bfd_make_section_old_way (bfd *abfd, const char *name);
DESCRIPTION
Create a new empty section called @var{name}
@@ -886,9 +872,7 @@ DESCRIPTION
*/
asection *
-bfd_make_section_old_way (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_make_section_old_way (bfd *abfd, const char *name)
{
struct section_hash_entry *sh;
asection *newsect;
@@ -931,7 +915,7 @@ FUNCTION
bfd_make_section_anyway
SYNOPSIS
- asection *bfd_make_section_anyway(bfd *abfd, const char *name);
+ asection *bfd_make_section_anyway (bfd *abfd, const char *name);
DESCRIPTION
Create a new empty section called @var{name} and attach it to the end of
@@ -944,9 +928,7 @@ DESCRIPTION
*/
sec_ptr
-bfd_make_section_anyway (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_make_section_anyway (bfd *abfd, const char *name)
{
struct section_hash_entry *sh;
asection *newsect;
@@ -968,7 +950,7 @@ bfd_make_section_anyway (abfd, name)
section_htab without generating a unique section name and
that would be pointless; We don't need to traverse the
hash table. */
- newsect = (asection *) bfd_zalloc (abfd, sizeof (asection));
+ newsect = bfd_zalloc (abfd, sizeof (asection));
if (newsect == NULL)
return NULL;
}
@@ -982,7 +964,7 @@ FUNCTION
bfd_make_section
SYNOPSIS
- asection *bfd_make_section(bfd *, const char *name);
+ asection *bfd_make_section (bfd *, const char *name);
DESCRIPTION
Like <<bfd_make_section_anyway>>, but return <<NULL>> (without calling
@@ -992,9 +974,7 @@ DESCRIPTION
*/
asection *
-bfd_make_section (abfd, name)
- bfd *abfd;
- const char *name;
+bfd_make_section (bfd *abfd, const char *name)
{
struct section_hash_entry *sh;
asection *newsect;
@@ -1019,7 +999,7 @@ bfd_make_section (abfd, name)
if (newsect->name != NULL)
{
/* Section already exists. */
- return newsect;
+ return NULL;
}
newsect->name = name;
@@ -1031,7 +1011,8 @@ FUNCTION
bfd_set_section_flags
SYNOPSIS
- bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags);
+ bfd_boolean bfd_set_section_flags
+ (bfd *abfd, asection *sec, flagword flags);
DESCRIPTION
Set the attributes of the section @var{sec} in the BFD
@@ -1047,10 +1028,9 @@ DESCRIPTION
/*ARGSUSED*/
bfd_boolean
-bfd_set_section_flags (abfd, section, flags)
- bfd *abfd ATTRIBUTE_UNUSED;
- sec_ptr section;
- flagword flags;
+bfd_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED,
+ sec_ptr section,
+ flagword flags)
{
#if 0
/* If you try to copy a text section from an input file (where it
@@ -1074,34 +1054,32 @@ FUNCTION
bfd_map_over_sections
SYNOPSIS
- void bfd_map_over_sections(bfd *abfd,
- void (*func) (bfd *abfd,
- asection *sect,
- PTR obj),
- PTR obj);
+ void bfd_map_over_sections
+ (bfd *abfd,
+ void (*func) (bfd *abfd, asection *sect, void *obj),
+ void *obj);
DESCRIPTION
Call the provided function @var{func} for each section
attached to the BFD @var{abfd}, passing @var{obj} as an
argument. The function will be called as if by
-| func(abfd, the_section, obj);
+| func (abfd, the_section, obj);
This is the prefered method for iterating over sections; an
alternative would be to use a loop:
| section *p;
| for (p = abfd->sections; p != NULL; p = p->next)
-| func(abfd, p, ...)
+| func (abfd, p, ...)
*/
/*VARARGS2*/
void
-bfd_map_over_sections (abfd, operation, user_storage)
- bfd *abfd;
- void (*operation) PARAMS ((bfd * abfd, asection * sect, PTR obj));
- PTR user_storage;
+bfd_map_over_sections (bfd *abfd,
+ void (*operation) (bfd *, asection *, void *),
+ void *user_storage)
{
asection *sect;
unsigned int i = 0;
@@ -1118,7 +1096,8 @@ FUNCTION
bfd_set_section_size
SYNOPSIS
- bfd_boolean bfd_set_section_size (bfd *abfd, asection *sec, bfd_size_type val);
+ bfd_boolean bfd_set_section_size
+ (bfd *abfd, asection *sec, bfd_size_type val);
DESCRIPTION
Set @var{sec} to the size @var{val}. If the operation is
@@ -1131,10 +1110,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_section_size (abfd, ptr, val)
- bfd *abfd;
- sec_ptr ptr;
- bfd_size_type val;
+bfd_set_section_size (bfd *abfd, sec_ptr ptr, bfd_size_type val)
{
/* Once you've started writing to any section you cannot create or change
the size of any others. */
@@ -1156,9 +1132,9 @@ FUNCTION
bfd_set_section_contents
SYNOPSIS
- bfd_boolean bfd_set_section_contents (bfd *abfd, asection *section,
- PTR data, file_ptr offset,
- bfd_size_type count);
+ bfd_boolean bfd_set_section_contents
+ (bfd *abfd, asection *section, void *data, file_ptr offset,
+ bfd_size_type count);
DESCRIPTION
Sets the contents of the section @var{section} in BFD
@@ -1178,18 +1154,17 @@ DESCRIPTION
*/
-#define bfd_get_section_size_now(abfd,sec) \
-(sec->reloc_done \
- ? bfd_get_section_size_after_reloc (sec) \
- : bfd_get_section_size_before_reloc (sec))
+#define bfd_get_section_size_now(abfd, sec) \
+ (sec->reloc_done \
+ ? bfd_get_section_size_after_reloc (sec) \
+ : bfd_get_section_size_before_reloc (sec))
bfd_boolean
-bfd_set_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- bfd_size_type count;
+bfd_set_section_contents (bfd *abfd,
+ sec_ptr section,
+ void *location,
+ file_ptr offset,
+ bfd_size_type count)
{
bfd_size_type sz;
@@ -1229,7 +1204,7 @@ bfd_set_section_contents (abfd, section, location, offset, count)
/* Record a copy of the data in memory if desired. */
if (section->contents
- && location != (PTR) (section->contents + offset))
+ && location != section->contents + offset)
memcpy (section->contents + offset, location, (size_t) count);
if (BFD_SEND (abfd, _bfd_set_section_contents,
@@ -1247,9 +1222,9 @@ FUNCTION
bfd_get_section_contents
SYNOPSIS
- bfd_boolean bfd_get_section_contents (bfd *abfd, asection *section,
- PTR location, file_ptr offset,
- bfd_size_type count);
+ bfd_boolean bfd_get_section_contents
+ (bfd *abfd, asection *section, void *location, file_ptr offset,
+ bfd_size_type count);
DESCRIPTION
Read data from @var{section} in BFD @var{abfd}
@@ -1265,12 +1240,11 @@ DESCRIPTION
*/
bfd_boolean
-bfd_get_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- bfd_size_type count;
+bfd_get_section_contents (bfd *abfd,
+ sec_ptr section,
+ void *location,
+ file_ptr offset,
+ bfd_size_type count)
{
bfd_size_type sz;
@@ -1317,8 +1291,8 @@ FUNCTION
bfd_copy_private_section_data
SYNOPSIS
- bfd_boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec,
- bfd *obfd, asection *osec);
+ bfd_boolean bfd_copy_private_section_data
+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
DESCRIPTION
Copy private section information from @var{isec} in the BFD
@@ -1340,7 +1314,7 @@ FUNCTION
SYNOPSIS
void _bfd_strip_section_from_output
- (struct bfd_link_info *info, asection *section);
+ (struct bfd_link_info *info, asection *section);
DESCRIPTION
Remove @var{section} from the output. If the output section
@@ -1351,9 +1325,7 @@ DESCRIPTION
to remove sections.
*/
void
-_bfd_strip_section_from_output (info, s)
- struct bfd_link_info *info;
- asection *s;
+_bfd_strip_section_from_output (struct bfd_link_info *info, asection *s)
{
asection *os;
asection *is;
@@ -1392,9 +1364,8 @@ DESCRIPTION
*/
bfd_boolean
-bfd_generic_discard_group (abfd, group)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *group ATTRIBUTE_UNUSED;
+bfd_generic_discard_group (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *group ATTRIBUTE_UNUSED)
{
return TRUE;
}
diff --git a/bfd/simple.c b/bfd/simple.c
index 0042e60..c2a741c 100644
--- a/bfd/simple.c
+++ b/bfd/simple.c
@@ -24,89 +24,56 @@
#include "libbfd.h"
#include "bfdlink.h"
-static bfd_boolean simple_dummy_warning
- PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *,
- asection *, bfd_vma));
-
-static bfd_boolean simple_dummy_undefined_symbol
- PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *,
- bfd_vma, bfd_boolean));
-
-static bfd_boolean simple_dummy_reloc_overflow
- PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma,
- bfd *, asection *, bfd_vma));
-
-static bfd_boolean simple_dummy_reloc_dangerous
- PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
-
-static bfd_boolean simple_dummy_unattached_reloc
- PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma));
-
-static void simple_save_output_info
- PARAMS ((bfd *, asection *, PTR));
-
-static void simple_restore_output_info
- PARAMS ((bfd *, asection *, PTR));
-
-bfd_byte * bfd_simple_get_relocated_section_contents
- PARAMS ((bfd *, asection *, bfd_byte *, asymbol **));
-
static bfd_boolean
-simple_dummy_warning (link_info, warning, symbol, abfd, section, address)
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- const char *warning ATTRIBUTE_UNUSED;
- const char *symbol ATTRIBUTE_UNUSED;
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- bfd_vma address ATTRIBUTE_UNUSED;
+simple_dummy_warning (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ const char *warning ATTRIBUTE_UNUSED,
+ const char *symbol ATTRIBUTE_UNUSED,
+ bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma address ATTRIBUTE_UNUSED)
{
return TRUE;
}
static bfd_boolean
-simple_dummy_undefined_symbol (link_info, name, abfd, section, address, fatal)
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- const char *name ATTRIBUTE_UNUSED;
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- bfd_vma address ATTRIBUTE_UNUSED;
- bfd_boolean fatal ATTRIBUTE_UNUSED;
+simple_dummy_undefined_symbol (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ const char *name ATTRIBUTE_UNUSED,
+ bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma address ATTRIBUTE_UNUSED,
+ bfd_boolean fatal ATTRIBUTE_UNUSED)
{
return TRUE;
}
static bfd_boolean
-simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd,
- section, address)
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- const char *name ATTRIBUTE_UNUSED;
- const char *reloc_name ATTRIBUTE_UNUSED;
- bfd_vma addend ATTRIBUTE_UNUSED;
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- bfd_vma address ATTRIBUTE_UNUSED;
+simple_dummy_reloc_overflow (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ const char *name ATTRIBUTE_UNUSED,
+ const char *reloc_name ATTRIBUTE_UNUSED,
+ bfd_vma addend ATTRIBUTE_UNUSED,
+ bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma address ATTRIBUTE_UNUSED)
{
return TRUE;
}
static bfd_boolean
-simple_dummy_reloc_dangerous (link_info, message, abfd, section, address)
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- const char *message ATTRIBUTE_UNUSED;
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- bfd_vma address ATTRIBUTE_UNUSED;
+simple_dummy_reloc_dangerous (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ const char *message ATTRIBUTE_UNUSED,
+ bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma address ATTRIBUTE_UNUSED)
{
return TRUE;
}
static bfd_boolean
-simple_dummy_unattached_reloc (link_info, name, abfd, section, address)
- struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
- const char *name ATTRIBUTE_UNUSED;
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section ATTRIBUTE_UNUSED;
- bfd_vma address ATTRIBUTE_UNUSED;
+simple_dummy_unattached_reloc (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+ const char *name ATTRIBUTE_UNUSED,
+ bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma address ATTRIBUTE_UNUSED)
{
return TRUE;
}
@@ -118,12 +85,11 @@ struct saved_output_info
};
static void
-simple_save_output_info (abfd, section, ptr)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- PTR ptr;
+simple_save_output_info (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section,
+ void *ptr)
{
- struct saved_output_info *output_info = (struct saved_output_info *) ptr;
+ struct saved_output_info *output_info = ptr;
output_info[section->index].offset = section->output_offset;
output_info[section->index].section = section->output_section;
section->output_offset = 0;
@@ -131,12 +97,11 @@ simple_save_output_info (abfd, section, ptr)
}
static void
-simple_restore_output_info (abfd, section, ptr)
- bfd *abfd ATTRIBUTE_UNUSED;
- asection *section;
- PTR ptr;
+simple_restore_output_info (bfd *abfd ATTRIBUTE_UNUSED,
+ asection *section,
+ void *ptr)
{
- struct saved_output_info *output_info = (struct saved_output_info *) ptr;
+ struct saved_output_info *output_info = ptr;
section->output_offset = output_info[section->index].offset;
section->output_section = output_info[section->index].section;
}
@@ -146,7 +111,8 @@ FUNCTION
bfd_simple_relocate_secton
SYNOPSIS
- bfd_byte *bfd_simple_get_relocated_section_contents (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
+ bfd_byte *bfd_simple_get_relocated_section_contents
+ (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
DESCRIPTION
Returns the relocated contents of section @var{sec}. The symbols in
@@ -163,18 +129,39 @@ DESCRIPTION
*/
bfd_byte *
-bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
- bfd *abfd;
- asection *sec;
- bfd_byte *outbuf;
- asymbol **symbol_table;
+bfd_simple_get_relocated_section_contents (bfd *abfd,
+ asection *sec,
+ bfd_byte *outbuf,
+ asymbol **symbol_table)
{
struct bfd_link_info link_info;
struct bfd_link_order link_order;
struct bfd_link_callbacks callbacks;
bfd_byte *contents, *data;
int storage_needed;
- PTR saved_offsets;
+ void *saved_offsets;
+ bfd_boolean saved_reloc_done = sec->reloc_done;
+
+#undef RETURN
+#define RETURN(x) \
+ do \
+ { \
+ sec->reloc_done = saved_reloc_done; \
+ return (x); \
+ } \
+ while (0)
+
+ /* Foul hack to prevent bfd_section_size aborts. The reloc_done flag
+ only controls that macro (and the related size macros), selecting
+ between _raw_size and _cooked_size. We may be called with relocation
+ done or not, so we need to save the done-flag and mark the section as
+ not relocated.
+
+ Debug sections won't change size while we're only relocating. There
+ may be trouble here someday if it tries to run relaxation
+ unexpectedly, so make sure. */
+ BFD_ASSERT (sec->_raw_size == sec->_cooked_size);
+ sec->reloc_done = 0;
if (! (sec->flags & SEC_RELOC))
{
@@ -188,7 +175,7 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
if (contents)
bfd_get_section_contents (abfd, sec, contents, 0, size);
- return contents;
+ RETURN (contents);
}
/* In order to use bfd_get_relocated_section_contents, we need
@@ -218,7 +205,7 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
{
data = bfd_malloc (bfd_section_size (abfd, sec));
if (data == NULL)
- return NULL;
+ RETURN (NULL);
outbuf = data;
}
@@ -237,7 +224,7 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
{
if (data)
free (data);
- return NULL;
+ RETURN (NULL);
}
bfd_map_over_sections (abfd, simple_save_output_info, saved_offsets);
@@ -246,7 +233,7 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
_bfd_generic_link_add_symbols (abfd, &link_info);
storage_needed = bfd_get_symtab_upper_bound (abfd);
- symbol_table = (asymbol **) bfd_malloc (storage_needed);
+ symbol_table = bfd_malloc (storage_needed);
bfd_canonicalize_symtab (abfd, symbol_table);
}
else
@@ -278,15 +265,7 @@ bfd_simple_get_relocated_section_contents (abfd, sec, outbuf, symbol_table)
bfd_map_over_sections (abfd, simple_restore_output_info, saved_offsets);
free (saved_offsets);
- /* Foul hack to prevent bfd_section_size aborts. This flag only controls
- that macro (and the related size macros), selecting between _raw_size
- and _cooked_size. Debug sections won't change size while we're only
- relocating. There may be trouble here someday if it tries to run
- relaxation unexpectedly, so make sure. */
- BFD_ASSERT (sec->_raw_size == sec->_cooked_size);
- sec->reloc_done = 0;
-
bfd_link_hash_table_free (abfd, link_info.hash);
- return contents;
+ RETURN (contents);
}
diff --git a/bfd/sparclinux.c b/bfd/sparclinux.c
index 40e49c8..0a936b1 100644
--- a/bfd/sparclinux.c
+++ b/bfd/sparclinux.c
@@ -354,7 +354,7 @@ linux_add_one_symbol (info, abfd, name, flags, section, value, string,
insert = FALSE;
- if (! info->relocateable
+ if (! info->relocatable
&& linux_hash_table (info)->dynobj == NULL
&& strcmp (name, SHARABLE_CONFLICTS) == 0
&& (flags & BSF_CONSTRUCTOR) != 0
diff --git a/bfd/sunos.c b/bfd/sunos.c
index 4569e80..fb8e17b 100644
--- a/bfd/sunos.c
+++ b/bfd/sunos.c
@@ -1,6 +1,6 @@
/* BFD backend for SunOS binaries.
Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -884,7 +884,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
{
if (! sunos_create_dynamic_sections (abfd, info,
((abfd->flags & DYNAMIC) != 0
- && !info->relocateable)))
+ && !info->relocatable)))
return FALSE;
}
@@ -911,7 +911,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp)
/* The native linker seems to just ignore dynamic objects when -r is
used. */
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
/* There's no hope of using a dynamic object which does not exactly
@@ -1326,7 +1326,7 @@ bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
*sneedptr = NULL;
*srulesptr = NULL;
- if (info->relocateable)
+ if (info->relocatable)
return TRUE;
if (output_bfd->xvec != &MY(vec))
diff --git a/bfd/syms.c b/bfd/syms.c
index 0fcb7b3..33fd9fd 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -77,7 +77,7 @@ SUBSECTION
| if (storage_needed == 0)
| return;
|
-| symbol_table = (asymbol **) xmalloc (storage_needed);
+| symbol_table = xmalloc (storage_needed);
| ...
| number_of_symbols =
| bfd_canonicalize_symtab (abfd, symbol_table);
@@ -122,7 +122,7 @@ SUBSECTION
| new->value = 0x12345;
|
| ptrs[0] = new;
-| ptrs[1] = (asymbol *)0;
+| ptrs[1] = 0;
|
| bfd_set_symtab (abfd, ptrs, 1);
| bfd_close (abfd);
@@ -298,7 +298,7 @@ CODE_FRAGMENT
. {* Back end special data. *}
. union
. {
-. PTR p;
+. void *p;
. bfd_vma i;
. }
. udata;
@@ -314,10 +314,6 @@ CODE_FRAGMENT
#include "bfdlink.h"
#include "aout/stab_gnu.h"
-static char coff_section_type PARAMS ((const char *));
-static char decode_section_type PARAMS ((const struct sec *));
-static int cmpindexentry PARAMS ((const PTR, const PTR));
-
/*
DOCDD
INODE
@@ -354,9 +350,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_is_local_label (abfd, sym)
- bfd *abfd;
- asymbol *sym;
+bfd_is_local_label (bfd *abfd, asymbol *sym)
{
/* The BSF_SECTION_SYM check is needed for IA-64, where every label that
starts with '.' is local. This would accidentally catch section names
@@ -382,7 +376,7 @@ DESCRIPTION
local label.
.#define bfd_is_local_label_name(abfd, name) \
-. BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+. BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
.
*/
@@ -398,8 +392,7 @@ DESCRIPTION
including the NULL.
.#define bfd_canonicalize_symtab(abfd, location) \
-. BFD_SEND (abfd, _bfd_canonicalize_symtab,\
-. (abfd, location))
+. BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
.
*/
@@ -408,7 +401,8 @@ FUNCTION
bfd_set_symtab
SYNOPSIS
- bfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count);
+ bfd_boolean bfd_set_symtab
+ (bfd *abfd, asymbol **location, unsigned int count);
DESCRIPTION
Arrange that when the output BFD @var{abfd} is closed,
@@ -417,12 +411,9 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_symtab (abfd, location, symcount)
- bfd *abfd;
- asymbol **location;
- unsigned int symcount;
+bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int symcount)
{
- if ((abfd->format != bfd_object) || (bfd_read_p (abfd)))
+ if (abfd->format != bfd_object || bfd_read_p (abfd))
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
@@ -438,25 +429,21 @@ FUNCTION
bfd_print_symbol_vandf
SYNOPSIS
- void bfd_print_symbol_vandf (bfd *abfd, PTR file, asymbol *symbol);
+ void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
DESCRIPTION
Print the value and flags of the @var{symbol} supplied to the
stream @var{file}.
*/
void
-bfd_print_symbol_vandf (abfd, arg, symbol)
- bfd *abfd;
- PTR arg;
- asymbol *symbol;
+bfd_print_symbol_vandf (bfd *abfd, void *arg, asymbol *symbol)
{
- FILE *file = (FILE *) arg;
+ FILE *file = arg;
flagword type = symbol->flags;
- if (symbol->section != (asection *) NULL)
- bfd_fprintf_vma (abfd, file,
- symbol->value + symbol->section->vma);
+ if (symbol->section != NULL)
+ bfd_fprintf_vma (abfd, file, symbol->value + symbol->section->vma);
else
bfd_fprintf_vma (abfd, file, symbol->value);
@@ -493,7 +480,7 @@ DESCRIPTION
information, and will cause problems later on.
.#define bfd_make_empty_symbol(abfd) \
-. BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+. BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
.
*/
@@ -502,7 +489,7 @@ FUNCTION
_bfd_generic_make_empty_symbol
SYNOPSIS
- asymbol * _bfd_generic_make_empty_symbol (bfd *);
+ asymbol *_bfd_generic_make_empty_symbol (bfd *);
DESCRIPTION
Create a new <<asymbol>> structure for the BFD @var{abfd}
@@ -512,11 +499,10 @@ DESCRIPTION
*/
asymbol *
-_bfd_generic_make_empty_symbol (abfd)
- bfd *abfd;
+_bfd_generic_make_empty_symbol (bfd *abfd)
{
bfd_size_type amt = sizeof (asymbol);
- asymbol *new = (asymbol *) bfd_zalloc (abfd, amt);
+ asymbol *new = bfd_zalloc (abfd, amt);
if (new)
new->the_bfd = abfd;
return new;
@@ -532,7 +518,7 @@ DESCRIPTION
yet to be worked out.
.#define bfd_make_debug_symbol(abfd,ptr,size) \
-. BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+. BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
.
*/
@@ -576,8 +562,7 @@ static const struct section_to_type stt[] =
't' as well as .text */
static char
-coff_section_type (s)
- const char *s;
+coff_section_type (const char *s)
{
const struct section_to_type *t;
@@ -596,8 +581,7 @@ coff_section_type (s)
we could perhaps obsolete coff_section_type. */
static char
-decode_section_type (section)
- const struct sec *section;
+decode_section_type (const struct sec *section)
{
if (section->flags & SEC_CODE)
return 't';
@@ -619,8 +603,7 @@ decode_section_type (section)
}
if (section->flags & SEC_DEBUGGING)
return 'N';
- if ((section->flags & SEC_HAS_CONTENTS) &&
- (section->flags & SEC_READONLY))
+ if ((section->flags & SEC_HAS_CONTENTS) && (section->flags & SEC_READONLY))
return 'n';
return '?';
@@ -638,8 +621,7 @@ SYNOPSIS
int bfd_decode_symclass (asymbol *symbol);
*/
int
-bfd_decode_symclass (symbol)
- asymbol *symbol;
+bfd_decode_symclass (asymbol *symbol)
{
char c;
@@ -711,8 +693,7 @@ SYNOPSIS
*/
bfd_boolean
-bfd_is_undefined_symclass (symclass)
- int symclass;
+bfd_is_undefined_symclass (int symclass)
{
return symclass == 'U' || symclass == 'w' || symclass == 'v';
}
@@ -731,9 +712,7 @@ SYNOPSIS
*/
void
-bfd_symbol_info (symbol, ret)
- asymbol *symbol;
- symbol_info *ret;
+bfd_symbol_info (asymbol *symbol, symbol_info *ret)
{
ret->type = bfd_decode_symclass (symbol);
@@ -750,7 +729,8 @@ FUNCTION
bfd_copy_private_symbol_data
SYNOPSIS
- bfd_boolean bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
+ bfd_boolean bfd_copy_private_symbol_data
+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
DESCRIPTION
Copy private symbol information from @var{isym} in the BFD
@@ -762,8 +742,8 @@ DESCRIPTION
Not enough memory exists to create private data for @var{osec}.
.#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-. BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-. (ibfd, isymbol, obfd, osymbol))
+. BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+. (ibfd, isymbol, obfd, osymbol))
.
*/
@@ -772,11 +752,10 @@ DESCRIPTION
version. It just uses BFD asymbol structures as mini symbols. */
long
-_bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
- bfd *abfd;
- bfd_boolean dynamic;
- PTR *minisymsp;
- unsigned int *sizep;
+_bfd_generic_read_minisymbols (bfd *abfd,
+ bfd_boolean dynamic,
+ void **minisymsp,
+ unsigned int *sizep)
{
long storage;
asymbol **syms = NULL;
@@ -791,7 +770,7 @@ _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
if (storage == 0)
return 0;
- syms = (asymbol **) bfd_malloc ((bfd_size_type) storage);
+ syms = bfd_malloc (storage);
if (syms == NULL)
goto error_return;
@@ -802,7 +781,7 @@ _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
if (symcount < 0)
goto error_return;
- *minisymsp = (PTR) syms;
+ *minisymsp = syms;
*sizep = sizeof (asymbol *);
return symcount;
@@ -818,11 +797,10 @@ _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep)
we just return the asymbol the minisymbol points to. */
asymbol *
-_bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym)
- bfd *abfd ATTRIBUTE_UNUSED;
- bfd_boolean dynamic ATTRIBUTE_UNUSED;
- const PTR minisym;
- asymbol *sym ATTRIBUTE_UNUSED;
+_bfd_generic_minisymbol_to_symbol (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_boolean dynamic ATTRIBUTE_UNUSED,
+ const void *minisym,
+ asymbol *sym ATTRIBUTE_UNUSED)
{
return *(asymbol **) minisym;
}
@@ -857,12 +835,10 @@ struct indexentry
/* Compare two indexentry structures. This is called via qsort. */
static int
-cmpindexentry (a, b)
- const PTR a;
- const PTR b;
+cmpindexentry (const void *a, const void *b)
{
- const struct indexentry *contestantA = (const struct indexentry *) a;
- const struct indexentry *contestantB = (const struct indexentry *) b;
+ const struct indexentry *contestantA = a;
+ const struct indexentry *contestantB = b;
if (contestantA->val < contestantB->val)
return -1;
@@ -903,17 +879,15 @@ struct stab_find_info
};
bfd_boolean
-_bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
- pfilename, pfnname, pline, pinfo)
- bfd *abfd;
- asymbol **symbols;
- asection *section;
- bfd_vma offset;
- bfd_boolean *pfound;
- const char **pfilename;
- const char **pfnname;
- unsigned int *pline;
- PTR *pinfo;
+_bfd_stab_section_find_nearest_line (bfd *abfd,
+ asymbol **symbols,
+ asection *section,
+ bfd_vma offset,
+ bfd_boolean *pfound,
+ const char **pfilename,
+ const char **pfnname,
+ unsigned int *pline,
+ void **pinfo)
{
struct stab_find_info *info;
bfd_size_type stabsize, strsize;
@@ -951,7 +925,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
#define VALOFF (8)
#define STABSIZE (12)
- info = (struct stab_find_info *) *pinfo;
+ info = *pinfo;
if (info != NULL)
{
if (info->stabsec == NULL || info->strsec == NULL)
@@ -972,7 +946,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
char *function_name;
bfd_size_type amt = sizeof *info;
- info = (struct stab_find_info *) bfd_zalloc (abfd, amt);
+ info = bfd_zalloc (abfd, amt);
if (info == NULL)
return FALSE;
@@ -987,15 +961,15 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
{
/* No stabs debugging information. Set *pinfo so that we
can return quickly in the info != NULL case above. */
- *pinfo = (PTR) info;
+ *pinfo = info;
return TRUE;
}
stabsize = info->stabsec->_raw_size;
strsize = info->strsec->_raw_size;
- info->stabs = (bfd_byte *) bfd_alloc (abfd, stabsize);
- info->strs = (bfd_byte *) bfd_alloc (abfd, strsize);
+ info->stabs = bfd_alloc (abfd, stabsize);
+ info->strs = bfd_alloc (abfd, strsize);
if (info->stabs == NULL || info->strs == NULL)
return FALSE;
@@ -1005,14 +979,14 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
(bfd_vma) 0, strsize))
return FALSE;
- /* If this is a relocateable object file, we have to relocate
+ /* If this is a relocatable object file, we have to relocate
the entries in .stab. This should always be simple 32 bit
relocations against symbols defined in this object file, so
this should be no big deal. */
reloc_size = bfd_get_reloc_upper_bound (abfd, info->stabsec);
if (reloc_size < 0)
return FALSE;
- reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
+ reloc_vector = bfd_malloc (reloc_size);
if (reloc_vector == NULL && reloc_size != 0)
return FALSE;
reloc_count = bfd_canonicalize_reloc (abfd, info->stabsec, reloc_vector,
@@ -1105,7 +1079,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
amt = info->indextablesize;
amt *= sizeof (struct indexentry);
- info->indextable = (struct indexentry *) bfd_alloc (abfd, amt);
+ info->indextable = bfd_alloc (abfd, amt);
if (info->indextable == NULL)
return FALSE;
@@ -1226,7 +1200,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
qsort (info->indextable, (size_t) i, sizeof (struct indexentry),
cmpindexentry);
- *pinfo = (PTR) info;
+ *pinfo = info;
}
/* We are passed a section relative offset. The offsets in the
@@ -1360,7 +1334,7 @@ _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound,
if (info->filename != NULL)
free (info->filename);
len = strlen (file_name) + 1;
- info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen + len);
+ info->filename = bfd_malloc (dirlen + len);
if (info->filename == NULL)
return FALSE;
memcpy (info->filename, directory_name, dirlen);
diff --git a/bfd/targets.c b/bfd/targets.c
index 5ccae2a..c3212a9 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -103,7 +103,7 @@ DESCRIPTION
someone wants to fix this and not break the above, please do.
.#define BFD_SEND(bfd, message, arglist) \
-. ((*((bfd)->xvec->message)) arglist)
+. ((*((bfd)->xvec->message)) arglist)
.
.#ifdef DEBUG_BFD_SEND
.#undef BFD_SEND
@@ -116,7 +116,7 @@ DESCRIPTION
For operations which index on the BFD format:
.#define BFD_SEND_FMT(bfd, message, arglist) \
-. (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
+. (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
.
.#ifdef DEBUG_BFD_SEND
.#undef BFD_SEND_FMT
@@ -203,264 +203,266 @@ DESCRIPTION
. {* Entries for byte swapping for data. These are different from the
. other entry points, since they don't take a BFD asthe first argument.
. Certain other handlers could do the same. *}
-. bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
-. void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
-. bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *));
-. void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *));
-. bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
-. void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
+. bfd_vma (*bfd_getx64) (const bfd_byte *);
+. bfd_signed_vma (*bfd_getx_signed_64) (const bfd_byte *);
+. void (*bfd_putx64) (bfd_vma, bfd_byte *);
+. bfd_vma (*bfd_getx32) (const bfd_byte *);
+. bfd_signed_vma (*bfd_getx_signed_32) (const bfd_byte *);
+. void (*bfd_putx32) (bfd_vma, bfd_byte *);
+. bfd_vma (*bfd_getx16) (const bfd_byte *);
+. bfd_signed_vma (*bfd_getx_signed_16) (const bfd_byte *);
+. void (*bfd_putx16) (bfd_vma, bfd_byte *);
.
. {* Byte swapping for the headers. *}
-. bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
-. void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
-. bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *));
-. void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *));
-. bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
-. bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
-. void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
+. bfd_vma (*bfd_h_getx64) (const bfd_byte *);
+. bfd_signed_vma (*bfd_h_getx_signed_64) (const bfd_byte *);
+. void (*bfd_h_putx64) (bfd_vma, bfd_byte *);
+. bfd_vma (*bfd_h_getx32) (const bfd_byte *);
+. bfd_signed_vma (*bfd_h_getx_signed_32) (const bfd_byte *);
+. void (*bfd_h_putx32) (bfd_vma, bfd_byte *);
+. bfd_vma (*bfd_h_getx16) (const bfd_byte *);
+. bfd_signed_vma (*bfd_h_getx_signed_16) (const bfd_byte *);
+. void (*bfd_h_putx16) (bfd_vma, bfd_byte *);
.
. {* Format dependent routines: these are vectors of entry points
. within the target vector structure, one for each format to check. *}
.
. {* Check the format of a file being read. Return a <<bfd_target *>> or zero. *}
-. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
+. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
.
. {* Set the format of a file being written. *}
-. bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
+. bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
.
. {* Write cached information into a file being written, at <<bfd_close>>. *}
-. bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
+. bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
.
The general target vector. These vectors are initialized using the
BFD_JUMP_TABLE macros.
.
. {* Generic entry points. *}
-Do not "beautify" the CONCAT* macro args. Traditional C will not
-remove whitespace added here, and thus will fail to concatenate
-the tokens.
.#define BFD_JUMP_TABLE_GENERIC(NAME) \
-.CONCAT2 (NAME,_close_and_cleanup), \
-.CONCAT2 (NAME,_bfd_free_cached_info), \
-.CONCAT2 (NAME,_new_section_hook), \
-.CONCAT2 (NAME,_get_section_contents), \
-.CONCAT2 (NAME,_get_section_contents_in_window)
+. NAME##_close_and_cleanup, \
+. NAME##_bfd_free_cached_info, \
+. NAME##_new_section_hook, \
+. NAME##_get_section_contents, \
+. NAME##_get_section_contents_in_window
.
. {* Called when the BFD is being closed to do any necessary cleanup. *}
-. bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *));
+. bfd_boolean (*_close_and_cleanup) (bfd *);
. {* Ask the BFD to free all cached information. *}
-. bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
+. bfd_boolean (*_bfd_free_cached_info) (bfd *);
. {* Called when a new section is created. *}
-. bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
+. bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
. {* Read the contents of a section. *}
. bfd_boolean (*_bfd_get_section_contents)
-. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+. (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
. bfd_boolean (*_bfd_get_section_contents_in_window)
-. PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type));
+. (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
.
. {* Entry points to copy private data. *}
.#define BFD_JUMP_TABLE_COPY(NAME) \
-.CONCAT2 (NAME,_bfd_copy_private_bfd_data), \
-.CONCAT2 (NAME,_bfd_merge_private_bfd_data), \
-.CONCAT2 (NAME,_bfd_copy_private_section_data), \
-.CONCAT2 (NAME,_bfd_copy_private_symbol_data), \
-.CONCAT2 (NAME,_bfd_set_private_flags), \
-.CONCAT2 (NAME,_bfd_print_private_bfd_data) \
+. NAME##_bfd_copy_private_bfd_data, \
+. NAME##_bfd_merge_private_bfd_data, \
+. NAME##_bfd_copy_private_section_data, \
+. NAME##_bfd_copy_private_symbol_data, \
+. NAME##_bfd_set_private_flags, \
+. NAME##_bfd_print_private_bfd_data
+.
. {* Called to copy BFD general private data from one object file
. to another. *}
-. bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
+. bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
. {* Called to merge BFD general private data from one object file
. to a common output file when linking. *}
-. bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
+. bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
. {* Called to copy BFD private section data from one object file
. to another. *}
. bfd_boolean (*_bfd_copy_private_section_data)
-. PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr));
+. (bfd *, sec_ptr, bfd *, sec_ptr);
. {* Called to copy BFD private symbol data from one symbol
. to another. *}
. bfd_boolean (*_bfd_copy_private_symbol_data)
-. PARAMS ((bfd *, asymbol *, bfd *, asymbol *));
+. (bfd *, asymbol *, bfd *, asymbol *);
. {* Called to set private backend flags. *}
-. bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
+. bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
.
. {* Called to print private BFD data. *}
-. bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
+. bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
.
. {* Core file entry points. *}
.#define BFD_JUMP_TABLE_CORE(NAME) \
-.CONCAT2 (NAME,_core_file_failing_command), \
-.CONCAT2 (NAME,_core_file_failing_signal), \
-.CONCAT2 (NAME,_core_file_matches_executable_p)
-. char * (*_core_file_failing_command) PARAMS ((bfd *));
-. int (*_core_file_failing_signal) PARAMS ((bfd *));
-. bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
+. NAME##_core_file_failing_command, \
+. NAME##_core_file_failing_signal, \
+. NAME##_core_file_matches_executable_p
+.
+. char * (*_core_file_failing_command) (bfd *);
+. int (*_core_file_failing_signal) (bfd *);
+. bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
.
. {* Archive entry points. *}
.#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
-.CONCAT2 (NAME,_slurp_armap), \
-.CONCAT2 (NAME,_slurp_extended_name_table), \
-.CONCAT2 (NAME,_construct_extended_name_table), \
-.CONCAT2 (NAME,_truncate_arname), \
-.CONCAT2 (NAME,_write_armap), \
-.CONCAT2 (NAME,_read_ar_hdr), \
-.CONCAT2 (NAME,_openr_next_archived_file), \
-.CONCAT2 (NAME,_get_elt_at_index), \
-.CONCAT2 (NAME,_generic_stat_arch_elt), \
-.CONCAT2 (NAME,_update_armap_timestamp)
-. bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
-. bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
+. NAME##_slurp_armap, \
+. NAME##_slurp_extended_name_table, \
+. NAME##_construct_extended_name_table, \
+. NAME##_truncate_arname, \
+. NAME##_write_armap, \
+. NAME##_read_ar_hdr, \
+. NAME##_openr_next_archived_file, \
+. NAME##_get_elt_at_index, \
+. NAME##_generic_stat_arch_elt, \
+. NAME##_update_armap_timestamp
+.
+. bfd_boolean (*_bfd_slurp_armap) (bfd *);
+. bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
. bfd_boolean (*_bfd_construct_extended_name_table)
-. PARAMS ((bfd *, char **, bfd_size_type *, const char **));
-. void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
+. (bfd *, char **, bfd_size_type *, const char **);
+. void (*_bfd_truncate_arname) (bfd *, const char *, char *);
. bfd_boolean (*write_armap)
-. PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
-. PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
-. bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
-.#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i))
-. bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
-. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
-. bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
+. (bfd *, unsigned int, struct orl *, unsigned int, int);
+. void * (*_bfd_read_ar_hdr_fn) (bfd *);
+. bfd * (*openr_next_archived_file) (bfd *, bfd *);
+.#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+. bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
+. int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+. bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
.
. {* Entry points used for symbols. *}
.#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
-.CONCAT2 (NAME,_get_symtab_upper_bound), \
-.CONCAT2 (NAME,_get_symtab), \
-.CONCAT2 (NAME,_make_empty_symbol), \
-.CONCAT2 (NAME,_print_symbol), \
-.CONCAT2 (NAME,_get_symbol_info), \
-.CONCAT2 (NAME,_bfd_is_local_label_name), \
-.CONCAT2 (NAME,_get_lineno), \
-.CONCAT2 (NAME,_find_nearest_line), \
-.CONCAT2 (NAME,_bfd_make_debug_symbol), \
-.CONCAT2 (NAME,_read_minisymbols), \
-.CONCAT2 (NAME,_minisymbol_to_symbol)
-. long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
-. long (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
-. struct symbol_cache_entry **));
+. NAME##_get_symtab_upper_bound, \
+. NAME##_get_symtab, \
+. NAME##_make_empty_symbol, \
+. NAME##_print_symbol, \
+. NAME##_get_symbol_info, \
+. NAME##_bfd_is_local_label_name, \
+. NAME##_get_lineno, \
+. NAME##_find_nearest_line, \
+. NAME##_bfd_make_debug_symbol, \
+. NAME##_read_minisymbols, \
+. NAME##_minisymbol_to_symbol
+.
+. long (*_bfd_get_symtab_upper_bound) (bfd *);
+. long (*_bfd_canonicalize_symtab)
+. (bfd *, struct symbol_cache_entry **);
. struct symbol_cache_entry *
-. (*_bfd_make_empty_symbol) PARAMS ((bfd *));
+. (*_bfd_make_empty_symbol) (bfd *);
. void (*_bfd_print_symbol)
-. PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type));
-.#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
+. (bfd *, void *, struct symbol_cache_entry *, bfd_print_symbol_type);
+.#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
. void (*_bfd_get_symbol_info)
-. PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *));
-.#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
-. bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
+. (bfd *, struct symbol_cache_entry *, symbol_info *);
+.#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+. bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
.
-. alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
+. alent * (*_get_lineno) (bfd *, struct symbol_cache_entry *);
. bfd_boolean (*_bfd_find_nearest_line)
-. PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
-. const char **, const char **, unsigned int *));
+. (bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
+. const char **, const char **, unsigned int *);
. {* Back-door to allow format-aware applications to create debug symbols
. while using BFD for everything else. Currently used by the assembler
. when creating COFF files. *}
. asymbol * (*_bfd_make_debug_symbol)
-. PARAMS ((bfd *, void *, unsigned long size));
+. (bfd *, void *, unsigned long size);
.#define bfd_read_minisymbols(b, d, m, s) \
. BFD_SEND (b, _read_minisymbols, (b, d, m, s))
. long (*_read_minisymbols)
-. PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *));
+. (bfd *, bfd_boolean, void **, unsigned int *);
.#define bfd_minisymbol_to_symbol(b, d, m, f) \
. BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
. asymbol * (*_minisymbol_to_symbol)
-. PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *));
+. (bfd *, bfd_boolean, const void *, asymbol *);
.
. {* Routines for relocs. *}
.#define BFD_JUMP_TABLE_RELOCS(NAME) \
-.CONCAT2 (NAME,_get_reloc_upper_bound), \
-.CONCAT2 (NAME,_canonicalize_reloc), \
-.CONCAT2 (NAME,_bfd_reloc_type_lookup)
-. long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
+. NAME##_get_reloc_upper_bound, \
+. NAME##_canonicalize_reloc, \
+. NAME##_bfd_reloc_type_lookup
+.
+. long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
. long (*_bfd_canonicalize_reloc)
-. PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **));
+. (bfd *, sec_ptr, arelent **, struct symbol_cache_entry **);
. {* See documentation on reloc types. *}
. reloc_howto_type *
-. (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
+. (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
.
. {* Routines used when writing an object file. *}
.#define BFD_JUMP_TABLE_WRITE(NAME) \
-.CONCAT2 (NAME,_set_arch_mach), \
-.CONCAT2 (NAME,_set_section_contents)
+. NAME##_set_arch_mach, \
+. NAME##_set_section_contents
+.
. bfd_boolean (*_bfd_set_arch_mach)
-. PARAMS ((bfd *, enum bfd_architecture, unsigned long));
+. (bfd *, enum bfd_architecture, unsigned long);
. bfd_boolean (*_bfd_set_section_contents)
-. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type));
+. (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
.
. {* Routines used by the linker. *}
.#define BFD_JUMP_TABLE_LINK(NAME) \
-.CONCAT2 (NAME,_sizeof_headers), \
-.CONCAT2 (NAME,_bfd_get_relocated_section_contents), \
-.CONCAT2 (NAME,_bfd_relax_section), \
-.CONCAT2 (NAME,_bfd_link_hash_table_create), \
-.CONCAT2 (NAME,_bfd_link_hash_table_free), \
-.CONCAT2 (NAME,_bfd_link_add_symbols), \
-.CONCAT2 (NAME,_bfd_link_just_syms), \
-.CONCAT2 (NAME,_bfd_final_link), \
-.CONCAT2 (NAME,_bfd_link_split_section), \
-.CONCAT2 (NAME,_bfd_gc_sections), \
-.CONCAT2 (NAME,_bfd_merge_sections), \
-.CONCAT2 (NAME,_bfd_discard_group)
-. int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean));
+. NAME##_sizeof_headers, \
+. NAME##_bfd_get_relocated_section_contents, \
+. NAME##_bfd_relax_section, \
+. NAME##_bfd_link_hash_table_create, \
+. NAME##_bfd_link_hash_table_free, \
+. NAME##_bfd_link_add_symbols, \
+. NAME##_bfd_link_just_syms, \
+. NAME##_bfd_final_link, \
+. NAME##_bfd_link_split_section, \
+. NAME##_bfd_gc_sections, \
+. NAME##_bfd_merge_sections, \
+. NAME##_bfd_discard_group
+.
+. int (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
. bfd_byte * (*_bfd_get_relocated_section_contents)
-. PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
-. bfd_byte *, bfd_boolean, struct symbol_cache_entry **));
+. (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+. bfd_byte *, bfd_boolean, struct symbol_cache_entry **);
.
. bfd_boolean (*_bfd_relax_section)
-. PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *));
+. (bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *);
.
. {* Create a hash table for the linker. Different backends store
. different information in this table. *}
. struct bfd_link_hash_table *
-. (*_bfd_link_hash_table_create) PARAMS ((bfd *));
+. (*_bfd_link_hash_table_create) (bfd *);
.
. {* Release the memory associated with the linker hash table. *}
-. void (*_bfd_link_hash_table_free)
-. PARAMS ((struct bfd_link_hash_table *));
+. void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
.
. {* Add symbols from this object file into the hash table. *}
-. bfd_boolean (*_bfd_link_add_symbols)
-. PARAMS ((bfd *, struct bfd_link_info *));
+. bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
.
. {* Indicate that we are only retrieving symbol values from this section. *}
-. void (*_bfd_link_just_syms)
-. PARAMS ((asection *, struct bfd_link_info *));
+. void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
.
. {* Do a link based on the link_order structures attached to each
. section of the BFD. *}
-. bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
+. bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
.
. {* Should this section be split up into smaller pieces during linking. *}
-. bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
+. bfd_boolean (*_bfd_link_split_section) (bfd *, struct sec *);
.
. {* Remove sections that are not referenced from the output. *}
-. bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
+. bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
.
. {* Attempt to merge SEC_MERGE sections. *}
-. bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
+. bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
.
. {* Discard members of a group. *}
-. bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
+. bfd_boolean (*_bfd_discard_group) (bfd *, struct sec *);
.
. {* Routines to handle dynamic symbols and relocs. *}
.#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
-.CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \
-.CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
-.CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
-.CONCAT2 (NAME,_canonicalize_dynamic_reloc)
+. NAME##_get_dynamic_symtab_upper_bound, \
+. NAME##_canonicalize_dynamic_symtab, \
+. NAME##_get_dynamic_reloc_upper_bound, \
+. NAME##_canonicalize_dynamic_reloc
+.
. {* Get the amount of memory required to hold the dynamic symbols. *}
-. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
+. long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
. {* Read in the dynamic symbols. *}
. long (*_bfd_canonicalize_dynamic_symtab)
-. PARAMS ((bfd *, struct symbol_cache_entry **));
+. (bfd *, struct symbol_cache_entry **);
. {* Get the amount of memory required to hold the dynamic relocs. *}
-. long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
+. long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
. {* Read in the dynamic relocs. *}
. long (*_bfd_canonicalize_dynamic_reloc)
-. PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
+. (bfd *, arelent **, struct symbol_cache_entry **);
.
A pointer to an alternative bfd_target in case the current one is not
@@ -475,7 +477,7 @@ to find an alternative output format that is suitable.
. {* Data for use by back-end routines, which isn't
. generic enough to belong in this structure. *}
-. PTR backend_data;
+. const void *backend_data;
.
.} bfd_target;
.
@@ -587,8 +589,6 @@ extern const bfd_target bfd_elf64_big_generic_vec;
extern const bfd_target bfd_elf64_bigmips_vec;
extern const bfd_target bfd_elf64_hppa_linux_vec;
extern const bfd_target bfd_elf64_hppa_vec;
-extern const bfd_target bfd_elf64_ia64_aix_big_vec;
-extern const bfd_target bfd_elf64_ia64_aix_little_vec;
extern const bfd_target bfd_elf64_ia64_big_vec;
extern const bfd_target bfd_elf64_ia64_hpux_big_vec;
extern const bfd_target bfd_elf64_ia64_little_vec;
@@ -741,6 +741,7 @@ extern const bfd_target ptrace_core_vec;
extern const bfd_target sco5_core_vec;
extern const bfd_target trad_core_vec;
+extern const bfd_target bfd_elf32_am33lin_vec;
static const bfd_target * const _bfd_target_vector[] = {
#ifdef SELECT_VECS
@@ -882,8 +883,6 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf64_bigmips_vec,
&bfd_elf64_hppa_linux_vec,
&bfd_elf64_hppa_vec,
- &bfd_elf64_ia64_aix_big_vec,
- &bfd_elf64_ia64_aix_little_vec,
&bfd_elf64_ia64_big_vec,
&bfd_elf64_ia64_hpux_big_vec,
&bfd_elf64_ia64_little_vec,
@@ -1059,6 +1058,7 @@ static const bfd_target * const _bfd_target_vector[] = {
&w65_vec,
&we32kcoff_vec,
&z8kcoff_vec,
+ &bfd_elf32_am33lin_vec,
#endif /* not SELECT_VECS */
/* Always support S-records, for convenience. */
@@ -1156,13 +1156,10 @@ static const struct targmatch bfd_target_match[] = {
{ NULL, NULL }
};
-static const bfd_target *find_target PARAMS ((const char *));
-
/* Find a target vector, given a name or configuration triplet. */
static const bfd_target *
-find_target (name)
- const char *name;
+find_target (const char *name)
{
const bfd_target * const *target;
const struct targmatch *match;
@@ -1203,8 +1200,7 @@ DESCRIPTION
*/
bfd_boolean
-bfd_set_default_target (name)
- const char *name;
+bfd_set_default_target (const char *name)
{
const bfd_target *target;
@@ -1240,9 +1236,7 @@ DESCRIPTION
*/
const bfd_target *
-bfd_find_target (target_name, abfd)
- const char *target_name;
- bfd *abfd;
+bfd_find_target (const char *target_name, bfd *abfd)
{
const char *targname;
const bfd_target *target;
@@ -1288,9 +1282,9 @@ DESCRIPTION
*/
const char **
-bfd_target_list ()
+bfd_target_list (void)
{
- int vec_length= 0;
+ int vec_length = 0;
bfd_size_type amt;
#if defined (HOST_HPPAHPUX) && ! defined (__STDC__)
/* The native compiler on the HP9000/700 has a bug which causes it
@@ -1304,7 +1298,7 @@ bfd_target_list ()
vec_length++;
amt = (vec_length + 1) * sizeof (char **);
- name_ptr = name_list = (const char **) bfd_malloc (amt);
+ name_ptr = name_list = bfd_malloc (amt);
if (name_list == NULL)
return NULL;
@@ -1323,9 +1317,9 @@ FUNCTION
bfd_seach_for_target
SYNOPSIS
- const bfd_target * bfd_search_for_target (int (* search_func)
- (const bfd_target *, void *),
- void *);
+ const bfd_target *bfd_search_for_target
+ (int (*search_func) (const bfd_target *, void *),
+ void *);
DESCRIPTION
Return a pointer to the first transfer vector in the list of
@@ -1336,15 +1330,14 @@ DESCRIPTION
*/
const bfd_target *
-bfd_search_for_target (search_func, data)
- int (* search_func) PARAMS ((const bfd_target * target, void * data));
- void * data;
+bfd_search_for_target (int (*search_func) (const bfd_target *, void *),
+ void *data)
{
- const bfd_target * const * target;
+ const bfd_target * const *target;
- for (target = bfd_target_vector; * target != NULL; target ++)
- if (search_func (* target, data))
- return * target;
+ for (target = bfd_target_vector; *target != NULL; target ++)
+ if (search_func (*target, data))
+ return *target;
return NULL;
}
diff --git a/bfd/versados.c b/bfd/versados.c
index 1301c58..ee0897a 100644
--- a/bfd/versados.c
+++ b/bfd/versados.c
@@ -1,5 +1,5 @@
/* BFD back-end for VERSAdos-E objects.
- Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002
+ Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
@@ -23,11 +23,11 @@
/*
SUBSECTION
- VERSAdos-E relocateable object file format
+ VERSAdos-E relocatable object file format
DESCRIPTION
- This module supports reading of VERSAdos relocateable
+ This module supports reading of VERSAdos relocatable
object files.
A VERSAdos file looks like contains
diff --git a/bfd/version.h b/bfd/version.h
index 775cc74..a6f5486 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,3 +1,3 @@
-#define BFD_VERSION_DATE 20030621
+#define BFD_VERSION_DATE 20030821
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_string@
diff --git a/bfd/vms.c b/bfd/vms.c
index c98e483..175dae0 100644
--- a/bfd/vms.c
+++ b/bfd/vms.c
@@ -1,6 +1,6 @@
/* vms.c -- BFD back-end for VAX (openVMS/VAX) and
EVAX (openVMS/Alpha) files.
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Klaus K"ampf (kkaempf@rmi.de)
@@ -132,7 +132,7 @@ static int vms_sizeof_headers
static bfd_byte *vms_bfd_get_relocated_section_contents
PARAMS ((bfd *abfd, struct bfd_link_info *link_info,
struct bfd_link_order *link_order, bfd_byte *data,
- bfd_boolean relocateable, asymbol **symbols));
+ bfd_boolean relocatable, asymbol **symbols));
static bfd_boolean vms_bfd_relax_section
PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info,
bfd_boolean *again));
@@ -1691,17 +1691,17 @@ vms_sizeof_headers (abfd, reloc)
static bfd_byte *
vms_bfd_get_relocated_section_contents (abfd, link_info, link_order, data,
- relocateable, symbols)
+ relocatable, symbols)
bfd *abfd ATTRIBUTE_UNUSED;
struct bfd_link_info *link_info ATTRIBUTE_UNUSED;
struct bfd_link_order *link_order ATTRIBUTE_UNUSED;
bfd_byte *data ATTRIBUTE_UNUSED;
- bfd_boolean relocateable ATTRIBUTE_UNUSED;
+ bfd_boolean relocatable ATTRIBUTE_UNUSED;
asymbol **symbols ATTRIBUTE_UNUSED;
{
#if VMS_DEBUG
vms_debug (1, "vms_bfd_get_relocated_section_contents(%p, %p, %p, %p, %s, %p)\n",
- abfd, link_info, link_order, data, (relocateable)?"True":"False", symbols);
+ abfd, link_info, link_order, data, (relocatable)?"True":"False", symbols);
#endif
return 0;
}
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c
index 0505c86..6f94029 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -1,5 +1,5 @@
/* POWER/PowerPC XCOFF linker support.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
@@ -2932,7 +2932,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
}
/* Garbage collect unused sections. */
- if (info->relocateable
+ if (info->relocatable
|| ! gc
|| hentry == NULL
|| (hentry->root.type != bfd_link_hash_defined
@@ -5294,7 +5294,7 @@ xcoff_link_input_bfd (finfo, input_bfd)
}
else
{
- if (! finfo->info->relocateable
+ if (! finfo->info->relocatable
&& (h->flags & XCOFF_DEF_DYNAMIC) == 0
&& (h->flags & XCOFF_IMPORT) == 0)
{
diff --git a/config-ml.in b/config-ml.in
index e227500..865275c 100644
--- a/config-ml.in
+++ b/config-ml.in
@@ -1,6 +1,32 @@
# Configure fragment invoked in the post-target section for subdirs
# wanting multilib support.
#
+# Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+#
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# Please report bugs to <gcc-bugs@gnu.org>
+# and send patches to <gcc-patches@gnu.org>.
+
# It is advisable to support a few --enable/--disable options to let the
# user select which libraries s/he really wants.
#
@@ -500,7 +526,7 @@ multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ]
cat > Multi.tem <<\EOF
-PWD=$${PWDCMD-pwd}
+PWD_COMMAND=$${PWDCMD-pwd}
# FIXME: There should be an @-sign in front of the `if'.
# Leave out until this is tested a bit more.
@@ -508,8 +534,8 @@ multi-do:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
- rootpre=`${PWD}`/; export rootpre; \
- srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \
+ rootpre=`${PWD_COMMAND}`/; export rootpre; \
+ srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \
lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \
compiler="$(CC)"; \
for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
@@ -546,7 +572,7 @@ multi-clean:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
- lib=`${PWD} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
+ lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
for dir in Makefile $(MULTIDIRS); do \
if [ -f ../$${dir}/$${lib}/Makefile ]; then \
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \
@@ -740,7 +766,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
fi
# find compiler flag corresponding to ${ml_dir}
- for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
+ for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
dir=`echo $i | sed -e 's/;.*$//'`
if [ "${dir}" = "${ml_dir}" ]; then
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`
diff --git a/config.if b/config.if
index c38b59c..2655bc3 100644
--- a/config.if
+++ b/config.if
@@ -3,7 +3,6 @@
# determine:
#
# 1. libstcxx_incdir: the interface name for libstdc++.
-# 2. libc_interface: the interface name for libc.
#
# Get the top level src dir.
@@ -36,53 +35,3 @@ if test -z "$gcc_version"; then
fi
libstdcxx_incdir=c++/${gcc_version}
-# The trickiest part is libc_interface.
-if [ -z "${libc_interface}" ]
-then
- case ${target_os} in
- *linux*libc1*|*linux*libc5*)
- case ${target_alias} in
- *alpha*|*powerpc*)
- libc_interface=-libc5.9-
- ;;
- *)
- libc_interface=-libc5-
- ;;
- esac
- ;;
- *linux*gnu*)
- # We have to work harder to figure it out.
- if [ ${target_alias} = ${build_alias} ]
- then
- dummy=if$$
- cat >$dummy.c <<EOF
-#include <features.h>
-main(argc, argv)
- int argc;
- char *argv[];
-{
- printf("%d\n", __GLIBC_MINOR__);
- return 0;
-}
-EOF
- ${CC-cc} $dummy.c -o $dummy 2>/dev/null
- if [ "$?" = 0 ]
- then
- libc_interface=-libc6.`./$dummy`-
- rm -f $dummy.c $dummy
- else
- # It should never happen.
- echo "Cannot find the GNU C library minor version number." >&2
- rm -f $dummy.c $dummy
- exit 1
- fi
- else
- # Cross compiling. Assume glibc 2.1.
- libc_interface=-libc6.1-
- fi
- ;;
- *)
- libc_interface=-
- ;;
- esac
-fi
diff --git a/config.sub b/config.sub
index 725707f..dfeed48 100755
--- a/config.sub
+++ b/config.sub
@@ -234,7 +234,7 @@ case $basic_machine in
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
- | ip2k \
+ | iq2000 | ip2k \
| m32r | m68000 | m68k | m88k | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
@@ -304,7 +304,7 @@ case $basic_machine in
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* \
+ | iq2000-* | ip2k-* \
| m32r-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \
diff --git a/config/ChangeLog b/config/ChangeLog
index 13d3c88..7a7605b 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,14 @@
+2003-07-07 Zack Weinberg <zack@codesourcery.com>
+
+ * gettext.m4: Delete all former contents.
+ (ZW_GNU_GETTEXT_SISTER_DIR): New macro.
+ * progtest.m4: New file.
+
+2003-07-04 Zack Weinberg <zack@codesourcery.com>
+
+ * gettext.m4: New file - copy of gettext.m4 from binutils
+ CVS, with added AC_ISC_POSIX macro from gcc/aclocal.m4.
+
2003-05-14 Kelley Cook <kelleycook@wideopenwest.com>
* acinclude.m4: Accept i[3456789]86 for machine type.
@@ -15,7 +26,7 @@
2002-12-28 Alexandre Oliva <aoliva@redhat.com>
* acx.m4: Name cache variables properly.
- (NCN_STRICT_CHECK_TOOL): If program is not found and
+ (NCN_STRICT_CHECK_TOOL): If program is not found and
value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2,
depending on whether build != host or not.
(NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix.
@@ -139,7 +150,7 @@
2000-07-21 Andrew Haley <aph@cygnus.com>
* mh-ia64pic: New file.
- * mt-ia64pic: New file.
+ * mt-ia64pic: New file.
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -207,8 +218,8 @@ Wed Nov 18 20:29:46 1998 Christopher Faylor <cgf@cygnus.com>
Mon Nov 2 15:15:33 1998 Geoffrey Noer <noer@cygnus.com>
- * mh-cygwin32: delete
- * mh-cygwin: was mh-cygwin32
+ * mh-cygwin32: delete
+ * mh-cygwin: was mh-cygwin32
1998-10-26 Syd Polk <spolk@cygnus.com>
@@ -235,7 +246,7 @@ Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org)
1998-05-29 Rob Savoye <rob@chinadoll.cygnus.com>
* acinclude.m4: New collection of generic autoconf macros.
-
+
Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com>
* mt-ospace: New file, support using -Os instead of -O2 to compile
@@ -278,8 +289,8 @@ Tue Mar 25 18:16:43 1997 Geoffrey Noer <noer@cygnus.com>
Wed Jan 8 19:56:43 1997 Geoffrey Noer <noer@cygnus.com>
- * mh-cygwin32: override CFLAGS so debug info isn't included
- in cygwin32-hosted tools by default
+ * mh-cygwin32: override CFLAGS so debug info isn't included
+ in cygwin32-hosted tools by default
Tue Dec 31 16:04:26 1996 Ian Lance Taylor <ian@cygnus.com>
@@ -377,7 +388,7 @@ Tue Nov 7 15:41:30 1995 Stan Shebs <shebs@andros.cygnus.com>
(CC_MWCPPC): Add -mpw_chars, disable warnings, add comments
explaining reasons for various flags.
(EXTRALIBS_PPC, EXTRALIBS_MWCPPC ): Put runtime library first.
-
+
Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-aix, mh-sun: Removed.
@@ -386,7 +397,7 @@ Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-sco, mh-solaris, mh-sysv4 (X11_EXTRA_LIBS): Define.
- * mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
+ * mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
hardcode location of X stuff here.
Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com>
@@ -412,7 +423,7 @@ Thu Jun 22 17:47:24 1995 Stan Shebs <shebs@andros.cygnus.com>
Mon Apr 10 12:29:48 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o,
- and ToolLibs.o.
+ and ToolLibs.o.
* mpw-mh-mpw (CC): Define ALMOST_STDC.
(CFLAGS): Remove ALMOST_STDC, -mc68881.
diff --git a/config/gettext.m4 b/config/gettext.m4
new file mode 100644
index 0000000..a704307
--- /dev/null
+++ b/config/gettext.m4
@@ -0,0 +1,66 @@
+# 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.
+
+AC_DEFUN(ZW_GNU_GETTEXT_SISTER_DIR,
+[# If we haven't got the data from the intl directory,
+# assume NLS is disabled.
+USE_NLS=no AC_SUBST(USE_NLS)
+LIBINTL= AC_SUBST(LIBINTL)
+LIBINTL_DEP= AC_SUBST(LIBINTL_DEP)
+INCINTL= AC_SUBST(INCINTL)
+XGETTEXT= AC_SUBST(XGETTEXT)
+GMSGFMT= AC_SUBST(GMSGFMT)
+POSUB= AC_SUBST(POSUB)
+if test -f ../intl/config.intl; then
+ . ../intl/config.intl
+fi
+AC_MSG_CHECKING([whether NLS is requested])
+if test x"$USE_NLS" != xyes; then
+ AC_MSG_RESULT(no)
+else
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the
+ user's native language is requested.])
+
+ AC_MSG_CHECKING(for catalogs to be installed)
+ # Look for .po and .gmo files in the source directory.
+ CATALOGS= AC_SUBST(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/!!" -e "s!\\\\.po!.gmo!"`
+ lang=`echo $cat | sed -e 's!po/!!' -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"
+ AC_MSG_RESULT($LINGUAS)
+fi])
diff --git a/config/progtest.m4 b/config/progtest.m4
new file mode 100644
index 0000000..8fe527c
--- /dev/null
+++ b/config/progtest.m4
@@ -0,0 +1,91 @@
+# progtest.m4 serial 3 (gettext-0.12)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff --git a/configure b/configure
index 1492a10..c63980c 100755
--- a/configure
+++ b/configure
@@ -658,6 +658,72 @@ test "$program_suffix" != NONE &&
test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+# Get 'install' or 'install-sh' and its variants.
+# 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
+# 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"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:675: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/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
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+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 "$ac_t""$INSTALL" 1>&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_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
# Autoconf M4 include file defining utility macros for complex Canadian
# cross builds.
@@ -728,8 +794,19 @@ progname=$0
# if PWD already has a value, it is probably wrong.
if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
-# Export original configure arguments for use by sub-configures.
-TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
+# Export original configure arguments for use by sub-configures. These
+# will be expanded once by make, and once by the shell, so they need to
+# have '$' quoted for make, and then each argument quoted for the shell.
+# What's more, the 'echo' below might expand backslashes.
+cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+tmp="'$progname'"
+for ac_arg ; do
+ tmp="$tmp '"`echo "$ac_arg" | sed -fconftestsed`
+done
+rm -f conftestsed
+TOPLEVEL_CONFIGURE_ARGUMENTS="$tmp"
moveifchange=${srcdir}/move-if-change
@@ -801,7 +878,7 @@ libgcj="target-libffi \
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
#
-target_libs="target-libiberty \
+target_libraries="target-libiberty \
target-libgloss \
target-newlib \
target-libstdc++-v3 \
@@ -809,10 +886,10 @@ target_libs="target-libiberty \
${libgcj} \
target-libobjc"
-# these tools are built using the target libs, and are intended to run only
-# in the target environment
+# these tools are built using the target libraries, and are intended to
+# run only in the target environment
#
-# note: any program that *uses* libraries that are in the "target_libs"
+# note: any program that *uses* libraries that are in the "target_libraries"
# list belongs in this list. those programs are also very likely
# candidates for the "native_only" list which follows
#
@@ -827,7 +904,7 @@ target_tools="target-examples target-groff target-gperf target-rda"
## ${target_configdirs} is directories we build using the target tools.
#
configdirs=`echo ${host_libs} ${host_tools}`
-target_configdirs=`echo ${target_libs} ${target_tools}`
+target_configdirs=`echo ${target_libraries} ${target_tools}`
# Only make build modules if build != host.
# This should be done more generally, but at the moment it doesn't matter.
@@ -854,7 +931,7 @@ else
is_cross_compiler=yes
fi
-# Find the build and target subdirs.
+# Find the build and target subdir names.
case ${build_alias} in
"") build_noncanonical=${build} ;;
*) build_noncanonical=${build_alias} ;;
@@ -878,24 +955,6 @@ host_subdir=.
target_subdir=${target_noncanonical}
-if test ! -d ${target_subdir} ; then
- if mkdir ${target_subdir} ; then true
- else
- echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
- exit 1
- fi
-fi
-
-if test x"${build_alias}" != x"${host}" ; then
- if test ! -d ${build_subdir} ; then
- if mkdir ${build_subdir} ; then true
- else
- echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
- exit 1
- fi
- fi
-fi
-
# Skipdirs are removed silently.
skipdirs=
# Noconfigdirs are removed loudly.
@@ -1020,6 +1079,10 @@ case "${target}" in
*-*-chorusos)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ powerpc-*-darwin*)
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs target-libobjc"
+ ;;
*-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
@@ -1082,6 +1145,9 @@ case "${target}" in
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ am33_2.0-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
sh-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
@@ -1140,22 +1206,22 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
;;
cris-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
;;
d30v-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
;;
fr30-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
;;
frv-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
h8300*-*-*)
- noconfigdirs="$noconfigdirs target-libgloss"
+ noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
;;
h8500-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
@@ -1179,6 +1245,9 @@ case "${target}" in
# build on HP-UX 10.20.
noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
;;
+ i960-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
+ ;;
ia64*-*-elf*)
# No gdb support yet.
noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
@@ -1256,6 +1325,9 @@ case "${target}" in
i[3456789]86-*-beos*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
;;
+ m32r-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
@@ -1389,6 +1461,9 @@ case "${target}" in
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ xtensa-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
ip2k-*-*)
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
@@ -1435,24 +1510,24 @@ enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/
# First scan to see if an enabled language requires some other language.
# We assume that a given config-lang.in will list all the language
# front ends it requires, even if some are required indirectly.
-for lang in ${srcdir}/gcc/*/config-lang.in ..
-do
- case $lang in
+for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
..) ;;
# The odd quoting in the next line works around
# an apparent bug in bash 1.12 on linux.
${srcdir}/gcc/[*]/config-lang.in) ;;
*)
- lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
- this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
- for other in $this_lang_requires
- do
+ # From the config-lang.in, get $language, $lang_requires
+ language=
+ lang_requires=
+ . ${lang_frag}
+ for other in ${lang_requires} ; do
case ,${enable_languages}, in
*,$other,*) ;;
*,all,*) ;;
- *,$lang_alias,*)
- echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2
- enable_languages="$enable_languages,$other"
+ *,$language,*)
+ echo " \`$other' language required by \`$language'; enabling" 1>&2
+ enable_languages="${enable_languages},${other}"
;;
esac
done
@@ -1460,35 +1535,44 @@ do
esac
done
-subdirs=
-for lang in ${srcdir}/gcc/*/config-lang.in ..
-do
- case $lang in
+for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
..) ;;
# The odd quoting in the next line works around
# an apparent bug in bash 1.12 on linux.
${srcdir}/gcc/[*]/config-lang.in) ;;
*)
- lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
- this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
- this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang`
- build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
- if test "x$lang_alias" = x
- then
- echo "$lang doesn't set \$language." 1>&2
+ # From the config-lang.in, get $language, $target_libs,
+ # $lang_dirs, and $build_by_default
+ language=
+ target_libs=
+ lang_dirs=
+ build_by_default=
+ . ${lang_frag}
+ if test "x$language" = x ; then
+ echo "${lang_frag} doesn't set \$language." 1>&2
exit 1
fi
- case ${build_by_default},${enable_languages}, in
- *,$lang_alias,*) add_this_lang=yes ;;
- no,*) add_this_lang=no ;;
- *,all,*) add_this_lang=yes ;;
+ case ,${enable_languages}, in
+ *,${language},*)
+ # Language was explicitly selected; include it.
+ add_this_lang=yes
+ ;;
+ *,all,*)
+ # 'all' was selected; include 'default' languages.
+ case ${build_by_default} in
+ no) add_this_lang=no ;;
+ *) add_this_lang=yes ;;
+ esac
+ ;;
*) add_this_lang=no ;;
esac
- if test x"${add_this_lang}" = xyes; then
- eval target_libs='"$target_libs "'\"$this_lang_libs\"
- else
- eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
- fi
+ case ${add_this_lang} in
+ no)
+ # Remove language-dependent dirs.
+ eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
+ ;;
+ esac
;;
esac
done
@@ -2431,20 +2515,24 @@ serialization_dependencies=serdep.tmp
# Base args. Strip norecursion, cache-file, srcdir, host, build,
# target and nonopt. These are the ones we might not want to pass
# down to subconfigures.
-baseargs=`echo " ${ac_configure_args} " | \
- sed -e 's/ --no[^ ]* / /' \
- -e 's/ --c[a-z-]*[= ][^ ]* / /' \
- -e 's/ --sr[a-z-]*[= ][^ ]* / /' \
- -e 's/ --ho[a-z-]*[= ][^ ]* / /' \
- -e 's/ --bu[a-z-]*[= ][^ ]* / /' \
- -e 's/ --t[a-z-]*[= ][^ ]* / /' \
- -e 's/ -cache-file[= ][^ ]* / /' \
- -e 's/ -srcdir[= ][^ ]* / /' \
- -e 's/ -host[= ][^ ]* / /' \
- -e 's/ -build[= ][^ ]* / /' \
- -e 's/ -target[= ][^ ]* / /' \
- -e "s/ [^' -][^ ]* / /" \
- -e 's/^ *//;s/ *$//'`
+cat <<\EOF_SED > conftestsed
+s/ --no[^ ]* / /
+s/ --c[a-z-]*[= ][^ ]* / /
+s/ --sr[a-z-]*[= ][^ ]* / /
+s/ --ho[a-z-]*[= ][^ ]* / /
+s/ --bu[a-z-]*[= ][^ ]* / /
+s/ --t[a-z-]*[= ][^ ]* / /
+s/ -cache-file[= ][^ ]* / /
+s/ -srcdir[= ][^ ]* / /
+s/ -host[= ][^ ]* / /
+s/ -build[= ][^ ]* / /
+s/ -target[= ][^ ]* / /
+s/ [^' -][^ ]* / /
+s/^ *//;s/ *$//
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+baseargs=`echo " ${ac_configure_args} " | sed -fconftestsed`
+rm -f conftestsed
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file. Multilibs are neither needed nor
@@ -2693,7 +2781,7 @@ test -n "$target_alias" && ncn_target_tool_prefix=$target_alias-
# Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2697: checking for $ac_word" >&5
+echo "configure:2785: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2726,7 +2814,7 @@ if test -z "$ac_cv_prog_AR" ; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2730: checking for $ac_word" >&5
+echo "configure:2818: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2765,7 +2853,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args.
set dummy ${ncn_tool_prefix}as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2769: checking for $ac_word" >&5
+echo "configure:2857: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2798,7 +2886,7 @@ if test -z "$ac_cv_prog_AS" ; then
# Extract the first word of "as", so it can be a program name with args.
set dummy as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2802: checking for $ac_word" >&5
+echo "configure:2890: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2837,7 +2925,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ncn_tool_prefix}dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2841: checking for $ac_word" >&5
+echo "configure:2929: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2870,7 +2958,7 @@ if test -z "$ac_cv_prog_DLLTOOL" ; then
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2874: checking for $ac_word" >&5
+echo "configure:2962: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2909,7 +2997,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2913: checking for $ac_word" >&5
+echo "configure:3001: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2942,7 +3030,7 @@ if test -z "$ac_cv_prog_LD" ; then
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2946: checking for $ac_word" >&5
+echo "configure:3034: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2981,7 +3069,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args.
set dummy ${ncn_tool_prefix}nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2985: checking for $ac_word" >&5
+echo "configure:3073: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3014,7 +3102,7 @@ if test -z "$ac_cv_prog_NM" ; then
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3018: checking for $ac_word" >&5
+echo "configure:3106: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3053,7 +3141,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3057: checking for $ac_word" >&5
+echo "configure:3145: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3086,7 +3174,7 @@ if test -z "$ac_cv_prog_RANLIB" ; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3090: checking for $ac_word" >&5
+echo "configure:3178: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3125,7 +3213,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args.
set dummy ${ncn_tool_prefix}windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3129: checking for $ac_word" >&5
+echo "configure:3217: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3158,7 +3246,7 @@ if test -z "$ac_cv_prog_WINDRES" ; then
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3162: checking for $ac_word" >&5
+echo "configure:3250: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3197,7 +3285,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args.
set dummy ${ncn_tool_prefix}objcopy; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3201: checking for $ac_word" >&5
+echo "configure:3289: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3230,7 +3318,7 @@ if test -z "$ac_cv_prog_OBJCOPY" ; then
# Extract the first word of "objcopy", so it can be a program name with args.
set dummy objcopy; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3234: checking for $ac_word" >&5
+echo "configure:3322: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3269,7 +3357,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ncn_tool_prefix}objdump; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3273: checking for $ac_word" >&5
+echo "configure:3361: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3302,7 +3390,7 @@ if test -z "$ac_cv_prog_OBJDUMP" ; then
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3306: checking for $ac_word" >&5
+echo "configure:3394: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3350,7 +3438,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3354: checking for $ac_word" >&5
+echo "configure:3442: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3383,7 +3471,7 @@ if test -z "$ac_cv_prog_AR_FOR_TARGET" ; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3387: checking for $ac_word" >&5
+echo "configure:3475: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3422,7 +3510,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3426: checking for $ac_word" >&5
+echo "configure:3514: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3455,7 +3543,7 @@ if test -z "$ac_cv_prog_AS_FOR_TARGET" ; then
# Extract the first word of "as", so it can be a program name with args.
set dummy as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3459: checking for $ac_word" >&5
+echo "configure:3547: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3494,7 +3582,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3498: checking for $ac_word" >&5
+echo "configure:3586: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3527,7 +3615,7 @@ if test -z "$ac_cv_prog_DLLTOOL_FOR_TARGET" ; then
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3531: checking for $ac_word" >&5
+echo "configure:3619: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3566,7 +3654,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3570: checking for $ac_word" >&5
+echo "configure:3658: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3599,7 +3687,7 @@ if test -z "$ac_cv_prog_LD_FOR_TARGET" ; then
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3603: checking for $ac_word" >&5
+echo "configure:3691: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3638,7 +3726,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3642: checking for $ac_word" >&5
+echo "configure:3730: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3671,7 +3759,7 @@ if test -z "$ac_cv_prog_NM_FOR_TARGET" ; then
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3675: checking for $ac_word" >&5
+echo "configure:3763: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3710,7 +3798,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3714: checking for $ac_word" >&5
+echo "configure:3802: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3743,7 +3831,7 @@ if test -z "$ac_cv_prog_RANLIB_FOR_TARGET" ; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3747: checking for $ac_word" >&5
+echo "configure:3835: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3782,7 +3870,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3786: checking for $ac_word" >&5
+echo "configure:3874: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3815,7 +3903,7 @@ if test -z "$ac_cv_prog_WINDRES_FOR_TARGET" ; then
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3819: checking for $ac_word" >&5
+echo "configure:3907: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3882,7 +3970,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:3886: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:3974: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@@ -3969,34 +4057,15 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
-t quote
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output. A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.
@@ -4033,6 +4102,7 @@ do
done
ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
@@ -4081,6 +4151,9 @@ s%@build_alias@%$build_alias%g
s%@build_cpu@%$build_cpu%g
s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@TOPLEVEL_CONFIGURE_ARGUMENTS@%$TOPLEVEL_CONFIGURE_ARGUMENTS%g
s%@build_subdir@%$build_subdir%g
s%@host_subdir@%$host_subdir%g
@@ -4246,6 +4319,10 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
echo creating "$ac_file"
rm -f "$ac_file"
@@ -4261,6 +4338,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*
diff --git a/configure.in b/configure.in
index bdc08b2..5c461fc 100644
--- a/configure.in
+++ b/configure.in
@@ -23,6 +23,9 @@ AC_PREREQ(2.13)
AC_CANONICAL_SYSTEM
AC_ARG_PROGRAM
+# Get 'install' or 'install-sh' and its variants.
+AC_PROG_INSTALL
+
sinclude(config/acx.m4)
### we might need to use some other shell than /bin/sh for running subshells
@@ -63,8 +66,19 @@ progname=$0
# if PWD already has a value, it is probably wrong.
if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
-# Export original configure arguments for use by sub-configures.
-TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
+# Export original configure arguments for use by sub-configures. These
+# will be expanded once by make, and once by the shell, so they need to
+# have '$' quoted for make, and then each argument quoted for the shell.
+# What's more, the 'echo' below might expand backslashes.
+cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+tmp="'$progname'"
+for ac_arg ; do
+ tmp="$tmp '"`echo "$ac_arg" | sed -fconftestsed`
+done
+rm -f conftestsed
+TOPLEVEL_CONFIGURE_ARGUMENTS="$tmp"
AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
moveifchange=${srcdir}/move-if-change
@@ -136,7 +150,7 @@ libgcj="target-libffi \
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
#
-target_libs="target-libiberty \
+target_libraries="target-libiberty \
target-libgloss \
target-newlib \
target-libstdc++-v3 \
@@ -144,10 +158,10 @@ target_libs="target-libiberty \
${libgcj} \
target-libobjc"
-# these tools are built using the target libs, and are intended to run only
-# in the target environment
+# these tools are built using the target libraries, and are intended to
+# run only in the target environment
#
-# note: any program that *uses* libraries that are in the "target_libs"
+# note: any program that *uses* libraries that are in the "target_libraries"
# list belongs in this list. those programs are also very likely
# candidates for the "native_only" list which follows
#
@@ -162,7 +176,7 @@ target_tools="target-examples target-groff target-gperf target-rda"
## ${target_configdirs} is directories we build using the target tools.
#
configdirs=`echo ${host_libs} ${host_tools}`
-target_configdirs=`echo ${target_libs} ${target_tools}`
+target_configdirs=`echo ${target_libraries} ${target_tools}`
# Only make build modules if build != host.
# This should be done more generally, but at the moment it doesn't matter.
@@ -189,27 +203,9 @@ else
is_cross_compiler=yes
fi
-# Find the build and target subdirs.
+# Find the build and target subdir names.
GCC_TOPLEV_SUBDIRS
-if test ! -d ${target_subdir} ; then
- if mkdir ${target_subdir} ; then true
- else
- echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
- exit 1
- fi
-fi
-
-if test x"${build_alias}" != x"${host}" ; then
- if test ! -d ${build_subdir} ; then
- if mkdir ${build_subdir} ; then true
- else
- echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
- exit 1
- fi
- fi
-fi
-
# Skipdirs are removed silently.
skipdirs=
# Noconfigdirs are removed loudly.
@@ -257,7 +253,8 @@ esac
# If both --with-headers and --with-libs are specified, default to
# --without-newlib.
-if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
+if test x"${with_headers}" != x && test x"${with_headers} != xno \
+ && test x"${with_libs}" != x && test x"${with_libs} != xno ; then
if test x"${with_newlib}" = x ; then
with_newlib=no
fi
@@ -334,6 +331,10 @@ case "${target}" in
*-*-chorusos)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ powerpc-*-darwin*)
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs target-libobjc"
+ ;;
*-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
@@ -396,6 +397,9 @@ case "${target}" in
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ am33_2.0-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
sh-*-linux*)
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
@@ -454,22 +458,22 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
;;
cris-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
;;
d30v-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
;;
fr30-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
;;
frv-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
h8300*-*-*)
- noconfigdirs="$noconfigdirs target-libgloss"
+ noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
;;
h8500-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
@@ -493,6 +497,9 @@ case "${target}" in
# build on HP-UX 10.20.
noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
;;
+ i960-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj} gdb"
+ ;;
ia64*-*-elf*)
# No gdb support yet.
noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
@@ -570,6 +577,9 @@ case "${target}" in
i[[3456789]]86-*-beos*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
;;
+ m32r-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
@@ -703,6 +713,9 @@ case "${target}" in
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
+ xtensa-*-*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
ip2k-*-*)
noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
;;
@@ -749,24 +762,24 @@ enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e
# First scan to see if an enabled language requires some other language.
# We assume that a given config-lang.in will list all the language
# front ends it requires, even if some are required indirectly.
-for lang in ${srcdir}/gcc/*/config-lang.in ..
-do
- case $lang in
+for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
..) ;;
# The odd quoting in the next line works around
# an apparent bug in bash 1.12 on linux.
${srcdir}/gcc/[[*]]/config-lang.in) ;;
*)
- lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang`
- this_lang_requires=`sed -n -e 's,^lang_requires=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_requires=\([[^ ]]*\).*$,\1,p' $lang`
- for other in $this_lang_requires
- do
+ # From the config-lang.in, get $language, $lang_requires
+ language=
+ lang_requires=
+ . ${lang_frag}
+ for other in ${lang_requires} ; do
case ,${enable_languages}, in
*,$other,*) ;;
*,all,*) ;;
- *,$lang_alias,*)
- echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2
- enable_languages="$enable_languages,$other"
+ *,$language,*)
+ echo " \`$other' language required by \`$language'; enabling" 1>&2
+ enable_languages="${enable_languages},${other}"
;;
esac
done
@@ -774,35 +787,44 @@ do
esac
done
-subdirs=
-for lang in ${srcdir}/gcc/*/config-lang.in ..
-do
- case $lang in
+for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
..) ;;
# The odd quoting in the next line works around
# an apparent bug in bash 1.12 on linux.
${srcdir}/gcc/[[*]]/config-lang.in) ;;
*)
- lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang`
- this_lang_libs=`sed -n -e 's,^target_libs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^target_libs=\([[^ ]]*\).*$,\1,p' $lang`
- this_lang_dirs=`sed -n -e 's,^lang_dirs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_dirs=\([[^ ]]*\).*$,\1,p' $lang`
- build_by_default=`sed -n -e 's,^build_by_default=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^build_by_default=\([[^ ]]*\).*$,\1,p' $lang`
- if test "x$lang_alias" = x
- then
- echo "$lang doesn't set \$language." 1>&2
+ # From the config-lang.in, get $language, $target_libs,
+ # $lang_dirs, and $build_by_default
+ language=
+ target_libs=
+ lang_dirs=
+ build_by_default=
+ . ${lang_frag}
+ if test "x$language" = x ; then
+ echo "${lang_frag} doesn't set \$language." 1>&2
exit 1
fi
- case ${build_by_default},${enable_languages}, in
- *,$lang_alias,*) add_this_lang=yes ;;
- no,*) add_this_lang=no ;;
- *,all,*) add_this_lang=yes ;;
+ case ,${enable_languages}, in
+ *,${language},*)
+ # Language was explicitly selected; include it.
+ add_this_lang=yes
+ ;;
+ *,all,*)
+ # 'all' was selected; include 'default' languages.
+ case ${build_by_default} in
+ no) add_this_lang=no ;;
+ *) add_this_lang=yes ;;
+ esac
+ ;;
*) add_this_lang=no ;;
esac
- if test x"${add_this_lang}" = xyes; then
- eval target_libs='"$target_libs "'\"$this_lang_libs\"
- else
- eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
- fi
+ case ${add_this_lang} in
+ no)
+ # Remove language-dependent dirs.
+ eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
+ ;;
+ esac
;;
esac
done
@@ -916,7 +938,7 @@ copy_dirs=
# Handle --with-headers=XXX. If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include.
-if test x"${with_headers}" != x ; then
+if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
if test x${is_cross_compiler} = xno ; then
echo 1>&2 '***' --with-headers is only supported when cross compiling
exit 1
@@ -933,7 +955,7 @@ fi
# Handle --with-libs=XXX. If the value is not "yes", the contents of
# the name directories are copied to $(tooldir)/lib. Multiple directories
# are permitted.
-if test x"${with_libs}" != x ; then
+if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
if test x${is_cross_compiler} = xno ; then
echo 1>&2 '***' --with-libs is only supported when cross compiling
exit 1
@@ -1744,20 +1766,24 @@ AC_SUBST_FILE(serialization_dependencies)
# Base args. Strip norecursion, cache-file, srcdir, host, build,
# target and nonopt. These are the ones we might not want to pass
# down to subconfigures.
-baseargs=`echo " ${ac_configure_args} " | \
- sed -e 's/ --no[[^ ]]* / /' \
- -e 's/ --c[[a-z-]]*[[= ]][[^ ]]* / /' \
- -e 's/ --sr[[a-z-]]*[[= ]][[^ ]]* / /' \
- -e 's/ --ho[[a-z-]]*[[= ]][[^ ]]* / /' \
- -e 's/ --bu[[a-z-]]*[[= ]][[^ ]]* / /' \
- -e 's/ --t[[a-z-]]*[[= ]][[^ ]]* / /' \
- -e 's/ -cache-file[[= ]][[^ ]]* / /' \
- -e 's/ -srcdir[[= ]][[^ ]]* / /' \
- -e 's/ -host[[= ]][[^ ]]* / /' \
- -e 's/ -build[[= ]][[^ ]]* / /' \
- -e 's/ -target[[= ]][[^ ]]* / /' \
- -e "s/ [[^' -][^ ]*] / /" \
- -e 's/^ *//;s/ *$//'`
+cat <<\EOF_SED > conftestsed
+s/ --no[[^ ]]* / /
+s/ --c[[a-z-]]*[[= ]][[^ ]]* / /
+s/ --sr[[a-z-]]*[[= ]][[^ ]]* / /
+s/ --ho[[a-z-]]*[[= ]][[^ ]]* / /
+s/ --bu[[a-z-]]*[[= ]][[^ ]]* / /
+s/ --t[[a-z-]]*[[= ]][[^ ]]* / /
+s/ -cache-file[[= ]][[^ ]]* / /
+s/ -srcdir[[= ]][[^ ]]* / /
+s/ -host[[= ]][[^ ]]* / /
+s/ -build[[= ]][[^ ]]* / /
+s/ -target[[= ]][[^ ]]* / /
+s/ [[^' -][^ ]*] / /
+s/^ *//;s/ *$//
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+baseargs=`echo " ${ac_configure_args} " | sed -fconftestsed`
+rm -f conftestsed
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file. Multilibs are neither needed nor
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index ddf23b5..14e5299 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,13 @@
+2003-08-21 Nick Clifton <nickc@redhat.com>
+
+ * frv.cpu (mbtoh): Replace input parameter to u-media-dual-expand
+ and u-media-dual-btoh with output parameter.
+ (cmbtoh): Add profiling hack.
+
+2003-08-19 Michael Snyder <msnyder@redhat.com>
+
+ * frv.cpu: Fix typo, Frintkeven -> FRintkeven
+
2003-06-10 Doug Evans <dje@sebabeach.org>
* frv.cpu: Add IDOC attribute.
diff --git a/cpu/frv.cpu b/cpu/frv.cpu
index efe3b98..86eb067 100644
--- a/cpu/frv.cpu
+++ b/cpu/frv.cpu
@@ -6984,11 +6984,11 @@
((fr400 (unit u-media-1-quad
(in FRinti FRintieven)
(in FRintj FRintjeven)
- (out FRintk Frintkeven)))
+ (out FRintk FRintkeven)))
(fr500 (unit u-media-quad-arith
(in FRinti FRintieven)
(in FRintj FRintjeven)
- (out FRintk Frintkeven))))
+ (out FRintk FRintkeven))))
)
)
@@ -7010,11 +7010,11 @@
((fr400 (unit u-media-1-quad
(in FRinti FRintieven)
(in FRintj FRintjeven)
- (out FRintk Frintkeven)))
+ (out FRintk FRintkeven)))
(fr500 (unit u-media-quad-arith
(in FRinti FRintieven)
(in FRintj FRintjeven)
- (out FRintk Frintkeven))))
+ (out FRintk FRintkeven))))
)
)
@@ -7962,9 +7962,9 @@
(set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven))
(mbtoh-semantics 1))
((fr400 (unit u-media-dual-expand
- (in FRinti FRintieven)))
+ (out FRintk FRintkeven)))
(fr500 (unit u-media-dual-btoh
- (in FRinti FRintieven))))
+ (out FRintk FRintkeven))))
)
(dni cmbtoh
@@ -7972,7 +7972,11 @@
((UNIT FM01) (FR500-MAJOR M-2) (FR400-MAJOR M-2) CONDITIONAL)
"cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond"
(+ pack FRintkeven OP_77 (FRi-null) CCi cond OPE4_0 FRintj)
- (mbtoh-semantics (eq CCi (or cond 2)))
+ (sequence ()
+ ; hack to get these referenced for profiling
+ (set FRintj (c-raw-call SI "frv_ref_SI" FRintj))
+ (set FRintkeven (c-raw-call SI "frv_ref_SI" FRintkeven))
+ (mbtoh-semantics (eq CCi (or cond 2))))
((fr400 (unit u-media-dual-expand
(out FRintk FRintkeven)))
(fr500 (unit u-media-dual-btoh
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 29591f7..eedfad0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,8 +1,471 @@
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.h (struct gdbarch_tdep): New member FLOAT_ARGLAST_REG.
+ * sh-tdep.c (sh_gdbarch_init): For sh2e, sh3e, and sh4, set
+ FLOAT_ARG0_REGNUM and FLOAT_ARGLAST_REGNUM, to be used for
+ argument passing.
+ (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu): New
+ functions, replace sh_push_dummy_call.
+ (sh_gdbarch_init): Set push_dummy_call to one of new methods.
+
+2003-08-20 Michael Chastain <mec@shout.net>
+
+ * gdbtypes.h (struct main_type): Rearrange to save space.
+
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+
+ * trad-frame.c: Comment typo fix.
+
+2003-08-20 Michael Snyder <msnyder@redhat.com>
+ Kevin Buettner <kevinb@redhat.com>
+
+ * frv-tdep.c (gdb_string.h, frame.h, trad-frame.h): Include.
+ (frv_frame_init_saved_regs): Add declaration.
+ (frame_extra_info): Add new field ``saved_regs''.
+ (frv_frame_chain, frv_frame_saved_pc, frv_analyze_prologue)
+ (frv_skip_prologue, frv_init_extra_frame_info, frv_pop_frame_regular):
+ Update frame related code.
+ (frv_extract_struct_value_address): Adjust formatting.
+ * Makefile.in (frv-tdep.o): Update dependencies.
+ * config/frv/tm-frv.h (target_insert_watchpoint)
+ (target_remove_watchpoint, target_insert_hw_breakpoint)
+ (target_remove_hw_breakpoint): Delete these macros.
+ (remote_insert_watchpoint, remote_remove_watchpoint)
+ (remote_insert_hw_watchpoint, remote_remove_hw_watchpoint): Remove
+ these declarations.
+
+2003-08-20 Michael Chastain <mec@shout.net>
+
+ * defs.h (ENUM_BITFIELD): New macro.
+ * symtab.h (ENUM_BITFIELD): Use it.
+ (BYTE_BITFIELD): Remove old macro, which was already disabled.
+
+2003-08-19 Shrinivas Atre <shrinivasa@kpitcummins.com>
+
+ * MAINTAINERS (write after approval): Add myself.
+
+2003-08-18 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FRAME_RED_ZONE_SIZE): New architecture method.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * infcall.c (call_function_by_hand): Adjust the SP by
+ frame_red_zone_size before allocating any stack space.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Set "frame_red_zone_size".
+ * x86-64-tdep.c (x86_64_frame_align): New function.
+ (x86_64_init_abi): Set "frame_red_zone_size" and "frame_align".
+
+ * x86-64-tdep.c (x86_64_push_arguments): Revert 2003-08-07 change.
+ Remove code adjusting SP so that it skips over the Red Zone.
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * NEWS (New native configurations): Mention FreeBSD/amd64.
+
+2003-08-18 Andrew Cagney <cagney@redhat.com>
+
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Do not set
+ "dwarf2_build_frame_info". Append "m68k_frame_sniffer" instead of
+ "m68k_frame_p".
+ (m68hc11_frame_sniffer): Replace "m68hc11_frame_p".
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.c (x86_64_dwarf_regmap): Remove trailing whitespace.
+
+2003-08-18 Michal Ludvig <mludvig@suse.cz>
+
+ * config/i386/nm-x86-64linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR):
+ Define.
+ * i386-linux-nat.c: Include "linux-nat.h".
+ (child_post_startup_inferior): New function.
+
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_analyze_register_saves): Handle register saves
+ at the start of a frameless function. This probably fixes PR
+ backtrace/1338.
+
+2003-08-17 Michael Chastain <mec@shout.net>
+
+ * symfile.c (find_sym_fns): Remove special case for apollo target.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * linux-nat.c (PTRACE_O_TRACEVFORKDONE, PTRACE_O_TRACEEXIT): Define.
+ (PTRACE_EVENT_VFORKDONE, PTRACE_EVENT_EXIT): Define.
+ (linux_parent_pid, linux_supports_tracevforkdone_flag): New variable.
+ (linux_test_for_tracefork): Set linux_supports_tracevforkdone_flag.
+ (linux_supports_tracevforkdone): New function.
+ (linux_enable_event_reporting): Enable TRACEVFORK, TRACEEXEC, and
+ TRACEVFORKDONE.
+ (child_follow_fork): Handle vfork.
+ (linux_handle_extended_wait): Likewise. Also handle exec.
+ (child_insert_vfork_catchpoint, child_insert_exec_catchpoint): Enable.
+ * NEWS: Mention fork tracing.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * lin-lwp.c (child_wait): Call linux_record_stopped_pid.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (i386-linux-nat.o): Update dependencies.
+ * config/i386/nm-linux.h (LINUX_CHILD_POST_STARTUP_INFERIOR): Define.
+ * config/nm-linux.h (CHILD_POST_STARTUP_INFERIOR, CHILD_POST_ATTACH)
+ (CHILD_FOLLOW_FORK, KILL_INFERIOR): Define.
+ * i386-linux-nat.c: Include "linux-nat.h".
+ (child_post_startup_inferior): New function.
+ * i386-nat.c (child_post_startup_inferior): Wrap in #ifdef.
+ * infptrace.c (kill_inferior): Wrap in #ifdef.
+ * lin-lwp.c (lin_lwp_attach_lwp): Call child_post_attach after
+ attaching to each LWP.
+ (child_wait, lin_lwp_wait): Call linux_handle_extended_wait.
+ (init_lin_lwp_ops): Fill in some more operations.
+ * linux-nat.h (linux_enable_event_reporting)
+ (linux_handle_extended_wait, linux_child_post_startup_inferior): New
+ prototypes.
+ * linux-nat.c (linux_enable_event_reporting): New function.
+ (child_post_attach, linux_child_post_startup_inferior)
+ (child_post_startup_inferior, child_follow_fork)
+ (linux_handle_extended_wait, kill_inferior): New functions.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Delete all #if not GDB_MULTI_ARCH code.
+ * gdbarch.h, gdbarch.c: Re-generate.
+
+2003-08-16 Mark Kettenis <kettenis@gnu.org>
+
+ * config/alpha/nm-fbsd.h (SVR4_SHARED_LIBS): Remove define.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * NEWS: Mention that "set prompt-escape-char" was deleted.
+ * top.c (get_prompt_1): Delete function.
+ (gdb_prompt_escape):
+ (init_main): Do not clear "gdb_prompt_escape". Delete "set
+ prompt-escape-char" command.
+ (MAX_PROMPT_SIZE): Delete macro.
+ (get_prompt): Simplify, do not call get_prompt_1.
+
+2003-08-16 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (printcmd.o, valprint.o): Do not try to build with
+ -Werror. -Wformat-nonliteral problems.
+
+2003-08-15 J. Brobecker <brobecker@gnat.com>
+
+ Further multiarching work mostly for hppa64-*-hpux11:
+ * hppa-tdep.h: New file.
+ * hppa-tdep.c: #include hppa-tdep.c.
+ (hppa32_num_regs): Renamed from hppa_num_regs.
+ (hppa64_num_regs): New constant.
+ (hppa64_call_dummy_breakpoint_offset): New constant.
+ (hppa32_call_dummy_length): New constant.
+ (hppa64_call_dummy_length): New constant.
+ (hppa32_stack_align): Make name 32bit explicit.
+ (hppa32_register_virtual_type): Likewise.
+ (hppa32_extract_return_value): Likewise.
+ (hppa32_use_struct_convention): Likewise.
+ (hppa32_store_return_value): Likewise.
+ (hppa64_register_virtual_type): New function.
+ (hppa64_extract_return_value): New function.
+ (hppa64_use_struct_convention): New function.
+ (hppa64_store_return_value): New function.
+ (hppa_frame_locals_address): Remove declaration, function does
+ not exist anymore.
+ (hppa_register_byte): Add support for PA64 ABI.
+ (hppa_gdbarch_init): Add support for PA64 ABI.
+ * hppa-hpux-tdep.c (hppa32_hpux_frame_saved_pc_in_sigtramp):
+ Make name 32bit explicit.
+ (hppa32_hpux_frame_base_before_sigtramp): Likewise.
+ (hppa32_hpux_frame_find_saved_regs_in_sigtramp): Likewise.
+ (hppa64_hpux_frame_saved_pc_in_sigtramp): New function.
+ (hppa64_hpux_frame_base_before_sigtramp): New function.
+ (hppa64_hpux_frame_find_saved_regs_in_sigtramp): New function.
+ * config/pa/tm-hppa64.h: Remove macros that are no longer
+ necessary now that the gdbarch vector is properly setup.
+ Transform some macros into function calls. Some minor cleanup.
+ * config/pa/tm-hppah.h: Update function calls in macros
+ following the function renaming in hppa-hpux-tdep.c.
+ * Makefile.in (hppa_tdep_h): New variable.
+ (hppa-tdep.o): Add dependency over hppa_tdep_h.
+
+2003-08-14 Michael Snyder <msnyder@redhat.com>
+
+ * disasm.c (gdb_disassemble_info): Set info->insn_sets to zero.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-hpux-tdep.c (_initialize_hppa_hpux_tdep): Use the correct
+ bfd arch_info when registering the GDB_OSABI_HPUX_ELF initialization
+ routine.
+
+2003-08-13 Michael Snyder <msnyder@redhat.com>
+
+ * frv-tdep.c (frv_push_arguments): Use deprecated ftype.
+ (frv_saved_pc_after_call): Use deprecated ftype.
+ (stupid_useless_init_extra_frame_info): Remove orphan prototype.
+ (frv_remote_translate_xfer_address): Remove.
+ (frv_gdbarch_init): Use generic_remote_translate_xfer_address.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Perform the ABI-specific gdbarch
+ initialization after the common gdbarch initialization, not before.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h (HPUX_1100): Remove, not used.
+ (ADDR_BITS_REMOVE): Remove, redundant.
+
+2003-08-13 J. Brobecker <brobecker@gnat.com>
+
+ * hppa-tdep.c (hppa_gdbarch_init): Set the addr_bits_remove
+ gdbarch method to clear the 2 low bits of text addresses.
+
+2003-08-12 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (dsrec.o): Update dependencies.
+ * dsrec.c: Include "gdb_assert.h".
+ (make_srec): Use snprintf instead of sprintf, use a literal format
+ string.
+
+2003-08-12 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (deprecated_frame_xmalloc): Use XMALLOC, instead of
+ FRAME_OBSTACK_ZALLOC.
+
+2003-08-12 Kevin Buettner <kevinb@redhat.com>
+
+ * i386-tdep.c (i386_gdbarch_init): Enable default support for
+ SSE registers.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.h (amd64fbsd_sigtramp_start, amd64fbsd_sigtramp_end,
+ amd64fbsd_sc_reg_offset): Add extern declarations.
+ * amd64fbsd-nat.c (_initialize_am64fbsd_nat): Remove extern
+ declarations.
+
+2003-08-11 Ben Elliston <bje@wasabisystems.com>
+
+ * MAINTAINERS (write after approval): Update my mail address.
+
+2003-08-10 Andrew Cagney <cagney@redhat.com>
+
+ * Makefile.in (monitor.o): Do not build monitor.c with -Werror.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.h (i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
+ i386obsd_sigtramp_start, i386obsd_sigtramp_end,
+ i386fbsd4_sc_reg_offset, i386fbsd_sc_reg_offset,
+ i386nbsd_sc_reg_offset, i386obsd_sc_reg_offset,
+ i386bsd_sc_reg_offset): Add extern declarations.
+ * i386obsd-nat.c: Include "i386-tdep.h"
+ (_initialize_i386obsd_nat): Remove extern declarations.
+ * i386fbsd-nat.c (_initialize_i386fbsd_nat): Remove extern
+ declarations.
+ * i386bsd-nat.c (_initialize_i386bsd_nat): Remove extern
+ declarations.
+
+ * i386-tdep.c (i386_register_to_value): Use get_frame_register
+ instead of frame_read_register.
+ (i386_fetch_pointer_argument): Use get_frame_register_unsigned
+ instead of frame_read_register. Use I386_ESP_REGNUM instead of
+ SP_REGNUM.
+ (i386_frame_prev_register): Use frame_unwind_register_unsigned
+ instead of frame_unwind_unsigned_register. Use
+ I386_EFLAGS_REGISTER instead of PS_REGNUM.
+ (i386_get_longjmp_target): Use regcache_read_unsigned_register
+ instead of read_register. Use builtin_type_void_data_ptr instead
+ of builtin_type_void_func_ptr when extracting the address of the
+ jmp_buf.
+ (i386_extract_return_value, i386_store_return_value,
+ i386_pseudo_register_read, i386_pseudo_register_write): Use
+ register_size instead REGISTER_RAW_SIZE.
+
+2003-08-10 Andrew Cagney <cagney@redhat.com>
+
+ * infcall.c (call_function_by_hand): Use xstrprintf instead of
+ sprintf. Make "name" constant.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * i387-tdep.c (i387_register_to_value): Use get_frame_register
+ instead of frame_read_register.
+ (i387_print_float_info): Use get_frame_register and
+ get_frame_register_unsigned instead of frame_register_read.
+
+ * i386fbsd-nat.c: Include "i386-tdep.h".
+ (child_resume): Make `eflags' an ULONGEST. Use
+ regcache_cooked_read_unsigned and regcache_cooked_write_unsigned
+ instead of register_read and register_write.
+
+ * i386bsd-nat.c (fetch_inferior_registers,
+ store_inferior_registers): Don't use && at the end of a line.
+ (_initialize_i386bsd_nat): Fix typo.
+
+ * frame.c (_initialize_frame): Add missing backslash.
+
+ From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
+ * sol-thread.c (sol_thread_store_registers): Use regcache_collect
+ and supply_register instead of manipulating the register buffer
+ directly.
+
+ From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
+ * config/i386/nm-i386sol2.h
+ (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to one.
+
+ Based on a patch from Michael Elizabeth Chastain (mec@shout.net):
+ * i386-tdep.c (i386_analyze_frame_setup): Recognize more
+ instructions that GCC likes to mingle into the prologue. Fixes
+ gdb/1253 and gdb/1255.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ Fix GDB PR cli/926.
+ * cli/cli-decode.c (add_setshow_uinteger_cmd): New function.
+ * command.h (add_setshow_uinteger_cmd): Declare.
+ * frame.c (set_backtrace_cmd): New function.
+ (show_backtrace_cmd): New function.
+ * frame.c (_initialize_frame): Replace "set/show
+ backtrace-below-main" with "set/show backtrace past-main". Add
+ command "set/show backtrace limit".
+ (backtrace_past_main): Rename "backtrace_below_main".
+ (backtrace_limit): New variable.
+ (get_prev_frame): Update. Check the backtrace_limit.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (xstrprintf): Declare.
+ * utils.c (xstrprintf): New function.
+ * breakpoint.c (insert_breakpoints): Replace sprintf and
+ non-literal format strings, with xstrprintf and cleanups.
+ (delete_breakpoint,breakpoint_re_set): Ditto.
+ (commands_command, insert_breakpoints): Ditto.
+ (bpstat_stop_status, break_at_finish_at_depth_command_1): Ditto.
+ (break_at_finish_command_1): Ditto.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * MAINTAINERS (language support): List Adam Fedor as Objective C
+ maintainer.
+
+2003-08-08 J. Brobecker <brobecker@gnat.com>
+
+ * NEWS (Multi-arched targets): Document that all hppa-hpux targets
+ are now multiarched.
+
+2003-08-08 J. Brobecker <brobecker@gnat.com>
+
+ * config/pa/tm-hppa64.h: Remove lots of macros that are no
+ longer necessary now that hppa64 is partially multiarch'ed.
+
+2003-08-08 Andrew Cagney <cagney@redhat.com>
+
+ * interps.c (interp_set): Check for a NULL "old_interp".
+
+2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (FLAGS_TO_PASS): Add DESTDIR.
+ (install-only): Support DESTDIR.
+ (uninstall): Likewise.
+ (install-gdbtk): Likewise.
+
+2003-08-08 Elena Zannoni <ezannoni@redhat.com>
+
+ * symtab.c (lookup_symbol_aux): Make sure that is_a_field_of_this
+ contains something meaningful at all times.
+
+Fri Aug 8 00:28:46 UTC 2003 Brendan Conoboy <blc@redhat.com>
+
+ * configure.host: Set gdb_host_cpu=arm when host_cpu=xscale.
+
+Fri Aug 8 00:28:38 UTC 2003 Brendan Conoboy <blc@redhat.com>
+
+ * MAINTAINERS (write after approval): Added self.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * inferior.h (AT_SYMBOL): Define.
+ * blockframe.c (inside_entry_file): Check for AT_SYMBOL.
+ * infcall.c (call_function_by_hand): Add code to handle AT_SYMBOL.
+ * mips-tdep.c (mips_call_dummy_address): Delete function.
+ (mips_gdbarch_init): Set call_dummy_location to AT_SYMBOL, do not
+ set call_dummy_address.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * language.c (op_error): Delete function.
+ (binop_type_check): Delete function.
+ * language.h (type_op_error, range_op_error): Delete macros.
+ (op_error): Delete declaration.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * interps.h (INTERP_MI2, INTERP_MI3): Define.
+
2003-08-07 Michal Ludvig <mludvig@suse.cz>
* x86-64-tdep.c (x86_64_dwarf_regmap): Correct register numbers.
(x86_64_push_arguments): Skip the red zone.
-
+
+2003-08-05 Andrew Cagney <cagney@redhat.com>
+
+ * reggroups.c (reggroup_next): Check for the final entry.
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * monitor.h (monitor_dump_reg_block): Remove ATTR_FORMAT.
+ * cli/cli-script.c (define_command): Call query directly, instead
+ of passing it a buffer.
+ * ocd.c (ocd_error): Pass error a constant format string.
+ * remote-mips.c (mips_error): Use fputs_filtered.
+
+ * solib-svr4.c (_initialize_svr4_solib): Update
+ register_gdbarch_data call.
+ * mips-linux-tdep.c (_initialize_mips_linux_tdep): Ditto.
+
+ * gdbarch.sh (gdbarch_data_free_ftype): Delete declaration.
+ (register_gdbarch_data): Delete "free" parameter. Update
+ comments.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * reggroups.c (_initialize_reggroup): Update.
+ * gnu-v3-abi.c (init_gnuv3_ops): Update.
+ * frame-base.c (_initialize_frame_base): Update.
+ * frame-unwind.c (_initialize_frame_unwind): Update.
+ * user-regs.c (_initialize_user_regs): Update.
+ * remote.c (_initialize_remote): Update.
+ * regcache.c (_initialize_regcache): Update.
+
+ * regcache.c (xfree_regcache_descr): Delete function.
+ (_initialize_regcache): Update call to register_gdbarch_data.
+ (init_regcache_descr, init_legacy_regcache_descr): Use
+ GDBARCH_OBSTACK_XALLOC and GDBARCH_OBSTACK_CALLOC.
+
+ * remote.c (free_remote_state): Delete function.
+ (_initialize_remote): Update register_gdbarch_data.
+ (init_remote_state): Use GDBARCH_OBSTACK_XALLOC and
+ GDBARCH_OBSTACK_CALLOC instead of xmalloc / xcalloc.
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * reggroups.c (struct reggroup_el): Define.
+ (struct reggroups): Delete field "nr_group". Replace array
+ "group" with a "first" to "last" linked list.
+ (reggroups_init): Update. Allocate using gdbarch's obstack.
+ (reggroups_free): Delete function.
+ (add_group): Update. Add "el" parameter.
+ (reggroup_add): Pass gdbarch obstack allocated space to add_group.
+ (default_groups): Update.
+ (reggroup_next): Replace reggroups.
+ (reggroups_dump): Update.
+ (_initialize_reggroup): Pass XMALLOC allocated space to add_group.
+ * regcache.c (regcache_dump): Use reggroup_next instead of reggroups.
+ * infcmd.c (registers_info): Use reggroup_next instead of reggroups.
+
2003-08-04 Daniel Jacobowitz <drow@mvista.com>
* Makefile.in (tui-interp.o): Update dependencies.
@@ -11,17 +474,29 @@
* charset.c (cached_iconv_convert): Add __FILE__ and __LINE__ args
to internal_error call.
+ * source.c (forward_search_command): Add "%s" format argument.
+ (reverse_search_command): Ditto.
+ * top.c (quit_confirm): Ditto.
+ * cli/cli-setshow.c (do_setshow_command): Ditto.
+ * cp-valprint.c (cp_print_class_method): Replace
+ {f,}printf_{un,}filtered by {f,}puts_{un,}filtered.
+ (cp_print_class_member): Ditto.
+ * event-top.c (command_line_handler): Ditto.
+ * linux-proc.c (linux_info_proc_cmd): Ditto.
+ * p-typeprint.c (pascal_type_print_base): Ditto.
+ * p-valprint.c (pascal_object_print_class_method): Ditto.
+ (pascal_object_print_class_member): Ditto.
+ * printcmd.c (print_scalar_formatted,printf_command): Ditto.
+ * remote.c (remote_cisco_section_offsets): Ditto.
+ * top.c (command_line_input): Ditto.
+ * utils.c (vwarning,error_stream,quit): Ditto.
+ * valprint.c (print_floating,print_binary_chars)
+ (print_octal_chars,print_decimal_chars,print_hex_chars): Ditto.
2003-08-04 Andrew Cagney <cagney@redhat.com>
* frame.c (frame_func_unwind): Use frame_unwind_address_in_block.
-2003-08-03 Daniel Jacobowitz <drow@mvista.com>
-
- PR c++/1267
- * minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
- NULL, default to the section containing PC.
-
2003-08-02 Andrew Cagney <cagney@redhat.com>
* config/djgpp/fnchange.lst: Fix up testsuite/gdb.c++/annota3.cc,
@@ -32,23 +507,72 @@
* Makefile.in: Update all dependencies and definitions.
+2003-08-02 Adam Fedor <fedor@gnu.org>
+
+ * linespec.c (is_objc_method_format): New function
+ (decode_line_1, locate_first_half): Use it.
+ Fixes PR objc/1298
+
2003-08-01 Andrew Cagney <cagney@redhat.com>
- Import mainline multi-arch changes from Kei Sakamoto.
- * gdb/NEWS: Mention that m32r is multi-arch.
+ * NEWS: Mention that m32r is multi-arch.
+ From 2003-07-28 Kei Sakamoto <sakamoto.kei@renesas.com>:
* configure.tgt: Recognize m32r-*-*.
+ * config/m32r/tm-m32r.h: Delete file.
* config/m32r/m32r.mt: New file.
- * m32r-rom.c, m32r-stub.c, m32r-tdep.c: Import
+ * m32r-rom.c (m32r_upload_command): Use hostent only when
+ gethostname succeeds, in order to avoid a compilation
+ warning.
+ * m32r-tdep.c (m32r_store_return_value): Add a cast to remove a
+ compiler warning.
+
+2003-08-01 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_frame_align): New gdbarch method.
+ (sh_gdbarch_init): Set up frame_align method.
+
+2003-07-31 Michael Snyder <msnyder@redhat.com>
+
+ * value.h, values.c, infcall.c, infcmd.c: Revert 07-30 change,
+ which is already covered by the new frames infrastructure.
2003-07-31 Andrew Cagney <cagney@redhat.com>
- * regcache.c (struct regcache_descr): Update comments on
- nr_raw_registers.
- (init_legacy_regcache_descr): Don't set nr_raw_registers or
- sizeof_raw_register_valid_p.
- (init_regcache_descr): Set nr_raw_registers and
- sizeof_raw_register_valid_p before calling
- init_legacy_regcache_descr.
+ * user-regs.c (struct user_reg): Add "next" link.
+ (struct user_regs): Replace "user" with "first" and "last" links.
+ (append_user_reg): Add pre-allocated "reg" parameter.
+ (builtin_user_regs): Provide initial value for "last".
+ (user_reg_add_builtin): XMALLOC memory for append_user_reg.
+ (user_regs_init): Allocate memory from the gdbarch obstack.
+ (user_reg_add): GDBARCH_OBSTACK_ZALLOC memory for append_user_reg.
+ (user_reg_map_name_to_regnum): Rewrite to search the user_reg
+ linked list.
+ (usernum_to_user_reg): New function.
+ (user_reg_map_regnum_to_name): Use usernum_to_user_reg.
+ (value_of_user_reg): Use usernum_to_user_reg.
+ (user_regs_free): Delete function.
+ (_initialize_user_regs): Update register_gdbarch_data call.
+
+2003-07-31 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2read.c (new_symbol): Use var_decode_location for parameters.
+
+2003-07-30 Michael Snyder <msnyder@redhat.com>
+
+ * value.h (value_being_returned): Add a struct_addr argument.
+ * infcall.c (call_function_by_hand): Pass struct_addr to
+ value_being_returned.
+ * infcmd.c (print_return_value): Pass zero as struct_addr.
+ * values.c (value_being_returned): If struct_addr is passed,
+ use it instead of trying to recover it from the inferior.
+
+2003-07-30 Kevin Buettner <kevinb@redhat.com>
+
+ * mn10300-tdep.c (analyze_dummy_frame): Pass ``pc'' so that
+ the prologue analyzer won't need to attempt to extract the pc
+ value from the woefully incomplete dummy frame.
+ (mn10300_analyze_prologue): Avoid calls to get_frame_pc() when
+ possible. Disable code which modifies the frame.
2003-07-28 Andrew Cagney <cagney@redhat.com>
@@ -80,6 +604,16 @@
2003-07-28 Andrew Cagney <cagney@redhat.com>
+ * regcache.c (struct regcache_descr): Update comments on
+ nr_raw_registers.
+ (init_legacy_regcache_descr): Don't set nr_raw_registers or
+ sizeof_raw_register_valid_p.
+ (init_regcache_descr): Set nr_raw_registers and
+ sizeof_raw_register_valid_p before calling
+ init_legacy_regcache_descr.
+
+2003-07-28 Andrew Cagney <cagney@redhat.com>
+
* mips-tdep.c (print_gp_register_row): Print the GPR's register
MOD NUM_REGS.
@@ -98,7 +632,6 @@
(m68hc11_init_extra_frame_info): Remove.
(m68hc11_store_struct_return): Remove.
(m68hc11_saved_pc_after_call): Remove.
- (m68hc11_call_dummy_address): Remove.
2003-07-27 Stephane Carrez <stcarrez@nerim.fr>
@@ -139,32 +672,49 @@
2003-07-27 Andrew Cagney <cagney@redhat.com>
- Sync HP/UX with mainline:
* config/pa/tm-hppa.h (init_frame_pc_default): Declare.
* infcall.c (legacy_push_dummy_code) [GDB_TARGET_IS_HPPA]: Update
REAL_PC and not the pointer.
* hppa-hpux-tdep.c: Include frame.h
+
+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
* config/pa/tm-hppa64.h (GDB_MULTI_ARCH): Set to
GDB_MULTI_ACH_PARTIAL.
- * config/pa/tm-hppa64.h (FRAME_SAVED_PC_IN_SIGTRAMP): Use
- get_frame_base.
- (FRAME_BASE_BEFORE_SIGTRAMP): Ditto.
- (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Ditto.
- (struct value): Add opaque declaration.
- (DEPRECATED_FRAME_ARGS_ADDRESS): Delete.
- * config/pa/tm-hppa64.h (REGISTER_NAMES): Delete macro.
- (REGISTER_NAME): Define.
- (hppa64_register_name): Declare.
- * config/pa/tm-hppa.h (REGISTER_NAMES): Delete macro.
- * hppa-tdep.c (hppa_gdbarch_init): Set hppa_register_name.
- (hppa64_register_name): New function.
- (hppa_register_name): New function.
+
+2003-07-27 Andrew Cagney <cagney@redhat.com>
+
+ Patch from 2003-07-22 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * m32r-tdep.c (m32r_memory_insert_breakpoint): Fix code style -
+ operator at start and not end of line.
+ (decode_prologue): Ditto.
+ (m32r_frame_unwind_cache, m32r_unwind_sp, m32r_unwind_pc): Use
+ frame_unwind_register_unsigned instead of
+ frame_unwind_unsigned_register.
+ (m32r_read_pc): Use regcache_cooked_read_unsigned instead of
+ read_register.
+ (m32r_push_dummy_call): Use register_size instead of
+ REGISTER_RAW_SIZE.
+ (m32r_frame_sniffer): Replace m32r_frame_p.
+ (m32r_gdbarch_init): Call frame_unwind_append_sniffer.
+ * m32r-rom.c (report_transfer_performance): Delete extern
+ declaration.
+ (m32r_load, m32r_upload_command): Use print_transfer_performance
+ instead of report_transfer_performance.
+ (_initialize_m32r_rom): Use add_setshow_cmd instead of add_set_cmd
+ / add_show_from_set.
2003-07-26 Andrew Cagney <cagney@redhat.com>
* m68hc11-tdep.c (m68hc11_gdbarch_init): Set non-deprecated
store_return_value and extract_struct_value_address.
+2003-07-26 Daniel Jacobowitz <drow@mvista.com>
+
+ PR c++/1267
+ * minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
+ NULL, default to the section containing PC.
+
2003-07-24 Stephane Carrez <stcarrez@nerim.fr>
* NEWS: Mention "regs" deprecated for m68hc11 too.
@@ -175,6 +725,11 @@
(show_regs): Deprecate and use the above.
(m68hc11_gdbarch_init): Install the print_registers_info.
+2003-07-24 Jeff Johnston <jjohnstn@redhat.com>
+
+ * ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Verify
+ that we have a SIGTRAP before returning non-zero.
+
2003-07-23 Michal Ludvig <mludvig@suse.cz>
Elena Zannoni <ezannoni@redhat.com>
@@ -188,8 +743,40 @@
(_initialize_ia64_tdep): Don't set deprecated_tm_print_insn and
deprecated_tm_print_insn_info.
-2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+2003-07-22 Michael Snyder <msnyder@redhat.com>
+
+ * h8300-tdep.c (h8300_extract_return_value): Teach it how to
+ handle 8-bit returns (long long).
+ (h8300h_extract_return_value): Ditto.
+ (h8300_gdbarch_init): Long long is 8 bytes, char is unsigned.
+
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.c Include "gdb_obstack.h".
+ (struct gdbarch): Add an "obstack".
+ (alloc_gdbarch_data): Allocate the gdbarch data using
+ GDBARCH_OBSTACK_CALLOC.
+ (free_gdbarch_data): Delete function.
+ (gdbarch_obstack_zalloc): New function.
+ (gdbarch_free): Free the obstack, do not call free_gdbarch_data.
+ Assert that the architecture is not initialized.
+ (gdbarch_alloc): Allocate an obstack, allocate the architecture
+ vector from the obstack.
+ (alloc_gdbarch_data, init_gdbarch_swap): Allocate memory using the
+ architecture obstack.
+ (GDBARCH_OBSTACK_CALLOC, GDBARCH_OBSTACK_ZALLOC): Define.
+ (set_gdbarch_data): Assert that the data is not initialized.
+ (struct gdbarch_data): Delete member "free".
+ (register_gdbarch_data): Do not initialize "free".
+ * gdbarch.h, gdbarch.c: Re-generate.
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * configure.in (build_warnings): Add -Wformat-nonliteral.
+ * configure: Re-generate.
+
+2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+
* dwarf2loc.c (locexpr_describe_location): Fix typos.
2003-07-22 Elena Zannoni <ezannoni@redhat.com>
@@ -212,14 +799,19 @@
storage variables.
* Makefile.in (dwarf2loc.o): Update dependencies.
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * config/pa/tm-hppa64.h (FRAME_SAVED_PC_IN_SIGTRAMP): Use
+ get_frame_base.
+ (FRAME_BASE_BEFORE_SIGTRAMP): Ditto.
+ (FRAME_FIND_SAVED_REGS_IN_SIGTRAMP): Ditto.
+ (struct value): Add opaque declaration.
+ (DEPRECATED_FRAME_ARGS_ADDRESS): Delete.
+
2003-07-21 Andrew Cagney <cagney@redhat.com>
- * dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
- * dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
- (dwarf2_frame_cache): Use frame_unwind_address_in_block, instead
- of frame_pc_unwind.
- * i386-tdep.c (i386_gdbarch_init): Update.
- * alpha-tdep.c (alpha_dwarf2_init_abi): Update.
+ From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * m32r-tdep.c, m32r-stub.c, m32r-tdep.c: Rewrite.
2003-07-20 Stephane Carrez <stcarrez@nerim.fr>
@@ -244,12 +836,50 @@
2003-07-18 Andrew Cagney <cagney@redhat.com>
+ * gdbarch.sh (DWARF2_BUILD_FRAME_INFO): Delete method.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * i386-tdep.c (i386_gdbarch_init): Do not set
+ DWARF2_BUILD_FRAME_INFO.
+ * elfread.c (elf_symfile_read): Call dwarf2_build_frame_info
+ unconditionally.
+ * alpha-tdep.c (alpha_dwarf2_init_abi): Do not set
+ DWARF2_BUILD_FRAME_INFO.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
From 2003-07-04 Kei Sakamoto <sakamoto.kei@renesas.com>:
* disasm.c (gdb_disassemble_info): Initilize di.arch.
2003-07-18 Andrew Cagney <cagney@redhat.com>
- * ui-out.h (struct ui_file): Add opaque declaration.
+ * dwarf2-frame.c (dwarf2_frame_sniffer): Use
+ frame_unwind_address_in_block, instead of frame_pc_unwind.
+ (dwarf2_frame_cache): Ditto.
+
+2003-07-18 Andrew Cagney <cagney@redhat.com>
+
+ * user-regs.h (struct gdbarch): Declare opaque.
+ * ui-out.h (struct ui_file): Declare opaque.
+ * dwarf2-frame.h (struct frame_info): Declare opaque.
+
+2003-07-18 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: Clean ARI hits. Change #include <..> to
+ #include "...".
+ (procfs_meminfo): Change strerror to safe_strerror.
+ (procfs_can_run): Remove K&R badness.
+
+2003-07-17 Michael Snyder <msnyder@redhat.com>
+
+ * remote-sim.c: Comment typo fix.
+
+2003-07-17 Andrew Cagney <cagney@redhat.com>
+
+ * defs.h (GDB_MULTI_ARCH): Delete conditional define. Handled by
+ configure.
+ * sparc-tdep.c (sparc_intreg_size): Make non-static.
+ * config/sparc/tm-sparc.h (GDB_MULTI_ARCH): Define to
+ GDB_MULTI_ARCH_PARTIAL.
2003-07-17 Elena Zannoni <ezannoni@redhat.com>
@@ -266,7 +896,135 @@
Save the computed prev_sp.
(avr_saved_regs_unwinder): Remove function.
(avr_frame_prev_register): Use PC unwind logic from
- avr_saved_regs_unwinder, otherwise use trad_frame_prev_register.
+ avr_saved_regs_unwinder(), otherwise use trad_frame_prev_register().
+
+2003-07-16 Andrew Cagney <cagney@redhat.com>
+
+ * frame-base.h (frame_base_p_ftype): Delete definition.
+ (frame_base_append_predicate): Delete declaration.
+ * frame-unwind.h (frame_unwind_p_ftype): Delete definition.
+ (frame_unwind_append_predicate): Delete declaration.
+ * frame-unwind.c (struct frame_unwind_table): Delete field "p".
+ (append_predicate): Delete parameter "p".
+ (frame_unwind_append_predicate): Delete function.
+ (frame_unwind_append_sniffer): Update call to append_predicate.
+ (frame_unwind_free): Delete function.
+ (_initialize_frame_unwind): Pass NULL as "free" to
+ register_gdbarch_data.
+ (frame_unwind_init): Append the dummy_frame_sniffer.
+ (frame_unwind_find_by_frame): Simplify.
+ * frame-base.c (struct frame_base_table): Delete field "p".
+ (append_predicate): Delete parameter "p".
+ (frame_base_append_predicate): Delete function.
+ (frame_base_append_sniffer): Update call to append_predicate.
+ (frame_base_free): Delete function.
+ (frame_base_find_by_frame): Simplify.
+ (_initialize_frame_base): Pass NULL as "free" to
+ register_gdbarch_data.
+ * x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p".
+ (x86_64_sigtramp_frame_sniffer): Replace
+ "x86_64_sigtramp_frame_p".
+ (x86_64_init_abi): Set the frame unwind sniffers.
+ * m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p".
+ (m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p"
+ (m68k_gdbarch_init): Set the frame unwind sniffers.
+ * i386-tdep.c (i386_sigtramp_frame_sniffer): Replace
+ "i386_sigtramp_frame_p".
+ (i386_frame_sniffer): Replace "i386_frame_p".
+ (i386_gdbarch_init): Set the frame unwind sniffers.
+ * avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer".
+ (avr_gdbarch_init): Set the frame unwind sniffers.
+ * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace
+ "alpha_sigtramp_frame_p"
+ (alpha_heuristic_frame_sniffer): Replace
+ "alpha_heuristic_frame_p".
+ (alpha_gdbarch_init): Set the frame unwind sniffers.
+ (alpha_dwarf2_init_abi): Ditto.
+ * alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace
+ "alpha_debug_frame_p".
+ (alpha_mdebug_frame_base_sniffer): Replace
+ "alpha_mdebug_frame_base_p".
+ (alpha_mdebug_init_abi): Set the frame unwind sniffers.
+ * d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p".
+ (d10v_gdbarch_init): Set the frame unwind sniffer.
+ * dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+ (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+ * dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+ (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+ * dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p".
+ * dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".
+
+2003-07-16 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp
+ should go thru sh_dsp_register_sim_regno, else the dsp regs
+ will not get the right values.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_sh4_register_convert_to_virtual): Substitute call to
+ deprecated_store_floating by call to store_typed_floating.
+ (sh_sh4_register_convert_to_raw): Substitute call to
+ deprecated_extract_floating by call to extract_typed_floating.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c (sh_gdbarch_init): Set double to 4 byte on sh2e and sh3e.
+
+2003-07-16 Corinna Vinschen <vinschen@redhat.com>
+
+ * sh-tdep.c: Substitute calls to REGISTER_RAW_SIZE by calls to
+ register_size and calls to REGISTER_VIRTUAL_TYPE by calls to
+ gdbarch_register_type in 32 bit code throughout. Avoid current_gdbarch
+ as possible.
+ (do_pseudo_register): Remove.
+ (sh_push_dummy_code): New function.
+ (sh64_store_struct_return): Rename from sh_store_struct_return.
+ Only called for sh64 now.
+ (sh_extract_struct_value_address): Regcache'ify.
+ (sh_push_dummy_call): Rename from sh_push_arguments. Regcache'ify
+ and accomodate new tasks.
+ (sh64_push_return_address): Rename from sh_push_return_address.
+ Only called for sh64 now.
+ (sh_default_extract_return_value): Rename from sh_extract_return_value.
+ Regcache'ify.
+ (sh3e_sh4_extract_return_value): Regcache'ify.
+ (sh_default_store_return_value): Ditto.
+ (sh3e_sh4_store_return_value): Ditto.
+ (sh_default_register_byte): Remove.
+ (sh_sh4_register_byte): Remove.
+ (sh_default_register_raw_size): Remove.
+ (sh_sh4_register_raw_size): Remove.
+ (sh_register_virtual_size): Remove.
+ (sh_sh3e_register_virtual_type): Remove.
+ (sh_sh3e_register_type): New function.
+ (sh_sh4_register_virtual_type): Remove.
+ (sh_sh4_register_type): New function.
+ (sh_default_register_virtual_type): Remove.
+ (sh_default_register_type): New function.
+ (do_fv_register_info): Add parameters to accomodate call from
+ sh_print_registers_info.
+ (do_dr_register_info): Ditto.
+ (sh_print_pseudo_register): Rename from sh_do_pseudo_register.
+ Add parameters to accomodate call from sh_print_registers_info.
+ (sh_do_fp_register): Ditto.
+ (sh64_do_pseudo_register): Call do_dr_register_info,
+ do_fv_register_info and sh_do_fp_register with default parameters.
+ (sh_do_register): Add parameters to accomodate call from
+ sh_print_registers_info.
+ (sh_print_register): Ditto.
+ (sh_print_registers_info): Rename from sh_do_registers_info.
+ Add parameters to be used as gdbarch_print_registers_info
+ implementation. Accomodate removed do_pseudo_register function
+ pointer.
+ (sh_compact_do_registers_info): Accomodate removed do_pseudo_register
+ function pointer. Call sh_print_register with default parameters.
+ (sh64_do_registers_info): Call sh_print_registers_info instead of
+ sh_do_registers_info.
+ (sh_gdbarch_init): Rearrange to cleanup and to allow easier
+ detection of deprecated vs. non-deprecated functionality.
+ Rename sh_call_dummy_words to sh64_call_dummy_words. Remove
+ function pointer assignments by direct function calls.
2003-07-15 Andrew Cagney <cagney@redhat.com>
@@ -306,6 +1064,14 @@
* d10v-tdep.c (d10v_frame_this_id): Delete check that frames are
identical.
+2003-07-15 Andrew Cagney <cagney@redhat.com>
+
+ * complaints.c (struct explanation): Define.
+ (struct complaints): Change type of "explanation" to "struct
+ explanation".
+ (symfile_explanations): Convert to a "struct explanation" table.
+ (vcomplaint): Update.
+
2003-07-15 Michal Ludvig <mludvig@suse.cz>
* x86-64-linux-nat.c (regmap): Removed.
@@ -327,26 +1093,96 @@
* x86-64-tdep.c (x86_64_store_return_value): Use
regcache_cooked_write_part instead of regcache_cooked_write.
+ * configure.host: Add x86_64-*-freebsd*.
+ * configure.tgt: Add x86_64-*-freebsd*.
+ * Makefile.in (amd64fbsd-nat.o, amd64fbsd-tdep.o): New targets.
+ * amd64fbsd-nat.c: New file.
+ * amd64fbsd-tdep.c: New file.
+ * config/i386/nm-fbsd64.h: New file.
+ * config/i386/fbsd64.mh: New file.
+ * config/i386/fbsd64.mt: New file.
+
+2003-07-11 Mark Kettenis <kettenis@gnu.org>
+
+ * alpha-tdep.h (struct gdbarch_tdep): Add members `sc_pc_offset',
+ `sc_regs_offset' and `sc_fpregs_offset'.
+ * alpha-tdep.c (SIGFRAME_PC_OFF, SIGFRAME_REGSAVE_OFF,
+ SIGFRAME_FPREGSAVE_OFF): Remove defines.
+ (alpha_sigtramp_register_address): Rewrite to use new members of
+ `struct gdbarch_tdep'.
+ (alpha_gdbarch_init): Initialize new members of struct
+ gdbarch_tdep'.
+ * alphafbsd-tdep.c (alphafbsd_use_struct_convention): Use
+ ALPHA_REGISTER_SIZE instead of DEPRECATED_REGISTER_SIZE.
+ (alphafbsd_sigtramp_start, alphafbsd_sigtramp_end): Nre variables.
+ (alphafbsd_pc_in_sigtramp): Implement.
+ (alphafbsd_sigtramp_offset): New function.
+ (alphafbsd_sigcontext_addr): New function.
+ (alphafbsd_init_abi): Initialize signal trampoline related members
+ of `struct gdbarch_tdep'.
+ (_initialize_alphafbsd_tdep): Add prototype.
+
2003-07-11 Theodore A. Roth <troth@openavr.org>
* Makefile.in (install-only): Quote sed expression when generating
- transformed_name.
+ transformed_name.
2003-07-11 Richard Henderson <rth@redhat.com>
- * Makefile.in (dwarf2-frame.o): Add complaints_h.
- * dwarf2-frame.c: Include complaints.h.
- (decode_frame_entry_1): Rename from decode_frame_entry; tidy
- variable initialization; return NULL on error.
- (decode_frame_entry): New.
+ * Makefile.in (dwarf2-frame.o): Add complaints_h.
+ * dwarf2-frame.c: Include complaints.h.
+ (decode_frame_entry_1): Rename from decode_frame_entry; tidy
+ variable initialization; return NULL on error.
+ (decode_frame_entry): New.
2003-07-11 Andrew Cagney <cagney@redhat.com>
+ * frame.h (frame_address_in_block): Delete declaration.
+ * blockframe.c (frame_address_in_block): Delete function.
+ (get_frame_block): Use get_frame_address_in_block.
+ (block_innermost_frame): Ditto.
+ * stack.c (print_frame, backtrace_command_1): Ditto.
+
* frame.h (get_frame_address_in_block): Declare.
(frame_unwind_address_in_block): Declare.
* frame.c (frame_unwind_address_in_block): New function.
(get_frame_address_in_block): New function.
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Simplify predicate methods. Remove need to provide
+ pre-default. Note: re-generate has no effect.
+
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: When a variable, but not a function, compare against
+ 0. Fix problem in previous patch.
+ * gdbarch.c: Re-generate.
+
+2003-07-10 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh: Use gdb_assert instead of internal_error. Compare
+ functions against NULL, not 0.
+ * gdbarch.c: Re-generate.
+
+2003-07-10 Fred Fish <fnf@ninemoons.com>
+
+ * coff-solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Default to a
+ null string instead of a null pointer.
+ * solib.h (SOLIB_LOADED_LIBRARY_PATHNAME): Ditto.
+
+2003-07-09 Michael Snyder <msnyder@redhat.com>
+
+ * sh-tdep.c (sh_dsp_register_sim_regno): Off-by-one error.
+
+2003-07-09 Mark Kettenis <kettenis@gnu.org>
+
+ * x86-64-tdep.h (X86_64_RAX_REGNUM, X86_64_RDX_REGNUM,
+ X86_64_RDI_REGNUM, X86_64_RBP_REGNUM, X86_64_RSP_REGNUM,
+ X86_64_RIP_REGNUM, X86_64_EFLAGS_REGNUM, X86_64_ST0_REGNUM,
+ X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM): Moved here ...
+ * x86-64-tdep.c: ... from here.
+
2003-07-09 Andreas Schwab <schwab@suse.de>
* m68k-tdep.h (enum struct_return): Define.
@@ -364,6 +1200,11 @@
* somread.c (som_symfile_offsets): Fix compilation error.
+2003-07-09 Andrew Cagney <cagney@redhat.com>
+
+ * regcache.c (register_size): Only check REGISTER_RAW_SIZE once.
+ Add comments about the checks.
+
2003-07-08 Andrew Cagney <cagney@redhat.com>
* Makefile.in: Make dependency section headers consistent.
@@ -374,6 +1215,13 @@
(ada-lex.c, c-exp.tab.c, f-exp.tab.c): Ditto.
(jv-exp.tab.c, m2-exp.tab.c, objc-exp.tab.c, p-exp.tab.c): Ditto.
+2003-07-08 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: Cleaned up a bunch of ARI hits.
+ Include "gdb_dirent.h" instead of <dirent.h>, replace all instances
+ of strerror with safe_strerror, use ISO C function definitions,
+ and replace instances of sprintf with snprintf.
+
2003-07-07 Andrew Cagney <cagney@redhat.com>
* frame.c (get_prev_frame): Enable check for identical frames.
@@ -390,6 +1238,10 @@
2003-07-07 Joel Brobecker <brobecker@gnat.com>
+ * config/mips/tm-irix6.h (MIPS_REGISTER_TYPE): Add comment.
+
+2003-07-07 Joel Brobecker <brobecker@gnat.com>
+
* mips-tdep.c (mips_register_raw_size): Fix compilation failure.
(mips_register_byte): Likewise.
@@ -515,6 +1367,36 @@
extract_return_value, store_return_value,
extract_struct_value_address.
+2003-07-07 Andrew Cagney <cagney@redhat.com>
+
+ * expprint.c: Include "user-regs.h" instead of "frame.h".
+ (print_subexp): Use user_reg_map_regnum_to_name, instead of
+ frame_map_regnum_to_name.
+ * frame.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (frame_map_name_to_regnum): Simplify, call
+ user_reg_map_name_to_regnum.
+ (frame_map_regnum_to_name): Simplify, call
+ user_reg_map_regnum_to_name.
+ (frame_register_unwind): Update.
+ * std-regs.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (_initialize_frame_reg): Call user_reg_add_builtin.
+ * findvar.c: Include "user-regs.h" instead of "builtin-regs.h".
+ (value_of_register): Use value_of_user_reg.
+ * eval.c (evaluate_subexp_standard): Update.
+ * parse.c (write_dollar_variable): Update.
+ * d10v-tdep.c (d10v_print_registers_info): Update.
+ * infcmd.c (registers_info): Update.
+ * Makefile.in (SFILES): Delete "builtin-regs.c", add "user-regs.c".
+ (builtin_regs_h): Delete macro.
+ (user_regs_h): Define.
+ (COMMON_OBS): Delete "builtin-regs.o", add "user-regs.o".
+ (builtin-regs.o): Delete target.
+ (user-regs.o): Specify dependencies.
+ (expprint.o): Update dependencies.
+ (findvar.o): Update dependencies.
+ (frame.o): Update dependencies.
+ (std-regs.o): Update dependencies.
+
2003-07-06 Christopher Faylor <cgf@redhat.com>
* win32-nat.c (solib_symbols_add): Use one variable for all section
@@ -529,34 +1411,56 @@
* rs6000-nat.c (vmap_symtab): Fix compilation error.
+2003-07-04 Kris Warkentin <kewarken@qnx.com>
+
+ * config/i386/nto.mh: Set XM_FILE to xm-i386.h
+
+2003-07-04 Kris Warkentin <kewarken@qnx.com>
+
+ * nto-procfs.c: New file. Native procfs support for QNX Neutrino.
+ * config/i386/nto.mh: New file.
+ * config/i386/nm-nto.h: New file.
+ * configure.host: Add i[3456]86-*-nto*.
+
2003-07-03 Joel Brobecker <brobecker@gnat.com>
* remote-vx.c (vx_add_symbols): Fix compilation error.
+2003-07-03 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (REGISTER_NAME): Do not supply a default.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * config/sparc/tm-sparc.h (REGISTER_NAME): Define.
+ (legacy_register_name): Declare.
+ * config/sparc/tm-sp64.h (legacy_register_name): Declare.
+ (REGISTER_NAME): Define.
+ * sparc-tdep.c (legacy_register_name): New function.
+ * config/pa/tm-hppa64.h (REGISTER_NAMES): Delete macro.
+ (REGISTER_NAME): Define.
+ (hppa64_register_name): Declare.
+ * config/pa/tm-hppa.h (REGISTER_NAMES): Delete macro.
+ * hppa-tdep.c (hppa_gdbarch_init): Set hppa_register_name.
+ (hppa64_register_name): New function.
+ (hppa_register_name): New function.
+ * arch-utils.c (legacy_register_name): Delete.
+ * arch-utils.h (legacy_register_name): Delete.
+
2003-07-03 Daniel Jacobowitz <drow@mvista.com>
* cli/cli-interp.c (cli_interpreter_resume): Update the
cli_uiout's stream to gdb_stdout.
-2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+2003-07-03 Andrew Cagney <cagney@redhat.com>
- * cli/cli-logging.c (pop_output_files): Add void to function
- definition.
+ * gdbarch.sh (REGISTER_RAW_SIZE, REGISTER_VIRTUAL_SIZE): Add
+ predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * regcache.c (init_regcache_descr): Use legacy code when either
+ REGISTER_BYTE or REGISTER_RAW_SIZE is set.
2003-07-02 Daniel Jacobowitz <drow@mvista.com>
- * cli/cli-logging.c: New file.
- * cli-out.c (struct ui_out_data): Add original_stream.
- (cli_redirect): New function.
- (cli_ui_out_impl): Add cli_redirect.
- (cli_out_new): Initialize original_stream.
- * ui-out.c (default_ui_out_impl): Add NULL for redirect member.
- (uo_redirect, ui_out_redirect): New.
- * ui-out.h (struct ui_out_impl): Add redirect member.
- (redirect_ftype): New.
- (ui_out_redirect): Add prototype.
- * Makefile.in: Add rules for cli-logging.c.
- * NEWS: Mention "set logging".
+ * NEWS: Move "set logging" entry into GDB 6.0 section.
2003-07-02 Jim Blandy <jimb@redhat.com>
@@ -607,6 +1511,12 @@
(ia64_gdbarch_init): Set push_dummy_call instead of
deprecated_push_arguments and deprecated_push_return_address.
+2003-07-01 Andreas Jaeger <aj@suse.de>
+
+ * x86-64-tdep.c (x86_64_push_arguments): Align stack to 16-byte
+ before the call.
+ Set %rax only to number of SSE registers used.
+
2003-07-01 Andrew Cagney <cagney@redhat.com>
* trad-frame.h: Update comments, a -1 .addr is reserved.
@@ -623,12 +1533,6 @@
(trad_frame_set_value): Rename trad_frame_register_value.
* d10v-tdep.c (d10v_frame_unwind_cache): Use trad_frame_addr_p
and trad_frame_set_value.
-
-2003-07-01 Andreas Jaeger <aj@suse.de>
-
- * x86-64-tdep.c (x86_64_push_arguments): Align stack to 16-byte
- before the call.
- Set %rax only to number of SSE registers used.
2003-06-30 Jim Blandy <jimb@redhat.com>
@@ -657,6 +1561,10 @@
* utils.c (internal_vproblem): Use xvasprintf, not xasprintf, to
format error message.
+2003-06-30 Joel Brobecker <brobecker@gnat.com>
+
+ * sparc-tdep.c (stop_after_trap): Remove declaration, not used.
+
2003-06-30 David Carlton <carlton@kealia.com>
Band-aid for PR c++/1245.
@@ -670,6 +1578,12 @@
2003-06-30 Andrew Cagney <cagney@redhat.com>
+ * remote.c (remote_write_bytes): Explicitly compute and then use
+ the payload size. Update comments to reflect. Fixes problem of
+ GDB not sending small packets as found by Fred Fish.
+
+2003-06-30 Andrew Cagney <cagney@redhat.com>
+
* remote.c (remote_async_wait): Fix -Wformat problem.
2003-06-29 Andrew Cagney <cagney@redhat.com>
@@ -682,49 +1596,62 @@
* sparc-tdep.c (sparc_y_regnum): Make external again.
+2003-06-29 Daniel Jacobowitz <drow@mvista.com>
+
+ * cli/cli-logging.c (pop_output_files): Add void to function
+ definition.
+
2003-06-29 Andrew Cagney <cagney@redhat.com>
* frame.c (frame_register_unwind): Use unsigned char when dumping
the buffer contents.
-2003-06-27 Jim Blandy <jimb@redhat.com>
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
- * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New
- function.
- (ppc_linux_init_abi): Register it as the
- CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI.
-
- * ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
- (ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
- method.
-
- * ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
- (ppc64_standard_linkage_target): Use it.
+ * cli/cli-logging.c: New file.
+ * cli-out.c (struct ui_out_data): Add original_stream.
+ (cli_redirect): New function.
+ (cli_ui_out_impl): Add cli_redirect.
+ (cli_out_new): Initialize original_stream.
+ * ui-out.c (default_ui_out_impl): Add NULL for redirect member.
+ (uo_redirect, ui_out_redirect): New.
+ * ui-out.h (struct ui_out_impl): Add redirect member.
+ (redirect_ftype): New.
+ (ui_out_redirect): Add prototype.
+ * Makefile.in: Add rules for cli-logging.c.
+ * NEWS: Mention "set logging".
2003-06-27 Elena Zannoni <ezannoni@redhat.com>
* config/powerpc/ppc64-linux.mh (NATDEPFILES): Add linux-nat.o.
-2003-06-27 Elena Zannoni <ezannoni@redhat.com>
+2003-06-27 Andrew Cagney <cagney@redhat.com>
- * symfile.c (syms_from_objfile): Move variables to inner block.
- Move the checks for the non-mainline case a bit earlier to avoid
- doing some useless computations.
+ * m68hc11-tdep.c (m68hc11_call_dummy_address): Delete function.
+ (m68hc11_gdbarch_init): Do not set call_dummy_address.
+ * avr-tdep.c (avr_call_dummy_address): Delete function.
+ (avr_gdbarch_init): Do not set call_dummy_address.
2003-06-27 Elena Zannoni <ezannoni@redhat.com>
- * dwarfread.c (decode_modified_type): Gag new compiler warning.
+ * symfile.c (syms_from_objfile): Move variables to inner block.
+ Move the checks for the non-mainline case a bit earlier to avoid
+ doing some useless computations.
-2003-06-26 Michael Chastain <mec@shout.net>
+2003-06-27 Elena Zannoni <ezannoni@redhat.com>
- * config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1210.cc,
- gdb/testsuite/gdb.c++/pr-1210.exp.
+ * dwarfread.c (decode_modified_type): Gag new compiler warning.
2003-06-26 Elena Zannoni <ezannoni@redhat.com>
* dwarf2read.c (dwarf2_locate_sections): Ignore empty .eh_frame
sections.
+2003-06-26 Michael Chastain <mec@shout.net>
+
+ * config/djgpp/fnchange.lst: Add gdb/testsuite/gdb.c++/pr-1210.cc,
+ gdb/testsuite/gdb.c++/pr-1210.exp.
+
2003-06-26 Andrew Cagney <cagney@redhat.com>
* config/djgpp/fnchange.lst: Fix 8.3 problem with sim/ppc's
@@ -740,6 +1667,35 @@
* utils.c (internal_vproblem): Print the problem to a reason
buffer and then pass to query. Make the msg variable more local.
+2003-06-26 Andrew Cagney <cagney@redhat.com>
+
+ * gdbarch.sh (FRAME_ARGS_ADDRESS): Add predicate. Deprecate.
+ (FRAME_LOCALS_ADDRESS): Add predicate. Deprecate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * frame-base.c (default_frame_args_address): Update. Use
+ default_frame_base_address when DEPRECATED_FRAME_ARGS_ADDRESS is
+ not available.
+ (default_frame_locals_address): Ditto for
+ DEPRECATED_FRAME_LOCALS_ADDRESS.
+ * vax-tdep.c (vax_sigtramp_saved_pc): Update.
+ (vax_frame_num_args): Update.
+ (vax_gdbarch_init): Update.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Update.
+ * ns32k-tdep.c (ns32k_gdbarch_init): Update.
+ * mcore-tdep.c (mcore_gdbarch_init): Update.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
+ * ia64-tdep.c (ia64_gdbarch_init): Update.
+ * symtab.h (address_class): Update comments.
+ * ns32k-tdep.c (ns32k_sigtramp_saved_pc): Update.
+ * config/sparc/tm-sparc.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ * config/pa/tm-hppa64.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ (DEPRECATED_FRAME_LOCALS_ADDRESS): Update.
+ * config/m68k/tm-delta68.h (DEPRECATED_FRAME_ARGS_ADDRESS): Update.
+ * alpha-mdebug-tdep.c: Update.
+ * ada-lang.c (add_symbols_from_enclosing_procs): Update.
+
2003-06-26 Andreas Jaeger <aj@suse.de>
* x86-64-tdep.c (x86_64_push_arguments): Always set %rax to number
@@ -757,6 +1713,22 @@
* MAINTAINERS: Update e-mail address.
+2003-06-24 Jim Blandy <jimb@redhat.com>
+
+ * ppc-linux-tdep.c: More "Linux" -> "GNU/Linux".
+
+ * ppc-linux-tdep.c (ppc64_linux_convert_from_func_ptr_addr): New
+ function.
+ (ppc_linux_init_abi): Register it as the
+ CONVERT_FROM_FUNC_PTR_ADDR method under the PPC64 Linux ABI.
+
+ * ppc-linux-tdep.c (ppc64_call_dummy_address): New function.
+ (ppc_linux_init_abi): Set it as the gdbarch's call_dummy_address
+ method.
+
+ * ppc-linux-tdep.c (ppc64_desc_entry_point): New function.
+ (ppc64_standard_linkage_target): Use it.
+
2003-06-23 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
@@ -778,9 +1750,8 @@
2003-06-22 Andrew Cagney <cagney@redhat.com>
GDB 6.0 branch created.
- * version.in: Bump to version 5.3.90_0000-00-00-cvs.
- * PROBLEMS: Update. Empty.
* README: Update.
+ * PROBLEMS: Update. Empty.
* NEWS: Update.
2003-06-22 Daniel Jacobowitz <drow@mvista.com>
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index 078038e..39acdc8 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -236,7 +236,7 @@ language support (Blanket Write Privs Maintainers)
C++ Daniel Jacobowitz dan@debian.org
Java support (Global Maintainers)
Pascal support Pierre Muller muller@sources.redhat.com
-
+ Objective C support Adam Fedor fedor@gnu.org
shared libs (devolved) Kevin Buettner kevinb@redhat.com
xcoffsolib Peter Schauer Peter.Schauer@regent.e-technik.tu-muenchen.de
@@ -307,6 +307,7 @@ To get recommended for the Write After Approval list you need a valid
FSF assignment and have submitted one good patch.
David Anderson davea@sgi.com
+Shrinivas Atre shrinivasa@kpitcummins.com
Scott Bambrough scottb@netwinder.org
Jim Blandy jimb@redhat.com
Philip Blundell philb@gnu.org
@@ -320,13 +321,14 @@ Stephane Carrez stcarrez@nerim.fr
Michael Chastain mec@shout.net
Eric Christopher echristo@redhat.com
Nick Clifton nickc@redhat.com
+Brendan Conoboy blc@redhat.com
DJ Delorie dj@redhat.com
Chris G. Demetriou cgd@broadcom.com
Philippe De Muyter phdm@macqel.be
Klee Dienes kdienes@apple.com
Richard Earnshaw rearnsha@arm.com
Frank Ch. Eigler fche@redhat.com
-Ben Elliston bje@redhat.com
+Ben Elliston bje@wasabisystems.com
Raoul Gough RaoulGough@yahoo.co.uk
Anthony Green green@redhat.com
Matthew Green mrg@eterna.com.au
@@ -373,6 +375,7 @@ Bob Rossi bob_rossi@cox.net
Theodore A. Roth troth@openavr.org
Ian Roxborough irox@redhat.com
Grace Sainsbury graces@redhat.com
+Kei Sakamoto sakamoto.kei@renesas.com
Mark Salter msalter@redhat.com
Peter Schauer Peter.Schauer@regent
Andreas Schwab schwab@suse.de
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 188c9a5..39dfab2 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -430,6 +430,7 @@ FLAGS_TO_PASS = \
"datadir=$(datadir)" \
"includedir=$(includedir)" \
"against=$(against)" \
+ "DESTDIR=$(DESTDIR)" \
"AR=$(AR)" \
"AR_FLAGS=$(AR_FLAGS)" \
"CC=$(CC)" \
@@ -510,7 +511,7 @@ TARGET_FLAGS_TO_PASS = \
SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
ax-general.c ax-gdb.c \
- bcache.c block.c blockframe.c breakpoint.c buildsym.c builtin-regs.c \
+ bcache.c block.c blockframe.c breakpoint.c buildsym.c \
c-exp.y c-lang.c c-typeprint.c c-valprint.c \
charset.c cli-out.c coffread.c coff-pe-read.c \
complaints.c completer.c corefile.c \
@@ -554,6 +555,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
tui/tuiStack.c tui/tuiStack.h tui/tuiWin.c tui/tuiWin.h \
tui/tui-file.h tui/tui-file.c tui/tui-out.c tui/tui-hooks.c \
ui-out.c utils.c ui-file.h ui-file.c \
+ user-regs.c \
valarith.c valops.c valprint.c values.c varobj.c \
wrapper.c
@@ -634,7 +636,6 @@ bcache_h = bcache.h
block_h = block.h
breakpoint_h = breakpoint.h $(frame_h) $(value_h) $(gdb_events_h)
buildsym_h = buildsym.h
-builtin_regs_h = builtin-regs.h
call_cmds_h = call-cmds.h
charset_h = charset.h
c_lang_h = c-lang.h $(value_h) $(macroexp_h)
@@ -686,6 +687,7 @@ gdb_vfork_h = gdb_vfork.h
gdb_wait_h = gdb_wait.h
gnu_nat_h = gnu-nat.h
gregset_h = gregset.h
+hppa_tdep_h = hppa-tdep.h
i386_linux_tdep_h = i386-linux-tdep.h
i386_tdep_h = i386-tdep.h
i387_tdep_h = i387-tdep.h
@@ -758,6 +760,7 @@ trad_frame_h = trad-frame.h
typeprint_h = typeprint.h
ui_file_h = ui-file.h
ui_out_h = ui-out.h
+user_regs_h = user-regs.h
valprint_h = valprint.h
value_h = value.h $(doublest_h) $(frame_h) $(symtab_h) $(gdbtypes_h) \
$(expression_h)
@@ -871,7 +874,7 @@ COMMON_OBS = version.o blockframe.o breakpoint.o findvar.o regcache.o \
event-loop.o event-top.o inf-loop.o completer.o \
gdbarch.o arch-utils.o gdbtypes.o osabi.o copying.o $(DEPFILES) \
memattr.o mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \
- builtin-regs.o std-regs.o \
+ std-regs.o \
signals.o \
kod.o kod-cisco.o \
gdb-events.o \
@@ -891,6 +894,7 @@ COMMON_OBS = version.o blockframe.o breakpoint.o findvar.o regcache.o \
c-valprint.o cp-valprint.o f-valprint.o m2-valprint.o \
nlmread.o serial.o mdebugread.o top.o utils.o \
ui-file.o \
+ user-regs.o \
frame.o frame-unwind.o doublest.o \
frame-base.o \
gnu-v2-abi.o gnu-v3-abi.o hpacc-abi.o cp-abi.o cp-support.o \
@@ -961,7 +965,7 @@ install-only: $(CONFIG_INSTALL)
else \
true ; \
fi ; \
- $(SHELL) $(srcdir)/../mkinstalldirs $(bindir) ; \
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \
$(INSTALL_PROGRAM) gdb$(EXEEXT) \
$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
$(SHELL) $(srcdir)/../mkinstalldirs \
@@ -978,7 +982,8 @@ uninstall: force $(CONFIG_UNINSTALL)
else \
true ; \
fi ; \
- rm -f $(bindir)/$$transformed_name$(EXEEXT) $(man1dir)/$$transformed_name.1
+ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
+ $(DESTDIR)$(man1dir)/$$transformed_name.1
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
# We do this by grepping through sources. If that turns out to be too slow,
@@ -1317,6 +1322,22 @@ main.o: main.c
$(CC) -c $(INTERNAL_CFLAGS) $(TARGET_SYSTEM_ROOT_DEFINE) \
-DBINDIR=\"$(bindir)\" $(srcdir)/main.c
+# FIXME: cagney/2003-08-10: "monitor.c" gets -Wformat-nonliteral
+# errors. It turns out that that is the least of monitor.c's
+# problems. The function print_vsprintf appears to be using
+# va_arg(long) to extract CORE_ADDR parameters - something that
+# definitly will not work. "monitor.c" needs to be rewritten so that
+# it doesn't use format strings and instead uses callbacks.
+monitor.o: $(srcdir)/monitor.c
+ $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $(srcdir)/monitor.c
+
+# FIXME: cagney/2003-08-10: Do not try to build "printcmd.c" with
+# -Wformat-nonliteral. It needs to be overhauled so that it doesn't
+# pass user input strings as the format parameter to host printf
+# function calls.
+printcmd.o: $(srcdir)/printcmd.c
+ $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $(srcdir)/printcmd.c
+
# FIXME: Procfs.o gets -Wformat errors because things like pid_t don't
# match output format strings.
procfs.o: $(srcdir)/procfs.c
@@ -1334,6 +1355,12 @@ v850ice.o: $(srcdir)/v850ice.c
$(GDBTK_CFLAGS) \
$(srcdir)/v850ice.c
+# FIXME: cagney/2003-08-10: Do not try to build "valprint.c" with
+# -Wformat-nonliteral. It relies on local_hex_format et.al. and
+# that's a mess. It needs a serious overhaul.
+valprint.o: $(srcdir)/valprint.c
+ $(CC) -c $(INTERNAL_WARN_CFLAGS) $(NO_WERROR_CFLAGS) $(srcdir)/valprint.c
+
# FIXME: z8k-tdep.c calls _initialize_gdbtypes(). Since that isn't
# declared -Wimplicit fails. It should be using the GDBARCH framework.
# cagney 1999-09-02.
@@ -1533,6 +1560,11 @@ alpha-tdep.o: alpha-tdep.c $(defs_h) $(doublest_h) $(frame_h) \
$(symfile_h) $(objfiles_h) $(gdb_string_h) $(linespec_h) \
$(regcache_h) $(reggroups_h) $(arch_utils_h) $(osabi_h) $(block_h) \
$(elf_bfd_h) $(alpha_tdep_h)
+amd64fbsd-nat.o: amd64fbsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \
+ $(gdb_assert_h) $(gregset_h) $(x86_64_tdep_h)
+amd64fbsd-tdep.o: amd64fbsd-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) \
+ $(gdbcore_h) $(regcache_h) $(osabi_h) $(gdb_string_h) \
+ $(x86_64_tdep_h)
annotate.o: annotate.c $(defs_h) $(annotate_h) $(value_h) $(target_h) \
$(gdbtypes_h) $(breakpoint_h)
arch-utils.o: arch-utils.c $(defs_h) $(arch_utils_h) $(gdbcmd_h) \
@@ -1583,8 +1615,6 @@ buildsym.o: buildsym.c $(defs_h) $(bfd_h) $(gdb_obstack_h) $(symtab_h) \
$(complaints_h) $(gdb_string_h) $(expression_h) $(language_h) \
$(bcache_h) $(filenames_h) $(macrotab_h) $(demangle_h) $(block_h) \
$(cp_support_h) $(dictionary_h) $(buildsym_h) $(stabsread_h)
-builtin-regs.o: builtin-regs.c $(defs_h) $(builtin_regs_h) $(gdbtypes_h) \
- $(gdb_string_h) $(gdb_assert_h)
charset.o: charset.c $(defs_h) $(charset_h) $(gdbcmd_h) $(gdb_assert_h) \
$(gdb_string_h)
c-lang.o: c-lang.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
@@ -1671,7 +1701,7 @@ disasm.o: disasm.c $(defs_h) $(target_h) $(value_h) $(ui_out_h) \
doublest.o: doublest.c $(defs_h) $(doublest_h) $(floatformat_h) \
$(gdb_assert_h) $(gdb_string_h) $(gdbtypes_h)
dpx2-nat.o: dpx2-nat.c $(defs_h) $(gdbcore_h) $(gdb_string_h)
-dsrec.o: dsrec.c $(defs_h) $(serial_h) $(srec_h)
+dsrec.o: dsrec.c $(defs_h) $(serial_h) $(srec_h) $(gdb_assert_h)
dummy-frame.o: dummy-frame.c $(defs_h) $(dummy_frame_h) $(regcache_h) \
$(frame_h) $(inferior_h) $(gdb_assert_h) $(frame_unwind_h) \
$(command_h) $(gdbcmd_h)
@@ -1711,14 +1741,14 @@ exec.o: exec.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) $(gdbcmd_h) \
$(language_h) $(symfile_h) $(objfiles_h) $(completer_h) $(value_h) \
$(gdb_string_h) $(gdbcore_h) $(gdb_stat_h) $(xcoffsolib_h)
expprint.o: expprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
- $(value_h) $(language_h) $(parser_defs_h) $(frame_h) $(target_h) \
+ $(value_h) $(language_h) $(parser_defs_h) $(user_regs_h) $(target_h) \
$(gdb_string_h) $(block_h)
fbsd-proc.o: fbsd-proc.c $(defs_h) $(gdbcore_h) $(inferior_h) \
$(gdb_string_h) $(elf_bfd_h) $(gregset_h)
findvar.o: findvar.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(frame_h) \
$(value_h) $(gdbcore_h) $(inferior_h) $(target_h) $(gdb_string_h) \
$(gdb_assert_h) $(floatformat_h) $(symfile_h) $(regcache_h) \
- $(builtin_regs_h) $(block_h)
+ $(user_regs_h) $(block_h)
f-lang.o: f-lang.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
$(expression_h) $(parser_defs_h) $(language_h) $(f_lang_h) \
$(valprint_h) $(value_h)
@@ -1727,14 +1757,14 @@ fork-child.o: fork-child.c $(defs_h) $(gdb_string_h) $(frame_h) \
$(terminal_h) $(gdbthread_h) $(command_h)
frame-base.o: frame-base.c $(defs_h) $(frame_base_h) $(frame_h)
frame.o: frame.c $(defs_h) $(frame_h) $(target_h) $(value_h) $(inferior_h) \
- $(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(builtin_regs_h) \
+ $(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(user_regs_h) \
$(gdb_obstack_h) $(dummy_frame_h) $(sentinel_frame_h) $(gdbcore_h) \
$(annotate_h) $(language_h) $(frame_unwind_h) $(frame_base_h) \
$(command_h) $(gdbcmd_h)
frame-unwind.o: frame-unwind.c $(defs_h) $(frame_h) $(frame_unwind_h) \
$(gdb_assert_h) $(dummy_frame_h)
-frv-tdep.o: frv-tdep.c $(defs_h) $(inferior_h) $(symfile_h) $(gdbcore_h) \
- $(arch_utils_h) $(regcache_h)
+frv-tdep.o: frv-tdep.c $(defs_h) $(gdb_string_h) $(inferior_h) $(symfile_h) \
+ $(gdbcore_h) $(arch_utils_h) $(regcache_h)
f-typeprint.o: f-typeprint.c $(defs_h) $(gdb_obstack_h) $(bfd_h) $(symtab_h) \
$(gdbtypes_h) $(expression_h) $(value_h) $(gdbcore_h) $(target_h) \
$(f_lang_h) $(gdb_string_h)
@@ -1748,7 +1778,7 @@ gdbarch.o: gdbarch.c $(defs_h) $(arch_utils_h) $(gdbcmd_h) $(inferior_h) \
$(gdb_wait_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) $(gdbthread_h) \
$(annotate_h) $(symfile_h) $(value_h) $(symcat_h) $(floatformat_h) \
$(gdb_assert_h) $(gdb_string_h) $(gdb_events_h) $(reggroups_h) \
- $(osabi_h) $(symfile_h)
+ $(osabi_h) $(symfile_h) $(gdb_obstack_h)
gdb.o: gdb.c $(defs_h) $(main_h) $(gdb_string_h) $(interps_h)
gdb-events.o: gdb-events.c $(defs_h) $(gdb_events_h) $(gdbcmd_h)
gdbtypes.o: gdbtypes.c $(defs_h) $(gdb_string_h) $(bfd_h) $(symtab_h) \
@@ -1785,7 +1815,7 @@ hppa-tdep.o: hppa-tdep.c $(defs_h) $(frame_h) $(bfd_h) $(inferior_h) \
$(value_h) $(regcache_h) $(completer_h) $(language_h) $(osabi_h) \
$(gdb_assert_h) $(infttrace_h) $(symtab_h) $(infcall_h) \
$(a_out_encap_h) $(gdb_stat_h) $(gdb_wait_h) $(gdbcore_h) \
- $(gdbcmd_h) $(target_h) $(symfile_h) $(objfiles_h)
+ $(gdbcmd_h) $(target_h) $(symfile_h) $(objfiles_h) $(hppa_tdep_h)
hpread.o: hpread.c $(defs_h) $(bfd_h) $(gdb_string_h) $(hp_symtab_h) \
$(syms_h) $(symtab_h) $(symfile_h) $(objfiles_h) $(buildsym_h) \
$(complaints_h) $(gdb_stabs_h) $(gdbtypes_h) $(demangle_h) \
@@ -1813,7 +1843,7 @@ i386-interix-tdep.o: i386-interix-tdep.c $(defs_h) $(arch_utils_h) \
i386-linux-nat.o: i386-linux-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
$(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(gregset_h) \
$(i387_tdep_h) $(i386_tdep_h) $(i386_linux_tdep_h) \
- $(gdb_proc_service_h)
+ $(gdb_proc_service_h) $(linux_nat_h)
i386-linux-tdep.o: i386-linux-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
$(value_h) $(regcache_h) $(inferior_h) $(reggroups_h) $(symtab_h) \
$(symfile_h) $(objfiles_h) $(solib_svr4_h) $(osabi_h) $(i386_tdep_h) \
@@ -2033,6 +2063,9 @@ ns32knbsd-tdep.o: ns32knbsd-tdep.c $(defs_h) $(osabi_h) $(ns32k_tdep_h) \
ns32k-tdep.o: ns32k-tdep.c $(defs_h) $(frame_h) $(gdbtypes_h) $(gdbcore_h) \
$(inferior_h) $(regcache_h) $(target_h) $(arch_utils_h) $(osabi_h) \
$(ns32k_tdep_h) $(gdb_string_h)
+nto-procfs.o: nto-procfs.c $(defs_h) $(gdb_dirent_h) $(gdb_string_h) \
+ $(gdbcore_h) $(inferior_h) $(target_h) $(objfiles_h) $(gdbthread_h) \
+ $(nto_tdep_h) $(command_h) $(regcache_h)
nto-tdep.o: nto-tdep.c $(gdb_stat_h) $(gdb_string_h) $(nto_tdep_h) $(top_h) \
$(cli_decode_h) $(cli_cmds_h) $(inferior_h) $(gdbarch_h) $(bfd_h) \
$(elf_bfd_h) $(solib_svr4_h) $(gdbcore_h)
@@ -2288,7 +2321,7 @@ stack.o: stack.c $(defs_h) $(gdb_string_h) $(value_h) $(symtab_h) \
$(gdb_assert_h) $(dictionary_h)
standalone.o: standalone.c $(gdb_stat_h) $(defs_h) $(symtab_h) $(frame_h) \
$(inferior_h) $(gdb_wait_h)
-std-regs.o: std-regs.c $(defs_h) $(builtin_regs_h) $(frame_h) $(gdbtypes_h) \
+std-regs.o: std-regs.c $(defs_h) $(user_regs_h) $(frame_h) $(gdbtypes_h) \
$(value_h) $(gdb_string_h)
stop-gdb.o: stop-gdb.c $(defs_h)
sun3-nat.o: sun3-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) $(regcache_h)
@@ -2341,6 +2374,8 @@ typeprint.o: typeprint.c $(defs_h) $(gdb_obstack_h) $(bfd_h) $(symtab_h) \
ui-file.o: ui-file.c $(defs_h) $(ui_file_h) $(gdb_string_h)
ui-out.o: ui-out.c $(defs_h) $(gdb_string_h) $(expression_h) $(language_h) \
$(ui_out_h) $(gdb_assert_h)
+user-regs.o: user-regs.c $(defs_h) $(user_regs_h) $(gdbtypes_h) \
+ $(gdb_string_h) $(gdb_assert_h) $(frame_h)
utils.o: utils.c $(defs_h) $(gdb_assert_h) $(gdb_string_h) $(event_top_h) \
$(gdbcmd_h) $(serial_h) $(bfd_h) $(target_h) $(demangle_h) \
$(expression_h) $(language_h) $(charset_h) $(annotate_h) \
@@ -2461,7 +2496,7 @@ install-gdbtk:
else \
true ; \
fi ; \
- $(SHELL) $(srcdir)/../mkinstalldirs $(bindir); \
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \
$(INSTALL_PROGRAM) insight$(EXEEXT) \
$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
$(SHELL) $(srcdir)/../mkinstalldirs \
diff --git a/gdb/NEWS b/gdb/NEWS
index cbe0201..5d7c941 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,6 +1,14 @@
What has changed in GDB?
(Organized release by release)
+*** Changes since GDB 6.0:
+
+* "set prompt-escape-char" command deleted.
+
+The command "set prompt-escape-char" has been deleted. This command,
+and its very obscure effet on GDB's prompt, was never documented,
+tested, nor mentioned in the NEWS file.
+
*** Changes in GDB 6.0:
* GDB supports logging output to a file
@@ -41,9 +49,13 @@ Fix for gdb/672: update changelist is now output in mi list format.
Fix for gdb/702: a -var-assign that updates the value now shows up
in a subsequent -var-update.
+* New native configurations.
+
+FreeBSD/amd64 x86_64-*-freebsd*
+
* Multi-arched targets.
-HP/PA HPUX11, 32bit ABI (partial) hppa*-*-hpux* except hppa*64*-*-hpux11*
+HP/PA HPUX11 hppa*-*-hpux*
Mitsubishi M32R/D w/simulator m32r-*-elf*
* OBSOLETE configurations and files
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 26780e3..cc204d6 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -3559,7 +3559,7 @@ add_symbols_from_enclosing_procs (const char *name, domain_enum domain,
QUIT;
frame = get_prev_frame (frame);
}
- while (frame != NULL && FRAME_LOCALS_ADDRESS (frame) != target_link);
+ while (frame != NULL && DEPRECATED_FRAME_LOCALS_ADDRESS (frame) != target_link);
if (frame == NULL)
break;
diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
index d481986..153ed11 100644
--- a/gdb/alpha-mdebug-tdep.c
+++ b/gdb/alpha-mdebug-tdep.c
@@ -45,7 +45,7 @@
| |localoff | Copies of 1st .. 6th |
| | | | | argument if necessary. |
| | | v | |
- | | | --- |-------------------------------|<-- FRAME_LOCALS_ADDRESS
+ | | | --- |-------------------------------|<-- LOCALS_ADDRESS
| | | | |
| | | | Locals and temporaries. |
| | | | |
@@ -304,8 +304,9 @@ static const struct frame_unwind alpha_mdebug_frame_unwind = {
};
const struct frame_unwind *
-alpha_mdebug_frame_p (CORE_ADDR pc)
+alpha_mdebug_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
alpha_extra_func_info_t proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an
@@ -360,8 +361,9 @@ static const struct frame_base alpha_mdebug_frame_base = {
};
static const struct frame_base *
-alpha_mdebug_frame_base_p (CORE_ADDR pc)
+alpha_mdebug_frame_base_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
alpha_extra_func_info_t proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an
@@ -379,6 +381,6 @@ alpha_mdebug_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- frame_unwind_append_predicate (gdbarch, alpha_mdebug_frame_p);
- frame_base_append_predicate (gdbarch, alpha_mdebug_frame_base_p);
+ frame_unwind_append_sniffer (gdbarch, alpha_mdebug_frame_sniffer);
+ frame_base_append_sniffer (gdbarch, alpha_mdebug_frame_base_sniffer);
}
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index e8b941a..d6e95ca 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -753,24 +753,20 @@ alpha_sigtramp_frame_unwind_cache (struct frame_info *next_frame,
return info;
}
-/* Return the address of REGNO in a sigtramp frame. Since this is all
- arithmetic, it doesn't seem worthwhile to cache it. */
-
-#ifndef SIGFRAME_PC_OFF
-#define SIGFRAME_PC_OFF (2 * 8)
-#define SIGFRAME_REGSAVE_OFF (4 * 8)
-#define SIGFRAME_FPREGSAVE_OFF (SIGFRAME_REGSAVE_OFF + 32 * 8 + 8)
-#endif
+/* Return the address of REGNUM in a sigtramp frame. Since this is
+ all arithmetic, it doesn't seem worthwhile to cache it. */
static CORE_ADDR
-alpha_sigtramp_register_address (CORE_ADDR sigcontext_addr, unsigned int regno)
+alpha_sigtramp_register_address (CORE_ADDR sigcontext_addr, int regnum)
{
- if (regno < 32)
- return sigcontext_addr + SIGFRAME_REGSAVE_OFF + regno * 8;
- if (regno >= ALPHA_FP0_REGNUM && regno < ALPHA_FP0_REGNUM + 32)
- return sigcontext_addr + SIGFRAME_FPREGSAVE_OFF + regno * 8;
- if (regno == ALPHA_PC_REGNUM)
- return sigcontext_addr + SIGFRAME_PC_OFF;
+ struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+
+ if (regnum >= 0 && regnum < 32)
+ return sigcontext_addr + tdep->sc_regs_offset + regnum * 8;
+ else if (regnum >= ALPHA_FP0_REGNUM && regnum < ALPHA_FP0_REGNUM + 32)
+ return sigcontext_addr + tdep->sc_fpregs_offset + regnum * 8;
+ else if (regnum == ALPHA_PC_REGNUM)
+ return sigcontext_addr + tdep->sc_pc_offset;
return 0;
}
@@ -862,8 +858,9 @@ static const struct frame_unwind alpha_sigtramp_frame_unwind = {
};
static const struct frame_unwind *
-alpha_sigtramp_frame_p (CORE_ADDR pc)
+alpha_sigtramp_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
char *name;
/* We shouldn't even bother to try if the OSABI didn't register
@@ -1203,7 +1200,7 @@ static const struct frame_unwind alpha_heuristic_frame_unwind = {
};
static const struct frame_unwind *
-alpha_heuristic_frame_p (CORE_ADDR pc)
+alpha_heuristic_frame_sniffer (struct frame_info *next_frame)
{
return &alpha_heuristic_frame_unwind;
}
@@ -1495,6 +1492,9 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->dynamic_sigtramp_offset = NULL;
tdep->sigcontext_addr = NULL;
+ tdep->sc_pc_offset = 2 * 8;
+ tdep->sc_regs_offset = 4 * 8;
+ tdep->sc_fpregs_offset = tdep->sc_regs_offset + 32 * 8 + 8;
tdep->jb_pc = -1; /* longjmp support not enabled by default */
@@ -1572,8 +1572,8 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (tdep->jb_pc >= 0)
set_gdbarch_get_longjmp_target (gdbarch, alpha_get_longjmp_target);
- frame_unwind_append_predicate (gdbarch, alpha_sigtramp_frame_p);
- frame_unwind_append_predicate (gdbarch, alpha_heuristic_frame_p);
+ frame_unwind_append_sniffer (gdbarch, alpha_sigtramp_frame_sniffer);
+ frame_unwind_append_sniffer (gdbarch, alpha_heuristic_frame_sniffer);
frame_base_set_default (gdbarch, &alpha_heuristic_frame_base);
@@ -1584,8 +1584,7 @@ void
alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
- frame_base_append_predicate (gdbarch, dwarf2_frame_base_p);
- set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
+ frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
}
extern initialize_file_ftype _initialize_alpha_tdep; /* -Wmissing-prototypes */
diff --git a/gdb/alpha-tdep.h b/gdb/alpha-tdep.h
index c0e28e6..9afe7be 100644
--- a/gdb/alpha-tdep.h
+++ b/gdb/alpha-tdep.h
@@ -82,6 +82,11 @@ struct gdbarch_tdep
the sigcontext structure for that signal handler. */
CORE_ADDR (*sigcontext_addr) (struct frame_info *);
+ /* Offset of registers in `struct sigcontext'. */
+ int sc_pc_offset;
+ int sc_regs_offset;
+ int sc_fpregs_offset;
+
int jb_pc; /* Offset to PC value in jump buffer.
If htis is negative, longjmp support
will be disabled. */
diff --git a/gdb/alphafbsd-tdep.c b/gdb/alphafbsd-tdep.c
index 680e303..d8f4fa0 100644
--- a/gdb/alphafbsd-tdep.c
+++ b/gdb/alphafbsd-tdep.c
@@ -32,7 +32,7 @@ alphafbsd_use_struct_convention (int gcc_p, struct type *type)
/* All aggregate types that won't fit in a register must be returned
in memory. */
- if (TYPE_LENGTH (type) > DEPRECATED_REGISTER_SIZE)
+ if (TYPE_LENGTH (type) > ALPHA_REGISTER_SIZE)
return 1;
/* The only aggregate types that can be returned in a register are
@@ -54,14 +54,41 @@ alphafbsd_use_struct_convention (int gcc_p, struct type *type)
return 0;
}
+
+
+/* Support for signal handlers. */
+
+/* Return whether PC is in a BSD sigtramp routine. */
+
+CORE_ADDR alphafbsd_sigtramp_start = 0x11ffff68;
+CORE_ADDR alphafbsd_sigtramp_end = 0x11ffffe0;
static int
alphafbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
{
- /* FIXME */
- return 0;
+ return (pc >= alphafbsd_sigtramp_start && pc < alphafbsd_sigtramp_end);
}
+static LONGEST
+alphafbsd_sigtramp_offset (CORE_ADDR pc)
+{
+ return pc - alphafbsd_sigtramp_start;
+}
+
+/* Assuming NEXT_FRAME is for a frame following a BSD sigtramp
+ routine, return the address of the associated sigcontext structure. */
+
+static CORE_ADDR
+alphafbsd_sigcontext_addr (struct frame_info *next_frame)
+{
+ ULONGEST sp;
+
+ frame_unwind_unsigned_register (next_frame, ALPHA_SP_REGNUM, &sp);
+ return sp + 24;
+}
+
+/* FreeBSD 5.0-RELEASE or later. */
+
static void
alphafbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
@@ -74,13 +101,23 @@ alphafbsd_init_abi (struct gdbarch_info info,
/* Hook into the MDEBUG frame unwinder. */
alpha_mdebug_init_abi (info, gdbarch);
+ set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention);
+
set_gdbarch_pc_in_sigtramp (gdbarch, alphafbsd_pc_in_sigtramp);
- set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention);
+ tdep->dynamic_sigtramp_offset = alphafbsd_sigtramp_offset;
+ tdep->sigcontext_addr = alphafbsd_sigcontext_addr;
+ tdep->sc_pc_offset = 288;
+ tdep->sc_regs_offset = 24;
+ tdep->sc_fpregs_offset = 320;
tdep->jb_pc = 2;
tdep->jb_elt_size = 8;
}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_alphafbsd_tdep (void);
void
_initialize_alphafbsd_tdep (void)
diff --git a/gdb/amd64fbsd-nat.c b/gdb/amd64fbsd-nat.c
new file mode 100644
index 0000000..71861d9
--- /dev/null
+++ b/gdb/amd64fbsd-nat.c
@@ -0,0 +1,296 @@
+/* Native-dependent code for FreeBSD/amd64.
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "inferior.h"
+#include "regcache.h"
+
+#include "gdb_assert.h"
+#include <signal.h>
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <sys/sysctl.h>
+#include <machine/reg.h>
+
+#ifdef HAVE_SYS_PROCFS_H
+#include <sys/procfs.h>
+#endif
+
+#ifndef HAVE_GREGSET_T
+typedef struct reg gregset_t;
+#endif
+
+#ifndef HAVE_FPREGSET_T
+typedef struct fpreg fpregset_t;
+#endif
+
+#include "gregset.h"
+#include "x86-64-tdep.h"
+
+
+/* Offset to the gregset_t location where REG is stored. */
+#define REG_OFFSET(reg) offsetof (gregset_t, reg)
+
+/* At reg_offset[REGNO] you'll find the offset to the gregset_t
+ location where the GDB register REGNO is stored. Unsupported
+ registers are marked with `-1'. */
+static int reg_offset[] =
+{
+ REG_OFFSET (r_rax),
+ REG_OFFSET (r_rbx),
+ REG_OFFSET (r_rcx),
+ REG_OFFSET (r_rdx),
+ REG_OFFSET (r_rsi),
+ REG_OFFSET (r_rdi),
+ REG_OFFSET (r_rbp),
+ REG_OFFSET (r_rsp),
+ REG_OFFSET (r_r8),
+ REG_OFFSET (r_r9),
+ REG_OFFSET (r_r10),
+ REG_OFFSET (r_r11),
+ REG_OFFSET (r_r12),
+ REG_OFFSET (r_r13),
+ REG_OFFSET (r_r14),
+ REG_OFFSET (r_r15),
+ REG_OFFSET (r_rip),
+ REG_OFFSET (r_rflags),
+ -1,
+ -1,
+ -1,
+ -1
+};
+
+#define REG_ADDR(regset, regno) ((char *) (regset) + reg_offset[regno])
+
+/* Macro to determine if a register is fetched with PT_GETREGS. */
+#define GETREGS_SUPPLIES(regno) \
+ ((0 <= (regno) && (regno) < X86_64_NUM_GREGS))
+
+
+/* Transfering the registers between GDB, inferiors and core files. */
+
+/* Fill GDB's register array with the general-purpose register values
+ in *GREGSETP. */
+
+void
+supply_gregset (gregset_t *gregsetp)
+{
+ int i;
+
+ for (i = 0; i < X86_64_NUM_GREGS; i++)
+ {
+ if (reg_offset[i] == -1)
+ supply_register (i, NULL);
+ else
+ supply_register (i, REG_ADDR (gregsetp, i));
+ }
+}
+
+/* Fill register REGNO (if it is a general-purpose register) in
+ *GREGSETPS with the value in GDB's register array. If REGNO is -1,
+ do this for all registers. */
+
+void
+fill_gregset (gregset_t *gregsetp, int regno)
+{
+ int i;
+
+ for (i = 0; i < X86_64_NUM_GREGS; i++)
+ if ((regno == -1 || regno == i) && reg_offset[i] != -1)
+ regcache_collect (i, REG_ADDR (gregsetp, i));
+}
+
+/* Fill GDB's register array with the floating-point register values
+ in *FPREGSETP. */
+
+void
+supply_fpregset (fpregset_t *fpregsetp)
+{
+ x86_64_supply_fxsave ((char *) fpregsetp);
+}
+
+/* Fill register REGNO (if it is a floating-point register) in
+ *FPREGSETP with the value in GDB's register array. If REGNO is -1,
+ do this for all registers. */
+
+void
+fill_fpregset (fpregset_t *fpregsetp, int regno)
+{
+ x86_64_fill_fxsave ((char *) fpregsetp, regno);
+}
+
+/* Fetch register REGNO from the inferior. If REGNO is -1, do this
+ for all registers (including the floating point registers). */
+
+void
+fetch_inferior_registers (int regno)
+{
+ if (regno == -1 || GETREGS_SUPPLIES (regno))
+ {
+ gregset_t gregs;
+
+ if (ptrace (PT_GETREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &gregs, 0) == -1)
+ perror_with_name ("Couldn't get registers");
+
+ supply_gregset (&gregs);
+ if (regno != -1)
+ return;
+ }
+
+ if (regno == -1 || regno >= FP0_REGNUM)
+ {
+ fpregset_t fpregs;
+
+ if (ptrace (PT_GETFPREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &fpregs, 0) == -1)
+ perror_with_name ("Couldn't get floating point status");
+
+ supply_fpregset (&fpregs);
+ }
+}
+
+/* Store register REGNO back into the inferior. If REGNO is -1, do
+ this for all registers (including the floating point registers). */
+
+void
+store_inferior_registers (int regno)
+{
+ if (regno == -1 || GETREGS_SUPPLIES (regno))
+ {
+ gregset_t gregs;
+
+ if (ptrace (PT_GETREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &gregs, 0) == -1)
+ perror_with_name ("Couldn't get registers");
+
+ fill_gregset (&gregs, regno);
+
+ if (ptrace (PT_SETREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &gregs, 0) == -1)
+ perror_with_name ("Couldn't write registers");
+
+ if (regno != -1)
+ return;
+ }
+
+ if (regno == -1 || regno >= FP0_REGNUM)
+ {
+ fpregset_t fpregs;
+
+ if (ptrace (PT_GETFPREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &fpregs, 0) == -1)
+ perror_with_name ("Couldn't get floating point status");
+
+ fill_fpregset (&fpregs, regno);
+
+ if (ptrace (PT_SETFPREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) &fpregs, 0) == -1)
+ perror_with_name ("Couldn't write floating point status");
+ }
+}
+
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+void _initialize_amd64fbsd_nat (void);
+
+void
+_initialize_am64fbsd_nat (void)
+{
+ int offset;
+
+ /* To support the recognition of signal handlers, i386bsd-tdep.c
+ hardcodes some constants. Inclusion of this file means that we
+ are compiling a native debugger, which means that we can use the
+ system header files and sysctl(3) to get at the relevant
+ information. */
+
+#define SC_REG_OFFSET amd64fbsd_sc_reg_offset
+
+ /* We only check the program counter, stack pointer and frame
+ pointer since these members of `struct sigcontext' are essential
+ for providing backtraces. */
+
+#define SC_RIP_OFFSET SC_REG_OFFSET[X86_64_RIP_REGNUM]
+#define SC_RSP_OFFSET SC_REG_OFFSET[X86_64_RSP_REGNUM]
+#define SC_RBP_OFFSET SC_REG_OFFSET[X86_64_RBP_REGNUM]
+
+ /* Override the default value for the offset of the program counter
+ in the sigcontext structure. */
+ offset = offsetof (struct sigcontext, sc_rip);
+
+ if (SC_RIP_OFFSET != offset)
+ {
+ warning ("\
+offsetof (struct sigcontext, sc_rip) yields %d instead of %d.\n\
+Please report this to <bug-gdb@gnu.org>.",
+ offset, SC_RIP_OFFSET);
+ }
+
+ SC_RIP_OFFSET = offset;
+
+ /* Likewise for the stack pointer. */
+ offset = offsetof (struct sigcontext, sc_rsp);
+
+ if (SC_RSP_OFFSET != offset)
+ {
+ warning ("\
+offsetof (struct sigcontext, sc_rsp) yields %d instead of %d.\n\
+Please report this to <bug-gdb@gnu.org>.",
+ offset, SC_RSP_OFFSET);
+ }
+
+ SC_RSP_OFFSET = offset;
+
+ /* And the frame pointer. */
+ offset = offsetof (struct sigcontext, sc_rbp);
+
+ if (SC_RBP_OFFSET != offset)
+ {
+ warning ("\
+offsetof (struct sigcontext, sc_rbp) yields %d instead of %d.\n\
+Please report this to <bug-gdb@gnu.org>.",
+ offset, SC_RBP_OFFSET);
+ }
+
+ SC_RBP_OFFSET = offset;
+
+ /* FreeBSD provides a kern.ps_strings sysctl that we can use to
+ locate the sigtramp. That way we can still recognize a sigtramp
+ if its location is changed in a new kernel. Of course this is
+ still based on the assumption that the sigtramp is placed
+ directly under the location where the program arguments and
+ environment can be found. */
+ {
+ int mib[2];
+ int ps_strings;
+ size_t len;
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PS_STRINGS;
+ len = sizeof (ps_strings);
+ if (sysctl (mib, 2, &ps_strings, &len, NULL, 0) == 0)
+ {
+ amd64fbsd_sigtramp_start = ps_strings - 32;
+ amd64fbsd_sigtramp_end = ps_strings;
+ }
+ }
+}
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 043600e..40a863b 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -131,22 +131,6 @@ generic_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
return 0;
}
-const char *
-legacy_register_name (int i)
-{
-#ifdef REGISTER_NAMES
- static char *names[] = REGISTER_NAMES;
- if (i < 0 || i >= (sizeof (names) / sizeof (*names)))
- return NULL;
- else
- return names[i];
-#else
- internal_error (__FILE__, __LINE__,
- "legacy_register_name: called.");
- return NULL;
-#endif
-}
-
#if defined (CALL_DUMMY)
LONGEST legacy_call_dummy_words[] = CALL_DUMMY;
#else
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index 234257d..fcea531 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -55,9 +55,6 @@ extern gdbarch_frameless_function_invocation_ftype generic_frameless_function_in
language family, so that case is irrelevant for C. */
extern gdbarch_return_value_on_stack_ftype generic_return_value_on_stack_not;
-/* Map onto old REGISTER_NAMES. */
-extern const char *legacy_register_name (int i);
-
/* Accessor for old global function pointer for disassembly. */
extern int legacy_print_insn (bfd_vma vma, disassemble_info *info);
diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
index 665f66a..477aa82 100644
--- a/gdb/avr-tdep.c
+++ b/gdb/avr-tdep.c
@@ -774,14 +774,6 @@ avr_scan_prologue (CORE_ADDR pc, struct avr_unwind_cache *info)
return pc + avr_scan_arg_moves (vpc, prologue);;
}
-/* Returns the return address for a dummy. */
-
-static CORE_ADDR
-avr_call_dummy_address (void)
-{
- return entry_point_address ();
-}
-
static CORE_ADDR
avr_skip_prologue (CORE_ADDR pc)
{
@@ -1070,7 +1062,7 @@ static const struct frame_unwind avr_frame_unwind = {
};
const struct frame_unwind *
-avr_frame_p (CORE_ADDR pc)
+avr_frame_sniffer (struct frame_info *next_frame)
{
return &avr_frame_unwind;
}
@@ -1321,7 +1313,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_extract_return_value (gdbarch, avr_extract_return_value);
set_gdbarch_print_insn (gdbarch, print_insn_avr);
- set_gdbarch_call_dummy_address (gdbarch, avr_call_dummy_address);
set_gdbarch_push_dummy_call (gdbarch, avr_push_dummy_call);
set_gdbarch_address_to_pointer (gdbarch, avr_address_to_pointer);
@@ -1341,7 +1332,7 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frameless_function_invocation (gdbarch,
frameless_look_for_prologue);
- frame_unwind_append_predicate (gdbarch, avr_frame_p);
+ frame_unwind_append_sniffer (gdbarch, avr_frame_sniffer);
frame_base_set_default (gdbarch, &avr_frame_base);
set_gdbarch_unwind_dummy_id (gdbarch, avr_unwind_dummy_id);
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 7464503..4e689ac6 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -59,7 +59,8 @@ inside_entry_file (CORE_ADDR addr)
return 1;
if (symfile_objfile == 0)
return 0;
- if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
+ if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT
+ || CALL_DUMMY_LOCATION == AT_SYMBOL)
{
/* Do not stop backtracing if the pc is in the call dummy
at the entry point. */
@@ -209,31 +210,6 @@ frameless_look_for_prologue (struct frame_info *frame)
return 0;
}
-/* return the address of the PC for the given FRAME, ie the current PC value
- if FRAME is the innermost frame, or the address adjusted to point to the
- call instruction if not. */
-
-CORE_ADDR
-frame_address_in_block (struct frame_info *frame)
-{
- CORE_ADDR pc = get_frame_pc (frame);
-
- /* If we are not in the innermost frame, and we are not interrupted
- by a signal, frame->pc points to the instruction following the
- call. As a consequence, we need to get the address of the previous
- instruction. Unfortunately, this is not straightforward to do, so
- we just use the address minus one, which is a good enough
- approximation. */
- /* FIXME: cagney/2002-11-10: Should this instead test for
- NORMAL_FRAME? A dummy frame (in fact all the abnormal frames)
- save the PC value in the block. */
- if (get_next_frame (frame) != 0
- && get_frame_type (get_next_frame (frame)) != SIGTRAMP_FRAME)
- --pc;
-
- return pc;
-}
-
/* Return the innermost lexical block in execution
in a specified stack frame. The frame address is assumed valid.
@@ -253,7 +229,7 @@ frame_address_in_block (struct frame_info *frame)
struct block *
get_frame_block (struct frame_info *frame, CORE_ADDR *addr_in_block)
{
- const CORE_ADDR pc = frame_address_in_block (frame);
+ const CORE_ADDR pc = get_frame_address_in_block (frame);
if (addr_in_block)
*addr_in_block = pc;
@@ -553,7 +529,7 @@ block_innermost_frame (struct block *block)
frame = get_prev_frame (frame);
if (frame == NULL)
return NULL;
- calling_pc = frame_address_in_block (frame);
+ calling_pc = get_frame_address_in_block (frame);
if (calling_pc >= start && calling_pc < end)
return frame;
}
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index e681e32..8aa8a5c 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -584,17 +584,17 @@ commands_command (char *arg, int from_tty)
ALL_BREAKPOINTS (b)
if (b->number == bnum)
- {
- char tmpbuf[128];
- sprintf (tmpbuf,
- "Type commands for when breakpoint %d is hit, one per line.",
- bnum);
- l = read_command_lines (tmpbuf, from_tty);
- free_command_lines (&b->commands);
- b->commands = l;
- breakpoints_changed ();
- breakpoint_modify_event (b->number);
- return;
+ {
+ char *tmpbuf = xstrprintf ("Type commands for when breakpoint %d is hit, one per line.",
+ bnum);
+ struct cleanup *cleanups = make_cleanup (xfree, tmpbuf);
+ l = read_command_lines (tmpbuf, from_tty);
+ do_cleanups (cleanups);
+ free_command_lines (&b->commands);
+ b->commands = l;
+ breakpoints_changed ();
+ breakpoint_modify_event (b->number);
+ return;
}
error ("No breakpoint number %d.", bnum);
}
@@ -749,9 +749,6 @@ insert_breakpoints (void)
int process_warning = 0;
#endif
- static char message1[] = "Error inserting catchpoint %d:\n";
- static char message[sizeof (message1) + 30];
-
struct ui_file *tmp_error_stream = mem_fileopen ();
make_cleanup_ui_file_delete (tmp_error_stream);
@@ -912,9 +909,6 @@ insert_breakpoints (void)
/* If we get here, we must have a callback mechanism for exception
events -- with g++ style embedded label support, we insert
ordinary breakpoints and not catchpoints. */
- /* Format possible error message */
- sprintf (message, message1, b->number);
-
val = target_insert_breakpoint (b->address, b->shadow_contents);
if (val)
{
@@ -932,14 +926,18 @@ insert_breakpoints (void)
else
{
/* Bp set, now make sure callbacks are enabled */
+ /* Format possible error msg */
+ char *message = xstrprintf ("Error inserting catchpoint %d:\n",
+ b->number);
+ struct cleanup *cleanups = make_cleanup (xfree, message);
int val;
args_for_catchpoint_enable args;
args.kind = b->type == bp_catch_catch ?
EX_EVENT_CATCH : EX_EVENT_THROW;
args.enable_p = 1;
val = catch_errors (cover_target_enable_exception_callback,
- &args,
- message, RETURN_MASK_ALL);
+ &args, message, RETURN_MASK_ALL);
+ do_cleanups (cleanups);
if (val != 0 && val != -1)
{
b->inserted = 1;
@@ -1083,11 +1081,12 @@ insert_breakpoints (void)
&& !b->inserted
&& !b->duplicate)
{
- char prefix[64];
-
- sprintf (prefix, "warning: inserting catchpoint %d: ", b->number);
+ char *prefix = xstrprintf ("warning: inserting catchpoint %d: ",
+ b->number);
+ struct cleanup *cleanups = make_cleanup (xfree, prefix);
val = catch_exceptions (uiout, insert_catchpoint, b, prefix,
RETURN_MASK_ERROR);
+ do_cleanups (cleanups);
if (val < 0)
b->enable_state = bp_disabled;
else
@@ -2508,9 +2507,6 @@ bpstat_stop_status (CORE_ADDR *pc, int not_a_sw_breakpoint)
struct bpstats root_bs[1];
/* Pointer to the last thing in the chain currently. */
bpstat bs = root_bs;
- static char message1[] =
- "Error evaluating expression for watchpoint %d\n";
- char message[sizeof (message1) + 30 /* slop */ ];
/* Get the address where the breakpoint would have been. The
"not_a_sw_breakpoint" argument is meant to distinguish between a
@@ -2609,12 +2605,16 @@ bpstat_stop_status (CORE_ADDR *pc, int not_a_sw_breakpoint)
bs->stop = 1;
bs->print = 1;
- sprintf (message, message1, b->number);
if (b->type == bp_watchpoint ||
b->type == bp_hardware_watchpoint)
{
- switch (catch_errors (watchpoint_check, bs, message,
- RETURN_MASK_ALL))
+ char *message = xstrprintf ("Error evaluating expression for watchpoint %d\n",
+ b->number);
+ struct cleanup *cleanups = make_cleanup (xfree, message);
+ int e = catch_errors (watchpoint_check, bs, message,
+ RETURN_MASK_ALL);
+ do_cleanups (cleanups);
+ switch (e)
{
case WP_DELETED:
/* We've already printed what needs to be printed. */
@@ -2682,42 +2682,49 @@ bpstat_stop_status (CORE_ADDR *pc, int not_a_sw_breakpoint)
}
}
if (found)
- switch (catch_errors (watchpoint_check, bs, message,
- RETURN_MASK_ALL))
- {
- case WP_DELETED:
- /* We've already printed what needs to be printed. */
- bs->print_it = print_it_done;
- /* Stop. */
- break;
- case WP_VALUE_CHANGED:
- if (b->type == bp_read_watchpoint)
- {
- /* Don't stop: read watchpoints shouldn't fire if
- the value has changed. This is for targets which
- cannot set read-only watchpoints. */
- bs->print_it = print_it_noop;
- bs->stop = 0;
- continue;
- }
- ++(b->hit_count);
- break;
- case WP_VALUE_NOT_CHANGED:
- /* Stop. */
- ++(b->hit_count);
- break;
- default:
- /* Can't happen. */
- case 0:
- /* Error from catch_errors. */
- printf_filtered ("Watchpoint %d deleted.\n", b->number);
- if (b->related_breakpoint)
- b->related_breakpoint->disposition = disp_del_at_next_stop;
- b->disposition = disp_del_at_next_stop;
- /* We've already printed what needs to be printed. */
- bs->print_it = print_it_done;
- break;
- }
+ {
+ char *message = xstrprintf ("Error evaluating expression for watchpoint %d\n",
+ b->number);
+ struct cleanup *cleanups = make_cleanup (xfree, message);
+ int e = catch_errors (watchpoint_check, bs, message,
+ RETURN_MASK_ALL);
+ do_cleanups (cleanups);
+ switch (e)
+ {
+ case WP_DELETED:
+ /* We've already printed what needs to be printed. */
+ bs->print_it = print_it_done;
+ /* Stop. */
+ break;
+ case WP_VALUE_CHANGED:
+ if (b->type == bp_read_watchpoint)
+ {
+ /* Don't stop: read watchpoints shouldn't fire if
+ the value has changed. This is for targets
+ which cannot set read-only watchpoints. */
+ bs->print_it = print_it_noop;
+ bs->stop = 0;
+ continue;
+ }
+ ++(b->hit_count);
+ break;
+ case WP_VALUE_NOT_CHANGED:
+ /* Stop. */
+ ++(b->hit_count);
+ break;
+ default:
+ /* Can't happen. */
+ case 0:
+ /* Error from catch_errors. */
+ printf_filtered ("Watchpoint %d deleted.\n", b->number);
+ if (b->related_breakpoint)
+ b->related_breakpoint->disposition = disp_del_at_next_stop;
+ b->disposition = disp_del_at_next_stop;
+ /* We've already printed what needs to be printed. */
+ bs->print_it = print_it_done;
+ break;
+ }
+ }
else /* found == 0 */
{
/* This is a case where some watchpoint(s) triggered,
@@ -4985,7 +4992,6 @@ break_at_finish_at_depth_command_1 (char *arg, int flag, int from_tty)
CORE_ADDR low, high, selected_pc = 0;
char *extra_args = NULL;
char *level_arg;
- char *addr_string;
int extra_args_len = 0, if_arg = 0;
if (!arg ||
@@ -5039,11 +5045,11 @@ break_at_finish_at_depth_command_1 (char *arg, int flag, int from_tty)
{
if (find_pc_partial_function (selected_pc, (char **) NULL, &low, &high))
{
- addr_string = (char *) xmalloc (26 + extra_args_len);
+ char *addr_string;
if (extra_args_len)
- sprintf (addr_string, "*0x%s %s", paddr_nz (high), extra_args);
+ addr_string = xstrprintf ("*0x%s %s", paddr_nz (high), extra_args);
else
- sprintf (addr_string, "*0x%s", paddr_nz (high));
+ addr_string = xstrprintf ("*0x%s", paddr_nz (high));
break_command_1 (addr_string, flag, from_tty);
xfree (addr_string);
}
@@ -5074,9 +5080,8 @@ break_at_finish_command_1 (char *arg, int flag, int from_tty)
{
if (deprecated_selected_frame)
{
- addr_string = (char *) xmalloc (15);
- sprintf (addr_string, "*0x%s",
- paddr_nz (get_frame_pc (deprecated_selected_frame)));
+ addr_string = xstrprintf ("*0x%s",
+ paddr_nz (get_frame_pc (deprecated_selected_frame)));
if (arg)
if_arg = 1;
}
@@ -5122,11 +5127,12 @@ break_at_finish_command_1 (char *arg, int flag, int from_tty)
sal = sals.sals[i];
if (find_pc_partial_function (sal.pc, (char **) NULL, &low, &high))
{
- break_string = (char *) xmalloc (extra_args_len + 26);
+ break_string;
if (extra_args_len)
- sprintf (break_string, "*0x%s %s", paddr_nz (high), extra_args);
+ break_string = xstrprintf ("*0x%s %s", paddr_nz (high),
+ extra_args);
else
- sprintf (break_string, "*0x%s", paddr_nz (high));
+ break_string = xstrprintf ("*0x%s", paddr_nz (high));
break_command_1 (break_string, flag, from_tty);
xfree (break_string);
}
@@ -6537,17 +6543,17 @@ delete_breakpoint (struct breakpoint *bpt)
exceptions are supported in this way, it's OK for now. FIXME */
if (ep_is_exception_catchpoint (bpt) && target_has_execution)
{
- static char message1[] = "Error in deleting catchpoint %d:\n";
- static char message[sizeof (message1) + 30];
- args_for_catchpoint_enable args;
-
/* Format possible error msg */
- sprintf (message, message1, bpt->number);
+ char *message = xstrprintf ("Error in deleting catchpoint %d:\n",
+ bpt->number);
+ struct cleanup *cleanups = make_cleanup (xfree, message);
+ args_for_catchpoint_enable args;
args.kind = bpt->type == bp_catch_catch ?
EX_EVENT_CATCH : EX_EVENT_THROW;
args.enable_p = 0;
catch_errors (cover_target_enable_exception_callback, &args,
message, RETURN_MASK_ALL);
+ do_cleanups (cleanups);
}
@@ -6937,16 +6943,17 @@ breakpoint_re_set (void)
struct breakpoint *b, *temp;
enum language save_language;
int save_input_radix;
- static char message1[] = "Error in re-setting breakpoint %d:\n";
- char message[sizeof (message1) + 30 /* slop */ ];
save_language = current_language->la_language;
save_input_radix = input_radix;
ALL_BREAKPOINTS_SAFE (b, temp)
{
/* Format possible error msg */
- sprintf (message, message1, b->number);
+ char *message = xstrprintf ("Error in re-setting breakpoint %d:\n",
+ b->number);
+ struct cleanup *cleanups = make_cleanup (xfree, message);
catch_errors (breakpoint_re_set_one, b, message, RETURN_MASK_ALL);
+ do_cleanups (cleanups);
}
set_language (save_language);
input_radix = save_input_radix;
diff --git a/gdb/builtin-regs.c b/gdb/builtin-regs.c
deleted file mode 100644
index 07e5fcc..0000000
--- a/gdb/builtin-regs.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Builtin registers, for GDB, the GNU debugger.
-
- Copyright 2002 Free Software Foundation, Inc.
-
- Contributed by Red Hat.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include "defs.h"
-#include "builtin-regs.h"
-#include "gdbtypes.h"
-#include "gdb_string.h"
-#include "gdb_assert.h"
-
-/* Implement builtin register types. Builtin registers have regnum's
- that live above of the range [0 .. NUM_REGS + NUM_PSEUDO_REGS)
- (which is controlled by the target). The target should never see a
- builtin register's regnum value. */
-
-/* An array of builtin registers. Always append, never delete. By
- doing this, the relative regnum (offset from NUM_REGS +
- NUM_PSEUDO_REGS) assigned to each builtin register never changes. */
-
-struct builtin_reg
-{
- const char *name;
- struct value *(*value) (struct frame_info * frame);
-};
-
-static struct builtin_reg *builtin_regs;
-int nr_builtin_regs;
-
-void
-add_builtin_reg (const char *name, struct value *(*value) (struct frame_info * frame))
-{
- nr_builtin_regs++;
- builtin_regs = xrealloc (builtin_regs,
- nr_builtin_regs * sizeof (builtin_regs[0]));
- builtin_regs[nr_builtin_regs - 1].name = name;
- builtin_regs[nr_builtin_regs - 1].value = value;
-}
-
-int
-builtin_reg_map_name_to_regnum (const char *name, int len)
-{
- int reg;
- for (reg = 0; reg < nr_builtin_regs; reg++)
- {
- if (len == strlen (builtin_regs[reg].name)
- && strncmp (builtin_regs[reg].name, name, len) == 0)
- return NUM_REGS + NUM_PSEUDO_REGS + reg;
- }
- return -1;
-}
-
-const char *
-builtin_reg_map_regnum_to_name (int regnum)
-{
- int reg = regnum - (NUM_REGS + NUM_PSEUDO_REGS);
- if (reg < 0 || reg >= nr_builtin_regs)
- return NULL;
- return builtin_regs[reg].name;
-}
-
-struct value *
-value_of_builtin_reg (int regnum, struct frame_info *frame)
-{
- int reg = regnum - (NUM_REGS + NUM_PSEUDO_REGS);
- gdb_assert (reg >= 0 && reg < nr_builtin_regs);
- return builtin_regs[reg].value (frame);
-}
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index be516c9..8a0d057 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -448,6 +448,26 @@ add_setshow_boolean_cmd (char *name,
c->enums = boolean_enums;
}
+/* Add element named NAME to both the set and show command LISTs (the
+ list for set/show or some sublist thereof). CLASS is as in
+ add_cmd. VAR is address of the variable which will contain the
+ value. SET_DOC and SHOW_DOR are the documentation strings. */
+void
+add_setshow_uinteger_cmd (char *name,
+ enum command_class class,
+ unsigned int *var, char *set_doc, char *show_doc,
+ cmd_sfunc_ftype *set_func,
+ cmd_sfunc_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list)
+{
+ add_setshow_cmd_full (name, class, var_uinteger, var,
+ set_doc, show_doc,
+ set_func, show_func,
+ set_list, show_list,
+ NULL, NULL);
+}
+
/* Where SETCMD has already been added, add the corresponding show
command to LIST and return a pointer to the added command (not
necessarily the head of LIST). */
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 0f789bb..ab69ca4 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1092,11 +1092,12 @@ define_command (char *comname, int from_tty)
if (c)
{
+ int q;
if (c->class == class_user || c->class == class_alias)
- tem = "Redefine command \"%s\"? ";
+ q = query ("Redefine command \"%s\"? ", c->name);
else
- tem = "Really redefine built-in command \"%s\"? ";
- if (!query (tem, c->name))
+ q = query ("Really redefine built-in command \"%s\"? ", c->name);
+ if (!q)
error ("Command \"%s\" not redefined.", c->name);
}
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 1d68ae4..64a0d73 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -213,7 +213,7 @@ do_setshow_command (char *arg, int from_tty, struct cmd_list_element *c)
strcat (msg, c->enums[i]);
}
strcat (msg, ".");
- error (msg);
+ error ("%s", msg);
}
p = strchr (arg, ' ');
diff --git a/gdb/coff-solib.h b/gdb/coff-solib.h
index 144f36d..d29f96a 100644
--- a/gdb/coff-solib.h
+++ b/gdb/coff-solib.h
@@ -1,5 +1,5 @@
/* COFF (SVR3) Shared library declarations for GDB, the GNU Debugger.
- Copyright 1992, 1993, 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1992, 1993, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of GDB.
@@ -109,7 +109,7 @@ extern void coff_solib_create_inferior_hook (void); /* solib.c */
*/
#define SOLIB_LOADED_LIBRARY_PATHNAME(pid) \
-(0)
+""
/* This function returns TRUE if the dynamic linker has just reported
an unload of a library.
diff --git a/gdb/command.h b/gdb/command.h
index 96c99ab..9cadd63 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -262,6 +262,16 @@ extern void add_setshow_boolean_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
+extern void add_setshow_uinteger_cmd (char *name,
+ enum command_class class,
+ unsigned int *var,
+ char *set_doc,
+ char *show_doc,
+ cmd_sfunc_ftype *set_func,
+ cmd_sfunc_ftype *show_func,
+ struct cmd_list_element **set_list,
+ struct cmd_list_element **show_list);
+
extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
struct cmd_list_element
**);
diff --git a/gdb/complaints.c b/gdb/complaints.c
index 4758008..252e654 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -60,6 +60,15 @@ struct complain
struct complain *next;
};
+/* The explanatory message that should accompany the complaint. The
+ message is in two parts - pre and post - that are printed around
+ the complaint text. */
+struct explanation
+{
+ const char *prefix;
+ const char *postfix;
+};
+
struct complaints
{
struct complain *root;
@@ -75,20 +84,21 @@ struct complaints
/* The explanatory messages that should accompany the complaint.
NOTE: cagney/2002-08-14: In a desperate attempt at being vaguely
i18n friendly, this is an array of two messages. When present,
- EXPLANATION[SERIES] is used to wrap the message. */
- const char **explanation;
+ the PRE and POST EXPLANATION[SERIES] are used to wrap the
+ message. */
+ const struct explanation *explanation;
};
static struct complain complaint_sentinel;
/* The symbol table complaint table. */
-static const char *symfile_explanations[] = {
- "During symbol reading, %s.",
- "During symbol reading...%s...",
- "%s...",
- "%s...",
- NULL
+static struct explanation symfile_explanations[] = {
+ { "During symbol reading, ", "." },
+ { "During symbol reading...", "..."},
+ { "", "..."},
+ { "", "..."},
+ { NULL, NULL }
};
static struct complaints symfile_complaint_book = {
@@ -192,9 +202,9 @@ vcomplaint (struct complaints **c, const char *file, int line, const char *fmt,
wrap_here ("");
if (series != SUBSEQUENT_MESSAGE)
begin_line ();
- fprintf_filtered (gdb_stderr,
- complaints->explanation[series],
- msg);
+ fprintf_filtered (gdb_stderr, "%s%s%s",
+ complaints->explanation[series].prefix, msg,
+ complaints->explanation[series].postfix);
/* Force a line-break after any isolated message. For the
other cases, clear_complaints() takes care of any missing
trailing newline, the wrap_here() is just a hint. */
diff --git a/gdb/config/alpha/nm-fbsd.h b/gdb/config/alpha/nm-fbsd.h
index 9e72709..2b3975a 100644
--- a/gdb/config/alpha/nm-fbsd.h
+++ b/gdb/config/alpha/nm-fbsd.h
@@ -37,8 +37,6 @@
/* Shared library support. */
-#define SVR4_SHARED_LIBS
-
#include "solib.h" /* Support for shared libraries. */
#include "elf/common.h" /* Additional ELF shared library info. */
diff --git a/gdb/config/frv/tm-frv.h b/gdb/config/frv/tm-frv.h
index 40a2480..303d1d3 100644
--- a/gdb/config/frv/tm-frv.h
+++ b/gdb/config/frv/tm-frv.h
@@ -45,18 +45,4 @@ extern int frv_check_watch_resources (int type, int cnt, int ot);
extern CORE_ADDR frv_stopped_data_address(void);
/* Use these macros for watchpoint insertion/deletion. */
-#define target_insert_watchpoint(addr, len, type) \
- remote_insert_watchpoint (addr, len, type)
-#define target_remove_watchpoint(addr, len, type) \
- remote_remove_watchpoint (addr, len, type)
-#define target_insert_hw_breakpoint(addr, shadow) \
- remote_insert_hw_breakpoint (addr, 1)
-#define target_remove_hw_breakpoint(addr, shadow) \
- remote_remove_hw_breakpoint (addr, 1)
#define target_stopped_data_address() frv_stopped_data_address()
-
-/* These declarations should be in remote.h, no? */
-extern int remote_insert_watchpoint (CORE_ADDR addr, int len, int type);
-extern int remote_remove_watchpoint (CORE_ADDR addr, int len, int type);
-extern int remote_insert_hw_breakpoint (CORE_ADDR addr, int len);
-extern int remote_remove_hw_breakpoint (CORE_ADDR addr, int len);
diff --git a/gdb/config/i386/nm-i386sol2.h b/gdb/config/i386/nm-i386sol2.h
index aeb89a2..18afa04 100644
--- a/gdb/config/i386/nm-i386sol2.h
+++ b/gdb/config/i386/nm-i386sol2.h
@@ -28,6 +28,7 @@
can support "thousands" of hardware watchpoints, but gives no
method for finding out how many. So just tell GDB 'yes'. */
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(TYPE, CNT, OT) 1
+#define TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT(SIZE) 1
/* When a hardware watchpoint fires off the PC will be left at the
instruction following the one which caused the watchpoint.
diff --git a/gdb/config/i386/nm-linux.h b/gdb/config/i386/nm-linux.h
index ad57124..1df875f 100644
--- a/gdb/config/i386/nm-linux.h
+++ b/gdb/config/i386/nm-linux.h
@@ -82,4 +82,13 @@ extern int cannot_store_register (int regno);
/* Override child_resume in `infptrace.c'. */
#define CHILD_RESUME
+/* `linux-nat.c' and `i386-nat.c' have their own versions of
+ child_post_startup_inferior. Define this to use the copy in
+ `i386-linux-nat.c' instead, which calls both.
+
+ NOTE drow/2003-08-17: This is ugly beyond words, but properly
+ fixing it will require some serious surgery. Ideally the target
+ stack could be used for this. */
+#define LINUX_CHILD_POST_STARTUP_INFERIOR
+
#endif /* nm-linux.h */
diff --git a/gdb/config/i386/nm-nto.h b/gdb/config/i386/nm-nto.h
new file mode 100644
index 0000000..34d9903
--- /dev/null
+++ b/gdb/config/i386/nm-nto.h
@@ -0,0 +1,6 @@
+#ifndef _NM_NTO_H
+#define _NM_NTO_H
+
+/* This file needed to build a native debugger. */
+
+#endif
diff --git a/gdb/config/i386/nm-x86-64linux.h b/gdb/config/i386/nm-x86-64linux.h
index 8ff8095..d1ac910 100644
--- a/gdb/config/i386/nm-x86-64linux.h
+++ b/gdb/config/i386/nm-x86-64linux.h
@@ -61,4 +61,9 @@ extern unsigned long x86_64_linux_dr_get_status (void);
/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */
#define FETCH_INFERIOR_REGISTERS
+/* `linux-nat.c' and `i386-nat.c' have their own versions of
+ child_post_startup_inferior. Define this to use the copy in
+ `x86-86-linux-nat.c' instead, which calls both. */
+#define LINUX_CHILD_POST_STARTUP_INFERIOR
+
#endif /* NM_X86_64_LINUX_H */
diff --git a/gdb/config/i386/nto.mh b/gdb/config/i386/nto.mh
new file mode 100644
index 0000000..f412579
--- /dev/null
+++ b/gdb/config/i386/nto.mh
@@ -0,0 +1,7 @@
+# Host: Intel 386 running QNX.
+
+NAT_FILE= nm-nto.h
+
+NATDEPFILES= nto-procfs.o
+
+XM_FILE= xm-i386.h
diff --git a/gdb/config/m32r/tm-m32r.h b/gdb/config/m32r/tm-m32r.h
deleted file mode 100644
index 89af4e3..0000000
--- a/gdb/config/m32r/tm-m32r.h
+++ /dev/null
@@ -1,231 +0,0 @@
-// OBSOLETE /* Parameters for execution on a Mitsubishi m32r processor.
-// OBSOLETE Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-// OBSOLETE Free Software Foundation, Inc.
-// OBSOLETE
-// OBSOLETE This file is part of GDB.
-// OBSOLETE
-// OBSOLETE This program is free software; you can redistribute it and/or modify
-// OBSOLETE it under the terms of the GNU General Public License as published by
-// OBSOLETE the Free Software Foundation; either version 2 of the License, or
-// OBSOLETE (at your option) any later version.
-// OBSOLETE
-// OBSOLETE This program is distributed in the hope that it will be useful,
-// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of
-// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// OBSOLETE GNU General Public License for more details.
-// OBSOLETE
-// OBSOLETE You should have received a copy of the GNU General Public License
-// OBSOLETE along with this program; if not, write to the Free Software
-// OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330,
-// OBSOLETE Boston, MA 02111-1307, USA. */
-// OBSOLETE
-// OBSOLETE #include "regcache.h"
-// OBSOLETE
-// OBSOLETE /* Used by mswin. */
-// OBSOLETE #define TARGET_M32R 1
-// OBSOLETE
-// OBSOLETE /* mvs_check REGISTER_NAMES */
-// OBSOLETE #define REGISTER_NAMES \
-// OBSOLETE { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
-// OBSOLETE "r8", "r9", "r10", "r11", "r12", "fp", "lr", "sp", \
-// OBSOLETE "psw", "cbr", "spi", "spu", "bpc", "pc", "accl", "acch", \
-// OBSOLETE /* "cond", "sm", "bsm", "ie", "bie", "bcarry", */ \
-// OBSOLETE }
-// OBSOLETE /* mvs_check NUM_REGS */
-// OBSOLETE #define NUM_REGS 24
-// OBSOLETE
-// OBSOLETE /* mvs_check REGISTER_SIZE */
-// OBSOLETE #define REGISTER_SIZE 4
-// OBSOLETE /* mvs_check MAX_REGISTER_RAW_SIZE */
-// OBSOLETE #define MAX_REGISTER_RAW_SIZE 4
-// OBSOLETE
-// OBSOLETE /* mvs_check *_REGNUM */
-// OBSOLETE #define R0_REGNUM 0
-// OBSOLETE #define STRUCT_RETURN_REGNUM 0
-// OBSOLETE #define ARG0_REGNUM 0
-// OBSOLETE #define ARGLAST_REGNUM 3
-// OBSOLETE #define V0_REGNUM 0
-// OBSOLETE #define V1_REGNUM 1
-// OBSOLETE #define FP_REGNUM 13
-// OBSOLETE #define RP_REGNUM 14
-// OBSOLETE #define SP_REGNUM 15
-// OBSOLETE #define PSW_REGNUM 16
-// OBSOLETE #define CBR_REGNUM 17
-// OBSOLETE #define SPI_REGNUM 18
-// OBSOLETE #define SPU_REGNUM 19
-// OBSOLETE #define BPC_REGNUM 20
-// OBSOLETE #define PC_REGNUM 21
-// OBSOLETE #define ACCL_REGNUM 22
-// OBSOLETE #define ACCH_REGNUM 23
-// OBSOLETE
-// OBSOLETE /* mvs_check REGISTER_BYTES */
-// OBSOLETE #define REGISTER_BYTES (NUM_REGS * 4)
-// OBSOLETE
-// OBSOLETE /* mvs_check REGISTER_VIRTUAL_TYPE */
-// OBSOLETE #define REGISTER_VIRTUAL_TYPE(REG) builtin_type_int
-// OBSOLETE
-// OBSOLETE /* mvs_check REGISTER_BYTE */
-// OBSOLETE #define REGISTER_BYTE(REG) ((REG) * 4)
-// OBSOLETE /* mvs_check REGISTER_VIRTUAL_SIZE */
-// OBSOLETE #define REGISTER_VIRTUAL_SIZE(REG) 4
-// OBSOLETE /* mvs_check REGISTER_RAW_SIZE */
-// OBSOLETE #define REGISTER_RAW_SIZE(REG) 4
-// OBSOLETE
-// OBSOLETE /* mvs_check MAX_REGISTER_VIRTUAL_SIZE */
-// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE 4
-// OBSOLETE
-// OBSOLETE /* mvs_check BREAKPOINT */
-// OBSOLETE #define BREAKPOINT {0x10, 0xf1}
-// OBSOLETE
-// OBSOLETE /* mvs_no_check FUNCTION_START_OFFSET */
-// OBSOLETE #define FUNCTION_START_OFFSET 0
-// OBSOLETE
-// OBSOLETE /* mvs_check DECR_PC_AFTER_BREAK */
-// OBSOLETE #define DECR_PC_AFTER_BREAK 0
-// OBSOLETE
-// OBSOLETE /* mvs_check INNER_THAN */
-// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-// OBSOLETE
-// OBSOLETE /* mvs_check SAVED_PC_AFTER_CALL */
-// OBSOLETE #define SAVED_PC_AFTER_CALL(fi) read_register (RP_REGNUM)
-// OBSOLETE
-// OBSOLETE struct frame_info;
-// OBSOLETE struct frame_saved_regs;
-// OBSOLETE struct type;
-// OBSOLETE struct value;
-// OBSOLETE
-// OBSOLETE /* Define other aspects of the stack frame.
-// OBSOLETE We keep the offsets of all saved registers, 'cause we need 'em a lot!
-// OBSOLETE We also keep the current size of the stack frame, and whether
-// OBSOLETE the frame pointer is valid (for frameless functions, and when we're
-// OBSOLETE still in the prologue of a function with a frame) */
-// OBSOLETE
-// OBSOLETE /* mvs_check EXTRA_FRAME_INFO */
-// OBSOLETE #define EXTRA_FRAME_INFO \
-// OBSOLETE struct frame_saved_regs fsr; \
-// OBSOLETE int framesize; \
-// OBSOLETE int using_frame_pointer;
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE extern void m32r_init_extra_frame_info (struct frame_info *fi);
-// OBSOLETE /* mvs_check INIT_EXTRA_FRAME_INFO */
-// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) m32r_init_extra_frame_info (fi)
-// OBSOLETE /* mvs_no_check DEPRECATED_INIT_FRAME_PC */
-// OBSOLETE #define DEPRECATED_INIT_FRAME_PC init_frame_pc_noop
-// OBSOLETE
-// OBSOLETE extern void
-// OBSOLETE m32r_frame_find_saved_regs (struct frame_info *fi,
-// OBSOLETE struct frame_saved_regs *regaddr);
-// OBSOLETE
-// OBSOLETE /* Put here the code to store, into a struct frame_saved_regs,
-// OBSOLETE the addresses of the saved registers of frame described by FRAME_INFO.
-// OBSOLETE This includes special registers such as pc and fp saved in special
-// OBSOLETE ways in the stack frame. sp is even more special:
-// OBSOLETE the address we return for it IS the sp for the next frame. */
-// OBSOLETE
-// OBSOLETE /* mvs_check FRAME_FIND_SAVED_REGS */
-// OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
-// OBSOLETE m32r_frame_find_saved_regs(frame_info, &(frame_saved_regs))
-// OBSOLETE
-// OBSOLETE extern CORE_ADDR m32r_frame_chain (struct frame_info *fi);
-// OBSOLETE /* mvs_check FRAME_CHAIN */
-// OBSOLETE #define FRAME_CHAIN(fi) m32r_frame_chain (fi)
-// OBSOLETE
-// OBSOLETE extern CORE_ADDR m32r_find_callers_reg (struct frame_info *fi, int regnum);
-// OBSOLETE extern CORE_ADDR m32r_frame_saved_pc (struct frame_info *);
-// OBSOLETE /* mvs_check FRAME_SAVED_PC */
-// OBSOLETE #define FRAME_SAVED_PC(fi) m32r_frame_saved_pc (fi)
-// OBSOLETE
-// OBSOLETE /* mvs_check DEPRECATED_EXTRACT_RETURN_VALUE */
-// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
-// OBSOLETE memcpy ((VALBUF), \
-// OBSOLETE (char *)(REGBUF) + REGISTER_BYTE (V0_REGNUM) + \
-// OBSOLETE ((TYPE_LENGTH (TYPE) > 4 ? 8 : 4) - TYPE_LENGTH (TYPE)), \
-// OBSOLETE TYPE_LENGTH (TYPE))
-// OBSOLETE
-// OBSOLETE /* mvs_check DEPRECATED_STORE_RETURN_VALUE */
-// OBSOLETE #define DEPRECATED_STORE_RETURN_VALUE(TYPE, VALBUF) \
-// OBSOLETE deprecated_write_register_bytes(REGISTER_BYTE (V0_REGNUM) + \
-// OBSOLETE ((TYPE_LENGTH (TYPE) > 4 ? 8:4) - TYPE_LENGTH (TYPE)),\
-// OBSOLETE (VALBUF), TYPE_LENGTH (TYPE));
-// OBSOLETE
-// OBSOLETE extern CORE_ADDR m32r_skip_prologue (CORE_ADDR pc);
-// OBSOLETE /* mvs_check SKIP_PROLOGUE */
-// OBSOLETE #define SKIP_PROLOGUE(pc) (m32r_skip_prologue (pc))
-// OBSOLETE
-// OBSOLETE /* mvs_no_check FRAME_ARGS_SKIP */
-// OBSOLETE #define FRAME_ARGS_SKIP 0
-// OBSOLETE
-// OBSOLETE /* mvs_no_check FRAME_ARGS_ADDRESS */
-// OBSOLETE #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
-// OBSOLETE /* mvs_no_check FRAME_LOCALS_ADDRESS */
-// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
-// OBSOLETE /* mvs_no_check FRAME_NUM_ARGS */
-// OBSOLETE #define FRAME_NUM_ARGS(fi) (-1)
-// OBSOLETE
-// OBSOLETE extern void m32r_write_sp (CORE_ADDR val);
-// OBSOLETE #define TARGET_WRITE_SP m32r_write_sp
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE /* struct passing and returning stuff */
-// OBSOLETE #define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
-// OBSOLETE write_register (0, STRUCT_ADDR)
-// OBSOLETE
-// OBSOLETE extern use_struct_convention_fn m32r_use_struct_convention;
-// OBSOLETE #define USE_STRUCT_CONVENTION(GCC_P, TYPE) m32r_use_struct_convention (GCC_P, TYPE)
-// OBSOLETE
-// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-// OBSOLETE extract_address (REGBUF + REGISTER_BYTE (V0_REGNUM), \
-// OBSOLETE REGISTER_RAW_SIZE (V0_REGNUM))
-// OBSOLETE
-// OBSOLETE #define REG_STRUCT_HAS_ADDR(gcc_p,type) (TYPE_LENGTH (type) > 8)
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE /* generic dummy frame stuff */
-// OBSOLETE
-// OBSOLETE #define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
-// OBSOLETE #define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE /* target-specific dummy_frame stuff */
-// OBSOLETE
-// OBSOLETE extern struct frame_info *m32r_pop_frame (struct frame_info *frame);
-// OBSOLETE /* mvs_check POP_FRAME */
-// OBSOLETE #define POP_FRAME m32r_pop_frame (get_current_frame ())
-// OBSOLETE
-// OBSOLETE /* mvs_no_check STACK_ALIGN */
-// OBSOLETE /* #define STACK_ALIGN(x) ((x + 3) & ~3) */
-// OBSOLETE
-// OBSOLETE extern CORE_ADDR m32r_push_return_address (CORE_ADDR, CORE_ADDR);
-// OBSOLETE extern CORE_ADDR m32r_push_arguments (int nargs,
-// OBSOLETE struct value **args,
-// OBSOLETE CORE_ADDR sp,
-// OBSOLETE unsigned char struct_return,
-// OBSOLETE CORE_ADDR struct_addr);
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE /* mvs_no_check PUSH_ARGUMENTS */
-// OBSOLETE #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
-// OBSOLETE (m32r_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
-// OBSOLETE
-// OBSOLETE #define PUSH_RETURN_ADDRESS(PC, SP) m32r_push_return_address (PC, SP)
-// OBSOLETE
-// OBSOLETE /* override the standard get_saved_register function with
-// OBSOLETE one that takes account of generic CALL_DUMMY frames */
-// OBSOLETE #define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
-// OBSOLETE deprecated_generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
-// OBSOLETE
-// OBSOLETE
-// OBSOLETE #define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1
-// OBSOLETE #define CALL_DUMMY {0}
-// OBSOLETE #define CALL_DUMMY_LENGTH (0)
-// OBSOLETE #define CALL_DUMMY_START_OFFSET (0)
-// OBSOLETE #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
-// OBSOLETE #define FIX_CALL_DUMMY(DUMMY1, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP)
-// OBSOLETE #define CALL_DUMMY_LOCATION AT_ENTRY_POINT
-// OBSOLETE #define CALL_DUMMY_ADDRESS() entry_point_address ()
diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h
index 014fc63..25b747e 100644
--- a/gdb/config/m68k/tm-delta68.h
+++ b/gdb/config/m68k/tm-delta68.h
@@ -105,5 +105,5 @@ extern CORE_ADDR delta68_frame_saved_pc (struct frame_info *fi);
#define DEPRECATED_FRAME_SAVED_PC(fi) delta68_frame_saved_pc (fi)
extern CORE_ADDR delta68_frame_args_address (struct frame_info *fi);
-#undef FRAME_ARGS_ADDRESS
-#define FRAME_ARGS_ADDRESS(fi) delta68_frame_args_address (fi)
+#undef DEPRECATED_FRAME_ARGS_ADDRESS
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) delta68_frame_args_address (fi)
diff --git a/gdb/config/mips/tm-irix6.h b/gdb/config/mips/tm-irix6.h
index e6395ae..0d4fc0c 100644
--- a/gdb/config/mips/tm-irix6.h
+++ b/gdb/config/mips/tm-irix6.h
@@ -94,4 +94,8 @@
#define SIGFRAME_REG_SIZE 8
/* Undefine those methods which have been multiarched. */
+
+/* Undefine MIPS_REGISTER_TYPE, so that GDB uses real C code in
+ mips_register_type() to return the register type, instead of
+ relying on this macro. */
#undef MIPS_REGISTER_TYPE
diff --git a/gdb/config/nm-linux.h b/gdb/config/nm-linux.h
index 9a04cf7..5d4175c 100644
--- a/gdb/config/nm-linux.h
+++ b/gdb/config/nm-linux.h
@@ -73,3 +73,7 @@ extern void lin_thread_get_thread_signals (sigset_t *mask);
#define CHILD_INSERT_FORK_CATCHPOINT
#define CHILD_INSERT_VFORK_CATCHPOINT
#define CHILD_INSERT_EXEC_CATCHPOINT
+#define CHILD_POST_STARTUP_INFERIOR
+#define CHILD_POST_ATTACH
+#define CHILD_FOLLOW_FORK
+#define KILL_INFERIOR
diff --git a/gdb/config/pa/tm-hppa64.h b/gdb/config/pa/tm-hppa64.h
index 8d19a45..8999edf 100644
--- a/gdb/config/pa/tm-hppa64.h
+++ b/gdb/config/pa/tm-hppa64.h
@@ -21,10 +21,6 @@ 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. */
-struct type;
-struct value;
-struct frame_info;
-
/* PA 64-bit specific definitions. Override those which are in
tm-hppa.h */
@@ -36,406 +32,20 @@ struct frame_info;
hppa64-hp-hpux11.00; GDB managed to build / start / break main /
run with multi-arch enabled. Not sure about much else as there
appears to be an unrelated problem in the SOM symbol table reader
- causing GDB to loose line number information. Since prior to this
+ causing GDB to lose line number information. Since prior to this
switch and a other recent tweaks, 64 bit PA hadn't been building
for some months, this is probably the lesser of several evils. */
#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
-/* FIXME: brobecker 2003-05-22: All the definition from this point until
- the include of pa/tm-hppah.h are extracted from tm-hppa.h and tm-hppah.h.
- They have been temporarily moved here, until hppa64 is multiarched too. */
-
-#if !GDB_MULTI_ARCH
-extern int hppa_hpux_pc_in_sigtramp (CORE_ADDR pc, char *name);
-#define PC_IN_SIGTRAMP(pc, name) hppa_hpux_pc_in_sigtramp (pc, name)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern int hppa_reg_struct_has_addr (int gcc_p, struct type *type);
-#define REG_STRUCT_HAS_ADDR(gcc_p,type) hppa_reg_struct_has_addr (gcc_p,type)
-#endif
-
-/* Offset from address of function to start of its code.
- Zero on most machines. */
-
-#if !GDB_MULTI_ARCH
-#define FUNCTION_START_OFFSET 0
-#endif
-
-/* Advance PC across any function entry prologue instructions
- to reach some "real" code. */
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_skip_prologue (CORE_ADDR);
-#define SKIP_PROLOGUE(pc) (hppa_skip_prologue (pc))
-#endif
-
-/* If PC is in some function-call trampoline code, return the PC
- where the function itself actually starts. If not, return NULL. */
-
-#if !GDB_MULTI_ARCH
-#define SKIP_TRAMPOLINE_CODE(pc) hppa_skip_trampoline_code (pc)
-extern CORE_ADDR hppa_skip_trampoline_code (CORE_ADDR);
-#endif
-
-/* Return non-zero if we are in an appropriate trampoline. */
-
-#if !GDB_MULTI_ARCH
-#define IN_SOLIB_CALL_TRAMPOLINE(pc, name) \
- hppa_in_solib_call_trampoline (pc, name)
-extern int hppa_in_solib_call_trampoline (CORE_ADDR, char *);
-#endif
-
-#if !GDB_MULTI_ARCH
-#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
- hppa_in_solib_return_trampoline (pc, name)
-extern int hppa_in_solib_return_trampoline (CORE_ADDR, char *);
-#endif
-
-#if !GDB_MULTI_ARCH
-#undef DEPRECATED_SAVED_PC_AFTER_CALL
-#define DEPRECATED_SAVED_PC_AFTER_CALL(frame) hppa_saved_pc_after_call (frame)
-extern CORE_ADDR hppa_saved_pc_after_call (struct frame_info *);
-#endif
-
-#if !GDB_MULTI_ARCH
-extern int hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs);
-#define INNER_THAN(lhs,rhs) hppa_inner_than(lhs,rhs)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_stack_align (CORE_ADDR sp);
-#define STACK_ALIGN(sp) hppa_stack_align (sp)
-#endif
-
-/* Amount PC must be decremented by after a breakpoint. This is often
- the number of bytes returned by BREAKPOINT_FROM_PC but not always.
-
- Not on the PA-RISC */
-
-#if !GDB_MULTI_ARCH
-#define DECR_PC_AFTER_BREAK 0
-#endif
-
-/* Say how long (ordinary) registers are. This is a piece of bogosity
- used in push_word and a few other places; REGISTER_RAW_SIZE is the
- real way to know how big a register is. */
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_REGISTER_SIZE 4
-#endif
-
-/* Number of machine registers */
-
-#if !GDB_MULTI_ARCH
-#define NUM_REGS 128
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_FP_REGNUM 3 /* Contains address of executing stack */
- /* frame */
-#endif
-#if !GDB_MULTI_ARCH
-#define SP_REGNUM 30 /* Contains address of top of stack */
-#endif
-
-#if !GDB_MULTI_ARCH
-#define FP0_REGNUM 64 /* floating point reg. 0 (fspr) */
-#endif
-
-/* compatibility with the rest of gdb. */
-#if !GDB_MULTI_ARCH
-#define PC_REGNUM PCOQ_HEAD_REGNUM
-#endif
-#if !GDB_MULTI_ARCH
-#define NPC_REGNUM PCOQ_TAIL_REGNUM
-#endif
-
-/* Number of bytes of storage in the actual machine representation
- for register N. On the PA-RISC, all regs are 4 bytes, including
- the FP registers (they're accessed as two 4 byte halves). */
-
-#if !GDB_MULTI_ARCH
-extern int hppa_register_raw_size (int reg_nr);
-#define REGISTER_RAW_SIZE(N) hppa_register_raw_size (N)
-#endif
-
-/* Total amount of space needed to store our copies of the machine's
- register state, the array `registers'. */
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_REGISTER_BYTES (NUM_REGS * 4)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern int hppa_register_byte (int reg_nr);
-#define REGISTER_BYTE(N) hppa_register_byte (N)
-#endif
-
-/* Number of bytes of storage in the program's representation
- for register N. */
-
-#if !GDB_MULTI_ARCH
-#define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N)
-#endif
-
-/* Largest value REGISTER_RAW_SIZE can have. */
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_MAX_REGISTER_RAW_SIZE 4
-#endif
-
-/* Largest value REGISTER_VIRTUAL_SIZE can have. */
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE 8
-#endif
-
-#if !GDB_MULTI_ARCH
-extern struct type * hppa_register_virtual_type (int reg_nr);
-#define REGISTER_VIRTUAL_TYPE(N) hppa_register_virtual_type (N)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern void hppa_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
-#define STORE_STRUCT_RETURN(ADDR, SP) hppa_store_struct_return (ADDR, SP)
-#endif
-
-/* Extract from an array REGBUF containing the (raw) register state
- a function return value of type TYPE, and copy that, in virtual format,
- into VALBUF. */
-
-#if !GDB_MULTI_ARCH
-void hppa_extract_return_value (struct type *type, char *regbuf, char *valbuf);
-#define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
- hppa_extract_return_value (TYPE, REGBUF, VALBUF);
-#endif
-
- /* elz: decide whether the function returning a value of type type
- will put it on the stack or in the registers.
- The pa calling convention says that:
- register 28 (called ret0 by gdb) contains any ASCII char,
- and any non_floating point value up to 32-bits.
- reg 28 and 29 contain non-floating point up tp 64 bits and larger
- than 32 bits. (higer order word in reg 28).
- fr4: floating point up to 64 bits
- sr1: space identifier (32-bit)
- stack: any lager than 64-bit, with the address in r28
- */
-#if !GDB_MULTI_ARCH
-extern use_struct_convention_fn hppa_use_struct_convention;
-#define USE_STRUCT_CONVENTION(gcc_p,type) hppa_use_struct_convention (gcc_p,type)
-#endif
-
-/* Write into appropriate registers a function return value
- of type TYPE, given in virtual format. */
-
-#if !GDB_MULTI_ARCH
-extern void hppa_store_return_value (struct type *type, char *valbuf);
-#define DEPRECATED_STORE_RETURN_VALUE(TYPE,VALBUF) \
- hppa_store_return_value (TYPE, VALBUF);
-#endif
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_extract_struct_value_address (char *regbuf);
-#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
- hppa_extract_struct_value_address (REGBUF)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern int hppa_cannot_store_register (int regnum);
-#define CANNOT_STORE_REGISTER(regno) hppa_cannot_store_register (regno)
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_INIT_EXTRA_FRAME_INFO(fromleaf, frame) hppa_init_extra_frame_info (fromleaf, frame)
-extern void hppa_init_extra_frame_info (int, struct frame_info *);
-#endif
-
-/* Describe the pointer in each stack frame to the previous stack frame
- (its caller). */
-
-/* DEPRECATED_FRAME_CHAIN takes a frame's nominal address and produces
- the frame's chain-pointer. */
-
-/* In the case of the PA-RISC, the frame's nominal address
- is the address of a 4-byte word containing the calling frame's
- address (previous FP). */
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_FRAME_CHAIN(thisframe) hppa_frame_chain (thisframe)
-extern CORE_ADDR hppa_frame_chain (struct frame_info *);
-#endif
-
-#if !GDB_MULTI_ARCH
-extern int hppa_frame_chain_valid (CORE_ADDR, struct frame_info *);
-#define DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe) hppa_frame_chain_valid (chain, thisframe)
-#endif
-
-/* Define other aspects of the stack frame. */
-
-/* A macro that tells us whether the function invocation represented
- by FI does not have a frame on the stack associated with it. If it
- does not, FRAMELESS is set to 1, else 0. */
-#if !GDB_MULTI_ARCH
-#define FRAMELESS_FUNCTION_INVOCATION(FI) \
- (hppa_frameless_function_invocation (FI))
-extern int hppa_frameless_function_invocation (struct frame_info *);
-#endif
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_frame_saved_pc (struct frame_info *frame);
-#define DEPRECATED_FRAME_SAVED_PC(FRAME) hppa_frame_saved_pc (FRAME)
-#endif
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_frame_locals_address (struct frame_info *fi);
-#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) hppa_frame_locals_address (fi)
-#endif
-
-#if !GDB_MULTI_ARCH
-#define FRAME_ARGS_SKIP 0
-#endif
-
-/* Things needed for making the inferior call functions. */
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_PUSH_DUMMY_FRAME hppa_push_dummy_frame ()
-extern void hppa_push_dummy_frame (void);
-#endif
-
-/* Discard from the stack the innermost frame,
- restoring all saved registers. */
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_POP_FRAME hppa_pop_frame ()
-extern void hppa_pop_frame (void);
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_CALL_DUMMY_LENGTH (INSTRUCTION_SIZE * 28)
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_CALL_DUMMY_START_OFFSET 0
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
- (hppa_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
-extern CORE_ADDR hppa_push_arguments (int, struct value **, CORE_ADDR, int,
- CORE_ADDR);
-#endif
-
-#if !GDB_MULTI_ARCH
-extern CORE_ADDR hppa_smash_text_address (CORE_ADDR addr);
-#define SMASH_TEXT_ADDRESS(addr) hppa_smash_text_address (addr)
-#endif
-
-#if !GDB_MULTI_ARCH
-#define BELIEVE_PCC_PROMOTION 1
-#endif
-
-#if !GDB_MULTI_ARCH
-#define TARGET_READ_PC(pid) hppa_target_read_pc (pid)
-extern CORE_ADDR hppa_target_read_pc (ptid_t);
-#endif
-
-#if !GDB_MULTI_ARCH
-#define TARGET_WRITE_PC(v,pid) hppa_target_write_pc (v,pid)
-extern void hppa_target_write_pc (CORE_ADDR, ptid_t);
-#endif
-
-#if !GDB_MULTI_ARCH
-#define DEPRECATED_TARGET_READ_FP() hppa_target_read_fp ()
-extern CORE_ADDR hppa_target_read_fp (void);
-#endif
-
#include "pa/tm-hppah.h"
-#define HPUX_1100 1
-
-/* The low two bits of the IA are the privilege level of the instruction. */
-#define ADDR_BITS_REMOVE(addr) ((CORE_ADDR)addr & (CORE_ADDR)~3)
-
-/* Say how long (ordinary) registers are. This is used in
- push_word and a few other places, but REGISTER_RAW_SIZE is
- the real way to know how big a register is. */
-
-#undef DEPRECATED_REGISTER_SIZE
-#define DEPRECATED_REGISTER_SIZE 8
-
-/* Number of bytes of storage in the actual machine representation
- for register N. On the PA-RISC 2.0, all regs are 8 bytes, including
- the FP registers (they're accessed as two 4 byte halves). */
-
-#undef REGISTER_RAW_SIZE
-#define REGISTER_RAW_SIZE(N) 8
-
-/* Largest value REGISTER_RAW_SIZE can have. */
-
-#undef DEPRECATED_MAX_REGISTER_RAW_SIZE
-#define DEPRECATED_MAX_REGISTER_RAW_SIZE 8
-
-/* Total amount of space needed to store our copies of the machine's
- register state, the array `registers'. */
-
-#undef DEPRECATED_REGISTER_BYTES
-#define DEPRECATED_REGISTER_BYTES (NUM_REGS * 8)
-
-/* Index within `registers' of the first byte of the space for
- register N. */
-
-#undef REGISTER_BYTE
-#define REGISTER_BYTE(N) ((N) * 8)
-
-#undef REGISTER_VIRTUAL_TYPE
-#define REGISTER_VIRTUAL_TYPE(N) \
- ((N) < FP4_REGNUM ? builtin_type_unsigned_long_long : builtin_type_double)
-
-
-/* Number of machine registers */
-#undef NUM_REGS
-#define NUM_REGS 96
-
-/* Initializer for an array of names of registers.
- There should be NUM_REGS strings in this initializer.
- They are in rows of eight entries */
-extern const char *hppa64_register_name (int i);
-#define REGISTER_NAME hppa64_register_name
-
-#undef FP0_REGNUM
#undef FP4_REGNUM
-#define FP0_REGNUM 64 /* floating point reg. 0 (fspr)*/
#define FP4_REGNUM 68
-
-/* Redefine some target bit sizes from the default. */
-
-/* Number of bits in a long or unsigned long for the target machine. */
-
-#define TARGET_LONG_BIT 64
-
-/* Number of bits in a long long or unsigned long long for the
- target machine. */
-
-#define TARGET_LONG_LONG_BIT 64
-
-/* Number of bits in a pointer for the target machine */
-
-#define TARGET_PTR_BIT 64
-
-/* Argument Pointer Register */
-#define AP_REGNUM 29
-
+#define AP_REGNUM 29 /* Argument Pointer Register */
#define DP_REGNUM 27
-
#define FP5_REGNUM 70
-
#define SR5_REGNUM 48
-/* We access locals from SP. This may not work for frames which call
- alloca; for those, we may need to consult unwind tables.
- jimb: FIXME. */
-#undef DEPRECATED_FRAME_LOCALS_ADDRESS
-#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
/* For a number of horrible reasons we may have to adjust the location
of variables on the stack. Ugh. jimb: why? */
@@ -492,19 +102,6 @@ call_dummy
0xe820f0000fb110d3LL, 0x0001000400151820LL,\
0xe6c0000008000240LL}
-#define DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET 22 * 4
-
-/* DEPRECATED_CALL_DUMMY_LENGTH is computed based on the size of a
- word on the target machine, not the size of an instruction. Since
- a word on this target holds two instructions we have to divide the
- instruction size by two to get the word size of the dummy. */
-#undef DEPRECATED_CALL_DUMMY_LENGTH
-#define DEPRECATED_CALL_DUMMY_LENGTH (INSTRUCTION_SIZE * 26 / 2)
-
-/* The PA64 ABI mandates a 16 byte stack alignment. */
-#undef STACK_ALIGN
-#define STACK_ALIGN(arg) ( ((arg)%16) ? (((arg)+15)&-16) : (arg))
-
/* The PA64 ABI reserves 64 bytes of stack space for outgoing register
parameters. */
#undef REG_PARM_STACK_SPACE
@@ -518,115 +115,22 @@ call_dummy
#undef SR4EXPORT_LDIL_OFFSET
#undef SR4EXPORT_LDO_OFFSET
-#undef REG_STRUCT_HAS_ADDR
-
-#undef DEPRECATED_EXTRACT_RETURN_VALUE
-/* RM: floats are returned in FR4R, doubles in FR4
- * integral values are in r28, padded on the left
- * aggregates less that 65 bits are in r28, right padded
- * aggregates upto 128 bits are in r28 and r29, right padded
- */
-#define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
- { \
- if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
- memcpy ((VALBUF), \
- ((char *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM) + \
- (DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (TYPE)), \
- TYPE_LENGTH (TYPE)); \
- else if (is_integral_type(TYPE)) \
- memcpy ((VALBUF), \
- (char *)(REGBUF) + REGISTER_BYTE (28) + \
- (DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (TYPE)), \
- TYPE_LENGTH (TYPE)); \
- else if (TYPE_LENGTH (TYPE) <= 8) \
- memcpy ((VALBUF), \
- (char *)(REGBUF) + REGISTER_BYTE (28), \
- TYPE_LENGTH (TYPE)); \
- else if (TYPE_LENGTH (TYPE) <= 16) \
- { \
- memcpy ((VALBUF), \
- (char *)(REGBUF) + REGISTER_BYTE (28), \
- 8); \
- memcpy (((char *) VALBUF + 8), \
- (char *)(REGBUF) + REGISTER_BYTE (29), \
- TYPE_LENGTH (TYPE) - 8); \
- } \
- }
-
-/* RM: struct upto 128 bits are returned in registers */
-#undef USE_STRUCT_CONVENTION
-#define USE_STRUCT_CONVENTION(gcc_p, value_type)\
- (TYPE_LENGTH (value_type) > 16)
-
-/* RM: for return command */
-#undef DEPRECATED_STORE_RETURN_VALUE
-#define DEPRECATED_STORE_RETURN_VALUE(TYPE,VALBUF) \
- { \
- if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
- deprecated_write_register_bytes \
- (REGISTER_BYTE (FP4_REGNUM) + \
- (DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (TYPE)), \
- (VALBUF), \
- TYPE_LENGTH (TYPE)); \
- else if (is_integral_type(TYPE)) \
- deprecated_write_register_bytes \
- (REGISTER_BYTE (28) + \
- (DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (TYPE)), \
- (VALBUF), \
- TYPE_LENGTH (TYPE)); \
- else if (TYPE_LENGTH (TYPE) <= 8) \
- deprecated_write_register_bytes \
- ( REGISTER_BYTE (28), \
- (VALBUF), \
- TYPE_LENGTH (TYPE)); \
- else if (TYPE_LENGTH (TYPE) <= 16) \
- { \
- deprecated_write_register_bytes \
- (REGISTER_BYTE (28), \
- (VALBUF), \
- 8); \
- deprecated_write_register_bytes \
- (REGISTER_BYTE (29), \
- ((char *) VALBUF + 8), \
- TYPE_LENGTH (TYPE) - 8); \
- } \
- }
-
-/* RM: these are the PA64 equivalents of the macros in tm-hppah.h --
- * see comments there. For PA64, the save_state structure is at an
- * offset of 24 32-bit words from the sigcontext structure. The 64 bit
- * general registers are at an offset of 640 bytes from the beginning of the
- * save_state structure, and the floating pointer register are at an offset
- * of 256 bytes from the beginning of the save_state structure.
- */
#undef FRAME_SAVED_PC_IN_SIGTRAMP
+extern void hppa64_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
#define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
-{ \
- *(TMP) = read_memory_integer (get_frame_base (FRAME) + (24 * 4) + 640 + (33 * 8), 8); \
-}
+ hppa64_hpux_frame_saved_pc_in_sigtramp (FRAME, TMP)
#undef FRAME_BASE_BEFORE_SIGTRAMP
+extern void hppa64_hpux_frame_base_before_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
#define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
-{ \
- *(TMP) = read_memory_integer (get_frame_base (FRAME) + (24 * 4) + 640 + (30 * 8), 8); \
-}
+ hppa64_hpux_frame_base_before_sigtramp (FRAME, TMP)
#undef FRAME_FIND_SAVED_REGS_IN_SIGTRAMP
+extern void hppa64_hpux_frame_find_saved_regs_in_sigtramp
+ (struct frame_info *fi, CORE_ADDR *fsr);
#define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
-{ \
- int i; \
- CORE_ADDR TMP1, TMP2; \
- TMP1 = get_frame_base (FRAME) + (24 * 4) + 640; \
- TMP2 = get_frame_base (FRAME) + (24 * 4) + 256; \
- for (i = 0; i < NUM_REGS; i++) \
- { \
- if (i == SP_REGNUM) \
- (FSR)[SP_REGNUM] = read_memory_integer (TMP1 + SP_REGNUM * 8, 8); \
- else if (i >= FP0_REGNUM) \
- (FSR)[i] = TMP2 + (i - FP0_REGNUM) * 8; \
- else \
- (FSR)[i] = TMP1 + i * 8; \
- } \
-}
+ hppa64_hpux_frame_find_saved_regs_in_sigtramp (FRAME, FSR)
/* jimb: omitted purify call support */
diff --git a/gdb/config/pa/tm-hppah.h b/gdb/config/pa/tm-hppah.h
index 345baaf..325af81 100644
--- a/gdb/config/pa/tm-hppah.h
+++ b/gdb/config/pa/tm-hppah.h
@@ -38,17 +38,17 @@ struct frame_info;
extern void hppa_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
CORE_ADDR *tmp);
#define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
- hppa_hpux_frame_saved_pc_in_sigtramp (FRAME, TMP)
+ hppa32_hpux_frame_saved_pc_in_sigtramp (FRAME, TMP)
extern void hppa_hpux_frame_base_before_sigtramp (struct frame_info *fi,
CORE_ADDR *tmp);
#define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
- hppa_hpux_frame_base_before_sigtramp (FRAME, TMP)
+ hppa32_hpux_frame_base_before_sigtramp (FRAME, TMP)
extern void hppa_hpux_frame_find_saved_regs_in_sigtramp
(struct frame_info *fi, CORE_ADDR *fsr);
#define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
- hppa_hpux_frame_find_saved_regs_in_sigtramp (FRAME, FSR)
+ hppa32_hpux_frame_find_saved_regs_in_sigtramp (FRAME, FSR)
/* For HP-UX on PA-RISC we have an implementation
for the exception handling target op (in hppa-tdep.c) */
diff --git a/gdb/config/sparc/tm-sp64.h b/gdb/config/sparc/tm-sp64.h
index 8baa66a..f2507d2 100644
--- a/gdb/config/sparc/tm-sp64.h
+++ b/gdb/config/sparc/tm-sp64.h
@@ -260,6 +260,8 @@ CORE_ADDR sparc64_push_arguments (int,
/* These are here at the end to simplify removing them if we have to. */ \
"icc", "xcc", "fcc0", "fcc1", "fcc2", "fcc3" \
}
+extern const char *legacy_register_name (int i);
+#define REGISTER_NAME legacy_register_name
#undef REG_STRUCT_HAS_ADDR
#define REG_STRUCT_HAS_ADDR(gcc_p,type) (TYPE_LENGTH (type) > 32)
diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h
index 202dad1..29267ed 100644
--- a/gdb/config/sparc/tm-sparc.h
+++ b/gdb/config/sparc/tm-sparc.h
@@ -22,6 +22,8 @@
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
+
#include "regcache.h"
struct type;
@@ -158,6 +160,8 @@ extern int sparc_intreg_size (void);
\
"y", "psr", "wim", "tbr", "pc", "npc", "fpsr", "cpsr" \
}
+extern const char *legacy_register_name (int i);
+#define REGISTER_NAME legacy_register_name
/* Offset from address of function to start of its code.
Zero on most machines. */
@@ -439,9 +443,9 @@ extern CORE_ADDR sparc_frame_chain (struct frame_info *);
extern CORE_ADDR sparc_frame_saved_pc (struct frame_info *);
/* If the argument is on the stack, it will be here. */
-#define FRAME_ARGS_ADDRESS(FI) (get_frame_base (FI))
+#define DEPRECATED_FRAME_ARGS_ADDRESS(FI) (get_frame_base (FI))
-#define FRAME_LOCALS_ADDRESS(FI) (get_frame_base (FI))
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(FI) (get_frame_base (FI))
/* Set VAL to the number of args passed to frame described by FI.
Can set VAL to -1, meaning no way to tell. */
diff --git a/gdb/configure b/gdb/configure
index e27294c..1b0aed4 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -8861,7 +8861,7 @@ fi
# NOTE: If you add to this list, remember to update
# gdb/doc/gdbint.texinfo.
build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
--Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
+-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral"
# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
diff --git a/gdb/configure.host b/gdb/configure.host
index 0c88533..fa973af 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
@@ -21,6 +21,7 @@ sparcv9 | sparc64) gdb_host_cpu=sparc ;;
s390*) gdb_host_cpu=s390 ;;
sh*) gdb_host_cpu=sh ;;
x86_64*) gdb_host_cpu=i386 ;;
+xscale*) gdb_host_cpu=arm ;;
*) gdb_host_cpu=$host_cpu ;;
esac
@@ -63,6 +64,7 @@ i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;;
i[34567]86-*-linux*) gdb_host=linux ;;
i[34567]86-*-lynxos*) gdb_host=i386lynx ;;
i[34567]86-*-gnu*) gdb_host=i386gnu ;;
+i[3456]86-*-nto*) gdb_host=nto ;;
i[34567]86-*-openbsd*) gdb_host=obsd ;;
i[34567]86-*-sco3.2v5*) gdb_host=i386sco5 ;;
i[34567]86-*-sco3.2v4*) gdb_host=i386sco4 ;;
@@ -150,5 +152,6 @@ vax-*-ultrix2*) gdb_host=vaxult2 ;;
vax-*-ultrix*) gdb_host=vaxult ;;
x86_64-*-linux*) gdb_host=x86-64linux ;;
+x86_64-*-freebsd*) gdb_host=fbsd64 ;;
esac
diff --git a/gdb/configure.in b/gdb/configure.in
index 38792e0..89940de 100644
--- a/gdb/configure.in
+++ b/gdb/configure.in
@@ -976,7 +976,7 @@ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
# NOTE: If you add to this list, remember to update
# gdb/doc/gdbint.texinfo.
build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
--Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
+-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral"
# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 90e6781..f11f0ee 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -37,6 +37,7 @@ esac
case "${target}" in
+x86_64-*-freebsd*) gdb_target=fbsd64 ;;
*-*-freebsd*) gdb_target=fbsd
;;
@@ -264,6 +265,7 @@ esac
case "${gdb_target}" in
d10v) gdb_multi_arch=yes ;;
+fbsd64) gdb_multi_arch=yes ;;
m32r) gdb_multi_arch=yes ;;
m68hc11) gdb_multi_arch=yes ;;
mn10300) gdb_multi_arch=yes ;;
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
index a591d18..27d8ec3 100644
--- a/gdb/cp-valprint.c
+++ b/gdb/cp-valprint.c
@@ -143,7 +143,7 @@ cp_print_class_method (char *valaddr,
char *demangled_name;
fprintf_filtered (stream, "&");
- fprintf_filtered (stream, kind);
+ fputs_filtered (kind, stream);
demangled_name = cplus_demangle (TYPE_FN_FIELD_PHYSNAME (f, j),
DMGL_ANSI | DMGL_PARAMS);
if (demangled_name == NULL)
@@ -720,7 +720,7 @@ cp_print_class_member (char *valaddr, struct type *domain,
if (i < len)
{
char *name;
- fprintf_filtered (stream, prefix);
+ fputs_filtered (prefix, stream);
name = type_name_no_tag (domain);
if (name)
fputs_filtered (name, stream);
diff --git a/gdb/d10v-tdep.c b/gdb/d10v-tdep.c
index 5860029..ac52ab6 100644
--- a/gdb/d10v-tdep.c
+++ b/gdb/d10v-tdep.c
@@ -797,9 +797,9 @@ d10v_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
ULONGEST pc, psw, rpt_s, rpt_e, rpt_c;
frame_read_unsigned_register (frame, D10V_PC_REGNUM, &pc);
frame_read_unsigned_register (frame, PSW_REGNUM, &psw);
- frame_read_unsigned_register (frame, frame_map_name_to_regnum ("rpt_s", -1), &rpt_s);
- frame_read_unsigned_register (frame, frame_map_name_to_regnum ("rpt_e", -1), &rpt_e);
- frame_read_unsigned_register (frame, frame_map_name_to_regnum ("rpt_c", -1), &rpt_c);
+ frame_read_unsigned_register (frame, frame_map_name_to_regnum (frame, "rpt_s", -1), &rpt_s);
+ frame_read_unsigned_register (frame, frame_map_name_to_regnum (frame, "rpt_e", -1), &rpt_e);
+ frame_read_unsigned_register (frame, frame_map_name_to_regnum (frame, "rpt_c", -1), &rpt_c);
fprintf_filtered (file, "PC=%04lx (0x%lx) PSW=%04lx RPT_S=%04lx RPT_E=%04lx RPT_C=%04lx\n",
(long) pc, (long) d10v_make_iaddr (pc), (long) psw,
(long) rpt_s, (long) rpt_e, (long) rpt_c);
@@ -1440,7 +1440,7 @@ static const struct frame_unwind d10v_frame_unwind = {
};
static const struct frame_unwind *
-d10v_frame_p (CORE_ADDR pc)
+d10v_frame_sniffer (struct frame_info *next_frame)
{
return &d10v_frame_unwind;
}
@@ -1580,7 +1580,7 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_print_registers_info (gdbarch, d10v_print_registers_info);
- frame_unwind_append_predicate (gdbarch, d10v_frame_p);
+ frame_unwind_append_sniffer (gdbarch, d10v_frame_sniffer);
frame_base_set_default (gdbarch, &d10v_frame_base);
/* Methods for saving / extracting a dummy frame's ID. The ID's
diff --git a/gdb/defs.h b/gdb/defs.h
index eb7ae08..778f557 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -285,6 +285,15 @@ struct cleanup
#endif
#endif
+/* Be conservative and use enum bitfields only with GCC.
+ This is copied from gcc 3.3.1, system.h. */
+
+#if defined(__GNUC__) && (__GNUC__ >= 2)
+#define ENUM_BITFIELD(TYPE) enum TYPE
+#else
+#define ENUM_BITFIELD(TYPE) unsigned int
+#endif
+
/* Needed for various prototypes */
struct symtab;
@@ -780,16 +789,6 @@ typedef struct ptid ptid_t;
#include "tm.h"
#endif
-/* GDB_MULTI_ARCH is normally set by configure.in using information
- from configure.tgt or the config/%/%.mt Makefile fragment. Since
- some targets have defined it in their "tm.h" file, delay providing
- a default definition until after "tm.h" has been included.. */
-
-#ifndef GDB_MULTI_ARCH
-#define GDB_MULTI_ARCH 0
-#endif
-
-
/* If the xm.h file did not define the mode string used to open the
files, assume that binary files are opened the same way as text
files */
@@ -865,6 +864,9 @@ extern void xfree (void *);
extern void xasprintf (char **ret, const char *format, ...) ATTR_FORMAT (printf, 2, 3);
extern void xvasprintf (char **ret, const char *format, va_list ap);
+/* Like asprintf, but return the string, throw an error if no memory. */
+extern char *xstrprintf (const char *format, ...) ATTR_FORMAT (printf, 1, 2);
+
extern int parse_escape (char **);
/* Message to be printed before the error message, when an error occurs. */
diff --git a/gdb/disasm.c b/gdb/disasm.c
index f86ec3f..47bb125 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -334,6 +334,7 @@ gdb_disassemble_info (struct gdbarch *gdbarch, struct ui_file *file)
di.arch = gdbarch_bfd_arch_info (gdbarch)->arch;
di.mach = gdbarch_bfd_arch_info (gdbarch)->mach;
di.endian = gdbarch_byte_order (gdbarch);
+ di.insn_sets = 0;
return di;
}
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 29455ad..f611a6e 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,30 @@
+2003-08-18 Andrew Cagney <cagney@redhat.com>
+
+ * gdbint.texinfo (Target Architecture Definition): Document
+ "frame_red_zone_size".
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * gdb.texinfo (Backtrace): Replace "set/show backtrace-below-main"
+ with "set/show backtrace past-main" and "set/show backtrace
+ limit".
+
+2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (install-info): Support DESTDIR.
+ (install-html): Likewise.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ Patch from Nick Roberts.
+ * gdb.texinfo (Using GDB under GNU Emacs): Fix/update key
+ bindings. Remove description of send-gdb-command.
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * gdb.texinfo (Mode Options): Mention that "mi2" was included in
+ GDB 6.0.
+
2003-08-06 Andrew Cagney <cagney@redhat.com>
* gdb.texinfo (Mode Options): Mention that level three is the
@@ -36,7 +63,20 @@
* gdb.texinfo (TUI Keys): Document C-x o key to switch active window.
-2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+2003-07-24 Daniel Jacobowitz <drow@mvista.com>
+
+ * gdbint.texinfo (libgdb components): Correct a GDB to GDBN.
+
+2003-07-24 Daniel Jacobowitz <drow@mvista.com>
+
+ * gdb.texinfo (Server): Mention pidof.
+
+2003-07-22 Andrew Cagney <cagney@redhat.com>
+
+ * gdbint.texinfo (Coding): Add -Wformat-nonliteral to -Werror
+ list.
+
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
* gdb.texinfo (Logging output): New chapter.
diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
index 4e8c64e..a06cc4a 100644
--- a/gdb/doc/Makefile.in
+++ b/gdb/doc/Makefile.in
@@ -156,14 +156,14 @@ all-doc: info dvi ps # pdf
diststuff: info
install-info: $(INFO_DEPS)
- $(SHELL) $(srcdir)/../../mkinstalldirs $(infodir)
+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
- echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \
- $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile; \
+ echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+ $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
else : ; fi; \
done; \
done
@@ -171,8 +171,8 @@ install-info: $(INFO_DEPS)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
- echo " install-info --info-dir=$(infodir) $(infodir)/$$file";\
- install-info --info-dir=$(infodir) $(infodir)/$$file || :;\
+ echo " install-info --info-dir=$(infodir) $(DESTDIR)$(infodir)/$$file";\
+ install-info --info-dir=$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
@@ -194,7 +194,7 @@ uninstall-info:
install-html: html
for i in *.html ; do \
- $(INSTALL_DATA) $$i $(htmldir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(htmldir)/$$i ; \
done
STAGESTUFF = *.info* gdb-all.texi GDBvn.texi *.ps *.dvi *.pdf
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index b750398..cf69fd3 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -1133,11 +1133,11 @@ communicate with @value{GDBN} using it as a back end.
@xref{Interpreters, , Command Interpreters}.
@samp{--interpreter=mi} (or @samp{--interpreter=mi2}) causes
-@value{GDBN} to use the current @dfn{@sc{gdb/mi} interface}
-(@pxref{GDB/MI, , The @sc{gdb/mi} Interface}). The previous @sc{gdb/mi}
-interface, included in @value{GDBN} version 5.3, can be selected with
-@samp{--interpreter=mi1}. Earlier @sc{gdb/mi} interfaces
-are not supported.
+@value{GDBN} to use the @dfn{@sc{gdb/mi} interface} (@pxref{GDB/MI, ,
+The @sc{gdb/mi} Interface}) included in @var{GDBN} version 6.0. The
+previous @sc{gdb/mi} interface, included in @value{GDBN} version 5.3,
+can be selected with @samp{--interpreter=mi1}. Earlier @sc{gdb/mi}
+interfaces are not supported.
@item -write
@cindex @code{--write}
@@ -3922,27 +3922,40 @@ The display for frame zero does not begin with a program counter
value, indicating that your program has stopped at the beginning of the
code for line @code{993} of @code{builtin.c}.
-@kindex set backtrace-below-main
-@kindex show backtrace-below-main
+@kindex set backtrace past-main
+@kindex show backtrace past-main
+@kindex set backtrace limit
+@kindex show backtrace limit
-Most programs have a standard entry point---a place where system libraries
-and startup code transition into user code. For C this is @code{main}.
-When @value{GDBN} finds the entry function in a backtrace it will terminate
-the backtrace, to avoid tracing into highly system-specific (and generally
-uninteresting) code. If you need to examine the startup code, then you can
-change this behavior.
+Most programs have a standard user entry point---a place where system
+libraries and startup code transition into user code. For C this is
+@code{main}. When @value{GDBN} finds the entry function in a backtrace
+it will terminate the backtrace, to avoid tracing into highly
+system-specific (and generally uninteresting) code.
+
+If you need to examine the startup code, or limit the number of levels
+in a backtrace, you can change this behavior:
@table @code
-@item set backtrace-below-main off
+@item set backtrace past-main
+@itemx set backtrace past-main on
+Backtraces will continue past the user entry point.
+
+@item set backtrace past-main off
Backtraces will stop when they encounter the user entry point. This is the
default.
-@item set backtrace-below-main
-@itemx set backtrace-below-main on
-Backtraces will continue past the user entry point to the top of the stack.
+@item show backtrace past-main
+Display the current user entry point backtrace policy.
+
+@item set backtrace limit @var{n}
+@itemx set backtrace limit 0
+@cindex backtrace limit
+Limit the backtrace to @var{n} levels. A value of zero means
+unlimited.
-@item show backtrace-below-main
-Display the current backtrace policy.
+@item show backtrace limit
+Display the current limit on backtrace levels.
@end table
@node Selection
@@ -10749,6 +10762,19 @@ target> gdbserver @var{comm} --attach @var{pid}
@var{pid} is the process ID of a currently running process. It isn't necessary
to point @code{gdbserver} at a binary for the running process.
+@pindex pidof
+@cindex attach to a program by name
+You can debug processes by name instead of process ID if your target has the
+@code{pidof} utility:
+
+@smallexample
+target> gdbserver @var{comm} --attach `pidof @var{PROGRAM}`
+@end smallexample
+
+In case more than one copy of @var{PROGRAM} is running, or @var{PROGRAM}
+has multiple threads, most versions of @code{pidof} support the
+@code{-s} option to only return the first process ID.
+
@item On the host machine,
connect to your target (@pxref{Connecting,,Connecting to a remote target}).
For TCP connections, you must start up @code{gdbserver} prior to using
@@ -14132,36 +14158,26 @@ and the source.
Explicit @value{GDBN} @code{list} or search commands still produce output as
usual, but you probably have no reason to use them from Emacs.
-@quotation
-@emph{Warning:} If the directory where your program resides is not your
-current directory, it can be easy to confuse Emacs about the location of
-the source files, in which case the auxiliary display buffer does not
-appear to show your source. @value{GDBN} can find programs by searching your
-environment's @code{PATH} variable, so the @value{GDBN} input and output
-session proceeds normally; but Emacs does not get enough information
-back from @value{GDBN} to locate the source files in this situation. To
-avoid this problem, either start @value{GDBN} mode from the directory where
-your program resides, or specify an absolute file name when prompted for the
-@kbd{M-x gdb} argument.
-
-A similar confusion can result if you use the @value{GDBN} @code{file} command to
-switch to debugging a program in some other location, from an existing
-@value{GDBN} buffer in Emacs.
-@end quotation
-
-By default, @kbd{M-x gdb} calls the program called @file{gdb}. If
-you need to call @value{GDBN} by a different name (for example, if you keep
-several configurations around, with different names) you can set the
-Emacs variable @code{gdb-command-name}; for example,
-
-@smallexample
-(setq gdb-command-name "mygdb")
-@end smallexample
-
-@noindent
-(preceded by @kbd{M-:} or @kbd{ESC :}, or typed in the @code{*scratch*} buffer, or
-in your @file{.emacs} file) makes Emacs call the program named
-``@code{mygdb}'' instead.
+If you specify an absolute file name when prompted for the @kbd{M-x
+gdb} argument, then Emacs sets your current working directory to where
+your program resides. If you only specify the file name, then Emacs
+sets your current working directory to to the directory associated
+with the previous buffer. In this case, @value{GDBN} may find your
+program by searching your environment's @code{PATH} variable, but on
+some operating systems it might not find the source. So, although the
+@value{GDBN} input and output session proceeds normally, the auxiliary
+buffer does not display the current source and line of execution.
+
+The initial working directory of @value{GDBN} is printed on the top
+line of the @value{GDBN} I/O buffer and this serves as a default for
+the commands that specify files for @value{GDBN} to operate
+on. @xref{Files, ,Commands to specify files}.
+
+By default, @kbd{M-x gdb} calls the program called @file{gdb}. If you
+need to call @value{GDBN} by a different name (for example, if you
+keep several configurations around, with different names) you can
+customize the Emacs variable @code{gud-gdb-command-name} to run the
+one you want.
In the @value{GDBN} I/O buffer, you can use these special Emacs commands in
addition to the standard Shell mode commands:
@@ -14170,66 +14186,47 @@ addition to the standard Shell mode commands:
@item C-h m
Describe the features of Emacs' @value{GDBN} Mode.
-@item M-s
+@item C-c C-s
Execute to another source line, like the @value{GDBN} @code{step} command; also
update the display window to show the current file and location.
-@item M-n
+@item C-c C-n
Execute to next source line in this function, skipping all function
calls, like the @value{GDBN} @code{next} command. Then update the display window
to show the current file and location.
-@item M-i
+@item C-c C-i
Execute one instruction, like the @value{GDBN} @code{stepi} command; update
display window accordingly.
-@item M-x gdb-nexti
-Execute to next instruction, using the @value{GDBN} @code{nexti} command; update
-display window accordingly.
-
@item C-c C-f
Execute until exit from the selected stack frame, like the @value{GDBN}
@code{finish} command.
-@item M-c
+@item C-c C-r
Continue execution of your program, like the @value{GDBN} @code{continue}
command.
-@emph{Warning:} In Emacs v19, this command is @kbd{C-c C-p}.
-
-@item M-u
+@item C-c <
Go up the number of frames indicated by the numeric argument
(@pxref{Arguments, , Numeric Arguments, Emacs, The @sc{gnu} Emacs Manual}),
like the @value{GDBN} @code{up} command.
-@emph{Warning:} In Emacs v19, this command is @kbd{C-c C-u}.
-
-@item M-d
+@item C-c >
Go down the number of frames indicated by the numeric argument, like the
@value{GDBN} @code{down} command.
-
-@emph{Warning:} In Emacs v19, this command is @kbd{C-c C-d}.
-
-@item C-x &
-Read the number where the cursor is positioned, and insert it at the end
-of the @value{GDBN} I/O buffer. For example, if you wish to disassemble code
-around an address that was displayed earlier, type @kbd{disassemble};
-then move the cursor to the address display, and pick up the
-argument for @code{disassemble} by typing @kbd{C-x &}.
-
-You can customize this further by defining elements of the list
-@code{gdb-print-command}; once it is defined, you can format or
-otherwise process numbers picked up by @kbd{C-x &} before they are
-inserted. A numeric argument to @kbd{C-x &} indicates that you
-wish special formatting, and also acts as an index to pick an element of the
-list. If the list element is a string, the number to be inserted is
-formatted using the Emacs function @code{format}; otherwise the number
-is passed as an argument to the corresponding list element.
@end table
-In any source file, the Emacs command @kbd{C-x SPC} (@code{gdb-break})
+In any source file, the Emacs command @kbd{C-x SPC} (@code{gud-break})
tells @value{GDBN} to set a breakpoint on the source line point is on.
+If you type @kbd{M-x speedbar}, then Emacs displays a separate frame which
+shows a backtrace when the @value{GDBN} I/O buffer is current. Move
+point to any frame in the stack and type @key{RET} to make it become the
+current frame and display the associated source in the source buffer.
+Alternatively, click @kbd{Mouse-2} to make the selected frame become the
+current one.
+
If you accidentally delete the source-display buffer, an easy way to get
it back is to type the command @code{f} in the @value{GDBN} buffer, to
request a frame display; when you run under Emacs, this recreates
@@ -14242,6 +14239,10 @@ the files with these buffers if you wish; but keep in mind that @value{GDBN}
communicates with Emacs in terms of line numbers. If you add or
delete lines from the text, the line numbers that @value{GDBN} knows cease
to correspond properly with the code.
+
+The description given here is for GNU Emacs version 21.3 and a more
+detailed description of its interaction with @value{GDBN} is given in
+the Emacs manual (@pxref{Debuggers,,, Emacs, The @sc{gnu} Emacs Manual}).
@c The following dropped because Epoch is nonstandard. Reactivate
@c if/when v19 does something similar. ---doc@cygnus.com 19dec1990
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index f453327..30f3018 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -1499,7 +1499,7 @@ loop. A client would need to either plug its self into this loop or,
implement a new event-loop that GDB would use.
The event-loop will eventually be made re-entrant. This is so that
-@value{GDB} can better handle the problem of some commands blocking
+@value{GDBN} can better handle the problem of some commands blocking
instead of returning.
@subheading Library - @file{gdb.h}
@@ -3229,6 +3229,24 @@ the direction of stack growth.
By default, no frame based stack alignment is performed.
+@item int frame_red_zone_size
+
+The number of bytes, beyond the innermost-stack-address, reserved by the
+@sc{abi}. A function is permitted to use this scratch area (instead of
+allocating extra stack space).
+
+When performing an inferior function call, to ensure that it does not
+modify this area, @value{GDBN} adjusts the innermost-stack-address by
+@var{frame_red_zone_size} bytes before pushing parameters onto the
+stack.
+
+By default, zero bytes are allocated. The value must be aligned
+(@pxref{frame_align}).
+
+The @sc{amd64} (nee x86-64) @sc{abi} documentation refers to the
+@emph{red zone} when describing this scratch area.
+@cindex red zone
+
@item DEPRECATED_FRAME_CHAIN(@var{frame})
@findex DEPRECATED_FRAME_CHAIN
Given @var{frame}, return a pointer to the calling frame.
@@ -5003,8 +5021,9 @@ that use register windows.
@item -Wtrigraphs
@item -Wformat
+@itemx -Wformat-nonliteral
Since @value{GDBN} uses the @code{format printf} attribute on all
-@code{printf} like functions this checks not just @code{printf} calls
+@code{printf} like functions these check not just @code{printf} calls
but also calls to functions such as @code{fprintf_unfiltered}.
@item -Wparentheses
diff --git a/gdb/dsrec.c b/gdb/dsrec.c
index 5f2c2d7..4f111bb 100644
--- a/gdb/dsrec.c
+++ b/gdb/dsrec.c
@@ -23,6 +23,7 @@
#include "serial.h"
#include "srec.h"
#include <time.h>
+#include "gdb_assert.h"
extern void report_transfer_performance (unsigned long, time_t, time_t);
@@ -223,10 +224,6 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
const static char data_code_table[] = "123";
const static char term_code_table[] = "987";
const static char header_code_table[] = "000";
- const static char *formats[] =
- {"S%c%02X%04X",
- "S%c%02X%06X",
- "S%c%02X%08X"};
char const *code_table;
int addr_size;
int payload_size;
@@ -271,9 +268,10 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
payload_size = 0; /* Term or header packets have no payload */
/* Output the header. */
-
- sprintf (srec, formats[addr_size - 2], code_table[addr_size - 2],
- addr_size + payload_size + 1, (int) targ_addr);
+ snprintf (srec, (*maxrecsize) + 1, "S%c%02X%0*X",
+ code_table[addr_size - 2],
+ addr_size + payload_size + 1,
+ addr_size * 2, (int) targ_addr);
/* Note that the checksum is calculated on the raw data, not the
hexified data. It includes the length, address and the data
@@ -287,6 +285,9 @@ make_srec (char *srec, CORE_ADDR targ_addr, bfd *abfd, asection *sect,
+ ((targ_addr >> 16) & 0xff)
+ ((targ_addr >> 24) & 0xff));
+ /* NOTE: cagney/2003-08-10: The equation is old. Check that the
+ recent snprintf changes match that equation. */
+ gdb_assert (strlen (srec) == 1 + 1 + 2 + addr_size * 2);
p = srec + 1 + 1 + 2 + addr_size * 2;
/* Build the Srecord. */
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index 9870433..36c7dbb 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -408,8 +408,9 @@ static struct frame_unwind dummy_frame_unwind =
};
const struct frame_unwind *
-dummy_frame_p (CORE_ADDR pc)
+dummy_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
if (DEPRECATED_PC_IN_CALL_DUMMY_P ()
? DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0)
: pc_in_dummy_frame (pc))
diff --git a/gdb/dummy-frame.h b/gdb/dummy-frame.h
index ae090e3..cde9eb7 100644
--- a/gdb/dummy-frame.h
+++ b/gdb/dummy-frame.h
@@ -48,7 +48,7 @@ struct frame_id;
/* If the PC falls in a dummy frame, return a dummy frame
unwinder. */
-extern const struct frame_unwind *dummy_frame_p (CORE_ADDR pc);
+extern const struct frame_unwind *dummy_frame_sniffer (struct frame_info *next_frame);
/* Does the PC fall in a dummy frame?
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index 2dea90d..6a40df5 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -742,8 +742,9 @@ static const struct frame_base dwarf2_frame_base =
};
const struct frame_base *
-dwarf2_frame_base_p (CORE_ADDR pc)
+dwarf2_frame_base_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
if (dwarf2_frame_find_fde (&pc))
return &dwarf2_frame_base;
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index 1d47422..c9c106f 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -25,6 +25,7 @@
#define DWARF2_FRAME_H 1
struct objfile;
+struct frame_info;
/* Return the frame unwind methods for the function that contains PC,
or NULL if it can't be handled by DWARF CFI frame unwinder. */
@@ -34,7 +35,7 @@ const struct frame_unwind *dwarf2_frame_sniffer (struct frame_info *next_frame);
/* Return the frame base methods for the function that contains PC, or
NULL if it can't be handled by the DWARF CFI frame unwinder. */
-const struct frame_base *dwarf2_frame_base_p (CORE_ADDR pc);
+const struct frame_base *dwarf2_frame_base_sniffer (struct frame_info *next_frame);
/* Register the DWARF CFI for OBJFILE. */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 115d8db..da31c60 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5207,32 +5207,10 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
attr = dwarf_attr (die, DW_AT_location);
if (attr)
{
- SYMBOL_VALUE (sym) =
- decode_locdesc (DW_BLOCK (attr), objfile, cu_header);
- if (isreg)
- {
- SYMBOL_CLASS (sym) = LOC_REGPARM;
- SYMBOL_VALUE (sym) =
- DWARF2_REG_TO_REGNUM (SYMBOL_VALUE (sym));
- }
- else if (offreg)
- {
- if (isderef)
- {
- if (basereg != frame_base_reg)
- dwarf2_complex_location_expr_complaint ();
- SYMBOL_CLASS (sym) = LOC_REF_ARG;
- }
- else
- {
- SYMBOL_CLASS (sym) = LOC_BASEREG_ARG;
- SYMBOL_BASEREG (sym) = DWARF2_REG_TO_REGNUM (basereg);
- }
- }
- else
- {
- SYMBOL_CLASS (sym) = LOC_ARG;
- }
+ var_decode_location (attr, sym, objfile, cu_header);
+ /* FIXME drow/2003-07-31: Is LOC_COMPUTED_ARG necessary? */
+ if (SYMBOL_CLASS (sym) == LOC_COMPUTED)
+ SYMBOL_CLASS (sym) = LOC_COMPUTED_ARG;
}
attr = dwarf_attr (die, DW_AT_const_value);
if (attr)
diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c
index 4d5c93f..e6f2a2e 100644
--- a/gdb/dwarfread.c
+++ b/gdb/dwarfread.c
@@ -3202,7 +3202,7 @@ decode_modified_type (char *modifiers, unsigned int modcount, int mtype)
#if 0
/* This part of the test would always be true, and it triggers a compiler
warning. */
- && (unsigned char) modifier <= MOD_hi_user))
+ && (unsigned char) modifier <= MOD_hi_user))
#endif
{
complaint (&symfile_complaints,
diff --git a/gdb/elfread.c b/gdb/elfread.c
index ff766fb..a655797 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -610,8 +610,9 @@ elf_symfile_read (struct objfile *objfile, int mainline)
ei.lnoffset, ei.lnsize);
}
- if (DWARF2_BUILD_FRAME_INFO_P ())
- DWARF2_BUILD_FRAME_INFO(objfile);
+ /* FIXME: kettenis/20030504: This still needs to be integrated with
+ dwarf2read.c in a better way. */
+ dwarf2_build_frame_info (objfile);
}
/* This cleans up the objfile's sym_stab_info pointer, and the chain of
diff --git a/gdb/eval.c b/gdb/eval.c
index c266cd1..914a552 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -454,7 +454,7 @@ evaluate_subexp_standard (struct type *expect_type,
(*pos) += 2;
if (val == NULL)
error ("Value of register %s not available.",
- frame_map_regnum_to_name (regno));
+ frame_map_regnum_to_name (get_selected_frame (), regno));
else
return val;
}
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 5ab324d..9db28fb 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -612,7 +612,7 @@ command_line_handler (char *rl)
if (annotation_level > 1 && instream == stdin)
{
printf_unfiltered ("\n\032\032post-");
- printf_unfiltered (async_annotation_suffix);
+ puts_unfiltered (async_annotation_suffix);
printf_unfiltered ("\n");
}
diff --git a/gdb/expprint.c b/gdb/expprint.c
index d0e940b..bbc63e7 100644
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -27,7 +27,7 @@
#include "value.h"
#include "language.h"
#include "parser-defs.h"
-#include "frame.h" /* For frame_map_regnum_to_name. */
+#include "user-regs.h" /* For user_reg_map_regnum_to_name. */
#include "target.h"
#include "gdb_string.h"
#include "block.h"
@@ -126,8 +126,10 @@ print_subexp (register struct expression *exp, register int *pos,
case OP_REGISTER:
{
int regnum = longest_to_int (exp->elts[pc + 1].longconst);
+ const char *name = user_reg_map_regnum_to_name (current_gdbarch,
+ regnum);
(*pos) += 2;
- fprintf_filtered (stream, "$%s", frame_map_regnum_to_name (regnum));
+ fprintf_filtered (stream, "$%s", name);
return;
}
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 6602c39..7b6191c 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -34,7 +34,7 @@
#include "floatformat.h"
#include "symfile.h" /* for overlay functions */
#include "regcache.h"
-#include "builtin-regs.h"
+#include "user-regs.h"
#include "block.h"
/* Basic byte-swapping routines. GDB has needed these for a long time...
@@ -263,10 +263,10 @@ value_of_register (int regnum, struct frame_info *frame)
char raw_buffer[MAX_REGISTER_SIZE];
enum lval_type lval;
- /* Builtin registers lie completly outside of the range of normal
+ /* User registers lie completly outside of the range of normal
registers. Catch them early so that the target never sees them. */
if (regnum >= NUM_REGS + NUM_PSEUDO_REGS)
- return value_of_builtin_reg (regnum, frame);
+ return value_of_user_reg (regnum, frame);
frame_register (frame, regnum, &optim, &lval, &addr, &realnum, raw_buffer);
diff --git a/gdb/frame-base.c b/gdb/frame-base.c
index ab87fcb..66a0106 100644
--- a/gdb/frame-base.c
+++ b/gdb/frame-base.c
@@ -24,9 +24,9 @@
#include "frame.h"
/* A default frame base implementations. If it wasn't for the old
- FRAME_LOCALS_ADDRESS and FRAME_ARGS_ADDRESS, these could be
- combined into a single function. All architectures really need to
- override this. */
+ DEPRECATED_FRAME_LOCALS_ADDRESS and DEPRECATED_FRAME_ARGS_ADDRESS,
+ these could be combined into a single function. All architectures
+ really need to override this. */
static CORE_ADDR
default_frame_base_address (struct frame_info *next_frame, void **this_cache)
@@ -38,15 +38,25 @@ default_frame_base_address (struct frame_info *next_frame, void **this_cache)
static CORE_ADDR
default_frame_locals_address (struct frame_info *next_frame, void **this_cache)
{
- struct frame_info *this_frame = get_prev_frame (next_frame);
- return FRAME_LOCALS_ADDRESS (this_frame);
+ if (DEPRECATED_FRAME_LOCALS_ADDRESS_P ())
+ {
+ /* This is bad. The computation of per-frame locals address
+ should use a per-frame frame-base. */
+ struct frame_info *this_frame = get_prev_frame (next_frame);
+ return DEPRECATED_FRAME_LOCALS_ADDRESS (this_frame);
+ }
+ return default_frame_base_address (next_frame, this_cache);
}
static CORE_ADDR
default_frame_args_address (struct frame_info *next_frame, void **this_cache)
{
- struct frame_info *this_frame = get_prev_frame (next_frame);
- return FRAME_ARGS_ADDRESS (this_frame);
+ if (DEPRECATED_FRAME_ARGS_ADDRESS_P ())
+ {
+ struct frame_info *this_frame = get_prev_frame (next_frame);
+ return DEPRECATED_FRAME_ARGS_ADDRESS (this_frame);
+ }
+ return default_frame_base_address (next_frame, this_cache);
}
const struct frame_base default_frame_base = {
@@ -60,7 +70,6 @@ static struct gdbarch_data *frame_base_data;
struct frame_base_table
{
- frame_base_p_ftype **p;
frame_base_sniffer_ftype **sniffer;
const struct frame_base *default_base;
int nr;
@@ -74,16 +83,6 @@ frame_base_init (struct gdbarch *gdbarch)
return table;
}
-static void
-frame_base_free (struct gdbarch *gdbarch, void *data)
-{
- struct frame_base_table *table =
- gdbarch_data (gdbarch, frame_base_data);
- xfree (table->p);
- xfree (table->sniffer);
- xfree (table);
-}
-
static struct frame_base_table *
frame_base_table (struct gdbarch *gdbarch)
{
@@ -100,33 +99,22 @@ frame_base_table (struct gdbarch *gdbarch)
/* Append a predicate to the end of the table. */
static void
-append_predicate (struct frame_base_table *table, frame_base_p_ftype *p,
+append_predicate (struct frame_base_table *table,
frame_base_sniffer_ftype *sniffer)
{
- table->p = xrealloc (table->p, ((table->nr + 1)
- * sizeof (frame_base_p_ftype *)));
table->sniffer = xrealloc (table->sniffer,
((table->nr + 1)
* sizeof (frame_base_sniffer_ftype *)));
- table->p[table->nr] = p;
table->sniffer[table->nr] = sniffer;
table->nr++;
}
void
-frame_base_append_predicate (struct gdbarch *gdbarch,
- frame_base_p_ftype *p)
-{
- struct frame_base_table *table = frame_base_table (gdbarch);
- append_predicate (table, p, NULL);
-}
-
-void
frame_base_append_sniffer (struct gdbarch *gdbarch,
frame_base_sniffer_ftype *sniffer)
{
struct frame_base_table *table = frame_base_table (gdbarch);
- append_predicate (table, NULL, sniffer);
+ append_predicate (table, sniffer);
}
void
@@ -146,10 +134,7 @@ frame_base_find_by_frame (struct frame_info *next_frame)
for (i = 0; i < table->nr; i++)
{
const struct frame_base *desc = NULL;
- if (table->p[i] != NULL)
- desc = table->p[i] (frame_pc_unwind (next_frame));
- else if (table->sniffer[i] != NULL)
- desc = table->sniffer[i] (next_frame);
+ desc = table->sniffer[i] (next_frame);
if (desc != NULL)
return desc;
}
@@ -161,6 +146,5 @@ extern initialize_file_ftype _initialize_frame_base; /* -Wmissing-prototypes */
void
_initialize_frame_base (void)
{
- frame_base_data = register_gdbarch_data (frame_base_init,
- frame_base_free);
+ frame_base_data = register_gdbarch_data (frame_base_init);
}
diff --git a/gdb/frame-base.h b/gdb/frame-base.h
index 7433c54..680e9d5 100644
--- a/gdb/frame-base.h
+++ b/gdb/frame-base.h
@@ -29,12 +29,6 @@ struct frame_base;
struct gdbarch;
struct regcache;
-/* For compatibility. */
-
-typedef const struct frame_base *(frame_base_p_ftype) (CORE_ADDR pc);
-extern void frame_base_append_predicate (struct gdbarch *gdbarch,
- frame_base_p_ftype *p);
-
/* Assuming the frame chain: (outer) prev <-> this <-> next (inner);
and that this is a `normal frame'; use the NEXT frame, and its
register unwind method, to determine the address of THIS frame's
diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
index ed43cb3..fc5a821 100644
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -29,21 +29,17 @@ static struct gdbarch_data *frame_unwind_data;
struct frame_unwind_table
{
- frame_unwind_p_ftype **p;
frame_unwind_sniffer_ftype **sniffer;
int nr;
};
/* Append a predicate to the end of the table. */
static void
-append_predicate (struct frame_unwind_table *table, frame_unwind_p_ftype *p,
+append_predicate (struct frame_unwind_table *table,
frame_unwind_sniffer_ftype *sniffer)
{
- table->p = xrealloc (table->p, ((table->nr + 1)
- * sizeof (frame_unwind_p_ftype *)));
table->sniffer = xrealloc (table->sniffer, ((table->nr + 1)
* sizeof (frame_unwind_sniffer_ftype *)));
- table->p[table->nr] = p;
table->sniffer[table->nr] = sniffer;
table->nr++;
}
@@ -52,36 +48,10 @@ static void *
frame_unwind_init (struct gdbarch *gdbarch)
{
struct frame_unwind_table *table = XCALLOC (1, struct frame_unwind_table);
- append_predicate (table, dummy_frame_p, NULL);
+ append_predicate (table, dummy_frame_sniffer);
return table;
}
-static void
-frame_unwind_free (struct gdbarch *gdbarch, void *data)
-{
- struct frame_unwind_table *table =
- gdbarch_data (gdbarch, frame_unwind_data);
- xfree (table->p);
- xfree (table->sniffer);
- xfree (table);
-}
-
-void
-frame_unwind_append_predicate (struct gdbarch *gdbarch,
- frame_unwind_p_ftype *p)
-{
- struct frame_unwind_table *table =
- gdbarch_data (gdbarch, frame_unwind_data);
- if (table == NULL)
- {
- /* ULGH, called during architecture initialization. Patch
- things up. */
- table = frame_unwind_init (gdbarch);
- set_gdbarch_data (gdbarch, frame_unwind_data, table);
- }
- append_predicate (table, p, NULL);
-}
-
void
frame_unwind_append_sniffer (struct gdbarch *gdbarch,
frame_unwind_sniffer_ftype *sniffer)
@@ -95,7 +65,7 @@ frame_unwind_append_sniffer (struct gdbarch *gdbarch,
table = frame_unwind_init (gdbarch);
set_gdbarch_data (gdbarch, frame_unwind_data, table);
}
- append_predicate (table, NULL, sniffer);
+ append_predicate (table, sniffer);
}
const struct frame_unwind *
@@ -113,12 +83,7 @@ frame_unwind_find_by_frame (struct frame_info *next_frame)
for (i = 0; i < table->nr; i++)
{
const struct frame_unwind *desc;
- if (table->p[i] != NULL)
- desc = table->p[i] (frame_pc_unwind (next_frame));
- else if (table->sniffer[i] != NULL)
- desc = table->sniffer[i] (next_frame);
- else
- internal_error (__FILE__, __LINE__, "Missing sniffer?");
+ desc = table->sniffer[i] (next_frame);
if (desc != NULL)
return desc;
}
@@ -130,6 +95,5 @@ extern initialize_file_ftype _initialize_frame_unwind; /* -Wmissing-prototypes *
void
_initialize_frame_unwind (void)
{
- frame_unwind_data = register_gdbarch_data (frame_unwind_init,
- frame_unwind_free);
+ frame_unwind_data = register_gdbarch_data (frame_unwind_init);
}
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index 80ce4b6..8d17280 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -30,12 +30,6 @@ struct regcache;
#include "frame.h" /* For enum frame_type. */
-/* For compatibility with the old frame code. See end of header for
- new methods. */
-typedef const struct frame_unwind *(frame_unwind_p_ftype) (CORE_ADDR pc);
-extern void frame_unwind_append_predicate (struct gdbarch *gdbarch,
- frame_unwind_p_ftype *p);
-
/* The following unwind functions assume a chain of frames forming the
sequence: (outer) prev <-> this <-> next (inner). All the
functions are called with called with the next frame's `struct
diff --git a/gdb/frame.c b/gdb/frame.c
index 86c36a3..efcee75 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -28,7 +28,7 @@
#include "regcache.h"
#include "gdb_assert.h"
#include "gdb_string.h"
-#include "builtin-regs.h"
+#include "user-regs.h"
#include "gdb_obstack.h"
#include "dummy-frame.h"
#include "sentinel-frame.h"
@@ -135,9 +135,11 @@ struct frame_info
static int frame_debug;
-/* Flag to indicate whether backtraces should stop at main. */
+/* Flag to indicate whether backtraces should stop at main et.al. */
+
+static int backtrace_past_main;
+static unsigned int backtrace_limit = UINT_MAX;
-static int backtrace_below_main;
void
fprint_frame_id (struct ui_file *file, struct frame_id id)
@@ -499,7 +501,7 @@ frame_register_unwind (struct frame_info *frame, int regnum,
{
fprintf_unfiltered (gdb_stdlog,
"{ frame_register_unwind (frame=%d,regnum=\"%s\",...) ",
- frame->level, frame_map_regnum_to_name (regnum));
+ frame->level, frame_map_regnum_to_name (frame, regnum));
}
/* Require all but BUFFERP to be valid. A NULL BUFFERP indicates
@@ -774,42 +776,15 @@ frame_register_read (struct frame_info *frame, int regnum, void *myaddr)
includes builtin registers. */
int
-frame_map_name_to_regnum (const char *name, int len)
+frame_map_name_to_regnum (struct frame_info *frame, const char *name, int len)
{
- int i;
-
- if (len < 0)
- len = strlen (name);
-
- /* Search register name space. */
- for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++)
- if (REGISTER_NAME (i) && len == strlen (REGISTER_NAME (i))
- && strncmp (name, REGISTER_NAME (i), len) == 0)
- {
- return i;
- }
-
- /* Try builtin registers. */
- i = builtin_reg_map_name_to_regnum (name, len);
- if (i >= 0)
- {
- /* A builtin register doesn't fall into the architecture's
- register range. */
- gdb_assert (i >= NUM_REGS + NUM_PSEUDO_REGS);
- return i;
- }
-
- return -1;
+ return user_reg_map_name_to_regnum (get_frame_arch (frame), name, len);
}
const char *
-frame_map_regnum_to_name (int regnum)
+frame_map_regnum_to_name (struct frame_info *frame, int regnum)
{
- if (regnum < 0)
- return NULL;
- if (regnum < NUM_REGS + NUM_PSEUDO_REGS)
- return REGISTER_NAME (regnum);
- return builtin_reg_map_regnum_to_name (regnum);
+ return user_reg_map_regnum_to_name (get_frame_arch (frame), regnum);
}
/* Create a sentinel frame. */
@@ -1829,7 +1804,7 @@ get_prev_frame (struct frame_info *this_frame)
gdb_assert (this_frame != NULL);
if (this_frame->level >= 0
- && !backtrace_below_main
+ && !backtrace_past_main
&& inside_main_func (get_frame_pc (this_frame)))
/* Don't unwind past main(), bug always unwind the sentinel frame.
Note, this is done _before_ the frame has been marked as
@@ -1841,6 +1816,11 @@ get_prev_frame (struct frame_info *this_frame)
return NULL;
}
+ if (this_frame->level > backtrace_limit)
+ {
+ error ("Backtrace limit of %d exceeded", backtrace_limit);
+ }
+
/* If we're already inside the entry function for the main objfile,
then it isn't valid. Don't apply this test to a dummy frame -
dummy frame PC's typically land in the entry func. Don't apply
@@ -2299,7 +2279,8 @@ deprecated_set_frame_context (struct frame_info *fi,
struct frame_info *
deprecated_frame_xmalloc (void)
{
- struct frame_info *frame = FRAME_OBSTACK_ZALLOC (struct frame_info);
+ struct frame_info *frame = XMALLOC (struct frame_info);
+ memset (frame, 0, sizeof (*frame));
frame->this_id.p = 1;
return frame;
}
@@ -2397,18 +2378,39 @@ legacy_frame_p (struct gdbarch *current_gdbarch)
extern initialize_file_ftype _initialize_frame; /* -Wmissing-prototypes */
+static struct cmd_list_element *set_backtrace_cmdlist;
+static struct cmd_list_element *show_backtrace_cmdlist;
+
+static void
+set_backtrace_cmd (char *args, int from_tty)
+{
+ help_list (set_backtrace_cmdlist, "set backtrace ", -1, gdb_stdout);
+}
+
+static void
+show_backtrace_cmd (char *args, int from_tty)
+{
+ cmd_show_list (show_backtrace_cmdlist, from_tty, "");
+}
+
void
_initialize_frame (void)
{
obstack_init (&frame_cache_obstack);
- /* FIXME: cagney/2003-01-19: This command needs a rename. Suggest
- `set backtrace {past,beyond,...}-main'. Also suggest adding `set
- backtrace ...-start' to control backtraces past start. The
- problem with `below' is that it stops the `up' command. */
-
- add_setshow_boolean_cmd ("backtrace-below-main", class_obscure,
- &backtrace_below_main, "\
+ add_prefix_cmd ("backtrace", class_maintenance, set_backtrace_cmd, "\
+Set backtrace specific variables.\n\
+Configure backtrace variables such as the backtrace limit",
+ &set_backtrace_cmdlist, "set backtrace ",
+ 0/*allow-unknown*/, &setlist);
+ add_prefix_cmd ("backtrace", class_maintenance, show_backtrace_cmd, "\
+Show backtrace specific variables\n\
+Show backtrace variables such as the backtrace limit",
+ &show_backtrace_cmdlist, "show backtrace ",
+ 0/*allow-unknown*/, &showlist);
+
+ add_setshow_boolean_cmd ("past-main", class_obscure,
+ &backtrace_past_main, "\
Set whether backtraces should continue past \"main\".\n\
Normally the caller of \"main\" is not of interest, so GDB will terminate\n\
the backtrace at \"main\". Set this variable if you need to see the rest\n\
@@ -2417,8 +2419,17 @@ Show whether backtraces should continue past \"main\".\n\
Normally the caller of \"main\" is not of interest, so GDB will terminate\n\
the backtrace at \"main\". Set this variable if you need to see the rest\n\
of the stack trace.",
- NULL, NULL, &setlist, &showlist);
-
+ NULL, NULL, &set_backtrace_cmdlist,
+ &show_backtrace_cmdlist);
+
+ add_setshow_uinteger_cmd ("limit", class_obscure,
+ &backtrace_limit, "\
+Set an upper bound on the number of backtrace levels.\n\
+No more than the specified number of frames can be displayed or examined.\n\
+Zero is unlimited.", "\
+Show the upper bound on the number of backtrace levels.",
+ NULL, NULL, &set_backtrace_cmdlist,
+ &show_backtrace_cmdlist);
/* Debug this files internals. */
add_show_from_set (add_set_cmd ("frame", class_maintenance, var_zinteger,
diff --git a/gdb/frame.h b/gdb/frame.h
index bb2eb6e..8851b3a 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -425,8 +425,10 @@ extern void put_frame_register (struct frame_info *frame, int regnum,
includes builtin registers. If NAMELEN is negative, use the NAME's
length when doing the comparison. */
-extern int frame_map_name_to_regnum (const char *name, int namelen);
-extern const char *frame_map_regnum_to_name (int regnum);
+extern int frame_map_name_to_regnum (struct frame_info *frame,
+ const char *name, int namelen);
+extern const char *frame_map_regnum_to_name (struct frame_info *frame,
+ int regnum);
/* Unwind the PC. Strictly speaking return the resume address of the
calling frame. For GDB, `pc' is the resume address and not a
@@ -540,10 +542,6 @@ extern struct block *get_selected_block (CORE_ADDR *addr_in_block);
extern struct symbol *get_frame_function (struct frame_info *);
-/* DEPRECATED: Replaced by tye pair get_frame_address_in_block and
- frame_unwind_address_in_block. */
-extern CORE_ADDR frame_address_in_block (struct frame_info *);
-
extern CORE_ADDR get_pc_function_start (CORE_ADDR);
extern int frameless_look_for_prologue (struct frame_info *);
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index e4dc885..9828b90 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -19,11 +19,14 @@
Boston, MA 02111-1307, USA. */
#include "defs.h"
+#include "gdb_string.h"
#include "inferior.h"
#include "symfile.h" /* for entry_point_address */
#include "gdbcore.h"
#include "arch-utils.h"
#include "regcache.h"
+#include "frame.h"
+#include "trad-frame.h"
extern void _initialize_frv_tdep (void);
@@ -35,9 +38,9 @@ static gdbarch_skip_prologue_ftype frv_skip_prologue;
static gdbarch_deprecated_extract_return_value_ftype frv_extract_return_value;
static gdbarch_deprecated_extract_struct_value_address_ftype frv_extract_struct_value_address;
static gdbarch_frameless_function_invocation_ftype frv_frameless_function_invocation;
-static gdbarch_init_extra_frame_info_ftype stupid_useless_init_extra_frame_info;
-static gdbarch_push_arguments_ftype frv_push_arguments;
-static gdbarch_saved_pc_after_call_ftype frv_saved_pc_after_call;
+static gdbarch_deprecated_push_arguments_ftype frv_push_arguments;
+static gdbarch_deprecated_saved_pc_after_call_ftype frv_saved_pc_after_call;
+static void frv_frame_init_saved_regs (struct frame_info *frame);
static void frv_pop_frame_regular (struct frame_info *frame);
@@ -93,6 +96,9 @@ struct frame_extra_info
/* Non-zero if we've saved our return address on the stack yet.
Zero if it's still sitting in the link register. */
int lr_saved_on_stack;
+
+ /* Table indicating the location of each and every register. */
+ struct trad_frame_saved_reg *saved_regs;
};
@@ -272,12 +278,16 @@ static CORE_ADDR
frv_frame_chain (struct frame_info *frame)
{
CORE_ADDR saved_fp_addr;
+ struct frame_extra_info *extra_info =
+ get_frame_extra_info (frame);
- if (frame->saved_regs && frame->saved_regs[fp_regnum] != 0)
- saved_fp_addr = frame->saved_regs[fp_regnum];
+ if (extra_info &&
+ extra_info->saved_regs &&
+ extra_info->saved_regs[fp_regnum].addr != 0)
+ saved_fp_addr = extra_info->saved_regs[fp_regnum].addr;
else
/* Just assume it was saved in the usual place. */
- saved_fp_addr = frame->frame;
+ saved_fp_addr = get_frame_base (frame);
return read_memory_integer (saved_fp_addr, 4);
}
@@ -285,28 +295,32 @@ frv_frame_chain (struct frame_info *frame)
static CORE_ADDR
frv_frame_saved_pc (struct frame_info *frame)
{
+ struct frame_extra_info *extra_info =
+ get_frame_extra_info (frame);
+
frv_frame_init_saved_regs (frame);
/* Perhaps the prologue analyzer recorded where it was stored.
(As of 14 Oct 2001, it never does.) */
- if (frame->saved_regs && frame->saved_regs[pc_regnum] != 0)
- return read_memory_integer (frame->saved_regs[pc_regnum], 4);
+ if (extra_info && extra_info->saved_regs &&
+ extra_info->saved_regs[pc_regnum].addr != 0)
+ return read_memory_integer (extra_info->saved_regs[pc_regnum].addr, 4);
/* If the prologue analyzer tells us the link register was saved on
the stack, get it from there. */
- if (frame->extra_info->lr_saved_on_stack)
- return read_memory_integer (frame->frame + 8, 4);
+ if (extra_info->lr_saved_on_stack)
+ return read_memory_integer (get_frame_base (frame) + 8, 4);
/* Otherwise, it's still in LR.
However, if FRAME isn't the youngest frame, this is kind of
suspicious --- if this frame called somebody else, then its LR
has certainly been overwritten. */
- if (! frame->next)
+ if (! get_next_frame (frame))
return read_register (lr_regnum);
/* By default, assume it's saved in the standard place, relative to
the frame pointer. */
- return read_memory_integer (frame->frame + 8, 4);
+ return read_memory_integer (get_frame_base (frame) + 8, 4);
}
@@ -391,7 +405,7 @@ frv_analyze_prologue (CORE_ADDR pc, struct frame_info *frame)
memset (gr_saved, 0, sizeof (gr_saved));
- while (! frame || pc < frame->pc)
+ while (! frame || pc < get_frame_pc (frame))
{
LONGEST op = read_memory_integer (pc, 4);
@@ -659,7 +673,10 @@ frv_analyze_prologue (CORE_ADDR pc, struct frame_info *frame)
if (frame)
{
- frame->extra_info->lr_saved_on_stack = lr_saved_on_stack;
+ struct frame_extra_info *extra_info =
+ get_frame_extra_info (frame);
+
+ extra_info->lr_saved_on_stack = lr_saved_on_stack;
/* If we know the relationship between the stack and frame
pointers, record the addresses of the registers we noticed.
@@ -668,14 +685,17 @@ frv_analyze_prologue (CORE_ADDR pc, struct frame_info *frame)
their addresses relative to the FP. */
if (fp_set)
{
+ struct trad_frame_saved_reg *saved_regs;
int i;
+ saved_regs = extra_info->saved_regs;
for (i = 0; i < 64; i++)
if (gr_saved[i])
- frame->saved_regs[i] = (frame->frame
- - fp_offset + gr_sp_offset[i]);
+ trad_frame_set_value (saved_regs, i,
+ get_frame_base (frame) - fp_offset
+ + gr_sp_offset[i]);
- frame->extra_info->fp_to_callers_sp_offset = framesize - fp_offset;
+ extra_info->fp_to_callers_sp_offset = framesize - fp_offset;
}
}
@@ -717,18 +737,23 @@ frv_skip_prologue (CORE_ADDR pc)
static void
frv_frame_init_saved_regs (struct frame_info *frame)
{
- if (frame->saved_regs)
+ struct frame_extra_info *extra_info =
+ get_frame_extra_info (frame);
+
+ if (extra_info && extra_info->saved_regs)
return;
- frame_saved_regs_zalloc (frame);
- frame->saved_regs[fp_regnum] = frame->frame;
+ extra_info->saved_regs = trad_frame_alloc_saved_regs (frame);
+ trad_frame_set_value (extra_info->saved_regs,
+ fp_regnum, get_frame_base (frame));
/* Find the beginning of this function, so we can analyze its
prologue. */
{
CORE_ADDR func_addr, func_end;
- if (find_pc_partial_function (frame->pc, NULL, &func_addr, &func_end))
+ if (find_pc_partial_function (get_frame_pc (frame),
+ NULL, &func_addr, &func_end))
frv_analyze_prologue (func_addr, frame);
}
}
@@ -745,7 +770,8 @@ frv_extract_return_value (struct type *type, char *regbuf, char *valbuf)
static CORE_ADDR
frv_extract_struct_value_address (char *regbuf)
{
- return extract_unsigned_integer (regbuf + frv_register_byte (struct_return_regnum),
+ return extract_unsigned_integer (regbuf +
+ frv_register_byte (struct_return_regnum),
4);
}
@@ -770,9 +796,12 @@ frv_saved_pc_after_call (struct frame_info *frame)
static void
frv_init_extra_frame_info (int fromleaf, struct frame_info *frame)
{
- frame_extra_info_zalloc (frame, sizeof (struct frame_extra_info));
- frame->extra_info->fp_to_callers_sp_offset = 0;
- frame->extra_info->lr_saved_on_stack = 0;
+ struct frame_extra_info *extra_info =
+ frame_extra_info_zalloc (frame, sizeof (struct frame_extra_info));
+
+ extra_info->fp_to_callers_sp_offset = 0;
+ extra_info->lr_saved_on_stack = 0;
+ extra_info->saved_regs = trad_frame_alloc_saved_regs (frame);
}
#define ROUND_UP(n,a) (((n)+(a)-1) & ~((a)-1))
@@ -898,38 +927,32 @@ frv_pop_frame (void)
static void
frv_pop_frame_regular (struct frame_info *frame)
{
+ struct frame_extra_info *extra_info;
+ struct trad_frame_saved_reg *saved_regs;
+
CORE_ADDR fp;
int regno;
- fp = frame->frame;
+ fp = get_frame_base (frame);
frv_frame_init_saved_regs (frame);
-
+ extra_info = get_frame_extra_info (frame);
+ saved_regs = extra_info->saved_regs;
write_register (pc_regnum, frv_frame_saved_pc (frame));
for (regno = 0; regno < frv_num_regs; ++regno)
{
- if (frame->saved_regs[regno]
+ if (extra_info->saved_regs[regno].addr
&& regno != pc_regnum
&& regno != sp_regnum)
{
write_register (regno,
- read_memory_integer (frame->saved_regs[regno], 4));
+ read_memory_integer (saved_regs[regno].addr, 4));
}
}
- write_register (sp_regnum, fp + frame->extra_info->fp_to_callers_sp_offset);
+ write_register (sp_regnum, fp + extra_info->fp_to_callers_sp_offset);
flush_cached_frames ();
}
-
-static void
-frv_remote_translate_xfer_address (CORE_ADDR memaddr, int nr_bytes,
- CORE_ADDR *targ_addr, int *targ_len)
-{
- *targ_addr = memaddr;
- *targ_len = nr_bytes;
-}
-
-
/* Hardware watchpoint / breakpoint support for the FR500
and FR400. */
@@ -1090,7 +1113,7 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_function_start_offset (gdbarch, 0);
set_gdbarch_remote_translate_xfer_address
- (gdbarch, frv_remote_translate_xfer_address);
+ (gdbarch, generic_remote_translate_xfer_address);
/* Hardware watchpoint / breakpoint support. */
switch (info.bfd_arch_info->mach)
@@ -1128,4 +1151,4 @@ _initialize_frv_tdep (void)
deprecated_tm_print_insn = print_insn_frv;
}
-
+
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index f60a912..523dfac 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -36,27 +36,8 @@
#include "defs.h"
#include "arch-utils.h"
-#if GDB_MULTI_ARCH
#include "gdbcmd.h"
#include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
-#else
-/* Just include everything in sight so that the every old definition
- of macro is visible. */
-#include "gdb_string.h"
-#include <ctype.h>
-#include "symtab.h"
-#include "frame.h"
-#include "inferior.h"
-#include "breakpoint.h"
-#include "gdb_wait.h"
-#include "gdbcore.h"
-#include "gdbcmd.h"
-#include "target.h"
-#include "gdbthread.h"
-#include "annotate.h"
-#include "symfile.h" /* for overlay functions */
-#include "value.h" /* For old tm.h/nm.h macros. */
-#endif
#include "symcat.h"
#include "floatformat.h"
@@ -67,12 +48,12 @@
#include "reggroups.h"
#include "osabi.h"
#include "symfile.h" /* For entry_point_address. */
+#include "gdb_obstack.h"
/* Static function declarations */
static void verify_gdbarch (struct gdbarch *gdbarch);
static void alloc_gdbarch_data (struct gdbarch *);
-static void free_gdbarch_data (struct gdbarch *);
static void init_gdbarch_swap (struct gdbarch *);
static void clear_gdbarch_swap (struct gdbarch *);
static void swapout_gdbarch_swap (struct gdbarch *);
@@ -92,6 +73,10 @@ struct gdbarch
{
/* Has this architecture been fully initialized? */
int initialized_p;
+
+ /* An obstack bound to the lifetime of the architecture. */
+ struct obstack *obstack;
+
/* basic architectural information */
const struct bfd_arch_info * bfd_arch_info;
int byte_order;
@@ -246,13 +231,14 @@ struct gdbarch
gdbarch_deprecated_frame_saved_pc_ftype *deprecated_frame_saved_pc;
gdbarch_unwind_pc_ftype *unwind_pc;
gdbarch_unwind_sp_ftype *unwind_sp;
- gdbarch_frame_args_address_ftype *frame_args_address;
- gdbarch_frame_locals_address_ftype *frame_locals_address;
+ gdbarch_deprecated_frame_args_address_ftype *deprecated_frame_args_address;
+ gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address;
gdbarch_deprecated_saved_pc_after_call_ftype *deprecated_saved_pc_after_call;
gdbarch_frame_num_args_ftype *frame_num_args;
gdbarch_stack_align_ftype *stack_align;
gdbarch_frame_align_ftype *frame_align;
gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr;
+ int frame_red_zone_size;
int parm_boundary;
const struct floatformat * float_format;
const struct floatformat * double_format;
@@ -270,7 +256,6 @@ struct gdbarch
gdbarch_sigtramp_end_ftype *sigtramp_end;
gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p;
gdbarch_construct_inferior_arguments_ftype *construct_inferior_arguments;
- gdbarch_dwarf2_build_frame_info_ftype *dwarf2_build_frame_info;
gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special;
gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
const char * name_of_malloc;
@@ -292,6 +277,7 @@ extern const struct bfd_arch_info bfd_default_arch_struct;
struct gdbarch startup_gdbarch =
{
1, /* Always initialized. */
+ NULL, /* The obstack. */
/* basic architecture information */
&bfd_default_arch_struct, /* bfd_arch_info */
BFD_ENDIAN_BIG, /* byte_order */
@@ -413,13 +399,14 @@ struct gdbarch startup_gdbarch =
0, /* deprecated_frame_saved_pc */
0, /* unwind_pc */
0, /* unwind_sp */
- 0, /* frame_args_address */
- 0, /* frame_locals_address */
+ get_frame_base, /* deprecated_frame_args_address */
+ get_frame_base, /* deprecated_frame_locals_address */
0, /* deprecated_saved_pc_after_call */
0, /* frame_num_args */
0, /* stack_align */
0, /* frame_align */
0, /* reg_struct_has_addr */
+ 0, /* frame_red_zone_size */
0, /* parm_boundary */
0, /* float_format */
0, /* double_format */
@@ -437,7 +424,6 @@ struct gdbarch startup_gdbarch =
0, /* sigtramp_end */
generic_in_function_epilogue_p, /* in_function_epilogue_p */
construct_inferior_arguments, /* construct_inferior_arguments */
- 0, /* dwarf2_build_frame_info */
0, /* elf_make_msymbol_special */
0, /* coff_make_msymbol_special */
"malloc", /* name_of_malloc */
@@ -479,8 +465,15 @@ gdbarch_alloc (const struct gdbarch_info *info,
architecture. This ensures that the new architectures initial
values are not influenced by the previous architecture. Once
everything is parameterised with gdbarch, this will go away. */
- struct gdbarch *current_gdbarch = XMALLOC (struct gdbarch);
+ struct gdbarch *current_gdbarch;
+
+ /* Create an obstack for allocating all the per-architecture memory,
+ then use that to allocate the architecture vector. */
+ struct obstack *obstack = XMALLOC (struct obstack);
+ obstack_init (obstack);
+ current_gdbarch = obstack_alloc (obstack, sizeof (*current_gdbarch));
memset (current_gdbarch, 0, sizeof (*current_gdbarch));
+ current_gdbarch->obstack = obstack;
alloc_gdbarch_data (current_gdbarch);
@@ -514,7 +507,6 @@ gdbarch_alloc (const struct gdbarch_info *info,
current_gdbarch->dwarf_reg_to_regnum = no_op_reg_to_regnum;
current_gdbarch->sdb_reg_to_regnum = no_op_reg_to_regnum;
current_gdbarch->dwarf2_reg_to_regnum = no_op_reg_to_regnum;
- current_gdbarch->register_name = legacy_register_name;
current_gdbarch->deprecated_register_byte = generic_register_byte;
current_gdbarch->deprecated_register_raw_size = generic_register_size;
current_gdbarch->deprecated_register_virtual_size = generic_register_size;
@@ -547,8 +539,8 @@ gdbarch_alloc (const struct gdbarch_info *info,
current_gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
current_gdbarch->frame_args_skip = -1;
current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
- current_gdbarch->frame_args_address = get_frame_base;
- current_gdbarch->frame_locals_address = get_frame_base;
+ current_gdbarch->deprecated_frame_args_address = get_frame_base;
+ current_gdbarch->deprecated_frame_locals_address = get_frame_base;
current_gdbarch->convert_from_func_ptr_addr = core_addr_identity;
current_gdbarch->addr_bits_remove = core_addr_identity;
current_gdbarch->smash_text_address = core_addr_identity;
@@ -569,6 +561,17 @@ gdbarch_alloc (const struct gdbarch_info *info,
}
+/* Allocate extra space using the per-architecture obstack. */
+
+void *
+gdbarch_obstack_zalloc (struct gdbarch *arch, long size)
+{
+ void *data = obstack_alloc (arch->obstack, size);
+ memset (data, 0, size);
+ return data;
+}
+
+
/* Free a gdbarch struct. This should never happen in normal
operation --- once you've created a gdbarch, you keep it around.
However, if an architecture's init function encounters an error
@@ -578,9 +581,12 @@ gdbarch_alloc (const struct gdbarch_info *info,
void
gdbarch_free (struct gdbarch *arch)
{
+ struct obstack *obstack;
gdb_assert (arch != NULL);
- free_gdbarch_data (arch);
- xfree (arch);
+ gdb_assert (!arch->initialized_p);
+ obstack = arch->obstack;
+ obstack_free (obstack, 0); /* Includes the ARCH. */
+ xfree (obstack);
}
@@ -594,8 +600,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
long dummy;
char *buf;
/* Only perform sanity checks on a multi-arch target. */
- if (!GDB_MULTI_ARCH)
- return;
log = mem_fileopen ();
cleanups = make_cleanup_ui_file_delete (log);
/* fundamental */
@@ -637,7 +641,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of dwarf_reg_to_regnum, invalid_p == 0 */
/* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
/* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
- /* Skip verify of register_name, invalid_p == 0 */
/* Skip verify of register_type, has predicate */
/* Skip verify of deprecated_register_virtual_type, has predicate */
/* Skip verify of deprecated_register_byte, has predicate */
@@ -723,8 +726,8 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of deprecated_frame_saved_pc, has predicate */
/* Skip verify of unwind_pc, has predicate */
/* Skip verify of unwind_sp, has predicate */
- /* Skip verify of frame_args_address, invalid_p == 0 */
- /* Skip verify of frame_locals_address, invalid_p == 0 */
+ /* Skip verify of deprecated_frame_args_address, has predicate */
+ /* Skip verify of deprecated_frame_locals_address, has predicate */
/* Skip verify of deprecated_saved_pc_after_call, has predicate */
/* Skip verify of frame_num_args, has predicate */
/* Skip verify of stack_align, has predicate */
@@ -749,7 +752,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of sigtramp_end, has predicate */
/* Skip verify of in_function_epilogue_p, invalid_p == 0 */
/* Skip verify of construct_inferior_arguments, invalid_p == 0 */
- /* Skip verify of dwarf2_build_frame_info, has predicate */
/* Skip verify of elf_make_msymbol_special, invalid_p == 0 */
/* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
/* Skip verify of name_of_malloc, invalid_p == 0 */
@@ -784,46 +786,36 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
fprintf_unfiltered (file,
"gdbarch_dump: GDB_MULTI_ARCH = %d\n",
GDB_MULTI_ARCH);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
- gdbarch_frame_align_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: frame_align = 0x%08lx\n",
- (long) current_gdbarch->frame_align);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: in_function_epilogue_p = 0x%08lx\n",
- (long) current_gdbarch->in_function_epilogue_p);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: register_reggroup_p = 0x%08lx\n",
- (long) current_gdbarch->register_reggroup_p);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
- gdbarch_pseudo_register_read_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: pseudo_register_read = 0x%08lx\n",
- (long) current_gdbarch->pseudo_register_read);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
- gdbarch_pseudo_register_write_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: pseudo_register_write = 0x%08lx\n",
- (long) current_gdbarch->pseudo_register_write);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
- gdbarch_address_class_name_to_type_flags_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: address_class_name_to_type_flags = 0x%08lx\n",
- (long) current_gdbarch->address_class_name_to_type_flags);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_frame_align_p() = %d\n",
+ gdbarch_frame_align_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: frame_align = 0x%08lx\n",
+ (long) current_gdbarch->frame_align);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: in_function_epilogue_p = 0x%08lx\n",
+ (long) current_gdbarch->in_function_epilogue_p);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: register_reggroup_p = 0x%08lx\n",
+ (long) current_gdbarch->register_reggroup_p);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n",
+ gdbarch_pseudo_register_read_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: pseudo_register_read = 0x%08lx\n",
+ (long) current_gdbarch->pseudo_register_read);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_pseudo_register_write_p() = %d\n",
+ gdbarch_pseudo_register_write_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: pseudo_register_write = 0x%08lx\n",
+ (long) current_gdbarch->pseudo_register_write);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_address_class_name_to_type_flags_p() = %d\n",
+ gdbarch_address_class_name_to_type_flags_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: address_class_name_to_type_flags = 0x%08lx\n",
+ (long) current_gdbarch->address_class_name_to_type_flags);
#ifdef ADDRESS_CLASS_TYPE_FLAGS_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -838,44 +830,36 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"ADDRESS_CLASS_TYPE_FLAGS(byte_size, dwarf2_addr_class)",
XSTRING (ADDRESS_CLASS_TYPE_FLAGS (byte_size, dwarf2_addr_class)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = <0x%08lx>\n",
- (long) current_gdbarch->address_class_type_flags
- /*ADDRESS_CLASS_TYPE_FLAGS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: ADDRESS_CLASS_TYPE_FLAGS = <0x%08lx>\n",
+ (long) current_gdbarch->address_class_type_flags
+ /*ADDRESS_CLASS_TYPE_FLAGS ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
- gdbarch_address_class_type_flags_to_name_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: address_class_type_flags_to_name = 0x%08lx\n",
- (long) current_gdbarch->address_class_type_flags_to_name);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_address_class_type_flags_to_name_p() = %d\n",
+ gdbarch_address_class_type_flags_to_name_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: address_class_type_flags_to_name = 0x%08lx\n",
+ (long) current_gdbarch->address_class_type_flags_to_name);
#ifdef ADDRESS_TO_POINTER
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"ADDRESS_TO_POINTER(type, buf, addr)",
XSTRING (ADDRESS_TO_POINTER (type, buf, addr)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: ADDRESS_TO_POINTER = <0x%08lx>\n",
- (long) current_gdbarch->address_to_pointer
- /*ADDRESS_TO_POINTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: ADDRESS_TO_POINTER = <0x%08lx>\n",
+ (long) current_gdbarch->address_to_pointer
+ /*ADDRESS_TO_POINTER ()*/);
#endif
#ifdef ADDR_BITS_REMOVE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"ADDR_BITS_REMOVE(addr)",
XSTRING (ADDR_BITS_REMOVE (addr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: ADDR_BITS_REMOVE = <0x%08lx>\n",
- (long) current_gdbarch->addr_bits_remove
- /*ADDR_BITS_REMOVE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: ADDR_BITS_REMOVE = <0x%08lx>\n",
+ (long) current_gdbarch->addr_bits_remove
+ /*ADDR_BITS_REMOVE ()*/);
#endif
#ifdef BELIEVE_PCC_PROMOTION
fprintf_unfiltered (file,
@@ -898,22 +882,20 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"BREAKPOINT_FROM_PC(pcptr, lenptr)",
XSTRING (BREAKPOINT_FROM_PC (pcptr, lenptr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: BREAKPOINT_FROM_PC = <0x%08lx>\n",
- (long) current_gdbarch->breakpoint_from_pc
- /*BREAKPOINT_FROM_PC ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: BREAKPOINT_FROM_PC = <0x%08lx>\n",
+ (long) current_gdbarch->breakpoint_from_pc
+ /*BREAKPOINT_FROM_PC ()*/);
#endif
#ifdef CALL_DUMMY_ADDRESS
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"CALL_DUMMY_ADDRESS()",
XSTRING (CALL_DUMMY_ADDRESS ()));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: CALL_DUMMY_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->call_dummy_address
- /*CALL_DUMMY_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: CALL_DUMMY_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->call_dummy_address
+ /*CALL_DUMMY_ADDRESS ()*/);
#endif
#ifdef CALL_DUMMY_LOCATION
fprintf_unfiltered (file,
@@ -928,11 +910,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"CANNOT_FETCH_REGISTER(regnum)",
XSTRING (CANNOT_FETCH_REGISTER (regnum)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: CANNOT_FETCH_REGISTER = <0x%08lx>\n",
- (long) current_gdbarch->cannot_fetch_register
- /*CANNOT_FETCH_REGISTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: CANNOT_FETCH_REGISTER = <0x%08lx>\n",
+ (long) current_gdbarch->cannot_fetch_register
+ /*CANNOT_FETCH_REGISTER ()*/);
#endif
#ifdef CANNOT_STEP_BREAKPOINT
fprintf_unfiltered (file,
@@ -947,51 +928,43 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"CANNOT_STORE_REGISTER(regnum)",
XSTRING (CANNOT_STORE_REGISTER (regnum)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: CANNOT_STORE_REGISTER = <0x%08lx>\n",
- (long) current_gdbarch->cannot_store_register
- /*CANNOT_STORE_REGISTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: CANNOT_STORE_REGISTER = <0x%08lx>\n",
+ (long) current_gdbarch->cannot_store_register
+ /*CANNOT_STORE_REGISTER ()*/);
#endif
#ifdef COFF_MAKE_MSYMBOL_SPECIAL
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"COFF_MAKE_MSYMBOL_SPECIAL(val, msym)",
XSTRING (COFF_MAKE_MSYMBOL_SPECIAL (val, msym)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
+ (long) current_gdbarch->coff_make_msymbol_special
+ /*COFF_MAKE_MSYMBOL_SPECIAL ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: COFF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
- (long) current_gdbarch->coff_make_msymbol_special
- /*COFF_MAKE_MSYMBOL_SPECIAL ()*/);
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: construct_inferior_arguments = 0x%08lx\n",
- (long) current_gdbarch->construct_inferior_arguments);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: construct_inferior_arguments = 0x%08lx\n",
+ (long) current_gdbarch->construct_inferior_arguments);
#ifdef CONVERT_FROM_FUNC_PTR_ADDR
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"CONVERT_FROM_FUNC_PTR_ADDR(addr)",
XSTRING (CONVERT_FROM_FUNC_PTR_ADDR (addr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: CONVERT_FROM_FUNC_PTR_ADDR = <0x%08lx>\n",
- (long) current_gdbarch->convert_from_func_ptr_addr
- /*CONVERT_FROM_FUNC_PTR_ADDR ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: CONVERT_FROM_FUNC_PTR_ADDR = <0x%08lx>\n",
+ (long) current_gdbarch->convert_from_func_ptr_addr
+ /*CONVERT_FROM_FUNC_PTR_ADDR ()*/);
#endif
#ifdef CONVERT_REGISTER_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"CONVERT_REGISTER_P(regnum, type)",
XSTRING (CONVERT_REGISTER_P (regnum, type)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: CONVERT_REGISTER_P = <0x%08lx>\n",
- (long) current_gdbarch->convert_register_p
- /*CONVERT_REGISTER_P ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: CONVERT_REGISTER_P = <0x%08lx>\n",
+ (long) current_gdbarch->convert_register_p
+ /*CONVERT_REGISTER_P ()*/);
#endif
#ifdef DECR_PC_AFTER_BREAK
fprintf_unfiltered (file,
@@ -1060,18 +1033,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_DO_REGISTERS_INFO_P ());
#endif
#ifdef DEPRECATED_DO_REGISTERS_INFO
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_DO_REGISTERS_INFO(reg_nr, fpregs)",
XSTRING (DEPRECATED_DO_REGISTERS_INFO (reg_nr, fpregs)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_do_registers_info
- /*DEPRECATED_DO_REGISTERS_INFO ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_DO_REGISTERS_INFO = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_do_registers_info
+ /*DEPRECATED_DO_REGISTERS_INFO ()*/);
#endif
#ifdef DEPRECATED_DUMMY_WRITE_SP_P
fprintf_unfiltered (file,
@@ -1083,32 +1052,24 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_DUMMY_WRITE_SP_P ());
#endif
#ifdef DEPRECATED_DUMMY_WRITE_SP
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_DUMMY_WRITE_SP(val)",
XSTRING (DEPRECATED_DUMMY_WRITE_SP (val)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_DUMMY_WRITE_SP = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_dummy_write_sp
- /*DEPRECATED_DUMMY_WRITE_SP ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_DUMMY_WRITE_SP = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_dummy_write_sp
+ /*DEPRECATED_DUMMY_WRITE_SP ()*/);
#endif
#ifdef DEPRECATED_EXTRACT_RETURN_VALUE
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_EXTRACT_RETURN_VALUE(type, regbuf, valbuf)",
XSTRING (DEPRECATED_EXTRACT_RETURN_VALUE (type, regbuf, valbuf)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_extract_return_value
- /*DEPRECATED_EXTRACT_RETURN_VALUE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_EXTRACT_RETURN_VALUE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_extract_return_value
+ /*DEPRECATED_EXTRACT_RETURN_VALUE ()*/);
#endif
#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P
fprintf_unfiltered (file,
@@ -1124,11 +1085,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regbuf)",
XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS (regbuf)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_extract_struct_value_address
- /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_extract_struct_value_address
+ /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
#endif
#ifdef DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED
fprintf_unfiltered (file,
@@ -1148,18 +1108,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_FIX_CALL_DUMMY_P ());
#endif
#ifdef DEPRECATED_FIX_CALL_DUMMY
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p)",
XSTRING (DEPRECATED_FIX_CALL_DUMMY (dummy, pc, fun, nargs, args, type, gcc_p)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_FIX_CALL_DUMMY = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_fix_call_dummy
- /*DEPRECATED_FIX_CALL_DUMMY ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FIX_CALL_DUMMY = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_fix_call_dummy
+ /*DEPRECATED_FIX_CALL_DUMMY ()*/);
#endif
#ifdef DEPRECATED_FP_REGNUM
fprintf_unfiltered (file,
@@ -1169,6 +1125,25 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: DEPRECATED_FP_REGNUM = %d\n",
DEPRECATED_FP_REGNUM);
#endif
+#ifdef DEPRECATED_FRAME_ARGS_ADDRESS_P
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_FRAME_ARGS_ADDRESS_P()",
+ XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS_P ()));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS_P() = %d\n",
+ DEPRECATED_FRAME_ARGS_ADDRESS_P ());
+#endif
+#ifdef DEPRECATED_FRAME_ARGS_ADDRESS
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_FRAME_ARGS_ADDRESS(fi)",
+ XSTRING (DEPRECATED_FRAME_ARGS_ADDRESS (fi)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_ARGS_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_args_address
+ /*DEPRECATED_FRAME_ARGS_ADDRESS ()*/);
+#endif
#ifdef DEPRECATED_FRAME_CHAIN_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -1183,11 +1158,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_FRAME_CHAIN(frame)",
XSTRING (DEPRECATED_FRAME_CHAIN (frame)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_FRAME_CHAIN = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_frame_chain
- /*DEPRECATED_FRAME_CHAIN ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_CHAIN = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_chain
+ /*DEPRECATED_FRAME_CHAIN ()*/);
#endif
#ifdef DEPRECATED_FRAME_CHAIN_VALID_P
fprintf_unfiltered (file,
@@ -1203,11 +1177,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe)",
XSTRING (DEPRECATED_FRAME_CHAIN_VALID (chain, thisframe)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_frame_chain_valid
- /*DEPRECATED_FRAME_CHAIN_VALID ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_CHAIN_VALID = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_chain_valid
+ /*DEPRECATED_FRAME_CHAIN_VALID ()*/);
#endif
#ifdef DEPRECATED_FRAME_INIT_SAVED_REGS_P
fprintf_unfiltered (file,
@@ -1219,18 +1192,33 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_FRAME_INIT_SAVED_REGS_P ());
#endif
#ifdef DEPRECATED_FRAME_INIT_SAVED_REGS
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_FRAME_INIT_SAVED_REGS(frame)",
XSTRING (DEPRECATED_FRAME_INIT_SAVED_REGS (frame)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_init_saved_regs
+ /*DEPRECATED_FRAME_INIT_SAVED_REGS ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_FRAME_INIT_SAVED_REGS = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_frame_init_saved_regs
- /*DEPRECATED_FRAME_INIT_SAVED_REGS ()*/);
+#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS_P
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_FRAME_LOCALS_ADDRESS_P()",
+ XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS_P ()));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS_P() = %d\n",
+ DEPRECATED_FRAME_LOCALS_ADDRESS_P ());
+#endif
+#ifdef DEPRECATED_FRAME_LOCALS_ADDRESS
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_FRAME_LOCALS_ADDRESS(fi)",
+ XSTRING (DEPRECATED_FRAME_LOCALS_ADDRESS (fi)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_locals_address
+ /*DEPRECATED_FRAME_LOCALS_ADDRESS ()*/);
#endif
#ifdef DEPRECATED_FRAME_SAVED_PC_P
fprintf_unfiltered (file,
@@ -1246,11 +1234,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_FRAME_SAVED_PC(fi)",
XSTRING (DEPRECATED_FRAME_SAVED_PC (fi)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_frame_saved_pc
- /*DEPRECATED_FRAME_SAVED_PC ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_FRAME_SAVED_PC = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_frame_saved_pc
+ /*DEPRECATED_FRAME_SAVED_PC ()*/);
#endif
#ifdef DEPRECATED_GET_SAVED_REGISTER_P
fprintf_unfiltered (file,
@@ -1262,18 +1249,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_GET_SAVED_REGISTER_P ());
#endif
#ifdef DEPRECATED_GET_SAVED_REGISTER
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval)",
XSTRING (DEPRECATED_GET_SAVED_REGISTER (raw_buffer, optimized, addrp, frame, regnum, lval)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_get_saved_register
- /*DEPRECATED_GET_SAVED_REGISTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_GET_SAVED_REGISTER = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_get_saved_register
+ /*DEPRECATED_GET_SAVED_REGISTER ()*/);
#endif
#ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO_P
fprintf_unfiltered (file,
@@ -1285,18 +1268,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_INIT_EXTRA_FRAME_INFO_P ());
#endif
#ifdef DEPRECATED_INIT_EXTRA_FRAME_INFO
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_INIT_EXTRA_FRAME_INFO(fromleaf, frame)",
XSTRING (DEPRECATED_INIT_EXTRA_FRAME_INFO (fromleaf, frame)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_init_extra_frame_info
- /*DEPRECATED_INIT_EXTRA_FRAME_INFO ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_INIT_EXTRA_FRAME_INFO = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_init_extra_frame_info
+ /*DEPRECATED_INIT_EXTRA_FRAME_INFO ()*/);
#endif
#ifdef DEPRECATED_INIT_FRAME_PC_P
fprintf_unfiltered (file,
@@ -1312,11 +1291,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_INIT_FRAME_PC(fromleaf, prev)",
XSTRING (DEPRECATED_INIT_FRAME_PC (fromleaf, prev)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_init_frame_pc
- /*DEPRECATED_INIT_FRAME_PC ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_INIT_FRAME_PC = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_init_frame_pc
+ /*DEPRECATED_INIT_FRAME_PC ()*/);
#endif
#ifdef DEPRECATED_INIT_FRAME_PC_FIRST_P
fprintf_unfiltered (file,
@@ -1332,11 +1310,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev)",
XSTRING (DEPRECATED_INIT_FRAME_PC_FIRST (fromleaf, prev)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_init_frame_pc_first
- /*DEPRECATED_INIT_FRAME_PC_FIRST ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_INIT_FRAME_PC_FIRST = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_init_frame_pc_first
+ /*DEPRECATED_INIT_FRAME_PC_FIRST ()*/);
#endif
#ifdef DEPRECATED_MAX_REGISTER_RAW_SIZE_P
fprintf_unfiltered (file,
@@ -1386,11 +1363,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address)",
XSTRING (DEPRECATED_PC_IN_CALL_DUMMY (pc, sp, frame_address)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_pc_in_call_dummy
- /*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_PC_IN_CALL_DUMMY = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_pc_in_call_dummy
+ /*DEPRECATED_PC_IN_CALL_DUMMY ()*/);
#endif
#ifdef DEPRECATED_POP_FRAME_P
fprintf_unfiltered (file,
@@ -1402,18 +1378,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_POP_FRAME_P ());
#endif
#ifdef DEPRECATED_POP_FRAME
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_POP_FRAME(-)",
XSTRING (DEPRECATED_POP_FRAME (-)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_POP_FRAME = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_pop_frame
- /*DEPRECATED_POP_FRAME ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_POP_FRAME = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_pop_frame
+ /*DEPRECATED_POP_FRAME ()*/);
#endif
#ifdef DEPRECATED_PUSH_ARGUMENTS_P
fprintf_unfiltered (file,
@@ -1429,11 +1401,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr)",
XSTRING (DEPRECATED_PUSH_ARGUMENTS (nargs, args, sp, struct_return, struct_addr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_push_arguments
- /*DEPRECATED_PUSH_ARGUMENTS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_PUSH_ARGUMENTS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_push_arguments
+ /*DEPRECATED_PUSH_ARGUMENTS ()*/);
#endif
#ifdef DEPRECATED_PUSH_DUMMY_FRAME_P
fprintf_unfiltered (file,
@@ -1445,18 +1416,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_PUSH_DUMMY_FRAME_P ());
#endif
#ifdef DEPRECATED_PUSH_DUMMY_FRAME
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_PUSH_DUMMY_FRAME(-)",
XSTRING (DEPRECATED_PUSH_DUMMY_FRAME (-)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_push_dummy_frame
- /*DEPRECATED_PUSH_DUMMY_FRAME ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_PUSH_DUMMY_FRAME = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_push_dummy_frame
+ /*DEPRECATED_PUSH_DUMMY_FRAME ()*/);
#endif
#ifdef DEPRECATED_PUSH_RETURN_ADDRESS_P
fprintf_unfiltered (file,
@@ -1472,11 +1439,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp)",
XSTRING (DEPRECATED_PUSH_RETURN_ADDRESS (pc, sp)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_PUSH_RETURN_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_push_return_address
- /*DEPRECATED_PUSH_RETURN_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_PUSH_RETURN_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_push_return_address
+ /*DEPRECATED_PUSH_RETURN_ADDRESS ()*/);
#endif
#ifdef DEPRECATED_REGISTER_BYTES
fprintf_unfiltered (file,
@@ -1491,39 +1457,30 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_REGISTER_CONVERTIBLE(nr)",
XSTRING (DEPRECATED_REGISTER_CONVERTIBLE (nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_REGISTER_CONVERTIBLE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_convertible
- /*DEPRECATED_REGISTER_CONVERTIBLE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_REGISTER_CONVERTIBLE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_convertible
+ /*DEPRECATED_REGISTER_CONVERTIBLE ()*/);
#endif
#ifdef DEPRECATED_REGISTER_CONVERT_TO_RAW
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_REGISTER_CONVERT_TO_RAW(type, regnum, from, to)",
XSTRING (DEPRECATED_REGISTER_CONVERT_TO_RAW (type, regnum, from, to)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_RAW = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_convert_to_raw
- /*DEPRECATED_REGISTER_CONVERT_TO_RAW ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_RAW = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_convert_to_raw
+ /*DEPRECATED_REGISTER_CONVERT_TO_RAW ()*/);
#endif
#ifdef DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL(regnum, type, from, to)",
XSTRING (DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL (regnum, type, from, to)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_convert_to_virtual
- /*DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_convert_to_virtual
+ /*DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL ()*/);
#endif
#ifdef DEPRECATED_REGISTER_SIZE
fprintf_unfiltered (file,
@@ -1547,11 +1504,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_SAVED_PC_AFTER_CALL(frame)",
XSTRING (DEPRECATED_SAVED_PC_AFTER_CALL (frame)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_SAVED_PC_AFTER_CALL = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_saved_pc_after_call
- /*DEPRECATED_SAVED_PC_AFTER_CALL ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_SAVED_PC_AFTER_CALL = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_saved_pc_after_call
+ /*DEPRECATED_SAVED_PC_AFTER_CALL ()*/);
#endif
#ifdef DEPRECATED_SAVE_DUMMY_FRAME_TOS_P
fprintf_unfiltered (file,
@@ -1563,18 +1519,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_SAVE_DUMMY_FRAME_TOS_P ());
#endif
#ifdef DEPRECATED_SAVE_DUMMY_FRAME_TOS
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_SAVE_DUMMY_FRAME_TOS(sp)",
XSTRING (DEPRECATED_SAVE_DUMMY_FRAME_TOS (sp)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_SAVE_DUMMY_FRAME_TOS = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_save_dummy_frame_tos
- /*DEPRECATED_SAVE_DUMMY_FRAME_TOS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_SAVE_DUMMY_FRAME_TOS = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_save_dummy_frame_tos
+ /*DEPRECATED_SAVE_DUMMY_FRAME_TOS ()*/);
#endif
#ifdef DEPRECATED_SIZEOF_CALL_DUMMY_WORDS
fprintf_unfiltered (file,
@@ -1585,18 +1537,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_SIZEOF_CALL_DUMMY_WORDS);
#endif
#ifdef DEPRECATED_STORE_RETURN_VALUE
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_STORE_RETURN_VALUE(type, valbuf)",
XSTRING (DEPRECATED_STORE_RETURN_VALUE (type, valbuf)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_store_return_value
- /*DEPRECATED_STORE_RETURN_VALUE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_store_return_value
+ /*DEPRECATED_STORE_RETURN_VALUE ()*/);
#endif
#ifdef DEPRECATED_STORE_STRUCT_RETURN_P
fprintf_unfiltered (file,
@@ -1608,18 +1556,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
DEPRECATED_STORE_STRUCT_RETURN_P ());
#endif
#ifdef DEPRECATED_STORE_STRUCT_RETURN
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DEPRECATED_STORE_STRUCT_RETURN(addr, sp)",
XSTRING (DEPRECATED_STORE_STRUCT_RETURN (addr, sp)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_store_struct_return
- /*DEPRECATED_STORE_STRUCT_RETURN ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_STORE_STRUCT_RETURN = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_store_struct_return
+ /*DEPRECATED_STORE_STRUCT_RETURN ()*/);
#endif
#ifdef DEPRECATED_TARGET_READ_FP_P
fprintf_unfiltered (file,
@@ -1635,11 +1579,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"DEPRECATED_TARGET_READ_FP()",
XSTRING (DEPRECATED_TARGET_READ_FP ()));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DEPRECATED_TARGET_READ_FP = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_target_read_fp
- /*DEPRECATED_TARGET_READ_FP ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_TARGET_READ_FP = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_target_read_fp
+ /*DEPRECATED_TARGET_READ_FP ()*/);
#endif
#ifdef DEPRECATED_USE_GENERIC_DUMMY_FRAMES
fprintf_unfiltered (file,
@@ -1649,89 +1592,55 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: DEPRECATED_USE_GENERIC_DUMMY_FRAMES = %d\n",
DEPRECATED_USE_GENERIC_DUMMY_FRAMES);
#endif
-#ifdef DWARF2_BUILD_FRAME_INFO_P
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "DWARF2_BUILD_FRAME_INFO_P()",
- XSTRING (DWARF2_BUILD_FRAME_INFO_P ()));
- fprintf_unfiltered (file,
- "gdbarch_dump: DWARF2_BUILD_FRAME_INFO_P() = %d\n",
- DWARF2_BUILD_FRAME_INFO_P ());
-#endif
-#ifdef DWARF2_BUILD_FRAME_INFO
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "DWARF2_BUILD_FRAME_INFO(objfile)",
- XSTRING (DWARF2_BUILD_FRAME_INFO (objfile)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DWARF2_BUILD_FRAME_INFO = <0x%08lx>\n",
- (long) current_gdbarch->dwarf2_build_frame_info
- /*DWARF2_BUILD_FRAME_INFO ()*/);
-#endif
#ifdef DWARF2_REG_TO_REGNUM
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DWARF2_REG_TO_REGNUM(dwarf2_regnr)",
XSTRING (DWARF2_REG_TO_REGNUM (dwarf2_regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DWARF2_REG_TO_REGNUM = <0x%08lx>\n",
- (long) current_gdbarch->dwarf2_reg_to_regnum
- /*DWARF2_REG_TO_REGNUM ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DWARF2_REG_TO_REGNUM = <0x%08lx>\n",
+ (long) current_gdbarch->dwarf2_reg_to_regnum
+ /*DWARF2_REG_TO_REGNUM ()*/);
#endif
#ifdef DWARF_REG_TO_REGNUM
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"DWARF_REG_TO_REGNUM(dwarf_regnr)",
XSTRING (DWARF_REG_TO_REGNUM (dwarf_regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: DWARF_REG_TO_REGNUM = <0x%08lx>\n",
- (long) current_gdbarch->dwarf_reg_to_regnum
- /*DWARF_REG_TO_REGNUM ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DWARF_REG_TO_REGNUM = <0x%08lx>\n",
+ (long) current_gdbarch->dwarf_reg_to_regnum
+ /*DWARF_REG_TO_REGNUM ()*/);
#endif
#ifdef ECOFF_REG_TO_REGNUM
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"ECOFF_REG_TO_REGNUM(ecoff_regnr)",
XSTRING (ECOFF_REG_TO_REGNUM (ecoff_regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: ECOFF_REG_TO_REGNUM = <0x%08lx>\n",
- (long) current_gdbarch->ecoff_reg_to_regnum
- /*ECOFF_REG_TO_REGNUM ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: ECOFF_REG_TO_REGNUM = <0x%08lx>\n",
+ (long) current_gdbarch->ecoff_reg_to_regnum
+ /*ECOFF_REG_TO_REGNUM ()*/);
#endif
#ifdef ELF_MAKE_MSYMBOL_SPECIAL
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"ELF_MAKE_MSYMBOL_SPECIAL(sym, msym)",
XSTRING (ELF_MAKE_MSYMBOL_SPECIAL (sym, msym)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
- (long) current_gdbarch->elf_make_msymbol_special
- /*ELF_MAKE_MSYMBOL_SPECIAL ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: ELF_MAKE_MSYMBOL_SPECIAL = <0x%08lx>\n",
+ (long) current_gdbarch->elf_make_msymbol_special
+ /*ELF_MAKE_MSYMBOL_SPECIAL ()*/);
#endif
#ifdef EXTRACT_RETURN_VALUE
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"EXTRACT_RETURN_VALUE(type, regcache, valbuf)",
XSTRING (EXTRACT_RETURN_VALUE (type, regcache, valbuf)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: EXTRACT_RETURN_VALUE = <0x%08lx>\n",
- (long) current_gdbarch->extract_return_value
- /*EXTRACT_RETURN_VALUE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: EXTRACT_RETURN_VALUE = <0x%08lx>\n",
+ (long) current_gdbarch->extract_return_value
+ /*EXTRACT_RETURN_VALUE ()*/);
#endif
#ifdef EXTRACT_STRUCT_VALUE_ADDRESS_P
fprintf_unfiltered (file,
@@ -1747,11 +1656,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"EXTRACT_STRUCT_VALUE_ADDRESS(regcache)",
XSTRING (EXTRACT_STRUCT_VALUE_ADDRESS (regcache)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->extract_struct_value_address
- /*EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: EXTRACT_STRUCT_VALUE_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->extract_struct_value_address
+ /*EXTRACT_STRUCT_VALUE_ADDRESS ()*/);
#endif
#ifdef FETCH_POINTER_ARGUMENT_P
fprintf_unfiltered (file,
@@ -1767,11 +1675,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"FETCH_POINTER_ARGUMENT(frame, argi, type)",
XSTRING (FETCH_POINTER_ARGUMENT (frame, argi, type)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: FETCH_POINTER_ARGUMENT = <0x%08lx>\n",
- (long) current_gdbarch->fetch_pointer_argument
- /*FETCH_POINTER_ARGUMENT ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: FETCH_POINTER_ARGUMENT = <0x%08lx>\n",
+ (long) current_gdbarch->fetch_pointer_argument
+ /*FETCH_POINTER_ARGUMENT ()*/);
#endif
#ifdef FP0_REGNUM
fprintf_unfiltered (file,
@@ -1786,22 +1693,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"FRAMELESS_FUNCTION_INVOCATION(fi)",
XSTRING (FRAMELESS_FUNCTION_INVOCATION (fi)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: FRAMELESS_FUNCTION_INVOCATION = <0x%08lx>\n",
- (long) current_gdbarch->frameless_function_invocation
- /*FRAMELESS_FUNCTION_INVOCATION ()*/);
-#endif
-#ifdef FRAME_ARGS_ADDRESS
fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "FRAME_ARGS_ADDRESS(fi)",
- XSTRING (FRAME_ARGS_ADDRESS (fi)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: FRAME_ARGS_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->frame_args_address
- /*FRAME_ARGS_ADDRESS ()*/);
+ "gdbarch_dump: FRAMELESS_FUNCTION_INVOCATION = <0x%08lx>\n",
+ (long) current_gdbarch->frameless_function_invocation
+ /*FRAMELESS_FUNCTION_INVOCATION ()*/);
#endif
#ifdef FRAME_ARGS_SKIP
fprintf_unfiltered (file,
@@ -1811,17 +1706,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: FRAME_ARGS_SKIP = %ld\n",
(long) FRAME_ARGS_SKIP);
#endif
-#ifdef FRAME_LOCALS_ADDRESS
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "FRAME_LOCALS_ADDRESS(fi)",
- XSTRING (FRAME_LOCALS_ADDRESS (fi)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: FRAME_LOCALS_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->frame_locals_address
- /*FRAME_LOCALS_ADDRESS ()*/);
-#endif
#ifdef FRAME_NUM_ARGS_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -1836,11 +1720,18 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"FRAME_NUM_ARGS(frame)",
XSTRING (FRAME_NUM_ARGS (frame)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: FRAME_NUM_ARGS = <0x%08lx>\n",
- (long) current_gdbarch->frame_num_args
- /*FRAME_NUM_ARGS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: FRAME_NUM_ARGS = <0x%08lx>\n",
+ (long) current_gdbarch->frame_num_args
+ /*FRAME_NUM_ARGS ()*/);
+#endif
+#ifdef FRAME_RED_ZONE_SIZE
+ fprintf_unfiltered (file,
+ "gdbarch_dump: FRAME_RED_ZONE_SIZE # %s\n",
+ XSTRING (FRAME_RED_ZONE_SIZE));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: FRAME_RED_ZONE_SIZE = %d\n",
+ FRAME_RED_ZONE_SIZE);
#endif
#ifdef FUNCTION_START_OFFSET
fprintf_unfiltered (file,
@@ -1864,11 +1755,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"GET_LONGJMP_TARGET(pc)",
XSTRING (GET_LONGJMP_TARGET (pc)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: GET_LONGJMP_TARGET = <0x%08lx>\n",
- (long) current_gdbarch->get_longjmp_target
- /*GET_LONGJMP_TARGET ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: GET_LONGJMP_TARGET = <0x%08lx>\n",
+ (long) current_gdbarch->get_longjmp_target
+ /*GET_LONGJMP_TARGET ()*/);
#endif
#ifdef HAVE_NONSTEPPABLE_WATCHPOINT
fprintf_unfiltered (file,
@@ -1883,11 +1773,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"INNER_THAN(lhs, rhs)",
XSTRING (INNER_THAN (lhs, rhs)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: INNER_THAN = <0x%08lx>\n",
- (long) current_gdbarch->inner_than
- /*INNER_THAN ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: INNER_THAN = <0x%08lx>\n",
+ (long) current_gdbarch->inner_than
+ /*INNER_THAN ()*/);
#endif
#ifdef INTEGER_TO_ADDRESS_P
fprintf_unfiltered (file,
@@ -1903,55 +1792,50 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"INTEGER_TO_ADDRESS(type, buf)",
XSTRING (INTEGER_TO_ADDRESS (type, buf)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: INTEGER_TO_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->integer_to_address
- /*INTEGER_TO_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: INTEGER_TO_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->integer_to_address
+ /*INTEGER_TO_ADDRESS ()*/);
#endif
#ifdef IN_SOLIB_CALL_TRAMPOLINE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"IN_SOLIB_CALL_TRAMPOLINE(pc, name)",
XSTRING (IN_SOLIB_CALL_TRAMPOLINE (pc, name)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = <0x%08lx>\n",
- (long) current_gdbarch->in_solib_call_trampoline
- /*IN_SOLIB_CALL_TRAMPOLINE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: IN_SOLIB_CALL_TRAMPOLINE = <0x%08lx>\n",
+ (long) current_gdbarch->in_solib_call_trampoline
+ /*IN_SOLIB_CALL_TRAMPOLINE ()*/);
#endif
#ifdef IN_SOLIB_RETURN_TRAMPOLINE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"IN_SOLIB_RETURN_TRAMPOLINE(pc, name)",
XSTRING (IN_SOLIB_RETURN_TRAMPOLINE (pc, name)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = <0x%08lx>\n",
- (long) current_gdbarch->in_solib_return_trampoline
- /*IN_SOLIB_RETURN_TRAMPOLINE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: IN_SOLIB_RETURN_TRAMPOLINE = <0x%08lx>\n",
+ (long) current_gdbarch->in_solib_return_trampoline
+ /*IN_SOLIB_RETURN_TRAMPOLINE ()*/);
#endif
#ifdef MEMORY_INSERT_BREAKPOINT
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"MEMORY_INSERT_BREAKPOINT(addr, contents_cache)",
XSTRING (MEMORY_INSERT_BREAKPOINT (addr, contents_cache)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = <0x%08lx>\n",
- (long) current_gdbarch->memory_insert_breakpoint
- /*MEMORY_INSERT_BREAKPOINT ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: MEMORY_INSERT_BREAKPOINT = <0x%08lx>\n",
+ (long) current_gdbarch->memory_insert_breakpoint
+ /*MEMORY_INSERT_BREAKPOINT ()*/);
#endif
#ifdef MEMORY_REMOVE_BREAKPOINT
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"MEMORY_REMOVE_BREAKPOINT(addr, contents_cache)",
XSTRING (MEMORY_REMOVE_BREAKPOINT (addr, contents_cache)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = <0x%08lx>\n",
- (long) current_gdbarch->memory_remove_breakpoint
- /*MEMORY_REMOVE_BREAKPOINT ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: MEMORY_REMOVE_BREAKPOINT = <0x%08lx>\n",
+ (long) current_gdbarch->memory_remove_breakpoint
+ /*MEMORY_REMOVE_BREAKPOINT ()*/);
#endif
#ifdef NAME_OF_MALLOC
fprintf_unfiltered (file,
@@ -1998,11 +1882,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"PC_IN_SIGTRAMP(pc, name)",
XSTRING (PC_IN_SIGTRAMP (pc, name)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n",
- (long) current_gdbarch->pc_in_sigtramp
- /*PC_IN_SIGTRAMP ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n",
+ (long) current_gdbarch->pc_in_sigtramp
+ /*PC_IN_SIGTRAMP ()*/);
#endif
#ifdef PC_REGNUM
fprintf_unfiltered (file,
@@ -2017,42 +1900,35 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"POINTER_TO_ADDRESS(type, buf)",
XSTRING (POINTER_TO_ADDRESS (type, buf)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: POINTER_TO_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->pointer_to_address
- /*POINTER_TO_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: POINTER_TO_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->pointer_to_address
+ /*POINTER_TO_ADDRESS ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
- gdbarch_print_float_info_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: print_float_info = 0x%08lx\n",
- (long) current_gdbarch->print_float_info);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: print_registers_info = 0x%08lx\n",
- (long) current_gdbarch->print_registers_info);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
- gdbarch_print_vector_info_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: print_vector_info = 0x%08lx\n",
- (long) current_gdbarch->print_vector_info);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_print_float_info_p() = %d\n",
+ gdbarch_print_float_info_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: print_float_info = 0x%08lx\n",
+ (long) current_gdbarch->print_float_info);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: print_registers_info = 0x%08lx\n",
+ (long) current_gdbarch->print_registers_info);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_print_vector_info_p() = %d\n",
+ gdbarch_print_vector_info_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: print_vector_info = 0x%08lx\n",
+ (long) current_gdbarch->print_vector_info);
#ifdef PROLOGUE_FRAMELESS_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"PROLOGUE_FRAMELESS_P(ip)",
XSTRING (PROLOGUE_FRAMELESS_P (ip)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n",
- (long) current_gdbarch->prologue_frameless_p
- /*PROLOGUE_FRAMELESS_P ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: PROLOGUE_FRAMELESS_P = <0x%08lx>\n",
+ (long) current_gdbarch->prologue_frameless_p
+ /*PROLOGUE_FRAMELESS_P ()*/);
#endif
#ifdef PS_REGNUM
fprintf_unfiltered (file,
@@ -2062,22 +1938,18 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: PS_REGNUM = %d\n",
PS_REGNUM);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
- gdbarch_push_dummy_call_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: push_dummy_call = 0x%08lx\n",
- (long) current_gdbarch->push_dummy_call);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
- gdbarch_push_dummy_code_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: push_dummy_code = 0x%08lx\n",
- (long) current_gdbarch->push_dummy_code);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_push_dummy_call_p() = %d\n",
+ gdbarch_push_dummy_call_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: push_dummy_call = 0x%08lx\n",
+ (long) current_gdbarch->push_dummy_call);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_push_dummy_code_p() = %d\n",
+ gdbarch_push_dummy_code_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: push_dummy_code = 0x%08lx\n",
+ (long) current_gdbarch->push_dummy_code);
#ifdef REGISTER_BYTE_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -2092,11 +1964,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REGISTER_BYTE(reg_nr)",
XSTRING (REGISTER_BYTE (reg_nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_BYTE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_byte
- /*REGISTER_BYTE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_BYTE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_byte
+ /*REGISTER_BYTE ()*/);
#endif
#ifdef REGISTER_BYTES_OK_P
fprintf_unfiltered (file,
@@ -2112,22 +1983,20 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REGISTER_BYTES_OK(nr_bytes)",
XSTRING (REGISTER_BYTES_OK (nr_bytes)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_BYTES_OK = <0x%08lx>\n",
- (long) current_gdbarch->register_bytes_ok
- /*REGISTER_BYTES_OK ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_BYTES_OK = <0x%08lx>\n",
+ (long) current_gdbarch->register_bytes_ok
+ /*REGISTER_BYTES_OK ()*/);
#endif
#ifdef REGISTER_NAME
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"REGISTER_NAME(regnr)",
XSTRING (REGISTER_NAME (regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_NAME = <0x%08lx>\n",
- (long) current_gdbarch->register_name
- /*REGISTER_NAME ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_NAME = <0x%08lx>\n",
+ (long) current_gdbarch->register_name
+ /*REGISTER_NAME ()*/);
#endif
#ifdef REGISTER_RAW_SIZE_P
fprintf_unfiltered (file,
@@ -2143,45 +2012,37 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REGISTER_RAW_SIZE(reg_nr)",
XSTRING (REGISTER_RAW_SIZE (reg_nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_RAW_SIZE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_raw_size
- /*REGISTER_RAW_SIZE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_RAW_SIZE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_raw_size
+ /*REGISTER_RAW_SIZE ()*/);
#endif
#ifdef REGISTER_SIM_REGNO
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"REGISTER_SIM_REGNO(reg_nr)",
XSTRING (REGISTER_SIM_REGNO (reg_nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_SIM_REGNO = <0x%08lx>\n",
- (long) current_gdbarch->register_sim_regno
- /*REGISTER_SIM_REGNO ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_SIM_REGNO = <0x%08lx>\n",
+ (long) current_gdbarch->register_sim_regno
+ /*REGISTER_SIM_REGNO ()*/);
#endif
#ifdef REGISTER_TO_VALUE
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"REGISTER_TO_VALUE(frame, regnum, type, buf)",
XSTRING (REGISTER_TO_VALUE (frame, regnum, type, buf)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_TO_VALUE = <0x%08lx>\n",
+ (long) current_gdbarch->register_to_value
+ /*REGISTER_TO_VALUE ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_TO_VALUE = <0x%08lx>\n",
- (long) current_gdbarch->register_to_value
- /*REGISTER_TO_VALUE ()*/);
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_register_type_p() = %d\n",
- gdbarch_register_type_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: register_type = 0x%08lx\n",
- (long) current_gdbarch->register_type);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_register_type_p() = %d\n",
+ gdbarch_register_type_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: register_type = 0x%08lx\n",
+ (long) current_gdbarch->register_type);
#ifdef REGISTER_VIRTUAL_SIZE_P
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -2196,11 +2057,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REGISTER_VIRTUAL_SIZE(reg_nr)",
XSTRING (REGISTER_VIRTUAL_SIZE (reg_nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_VIRTUAL_SIZE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_virtual_size
- /*REGISTER_VIRTUAL_SIZE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_VIRTUAL_SIZE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_virtual_size
+ /*REGISTER_VIRTUAL_SIZE ()*/);
#endif
#ifdef REGISTER_VIRTUAL_TYPE_P
fprintf_unfiltered (file,
@@ -2216,11 +2076,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REGISTER_VIRTUAL_TYPE(reg_nr)",
XSTRING (REGISTER_VIRTUAL_TYPE (reg_nr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REGISTER_VIRTUAL_TYPE = <0x%08lx>\n",
- (long) current_gdbarch->deprecated_register_virtual_type
- /*REGISTER_VIRTUAL_TYPE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REGISTER_VIRTUAL_TYPE = <0x%08lx>\n",
+ (long) current_gdbarch->deprecated_register_virtual_type
+ /*REGISTER_VIRTUAL_TYPE ()*/);
#endif
#ifdef REG_STRUCT_HAS_ADDR_P
fprintf_unfiltered (file,
@@ -2236,37 +2095,33 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"REG_STRUCT_HAS_ADDR(gcc_p, type)",
XSTRING (REG_STRUCT_HAS_ADDR (gcc_p, type)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: REG_STRUCT_HAS_ADDR = <0x%08lx>\n",
- (long) current_gdbarch->reg_struct_has_addr
- /*REG_STRUCT_HAS_ADDR ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: REG_STRUCT_HAS_ADDR = <0x%08lx>\n",
+ (long) current_gdbarch->reg_struct_has_addr
+ /*REG_STRUCT_HAS_ADDR ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: remote_translate_xfer_address = 0x%08lx\n",
- (long) current_gdbarch->remote_translate_xfer_address);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: remote_translate_xfer_address = 0x%08lx\n",
+ (long) current_gdbarch->remote_translate_xfer_address);
#ifdef RETURN_VALUE_ON_STACK
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"RETURN_VALUE_ON_STACK(type)",
XSTRING (RETURN_VALUE_ON_STACK (type)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: RETURN_VALUE_ON_STACK = <0x%08lx>\n",
- (long) current_gdbarch->return_value_on_stack
- /*RETURN_VALUE_ON_STACK ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: RETURN_VALUE_ON_STACK = <0x%08lx>\n",
+ (long) current_gdbarch->return_value_on_stack
+ /*RETURN_VALUE_ON_STACK ()*/);
#endif
#ifdef SDB_REG_TO_REGNUM
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"SDB_REG_TO_REGNUM(sdb_regnr)",
XSTRING (SDB_REG_TO_REGNUM (sdb_regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SDB_REG_TO_REGNUM = <0x%08lx>\n",
- (long) current_gdbarch->sdb_reg_to_regnum
- /*SDB_REG_TO_REGNUM ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SDB_REG_TO_REGNUM = <0x%08lx>\n",
+ (long) current_gdbarch->sdb_reg_to_regnum
+ /*SDB_REG_TO_REGNUM ()*/);
#endif
#ifdef SIGTRAMP_END_P
fprintf_unfiltered (file,
@@ -2282,11 +2137,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"SIGTRAMP_END(pc)",
XSTRING (SIGTRAMP_END (pc)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SIGTRAMP_END = <0x%08lx>\n",
- (long) current_gdbarch->sigtramp_end
- /*SIGTRAMP_END ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SIGTRAMP_END = <0x%08lx>\n",
+ (long) current_gdbarch->sigtramp_end
+ /*SIGTRAMP_END ()*/);
#endif
#ifdef SIGTRAMP_START_P
fprintf_unfiltered (file,
@@ -2302,44 +2156,40 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"SIGTRAMP_START(pc)",
XSTRING (SIGTRAMP_START (pc)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SIGTRAMP_START = <0x%08lx>\n",
- (long) current_gdbarch->sigtramp_start
- /*SIGTRAMP_START ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SIGTRAMP_START = <0x%08lx>\n",
+ (long) current_gdbarch->sigtramp_start
+ /*SIGTRAMP_START ()*/);
#endif
#ifdef SKIP_PROLOGUE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"SKIP_PROLOGUE(ip)",
XSTRING (SKIP_PROLOGUE (ip)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SKIP_PROLOGUE = <0x%08lx>\n",
- (long) current_gdbarch->skip_prologue
- /*SKIP_PROLOGUE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SKIP_PROLOGUE = <0x%08lx>\n",
+ (long) current_gdbarch->skip_prologue
+ /*SKIP_PROLOGUE ()*/);
#endif
#ifdef SKIP_TRAMPOLINE_CODE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"SKIP_TRAMPOLINE_CODE(pc)",
XSTRING (SKIP_TRAMPOLINE_CODE (pc)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SKIP_TRAMPOLINE_CODE = <0x%08lx>\n",
- (long) current_gdbarch->skip_trampoline_code
- /*SKIP_TRAMPOLINE_CODE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SKIP_TRAMPOLINE_CODE = <0x%08lx>\n",
+ (long) current_gdbarch->skip_trampoline_code
+ /*SKIP_TRAMPOLINE_CODE ()*/);
#endif
#ifdef SMASH_TEXT_ADDRESS
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"SMASH_TEXT_ADDRESS(addr)",
XSTRING (SMASH_TEXT_ADDRESS (addr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SMASH_TEXT_ADDRESS = <0x%08lx>\n",
- (long) current_gdbarch->smash_text_address
- /*SMASH_TEXT_ADDRESS ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SMASH_TEXT_ADDRESS = <0x%08lx>\n",
+ (long) current_gdbarch->smash_text_address
+ /*SMASH_TEXT_ADDRESS ()*/);
#endif
#ifdef SOFTWARE_SINGLE_STEP_P
fprintf_unfiltered (file,
@@ -2351,18 +2201,14 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
SOFTWARE_SINGLE_STEP_P ());
#endif
#ifdef SOFTWARE_SINGLE_STEP
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p)",
XSTRING (SOFTWARE_SINGLE_STEP (sig, insert_breakpoints_p)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: SOFTWARE_SINGLE_STEP = <0x%08lx>\n",
- (long) current_gdbarch->software_single_step
- /*SOFTWARE_SINGLE_STEP ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: SOFTWARE_SINGLE_STEP = <0x%08lx>\n",
+ (long) current_gdbarch->software_single_step
+ /*SOFTWARE_SINGLE_STEP ()*/);
#endif
#ifdef SP_REGNUM
fprintf_unfiltered (file,
@@ -2377,11 +2223,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"STAB_REG_TO_REGNUM(stab_regnr)",
XSTRING (STAB_REG_TO_REGNUM (stab_regnr)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: STAB_REG_TO_REGNUM = <0x%08lx>\n",
- (long) current_gdbarch->stab_reg_to_regnum
- /*STAB_REG_TO_REGNUM ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: STAB_REG_TO_REGNUM = <0x%08lx>\n",
+ (long) current_gdbarch->stab_reg_to_regnum
+ /*STAB_REG_TO_REGNUM ()*/);
#endif
#ifdef STACK_ALIGN_P
fprintf_unfiltered (file,
@@ -2397,25 +2242,20 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"STACK_ALIGN(sp)",
XSTRING (STACK_ALIGN (sp)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: STACK_ALIGN = <0x%08lx>\n",
- (long) current_gdbarch->stack_align
- /*STACK_ALIGN ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: STACK_ALIGN = <0x%08lx>\n",
+ (long) current_gdbarch->stack_align
+ /*STACK_ALIGN ()*/);
#endif
#ifdef STORE_RETURN_VALUE
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"STORE_RETURN_VALUE(type, regcache, valbuf)",
XSTRING (STORE_RETURN_VALUE (type, regcache, valbuf)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: STORE_RETURN_VALUE = <0x%08lx>\n",
- (long) current_gdbarch->store_return_value
- /*STORE_RETURN_VALUE ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: STORE_RETURN_VALUE = <0x%08lx>\n",
+ (long) current_gdbarch->store_return_value
+ /*STORE_RETURN_VALUE ()*/);
#endif
#ifdef TARGET_ADDR_BIT
fprintf_unfiltered (file,
@@ -2543,11 +2383,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"TARGET_PRINT_INSN(vma, info)",
XSTRING (TARGET_PRINT_INSN (vma, info)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_PRINT_INSN = <0x%08lx>\n",
- (long) current_gdbarch->print_insn
- /*TARGET_PRINT_INSN ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_PRINT_INSN = <0x%08lx>\n",
+ (long) current_gdbarch->print_insn
+ /*TARGET_PRINT_INSN ()*/);
#endif
#ifdef TARGET_PTR_BIT
fprintf_unfiltered (file,
@@ -2571,11 +2410,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"TARGET_READ_PC(ptid)",
XSTRING (TARGET_READ_PC (ptid)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_READ_PC = <0x%08lx>\n",
- (long) current_gdbarch->read_pc
- /*TARGET_READ_PC ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_READ_PC = <0x%08lx>\n",
+ (long) current_gdbarch->read_pc
+ /*TARGET_READ_PC ()*/);
#endif
#ifdef TARGET_READ_SP_P
fprintf_unfiltered (file,
@@ -2591,11 +2429,10 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: %s # %s\n",
"TARGET_READ_SP()",
XSTRING (TARGET_READ_SP ()));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_READ_SP = <0x%08lx>\n",
- (long) current_gdbarch->read_sp
- /*TARGET_READ_SP ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_READ_SP = <0x%08lx>\n",
+ (long) current_gdbarch->read_sp
+ /*TARGET_READ_SP ()*/);
#endif
#ifdef TARGET_SHORT_BIT
fprintf_unfiltered (file,
@@ -2606,81 +2443,62 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
TARGET_SHORT_BIT);
#endif
#ifdef TARGET_VIRTUAL_FRAME_POINTER
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"TARGET_VIRTUAL_FRAME_POINTER(pc, frame_regnum, frame_offset)",
XSTRING (TARGET_VIRTUAL_FRAME_POINTER (pc, frame_regnum, frame_offset)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = <0x%08lx>\n",
- (long) current_gdbarch->virtual_frame_pointer
- /*TARGET_VIRTUAL_FRAME_POINTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_VIRTUAL_FRAME_POINTER = <0x%08lx>\n",
+ (long) current_gdbarch->virtual_frame_pointer
+ /*TARGET_VIRTUAL_FRAME_POINTER ()*/);
#endif
#ifdef TARGET_WRITE_PC
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"TARGET_WRITE_PC(val, ptid)",
XSTRING (TARGET_WRITE_PC (val, ptid)));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_WRITE_PC = <0x%08lx>\n",
+ (long) current_gdbarch->write_pc
+ /*TARGET_WRITE_PC ()*/);
#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_WRITE_PC = <0x%08lx>\n",
- (long) current_gdbarch->write_pc
- /*TARGET_WRITE_PC ()*/);
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_unwind_dummy_id_p() = %d\n",
- gdbarch_unwind_dummy_id_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: unwind_dummy_id = 0x%08lx\n",
- (long) current_gdbarch->unwind_dummy_id);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
- gdbarch_unwind_pc_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: unwind_pc = 0x%08lx\n",
- (long) current_gdbarch->unwind_pc);
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
- gdbarch_unwind_sp_p (current_gdbarch));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: unwind_sp = 0x%08lx\n",
- (long) current_gdbarch->unwind_sp);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_unwind_dummy_id_p() = %d\n",
+ gdbarch_unwind_dummy_id_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: unwind_dummy_id = 0x%08lx\n",
+ (long) current_gdbarch->unwind_dummy_id);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_unwind_pc_p() = %d\n",
+ gdbarch_unwind_pc_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: unwind_pc = 0x%08lx\n",
+ (long) current_gdbarch->unwind_pc);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: gdbarch_unwind_sp_p() = %d\n",
+ gdbarch_unwind_sp_p (current_gdbarch));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: unwind_sp = 0x%08lx\n",
+ (long) current_gdbarch->unwind_sp);
#ifdef USE_STRUCT_CONVENTION
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"USE_STRUCT_CONVENTION(gcc_p, value_type)",
XSTRING (USE_STRUCT_CONVENTION (gcc_p, value_type)));
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: USE_STRUCT_CONVENTION = <0x%08lx>\n",
- (long) current_gdbarch->use_struct_convention
- /*USE_STRUCT_CONVENTION ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: USE_STRUCT_CONVENTION = <0x%08lx>\n",
+ (long) current_gdbarch->use_struct_convention
+ /*USE_STRUCT_CONVENTION ()*/);
#endif
#ifdef VALUE_TO_REGISTER
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
"VALUE_TO_REGISTER(frame, regnum, type, buf)",
XSTRING (VALUE_TO_REGISTER (frame, regnum, type, buf)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: VALUE_TO_REGISTER = <0x%08lx>\n",
- (long) current_gdbarch->value_to_register
- /*VALUE_TO_REGISTER ()*/);
+ fprintf_unfiltered (file,
+ "gdbarch_dump: VALUE_TO_REGISTER = <0x%08lx>\n",
+ (long) current_gdbarch->value_to_register
+ /*VALUE_TO_REGISTER ()*/);
#endif
if (current_gdbarch->dump_tdep != NULL)
current_gdbarch->dump_tdep (current_gdbarch, file);
@@ -2862,9 +2680,8 @@ int
gdbarch_addr_bit (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->addr_bit == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_addr_bit invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->addr_bit != 0);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
return gdbarch->addr_bit;
@@ -2898,9 +2715,8 @@ int
gdbarch_char_signed (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->char_signed == -1)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_char_signed invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->char_signed != -1);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_char_signed called\n");
return gdbarch->char_signed;
@@ -2917,16 +2733,14 @@ int
gdbarch_read_pc_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->read_pc != 0;
+ return gdbarch->read_pc != NULL;
}
CORE_ADDR
gdbarch_read_pc (struct gdbarch *gdbarch, ptid_t ptid)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->read_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_read_pc invalid");
+ gdb_assert (gdbarch->read_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_read_pc called\n");
return gdbarch->read_pc (ptid);
@@ -2943,9 +2757,7 @@ void
gdbarch_write_pc (struct gdbarch *gdbarch, CORE_ADDR val, ptid_t ptid)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->write_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_write_pc invalid");
+ gdb_assert (gdbarch->write_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_write_pc called\n");
gdbarch->write_pc (val, ptid);
@@ -2962,16 +2774,14 @@ int
gdbarch_read_sp_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->read_sp != 0;
+ return gdbarch->read_sp != NULL;
}
CORE_ADDR
gdbarch_read_sp (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->read_sp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_read_sp invalid");
+ gdb_assert (gdbarch->read_sp != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_read_sp called\n");
return gdbarch->read_sp ();
@@ -2988,9 +2798,7 @@ void
gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->virtual_frame_pointer == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_virtual_frame_pointer invalid");
+ gdb_assert (gdbarch->virtual_frame_pointer != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_virtual_frame_pointer called\n");
gdbarch->virtual_frame_pointer (pc, frame_regnum, frame_offset);
@@ -3007,16 +2815,14 @@ int
gdbarch_pseudo_register_read_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->pseudo_register_read != 0;
+ return gdbarch->pseudo_register_read != NULL;
}
void
gdbarch_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->pseudo_register_read == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_pseudo_register_read invalid");
+ gdb_assert (gdbarch->pseudo_register_read != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_read called\n");
gdbarch->pseudo_register_read (gdbarch, regcache, cookednum, buf);
@@ -3033,16 +2839,14 @@ int
gdbarch_pseudo_register_write_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->pseudo_register_write != 0;
+ return gdbarch->pseudo_register_write != NULL;
}
void
gdbarch_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->pseudo_register_write == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_pseudo_register_write invalid");
+ gdb_assert (gdbarch->pseudo_register_write != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_pseudo_register_write called\n");
gdbarch->pseudo_register_write (gdbarch, regcache, cookednum, buf);
@@ -3059,9 +2863,8 @@ int
gdbarch_num_regs (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->num_regs == -1)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_num_regs invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->num_regs != -1);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_num_regs called\n");
return gdbarch->num_regs;
@@ -3180,9 +2983,7 @@ int
gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->stab_reg_to_regnum == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_stab_reg_to_regnum invalid");
+ gdb_assert (gdbarch->stab_reg_to_regnum != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_stab_reg_to_regnum called\n");
return gdbarch->stab_reg_to_regnum (stab_regnr);
@@ -3199,9 +3000,7 @@ int
gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->ecoff_reg_to_regnum == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_ecoff_reg_to_regnum invalid");
+ gdb_assert (gdbarch->ecoff_reg_to_regnum != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_ecoff_reg_to_regnum called\n");
return gdbarch->ecoff_reg_to_regnum (ecoff_regnr);
@@ -3218,9 +3017,7 @@ int
gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int dwarf_regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->dwarf_reg_to_regnum == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_dwarf_reg_to_regnum invalid");
+ gdb_assert (gdbarch->dwarf_reg_to_regnum != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf_reg_to_regnum called\n");
return gdbarch->dwarf_reg_to_regnum (dwarf_regnr);
@@ -3237,9 +3034,7 @@ int
gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->sdb_reg_to_regnum == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_sdb_reg_to_regnum invalid");
+ gdb_assert (gdbarch->sdb_reg_to_regnum != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_sdb_reg_to_regnum called\n");
return gdbarch->sdb_reg_to_regnum (sdb_regnr);
@@ -3256,9 +3051,7 @@ int
gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->dwarf2_reg_to_regnum == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_dwarf2_reg_to_regnum invalid");
+ gdb_assert (gdbarch->dwarf2_reg_to_regnum != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_reg_to_regnum called\n");
return gdbarch->dwarf2_reg_to_regnum (dwarf2_regnr);
@@ -3275,9 +3068,7 @@ const char *
gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_name == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_name invalid");
+ gdb_assert (gdbarch->register_name != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
return gdbarch->register_name (regnr);
@@ -3294,16 +3085,14 @@ int
gdbarch_register_type_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->register_type != 0;
+ return gdbarch->register_type != NULL;
}
struct type *
gdbarch_register_type (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_type == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_type invalid");
+ gdb_assert (gdbarch->register_type != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_type called\n");
return gdbarch->register_type (gdbarch, reg_nr);
@@ -3320,16 +3109,14 @@ int
gdbarch_deprecated_register_virtual_type_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_register_virtual_type != 0;
+ return gdbarch->deprecated_register_virtual_type != NULL;
}
struct type *
gdbarch_deprecated_register_virtual_type (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_virtual_type == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_virtual_type invalid");
+ gdb_assert (gdbarch->deprecated_register_virtual_type != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_virtual_type called\n");
return gdbarch->deprecated_register_virtual_type (reg_nr);
@@ -3369,10 +3156,8 @@ int
gdbarch_deprecated_register_byte (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_byte == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_byte invalid");
- /* Ignore predicate (gdbarch->deprecated_register_byte != generic_register_byte). */
+ gdb_assert (gdbarch->deprecated_register_byte != NULL);
+ /* Do not check predicate: gdbarch->deprecated_register_byte != generic_register_byte, allow call. */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_byte called\n");
return gdbarch->deprecated_register_byte (reg_nr);
@@ -3396,10 +3181,8 @@ int
gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_raw_size == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_raw_size invalid");
- /* Ignore predicate (gdbarch->deprecated_register_raw_size != generic_register_size). */
+ gdb_assert (gdbarch->deprecated_register_raw_size != NULL);
+ /* Do not check predicate: gdbarch->deprecated_register_raw_size != generic_register_size, allow call. */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_raw_size called\n");
return gdbarch->deprecated_register_raw_size (reg_nr);
@@ -3423,10 +3206,8 @@ int
gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_virtual_size == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_virtual_size invalid");
- /* Ignore predicate (gdbarch->deprecated_register_virtual_size != generic_register_size). */
+ gdb_assert (gdbarch->deprecated_register_virtual_size != NULL);
+ /* Do not check predicate: gdbarch->deprecated_register_virtual_size != generic_register_size, allow call. */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_virtual_size called\n");
return gdbarch->deprecated_register_virtual_size (reg_nr);
@@ -3489,16 +3270,14 @@ int
gdbarch_unwind_dummy_id_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->unwind_dummy_id != 0;
+ return gdbarch->unwind_dummy_id != NULL;
}
struct frame_id
gdbarch_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *info)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->unwind_dummy_id == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_unwind_dummy_id invalid");
+ gdb_assert (gdbarch->unwind_dummy_id != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_dummy_id called\n");
return gdbarch->unwind_dummy_id (gdbarch, info);
@@ -3515,16 +3294,14 @@ int
gdbarch_deprecated_save_dummy_frame_tos_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_save_dummy_frame_tos != 0;
+ return gdbarch->deprecated_save_dummy_frame_tos != NULL;
}
void
gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch, CORE_ADDR sp)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_save_dummy_frame_tos == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_save_dummy_frame_tos invalid");
+ gdb_assert (gdbarch->deprecated_save_dummy_frame_tos != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_save_dummy_frame_tos called\n");
gdbarch->deprecated_save_dummy_frame_tos (sp);
@@ -3558,16 +3335,14 @@ int
gdbarch_deprecated_target_read_fp_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_target_read_fp != 0;
+ return gdbarch->deprecated_target_read_fp != NULL;
}
CORE_ADDR
gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_target_read_fp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_target_read_fp invalid");
+ gdb_assert (gdbarch->deprecated_target_read_fp != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_target_read_fp called\n");
return gdbarch->deprecated_target_read_fp ();
@@ -3584,16 +3359,14 @@ int
gdbarch_push_dummy_call_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->push_dummy_call != 0;
+ return gdbarch->push_dummy_call != NULL;
}
CORE_ADDR
gdbarch_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->push_dummy_call == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_push_dummy_call invalid");
+ gdb_assert (gdbarch->push_dummy_call != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_call called\n");
return gdbarch->push_dummy_call (gdbarch, func_addr, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr);
@@ -3610,16 +3383,14 @@ int
gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_push_arguments != 0;
+ return gdbarch->deprecated_push_arguments != NULL;
}
CORE_ADDR
gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_push_arguments == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_push_arguments invalid");
+ gdb_assert (gdbarch->deprecated_push_arguments != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_arguments called\n");
return gdbarch->deprecated_push_arguments (nargs, args, sp, struct_return, struct_addr);
@@ -3653,16 +3424,14 @@ int
gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_push_return_address != 0;
+ return gdbarch->deprecated_push_return_address != NULL;
}
CORE_ADDR
gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_push_return_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_push_return_address invalid");
+ gdb_assert (gdbarch->deprecated_push_return_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_return_address called\n");
return gdbarch->deprecated_push_return_address (pc, sp);
@@ -3679,16 +3448,14 @@ int
gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_dummy_write_sp != 0;
+ return gdbarch->deprecated_dummy_write_sp != NULL;
}
void
gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_dummy_write_sp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_dummy_write_sp invalid");
+ gdb_assert (gdbarch->deprecated_dummy_write_sp != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_dummy_write_sp called\n");
gdbarch->deprecated_dummy_write_sp (val);
@@ -3738,9 +3505,7 @@ CORE_ADDR
gdbarch_call_dummy_address (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->call_dummy_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_call_dummy_address invalid");
+ gdb_assert (gdbarch->call_dummy_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_address called\n");
return gdbarch->call_dummy_address ();
@@ -3862,16 +3627,14 @@ int
gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_fix_call_dummy != 0;
+ return gdbarch->deprecated_fix_call_dummy != NULL;
}
void
gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_fix_call_dummy == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_fix_call_dummy invalid");
+ gdb_assert (gdbarch->deprecated_fix_call_dummy != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_fix_call_dummy called\n");
gdbarch->deprecated_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p);
@@ -3888,16 +3651,14 @@ int
gdbarch_push_dummy_code_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->push_dummy_code != 0;
+ return gdbarch->push_dummy_code != NULL;
}
CORE_ADDR
gdbarch_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->push_dummy_code == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_push_dummy_code invalid");
+ gdb_assert (gdbarch->push_dummy_code != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_push_dummy_code called\n");
return gdbarch->push_dummy_code (gdbarch, sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr);
@@ -3914,16 +3675,14 @@ int
gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_push_dummy_frame != 0;
+ return gdbarch->deprecated_push_dummy_frame != NULL;
}
void
gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_push_dummy_frame == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_push_dummy_frame invalid");
+ gdb_assert (gdbarch->deprecated_push_dummy_frame != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_push_dummy_frame called\n");
gdbarch->deprecated_push_dummy_frame ();
@@ -3957,16 +3716,14 @@ int
gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_do_registers_info != 0;
+ return gdbarch->deprecated_do_registers_info != NULL;
}
void
gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_do_registers_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_do_registers_info invalid");
+ gdb_assert (gdbarch->deprecated_do_registers_info != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_do_registers_info called\n");
gdbarch->deprecated_do_registers_info (reg_nr, fpregs);
@@ -3983,9 +3740,7 @@ void
gdbarch_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->print_registers_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_print_registers_info invalid");
+ gdb_assert (gdbarch->print_registers_info != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_print_registers_info called\n");
gdbarch->print_registers_info (gdbarch, file, frame, regnum, all);
@@ -4002,16 +3757,14 @@ int
gdbarch_print_float_info_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->print_float_info != 0;
+ return gdbarch->print_float_info != NULL;
}
void
gdbarch_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->print_float_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_print_float_info invalid");
+ gdb_assert (gdbarch->print_float_info != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_print_float_info called\n");
gdbarch->print_float_info (gdbarch, file, frame, args);
@@ -4028,16 +3781,14 @@ int
gdbarch_print_vector_info_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->print_vector_info != 0;
+ return gdbarch->print_vector_info != NULL;
}
void
gdbarch_print_vector_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->print_vector_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_print_vector_info invalid");
+ gdb_assert (gdbarch->print_vector_info != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_print_vector_info called\n");
gdbarch->print_vector_info (gdbarch, file, frame, args);
@@ -4054,9 +3805,7 @@ int
gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_sim_regno == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_sim_regno invalid");
+ gdb_assert (gdbarch->register_sim_regno != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_sim_regno called\n");
return gdbarch->register_sim_regno (reg_nr);
@@ -4073,16 +3822,14 @@ int
gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->register_bytes_ok != 0;
+ return gdbarch->register_bytes_ok != NULL;
}
int
gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_bytes_ok == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_bytes_ok invalid");
+ gdb_assert (gdbarch->register_bytes_ok != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n");
return gdbarch->register_bytes_ok (nr_bytes);
@@ -4099,9 +3846,7 @@ int
gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->cannot_fetch_register == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_cannot_fetch_register invalid");
+ gdb_assert (gdbarch->cannot_fetch_register != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_fetch_register called\n");
return gdbarch->cannot_fetch_register (regnum);
@@ -4118,9 +3863,7 @@ int
gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->cannot_store_register == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_cannot_store_register invalid");
+ gdb_assert (gdbarch->cannot_store_register != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_cannot_store_register called\n");
return gdbarch->cannot_store_register (regnum);
@@ -4137,16 +3880,14 @@ int
gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->get_longjmp_target != 0;
+ return gdbarch->get_longjmp_target != NULL;
}
int
gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->get_longjmp_target == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_get_longjmp_target invalid");
+ gdb_assert (gdbarch->get_longjmp_target != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_get_longjmp_target called\n");
return gdbarch->get_longjmp_target (pc);
@@ -4170,10 +3911,8 @@ int
gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_pc_in_call_dummy == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_pc_in_call_dummy invalid");
- /* Ignore predicate (gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy). */
+ gdb_assert (gdbarch->deprecated_pc_in_call_dummy != NULL);
+ /* Do not check predicate: gdbarch->deprecated_pc_in_call_dummy != generic_pc_in_call_dummy, allow call. */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_call_dummy called\n");
return gdbarch->deprecated_pc_in_call_dummy (pc, sp, frame_address);
@@ -4190,16 +3929,14 @@ int
gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_init_frame_pc_first != 0;
+ return gdbarch->deprecated_init_frame_pc_first != NULL;
}
CORE_ADDR
gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_init_frame_pc_first == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_init_frame_pc_first invalid");
+ gdb_assert (gdbarch->deprecated_init_frame_pc_first != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc_first called\n");
return gdbarch->deprecated_init_frame_pc_first (fromleaf, prev);
@@ -4216,16 +3953,14 @@ int
gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_init_frame_pc != 0;
+ return gdbarch->deprecated_init_frame_pc != NULL;
}
CORE_ADDR
gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_init_frame_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_init_frame_pc invalid");
+ gdb_assert (gdbarch->deprecated_init_frame_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_frame_pc called\n");
return gdbarch->deprecated_init_frame_pc (fromleaf, prev);
@@ -4274,16 +4009,14 @@ int
gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_get_saved_register != 0;
+ return gdbarch->deprecated_get_saved_register != NULL;
}
void
gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch, char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_get_saved_register == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_get_saved_register invalid");
+ gdb_assert (gdbarch->deprecated_get_saved_register != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_get_saved_register called\n");
gdbarch->deprecated_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval);
@@ -4300,9 +4033,7 @@ int
gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, int nr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_convertible == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_convertible invalid");
+ gdb_assert (gdbarch->deprecated_register_convertible != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convertible called\n");
return gdbarch->deprecated_register_convertible (nr);
@@ -4319,9 +4050,7 @@ void
gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum, struct type *type, char *from, char *to)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_convert_to_virtual == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_convert_to_virtual invalid");
+ gdb_assert (gdbarch->deprecated_register_convert_to_virtual != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convert_to_virtual called\n");
gdbarch->deprecated_register_convert_to_virtual (regnum, type, from, to);
@@ -4338,9 +4067,7 @@ void
gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, int regnum, const char *from, char *to)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_register_convert_to_raw == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_register_convert_to_raw invalid");
+ gdb_assert (gdbarch->deprecated_register_convert_to_raw != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_register_convert_to_raw called\n");
gdbarch->deprecated_register_convert_to_raw (type, regnum, from, to);
@@ -4357,9 +4084,7 @@ int
gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->convert_register_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_convert_register_p invalid");
+ gdb_assert (gdbarch->convert_register_p != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_register_p called\n");
return gdbarch->convert_register_p (regnum, type);
@@ -4376,9 +4101,7 @@ void
gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_to_value == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_to_value invalid");
+ gdb_assert (gdbarch->register_to_value != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_to_value called\n");
gdbarch->register_to_value (frame, regnum, type, buf);
@@ -4395,9 +4118,7 @@ void
gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->value_to_register == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_value_to_register invalid");
+ gdb_assert (gdbarch->value_to_register != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_value_to_register called\n");
gdbarch->value_to_register (frame, regnum, type, buf);
@@ -4414,9 +4135,7 @@ CORE_ADDR
gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->pointer_to_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_pointer_to_address invalid");
+ gdb_assert (gdbarch->pointer_to_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_pointer_to_address called\n");
return gdbarch->pointer_to_address (type, buf);
@@ -4433,9 +4152,7 @@ void
gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, void *buf, CORE_ADDR addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->address_to_pointer == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_address_to_pointer invalid");
+ gdb_assert (gdbarch->address_to_pointer != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_address_to_pointer called\n");
gdbarch->address_to_pointer (type, buf, addr);
@@ -4452,16 +4169,14 @@ int
gdbarch_integer_to_address_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->integer_to_address != 0;
+ return gdbarch->integer_to_address != NULL;
}
CORE_ADDR
gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->integer_to_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_integer_to_address invalid");
+ gdb_assert (gdbarch->integer_to_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_integer_to_address called\n");
return gdbarch->integer_to_address (type, buf);
@@ -4478,9 +4193,7 @@ int
gdbarch_return_value_on_stack (struct gdbarch *gdbarch, struct type *type)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->return_value_on_stack == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_return_value_on_stack invalid");
+ gdb_assert (gdbarch->return_value_on_stack != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_return_value_on_stack called\n");
return gdbarch->return_value_on_stack (type);
@@ -4497,16 +4210,14 @@ int
gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_pop_frame != 0;
+ return gdbarch->deprecated_pop_frame != NULL;
}
void
gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_pop_frame == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_pop_frame invalid");
+ gdb_assert (gdbarch->deprecated_pop_frame != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pop_frame called\n");
gdbarch->deprecated_pop_frame ();
@@ -4523,16 +4234,14 @@ int
gdbarch_deprecated_store_struct_return_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_store_struct_return != 0;
+ return gdbarch->deprecated_store_struct_return != NULL;
}
void
gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR sp)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_store_struct_return == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_store_struct_return invalid");
+ gdb_assert (gdbarch->deprecated_store_struct_return != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_struct_return called\n");
gdbarch->deprecated_store_struct_return (addr, sp);
@@ -4549,9 +4258,7 @@ void
gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->extract_return_value == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_extract_return_value invalid");
+ gdb_assert (gdbarch->extract_return_value != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_return_value called\n");
gdbarch->extract_return_value (type, regcache, valbuf);
@@ -4568,9 +4275,7 @@ void
gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const void *valbuf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->store_return_value == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_store_return_value invalid");
+ gdb_assert (gdbarch->store_return_value != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_store_return_value called\n");
gdbarch->store_return_value (type, regcache, valbuf);
@@ -4587,9 +4292,7 @@ void
gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, struct type *type, char *regbuf, char *valbuf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_extract_return_value == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_extract_return_value invalid");
+ gdb_assert (gdbarch->deprecated_extract_return_value != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_return_value called\n");
gdbarch->deprecated_extract_return_value (type, regbuf, valbuf);
@@ -4606,9 +4309,7 @@ void
gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch, struct type *type, char *valbuf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_store_return_value == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_store_return_value invalid");
+ gdb_assert (gdbarch->deprecated_store_return_value != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_return_value called\n");
gdbarch->deprecated_store_return_value (type, valbuf);
@@ -4625,16 +4326,14 @@ int
gdbarch_extract_struct_value_address_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->extract_struct_value_address != 0;
+ return gdbarch->extract_struct_value_address != NULL;
}
CORE_ADDR
gdbarch_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->extract_struct_value_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_extract_struct_value_address invalid");
+ gdb_assert (gdbarch->extract_struct_value_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_struct_value_address called\n");
return gdbarch->extract_struct_value_address (regcache);
@@ -4651,16 +4350,14 @@ int
gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_extract_struct_value_address != 0;
+ return gdbarch->deprecated_extract_struct_value_address != NULL;
}
CORE_ADDR
gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, char *regbuf)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_extract_struct_value_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_extract_struct_value_address invalid");
+ gdb_assert (gdbarch->deprecated_extract_struct_value_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_struct_value_address called\n");
return gdbarch->deprecated_extract_struct_value_address (regbuf);
@@ -4677,9 +4374,7 @@ int
gdbarch_use_struct_convention (struct gdbarch *gdbarch, int gcc_p, struct type *value_type)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->use_struct_convention == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_use_struct_convention invalid");
+ gdb_assert (gdbarch->use_struct_convention != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_use_struct_convention called\n");
return gdbarch->use_struct_convention (gcc_p, value_type);
@@ -4696,16 +4391,14 @@ int
gdbarch_deprecated_frame_init_saved_regs_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_frame_init_saved_regs != 0;
+ return gdbarch->deprecated_frame_init_saved_regs != NULL;
}
void
gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch, struct frame_info *frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_frame_init_saved_regs == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_frame_init_saved_regs invalid");
+ gdb_assert (gdbarch->deprecated_frame_init_saved_regs != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_init_saved_regs called\n");
gdbarch->deprecated_frame_init_saved_regs (frame);
@@ -4722,16 +4415,14 @@ int
gdbarch_deprecated_init_extra_frame_info_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_init_extra_frame_info != 0;
+ return gdbarch->deprecated_init_extra_frame_info != NULL;
}
void
gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch, int fromleaf, struct frame_info *frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_init_extra_frame_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_init_extra_frame_info invalid");
+ gdb_assert (gdbarch->deprecated_init_extra_frame_info != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_init_extra_frame_info called\n");
gdbarch->deprecated_init_extra_frame_info (fromleaf, frame);
@@ -4748,9 +4439,7 @@ CORE_ADDR
gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->skip_prologue == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_skip_prologue invalid");
+ gdb_assert (gdbarch->skip_prologue != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_prologue called\n");
return gdbarch->skip_prologue (ip);
@@ -4767,9 +4456,7 @@ int
gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->prologue_frameless_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_prologue_frameless_p invalid");
+ gdb_assert (gdbarch->prologue_frameless_p != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_prologue_frameless_p called\n");
return gdbarch->prologue_frameless_p (ip);
@@ -4786,9 +4473,7 @@ int
gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->inner_than == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_inner_than invalid");
+ gdb_assert (gdbarch->inner_than != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_inner_than called\n");
return gdbarch->inner_than (lhs, rhs);
@@ -4805,9 +4490,7 @@ const unsigned char *
gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->breakpoint_from_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_breakpoint_from_pc invalid");
+ gdb_assert (gdbarch->breakpoint_from_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_breakpoint_from_pc called\n");
return gdbarch->breakpoint_from_pc (pcptr, lenptr);
@@ -4824,9 +4507,7 @@ int
gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->memory_insert_breakpoint == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_memory_insert_breakpoint invalid");
+ gdb_assert (gdbarch->memory_insert_breakpoint != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_insert_breakpoint called\n");
return gdbarch->memory_insert_breakpoint (addr, contents_cache);
@@ -4843,9 +4524,7 @@ int
gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->memory_remove_breakpoint == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_memory_remove_breakpoint invalid");
+ gdb_assert (gdbarch->memory_remove_breakpoint != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_memory_remove_breakpoint called\n");
return gdbarch->memory_remove_breakpoint (addr, contents_cache);
@@ -4862,9 +4541,8 @@ CORE_ADDR
gdbarch_decr_pc_after_break (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->decr_pc_after_break == -1)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_decr_pc_after_break invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->decr_pc_after_break != -1);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_decr_pc_after_break called\n");
return gdbarch->decr_pc_after_break;
@@ -4881,9 +4559,8 @@ CORE_ADDR
gdbarch_function_start_offset (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->function_start_offset == -1)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_function_start_offset invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->function_start_offset != -1);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_function_start_offset called\n");
return gdbarch->function_start_offset;
@@ -4900,9 +4577,7 @@ void
gdbarch_remote_translate_xfer_address (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->remote_translate_xfer_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_remote_translate_xfer_address invalid");
+ gdb_assert (gdbarch->remote_translate_xfer_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_remote_translate_xfer_address called\n");
gdbarch->remote_translate_xfer_address (gdbarch, regcache, gdb_addr, gdb_len, rem_addr, rem_len);
@@ -4919,9 +4594,8 @@ CORE_ADDR
gdbarch_frame_args_skip (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frame_args_skip == -1)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frame_args_skip invalid");
+ /* Check variable changed from pre-default. */
+ gdb_assert (gdbarch->frame_args_skip != -1);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_skip called\n");
return gdbarch->frame_args_skip;
@@ -4938,9 +4612,7 @@ int
gdbarch_frameless_function_invocation (struct gdbarch *gdbarch, struct frame_info *fi)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frameless_function_invocation == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frameless_function_invocation invalid");
+ gdb_assert (gdbarch->frameless_function_invocation != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_frameless_function_invocation called\n");
return gdbarch->frameless_function_invocation (fi);
@@ -4957,16 +4629,14 @@ int
gdbarch_deprecated_frame_chain_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_frame_chain != 0;
+ return gdbarch->deprecated_frame_chain != NULL;
}
CORE_ADDR
gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, struct frame_info *frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_frame_chain == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_frame_chain invalid");
+ gdb_assert (gdbarch->deprecated_frame_chain != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain called\n");
return gdbarch->deprecated_frame_chain (frame);
@@ -4983,16 +4653,14 @@ int
gdbarch_deprecated_frame_chain_valid_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_frame_chain_valid != 0;
+ return gdbarch->deprecated_frame_chain_valid != NULL;
}
int
gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, CORE_ADDR chain, struct frame_info *thisframe)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_frame_chain_valid == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_frame_chain_valid invalid");
+ gdb_assert (gdbarch->deprecated_frame_chain_valid != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_chain_valid called\n");
return gdbarch->deprecated_frame_chain_valid (chain, thisframe);
@@ -5009,16 +4677,14 @@ int
gdbarch_deprecated_frame_saved_pc_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_frame_saved_pc != 0;
+ return gdbarch->deprecated_frame_saved_pc != NULL;
}
CORE_ADDR
gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch, struct frame_info *fi)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_frame_saved_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_frame_saved_pc invalid");
+ gdb_assert (gdbarch->deprecated_frame_saved_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_saved_pc called\n");
return gdbarch->deprecated_frame_saved_pc (fi);
@@ -5035,16 +4701,14 @@ int
gdbarch_unwind_pc_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->unwind_pc != 0;
+ return gdbarch->unwind_pc != NULL;
}
CORE_ADDR
gdbarch_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->unwind_pc == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_unwind_pc invalid");
+ gdb_assert (gdbarch->unwind_pc != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_pc called\n");
return gdbarch->unwind_pc (gdbarch, next_frame);
@@ -5061,16 +4725,14 @@ int
gdbarch_unwind_sp_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->unwind_sp != 0;
+ return gdbarch->unwind_sp != NULL;
}
CORE_ADDR
gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->unwind_sp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_unwind_sp invalid");
+ gdb_assert (gdbarch->unwind_sp != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_unwind_sp called\n");
return gdbarch->unwind_sp (gdbarch, next_frame);
@@ -5083,58 +4745,68 @@ set_gdbarch_unwind_sp (struct gdbarch *gdbarch,
gdbarch->unwind_sp = unwind_sp;
}
+int
+gdbarch_deprecated_frame_args_address_p (struct gdbarch *gdbarch)
+{
+ gdb_assert (gdbarch != NULL);
+ return gdbarch->deprecated_frame_args_address != get_frame_base;
+}
+
CORE_ADDR
-gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
+gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frame_args_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frame_args_address invalid");
+ gdb_assert (gdbarch->deprecated_frame_args_address != NULL);
+ /* Do not check predicate: gdbarch->deprecated_frame_args_address != get_frame_base, allow call. */
if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_args_address called\n");
- return gdbarch->frame_args_address (fi);
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_args_address called\n");
+ return gdbarch->deprecated_frame_args_address (fi);
}
void
-set_gdbarch_frame_args_address (struct gdbarch *gdbarch,
- gdbarch_frame_args_address_ftype frame_args_address)
+set_gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch,
+ gdbarch_deprecated_frame_args_address_ftype deprecated_frame_args_address)
{
- gdbarch->frame_args_address = frame_args_address;
+ gdbarch->deprecated_frame_args_address = deprecated_frame_args_address;
+}
+
+int
+gdbarch_deprecated_frame_locals_address_p (struct gdbarch *gdbarch)
+{
+ gdb_assert (gdbarch != NULL);
+ return gdbarch->deprecated_frame_locals_address != get_frame_base;
}
CORE_ADDR
-gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
+gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frame_locals_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frame_locals_address invalid");
+ gdb_assert (gdbarch->deprecated_frame_locals_address != NULL);
+ /* Do not check predicate: gdbarch->deprecated_frame_locals_address != get_frame_base, allow call. */
if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_locals_address called\n");
- return gdbarch->frame_locals_address (fi);
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_frame_locals_address called\n");
+ return gdbarch->deprecated_frame_locals_address (fi);
}
void
-set_gdbarch_frame_locals_address (struct gdbarch *gdbarch,
- gdbarch_frame_locals_address_ftype frame_locals_address)
+set_gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch,
+ gdbarch_deprecated_frame_locals_address_ftype deprecated_frame_locals_address)
{
- gdbarch->frame_locals_address = frame_locals_address;
+ gdbarch->deprecated_frame_locals_address = deprecated_frame_locals_address;
}
int
gdbarch_deprecated_saved_pc_after_call_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->deprecated_saved_pc_after_call != 0;
+ return gdbarch->deprecated_saved_pc_after_call != NULL;
}
CORE_ADDR
gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch, struct frame_info *frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->deprecated_saved_pc_after_call == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_deprecated_saved_pc_after_call invalid");
+ gdb_assert (gdbarch->deprecated_saved_pc_after_call != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_saved_pc_after_call called\n");
return gdbarch->deprecated_saved_pc_after_call (frame);
@@ -5151,16 +4823,14 @@ int
gdbarch_frame_num_args_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->frame_num_args != 0;
+ return gdbarch->frame_num_args != NULL;
}
int
gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frame_num_args == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frame_num_args invalid");
+ gdb_assert (gdbarch->frame_num_args != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_num_args called\n");
return gdbarch->frame_num_args (frame);
@@ -5177,16 +4847,14 @@ int
gdbarch_stack_align_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->stack_align != 0;
+ return gdbarch->stack_align != NULL;
}
CORE_ADDR
gdbarch_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->stack_align == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_stack_align invalid");
+ gdb_assert (gdbarch->stack_align != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_stack_align called\n");
return gdbarch->stack_align (sp);
@@ -5203,16 +4871,14 @@ int
gdbarch_frame_align_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->frame_align != 0;
+ return gdbarch->frame_align != NULL;
}
CORE_ADDR
gdbarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR address)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->frame_align == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_frame_align invalid");
+ gdb_assert (gdbarch->frame_align != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_align called\n");
return gdbarch->frame_align (gdbarch, address);
@@ -5229,16 +4895,14 @@ int
gdbarch_reg_struct_has_addr_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->reg_struct_has_addr != 0;
+ return gdbarch->reg_struct_has_addr != NULL;
}
int
gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch, int gcc_p, struct type *type)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->reg_struct_has_addr == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_reg_struct_has_addr invalid");
+ gdb_assert (gdbarch->reg_struct_has_addr != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_reg_struct_has_addr called\n");
return gdbarch->reg_struct_has_addr (gcc_p, type);
@@ -5252,6 +4916,22 @@ set_gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch,
}
int
+gdbarch_frame_red_zone_size (struct gdbarch *gdbarch)
+{
+ gdb_assert (gdbarch != NULL);
+ if (gdbarch_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_frame_red_zone_size called\n");
+ return gdbarch->frame_red_zone_size;
+}
+
+void
+set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch,
+ int frame_red_zone_size)
+{
+ gdbarch->frame_red_zone_size = frame_red_zone_size;
+}
+
+int
gdbarch_parm_boundary (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
@@ -5319,9 +4999,7 @@ CORE_ADDR
gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->convert_from_func_ptr_addr == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_convert_from_func_ptr_addr invalid");
+ gdb_assert (gdbarch->convert_from_func_ptr_addr != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_convert_from_func_ptr_addr called\n");
return gdbarch->convert_from_func_ptr_addr (addr);
@@ -5338,9 +5016,7 @@ CORE_ADDR
gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->addr_bits_remove == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_addr_bits_remove invalid");
+ gdb_assert (gdbarch->addr_bits_remove != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bits_remove called\n");
return gdbarch->addr_bits_remove (addr);
@@ -5357,9 +5033,7 @@ CORE_ADDR
gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->smash_text_address == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_smash_text_address invalid");
+ gdb_assert (gdbarch->smash_text_address != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_smash_text_address called\n");
return gdbarch->smash_text_address (addr);
@@ -5376,16 +5050,14 @@ int
gdbarch_software_single_step_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->software_single_step != 0;
+ return gdbarch->software_single_step != NULL;
}
void
gdbarch_software_single_step (struct gdbarch *gdbarch, enum target_signal sig, int insert_breakpoints_p)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->software_single_step == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_software_single_step invalid");
+ gdb_assert (gdbarch->software_single_step != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_software_single_step called\n");
gdbarch->software_single_step (sig, insert_breakpoints_p);
@@ -5402,9 +5074,7 @@ int
gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, disassemble_info *info)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->print_insn == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_print_insn invalid");
+ gdb_assert (gdbarch->print_insn != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_print_insn called\n");
return gdbarch->print_insn (vma, info);
@@ -5421,9 +5091,7 @@ CORE_ADDR
gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, CORE_ADDR pc)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->skip_trampoline_code == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_skip_trampoline_code invalid");
+ gdb_assert (gdbarch->skip_trampoline_code != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_skip_trampoline_code called\n");
return gdbarch->skip_trampoline_code (pc);
@@ -5440,9 +5108,7 @@ int
gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->in_solib_call_trampoline == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_in_solib_call_trampoline invalid");
+ gdb_assert (gdbarch->in_solib_call_trampoline != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_call_trampoline called\n");
return gdbarch->in_solib_call_trampoline (pc, name);
@@ -5459,9 +5125,7 @@ int
gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->in_solib_return_trampoline == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_in_solib_return_trampoline invalid");
+ gdb_assert (gdbarch->in_solib_return_trampoline != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_in_solib_return_trampoline called\n");
return gdbarch->in_solib_return_trampoline (pc, name);
@@ -5478,9 +5142,7 @@ int
gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->pc_in_sigtramp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_pc_in_sigtramp invalid");
+ gdb_assert (gdbarch->pc_in_sigtramp != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_in_sigtramp called\n");
return gdbarch->pc_in_sigtramp (pc, name);
@@ -5497,16 +5159,14 @@ int
gdbarch_sigtramp_start_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->sigtramp_start != 0;
+ return gdbarch->sigtramp_start != NULL;
}
CORE_ADDR
gdbarch_sigtramp_start (struct gdbarch *gdbarch, CORE_ADDR pc)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->sigtramp_start == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_sigtramp_start invalid");
+ gdb_assert (gdbarch->sigtramp_start != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_start called\n");
return gdbarch->sigtramp_start (pc);
@@ -5523,16 +5183,14 @@ int
gdbarch_sigtramp_end_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->sigtramp_end != 0;
+ return gdbarch->sigtramp_end != NULL;
}
CORE_ADDR
gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->sigtramp_end == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_sigtramp_end invalid");
+ gdb_assert (gdbarch->sigtramp_end != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_sigtramp_end called\n");
return gdbarch->sigtramp_end (pc);
@@ -5549,9 +5207,7 @@ int
gdbarch_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->in_function_epilogue_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_in_function_epilogue_p invalid");
+ gdb_assert (gdbarch->in_function_epilogue_p != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_in_function_epilogue_p called\n");
return gdbarch->in_function_epilogue_p (gdbarch, addr);
@@ -5568,9 +5224,7 @@ char *
gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->construct_inferior_arguments == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_construct_inferior_arguments invalid");
+ gdb_assert (gdbarch->construct_inferior_arguments != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_construct_inferior_arguments called\n");
return gdbarch->construct_inferior_arguments (gdbarch, argc, argv);
@@ -5583,39 +5237,11 @@ set_gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch,
gdbarch->construct_inferior_arguments = construct_inferior_arguments;
}
-int
-gdbarch_dwarf2_build_frame_info_p (struct gdbarch *gdbarch)
-{
- gdb_assert (gdbarch != NULL);
- return gdbarch->dwarf2_build_frame_info != 0;
-}
-
-void
-gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch, struct objfile *objfile)
-{
- gdb_assert (gdbarch != NULL);
- if (gdbarch->dwarf2_build_frame_info == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_dwarf2_build_frame_info invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_dwarf2_build_frame_info called\n");
- gdbarch->dwarf2_build_frame_info (objfile);
-}
-
-void
-set_gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch,
- gdbarch_dwarf2_build_frame_info_ftype dwarf2_build_frame_info)
-{
- gdbarch->dwarf2_build_frame_info = dwarf2_build_frame_info;
-}
-
void
gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->elf_make_msymbol_special == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_elf_make_msymbol_special invalid");
+ gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_elf_make_msymbol_special called\n");
gdbarch->elf_make_msymbol_special (sym, msym);
@@ -5632,9 +5258,7 @@ void
gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->coff_make_msymbol_special == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_coff_make_msymbol_special invalid");
+ gdb_assert (gdbarch->coff_make_msymbol_special != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_coff_make_msymbol_special called\n");
gdbarch->coff_make_msymbol_special (val, msym);
@@ -5702,16 +5326,14 @@ int
gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->address_class_type_flags != 0;
+ return gdbarch->address_class_type_flags != NULL;
}
int
gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->address_class_type_flags == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_address_class_type_flags invalid");
+ gdb_assert (gdbarch->address_class_type_flags != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags called\n");
return gdbarch->address_class_type_flags (byte_size, dwarf2_addr_class);
@@ -5728,16 +5350,14 @@ int
gdbarch_address_class_type_flags_to_name_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->address_class_type_flags_to_name != 0;
+ return gdbarch->address_class_type_flags_to_name != NULL;
}
const char *
gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->address_class_type_flags_to_name == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_address_class_type_flags_to_name invalid");
+ gdb_assert (gdbarch->address_class_type_flags_to_name != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_type_flags_to_name called\n");
return gdbarch->address_class_type_flags_to_name (gdbarch, type_flags);
@@ -5754,16 +5374,14 @@ int
gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->address_class_name_to_type_flags != 0;
+ return gdbarch->address_class_name_to_type_flags != NULL;
}
int
gdbarch_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->address_class_name_to_type_flags == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_address_class_name_to_type_flags invalid");
+ gdb_assert (gdbarch->address_class_name_to_type_flags != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_address_class_name_to_type_flags called\n");
return gdbarch->address_class_name_to_type_flags (gdbarch, name, type_flags_ptr);
@@ -5780,9 +5398,7 @@ int
gdbarch_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->register_reggroup_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_register_reggroup_p invalid");
+ gdb_assert (gdbarch->register_reggroup_p != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_register_reggroup_p called\n");
return gdbarch->register_reggroup_p (gdbarch, regnum, reggroup);
@@ -5799,16 +5415,14 @@ int
gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->fetch_pointer_argument != 0;
+ return gdbarch->fetch_pointer_argument != NULL;
}
CORE_ADDR
gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type)
{
gdb_assert (gdbarch != NULL);
- if (gdbarch->fetch_pointer_argument == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_fetch_pointer_argument invalid");
+ gdb_assert (gdbarch->fetch_pointer_argument != NULL);
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_fetch_pointer_argument called\n");
return gdbarch->fetch_pointer_argument (frame, argi, type);
@@ -5830,7 +5444,6 @@ struct gdbarch_data
unsigned index;
int init_p;
gdbarch_data_init_ftype *init;
- gdbarch_data_free_ftype *free;
};
struct gdbarch_data_registration
@@ -5851,8 +5464,7 @@ struct gdbarch_data_registry gdbarch_data_registry =
};
struct gdbarch_data *
-register_gdbarch_data (gdbarch_data_init_ftype *init,
- gdbarch_data_free_ftype *free)
+register_gdbarch_data (gdbarch_data_init_ftype *init)
{
struct gdbarch_data_registration **curr;
/* Append the new registraration. */
@@ -5865,7 +5477,6 @@ register_gdbarch_data (gdbarch_data_init_ftype *init,
(*curr)->data->index = gdbarch_data_registry.nr++;
(*curr)->data->init = init;
(*curr)->data->init_p = 1;
- (*curr)->data->free = free;
return (*curr)->data;
}
@@ -5877,31 +5488,9 @@ alloc_gdbarch_data (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch->data == NULL);
gdbarch->nr_data = gdbarch_data_registry.nr;
- gdbarch->data = xcalloc (gdbarch->nr_data, sizeof (void*));
-}
-
-static void
-free_gdbarch_data (struct gdbarch *gdbarch)
-{
- struct gdbarch_data_registration *rego;
- gdb_assert (gdbarch->data != NULL);
- for (rego = gdbarch_data_registry.registrations;
- rego != NULL;
- rego = rego->next)
- {
- struct gdbarch_data *data = rego->data;
- gdb_assert (data->index < gdbarch->nr_data);
- if (data->free != NULL && gdbarch->data[data->index] != NULL)
- {
- data->free (gdbarch, gdbarch->data[data->index]);
- gdbarch->data[data->index] = NULL;
- }
- }
- xfree (gdbarch->data);
- gdbarch->data = NULL;
+ gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
}
-
/* Initialize the current value of the specified per-architecture
data-pointer. */
@@ -5911,11 +5500,7 @@ set_gdbarch_data (struct gdbarch *gdbarch,
void *pointer)
{
gdb_assert (data->index < gdbarch->nr_data);
- if (gdbarch->data[data->index] != NULL)
- {
- gdb_assert (data->free != NULL);
- data->free (gdbarch, gdbarch->data[data->index]);
- }
+ gdb_assert (gdbarch->data[data->index] == NULL);
gdbarch->data[data->index] = pointer;
}
@@ -6012,9 +5597,9 @@ init_gdbarch_swap (struct gdbarch *gdbarch)
{
if (rego->data != NULL)
{
- (*curr) = XMALLOC (struct gdbarch_swap);
+ (*curr) = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct gdbarch_swap);
(*curr)->source = rego;
- (*curr)->swap = xmalloc (rego->sizeof_data);
+ (*curr)->swap = gdbarch_obstack_zalloc (gdbarch, rego->sizeof_data);
(*curr)->next = NULL;
curr = &(*curr)->next;
}
@@ -6068,37 +5653,30 @@ append_name (const char ***buf, int *nr, const char *name)
const char **
gdbarch_printable_names (void)
{
- if (GDB_MULTI_ARCH)
+ /* Accumulate a list of names based on the registed list of
+ architectures. */
+ enum bfd_architecture a;
+ int nr_arches = 0;
+ const char **arches = NULL;
+ struct gdbarch_registration *rego;
+ for (rego = gdbarch_registry;
+ rego != NULL;
+ rego = rego->next)
{
- /* Accumulate a list of names based on the registed list of
- architectures. */
- enum bfd_architecture a;
- int nr_arches = 0;
- const char **arches = NULL;
- struct gdbarch_registration *rego;
- for (rego = gdbarch_registry;
- rego != NULL;
- rego = rego->next)
- {
- const struct bfd_arch_info *ap;
- ap = bfd_lookup_arch (rego->bfd_architecture, 0);
- if (ap == NULL)
- internal_error (__FILE__, __LINE__,
- "gdbarch_architecture_names: multi-arch unknown");
- do
- {
- append_name (&arches, &nr_arches, ap->printable_name);
- ap = ap->next;
- }
- while (ap != NULL);
- }
- append_name (&arches, &nr_arches, NULL);
- return arches;
+ const struct bfd_arch_info *ap;
+ ap = bfd_lookup_arch (rego->bfd_architecture, 0);
+ if (ap == NULL)
+ internal_error (__FILE__, __LINE__,
+ "gdbarch_architecture_names: multi-arch unknown");
+ do
+ {
+ append_name (&arches, &nr_arches, ap->printable_name);
+ ap = ap->next;
+ }
+ while (ap != NULL);
}
- else
- /* Just return all the architectures that BFD knows. Assume that
- the legacy architecture framework supports them. */
- return bfd_arch_list ();
+ append_name (&arches, &nr_arches, NULL);
+ return arches;
}
@@ -6139,12 +5717,6 @@ gdbarch_register (enum bfd_architecture bfd_architecture,
(*curr)->dump_tdep = dump_tdep;
(*curr)->arches = NULL;
(*curr)->next = NULL;
- /* When non- multi-arch, install whatever target dump routine we've
- been provided - hopefully that routine has been written correctly
- and works regardless of multi-arch. */
- if (!GDB_MULTI_ARCH && dump_tdep != NULL
- && startup_gdbarch.dump_tdep == NULL)
- startup_gdbarch.dump_tdep = dump_tdep;
}
void
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 12934ea..7c26628 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -36,11 +36,6 @@
#define GDBARCH_H
#include "dis-asm.h" /* Get defs for disassemble_info, which unfortunately is a typedef. */
-#if !GDB_MULTI_ARCH
-/* Pull in function declarations refered to, indirectly, via macros. */
-#include "inferior.h" /* For unsigned_address_to_pointer(). */
-#include "symfile.h" /* For entry_point_address(). */
-#endif
struct floatformat;
struct ui_file;
@@ -100,11 +95,6 @@ extern enum gdb_osabi gdbarch_osabi (struct gdbarch *gdbarch);
Number of bits in a short or unsigned short for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_SHORT_BIT)
-#define TARGET_SHORT_BIT (2*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_short_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_short_bit (struct gdbarch *gdbarch, int short_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_SHORT_BIT)
@@ -116,11 +106,6 @@ extern void set_gdbarch_short_bit (struct gdbarch *gdbarch, int short_bit);
/* Number of bits in an int or unsigned int for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_INT_BIT)
-#define TARGET_INT_BIT (4*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_int_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_int_bit (struct gdbarch *gdbarch, int int_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_INT_BIT)
@@ -132,11 +117,6 @@ extern void set_gdbarch_int_bit (struct gdbarch *gdbarch, int int_bit);
/* Number of bits in a long or unsigned long for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_LONG_BIT)
-#define TARGET_LONG_BIT (4*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_long_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_long_bit (struct gdbarch *gdbarch, int long_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_LONG_BIT)
@@ -149,11 +129,6 @@ extern void set_gdbarch_long_bit (struct gdbarch *gdbarch, int long_bit);
/* Number of bits in a long long or unsigned long long for the target
machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_LONG_LONG_BIT)
-#define TARGET_LONG_LONG_BIT (2*TARGET_LONG_BIT)
-#endif
-
extern int gdbarch_long_long_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_long_long_bit (struct gdbarch *gdbarch, int long_long_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_LONG_LONG_BIT)
@@ -165,11 +140,6 @@ extern void set_gdbarch_long_long_bit (struct gdbarch *gdbarch, int long_long_bi
/* Number of bits in a float for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_FLOAT_BIT)
-#define TARGET_FLOAT_BIT (4*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_float_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_float_bit (struct gdbarch *gdbarch, int float_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_FLOAT_BIT)
@@ -181,11 +151,6 @@ extern void set_gdbarch_float_bit (struct gdbarch *gdbarch, int float_bit);
/* Number of bits in a double for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_DOUBLE_BIT)
-#define TARGET_DOUBLE_BIT (8*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_double_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_double_bit (struct gdbarch *gdbarch, int double_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_DOUBLE_BIT)
@@ -197,11 +162,6 @@ extern void set_gdbarch_double_bit (struct gdbarch *gdbarch, int double_bit);
/* Number of bits in a long double for the target machine. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_LONG_DOUBLE_BIT)
-#define TARGET_LONG_DOUBLE_BIT (8*TARGET_CHAR_BIT)
-#endif
-
extern int gdbarch_long_double_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_long_double_bit (struct gdbarch *gdbarch, int long_double_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_LONG_DOUBLE_BIT)
@@ -221,11 +181,6 @@ extern void set_gdbarch_long_double_bit (struct gdbarch *gdbarch, int long_doubl
ptr_bit is the size of a pointer on the target */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_PTR_BIT)
-#define TARGET_PTR_BIT (TARGET_INT_BIT)
-#endif
-
extern int gdbarch_ptr_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_ptr_bit (struct gdbarch *gdbarch, int ptr_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_PTR_BIT)
@@ -237,11 +192,6 @@ extern void set_gdbarch_ptr_bit (struct gdbarch *gdbarch, int ptr_bit);
/* addr_bit is the size of a target address as represented in gdb */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_ADDR_BIT)
-#define TARGET_ADDR_BIT (TARGET_PTR_BIT)
-#endif
-
extern int gdbarch_addr_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_addr_bit (struct gdbarch *gdbarch, int addr_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_ADDR_BIT)
@@ -253,11 +203,6 @@ extern void set_gdbarch_addr_bit (struct gdbarch *gdbarch, int addr_bit);
/* Number of bits in a BFD_VMA for the target object file format. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_BFD_VMA_BIT)
-#define TARGET_BFD_VMA_BIT (TARGET_ARCHITECTURE->bits_per_address)
-#endif
-
extern int gdbarch_bfd_vma_bit (struct gdbarch *gdbarch);
extern void set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch, int bfd_vma_bit);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_BFD_VMA_BIT)
@@ -269,11 +214,6 @@ extern void set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch, int bfd_vma_bit);
/* One if `char' acts like `signed char', zero if `unsigned char'. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_CHAR_SIGNED)
-#define TARGET_CHAR_SIGNED (1)
-#endif
-
extern int gdbarch_char_signed (struct gdbarch *gdbarch);
extern void set_gdbarch_char_signed (struct gdbarch *gdbarch, int char_signed);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_CHAR_SIGNED)
@@ -290,11 +230,6 @@ extern void set_gdbarch_char_signed (struct gdbarch *gdbarch, int char_signed);
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_READ_PC_P)
-#define TARGET_READ_PC_P() (0)
-#endif
-
extern int gdbarch_read_pc_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_READ_PC_P)
#error "Non multi-arch definition of TARGET_READ_PC"
@@ -303,11 +238,6 @@ extern int gdbarch_read_pc_p (struct gdbarch *gdbarch);
#define TARGET_READ_PC_P() (gdbarch_read_pc_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_READ_PC)
-#define TARGET_READ_PC(ptid) (internal_error (__FILE__, __LINE__, "TARGET_READ_PC"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_read_pc_ftype) (ptid_t ptid);
extern CORE_ADDR gdbarch_read_pc (struct gdbarch *gdbarch, ptid_t ptid);
extern void set_gdbarch_read_pc (struct gdbarch *gdbarch, gdbarch_read_pc_ftype *read_pc);
@@ -318,11 +248,6 @@ extern void set_gdbarch_read_pc (struct gdbarch *gdbarch, gdbarch_read_pc_ftype
#define TARGET_READ_PC(ptid) (gdbarch_read_pc (current_gdbarch, ptid))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_WRITE_PC)
-#define TARGET_WRITE_PC(val, ptid) (generic_target_write_pc (val, ptid))
-#endif
-
typedef void (gdbarch_write_pc_ftype) (CORE_ADDR val, ptid_t ptid);
extern void gdbarch_write_pc (struct gdbarch *gdbarch, CORE_ADDR val, ptid_t ptid);
extern void set_gdbarch_write_pc (struct gdbarch *gdbarch, gdbarch_write_pc_ftype *write_pc);
@@ -342,11 +267,6 @@ extern void set_gdbarch_write_pc (struct gdbarch *gdbarch, gdbarch_write_pc_ftyp
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_READ_SP_P)
-#define TARGET_READ_SP_P() (0)
-#endif
-
extern int gdbarch_read_sp_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_READ_SP_P)
#error "Non multi-arch definition of TARGET_READ_SP"
@@ -355,11 +275,6 @@ extern int gdbarch_read_sp_p (struct gdbarch *gdbarch);
#define TARGET_READ_SP_P() (gdbarch_read_sp_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_READ_SP)
-#define TARGET_READ_SP() (internal_error (__FILE__, __LINE__, "TARGET_READ_SP"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_read_sp_ftype) (void);
extern CORE_ADDR gdbarch_read_sp (struct gdbarch *gdbarch);
extern void set_gdbarch_read_sp (struct gdbarch *gdbarch, gdbarch_read_sp_ftype *read_sp);
@@ -374,11 +289,6 @@ extern void set_gdbarch_read_sp (struct gdbarch *gdbarch, gdbarch_read_sp_ftype
whole scheme for dealing with "frames" and "frame pointers" needs a
serious shakedown. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_VIRTUAL_FRAME_POINTER)
-#define TARGET_VIRTUAL_FRAME_POINTER(pc, frame_regnum, frame_offset) (legacy_virtual_frame_pointer (pc, frame_regnum, frame_offset))
-#endif
-
typedef void (gdbarch_virtual_frame_pointer_ftype) (CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset);
extern void gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset);
extern void set_gdbarch_virtual_frame_pointer (struct gdbarch *gdbarch, gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer);
@@ -415,11 +325,6 @@ extern void set_gdbarch_num_regs (struct gdbarch *gdbarch, int num_regs);
These pseudo-registers may be aliases for other registers,
combinations of other registers, or they may be computed by GDB. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (NUM_PSEUDO_REGS)
-#define NUM_PSEUDO_REGS (0)
-#endif
-
extern int gdbarch_num_pseudo_regs (struct gdbarch *gdbarch);
extern void set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch, int num_pseudo_regs);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (NUM_PSEUDO_REGS)
@@ -434,11 +339,6 @@ extern void set_gdbarch_num_pseudo_regs (struct gdbarch *gdbarch, int num_pseudo
all (-1).
SP_REGNUM will hopefully be replaced by UNWIND_SP. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SP_REGNUM)
-#define SP_REGNUM (-1)
-#endif
-
extern int gdbarch_sp_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_sp_regnum (struct gdbarch *gdbarch, int sp_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SP_REGNUM)
@@ -448,11 +348,6 @@ extern void set_gdbarch_sp_regnum (struct gdbarch *gdbarch, int sp_regnum);
#define SP_REGNUM (gdbarch_sp_regnum (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (PC_REGNUM)
-#define PC_REGNUM (-1)
-#endif
-
extern int gdbarch_pc_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_pc_regnum (struct gdbarch *gdbarch, int pc_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PC_REGNUM)
@@ -462,11 +357,6 @@ extern void set_gdbarch_pc_regnum (struct gdbarch *gdbarch, int pc_regnum);
#define PC_REGNUM (gdbarch_pc_regnum (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (PS_REGNUM)
-#define PS_REGNUM (-1)
-#endif
-
extern int gdbarch_ps_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_ps_regnum (struct gdbarch *gdbarch, int ps_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PS_REGNUM)
@@ -476,11 +366,6 @@ extern void set_gdbarch_ps_regnum (struct gdbarch *gdbarch, int ps_regnum);
#define PS_REGNUM (gdbarch_ps_regnum (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FP0_REGNUM)
-#define FP0_REGNUM (-1)
-#endif
-
extern int gdbarch_fp0_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_fp0_regnum (struct gdbarch *gdbarch, int fp0_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FP0_REGNUM)
@@ -490,11 +375,6 @@ extern void set_gdbarch_fp0_regnum (struct gdbarch *gdbarch, int fp0_regnum);
#define FP0_REGNUM (gdbarch_fp0_regnum (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (NPC_REGNUM)
-#define NPC_REGNUM (-1)
-#endif
-
extern int gdbarch_npc_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_npc_regnum (struct gdbarch *gdbarch, int npc_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (NPC_REGNUM)
@@ -506,11 +386,6 @@ extern void set_gdbarch_npc_regnum (struct gdbarch *gdbarch, int npc_regnum);
/* Convert stab register number (from `r' declaration) to a gdb REGNUM. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (STAB_REG_TO_REGNUM)
-#define STAB_REG_TO_REGNUM(stab_regnr) (no_op_reg_to_regnum (stab_regnr))
-#endif
-
typedef int (gdbarch_stab_reg_to_regnum_ftype) (int stab_regnr);
extern int gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, int stab_regnr);
extern void set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_stab_reg_to_regnum_ftype *stab_reg_to_regnum);
@@ -523,11 +398,6 @@ extern void set_gdbarch_stab_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_sta
/* Provide a default mapping from a ecoff register number to a gdb REGNUM. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (ECOFF_REG_TO_REGNUM)
-#define ECOFF_REG_TO_REGNUM(ecoff_regnr) (no_op_reg_to_regnum (ecoff_regnr))
-#endif
-
typedef int (gdbarch_ecoff_reg_to_regnum_ftype) (int ecoff_regnr);
extern int gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int ecoff_regnr);
extern void set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_ecoff_reg_to_regnum_ftype *ecoff_reg_to_regnum);
@@ -540,11 +410,6 @@ extern void set_gdbarch_ecoff_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_ec
/* Provide a default mapping from a DWARF register number to a gdb REGNUM. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DWARF_REG_TO_REGNUM)
-#define DWARF_REG_TO_REGNUM(dwarf_regnr) (no_op_reg_to_regnum (dwarf_regnr))
-#endif
-
typedef int (gdbarch_dwarf_reg_to_regnum_ftype) (int dwarf_regnr);
extern int gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int dwarf_regnr);
extern void set_gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_dwarf_reg_to_regnum_ftype *dwarf_reg_to_regnum);
@@ -559,11 +424,6 @@ extern void set_gdbarch_dwarf_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_dw
This should be defined in tm.h, if REGISTER_NAMES is not set up
to map one to one onto the sdb register numbers. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SDB_REG_TO_REGNUM)
-#define SDB_REG_TO_REGNUM(sdb_regnr) (no_op_reg_to_regnum (sdb_regnr))
-#endif
-
typedef int (gdbarch_sdb_reg_to_regnum_ftype) (int sdb_regnr);
extern int gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, int sdb_regnr);
extern void set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_sdb_reg_to_regnum_ftype *sdb_reg_to_regnum);
@@ -574,11 +434,6 @@ extern void set_gdbarch_sdb_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_sdb_
#define SDB_REG_TO_REGNUM(sdb_regnr) (gdbarch_sdb_reg_to_regnum (current_gdbarch, sdb_regnr))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DWARF2_REG_TO_REGNUM)
-#define DWARF2_REG_TO_REGNUM(dwarf2_regnr) (no_op_reg_to_regnum (dwarf2_regnr))
-#endif
-
typedef int (gdbarch_dwarf2_reg_to_regnum_ftype) (int dwarf2_regnr);
extern int gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr);
extern void set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum);
@@ -589,11 +444,6 @@ extern void set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_d
#define DWARF2_REG_TO_REGNUM(dwarf2_regnr) (gdbarch_dwarf2_reg_to_regnum (current_gdbarch, dwarf2_regnr))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_NAME)
-#define REGISTER_NAME(regnr) (legacy_register_name (regnr))
-#endif
-
typedef const char * (gdbarch_register_name_ftype) (int regnr);
extern const char * gdbarch_register_name (struct gdbarch *gdbarch, int regnr);
extern void set_gdbarch_register_name (struct gdbarch *gdbarch, gdbarch_register_name_ftype *register_name);
@@ -621,11 +471,6 @@ extern void set_gdbarch_register_type (struct gdbarch *gdbarch, gdbarch_register
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_VIRTUAL_TYPE_P)
-#define REGISTER_VIRTUAL_TYPE_P() (0)
-#endif
-
extern int gdbarch_deprecated_register_virtual_type_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REGISTER_VIRTUAL_TYPE_P)
#error "Non multi-arch definition of REGISTER_VIRTUAL_TYPE"
@@ -634,11 +479,6 @@ extern int gdbarch_deprecated_register_virtual_type_p (struct gdbarch *gdbarch);
#define REGISTER_VIRTUAL_TYPE_P() (gdbarch_deprecated_register_virtual_type_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_VIRTUAL_TYPE)
-#define REGISTER_VIRTUAL_TYPE(reg_nr) (internal_error (__FILE__, __LINE__, "REGISTER_VIRTUAL_TYPE"), 0)
-#endif
-
typedef struct type * (gdbarch_deprecated_register_virtual_type_ftype) (int reg_nr);
extern struct type * gdbarch_deprecated_register_virtual_type (struct gdbarch *gdbarch, int reg_nr);
extern void set_gdbarch_deprecated_register_virtual_type (struct gdbarch *gdbarch, gdbarch_deprecated_register_virtual_type_ftype *deprecated_register_virtual_type);
@@ -676,11 +516,6 @@ extern void set_gdbarch_deprecated_register_bytes (struct gdbarch *gdbarch, int
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_BYTE_P)
-#define REGISTER_BYTE_P() (0)
-#endif
-
extern int gdbarch_deprecated_register_byte_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REGISTER_BYTE_P)
#error "Non multi-arch definition of REGISTER_BYTE"
@@ -689,11 +524,6 @@ extern int gdbarch_deprecated_register_byte_p (struct gdbarch *gdbarch);
#define REGISTER_BYTE_P() (gdbarch_deprecated_register_byte_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_BYTE)
-#define REGISTER_BYTE(reg_nr) (generic_register_byte (reg_nr))
-#endif
-
typedef int (gdbarch_deprecated_register_byte_ftype) (int reg_nr);
extern int gdbarch_deprecated_register_byte (struct gdbarch *gdbarch, int reg_nr);
extern void set_gdbarch_deprecated_register_byte (struct gdbarch *gdbarch, gdbarch_deprecated_register_byte_ftype *deprecated_register_byte);
@@ -716,11 +546,6 @@ extern void set_gdbarch_deprecated_register_byte (struct gdbarch *gdbarch, gdbar
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_RAW_SIZE_P)
-#define REGISTER_RAW_SIZE_P() (0)
-#endif
-
extern int gdbarch_deprecated_register_raw_size_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REGISTER_RAW_SIZE_P)
#error "Non multi-arch definition of REGISTER_RAW_SIZE"
@@ -729,11 +554,6 @@ extern int gdbarch_deprecated_register_raw_size_p (struct gdbarch *gdbarch);
#define REGISTER_RAW_SIZE_P() (gdbarch_deprecated_register_raw_size_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_RAW_SIZE)
-#define REGISTER_RAW_SIZE(reg_nr) (generic_register_size (reg_nr))
-#endif
-
typedef int (gdbarch_deprecated_register_raw_size_ftype) (int reg_nr);
extern int gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch, int reg_nr);
extern void set_gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch, gdbarch_deprecated_register_raw_size_ftype *deprecated_register_raw_size);
@@ -756,11 +576,6 @@ extern void set_gdbarch_deprecated_register_raw_size (struct gdbarch *gdbarch, g
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_VIRTUAL_SIZE_P)
-#define REGISTER_VIRTUAL_SIZE_P() (0)
-#endif
-
extern int gdbarch_deprecated_register_virtual_size_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REGISTER_VIRTUAL_SIZE_P)
#error "Non multi-arch definition of REGISTER_VIRTUAL_SIZE"
@@ -769,11 +584,6 @@ extern int gdbarch_deprecated_register_virtual_size_p (struct gdbarch *gdbarch);
#define REGISTER_VIRTUAL_SIZE_P() (gdbarch_deprecated_register_virtual_size_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_VIRTUAL_SIZE)
-#define REGISTER_VIRTUAL_SIZE(reg_nr) (generic_register_size (reg_nr))
-#endif
-
typedef int (gdbarch_deprecated_register_virtual_size_ftype) (int reg_nr);
extern int gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarch, int reg_nr);
extern void set_gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarch, gdbarch_deprecated_register_virtual_size_ftype *deprecated_register_virtual_size);
@@ -794,11 +604,6 @@ extern void set_gdbarch_deprecated_register_virtual_size (struct gdbarch *gdbarc
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_MAX_REGISTER_RAW_SIZE_P)
-#define DEPRECATED_MAX_REGISTER_RAW_SIZE_P() (0)
-#endif
-
extern int gdbarch_deprecated_max_register_raw_size_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_MAX_REGISTER_RAW_SIZE_P)
#error "Non multi-arch definition of DEPRECATED_MAX_REGISTER_RAW_SIZE"
@@ -807,11 +612,6 @@ extern int gdbarch_deprecated_max_register_raw_size_p (struct gdbarch *gdbarch);
#define DEPRECATED_MAX_REGISTER_RAW_SIZE_P() (gdbarch_deprecated_max_register_raw_size_p (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_MAX_REGISTER_RAW_SIZE)
-#define DEPRECATED_MAX_REGISTER_RAW_SIZE (0)
-#endif
-
extern int gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarch, int deprecated_max_register_raw_size);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_MAX_REGISTER_RAW_SIZE)
@@ -831,11 +631,6 @@ extern void set_gdbarch_deprecated_max_register_raw_size (struct gdbarch *gdbarc
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P)
-#define DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P() (0)
-#endif
-
extern int gdbarch_deprecated_max_register_virtual_size_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P)
#error "Non multi-arch definition of DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE"
@@ -844,11 +639,6 @@ extern int gdbarch_deprecated_max_register_virtual_size_p (struct gdbarch *gdbar
#define DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE_P() (gdbarch_deprecated_max_register_virtual_size_p (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE)
-#define DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE (0)
-#endif
-
extern int gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_max_register_virtual_size (struct gdbarch *gdbarch, int deprecated_max_register_virtual_size);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE)
@@ -876,11 +666,6 @@ extern void set_gdbarch_unwind_dummy_id (struct gdbarch *gdbarch, gdbarch_unwind
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SAVE_DUMMY_FRAME_TOS_P)
-#define DEPRECATED_SAVE_DUMMY_FRAME_TOS_P() (0)
-#endif
-
extern int gdbarch_deprecated_save_dummy_frame_tos_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_SAVE_DUMMY_FRAME_TOS_P)
#error "Non multi-arch definition of DEPRECATED_SAVE_DUMMY_FRAME_TOS"
@@ -889,11 +674,6 @@ extern int gdbarch_deprecated_save_dummy_frame_tos_p (struct gdbarch *gdbarch);
#define DEPRECATED_SAVE_DUMMY_FRAME_TOS_P() (gdbarch_deprecated_save_dummy_frame_tos_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SAVE_DUMMY_FRAME_TOS)
-#define DEPRECATED_SAVE_DUMMY_FRAME_TOS(sp) (internal_error (__FILE__, __LINE__, "DEPRECATED_SAVE_DUMMY_FRAME_TOS"), 0)
-#endif
-
typedef void (gdbarch_deprecated_save_dummy_frame_tos_ftype) (CORE_ADDR sp);
extern void gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch, CORE_ADDR sp);
extern void set_gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch, gdbarch_deprecated_save_dummy_frame_tos_ftype *deprecated_save_dummy_frame_tos);
@@ -907,11 +687,6 @@ extern void set_gdbarch_deprecated_save_dummy_frame_tos (struct gdbarch *gdbarch
/* Implement UNWIND_DUMMY_ID and PUSH_DUMMY_CALL, then delete
DEPRECATED_FP_REGNUM. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FP_REGNUM)
-#define DEPRECATED_FP_REGNUM (-1)
-#endif
-
extern int gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch, int deprecated_fp_regnum);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FP_REGNUM)
@@ -931,11 +706,6 @@ extern void set_gdbarch_deprecated_fp_regnum (struct gdbarch *gdbarch, int depre
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_TARGET_READ_FP_P)
-#define DEPRECATED_TARGET_READ_FP_P() (0)
-#endif
-
extern int gdbarch_deprecated_target_read_fp_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_TARGET_READ_FP_P)
#error "Non multi-arch definition of DEPRECATED_TARGET_READ_FP"
@@ -944,11 +714,6 @@ extern int gdbarch_deprecated_target_read_fp_p (struct gdbarch *gdbarch);
#define DEPRECATED_TARGET_READ_FP_P() (gdbarch_deprecated_target_read_fp_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_TARGET_READ_FP)
-#define DEPRECATED_TARGET_READ_FP() (internal_error (__FILE__, __LINE__, "DEPRECATED_TARGET_READ_FP"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_target_read_fp_ftype) (void);
extern CORE_ADDR gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_target_read_fp (struct gdbarch *gdbarch, gdbarch_deprecated_target_read_fp_ftype *deprecated_target_read_fp);
@@ -977,11 +742,6 @@ extern void set_gdbarch_push_dummy_call (struct gdbarch *gdbarch, gdbarch_push_d
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS_P)
-#define DEPRECATED_PUSH_ARGUMENTS_P() (0)
-#endif
-
extern int gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_ARGUMENTS_P)
#error "Non multi-arch definition of DEPRECATED_PUSH_ARGUMENTS"
@@ -990,11 +750,6 @@ extern int gdbarch_deprecated_push_arguments_p (struct gdbarch *gdbarch);
#define DEPRECATED_PUSH_ARGUMENTS_P() (gdbarch_deprecated_push_arguments_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_ARGUMENTS)
-#define DEPRECATED_PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_ARGUMENTS"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_push_arguments_ftype) (int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
extern CORE_ADDR gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr);
extern void set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, gdbarch_deprecated_push_arguments_ftype *deprecated_push_arguments);
@@ -1007,11 +762,6 @@ extern void set_gdbarch_deprecated_push_arguments (struct gdbarch *gdbarch, gdba
/* DEPRECATED_USE_GENERIC_DUMMY_FRAMES can be deleted. Always true. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
-#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES (1)
-#endif
-
extern int gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdbarch, int deprecated_use_generic_dummy_frames);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_USE_GENERIC_DUMMY_FRAMES)
@@ -1031,11 +781,6 @@ extern void set_gdbarch_deprecated_use_generic_dummy_frames (struct gdbarch *gdb
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS_P)
-#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (0)
-#endif
-
extern int gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_RETURN_ADDRESS_P)
#error "Non multi-arch definition of DEPRECATED_PUSH_RETURN_ADDRESS"
@@ -1044,11 +789,6 @@ extern int gdbarch_deprecated_push_return_address_p (struct gdbarch *gdbarch);
#define DEPRECATED_PUSH_RETURN_ADDRESS_P() (gdbarch_deprecated_push_return_address_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_RETURN_ADDRESS)
-#define DEPRECATED_PUSH_RETURN_ADDRESS(pc, sp) (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_RETURN_ADDRESS"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_push_return_address_ftype) (CORE_ADDR pc, CORE_ADDR sp);
extern CORE_ADDR gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp);
extern void set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch, gdbarch_deprecated_push_return_address_ftype *deprecated_push_return_address);
@@ -1068,11 +808,6 @@ extern void set_gdbarch_deprecated_push_return_address (struct gdbarch *gdbarch,
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP_P)
-#define DEPRECATED_DUMMY_WRITE_SP_P() (0)
-#endif
-
extern int gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DUMMY_WRITE_SP_P)
#error "Non multi-arch definition of DEPRECATED_DUMMY_WRITE_SP"
@@ -1081,11 +816,6 @@ extern int gdbarch_deprecated_dummy_write_sp_p (struct gdbarch *gdbarch);
#define DEPRECATED_DUMMY_WRITE_SP_P() (gdbarch_deprecated_dummy_write_sp_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DUMMY_WRITE_SP)
-#define DEPRECATED_DUMMY_WRITE_SP(val) (internal_error (__FILE__, __LINE__, "DEPRECATED_DUMMY_WRITE_SP"), 0)
-#endif
-
typedef void (gdbarch_deprecated_dummy_write_sp_ftype) (CORE_ADDR val);
extern void gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, CORE_ADDR val);
extern void set_gdbarch_deprecated_dummy_write_sp (struct gdbarch *gdbarch, gdbarch_deprecated_dummy_write_sp_ftype *deprecated_dummy_write_sp);
@@ -1107,11 +837,6 @@ extern void set_gdbarch_deprecated_register_size (struct gdbarch *gdbarch, int d
#define DEPRECATED_REGISTER_SIZE (gdbarch_deprecated_register_size (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_LOCATION)
-#define CALL_DUMMY_LOCATION (AT_ENTRY_POINT)
-#endif
-
extern int gdbarch_call_dummy_location (struct gdbarch *gdbarch);
extern void set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, int call_dummy_location);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CALL_DUMMY_LOCATION)
@@ -1121,11 +846,6 @@ extern void set_gdbarch_call_dummy_location (struct gdbarch *gdbarch, int call_d
#define CALL_DUMMY_LOCATION (gdbarch_call_dummy_location (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CALL_DUMMY_ADDRESS)
-#define CALL_DUMMY_ADDRESS() (entry_point_address ())
-#endif
-
typedef CORE_ADDR (gdbarch_call_dummy_address_ftype) (void);
extern CORE_ADDR gdbarch_call_dummy_address (struct gdbarch *gdbarch);
extern void set_gdbarch_call_dummy_address (struct gdbarch *gdbarch, gdbarch_call_dummy_address_ftype *call_dummy_address);
@@ -1171,11 +891,6 @@ extern void set_gdbarch_deprecated_call_dummy_length (struct gdbarch *gdbarch, i
/* DEPRECATED_CALL_DUMMY_WORDS can be deleted. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_WORDS)
-#define DEPRECATED_CALL_DUMMY_WORDS (legacy_call_dummy_words)
-#endif
-
extern LONGEST * gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, LONGEST * deprecated_call_dummy_words);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_WORDS)
@@ -1187,11 +902,6 @@ extern void set_gdbarch_deprecated_call_dummy_words (struct gdbarch *gdbarch, LO
/* Implement PUSH_DUMMY_CALL, then delete DEPRECATED_SIZEOF_CALL_DUMMY_WORDS. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS)
-#define DEPRECATED_SIZEOF_CALL_DUMMY_WORDS (legacy_sizeof_call_dummy_words)
-#endif
-
extern int gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdbarch, int deprecated_sizeof_call_dummy_words);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_SIZEOF_CALL_DUMMY_WORDS)
@@ -1210,11 +920,6 @@ extern void set_gdbarch_deprecated_sizeof_call_dummy_words (struct gdbarch *gdba
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P)
-#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (0)
-#endif
-
extern int gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST_P)
#error "Non multi-arch definition of DEPRECATED_CALL_DUMMY_STACK_ADJUST"
@@ -1223,11 +928,6 @@ extern int gdbarch_deprecated_call_dummy_stack_adjust_p (struct gdbarch *gdbarch
#define DEPRECATED_CALL_DUMMY_STACK_ADJUST_P() (gdbarch_deprecated_call_dummy_stack_adjust_p (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST)
-#define DEPRECATED_CALL_DUMMY_STACK_ADJUST (0)
-#endif
-
extern int gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdbarch, int deprecated_call_dummy_stack_adjust);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_CALL_DUMMY_STACK_ADJUST)
@@ -1247,11 +947,6 @@ extern void set_gdbarch_deprecated_call_dummy_stack_adjust (struct gdbarch *gdba
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY_P)
-#define DEPRECATED_FIX_CALL_DUMMY_P() (0)
-#endif
-
extern int gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FIX_CALL_DUMMY_P)
#error "Non multi-arch definition of DEPRECATED_FIX_CALL_DUMMY"
@@ -1260,11 +955,6 @@ extern int gdbarch_deprecated_fix_call_dummy_p (struct gdbarch *gdbarch);
#define DEPRECATED_FIX_CALL_DUMMY_P() (gdbarch_deprecated_fix_call_dummy_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FIX_CALL_DUMMY)
-#define DEPRECATED_FIX_CALL_DUMMY(dummy, pc, fun, nargs, args, type, gcc_p) (internal_error (__FILE__, __LINE__, "DEPRECATED_FIX_CALL_DUMMY"), 0)
-#endif
-
typedef void (gdbarch_deprecated_fix_call_dummy_ftype) (char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p);
extern void gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p);
extern void set_gdbarch_deprecated_fix_call_dummy (struct gdbarch *gdbarch, gdbarch_deprecated_fix_call_dummy_ftype *deprecated_fix_call_dummy);
@@ -1292,11 +982,6 @@ extern void set_gdbarch_push_dummy_code (struct gdbarch *gdbarch, gdbarch_push_d
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME_P)
-#define DEPRECATED_PUSH_DUMMY_FRAME_P() (0)
-#endif
-
extern int gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PUSH_DUMMY_FRAME_P)
#error "Non multi-arch definition of DEPRECATED_PUSH_DUMMY_FRAME"
@@ -1305,11 +990,6 @@ extern int gdbarch_deprecated_push_dummy_frame_p (struct gdbarch *gdbarch);
#define DEPRECATED_PUSH_DUMMY_FRAME_P() (gdbarch_deprecated_push_dummy_frame_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PUSH_DUMMY_FRAME)
-#define DEPRECATED_PUSH_DUMMY_FRAME (internal_error (__FILE__, __LINE__, "DEPRECATED_PUSH_DUMMY_FRAME"), 0)
-#endif
-
typedef void (gdbarch_deprecated_push_dummy_frame_ftype) (void);
extern void gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, gdbarch_deprecated_push_dummy_frame_ftype *deprecated_push_dummy_frame);
@@ -1323,11 +1003,6 @@ extern void set_gdbarch_deprecated_push_dummy_frame (struct gdbarch *gdbarch, gd
/* Implement PUSH_DUMMY_CALL, then delete
DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED. */
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED)
-#define DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED (0)
-#endif
-
extern int gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch *gdbarch, int deprecated_extra_stack_alignment_needed);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED)
@@ -1344,11 +1019,6 @@ extern void set_gdbarch_deprecated_extra_stack_alignment_needed (struct gdbarch
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DO_REGISTERS_INFO_P)
-#define DEPRECATED_DO_REGISTERS_INFO_P() (0)
-#endif
-
extern int gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_DO_REGISTERS_INFO_P)
#error "Non multi-arch definition of DEPRECATED_DO_REGISTERS_INFO"
@@ -1357,11 +1027,6 @@ extern int gdbarch_deprecated_do_registers_info_p (struct gdbarch *gdbarch);
#define DEPRECATED_DO_REGISTERS_INFO_P() (gdbarch_deprecated_do_registers_info_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_DO_REGISTERS_INFO)
-#define DEPRECATED_DO_REGISTERS_INFO(reg_nr, fpregs) (internal_error (__FILE__, __LINE__, "DEPRECATED_DO_REGISTERS_INFO"), 0)
-#endif
-
typedef void (gdbarch_deprecated_do_registers_info_ftype) (int reg_nr, int fpregs);
extern void gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs);
extern void set_gdbarch_deprecated_do_registers_info (struct gdbarch *gdbarch, gdbarch_deprecated_do_registers_info_ftype *deprecated_do_registers_info);
@@ -1391,11 +1056,6 @@ extern void set_gdbarch_print_vector_info (struct gdbarch *gdbarch, gdbarch_prin
/* MAP a GDB RAW register number onto a simulator register number. See
also include/...-sim.h. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_SIM_REGNO)
-#define REGISTER_SIM_REGNO(reg_nr) (legacy_register_sim_regno (reg_nr))
-#endif
-
typedef int (gdbarch_register_sim_regno_ftype) (int reg_nr);
extern int gdbarch_register_sim_regno (struct gdbarch *gdbarch, int reg_nr);
extern void set_gdbarch_register_sim_regno (struct gdbarch *gdbarch, gdbarch_register_sim_regno_ftype *register_sim_regno);
@@ -1413,11 +1073,6 @@ extern void set_gdbarch_register_sim_regno (struct gdbarch *gdbarch, gdbarch_reg
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_BYTES_OK_P)
-#define REGISTER_BYTES_OK_P() (0)
-#endif
-
extern int gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REGISTER_BYTES_OK_P)
#error "Non multi-arch definition of REGISTER_BYTES_OK"
@@ -1426,11 +1081,6 @@ extern int gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch);
#define REGISTER_BYTES_OK_P() (gdbarch_register_bytes_ok_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_BYTES_OK)
-#define REGISTER_BYTES_OK(nr_bytes) (internal_error (__FILE__, __LINE__, "REGISTER_BYTES_OK"), 0)
-#endif
-
typedef int (gdbarch_register_bytes_ok_ftype) (long nr_bytes);
extern int gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes);
extern void set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch, gdbarch_register_bytes_ok_ftype *register_bytes_ok);
@@ -1441,11 +1091,6 @@ extern void set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch, gdbarch_regi
#define REGISTER_BYTES_OK(nr_bytes) (gdbarch_register_bytes_ok (current_gdbarch, nr_bytes))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CANNOT_FETCH_REGISTER)
-#define CANNOT_FETCH_REGISTER(regnum) (cannot_register_not (regnum))
-#endif
-
typedef int (gdbarch_cannot_fetch_register_ftype) (int regnum);
extern int gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum);
extern void set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, gdbarch_cannot_fetch_register_ftype *cannot_fetch_register);
@@ -1456,11 +1101,6 @@ extern void set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, gdbarch_
#define CANNOT_FETCH_REGISTER(regnum) (gdbarch_cannot_fetch_register (current_gdbarch, regnum))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CANNOT_STORE_REGISTER)
-#define CANNOT_STORE_REGISTER(regnum) (cannot_register_not (regnum))
-#endif
-
typedef int (gdbarch_cannot_store_register_ftype) (int regnum);
extern int gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum);
extern void set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, gdbarch_cannot_store_register_ftype *cannot_store_register);
@@ -1480,11 +1120,6 @@ extern void set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, gdbarch_
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (GET_LONGJMP_TARGET_P)
-#define GET_LONGJMP_TARGET_P() (0)
-#endif
-
extern int gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (GET_LONGJMP_TARGET_P)
#error "Non multi-arch definition of GET_LONGJMP_TARGET"
@@ -1493,11 +1128,6 @@ extern int gdbarch_get_longjmp_target_p (struct gdbarch *gdbarch);
#define GET_LONGJMP_TARGET_P() (gdbarch_get_longjmp_target_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (GET_LONGJMP_TARGET)
-#define GET_LONGJMP_TARGET(pc) (internal_error (__FILE__, __LINE__, "GET_LONGJMP_TARGET"), 0)
-#endif
-
typedef int (gdbarch_get_longjmp_target_ftype) (CORE_ADDR *pc);
extern int gdbarch_get_longjmp_target (struct gdbarch *gdbarch, CORE_ADDR *pc);
extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get_longjmp_target_ftype *get_longjmp_target);
@@ -1521,11 +1151,6 @@ extern void set_gdbarch_get_longjmp_target (struct gdbarch *gdbarch, gdbarch_get
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
-#define DEPRECATED_PC_IN_CALL_DUMMY_P() (0)
-#endif
-
extern int gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PC_IN_CALL_DUMMY_P)
#error "Non multi-arch definition of DEPRECATED_PC_IN_CALL_DUMMY"
@@ -1534,11 +1159,6 @@ extern int gdbarch_deprecated_pc_in_call_dummy_p (struct gdbarch *gdbarch);
#define DEPRECATED_PC_IN_CALL_DUMMY_P() (gdbarch_deprecated_pc_in_call_dummy_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_PC_IN_CALL_DUMMY)
-#define DEPRECATED_PC_IN_CALL_DUMMY(pc, sp, frame_address) (generic_pc_in_call_dummy (pc, sp, frame_address))
-#endif
-
typedef int (gdbarch_deprecated_pc_in_call_dummy_ftype) (CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
extern int gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address);
extern void set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, gdbarch_deprecated_pc_in_call_dummy_ftype *deprecated_pc_in_call_dummy);
@@ -1556,11 +1176,6 @@ extern void set_gdbarch_deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, gd
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
-#define DEPRECATED_INIT_FRAME_PC_FIRST_P() (0)
-#endif
-
extern int gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_FIRST_P)
#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC_FIRST"
@@ -1569,11 +1184,6 @@ extern int gdbarch_deprecated_init_frame_pc_first_p (struct gdbarch *gdbarch);
#define DEPRECATED_INIT_FRAME_PC_FIRST_P() (gdbarch_deprecated_init_frame_pc_first_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_FIRST)
-#define DEPRECATED_INIT_FRAME_PC_FIRST(fromleaf, prev) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_FRAME_PC_FIRST"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_init_frame_pc_first_ftype) (int fromleaf, struct frame_info *prev);
extern CORE_ADDR gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
extern void set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch, gdbarch_deprecated_init_frame_pc_first_ftype *deprecated_init_frame_pc_first);
@@ -1591,11 +1201,6 @@ extern void set_gdbarch_deprecated_init_frame_pc_first (struct gdbarch *gdbarch,
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC_P)
-#define DEPRECATED_INIT_FRAME_PC_P() (0)
-#endif
-
extern int gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_FRAME_PC_P)
#error "Non multi-arch definition of DEPRECATED_INIT_FRAME_PC"
@@ -1604,11 +1209,6 @@ extern int gdbarch_deprecated_init_frame_pc_p (struct gdbarch *gdbarch);
#define DEPRECATED_INIT_FRAME_PC_P() (gdbarch_deprecated_init_frame_pc_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_FRAME_PC)
-#define DEPRECATED_INIT_FRAME_PC(fromleaf, prev) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_FRAME_PC"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_init_frame_pc_ftype) (int fromleaf, struct frame_info *prev);
extern CORE_ADDR gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, int fromleaf, struct frame_info *prev);
extern void set_gdbarch_deprecated_init_frame_pc (struct gdbarch *gdbarch, gdbarch_deprecated_init_frame_pc_ftype *deprecated_init_frame_pc);
@@ -1644,11 +1244,6 @@ extern void set_gdbarch_believe_pcc_promotion_type (struct gdbarch *gdbarch, int
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_GET_SAVED_REGISTER_P)
-#define DEPRECATED_GET_SAVED_REGISTER_P() (0)
-#endif
-
extern int gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_GET_SAVED_REGISTER_P)
#error "Non multi-arch definition of DEPRECATED_GET_SAVED_REGISTER"
@@ -1657,11 +1252,6 @@ extern int gdbarch_deprecated_get_saved_register_p (struct gdbarch *gdbarch);
#define DEPRECATED_GET_SAVED_REGISTER_P() (gdbarch_deprecated_get_saved_register_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_GET_SAVED_REGISTER)
-#define DEPRECATED_GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) (internal_error (__FILE__, __LINE__, "DEPRECATED_GET_SAVED_REGISTER"), 0)
-#endif
-
typedef void (gdbarch_deprecated_get_saved_register_ftype) (char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval);
extern void gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch, char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval);
extern void set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch, gdbarch_deprecated_get_saved_register_ftype *deprecated_get_saved_register);
@@ -1675,11 +1265,6 @@ extern void set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch,
/* For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
For raw <-> cooked register conversions, replaced by pseudo registers. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_REGISTER_CONVERTIBLE)
-#define DEPRECATED_REGISTER_CONVERTIBLE(nr) (deprecated_register_convertible_not (nr))
-#endif
-
typedef int (gdbarch_deprecated_register_convertible_ftype) (int nr);
extern int gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, int nr);
extern void set_gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, gdbarch_deprecated_register_convertible_ftype *deprecated_register_convertible);
@@ -1693,11 +1278,6 @@ extern void set_gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch
/* For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
For raw <-> cooked register conversions, replaced by pseudo registers. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL)
-#define DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL(regnum, type, from, to) (internal_error (__FILE__, __LINE__, "DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL"), 0)
-#endif
-
typedef void (gdbarch_deprecated_register_convert_to_virtual_ftype) (int regnum, struct type *type, char *from, char *to);
extern void gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum, struct type *type, char *from, char *to);
extern void set_gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *gdbarch, gdbarch_deprecated_register_convert_to_virtual_ftype *deprecated_register_convert_to_virtual);
@@ -1711,11 +1291,6 @@ extern void set_gdbarch_deprecated_register_convert_to_virtual (struct gdbarch *
/* For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
For raw <-> cooked register conversions, replaced by pseudo registers. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_REGISTER_CONVERT_TO_RAW)
-#define DEPRECATED_REGISTER_CONVERT_TO_RAW(type, regnum, from, to) (internal_error (__FILE__, __LINE__, "DEPRECATED_REGISTER_CONVERT_TO_RAW"), 0)
-#endif
-
typedef void (gdbarch_deprecated_register_convert_to_raw_ftype) (struct type *type, int regnum, const char *from, char *to);
extern void gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type, int regnum, const char *from, char *to);
extern void set_gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdbarch, gdbarch_deprecated_register_convert_to_raw_ftype *deprecated_register_convert_to_raw);
@@ -1726,11 +1301,6 @@ extern void set_gdbarch_deprecated_register_convert_to_raw (struct gdbarch *gdba
#define DEPRECATED_REGISTER_CONVERT_TO_RAW(type, regnum, from, to) (gdbarch_deprecated_register_convert_to_raw (current_gdbarch, type, regnum, from, to))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CONVERT_REGISTER_P)
-#define CONVERT_REGISTER_P(regnum, type) (legacy_convert_register_p (regnum, type))
-#endif
-
typedef int (gdbarch_convert_register_p_ftype) (int regnum, struct type *type);
extern int gdbarch_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type);
extern void set_gdbarch_convert_register_p (struct gdbarch *gdbarch, gdbarch_convert_register_p_ftype *convert_register_p);
@@ -1741,11 +1311,6 @@ extern void set_gdbarch_convert_register_p (struct gdbarch *gdbarch, gdbarch_con
#define CONVERT_REGISTER_P(regnum, type) (gdbarch_convert_register_p (current_gdbarch, regnum, type))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REGISTER_TO_VALUE)
-#define REGISTER_TO_VALUE(frame, regnum, type, buf) (legacy_register_to_value (frame, regnum, type, buf))
-#endif
-
typedef void (gdbarch_register_to_value_ftype) (struct frame_info *frame, int regnum, struct type *type, void *buf);
extern void gdbarch_register_to_value (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, void *buf);
extern void set_gdbarch_register_to_value (struct gdbarch *gdbarch, gdbarch_register_to_value_ftype *register_to_value);
@@ -1756,11 +1321,6 @@ extern void set_gdbarch_register_to_value (struct gdbarch *gdbarch, gdbarch_regi
#define REGISTER_TO_VALUE(frame, regnum, type, buf) (gdbarch_register_to_value (current_gdbarch, frame, regnum, type, buf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (VALUE_TO_REGISTER)
-#define VALUE_TO_REGISTER(frame, regnum, type, buf) (legacy_value_to_register (frame, regnum, type, buf))
-#endif
-
typedef void (gdbarch_value_to_register_ftype) (struct frame_info *frame, int regnum, struct type *type, const void *buf);
extern void gdbarch_value_to_register (struct gdbarch *gdbarch, struct frame_info *frame, int regnum, struct type *type, const void *buf);
extern void set_gdbarch_value_to_register (struct gdbarch *gdbarch, gdbarch_value_to_register_ftype *value_to_register);
@@ -1771,11 +1331,6 @@ extern void set_gdbarch_value_to_register (struct gdbarch *gdbarch, gdbarch_valu
#define VALUE_TO_REGISTER(frame, regnum, type, buf) (gdbarch_value_to_register (current_gdbarch, frame, regnum, type, buf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (POINTER_TO_ADDRESS)
-#define POINTER_TO_ADDRESS(type, buf) (unsigned_pointer_to_address (type, buf))
-#endif
-
typedef CORE_ADDR (gdbarch_pointer_to_address_ftype) (struct type *type, const void *buf);
extern CORE_ADDR gdbarch_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const void *buf);
extern void set_gdbarch_pointer_to_address (struct gdbarch *gdbarch, gdbarch_pointer_to_address_ftype *pointer_to_address);
@@ -1786,11 +1341,6 @@ extern void set_gdbarch_pointer_to_address (struct gdbarch *gdbarch, gdbarch_poi
#define POINTER_TO_ADDRESS(type, buf) (gdbarch_pointer_to_address (current_gdbarch, type, buf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (ADDRESS_TO_POINTER)
-#define ADDRESS_TO_POINTER(type, buf, addr) (unsigned_address_to_pointer (type, buf, addr))
-#endif
-
typedef void (gdbarch_address_to_pointer_ftype) (struct type *type, void *buf, CORE_ADDR addr);
extern void gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *type, void *buf, CORE_ADDR addr);
extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_address_to_pointer_ftype *address_to_pointer);
@@ -1808,11 +1358,6 @@ extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (INTEGER_TO_ADDRESS_P)
-#define INTEGER_TO_ADDRESS_P() (0)
-#endif
-
extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (INTEGER_TO_ADDRESS_P)
#error "Non multi-arch definition of INTEGER_TO_ADDRESS"
@@ -1821,11 +1366,6 @@ extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch);
#define INTEGER_TO_ADDRESS_P() (gdbarch_integer_to_address_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (INTEGER_TO_ADDRESS)
-#define INTEGER_TO_ADDRESS(type, buf) (internal_error (__FILE__, __LINE__, "INTEGER_TO_ADDRESS"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct type *type, void *buf);
extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct type *type, void *buf);
extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_integer_to_address_ftype *integer_to_address);
@@ -1836,11 +1376,6 @@ extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_int
#define INTEGER_TO_ADDRESS(type, buf) (gdbarch_integer_to_address (current_gdbarch, type, buf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (RETURN_VALUE_ON_STACK)
-#define RETURN_VALUE_ON_STACK(type) (generic_return_value_on_stack_not (type))
-#endif
-
typedef int (gdbarch_return_value_on_stack_ftype) (struct type *type);
extern int gdbarch_return_value_on_stack (struct gdbarch *gdbarch, struct type *type);
extern void set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch_return_value_on_stack_ftype *return_value_on_stack);
@@ -1858,11 +1393,6 @@ extern void set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch_
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_POP_FRAME_P)
-#define DEPRECATED_POP_FRAME_P() (0)
-#endif
-
extern int gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_POP_FRAME_P)
#error "Non multi-arch definition of DEPRECATED_POP_FRAME"
@@ -1871,11 +1401,6 @@ extern int gdbarch_deprecated_pop_frame_p (struct gdbarch *gdbarch);
#define DEPRECATED_POP_FRAME_P() (gdbarch_deprecated_pop_frame_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_POP_FRAME)
-#define DEPRECATED_POP_FRAME (internal_error (__FILE__, __LINE__, "DEPRECATED_POP_FRAME"), 0)
-#endif
-
typedef void (gdbarch_deprecated_pop_frame_ftype) (void);
extern void gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch);
extern void set_gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch, gdbarch_deprecated_pop_frame_ftype *deprecated_pop_frame);
@@ -1895,11 +1420,6 @@ extern void set_gdbarch_deprecated_pop_frame (struct gdbarch *gdbarch, gdbarch_d
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_STORE_STRUCT_RETURN_P)
-#define DEPRECATED_STORE_STRUCT_RETURN_P() (0)
-#endif
-
extern int gdbarch_deprecated_store_struct_return_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_STORE_STRUCT_RETURN_P)
#error "Non multi-arch definition of DEPRECATED_STORE_STRUCT_RETURN"
@@ -1908,11 +1428,6 @@ extern int gdbarch_deprecated_store_struct_return_p (struct gdbarch *gdbarch);
#define DEPRECATED_STORE_STRUCT_RETURN_P() (gdbarch_deprecated_store_struct_return_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_STORE_STRUCT_RETURN)
-#define DEPRECATED_STORE_STRUCT_RETURN(addr, sp) (internal_error (__FILE__, __LINE__, "DEPRECATED_STORE_STRUCT_RETURN"), 0)
-#endif
-
typedef void (gdbarch_deprecated_store_struct_return_ftype) (CORE_ADDR addr, CORE_ADDR sp);
extern void gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR sp);
extern void set_gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch, gdbarch_deprecated_store_struct_return_ftype *deprecated_store_struct_return);
@@ -1923,11 +1438,6 @@ extern void set_gdbarch_deprecated_store_struct_return (struct gdbarch *gdbarch,
#define DEPRECATED_STORE_STRUCT_RETURN(addr, sp) (gdbarch_deprecated_store_struct_return (current_gdbarch, addr, sp))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (EXTRACT_RETURN_VALUE)
-#define EXTRACT_RETURN_VALUE(type, regcache, valbuf) (legacy_extract_return_value (type, regcache, valbuf))
-#endif
-
typedef void (gdbarch_extract_return_value_ftype) (struct type *type, struct regcache *regcache, void *valbuf);
extern void gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf);
extern void set_gdbarch_extract_return_value (struct gdbarch *gdbarch, gdbarch_extract_return_value_ftype *extract_return_value);
@@ -1938,11 +1448,6 @@ extern void set_gdbarch_extract_return_value (struct gdbarch *gdbarch, gdbarch_e
#define EXTRACT_RETURN_VALUE(type, regcache, valbuf) (gdbarch_extract_return_value (current_gdbarch, type, regcache, valbuf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (STORE_RETURN_VALUE)
-#define STORE_RETURN_VALUE(type, regcache, valbuf) (legacy_store_return_value (type, regcache, valbuf))
-#endif
-
typedef void (gdbarch_store_return_value_ftype) (struct type *type, struct regcache *regcache, const void *valbuf);
extern void gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const void *valbuf);
extern void set_gdbarch_store_return_value (struct gdbarch *gdbarch, gdbarch_store_return_value_ftype *store_return_value);
@@ -1980,11 +1485,6 @@ extern void set_gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch,
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (EXTRACT_STRUCT_VALUE_ADDRESS_P)
-#define EXTRACT_STRUCT_VALUE_ADDRESS_P() (0)
-#endif
-
extern int gdbarch_extract_struct_value_address_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (EXTRACT_STRUCT_VALUE_ADDRESS_P)
#error "Non multi-arch definition of EXTRACT_STRUCT_VALUE_ADDRESS"
@@ -1993,11 +1493,6 @@ extern int gdbarch_extract_struct_value_address_p (struct gdbarch *gdbarch);
#define EXTRACT_STRUCT_VALUE_ADDRESS_P() (gdbarch_extract_struct_value_address_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (EXTRACT_STRUCT_VALUE_ADDRESS)
-#define EXTRACT_STRUCT_VALUE_ADDRESS(regcache) (internal_error (__FILE__, __LINE__, "EXTRACT_STRUCT_VALUE_ADDRESS"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_extract_struct_value_address_ftype) (struct regcache *regcache);
extern CORE_ADDR gdbarch_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache);
extern void set_gdbarch_extract_struct_value_address (struct gdbarch *gdbarch, gdbarch_extract_struct_value_address_ftype *extract_struct_value_address);
@@ -2015,11 +1510,6 @@ extern void set_gdbarch_extract_struct_value_address (struct gdbarch *gdbarch, g
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P)
-#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() (0)
-#endif
-
extern int gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P)
#error "Non multi-arch definition of DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS"
@@ -2028,11 +1518,6 @@ extern int gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gd
#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() (gdbarch_deprecated_extract_struct_value_address_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS)
-#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regbuf) (internal_error (__FILE__, __LINE__, "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_extract_struct_value_address_ftype) (char *regbuf);
extern CORE_ADDR gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, char *regbuf);
extern void set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address);
@@ -2043,11 +1528,6 @@ extern void set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch
#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regbuf) (gdbarch_deprecated_extract_struct_value_address (current_gdbarch, regbuf))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (USE_STRUCT_CONVENTION)
-#define USE_STRUCT_CONVENTION(gcc_p, value_type) (generic_use_struct_convention (gcc_p, value_type))
-#endif
-
typedef int (gdbarch_use_struct_convention_ftype) (int gcc_p, struct type *value_type);
extern int gdbarch_use_struct_convention (struct gdbarch *gdbarch, int gcc_p, struct type *value_type);
extern void set_gdbarch_use_struct_convention (struct gdbarch *gdbarch, gdbarch_use_struct_convention_ftype *use_struct_convention);
@@ -2065,11 +1545,6 @@ extern void set_gdbarch_use_struct_convention (struct gdbarch *gdbarch, gdbarch_
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_INIT_SAVED_REGS_P)
-#define DEPRECATED_FRAME_INIT_SAVED_REGS_P() (0)
-#endif
-
extern int gdbarch_deprecated_frame_init_saved_regs_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_INIT_SAVED_REGS_P)
#error "Non multi-arch definition of DEPRECATED_FRAME_INIT_SAVED_REGS"
@@ -2078,11 +1553,6 @@ extern int gdbarch_deprecated_frame_init_saved_regs_p (struct gdbarch *gdbarch);
#define DEPRECATED_FRAME_INIT_SAVED_REGS_P() (gdbarch_deprecated_frame_init_saved_regs_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_INIT_SAVED_REGS)
-#define DEPRECATED_FRAME_INIT_SAVED_REGS(frame) (internal_error (__FILE__, __LINE__, "DEPRECATED_FRAME_INIT_SAVED_REGS"), 0)
-#endif
-
typedef void (gdbarch_deprecated_frame_init_saved_regs_ftype) (struct frame_info *frame);
extern void gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch, struct frame_info *frame);
extern void set_gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarch, gdbarch_deprecated_frame_init_saved_regs_ftype *deprecated_frame_init_saved_regs);
@@ -2100,11 +1570,6 @@ extern void set_gdbarch_deprecated_frame_init_saved_regs (struct gdbarch *gdbarc
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_EXTRA_FRAME_INFO_P)
-#define DEPRECATED_INIT_EXTRA_FRAME_INFO_P() (0)
-#endif
-
extern int gdbarch_deprecated_init_extra_frame_info_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_INIT_EXTRA_FRAME_INFO_P)
#error "Non multi-arch definition of DEPRECATED_INIT_EXTRA_FRAME_INFO"
@@ -2113,11 +1578,6 @@ extern int gdbarch_deprecated_init_extra_frame_info_p (struct gdbarch *gdbarch);
#define DEPRECATED_INIT_EXTRA_FRAME_INFO_P() (gdbarch_deprecated_init_extra_frame_info_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_INIT_EXTRA_FRAME_INFO)
-#define DEPRECATED_INIT_EXTRA_FRAME_INFO(fromleaf, frame) (internal_error (__FILE__, __LINE__, "DEPRECATED_INIT_EXTRA_FRAME_INFO"), 0)
-#endif
-
typedef void (gdbarch_deprecated_init_extra_frame_info_ftype) (int fromleaf, struct frame_info *frame);
extern void gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch, int fromleaf, struct frame_info *frame);
extern void set_gdbarch_deprecated_init_extra_frame_info (struct gdbarch *gdbarch, gdbarch_deprecated_init_extra_frame_info_ftype *deprecated_init_extra_frame_info);
@@ -2138,11 +1598,6 @@ extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro
#define SKIP_PROLOGUE(ip) (gdbarch_skip_prologue (current_gdbarch, ip))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (PROLOGUE_FRAMELESS_P)
-#define PROLOGUE_FRAMELESS_P(ip) (generic_prologue_frameless_p (ip))
-#endif
-
typedef int (gdbarch_prologue_frameless_p_ftype) (CORE_ADDR ip);
extern int gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, CORE_ADDR ip);
extern void set_gdbarch_prologue_frameless_p (struct gdbarch *gdbarch, gdbarch_prologue_frameless_p_ftype *prologue_frameless_p);
@@ -2173,11 +1628,6 @@ extern void set_gdbarch_breakpoint_from_pc (struct gdbarch *gdbarch, gdbarch_bre
#define BREAKPOINT_FROM_PC(pcptr, lenptr) (gdbarch_breakpoint_from_pc (current_gdbarch, pcptr, lenptr))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (MEMORY_INSERT_BREAKPOINT)
-#define MEMORY_INSERT_BREAKPOINT(addr, contents_cache) (default_memory_insert_breakpoint (addr, contents_cache))
-#endif
-
typedef int (gdbarch_memory_insert_breakpoint_ftype) (CORE_ADDR addr, char *contents_cache);
extern int gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache);
extern void set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, gdbarch_memory_insert_breakpoint_ftype *memory_insert_breakpoint);
@@ -2188,11 +1638,6 @@ extern void set_gdbarch_memory_insert_breakpoint (struct gdbarch *gdbarch, gdbar
#define MEMORY_INSERT_BREAKPOINT(addr, contents_cache) (gdbarch_memory_insert_breakpoint (current_gdbarch, addr, contents_cache))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (MEMORY_REMOVE_BREAKPOINT)
-#define MEMORY_REMOVE_BREAKPOINT(addr, contents_cache) (default_memory_remove_breakpoint (addr, contents_cache))
-#endif
-
typedef int (gdbarch_memory_remove_breakpoint_ftype) (CORE_ADDR addr, char *contents_cache);
extern int gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, CORE_ADDR addr, char *contents_cache);
extern void set_gdbarch_memory_remove_breakpoint (struct gdbarch *gdbarch, gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint);
@@ -2234,11 +1679,6 @@ extern void set_gdbarch_frame_args_skip (struct gdbarch *gdbarch, CORE_ADDR fram
#define FRAME_ARGS_SKIP (gdbarch_frame_args_skip (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAMELESS_FUNCTION_INVOCATION)
-#define FRAMELESS_FUNCTION_INVOCATION(fi) (generic_frameless_function_invocation_not (fi))
-#endif
-
typedef int (gdbarch_frameless_function_invocation_ftype) (struct frame_info *fi);
extern int gdbarch_frameless_function_invocation (struct gdbarch *gdbarch, struct frame_info *fi);
extern void set_gdbarch_frameless_function_invocation (struct gdbarch *gdbarch, gdbarch_frameless_function_invocation_ftype *frameless_function_invocation);
@@ -2256,11 +1696,6 @@ extern void set_gdbarch_frameless_function_invocation (struct gdbarch *gdbarch,
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_CHAIN_P)
-#define DEPRECATED_FRAME_CHAIN_P() (0)
-#endif
-
extern int gdbarch_deprecated_frame_chain_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_CHAIN_P)
#error "Non multi-arch definition of DEPRECATED_FRAME_CHAIN"
@@ -2269,11 +1704,6 @@ extern int gdbarch_deprecated_frame_chain_p (struct gdbarch *gdbarch);
#define DEPRECATED_FRAME_CHAIN_P() (gdbarch_deprecated_frame_chain_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_CHAIN)
-#define DEPRECATED_FRAME_CHAIN(frame) (internal_error (__FILE__, __LINE__, "DEPRECATED_FRAME_CHAIN"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_frame_chain_ftype) (struct frame_info *frame);
extern CORE_ADDR gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, struct frame_info *frame);
extern void set_gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, gdbarch_deprecated_frame_chain_ftype *deprecated_frame_chain);
@@ -2291,11 +1721,6 @@ extern void set_gdbarch_deprecated_frame_chain (struct gdbarch *gdbarch, gdbarch
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_CHAIN_VALID_P)
-#define DEPRECATED_FRAME_CHAIN_VALID_P() (0)
-#endif
-
extern int gdbarch_deprecated_frame_chain_valid_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_CHAIN_VALID_P)
#error "Non multi-arch definition of DEPRECATED_FRAME_CHAIN_VALID"
@@ -2304,11 +1729,6 @@ extern int gdbarch_deprecated_frame_chain_valid_p (struct gdbarch *gdbarch);
#define DEPRECATED_FRAME_CHAIN_VALID_P() (gdbarch_deprecated_frame_chain_valid_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_CHAIN_VALID)
-#define DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe) (internal_error (__FILE__, __LINE__, "DEPRECATED_FRAME_CHAIN_VALID"), 0)
-#endif
-
typedef int (gdbarch_deprecated_frame_chain_valid_ftype) (CORE_ADDR chain, struct frame_info *thisframe);
extern int gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, CORE_ADDR chain, struct frame_info *thisframe);
extern void set_gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, gdbarch_deprecated_frame_chain_valid_ftype *deprecated_frame_chain_valid);
@@ -2330,11 +1750,6 @@ extern void set_gdbarch_deprecated_frame_chain_valid (struct gdbarch *gdbarch, g
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_SAVED_PC_P)
-#define DEPRECATED_FRAME_SAVED_PC_P() (0)
-#endif
-
extern int gdbarch_deprecated_frame_saved_pc_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_SAVED_PC_P)
#error "Non multi-arch definition of DEPRECATED_FRAME_SAVED_PC"
@@ -2343,11 +1758,6 @@ extern int gdbarch_deprecated_frame_saved_pc_p (struct gdbarch *gdbarch);
#define DEPRECATED_FRAME_SAVED_PC_P() (gdbarch_deprecated_frame_saved_pc_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_FRAME_SAVED_PC)
-#define DEPRECATED_FRAME_SAVED_PC(fi) (internal_error (__FILE__, __LINE__, "DEPRECATED_FRAME_SAVED_PC"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_frame_saved_pc_ftype) (struct frame_info *fi);
extern CORE_ADDR gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch, struct frame_info *fi);
extern void set_gdbarch_deprecated_frame_saved_pc (struct gdbarch *gdbarch, gdbarch_deprecated_frame_saved_pc_ftype *deprecated_frame_saved_pc);
@@ -2370,34 +1780,60 @@ typedef CORE_ADDR (gdbarch_unwind_sp_ftype) (struct gdbarch *gdbarch, struct fra
extern CORE_ADDR gdbarch_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame);
extern void set_gdbarch_unwind_sp (struct gdbarch *gdbarch, gdbarch_unwind_sp_ftype *unwind_sp);
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_ARGS_ADDRESS)
-#define FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
+/* DEPRECATED_FRAME_ARGS_ADDRESS as been replaced by the per-frame
+ frame-base. Enable frame-base before frame-unwind. */
+
+#if defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+/* Legacy for systems yet to multi-arch DEPRECATED_FRAME_ARGS_ADDRESS */
+#if !defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#define DEPRECATED_FRAME_ARGS_ADDRESS_P() (1)
+#endif
+#endif
+
+extern int gdbarch_deprecated_frame_args_address_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#error "Non multi-arch definition of DEPRECATED_FRAME_ARGS_ADDRESS"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FRAME_ARGS_ADDRESS_P)
+#define DEPRECATED_FRAME_ARGS_ADDRESS_P() (gdbarch_deprecated_frame_args_address_p (current_gdbarch))
+#endif
+
+typedef CORE_ADDR (gdbarch_deprecated_frame_args_address_ftype) (struct frame_info *fi);
+extern CORE_ADDR gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
+extern void set_gdbarch_deprecated_frame_args_address (struct gdbarch *gdbarch, gdbarch_deprecated_frame_args_address_ftype *deprecated_frame_args_address);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+#error "Non multi-arch definition of DEPRECATED_FRAME_ARGS_ADDRESS"
+#endif
+#if !defined (DEPRECATED_FRAME_ARGS_ADDRESS)
+#define DEPRECATED_FRAME_ARGS_ADDRESS(fi) (gdbarch_deprecated_frame_args_address (current_gdbarch, fi))
#endif
-typedef CORE_ADDR (gdbarch_frame_args_address_ftype) (struct frame_info *fi);
-extern CORE_ADDR gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
-extern void set_gdbarch_frame_args_address (struct gdbarch *gdbarch, gdbarch_frame_args_address_ftype *frame_args_address);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_ARGS_ADDRESS)
-#error "Non multi-arch definition of FRAME_ARGS_ADDRESS"
+/* DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
+ frame-base. Enable frame-base before frame-unwind. */
+
+#if defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+/* Legacy for systems yet to multi-arch DEPRECATED_FRAME_LOCALS_ADDRESS */
+#if !defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS_P() (1)
#endif
-#if !defined (FRAME_ARGS_ADDRESS)
-#define FRAME_ARGS_ADDRESS(fi) (gdbarch_frame_args_address (current_gdbarch, fi))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_LOCALS_ADDRESS)
-#define FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
+extern int gdbarch_deprecated_frame_locals_address_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#error "Non multi-arch definition of DEPRECATED_FRAME_LOCALS_ADDRESS"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_FRAME_LOCALS_ADDRESS_P)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS_P() (gdbarch_deprecated_frame_locals_address_p (current_gdbarch))
#endif
-typedef CORE_ADDR (gdbarch_frame_locals_address_ftype) (struct frame_info *fi);
-extern CORE_ADDR gdbarch_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi);
-extern void set_gdbarch_frame_locals_address (struct gdbarch *gdbarch, gdbarch_frame_locals_address_ftype *frame_locals_address);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_LOCALS_ADDRESS)
-#error "Non multi-arch definition of FRAME_LOCALS_ADDRESS"
+typedef CORE_ADDR (gdbarch_deprecated_frame_locals_address_ftype) (struct frame_info *fi);
+extern CORE_ADDR gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, struct frame_info *fi);
+extern void set_gdbarch_deprecated_frame_locals_address (struct gdbarch *gdbarch, gdbarch_deprecated_frame_locals_address_ftype *deprecated_frame_locals_address);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+#error "Non multi-arch definition of DEPRECATED_FRAME_LOCALS_ADDRESS"
#endif
-#if !defined (FRAME_LOCALS_ADDRESS)
-#define FRAME_LOCALS_ADDRESS(fi) (gdbarch_frame_locals_address (current_gdbarch, fi))
+#if !defined (DEPRECATED_FRAME_LOCALS_ADDRESS)
+#define DEPRECATED_FRAME_LOCALS_ADDRESS(fi) (gdbarch_deprecated_frame_locals_address (current_gdbarch, fi))
#endif
#if defined (DEPRECATED_SAVED_PC_AFTER_CALL)
@@ -2407,11 +1843,6 @@ extern void set_gdbarch_frame_locals_address (struct gdbarch *gdbarch, gdbarch_f
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SAVED_PC_AFTER_CALL_P)
-#define DEPRECATED_SAVED_PC_AFTER_CALL_P() (0)
-#endif
-
extern int gdbarch_deprecated_saved_pc_after_call_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_SAVED_PC_AFTER_CALL_P)
#error "Non multi-arch definition of DEPRECATED_SAVED_PC_AFTER_CALL"
@@ -2420,11 +1851,6 @@ extern int gdbarch_deprecated_saved_pc_after_call_p (struct gdbarch *gdbarch);
#define DEPRECATED_SAVED_PC_AFTER_CALL_P() (gdbarch_deprecated_saved_pc_after_call_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DEPRECATED_SAVED_PC_AFTER_CALL)
-#define DEPRECATED_SAVED_PC_AFTER_CALL(frame) (internal_error (__FILE__, __LINE__, "DEPRECATED_SAVED_PC_AFTER_CALL"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_deprecated_saved_pc_after_call_ftype) (struct frame_info *frame);
extern CORE_ADDR gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch, struct frame_info *frame);
extern void set_gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch, gdbarch_deprecated_saved_pc_after_call_ftype *deprecated_saved_pc_after_call);
@@ -2442,11 +1868,6 @@ extern void set_gdbarch_deprecated_saved_pc_after_call (struct gdbarch *gdbarch,
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_NUM_ARGS_P)
-#define FRAME_NUM_ARGS_P() (0)
-#endif
-
extern int gdbarch_frame_num_args_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_NUM_ARGS_P)
#error "Non multi-arch definition of FRAME_NUM_ARGS"
@@ -2455,11 +1876,6 @@ extern int gdbarch_frame_num_args_p (struct gdbarch *gdbarch);
#define FRAME_NUM_ARGS_P() (gdbarch_frame_num_args_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FRAME_NUM_ARGS)
-#define FRAME_NUM_ARGS(frame) (internal_error (__FILE__, __LINE__, "FRAME_NUM_ARGS"), 0)
-#endif
-
typedef int (gdbarch_frame_num_args_ftype) (struct frame_info *frame);
extern int gdbarch_frame_num_args (struct gdbarch *gdbarch, struct frame_info *frame);
extern void set_gdbarch_frame_num_args (struct gdbarch *gdbarch, gdbarch_frame_num_args_ftype *frame_num_args);
@@ -2477,11 +1893,6 @@ extern void set_gdbarch_frame_num_args (struct gdbarch *gdbarch, gdbarch_frame_n
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (STACK_ALIGN_P)
-#define STACK_ALIGN_P() (0)
-#endif
-
extern int gdbarch_stack_align_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (STACK_ALIGN_P)
#error "Non multi-arch definition of STACK_ALIGN"
@@ -2490,11 +1901,6 @@ extern int gdbarch_stack_align_p (struct gdbarch *gdbarch);
#define STACK_ALIGN_P() (gdbarch_stack_align_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (STACK_ALIGN)
-#define STACK_ALIGN(sp) (internal_error (__FILE__, __LINE__, "STACK_ALIGN"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_stack_align_ftype) (CORE_ADDR sp);
extern CORE_ADDR gdbarch_stack_align (struct gdbarch *gdbarch, CORE_ADDR sp);
extern void set_gdbarch_stack_align (struct gdbarch *gdbarch, gdbarch_stack_align_ftype *stack_align);
@@ -2518,11 +1924,6 @@ extern void set_gdbarch_frame_align (struct gdbarch *gdbarch, gdbarch_frame_alig
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (REG_STRUCT_HAS_ADDR_P)
-#define REG_STRUCT_HAS_ADDR_P() (0)
-#endif
-
extern int gdbarch_reg_struct_has_addr_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (REG_STRUCT_HAS_ADDR_P)
#error "Non multi-arch definition of REG_STRUCT_HAS_ADDR"
@@ -2531,11 +1932,6 @@ extern int gdbarch_reg_struct_has_addr_p (struct gdbarch *gdbarch);
#define REG_STRUCT_HAS_ADDR_P() (gdbarch_reg_struct_has_addr_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (REG_STRUCT_HAS_ADDR)
-#define REG_STRUCT_HAS_ADDR(gcc_p, type) (internal_error (__FILE__, __LINE__, "REG_STRUCT_HAS_ADDR"), 0)
-#endif
-
typedef int (gdbarch_reg_struct_has_addr_ftype) (int gcc_p, struct type *type);
extern int gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch, int gcc_p, struct type *type);
extern void set_gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch, gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr);
@@ -2546,6 +1942,15 @@ extern void set_gdbarch_reg_struct_has_addr (struct gdbarch *gdbarch, gdbarch_re
#define REG_STRUCT_HAS_ADDR(gcc_p, type) (gdbarch_reg_struct_has_addr (current_gdbarch, gcc_p, type))
#endif
+extern int gdbarch_frame_red_zone_size (struct gdbarch *gdbarch);
+extern void set_gdbarch_frame_red_zone_size (struct gdbarch *gdbarch, int frame_red_zone_size);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_RED_ZONE_SIZE)
+#error "Non multi-arch definition of FRAME_RED_ZONE_SIZE"
+#endif
+#if !defined (FRAME_RED_ZONE_SIZE)
+#define FRAME_RED_ZONE_SIZE (gdbarch_frame_red_zone_size (current_gdbarch))
+#endif
+
extern int gdbarch_parm_boundary (struct gdbarch *gdbarch);
extern void set_gdbarch_parm_boundary (struct gdbarch *gdbarch, int parm_boundary);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PARM_BOUNDARY)
@@ -2555,11 +1960,6 @@ extern void set_gdbarch_parm_boundary (struct gdbarch *gdbarch, int parm_boundar
#define PARM_BOUNDARY (gdbarch_parm_boundary (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_FLOAT_FORMAT)
-#define TARGET_FLOAT_FORMAT (default_float_format (current_gdbarch))
-#endif
-
extern const struct floatformat * gdbarch_float_format (struct gdbarch *gdbarch);
extern void set_gdbarch_float_format (struct gdbarch *gdbarch, const struct floatformat * float_format);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_FLOAT_FORMAT)
@@ -2569,11 +1969,6 @@ extern void set_gdbarch_float_format (struct gdbarch *gdbarch, const struct floa
#define TARGET_FLOAT_FORMAT (gdbarch_float_format (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_DOUBLE_FORMAT)
-#define TARGET_DOUBLE_FORMAT (default_double_format (current_gdbarch))
-#endif
-
extern const struct floatformat * gdbarch_double_format (struct gdbarch *gdbarch);
extern void set_gdbarch_double_format (struct gdbarch *gdbarch, const struct floatformat * double_format);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_DOUBLE_FORMAT)
@@ -2583,11 +1978,6 @@ extern void set_gdbarch_double_format (struct gdbarch *gdbarch, const struct flo
#define TARGET_DOUBLE_FORMAT (gdbarch_double_format (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_LONG_DOUBLE_FORMAT)
-#define TARGET_LONG_DOUBLE_FORMAT (default_double_format (current_gdbarch))
-#endif
-
extern const struct floatformat * gdbarch_long_double_format (struct gdbarch *gdbarch);
extern void set_gdbarch_long_double_format (struct gdbarch *gdbarch, const struct floatformat * long_double_format);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_LONG_DOUBLE_FORMAT)
@@ -2597,11 +1987,6 @@ extern void set_gdbarch_long_double_format (struct gdbarch *gdbarch, const struc
#define TARGET_LONG_DOUBLE_FORMAT (gdbarch_long_double_format (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CONVERT_FROM_FUNC_PTR_ADDR)
-#define CONVERT_FROM_FUNC_PTR_ADDR(addr) (core_addr_identity (addr))
-#endif
-
typedef CORE_ADDR (gdbarch_convert_from_func_ptr_addr_ftype) (CORE_ADDR addr);
extern CORE_ADDR gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr);
extern void set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr);
@@ -2622,11 +2007,6 @@ extern void set_gdbarch_convert_from_func_ptr_addr (struct gdbarch *gdbarch, gdb
sort of generic thing to handle alignment or segmentation (it's
possible it should be in TARGET_READ_PC instead). */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (ADDR_BITS_REMOVE)
-#define ADDR_BITS_REMOVE(addr) (core_addr_identity (addr))
-#endif
-
typedef CORE_ADDR (gdbarch_addr_bits_remove_ftype) (CORE_ADDR addr);
extern CORE_ADDR gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr);
extern void set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch, gdbarch_addr_bits_remove_ftype *addr_bits_remove);
@@ -2640,11 +2020,6 @@ extern void set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch, gdbarch_addr_
/* It is not at all clear why SMASH_TEXT_ADDRESS is not folded into
ADDR_BITS_REMOVE. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SMASH_TEXT_ADDRESS)
-#define SMASH_TEXT_ADDRESS(addr) (core_addr_identity (addr))
-#endif
-
typedef CORE_ADDR (gdbarch_smash_text_address_ftype) (CORE_ADDR addr);
extern CORE_ADDR gdbarch_smash_text_address (struct gdbarch *gdbarch, CORE_ADDR addr);
extern void set_gdbarch_smash_text_address (struct gdbarch *gdbarch, gdbarch_smash_text_address_ftype *smash_text_address);
@@ -2671,11 +2046,6 @@ extern void set_gdbarch_smash_text_address (struct gdbarch *gdbarch, gdbarch_sma
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (SOFTWARE_SINGLE_STEP_P)
-#define SOFTWARE_SINGLE_STEP_P() (0)
-#endif
-
extern int gdbarch_software_single_step_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SOFTWARE_SINGLE_STEP_P)
#error "Non multi-arch definition of SOFTWARE_SINGLE_STEP"
@@ -2684,11 +2054,6 @@ extern int gdbarch_software_single_step_p (struct gdbarch *gdbarch);
#define SOFTWARE_SINGLE_STEP_P() (gdbarch_software_single_step_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SOFTWARE_SINGLE_STEP)
-#define SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p) (internal_error (__FILE__, __LINE__, "SOFTWARE_SINGLE_STEP"), 0)
-#endif
-
typedef void (gdbarch_software_single_step_ftype) (enum target_signal sig, int insert_breakpoints_p);
extern void gdbarch_software_single_step (struct gdbarch *gdbarch, enum target_signal sig, int insert_breakpoints_p);
extern void set_gdbarch_software_single_step (struct gdbarch *gdbarch, gdbarch_software_single_step_ftype *software_single_step);
@@ -2699,11 +2064,6 @@ extern void set_gdbarch_software_single_step (struct gdbarch *gdbarch, gdbarch_s
#define SOFTWARE_SINGLE_STEP(sig, insert_breakpoints_p) (gdbarch_software_single_step (current_gdbarch, sig, insert_breakpoints_p))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_PRINT_INSN)
-#define TARGET_PRINT_INSN(vma, info) (legacy_print_insn (vma, info))
-#endif
-
typedef int (gdbarch_print_insn_ftype) (bfd_vma vma, disassemble_info *info);
extern int gdbarch_print_insn (struct gdbarch *gdbarch, bfd_vma vma, disassemble_info *info);
extern void set_gdbarch_print_insn (struct gdbarch *gdbarch, gdbarch_print_insn_ftype *print_insn);
@@ -2714,11 +2074,6 @@ extern void set_gdbarch_print_insn (struct gdbarch *gdbarch, gdbarch_print_insn_
#define TARGET_PRINT_INSN(vma, info) (gdbarch_print_insn (current_gdbarch, vma, info))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SKIP_TRAMPOLINE_CODE)
-#define SKIP_TRAMPOLINE_CODE(pc) (generic_skip_trampoline_code (pc))
-#endif
-
typedef CORE_ADDR (gdbarch_skip_trampoline_code_ftype) (CORE_ADDR pc);
extern CORE_ADDR gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, CORE_ADDR pc);
extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code);
@@ -2733,11 +2088,6 @@ extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_s
trampoline code in the ".plt" section. IN_SOLIB_CALL_TRAMPOLINE evaluates
to nonzero if we are currently stopped in one of these. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (IN_SOLIB_CALL_TRAMPOLINE)
-#define IN_SOLIB_CALL_TRAMPOLINE(pc, name) (generic_in_solib_call_trampoline (pc, name))
-#endif
-
typedef int (gdbarch_in_solib_call_trampoline_ftype) (CORE_ADDR pc, char *name);
extern int gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
extern void set_gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, gdbarch_in_solib_call_trampoline_ftype *in_solib_call_trampoline);
@@ -2750,11 +2100,6 @@ extern void set_gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, gdbar
/* Some systems also have trampoline code for returning from shared libs. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (IN_SOLIB_RETURN_TRAMPOLINE)
-#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) (generic_in_solib_return_trampoline (pc, name))
-#endif
-
typedef int (gdbarch_in_solib_return_trampoline_ftype) (CORE_ADDR pc, char *name);
extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline);
@@ -2786,11 +2131,6 @@ extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb
Some code also depends on SIGTRAMP_START and SIGTRAMP_END but other
does not. */
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (PC_IN_SIGTRAMP)
-#define PC_IN_SIGTRAMP(pc, name) (legacy_pc_in_sigtramp (pc, name))
-#endif
-
typedef int (gdbarch_pc_in_sigtramp_ftype) (CORE_ADDR pc, char *name);
extern int gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
extern void set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp);
@@ -2808,11 +2148,6 @@ extern void set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, gdbarch_pc_in_s
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_START_P)
-#define SIGTRAMP_START_P() (0)
-#endif
-
extern int gdbarch_sigtramp_start_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SIGTRAMP_START_P)
#error "Non multi-arch definition of SIGTRAMP_START"
@@ -2821,11 +2156,6 @@ extern int gdbarch_sigtramp_start_p (struct gdbarch *gdbarch);
#define SIGTRAMP_START_P() (gdbarch_sigtramp_start_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_START)
-#define SIGTRAMP_START(pc) (internal_error (__FILE__, __LINE__, "SIGTRAMP_START"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_sigtramp_start_ftype) (CORE_ADDR pc);
extern CORE_ADDR gdbarch_sigtramp_start (struct gdbarch *gdbarch, CORE_ADDR pc);
extern void set_gdbarch_sigtramp_start (struct gdbarch *gdbarch, gdbarch_sigtramp_start_ftype *sigtramp_start);
@@ -2843,11 +2173,6 @@ extern void set_gdbarch_sigtramp_start (struct gdbarch *gdbarch, gdbarch_sigtram
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_END_P)
-#define SIGTRAMP_END_P() (0)
-#endif
-
extern int gdbarch_sigtramp_end_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SIGTRAMP_END_P)
#error "Non multi-arch definition of SIGTRAMP_END"
@@ -2856,11 +2181,6 @@ extern int gdbarch_sigtramp_end_p (struct gdbarch *gdbarch);
#define SIGTRAMP_END_P() (gdbarch_sigtramp_end_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_END)
-#define SIGTRAMP_END(pc) (internal_error (__FILE__, __LINE__, "SIGTRAMP_END"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_sigtramp_end_ftype) (CORE_ADDR pc);
extern CORE_ADDR gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc);
extern void set_gdbarch_sigtramp_end (struct gdbarch *gdbarch, gdbarch_sigtramp_end_ftype *sigtramp_end);
@@ -2898,46 +2218,6 @@ typedef char * (gdbarch_construct_inferior_arguments_ftype) (struct gdbarch *gdb
extern char * gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch, int argc, char **argv);
extern void set_gdbarch_construct_inferior_arguments (struct gdbarch *gdbarch, gdbarch_construct_inferior_arguments_ftype *construct_inferior_arguments);
-#if defined (DWARF2_BUILD_FRAME_INFO)
-/* Legacy for systems yet to multi-arch DWARF2_BUILD_FRAME_INFO */
-#if !defined (DWARF2_BUILD_FRAME_INFO_P)
-#define DWARF2_BUILD_FRAME_INFO_P() (1)
-#endif
-#endif
-
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (DWARF2_BUILD_FRAME_INFO_P)
-#define DWARF2_BUILD_FRAME_INFO_P() (0)
-#endif
-
-extern int gdbarch_dwarf2_build_frame_info_p (struct gdbarch *gdbarch);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DWARF2_BUILD_FRAME_INFO_P)
-#error "Non multi-arch definition of DWARF2_BUILD_FRAME_INFO"
-#endif
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DWARF2_BUILD_FRAME_INFO_P)
-#define DWARF2_BUILD_FRAME_INFO_P() (gdbarch_dwarf2_build_frame_info_p (current_gdbarch))
-#endif
-
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (DWARF2_BUILD_FRAME_INFO)
-#define DWARF2_BUILD_FRAME_INFO(objfile) (internal_error (__FILE__, __LINE__, "DWARF2_BUILD_FRAME_INFO"), 0)
-#endif
-
-typedef void (gdbarch_dwarf2_build_frame_info_ftype) (struct objfile *objfile);
-extern void gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch, struct objfile *objfile);
-extern void set_gdbarch_dwarf2_build_frame_info (struct gdbarch *gdbarch, gdbarch_dwarf2_build_frame_info_ftype *dwarf2_build_frame_info);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DWARF2_BUILD_FRAME_INFO)
-#error "Non multi-arch definition of DWARF2_BUILD_FRAME_INFO"
-#endif
-#if !defined (DWARF2_BUILD_FRAME_INFO)
-#define DWARF2_BUILD_FRAME_INFO(objfile) (gdbarch_dwarf2_build_frame_info (current_gdbarch, objfile))
-#endif
-
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (ELF_MAKE_MSYMBOL_SPECIAL)
-#define ELF_MAKE_MSYMBOL_SPECIAL(sym, msym) (default_elf_make_msymbol_special (sym, msym))
-#endif
-
typedef void (gdbarch_elf_make_msymbol_special_ftype) (asymbol *sym, struct minimal_symbol *msym);
extern void gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym);
extern void set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special);
@@ -2948,11 +2228,6 @@ extern void set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, gdbar
#define ELF_MAKE_MSYMBOL_SPECIAL(sym, msym) (gdbarch_elf_make_msymbol_special (current_gdbarch, sym, msym))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (COFF_MAKE_MSYMBOL_SPECIAL)
-#define COFF_MAKE_MSYMBOL_SPECIAL(val, msym) (default_coff_make_msymbol_special (val, msym))
-#endif
-
typedef void (gdbarch_coff_make_msymbol_special_ftype) (int val, struct minimal_symbol *msym);
extern void gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym);
extern void set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special);
@@ -2963,11 +2238,6 @@ extern void set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, gdba
#define COFF_MAKE_MSYMBOL_SPECIAL(val, msym) (gdbarch_coff_make_msymbol_special (current_gdbarch, val, msym))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (NAME_OF_MALLOC)
-#define NAME_OF_MALLOC ("malloc")
-#endif
-
extern const char * gdbarch_name_of_malloc (struct gdbarch *gdbarch);
extern void set_gdbarch_name_of_malloc (struct gdbarch *gdbarch, const char * name_of_malloc);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (NAME_OF_MALLOC)
@@ -2977,11 +2247,6 @@ extern void set_gdbarch_name_of_malloc (struct gdbarch *gdbarch, const char * na
#define NAME_OF_MALLOC (gdbarch_name_of_malloc (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (CANNOT_STEP_BREAKPOINT)
-#define CANNOT_STEP_BREAKPOINT (0)
-#endif
-
extern int gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch);
extern void set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch, int cannot_step_breakpoint);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (CANNOT_STEP_BREAKPOINT)
@@ -2991,11 +2256,6 @@ extern void set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch, int can
#define CANNOT_STEP_BREAKPOINT (gdbarch_cannot_step_breakpoint (current_gdbarch))
#endif
-/* Default (value) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (HAVE_NONSTEPPABLE_WATCHPOINT)
-#define HAVE_NONSTEPPABLE_WATCHPOINT (0)
-#endif
-
extern int gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch);
extern void set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch, int have_nonsteppable_watchpoint);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (HAVE_NONSTEPPABLE_WATCHPOINT)
@@ -3012,11 +2272,6 @@ extern void set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch, i
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (ADDRESS_CLASS_TYPE_FLAGS_P)
-#define ADDRESS_CLASS_TYPE_FLAGS_P() (0)
-#endif
-
extern int gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (ADDRESS_CLASS_TYPE_FLAGS_P)
#error "Non multi-arch definition of ADDRESS_CLASS_TYPE_FLAGS"
@@ -3025,11 +2280,6 @@ extern int gdbarch_address_class_type_flags_p (struct gdbarch *gdbarch);
#define ADDRESS_CLASS_TYPE_FLAGS_P() (gdbarch_address_class_type_flags_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (ADDRESS_CLASS_TYPE_FLAGS)
-#define ADDRESS_CLASS_TYPE_FLAGS(byte_size, dwarf2_addr_class) (internal_error (__FILE__, __LINE__, "ADDRESS_CLASS_TYPE_FLAGS"), 0)
-#endif
-
typedef int (gdbarch_address_class_type_flags_ftype) (int byte_size, int dwarf2_addr_class);
extern int gdbarch_address_class_type_flags (struct gdbarch *gdbarch, int byte_size, int dwarf2_addr_class);
extern void set_gdbarch_address_class_type_flags (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_ftype *address_class_type_flags);
@@ -3067,11 +2317,6 @@ extern void set_gdbarch_register_reggroup_p (struct gdbarch *gdbarch, gdbarch_re
#endif
#endif
-/* Default predicate for non- multi-arch targets. */
-#if (!GDB_MULTI_ARCH) && !defined (FETCH_POINTER_ARGUMENT_P)
-#define FETCH_POINTER_ARGUMENT_P() (0)
-#endif
-
extern int gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch);
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FETCH_POINTER_ARGUMENT_P)
#error "Non multi-arch definition of FETCH_POINTER_ARGUMENT"
@@ -3080,11 +2325,6 @@ extern int gdbarch_fetch_pointer_argument_p (struct gdbarch *gdbarch);
#define FETCH_POINTER_ARGUMENT_P() (gdbarch_fetch_pointer_argument_p (current_gdbarch))
#endif
-/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (FETCH_POINTER_ARGUMENT)
-#define FETCH_POINTER_ARGUMENT(frame, argi, type) (internal_error (__FILE__, __LINE__, "FETCH_POINTER_ARGUMENT"), 0)
-#endif
-
typedef CORE_ADDR (gdbarch_fetch_pointer_argument_ftype) (struct frame_info *frame, int argi, struct type *type);
extern CORE_ADDR gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, struct frame_info *frame, int argi, struct type *type);
extern void set_gdbarch_fetch_pointer_argument (struct gdbarch *gdbarch, gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument);
@@ -3221,6 +2461,15 @@ extern struct gdbarch *gdbarch_alloc (const struct gdbarch_info *info, struct gd
extern void gdbarch_free (struct gdbarch *);
+/* Helper function. Allocate memory from the ``struct gdbarch''
+ obstack. The memory is freed when the corresponding architecture
+ is also freed. */
+
+extern void *gdbarch_obstack_zalloc (struct gdbarch *gdbarch, long size);
+#define GDBARCH_OBSTACK_CALLOC(GDBARCH, NR, TYPE) ((TYPE *) gdbarch_obstack_zalloc ((GDBARCH), (NR) * sizeof (TYPE)))
+#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE) ((TYPE *) gdbarch_obstack_zalloc ((GDBARCH), sizeof (TYPE)))
+
+
/* Helper function. Force an update of the current architecture.
The actual architecture selected is determined by INFO, ``(gdb) set
@@ -3242,9 +2491,11 @@ extern int gdbarch_update_p (struct gdbarch_info info);
The per-architecture data-pointer is either initialized explicitly
(set_gdbarch_data()) or implicitly (by INIT() via a call to
- gdbarch_data()). FREE() is called to delete either an existing
- data-pointer overridden by set_gdbarch_data() or when the
- architecture object is being deleted.
+ gdbarch_data()).
+
+ Memory for the per-architecture data shall be allocated using
+ gdbarch_obstack_zalloc. That memory will be deleted when the
+ corresponding architecture object is deleted.
When a previously created architecture is re-selected, the
per-architecture data-pointer for that previous architecture is
@@ -3256,10 +2507,7 @@ extern int gdbarch_update_p (struct gdbarch_info info);
struct gdbarch_data;
typedef void *(gdbarch_data_init_ftype) (struct gdbarch *gdbarch);
-typedef void (gdbarch_data_free_ftype) (struct gdbarch *gdbarch,
- void *pointer);
-extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init,
- gdbarch_data_free_ftype *free);
+extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init);
extern void set_gdbarch_data (struct gdbarch *gdbarch,
struct gdbarch_data *data,
void *pointer);
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index a9a878b..331b1aa 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -94,9 +94,6 @@ EOF
M ) staticdefault="0" ;;
* ) test "${staticdefault}" || staticdefault=0 ;;
esac
- # NOT YET: Breaks BELIEVE_PCC_PROMOTION and confuses non-
- # multi-arch defaults.
- # test "${predefault}" || predefault=0
# come up with a format, use a few guesses for variables
case ":${class}:${fmt}:${print}:" in
@@ -119,13 +116,16 @@ EOF
F | V | M )
case "${invalid_p}" in
"" )
- if test -n "${predefault}" -a "${predefault}" != "0"
+ if test -n "${predefault}"
then
#invalid_p="gdbarch->${function} == ${predefault}"
predicate="gdbarch->${function} != ${predefault}"
- else
- # filled in later
- predicate=""
+ elif class_is_variable_p
+ then
+ predicate="gdbarch->${function} != 0"
+ elif class_is_function_p
+ then
+ predicate="gdbarch->${function} != NULL"
fi
;;
* )
@@ -435,8 +435,8 @@ F:2:TARGET_READ_SP:CORE_ADDR:read_sp:void
# serious shakedown.
f:2:TARGET_VIRTUAL_FRAME_POINTER:void:virtual_frame_pointer:CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset:pc, frame_regnum, frame_offset::0:legacy_virtual_frame_pointer::0
#
-M:::void:pseudo_register_read:struct regcache *regcache, int cookednum, void *buf:regcache, cookednum, buf:
-M:::void:pseudo_register_write:struct regcache *regcache, int cookednum, const void *buf:regcache, cookednum, buf:
+M:::void:pseudo_register_read:struct regcache *regcache, int cookednum, void *buf:regcache, cookednum, buf
+M:::void:pseudo_register_write:struct regcache *regcache, int cookednum, const void *buf:regcache, cookednum, buf
#
v:2:NUM_REGS:int:num_regs::::0:-1
# This macro gives the number of pseudo-registers that live in the
@@ -465,12 +465,12 @@ f:2:DWARF_REG_TO_REGNUM:int:dwarf_reg_to_regnum:int dwarf_regnr:dwarf_regnr:::no
# to map one to one onto the sdb register numbers.
f:2:SDB_REG_TO_REGNUM:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr:::no_op_reg_to_regnum::0
f:2:DWARF2_REG_TO_REGNUM:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr:::no_op_reg_to_regnum::0
-f:2:REGISTER_NAME:const char *:register_name:int regnr:regnr:::legacy_register_name::0
+f::REGISTER_NAME:const char *:register_name:int regnr:regnr
# REGISTER_TYPE is a direct replacement for REGISTER_VIRTUAL_TYPE.
-M:2:REGISTER_TYPE:struct type *:register_type:int reg_nr:reg_nr::0:
+M:2:REGISTER_TYPE:struct type *:register_type:int reg_nr:reg_nr
# REGISTER_TYPE is a direct replacement for REGISTER_VIRTUAL_TYPE.
-F:2:REGISTER_VIRTUAL_TYPE:struct type *:deprecated_register_virtual_type:int reg_nr:reg_nr::0:0
+F:2:REGISTER_VIRTUAL_TYPE:struct type *:deprecated_register_virtual_type:int reg_nr:reg_nr
# DEPRECATED_REGISTER_BYTES can be deleted. The value is computed
# from REGISTER_TYPE.
v::DEPRECATED_REGISTER_BYTES:int:deprecated_register_bytes
@@ -500,7 +500,7 @@ V:2:DEPRECATED_MAX_REGISTER_RAW_SIZE:int:deprecated_max_register_raw_size
V:2:DEPRECATED_MAX_REGISTER_VIRTUAL_SIZE:int:deprecated_max_register_virtual_size
# See gdbint.texinfo, and PUSH_DUMMY_CALL.
-M::UNWIND_DUMMY_ID:struct frame_id:unwind_dummy_id:struct frame_info *info:info::0:0
+M::UNWIND_DUMMY_ID:struct frame_id:unwind_dummy_id:struct frame_info *info:info
# Implement UNWIND_DUMMY_ID and PUSH_DUMMY_CALL, then delete
# SAVE_DUMMY_FRAME_TOS.
F:2:DEPRECATED_SAVE_DUMMY_FRAME_TOS:void:deprecated_save_dummy_frame_tos:CORE_ADDR sp:sp
@@ -520,7 +520,7 @@ F:2:DEPRECATED_PUSH_ARGUMENTS:CORE_ADDR:deprecated_push_arguments:int nargs, str
v::DEPRECATED_USE_GENERIC_DUMMY_FRAMES:int:deprecated_use_generic_dummy_frames:::::1::0
# Implement PUSH_RETURN_ADDRESS, and then merge in
# DEPRECATED_PUSH_RETURN_ADDRESS.
-F:2:DEPRECATED_PUSH_RETURN_ADDRESS:CORE_ADDR:deprecated_push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0
+F:2:DEPRECATED_PUSH_RETURN_ADDRESS:CORE_ADDR:deprecated_push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp
# Implement PUSH_DUMMY_CALL, then merge in DEPRECATED_DUMMY_WRITE_SP.
F:2:DEPRECATED_DUMMY_WRITE_SP:void:deprecated_dummy_write_sp:CORE_ADDR val:val
# DEPRECATED_REGISTER_SIZE can be deleted.
@@ -538,14 +538,14 @@ v::DEPRECATED_CALL_DUMMY_WORDS:LONGEST *:deprecated_call_dummy_words::::0:legacy
# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_SIZEOF_CALL_DUMMY_WORDS.
v::DEPRECATED_SIZEOF_CALL_DUMMY_WORDS:int:deprecated_sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words::0
# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_CALL_DUMMY_STACK_ADJUST.
-V:2:DEPRECATED_CALL_DUMMY_STACK_ADJUST:int:deprecated_call_dummy_stack_adjust::::0
+V:2:DEPRECATED_CALL_DUMMY_STACK_ADJUST:int:deprecated_call_dummy_stack_adjust
# DEPRECATED_FIX_CALL_DUMMY can be deleted. For the SPARC, implement
# PUSH_DUMMY_CODE and set CALL_DUMMY_LOCATION to ON_STACK.
F::DEPRECATED_FIX_CALL_DUMMY:void:deprecated_fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p
# This is a replacement for DEPRECATED_FIX_CALL_DUMMY et.al.
-M::PUSH_DUMMY_CODE:CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr:sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr:
+M::PUSH_DUMMY_CODE:CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr:sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr
# Implement PUSH_DUMMY_CALL, then delete DEPRECATED_PUSH_DUMMY_FRAME.
-F:2:DEPRECATED_PUSH_DUMMY_FRAME:void:deprecated_push_dummy_frame:void:-:::0
+F:2:DEPRECATED_PUSH_DUMMY_FRAME:void:deprecated_push_dummy_frame:void:-
# Implement PUSH_DUMMY_CALL, then delete
# DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED.
v:2:DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED:int:deprecated_extra_stack_alignment_needed::::0:0::0:::
@@ -557,11 +557,11 @@ M:2:PRINT_VECTOR_INFO:void:print_vector_info:struct ui_file *file, struct frame_
# MAP a GDB RAW register number onto a simulator register number. See
# also include/...-sim.h.
f:2:REGISTER_SIM_REGNO:int:register_sim_regno:int reg_nr:reg_nr:::legacy_register_sim_regno::0
-F:2:REGISTER_BYTES_OK:int:register_bytes_ok:long nr_bytes:nr_bytes::0:0
+F:2:REGISTER_BYTES_OK:int:register_bytes_ok:long nr_bytes:nr_bytes
f:2:CANNOT_FETCH_REGISTER:int:cannot_fetch_register:int regnum:regnum:::cannot_register_not::0
f:2:CANNOT_STORE_REGISTER:int:cannot_store_register:int regnum:regnum:::cannot_register_not::0
# setjmp/longjmp support.
-F:2:GET_LONGJMP_TARGET:int:get_longjmp_target:CORE_ADDR *pc:pc::0:0
+F:2:GET_LONGJMP_TARGET:int:get_longjmp_target:CORE_ADDR *pc:pc
# NOTE: cagney/2002-11-24: This function with predicate has a valid
# (callable) initial value. As a consequence, even when the predicate
# is false, the corresponding function works. This simplifies the
@@ -594,21 +594,21 @@ f:2:ADDRESS_TO_POINTER:void:address_to_pointer:struct type *type, void *buf, COR
F:2:INTEGER_TO_ADDRESS:CORE_ADDR:integer_to_address:struct type *type, void *buf:type, buf
#
f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0
-F:2:DEPRECATED_POP_FRAME:void:deprecated_pop_frame:void:-:::0
+F:2:DEPRECATED_POP_FRAME:void:deprecated_pop_frame:void:-
# NOTE: cagney/2003-03-24: Replaced by PUSH_ARGUMENTS.
-F:2:DEPRECATED_STORE_STRUCT_RETURN:void:deprecated_store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp:::0
+F:2:DEPRECATED_STORE_STRUCT_RETURN:void:deprecated_store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp
#
f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, struct regcache *regcache, void *valbuf:type, regcache, valbuf:::legacy_extract_return_value::0
f:2:STORE_RETURN_VALUE:void:store_return_value:struct type *type, struct regcache *regcache, const void *valbuf:type, regcache, valbuf:::legacy_store_return_value::0
f:2:DEPRECATED_EXTRACT_RETURN_VALUE:void:deprecated_extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf
f:2:DEPRECATED_STORE_RETURN_VALUE:void:deprecated_store_return_value:struct type *type, char *valbuf:type, valbuf
#
-F:2:EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:extract_struct_value_address:struct regcache *regcache:regcache:::0
-F:2:DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:deprecated_extract_struct_value_address:char *regbuf:regbuf:::0
+F:2:EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:extract_struct_value_address:struct regcache *regcache:regcache
+F:2:DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:deprecated_extract_struct_value_address:char *regbuf:regbuf
f:2:USE_STRUCT_CONVENTION:int:use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type:::generic_use_struct_convention::0
#
-F:2:DEPRECATED_FRAME_INIT_SAVED_REGS:void:deprecated_frame_init_saved_regs:struct frame_info *frame:frame:::0
-F:2:DEPRECATED_INIT_EXTRA_FRAME_INFO:void:deprecated_init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame:::0
+F:2:DEPRECATED_FRAME_INIT_SAVED_REGS:void:deprecated_frame_init_saved_regs:struct frame_info *frame:frame
+F:2:DEPRECATED_INIT_EXTRA_FRAME_INFO:void:deprecated_init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame
#
f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0
f:2:PROLOGUE_FRAMELESS_P:int:prologue_frameless_p:CORE_ADDR ip:ip::0:generic_prologue_frameless_p::0
@@ -623,22 +623,27 @@ m::REMOTE_TRANSLATE_XFER_ADDRESS:void:remote_translate_xfer_address:struct regca
#
v:2:FRAME_ARGS_SKIP:CORE_ADDR:frame_args_skip::::0:-1
f:2:FRAMELESS_FUNCTION_INVOCATION:int:frameless_function_invocation:struct frame_info *fi:fi:::generic_frameless_function_invocation_not::0
-F:2:DEPRECATED_FRAME_CHAIN:CORE_ADDR:deprecated_frame_chain:struct frame_info *frame:frame::0:0
-F:2:DEPRECATED_FRAME_CHAIN_VALID:int:deprecated_frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe::0:0
+F:2:DEPRECATED_FRAME_CHAIN:CORE_ADDR:deprecated_frame_chain:struct frame_info *frame:frame
+F:2:DEPRECATED_FRAME_CHAIN_VALID:int:deprecated_frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe
# DEPRECATED_FRAME_SAVED_PC has been replaced by UNWIND_PC. Please
# note, per UNWIND_PC's doco, that while the two have similar
# interfaces they have very different underlying implementations.
-F:2:DEPRECATED_FRAME_SAVED_PC:CORE_ADDR:deprecated_frame_saved_pc:struct frame_info *fi:fi::0:0
-M::UNWIND_PC:CORE_ADDR:unwind_pc:struct frame_info *next_frame:next_frame:
-M::UNWIND_SP:CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame:
-f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:get_frame_base::0
-f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:get_frame_base::0
+F:2:DEPRECATED_FRAME_SAVED_PC:CORE_ADDR:deprecated_frame_saved_pc:struct frame_info *fi:fi
+M::UNWIND_PC:CORE_ADDR:unwind_pc:struct frame_info *next_frame:next_frame
+M::UNWIND_SP:CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame
+# DEPRECATED_FRAME_ARGS_ADDRESS as been replaced by the per-frame
+# frame-base. Enable frame-base before frame-unwind.
+F::DEPRECATED_FRAME_ARGS_ADDRESS:CORE_ADDR:deprecated_frame_args_address:struct frame_info *fi:fi::get_frame_base:get_frame_base
+# DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
+# frame-base. Enable frame-base before frame-unwind.
+F::DEPRECATED_FRAME_LOCALS_ADDRESS:CORE_ADDR:deprecated_frame_locals_address:struct frame_info *fi:fi::get_frame_base:get_frame_base
F::DEPRECATED_SAVED_PC_AFTER_CALL:CORE_ADDR:deprecated_saved_pc_after_call:struct frame_info *frame:frame
F:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame
#
-F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp::0:0
+F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp
M:::CORE_ADDR:frame_align:CORE_ADDR address:address
-F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type::0:0
+F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type
+v::FRAME_RED_ZONE_SIZE:int:frame_red_zone_size
v:2:PARM_BOUNDARY:int:parm_boundary
#
v:2:TARGET_FLOAT_FORMAT:const struct floatformat *:float_format::::::default_float_format (gdbarch)::%s:(TARGET_FLOAT_FORMAT)->name
@@ -666,7 +671,7 @@ f:2:SMASH_TEXT_ADDRESS:CORE_ADDR:smash_text_address:CORE_ADDR addr:addr:::core_a
#
# FIXME/cagney/2001-01-18: The logic is backwards. It should be asking if the target can
# single step. If not, then implement single step using breakpoints.
-F:2:SOFTWARE_SINGLE_STEP:void:software_single_step:enum target_signal sig, int insert_breakpoints_p:sig, insert_breakpoints_p::0:0
+F:2:SOFTWARE_SINGLE_STEP:void:software_single_step:enum target_signal sig, int insert_breakpoints_p:sig, insert_breakpoints_p
f:2:TARGET_PRINT_INSN:int:print_insn:bfd_vma vma, disassemble_info *info:vma, info:::legacy_print_insn::0
f:2:SKIP_TRAMPOLINE_CODE:CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc:::generic_skip_trampoline_code::0
@@ -721,19 +726,18 @@ m:::int:in_function_epilogue_p:CORE_ADDR addr:addr::0:generic_in_function_epilog
# ARGC is the number of elements in the vector.
# ARGV is an array of strings, one per argument.
m::CONSTRUCT_INFERIOR_ARGUMENTS:char *:construct_inferior_arguments:int argc, char **argv:argc, argv:::construct_inferior_arguments::0
-F:2:DWARF2_BUILD_FRAME_INFO:void:dwarf2_build_frame_info:struct objfile *objfile:objfile:::0
f:2:ELF_MAKE_MSYMBOL_SPECIAL:void:elf_make_msymbol_special:asymbol *sym, struct minimal_symbol *msym:sym, msym:::default_elf_make_msymbol_special::0
f:2:COFF_MAKE_MSYMBOL_SPECIAL:void:coff_make_msymbol_special:int val, struct minimal_symbol *msym:val, msym:::default_coff_make_msymbol_special::0
v:2:NAME_OF_MALLOC:const char *:name_of_malloc::::"malloc":"malloc"::0:%s:NAME_OF_MALLOC
v:2:CANNOT_STEP_BREAKPOINT:int:cannot_step_breakpoint::::0:0::0
v:2:HAVE_NONSTEPPABLE_WATCHPOINT:int:have_nonsteppable_watchpoint::::0:0::0
F:2:ADDRESS_CLASS_TYPE_FLAGS:int:address_class_type_flags:int byte_size, int dwarf2_addr_class:byte_size, dwarf2_addr_class
-M:2:ADDRESS_CLASS_TYPE_FLAGS_TO_NAME:const char *:address_class_type_flags_to_name:int type_flags:type_flags:
+M:2:ADDRESS_CLASS_TYPE_FLAGS_TO_NAME:const char *:address_class_type_flags_to_name:int type_flags:type_flags
M:2:ADDRESS_CLASS_NAME_TO_TYPE_FLAGS:int:address_class_name_to_type_flags:const char *name, int *type_flags_ptr:name, type_flags_ptr
# Is a register in a group
m:::int:register_reggroup_p:int regnum, struct reggroup *reggroup:regnum, reggroup:::default_register_reggroup_p::0
# Fetch the pointer to the ith function argument.
-F::FETCH_POINTER_ARGUMENT:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct type *type:frame, argi, type:::::::::
+F::FETCH_POINTER_ARGUMENT:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct type *type:frame, argi, type
EOF
}
@@ -831,11 +835,6 @@ cat <<EOF
#define GDBARCH_H
#include "dis-asm.h" /* Get defs for disassemble_info, which unfortunately is a typedef. */
-#if !GDB_MULTI_ARCH
-/* Pull in function declarations refered to, indirectly, via macros. */
-#include "inferior.h" /* For unsigned_address_to_pointer(). */
-#include "symfile.h" /* For entry_point_address(). */
-#endif
struct floatformat;
struct ui_file;
@@ -909,11 +908,6 @@ do
printf "#endif\n"
printf "#endif\n"
printf "\n"
- printf "/* Default predicate for non- multi-arch targets. */\n"
- printf "#if (!GDB_MULTI_ARCH) && !defined (${macro}_P)\n"
- printf "#define ${macro}_P() (0)\n"
- printf "#endif\n"
- printf "\n"
printf "extern int gdbarch_${function}_p (struct gdbarch *gdbarch);\n"
printf "#if (GDB_MULTI_ARCH ${gt_level}) && defined (${macro}_P)\n"
printf "#error \"Non multi-arch definition of ${macro}\"\n"
@@ -925,15 +919,6 @@ do
fi
if class_is_variable_p
then
- if fallback_default_p || class_is_predicate_p
- then
- printf "\n"
- printf "/* Default (value) for non- multi-arch platforms. */\n"
- printf "#if (!GDB_MULTI_ARCH) && !defined (${macro})\n"
- echo "#define ${macro} (${fallbackdefault})" \
- | sed -e 's/\([^a-z_]\)\(gdbarch[^a-z_]\)/\1current_\2/g'
- printf "#endif\n"
- fi
printf "\n"
printf "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch);\n"
printf "extern void set_gdbarch_${function} (struct gdbarch *gdbarch, ${returntype} ${function});\n"
@@ -946,27 +931,6 @@ do
fi
if class_is_function_p
then
- if class_is_multiarch_p ; then :
- elif fallback_default_p || class_is_predicate_p
- then
- printf "\n"
- printf "/* Default (function) for non- multi-arch platforms. */\n"
- printf "#if (!GDB_MULTI_ARCH) && !defined (${macro})\n"
- if [ "x${fallbackdefault}" = "x0" ]
- then
- if [ "x${actual}" = "x-" ]
- then
- printf "#define ${macro} (internal_error (__FILE__, __LINE__, \"${macro}\"), 0)\n"
- else
- printf "#define ${macro}(${actual}) (internal_error (__FILE__, __LINE__, \"${macro}\"), 0)\n"
- fi
- else
- # FIXME: Should be passing current_gdbarch through!
- echo "#define ${macro}(${actual}) (${fallbackdefault} (${actual}))" \
- | sed -e 's/\([^a-z_]\)\(gdbarch[^a-z_]\)/\1current_\2/g'
- fi
- printf "#endif\n"
- fi
printf "\n"
if [ "x${formal}" = "xvoid" ] && class_is_multiarch_p
then
@@ -1142,6 +1106,15 @@ extern struct gdbarch *gdbarch_alloc (const struct gdbarch_info *info, struct gd
extern void gdbarch_free (struct gdbarch *);
+/* Helper function. Allocate memory from the \`\`struct gdbarch''
+ obstack. The memory is freed when the corresponding architecture
+ is also freed. */
+
+extern void *gdbarch_obstack_zalloc (struct gdbarch *gdbarch, long size);
+#define GDBARCH_OBSTACK_CALLOC(GDBARCH, NR, TYPE) ((TYPE *) gdbarch_obstack_zalloc ((GDBARCH), (NR) * sizeof (TYPE)))
+#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE) ((TYPE *) gdbarch_obstack_zalloc ((GDBARCH), sizeof (TYPE)))
+
+
/* Helper function. Force an update of the current architecture.
The actual architecture selected is determined by INFO, \`\`(gdb) set
@@ -1163,9 +1136,11 @@ extern int gdbarch_update_p (struct gdbarch_info info);
The per-architecture data-pointer is either initialized explicitly
(set_gdbarch_data()) or implicitly (by INIT() via a call to
- gdbarch_data()). FREE() is called to delete either an existing
- data-pointer overridden by set_gdbarch_data() or when the
- architecture object is being deleted.
+ gdbarch_data()).
+
+ Memory for the per-architecture data shall be allocated using
+ gdbarch_obstack_zalloc. That memory will be deleted when the
+ corresponding architecture object is deleted.
When a previously created architecture is re-selected, the
per-architecture data-pointer for that previous architecture is
@@ -1177,10 +1152,7 @@ extern int gdbarch_update_p (struct gdbarch_info info);
struct gdbarch_data;
typedef void *(gdbarch_data_init_ftype) (struct gdbarch *gdbarch);
-typedef void (gdbarch_data_free_ftype) (struct gdbarch *gdbarch,
- void *pointer);
-extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init,
- gdbarch_data_free_ftype *free);
+extern struct gdbarch_data *register_gdbarch_data (gdbarch_data_init_ftype *init);
extern void set_gdbarch_data (struct gdbarch *gdbarch,
struct gdbarch_data *data,
void *pointer);
@@ -1280,27 +1252,8 @@ cat <<EOF
#include "defs.h"
#include "arch-utils.h"
-#if GDB_MULTI_ARCH
#include "gdbcmd.h"
#include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
-#else
-/* Just include everything in sight so that the every old definition
- of macro is visible. */
-#include "gdb_string.h"
-#include <ctype.h>
-#include "symtab.h"
-#include "frame.h"
-#include "inferior.h"
-#include "breakpoint.h"
-#include "gdb_wait.h"
-#include "gdbcore.h"
-#include "gdbcmd.h"
-#include "target.h"
-#include "gdbthread.h"
-#include "annotate.h"
-#include "symfile.h" /* for overlay functions */
-#include "value.h" /* For old tm.h/nm.h macros. */
-#endif
#include "symcat.h"
#include "floatformat.h"
@@ -1311,12 +1264,12 @@ cat <<EOF
#include "reggroups.h"
#include "osabi.h"
#include "symfile.h" /* For entry_point_address. */
+#include "gdb_obstack.h"
/* Static function declarations */
static void verify_gdbarch (struct gdbarch *gdbarch);
static void alloc_gdbarch_data (struct gdbarch *);
-static void free_gdbarch_data (struct gdbarch *);
static void init_gdbarch_swap (struct gdbarch *);
static void clear_gdbarch_swap (struct gdbarch *);
static void swapout_gdbarch_swap (struct gdbarch *);
@@ -1339,6 +1292,10 @@ printf "struct gdbarch\n"
printf "{\n"
printf " /* Has this architecture been fully initialized? */\n"
printf " int initialized_p;\n"
+printf "\n"
+printf " /* An obstack bound to the lifetime of the architecture. */\n"
+printf " struct obstack *obstack;\n"
+printf "\n"
printf " /* basic architectural information */\n"
function_list | while do_read
do
@@ -1412,6 +1369,7 @@ printf "\n"
printf "struct gdbarch startup_gdbarch =\n"
printf "{\n"
printf " 1, /* Always initialized. */\n"
+printf " NULL, /* The obstack. */\n"
printf " /* basic architecture information */\n"
function_list | while do_read
do
@@ -1472,8 +1430,15 @@ gdbarch_alloc (const struct gdbarch_info *info,
architecture. This ensures that the new architectures initial
values are not influenced by the previous architecture. Once
everything is parameterised with gdbarch, this will go away. */
- struct gdbarch *current_gdbarch = XMALLOC (struct gdbarch);
+ struct gdbarch *current_gdbarch;
+
+ /* Create an obstack for allocating all the per-architecture memory,
+ then use that to allocate the architecture vector. */
+ struct obstack *obstack = XMALLOC (struct obstack);
+ obstack_init (obstack);
+ current_gdbarch = obstack_alloc (obstack, sizeof (*current_gdbarch));
memset (current_gdbarch, 0, sizeof (*current_gdbarch));
+ current_gdbarch->obstack = obstack;
alloc_gdbarch_data (current_gdbarch);
@@ -1510,6 +1475,17 @@ EOF
printf "\n"
printf "\n"
cat <<EOF
+/* Allocate extra space using the per-architecture obstack. */
+
+void *
+gdbarch_obstack_zalloc (struct gdbarch *arch, long size)
+{
+ void *data = obstack_alloc (arch->obstack, size);
+ memset (data, 0, size);
+ return data;
+}
+
+
/* Free a gdbarch struct. This should never happen in normal
operation --- once you've created a gdbarch, you keep it around.
However, if an architecture's init function encounters an error
@@ -1519,9 +1495,12 @@ cat <<EOF
void
gdbarch_free (struct gdbarch *arch)
{
+ struct obstack *obstack;
gdb_assert (arch != NULL);
- free_gdbarch_data (arch);
- xfree (arch);
+ gdb_assert (!arch->initialized_p);
+ obstack = arch->obstack;
+ obstack_free (obstack, 0); /* Includes the ARCH. */
+ xfree (obstack);
}
EOF
@@ -1538,9 +1517,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
struct cleanup *cleanups;
long dummy;
char *buf;
- /* Only perform sanity checks on a multi-arch target. */
- if (!GDB_MULTI_ARCH)
- return;
log = mem_fileopen ();
cleanups = make_cleanup_ui_file_delete (log);
/* fundamental */
@@ -1623,10 +1599,9 @@ do
then
if class_is_multiarch_p
then
- printf " if (GDB_MULTI_ARCH)\n"
- printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: gdbarch_${function}_p() = %%d\\\\n\",\n"
- printf " gdbarch_${function}_p (current_gdbarch));\n"
+ printf " fprintf_unfiltered (file,\n"
+ printf " \"gdbarch_dump: gdbarch_${function}_p() = %%d\\\\n\",\n"
+ printf " gdbarch_${function}_p (current_gdbarch));\n"
else
printf "#ifdef ${macro}_P\n"
printf " fprintf_unfiltered (file,\n"
@@ -1642,19 +1617,13 @@ do
# multiarch functions don't have macros.
if class_is_multiarch_p
then
- printf " if (GDB_MULTI_ARCH)\n"
- printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: ${function} = 0x%%08lx\\\\n\",\n"
- printf " (long) current_gdbarch->${function});\n"
+ printf " fprintf_unfiltered (file,\n"
+ printf " \"gdbarch_dump: ${function} = 0x%%08lx\\\\n\",\n"
+ printf " (long) current_gdbarch->${function});\n"
continue
fi
# Print the macro definition.
printf "#ifdef ${macro}\n"
- if [ "x${returntype}" = "xvoid" ]
- then
- printf "#if GDB_MULTI_ARCH\n"
- printf " /* Macro might contain \`[{}]' when not multi-arch */\n"
- fi
if class_is_function_p
then
printf " fprintf_unfiltered (file,\n"
@@ -1666,11 +1635,6 @@ do
printf " \"gdbarch_dump: ${macro} # %%s\\\\n\",\n"
printf " XSTRING (${macro}));\n"
fi
- # Print the architecture vector value
- if [ "x${returntype}" = "xvoid" ]
- then
- printf "#endif\n"
- fi
if [ "x${print_p}" = "x()" ]
then
printf " gdbarch_dump_${function} (current_gdbarch);\n"
@@ -1685,11 +1649,10 @@ do
printf " ${print});\n"
elif class_is_function_p
then
- printf " if (GDB_MULTI_ARCH)\n"
- printf " fprintf_unfiltered (file,\n"
- printf " \"gdbarch_dump: ${macro} = <0x%%08lx>\\\\n\",\n"
- printf " (long) current_gdbarch->${function}\n"
- printf " /*${macro} ()*/);\n"
+ printf " fprintf_unfiltered (file,\n"
+ printf " \"gdbarch_dump: ${macro} = <0x%%08lx>\\\\n\",\n"
+ printf " (long) current_gdbarch->${function}\n"
+ printf " /*${macro} ()*/);\n"
else
printf " fprintf_unfiltered (file,\n"
printf " \"gdbarch_dump: ${macro} = %s\\\\n\",\n" "${fmt}"
@@ -1725,12 +1688,7 @@ do
printf "gdbarch_${function}_p (struct gdbarch *gdbarch)\n"
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
- if [ -n "${predicate}" ]
- then
- printf " return ${predicate};\n"
- else
- printf " return gdbarch->${function} != 0;\n"
- fi
+ printf " return ${predicate};\n"
printf "}\n"
fi
if class_is_function_p
@@ -1745,13 +1703,11 @@ do
fi
printf "{\n"
printf " gdb_assert (gdbarch != NULL);\n"
- printf " if (gdbarch->${function} == 0)\n"
- printf " internal_error (__FILE__, __LINE__,\n"
- printf " \"gdbarch: gdbarch_${function} invalid\");\n"
- if class_is_predicate_p && test -n "${predicate}"
+ printf " gdb_assert (gdbarch->${function} != NULL);\n"
+ if class_is_predicate_p && test -n "${predefault}"
then
# Allow a call to a function with a predicate.
- printf " /* Ignore predicate (${predicate}). */\n"
+ printf " /* Do not check predicate: ${predicate}, allow call. */\n"
fi
printf " if (gdbarch_debug >= 2)\n"
printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
@@ -1797,14 +1753,12 @@ do
printf " /* Skip verify of ${function}, invalid_p == 0 */\n"
elif [ -n "${invalid_p}" ]
then
- printf " if (${invalid_p})\n"
- printf " internal_error (__FILE__, __LINE__,\n"
- printf " \"gdbarch: gdbarch_${function} invalid\");\n"
+ printf " /* Check variable is valid. */\n"
+ printf " gdb_assert (!(${invalid_p}));\n"
elif [ -n "${predefault}" ]
then
- printf " if (gdbarch->${function} == ${predefault})\n"
- printf " internal_error (__FILE__, __LINE__,\n"
- printf " \"gdbarch: gdbarch_${function} invalid\");\n"
+ printf " /* Check variable changed from pre-default. */\n"
+ printf " gdb_assert (gdbarch->${function} != ${predefault});\n"
fi
printf " if (gdbarch_debug >= 2)\n"
printf " fprintf_unfiltered (gdb_stdlog, \"gdbarch_${function} called\\\\n\");\n"
@@ -1843,7 +1797,6 @@ struct gdbarch_data
unsigned index;
int init_p;
gdbarch_data_init_ftype *init;
- gdbarch_data_free_ftype *free;
};
struct gdbarch_data_registration
@@ -1864,8 +1817,7 @@ struct gdbarch_data_registry gdbarch_data_registry =
};
struct gdbarch_data *
-register_gdbarch_data (gdbarch_data_init_ftype *init,
- gdbarch_data_free_ftype *free)
+register_gdbarch_data (gdbarch_data_init_ftype *init)
{
struct gdbarch_data_registration **curr;
/* Append the new registraration. */
@@ -1878,7 +1830,6 @@ register_gdbarch_data (gdbarch_data_init_ftype *init,
(*curr)->data->index = gdbarch_data_registry.nr++;
(*curr)->data->init = init;
(*curr)->data->init_p = 1;
- (*curr)->data->free = free;
return (*curr)->data;
}
@@ -1890,31 +1841,9 @@ alloc_gdbarch_data (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch->data == NULL);
gdbarch->nr_data = gdbarch_data_registry.nr;
- gdbarch->data = xcalloc (gdbarch->nr_data, sizeof (void*));
+ gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *);
}
-static void
-free_gdbarch_data (struct gdbarch *gdbarch)
-{
- struct gdbarch_data_registration *rego;
- gdb_assert (gdbarch->data != NULL);
- for (rego = gdbarch_data_registry.registrations;
- rego != NULL;
- rego = rego->next)
- {
- struct gdbarch_data *data = rego->data;
- gdb_assert (data->index < gdbarch->nr_data);
- if (data->free != NULL && gdbarch->data[data->index] != NULL)
- {
- data->free (gdbarch, gdbarch->data[data->index]);
- gdbarch->data[data->index] = NULL;
- }
- }
- xfree (gdbarch->data);
- gdbarch->data = NULL;
-}
-
-
/* Initialize the current value of the specified per-architecture
data-pointer. */
@@ -1924,11 +1853,7 @@ set_gdbarch_data (struct gdbarch *gdbarch,
void *pointer)
{
gdb_assert (data->index < gdbarch->nr_data);
- if (gdbarch->data[data->index] != NULL)
- {
- gdb_assert (data->free != NULL);
- data->free (gdbarch, gdbarch->data[data->index]);
- }
+ gdb_assert (gdbarch->data[data->index] == NULL);
gdbarch->data[data->index] = pointer;
}
@@ -2025,9 +1950,9 @@ init_gdbarch_swap (struct gdbarch *gdbarch)
{
if (rego->data != NULL)
{
- (*curr) = XMALLOC (struct gdbarch_swap);
+ (*curr) = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct gdbarch_swap);
(*curr)->source = rego;
- (*curr)->swap = xmalloc (rego->sizeof_data);
+ (*curr)->swap = gdbarch_obstack_zalloc (gdbarch, rego->sizeof_data);
(*curr)->next = NULL;
curr = &(*curr)->next;
}
@@ -2081,37 +2006,30 @@ append_name (const char ***buf, int *nr, const char *name)
const char **
gdbarch_printable_names (void)
{
- if (GDB_MULTI_ARCH)
+ /* Accumulate a list of names based on the registed list of
+ architectures. */
+ enum bfd_architecture a;
+ int nr_arches = 0;
+ const char **arches = NULL;
+ struct gdbarch_registration *rego;
+ for (rego = gdbarch_registry;
+ rego != NULL;
+ rego = rego->next)
{
- /* Accumulate a list of names based on the registed list of
- architectures. */
- enum bfd_architecture a;
- int nr_arches = 0;
- const char **arches = NULL;
- struct gdbarch_registration *rego;
- for (rego = gdbarch_registry;
- rego != NULL;
- rego = rego->next)
- {
- const struct bfd_arch_info *ap;
- ap = bfd_lookup_arch (rego->bfd_architecture, 0);
- if (ap == NULL)
- internal_error (__FILE__, __LINE__,
- "gdbarch_architecture_names: multi-arch unknown");
- do
- {
- append_name (&arches, &nr_arches, ap->printable_name);
- ap = ap->next;
- }
- while (ap != NULL);
- }
- append_name (&arches, &nr_arches, NULL);
- return arches;
+ const struct bfd_arch_info *ap;
+ ap = bfd_lookup_arch (rego->bfd_architecture, 0);
+ if (ap == NULL)
+ internal_error (__FILE__, __LINE__,
+ "gdbarch_architecture_names: multi-arch unknown");
+ do
+ {
+ append_name (&arches, &nr_arches, ap->printable_name);
+ ap = ap->next;
+ }
+ while (ap != NULL);
}
- else
- /* Just return all the architectures that BFD knows. Assume that
- the legacy architecture framework supports them. */
- return bfd_arch_list ();
+ append_name (&arches, &nr_arches, NULL);
+ return arches;
}
@@ -2152,12 +2070,6 @@ gdbarch_register (enum bfd_architecture bfd_architecture,
(*curr)->dump_tdep = dump_tdep;
(*curr)->arches = NULL;
(*curr)->next = NULL;
- /* When non- multi-arch, install whatever target dump routine we've
- been provided - hopefully that routine has been written correctly
- and works regardless of multi-arch. */
- if (!GDB_MULTI_ARCH && dump_tdep != NULL
- && startup_gdbarch.dump_tdep == NULL)
- startup_gdbarch.dump_tdep = dump_tdep;
}
void
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 9b52bf4..42dab16 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,8 +1,21 @@
+2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (install-only): Create dest dir. Support DESTDIR.
+ (uninstall): Support DESTDIR.
+
+Mon Jul 21 20:09:34 UTC 2003 Brendan Conoboy <blc@redhat.com>
+
+ * configure.srv: Add xscale*linux copy of arm*linux entry.
+
2003-07-24 Daniel Jacobowitz <drow@mvista.com>
* linux-arm-low.c (arm_reinsert_addr): New function.
(the_low_target): Add arm_reinsert_addr.
+2003-07-08 Mark Kettenis <kettenis@gnu.org>
+
+ * mem-break.c: Remove whitespace at end of file.
+
2003-06-28 Daniel Jacobowitz <drow@mvista.com>
* configure.in: Check whether we need to prototype strerror.
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index 80667f9..8554dae 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -151,13 +151,15 @@ install: all install-only
install-only:
n=`echo gdbserver | sed '$(program_transform_name)'`; \
if [ x$$n = x ]; then n=gdbserver; else true; fi; \
- $(INSTALL_PROGRAM) gdbserver $(bindir)/$$n; \
- $(INSTALL_DATA) $(srcdir)/gdbserver.1 $(man1dir)/$$n.1
+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir); \
+ $(INSTALL_PROGRAM) gdbserver $(DESTDIR)$(bindir)/$$n; \
+ $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man1dir); \
+ $(INSTALL_DATA) $(srcdir)/gdbserver.1 $(DESTDIR)$(man1dir)/$$n.1
uninstall: force
n=`echo gdbserver | sed '$(program_transform_name)'`; \
if [ x$$n = x ]; then n=gdbserver; else true; fi; \
- rm -f $(bindir)/$$n $(man1dir)/$$n.1
+ rm -f $(bindir)/$$n $(DESTDIR)$(man1dir)/$$n.1
installcheck:
check:
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index 6ab60e9..251dd6b 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -64,6 +64,11 @@ case "${target}" in
srv_tgtobj="linux-low.o linux-x86-64-low.o i387-fp.o"
srv_linux_regsets=yes
;;
+ xscale*-*-linux*) srv_regobj=reg-arm.o
+ srv_tgtobj="linux-low.o linux-arm-low.o"
+ srv_linux_usrregs=yes
+ srv_linux_thread_db=yes
+ ;;
*) echo "Error: target not supported by gdbserver."
exit 1
;;
diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c
index 6edc883..977b0e3 100644
--- a/gdb/gdbserver/mem-break.c
+++ b/gdb/gdbserver/mem-break.c
@@ -276,5 +276,3 @@ check_mem_write (CORE_ADDR mem_addr, char *buf, int mem_len)
memcpy (buf + buf_offset, breakpoint_data + copy_offset, copy_len);
}
}
-
-
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index e7d755a..554778a 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -272,11 +272,26 @@ enum type_code
#define TYPE_ADDRESS_CLASS_ALL(t) (TYPE_INSTANCE_FLAGS(t) \
& TYPE_FLAG_ADDRESS_CLASS_ALL)
+/* This structure is space-critical.
+ Its layout has been tweaked to reduce the space used. */
+
struct main_type
{
/* Code for kind of type */
- enum type_code code;
+ ENUM_BITFIELD(type_code) code : 8;
+
+ /* These fields appear at this location because they pack nicely here. */
+ /* FIXME, these should probably be restricted to a Fortran-specific
+ field in some fashion. */
+#define BOUND_CANNOT_BE_DETERMINED 5
+#define BOUND_BY_REF_ON_STACK 4
+#define BOUND_BY_VALUE_ON_STACK 3
+#define BOUND_BY_REF_IN_REG 2
+#define BOUND_BY_VALUE_IN_REG 1
+#define BOUND_SIMPLE 0
+ int upper_bound_type : 4;
+ int lower_bound_type : 4;
/* Name of this type, or NULL if none.
@@ -298,17 +313,6 @@ struct main_type
char *tag_name;
- /* FIXME, these should probably be restricted to a Fortran-specific
- field in some fashion. */
-#define BOUND_CANNOT_BE_DETERMINED 5
-#define BOUND_BY_REF_ON_STACK 4
-#define BOUND_BY_VALUE_ON_STACK 3
-#define BOUND_BY_REF_IN_REG 2
-#define BOUND_BY_VALUE_IN_REG 1
-#define BOUND_SIMPLE 0
- int upper_bound_type;
- int lower_bound_type;
-
/* Every type is now associated with a particular objfile, and the
type is allocated on the type_obstack for that objfile. One problem
however, is that there are times when gdb allocates new types while
@@ -340,6 +344,15 @@ struct main_type
short nfields;
+ /* Field number of the virtual function table pointer in
+ VPTR_BASETYPE. If -1, we were unable to find the virtual
+ function table pointer in initial symbol reading, and
+ fill_in_vptr_fieldno should be called to find it if possible.
+
+ Unused if this type does not have virtual functions. */
+
+ short vptr_fieldno;
+
/* For structure and union types, a description of each field.
For set and pascal array types, there is one "field",
whose type is the domain type of the set or array.
@@ -421,15 +434,6 @@ struct main_type
struct type *vptr_basetype;
- /* Field number of the virtual function table pointer in
- VPTR_BASETYPE. If -1, we were unable to find the virtual
- function table pointer in initial symbol reading, and
- fill_in_vptr_fieldno should be called to find it if possible.
-
- Unused if this type does not have virtual functions. */
-
- int vptr_fieldno;
-
/* Slot to point to additional language-specific fields of this type. */
union type_specific
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index bbfd118..d9947f9 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -433,7 +433,7 @@ gnuv3_baseclass_offset (struct type *type, int index, char *valaddr,
static void
init_gnuv3_ops (void)
{
- vtable_type_gdbarch_data = register_gdbarch_data (build_gdb_vtable_type, 0);
+ vtable_type_gdbarch_data = register_gdbarch_data (build_gdb_vtable_type);
gnu_v3_abi_ops.shortname = "gnu-v3";
gnu_v3_abi_ops.longname = "GNU G++ Version 3 ABI";
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index 1253b4d..c60c299 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -771,7 +771,7 @@ h8300_extract_return_value (struct type *type, struct regcache *regcache,
void *valbuf)
{
int len = TYPE_LENGTH (type);
- ULONGEST c;
+ ULONGEST c, addr;
switch (len)
{
@@ -786,9 +786,17 @@ h8300_extract_return_value (struct type *type, struct regcache *regcache,
regcache_cooked_read_unsigned (regcache, E_RET1_REGNUM, &c);
store_unsigned_integer ((void*)((char *)valbuf + 2), 2, c);
break;
- case 8: /* long long, double and long double are all defined
- as 4 byte types so far so this shouldn't happen. */
- error ("I don't know how a 8 byte value is returned.");
+ case 8: /* long long is now 8 bytes. */
+ if (TYPE_CODE (type) == TYPE_CODE_INT)
+ {
+ regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &addr);
+ c = read_memory_unsigned_integer ((CORE_ADDR) addr, len);
+ store_unsigned_integer (valbuf, len, c);
+ }
+ else
+ {
+ error ("I don't know how this 8 byte value is returned.");
+ }
break;
}
}
@@ -798,7 +806,7 @@ h8300h_extract_return_value (struct type *type, struct regcache *regcache,
void *valbuf)
{
int len = TYPE_LENGTH (type);
- ULONGEST c;
+ ULONGEST c, addr;
switch (len)
{
@@ -808,9 +816,17 @@ h8300h_extract_return_value (struct type *type, struct regcache *regcache,
regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c);
store_unsigned_integer (valbuf, len, c);
break;
- case 8: /* long long, double and long double are all defined
- as 4 byte types so far so this shouldn't happen. */
- error ("I don't know how a 8 byte value is returned.");
+ case 8: /* long long is now 8 bytes. */
+ if (TYPE_CODE (type) == TYPE_CODE_INT)
+ {
+ regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &addr);
+ c = read_memory_unsigned_integer ((CORE_ADDR) addr, len);
+ store_unsigned_integer (valbuf, len, c);
+ }
+ else
+ {
+ error ("I don't know how this 8 byte value is returned.");
+ }
break;
}
}
@@ -830,19 +846,19 @@ h8300_store_return_value (struct type *type, struct regcache *regcache,
switch (len)
{
case 1:
- case 2:
+ case 2: /* short... */
val = extract_unsigned_integer (valbuf, len);
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM, val);
break;
- case 4: /* long, float */
+ case 4: /* long, float */
val = extract_unsigned_integer (valbuf, len);
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM,
(val >> 16) &0xffff);
regcache_cooked_write_unsigned (regcache, E_RET1_REGNUM, val & 0xffff);
break;
- case 8: /* long long, double and long double are all defined
- as 4 byte types so far so this shouldn't happen. */
- error ("I don't know how to return a 8 byte value.");
+ case 8: /* long long, double and long double are all defined
+ as 4 byte types so far so this shouldn't happen. */
+ error ("I don't know how to return an 8 byte value.");
break;
}
}
@@ -858,13 +874,13 @@ h8300h_store_return_value (struct type *type, struct regcache *regcache,
{
case 1:
case 2:
- case 4: /* long, float */
+ case 4: /* long, float */
val = extract_unsigned_integer (valbuf, len);
regcache_cooked_write_unsigned (regcache, E_RET0_REGNUM, val);
break;
- case 8: /* long long, double and long double are all defined
- as 4 byte types so far so this shouldn't happen. */
- error ("I don't know how to return a 8 byte value.");
+ case 8: /* long long, double and long double are all defined
+ as 4 byte types so far so this shouldn't happen. */
+ error ("I don't know how to return an 8 byte value.");
break;
}
}
@@ -1310,13 +1326,16 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_int_bit (gdbarch, 2 * TARGET_CHAR_BIT);
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_long_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT);
set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_long_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
/* set_gdbarch_stack_align (gdbarch, SOME_stack_align); */
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
+ /* Char is unsigned. */
+ set_gdbarch_char_signed (gdbarch, 0);
+
return gdbarch;
}
diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c
index 5d26c7c..62271ff 100644
--- a/gdb/hppa-hpux-tdep.c
+++ b/gdb/hppa-hpux-tdep.c
@@ -32,12 +32,18 @@ extern initialize_file_ftype _initialize_hppa_hpux_tdep;
/* FIXME: brobecker 2002-12-25. The following functions will eventually
become static, after the multiarching conversion is done. */
int hppa_hpux_pc_in_sigtramp (CORE_ADDR pc, char *name);
-void hppa_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
- CORE_ADDR *tmp);
-void hppa_hpux_frame_base_before_sigtramp (struct frame_info *fi,
- CORE_ADDR *tmp);
-void hppa_hpux_frame_find_saved_regs_in_sigtramp
- (struct frame_info *fi, CORE_ADDR *fsr);
+void hppa32_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
+void hppa32_hpux_frame_base_before_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
+void hppa32_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *fsr);
+void hppa64_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
+void hppa64_hpux_frame_base_before_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp);
+void hppa64_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *fsr);
int
hppa_hpux_pc_in_sigtramp (CORE_ADDR pc, char *name)
@@ -48,9 +54,9 @@ hppa_hpux_pc_in_sigtramp (CORE_ADDR pc, char *name)
return (name && (strcmp ("_sigreturn", name) == 0));
}
-/* For hppa_hpux_frame_saved_pc_in_sigtramp,
- hppa_hpux_frame_base_before_sigtramp and
- hppa_hpux_frame_find_saved_regs_in_sigtramp:
+/* For hppa32_hpux_frame_saved_pc_in_sigtramp,
+ hppa32_hpux_frame_base_before_sigtramp and
+ hppa32_hpux_frame_find_saved_regs_in_sigtramp:
The signal context structure pointer is always saved at the base
of the frame which "calls" the signal handler. We only want to find
@@ -67,21 +73,21 @@ hppa_hpux_pc_in_sigtramp (CORE_ADDR pc, char *name)
written. */
void
-hppa_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi, CORE_ADDR *tmp)
+hppa32_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi, CORE_ADDR *tmp)
{
*tmp = read_memory_integer (get_frame_base (fi) + (43 * 4), 4);
}
void
-hppa_hpux_frame_base_before_sigtramp (struct frame_info *fi,
- CORE_ADDR *tmp)
+hppa32_hpux_frame_base_before_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp)
{
*tmp = read_memory_integer (get_frame_base (fi) + (40 * 4), 4);
}
void
-hppa_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
- CORE_ADDR *fsr)
+hppa32_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *fsr)
{
int i;
const CORE_ADDR tmp = get_frame_base (fi) + (10 * 4);
@@ -95,6 +101,53 @@ hppa_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
}
}
+/* For hppa64_hpux_frame_saved_pc_in_sigtramp,
+ hppa64_hpux_frame_base_before_sigtramp and
+ hppa64_hpux_frame_find_saved_regs_in_sigtramp:
+
+ These functions are the PA64 ABI equivalents of the 32bits counterparts
+ above. See the comments there.
+
+ For PA64, the save_state structure is at an offset of 24 32-bit words
+ from the sigcontext structure. The 64 bit general registers are at an
+ offset of 640 bytes from the beginning of the save_state structure,
+ and the floating pointer register are at an offset of 256 bytes from
+ the beginning of the save_state structure. */
+
+void
+hppa64_hpux_frame_saved_pc_in_sigtramp (struct frame_info *fi, CORE_ADDR *tmp)
+{
+ *tmp = read_memory_integer
+ (get_frame_base (fi) + (24 * 4) + 640 + (33 * 8), 8);
+}
+
+void
+hppa64_hpux_frame_base_before_sigtramp (struct frame_info *fi,
+ CORE_ADDR *tmp)
+{
+ *tmp = read_memory_integer
+ (get_frame_base (fi) + (24 * 4) + 640 + (30 * 8), 8);
+}
+
+void
+hppa64_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
+ CORE_ADDR *fsr)
+{
+ int i;
+ const CORE_ADDR tmp1 = get_frame_base (fi) + (24 * 4) + 640;
+ const CORE_ADDR tmp2 = get_frame_base (fi) + (24 * 4) + 256;
+
+ for (i = 0; i < NUM_REGS; i++)
+ {
+ if (i == SP_REGNUM)
+ fsr[SP_REGNUM] = read_memory_integer (tmp1 + SP_REGNUM * 8, 8);
+ else if (i >= FP0_REGNUM)
+ fsr[i] = tmp2 + (i - FP0_REGNUM) * 8;
+ else
+ fsr[i] = tmp1 + i * 8;
+ }
+}
+
static void
hppa_hpux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -118,6 +171,9 @@ _initialize_hppa_hpux_tdep (void)
{
gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_HPUX_SOM,
hppa_hpux_som_init_abi);
- gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_HPUX_ELF,
+ /* FIXME brobecker 2003-08-13: The machine number 25 corresponds to
+ the hppa2.0w bfd arch_info. A #define should probably be defined
+ in bfd, instead of using this hard-coded number. */
+ gdbarch_register_osabi (bfd_arch_hppa, 25, GDB_OSABI_HPUX_ELF,
hppa_hpux_elf_init_abi);
}
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index fed6cb1..699cd74 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -64,9 +64,20 @@
#include "target.h"
#include "symfile.h"
#include "objfiles.h"
+#include "hppa-tdep.h"
/* Some local constants. */
-static const int hppa_num_regs = 128;
+static const int hppa32_num_regs = 128;
+static const int hppa64_num_regs = 96;
+
+static const int hppa64_call_dummy_breakpoint_offset = 22 * 4;
+
+/* DEPRECATED_CALL_DUMMY_LENGTH is computed based on the size of a
+ word on the target machine, not the size of an instruction. Since
+ a word on this target holds two instructions we have to divide the
+ instruction size by two to get the word size of the dummy. */
+static const int hppa32_call_dummy_length = INSTRUCTION_SIZE * 28;
+static const int hppa64_call_dummy_length = INSTRUCTION_SIZE * 26 / 2;
/* Get at various relevent fields of an instruction word. */
#define MASK_5 0x1f
@@ -164,16 +175,23 @@ int hppa_in_solib_call_trampoline (CORE_ADDR pc, char *name);
int hppa_in_solib_return_trampoline (CORE_ADDR pc, char *name);
CORE_ADDR hppa_saved_pc_after_call (struct frame_info *frame);
int hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs);
-CORE_ADDR hppa_stack_align (CORE_ADDR sp);
+CORE_ADDR hppa32_stack_align (CORE_ADDR sp);
+CORE_ADDR hppa64_stack_align (CORE_ADDR sp);
int hppa_pc_requires_run_before_use (CORE_ADDR pc);
int hppa_instruction_nullified (void);
int hppa_register_raw_size (int reg_nr);
int hppa_register_byte (int reg_nr);
-struct type * hppa_register_virtual_type (int reg_nr);
+struct type * hppa32_register_virtual_type (int reg_nr);
+struct type * hppa64_register_virtual_type (int reg_nr);
void hppa_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
-void hppa_extract_return_value (struct type *type, char *regbuf, char *valbuf);
-int hppa_use_struct_convention (int gcc_p, struct type *type);
-void hppa_store_return_value (struct type *type, char *valbuf);
+void hppa32_extract_return_value (struct type *type, char *regbuf,
+ char *valbuf);
+void hppa64_extract_return_value (struct type *type, char *regbuf,
+ char *valbuf);
+int hppa32_use_struct_convention (int gcc_p, struct type *type);
+int hppa64_use_struct_convention (int gcc_p, struct type *type);
+void hppa32_store_return_value (struct type *type, char *valbuf);
+void hppa64_store_return_value (struct type *type, char *valbuf);
CORE_ADDR hppa_extract_struct_value_address (char *regbuf);
int hppa_cannot_store_register (int regnum);
void hppa_init_extra_frame_info (int fromleaf, struct frame_info *frame);
@@ -182,7 +200,6 @@ int hppa_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe);
int hppa_frameless_function_invocation (struct frame_info *frame);
CORE_ADDR hppa_frame_saved_pc (struct frame_info *frame);
CORE_ADDR hppa_frame_args_address (struct frame_info *fi);
-CORE_ADDR hppa_frame_locals_address (struct frame_info *fi);
int hppa_frame_num_args (struct frame_info *frame);
void hppa_push_dummy_frame (void);
void hppa_pop_frame (void);
@@ -217,11 +234,19 @@ extern int exception_catchpoints_are_fragile;
/* Should call_function allocate stack space for a struct return? */
int
-hppa_use_struct_convention (int gcc_p, struct type *type)
+hppa32_use_struct_convention (int gcc_p, struct type *type)
{
return (TYPE_LENGTH (type) > 2 * DEPRECATED_REGISTER_SIZE);
}
-
+
+/* Same as hppa32_use_struct_convention() for the PA64 ABI. */
+
+int
+hppa64_use_struct_convention (int gcc_p, struct type *type)
+{
+ /* RM: struct upto 128 bits are returned in registers */
+ return TYPE_LENGTH (type) > 16;
+}
/* Routines to extract various sized constants out of hppa
instructions. */
@@ -681,7 +706,7 @@ hppa_breakpoint_from_pc (CORE_ADDR *pc, int *len)
/* Return the name of a register. */
const char *
-hppa_register_name (int i)
+hppa32_register_name (int i)
{
static char *names[] = {
"flags", "r1", "rp", "r3",
@@ -4782,7 +4807,7 @@ hppa_skip_permanent_breakpoint (void)
Called only in the context of the "return" command. */
void
-hppa_store_return_value (struct type *type, char *valbuf)
+hppa32_store_return_value (struct type *type, char *valbuf)
{
/* For software floating point, the return value goes into the
integer registers. But we do not have any flag to key this on,
@@ -4800,6 +4825,32 @@ hppa_store_return_value (struct type *type, char *valbuf)
valbuf, TYPE_LENGTH (type));
}
+/* Same as hppa32_store_return_value(), but for the PA64 ABI. */
+
+void
+hppa64_store_return_value (struct type *type, char *valbuf)
+{
+ if (TYPE_CODE (type) == TYPE_CODE_FLT)
+ deprecated_write_register_bytes
+ (REGISTER_BYTE (FP4_REGNUM)
+ + DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (type),
+ valbuf, TYPE_LENGTH (type));
+ else if (is_integral_type(type))
+ deprecated_write_register_bytes
+ (REGISTER_BYTE (28)
+ + DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (type),
+ valbuf, TYPE_LENGTH (type));
+ else if (TYPE_LENGTH (type) <= 8)
+ deprecated_write_register_bytes
+ (REGISTER_BYTE (28),valbuf, TYPE_LENGTH (type));
+ else if (TYPE_LENGTH (type) <= 16)
+ {
+ deprecated_write_register_bytes (REGISTER_BYTE (28),valbuf, 8);
+ deprecated_write_register_bytes
+ (REGISTER_BYTE (29), valbuf + 8, TYPE_LENGTH (type) - 8);
+ }
+}
+
/* Copy the function's return value into VALBUF.
This function is called only in the context of "target function calls",
@@ -4808,15 +4859,13 @@ hppa_store_return_value (struct type *type, char *valbuf)
"return" command. */
void
-hppa_extract_return_value (struct type *type, char *regbuf, char *valbuf)
+hppa32_extract_return_value (struct type *type, char *regbuf, char *valbuf)
{
if (TYPE_CODE (type) == TYPE_CODE_FLT)
- memcpy (valbuf,
- (char *)regbuf + REGISTER_BYTE (FP4_REGNUM),
- TYPE_LENGTH (type));
+ memcpy (valbuf, regbuf + REGISTER_BYTE (FP4_REGNUM), TYPE_LENGTH (type));
else
memcpy (valbuf,
- ((char *)regbuf
+ (regbuf
+ REGISTER_BYTE (28)
+ (TYPE_LENGTH (type) > 4
? (8 - TYPE_LENGTH (type))
@@ -4824,6 +4873,34 @@ hppa_extract_return_value (struct type *type, char *regbuf, char *valbuf)
TYPE_LENGTH (type));
}
+/* Same as hppa32_extract_return_value but for the PA64 ABI case. */
+
+void
+hppa64_extract_return_value (struct type *type, char *regbuf, char *valbuf)
+{
+ /* RM: Floats are returned in FR4R, doubles in FR4.
+ Integral values are in r28, padded on the left.
+ Aggregates less that 65 bits are in r28, right padded.
+ Aggregates upto 128 bits are in r28 and r29, right padded. */
+ if (TYPE_CODE (type) == TYPE_CODE_FLT)
+ memcpy (valbuf,
+ regbuf + REGISTER_BYTE (FP4_REGNUM)
+ + DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (type),
+ TYPE_LENGTH (type));
+ else if (is_integral_type(type))
+ memcpy (valbuf,
+ regbuf + REGISTER_BYTE (28)
+ + DEPRECATED_REGISTER_SIZE - TYPE_LENGTH (type),
+ TYPE_LENGTH (type));
+ else if (TYPE_LENGTH (type) <= 8)
+ memcpy (valbuf, regbuf + REGISTER_BYTE (28), TYPE_LENGTH (type));
+ else if (TYPE_LENGTH (type) <= 16)
+ {
+ memcpy (valbuf, regbuf + REGISTER_BYTE (28), 8);
+ memcpy (valbuf + 8, regbuf + REGISTER_BYTE (29), TYPE_LENGTH (type) - 8);
+ }
+}
+
int
hppa_reg_struct_has_addr (int gcc_p, struct type *type)
{
@@ -4840,7 +4917,7 @@ hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs)
}
CORE_ADDR
-hppa_stack_align (CORE_ADDR sp)
+hppa32_stack_align (CORE_ADDR sp)
{
/* elz: adjust the quantity to the next highest value which is
64-bit aligned. This is used in valops.c, when the sp is adjusted.
@@ -4848,6 +4925,13 @@ hppa_stack_align (CORE_ADDR sp)
return ((sp % 8) ? (sp + 7) & -8 : sp);
}
+CORE_ADDR
+hppa64_stack_align (CORE_ADDR sp)
+{
+ /* The PA64 ABI mandates a 16 byte stack alignment. */
+ return ((sp % 16) ? (sp + 15) & -16 : sp);
+}
+
int
hppa_pc_requires_run_before_use (CORE_ADDR pc)
{
@@ -4901,14 +4985,16 @@ hppa_register_raw_size (int reg_nr)
int
hppa_register_byte (int reg_nr)
{
- return reg_nr * 4;
+ struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+
+ return reg_nr * tdep->bytes_per_address;
}
/* Return the GDB type object for the "standard" data type of data
in register N. */
struct type *
-hppa_register_virtual_type (int reg_nr)
+hppa32_register_virtual_type (int reg_nr)
{
if (reg_nr < FP4_REGNUM)
return builtin_type_int;
@@ -4916,6 +5002,18 @@ hppa_register_virtual_type (int reg_nr)
return builtin_type_float;
}
+/* Return the GDB type object for the "standard" data type of data
+ in register N. hppa64 version. */
+
+struct type *
+hppa64_register_virtual_type (int reg_nr)
+{
+ if (reg_nr < FP4_REGNUM)
+ return builtin_type_unsigned_long_long;
+ else
+ return builtin_type_double;
+}
+
/* Store the address of the place in which to copy the structure the
subroutine will return. This is called from call_function. */
@@ -4979,6 +5077,7 @@ hppa_fetch_pointer_argument (struct frame_info *frame, int argi,
static struct gdbarch *
hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
+ struct gdbarch_tdep *tdep;
struct gdbarch *gdbarch;
/* Try to determine the ABI of the object we are loading. */
@@ -4995,12 +5094,70 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
return (arches->gdbarch);
/* If none found, then allocate and initialize one. */
- gdbarch = gdbarch_alloc (&info, NULL);
+ tdep = XMALLOC (struct gdbarch_tdep);
+ gdbarch = gdbarch_alloc (&info, tdep);
+
+ /* Determine from the bfd_arch_info structure if we are dealing with
+ a 32 or 64 bits architecture. If the bfd_arch_info is not available,
+ then default to a 32bit machine. */
+ if (info.bfd_arch_info != NULL)
+ tdep->bytes_per_address =
+ info.bfd_arch_info->bits_per_address / info.bfd_arch_info->bits_per_byte;
+ else
+ tdep->bytes_per_address = 4;
- /* Hook in ABI-specific overrides, if they have been registered. */
- gdbarch_init_osabi (info, gdbarch);
+ /* Some parts of the gdbarch vector depend on whether we are running
+ on a 32 bits or 64 bits target. */
+ switch (tdep->bytes_per_address)
+ {
+ case 4:
+ set_gdbarch_num_regs (gdbarch, hppa32_num_regs);
+ set_gdbarch_register_name (gdbarch, hppa32_register_name);
+ set_gdbarch_deprecated_register_virtual_type
+ (gdbarch, hppa32_register_virtual_type);
+ set_gdbarch_deprecated_call_dummy_length
+ (gdbarch, hppa32_call_dummy_length);
+ set_gdbarch_stack_align (gdbarch, hppa32_stack_align);
+ set_gdbarch_reg_struct_has_addr (gdbarch, hppa_reg_struct_has_addr);
+ set_gdbarch_deprecated_extract_return_value
+ (gdbarch, hppa32_extract_return_value);
+ set_gdbarch_use_struct_convention
+ (gdbarch, hppa32_use_struct_convention);
+ set_gdbarch_deprecated_store_return_value
+ (gdbarch, hppa32_store_return_value);
+ break;
+ case 8:
+ set_gdbarch_num_regs (gdbarch, hppa64_num_regs);
+ set_gdbarch_register_name (gdbarch, hppa64_register_name);
+ set_gdbarch_deprecated_register_virtual_type
+ (gdbarch, hppa64_register_virtual_type);
+ set_gdbarch_deprecated_call_dummy_breakpoint_offset
+ (gdbarch, hppa64_call_dummy_breakpoint_offset);
+ set_gdbarch_deprecated_call_dummy_length
+ (gdbarch, hppa64_call_dummy_length);
+ set_gdbarch_stack_align (gdbarch, hppa64_stack_align);
+ set_gdbarch_deprecated_extract_return_value
+ (gdbarch, hppa64_extract_return_value);
+ set_gdbarch_use_struct_convention
+ (gdbarch, hppa64_use_struct_convention);
+ set_gdbarch_deprecated_store_return_value
+ (gdbarch, hppa64_store_return_value);
+ break;
+ default:
+ internal_error (__FILE__, __LINE__, "Unsupported address size: %d",
+ tdep->bytes_per_address);
+ }
+
+ /* The following gdbarch vector elements depend on other parts of this
+ vector which have been set above, depending on the ABI. */
+ set_gdbarch_deprecated_register_bytes
+ (gdbarch, gdbarch_num_regs (gdbarch) * tdep->bytes_per_address);
+ set_gdbarch_long_bit (gdbarch, tdep->bytes_per_address * TARGET_CHAR_BIT);
+ set_gdbarch_long_long_bit (gdbarch, 64);
+ set_gdbarch_ptr_bit (gdbarch, tdep->bytes_per_address * TARGET_CHAR_BIT);
- set_gdbarch_reg_struct_has_addr (gdbarch, hppa_reg_struct_has_addr);
+ /* The following gdbarch vector elements do not depend on the address
+ size, or in any other gdbarch element previously set. */
set_gdbarch_function_start_offset (gdbarch, 0);
set_gdbarch_skip_prologue (gdbarch, hppa_skip_prologue);
set_gdbarch_skip_trampoline_code (gdbarch, hppa_skip_trampoline_code);
@@ -5009,28 +5166,19 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
hppa_in_solib_return_trampoline);
set_gdbarch_deprecated_saved_pc_after_call (gdbarch, hppa_saved_pc_after_call);
set_gdbarch_inner_than (gdbarch, hppa_inner_than);
- set_gdbarch_stack_align (gdbarch, hppa_stack_align);
set_gdbarch_decr_pc_after_break (gdbarch, 0);
- set_gdbarch_deprecated_register_size (gdbarch, 4);
- set_gdbarch_num_regs (gdbarch, hppa_num_regs);
+ set_gdbarch_deprecated_register_size (gdbarch, tdep->bytes_per_address);
set_gdbarch_deprecated_fp_regnum (gdbarch, 3);
set_gdbarch_sp_regnum (gdbarch, 30);
set_gdbarch_fp0_regnum (gdbarch, 64);
set_gdbarch_pc_regnum (gdbarch, PCOQ_HEAD_REGNUM);
set_gdbarch_npc_regnum (gdbarch, PCOQ_TAIL_REGNUM);
set_gdbarch_deprecated_register_raw_size (gdbarch, hppa_register_raw_size);
- set_gdbarch_deprecated_register_bytes (gdbarch, hppa_num_regs * 4);
set_gdbarch_deprecated_register_byte (gdbarch, hppa_register_byte);
set_gdbarch_deprecated_register_virtual_size (gdbarch, hppa_register_raw_size);
- set_gdbarch_deprecated_max_register_raw_size (gdbarch, 4);
+ set_gdbarch_deprecated_max_register_raw_size (gdbarch, tdep->bytes_per_address);
set_gdbarch_deprecated_max_register_virtual_size (gdbarch, 8);
- set_gdbarch_deprecated_register_virtual_type (gdbarch, hppa_register_virtual_type);
- set_gdbarch_register_name (gdbarch, hppa_register_name);
set_gdbarch_deprecated_store_struct_return (gdbarch, hppa_store_struct_return);
- set_gdbarch_deprecated_extract_return_value (gdbarch,
- hppa_extract_return_value);
- set_gdbarch_use_struct_convention (gdbarch, hppa_use_struct_convention);
- set_gdbarch_deprecated_store_return_value (gdbarch, hppa_store_return_value);
set_gdbarch_deprecated_extract_struct_value_address
(gdbarch, hppa_extract_struct_value_address);
set_gdbarch_cannot_store_register (gdbarch, hppa_cannot_store_register);
@@ -5043,9 +5191,9 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_args_skip (gdbarch, 0);
set_gdbarch_deprecated_push_dummy_frame (gdbarch, hppa_push_dummy_frame);
set_gdbarch_deprecated_pop_frame (gdbarch, hppa_pop_frame);
- set_gdbarch_deprecated_call_dummy_length (gdbarch, INSTRUCTION_SIZE * 28);
/* set_gdbarch_deprecated_fix_call_dummy (gdbarch, hppa_fix_call_dummy); */
set_gdbarch_deprecated_push_arguments (gdbarch, hppa_push_arguments);
+ set_gdbarch_addr_bits_remove (gdbarch, hppa_smash_text_address);
set_gdbarch_smash_text_address (gdbarch, hppa_smash_text_address);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
set_gdbarch_read_pc (gdbarch, hppa_target_read_pc);
@@ -5055,6 +5203,9 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Helper for function argument information. */
set_gdbarch_fetch_pointer_argument (gdbarch, hppa_fetch_pointer_argument);
+ /* Hook in ABI-specific overrides, if they have been registered. */
+ gdbarch_init_osabi (info, gdbarch);
+
return gdbarch;
}
diff --git a/gdb/builtin-regs.h b/gdb/hppa-tdep.h
index 631903a..05a4e89 100644
--- a/gdb/builtin-regs.h
+++ b/gdb/hppa-tdep.h
@@ -1,8 +1,5 @@
-/* Builtin registers, for GDB, the GNU debugger.
-
- Copyright 2002 Free Software Foundation, Inc.
-
- Contributed by Red Hat.
+/* Common target dependent code for GDB on HPPA systems.
+ Copyright 2003 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,19 +18,15 @@
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#ifndef BUILTIN_REGS_H
-#define BUILTIN_REGS_H
-
-struct frame_info;
-
-extern int builtin_reg_map_name_to_regnum (const char *str, int len);
-
-extern const char *builtin_reg_map_regnum_to_name (int regnum);
-
-extern struct value *value_of_builtin_reg (int regnum,
- struct frame_info *frame);
+#ifndef HPPA_TDEP_H
+#define HPPA_TDEP_H
-extern void add_builtin_reg (const char *name,
- struct value *(value) (struct frame_info * frame));
+/* Target-dependent structure in gdbarch. */
+struct gdbarch_tdep
+{
+ /* The number of bytes in an address. For now, this field is designed
+ to allow us to differentiate hppa32 from hppa64 targets. */
+ int bytes_per_address;
+};
-#endif
+#endif /* HPPA_TDEP_H */
diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c
index 81be404..4549b37 100644
--- a/gdb/i386-linux-nat.c
+++ b/gdb/i386-linux-nat.c
@@ -23,6 +23,7 @@
#include "inferior.h"
#include "gdbcore.h"
#include "regcache.h"
+#include "linux-nat.h"
#include "gdb_assert.h"
#include "gdb_string.h"
@@ -890,6 +891,13 @@ child_resume (ptid_t ptid, int step, enum target_signal signal)
if (ptrace (request, pid, 0, target_signal_to_host (signal)) == -1)
perror_with_name ("ptrace");
}
+
+void
+child_post_startup_inferior (ptid_t ptid)
+{
+ i386_cleanup_dregs ();
+ linux_child_post_startup_inferior (ptid);
+}
/* Register that we are able to handle GNU/Linux ELF core file
diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
index 53a81a4..73794bc 100644
--- a/gdb/i386-nat.c
+++ b/gdb/i386-nat.c
@@ -230,6 +230,7 @@ i386_cleanup_dregs (void)
dr_status_mirror = 0;
}
+#ifndef LINUX_CHILD_POST_STARTUP_INFERIOR
/* Reset all debug registers at each new startup
to avoid missing watchpoints after restart. */
void
@@ -237,6 +238,7 @@ child_post_startup_inferior (ptid_t ptid)
{
i386_cleanup_dregs ();
}
+#endif /* LINUX_CHILD_POST_STARTUP_INFERIOR */
/* Print the values of the mirrored debug registers.
This is called when maint_show_dr is non-zero. To set that
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 1a3d072..9aa20d6 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -439,6 +439,7 @@ i386_analyze_frame_setup (CORE_ADDR pc, CORE_ADDR current_pc,
struct i386_frame_cache *cache)
{
unsigned char op;
+ int skip = 0;
if (current_pc <= pc)
return current_pc;
@@ -456,25 +457,61 @@ i386_analyze_frame_setup (CORE_ADDR pc, CORE_ADDR current_pc,
if (current_pc <= pc + 1)
return current_pc;
- /* Check for `movl %esp, %ebp' -- can be written in two ways. */
op = read_memory_unsigned_integer (pc + 1, 1);
+
+ /* Check for some special instructions that might be migrated
+ by GCC into the prologue. We check for
+
+ xorl %ebx, %ebx
+ xorl %ecx, %ecx
+ xorl %edx, %edx
+
+ and the equivalent
+
+ subl %ebx, %ebx
+ subl %ecx, %ecx
+ subl %edx, %edx
+
+ Make sure we only skip these instructions if we later see the
+ `movl %esp, %ebp' that actually sets up the frame. */
+ while (op == 0x29 || op == 0x31)
+ {
+ op = read_memory_unsigned_integer (pc + skip + 2, 1);
+ switch (op)
+ {
+ case 0xdb: /* %ebx */
+ case 0xc9: /* %ecx */
+ case 0xd2: /* %edx */
+ skip += 2;
+ break;
+ default:
+ return pc + 1;
+ }
+
+ op = read_memory_unsigned_integer (pc + skip + 1, 1);
+ }
+
+ /* Check for `movl %esp, %ebp' -- can be written in two ways. */
switch (op)
{
case 0x8b:
- if (read_memory_unsigned_integer (pc + 2, 1) != 0xec)
+ if (read_memory_unsigned_integer (pc + skip + 2, 1) != 0xec)
return pc + 1;
break;
case 0x89:
- if (read_memory_unsigned_integer (pc + 2, 1) != 0xe5)
+ if (read_memory_unsigned_integer (pc + skip + 2, 1) != 0xe5)
return pc + 1;
break;
default:
return pc + 1;
}
- /* OK, we actually have a frame. We just don't know how large it is
- yet. Set its size to zero. We'll adjust it if necessary. */
+ /* OK, we actually have a frame. We just don't know how large
+ it is yet. Set its size to zero. We'll adjust it if
+ necessary. We also now commit to skipping the special
+ instructions mentioned before. */
cache->locals = 0;
+ pc += skip;
/* If that's all, return now. */
if (current_pc <= pc + 3)
@@ -534,23 +571,22 @@ static CORE_ADDR
i386_analyze_register_saves (CORE_ADDR pc, CORE_ADDR current_pc,
struct i386_frame_cache *cache)
{
- if (cache->locals >= 0)
- {
- CORE_ADDR offset;
- unsigned char op;
- int i;
+ CORE_ADDR offset = 0;
+ unsigned char op;
+ int i;
- offset = - 4 - cache->locals;
- for (i = 0; i < 8 && pc < current_pc; i++)
- {
- op = read_memory_unsigned_integer (pc, 1);
- if (op < 0x50 || op > 0x57)
- break;
+ if (cache->locals > 0)
+ offset -= cache->locals;
+ for (i = 0; i < 8 && pc < current_pc; i++)
+ {
+ op = read_memory_unsigned_integer (pc, 1);
+ if (op < 0x50 || op > 0x57)
+ break;
- cache->saved_regs[op - 0x50] = offset;
- offset -= 4;
- pc++;
- }
+ offset -= 4;
+ cache->saved_regs[op - 0x50] = offset;
+ cache->sp_offset += 4;
+ pc++;
}
return pc;
@@ -795,7 +831,8 @@ i386_frame_prev_register (struct frame_info *next_frame, void **this_cache,
ULONGEST val;
/* Clear the direction flag. */
- frame_unwind_unsigned_register (next_frame, PS_REGNUM, &val);
+ val = frame_unwind_register_unsigned (next_frame,
+ I386_EFLAGS_REGNUM);
val &= ~(1 << 10);
store_unsigned_integer (valuep, 4, val);
}
@@ -851,7 +888,7 @@ static const struct frame_unwind i386_frame_unwind =
};
static const struct frame_unwind *
-i386_frame_p (CORE_ADDR pc)
+i386_frame_sniffer (struct frame_info *next_frame)
{
return &i386_frame_unwind;
}
@@ -929,8 +966,9 @@ static const struct frame_unwind i386_sigtramp_frame_unwind =
};
static const struct frame_unwind *
-i386_sigtramp_frame_p (CORE_ADDR pc)
+i386_sigtramp_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
char *name;
/* We shouldn't even bother to try if the OSABI didn't register
@@ -997,11 +1035,14 @@ i386_get_longjmp_target (CORE_ADDR *pc)
if (jb_pc_offset == -1)
return 0;
- sp = read_register (SP_REGNUM);
+ /* Don't use I386_ESP_REGNUM here, since this function is also used
+ for AMD64. */
+ regcache_cooked_read (current_regcache, SP_REGNUM, buf);
+ sp = extract_typed_address (buf, builtin_type_void_data_ptr);
if (target_read_memory (sp + len, buf, len))
return 0;
- jb_addr = extract_typed_address (buf, builtin_type_void_func_ptr);
+ jb_addr = extract_typed_address (buf, builtin_type_void_data_ptr);
if (target_read_memory (jb_addr + jb_pc_offset, buf, len))
return 0;
@@ -1110,8 +1151,8 @@ i386_extract_return_value (struct type *type, struct regcache *regcache,
}
else
{
- int low_size = REGISTER_RAW_SIZE (LOW_RETURN_REGNUM);
- int high_size = REGISTER_RAW_SIZE (HIGH_RETURN_REGNUM);
+ int low_size = register_size (current_gdbarch, LOW_RETURN_REGNUM);
+ int high_size = register_size (current_gdbarch, HIGH_RETURN_REGNUM);
if (len <= low_size)
{
@@ -1184,8 +1225,8 @@ i386_store_return_value (struct type *type, struct regcache *regcache,
}
else
{
- int low_size = REGISTER_RAW_SIZE (LOW_RETURN_REGNUM);
- int high_size = REGISTER_RAW_SIZE (HIGH_RETURN_REGNUM);
+ int low_size = register_size (current_gdbarch, LOW_RETURN_REGNUM);
+ int high_size = register_size (current_gdbarch, HIGH_RETURN_REGNUM);
if (len <= low_size)
regcache_raw_write_part (regcache, LOW_RETURN_REGNUM, 0, len, valbuf);
@@ -1299,7 +1340,7 @@ i386_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
/* Extract (always little endian). */
regcache_raw_read (regcache, fpnum, mmx_buf);
- memcpy (buf, mmx_buf, REGISTER_RAW_SIZE (regnum));
+ memcpy (buf, mmx_buf, register_size (gdbarch, regnum));
}
else
regcache_raw_read (regcache, regnum, buf);
@@ -1317,7 +1358,7 @@ i386_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
/* Read ... */
regcache_raw_read (regcache, fpnum, mmx_buf);
/* ... Modify ... (always little endian). */
- memcpy (mmx_buf, buf, REGISTER_RAW_SIZE (regnum));
+ memcpy (mmx_buf, buf, register_size (gdbarch, regnum));
/* ... Write. */
regcache_raw_write (regcache, fpnum, mmx_buf);
}
@@ -1421,7 +1462,7 @@ i386_register_to_value (struct frame_info *frame, int regnum,
gdb_assert (regnum != -1);
gdb_assert (register_size (current_gdbarch, regnum) == 4);
- frame_read_register (frame, regnum, buf);
+ get_frame_register (frame, regnum, buf);
regnum = i386_next_regnum (regnum);
len -= 4;
buf += 4;
@@ -1689,14 +1730,14 @@ i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
}
-/* Get the ith function argument for the current function. */
+/* Get the ARGIth function argument for the current function. */
+
static CORE_ADDR
i386_fetch_pointer_argument (struct frame_info *frame, int argi,
struct type *type)
{
- CORE_ADDR stack;
- frame_read_register (frame, SP_REGNUM, &stack);
- return read_memory_unsigned_integer (stack + (4 * (argi + 1)), 4);
+ CORE_ADDR sp = get_frame_register_unsigned (frame, I386_ESP_REGNUM);
+ return read_memory_unsigned_integer (sp + (4 * (argi + 1)), 4);
}
@@ -1715,10 +1756,23 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep = XMALLOC (struct gdbarch_tdep);
gdbarch = gdbarch_alloc (&info, tdep);
- /* The i386 default settings don't include the SSE registers.
+ /* The i386 default settings now include the SSE registers.
+ I386_NUM_XREGS includes mxcsr, and we don't want to count
+ this as one of the xmm regs -- which is why we subtract one.
+
+ Note: kevinb/2003-07-14: Whatever Mark's concerns are about the
+ FPU registers in the FIXME below apply to the SSE registers as well.
+ The only problem that I see is that these registers will show up
+ in "info all-registers" even on CPUs where they don't exist. IMO,
+ however, if it's a choice between printing them always (even when
+ they don't exist) or never showing them to the user (even when they
+ do exist), I prefer the former over the latter. Ideally, of course,
+ we'd somehow autodetect that we have them (or not) and display them
+ when we have them and suppress them when we don't.
+
FIXME: kettenis/20020614: They do include the FPU registers for
now, which probably is not quite right. */
- tdep->num_xmm_regs = 0;
+ tdep->num_xmm_regs = I386_NUM_XREGS - 1;
tdep->jb_pc_offset = -1;
tdep->struct_return = pcc_struct_return;
@@ -1740,9 +1794,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
alignment. */
set_gdbarch_long_double_bit (gdbarch, 96);
- /* The default ABI includes general-purpose registers and
- floating-point registers. */
- set_gdbarch_num_regs (gdbarch, I386_NUM_GREGS + I386_NUM_FREGS);
+ /* The default ABI includes general-purpose registers,
+ floating-point registers, and the SSE registers. */
+ set_gdbarch_num_regs (gdbarch, I386_SSE_NUM_REGS);
set_gdbarch_register_name (gdbarch, i386_register_name);
set_gdbarch_register_type (gdbarch, i386_register_type);
@@ -1812,15 +1866,14 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Hook in the DWARF CFI frame unwinder. */
frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
- set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
frame_base_set_default (gdbarch, &i386_frame_base);
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
- frame_unwind_append_predicate (gdbarch, i386_sigtramp_frame_p);
- frame_unwind_append_predicate (gdbarch, i386_frame_p);
+ frame_unwind_append_sniffer (gdbarch, i386_sigtramp_frame_sniffer);
+ frame_unwind_append_sniffer (gdbarch, i386_frame_sniffer);
return gdbarch;
}
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index 38eac20..7412b8e 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -178,9 +178,20 @@ extern void i386_elf_init_abi (struct gdbarch_info, struct gdbarch *);
/* Initialize a SVR4 architecture variant. */
extern void i386_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
+
-/* Functions exported from i386bsd-tdep.c. */
+/* Functions and variables exported from i386bsd-tdep.c. */
extern void i386bsd_init_abi (struct gdbarch_info, struct gdbarch *);
+extern CORE_ADDR i386fbsd_sigtramp_start;
+extern CORE_ADDR i386fbsd_sigtramp_end;
+extern CORE_ADDR i386obsd_sigtramp_start;
+extern CORE_ADDR i386obsd_sigtramp_end;
+extern int i386fbsd4_sc_reg_offset[];
+extern int i386fbsd_sc_reg_offset[];
+extern int i386nbsd_sc_reg_offset[];
+extern int i386obsd_sc_reg_offset[];
+extern int i386bsd_sc_reg_offset[];
#endif /* i386-tdep.h */
+
diff --git a/gdb/i386bsd-nat.c b/gdb/i386bsd-nat.c
index 60524de..0fc66fc 100644
--- a/gdb/i386bsd-nat.c
+++ b/gdb/i386bsd-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for modern i386 BSD's.
- Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GDB.
@@ -196,9 +196,9 @@ fetch_inferior_registers (int regno)
#ifdef HAVE_PT_GETXMMREGS
char xmmregs[512];
- if (have_ptrace_xmmregs != 0 &&
- ptrace(PT_GETXMMREGS, PIDGET (inferior_ptid),
- (PTRACE_ARG3_TYPE) xmmregs, 0) == 0)
+ if (have_ptrace_xmmregs != 0
+ && ptrace(PT_GETXMMREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) xmmregs, 0) == 0)
{
have_ptrace_xmmregs = 1;
i387_supply_fxsave (xmmregs);
@@ -252,9 +252,9 @@ store_inferior_registers (int regno)
#ifdef HAVE_PT_GETXMMREGS
char xmmregs[512];
- if (have_ptrace_xmmregs != 0 &&
- ptrace(PT_GETXMMREGS, PIDGET (inferior_ptid),
- (PTRACE_ARG3_TYPE) xmmregs, 0) == 0)
+ if (have_ptrace_xmmregs != 0
+ && ptrace(PT_GETXMMREGS, PIDGET (inferior_ptid),
+ (PTRACE_ARG3_TYPE) xmmregs, 0) == 0)
{
have_ptrace_xmmregs = 1;
@@ -395,20 +395,15 @@ _initialize_i386bsd_nat (void)
information. */
#if defined (__FreeBSD_version) && __FreeBSD_version >= 400011
- extern int i386fbsd4_sc_reg_offset[];
#define SC_REG_OFFSET i386fbsd4_sc_reg_offset
#elif defined (__FreeBSD_version) && __FreeBSD_version >= 300005
- extern int i386fbsd_sc_reg_offset[];
#define SC_REG_OFFSET i386fbsd_sc_reg_offset
#elif defined (NetBSD) || defined (__NetBSD_Version__)
- extern int i386nbsd_sc_reg_offset[];
#define SC_REG_OFFSET i386nbsd_sc_reg_offset
#elif defined (OpenBSD)
- extern int i386obsd_sc_reg_offset[];
#define SC_REG_OFFSET i386obsd_sc_reg_offset
#else
- extern int i386bsd_sc_reg_offset[];
-#define SC_PC_OFFSET i386bsd_sc_reg_offset
+#define SC_REG_OFFSET i386bsd_sc_reg_offset
#endif
/* We only check the program counter, stack pointer and frame
diff --git a/gdb/i386fbsd-nat.c b/gdb/i386fbsd-nat.c
index a80d0a0..7feb7b0 100644
--- a/gdb/i386fbsd-nat.c
+++ b/gdb/i386fbsd-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for FreeBSD/i386.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GDB.
@@ -26,6 +26,8 @@
#include <sys/ptrace.h>
#include <sys/sysctl.h>
+#include "i386-tdep.h"
+
/* Prevent warning from -Wmissing-prototypes. */
void _initialize_i386fbsd_nat (void);
@@ -47,7 +49,7 @@ child_resume (ptid_t ptid, int step, enum target_signal signal)
if (!step)
{
- unsigned int eflags;
+ ULONGEST eflags;
/* Workaround for a bug in FreeBSD. Make sure that the trace
flag is off when doing a continue. There is a code path
@@ -59,9 +61,11 @@ child_resume (ptid_t ptid, int step, enum target_signal signal)
never goes through the kernel's trap() function which would
normally clear it. */
- eflags = read_register (PS_REGNUM);
+ regcache_cooked_read_unsigned (current_regcache, I386_EFLAGS_REGNUM,
+ &eflags);
if (eflags & 0x0100)
- write_register (PS_REGNUM, eflags & ~0x0100);
+ regcache_cooked_write_unsigned (current_regcache, I386_EFLAGS_REGNUM,
+ eflags & ~0x0100);
request = PT_CONTINUE;
}
@@ -89,9 +93,6 @@ _initialize_i386fbsd_nat (void)
int ps_strings;
size_t len;
- extern CORE_ADDR i386fbsd_sigtramp_start;
- extern CORE_ADDR i386fbsd_sigtramp_end;
-
mib[0] = CTL_KERN;
mib[1] = KERN_PS_STRINGS;
len = sizeof (ps_strings);
diff --git a/gdb/i386obsd-nat.c b/gdb/i386obsd-nat.c
index b2cdc2a..b0d4e03 100644
--- a/gdb/i386obsd-nat.c
+++ b/gdb/i386obsd-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for OpenBSD/i386.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,6 +23,8 @@
#include <sys/param.h>
#include <sys/sysctl.h>
+#include "i386-tdep.h"
+
/* Prevent warning from -Wmissing-prototypes. */
void _initialize_i386obsd_nat (void);
@@ -44,9 +46,6 @@ _initialize_i386obsd_nat (void)
int mib[2];
size_t len;
- extern CORE_ADDR i386obsd_sigtramp_start;
- extern CORE_ADDR i386obsd_sigtramp_end;
-
mib[0] = CTL_VM;
mib[1] = VM_PSSTRINGS;
len = sizeof (_ps);
diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c
index f7800af..b6e53a1 100644
--- a/gdb/i387-tdep.c
+++ b/gdb/i387-tdep.c
@@ -217,22 +217,14 @@ i387_print_float_info (struct gdbarch *gdbarch, struct ui_file *file,
int fpreg;
int top;
- frame_register_read (frame, FCTRL_REGNUM, buf);
- fctrl = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FSTAT_REGNUM, buf);
- fstat = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FTAG_REGNUM, buf);
- ftag = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FISEG_REGNUM, buf);
- fiseg = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FIOFF_REGNUM, buf);
- fioff = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FOSEG_REGNUM, buf);
- foseg = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FOOFF_REGNUM, buf);
- fooff = extract_unsigned_integer (buf, 4);
- frame_register_read (frame, FOP_REGNUM, buf);
- fop = extract_unsigned_integer (buf, 4);
+ fctrl = get_frame_register_unsigned (frame, FCTRL_REGNUM);
+ fstat = get_frame_register_unsigned (frame, FSTAT_REGNUM);
+ ftag = get_frame_register_unsigned (frame, FTAG_REGNUM);
+ fiseg = get_frame_register_unsigned (frame, FISEG_REGNUM);
+ fioff = get_frame_register_unsigned (frame, FIOFF_REGNUM);
+ foseg = get_frame_register_unsigned (frame, FOSEG_REGNUM);
+ fooff = get_frame_register_unsigned (frame, FOOFF_REGNUM);
+ fop = get_frame_register_unsigned (frame, FOP_REGNUM);
top = ((fstat >> 11) & 7);
@@ -260,7 +252,7 @@ i387_print_float_info (struct gdbarch *gdbarch, struct ui_file *file,
break;
}
- frame_register_read (frame, (fpreg + 8 - top) % 8 + FP0_REGNUM, raw);
+ get_frame_register (frame, (fpreg + 8 - top) % 8 + FP0_REGNUM, raw);
fputs_filtered ("0x", file);
for (i = 9; i >= 0; i--)
@@ -310,7 +302,7 @@ i387_register_to_value (struct frame_info *frame, int regnum,
/* Convert to TYPE. This should be a no-op if TYPE is equivalent to
the extended floating-point format used by the FPU. */
- frame_read_register (frame, regnum, from);
+ get_frame_register (frame, regnum, from);
convert_typed_floating (from, builtin_type_i387_ext, to, type);
}
diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c
index 7d4cc43..dacb672 100644
--- a/gdb/ia64-linux-nat.c
+++ b/gdb/ia64-linux-nat.c
@@ -634,7 +634,8 @@ ia64_linux_stopped_by_watchpoint (ptid_t ptid)
errno = 0;
ptrace (PTRACE_GETSIGINFO, tid, (PTRACE_ARG3_TYPE) 0, &siginfo);
- if (errno != 0 || (siginfo.si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */)
+ if (errno != 0 || siginfo.si_signo != SIGTRAP ||
+ (siginfo.si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */)
return 0;
psr = read_register_pid (IA64_PSR_REGNUM, ptid);
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 103ff63..b6992d9 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -2298,8 +2298,8 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_deprecated_call_dummy_words (gdbarch, ia64_call_dummy_words);
set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, sizeof (ia64_call_dummy_words));
set_gdbarch_deprecated_init_extra_frame_info (gdbarch, ia64_init_extra_frame_info);
- set_gdbarch_frame_args_address (gdbarch, ia64_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, ia64_frame_locals_address);
+ set_gdbarch_deprecated_frame_args_address (gdbarch, ia64_frame_args_address);
+ set_gdbarch_deprecated_frame_locals_address (gdbarch, ia64_frame_locals_address);
/* We won't necessarily have a frame pointer and even if we do, it
winds up being extraordinarly messy when attempting to find the
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 477fc0f..98e7da5 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -421,7 +421,7 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
vector. Hence this direct call.
A follow-on change is to modify this interface so that it takes
- thread OR frame OR tpid as a parameter, and returns a dummy
+ thread OR frame OR ptid as a parameter, and returns a dummy
frame handle. The handle can then be used further down as a
parameter to generic_save_dummy_frame_tos(). Hmm, thinking
about it, since everything is ment to be using generic dummy
@@ -440,12 +440,24 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
CORE_ADDR old_sp = read_sp ();
if (gdbarch_frame_align_p (current_gdbarch))
{
+ sp = gdbarch_frame_align (current_gdbarch, old_sp);
+ /* NOTE: cagney/2003-08-13: Skip the "red zone". For some
+ ABIs, a function can use memory beyond the inner most stack
+ address. AMD64 called that region the "red zone". Skip at
+ least the "red zone" size before allocating any space on
+ the stack. */
+ if (INNER_THAN (1, 2))
+ sp -= gdbarch_frame_red_zone_size (current_gdbarch);
+ else
+ sp += gdbarch_frame_red_zone_size (current_gdbarch);
+ /* Still aligned? */
+ gdb_assert (sp == gdbarch_frame_align (current_gdbarch, sp));
/* NOTE: cagney/2002-09-18:
On a RISC architecture, a void parameterless generic dummy
frame (i.e., no parameters, no result) typically does not
need to push anything the stack and hence can leave SP and
- FP. Similarly, a framelss (possibly leaf) function does
+ FP. Similarly, a frameless (possibly leaf) function does
not push anything on the stack and, hence, that too can
leave FP and SP unchanged. As a consequence, a sequence of
void parameterless generic dummy frame calls to frameless
@@ -460,7 +472,6 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
stack. That way, two dummy frames can never be identical.
It does burn a few bytes of stack but that is a small price
to pay :-). */
- sp = gdbarch_frame_align (current_gdbarch, old_sp);
if (sp == old_sp)
{
if (INNER_THAN (1, 2))
@@ -476,12 +487,16 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
else
/* FIXME: cagney/2002-09-18: Hey, you loose!
- Who knows how badly aligned the SP is! Further, per comment
- above, if the generic dummy frame ends up empty (because
- nothing is pushed) GDB won't be able to correctly perform
- back traces. If a target is having trouble with backtraces,
- first thing to do is add FRAME_ALIGN() to the architecture
- vector. If that fails, try unwind_dummy_id(). */
+ Who knows how badly aligned the SP is!
+
+ If the generic dummy frame ends up empty (because nothing is
+ pushed) GDB won't be able to correctly perform back traces.
+ If a target is having trouble with backtraces, first thing to
+ do is add FRAME_ALIGN() to the architecture vector. If that
+ fails, try unwind_dummy_id().
+
+ If the ABI specifies a "Red Zone" (see the doco) the code
+ below will quietly trash it. */
sp = old_sp;
}
@@ -547,6 +562,23 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
it's address is the same as the address of the dummy. */
bp_addr = dummy_addr;
break;
+ case AT_SYMBOL:
+ /* Some executables define a symbol __CALL_DUMMY_ADDRESS whose
+ address is the location where the breakpoint should be
+ placed. Once all targets are using the overhauled frame code
+ this can be deleted - ON_STACK is a better option. */
+ {
+ struct minimal_symbol *sym;
+
+ sym = lookup_minimal_symbol ("__CALL_DUMMY_ADDRESS", NULL, NULL);
+ real_pc = funaddr;
+ if (sym)
+ dummy_addr = SYMBOL_VALUE_ADDRESS (sym);
+ else
+ dummy_addr = entry_point_address ();
+ bp_addr = dummy_addr;
+ break;
+ }
default:
internal_error (__FILE__, __LINE__, "bad switch");
}
@@ -920,7 +952,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
if (stopped_by_random_signal || !stop_stack_dummy)
{
/* Find the name of the function we're about to complain about. */
- char *name = NULL;
+ const char *name = NULL;
{
struct symbol *symbol = find_pc_function (funaddr);
if (symbol)
@@ -932,17 +964,17 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
if (msymbol)
name = SYMBOL_PRINT_NAME (msymbol);
}
+ if (name == NULL)
+ {
+ /* Can't use a cleanup here. It is discarded, instead use
+ an alloca. */
+ char *tmp = xstrprintf ("at %s", local_hex_string (funaddr));
+ char *a = alloca (strlen (tmp) + 1);
+ strcpy (a, tmp);
+ xfree (tmp);
+ name = a;
+ }
}
- if (name == NULL)
- {
- /* NOTE: cagney/2003-04-23: Don't blame me. This code dates
- back to 1993-07-08, I simply moved it. */
- char format[80];
- sprintf (format, "at %s", local_hex_format ());
- name = alloca (80);
- /* FIXME-32x64: assumes funaddr fits in a long. */
- sprintf (name, format, (unsigned long) funaddr);
- }
if (stopped_by_random_signal)
{
/* We stopped inside the FUNCTION because of a random
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 911e865..6831d6b 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1651,7 +1651,8 @@ registers_info (char *addr_exp, int fpregs)
/* A register name? */
{
- int regnum = frame_map_name_to_regnum (start, end - start);
+ int regnum = frame_map_name_to_regnum (deprecated_selected_frame,
+ start, end - start);
if (regnum >= 0)
{
gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
@@ -1676,24 +1677,24 @@ registers_info (char *addr_exp, int fpregs)
/* A register group? */
{
- struct reggroup *const *group;
- for (group = reggroups (current_gdbarch);
- (*group) != NULL;
- group++)
+ struct reggroup *group;
+ for (group = reggroup_next (current_gdbarch, NULL);
+ group != NULL;
+ group = reggroup_next (current_gdbarch, group))
{
/* Don't bother with a length check. Should the user
enter a short register group name, go with the first
group that matches. */
- if (strncmp (start, reggroup_name ((*group)), end - start) == 0)
+ if (strncmp (start, reggroup_name (group), end - start) == 0)
break;
}
- if ((*group) != NULL)
+ if (group != NULL)
{
int regnum;
for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
{
if (gdbarch_register_reggroup_p (current_gdbarch, regnum,
- (*group)))
+ group))
gdbarch_print_registers_info (current_gdbarch,
gdb_stdout, deprecated_selected_frame,
regnum, fpregs);
diff --git a/gdb/inferior.h b/gdb/inferior.h
index ed49d23..60191f2 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -438,6 +438,7 @@ extern int attach_flag;
/* Possible values for CALL_DUMMY_LOCATION. */
#define ON_STACK 1
#define AT_ENTRY_POINT 4
+#define AT_SYMBOL 5
/* FIXME: cagney/2000-04-17: gdbarch should manage this. The default
shouldn't be necessary. */
diff --git a/gdb/infptrace.c b/gdb/infptrace.c
index 6147cbe..5df9f6d 100644
--- a/gdb/infptrace.c
+++ b/gdb/infptrace.c
@@ -208,6 +208,7 @@ ptrace_wait (ptid_t ptid, int *status)
return wstate;
}
+#ifndef KILL_INFERIOR
void
kill_inferior (void)
{
@@ -229,6 +230,7 @@ kill_inferior (void)
ptrace_wait (null_ptid, &status);
target_mourn_inferior ();
}
+#endif /* KILL_INFERIOR */
#ifndef CHILD_RESUME
diff --git a/gdb/interps.c b/gdb/interps.c
index 6df1d4b..82e9af6 100644
--- a/gdb/interps.c
+++ b/gdb/interps.c
@@ -183,7 +183,7 @@ interp_set (struct interp *interp)
if (interp->procs->resume_proc != NULL
&& (!interp->procs->resume_proc (interp->data)))
{
- if (!interp_set (old_interp))
+ if (old_interp == NULL || !interp_set (old_interp))
internal_error (__FILE__, __LINE__,
"Failed to initialize new interp \"%s\" %s",
interp->name, "and could not restore old interp!\n");
diff --git a/gdb/interps.h b/gdb/interps.h
index 74008d6..d24cf6a 100644
--- a/gdb/interps.h
+++ b/gdb/interps.h
@@ -68,6 +68,8 @@ extern void clear_interpreter_hooks (void);
/* well-known interpreters */
#define INTERP_CONSOLE "console"
#define INTERP_MI1 "mi1"
+#define INTERP_MI2 "mi2"
+#define INTERP_MI3 "mi3"
#define INTERP_MI "mi"
#endif
diff --git a/gdb/language.c b/gdb/language.c
index eb203dc..a98c9d6 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -151,7 +151,6 @@ static char *case_sensitive;
char lang_frame_mismatch_warn[] =
"Warning: the current language does not match this frame.";
-
/* This page contains the functions corresponding to GDB commands
and their helpers. */
@@ -986,210 +985,10 @@ value_true (struct value *val)
return !value_logical_not (val);
}
-/* Returns non-zero if the operator OP is defined on
- the values ARG1 and ARG2. */
-
-#if 0 /* Currently unused */
-
-void
-binop_type_check (struct value *arg1, struct value *arg2, int op)
-{
- struct type *t1, *t2;
-
- /* If we're not checking types, always return success. */
- if (!STRICT_TYPE)
- return;
-
- t1 = VALUE_TYPE (arg1);
- if (arg2 != NULL)
- t2 = VALUE_TYPE (arg2);
- else
- t2 = NULL;
-
- switch (op)
- {
- case BINOP_ADD:
- case BINOP_SUB:
- if ((numeric_type (t1) && pointer_type (t2)) ||
- (pointer_type (t1) && numeric_type (t2)))
- {
- warning ("combining pointer and integer.\n");
- break;
- }
- case BINOP_MUL:
- case BINOP_LSH:
- case BINOP_RSH:
- if (!numeric_type (t1) || !numeric_type (t2))
- type_op_error ("Arguments to %s must be numbers.", op);
- else if (!same_type (t1, t2))
- type_op_error ("Arguments to %s must be of the same type.", op);
- break;
-
- case BINOP_LOGICAL_AND:
- case BINOP_LOGICAL_OR:
- if (!boolean_type (t1) || !boolean_type (t2))
- type_op_error ("Arguments to %s must be of boolean type.", op);
- break;
-
- case BINOP_EQUAL:
- if ((pointer_type (t1) && !(pointer_type (t2) || integral_type (t2))) ||
- (pointer_type (t2) && !(pointer_type (t1) || integral_type (t1))))
- type_op_error ("A pointer can only be compared to an integer or pointer.", op);
- else if ((pointer_type (t1) && integral_type (t2)) ||
- (integral_type (t1) && pointer_type (t2)))
- {
- warning ("combining integer and pointer.\n");
- break;
- }
- else if (!simple_type (t1) || !simple_type (t2))
- type_op_error ("Arguments to %s must be of simple type.", op);
- else if (!same_type (t1, t2))
- type_op_error ("Arguments to %s must be of the same type.", op);
- break;
-
- case BINOP_REM:
- case BINOP_MOD:
- if (!integral_type (t1) || !integral_type (t2))
- type_op_error ("Arguments to %s must be of integral type.", op);
- break;
-
- case BINOP_LESS:
- case BINOP_GTR:
- case BINOP_LEQ:
- case BINOP_GEQ:
- if (!ordered_type (t1) || !ordered_type (t2))
- type_op_error ("Arguments to %s must be of ordered type.", op);
- else if (!same_type (t1, t2))
- type_op_error ("Arguments to %s must be of the same type.", op);
- break;
-
- case BINOP_ASSIGN:
- if (pointer_type (t1) && !integral_type (t2))
- type_op_error ("A pointer can only be assigned an integer.", op);
- else if (pointer_type (t1) && integral_type (t2))
- {
- warning ("combining integer and pointer.");
- break;
- }
- else if (!simple_type (t1) || !simple_type (t2))
- type_op_error ("Arguments to %s must be of simple type.", op);
- else if (!same_type (t1, t2))
- type_op_error ("Arguments to %s must be of the same type.", op);
- break;
-
- case BINOP_CONCAT:
- /* FIXME: Needs to handle bitstrings as well. */
- if (!(string_type (t1) || character_type (t1) || integral_type (t1))
- || !(string_type (t2) || character_type (t2) || integral_type (t2)))
- type_op_error ("Arguments to %s must be strings or characters.", op);
- break;
-
- /* Unary checks -- arg2 is null */
-
- case UNOP_LOGICAL_NOT:
- if (!boolean_type (t1))
- type_op_error ("Argument to %s must be of boolean type.", op);
- break;
-
- case UNOP_PLUS:
- case UNOP_NEG:
- if (!numeric_type (t1))
- type_op_error ("Argument to %s must be of numeric type.", op);
- break;
-
- case UNOP_IND:
- if (integral_type (t1))
- {
- warning ("combining pointer and integer.\n");
- break;
- }
- else if (!pointer_type (t1))
- type_op_error ("Argument to %s must be a pointer.", op);
- break;
-
- case UNOP_PREINCREMENT:
- case UNOP_POSTINCREMENT:
- case UNOP_PREDECREMENT:
- case UNOP_POSTDECREMENT:
- if (!ordered_type (t1))
- type_op_error ("Argument to %s must be of an ordered type.", op);
- break;
-
- default:
- /* Ok. The following operators have different meanings in
- different languages. */
- switch (current_language->la_language)
- {
-#ifdef _LANG_c
- case language_c:
- case language_cplus:
- case language_objc:
- switch (op)
- {
- case BINOP_DIV:
- if (!numeric_type (t1) || !numeric_type (t2))
- type_op_error ("Arguments to %s must be numbers.", op);
- break;
- }
- break;
-#endif
-
-#ifdef _LANG_m2
- case language_m2:
- switch (op)
- {
- case BINOP_DIV:
- if (!float_type (t1) || !float_type (t2))
- type_op_error ("Arguments to %s must be floating point numbers.", op);
- break;
- case BINOP_INTDIV:
- if (!integral_type (t1) || !integral_type (t2))
- type_op_error ("Arguments to %s must be of integral type.", op);
- break;
- }
-#endif
-
-#ifdef _LANG_pascal
- case language_pascal:
- switch(op)
- {
- case BINOP_DIV:
- if (!float_type(t1) && !float_type(t2))
- type_op_error ("Arguments to %s must be floating point numbers.",op);
- break;
- case BINOP_INTDIV:
- if (!integral_type(t1) || !integral_type(t2))
- type_op_error ("Arguments to %s must be of integral type.",op);
- break;
- }
-#endif
-
- }
- }
-}
-
-#endif /* 0 */
-
-
/* This page contains functions for the printing out of
error messages that occur during type- and range-
checking. */
-/* Prints the format string FMT with the operator as a string
- corresponding to the opcode OP. If FATAL is non-zero, then
- this is an error and error () is called. Otherwise, it is
- a warning and printf() is called. */
-void
-op_error (char *fmt, enum exp_opcode op, int fatal)
-{
- if (fatal)
- error (fmt, op_string (op));
- else
- {
- warning (fmt, op_string (op));
- }
-}
-
/* These are called when a language fails a type- or range-check. The
first argument should be a printf()-style format string, and the
rest of the arguments should be its arguments. If
diff --git a/gdb/language.h b/gdb/language.h
index a1a73a5..75ca555 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -463,12 +463,8 @@ extern void binop_type_check (struct value *, struct value *, int);
/* Error messages */
-extern void op_error (char *fmt, enum exp_opcode, int);
-
-#define type_op_error(f,o) \
- op_error((f),(o),type_check==type_check_on ? 1 : 0)
-#define range_op_error(f,o) \
- op_error((f),(o),range_check==range_check_on ? 1 : 0)
+extern void op_error (const char *lhs, enum exp_opcode,
+ const char *rhs);
extern void type_error (const char *, ...) ATTR_FORMAT (printf, 1, 2);
diff --git a/gdb/lin-lwp.c b/gdb/lin-lwp.c
index a82adb7..ef0cde9 100644
--- a/gdb/lin-lwp.c
+++ b/gdb/lin-lwp.c
@@ -324,6 +324,8 @@ lin_lwp_attach_lwp (ptid_t ptid, int verbose)
gdb_assert (pid == GET_LWP (ptid)
&& WIFSTOPPED (status) && WSTOPSIG (status));
+ child_post_attach (pid);
+
lp->stopped = 1;
if (debug_lin_lwp)
@@ -1047,6 +1049,7 @@ child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
if (pid != -1 && WIFSTOPPED (status) && WSTOPSIG (status) == SIGSTOP
&& pid != GET_PID (inferior_ptid))
{
+ linux_record_stopped_pid (pid);
pid = -1;
save_errno = EINTR;
}
@@ -1067,6 +1070,10 @@ child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
return minus_one_ptid;
}
+ /* Handle GNU/Linux's extended waitstatus for trace events. */
+ if (WIFSTOPPED (status) && WSTOPSIG (status) == SIGTRAP && status >> 16 != 0)
+ return linux_handle_extended_wait (pid, status, ourstatus);
+
store_waitstatus (ourstatus, status);
return pid_to_ptid (pid);
}
@@ -1488,6 +1495,14 @@ retry:
else
trap_ptid = null_ptid;
+ /* Handle GNU/Linux's extended waitstatus for trace events. */
+ if (WIFSTOPPED (status) && WSTOPSIG (status) == SIGTRAP && status >> 16 != 0)
+ {
+ linux_handle_extended_wait (ptid_get_pid (trap_ptid),
+ status, ourstatus);
+ return trap_ptid;
+ }
+
store_waitstatus (ourstatus, status);
return (threaded ? lp->ptid : pid_to_ptid (GET_LWP (lp->ptid)));
}
@@ -1657,6 +1672,12 @@ init_lin_lwp_ops (void)
lin_lwp_ops.to_mourn_inferior = lin_lwp_mourn_inferior;
lin_lwp_ops.to_thread_alive = lin_lwp_thread_alive;
lin_lwp_ops.to_pid_to_str = lin_lwp_pid_to_str;
+ lin_lwp_ops.to_post_startup_inferior = child_post_startup_inferior;
+ lin_lwp_ops.to_post_attach = child_post_attach;
+ lin_lwp_ops.to_insert_fork_catchpoint = child_insert_fork_catchpoint;
+ lin_lwp_ops.to_insert_vfork_catchpoint = child_insert_vfork_catchpoint;
+ lin_lwp_ops.to_insert_exec_catchpoint = child_insert_exec_catchpoint;
+
lin_lwp_ops.to_stratum = thread_stratum;
lin_lwp_ops.to_has_thread_control = tc_schedlock;
lin_lwp_ops.to_magic = OPS_MAGIC;
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 4b863ef..7e8c6a7 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -94,6 +94,8 @@ static void build_canonical_line_spec (struct symtab_and_line *,
static char *find_toplevel_char (char *s, char c);
+static int is_objc_method_format (const char *s);
+
static struct symtabs_and_lines decode_line_2 (struct symbol *[],
int, int, char ***);
@@ -443,6 +445,25 @@ find_toplevel_char (char *s, char c)
return 0;
}
+/* Determines if the gives string corresponds to an Objective-C method
+ representation, such as -[Foo bar:] or +[Foo bar]. Objective-C symbols
+ are allowed to have spaces and parentheses in them. */
+
+static int
+is_objc_method_format (const char *s)
+{
+ if (s == NULL || *s == '\0')
+ return 0;
+ /* Handle arguments with the format FILENAME:SYMBOL. */
+ if ((s[0] == ':') && (strchr ("+-", s[1]) != NULL)
+ && (s[2] == '[') && strchr(s, ']'))
+ return 1;
+ /* Handle arguments that are just SYMBOL. */
+ else if ((strchr ("+-", s[0]) != NULL) && (s[1] == '[') && strchr(s, ']'))
+ return 1;
+ return 0;
+}
+
/* Given a list of NELTS symbols in SYM_ARR, return a list of lines to
operate on (ask user if necessary).
If CANONICAL is non-NULL return a corresponding array of mangled names
@@ -669,8 +690,7 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
/* Check if this is an Objective-C method (anything that starts with
a '+' or '-' and a '['). */
- if (*p && (p[0] == ':') && (strchr ("+-", p[1]) != NULL)
- && (p[2] == '['))
+ if (is_objc_method_format (p))
{
is_objc_method = 1;
paren_pointer = NULL; /* Just a category name. Ignore it. */
@@ -972,8 +992,7 @@ locate_first_half (char **argptr, int *is_quote_enclosed)
}
/* Check for a colon and a plus or minus and a [ (which
indicates an Objective-C method) */
- if (*p && (p[0] == ':') && (strchr ("+-", p[1]) != NULL)
- && (p[2] == '['))
+ if (is_objc_method_format (p))
{
break;
}
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 61931c6..2680422 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -40,12 +40,16 @@
#define PTRACE_O_TRACEVFORK 0x00000004
#define PTRACE_O_TRACECLONE 0x00000008
#define PTRACE_O_TRACEEXEC 0x00000010
+#define PTRACE_O_TRACEVFORKDONE 0x00000020
+#define PTRACE_O_TRACEEXIT 0x00000040
/* Wait extended result codes for the above trace options. */
#define PTRACE_EVENT_FORK 1
#define PTRACE_EVENT_VFORK 2
#define PTRACE_EVENT_CLONE 3
#define PTRACE_EVENT_EXEC 4
+#define PTRACE_EVENT_VFORKDONE 5
+#define PTRACE_EVENT_EXIT 6
#endif /* PTRACE_EVENT_FORK */
@@ -56,6 +60,10 @@
#define __WALL 0x40000000 /* Wait for any child. */
#endif
+extern struct target_ops child_ops;
+
+static int linux_parent_pid;
+
struct simple_pid_list
{
int pid;
@@ -68,6 +76,11 @@ struct simple_pid_list *stopped_pids;
static int linux_supports_tracefork_flag = -1;
+/* If we have PTRACE_O_TRACEFORK, this flag indicates whether we also have
+ PTRACE_O_TRACEVFORKDONE. */
+
+static int linux_supports_tracevforkdone_flag = -1;
+
/* Trivial list manipulation functions to keep track of a list of
new stopped processes. */
@@ -153,6 +166,11 @@ linux_test_for_tracefork (void)
return;
}
+ /* Check whether PTRACE_O_TRACEVFORKDONE is available. */
+ ret = ptrace (PTRACE_SETOPTIONS, child_pid, 0,
+ PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORKDONE);
+ linux_supports_tracevforkdone_flag = (ret == 0);
+
ptrace (PTRACE_CONT, child_pid, 0, 0);
ret = waitpid (child_pid, &status, 0);
if (ret == child_pid && WIFSTOPPED (status)
@@ -188,32 +206,315 @@ linux_supports_tracefork (void)
return linux_supports_tracefork_flag;
}
+static int
+linux_supports_tracevforkdone (void)
+{
+ if (linux_supports_tracefork_flag == -1)
+ linux_test_for_tracefork ();
+ return linux_supports_tracevforkdone_flag;
+}
+
+void
+linux_enable_event_reporting (ptid_t ptid)
+{
+ int pid = ptid_get_pid (ptid);
+ int options;
+
+ if (! linux_supports_tracefork ())
+ return;
+
+ options = PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK | PTRACE_O_TRACEEXEC;
+ if (linux_supports_tracevforkdone ())
+ options |= PTRACE_O_TRACEVFORKDONE;
+
+ /* Do not enable PTRACE_O_TRACEEXIT until GDB is more prepared to support
+ read-only process state. */
+
+ ptrace (PTRACE_SETOPTIONS, pid, 0, options);
+}
+
+void
+child_post_attach (int pid)
+{
+ linux_enable_event_reporting (pid_to_ptid (pid));
+}
+
+void
+linux_child_post_startup_inferior (ptid_t ptid)
+{
+ linux_enable_event_reporting (ptid);
+}
+
+#ifndef LINUX_CHILD_POST_STARTUP_INFERIOR
+void
+child_post_startup_inferior (ptid_t ptid)
+{
+ linux_child_post_startup_inferior (ptid);
+}
+#endif
+
int
-child_insert_fork_catchpoint (int pid)
+child_follow_fork (int follow_child)
{
- if (linux_supports_tracefork ())
- error ("Fork catchpoints have not been implemented yet.");
+ ptid_t last_ptid;
+ struct target_waitstatus last_status;
+ int has_vforked;
+ int parent_pid, child_pid;
+
+ get_last_target_status (&last_ptid, &last_status);
+ has_vforked = (last_status.kind == TARGET_WAITKIND_VFORKED);
+ parent_pid = ptid_get_pid (last_ptid);
+ child_pid = last_status.value.related_pid;
+
+ if (! follow_child)
+ {
+ /* We're already attached to the parent, by default. */
+
+ /* Before detaching from the child, remove all breakpoints from
+ it. (This won't actually modify the breakpoint list, but will
+ physically remove the breakpoints from the child.) */
+ /* If we vforked this will remove the breakpoints from the parent
+ also, but they'll be reinserted below. */
+ detach_breakpoints (child_pid);
+
+ fprintf_filtered (gdb_stdout,
+ "Detaching after fork from child process %d.\n",
+ child_pid);
+
+ ptrace (PTRACE_DETACH, child_pid, 0, 0);
+
+ if (has_vforked)
+ {
+ if (linux_supports_tracevforkdone ())
+ {
+ int status;
+
+ ptrace (PTRACE_CONT, parent_pid, 0, 0);
+ waitpid (parent_pid, &status, __WALL);
+ if ((status >> 16) != PTRACE_EVENT_VFORKDONE)
+ warning ("Unexpected waitpid result %06x when waiting for "
+ "vfork-done", status);
+ }
+ else
+ {
+ /* We can't insert breakpoints until the child has
+ finished with the shared memory region. We need to
+ wait until that happens. Ideal would be to just
+ call:
+ - ptrace (PTRACE_SYSCALL, parent_pid, 0, 0);
+ - waitpid (parent_pid, &status, __WALL);
+ However, most architectures can't handle a syscall
+ being traced on the way out if it wasn't traced on
+ the way in.
+
+ We might also think to loop, continuing the child
+ until it exits or gets a SIGTRAP. One problem is
+ that the child might call ptrace with PTRACE_TRACEME.
+
+ There's no simple and reliable way to figure out when
+ the vforked child will be done with its copy of the
+ shared memory. We could step it out of the syscall,
+ two instructions, let it go, and then single-step the
+ parent once. When we have hardware single-step, this
+ would work; with software single-step it could still
+ be made to work but we'd have to be able to insert
+ single-step breakpoints in the child, and we'd have
+ to insert -just- the single-step breakpoint in the
+ parent. Very awkward.
+
+ In the end, the best we can do is to make sure it
+ runs for a little while. Hopefully it will be out of
+ range of any breakpoints we reinsert. Usually this
+ is only the single-step breakpoint at vfork's return
+ point. */
+
+ usleep (10000);
+ }
+
+ /* Since we vforked, breakpoints were removed in the parent
+ too. Put them back. */
+ reattach_breakpoints (parent_pid);
+ }
+ }
else
+ {
+ char child_pid_spelling[40];
+
+ /* Needed to keep the breakpoint lists in sync. */
+ if (! has_vforked)
+ detach_breakpoints (child_pid);
+
+ /* Before detaching from the parent, remove all breakpoints from it. */
+ remove_breakpoints ();
+
+ fprintf_filtered (gdb_stdout,
+ "Attaching after fork to child process %d.\n",
+ child_pid);
+
+ /* If we're vforking, we may want to hold on to the parent until
+ the child exits or execs. At exec time we can remove the old
+ breakpoints from the parent and detach it; at exit time we
+ could do the same (or even, sneakily, resume debugging it - the
+ child's exec has failed, or something similar).
+
+ This doesn't clean up "properly", because we can't call
+ target_detach, but that's OK; if the current target is "child",
+ then it doesn't need any further cleanups, and lin_lwp will
+ generally not encounter vfork (vfork is defined to fork
+ in libpthread.so).
+
+ The holding part is very easy if we have VFORKDONE events;
+ but keeping track of both processes is beyond GDB at the
+ moment. So we don't expose the parent to the rest of GDB.
+ Instead we quietly hold onto it until such time as we can
+ safely resume it. */
+
+ if (has_vforked)
+ linux_parent_pid = parent_pid;
+ else
+ target_detach (NULL, 0);
+
+ inferior_ptid = pid_to_ptid (child_pid);
+ push_target (&child_ops);
+
+ /* Reset breakpoints in the child as appropriate. */
+ follow_inferior_reset_breakpoints ();
+ }
+
+ return 0;
+}
+
+ptid_t
+linux_handle_extended_wait (int pid, int status,
+ struct target_waitstatus *ourstatus)
+{
+ int event = status >> 16;
+
+ if (event == PTRACE_EVENT_CLONE)
+ internal_error (__FILE__, __LINE__,
+ "unexpected clone event");
+
+ if (event == PTRACE_EVENT_FORK || event == PTRACE_EVENT_VFORK)
+ {
+ unsigned long new_pid;
+ int ret;
+
+ ptrace (PTRACE_GETEVENTMSG, pid, 0, &new_pid);
+
+ /* If we haven't already seen the new PID stop, wait for it now. */
+ if (! pull_pid_from_list (&stopped_pids, new_pid))
+ {
+ /* The new child has a pending SIGSTOP. We can't affect it until it
+ hits the SIGSTOP, but we're already attached.
+
+ It won't be a clone (we didn't ask for clones in the event mask)
+ so we can just call waitpid and wait for the SIGSTOP. */
+ do {
+ ret = waitpid (new_pid, &status, 0);
+ } while (ret == -1 && errno == EINTR);
+ if (ret == -1)
+ perror_with_name ("waiting for new child");
+ else if (ret != new_pid)
+ internal_error (__FILE__, __LINE__,
+ "wait returned unexpected PID %d", ret);
+ else if (!WIFSTOPPED (status) || WSTOPSIG (status) != SIGSTOP)
+ internal_error (__FILE__, __LINE__,
+ "wait returned unexpected status 0x%x", status);
+ }
+
+ ourstatus->kind = (event == PTRACE_EVENT_FORK)
+ ? TARGET_WAITKIND_FORKED : TARGET_WAITKIND_VFORKED;
+ ourstatus->value.related_pid = new_pid;
+ return inferior_ptid;
+ }
+
+ if (event == PTRACE_EVENT_EXEC)
+ {
+ ourstatus->kind = TARGET_WAITKIND_EXECD;
+ ourstatus->value.execd_pathname
+ = xstrdup (child_pid_to_exec_file (pid));
+
+ if (linux_parent_pid)
+ {
+ detach_breakpoints (linux_parent_pid);
+ ptrace (PTRACE_DETACH, linux_parent_pid, 0, 0);
+
+ linux_parent_pid = 0;
+ }
+
+ return inferior_ptid;
+ }
+
+ internal_error (__FILE__, __LINE__,
+ "unknown ptrace event %d", event);
+}
+
+
+int
+child_insert_fork_catchpoint (int pid)
+{
+ if (! linux_supports_tracefork ())
error ("Your system does not support fork catchpoints.");
+
+ return 0;
}
int
child_insert_vfork_catchpoint (int pid)
{
- if (linux_supports_tracefork ())
- error ("Vfork catchpoints have not been implemented yet.");
- else
+ if (!linux_supports_tracefork ())
error ("Your system does not support vfork catchpoints.");
+
+ return 0;
}
int
child_insert_exec_catchpoint (int pid)
{
- if (linux_supports_tracefork ())
- error ("Exec catchpoints have not been implemented yet.");
- else
+ if (!linux_supports_tracefork ())
error ("Your system does not support exec catchpoints.");
+
+ return 0;
}
+void
+kill_inferior (void)
+{
+ int status;
+ int pid = PIDGET (inferior_ptid);
+ struct target_waitstatus last;
+ ptid_t last_ptid;
+ int ret;
+
+ if (pid == 0)
+ return;
+
+ /* If we're stopped while forking and we haven't followed yet, kill the
+ other task. We need to do this first because the parent will be
+ sleeping if this is a vfork. */
+
+ get_last_target_status (&last_ptid, &last);
+
+ if (last.kind == TARGET_WAITKIND_FORKED
+ || last.kind == TARGET_WAITKIND_VFORKED)
+ {
+ ptrace (PT_KILL, last.value.related_pid);
+ ptrace_wait (null_ptid, &status);
+ }
+
+ /* Kill the current process. */
+ ptrace (PT_KILL, pid, (PTRACE_ARG3_TYPE) 0, 0);
+ ret = ptrace_wait (null_ptid, &status);
+
+ /* We might get a SIGCHLD instead of an exit status. This is
+ aggravated by the first kill above - a child has just died. */
+
+ while (ret == pid && WIFSTOPPED (status))
+ {
+ ptrace (PT_KILL, pid, (PTRACE_ARG3_TYPE) 0, 0);
+ ret = ptrace_wait (null_ptid, &status);
+ }
+ target_mourn_inferior ();
+}
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h
index b0d9600..90652aa 100644
--- a/gdb/linux-nat.h
+++ b/gdb/linux-nat.h
@@ -65,7 +65,12 @@ extern int linux_proc_xfer_memory (CORE_ADDR addr, char *myaddr, int len,
int write, struct mem_attrib *attrib,
struct target_ops *target);
+/* linux-nat functions for handling fork events. */
extern void linux_record_stopped_pid (int pid);
+extern void linux_enable_event_reporting (ptid_t ptid);
+extern ptid_t linux_handle_extended_wait (int pid, int status,
+ struct target_waitstatus *ourstatus);
+extern void linux_child_post_startup_inferior (ptid_t ptid);
/* Iterator function for lin-lwp's lwp list. */
struct lwp_info *iterate_over_lwps (int (*callback) (struct lwp_info *,
diff --git a/gdb/linux-proc.c b/gdb/linux-proc.c
index e4ea747..282a3ec 100644
--- a/gdb/linux-proc.c
+++ b/gdb/linux-proc.c
@@ -446,7 +446,7 @@ linux_info_proc_cmd (char *args, int from_tty)
if ((procfile = fopen (fname1, "r")) > 0)
{
while (fgets (buffer, sizeof (buffer), procfile) != NULL)
- printf_filtered (buffer);
+ puts_filtered (buffer);
fclose (procfile);
}
else
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index 25d3581..7ec4edd 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -961,7 +961,7 @@ static const struct frame_unwind m68hc11_frame_unwind = {
};
const struct frame_unwind *
-m68hc11_frame_p (CORE_ADDR pc)
+m68hc11_frame_sniffer (struct frame_info *next_frame)
{
return &m68hc11_frame_unwind;
}
@@ -1267,6 +1267,7 @@ m68hc11_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr,
return sp + 2;
}
+
/* Return the GDB type object for the "standard" data type
of data in register N. */
@@ -1555,14 +1556,14 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
set_gdbarch_pseudo_register_read (gdbarch, m68hc11_pseudo_register_read);
set_gdbarch_pseudo_register_write (gdbarch, m68hc11_pseudo_register_write);
+ set_gdbarch_push_dummy_call (gdbarch, m68hc11_push_dummy_call);
+
set_gdbarch_extract_return_value (gdbarch, m68hc11_extract_return_value);
set_gdbarch_return_value_on_stack (gdbarch, m68hc11_return_value_on_stack);
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
set_gdbarch_extract_struct_value_address (gdbarch, m68hc11_extract_struct_value_address);
- set_gdbarch_push_dummy_call (gdbarch, m68hc11_push_dummy_call);
-
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
set_gdbarch_extract_struct_value_address (gdbarch, m68hc11_extract_struct_value_address);
set_gdbarch_use_struct_convention (gdbarch, m68hc11_use_struct_convention);
@@ -1580,9 +1581,8 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
/* Hook in the DWARF CFI frame unwinder. */
frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
- set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
- frame_unwind_append_predicate (gdbarch, m68hc11_frame_p);
+ frame_unwind_append_sniffer (gdbarch, m68hc11_frame_sniffer);
frame_base_set_default (gdbarch, &m68hc11_frame_base);
/* Methods for saving / extracting a dummy frame's ID. The ID's
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 97ac076..bbc14d3 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -784,7 +784,7 @@ static const struct frame_unwind m68k_frame_unwind =
};
static const struct frame_unwind *
-m68k_frame_p (CORE_ADDR pc)
+m68k_frame_sniffer (struct frame_info *next_frame)
{
return &m68k_frame_unwind;
}
@@ -851,8 +851,9 @@ static const struct frame_unwind m68k_sigtramp_frame_unwind =
};
static const struct frame_unwind *
-m68k_sigtramp_frame_p (CORE_ADDR pc)
+m68k_sigtramp_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
char *name;
/* We shouldn't even bother to try if the OSABI didn't register
@@ -1162,8 +1163,8 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (tdep->jb_pc >= 0)
set_gdbarch_get_longjmp_target (gdbarch, m68k_get_longjmp_target);
- frame_unwind_append_predicate (gdbarch, m68k_sigtramp_frame_p);
- frame_unwind_append_predicate (gdbarch, m68k_frame_p);
+ frame_unwind_append_sniffer (gdbarch, m68k_sigtramp_frame_sniffer);
+ frame_unwind_append_sniffer (gdbarch, m68k_frame_sniffer);
return gdbarch;
}
diff --git a/gdb/mcore-tdep.c b/gdb/mcore-tdep.c
index 4b860e5..3c4e7e7 100644
--- a/gdb/mcore-tdep.c
+++ b/gdb/mcore-tdep.c
@@ -1101,8 +1101,8 @@ mcore_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
mcore_extract_struct_value_address);
set_gdbarch_skip_prologue (gdbarch, mcore_skip_prologue);
set_gdbarch_frame_args_skip (gdbarch, 0);
- set_gdbarch_frame_args_address (gdbarch, mcore_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, mcore_frame_locals_address);
+ set_gdbarch_deprecated_frame_args_address (gdbarch, mcore_frame_args_address);
+ set_gdbarch_deprecated_frame_locals_address (gdbarch, mcore_frame_locals_address);
set_gdbarch_deprecated_pop_frame (gdbarch, mcore_pop_frame);
set_gdbarch_virtual_frame_pointer (gdbarch, mcore_virtual_frame_pointer);
diff --git a/gdb/mi/ChangeLog b/gdb/mi/ChangeLog
index 31fd26f..520ad4d 100644
--- a/gdb/mi/ChangeLog
+++ b/gdb/mi/ChangeLog
@@ -1,4 +1,39 @@
-2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+2003-08-08 Andrew Cagney <cagney@redhat.com>
+
+ * mi-main.c (captured_mi_execute_command): Add "mi2" and "mi3" to
+ interpreters that hack around CLI.
+ * mi-interp.c (mi3_command_loop): New function.
+ (mi_interpreter_resume): Check for "mi3", default to "mi2".
+
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * mi-interp.c (_initialize_mi_interp): Register "mi2" and "mi3".
+ Make "mi" select "mi2".
+
+2003-08-05 Andrew Cagney <cagney@redhat.com>
+
+ * mi-cmd-env.c (env_execute_cli_command): Use an explicit "%s %s"
+ when constructing the run command.
+ (mi_cmd_env_cd, mi_cmd_env_path, mi_cmd_env_dir): Simplify command
+ string removing the "%s".
+
+2003-08-04 Andrew Cagney <cagney@redhat.com>
+
+ * mi-cmds.h (struct mi_cli): Define.
+ (struct mi_cmd): Change type of "cli" to "struct mi_cli".
+ * mi-cmds.c (mi_cmds): Update table.
+ * mi-parse.c (mi_parse): Update.
+ * mi-main.c (mi_execute_cli_command): Add "args_p" parameter, make
+ others constant.
+ (mi_cmd_execute): Update call.
+ (captured_mi_execute_command): Ditto.
+
+2003-08-04 David Carlton <carlton@kealia.com>
+
+ * mi-main.c (mi_error_last_message): Add "%s" second argument to
+ xasprintf call.
+
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
* mi-out.c (mi_ui_out_impl): Add NULL for redirect member.
diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c
index 55fcba1..ec0fa35 100644
--- a/gdb/mi/mi-cmd-env.c
+++ b/gdb/mi/mi-cmd-env.c
@@ -37,23 +37,27 @@
#include "gdb_string.h"
#include "gdb_stat.h"
-static void env_cli_command (const char *cli, char *args);
+static void env_cli_command (const char *cli, const char *args);
static void env_mod_path (char *dirname, char **which_path);
extern void _initialize_mi_cmd_env (void);
static const char path_var_name[] = "PATH";
static char *orig_path = NULL;
-/* The following is copied from mi-main.c so for m1 and below we
- can perform old behavior and use cli commands. */
+/* The following is copied from mi-main.c so for m1 and below we can
+ perform old behavior and use cli commands. If ARGS is non-null,
+ append it to the CMD. */
static void
-env_execute_cli_command (const char *cli, char *args)
+env_execute_cli_command (const char *cmd, const char *args)
{
- if (cli != 0)
+ if (cmd != 0)
{
struct cleanup *old_cleanups;
char *run;
- xasprintf (&run, cli, args);
+ if (args != NULL)
+ xasprintf (&run, "%s %s", cmd, args);
+ else
+ run = xstrdup (cmd);
old_cleanups = make_cleanup (xfree, run);
execute_command ( /*ui */ run, 0 /*from_tty */ );
do_cleanups (old_cleanups);
@@ -90,7 +94,7 @@ mi_cmd_env_cd (char *command, char **argv, int argc)
if (argc == 0 || argc > 1)
error ("mi_cmd_env_cd: Usage DIRECTORY");
- env_execute_cli_command ("cd %s", argv[0]);
+ env_execute_cli_command ("cd", argv[0]);
return MI_CMD_DONE;
}
@@ -131,7 +135,7 @@ mi_cmd_env_path (char *command, char **argv, int argc)
if (mi_version (uiout) < 2)
{
for (i = argc - 1; i >= 0; --i)
- env_execute_cli_command ("path %s", argv[i]);
+ env_execute_cli_command ("path", argv[i]);
return MI_CMD_DONE;
}
@@ -203,7 +207,7 @@ mi_cmd_env_dir (char *command, char **argv, int argc)
if (mi_version (uiout) < 2)
{
for (i = argc - 1; i >= 0; --i)
- env_execute_cli_command ("dir %s", argv[i]);
+ env_execute_cli_command ("dir", argv[i]);
return MI_CMD_DONE;
}
diff --git a/gdb/mi/mi-cmds.c b/gdb/mi/mi-cmds.c
index 9182402..0dfc217 100644
--- a/gdb/mi/mi-cmds.c
+++ b/gdb/mi/mi-cmds.c
@@ -34,138 +34,138 @@ static void build_table (struct mi_cmd *commands);
struct mi_cmd mi_cmds[] =
{
- {"break-after", "ignore %s", 0},
- {"break-catch", 0, 0},
- {"break-commands", 0, 0},
- {"break-condition", "cond %s", 0},
- {"break-delete", "delete breakpoint %s", 0},
- {"break-disable", "disable breakpoint %s", 0},
- {"break-enable", "enable breakpoint %s", 0},
- {"break-info", "info break %s", 0},
- {"break-insert", 0, 0, mi_cmd_break_insert},
- {"break-list", "info break", 0},
- {"break-watch", 0, 0, mi_cmd_break_watch},
- {"data-disassemble", 0, 0, mi_cmd_disassemble},
- {"data-evaluate-expression", 0, 0, mi_cmd_data_evaluate_expression},
- {"data-list-changed-registers", 0, 0, mi_cmd_data_list_changed_registers},
- {"data-list-register-names", 0, 0, mi_cmd_data_list_register_names},
- {"data-list-register-values", 0, 0, mi_cmd_data_list_register_values},
- {"data-read-memory", 0, 0, mi_cmd_data_read_memory},
- {"data-write-memory", 0, 0, mi_cmd_data_write_memory},
- {"data-write-register-values", 0, 0, mi_cmd_data_write_register_values},
- {"display-delete", 0, 0},
- {"display-disable", 0, 0},
- {"display-enable", 0, 0},
- {"display-insert", 0, 0},
- {"display-list", 0, 0},
- {"environment-cd", 0, 0, mi_cmd_env_cd},
- {"environment-directory", 0, 0, mi_cmd_env_dir},
- {"environment-path", 0, 0, mi_cmd_env_path},
- {"environment-pwd", 0, 0, mi_cmd_env_pwd},
- {"exec-abort", 0, 0},
- {"exec-arguments", "set args %s", 0},
- {"exec-continue", 0, mi_cmd_exec_continue},
- {"exec-finish", 0, mi_cmd_exec_finish},
- {"exec-interrupt", 0, mi_cmd_exec_interrupt},
- {"exec-next", 0, mi_cmd_exec_next},
- {"exec-next-instruction", 0, mi_cmd_exec_next_instruction},
- {"exec-return", 0, mi_cmd_exec_return},
- {"exec-run", 0, mi_cmd_exec_run},
- {"exec-show-arguments", 0, 0},
- {"exec-signal", 0, 0},
- {"exec-step", 0, mi_cmd_exec_step},
- {"exec-step-instruction", 0, mi_cmd_exec_step_instruction},
- {"exec-until", 0, mi_cmd_exec_until},
- {"file-clear", 0, 0},
- {"file-exec-and-symbols", "file %s", 0},
- {"file-exec-file", "exec-file %s", 0},
- {"file-list-exec-sections", 0, 0},
- {"file-list-exec-source-file", 0, 0, mi_cmd_file_list_exec_source_file},
- {"file-list-exec-source-files", 0, 0},
- {"file-list-shared-libraries", 0, 0},
- {"file-list-symbol-files", 0, 0},
- {"file-symbol-file", "symbol-file %s", 0},
- {"gdb-complete", 0, 0},
- {"gdb-exit", 0, 0, mi_cmd_gdb_exit},
- {"gdb-set", "set %s", 0},
- {"gdb-show", "show %s", 0},
- {"gdb-source", 0, 0},
- {"gdb-version", "show version", 0},
- {"interpreter-exec", 0, 0, mi_cmd_interpreter_exec},
- {"kod-info", 0, 0},
- {"kod-list", 0, 0},
- {"kod-list-object-types", 0, 0},
- {"kod-show", 0, 0},
- {"overlay-auto", 0, 0},
- {"overlay-list-mapping-state", 0, 0},
- {"overlay-list-overlays", 0, 0},
- {"overlay-map", 0, 0},
- {"overlay-off", 0, 0},
- {"overlay-on", 0, 0},
- {"overlay-unmap", 0, 0},
- {"signal-handle", 0, 0},
- {"signal-list-handle-actions", 0, 0},
- {"signal-list-signal-types", 0, 0},
- {"stack-info-depth", 0, 0, mi_cmd_stack_info_depth},
- {"stack-info-frame", 0, 0},
- {"stack-list-arguments", 0, 0, mi_cmd_stack_list_args},
- {"stack-list-exception-handlers", 0, 0},
- {"stack-list-frames", 0, 0, mi_cmd_stack_list_frames},
- {"stack-list-locals", 0, 0, mi_cmd_stack_list_locals},
- {"stack-select-frame", 0, 0, mi_cmd_stack_select_frame},
- {"symbol-info-address", 0, 0},
- {"symbol-info-file", 0, 0},
- {"symbol-info-function", 0, 0},
- {"symbol-info-line", 0, 0},
- {"symbol-info-symbol", 0, 0},
- {"symbol-list-functions", 0, 0},
- {"symbol-list-lines", 0, 0, mi_cmd_symbol_list_lines},
- {"symbol-list-types", 0, 0},
- {"symbol-list-variables", 0, 0},
- {"symbol-locate", 0, 0},
- {"symbol-type", 0, 0},
- {"target-attach", 0, 0},
- {"target-compare-sections", 0, 0},
- {"target-detach", "detach", 0},
- {"target-disconnect", "disconnect", 0},
- {"target-download", 0, mi_cmd_target_download},
- {"target-exec-status", 0, 0},
- {"target-list-available-targets", 0, 0},
- {"target-list-current-targets", 0, 0},
- {"target-list-parameters", 0, 0},
- {"target-select", 0, mi_cmd_target_select},
- {"thread-info", 0, 0},
- {"thread-list-all-threads", 0, 0},
- {"thread-list-ids", 0, 0, mi_cmd_thread_list_ids},
- {"thread-select", 0, 0, mi_cmd_thread_select},
- {"trace-actions", 0, 0},
- {"trace-delete", 0, 0},
- {"trace-disable", 0, 0},
- {"trace-dump", 0, 0},
- {"trace-enable", 0, 0},
- {"trace-exists", 0, 0},
- {"trace-find", 0, 0},
- {"trace-frame-number", 0, 0},
- {"trace-info", 0, 0},
- {"trace-insert", 0, 0},
- {"trace-list", 0, 0},
- {"trace-pass-count", 0, 0},
- {"trace-save", 0, 0},
- {"trace-start", 0, 0},
- {"trace-stop", 0, 0},
- {"var-assign", 0, 0, mi_cmd_var_assign},
- {"var-create", 0, 0, mi_cmd_var_create},
- {"var-delete", 0, 0, mi_cmd_var_delete},
- {"var-evaluate-expression", 0, 0, mi_cmd_var_evaluate_expression},
- {"var-info-expression", 0, 0, mi_cmd_var_info_expression},
- {"var-info-num-children", 0, 0, mi_cmd_var_info_num_children},
- {"var-info-type", 0, 0, mi_cmd_var_info_type},
- {"var-list-children", 0, 0, mi_cmd_var_list_children},
- {"var-set-format", 0, 0, mi_cmd_var_set_format},
- {"var-show-attributes", 0, 0, mi_cmd_var_show_attributes},
- {"var-show-format", 0, 0, mi_cmd_var_show_format},
- {"var-update", 0, 0, mi_cmd_var_update},
- {0,}
+ { "break-after", { "ignore", 1 }, NULL, NULL },
+ { "break-catch", { NULL, 0 }, NULL, NULL },
+ { "break-commands", { NULL, 0 }, NULL, NULL },
+ { "break-condition", { "cond", 1 }, NULL, NULL },
+ { "break-delete", { "delete breakpoint", 1 }, NULL, NULL },
+ { "break-disable", { "disable breakpoint", 1 }, NULL, NULL },
+ { "break-enable", { "enable breakpoint", 1 }, NULL, NULL },
+ { "break-info", { "info break", 1 }, NULL, NULL },
+ { "break-insert", { NULL, 0 }, 0, mi_cmd_break_insert},
+ { "break-list", { "info break", }, NULL, NULL },
+ { "break-watch", { NULL, 0 }, 0, mi_cmd_break_watch},
+ { "data-disassemble", { NULL, 0 }, 0, mi_cmd_disassemble},
+ { "data-evaluate-expression", { NULL, 0 }, 0, mi_cmd_data_evaluate_expression},
+ { "data-list-changed-registers", { NULL, 0 }, 0, mi_cmd_data_list_changed_registers},
+ { "data-list-register-names", { NULL, 0 }, 0, mi_cmd_data_list_register_names},
+ { "data-list-register-values", { NULL, 0 }, 0, mi_cmd_data_list_register_values},
+ { "data-read-memory", { NULL, 0 }, 0, mi_cmd_data_read_memory},
+ { "data-write-memory", { NULL, 0 }, 0, mi_cmd_data_write_memory},
+ { "data-write-register-values", { NULL, 0 }, 0, mi_cmd_data_write_register_values},
+ { "display-delete", { NULL, 0 }, NULL, NULL },
+ { "display-disable", { NULL, 0 }, NULL, NULL },
+ { "display-enable", { NULL, 0 }, NULL, NULL },
+ { "display-insert", { NULL, 0 }, NULL, NULL },
+ { "display-list", { NULL, 0 }, NULL, NULL },
+ { "environment-cd", { NULL, 0 }, 0, mi_cmd_env_cd},
+ { "environment-directory", { NULL, 0 }, 0, mi_cmd_env_dir},
+ { "environment-path", { NULL, 0 }, 0, mi_cmd_env_path},
+ { "environment-pwd", { NULL, 0 }, 0, mi_cmd_env_pwd},
+ { "exec-abort", { NULL, 0 }, NULL, NULL },
+ { "exec-arguments", { "set args", 1 }, NULL, NULL },
+ { "exec-continue", { NULL, 0 }, mi_cmd_exec_continue},
+ { "exec-finish", { NULL, 0 }, mi_cmd_exec_finish},
+ { "exec-interrupt", { NULL, 0 }, mi_cmd_exec_interrupt},
+ { "exec-next", { NULL, 0 }, mi_cmd_exec_next},
+ { "exec-next-instruction", { NULL, 0 }, mi_cmd_exec_next_instruction},
+ { "exec-return", { NULL, 0 }, mi_cmd_exec_return},
+ { "exec-run", { NULL, 0 }, mi_cmd_exec_run},
+ { "exec-show-arguments", { NULL, 0 }, NULL, NULL },
+ { "exec-signal", { NULL, 0 }, NULL, NULL },
+ { "exec-step", { NULL, 0 }, mi_cmd_exec_step},
+ { "exec-step-instruction", { NULL, 0 }, mi_cmd_exec_step_instruction},
+ { "exec-until", { NULL, 0 }, mi_cmd_exec_until},
+ { "file-clear", { NULL, 0 }, NULL, NULL },
+ { "file-exec-and-symbols", { "file", 1 }, NULL, NULL },
+ { "file-exec-file", { "exec-file", 1 }, NULL, NULL },
+ { "file-list-exec-sections", { NULL, 0 }, NULL, NULL },
+ { "file-list-exec-source-file", { NULL, 0 }, 0, mi_cmd_file_list_exec_source_file},
+ { "file-list-exec-source-files", { NULL, 0 }, NULL, NULL },
+ { "file-list-shared-libraries", { NULL, 0 }, NULL, NULL },
+ { "file-list-symbol-files", { NULL, 0 }, NULL, NULL },
+ { "file-symbol-file", { "symbol-file", 1 }, NULL, NULL },
+ { "gdb-complete", { NULL, 0 }, NULL, NULL },
+ { "gdb-exit", { NULL, 0 }, 0, mi_cmd_gdb_exit},
+ { "gdb-set", { "set", 1 }, NULL, NULL },
+ { "gdb-show", { "show", 1 }, NULL, NULL },
+ { "gdb-source", { NULL, 0 }, NULL, NULL },
+ { "gdb-version", { "show version", 0 }, 0 },
+ { "interpreter-exec", { NULL, 0 }, 0, mi_cmd_interpreter_exec},
+ { "kod-info", { NULL, 0 }, NULL, NULL },
+ { "kod-list", { NULL, 0 }, NULL, NULL },
+ { "kod-list-object-types", { NULL, 0 }, NULL, NULL },
+ { "kod-show", { NULL, 0 }, NULL, NULL },
+ { "overlay-auto", { NULL, 0 }, NULL, NULL },
+ { "overlay-list-mapping-state", { NULL, 0 }, NULL, NULL },
+ { "overlay-list-overlays", { NULL, 0 }, NULL, NULL },
+ { "overlay-map", { NULL, 0 }, NULL, NULL },
+ { "overlay-off", { NULL, 0 }, NULL, NULL },
+ { "overlay-on", { NULL, 0 }, NULL, NULL },
+ { "overlay-unmap", { NULL, 0 }, NULL, NULL },
+ { "signal-handle", { NULL, 0 }, NULL, NULL },
+ { "signal-list-handle-actions", { NULL, 0 }, NULL, NULL },
+ { "signal-list-signal-types", { NULL, 0 }, NULL, NULL },
+ { "stack-info-depth", { NULL, 0 }, 0, mi_cmd_stack_info_depth},
+ { "stack-info-frame", { NULL, 0 }, NULL, NULL },
+ { "stack-list-arguments", { NULL, 0 }, 0, mi_cmd_stack_list_args},
+ { "stack-list-exception-handlers", { NULL, 0 }, NULL, NULL },
+ { "stack-list-frames", { NULL, 0 }, 0, mi_cmd_stack_list_frames},
+ { "stack-list-locals", { NULL, 0 }, 0, mi_cmd_stack_list_locals},
+ { "stack-select-frame", { NULL, 0 }, 0, mi_cmd_stack_select_frame},
+ { "symbol-info-address", { NULL, 0 }, NULL, NULL },
+ { "symbol-info-file", { NULL, 0 }, NULL, NULL },
+ { "symbol-info-function", { NULL, 0 }, NULL, NULL },
+ { "symbol-info-line", { NULL, 0 }, NULL, NULL },
+ { "symbol-info-symbol", { NULL, 0 }, NULL, NULL },
+ { "symbol-list-functions", { NULL, 0 }, NULL, NULL },
+ { "symbol-list-lines", { NULL, 0 }, 0, mi_cmd_symbol_list_lines},
+ { "symbol-list-types", { NULL, 0 }, NULL, NULL },
+ { "symbol-list-variables", { NULL, 0 }, NULL, NULL },
+ { "symbol-locate", { NULL, 0 }, NULL, NULL },
+ { "symbol-type", { NULL, 0 }, NULL, NULL },
+ { "target-attach", { NULL, 0 }, NULL, NULL },
+ { "target-compare-sections", { NULL, 0 }, NULL, NULL },
+ { "target-detach", { "detach", 0 }, 0 },
+ { "target-disconnect", { "disconnect", 0 }, 0 },
+ { "target-download", { NULL, 0 }, mi_cmd_target_download},
+ { "target-exec-status", { NULL, 0 }, NULL, NULL },
+ { "target-list-available-targets", { NULL, 0 }, NULL, NULL },
+ { "target-list-current-targets", { NULL, 0 }, NULL, NULL },
+ { "target-list-parameters", { NULL, 0 }, NULL, NULL },
+ { "target-select", { NULL, 0 }, mi_cmd_target_select},
+ { "thread-info", { NULL, 0 }, NULL, NULL },
+ { "thread-list-all-threads", { NULL, 0 }, NULL, NULL },
+ { "thread-list-ids", { NULL, 0 }, 0, mi_cmd_thread_list_ids},
+ { "thread-select", { NULL, 0 }, 0, mi_cmd_thread_select},
+ { "trace-actions", { NULL, 0 }, NULL, NULL },
+ { "trace-delete", { NULL, 0 }, NULL, NULL },
+ { "trace-disable", { NULL, 0 }, NULL, NULL },
+ { "trace-dump", { NULL, 0 }, NULL, NULL },
+ { "trace-enable", { NULL, 0 }, NULL, NULL },
+ { "trace-exists", { NULL, 0 }, NULL, NULL },
+ { "trace-find", { NULL, 0 }, NULL, NULL },
+ { "trace-frame-number", { NULL, 0 }, NULL, NULL },
+ { "trace-info", { NULL, 0 }, NULL, NULL },
+ { "trace-insert", { NULL, 0 }, NULL, NULL },
+ { "trace-list", { NULL, 0 }, NULL, NULL },
+ { "trace-pass-count", { NULL, 0 }, NULL, NULL },
+ { "trace-save", { NULL, 0 }, NULL, NULL },
+ { "trace-start", { NULL, 0 }, NULL, NULL },
+ { "trace-stop", { NULL, 0 }, NULL, NULL },
+ { "var-assign", { NULL, 0 }, 0, mi_cmd_var_assign},
+ { "var-create", { NULL, 0 }, 0, mi_cmd_var_create},
+ { "var-delete", { NULL, 0 }, 0, mi_cmd_var_delete},
+ { "var-evaluate-expression", { NULL, 0 }, 0, mi_cmd_var_evaluate_expression},
+ { "var-info-expression", { NULL, 0 }, 0, mi_cmd_var_info_expression},
+ { "var-info-num-children", { NULL, 0 }, 0, mi_cmd_var_info_num_children},
+ { "var-info-type", { NULL, 0 }, 0, mi_cmd_var_info_type},
+ { "var-list-children", { NULL, 0 }, 0, mi_cmd_var_list_children},
+ { "var-set-format", { NULL, 0 }, 0, mi_cmd_var_set_format},
+ { "var-show-attributes", { NULL, 0 }, 0, mi_cmd_var_show_attributes},
+ { "var-show-format", { NULL, 0 }, 0, mi_cmd_var_show_format},
+ { "var-update", { NULL, 0 }, 0, mi_cmd_var_update},
+ { NULL, }
};
/* Pointer to the mi command table (built at run time) */
diff --git a/gdb/mi/mi-cmds.h b/gdb/mi/mi-cmds.h
index b0c8cb8..efcf0b5 100644
--- a/gdb/mi/mi-cmds.h
+++ b/gdb/mi/mi-cmds.h
@@ -108,18 +108,26 @@ extern mi_cmd_argv_ftype mi_cmd_var_update;
/* Description of a single command. */
+struct mi_cli
+{
+ /* Corresponding CLI command. If ARGS_P is non-zero, the MI
+ command's argument list is appended to the CLI command. */
+ const char *cmd;
+ int args_p;
+};
+
struct mi_cmd
- {
- /* official name of the command */
- const char *name;
- /* If non-null, the corresponding CLI command that can be used to
- implement this MI command */
- const char *cli;
- /* If non-null, the function implementing the MI command */
- mi_cmd_args_ftype *args_func;
- /* If non-null, the function implementing the MI command */
- mi_cmd_argv_ftype *argv_func;
- };
+{
+ /* official name of the command. */
+ const char *name;
+ /* The corresponding CLI command that can be used to implement this
+ MI command (if cli.lhs is non NULL). */
+ struct mi_cli cli;
+ /* If non-null, the function implementing the MI command. */
+ mi_cmd_args_ftype *args_func;
+ /* If non-null, the function implementing the MI command. */
+ mi_cmd_argv_ftype *argv_func;
+};
/* Lookup a command in the mi comand table */
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index 696ae06..b72d7ef 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -60,6 +60,7 @@ static int mi_interp_query_hook (const char *ctlstr, va_list ap);
static char *mi_interp_read_one_line_hook (char *prompt, int repeat,
char *anno);
+static void mi3_command_loop (void);
static void mi2_command_loop (void);
static void mi1_command_loop (void);
@@ -133,10 +134,12 @@ mi_interpreter_resume (void *data)
/* If we're _the_ interpreter, take control. */
if (current_interp_named_p (INTERP_MI1))
command_loop_hook = mi1_command_loop;
- else if (current_interp_named_p (INTERP_MI))
+ else if (current_interp_named_p (INTERP_MI2))
command_loop_hook = mi2_command_loop;
+ else if (current_interp_named_p (INTERP_MI3))
+ command_loop_hook = mi3_command_loop;
else
- return 0;
+ command_loop_hook = mi2_command_loop;
return 1;
}
@@ -334,6 +337,12 @@ mi2_command_loop (void)
}
static void
+mi3_command_loop (void)
+{
+ mi_command_loop (3);
+}
+
+static void
mi_command_loop (int mi_version)
{
#if 0
@@ -407,8 +416,12 @@ _initialize_mi_interp (void)
mi_interpreter_prompt_p /* prompt_proc_p */
};
- /* Create MI1 interpreter */
+ /* The various interpreter levels. */
interp_add (interp_new (INTERP_MI1, NULL, mi_out_new (1), &procs));
+ interp_add (interp_new (INTERP_MI2, NULL, mi_out_new (2), &procs));
+ interp_add (interp_new (INTERP_MI3, NULL, mi_out_new (3), &procs));
- interp_add (interp_new (INTERP_MI, NULL, mi_out_new (3), &procs));
+ /* "mi" selects the most recent released version. "mi2" was
+ released as part of GDB 6.0. */
+ interp_add (interp_new (INTERP_MI, NULL, mi_out_new (2), &procs));
}
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 5e55913..40d3699 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -87,7 +87,8 @@ static char *old_regs;
extern void _initialize_mi_main (void);
static enum mi_cmd_result mi_cmd_execute (struct mi_parse *parse);
-static void mi_execute_cli_command (const char *cli, char *args);
+static void mi_execute_cli_command (const char *cmd, int args_p,
+ const char *args);
static enum mi_cmd_result mi_execute_async_cli_command (char *mi, char *args, int from_tty);
static void mi_exec_async_cli_cmd_continuation (struct continuation_arg *arg);
@@ -101,7 +102,7 @@ void
mi_error_last_message (void)
{
char *s = error_last_message ();
- xasprintf (&mi_error_message, s);
+ xasprintf (&mi_error_message, "%s", s);
xfree (s);
}
@@ -1156,13 +1157,13 @@ captured_mi_execute_command (struct ui_out *uiout, void *data)
mi commands */
/* echo the command on the console. */
fprintf_unfiltered (gdb_stdlog, "%s\n", context->command);
- /* FIXME: If the command string has something that looks like
- a format spec (e.g. %s) we will get a core dump */
- mi_execute_cli_command ("%s", context->command);
+ mi_execute_cli_command (context->command, 0, NULL);
/* If we changed interpreters, DON'T print out anything. */
if (current_interp_named_p (INTERP_MI)
- || current_interp_named_p (INTERP_MI1))
+ || current_interp_named_p (INTERP_MI1)
+ || current_interp_named_p (INTERP_MI2)
+ || current_interp_named_p (INTERP_MI3))
{
/* print the result */
/* FIXME: Check for errors here. */
@@ -1275,12 +1276,13 @@ mi_cmd_execute (struct mi_parse *parse)
return parse->cmd->args_func (parse->args, 0 /*from_tty */ );
return parse->cmd->argv_func (parse->command, parse->argv, parse->argc);
}
- else if (parse->cmd->cli != 0)
+ else if (parse->cmd->cli.cmd != 0)
{
/* FIXME: DELETE THIS. */
/* The operation is still implemented by a cli command */
/* Must be a synchronous one */
- mi_execute_cli_command (parse->cmd->cli, parse->args);
+ mi_execute_cli_command (parse->cmd->cli.cmd, parse->cmd->cli.args_p,
+ parse->args);
return MI_CMD_DONE;
}
else
@@ -1301,17 +1303,20 @@ mi_cmd_execute (struct mi_parse *parse)
/* Use only for synchronous commands */
void
-mi_execute_cli_command (const char *cli, char *args)
+mi_execute_cli_command (const char *cmd, int args_p, const char *args)
{
- if (cli != 0)
+ if (cmd != 0)
{
struct cleanup *old_cleanups;
char *run;
- xasprintf (&run, cli, args);
+ if (args_p)
+ xasprintf (&run, "%s %s", cmd, args);
+ else
+ run = xstrdup (cmd);
if (mi_debug_p)
/* FIXME: gdb_???? */
fprintf_unfiltered (gdb_stdout, "cli=%s run=%s\n",
- cli, run);
+ cmd, run);
old_cleanups = make_cleanup (xfree, run);
execute_command ( /*ui */ run, 0 /*from_tty */ );
do_cleanups (old_cleanups);
diff --git a/gdb/mi/mi-parse.c b/gdb/mi/mi-parse.c
index ebfddc7..a0ff889 100644
--- a/gdb/mi/mi-parse.c
+++ b/gdb/mi/mi-parse.c
@@ -222,7 +222,7 @@ mi_parse (char *cmd)
/* For CLI and old ARGS commands, also return the remainder of the
command line as a single string. */
if (parse->cmd->args_func != NULL
- || parse->cmd->cli != NULL)
+ || parse->cmd->cli.cmd != NULL)
{
parse->args = xstrdup (chp);
}
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index 78503d1..93a15e5 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -716,7 +716,7 @@ _initialize_mips_linux_tdep (void)
const struct bfd_arch_info *arch_info;
register_addr_data =
- register_gdbarch_data (init_register_addr_data, 0);
+ register_gdbarch_data (init_register_addr_data);
for (arch_info = bfd_lookup_arch (bfd_arch_mips, 0);
arch_info != NULL;
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index d1d2e38..ab860a7 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -5540,25 +5540,6 @@ mips_ignore_helper (CORE_ADDR pc)
}
-/* Return a location where we can set a breakpoint that will be hit
- when an inferior function call returns. This is normally the
- program's entry point. Executables that don't have an entry
- point (e.g. programs in ROM) should define a symbol __CALL_DUMMY_ADDRESS
- whose address is the location where the breakpoint should be placed. */
-
-static CORE_ADDR
-mips_call_dummy_address (void)
-{
- struct minimal_symbol *sym;
-
- sym = lookup_minimal_symbol ("__CALL_DUMMY_ADDRESS", NULL, NULL);
- if (sym)
- return SYMBOL_VALUE_ADDRESS (sym);
- else
- return entry_point_address ();
-}
-
-
/* When debugging a 64 MIPS target running a 32 bit ABI, the size of
the register stored on the stack (32) is different to its real raw
size (64). The below ensures that registers are fetched from the
@@ -6113,7 +6094,10 @@ mips_gdbarch_init (struct gdbarch_info info,
/* MIPS version of CALL_DUMMY */
- set_gdbarch_call_dummy_address (gdbarch, mips_call_dummy_address);
+ /* NOTE: cagney/2003-08-05: Eventually call dummy location will be
+ replaced by a command, and all targets will default to on stack
+ (regardless of the stack's execute status). */
+ set_gdbarch_call_dummy_location (gdbarch, AT_SYMBOL);
set_gdbarch_deprecated_pop_frame (gdbarch, mips_pop_frame);
set_gdbarch_frame_align (gdbarch, mips_frame_align);
set_gdbarch_deprecated_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
index 3519495..7e84eb9 100644
--- a/gdb/mn10300-tdep.c
+++ b/gdb/mn10300-tdep.c
@@ -169,7 +169,7 @@ analyze_dummy_frame (CORE_ADDR pc, CORE_ADDR frame)
get_frame_extra_info (dummy)->status = 0;
get_frame_extra_info (dummy)->stack_size = 0;
memset (get_frame_saved_regs (dummy), '\000', SIZEOF_FRAME_SAVED_REGS);
- mn10300_analyze_prologue (dummy, 0);
+ mn10300_analyze_prologue (dummy, pc);
return dummy;
}
@@ -401,8 +401,13 @@ mn10300_analyze_prologue (struct frame_info *fi, CORE_ADDR pc)
char *name;
/* Use the PC in the frame if it's provided to look up the
- start of this function. */
- pc = (fi ? get_frame_pc (fi) : pc);
+ start of this function.
+
+ Note: kevinb/2003-07-16: We used to do the following here:
+ pc = (fi ? get_frame_pc (fi) : pc);
+ But this is (now) badly broken when called from analyze_dummy_frame().
+ */
+ pc = (pc ? pc : get_frame_pc (fi));
/* Find the start of this function. */
status = find_pc_partial_function (pc, &name, &func_addr, &func_end);
@@ -432,6 +437,9 @@ mn10300_analyze_prologue (struct frame_info *fi, CORE_ADDR pc)
if (status != 0)
return pc;
+#if 0
+ /* Note: kevinb/2003-07-16: We shouldn't be making these sorts of
+ changes to the frame in prologue examination code. */
/* If we're physically on an "rets" instruction, then our frame has
already been deallocated. Note this can also be true for retf
and ret if they specify a size of zero.
@@ -452,9 +460,10 @@ mn10300_analyze_prologue (struct frame_info *fi, CORE_ADDR pc)
deprecated_update_frame_base_hack (fi, read_sp ());
return get_frame_pc (fi);
}
+#endif
/* Figure out where to stop scanning. */
- stop = fi ? get_frame_pc (fi) : func_end;
+ stop = fi ? pc : func_end;
/* Don't walk off the end of the function. */
stop = stop > func_end ? func_end : stop;
diff --git a/gdb/monitor.h b/gdb/monitor.h
index 9141450..2f8ca22 100644
--- a/gdb/monitor.h
+++ b/gdb/monitor.h
@@ -245,8 +245,12 @@ extern void monitor_close (int quitting);
extern char *monitor_supply_register (int regno, char *valstr);
extern int monitor_expect (char *prompt, char *buf, int buflen);
extern int monitor_expect_prompt (char *buf, int buflen);
-extern void monitor_printf (char *, ...) ATTR_FORMAT (printf, 1, 2);
-extern void monitor_printf_noecho (char *, ...) ATTR_FORMAT (printf, 1, 2);
+/* Note: The variable argument functions monitor_printf and
+ monitor_printf_noecho vararg do not take take standard format style
+ arguments. Instead they take custom formats interpretered directly
+ by monitor_vsprintf. */
+extern void monitor_printf (char *, ...);
+extern void monitor_printf_noecho (char *, ...);
extern void monitor_write (char *buf, int buflen);
extern int monitor_readchar (void);
extern char *monitor_get_dev_name (void);
diff --git a/gdb/ns32k-tdep.c b/gdb/ns32k-tdep.c
index a52f39f..7bad91d 100644
--- a/gdb/ns32k-tdep.c
+++ b/gdb/ns32k-tdep.c
@@ -327,7 +327,7 @@ ns32k_sigtramp_saved_pc (struct frame_info *frame)
/* Get sigcontext address, it is the third parameter on the stack. */
if (get_next_frame (frame))
sigcontext_addr = read_memory_typed_address
- (FRAME_ARGS_ADDRESS (get_next_frame (frame)) + FRAME_ARGS_SKIP + sigcontext_offs,
+ (DEPRECATED_FRAME_ARGS_ADDRESS (get_next_frame (frame)) + FRAME_ARGS_SKIP + sigcontext_offs,
builtin_type_void_data_ptr);
else
sigcontext_addr = read_memory_typed_address
@@ -569,7 +569,7 @@ ns32k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_deprecated_frame_chain (gdbarch, ns32k_frame_chain);
set_gdbarch_deprecated_frame_saved_pc (gdbarch, ns32k_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, ns32k_frame_args_address);
+ set_gdbarch_deprecated_frame_args_address (gdbarch, ns32k_frame_args_address);
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, ns32k_frame_init_saved_regs);
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c
new file mode 100644
index 0000000..00b4096
--- /dev/null
+++ b/gdb/nto-procfs.c
@@ -0,0 +1,1389 @@
+/* Machine independent support for QNX Neutrino /proc (process file system)
+ for GDB. Written by Colin Burgess at QNX Software Systems Limited.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ Contributed by QNX Software Systems Ltd.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+
+#include <fcntl.h>
+#include <spawn.h>
+#include <sys/debug.h>
+#include <sys/procfs.h>
+#include <sys/neutrino.h>
+#include <sys/syspage.h>
+#include "gdb_dirent.h"
+#include <sys/netmgr.h>
+
+#include "gdb_string.h"
+#include "gdbcore.h"
+#include "inferior.h"
+#include "target.h"
+#include "objfiles.h"
+#include "gdbthread.h"
+#include "nto-tdep.h"
+#include "command.h"
+#include "regcache.h"
+
+#define NULL_PID 0
+#define _DEBUG_FLAG_TRACE (_DEBUG_FLAG_TRACE_EXEC|_DEBUG_FLAG_TRACE_RD|\
+ _DEBUG_FLAG_TRACE_WR|_DEBUG_FLAG_TRACE_MODIFY)
+
+static struct target_ops procfs_ops;
+
+int ctl_fd;
+
+static void (*ofunc) ();
+
+static procfs_run run;
+
+static void procfs_open (char *, int);
+
+static int procfs_can_run (void);
+
+static ptid_t procfs_wait (ptid_t, struct target_waitstatus *);
+
+static int procfs_xfer_memory (CORE_ADDR, char *, int, int,
+ struct mem_attrib *attrib,
+ struct target_ops *);
+
+static void procfs_fetch_registers (int);
+
+static void notice_signals (void);
+
+static void init_procfs_ops (void);
+
+static ptid_t do_attach (ptid_t ptid);
+
+static int procfs_can_use_hw_breakpoint (int, int, int);
+
+static int procfs_insert_hw_breakpoint (CORE_ADDR, char *);
+
+static int procfs_remove_hw_breakpoint (CORE_ADDR addr, char *);
+
+static int procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type);
+
+static int procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type);
+
+static int procfs_stopped_by_watchpoint (void);
+
+/* These two globals are only ever set in procfs_open(), but are
+ referenced elsewhere. 'nto_procfs_node' is a flag used to say
+ whether we are local, or we should get the current node descriptor
+ for the remote QNX node. */
+static char nto_procfs_path[PATH_MAX] = { "/proc" };
+static unsigned nto_procfs_node = ND_LOCAL_NODE;
+
+/* Return the current QNX Node, or error out. This is a simple
+ wrapper for the netmgr_strtond() function. The reason this
+ is required is because QNX node descriptors are transient so
+ we have to re-acquire them every time. */
+static unsigned
+nto_node(void)
+{
+ unsigned node;
+
+ if (ND_NODE_CMP(nto_procfs_node, ND_LOCAL_NODE) == 0)
+ return ND_LOCAL_NODE;
+
+ node = netmgr_strtond(nto_procfs_path,0);
+ if (node == -1)
+ error ("Lost the QNX node. Debug session probably over.");
+
+ return (node);
+}
+
+/* This is called when we call 'target procfs <arg>' from the (gdb) prompt.
+ For QNX6 (nto), the only valid arg will be a QNX node string,
+ eg: "/net/some_node". If arg is not a valid QNX node, we will
+ default to local. */
+static void
+procfs_open (char *arg, int from_tty)
+{
+ char *nodestr;
+ char *endstr;
+ char buffer[50];
+ int fd, total_size;
+ procfs_sysinfo *sysinfo;
+
+ /* Set the default node used for spawning to this one,
+ and only override it if there is a valid arg. */
+
+ nto_procfs_node = ND_LOCAL_NODE;
+ nodestr = arg ? xstrdup (arg) : arg;
+
+ init_thread_list ();
+
+ if (nodestr)
+ {
+ nto_procfs_node = netmgr_strtond (nodestr, &endstr);
+ if (nto_procfs_node == -1)
+ {
+ if (errno == ENOTSUP)
+ printf_filtered ("QNX Net Manager not found.\n");
+ printf_filtered ("Invalid QNX node %s: error %d (%s).\n", nodestr,
+ errno, safe_strerror (errno));
+ xfree (nodestr);
+ nodestr = NULL;
+ nto_procfs_node = ND_LOCAL_NODE;
+ }
+ else if (*endstr)
+ {
+ if (*(endstr - 1) == '/')
+ *(endstr - 1) = 0;
+ else
+ *endstr = 0;
+ }
+ }
+ snprintf (nto_procfs_path, PATH_MAX - 1, "%s%s", nodestr ? nodestr : "", "/proc");
+ if (nodestr)
+ xfree (nodestr);
+
+ fd = open (nto_procfs_path, O_RDONLY);
+ if (fd == -1)
+ {
+ printf_filtered ("Error opening %s : %d (%s)\n", nto_procfs_path, errno,
+ safe_strerror (errno));
+ error ("Invalid procfs arg");
+ }
+
+ sysinfo = (void *) buffer;
+ if (devctl (fd, DCMD_PROC_SYSINFO, sysinfo, sizeof buffer, 0) != EOK)
+ {
+ printf_filtered ("Error getting size: %d (%s)\n", errno,
+ safe_strerror (errno));
+ close (fd);
+ error ("Devctl failed.");
+ }
+ else
+ {
+ total_size = sysinfo->total_size;
+ sysinfo = alloca (total_size);
+ if (!sysinfo)
+ {
+ printf_filtered ("Memory error: %d (%s)\n", errno,
+ safe_strerror (errno));
+ close (fd);
+ error ("alloca failed.");
+ }
+ else
+ {
+ if (devctl (fd, DCMD_PROC_SYSINFO, sysinfo, total_size, 0) != EOK)
+ {
+ printf_filtered ("Error getting sysinfo: %d (%s)\n", errno,
+ safe_strerror (errno));
+ close (fd);
+ error ("Devctl failed.");
+ }
+ else
+ {
+ if (sysinfo->type !=
+ nto_map_arch_to_cputype (TARGET_ARCHITECTURE->arch_name))
+ {
+ close (fd);
+ error ("Invalid target CPU.");
+ }
+ }
+ }
+ }
+ close (fd);
+ printf_filtered ("Debugging using %s\n", nto_procfs_path);
+}
+
+static void
+procfs_set_thread (ptid_t ptid)
+{
+ pid_t tid;
+
+ tid = ptid_get_tid (ptid);
+ devctl (ctl_fd, DCMD_PROC_CURTHREAD, &tid, sizeof (tid), 0);
+}
+
+/* Return nonzero if the thread TH is still alive. */
+static int
+procfs_thread_alive (ptid_t ptid)
+{
+ pid_t tid;
+
+ tid = ptid_get_tid (ptid);
+ if (devctl (ctl_fd, DCMD_PROC_CURTHREAD, &tid, sizeof (tid), 0) == EOK)
+ return 1;
+ return 0;
+}
+
+void
+procfs_find_new_threads (void)
+{
+ procfs_status status;
+ pid_t pid;
+ ptid_t ptid;
+
+ if (ctl_fd == -1)
+ return;
+
+ pid = ptid_get_pid (inferior_ptid);
+
+ for (status.tid = 1;; ++status.tid)
+ {
+ if (devctl (ctl_fd, DCMD_PROC_TIDSTATUS, &status, sizeof (status), 0)
+ != EOK && status.tid != 0)
+ break;
+ ptid = ptid_build (pid, 0, status.tid);
+ if (!in_thread_list (ptid))
+ add_thread (ptid);
+ }
+ return;
+}
+
+void
+procfs_pidlist (char *args, int from_tty)
+{
+ DIR *dp = NULL;
+ struct dirent *dirp = NULL;
+ int fd = -1;
+ char buf[512];
+ procfs_info *pidinfo = NULL;
+ procfs_debuginfo *info = NULL;
+ procfs_status *status = NULL;
+ pid_t num_threads = 0;
+ pid_t pid;
+ char name[512];
+
+ dp = opendir (nto_procfs_path);
+ if (dp == NULL)
+ {
+ fprintf_unfiltered (gdb_stderr, "failed to opendir \"%s\" - %d (%s)",
+ nto_procfs_path, errno, safe_strerror (errno));
+ return;
+ }
+
+ /* Start scan at first pid. */
+ rewinddir (dp);
+
+ do
+ {
+ /* Get the right pid and procfs path for the pid. */
+ do
+ {
+ dirp = readdir (dp);
+ if (dirp == NULL)
+ {
+ closedir (dp);
+ return;
+ }
+ snprintf (buf, 511, "%s/%s/as", nto_procfs_path, dirp->d_name);
+ pid = atoi (dirp->d_name);
+ }
+ while (pid == 0);
+
+ /* Open the procfs path. */
+ fd = open (buf, O_RDONLY);
+ if (fd == -1)
+ {
+ fprintf_unfiltered (gdb_stderr, "failed to open %s - %d (%s)\n",
+ buf, errno, safe_strerror (errno));
+ closedir (dp);
+ return;
+ }
+
+ pidinfo = (procfs_info *) buf;
+ if (devctl (fd, DCMD_PROC_INFO, pidinfo, sizeof (buf), 0) != EOK)
+ {
+ fprintf_unfiltered (gdb_stderr,
+ "devctl DCMD_PROC_INFO failed - %d (%s)\n", errno,
+ safe_strerror (errno));
+ break;
+ }
+ num_threads = pidinfo->num_threads;
+
+ info = (procfs_debuginfo *) buf;
+ if (devctl (fd, DCMD_PROC_MAPDEBUG_BASE, info, sizeof (buf), 0) != EOK)
+ strcpy (name, "unavailable");
+ else
+ strcpy (name, info->path);
+
+ /* Collect state info on all the threads. */
+ status = (procfs_status *) buf;
+ for (status->tid = 1; status->tid <= num_threads; status->tid++)
+ {
+ if (devctl (fd, DCMD_PROC_TIDSTATUS, status, sizeof (buf), 0) != EOK
+ && status->tid != 0)
+ break;
+ if (status->tid != 0)
+ printf_filtered ("%s - %d/%d\n", name, pid, status->tid);
+ }
+ close (fd);
+ }
+ while (dirp != NULL);
+
+ close (fd);
+ closedir (dp);
+ return;
+}
+
+void
+procfs_meminfo (char *args, int from_tty)
+{
+ procfs_mapinfo *mapinfos = NULL;
+ static int num_mapinfos = 0;
+ procfs_mapinfo *mapinfo_p, *mapinfo_p2;
+ int flags = ~0, err, num, i, j;
+
+ struct
+ {
+ procfs_debuginfo info;
+ char buff[_POSIX_PATH_MAX];
+ } map;
+
+ struct info
+ {
+ unsigned addr;
+ unsigned size;
+ unsigned flags;
+ unsigned debug_vaddr;
+ unsigned long long offset;
+ };
+
+ struct printinfo
+ {
+ unsigned long long ino;
+ unsigned dev;
+ struct info text;
+ struct info data;
+ char name[256];
+ } printme;
+
+ /* Get the number of map entrys. */
+ err = devctl (ctl_fd, DCMD_PROC_MAPINFO, NULL, 0, &num);
+ if (err != EOK)
+ {
+ printf ("failed devctl num mapinfos - %d (%s)\n", err, safe_strerror (err));
+ return;
+ }
+
+ mapinfos = xmalloc (num * sizeof (procfs_mapinfo));
+
+ num_mapinfos = num;
+ mapinfo_p = mapinfos;
+
+ /* Fill the map entrys. */
+ err = devctl (ctl_fd, DCMD_PROC_MAPINFO, mapinfo_p, num
+ * sizeof (procfs_mapinfo), &num);
+ if (err != EOK)
+ {
+ printf ("failed devctl mapinfos - %d (%s)\n", err, safe_strerror (err));
+ xfree (mapinfos);
+ return;
+ }
+
+ num = min (num, num_mapinfos);
+
+ /* Run through the list of mapinfos, and store the data and text info
+ so we can print it at the bottom of the loop. */
+ for (mapinfo_p = mapinfos, i = 0; i < num; i++, mapinfo_p++)
+ {
+ if (!(mapinfo_p->flags & flags))
+ mapinfo_p->ino = 0;
+
+ if (mapinfo_p->ino == 0) /* Already visited. */
+ continue;
+
+ map.info.vaddr = mapinfo_p->vaddr;
+
+ err = devctl (ctl_fd, DCMD_PROC_MAPDEBUG, &map, sizeof (map), 0);
+ if (err != EOK)
+ continue;
+
+ memset (&printme, 0, sizeof printme);
+ printme.dev = mapinfo_p->dev;
+ printme.ino = mapinfo_p->ino;
+ printme.text.addr = mapinfo_p->vaddr;
+ printme.text.size = mapinfo_p->size;
+ printme.text.flags = mapinfo_p->flags;
+ printme.text.offset = mapinfo_p->offset;
+ printme.text.debug_vaddr = map.info.vaddr;
+ strcpy (printme.name, map.info.path);
+
+ /* Check for matching data. */
+ for (mapinfo_p2 = mapinfos, j = 0; j < num; j++, mapinfo_p2++)
+ {
+ if (mapinfo_p2->vaddr != mapinfo_p->vaddr
+ && mapinfo_p2->ino == mapinfo_p->ino
+ && mapinfo_p2->dev == mapinfo_p->dev)
+ {
+ map.info.vaddr = mapinfo_p2->vaddr;
+ err =
+ devctl (ctl_fd, DCMD_PROC_MAPDEBUG, &map, sizeof (map), 0);
+ if (err != EOK)
+ continue;
+
+ if (strcmp (map.info.path, printme.name))
+ continue;
+
+ /* Lower debug_vaddr is always text, if nessessary, swap. */
+ if ((int) map.info.vaddr < (int) printme.text.debug_vaddr)
+ {
+ memcpy (&(printme.data), &(printme.text),
+ sizeof (printme.data));
+ printme.text.addr = mapinfo_p2->vaddr;
+ printme.text.size = mapinfo_p2->size;
+ printme.text.flags = mapinfo_p2->flags;
+ printme.text.offset = mapinfo_p2->offset;
+ printme.text.debug_vaddr = map.info.vaddr;
+ }
+ else
+ {
+ printme.data.addr = mapinfo_p2->vaddr;
+ printme.data.size = mapinfo_p2->size;
+ printme.data.flags = mapinfo_p2->flags;
+ printme.data.offset = mapinfo_p2->offset;
+ printme.data.debug_vaddr = map.info.vaddr;
+ }
+ mapinfo_p2->ino = 0;
+ }
+ }
+ mapinfo_p->ino = 0;
+
+ printf_filtered ("%s\n", printme.name);
+ printf_filtered ("\ttext=%08x bytes @ 0x%08x\n", printme.text.size,
+ printme.text.addr);
+ printf_filtered ("\t\tflags=%08x\n", printme.text.flags);
+ printf_filtered ("\t\tdebug=%08x\n", printme.text.debug_vaddr);
+ printf_filtered ("\t\toffset=%016llx\n", printme.text.offset);
+ if (printme.data.size)
+ {
+ printf_filtered ("\tdata=%08x bytes @ 0x%08x\n", printme.data.size,
+ printme.data.addr);
+ printf_filtered ("\t\tflags=%08x\n", printme.data.flags);
+ printf_filtered ("\t\tdebug=%08x\n", printme.data.debug_vaddr);
+ printf_filtered ("\t\toffset=%016llx\n", printme.data.offset);
+ }
+ printf_filtered ("\tdev=0x%x\n", printme.dev);
+ printf_filtered ("\tino=0x%x\n", (unsigned int) printme.ino);
+ }
+ xfree (mapinfos);
+ return;
+}
+
+/* Print status information about what we're accessing. */
+static void
+procfs_files_info (struct target_ops *ignore)
+{
+ printf_unfiltered ("\tUsing the running image of %s %s via %s.\n",
+ attach_flag ? "attached" : "child",
+ target_pid_to_str (inferior_ptid), nto_procfs_path);
+}
+
+/* Mark our target-struct as eligible for stray "run" and "attach" commands. */
+static int
+procfs_can_run (void)
+{
+ return 1;
+}
+
+/* Attach to process PID, then initialize for debugging it. */
+static void
+procfs_attach (char *args, int from_tty)
+{
+ char *exec_file;
+ int pid;
+
+ if (!args)
+ error_no_arg ("process-id to attach");
+
+ pid = atoi (args);
+
+ if (pid == getpid ())
+ error ("Attaching GDB to itself is not a good idea...");
+
+ if (from_tty)
+ {
+ exec_file = (char *) get_exec_file (0);
+
+ if (exec_file)
+ printf_unfiltered ("Attaching to program `%s', %s\n", exec_file,
+ target_pid_to_str (pid_to_ptid (pid)));
+ else
+ printf_unfiltered ("Attaching to %s\n",
+ target_pid_to_str (pid_to_ptid (pid)));
+
+ gdb_flush (gdb_stdout);
+ }
+ inferior_ptid = do_attach (pid_to_ptid (pid));
+ push_target (&procfs_ops);
+}
+
+static void
+procfs_post_attach (pid_t pid)
+{
+#ifdef SOLIB_CREATE_INFERIOR_HOOK
+ if (exec_bfd)
+ SOLIB_CREATE_INFERIOR_HOOK (pid);
+#endif
+}
+
+static ptid_t
+do_attach (ptid_t ptid)
+{
+ procfs_status status;
+ struct sigevent event;
+ char path[PATH_MAX];
+
+ snprintf (path, PATH_MAX - 1, "%s/%d/as", nto_procfs_path, PIDGET (ptid));
+ ctl_fd = open (path, O_RDWR);
+ if (ctl_fd == -1)
+ error ("Couldn't open proc file %s, error %d (%s)", path, errno,
+ safe_strerror (errno));
+ if (devctl (ctl_fd, DCMD_PROC_STOP, &status, sizeof (status), 0) != EOK)
+ error ("Couldn't stop process");
+
+ /* Define a sigevent for process stopped notification. */
+ event.sigev_notify = SIGEV_SIGNAL_THREAD;
+ event.sigev_signo = SIGUSR1;
+ event.sigev_code = 0;
+ event.sigev_value.sival_ptr = NULL;
+ event.sigev_priority = -1;
+ devctl (ctl_fd, DCMD_PROC_EVENT, &event, sizeof (event), 0);
+
+ if (devctl (ctl_fd, DCMD_PROC_STATUS, &status, sizeof (status), 0) == EOK
+ && status.flags & _DEBUG_FLAG_STOPPED)
+ SignalKill (nto_node(), PIDGET (ptid), 0, SIGCONT, 0, 0);
+ attach_flag = 1;
+ nto_init_solib_absolute_prefix ();
+ return ptid;
+}
+
+/* Ask the user what to do when an interrupt is received. */
+static void
+interrupt_query (void)
+{
+ target_terminal_ours ();
+
+ if (query ("Interrupted while waiting for the program.\n\
+Give up (and stop debugging it)? "))
+ {
+ target_mourn_inferior ();
+ throw_exception (RETURN_QUIT);
+ }
+
+ target_terminal_inferior ();
+}
+
+/* The user typed ^C twice. */
+static void
+nto_interrupt_twice (int signo)
+{
+ signal (signo, ofunc);
+ interrupt_query ();
+ signal (signo, nto_interrupt_twice);
+}
+
+static void
+nto_interrupt (int signo)
+{
+ /* If this doesn't work, try more severe steps. */
+ signal (signo, nto_interrupt_twice);
+
+ target_stop ();
+}
+
+static ptid_t
+procfs_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
+{
+ sigset_t set;
+ siginfo_t info;
+ procfs_status status;
+ static int exit_signo = 0; /* To track signals that cause termination. */
+
+ ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
+
+ if (ptid_equal (inferior_ptid, null_ptid))
+ {
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ ourstatus->value.sig = TARGET_SIGNAL_0;
+ exit_signo = 0;
+ return null_ptid;
+ }
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGUSR1);
+
+ devctl (ctl_fd, DCMD_PROC_STATUS, &status, sizeof (status), 0);
+ while (!(status.flags & _DEBUG_FLAG_ISTOP))
+ {
+ ofunc = (void (*)()) signal (SIGINT, nto_interrupt);
+ sigwaitinfo (&set, &info);
+ signal (SIGINT, ofunc);
+ devctl (ctl_fd, DCMD_PROC_STATUS, &status, sizeof (status), 0);
+ }
+
+ if (status.flags & _DEBUG_FLAG_SSTEP)
+ {
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ ourstatus->value.sig = TARGET_SIGNAL_TRAP;
+ }
+ /* Was it a breakpoint? */
+ else if (status.flags & _DEBUG_FLAG_TRACE)
+ {
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ ourstatus->value.sig = TARGET_SIGNAL_TRAP;
+ }
+ else if (status.flags & _DEBUG_FLAG_ISTOP)
+ {
+ switch (status.why)
+ {
+ case _DEBUG_WHY_SIGNALLED:
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ ourstatus->value.sig =
+ target_signal_from_host (status.info.si_signo);
+ exit_signo = 0;
+ break;
+ case _DEBUG_WHY_FAULTED:
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ if (status.info.si_signo == SIGTRAP)
+ {
+ ourstatus->value.sig = 0;
+ exit_signo = 0;
+ }
+ else
+ {
+ ourstatus->value.sig =
+ target_signal_from_host (status.info.si_signo);
+ exit_signo = ourstatus->value.sig;
+ }
+ break;
+
+ case _DEBUG_WHY_TERMINATED:
+ {
+ int waitval = 0;
+
+ waitpid (PIDGET (inferior_ptid), &waitval, WNOHANG);
+ if (exit_signo)
+ {
+ /* Abnormal death. */
+ ourstatus->kind = TARGET_WAITKIND_SIGNALLED;
+ ourstatus->value.sig = exit_signo;
+ }
+ else
+ {
+ /* Normal death. */
+ ourstatus->kind = TARGET_WAITKIND_EXITED;
+ ourstatus->value.integer = WEXITSTATUS (waitval);
+ }
+ exit_signo = 0;
+ break;
+ }
+
+ case _DEBUG_WHY_REQUESTED:
+ /* We are assuming a requested stop is due to a SIGINT. */
+ ourstatus->kind = TARGET_WAITKIND_STOPPED;
+ ourstatus->value.sig = TARGET_SIGNAL_INT;
+ exit_signo = 0;
+ break;
+ }
+ }
+
+ return inferior_ptid;
+}
+
+/* Read the current values of the inferior's registers, both the
+ general register set and floating point registers (if supported)
+ and update gdb's idea of their current values. */
+static void
+procfs_fetch_registers (int regno)
+{
+ union
+ {
+ procfs_greg greg;
+ procfs_fpreg fpreg;
+ procfs_altreg altreg;
+ }
+ reg;
+ int regsize;
+
+ procfs_set_thread (inferior_ptid);
+ if (devctl (ctl_fd, DCMD_PROC_GETGREG, &reg, sizeof (reg), &regsize) == EOK)
+ nto_supply_gregset ((char *) &reg.greg);
+ if (devctl (ctl_fd, DCMD_PROC_GETFPREG, &reg, sizeof (reg), &regsize)
+ == EOK)
+ nto_supply_fpregset ((char *) &reg.fpreg);
+ if (devctl (ctl_fd, DCMD_PROC_GETALTREG, &reg, sizeof (reg), &regsize)
+ == EOK)
+ nto_supply_altregset ((char *) &reg.altreg);
+}
+
+/* Copy LEN bytes to/from inferior's memory starting at MEMADDR
+ from/to debugger memory starting at MYADDR. Copy from inferior
+ if DOWRITE is zero or to inferior if DOWRITE is nonzero.
+
+ Returns the length copied, which is either the LEN argument or
+ zero. This xfer function does not do partial moves, since procfs_ops
+ doesn't allow memory operations to cross below us in the target stack
+ anyway. */
+static int
+procfs_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int dowrite,
+ struct mem_attrib *attrib, struct target_ops *target)
+{
+ int nbytes = 0;
+
+ if (lseek (ctl_fd, (off_t) memaddr, SEEK_SET) == (off_t) memaddr)
+ {
+ if (dowrite)
+ nbytes = write (ctl_fd, myaddr, len);
+ else
+ nbytes = read (ctl_fd, myaddr, len);
+ if (nbytes < 0)
+ nbytes = 0;
+ }
+ return (nbytes);
+}
+
+/* Take a program previously attached to and detaches it.
+ The program resumes execution and will no longer stop
+ on signals, etc. We'd better not have left any breakpoints
+ in the program or it'll die when it hits one. */
+static void
+procfs_detach (char *args, int from_tty)
+{
+ int siggnal = 0;
+
+ if (from_tty)
+ {
+ char *exec_file = get_exec_file (0);
+ if (exec_file == 0)
+ exec_file = "";
+ printf_unfiltered ("Detaching from program: %s %s\n",
+ exec_file, target_pid_to_str (inferior_ptid));
+ gdb_flush (gdb_stdout);
+ }
+ if (args)
+ siggnal = atoi (args);
+
+ if (siggnal)
+ SignalKill (nto_node(), PIDGET (inferior_ptid), 0, siggnal, 0, 0);
+
+ close (ctl_fd);
+ ctl_fd = -1;
+ init_thread_list ();
+ inferior_ptid = null_ptid;
+ attach_flag = 0;
+ unpush_target (&procfs_ops); /* Pop out of handling an inferior. */
+}
+
+static int
+procfs_breakpoint (CORE_ADDR addr, int type, int size)
+{
+ procfs_break brk;
+
+ brk.type = type;
+ brk.addr = addr;
+ brk.size = size;
+ errno = devctl (ctl_fd, DCMD_PROC_BREAK, &brk, sizeof (brk), 0);
+ if (errno != EOK)
+ return 1;
+ return 0;
+}
+
+static int
+procfs_insert_breakpoint (CORE_ADDR addr, char *contents_cache)
+{
+ return procfs_breakpoint (addr, _DEBUG_BREAK_EXEC, 0);
+}
+
+static int
+procfs_remove_breakpoint (CORE_ADDR addr, char *contents_cache)
+{
+ return procfs_breakpoint (addr, _DEBUG_BREAK_EXEC, -1);
+}
+
+static int
+procfs_insert_hw_breakpoint (CORE_ADDR addr, char *contents_cache)
+{
+ return procfs_breakpoint (addr, _DEBUG_BREAK_EXEC | _DEBUG_BREAK_HW, 0);
+}
+
+static int
+procfs_remove_hw_breakpoint (CORE_ADDR addr, char *contents_cache)
+{
+ return procfs_breakpoint (addr, _DEBUG_BREAK_EXEC | _DEBUG_BREAK_HW, -1);
+}
+
+static void
+procfs_resume (ptid_t ptid, int step, enum target_signal signo)
+{
+ int signal_to_pass;
+ procfs_status status;
+
+ if (ptid_equal (inferior_ptid, null_ptid))
+ return;
+
+ procfs_set_thread (ptid_equal (ptid, minus_one_ptid) ? inferior_ptid :
+ ptid);
+
+ run.flags = _DEBUG_RUN_FAULT | _DEBUG_RUN_TRACE;
+ if (step)
+ run.flags |= _DEBUG_RUN_STEP;
+
+ sigemptyset ((sigset_t *) &run.fault);
+ sigaddset ((sigset_t *) &run.fault, FLTBPT);
+ sigaddset ((sigset_t *) &run.fault, FLTTRACE);
+ sigaddset ((sigset_t *) &run.fault, FLTILL);
+ sigaddset ((sigset_t *) &run.fault, FLTPRIV);
+ sigaddset ((sigset_t *) &run.fault, FLTBOUNDS);
+ sigaddset ((sigset_t *) &run.fault, FLTIOVF);
+ sigaddset ((sigset_t *) &run.fault, FLTIZDIV);
+ sigaddset ((sigset_t *) &run.fault, FLTFPE);
+ /* Peter V will be changing this at some point. */
+ sigaddset ((sigset_t *) &run.fault, FLTPAGE);
+
+ run.flags |= _DEBUG_RUN_ARM;
+
+ sigemptyset (&run.trace);
+ notice_signals ();
+ signal_to_pass = target_signal_to_host (signo);
+
+ if (signal_to_pass)
+ {
+ devctl (ctl_fd, DCMD_PROC_STATUS, &status, sizeof (status), 0);
+ signal_to_pass = target_signal_to_host (signo);
+ if (status.why & (_DEBUG_WHY_SIGNALLED | _DEBUG_WHY_FAULTED))
+ {
+ if (signal_to_pass != status.info.si_signo)
+ {
+ SignalKill (nto_node(), PIDGET (inferior_ptid), 0, signal_to_pass,
+ 0, 0);
+ run.flags |= _DEBUG_RUN_CLRFLT | _DEBUG_RUN_CLRSIG;
+ }
+ else /* Let it kill the program without telling us. */
+ sigdelset (&run.trace, signal_to_pass);
+ }
+ }
+ else
+ run.flags |= _DEBUG_RUN_CLRSIG | _DEBUG_RUN_CLRFLT;
+
+ errno = devctl (ctl_fd, DCMD_PROC_RUN, &run, sizeof (run), 0);
+ if (errno != EOK)
+ {
+ perror ("run error!\n");
+ return;
+ }
+}
+
+static void
+procfs_mourn_inferior (void)
+{
+ if (!ptid_equal (inferior_ptid, null_ptid))
+ {
+ SignalKill (nto_node(), PIDGET (inferior_ptid), 0, SIGKILL, 0, 0);
+ close (ctl_fd);
+ }
+ inferior_ptid = null_ptid;
+ init_thread_list ();
+ unpush_target (&procfs_ops);
+ generic_mourn_inferior ();
+ attach_flag = 0;
+}
+
+/* This function breaks up an argument string into an argument
+ vector suitable for passing to execvp().
+ E.g., on "run a b c d" this routine would get as input
+ the string "a b c d", and as output it would fill in argv with
+ the four arguments "a", "b", "c", "d". The only additional
+ functionality is simple quoting. The gdb command:
+ run a "b c d" f
+ will fill in argv with the three args "a", "b c d", "e". */
+static void
+breakup_args (char *scratch, char **argv)
+{
+ char *pp, *cp = scratch;
+ char quoting = 0;
+
+ for (;;)
+ {
+ /* Scan past leading separators. */
+ quoting = 0;
+ while (*cp == ' ' || *cp == '\t' || *cp == '\n')
+ cp++;
+
+ /* Break if at end of string. */
+ if (*cp == '\0')
+ break;
+
+ /* Take an arg. */
+ if (*cp == '"')
+ {
+ cp++;
+ quoting = strchr (cp, '"') ? 1 : 0;
+ }
+
+ *argv++ = cp;
+
+ /* Scan for next arg separator. */
+ pp = cp;
+ if (quoting)
+ cp = strchr (pp, '"');
+ if ((cp == NULL) || (!quoting))
+ cp = strchr (pp, ' ');
+ if (cp == NULL)
+ cp = strchr (pp, '\t');
+ if (cp == NULL)
+ cp = strchr (pp, '\n');
+
+ /* No separators => end of string => break. */
+ if (cp == NULL)
+ {
+ pp = cp;
+ break;
+ }
+
+ /* Replace the separator with a terminator. */
+ *cp++ = '\0';
+ }
+
+ /* Execv requires a null-terminated arg vector. */
+ *argv = NULL;
+}
+
+static void
+procfs_create_inferior (char *exec_file, char *allargs, char **env)
+{
+ struct inheritance inherit;
+ pid_t pid;
+ int flags, errn;
+ char **argv, *args;
+ char *in = "", *out = "", *err = "";
+ int fd, fds[3];
+ sigset_t set;
+
+ argv = xmalloc (((strlen (allargs) + 1) / (unsigned) 2 + 2) *
+ sizeof (*argv));
+ argv[0] = get_exec_file (1);
+ if (!argv[0])
+ {
+ if (exec_file)
+ argv[0] = exec_file;
+ else
+ return;
+ }
+
+ args = xstrdup (allargs);
+ breakup_args (args, exec_file ? &argv[1] : &argv[0]);
+
+ argv = nto_parse_redirection (argv, &in, &out, &err);
+
+ fds[0] = STDIN_FILENO;
+ fds[1] = STDOUT_FILENO;
+ fds[2] = STDERR_FILENO;
+
+ /* If the user specified I/O via gdb's --tty= arg, use it, but only
+ if the i/o is not also being specified via redirection. */
+ if (inferior_io_terminal)
+ {
+ if (!in[0])
+ in = inferior_io_terminal;
+ if (!out[0])
+ out = inferior_io_terminal;
+ if (!err[0])
+ err = inferior_io_terminal;
+ }
+
+ if (in[0])
+ {
+ fd = open (in, O_RDONLY);
+ if (fd == -1)
+ perror (in);
+ else
+ fds[0] = fd;
+ }
+ if (out[0])
+ {
+ fd = open (out, O_WRONLY);
+ if (fd == -1)
+ perror (out);
+ else
+ fds[1] = fd;
+ }
+ if (err[0])
+ {
+ fd = open (err, O_WRONLY);
+ if (fd == -1)
+ perror (err);
+ else
+ fds[2] = fd;
+ }
+
+ /* Clear any pending SIGUSR1's but keep the behavior the same. */
+ signal (SIGUSR1, signal (SIGUSR1, SIG_IGN));
+
+ sigemptyset (&set);
+ sigaddset (&set, SIGUSR1);
+ sigprocmask (SIG_UNBLOCK, &set, NULL);
+
+ memset (&inherit, 0, sizeof (inherit));
+
+ if (ND_NODE_CMP (nto_procfs_node, ND_LOCAL_NODE) != 0)
+ {
+ inherit.nd = nto_node();
+ inherit.flags |= SPAWN_SETND;
+ inherit.flags &= ~SPAWN_EXEC;
+ }
+ inherit.flags |= SPAWN_SETGROUP | SPAWN_HOLD;
+ inherit.pgroup = SPAWN_NEWPGROUP;
+ pid = spawnp (argv[0], 3, fds, &inherit, argv,
+ ND_NODE_CMP (nto_procfs_node, ND_LOCAL_NODE) == 0 ? env : 0);
+ xfree (args);
+
+ sigprocmask (SIG_BLOCK, &set, NULL);
+
+ if (pid == -1)
+ error ("Error spawning %s: %d (%s)", argv[0], errno, safe_strerror (errno));
+
+ if (fds[0] != STDIN_FILENO)
+ close (fds[0]);
+ if (fds[1] != STDOUT_FILENO)
+ close (fds[1]);
+ if (fds[2] != STDERR_FILENO)
+ close (fds[2]);
+
+ inferior_ptid = do_attach (pid_to_ptid (pid));
+
+ attach_flag = 0;
+ flags = _DEBUG_FLAG_KLC; /* Kill-on-Last-Close flag. */
+ errn = devctl (ctl_fd, DCMD_PROC_SET_FLAG, &flags, sizeof (flags), 0);
+ if (errn != EOK)
+ {
+ /* FIXME: expected warning? */
+ /* warning( "Failed to set Kill-on-Last-Close flag: errno = %d(%s)\n",
+ errn, strerror(errn) ); */
+ }
+ push_target (&procfs_ops);
+ target_terminal_init ();
+
+#ifdef SOLIB_CREATE_INFERIOR_HOOK
+ if (exec_bfd != NULL
+ || (symfile_objfile != NULL && symfile_objfile->obfd != NULL))
+ SOLIB_CREATE_INFERIOR_HOOK (pid);
+#endif
+}
+
+static void
+procfs_stop (void)
+{
+ devctl (ctl_fd, DCMD_PROC_STOP, NULL, 0, 0);
+}
+
+static void
+procfs_kill_inferior (void)
+{
+ target_mourn_inferior ();
+}
+
+/* Store register REGNO, or all registers if REGNO == -1, from the contents
+ of REGISTERS. */
+static void
+procfs_prepare_to_store (void)
+{
+}
+
+/* Fill buf with regset and return devctl cmd to do the setting. Return
+ -1 if we fail to get the regset. Store size of regset in regsize. */
+static int
+get_regset (int regset, char *buf, int bufsize, int *regsize)
+{
+ int dev_get, dev_set;
+ switch (regset)
+ {
+ case NTO_REG_GENERAL:
+ dev_get = DCMD_PROC_GETGREG;
+ dev_set = DCMD_PROC_SETGREG;
+ break;
+
+ case NTO_REG_FLOAT:
+ dev_get = DCMD_PROC_GETFPREG;
+ dev_set = DCMD_PROC_SETFPREG;
+ break;
+
+ case NTO_REG_ALT:
+ dev_get = DCMD_PROC_GETALTREG;
+ dev_set = DCMD_PROC_SETALTREG;
+ break;
+
+ case NTO_REG_SYSTEM:
+ default:
+ return -1;
+ }
+ if (devctl (ctl_fd, dev_get, &buf, bufsize, regsize) != EOK)
+ return -1;
+
+ return dev_set;
+}
+
+void
+procfs_store_registers (int regno)
+{
+ union
+ {
+ procfs_greg greg;
+ procfs_fpreg fpreg;
+ procfs_altreg altreg;
+ }
+ reg;
+ unsigned off;
+ int len, regset, regsize, dev_set, err;
+ char *data;
+
+ if (ptid_equal (inferior_ptid, null_ptid))
+ return;
+ procfs_set_thread (inferior_ptid);
+
+ if (regno == -1)
+ {
+ for (regset = NTO_REG_GENERAL; regset < NTO_REG_END; regset++)
+ {
+ dev_set = get_regset (regset, (char *) &reg,
+ sizeof (reg), &regsize);
+ if (dev_set == -1)
+ continue;
+
+ if (nto_regset_fill (regset, (char *) &reg) == -1)
+ continue;
+
+ err = devctl (ctl_fd, dev_set, &reg, regsize, 0);
+ if (err != EOK)
+ fprintf_unfiltered (gdb_stderr,
+ "Warning unable to write regset %d: %s\n",
+ regno, safe_strerror (err));
+ }
+ }
+ else
+ {
+ regset = nto_regset_id (regno);
+ if (regset == -1)
+ return;
+
+ dev_set = get_regset (regset, (char *) &reg, sizeof (reg), &regsize);
+ if (dev_set == -1)
+ return;
+
+ len = nto_register_area (regno, regset, &off);
+
+ if (len < 1)
+ return;
+
+ regcache_collect (regno, (char *) &reg + off);
+
+ err = devctl (ctl_fd, dev_set, &reg, regsize, 0);
+ if (err != EOK)
+ fprintf_unfiltered (gdb_stderr,
+ "Warning unable to write regset %d: %s\n", regno,
+ safe_strerror (err));
+ }
+}
+
+static void
+notice_signals (void)
+{
+ int signo;
+
+ for (signo = 1; signo < NSIG; signo++)
+ {
+ if (signal_stop_state (target_signal_from_host (signo)) == 0
+ && signal_print_state (target_signal_from_host (signo)) == 0
+ && signal_pass_state (target_signal_from_host (signo)) == 1)
+ sigdelset (&run.trace, signo);
+ else
+ sigaddset (&run.trace, signo);
+ }
+}
+
+/* When the user changes the state of gdb's signal handling via the
+ "handle" command, this function gets called to see if any change
+ in the /proc interface is required. It is also called internally
+ by other /proc interface functions to initialize the state of
+ the traced signal set. */
+static void
+procfs_notice_signals (ptid_t ptid)
+{
+ sigemptyset (&run.trace);
+ notice_signals ();
+}
+
+static struct tidinfo *
+procfs_thread_info (pid_t pid, short tid)
+{
+/* NYI */
+ return NULL;
+}
+
+char *
+procfs_pid_to_str (ptid_t ptid)
+{
+ static char buf[1024];
+ int pid, tid, n;
+ struct tidinfo *tip;
+
+ pid = ptid_get_pid (ptid);
+ tid = ptid_get_tid (ptid);
+
+ n = snprintf (buf, 1023, "process %d", pid);
+
+#if 0 /* NYI */
+ tip = procfs_thread_info (pid, tid);
+ if (tip != NULL)
+ snprintf (&buf[n], 1023, " (state = 0x%02x)", tip->state);
+#endif
+
+ return buf;
+}
+
+static void
+init_procfs_ops (void)
+{
+ procfs_ops.to_shortname = "procfs";
+ procfs_ops.to_longname = "QNX Neutrino procfs child process";
+ procfs_ops.to_doc =
+ "QNX Neutrino procfs child process (started by the \"run\" command).\n\
+ target procfs <node>";
+ procfs_ops.to_open = procfs_open;
+ procfs_ops.to_attach = procfs_attach;
+ procfs_ops.to_post_attach = procfs_post_attach;
+ procfs_ops.to_detach = procfs_detach;
+ procfs_ops.to_resume = procfs_resume;
+ procfs_ops.to_wait = procfs_wait;
+ procfs_ops.to_fetch_registers = procfs_fetch_registers;
+ procfs_ops.to_store_registers = procfs_store_registers;
+ procfs_ops.to_prepare_to_store = procfs_prepare_to_store;
+ procfs_ops.to_xfer_memory = procfs_xfer_memory;
+ procfs_ops.to_files_info = procfs_files_info;
+ procfs_ops.to_insert_breakpoint = procfs_insert_breakpoint;
+ procfs_ops.to_remove_breakpoint = procfs_remove_breakpoint;
+ procfs_ops.to_can_use_hw_breakpoint = procfs_can_use_hw_breakpoint;
+ procfs_ops.to_insert_hw_breakpoint = procfs_insert_hw_breakpoint;
+ procfs_ops.to_remove_hw_breakpoint = procfs_remove_breakpoint;
+ procfs_ops.to_insert_watchpoint = procfs_insert_hw_watchpoint;
+ procfs_ops.to_remove_watchpoint = procfs_remove_hw_watchpoint;
+ procfs_ops.to_stopped_by_watchpoint = procfs_stopped_by_watchpoint;
+ procfs_ops.to_terminal_init = terminal_init_inferior;
+ procfs_ops.to_terminal_inferior = terminal_inferior;
+ procfs_ops.to_terminal_ours_for_output = terminal_ours_for_output;
+ procfs_ops.to_terminal_ours = terminal_ours;
+ procfs_ops.to_terminal_info = child_terminal_info;
+ procfs_ops.to_kill = procfs_kill_inferior;
+ procfs_ops.to_create_inferior = procfs_create_inferior;
+ procfs_ops.to_mourn_inferior = procfs_mourn_inferior;
+ procfs_ops.to_can_run = procfs_can_run;
+ procfs_ops.to_notice_signals = procfs_notice_signals;
+ procfs_ops.to_thread_alive = procfs_thread_alive;
+ procfs_ops.to_find_new_threads = procfs_find_new_threads;
+ procfs_ops.to_pid_to_str = procfs_pid_to_str;
+ procfs_ops.to_stop = procfs_stop;
+ procfs_ops.to_stratum = process_stratum;
+ procfs_ops.to_has_all_memory = 1;
+ procfs_ops.to_has_memory = 1;
+ procfs_ops.to_has_stack = 1;
+ procfs_ops.to_has_registers = 1;
+ procfs_ops.to_has_execution = 1;
+ procfs_ops.to_magic = OPS_MAGIC;
+ procfs_ops.to_have_continuable_watchpoint = 1;
+}
+
+#define OSTYPE_NTO 1
+
+void
+_initialize_procfs (void)
+{
+ sigset_t set;
+
+ init_procfs_ops ();
+ add_target (&procfs_ops);
+
+ /* We use SIGUSR1 to gain control after we block waiting for a process.
+ We use sigwaitevent to wait. */
+ sigemptyset (&set);
+ sigaddset (&set, SIGUSR1);
+ sigprocmask (SIG_BLOCK, &set, NULL);
+
+ /* Set up trace and fault sets, as gdb expects them. */
+ sigemptyset (&run.trace);
+ notice_signals ();
+
+ /* Stuff some information. */
+ nto_cpuinfo_flags = SYSPAGE_ENTRY (cpuinfo)->flags;
+ nto_cpuinfo_valid = 1;
+
+ add_info ("pidlist", procfs_pidlist, "pidlist");
+ add_info ("meminfo", procfs_meminfo, "memory information");
+}
+
+
+static int
+procfs_hw_watchpoint (int addr, int len, int type)
+{
+ procfs_break brk;
+
+ switch (type)
+ {
+ case 1: /* Read. */
+ brk.type = _DEBUG_BREAK_RD;
+ break;
+ case 2: /* Read/Write. */
+ brk.type = _DEBUG_BREAK_RW;
+ break;
+ default: /* Modify. */
+/* FIXME: brk.type = _DEBUG_BREAK_RWM gives EINVAL for some reason. */
+ brk.type = _DEBUG_BREAK_RW;
+ }
+ brk.type |= _DEBUG_BREAK_HW; /* Always ask for HW. */
+ brk.addr = addr;
+ brk.size = len;
+
+ errno = devctl (ctl_fd, DCMD_PROC_BREAK, &brk, sizeof (brk), 0);
+ if (errno != EOK)
+ {
+ perror ("Failed to set hardware watchpoint");
+ return -1;
+ }
+ return 0;
+}
+
+static int
+procfs_can_use_hw_breakpoint (int type, int cnt, int othertype)
+{
+ return 1;
+}
+
+static int
+procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type)
+{
+ return procfs_hw_watchpoint (addr, -1, type);
+}
+
+static int
+procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type)
+{
+ return procfs_hw_watchpoint (addr, len, type);
+}
+
+static int
+procfs_stopped_by_watchpoint (void)
+{
+ return 0;
+}
diff --git a/gdb/ocd.c b/gdb/ocd.c
index 3c8d5d2..6b38159 100644
--- a/gdb/ocd.c
+++ b/gdb/ocd.c
@@ -146,7 +146,7 @@ ocd_error (char *s, int error_code)
s = buf;
}
- error (s);
+ error ("%s", s);
}
/* Return nonzero if the thread TH is still alive on the remote system. */
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index 293de70..286f22d 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -460,8 +460,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
/* void pointer */
if ((TYPE_CODE (type) == TYPE_CODE_PTR) && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID))
{
- fprintf_filtered (stream,
- TYPE_NAME (type) ? TYPE_NAME (type) : "pointer");
+ fputs_filtered (TYPE_NAME (type) ? TYPE_NAME (type) : "pointer",
+ stream);
return;
}
/* When SHOW is zero or less, and there is a valid type name, then always
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
index 4867dcb..718d287 100644
--- a/gdb/p-valprint.c
+++ b/gdb/p-valprint.c
@@ -661,7 +661,7 @@ common:
char *demangled_name;
fprintf_filtered (stream, "&");
- fprintf_filtered (stream, kind);
+ fputs_filtered (kind, stream);
demangled_name = cplus_demangle (TYPE_FN_FIELD_PHYSNAME (f, j),
DMGL_ANSI | DMGL_PARAMS);
if (demangled_name == NULL)
@@ -1080,7 +1080,7 @@ pascal_object_print_class_member (char *valaddr, struct type *domain,
if (i < len)
{
char *name;
- fprintf_filtered (stream, prefix);
+ fputs_filtered (prefix, stream);
name = type_name_no_tag (domain);
if (name)
fputs_filtered (name, stream);
diff --git a/gdb/parse.c b/gdb/parse.c
index 5db165a..c16d313 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -455,7 +455,8 @@ write_dollar_variable (struct stoken str)
/* Handle tokens that refer to machine registers:
$ followed by a register name. */
- i = frame_map_name_to_regnum (str.ptr + 1, str.length - 1);
+ i = frame_map_name_to_regnum (deprecated_selected_frame,
+ str.ptr + 1, str.length - 1);
if (i >= 0)
goto handle_register;
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 269e16d..05b0510 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -731,7 +731,7 @@ insn_ds_field (unsigned int insn)
}
-/* If DESC is the address of a 64-bit PowerPC Linux function
+/* If DESC is the address of a 64-bit PowerPC GNU/Linux function
descriptor, return the descriptor's entry point. */
static CORE_ADDR
ppc64_desc_entry_point (CORE_ADDR desc)
@@ -894,22 +894,22 @@ ppc64_skip_trampoline_code (CORE_ADDR pc)
}
-/* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR) on PPC64 Linux.
+/* Support for CONVERT_FROM_FUNC_PTR_ADDR(ADDR) on PPC64 GNU/Linux.
Usually a function pointer's representation is simply the address
- of the function. On Linux on the 64-bit PowerPC however, a function
- pointer is represented by a pointer to a TOC entry. This TOC entry
- contains three words, the first word is the address of the
- function, the second word is the TOC pointer (r2), and the third
- word is the static chain value. Throughout GDB it is currently
- assumed that a function pointer contains the address of the
- function, which is not easy to fix. In addition, the conversion of
- a function address to a function pointer would require allocation
- of a TOC entry in the inferior's memory space, with all its
- drawbacks. To be able to call C++ virtual methods in the inferior
- (which are called via function pointers), find_function_addr uses
- this function to get the function address from a function
- pointer. */
+ of the function. On GNU/Linux on the 64-bit PowerPC however, a
+ function pointer is represented by a pointer to a TOC entry. This
+ TOC entry contains three words, the first word is the address of
+ the function, the second word is the TOC pointer (r2), and the
+ third word is the static chain value. Throughout GDB it is
+ currently assumed that a function pointer contains the address of
+ the function, which is not easy to fix. In addition, the
+ conversion of a function address to a function pointer would
+ require allocation of a TOC entry in the inferior's memory space,
+ with all its drawbacks. To be able to call C++ virtual methods in
+ the inferior (which are called via function pointers),
+ find_function_addr uses this function to get the function address
+ from a function pointer. */
/* Return real function address if ADDR (a function pointer) is in the data
space and is therefore a special function pointer. */
@@ -929,7 +929,7 @@ ppc64_linux_convert_from_func_ptr_addr (CORE_ADDR addr)
}
-/* On 64-bit PowerPC Linux, the ELF header's e_entry field is the
+/* On 64-bit PowerPC GNU/Linux, the ELF header's e_entry field is the
address of a function descriptor for the entry point function, not
the actual entry point itself. So to find the actual address at
which execution should begin, we need to fetch the function's entry
@@ -1062,7 +1062,7 @@ ppc_linux_init_abi (struct gdbarch_info info,
if (tdep->wordsize == 8)
{
- /* Handle PPC64 Linux function pointers (which are really
+ /* Handle PPC64 GNU/Linux function pointers (which are really
function descriptors). */
set_gdbarch_convert_from_func_ptr_addr
(gdbarch, ppc64_linux_convert_from_func_ptr_addr);
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 3f0bc3c..dd7f636 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -507,7 +507,7 @@ print_scalar_formatted (void *valaddr, struct type *type, int format, int size,
strcpy (buf, local_binary_format_prefix ());
strcat (buf, cp);
strcat (buf, local_binary_format_suffix ());
- fprintf_filtered (stream, buf);
+ fputs_filtered (buf, stream);
}
break;
@@ -2003,7 +2003,7 @@ printf_command (char *arg, int from_tty)
current_substring += strlen (current_substring) + 1;
}
/* Print the portion of the format string after the last argument. */
- printf_filtered (last_arg);
+ puts_filtered (last_arg);
}
do_cleanups (old_cleanups);
}
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 84af258..5c7f0ca 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -99,8 +99,10 @@ init_legacy_regcache_descr (struct gdbarch *gdbarch,
offets at runtime. This currently isn't possible as some ISAs
define overlapping register regions - see the mess in
read_register_bytes() and write_register_bytes() registers. */
- descr->sizeof_register = XCALLOC (descr->nr_cooked_registers, long);
- descr->register_offset = XCALLOC (descr->nr_cooked_registers, long);
+ descr->sizeof_register
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
+ descr->register_offset
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
for (i = 0; i < descr->nr_cooked_registers; i++)
{
/* FIXME: cagney/2001-12-04: This code shouldn't need to use
@@ -148,7 +150,7 @@ init_regcache_descr (struct gdbarch *gdbarch)
gdb_assert (gdbarch != NULL);
/* Create an initial, zero filled, table. */
- descr = XCALLOC (1, struct regcache_descr);
+ descr = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct regcache_descr);
descr->gdbarch = gdbarch;
/* Total size of the register space. The raw registers are mapped
@@ -158,8 +160,8 @@ init_regcache_descr (struct gdbarch *gdbarch)
descr->sizeof_cooked_register_valid_p = NUM_REGS + NUM_PSEUDO_REGS;
/* Fill in a table of register types. */
- descr->register_type = XCALLOC (descr->nr_cooked_registers,
- struct type *);
+ descr->register_type
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, struct type *);
for (i = 0; i < descr->nr_cooked_registers; i++)
{
if (gdbarch_register_type_p (gdbarch))
@@ -208,8 +210,10 @@ init_regcache_descr (struct gdbarch *gdbarch)
{
long offset = 0;
- descr->sizeof_register = XCALLOC (descr->nr_cooked_registers, long);
- descr->register_offset = XCALLOC (descr->nr_cooked_registers, long);
+ descr->sizeof_register
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
+ descr->register_offset
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
for (i = 0; i < descr->nr_cooked_registers; i++)
{
descr->sizeof_register[i] = TYPE_LENGTH (descr->register_type[i]);
@@ -251,19 +255,6 @@ regcache_descr (struct gdbarch *gdbarch)
return gdbarch_data (gdbarch, regcache_descr_handle);
}
-static void
-xfree_regcache_descr (struct gdbarch *gdbarch, void *ptr)
-{
- struct regcache_descr *descr = ptr;
- if (descr == NULL)
- return;
- xfree (descr->register_offset);
- xfree (descr->sizeof_register);
- descr->register_offset = NULL;
- descr->sizeof_register = NULL;
- xfree (descr);
-}
-
/* Utility functions returning useful register attributes stored in
the regcache descr. */
@@ -285,8 +276,11 @@ register_size (struct gdbarch *gdbarch, int regnum)
int size;
gdb_assert (regnum >= 0 && regnum < (NUM_REGS + NUM_PSEUDO_REGS));
size = descr->sizeof_register[regnum];
+ /* NB: The deprecated REGISTER_RAW_SIZE, if not provided, defaults
+ to the size of the register's type. */
gdb_assert (size == REGISTER_RAW_SIZE (regnum)); /* OK */
- gdb_assert (size == REGISTER_RAW_SIZE (regnum)); /* OK */
+ /* NB: Don't check the register's virtual size. It, in say the case
+ of the MIPS, may not match the raw size! */
return size;
}
@@ -1423,7 +1417,6 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
{
struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
struct gdbarch *gdbarch = regcache->descr->gdbarch;
- struct reggroup *const *groups = reggroups (gdbarch);
int regnum;
int footnote_nr = 0;
int footnote_register_size = 0;
@@ -1594,13 +1587,15 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
fprintf_unfiltered (file, "Groups");
else
{
- int i;
const char *sep = "";
- for (i = 0; groups[i] != NULL; i++)
+ struct reggroup *group;
+ for (group = reggroup_next (gdbarch, NULL);
+ group != NULL;
+ group = reggroup_next (gdbarch, group))
{
- if (gdbarch_register_reggroup_p (gdbarch, regnum, groups[i]))
+ if (gdbarch_register_reggroup_p (gdbarch, regnum, group))
{
- fprintf_unfiltered (file, "%s%s", sep, reggroup_name (groups[i]));
+ fprintf_unfiltered (file, "%s%s", sep, reggroup_name (group));
sep = ",";
}
}
@@ -1667,8 +1662,7 @@ extern initialize_file_ftype _initialize_regcache; /* -Wmissing-prototype */
void
_initialize_regcache (void)
{
- regcache_descr_handle = register_gdbarch_data (init_regcache_descr,
- xfree_regcache_descr);
+ regcache_descr_handle = register_gdbarch_data (init_regcache_descr);
REGISTER_GDBARCH_SWAP (current_regcache);
register_gdbarch_swap (&deprecated_registers, sizeof (deprecated_registers), NULL);
register_gdbarch_swap (&deprecated_register_valid, sizeof (deprecated_register_valid), NULL);
diff --git a/gdb/reggroups.c b/gdb/reggroups.c
index ea9a9ec..7000957 100644
--- a/gdb/reggroups.c
+++ b/gdb/reggroups.c
@@ -60,12 +60,18 @@ reggroup_type (struct reggroup *group)
return group->type;
}
-/* All the groups for a given architecture. */
+/* A linked list of groups for the given architecture. */
+
+struct reggroup_el
+{
+ struct reggroup *group;
+ struct reggroup_el *next;
+};
struct reggroups
{
- int nr_group;
- struct reggroup **group;
+ struct reggroup_el *first;
+ struct reggroup_el **last;
};
static struct gdbarch_data *reggroups_data;
@@ -73,33 +79,24 @@ static struct gdbarch_data *reggroups_data;
static void *
reggroups_init (struct gdbarch *gdbarch)
{
- struct reggroups *groups = XMALLOC (struct reggroups);
- groups->nr_group = 0;
- groups->group = NULL;
+ struct reggroups *groups = GDBARCH_OBSTACK_ZALLOC (gdbarch,
+ struct reggroups);
+ groups->last = &groups->first;
return groups;
}
-static void
-reggroups_free (struct gdbarch *gdbarch, void *data)
-{
- struct reggroups *groups = data;
- xfree (groups->group);
- xfree (groups);
-}
-
/* Add a register group (with attribute values) to the pre-defined
- list. This function can be called during architecture
- initialization and hence needs to handle NULL architecture groups. */
+ list. */
static void
-add_group (struct reggroups *groups, struct reggroup *group)
+add_group (struct reggroups *groups, struct reggroup *group,
+ struct reggroup_el *el)
{
gdb_assert (group != NULL);
- groups->nr_group++;
- groups->group = xrealloc (groups->group, (sizeof (struct reggroup *)
- * (groups->nr_group + 1)));
- groups->group[groups->nr_group - 1] = group;
- groups->group[groups->nr_group] = NULL;
+ el->group = group;
+ el->next = NULL;
+ (*groups->last) = el;
+ groups->last = &el->next;
}
void
@@ -113,25 +110,42 @@ reggroup_add (struct gdbarch *gdbarch, struct reggroup *group)
groups = reggroups_init (gdbarch);
set_gdbarch_data (gdbarch, reggroups_data, groups);
}
- add_group (groups, group);
+ add_group (groups, group,
+ GDBARCH_OBSTACK_ZALLOC (gdbarch, struct reggroup_el));
}
-/* The register groups for the current architecture. Mumble something
- about the lifetime of the buffer.... */
+/* The default register groups for an architecture. */
+
+static struct reggroups default_groups = { NULL, &default_groups.first };
-static struct reggroups *default_groups;
+/* A register group iterator. */
-struct reggroup * const*
-reggroups (struct gdbarch *gdbarch)
+struct reggroup *
+reggroup_next (struct gdbarch *gdbarch, struct reggroup *last)
{
- struct reggroups *groups = gdbarch_data (gdbarch, reggroups_data);
+ struct reggroups *groups;
+ struct reggroup_el *el;
/* Don't allow this function to be called during architecture
- creation. */
+ creation. If there are no groups, use the default groups list. */
+ groups = gdbarch_data (gdbarch, reggroups_data);
gdb_assert (groups != NULL);
- if (groups->group == NULL)
- return default_groups->group;
- else
- return groups->group;
+ if (groups->first == NULL)
+ groups = &default_groups;
+
+ /* Return the first/next reggroup. */
+ if (last == NULL)
+ return groups->first->group;
+ for (el = groups->first; el != NULL; el = el->next)
+ {
+ if (el->group == last)
+ {
+ if (el->next != NULL)
+ return el->next->group;
+ else
+ return NULL;
+ }
+ }
+ return NULL;
}
/* Is REGNUM a member of REGGROUP? */
@@ -168,28 +182,27 @@ default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
static void
reggroups_dump (struct gdbarch *gdbarch, struct ui_file *file)
{
- struct reggroup *const *groups = reggroups (gdbarch);
- int i = -1;
+ struct reggroup *group = NULL;
do
{
/* Group name. */
{
const char *name;
- if (i < 0)
+ if (group == NULL)
name = "Group";
else
- name = reggroup_name (groups[i]);
+ name = reggroup_name (group);
fprintf_unfiltered (file, " %-10s", name);
}
/* Group type. */
{
const char *type;
- if (i < 0)
+ if (group == NULL)
type = "Type";
else
{
- switch (reggroup_type (groups[i]))
+ switch (reggroup_type (group))
{
case USER_REGGROUP:
type = "user";
@@ -208,9 +221,10 @@ reggroups_dump (struct gdbarch *gdbarch, struct ui_file *file)
documentation. */
fprintf_unfiltered (file, "\n");
- i++;
+
+ group = reggroup_next (gdbarch, group);
}
- while (groups[i] != NULL);
+ while (group != NULL);
}
static void
@@ -250,18 +264,16 @@ extern initialize_file_ftype _initialize_reggroup; /* -Wmissing-prototypes */
void
_initialize_reggroup (void)
{
- reggroups_data = register_gdbarch_data (reggroups_init, reggroups_free);
+ reggroups_data = register_gdbarch_data (reggroups_init);
/* The pre-defined list of groups. */
- default_groups = reggroups_init (NULL);
- add_group (default_groups, general_reggroup);
- add_group (default_groups, float_reggroup);
- add_group (default_groups, system_reggroup);
- add_group (default_groups, vector_reggroup);
- add_group (default_groups, all_reggroup);
- add_group (default_groups, save_reggroup);
- add_group (default_groups, restore_reggroup);
-
+ add_group (&default_groups, general_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, float_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, system_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, vector_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, all_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, save_reggroup, XMALLOC (struct reggroup_el));
+ add_group (&default_groups, restore_reggroup, XMALLOC (struct reggroup_el));
add_cmd ("reggroups", class_maintenance,
maintenance_print_reggroups, "\
diff --git a/gdb/reggroups.h b/gdb/reggroups.h
index 0088a85..22c0a6f 100644
--- a/gdb/reggroups.h
+++ b/gdb/reggroups.h
@@ -51,8 +51,11 @@ extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group);
extern const char *reggroup_name (struct reggroup *reggroup);
extern enum reggroup_type reggroup_type (struct reggroup *reggroup);
-/* The register groups for the current architecture. */
-extern struct reggroup *const *reggroups (struct gdbarch *gdbarch);
+/* Interator for the architecture's register groups. Pass in NULL,
+ returns the first group. Pass in a group, returns the next group,
+ or NULL when the last group is reached. */
+extern struct reggroup *reggroup_next (struct gdbarch *gdbarch,
+ struct reggroup *last);
/* Is REGNUM a member of REGGROUP? */
extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
diff --git a/gdb/remote-mips.c b/gdb/remote-mips.c
index 96f3972..c50c504 100644
--- a/gdb/remote-mips.c
+++ b/gdb/remote-mips.c
@@ -483,7 +483,7 @@ mips_error (char *string,...)
wrap_here (""); /* Force out any buffered output */
gdb_flush (gdb_stdout);
if (error_pre_print)
- fprintf_filtered (gdb_stderr, error_pre_print);
+ fputs_filtered (error_pre_print, gdb_stderr);
vfprintf_filtered (gdb_stderr, string, args);
fprintf_filtered (gdb_stderr, "\n");
va_end (args);
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index f7b9e89..11424bb 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -331,7 +331,7 @@ gdbsim_fetch_register (int regno)
warn_user = 0;
}
/* FIXME: cagney/2002-05-27: Should check `nr_bytes == 0'
- indicatingthat GDB and the SIM have different ideas about
+ indicating that GDB and the SIM have different ideas about
which registers are fetchable. */
/* Else if (nr_bytes < 0): an old simulator, that doesn't
think to return the register size. Just assume all is ok. */
@@ -369,7 +369,7 @@ gdbsim_store_register (int regno)
internal_error (__FILE__, __LINE__,
"Register size different to expected");
/* FIXME: cagney/2002-05-27: Should check `nr_bytes == 0'
- indicatingthat GDB and the SIM have different ideas about
+ indicating that GDB and the SIM have different ideas about
which registers are fetchable. */
if (sr_get_debug ())
{
diff --git a/gdb/remote.c b/gdb/remote.c
index 75e1e08..73906c7 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -256,7 +256,7 @@ static void *
init_remote_state (struct gdbarch *gdbarch)
{
int regnum;
- struct remote_state *rs = xmalloc (sizeof (struct remote_state));
+ struct remote_state *rs = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct remote_state);
if (DEPRECATED_REGISTER_BYTES != 0)
rs->sizeof_g_packet = DEPRECATED_REGISTER_BYTES;
@@ -264,7 +264,8 @@ init_remote_state (struct gdbarch *gdbarch)
rs->sizeof_g_packet = 0;
/* Assume a 1:1 regnum<->pnum table. */
- rs->regs = xcalloc (NUM_REGS + NUM_PSEUDO_REGS, sizeof (struct packet_reg));
+ rs->regs = GDBARCH_OBSTACK_CALLOC (gdbarch, NUM_REGS + NUM_PSEUDO_REGS,
+ struct packet_reg);
for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
{
struct packet_reg *r = &rs->regs[regnum];
@@ -303,14 +304,6 @@ init_remote_state (struct gdbarch *gdbarch)
return rs;
}
-static void
-free_remote_state (struct gdbarch *gdbarch, void *pointer)
-{
- struct remote_state *data = pointer;
- xfree (data->regs);
- xfree (data);
-}
-
static struct packet_reg *
packet_reg_from_regnum (struct remote_state *rs, long regnum)
{
@@ -2071,7 +2064,7 @@ remote_cisco_section_offsets (bfd_vma text_addr,
sprintf_vma (tmp + strlen (tmp), data_addr);
sprintf (tmp + strlen (tmp), " bss = 0x");
sprintf_vma (tmp + strlen (tmp), bss_addr);
- fprintf_filtered (gdb_stdlog, tmp);
+ fputs_filtered (tmp, gdb_stdlog);
fprintf_filtered (gdb_stdlog,
"Reloc offset: text = 0x%s data = 0x%s bss = 0x%s\n",
paddr_nz (*text_offs),
@@ -6063,8 +6056,7 @@ _initialize_remote (void)
struct cmd_list_element *tmpcmd;
/* architecture specific data */
- remote_gdbarch_data_handle = register_gdbarch_data (init_remote_state,
- free_remote_state);
+ remote_gdbarch_data_handle = register_gdbarch_data (init_remote_state);
/* Old tacky stuff. NOTE: This comes after the remote protocol so
that the remote protocol has been initialized. */
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index d384d42..6265f90 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -2944,6 +2944,12 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_deprecated_fix_call_dummy (gdbarch, rs6000_fix_call_dummy);
set_gdbarch_frame_align (gdbarch, rs6000_frame_align);
+ if (sysv_abi && wordsize == 8)
+ /* PPC64 SYSV. */
+ set_gdbarch_frame_red_zone_size (gdbarch, 288);
+ else if (!sysv_abi && wordsize == 4)
+ /* PowerOpen / AIX 32 bit. */
+ set_gdbarch_frame_red_zone_size (gdbarch, 220);
set_gdbarch_deprecated_save_dummy_frame_tos (gdbarch, generic_save_dummy_frame_tos);
set_gdbarch_deprecated_push_return_address (gdbarch, ppc_push_return_address);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
@@ -2999,8 +3005,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_convert_from_func_ptr_addr (gdbarch,
rs6000_convert_from_func_ptr_addr);
}
- set_gdbarch_frame_args_address (gdbarch, rs6000_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, rs6000_frame_args_address);
+ set_gdbarch_deprecated_frame_args_address (gdbarch, rs6000_frame_args_address);
+ set_gdbarch_deprecated_frame_locals_address (gdbarch, rs6000_frame_args_address);
set_gdbarch_deprecated_saved_pc_after_call (gdbarch, rs6000_saved_pc_after_call);
/* Helpers for function argument information. */
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index 655aaaa..3ead64c 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -53,7 +53,6 @@
void (*sh_show_regs) (void);
CORE_ADDR (*skip_prologue_hard_way) (CORE_ADDR);
-void (*do_pseudo_register) (int);
#define SH_DEFAULT_NUM_REGS 59
@@ -345,6 +344,22 @@ sh_breakpoint_from_pc (CORE_ADDR *pcptr, int *lenptr)
return breakpoint;
}
+static CORE_ADDR
+sh_push_dummy_code (struct gdbarch *gdbarch,
+ CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc,
+ struct value **args, int nargs,
+ struct type *value_type,
+ CORE_ADDR *real_pc, CORE_ADDR *bp_addr)
+{
+ /* Allocate space sufficient for a breakpoint. */
+ sp = (sp - 2) & ~1;
+ /* Store the address of that breakpoint */
+ *bp_addr = sp;
+ /* sh always starts the call at the callee's entry point. */
+ *real_pc = funaddr;
+ return sp;
+}
+
/* Macros and functions for setting and testing a bit in a minimal
symbol that marks it as 32-bit function. The MSB of the minimal
symbol's "info" field is used for this purpose. This field is
@@ -928,7 +943,7 @@ sh64_use_struct_convention (int gcc_p, struct type *type)
We store structs through a pointer passed in R2 */
static void
-sh_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
+sh64_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
{
write_register (STRUCT_RETURN_REGNUM, (addr));
}
@@ -1034,7 +1049,7 @@ sh_find_callers_reg (struct frame_info *fi, int regnum)
return 0;
if (get_frame_saved_regs (fi)[regnum] != 0)
return read_memory_integer (get_frame_saved_regs (fi)[regnum],
- REGISTER_RAW_SIZE (regnum));
+ register_size (current_gdbarch, regnum));
}
return read_register (regnum);
}
@@ -1919,9 +1934,12 @@ sh64_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
static CORE_ADDR
-sh_extract_struct_value_address (char *regbuf)
+sh_extract_struct_value_address (struct regcache *regcache)
{
- return (extract_unsigned_integer ((regbuf), REGISTER_RAW_SIZE (0)));
+ ULONGEST addr;
+ /*FIXME: Is R0 really correct here? Not STRUCT_RETURN_REGNUM? */
+ regcache_cooked_read_unsigned (regcache, STRUCT_RETURN_REGNUM, &addr);
+ return addr;
}
static CORE_ADDR
@@ -2010,7 +2028,13 @@ sh64_pop_frame (void)
flush_cached_frames ();
}
-/* Function: push_arguments
+static CORE_ADDR
+sh_frame_align (struct gdbarch *ignore, CORE_ADDR sp)
+{
+ return sp & ~3;
+}
+
+/* Function: sh_push_dummy_call (formerly push_arguments)
Setup the function arguments for calling a function in the inferior.
On the Hitachi SH architecture, there are four registers (R4 to R7)
@@ -2018,6 +2042,10 @@ sh64_pop_frame (void)
four arguments (depending on size) may go into these registers.
The rest go on the stack.
+ MVS: Except on SH variants that have floating point registers.
+ In that case, float and double arguments are passed in the same
+ manner, but using FP registers instead of GP registers.
+
Arguments that are smaller than 4 bytes will still take up a whole
register or a whole 32-bit word on the stack, and will be
right-justified in the register or the stack word. This includes
@@ -2031,6 +2059,11 @@ sh64_pop_frame (void)
that will be passed in this way; in other words, the convention of
passing a pointer to a large aggregate instead of a copy is not used.
+ MVS: The above appears to be true for the SH variants that do not
+ have an FPU, however those that have an FPU appear to copy the
+ aggregate argument onto the stack (and not place it in registers)
+ if it is larger than 16 bytes (four GP registers).
+
An exceptional case exists for struct arguments (and possibly other
aggregates such as arrays) if the size is larger than 4 bytes but
not a multiple of 4 bytes. In this case the argument is never split
@@ -2054,8 +2087,124 @@ sh64_pop_frame (void)
to R7. */
static CORE_ADDR
-sh_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
- int struct_return, CORE_ADDR struct_addr)
+sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
+ CORE_ADDR func_addr,
+ struct regcache *regcache,
+ CORE_ADDR bp_addr, int nargs,
+ struct value **args,
+ CORE_ADDR sp, int struct_return,
+ CORE_ADDR struct_addr)
+{
+ int stack_offset, stack_alloc;
+ int argreg, flt_argreg;
+ int argnum;
+ struct type *type;
+ CORE_ADDR regval;
+ char *val;
+ char valbuf[4];
+ int len;
+ int odd_sized_struct;
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ /* first force sp to a 4-byte alignment */
+ sp = sh_frame_align (gdbarch, sp);
+
+ /* The "struct return pointer" pseudo-argument has its own dedicated
+ register */
+ if (struct_return)
+ regcache_cooked_write_unsigned (regcache,
+ STRUCT_RETURN_REGNUM,
+ struct_addr);
+
+ /* Now make sure there's space on the stack */
+ for (argnum = 0, stack_alloc = 0; argnum < nargs; argnum++)
+ stack_alloc += ((TYPE_LENGTH (VALUE_TYPE (args[argnum])) + 3) & ~3);
+ sp -= stack_alloc; /* make room on stack for args */
+
+ /* Now load as many as possible of the first arguments into
+ registers, and push the rest onto the stack. There are 16 bytes
+ in four registers available. Loop thru args from first to last. */
+
+ argreg = tdep->ARG0_REGNUM;
+ flt_argreg = tdep->FLOAT_ARG0_REGNUM;
+ for (argnum = 0, stack_offset = 0; argnum < nargs; argnum++)
+ {
+ type = VALUE_TYPE (args[argnum]);
+ len = TYPE_LENGTH (type);
+ memset (valbuf, 0, sizeof (valbuf));
+ if (len < 4)
+ {
+ /* value gets right-justified in the register or stack word */
+ if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
+ memcpy (valbuf + (4 - len),
+ (char *) VALUE_CONTENTS (args[argnum]), len);
+ else
+ memcpy (valbuf, (char *) VALUE_CONTENTS (args[argnum]), len);
+ val = valbuf;
+ }
+ else
+ val = (char *) VALUE_CONTENTS (args[argnum]);
+
+ if (len > 4 && (len & 3) != 0)
+ odd_sized_struct = 1; /* Such structs go entirely on stack. */
+ else if (len > 16)
+ odd_sized_struct = 1; /* So do aggregates bigger than 4 words. */
+ else
+ odd_sized_struct = 0;
+ while (len > 0)
+ {
+ if ((TYPE_CODE (type) == TYPE_CODE_FLT
+ && flt_argreg > tdep->FLOAT_ARGLAST_REGNUM)
+ || argreg > tdep->ARGLAST_REGNUM
+ || odd_sized_struct)
+ {
+ /* must go on the stack */
+ write_memory (sp + stack_offset, val, 4);
+ stack_offset += 4;
+ }
+ /* NOTE WELL!!!!! This is not an "else if" clause!!!
+ That's because some *&^%$ things get passed on the stack
+ AND in the registers! */
+ if (TYPE_CODE (type) == TYPE_CODE_FLT &&
+ flt_argreg > 0 && flt_argreg <= tdep->FLOAT_ARGLAST_REGNUM)
+ {
+ /* Argument goes in a single-precision fp reg. */
+ regval = extract_unsigned_integer (val, register_size (gdbarch,
+ argreg));
+ regcache_cooked_write_unsigned (regcache, flt_argreg++, regval);
+ }
+ else if (argreg <= tdep->ARGLAST_REGNUM)
+ {
+ /* there's room in a register */
+ regval = extract_unsigned_integer (val, register_size (gdbarch,
+ argreg));
+ regcache_cooked_write_unsigned (regcache, argreg++, regval);
+ }
+ /* Store the value 4 bytes at a time. This means that things
+ larger than 4 bytes may go partly in registers and partly
+ on the stack. */
+ len -= register_size (gdbarch, argreg);
+ val += register_size (gdbarch, argreg);
+ }
+ }
+
+ /* Store return address. */
+ regcache_cooked_write_unsigned (regcache, tdep->PR_REGNUM, bp_addr);
+
+ /* Update stack pointer. */
+ regcache_cooked_write_unsigned (regcache, SP_REGNUM, sp);
+
+ return sp;
+}
+
+static CORE_ADDR
+sh_push_dummy_call_nofpu (struct gdbarch *gdbarch,
+ CORE_ADDR func_addr,
+ struct regcache *regcache,
+ CORE_ADDR bp_addr,
+ int nargs, struct value **args,
+ CORE_ADDR sp, int struct_return,
+ CORE_ADDR struct_addr)
{
int stack_offset, stack_alloc;
int argreg;
@@ -2066,15 +2215,17 @@ sh_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
char valbuf[4];
int len;
int odd_sized_struct;
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
/* first force sp to a 4-byte alignment */
- sp = sp & ~3;
+ sp = sh_frame_align (gdbarch, sp);
/* The "struct return pointer" pseudo-argument has its own dedicated
register */
if (struct_return)
- write_register (STRUCT_RETURN_REGNUM, struct_addr);
+ regcache_cooked_write_unsigned (regcache,
+ STRUCT_RETURN_REGNUM,
+ struct_addr);
/* Now make sure there's space on the stack */
for (argnum = 0, stack_alloc = 0; argnum < nargs; argnum++)
@@ -2123,16 +2274,24 @@ sh_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
if (argreg <= tdep->ARGLAST_REGNUM)
{
/* there's room in a register */
- regval = extract_unsigned_integer (val, REGISTER_RAW_SIZE (argreg));
- write_register (argreg++, regval);
+ regval = extract_unsigned_integer (val, register_size (gdbarch,
+ argreg));
+ regcache_cooked_write_unsigned (regcache, argreg++, regval);
}
/* Store the value 4 bytes at a time. This means that things
larger than 4 bytes may go partly in registers and partly
on the stack. */
- len -= REGISTER_RAW_SIZE (argreg);
- val += REGISTER_RAW_SIZE (argreg);
+ len -= register_size (gdbarch, argreg);
+ val += register_size (gdbarch, argreg);
}
}
+
+ /* Store return address. */
+ regcache_cooked_write_unsigned (regcache, tdep->PR_REGNUM, bp_addr);
+
+ /* Update stack pointer. */
+ regcache_cooked_write_unsigned (regcache, SP_REGNUM, sp);
+
return sp;
}
@@ -2331,7 +2490,7 @@ sh64_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
Needed for targets where we don't actually execute a JSR/BSR instruction */
static CORE_ADDR
-sh_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
+sh64_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
{
write_register (gdbarch_tdep (current_gdbarch)->PR_REGNUM,
CALL_DUMMY_ADDRESS ());
@@ -2366,7 +2525,8 @@ sh_fix_call_dummy (char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs,
containing the (raw) register state a function return value of type
TYPE, and copy that, in virtual format, into VALBUF. */
static void
-sh_extract_return_value (struct type *type, char *regbuf, char *valbuf)
+sh_default_extract_return_value (struct type *type, struct regcache *regcache,
+ void *valbuf)
{
int len = TYPE_LENGTH (type);
int return_register = R0_REGNUM;
@@ -2374,67 +2534,34 @@ sh_extract_return_value (struct type *type, char *regbuf, char *valbuf)
if (len <= 4)
{
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- offset = REGISTER_BYTE (return_register) + 4 - len;
- else
- offset = REGISTER_BYTE (return_register);
- memcpy (valbuf, regbuf + offset, len);
+ ULONGEST c;
+
+ regcache_cooked_read_unsigned (regcache, R0_REGNUM, &c);
+ store_unsigned_integer (valbuf, len, c);
}
- else if (len <= 8)
+ else if (len == 8)
{
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- offset = REGISTER_BYTE (return_register) + 8 - len;
- else
- offset = REGISTER_BYTE (return_register);
- memcpy (valbuf, regbuf + offset, len);
+ int i, regnum = R0_REGNUM;
+ for (i = 0; i < len; i += 4)
+ regcache_raw_read (regcache, regnum++, (char *)valbuf + i);
}
else
error ("bad size for return value");
}
static void
-sh3e_sh4_extract_return_value (struct type *type, char *regbuf, char *valbuf)
+sh3e_sh4_extract_return_value (struct type *type, struct regcache *regcache,
+ void *valbuf)
{
- int return_register;
- int offset;
- int len = TYPE_LENGTH (type);
-
if (TYPE_CODE (type) == TYPE_CODE_FLT)
- return_register = FP0_REGNUM;
- else
- return_register = R0_REGNUM;
-
- if (len == 8 && TYPE_CODE (type) == TYPE_CODE_FLT)
- {
- DOUBLEST val;
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_LITTLE)
- floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword,
- (char *) regbuf + REGISTER_BYTE (return_register),
- &val);
- else
- floatformat_to_doublest (&floatformat_ieee_double_big,
- (char *) regbuf + REGISTER_BYTE (return_register),
- &val);
- deprecated_store_floating (valbuf, len, val);
- }
- else if (len <= 4)
- {
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- offset = REGISTER_BYTE (return_register) + 4 - len;
- else
- offset = REGISTER_BYTE (return_register);
- memcpy (valbuf, regbuf + offset, len);
- }
- else if (len <= 8)
{
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- offset = REGISTER_BYTE (return_register) + 8 - len;
- else
- offset = REGISTER_BYTE (return_register);
- memcpy (valbuf, regbuf + offset, len);
+ int len = TYPE_LENGTH (type);
+ int i, regnum = FP0_REGNUM;
+ for (i = 0; i < len; i += 4)
+ regcache_raw_read (regcache, regnum++, (char *)valbuf + i);
}
else
- error ("bad size for return value");
+ sh_default_extract_return_value (type, regcache, valbuf);
}
static void
@@ -2497,35 +2624,38 @@ sh64_extract_return_value (struct type *type, char *regbuf, char *valbuf)
depending on the type of the return value. In all the other cases
the result is stored in r0, left-justified. */
static void
-sh_default_store_return_value (struct type *type, char *valbuf)
+sh_default_store_return_value (struct type *type, struct regcache *regcache,
+ const void *valbuf)
{
- char buf[32]; /* more than enough... */
+ ULONGEST val;
+ int len = TYPE_LENGTH (type);
- if (TYPE_LENGTH (type) < REGISTER_RAW_SIZE (R0_REGNUM))
+ if (len <= 4)
{
- /* Add leading zeros to the value. */
- memset (buf, 0, REGISTER_RAW_SIZE (R0_REGNUM));
- if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- memcpy (buf + REGISTER_RAW_SIZE (R0_REGNUM) - TYPE_LENGTH (type),
- valbuf, TYPE_LENGTH (type));
- else
- memcpy (buf, valbuf, TYPE_LENGTH (type));
- deprecated_write_register_bytes (REGISTER_BYTE (R0_REGNUM), buf,
- REGISTER_RAW_SIZE (R0_REGNUM));
+ val = extract_unsigned_integer (valbuf, len);
+ regcache_cooked_write_unsigned (regcache, R0_REGNUM, val);
}
else
- deprecated_write_register_bytes (REGISTER_BYTE (R0_REGNUM), valbuf,
- TYPE_LENGTH (type));
+ {
+ int i, regnum = R0_REGNUM;
+ for (i = 0; i < len; i += 4)
+ regcache_raw_write (regcache, regnum++, (char *)valbuf + i);
+ }
}
static void
-sh3e_sh4_store_return_value (struct type *type, char *valbuf)
+sh3e_sh4_store_return_value (struct type *type, struct regcache *regcache,
+ const void *valbuf)
{
if (TYPE_CODE (type) == TYPE_CODE_FLT)
- deprecated_write_register_bytes (REGISTER_BYTE (FP0_REGNUM),
- valbuf, TYPE_LENGTH (type));
+ {
+ int len = TYPE_LENGTH (type);
+ int i, regnum = FP0_REGNUM;
+ for (i = 0; i < len; i += 4)
+ regcache_raw_write (regcache, regnum++, (char *)valbuf + i);
+ }
else
- sh_default_store_return_value (type, valbuf);
+ sh_default_store_return_value (type, regcache, valbuf);
}
static void
@@ -3043,29 +3173,6 @@ sh_show_regs_command (char *args, int from_tty)
(*sh_show_regs)();
}
-/* Index within `registers' of the first byte of the space for
- register N. */
-static int
-sh_default_register_byte (int reg_nr)
-{
- return (reg_nr * 4);
-}
-
-static int
-sh_sh4_register_byte (int reg_nr)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
-
- if (reg_nr >= tdep->DR0_REGNUM
- && reg_nr <= tdep->DR_LAST_REGNUM)
- return (dr_reg_base_num (reg_nr) * 4);
- else if (reg_nr >= tdep->FV0_REGNUM
- && reg_nr <= tdep->FV_LAST_REGNUM)
- return (fv_reg_base_num (reg_nr) * 4);
- else
- return (reg_nr * 4);
-}
-
/* *INDENT-OFF* */
/*
SH MEDIA MODE (ISA 32)
@@ -3221,29 +3328,6 @@ sh_sh64_register_byte (int reg_nr)
+ (reg_nr - FP0_REGNUM + 1) * 4);
}
-/* Number of bytes of storage in the actual machine representation for
- register REG_NR. */
-static int
-sh_default_register_raw_size (int reg_nr)
-{
- return 4;
-}
-
-static int
-sh_sh4_register_raw_size (int reg_nr)
-{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
-
- if (reg_nr >= tdep->DR0_REGNUM
- && reg_nr <= tdep->DR_LAST_REGNUM)
- return 8;
- else if (reg_nr >= tdep->FV0_REGNUM
- && reg_nr <= tdep->FV_LAST_REGNUM)
- return 16;
- else
- return 4;
-}
-
static int
sh_sh64_register_raw_size (int reg_nr)
{
@@ -3268,14 +3352,6 @@ sh_sh64_register_raw_size (int reg_nr)
return 4;
}
-/* Number of bytes of storage in the program's representation
- for register N. */
-static int
-sh_register_virtual_size (int reg_nr)
-{
- return 4;
-}
-
/* ??????? FIXME */
static int
sh_sh64_register_virtual_size (int reg_nr)
@@ -3290,7 +3366,7 @@ sh_sh64_register_virtual_size (int reg_nr)
/* Return the GDB type object for the "standard" data type
of data in register N. */
static struct type *
-sh_sh3e_register_virtual_type (int reg_nr)
+sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
@@ -3312,9 +3388,9 @@ sh_sh4_build_float_register_type (int high)
}
static struct type *
-sh_sh4_register_virtual_type (int reg_nr)
+sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if ((reg_nr >= FP0_REGNUM
&& (reg_nr <= tdep->FP_LAST_REGNUM))
@@ -3363,7 +3439,7 @@ sh_sh64_register_virtual_type (int reg_nr)
}
static struct type *
-sh_default_register_virtual_type (int reg_nr)
+sh_default_register_type (struct gdbarch *gdbarch, int reg_nr)
{
return builtin_type_int;
}
@@ -3405,7 +3481,7 @@ sh_sh4_register_convert_to_virtual (int regnum, struct type *type,
{
DOUBLEST val;
floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, from, &val);
- deprecated_store_floating (to, TYPE_LENGTH (type), val);
+ store_typed_floating (to, type, val);
}
else
error ("sh_register_convert_to_virtual called with non DR register number");
@@ -3446,7 +3522,7 @@ sh_sh4_register_convert_to_raw (struct type *type, int regnum,
if (regnum >= tdep->DR0_REGNUM
&& regnum <= tdep->DR_LAST_REGNUM)
{
- DOUBLEST val = deprecated_extract_floating (from, TYPE_LENGTH(type));
+ DOUBLEST val = extract_typed_floating (from, type);
floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, &val, to);
}
else
@@ -3496,10 +3572,10 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
for (portion = 0; portion < 2; portion++)
regcache_raw_read (regcache, base_regnum + portion,
(temp_buffer
- + REGISTER_RAW_SIZE (base_regnum) * portion));
+ + register_size (gdbarch, base_regnum) * portion));
/* We must pay attention to the endiannes. */
sh_sh4_register_convert_to_virtual (reg_nr,
- REGISTER_VIRTUAL_TYPE (reg_nr),
+ gdbarch_register_type (gdbarch, reg_nr),
temp_buffer, buffer);
}
else if (reg_nr >= tdep->FV0_REGNUM
@@ -3511,7 +3587,7 @@ sh_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
for (portion = 0; portion < 4; portion++)
regcache_raw_read (regcache, base_regnum + portion,
((char *) buffer
- + REGISTER_RAW_SIZE (base_regnum) * portion));
+ + register_size (gdbarch, base_regnum) * portion));
}
}
@@ -3695,14 +3771,14 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
base_regnum = dr_reg_base_num (reg_nr);
/* We must pay attention to the endiannes. */
- sh_sh4_register_convert_to_raw (REGISTER_VIRTUAL_TYPE (reg_nr), reg_nr,
+ sh_sh4_register_convert_to_raw (gdbarch_register_type (gdbarch, reg_nr), reg_nr,
buffer, temp_buffer);
/* Write the real regs for which this one is an alias. */
for (portion = 0; portion < 2; portion++)
regcache_raw_write (regcache, base_regnum + portion,
(temp_buffer
- + REGISTER_RAW_SIZE (base_regnum) * portion));
+ + register_size (gdbarch, base_regnum) * portion));
}
else if (reg_nr >= tdep->FV0_REGNUM
&& reg_nr <= tdep->FV_LAST_REGNUM)
@@ -3713,7 +3789,7 @@ sh_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
for (portion = 0; portion < 4; portion++)
regcache_raw_write (regcache, base_regnum + portion,
((char *) buffer
- + REGISTER_RAW_SIZE (base_regnum) * portion));
+ + register_size (gdbarch, base_regnum) * portion));
}
}
@@ -3886,11 +3962,12 @@ sh64_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
/* Floating point vector of 4 float registers. */
static void
-do_fv_register_info (int fv_regnum)
+do_fv_register_info (struct gdbarch *gdbarch, struct ui_file *file,
+ int fv_regnum)
{
int first_fp_reg_num = fv_reg_base_num (fv_regnum);
- printf_filtered ("fv%d\t0x%08x\t0x%08x\t0x%08x\t0x%08x\n",
- fv_regnum - gdbarch_tdep (current_gdbarch)->FV0_REGNUM,
+ fprintf_filtered (file, "fv%d\t0x%08x\t0x%08x\t0x%08x\t0x%08x\n",
+ fv_regnum - gdbarch_tdep (gdbarch)->FV0_REGNUM,
(int) read_register (first_fp_reg_num),
(int) read_register (first_fp_reg_num + 1),
(int) read_register (first_fp_reg_num + 2),
@@ -3925,12 +4002,13 @@ do_fpp_register_info (int fpp_regnum)
/* Double precision registers. */
static void
-do_dr_register_info (int dr_regnum)
+do_dr_register_info (struct gdbarch *gdbarch, struct ui_file *file,
+ int dr_regnum)
{
int first_fp_reg_num = dr_reg_base_num (dr_regnum);
- printf_filtered ("dr%d\t0x%08x%08x\n",
- dr_regnum - gdbarch_tdep (current_gdbarch)->DR0_REGNUM,
+ fprintf_filtered (file, "dr%d\t0x%08x%08x\n",
+ dr_regnum - gdbarch_tdep (gdbarch)->DR0_REGNUM,
(int) read_register (first_fp_reg_num),
(int) read_register (first_fp_reg_num + 1));
}
@@ -3986,23 +4064,24 @@ do_cr_c_register_info (int cr_c_regnum)
}
static void
-sh_do_pseudo_register (int regnum)
+sh_print_pseudo_register (struct gdbarch *gdbarch, struct ui_file *file,
+ int regnum)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (regnum < NUM_REGS || regnum >= NUM_REGS + NUM_PSEUDO_REGS)
internal_error (__FILE__, __LINE__,
"Invalid pseudo register number %d\n", regnum);
else if (regnum >= tdep->DR0_REGNUM
- && regnum < tdep->DR_LAST_REGNUM)
- do_dr_register_info (regnum);
+ && regnum <= tdep->DR_LAST_REGNUM)
+ do_dr_register_info (gdbarch, file, regnum);
else if (regnum >= tdep->FV0_REGNUM
&& regnum <= tdep->FV_LAST_REGNUM)
- do_fv_register_info (regnum);
+ do_fv_register_info (gdbarch, file, regnum);
}
static void
-sh_do_fp_register (int regnum)
+sh_do_fp_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{ /* do values for FP (float) regs */
char *raw_buffer;
double flt; /* double extracted from raw hex data */
@@ -4010,35 +4089,35 @@ sh_do_fp_register (int regnum)
int j;
/* Allocate space for the float. */
- raw_buffer = (char *) alloca (REGISTER_RAW_SIZE (FP0_REGNUM));
+ raw_buffer = (char *) alloca (register_size (gdbarch, FP0_REGNUM));
/* Get the data in raw format. */
- if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
+ if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
error ("can't read register %d (%s)", regnum, REGISTER_NAME (regnum));
/* Get the register as a number */
flt = unpack_double (builtin_type_float, raw_buffer, &inv);
/* Print the name and some spaces. */
- fputs_filtered (REGISTER_NAME (regnum), gdb_stdout);
- print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), gdb_stdout);
+ fputs_filtered (REGISTER_NAME (regnum), file);
+ print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file);
/* Print the value. */
if (inv)
- printf_filtered ("<invalid float>");
+ fprintf_filtered (file, "<invalid float>");
else
- printf_filtered ("%-10.9g", flt);
+ fprintf_filtered (file, "%-10.9g", flt);
/* Print the fp register as hex. */
- printf_filtered ("\t(raw 0x");
- for (j = 0; j < REGISTER_RAW_SIZE (regnum); j++)
+ fprintf_filtered (file, "\t(raw 0x");
+ for (j = 0; j < register_size (gdbarch, regnum); j++)
{
register int idx = TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? j
- : REGISTER_RAW_SIZE (regnum) - 1 - j;
- printf_filtered ("%02x", (unsigned char) raw_buffer[idx]);
+ : register_size (gdbarch, regnum) - 1 - j;
+ fprintf_filtered (file, "%02x", (unsigned char) raw_buffer[idx]);
}
- printf_filtered (")");
- printf_filtered ("\n");
+ fprintf_filtered (file, ")");
+ fprintf_filtered (file, "\n");
}
static void
@@ -4054,7 +4133,7 @@ sh64_do_pseudo_register (int regnum)
else if ((regnum >= tdep->DR0_REGNUM
&& regnum <= tdep->DR_LAST_REGNUM))
- do_dr_register_info (regnum);
+ do_dr_register_info (current_gdbarch, gdb_stdout, regnum);
else if ((regnum >= tdep->DR0_C_REGNUM
&& regnum <= tdep->DR_LAST_C_REGNUM))
@@ -4062,7 +4141,7 @@ sh64_do_pseudo_register (int regnum)
else if ((regnum >= tdep->FV0_REGNUM
&& regnum <= tdep->FV_LAST_REGNUM))
- do_fv_register_info (regnum);
+ do_fv_register_info (current_gdbarch, gdb_stdout, regnum);
else if ((regnum >= tdep->FV0_C_REGNUM
&& regnum <= tdep->FV_LAST_C_REGNUM))
@@ -4078,7 +4157,7 @@ sh64_do_pseudo_register (int regnum)
else if (regnum >= tdep->FP0_C_REGNUM
&& regnum <= tdep->FP_LAST_C_REGNUM)
- sh_do_fp_register (regnum); /* this should work also for pseudoregs */
+ sh_do_fp_register (current_gdbarch, gdb_stdout, regnum); /* this should work also for pseudoregs */
else if (regnum >= tdep->PC_C_REGNUM
&& regnum <= tdep->FPUL_C_REGNUM)
@@ -4087,27 +4166,27 @@ sh64_do_pseudo_register (int regnum)
}
static void
-sh_do_register (int regnum)
+sh_do_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{
char raw_buffer[MAX_REGISTER_SIZE];
- fputs_filtered (REGISTER_NAME (regnum), gdb_stdout);
- print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), gdb_stdout);
+ fputs_filtered (REGISTER_NAME (regnum), file);
+ print_spaces_filtered (15 - strlen (REGISTER_NAME (regnum)), file);
/* Get the data in raw format. */
- if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
- printf_filtered ("*value not available*\n");
+ if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
+ fprintf_filtered (file, "*value not available*\n");
- val_print (REGISTER_VIRTUAL_TYPE (regnum), raw_buffer, 0, 0,
- gdb_stdout, 'x', 1, 0, Val_pretty_default);
- printf_filtered ("\t");
- val_print (REGISTER_VIRTUAL_TYPE (regnum), raw_buffer, 0, 0,
- gdb_stdout, 0, 1, 0, Val_pretty_default);
- printf_filtered ("\n");
+ val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0,
+ file, 'x', 1, 0, Val_pretty_default);
+ fprintf_filtered (file, "\t");
+ val_print (gdbarch_register_type (gdbarch, regnum), raw_buffer, 0, 0,
+ file, 0, 1, 0, Val_pretty_default);
+ fprintf_filtered (file, "\n");
}
static void
-sh_print_register (int regnum)
+sh_print_register (struct gdbarch *gdbarch, struct ui_file *file, int regnum)
{
if (regnum < 0 || regnum >= NUM_REGS + NUM_PSEUDO_REGS)
internal_error (__FILE__, __LINE__,
@@ -4115,25 +4194,31 @@ sh_print_register (int regnum)
else if (regnum >= 0 && regnum < NUM_REGS)
{
- if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (regnum)) == TYPE_CODE_FLT)
- sh_do_fp_register (regnum); /* FP regs */
+ if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT)
+ sh_do_fp_register (gdbarch, file, regnum); /* FP regs */
else
- sh_do_register (regnum); /* All other regs */
+ sh_do_register (gdbarch, file, regnum); /* All other regs */
}
else if (regnum < NUM_REGS + NUM_PSEUDO_REGS)
- do_pseudo_register (regnum);
+ {
+ if (gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_sh5)
+ sh64_do_pseudo_register (regnum);
+ else
+ sh_print_pseudo_register (gdbarch, file, regnum);
+ }
}
static void
-sh_do_registers_info (int regnum, int fpregs)
+sh_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
+ struct frame_info *frame, int regnum, int fpregs)
{
if (regnum != -1) /* do one specified register */
{
if (*(REGISTER_NAME (regnum)) == '\0')
error ("Not a valid register for the current processor type");
- sh_print_register (regnum);
+ sh_print_register (gdbarch, file, regnum);
}
else
/* do all (or most) registers */
@@ -4150,20 +4235,20 @@ sh_do_registers_info (int regnum, int fpregs)
continue;
}
- if (TYPE_CODE (REGISTER_VIRTUAL_TYPE (regnum)) == TYPE_CODE_FLT)
+ if (TYPE_CODE (gdbarch_register_type (gdbarch, regnum)) == TYPE_CODE_FLT)
{
if (fpregs)
{
/* true for "INFO ALL-REGISTERS" command */
- sh_do_fp_register (regnum); /* FP regs */
+ sh_do_fp_register (gdbarch, file, regnum); /* FP regs */
regnum ++;
}
else
- regnum += (gdbarch_tdep (current_gdbarch)->FP_LAST_REGNUM - FP0_REGNUM); /* skip FP regs */
+ regnum += (gdbarch_tdep (gdbarch)->FP_LAST_REGNUM - FP0_REGNUM); /* skip FP regs */
}
else
{
- sh_do_register (regnum); /* All other regs */
+ sh_do_register (gdbarch, file, regnum); /* All other regs */
regnum++;
}
}
@@ -4171,7 +4256,10 @@ sh_do_registers_info (int regnum, int fpregs)
if (fpregs)
while (regnum < NUM_REGS + NUM_PSEUDO_REGS)
{
- do_pseudo_register (regnum);
+ if (gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_sh5)
+ sh64_do_pseudo_register (regnum);
+ else
+ sh_print_pseudo_register (gdbarch, file, regnum);
regnum++;
}
}
@@ -4189,7 +4277,7 @@ sh_compact_do_registers_info (int regnum, int fpregs)
if (regnum >= 0 && regnum < tdep->R0_C_REGNUM)
error ("Not a valid register for the current processor mode.");
- sh_print_register (regnum);
+ sh_print_register (current_gdbarch, gdb_stdout, regnum);
}
else
/* do all compact registers */
@@ -4197,7 +4285,7 @@ sh_compact_do_registers_info (int regnum, int fpregs)
regnum = tdep->R0_C_REGNUM;
while (regnum < NUM_REGS + NUM_PSEUDO_REGS)
{
- do_pseudo_register (regnum);
+ sh64_do_pseudo_register (regnum);
regnum++;
}
}
@@ -4207,7 +4295,8 @@ static void
sh64_do_registers_info (int regnum, int fpregs)
{
if (pc_is_isa32 (get_frame_pc (deprecated_selected_frame)))
- sh_do_registers_info (regnum, fpregs);
+ sh_print_registers_info (current_gdbarch, gdb_stdout,
+ deprecated_selected_frame, regnum, fpregs);
else
sh_compact_do_registers_info (regnum, fpregs);
}
@@ -4285,7 +4374,7 @@ sh_dsp_register_sim_regno (int nr)
{
if (legacy_register_sim_regno (nr) < 0)
return legacy_register_sim_regno (nr);
- if (nr >= DSP_DSR_REGNUM && nr < DSP_Y1_REGNUM)
+ if (nr >= DSP_DSR_REGNUM && nr <= DSP_Y1_REGNUM)
return nr - DSP_DSR_REGNUM + SIM_SH_DSR_REGNUM;
if (nr == DSP_MOD_REGNUM)
return SIM_SH_MOD_REGNUM;
@@ -4303,12 +4392,9 @@ static gdbarch_init_ftype sh_gdbarch_init;
static struct gdbarch *
sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
- static LONGEST sh_call_dummy_words[] = {0};
+ static LONGEST sh64_call_dummy_words[] = {0};
struct gdbarch *gdbarch;
struct gdbarch_tdep *tdep;
- gdbarch_register_name_ftype *sh_register_name;
- gdbarch_deprecated_store_return_value_ftype *sh_store_return_value;
- gdbarch_deprecated_register_virtual_type_ftype *sh_register_virtual_type;
/* If there is already a candidate, use it. */
arches = gdbarch_list_lookup_by_info (arches, &info);
@@ -4359,80 +4445,111 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->sh_abi = SH_ABI_UNKNOWN;
- set_gdbarch_fp0_regnum (gdbarch, -1);
- set_gdbarch_num_pseudo_regs (gdbarch, 0);
- set_gdbarch_deprecated_max_register_raw_size (gdbarch, 4);
- set_gdbarch_deprecated_max_register_virtual_size (gdbarch, 4);
+ set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
+ set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT);
+ set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
+ set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
set_gdbarch_ptr_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+
set_gdbarch_num_regs (gdbarch, SH_DEFAULT_NUM_REGS);
set_gdbarch_sp_regnum (gdbarch, 15);
set_gdbarch_deprecated_fp_regnum (gdbarch, 14);
set_gdbarch_pc_regnum (gdbarch, 16);
- set_gdbarch_deprecated_register_size (gdbarch, 4);
- set_gdbarch_deprecated_register_bytes (gdbarch, SH_DEFAULT_NUM_REGS * 4);
- set_gdbarch_deprecated_do_registers_info (gdbarch, sh_do_registers_info);
+ set_gdbarch_fp0_regnum (gdbarch, -1);
+ set_gdbarch_num_pseudo_regs (gdbarch, 0);
+
set_gdbarch_breakpoint_from_pc (gdbarch, sh_breakpoint_from_pc);
- set_gdbarch_deprecated_frame_chain (gdbarch, sh_frame_chain);
- set_gdbarch_deprecated_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
- set_gdbarch_deprecated_init_extra_frame_info (gdbarch, sh_init_extra_frame_info);
- set_gdbarch_deprecated_extract_return_value (gdbarch, sh_extract_return_value);
- set_gdbarch_deprecated_push_arguments (gdbarch, sh_push_arguments);
- set_gdbarch_deprecated_store_struct_return (gdbarch, sh_store_struct_return);
set_gdbarch_use_struct_convention (gdbarch, sh_use_struct_convention);
- set_gdbarch_deprecated_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
- set_gdbarch_deprecated_pop_frame (gdbarch, sh_pop_frame);
+
set_gdbarch_print_insn (gdbarch, gdb_print_insn_sh);
set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno);
+
+ set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
+
+ set_gdbarch_skip_prologue (gdbarch, sh_skip_prologue);
+ set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
+ set_gdbarch_decr_pc_after_break (gdbarch, 0);
+ set_gdbarch_function_start_offset (gdbarch, 0);
+
+ set_gdbarch_frame_args_skip (gdbarch, 0);
+ set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
+ set_gdbarch_believe_pcc_promotion (gdbarch, 1);
+
skip_prologue_hard_way = sh_skip_prologue_hard_way;
- do_pseudo_register = sh_do_pseudo_register;
+
+ set_gdbarch_deprecated_frame_chain (gdbarch, sh_frame_chain);
+ set_gdbarch_deprecated_get_saved_register (gdbarch, deprecated_generic_get_saved_register);
+ set_gdbarch_deprecated_init_extra_frame_info (gdbarch, sh_init_extra_frame_info);
+ set_gdbarch_deprecated_pop_frame (gdbarch, sh_pop_frame);
+ set_gdbarch_deprecated_frame_saved_pc (gdbarch, sh_frame_saved_pc);
+ set_gdbarch_deprecated_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
+ set_gdbarch_frame_align (gdbarch, sh_frame_align);
switch (info.bfd_arch_info->mach)
{
case bfd_mach_sh:
- sh_register_name = sh_sh_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh_generic_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
+
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
break;
case bfd_mach_sh2:
- sh_register_name = sh_sh_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh_generic_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
+
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
break;
case bfd_mach_sh2e:
- sh_register_name = sh_sh2e_register_name;
+ /* doubles on sh2e and sh3e are actually 4 byte. */
+ set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+
+ set_gdbarch_register_name (gdbarch, sh_sh2e_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh2e_show_regs;
- sh_store_return_value = sh3e_sh4_store_return_value;
- sh_register_virtual_type = sh_sh3e_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
+ set_gdbarch_register_type (gdbarch, sh_sh3e_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_fp0_regnum (gdbarch, 25);
+ set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
+ tdep->FLOAT_ARG0_REGNUM = 29; /* FIXME use constants! */
+ tdep->FLOAT_ARGLAST_REGNUM = 36; /* FIXME use constants! */
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch,
+ sh_nofp_frame_init_saved_regs);
break;
case bfd_mach_sh_dsp:
- sh_register_name = sh_sh_dsp_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh_dsp_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh_dsp_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_register_sim_regno (gdbarch, sh_dsp_register_sim_regno);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->DSR_REGNUM = 24;
tdep->A0G_REGNUM = 25;
tdep->A0_REGNUM = 26;
@@ -4447,45 +4564,59 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->MOD_REGNUM = 40;
tdep->RS_REGNUM = 43;
tdep->RE_REGNUM = 44;
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
break;
case bfd_mach_sh3:
- sh_register_name = sh_sh3_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh3_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh3_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
break;
case bfd_mach_sh3e:
- sh_register_name = sh_sh3e_register_name;
+ /* doubles on sh2e and sh3e are actually 4 byte. */
+ set_gdbarch_double_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+
+ set_gdbarch_register_name (gdbarch, sh_sh3e_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh3e_show_regs;
- sh_store_return_value = sh3e_sh4_store_return_value;
- sh_register_virtual_type = sh_sh3e_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
- set_gdbarch_deprecated_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
+ set_gdbarch_register_type (gdbarch, sh_sh3e_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_fp0_regnum (gdbarch, 25);
+ set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
+ tdep->FLOAT_ARG0_REGNUM = 29; /* FIXME use constants! */
+ tdep->FLOAT_ARGLAST_REGNUM = 36; /* FIXME use constants! */
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
break;
case bfd_mach_sh3_dsp:
- sh_register_name = sh_sh3_dsp_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh3_dsp_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh3_dsp_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
+ set_gdbarch_register_sim_regno (gdbarch, sh_dsp_register_sim_regno);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_nofpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->DSR_REGNUM = 24;
tdep->A0G_REGNUM = 25;
tdep->A0_REGNUM = 26;
@@ -4502,23 +4633,23 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->RE_REGNUM = 44;
tdep->SSR_REGNUM = 41;
tdep->SPC_REGNUM = 42;
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
break;
case bfd_mach_sh4:
- sh_register_name = sh_sh4_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh4_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh4_show_regs;
- sh_store_return_value = sh3e_sh4_store_return_value;
- sh_register_virtual_type = sh_sh4_register_virtual_type;
- set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
- set_gdbarch_deprecated_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
+ set_gdbarch_register_type (gdbarch, sh_sh4_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
set_gdbarch_fp0_regnum (gdbarch, 25);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_sh4_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_sh4_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_sh4_register_byte);
set_gdbarch_num_pseudo_regs (gdbarch, 12);
- set_gdbarch_deprecated_max_register_raw_size (gdbarch, 4 * 4);
- set_gdbarch_deprecated_max_register_virtual_size (gdbarch, 4 * 4);
set_gdbarch_pseudo_register_read (gdbarch, sh_pseudo_register_read);
set_gdbarch_pseudo_register_write (gdbarch, sh_pseudo_register_write);
+ set_gdbarch_store_return_value (gdbarch, sh3e_sh4_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh3e_sh4_extract_return_value);
+ set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
+ set_gdbarch_extract_struct_value_address (gdbarch, sh_extract_struct_value_address);
tdep->FPUL_REGNUM = 23;
tdep->FPSCR_REGNUM = 24;
tdep->FP_LAST_REGNUM = 40;
@@ -4528,6 +4659,10 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->DR_LAST_REGNUM = 66;
tdep->FV0_REGNUM = 67;
tdep->FV_LAST_REGNUM = 70;
+ tdep->FLOAT_ARG0_REGNUM = 29; /* FIXME use constants! */
+ tdep->FLOAT_ARGLAST_REGNUM = 36; /* FIXME use constants! */
+
+ set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_fp_frame_init_saved_regs);
break;
case bfd_mach_sh5:
tdep->PR_REGNUM = 18;
@@ -4589,16 +4724,15 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
ISA16(compact) or ISA32(media). */
set_gdbarch_num_regs (gdbarch, SIM_SH64_NR_REGS);
set_gdbarch_deprecated_register_size (gdbarch, 8); /*????*/
- set_gdbarch_deprecated_register_bytes (gdbarch,
+ set_gdbarch_deprecated_register_bytes (gdbarch,
((SIM_SH64_NR_FP_REGS + 1) * 4)
+ (SIM_SH64_NR_REGS - SIM_SH64_NR_FP_REGS -1) * 8);
- sh_register_name = sh_sh64_register_name;
+ set_gdbarch_register_name (gdbarch, sh_sh64_register_name);
sh_show_regs = sh64_show_regs;
- sh_register_virtual_type = sh_sh64_register_virtual_type;
- sh_store_return_value = sh64_store_return_value;
+ set_gdbarch_deprecated_register_virtual_type (gdbarch, sh_sh64_register_virtual_type);
+ set_gdbarch_deprecated_store_return_value (gdbarch, sh64_store_return_value);
skip_prologue_hard_way = sh64_skip_prologue_hard_way;
- do_pseudo_register = sh64_do_pseudo_register;
set_gdbarch_deprecated_register_raw_size (gdbarch, sh_sh64_register_raw_size);
set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_sh64_register_raw_size);
set_gdbarch_deprecated_register_byte (gdbarch, sh_sh64_register_byte);
@@ -4615,12 +4749,17 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_deprecated_do_registers_info (gdbarch, sh64_do_registers_info);
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh64_nofp_frame_init_saved_regs);
set_gdbarch_breakpoint_from_pc (gdbarch, sh_sh64_breakpoint_from_pc);
+ set_gdbarch_deprecated_call_dummy_words (gdbarch, sh64_call_dummy_words);
+ set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, sizeof (sh64_call_dummy_words));
+
set_gdbarch_deprecated_init_extra_frame_info (gdbarch, sh64_init_extra_frame_info);
set_gdbarch_deprecated_frame_chain (gdbarch, sh64_frame_chain);
set_gdbarch_deprecated_get_saved_register (gdbarch, sh64_get_saved_register);
set_gdbarch_deprecated_extract_return_value (gdbarch, sh64_extract_return_value);
set_gdbarch_deprecated_push_arguments (gdbarch, sh64_push_arguments);
- /*set_gdbarch_deprecated_store_struct_return (gdbarch, sh64_store_struct_return);*/
+ set_gdbarch_deprecated_push_return_address (gdbarch, sh64_push_return_address);
+ set_gdbarch_deprecated_dummy_write_sp (gdbarch, deprecated_write_sp);
+ set_gdbarch_deprecated_store_struct_return (gdbarch, sh64_store_struct_return);
set_gdbarch_deprecated_extract_struct_value_address (gdbarch, sh64_extract_struct_value_address);
set_gdbarch_use_struct_convention (gdbarch, sh64_use_struct_convention);
set_gdbarch_deprecated_pop_frame (gdbarch, sh64_pop_frame);
@@ -4628,47 +4767,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
sh64_elf_make_msymbol_special);
break;
default:
- sh_register_name = sh_generic_register_name;
+ set_gdbarch_register_name (gdbarch, sh_generic_register_name);
+ set_gdbarch_print_registers_info (gdbarch, sh_print_registers_info);
sh_show_regs = sh_generic_show_regs;
- sh_store_return_value = sh_default_store_return_value;
- sh_register_virtual_type = sh_default_register_virtual_type;
+ set_gdbarch_register_type (gdbarch, sh_default_register_type);
+ set_gdbarch_push_dummy_code (gdbarch, sh_push_dummy_code);
+ set_gdbarch_store_return_value (gdbarch, sh_default_store_return_value);
+ set_gdbarch_extract_return_value (gdbarch, sh_default_extract_return_value);
+
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, sh_nofp_frame_init_saved_regs);
- set_gdbarch_deprecated_register_raw_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_virtual_size (gdbarch, sh_default_register_raw_size);
- set_gdbarch_deprecated_register_byte (gdbarch, sh_default_register_byte);
break;
}
- set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
- set_gdbarch_deprecated_dummy_write_sp (gdbarch, deprecated_write_sp);
-
- set_gdbarch_register_name (gdbarch, sh_register_name);
- set_gdbarch_deprecated_register_virtual_type (gdbarch, sh_register_virtual_type);
-
- set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
- set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_long_long_bit (gdbarch, 8 * TARGET_CHAR_BIT);
- set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
- set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
-
- set_gdbarch_deprecated_call_dummy_words (gdbarch, sh_call_dummy_words);
- set_gdbarch_deprecated_sizeof_call_dummy_words (gdbarch, sizeof (sh_call_dummy_words));
-
- set_gdbarch_deprecated_push_return_address (gdbarch, sh_push_return_address);
-
- set_gdbarch_deprecated_store_return_value (gdbarch, sh_store_return_value);
- set_gdbarch_skip_prologue (gdbarch, sh_skip_prologue);
- set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
- set_gdbarch_decr_pc_after_break (gdbarch, 0);
- set_gdbarch_function_start_offset (gdbarch, 0);
-
- set_gdbarch_frame_args_skip (gdbarch, 0);
- set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
- set_gdbarch_deprecated_frame_saved_pc (gdbarch, sh_frame_saved_pc);
- set_gdbarch_deprecated_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
- set_gdbarch_believe_pcc_promotion (gdbarch, 1);
-
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
index 1b9c8fe..c35964a 100644
--- a/gdb/sh-tdep.h
+++ b/gdb/sh-tdep.h
@@ -85,7 +85,8 @@ struct gdbarch_tdep
int FV_LAST_C_REGNUM; /* sh5-compact*/
int ARG0_REGNUM;
int ARGLAST_REGNUM;
- int FLOAT_ARGLAST_REGNUM;
+ int FLOAT_ARG0_REGNUM; /* sh4 */
+ int FLOAT_ARGLAST_REGNUM; /* sh4, sh5 */
int RETURN_REGNUM;
enum sh_abi sh_abi;
};
diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c
index 8e2c4ad..a96e8cb 100644
--- a/gdb/sol-thread.c
+++ b/gdb/sol-thread.c
@@ -646,10 +646,10 @@ sol_thread_store_registers (int regno)
if (regno != -1)
{ /* Not writing all the regs */
- /* save new register value */
- char* old_value = (char*) alloca (DEPRECATED_REGISTER_SIZE);
- memcpy (old_value, &deprecated_registers[REGISTER_BYTE (regno)],
- DEPRECATED_REGISTER_SIZE);
+ char old_value[MAX_REGISTER_SIZE];
+
+ /* Save new register value. */
+ regcache_collect (regno, old_value);
val = p_td_thr_getgregs (&thandle, gregset);
if (val != TD_OK)
@@ -660,9 +660,8 @@ sol_thread_store_registers (int regno)
error ("sol_thread_store_registers: td_thr_getfpregs %s",
td_err_string (val));
- /* restore new register value */
- memcpy (&deprecated_registers[REGISTER_BYTE (regno)], old_value,
- DEPRECATED_REGISTER_SIZE);
+ /* Restore new register value. */
+ supply_register (regno, old_value);
#if 0
/* thread_db doesn't seem to handle this right */
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index d433534..5ff6ba6 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1472,7 +1472,7 @@ void
_initialize_svr4_solib (void)
{
fetch_link_map_offsets_gdbarch_data =
- register_gdbarch_data (init_fetch_link_map_offsets, 0);
+ register_gdbarch_data (init_fetch_link_map_offsets);
svr4_so_ops.relocate_section_addresses = svr4_relocate_section_addresses;
svr4_so_ops.free_so = svr4_free_so;
diff --git a/gdb/solib.h b/gdb/solib.h
index 04be72d..936f037 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -1,5 +1,5 @@
/* Shared library declarations for GDB, the GNU Debugger.
- Copyright 1992, 1993, 1995, 1998, 1999, 2000, 2001
+ Copyright 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2003
Free Software Foundation, Inc.
This file is part of GDB.
@@ -112,7 +112,7 @@ extern void solib_create_inferior_hook (void); /* solib.c */
*/
#define SOLIB_LOADED_LIBRARY_PATHNAME(pid) \
-(0)
+""
/* This function returns TRUE if the dynamic linker has just reported
an unload of a library.
diff --git a/gdb/source.c b/gdb/source.c
index ae94add..749617b 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1361,7 +1361,7 @@ forward_search_command (char *regex, int from_tty)
msg = (char *) re_comp (regex);
if (msg)
- error (msg);
+ error ("%s", msg);
if (current_source_symtab == 0)
select_source_symtab (0);
@@ -1457,7 +1457,7 @@ reverse_search_command (char *regex, int from_tty)
msg = (char *) re_comp (regex);
if (msg)
- error (msg);
+ error ("%s", msg);
if (current_source_symtab == 0)
select_source_symtab (0);
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 24c7beb..ef6368f 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -132,9 +132,6 @@ struct gdbarch_tdep
* TARGET_ARCHITECTURE->mach == bfd_mach_sparc_v9a))
*/
-/* From infrun.c */
-extern int stop_after_trap;
-
/* We don't store all registers immediately when requested, since they
get sent over in large chunks anyway. Instead, we accumulate most
of the changes and send them over once. "deferred_stores" keeps
@@ -2876,6 +2873,22 @@ sparc_print_extra_frame_info (struct frame_info *fi)
/* MULTI_ARCH support */
+const char *
+legacy_register_name (int i)
+{
+#ifdef REGISTER_NAMES
+ static char *names[] = REGISTER_NAMES;
+ if (i < 0 || i >= (sizeof (names) / sizeof (*names)))
+ return NULL;
+ else
+ return names[i];
+#else
+ internal_error (__FILE__, __LINE__,
+ "legacy_register_name: called.");
+ return NULL;
+#endif
+}
+
static const char *
sparc32_register_name (int regno)
{
@@ -3205,7 +3218,7 @@ sparc_reg_struct_has_addr (int gcc_p, struct type *type)
return (gcc_p != 1);
}
-static int
+int
sparc_intreg_size (void)
{
return SPARC_INTREG_SIZE;
diff --git a/gdb/stack.c b/gdb/stack.c
index ff098a1..d3e8ac9 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -547,7 +547,7 @@ print_frame (struct frame_info *fi,
stb = ui_out_stream_new (uiout);
old_chain = make_cleanup_ui_out_stream_delete (stb);
- func = find_pc_function (frame_address_in_block (fi));
+ func = find_pc_function (get_frame_address_in_block (fi));
if (func)
{
/* In certain pathological cases, the symtabs give the wrong
@@ -566,7 +566,7 @@ print_frame (struct frame_info *fi,
ever changed many parts of GDB will need to be changed (and we'll
create a find_pc_minimal_function or some such). */
- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (frame_address_in_block (fi));
+ struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_address_in_block (fi));
if (msymbol != NULL
&& (SYMBOL_VALUE_ADDRESS (msymbol)
> BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
@@ -614,7 +614,7 @@ print_frame (struct frame_info *fi,
}
else
{
- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (frame_address_in_block (fi));
+ struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (get_frame_address_in_block (fi));
if (msymbol != NULL)
{
funname = DEPRECATED_SYMBOL_NAME (msymbol);
@@ -1206,7 +1206,7 @@ backtrace_command_1 (char *count_exp, int show_locals, int from_tty)
fi = get_prev_frame (fi))
{
QUIT;
- ps = find_pc_psymtab (frame_address_in_block (fi));
+ ps = find_pc_psymtab (get_frame_address_in_block (fi));
if (ps)
PSYMTAB_TO_SYMTAB (ps); /* Force syms to come in */
}
diff --git a/gdb/std-regs.c b/gdb/std-regs.c
index 1241852..1e8f3c8 100644
--- a/gdb/std-regs.c
+++ b/gdb/std-regs.c
@@ -22,7 +22,7 @@
Boston, MA 02111-1307, USA. */
#include "defs.h"
-#include "builtin-regs.h"
+#include "user-regs.h"
#include "frame.h"
#include "gdbtypes.h"
#include "value.h"
@@ -147,14 +147,14 @@ _initialize_frame_reg (void)
/* Frame based $fp, $pc, $sp and $ps. These only come into play
when the target does not define its own version of these
registers. */
- add_builtin_reg ("fp", value_of_builtin_frame_fp_reg);
- add_builtin_reg ("pc", value_of_builtin_frame_pc_reg);
- add_builtin_reg ("sp", value_of_builtin_frame_sp_reg);
- add_builtin_reg ("ps", value_of_builtin_frame_ps_reg);
+ user_reg_add_builtin ("fp", value_of_builtin_frame_fp_reg);
+ user_reg_add_builtin ("pc", value_of_builtin_frame_pc_reg);
+ user_reg_add_builtin ("sp", value_of_builtin_frame_sp_reg);
+ user_reg_add_builtin ("ps", value_of_builtin_frame_ps_reg);
/* NOTE: cagney/2002-04-05: For moment leave the $frame / $gdbframe
/ $gdb.frame disabled. It isn't yet clear which of the many
options is the best. */
if (0)
- add_builtin_reg ("frame", value_of_builtin_frame_reg);
+ user_reg_add_builtin ("frame", value_of_builtin_frame_reg);
}
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 839a7bc..b1ff445 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1377,10 +1377,6 @@ find_sym_fns (struct objfile *objfile)
|| our_flavour == bfd_target_tekhex_flavour)
return; /* No symbols. */
- /* Special kludge for apollo. See dstread.c. */
- if (STREQN (our_target, "apollo", 6))
- our_flavour = (enum bfd_flavour) -2;
-
for (sf = symtab_fns; sf != NULL; sf = sf->next)
{
if (our_flavour == sf->sym_flavour)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index ddf8748..48afabb 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -945,6 +945,14 @@ lookup_symbol_aux (const char *name, const char *linkage_name,
{
struct symbol *sym;
+ /* Make sure we do something sensible with is_a_field_of_this, since
+ the callers that set this parameter to some non-null value will
+ certainly use it later and expect it to be either 0 or 1.
+ If we don't set it, the contents of is_a_field_of_this are
+ undefined. */
+ if (is_a_field_of_this != NULL)
+ *is_a_field_of_this = 0;
+
/* Search specified block and its superiors. Don't search
STATIC_BLOCK or GLOBAL_BLOCK. */
@@ -961,7 +969,6 @@ lookup_symbol_aux (const char *name, const char *linkage_name,
{
struct value *v = current_language->la_value_of_this (0);
- *is_a_field_of_this = 0;
if (v && check_field (v, name))
{
*is_a_field_of_this = 1;
diff --git a/gdb/symtab.h b/gdb/symtab.h
index b6309eb..a7f1e30 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -35,17 +35,6 @@ struct blockvector;
struct axs_value;
struct agent_expr;
-/* Don't do this; it means that if some .o's are compiled with GNU C
- and some are not (easy to do accidentally the way we configure
- things; also it is a pain to have to "make clean" every time you
- want to switch compilers), then GDB dies a horrible death. */
-/* GNU C supports enums that are bitfields. Some compilers don't. */
-#if 0 && defined(__GNUC__) && !defined(BYTE_BITFIELD)
-#define BYTE_BITFIELD :8;
-#else
-#define BYTE_BITFIELD /*nothing */
-#endif
-
/* Define a structure for the information that is common to all symbol types,
including minimal symbols, partial symbols, and full symbols. In a
multilanguage environment, some language specific information may need to
@@ -107,7 +96,7 @@ struct general_symbol_info
This is used to select one of the fields from the language specific
union above. */
- enum language language BYTE_BITFIELD;
+ ENUM_BITFIELD(language) language : 8;
/* Which section is this symbol in? This is an index into
section_offsets for this objfile. Negative means that the symbol
@@ -227,6 +216,37 @@ extern char *symbol_demangled_name (struct general_symbol_info *symbol);
#define SYMBOL_MATCHES_NATURAL_NAME(symbol, name) \
(strcmp_iw (SYMBOL_NATURAL_NAME (symbol), (name)) == 0)
+/* Classification types for a minimal symbol. These should be taken as
+ "advisory only", since if gdb can't easily figure out a
+ classification it simply selects mst_unknown. It may also have to
+ guess when it can't figure out which is a better match between two
+ types (mst_data versus mst_bss) for example. Since the minimal
+ symbol info is sometimes derived from the BFD library's view of a
+ file, we need to live with what information bfd supplies. */
+
+enum minimal_symbol_type
+{
+ mst_unknown = 0, /* Unknown type, the default */
+ mst_text, /* Generally executable instructions */
+ mst_data, /* Generally initialized data */
+ mst_bss, /* Generally uninitialized data */
+ mst_abs, /* Generally absolute (nonrelocatable) */
+ /* GDB uses mst_solib_trampoline for the start address of a shared
+ library trampoline entry. Breakpoints for shared library functions
+ are put there if the shared library is not yet loaded.
+ After the shared library is loaded, lookup_minimal_symbol will
+ prefer the minimal symbol from the shared library (usually
+ a mst_text symbol) over the mst_solib_trampoline symbol, and the
+ breakpoints will be moved to their true address in the shared
+ library via breakpoint_re_set. */
+ mst_solib_trampoline, /* Shared library trampoline code */
+ /* For the mst_file* types, the names are only guaranteed to be unique
+ within a given .o file. */
+ mst_file_text, /* Static version of mst_text */
+ mst_file_data, /* Static version of mst_data */
+ mst_file_bss /* Static version of mst_bss */
+};
+
/* Define a simple structure used to hold some very basic information about
all defined global symbols (text, data, bss, abs, etc). The only required
information is the general_symbol_info.
@@ -268,37 +288,9 @@ struct minimal_symbol
char *filename;
#endif
- /* Classification types for this symbol. These should be taken as "advisory
- only", since if gdb can't easily figure out a classification it simply
- selects mst_unknown. It may also have to guess when it can't figure out
- which is a better match between two types (mst_data versus mst_bss) for
- example. Since the minimal symbol info is sometimes derived from the
- BFD library's view of a file, we need to live with what information bfd
- supplies. */
+ /* Classification type for this minimal symbol. */
- enum minimal_symbol_type
- {
- mst_unknown = 0, /* Unknown type, the default */
- mst_text, /* Generally executable instructions */
- mst_data, /* Generally initialized data */
- mst_bss, /* Generally uninitialized data */
- mst_abs, /* Generally absolute (nonrelocatable) */
- /* GDB uses mst_solib_trampoline for the start address of a shared
- library trampoline entry. Breakpoints for shared library functions
- are put there if the shared library is not yet loaded.
- After the shared library is loaded, lookup_minimal_symbol will
- prefer the minimal symbol from the shared library (usually
- a mst_text symbol) over the mst_solib_trampoline symbol, and the
- breakpoints will be moved to their true address in the shared
- library via breakpoint_re_set. */
- mst_solib_trampoline, /* Shared library trampoline code */
- /* For the mst_file* types, the names are only guaranteed to be unique
- within a given .o file. */
- mst_file_text, /* Static version of mst_text */
- mst_file_data, /* Static version of mst_data */
- mst_file_bss /* Static version of mst_bss */
- }
- type BYTE_BITFIELD;
+ ENUM_BITFIELD(minimal_symbol_type) type : 8;
/* Minimal symbols with the same hash key are kept on a linked
list. This is the link. */
@@ -321,7 +313,7 @@ struct minimal_symbol
/* Different name domains for symbols. Looking up a symbol specifies a
domain and ignores symbol definitions in other name domains. */
-typedef enum
+typedef enum domain_enum_tag
{
/* UNDEF_DOMAIN is used when a domain has not been discovered or
none of the following apply. This usually indicates an error either
@@ -394,8 +386,9 @@ enum address_class
/* Value is in register number SYMBOL_VALUE. Just like LOC_REGISTER
except this is an argument. Probably the cleaner way to handle
this would be to separate address_class (which would include
- separate ARG and LOCAL to deal with FRAME_ARGS_ADDRESS versus
- FRAME_LOCALS_ADDRESS), and an is_argument flag.
+ separate ARG and LOCAL to deal with the frame's arguments
+ (get_frame_args_address) versus the frame's locals
+ (get_frame_locals_address), and an is_argument flag.
For some symbol formats (stabs, for some compilers at least),
the compiler generates two symbols, an argument and a register.
@@ -439,9 +432,9 @@ enum address_class
/* Value is arg at SYMBOL_VALUE offset in stack frame. Differs from
LOC_LOCAL in that symbol is an argument; differs from LOC_ARG in
- that we find it in the frame (FRAME_LOCALS_ADDRESS), not in the
- arglist (FRAME_ARGS_ADDRESS). Added for i960, which passes args
- in regs then copies to frame. */
+ that we find it in the frame (get_frame_locals_address), not in
+ the arglist (get_frame_args_address). Added for i960, which
+ passes args in regs then copies to frame. */
LOC_LOCAL_ARG,
@@ -577,11 +570,11 @@ struct symbol
/* Domain code. */
- domain_enum domain BYTE_BITFIELD;
+ ENUM_BITFIELD(domain_enum_tag) domain : 6;
/* Address class */
- enum address_class aclass BYTE_BITFIELD;
+ ENUM_BITFIELD(address_class) aclass : 6;
/* Line number of definition. FIXME: Should we really make the assumption
that nobody will try to debug files longer than 64K lines? What about
@@ -654,11 +647,11 @@ struct partial_symbol
/* Name space code. */
- domain_enum domain BYTE_BITFIELD;
+ ENUM_BITFIELD(domain_enum_tag) domain : 6;
/* Address class (for info_symbols) */
- enum address_class aclass BYTE_BITFIELD;
+ ENUM_BITFIELD(address_class) aclass : 6;
};
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b189657..8657935 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,51 @@
+2003-08-18 Mark Kettenis <kettenis@gnu.org>
+
+ * gdb.arch/i386-prologue.exp: Add testcase for PR backtrace/1338.
+ * gdb.arch/i386-prologue.c (gdb1338): Add function.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * mi-var-display.exp (-var-list-children weird): Accept function
+ pointers with argument types.
+ * mi1-var-display.exp (-var-list-children weird): Likewise.
+ * mi2-var-display.exp (-var-list-children weird): Likewise.
+
+2003-08-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * gdb.base/annota3.exp: Add missing newline.
+
+2003-08-06 Michael Chastain <mec@shout.net>
+
+ * gdb.java/jmisc1.exp: Add test for pr gdb/1322.
+
+2003-08-12 Michael Snyder <msnyder@redhat.com>
+
+ * gdb.base/float.exp: Add test for SH.
+
+2003-08-10 Mark Kettenis <kettenis@gnu.org>
+
+ * gdb.arch/i386-prologue.c, gdb.arch/i386-prologue.exp: New files.
+
+2003-08-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb.base/completion.exp: Remove reduntant completion test
+ on filename.
+
+2003-08-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb.base/attach.exp, gdb.base/detach.exp, gdb.base/gcore.exp,
+ gdb.mi/mi-basics.exp, gdb.threads/gcore-thread.exp,
+ gdb.trace/save-trace.exp: Make sure that full pathnames are
+ escaped correctly.
+
+2003-08-07 Elena Zannoni <ezannoni@redhat.com>
+
+ * configure.in: Don't generate config.h from config.hin.
+ * configure: Regenerate.
+ * config.hin: Remove file.
+ * gdb.mi/pthreads.c: Remove include of config.h, and other ifdefs.
+ * gdb.threads/pthreads.c: Ditto.
+
2003-08-07 Daniel Jacobowitz <drow@mvista.com>
From Kei Sakamoto <sakamoto.kei@renesas.com>:
@@ -12,24 +60,102 @@
* gdb.c++/annota3.exp: New file.
* gdb.c++/annota3.cc: New file.
+2003-07-29 Michael Chastain <mec@shout.net>
+
+ * gdb.threads/tls.c (spin): Check errno only if sem_wait
+ actually failed.
+ (do_pass): Likewise.
+ * gdb.threads/tls.exp: Always initialize no_of_threads.
+
2003-07-27 Daniel Jacobowitz <drow@mvista.com>
* gdb.threads/print-threads.exp (test_all_threads): Loosen KFAIL
pattern.
+ * gdb.threads/tls-shared.exp: Don't use gdb_suppress_entire_file.
+ * gdb.threads/tls.exp: Recognize one case of the host library not
+ supporting TLS.
2003-07-27 Andrew Cagney <cagney@redhat.com>
* gdb.base/fileio.exp: Use SH when running commands using
remote_exec.
+2003-07-24 Daniel Jacobowitz <drow@mvista.com>
+
+ From Kei Sakamoto <sakamoto.kei@renesas.com>:
+ * gdb.base/relocate.c (dummy): New padding array.
+
+2003-07-22 Michael Snyder <msnyder@redhat.com>
+
+ * gdb.disasm/8300s.s: Fix syntax of bsr insn.
+
+ * gdb.disasm/h8300s.exp : Minor changes in disassembler output require
+ patterns to be more general, accepting old and new output.
+ Some output chars (such as '+') also must be quoted.
+ Some addresses are displayed numerically instead of
+ symbolically.
+
+2003-07-23 Michael Snyder <msnyder@redhat.com>
+
+ * gdb.base/return2.exp: Don't test long-long return.
+
+ * gdb.disasm/t01_mov.s: New file, h8300sx disassembly tests.
+ * gdb.disasm/t01_mov.exp: Ditto.
+ * gdb.disasm/t02_mova.s: Ditto.
+ * gdb.disasm/t02_mova.exp: Ditto.
+ * gdb.disasm/t03_add.s: Ditto.
+ * gdb.disasm/t03_add.exp: Ditto.
+ * gdb.disasm/t04_sub.s: Ditto.
+ * gdb.disasm/t04_sub.exp: Ditto.
+ * gdb.disasm/t05_cmp.s: Ditto.
+ * gdb.disasm/t05_cmp.exp: Ditto.
+ * gdb.disasm/t06_ari2.s: Ditto.
+ * gdb.disasm/t06_ari2.exp: Ditto.
+ * gdb.disasm/t07_ari3.s: Ditto.
+ * gdb.disasm/t07_ari3.exp: Ditto.
+ * gdb.disasm/t08_or.s: Ditto.
+ * gdb.disasm/t08_or.exp: Ditto.
+ * gdb.disasm/t09_xor.s: Ditto.
+ * gdb.disasm/t09_xor.exp: Ditto.
+ * gdb.disasm/t10_and.s: Ditto.
+ * gdb.disasm/t10_and.exp: Ditto.
+ * gdb.disasm/t11_logs.s: Ditto.
+ * gdb.disasm/t11_logs.exp: Ditto.
+ * gdb.disasm/t12_bit.s: Ditto.
+ * gdb.disasm/t12_bit.exp: Ditto.
+ * gdb.disasm/t13_otr.s: Ditto.
+ * gdb.disasm/t13_otr.exp: Ditto.
+
+2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb.threads/tls.exp :Add kfail for 'info address' case.
+
+2003-07-22 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb.threads/tls.c : New file.
+ * gdb.threads/tls.exp : New file.
+ * gdb.threads/tls-main.c : New file.
+ * gdb.threads/tls-shared.c : New file.
+ * gdb.threads/tls-shared.exp : New file.
+
2003-07-22 Andreas Schwab <schwab@suse.de>
* gdb.asm/powerpc.inc (gdbasm_startup): Force alignment.
+2003-07-20 Andreas Schwab <schwab@suse.de>
+
+ * gdb.base/selftest.exp (do_steps_and_nexts): Add more patterns
+ due to insn reordering.
+
2003-07-15 Andrew Cagney <cagney@redhat.com>
* gdb.asm/asm-source.exp: Do not allow "start" in the backtrace.
+2003-07-15 Michael Chastain <mec@shout.net>
+
+ * gdb.base/gdb1250.exp: New file.
+ * gdb.base/gdb1250.c: New file.
+
2003-07-09 Michal Ludvig <mludvig@suse.cz>
* gdb.c++/templates.exp (test_ptype_of_templates): Recognize
@@ -37,9 +163,17 @@
2003-07-09 Elena Zannoni <ezannoni@redhat.com>
- * gdb.base/annota1.exp: Make sure that we properly escape the
- full path of the source file. Xfail more permissive patterns,
- due to a compiler debug info problem.
+ * gdb.threads/tls.c: New file.
+ * gdb.threads/tls.exp: New file.
+ * gdb.threads/tls-main.c: New file.
+ * gdb.threads/tls-shared.c: New file.
+ * gdb.threads/tls-shared.exp: New file.
+
+2003-07-09 Elena Zannoni <ezannoni@redhat.com>
+
+ * gdb.base/annota1.exp: Make sure that we properly escape the
+ full path of the source file. Xfail more permissive patterns,
+ due to a compiler debug info problem.
2003-07-07 Andreas Schwab <schwab@suse.de>
@@ -62,22 +196,33 @@
the call.
* gdb.base/store.exp: Accomodate store.c changes.
+2003-06-30 David Carlton <carlton@kealia.com>
+
+ * gdb.c++/maint.exp (test_invalid_name): New.
+ (test_first_component): Add tests for invalid names.
+
2003-06-29 Michael Chastain <mec@shout.net>
* gdb.c++/inherit.exp (test_print_svi_classes): Accept gdb
output of '<VTT for class>' for virtual base classes.
-2003-06-30 David Carlton <carlton@kealia.com>
+2003-06-29 Daniel Jacobowitz <drow@mvista.com>
- * gdb.c++/maint.exp (test_invalid_name): New.
- (test_first_component): Add tests for invalid names.
+ * gdb.base/completion.exp: Tab-complete "complet" instead of
+ "compl".
+ * gdb.base/complex.exp, gdb.base/complex.c: New files.
+
+2003-06-29 Daniel Jacobowitz <drow@mvista.com>
+
+ * gdb.base/constvars.exp: Remove most xfails for GCC 3.x.
+ * gdb.base/volatile.exp: Likewise.
2003-06-29 Daniel Jacobowitz <drow@mvista.com>
* gdb.threads/print-threads.exp (test_all_threads): Add kfail for
gdb/1265.
-2003-06-29 Michael Chastain <mec@shout.net>
+2003-06-28 Michael Chastain <mec@shout.net>
Daniel Jacobowitz <drow@mvista.com>
* gdb.base/selftest.exp (do_steps_and_nexts): Increase maximum
@@ -85,6 +230,10 @@
(test_with_self): Allow xmalloc call to be interleaved with the
preceding two lines.
+2003-06-24 Joel Brobecker <brobecker@gnat.com>
+
+ * gdb.base/bang.exp: New testcase.
+
2003-06-23 Joel Brobecker <brobecker@gnat.com>
* gdb.base/langs.exp: Add some tests for the "minimal" language
@@ -92,8 +241,8 @@
2003-06-23 Elena Zannoni <ezannoni@redhat.com>
- * gdb.objc/basicclass.exp: Return -1 if we cannot compile
- the testcase.
+ * gdb.objc/basicclass.exp: Return -1 if we cannot compile
+ the testcase.
2003-06-22 Daniel Jacobowitz <drow@mvista.com>
diff --git a/gdb/testsuite/config.hin b/gdb/testsuite/config.hin
deleted file mode 100644
index 1333b97..0000000
--- a/gdb/testsuite/config.hin
+++ /dev/null
@@ -1,4 +0,0 @@
-/* config.hin. Generated automatically from configure.in by autoheader. */
-
-/* Define if you have the <pthread.h> header file. */
-#undef HAVE_PTHREAD_H
diff --git a/gdb/testsuite/configure b/gdb/testsuite/configure
index 31e3a07..eb505fe 100755
--- a/gdb/testsuite/configure
+++ b/gdb/testsuite/configure
@@ -34,6 +34,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -148,6 +149,7 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
+ --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -318,6 +320,11 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
+ -site-file | --site-file | --site-fil | --site-fi | --site-f)
+ ac_prev=sitefile ;;
+ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
+ sitefile="$ac_optarg" ;;
+
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -483,12 +490,16 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# 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"
+if test -z "$sitefile"; then
+ 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
+else
+ CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -528,7 +539,6 @@ fi
-
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
@@ -549,7 +559,7 @@ ac_config_sub=$ac_aux_dir/config.sub
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:553: checking build system type" >&5
+echo "configure:563: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -573,7 +583,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:577: checking host system type" >&5
+echo "configure:587: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -594,7 +604,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:598: checking target system type" >&5
+echo "configure:608: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -709,7 +719,7 @@ fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:713: checking how to run the C preprocessor" >&5
+echo "configure:723: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -724,13 +734,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 728 "configure"
+#line 738 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -741,13 +751,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 745 "configure"
+#line 755 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:761: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -758,13 +768,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 762 "configure"
+#line 772 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:768: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -792,17 +802,17 @@ for ac_hdr in pthread.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:796: checking for $ac_hdr" >&5
+echo "configure:806: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 801 "configure"
+#line 811 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -830,12 +840,12 @@ done
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:834: checking for Cygwin environment" >&5
+echo "configure:844: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 839 "configure"
+#line 849 "configure"
#include "confdefs.h"
int main() {
@@ -846,7 +856,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -863,19 +873,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:867: checking for mingw32 environment" >&5
+echo "configure:877: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 872 "configure"
+#line 882 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -894,7 +904,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:898: checking for executable suffix" >&5
+echo "configure:908: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -904,10 +914,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj) ;;
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -990,7 +1000,19 @@ fi
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-DEFS=-DHAVE_CONFIG_H
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}
@@ -1029,7 +1051,7 @@ ac_given_srcdir=$srcdir
trap 'rm -fr `echo "Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile \
gdb.c++/Makefile gdb.disasm/Makefile gdb.java/Makefile gdb.mi/Makefile \
- gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile config.h:config.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -1177,113 +1199,6 @@ s%@top_srcdir@%$top_srcdir%g
fi; done
rm -f conftest.s*
-# 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='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="config.h:config.hin"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. 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.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# 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.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
EOF
cat >> $CONFIG_STATUS <<EOF
diff --git a/gdb/testsuite/configure.in b/gdb/testsuite/configure.in
index f80b623..14300ec 100644
--- a/gdb/testsuite/configure.in
+++ b/gdb/testsuite/configure.in
@@ -21,7 +21,6 @@
AC_PREREQ(2.13)
AC_INIT(gdb.base)
-AC_CONFIG_HEADER(config.h:config.hin)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.c b/gdb/testsuite/gdb.arch/i386-prologue.c
new file mode 100644
index 0000000..4c92a9c
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/i386-prologue.c
@@ -0,0 +1,37 @@
+void gdb1253 (void);
+void gdb1338 (void);
+
+int
+main (void)
+{
+ gdb1253 ();
+ gdb1338 ();
+ return 0;
+}
+
+/* Relevant part of the prologue from symtab/1253. */
+
+asm(".text\n"
+ " .align 8\n"
+ "gdb1253:\n"
+ " pushl %ebp\n"
+ " xorl %ecx, %ecx\n"
+ " movl %esp, %ebp\n"
+ " pushl %edi\n"
+ " int $0x03\n"
+ " leave\n"
+ " ret\n");
+
+/* Relevant part of the prologue from backtrace/1338. */
+
+asm(".text\n"
+ " .align 8\n"
+ "gdb1338:\n"
+ " pushl %edi\n"
+ " pushl %esi\n"
+ " pushl %ebx\n"
+ " int $0x03\n"
+ " popl %ebx\n"
+ " popl %esi\n"
+ " popl %edi\n"
+ " ret\n");
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp
new file mode 100644
index 0000000..68a3125
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/i386-prologue.exp
@@ -0,0 +1,70 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@gnu.org
+
+# This file is part of the gdb testsuite.
+
+if $tracelevel {
+ strace $tracelevel
+}
+
+# Test i386 prologue analyzer.
+
+set prms_id 0
+set bug_id 0
+
+if ![istarget "i?86-*-*"] then {
+ verbose "Skipping i386 prologue tests."
+ return
+}
+
+set testfile "i386-prologue"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+#
+# Run to `main' where we begin our tests.
+#
+
+if ![runto_main] then {
+ gdb_suppress_tests
+}
+
+# Testcase from symtab/1253.
+
+gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1253"
+
+gdb_test "backtrace 10" \
+ "#0\[ \t\]*$hex in gdb1253.*\r\n#1\[ \t\]*$hex in main.*" \
+ "backtrace in gdb1253"
+
+# Testcase from backtrace/1338.
+
+gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1338"
+
+gdb_test "backtrace 10" \
+ "#0\[ \t\]*$hex in gdb1338.*\r\n#1\[ \t\]*$hex in main.*" \
+ "backtrace in gdb1338"
diff --git a/gdb/testsuite/gdb.base/annota3.exp b/gdb/testsuite/gdb.base/annota3.exp
index 09a2e5b..93086ef 100644
--- a/gdb/testsuite/gdb.base/annota3.exp
+++ b/gdb/testsuite/gdb.base/annota3.exp
@@ -331,7 +331,7 @@ gdb_expect_list "annotate ignore count change" "$gdb_prompt$" {
"\r\n\032\032post-prompt\r\n"
"\(\r\n\032\032frames-invalid\r\n\)+"
"\r\n\032\032breakpoint 5\r\n"
- "Breakpoint 5, main \\(\\) at .*annota3.c:46"
+ "Breakpoint 5, main \\(\\) at .*annota3.c:46\r\n"
"\r\n\032\032source .*annota3.c:46:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
"1: value = 11\r\n"
"\r\n\032\032stopped\r\n"
diff --git a/gdb/testsuite/gdb.base/attach.exp b/gdb/testsuite/gdb.base/attach.exp
index 66e9f0e..ea11087 100644
--- a/gdb/testsuite/gdb.base/attach.exp
+++ b/gdb/testsuite/gdb.base/attach.exp
@@ -45,6 +45,7 @@ set srcfile ${testfile}.c
set srcfile2 ${testfile}2.c
set binfile ${objdir}/${subdir}/${testfile}
set binfile2 ${objdir}/${subdir}/${testfile}2
+set escapedbinfile [string_to_regexp ${objdir}/${subdir}/${testfile}]
set cleanupfile ${objdir}/${subdir}/${testfile}.awk
#execute_anywhere "rm -f ${binfile} ${binfile2}"
@@ -76,6 +77,7 @@ if [get_compiler_info ${binfile}] {
proc do_attach_tests {} {
global gdb_prompt
global binfile
+ global escapedbinfile
global srcfile
global testfile
global objdir
@@ -157,13 +159,13 @@ proc do_attach_tests {} {
-re "Load new symbol table from.*y or n.*$" {
send_gdb "y\n"
gdb_expect {
- -re "Reading symbols from $binfile\.\.\.*done.*$gdb_prompt $"\
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $"\
{pass "(re)set file, before attach1"}
-re "$gdb_prompt $" {fail "(re)set file, before attach1"}
timeout {fail "(timeout) (re)set file, before attach1"}
}
}
- -re "Reading symbols from $binfile\.\.\.*done.*$gdb_prompt $"\
+ -re "Reading symbols from $escapedbinfile\.\.\.*done.*$gdb_prompt $"\
{pass "set file, before attach1"}
-re "$gdb_prompt $" {fail "set file, before attach1"}
timeout {fail "(timeout) set file, before attach1"}
@@ -171,7 +173,7 @@ proc do_attach_tests {} {
send_gdb "attach $testpid\n"
gdb_expect {
- -re "Attaching to program.*`?$binfile'?, process $testpid.*main.*at .*$srcfile:.*$gdb_prompt $"\
+ -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*main.*at .*$srcfile:.*$gdb_prompt $"\
{pass "attach1, after setting file"}
-re "$gdb_prompt $" {fail "attach1, after setting file"}
timeout {fail "(timeout) attach1, after setting file"}
@@ -192,7 +194,7 @@ proc do_attach_tests {} {
#
send_gdb "detach\n"
gdb_expect {
- -re "Detaching from program: .*$binfile.*$gdb_prompt $"\
+ -re "Detaching from program: .*$escapedbinfile.*$gdb_prompt $"\
{pass "attach1 detach"}
-re "$gdb_prompt $" {fail "attach1 detach"}
timeout {fail "(timeout) attach1 detach"}
@@ -234,7 +236,7 @@ proc do_attach_tests {} {
#
send_gdb "attach $testpid\n"
gdb_expect {
- -re "Attaching to process $testpid.*Reading symbols from $binfile.*main.*at .*$gdb_prompt $"\
+ -re "Attaching to process $testpid.*Reading symbols from $escapedbinfile.*main.*at .*$gdb_prompt $"\
{pass "attach2"}
-re "$gdb_prompt $" {fail "attach2"}
timeout {fail "(timeout) attach2"}
@@ -335,7 +337,7 @@ proc do_attach_tests {} {
send_gdb "attach $testpid\n"
gdb_expect {
- -re "Attaching to process $testpid.*Reading symbols from $binfile.*main.*at .*$gdb_prompt $"\
+ -re "Attaching to process $testpid.*Reading symbols from $escapedbinfile.*main.*at .*$gdb_prompt $"\
{pass "attach when process' a.out not in cwd"}
-re "$gdb_prompt $" {fail "attach when process' a.out not in cwd"}
timeout {fail "(timeout) attach when process' a.out not in cwd"}
diff --git a/gdb/testsuite/gdb.base/bang.exp b/gdb/testsuite/gdb.base/bang.exp
new file mode 100644
index 0000000..f584074
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bang.exp
@@ -0,0 +1,41 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This is a test that verifies that GDB is able to "run" when the name
+# of the executable file contains a '!'.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set testfile "args"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/bang!
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+# Verify that we can run the program and that it terminates normally.
+gdb_test "run" \
+ ".*Program exited normally\." \
+ "run program"
+
diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp
index 9c721b1..a1ff58a 100644
--- a/gdb/testsuite/gdb.base/completion.exp
+++ b/gdb/testsuite/gdb.base/completion.exp
@@ -611,7 +611,7 @@ gdb_expect {
}
-# The following tests used to simply try to complete `${objdir}/Make',
+# The following tests used to simply try to complete `${objdir}/file',
# and so on. The problem is that ${objdir} can be very long; the
# completed filename may be more than eighty characters wide. When
# this happens, readline tries to manage things, producing output that
@@ -619,7 +619,7 @@ gdb_expect {
# recognize.
#
# In the case that motivated this change, the (gdb) prompt occupied
-# the leftmost six columns, and `${objdump}/' was seventy-four
+# the leftmost six columns, and `${objdir}/' was seventy-four
# characters long --- eighty in all. After printing the slash,
# readline emitted a space, a carriage return, and then `Makefile'
# (the tab character being received as input after `Make'.
@@ -631,36 +631,6 @@ gdb_expect {
#
# So, we avoid long lines. We `cd' to ${objdir} first, and then do
# the completion relative to the current directory.
-#
-# Note that if we are building in the source tree, then there will be
-# more than one completion for ./Make, so we need to handle that also.
-# A better long term solution might be to create a temporary directory,
-# populate it with a set of known names, and use that directory to
-# test completions.
-
-gdb_test "cd ${objdir}" "Working directory ${objdir}.*" "cd to \${objdir}"
-send_gdb "file ./Make\t"
-sleep 1
-gdb_expect {
- -re "^file ./Make(\\\x07|)file.*$"\
- { send_gdb "\n"
- gdb_expect {
- -re "\r\nA program is being debugged already\\. Kill it\\? \\(y or n\\) $"\
- { send_gdb "n\n"
- gdb_expect {
- -re "\r\nProgram not killed\\.\r\n$gdb_prompt $"\
- { pass "complete 'file ./Make'"}
- -re ".*$gdb_prompt $" { fail "complete 'file ./Make'"}
- timeout {fail "(timeout) complete 'file ./Make'"}
- }
- }
- -re ".*$gdb_prompt $" { fail "complete 'file ./Make'"}
- timeout {fail "(timeout) complete 'file ./Make'"}
- }
- }
- -re ".*$gdb_prompt $" { fail "complete 'file ./Make'" }
- timeout { fail "(timeout) complete 'file ./Make'" }
- }
# ${srcdir} may be a relative path. We want to make sure we end up
# in the right directory - so make sure we know where it is.
@@ -677,7 +647,7 @@ gdb_test "cd ${fullsrcdir}" \
"Working directory [string_to_regexp ${fullsrcdir}].*" \
"cd to \${srcdir}"
-send_gdb "file ./gdb.base/compl\t"
+send_gdb "file ./gdb.base/complet\t"
sleep 1
gdb_expect {
-re "^file ./gdb.base/completion\\.exp $"\
@@ -688,17 +658,17 @@ gdb_expect {
{ send_gdb "n\n"
gdb_expect {
-re "\r\nProgram not killed\\.\r\n$gdb_prompt $"\
- { pass "complete 'file ./gdb.base/compl'"}
- -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/compl'"}
- timeout {fail "(timeout) complete 'file ./gdb.base/compl'"}
+ { pass "complete 'file ./gdb.base/complet'"}
+ -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/complet'"}
+ timeout {fail "(timeout) complete 'file ./gdb.base/complet'"}
}
}
- -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/compl'"}
- timeout {fail "(timeout) complete 'file ./gdb.base/compl'"}
+ -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/complet'"}
+ timeout {fail "(timeout) complete 'file ./gdb.base/complet'"}
}
}
- -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/compl'" }
- timeout { fail "(timeout) complete 'file ./gdb.base/compl'" }
+ -re ".*$gdb_prompt $" { fail "complete 'file ./gdb.base/complet'" }
+ timeout { fail "(timeout) complete 'file ./gdb.base/complet'" }
}
send_gdb "info func marke\t"
diff --git a/gdb/testsuite/gdb.base/complex.c b/gdb/testsuite/gdb.base/complex.c
new file mode 100644
index 0000000..98cdd29
--- /dev/null
+++ b/gdb/testsuite/gdb.base/complex.c
@@ -0,0 +1,49 @@
+/* Test taken from GCC. Verify that we can print a structure containing
+ a complex number. */
+
+typedef __complex__ float cf;
+struct x { char c; cf f; } __attribute__ ((__packed__));
+struct unpacked_x { char c; cf f; };
+extern void f4 (struct unpacked_x*);
+extern void f3 (void);
+extern void f2 (struct x*);
+extern void f1 (void);
+int
+main (void)
+{
+ f1 ();
+ f3 ();
+ exit (0);
+}
+
+void
+f1 (void)
+{
+ struct x s;
+ s.f = 1;
+ s.c = 42;
+ f2 (&s);
+}
+
+void
+f2 (struct x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
+
+void
+f3 (void)
+{
+ struct unpacked_x s;
+ s.f = 1;
+ s.c = 42;
+ f4 (&s);
+}
+
+void
+f4 (struct unpacked_x *y)
+{
+ if (y->f != 1 || y->c != 42)
+ abort ();
+}
diff --git a/gdb/testsuite/gdb.base/complex.exp b/gdb/testsuite/gdb.base/complex.exp
new file mode 100644
index 0000000..f3f25e5
--- /dev/null
+++ b/gdb/testsuite/gdb.base/complex.exp
@@ -0,0 +1,63 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set bug_id 0
+
+set testfile complex
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+set options debug
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
+ # No support for __complex__, presumably.
+ unsupported "print complex packed value in C"
+ unsupported "print complex value in C"
+ return 0
+}
+
+# Start with a fresh gdb.
+
+if [get_compiler_info ${binfile}] {
+ return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+if [runto f2] then {
+ get_debug_format
+ if {$gcc_compiled == 2 && [test_debug_format "DWARF 2"]} then {
+ setup_xfail "*-*-*"
+ }
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex packed value in C"
+}
+
+if [runto f4] then {
+ gdb_test "p *y" "\\\$\[0-9\]* = \{c = 42 '\\*', f = 1 \\+ 0 \\* I\}" \
+ "print complex value in C"
+}
+
+return 0
diff --git a/gdb/testsuite/gdb.base/constvars.exp b/gdb/testsuite/gdb.base/constvars.exp
index d58b9b6..8a6b60b 100644
--- a/gdb/testsuite/gdb.base/constvars.exp
+++ b/gdb/testsuite/gdb.base/constvars.exp
@@ -84,7 +84,7 @@ get_debug_format
proc local_compiler_xfail_check { } {
global gcc_compiled;
- if {$gcc_compiled} then {
+ if {$gcc_compiled == 2} then {
if { ![test_debug_format "HP"] \
&& ![test_debug_format "DWARF 2"] } then {
setup_xfail "*-*-*"
@@ -128,6 +128,10 @@ send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
# test function parameters
local_compiler_xfail_check
+if {$gcc_compiled == 3 && [test_debug_format "stabs"]} then {
+ # With stabs, even GCC 3 does not get the const char arguments correct.
+ setup_xfail "*-*-*"
+}
send_gdb "ptype qux1\n"
gdb_expect {
-re "type = int \\(const char, const char, const char \\*, char \\* const\\).*$gdb_prompt $" {
@@ -140,6 +144,8 @@ gdb_expect {
# test vars and pointers
proc do_constvar_tests {} {
+ global gcc_compiled
+
gdb_test "print lave" " = 66 'B'"
gdb_test "ptype lave" "type = char"
gdb_test "print lavish" " = 10 '\\\\n'"
@@ -279,6 +285,11 @@ proc do_constvar_tests {} {
gdb_test "ptype locust" "type = double \\* const"
local_compiler_xfail_check
+ if {$gcc_compiled == 3 && [test_debug_format "stabs"]} then {
+ # With stabs, even GCC 3 does not get the constant structure member
+ # correct.
+ setup_xfail "*-*-*"
+ }
gdb_test "ptype crass" "type = struct crass \{\[\r\n\]+\[\ \t\]+char \\* const ptr;\[\r\n\]+\}"
local_compiler_xfail_check
gdb_test "ptype crisp" "type = struct crisp \{\[\r\n\]+\[\ \t\]+char \\* const \\*ptr;\[\r\n\]+\}"
diff --git a/gdb/testsuite/gdb.base/detach.exp b/gdb/testsuite/gdb.base/detach.exp
index 1556cf9..1f86fec 100644
--- a/gdb/testsuite/gdb.base/detach.exp
+++ b/gdb/testsuite/gdb.base/detach.exp
@@ -40,6 +40,7 @@ if [is_remote target] then {
set testfile "attach"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
+set escapedbinfile [string_to_regexp ${objdir}/${subdir}/${testfile}]
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
@@ -48,12 +49,13 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
proc do_detach_tests {} {
global srcdir
global binfile
+ global escapedbinfile
global subdir
global pass
runto_main
gdb_test "set should_exit = 1" "" "set should_exit, $pass"
- gdb_test "detach" "Detaching from program: .*$binfile, .*" "detach, $pass"
+ gdb_test "detach" "Detaching from program: .*$escapedbinfile, .*" "detach, $pass"
}
# Start with a fresh gdb
diff --git a/gdb/testsuite/gdb.base/float.exp b/gdb/testsuite/gdb.base/float.exp
index f681e1f..6c80fbb 100644
--- a/gdb/testsuite/gdb.base/float.exp
+++ b/gdb/testsuite/gdb.base/float.exp
@@ -63,6 +63,16 @@ if { [istarget "alpha*-*-*"] } then {
gdb_test "info float" "f0.*f1.*f127.*" "info float"
} elseif [istarget "m68k-*-*"] then {
gdb_test "info float" "fp0.*fp1.*fp7.*" "info float"
+} elseif [istarget "sh*-*"] then {
+ # SH may or may not have an FPU
+ gdb_test_multiple "info float" "info float" {
+ -re "fpul.*fr0.*fr1.*fr15.*$gdb_prompt $" {
+ pass "info float (with FPU)"
+ }
+ -re "No floating.point info available for this processor.*" {
+ pass "info float (without FPU)"
+ }
+ }
} else {
gdb_test "info float" "No floating.point info available for this processor." "info float"
}
diff --git a/gdb/testsuite/gdb.base/gcore.exp b/gdb/testsuite/gdb.base/gcore.exp
index f8d5baa..8c0ae8e 100644
--- a/gdb/testsuite/gdb.base/gcore.exp
+++ b/gdb/testsuite/gdb.base/gcore.exp
@@ -104,8 +104,10 @@ set pre_corefile_local_array \
set pre_corefile_extern_array \
[capture_command_output "print extern_array" "$print_prefix"]
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
+
gdb_test "gcore ${objdir}/${subdir}/gcore.test" \
- "Saved corefile ${objdir}/${subdir}/gcore.test" \
+ "Saved corefile ${escapedfilename}" \
"save a corefile"
# Now restart gdb and load the corefile.
diff --git a/gdb/testsuite/gdb.base/gdb1250.c b/gdb/testsuite/gdb.base/gdb1250.c
new file mode 100644
index 0000000..9d73f67
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb1250.c
@@ -0,0 +1,57 @@
+/* Test program for stack trace through noreturn function.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of the gdb testsuite.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ This file was written by Michael Elizabeth Chastain (mec@shout.net). */
+
+#include <stdlib.h>
+
+int global = 0;
+
+void gamma (int *parray)
+{
+ return;
+}
+
+void beta ()
+{
+ int array [4];
+ array [0] = global++;
+ array [1] = global++;
+ array [2] = global++;
+ array [3] = global++;
+ gamma (array);
+ abort ();
+}
+
+int alpha ()
+{
+ global++;
+ beta ();
+ return 0;
+}
+
+int main ()
+{
+ int i;
+ global++;
+ i = alpha ();
+ return i;
+}
diff --git a/gdb/testsuite/gdb.base/gdb1250.exp b/gdb/testsuite/gdb.base/gdb1250.exp
new file mode 100644
index 0000000..60a6f59
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gdb1250.exp
@@ -0,0 +1,80 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Tests for PR gdb/1250.
+# 2003-07-15 Michael Chastain <mec@shout.net>
+
+# This file is part of the gdb testsuite.
+
+if $tracelevel then {
+ strace $tracelevel
+ }
+
+#
+# test running programs
+#
+set prms_id 0
+set bug_id 0
+
+set testfile "gdb1250"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if ![runto abort] then {
+ perror "couldn't run to breakpoint"
+ continue
+}
+
+# See http://sources.redhat.com/gdb/bugs/1250
+#
+# In a nutshell: the function 'beta' ends with a call to 'abort', which
+# is a noreturn function. So the last instruction of 'beta' is a call
+# to 'abort'. When gdb looks for information about the caller of
+# 'beta', it looks at the instruction after the call to 'abort' -- which
+# is the first instruction of 'alpha'! So gdb uses the wrong frame
+# information. It thinks that the test program is in 'alpha' and that
+# the prologue "push %ebp / mov %esp,%ebp" has not been executed yet,
+# and grabs the wrong values.
+#
+# By the nature of the bug, it could pass if the C compiler is not smart
+# enough to implement 'abort' as a noreturn function. This is okay.
+# The real point is that users often put breakpoints on noreturn
+# functions such as 'abort' or some kind of exitting function, and those
+# breakpoints should work.
+
+gdb_test_multiple "backtrace" "backtrace from abort" {
+ -re "#0.*abort.*\r\n#1.*beta.*\r\n#2.*alpha.*\r\n#3.*main.*\r\n$gdb_prompt $" {
+ pass "backtrace from abort"
+ }
+ -re "#0.*abort.*\r\n#1.*beta.*\r\n$gdb_prompt $" {
+ # This happens with gdb HEAD as of 2003-07-13, with gcc 3.3,
+ # binutils 2.14, either -gdwarf-2 or -gstabs+, on native
+ # i686-pc-linux-gnu.
+ #
+ # gdb gets 'abort' and 'beta' right and then goes into the
+ # weeds.
+ kfail "gdb/1250" "backtrace from abort"
+ }
+}
diff --git a/gdb/testsuite/gdb.base/relocate.c b/gdb/testsuite/gdb.base/relocate.c
index d202392..df8545d 100644
--- a/gdb/testsuite/gdb.base/relocate.c
+++ b/gdb/testsuite/gdb.base/relocate.c
@@ -1,6 +1,10 @@
static int static_foo = 1;
static int static_bar = 2;
+/* This padding is just for the benefit of the test harness. It
+ causes the globals to have different addresses than the functions. */
+int dummy[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
int global_foo = 3;
int global_bar = 4;
diff --git a/gdb/testsuite/gdb.base/return2.exp b/gdb/testsuite/gdb.base/return2.exp
index d10faf0..c87d9e4 100644
--- a/gdb/testsuite/gdb.base/return2.exp
+++ b/gdb/testsuite/gdb.base/return2.exp
@@ -109,7 +109,7 @@ proc return2_tests { } {
return_1 "short"
return_1 "int"
return_1 "long"
- if { ! [istarget "m6811-*-*"] } then {
+ if { ! [istarget "m6811-*-*"] && ![istarget "h8300*-*"] } then {
return_1 "long_long"
}
return_1 "float"
diff --git a/gdb/testsuite/gdb.base/selftest.exp b/gdb/testsuite/gdb.base/selftest.exp
index 57f4f3f..6fe601e 100644
--- a/gdb/testsuite/gdb.base/selftest.exp
+++ b/gdb/testsuite/gdb.base/selftest.exp
@@ -180,6 +180,18 @@ proc do_steps_and_nexts {} {
set description "step over gdb_sysroot initialization"
set command "step"
}
+ -re ".*ndir = 0.*$gdb_prompt $" {
+ set description "step over ndir initialization"
+ set command "step"
+ }
+ -re ".*instream = stdin.*$gdb_prompt $" {
+ set description "step over instream initialization"
+ set command "step"
+ }
+ -re ".*getcwd .gdb_dirbuf, sizeof .gdb_dirbuf..;.*$gdb_prompt $" {
+ set description "next over getcwd"
+ set command "next"
+ }
-re "\[ \t\]+\{\r\n$gdb_prompt $" {
setup_xfail "mips-*-irix5*"
fail "$description ended up at odd location"
diff --git a/gdb/testsuite/gdb.base/volatile.exp b/gdb/testsuite/gdb.base/volatile.exp
index efb271b..7043696 100644
--- a/gdb/testsuite/gdb.base/volatile.exp
+++ b/gdb/testsuite/gdb.base/volatile.exp
@@ -1,4 +1,4 @@
-# Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
+# Copyright 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -90,7 +90,7 @@ get_debug_format
proc local_compiler_xfail_check { } {
global gcc_compiled;
- if {$gcc_compiled} then {
+ if {$gcc_compiled == 2} then {
if { ![test_debug_format "HP"] \
&& ![test_debug_format "DWARF 2"] } then {
setup_xfail "*-*-*"
@@ -258,6 +258,11 @@ gdb_test "ptype vendor" "type = const volatile unsigned char \\* const volatile.
# test function parameters
local_compiler_xfail_check
+if {$gcc_compiled == 3 && [test_debug_format "stabs"]} then {
+ # For reasons unknown, GCC 3 with stabs mangles several cv-qualified
+ # arguments to this function.
+ setup_xfail "*-*-*"
+}
send_gdb "ptype qux2\n"
gdb_expect {
-re "type = int \\(volatile unsigned char, const volatile int, volatile short( int)?, volatile long( int)? \\*, float \\* volatile, const volatile signed char \\* const volatile\\).*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.disasm/h8300s.exp b/gdb/testsuite/gdb.disasm/h8300s.exp
index eeaf23b..dff165c 100644
--- a/gdb/testsuite/gdb.disasm/h8300s.exp
+++ b/gdb/testsuite/gdb.disasm/h8300s.exp
@@ -189,22 +189,22 @@ proc all_inc_dec_adds_subs_tests { } {
send_gdb "x/16i inc_dec_adds_subs_tests\n"
gdb_expect {
-re "
-.*inc.b\tr0l.*
-.*inc.w\t#0x1,r4.*
-.*inc.w\t#0x2,r3.*
-.*inc.l\t#0x1,er2.*
-.*inc.l\t#0x2,er1.*
+.*inc(.b|)\tr0l.*
+.*inc.w\t#(0x|)1,r4.*
+.*inc.w\t#(0x|)2,r3.*
+.*inc.l\t#(0x|)1,er2.*
+.*inc.l\t#(0x|)2,er1.*
.*dec.b\tr0l.*
-.*dec.w\t#0x1,r4.*
-.*dec.w\t#0x2,r3.*
-.*dec.l\t#0x1,er2.*
-.*dec.l\t#0x2,er1.*
-.*adds\t#0x1,er7.*
-.*adds\t#0x2,er6.*
-.*adds\t#0x4,er5.*
-.*subs\t#0x1,er7.*
-.*subs\t#0x2,er6.*
-.*subs\t#0x4,er5.*
+.*dec.w\t#(0x|)1,r4.*
+.*dec.w\t#(0x|)2,r3.*
+.*dec.l\t#(0x|)1,er2.*
+.*dec.l\t#(0x|)2,er1.*
+.*adds\t#(0x|)1,er7.*
+.*adds\t#(0x|)2,er6.*
+.*adds\t#(0x|)4,er5.*
+.*subs\t#(0x|)1,er7.*
+.*subs\t#(0x|)2,er6.*
+.*subs\t#(0x|)4,er5.*
.*$gdb_prompt $" { pass "inc_dec_adds_subs_tests" }
-re "$gdb_prompt $" { fail "inc_dec_adds_subs_tests" }
timeout { fail "(timeout) inc_dec_adds_subs_tests" }
@@ -313,7 +313,7 @@ proc all_tas_mac_tests { } {
gdb_expect {
-re "
.*tas\t@er0.*
-.*mac\t@er1+,@er2+.*
+.*mac\t@er1\\+,@er2\\+.*
.*clrmac.*
.*ldmac\ter4,mach.*
.*ldmac\ter5,macl.*
@@ -345,8 +345,8 @@ proc all_logic_operations_tests { } {
.*or.w\tr1,r2.*
.*or.l\t#0x12345678,er0.*
.*or.l\ter1,er2.*
-.*xor.b\t#0x12,r0l.*
-.*xor.b\tr1l,r2h.*
+.*xor(.b|)\t#0x12,r0l.*
+.*xor(.b|)\tr1l,r2h.*
.*xor.w\t#0x1234,r0.*
.*xor.w\tr1,r2.*
.*xor.l\t#0x12345678,er0.*
@@ -368,18 +368,18 @@ proc all_sha_shl_tests { } {
send_gdb "x/12i sha_shl_tests\n"
gdb_expect {
-re "
-.*shal\tr0l.*
-.*shal\tr1.*
-.*shal\ter2.*
-.*shar\tr3l.*
-.*shar\tr4.*
-.*shar\ter5.*
-.*shll\tr0l.*
-.*shll\tr1.*
-.*shll\ter2.*
-.*shlr\tr3l.*
-.*shlr\tr4.*
-.*shlr\ter5.*
+.*shal(.b|)\tr0l.*
+.*shal(.w|)\tr1.*
+.*shal(.l|)\ter2.*
+.*shar(.b|)\tr3l.*
+.*shar(.w|)\tr4.*
+.*shar(.l|)\ter5.*
+.*shll(.b|)\tr0l.*
+.*shll(.w|)\tr1.*
+.*shll(.l|)\ter2.*
+.*shlr(.b|)\tr3l.*
+.*shlr(.w|)\tr4.*
+.*shlr(.l|)\ter5.*
.*$gdb_prompt $" { pass "sha_shl_tests" }
-re "$gdb_prompt $" { fail "sha_shl_tests" }
timeout { fail "(timeout) sha_shl_tests" }
@@ -394,18 +394,18 @@ proc all_rot_rotx_tests { } {
send_gdb "x/12i rot_rotx_tests\n"
gdb_expect {
-re "
-.*rotl\tr0l.*
-.*rotl\tr1.*
-.*rotl\ter2.*
-.*rotr\tr3l.*
-.*rotr\tr4.*
-.*rotr\ter5.*
-.*rotxl\tr0l.*
-.*rotxl\tr1.*
-.*rotxl\ter2.*
-.*rotxr\tr3l.*
-.*rotxr\tr4.*
-.*rotxr\ter5.*
+.*rotl(.b|)\tr0l.*
+.*rotl(.w|)\tr1.*
+.*rotl(.l|)\ter2.*
+.*rotr(.b|)\tr3l.*
+.*rotr(.w|)\tr4.*
+.*rotr(.l|)\ter5.*
+.*rotxl(.b|)\tr0l.*
+.*rotxl(.w|)\tr1.*
+.*rotxl(.l|)\ter2.*
+.*rotxr(.b|)\tr3l.*
+.*rotxr(.w|)\tr4.*
+.*rotxr(.l|)\ter5.*
.*$gdb_prompt $" { pass "rot_rotx_tests" }
-re "$gdb_prompt $" { fail "rot_rotx_tests" }
timeout { fail "(timeout) rot_rotx_tests" }
@@ -551,30 +551,30 @@ proc all_branch_tests { } {
send_gdb "x/25i branch_tests\n"
gdb_expect {
-re "
-.*bra\tbranch_tests.*
-.*brn\tbranch_tests.*
-.*bhi\tbranch_tests.*
-.*bls\tbranch_tests.*
-.*bcc\tbranch_tests.*
-.*bcs\tbranch_tests.*
-.*bne\tbranch_tests.*
-.*beq\tbranch_tests.*
-.*bvc\tbranch_tests.*
-.*bvs\tbranch_tests.*
-.*bpl\tbranch_tests.*
-.*bmi\tbranch_tests.*
-.*bge\tbranch_tests.*
-.*blt\tbranch_tests.*
-.*bgt\tbranch_tests.*
-.*ble\tbranch_tests.*
+.*bra\t(branch_tests|.-2 ).*
+.*brn\t(branch_tests|.-4 ).*
+.*bhi\t(branch_tests|.-6 ).*
+.*bls\t(branch_tests|.-8 ).*
+.*bcc\t(branch_tests|.-10 ).*
+.*bcs\t(branch_tests|.-12 ).*
+.*bne\t(branch_tests|.-14 ).*
+.*beq\t(branch_tests|.-16 ).*
+.*bvc\t(branch_tests|.-18 ).*
+.*bvs\t(branch_tests|.-20 ).*
+.*bpl\t(branch_tests|.-22 ).*
+.*bmi\t(branch_tests|.-24 ).*
+.*bge\t(branch_tests|.-26 ).*
+.*blt\t(branch_tests|.-28 ).*
+.*bgt\t(branch_tests|.-30 ).*
+.*ble\t(branch_tests|.-32 ).*
.*jmp\t@er0.*
-.*jmp\t@branch_tests.*
-.*jmp\t@@0 (0).*
-.*bsr\tbranch_tests.*
-.*bsr\tbranch_tests.*
+.*jmp\t@(branch_tests|0x).*
+.*jmp\t@@0 \\((0x|)0\\).*
+.*bsr\t(branch_tests|.-42 ).*
+.*bsr\t(branch_tests|.-46 ).*
.*jsr\t@er0.*
-.*jsr\t@branch_tests.*
-.*jsr\t@@0 (0).*
+.*jsr\t@(branch_tests|0x).*
+.*jsr\t@@0 \\((0x|)0\\).*
.*rts.*
.*$gdb_prompt $" { pass "branch_tests" }
-re "$gdb_prompt $" { fail "branch_tests" }
diff --git a/gdb/testsuite/gdb.disasm/h8300s.s b/gdb/testsuite/gdb.disasm/h8300s.s
index ec66a55..6510d40 100644
--- a/gdb/testsuite/gdb.disasm/h8300s.s
+++ b/gdb/testsuite/gdb.disasm/h8300s.s
@@ -302,8 +302,8 @@ branch_tests:
jmp @er0
jmp @branch_tests
jmp @@0 (0)
- bsr @branch_tests:8
- bsr @branch_tests:16
+ bsr branch_tests:8
+ bsr branch_tests:16
jsr @er0
jsr @branch_tests
jsr @@0 (0)
diff --git a/gdb/testsuite/gdb.disasm/t01_mov.exp b/gdb/testsuite/gdb.disasm/t01_mov.exp
new file mode 100644
index 0000000..50910e9
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t01_mov.exp
@@ -0,0 +1,2088 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t01_mov"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x/i _start" "mov.b #0x12(:8|),r3h" \
+ "mov.b #0x12:8,r3h"
+gdb_test "x" "mov.b #0x12(:8|),@er3" \
+ "mov.b #0x12:8,@er3"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x1:2,er3\\)" \
+ "mov.b #0x12:8,@(0x1:2,er3)"
+gdb_test "x" "mov.b #0x12(:8|),@-er3" \
+ "mov.b #0x12:8,@-er3"
+gdb_test "x" "mov.b #0x12(:8|),@er3\\+" \
+ "mov.b #0x12:8,@er3+"
+gdb_test "x" "mov.b #0x12(:8|),@er3-" \
+ "mov.b #0x12:8,@er3-"
+gdb_test "x" "mov.b #0x12(:8|),@\\+er3" \
+ "mov.b #0x12:8,@+er3"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x1234:16,er3\\)" \
+ "mov.b #0x12:8,@(0x1234:16,er3)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x12345678:32,er3\\)" \
+ "mov.b #0x12:8,@(0x12345678:32,er3)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.b #0x12:8,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x1234:16,r3.w\\)" \
+ "mov.b #0x12:8,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x1234:16,er3.l\\)" \
+ "mov.b #0x12:8,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.b #0x12:8,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.b #0x12:8,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.b #0x12(:8|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.b #0x12:8,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.b #0x12(:8|),@0x1234:16" \
+ "mov.b #0x12:8,@0x1234:16"
+gdb_test "x" "mov.b #0x12(:8|),@0x12345678:32" \
+ "mov.b #0x12:8,@0x12345678:32"
+gdb_test "x" "mov.b #0x1(:4|),@0x1234:16" \
+ "mov.b #0x1:4,@0x1234:16"
+gdb_test "x" "mov.b #0x1(:4|),@0x12345678:32" \
+ "mov.b #0x1:4,@0x12345678:32"
+gdb_test "x" "mov.b r3h,r1h" \
+ "mov.b r3h,r1h"
+gdb_test "x" "mov.b r3h,@er1" \
+ "mov.b r3h,@er1"
+gdb_test "x" "mov.b r3h,@\\(0x1:2,er1\\)" \
+ "mov.b r3h,@(0x1:2,er1)"
+gdb_test "x" "mov.b r3h,@-er1" \
+ "mov.b r3h,@-er1"
+gdb_test "x" "mov.b r3h,@er1\\+" \
+ "mov.b r3h,@er1+"
+gdb_test "x" "mov.b r3h,@er1-" \
+ "mov.b r3h,@er1-"
+gdb_test "x" "mov.b r3h,@\\+er1" \
+ "mov.b r3h,@+er1"
+gdb_test "x" "mov.b r3h,@\\(0x1234:16,er1\\)" \
+ "mov.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "mov.b r3h,@\\(0x12345678:32,er1\\)" \
+ "mov.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b r3h,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b r3h,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b r3h,@\\(0x1234:16,r1.w\\)" \
+ "mov.b r3h,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b r3h,@\\(0x1234:16,er1.l\\)" \
+ "mov.b r3h,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b r3h,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b r3h,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b r3h,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b r3h,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b r3h,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b r3h,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b r3h,@0x12(:8|)" \
+ "mov.b r3h,@0x12:8"
+gdb_test "x" "mov.b r3h,@0x1234:16" \
+ "mov.b r3h,@0x1234:16"
+gdb_test "x" "mov.b r3h,@0x12345678:32" \
+ "mov.b r3h,@0x12345678:32"
+gdb_test "x" "mov.b @er3,r1h" \
+ "mov.b @er3,r1h"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),r1h" \
+ "mov.b @(0x1:2,er3),r1h"
+gdb_test "x" "mov.b @er3\\+,r1h" \
+ "mov.b @er3+,r1h"
+gdb_test "x" "mov.b @-er3,r1h" \
+ "mov.b @-er3,r1h"
+gdb_test "x" "mov.b @\\+er3,r1h" \
+ "mov.b @+er3,r1h"
+gdb_test "x" "mov.b @er3-,r1h" \
+ "mov.b @er3-,r1h"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),r1h" \
+ "mov.b @(0x1234:16,er3),r1h"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),r1h" \
+ "mov.b @(0x12345678:32,er3),r1h"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),r1h" \
+ "mov.b @(0x1234:16,r3l.b),r1h"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),r1h" \
+ "mov.b @(0x1234:16,r3.w),r1h"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),r1h" \
+ "mov.b @(0x1234:16,er3.l),r1h"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),r1h" \
+ "mov.b @(0x12345678:32,r3l.b),r1h"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),r1h" \
+ "mov.b @(0x12345678:32,r3.w),r1h"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),r1h" \
+ "mov.b @(0x12345678:32,er3.l),r1h"
+gdb_test "x" "mov.b @0x12(:8|),r3h" \
+ "mov.b @0x12:8,r3h"
+gdb_test "x" "mov.b @0x1234:16,r3h" \
+ "mov.b @0x1234:16,r3h"
+gdb_test "x" "mov.b @0x12345678:32,r3h" \
+ "mov.b @0x12345678:32,r3h"
+gdb_test "x" "mov.b @er3,@er1" \
+ "mov.b @er3,@er1"
+gdb_test "x" "mov.b @er3,@\\(0x1:2,er1\\)" \
+ "mov.b @er3,@(0x1:2,er1)"
+gdb_test "x" "mov.b @er3,@er1\\+" \
+ "mov.b @er3,@er1+"
+gdb_test "x" "mov.b @er3,@-er1" \
+ "mov.b @er3,@-er1"
+gdb_test "x" "mov.b @er3,@\\+er1" \
+ "mov.b @er3,@+er1"
+gdb_test "x" "mov.b @er3,@er1-" \
+ "mov.b @er3,@er1-"
+gdb_test "x" "mov.b @er3,@\\(0x1234:16,er1\\)" \
+ "mov.b @er3,@(0x1234:16,er1)"
+gdb_test "x" "mov.b @er3,@\\(0x12345678:32,er1\\)" \
+ "mov.b @er3,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @er3,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @er3,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @er3,@\\(0x1234:16,r1.w\\)" \
+ "mov.b @er3,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @er3,@\\(0x1234:16,er1.l\\)" \
+ "mov.b @er3,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @er3,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @er3,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @er3,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @er3,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @er3,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @er3,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @er3,@0x1234:16" \
+ "mov.b @er3,@0x1234:16"
+gdb_test "x" "mov.b @er3,@0x12345678:32" \
+ "mov.b @er3,@0x12345678:32"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@er1" \
+ "mov.b @(0x1:2,er3),@er1"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x1:2,er3),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@er1\\+" \
+ "mov.b @(0x1:2,er3),@er1+"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@-er1" \
+ "mov.b @(0x1:2,er3),@-er1"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\+er1" \
+ "mov.b @(0x1:2,er3),@+er1"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@er1-" \
+ "mov.b @(0x1:2,er3),@er1-"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x1234:16,er1\\)" \
+ "mov.b @(0x1:2,er3),@(0x1234:16,er1)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x12345678:32,er1\\)" \
+ "mov.b @(0x1:2,er3),@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @(0x1:2,er3),@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x1234:16,r1.w\\)" \
+ "mov.b @(0x1:2,er3),@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x1234:16,er1.l\\)" \
+ "mov.b @(0x1:2,er3),@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @(0x1:2,er3),@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @(0x1:2,er3),@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @(0x1:2,er3),@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@0x1234:16" \
+ "mov.b @(0x1:2,er3),@0x1234:16"
+gdb_test "x" "mov.b @\\(0x1:2,er3\\),@0x12345678:32" \
+ "mov.b @(0x1:2,er3),@0x12345678:32"
+gdb_test "x" "mov.b @-er3,@er1" \
+ "mov.b @-er3,@er1"
+gdb_test "x" "mov.b @-er3,@\\(0x1:2,er1\\)" \
+ "mov.b @-er3,@(0x1:2,er1)"
+gdb_test "x" "mov.b @-er3,@er1\\+" \
+ "mov.b @-er3,@er1+"
+gdb_test "x" "mov.b @-er3,@-er1" \
+ "mov.b @-er3,@-er1"
+gdb_test "x" "mov.b @-er3,@\\+er1" \
+ "mov.b @-er3,@+er1"
+gdb_test "x" "mov.b @-er3,@er1-" \
+ "mov.b @-er3,@er1-"
+gdb_test "x" "mov.b @-er3,@\\(0x1234:16,er1\\)" \
+ "mov.b @-er3,@(0x1234:16,er1)"
+gdb_test "x" "mov.b @-er3,@\\(0x12345678:32,er1\\)" \
+ "mov.b @-er3,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @-er3,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @-er3,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @-er3,@\\(0x1234:16,r1.w\\)" \
+ "mov.b @-er3,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @-er3,@\\(0x1234:16,er1.l\\)" \
+ "mov.b @-er3,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @-er3,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @-er3,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @-er3,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @-er3,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @-er3,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @-er3,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @-er3,@0x1234:16" \
+ "mov.b @-er3,@0x1234:16"
+gdb_test "x" "mov.b @-er3,@0x12345678:32" \
+ "mov.b @-er3,@0x12345678:32"
+gdb_test "x" "mov.b @er3\\+,@er1" \
+ "mov.b @er3+,@er1"
+gdb_test "x" "mov.b @er3\\+,@\\(0x1:2,er1\\)" \
+ "mov.b @er3+,@(0x1:2,er1)"
+gdb_test "x" "mov.b @er3\\+,@er1\\+" \
+ "mov.b @er3+,@er1+"
+gdb_test "x" "mov.b @er3\\+,@-er1" \
+ "mov.b @er3+,@-er1"
+gdb_test "x" "mov.b @er3\\+,@\\+er1" \
+ "mov.b @er3+,@+er1"
+gdb_test "x" "mov.b @er3\\+,@er1-" \
+ "mov.b @er3+,@er1-"
+gdb_test "x" "mov.b @er3\\+,@\\(0x1234:16,er1\\)" \
+ "mov.b @er3+,@(0x1234:16,er1)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x12345678:32,er1\\)" \
+ "mov.b @er3+,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @er3+,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x1234:16,r1.w\\)" \
+ "mov.b @er3+,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x1234:16,er1.l\\)" \
+ "mov.b @er3+,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @er3+,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @er3+,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @er3\\+,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @er3+,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @er3\\+,@0x1234:16" \
+ "mov.b @er3+,@0x1234:16"
+gdb_test "x" "mov.b @er3\\+,@0x12345678:32" \
+ "mov.b @er3+,@0x12345678:32"
+gdb_test "x" "mov.b @er3-,@er1" \
+ "mov.b @er3-,@er1"
+gdb_test "x" "mov.b @er3-,@\\(0x1:2,er1\\)" \
+ "mov.b @er3-,@(0x1:2,er1)"
+gdb_test "x" "mov.b @er3-,@er1\\+" \
+ "mov.b @er3-,@er1+"
+gdb_test "x" "mov.b @er3-,@-er1" \
+ "mov.b @er3-,@-er1"
+gdb_test "x" "mov.b @er3-,@\\+er1" \
+ "mov.b @er3-,@+er1"
+gdb_test "x" "mov.b @er3-,@er1-" \
+ "mov.b @er3-,@er1-"
+gdb_test "x" "mov.b @er3-,@\\(0x1234:16,er1\\)" \
+ "mov.b @er3-,@(0x1234:16,er1)"
+gdb_test "x" "mov.b @er3-,@\\(0x12345678:32,er1\\)" \
+ "mov.b @er3-,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @er3-,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @er3-,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @er3-,@\\(0x1234:16,r1.w\\)" \
+ "mov.b @er3-,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @er3-,@\\(0x1234:16,er1.l\\)" \
+ "mov.b @er3-,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @er3-,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @er3-,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @er3-,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @er3-,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @er3-,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @er3-,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @er3-,@0x1234:16" \
+ "mov.b @er3-,@0x1234:16"
+gdb_test "x" "mov.b @er3-,@0x12345678:32" \
+ "mov.b @er3-,@0x12345678:32"
+gdb_test "x" "mov.b @\\+er3,@er1" \
+ "mov.b @+er3,@er1"
+gdb_test "x" "mov.b @\\+er3,@\\(0x1:2,er1\\)" \
+ "mov.b @+er3,@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\+er3,@er1\\+" \
+ "mov.b @+er3,@er1+"
+gdb_test "x" "mov.b @\\+er3,@-er1" \
+ "mov.b @+er3,@-er1"
+gdb_test "x" "mov.b @\\+er3,@\\+er1" \
+ "mov.b @+er3,@+er1"
+gdb_test "x" "mov.b @\\+er3,@er1-" \
+ "mov.b @+er3,@er1-"
+gdb_test "x" "mov.b @\\+er3,@\\(0x1234:16,er1\\)" \
+ "mov.b @+er3,@(0x1234:16,er1)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x12345678:32,er1\\)" \
+ "mov.b @+er3,@(0x12345678:32,er1)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x1234:16,r1l.b\\)" \
+ "mov.b @+er3,@(0x1234:16,r1l.b)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x1234:16,r1.w\\)" \
+ "mov.b @+er3,@(0x1234:16,r1.w)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x1234:16,er1.l\\)" \
+ "mov.b @+er3,@(0x1234:16,er1.l)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x12345678:32,r1l.b\\)" \
+ "mov.b @+er3,@(0x12345678:32,r1l.b)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x12345678:32,r1.w\\)" \
+ "mov.b @+er3,@(0x12345678:32,r1.w)"
+gdb_test "x" "mov.b @\\+er3,@\\(0x12345678:32,er1.l\\)" \
+ "mov.b @+er3,@(0x12345678:32,er1.l)"
+gdb_test "x" "mov.b @\\+er3,@0x1234:16" \
+ "mov.b @+er3,@0x1234:16"
+gdb_test "x" "mov.b @\\+er3,@0x12345678:32" \
+ "mov.b @+er3,@0x12345678:32"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@er1" \
+ "mov.b @(0x1234:16,er3),@er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x1234:16,er3),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@er1\\+" \
+ "mov.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@-er1" \
+ "mov.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\+er1" \
+ "mov.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@er1-" \
+ "mov.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abc(:16|),r1l.b\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abc:16,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abc(:16|),r1.w\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abc:16,r1.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abc(:16|),er1.l\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abc:16,er1.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abcdef0:32,r1l.b\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abcdef0:32,r1.w\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@\\(0x9abcdef0:32,er1.l\\)" \
+ "mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@0x9abc(:16|)" \
+ "mov.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x1234:16,er3\\),@0x9abcdef0:32" \
+ "mov.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@er1" \
+ "mov.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@er1\\+" \
+ "mov.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@-er1" \
+ "mov.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\+er1" \
+ "mov.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@er1-" \
+ "mov.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abc(:16|),r1l.b\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abc:16,r1l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abc(:16|),r1.w\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abc:16,r1.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abc(:16|),er1.l\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abc:16,er1.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abcdef0:32,r1l.b\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abcdef0:32,r1.w\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@\\(0x9abcdef0:32,er1.l\\)" \
+ "mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@0x9abc(:16|)" \
+ "mov.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3\\),@0x9abcdef0:32" \
+ "mov.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@er1" \
+ "mov.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@er1\\+" \
+ "mov.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@-er1" \
+ "mov.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\+er1" \
+ "mov.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@er1-" \
+ "mov.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r1l.b\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abc:16,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r1.w\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abc:16,r1.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),er1.l\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abc:16,er1.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r1l.b\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r1.w\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,er1.l\\)" \
+ "mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@0x9abc(:16|)" \
+ "mov.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x1234:16,r3l.b\\),@0x9abcdef0:32" \
+ "mov.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@er1" \
+ "mov.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@er1\\+" \
+ "mov.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@-er1" \
+ "mov.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\+er1" \
+ "mov.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@er1-" \
+ "mov.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@0x9abc(:16|)" \
+ "mov.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x1234:16,r3.w\\),@0x9abcdef0:32" \
+ "mov.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@er1" \
+ "mov.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@er1\\+" \
+ "mov.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@-er1" \
+ "mov.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\+er1" \
+ "mov.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@er1-" \
+ "mov.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@0x9abc(:16|)" \
+ "mov.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x1234:16,er3.l\\),@0x9abcdef0:32" \
+ "mov.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@er1" \
+ "mov.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@er1\\+" \
+ "mov.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@-er1" \
+ "mov.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\+er1" \
+ "mov.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@er1-" \
+ "mov.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b\t@\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b\t@\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@0x9abc(:16|)" \
+ "mov.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3l.b\\),@0x9abcdef0:32" \
+ "mov.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@er1" \
+ "mov.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@er1\\+" \
+ "mov.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@-er1" \
+ "mov.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\+er1" \
+ "mov.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@er1-" \
+ "mov.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@0x9abc(:16|)" \
+ "mov.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x12345678:32,r3.w\\),@0x9abcdef0:32" \
+ "mov.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@er1" \
+ "mov.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x1:2,er1\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x1:2,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@er1\\+" \
+ "mov.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@-er1" \
+ "mov.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\+er1" \
+ "mov.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@er1-" \
+ "mov.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@0x9abc(:16|)" \
+ "mov.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "mov.b @\\(0x12345678:32,er3.l\\),@0x9abcdef0:32" \
+ "mov.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.b @0x1234:16,@er1" \
+ "mov.b @0x1234:16,@er1"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x1:2,er1\\)" \
+ "mov.b @0x1234:16,@(0x1:2,er1)"
+gdb_test "x" "mov.b @0x1234:16,@er1\\+" \
+ "mov.b @0x1234:16,@er1+"
+gdb_test "x" "mov.b @0x1234:16,@-er1" \
+ "mov.b @0x1234:16,@-er1"
+gdb_test "x" "mov.b @0x1234:16,@\\+er1" \
+ "mov.b @0x1234:16,@+er1"
+gdb_test "x" "mov.b @0x1234:16,@er1-" \
+ "mov.b @0x1234:16,@er1-"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @0x1234:16,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @0x1234:16,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @0x1234:16,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @0x1234:16,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @0x1234:16,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @0x1234:16,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @0x1234:16,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @0x1234:16,@0x9abc(:16|)" \
+ "mov.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "mov.b @0x1234:16,@0x9abcdef0:32" \
+ "mov.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "mov.b @0x12345678:32,@er1" \
+ "mov.b @0x12345678:32,@er1"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x1:2,er1\\)" \
+ "mov.b @0x12345678:32,@(0x1:2,er1)"
+gdb_test "x" "mov.b @0x12345678:32,@er1\\+" \
+ "mov.b @0x12345678:32,@er1+"
+gdb_test "x" "mov.b @0x12345678:32,@-er1" \
+ "mov.b @0x12345678:32,@-er1"
+gdb_test "x" "mov.b @0x12345678:32,@\\+er1" \
+ "mov.b @0x12345678:32,@+er1"
+gdb_test "x" "mov.b @0x12345678:32,@er1-" \
+ "mov.b @0x12345678:32,@er1-"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abc(:16|),er1\\)" \
+ "mov.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.b @0x12345678:32,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.b @0x12345678:32,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.b @0x12345678:32,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.b @0x12345678:32,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.b @0x12345678:32,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.b @0x12345678:32,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.b @0x12345678:32,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.b @0x12345678:32,@0x9abc(:16|)" \
+ "mov.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "mov.b @0x12345678:32,@0x9abcdef0:32" \
+ "mov.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "mov.w #0x1234(:16|),r1" \
+ "mov.w #0x1234:16,r1"
+gdb_test "x" "mov.w #0x1(:3|),r3" \
+ "mov.w #0x1:3,r3"
+gdb_test "x" "mov.w #0x1234(:16|),@er1" \
+ "mov.w #0x1234:16,@er1"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x2:2,er1\\)" \
+ "mov.w #0x1234:16,@(0x2:2,er1)"
+gdb_test "x" "mov.w #0x1234(:16|),@er1\\+" \
+ "mov.w #0x1234:16@er1+"
+gdb_test "x" "mov.w #0x1234(:16|),@-er1" \
+ "mov.w #0x1234:16,@-er1"
+gdb_test "x" "mov.w #0x1234(:16|),@\\+er1" \
+ "mov.w #0x1234:16,@+er1"
+gdb_test "x" "mov.w #0x1234(:16|),@er1-" \
+ "mov.w #0x1234:16,@er1-"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x1234:16,er1\\)" \
+ "mov.w #0x1234:16,@(0x1234:16,er1)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x12345678:32,er1\\)" \
+ "mov.w #0x1234:16,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.w #0x1234:16,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x1234:16,r3.w\\)" \
+ "mov.w #0x1234:16,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x1234:16,er3.l\\)" \
+ "mov.w #0x1234:16,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w #0x1234:16,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.w #0x1234:16,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w #0x1234(:16|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.w #0x1234:16,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w #0x1234(:16|),@0x1234:16" \
+ "mov.w #0x1234:16,@0x1234:16"
+gdb_test "x" "mov.w #0x1234(:16|),@0x12345678:32" \
+ "mov.w #0x1234:16,@0x12345678:32"
+gdb_test "x" "mov.w #0x12(:8|),@er1" \
+ "mov.w #0x12:8,@er1"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x2:2,er1\\)" \
+ "mov.w #0x12:8,@(0x2:2,er1)"
+gdb_test "x" "mov.w #0x12(:8|),@er1\\+" \
+ "mov.w #0x12:8,@er1+"
+gdb_test "x" "mov.w #0x12(:8|),@-er1" \
+ "mov.w #0x12:8,@-er1"
+gdb_test "x" "mov.w #0x12(:8|),@\\+er1" \
+ "mov.w #0x12:8,@+er1"
+gdb_test "x" "mov.w #0x12(:8|),@er1-" \
+ "mov.w #0x12:8,@er1-"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x1234:16,er1\\)" \
+ "mov.w #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x12345678:32,er1\\)" \
+ "mov.w #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.w #0x12:8,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x1234:16,r3.w\\)" \
+ "mov.w #0x12:8,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x1234:16,er3.l\\)" \
+ "mov.w #0x12:8,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w #0x12:8,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.w #0x12:8,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w #0x12(:8|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.w #0x12:8,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w #0x12(:8|),@0x1234:16" \
+ "mov.w #0x12:8,@0x1234:16"
+gdb_test "x" "mov.w #0x12(:8|),@0x12345678:32" \
+ "mov.w #0x12:8,@0x12345678:32"
+gdb_test "x" "mov.w #0x1(:4|),@0x1234:16" \
+ "mov.w #0x1:4,@0x1234:16"
+gdb_test "x" "mov.w #0x1(:4|),@0x12345678:32" \
+ "mov.w #0x1:4,@0x12345678:32"
+gdb_test "x" "mov.w r2,r1" \
+ "mov.w r2,r1"
+gdb_test "x" "mov.w r2,@er1" \
+ "mov.w r2,@er1"
+gdb_test "x" "mov.w r2,@\\(0x2:2,er1\\)" \
+ "mov.w r2,@(0x2:2,er1)"
+gdb_test "x" "mov.w r2,@er1\\+" \
+ "mov.w r2,@er1+"
+gdb_test "x" "mov.w r2,@-er1" \
+ "mov.w r2,@-er1"
+gdb_test "x" "mov.w r2,@\\+er1" \
+ "mov.w r2,@+er1"
+gdb_test "x" "mov.w r2,@er1-" \
+ "mov.w r2,@er1-"
+gdb_test "x" "mov.w r2,@\\(0x1234:16,er1\\)" \
+ "mov.w r2,@(0x1234:16,er1)"
+gdb_test "x" "mov.w r2,@\\(0x12345678:32,er1\\)" \
+ "mov.w r2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w r2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w r2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w r2,@\\(0x1234:16,r3.w\\)" \
+ "mov.w r2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w r2,@\\(0x1234:16,er3.l\\)" \
+ "mov.w r2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w r2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w r2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w r2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w r2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w r2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w r2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w r2,@0x1234:16" \
+ "mov.w r2,@0x1234:16"
+gdb_test "x" "mov.w r2,@0x12345678:32" \
+ "mov.w r2,@0x12345678:32"
+gdb_test "x" "mov.w @er2,r1" \
+ "mov.w @er2,r1"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),r1" \
+ "mov.w @(0x2:2,er2),r1"
+gdb_test "x" "mov.w @er2\\+,r1" \
+ "mov.w @er2+,r1"
+gdb_test "x" "mov.w @-er2,r1" \
+ "mov.w @-er2,r1"
+gdb_test "x" "mov.w @\\+er2,r1" \
+ "mov.w @+er2,r1"
+gdb_test "x" "mov.w @er2-,r1" \
+ "mov.w @er2-,r1"
+gdb_test "x" "mov.w @\\(0x1234:16,er1\\),r1" \
+ "mov.w @(0x1234:16,er1),r1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er1\\),r1" \
+ "mov.w @(0x12345678:32,er1),r1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),r1" \
+ "mov.w @(0x1234:16,r3l.b),r1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),r1" \
+ "mov.w @(0x1234:16,r3.w),r1"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),r1" \
+ "mov.w @(0x1234:16,er3.l),r1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),r1" \
+ "mov.w @(0x12345678:32,r3l.b),r1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),r1" \
+ "mov.w @(0x12345678:32,r3.w),r1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),r1" \
+ "mov.w @(0x12345678:32,er3.l),r1"
+gdb_test "x" "mov.w @0x1234:16,r1" \
+ "mov.w @0x1234:16,r1"
+gdb_test "x" "mov.w @0x12345678:32,r1" \
+ "mov.w @0x12345678:32,r1"
+gdb_test "x" "mov.w @er2,@er1" \
+ "mov.w @er2,@er1"
+gdb_test "x" "mov.w @er2,@\\(0x2:2,er1\\)" \
+ "mov.w @er2,@(0x2:2,er1)"
+gdb_test "x" "mov.w @er2,@er1\\+" \
+ "mov.w @er2,@er1+"
+gdb_test "x" "mov.w @er2,@-er1" \
+ "mov.w @er2,@-er1"
+gdb_test "x" "mov.w @er2,@\\+er1" \
+ "mov.w @er2,@+er1"
+gdb_test "x" "mov.w @er2,@er1-" \
+ "mov.w @er2,@er1-"
+gdb_test "x" "mov.w @er2,@\\(0x1234:16,er1\\)" \
+ "mov.w @er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.w @er2,@\\(0x12345678:32,er1\\)" \
+ "mov.w @er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.w @er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.w @er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @er2,@0x1234:16" \
+ "mov.w @er2,@0x1234:16"
+gdb_test "x" "mov.w @er2,@0x12345678:32" \
+ "mov.w @er2,@0x12345678:32"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@er1" \
+ "mov.w @(0x2:2,er2),@er1"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x2:2,er2),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@er1\\+" \
+ "mov.w @(0x2:2,er2),@er1+"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@-er1" \
+ "mov.w @(0x2:2,er2),@-er1"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\+er1" \
+ "mov.w @(0x2:2,er2),@+er1"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@er1-" \
+ "mov.w @(0x2:2,er2),@er1-"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x1234:16,er1\\)" \
+ "mov.w @(0x2:2,er2),@(0x1234:16,er1)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x12345678:32,er1\\)" \
+ "mov.w @(0x2:2,er2),@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @(0x2:2,er2),@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x1234:16,r3.w\\)" \
+ "mov.w @(0x2:2,er2),@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x1234:16,er3.l\\)" \
+ "mov.w @(0x2:2,er2),@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @(0x2:2,er2),@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @(0x2:2,er2),@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @(0x2:2,er2),@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@0x1234:16" \
+ "mov.w @(0x2:2,er2),@0x1234:16"
+gdb_test "x" "mov.w @\\(0x2:2,er2\\),@0x12345678:32" \
+ "mov.w @(0x2:2,er2),@0x12345678:32"
+gdb_test "x" "mov.w @-er2,@er1" \
+ "mov.w @-er2,@er1"
+gdb_test "x" "mov.w @-er2,@\\(0x2:2,er1\\)" \
+ "mov.w @-er2,@(0x2:2,er1)"
+gdb_test "x" "mov.w @-er2,@er1\\+" \
+ "mov.w @-er2,@er1+"
+gdb_test "x" "mov.w @-er2,@-er1" \
+ "mov.w @-er2,@-er1"
+gdb_test "x" "mov.w @-er2,@\\+er1" \
+ "mov.w @-er2,@+er1"
+gdb_test "x" "mov.w @-er2,@er1-" \
+ "mov.w @-er2,@er1-"
+gdb_test "x" "mov.w @-er2,@\\(0x1234:16,er1\\)" \
+ "mov.w @-er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.w @-er2,@\\(0x12345678:32,er1\\)" \
+ "mov.w @-er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @-er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @-er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @-er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.w @-er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @-er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.w @-er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @-er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @-er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @-er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @-er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @-er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @-er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @-er2,@0x1234:16" \
+ "mov.w @-er2,@0x1234:16"
+gdb_test "x" "mov.w @-er2,@0x12345678:32" \
+ "mov.w @-er2,@0x12345678:32"
+gdb_test "x" "mov.w @er2\\+,@er1" \
+ "mov.w @er2+,@er1"
+gdb_test "x" "mov.w @er2\\+,@\\(0x2:2,er1\\)" \
+ "mov.w @er2+,@(0x2:2,er1)"
+gdb_test "x" "mov.w @er2\\+,@er1\\+" \
+ "mov.w @er2+,@er1+"
+gdb_test "x" "mov.w @er2\\+,@-er1" \
+ "mov.w @er2+,@-er1"
+gdb_test "x" "mov.w @er2\\+,@\\+er1" \
+ "mov.w @er2+,@+er1"
+gdb_test "x" "mov.w @er2\\+,@er1-" \
+ "mov.w @er2+,@er1-"
+gdb_test "x" "mov.w @er2\\+,@\\(0x1234:16,er1\\)" \
+ "mov.w @er2+,@(0x1234:16,er1)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x12345678:32,er1\\)" \
+ "mov.w @er2+,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @er2+,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x1234:16,r3.w\\)" \
+ "mov.w @er2+,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x1234:16,er3.l\\)" \
+ "mov.w @er2+,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @er2+,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @er2+,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @er2\\+,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @er2+,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @er2\\+,@0x1234:16" \
+ "mov.w @er2+,@0x1234:16"
+gdb_test "x" "mov.w @er2\\+,@0x12345678:32" \
+ "mov.w @er2+,@0x12345678:32"
+gdb_test "x" "mov.w @er2-,@er1" \
+ "mov.w @er2-,@er1"
+gdb_test "x" "mov.w @er2-,@\\(0x2:2,er1\\)" \
+ "mov.w @er2-,@(0x2:2,er1)"
+gdb_test "x" "mov.w @er2-,@er1\\+" \
+ "mov.w @er2-,@er1+"
+gdb_test "x" "mov.w @er2-,@-er1" \
+ "mov.w @er2-,@-er1"
+gdb_test "x" "mov.w @er2-,@\\+er1" \
+ "mov.w @er2-,@+er1"
+gdb_test "x" "mov.w @er2-,@er1-" \
+ "mov.w @er2-,@er1-"
+gdb_test "x" "mov.w @er2-,@\\(0x1234:16,er1\\)" \
+ "mov.w @er2-,@(0x1234:16,er1)"
+gdb_test "x" "mov.w @er2-,@\\(0x12345678:32,er1\\)" \
+ "mov.w @er2-,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @er2-,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @er2-,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @er2-,@\\(0x1234:16,r3.w\\)" \
+ "mov.w @er2-,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @er2-,@\\(0x1234:16,er3.l\\)" \
+ "mov.w @er2-,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @er2-,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @er2-,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @er2-,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @er2-,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @er2-,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @er2-,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @er2-,@0x1234:16" \
+ "mov.w @er2-,@0x1234:16"
+gdb_test "x" "mov.w @er2-,@0x12345678:32" \
+ "mov.w @er2-,@0x12345678:32"
+gdb_test "x" "mov.w @\\+er2,@er1" \
+ "mov.w @+er2,@er1"
+gdb_test "x" "mov.w @\\+er2,@\\(0x2:2,er1\\)" \
+ "mov.w @+er2,@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\+er2,@er1\\+" \
+ "mov.w @+er2,@er1+"
+gdb_test "x" "mov.w @\\+er2,@-er1" \
+ "mov.w @+er2,@-er1"
+gdb_test "x" "mov.w @\\+er2,@\\+er1" \
+ "mov.w @+er2,@+er1"
+gdb_test "x" "mov.w @\\+er2,@er1-" \
+ "mov.w @+er2,@er1-"
+gdb_test "x" "mov.w @\\+er2,@\\(0x1234:16,er1\\)" \
+ "mov.w @+er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x12345678:32,er1\\)" \
+ "mov.w @+er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.w @+er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.w @+er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.w @+er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.w @+er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.w @+er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.w @\\+er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.w @+er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.w @\\+er2,@0x1234:16" \
+ "mov.w @+er2,@0x1234:16"
+gdb_test "x" "mov.w @\\+er2,@0x12345678:32" \
+ "mov.w @+er2,@0x12345678:32"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@er1" \
+ "mov.w @(0x1234:16,er2),@er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x1234:16,er2),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@er1\\+" \
+ "mov.w @(0x1234:16,er2),@er1+"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@-er1" \
+ "mov.w @(0x1234:16,er2),@-er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\+er1" \
+ "mov.w @(0x1234:16,er2),@+er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@er1-" \
+ "mov.w @(0x1234:16,er2),@er1-"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@0x9abc(:16|)" \
+ "mov.w @(0x1234:16,er2),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x1234:16,er2\\),@0x9abcdef0:32" \
+ "mov.w @(0x1234:16,er2),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@er1" \
+ "mov.w @(0x12345678:32,er2),@er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@er1\\+" \
+ "mov.w @(0x12345678:32,er2),@er1+"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@-er1" \
+ "mov.w @(0x12345678:32,er2),@-er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\+er1" \
+ "mov.w @(0x12345678:32,er2),@+er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@er1-" \
+ "mov.w @(0x12345678:32,er2),@er1-"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@0x9abc(:16|)" \
+ "mov.w @(0x12345678:32,er2),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x12345678:32,er2\\),@0x9abcdef0:32" \
+ "mov.w @(0x12345678:32,er2),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@er1" \
+ "mov.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@er1\\+" \
+ "mov.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@-er1" \
+ "mov.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\+er1" \
+ "mov.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@er1-" \
+ "mov.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@0x9abc(:16|)" \
+ "mov.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x1234:16,r3l.b\\),@0x9abcdef0:32" \
+ "mov.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@er1" \
+ "mov.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@er1\\+" \
+ "mov.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@-er1" \
+ "mov.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\+er1" \
+ "mov.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@er1-" \
+ "mov.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@0x9abc(:16|)" \
+ "mov.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x1234:16,r3.w\\),@0x9abcdef0:32" \
+ "mov.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@er1" \
+ "mov.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@er1\\+" \
+ "mov.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@-er1" \
+ "mov.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\+er1" \
+ "mov.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@er1-" \
+ "mov.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@0x9abc(:16|)" \
+ "mov.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x1234:16,er3.l\\),@0x9abcdef0:32" \
+ "mov.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@er1" \
+ "mov.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@er1\\+" \
+ "mov.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@-er1" \
+ "mov.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\+er1" \
+ "mov.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@er1-" \
+ "mov.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w\t@\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w\t@\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@0x9abc(:16|)" \
+ "mov.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3l.b\\),@0x9abcdef0:32" \
+ "mov.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@er1" \
+ "mov.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@er1\\+" \
+ "mov.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@-er1" \
+ "mov.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\+er1" \
+ "mov.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@er1-" \
+ "mov.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@0x9abc(:16|)" \
+ "mov.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x12345678:32,r3.w\\),@0x9abcdef0:32" \
+ "mov.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@er1" \
+ "mov.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x2:2,er1\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x2:2,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@er1\\+" \
+ "mov.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@-er1" \
+ "mov.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\+er1" \
+ "mov.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@er1-" \
+ "mov.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@0x9abc(:16|)" \
+ "mov.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "mov.w @\\(0x12345678:32,er3.l\\),@0x9abcdef0:32" \
+ "mov.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.w @0x1234:16,@er1" \
+ "mov.w @0x1234:16,@er1"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x2:2,er1\\)" \
+ "mov.w @0x1234:16,@(0x2:2,er1)"
+gdb_test "x" "mov.w @0x1234:16,@er1\\+" \
+ "mov.w @0x1234:16,@er1+"
+gdb_test "x" "mov.w @0x1234:16,@-er1" \
+ "mov.w @0x1234:16,@-er1"
+gdb_test "x" "mov.w @0x1234:16,@\\+er1" \
+ "mov.w @0x1234:16,@+er1"
+gdb_test "x" "mov.w @0x1234:16,@er1-" \
+ "mov.w @0x1234:16,@er1-"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @0x1234:16,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @0x1234:16,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @0x1234:16,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @0x1234:16,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @0x1234:16,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @0x1234:16,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @0x1234:16,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @0x1234:16,@0x9abc(:16|)" \
+ "mov.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "mov.w @0x1234:16,@0x9abcdef0:32" \
+ "mov.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "mov.w @0x12345678:32,@er1" \
+ "mov.w @0x12345678:32,@er1"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x2:2,er1\\)" \
+ "mov.w @0x12345678:32,@(0x2:2,er1)"
+gdb_test "x" "mov.w @0x12345678:32,@er1\\+" \
+ "mov.w @0x12345678:32,@er1+"
+gdb_test "x" "mov.w @0x12345678:32,@-er1" \
+ "mov.w @0x12345678:32,@-er1"
+gdb_test "x" "mov.w @0x12345678:32,@\\+er1" \
+ "mov.w @0x12345678:32,@+er1"
+gdb_test "x" "mov.w @0x12345678:32,@er1-" \
+ "mov.w @0x12345678:32,@er1-"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abc(:16|),er1\\)" \
+ "mov.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.w @0x12345678:32,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.w @0x12345678:32,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.w @0x12345678:32,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.w @0x12345678:32,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.w @0x12345678:32,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.w @0x12345678:32,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.w @0x12345678:32,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.w @0x12345678:32,@0x9abc(:16|)" \
+ "mov.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "mov.w @0x12345678:32,@0x9abcdef0:32" \
+ "mov.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "mov.l #0x12345678(:32|),er1" \
+ "mov.l #0x12345678:32,er1"
+gdb_test "x" "mov.l #0x1234(:16|),er1" \
+ "mov.l #0x1234:16,er1"
+gdb_test "x" "mov.l #0x1(:3|),er3" \
+ "mov.l #0x1:3,er3"
+gdb_test "x" "mov.l #0x12345678(:32|),@er1" \
+ "mov.l #0x12345678:32,@er1"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x4:2,er1\\)" \
+ "mov.l #0x12345678:32,@(0x4:2,er1)"
+gdb_test "x" "mov.l #0x12345678(:32|),@-er1" \
+ "mov.l #0x12345678:32,@-er1"
+gdb_test "x" "mov.l #0x12345678(:32|),@er1\\+" \
+ "mov.l #0x12345678:32,@er1+"
+gdb_test "x" "mov.l #0x12345678(:32|),@er1-" \
+ "mov.l #0x12345678:32,@er1-"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\+er1" \
+ "mov.l #0x12345678:32,@+er1"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x1234:16,er1\\)" \
+ "mov.l #0x12345678:32,@(0x1234:16,er1)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x12345678:32,er1\\)" \
+ "mov.l #0x12345678:32,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.l #0x12345678:32,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x1234:16,r3.w\\)" \
+ "mov.l #0x12345678:32,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x1234:16,er3.l\\)" \
+ "mov.l #0x12345678:32,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l #0x12345678:32,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.l #0x12345678:32,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l #0x12345678(:32|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.l #0x12345678:32,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l #0x12345678(:32|),@0x1234:16" \
+ "mov.l #0x12345678:32,@0x1234:16"
+gdb_test "x" "mov.l #0x12345678(:32|),@0x12345678:32" \
+ "mov.l #0x12345678:32,@0x12345678:32"
+gdb_test "x" "mov.l #0x1234(:16|),@er1" \
+ "mov.l #0x1234:16,@er1"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x4:2,er1\\)" \
+ "mov.l #0x1234:16,@\\(0x4:2,er1)"
+gdb_test "x" "mov.l #0x1234(:16|),@-er1" \
+ "mov.l #0x1234:16,@-er1"
+gdb_test "x" "mov.l #0x1234(:16|),@er1\\+" \
+ "mov.l #0x1234:16,@er1+"
+gdb_test "x" "mov.l #0x1234(:16|),@er1-" \
+ "mov.l #0x1234:16,@er1-"
+gdb_test "x" "mov.l #0x1234(:16|),@\\+er1" \
+ "mov.l #0x1234:16,@+er1"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x1234:16,er1\\)" \
+ "mov.l #0x1234:16,@(0x1234:16,er1)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x12345678:32,er1\\)" \
+ "mov.l #0x1234:16,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.l #0x1234:16,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x1234:16,r3.w\\)" \
+ "mov.l #0x1234:16,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x1234:16,er3.l\\)" \
+ "mov.l #0x1234:16,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l #0x1234:16,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.l #0x1234:16,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l #0x1234(:16|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.l #0x1234:16,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l #0x1234(:16|),@0x1234:16" \
+ "mov.l #0x1234:16,@0x1234:16"
+gdb_test "x" "mov.l #0x1234(:16|),@0x12345678:32" \
+ "mov.l #0x1234:16,@0x12345678:32"
+gdb_test "x" "mov.l #0x12(:8|),@er1" \
+ "mov.l #0x12:8,@er1"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x4:2,er1\\)" \
+ "mov.l #0x12:8,@(0x4:2,er1)"
+gdb_test "x" "mov.l #0x12(:8|),@-er1" \
+ "mov.l #0x12:8,@-er1"
+gdb_test "x" "mov.l #0x12(:8|),@er1\\+" \
+ "mov.l #0x12:8,@er1+"
+gdb_test "x" "mov.l #0x12(:8|),@er1-" \
+ "mov.l #0x12:8,@er1-"
+gdb_test "x" "mov.l #0x12(:8|),@\\+er1" \
+ "mov.l #0x12:8,@+er1"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x1234:16,er1\\)" \
+ "mov.l #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x12345678:32,er1\\)" \
+ "mov.l #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x1234:16,r3l.b\\)" \
+ "mov.l #0x12:8,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x1234:16,r3.w\\)" \
+ "mov.l #0x12:8,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x1234:16,er3.l\\)" \
+ "mov.l #0x12:8,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l #0x12:8,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x12345678:32,r3.w\\)" \
+ "mov.l #0x12:8,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l #0x12(:8|),@\\(0x12345678:32,er3.l\\)" \
+ "mov.l #0x12:8,@\\(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l #0x12(:8|),@0x1234:16" \
+ "mov.l #0x12:8,@0x1234:16"
+gdb_test "x" "mov.l #0x12(:8|),@0x12345678:32" \
+ "mov.l #0x12:8,@0x12345678:32"
+gdb_test "x" "mov.l er2,er1" \
+ "mov.l er2,er1"
+gdb_test "x" "mov.l er2,@er1" \
+ "mov.l er2,@er1"
+gdb_test "x" "mov.l er2,@\\(0x4:2,er1\\)" \
+ "mov.l er2,@(0x4:2,er1)"
+gdb_test "x" "mov.l er2,@-er1" \
+ "mov.l er2,@-er1"
+gdb_test "x" "mov.l er2,@er1\\+" \
+ "mov.l er2,@er1+"
+gdb_test "x" "mov.l er2,@er1-" \
+ "mov.l er2,@er1-"
+gdb_test "x" "mov.l er2,@\\+er1" \
+ "mov.l er2,@+er1"
+gdb_test "x" "mov.l er2,@\\(0x1234:16,er1\\)" \
+ "mov.l er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.l er2,@\\(0x12345678:32,er1\\)" \
+ "mov.l er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.l er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.l er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l er2,@0x1234:16" \
+ "mov.l er2,@0x1234:16"
+gdb_test "x" "mov.l er2,@0x12345678:32" \
+ "mov.l er2,@0x12345678:32"
+gdb_test "x" "mov.l @er2,er1" \
+ "mov.l @er2,er1"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),er1" \
+ "mov.l @(0x4:2,er2),er1"
+gdb_test "x" "mov.l @er2\\+,er1" \
+ "mov.l @er2+,er1"
+gdb_test "x" "mov.l @-er2,er1" \
+ "mov.l @-er2,er1"
+gdb_test "x" "mov.l @\\+er2,er1" \
+ "mov.l @+er2,er1"
+gdb_test "x" "mov.l @er2-,er1" \
+ "mov.l @er2-,er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er1\\),er1" \
+ "mov.l @(0x1234:16,er1),er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er1\\),er1" \
+ "mov.l @(0x12345678:32,er1),er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),er1" \
+ "mov.l @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),er1" \
+ "mov.l @(0x1234:16,r3.w),er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),er1" \
+ "mov.l @(0x1234:16,er3.l),er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),er1" \
+ "mov.l @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),er1" \
+ "mov.l @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),er1" \
+ "mov.l @(0x12345678:32,er3.l),er1"
+gdb_test "x" "mov.l @0x1234:16,er1" \
+ "mov.l @0x1234:16,er1"
+gdb_test "x" "mov.l @0x12345678:32,er1" \
+ "mov.l @0x12345678:32,er1"
+gdb_test "x" "mov.l @er2,@er1" \
+ "mov.l @er2,@er1"
+gdb_test "x" "mov.l @er2,@\\(0x4:2,er1\\)" \
+ "mov.l @er2,@(0x4:2,er1)"
+gdb_test "x" "mov.l @er2,@er1\\+" \
+ "mov.l @er2,@er1+"
+gdb_test "x" "mov.l @er2,@-er1" \
+ "mov.l @er2,@-er1"
+gdb_test "x" "mov.l @er2,@\\+er1" \
+ "mov.l @er2,@+er1"
+gdb_test "x" "mov.l @er2,@er1-" \
+ "mov.l @er2,@er1-"
+gdb_test "x" "mov.l @er2,@\\(0x1234:16,er1\\)" \
+ "mov.l @er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.l @er2,@\\(0x12345678:32,er1\\)" \
+ "mov.l @er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.l @er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.l @er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @er2,@0x1234:16" \
+ "mov.l @er2,@0x1234:16"
+gdb_test "x" "mov.l @er2,@0x12345678:32" \
+ "mov.l @er2,@0x12345678:32"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@er1" \
+ "mov.l @(0x4:2,er2),@er1"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x4:2,er2),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@er1\\+" \
+ "mov.l @(0x4:2,er2),@er1+"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@-er1" \
+ "mov.l @(0x4:2,er2),@-er1"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\+er1" \
+ "mov.l @(0x4:2,er2),@+er1"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@er1-" \
+ "mov.l @(0x4:2,er2),@er1-"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x1234:16,er1\\)" \
+ "mov.l @(0x4:2,er2),@(0x1234:16,er1)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x12345678:32,er1\\)" \
+ "mov.l @(0x4:2,er2),@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @(0x4:2,er2),@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x1234:16,r3.w\\)" \
+ "mov.l @(0x4:2,er2),@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x1234:16,er3.l\\)" \
+ "mov.l @(0x4:2,er2),@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @(0x4:2,er2),@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @(0x4:2,er2),@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @(0x4:2,er2),@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@0x1234:16" \
+ "mov.l @(0x4:2,er2),@0x1234:16"
+gdb_test "x" "mov.l @\\(0x4:2,er2\\),@0x12345678:32" \
+ "mov.l @(0x4:2,er2),@0x12345678:32"
+gdb_test "x" "mov.l @-er2,@er1" \
+ "mov.l @-er2,@er1"
+gdb_test "x" "mov.l @-er2,@\\(0x4:2,er1\\)" \
+ "mov.l @-er2,@(0x4:2,er1)"
+gdb_test "x" "mov.l @-er2,@er1\\+" \
+ "mov.l @-er2,@er1+"
+gdb_test "x" "mov.l @-er2,@-er1" \
+ "mov.l @-er2,@-er1"
+gdb_test "x" "mov.l @-er2,@\\+er1" \
+ "mov.l @-er2,@+er1"
+gdb_test "x" "mov.l @-er2,@er1-" \
+ "mov.l @-er2,@er1-"
+gdb_test "x" "mov.l @-er2,@\\(0x1234:16,er1\\)" \
+ "mov.l @-er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.l @-er2,@\\(0x12345678:32,er1\\)" \
+ "mov.l @-er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @-er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @-er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @-er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.l @-er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @-er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.l @-er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @-er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @-er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @-er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @-er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @-er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @-er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @-er2,@0x1234:16" \
+ "mov.l @-er2,@0x1234:16"
+gdb_test "x" "mov.l @-er2,@0x12345678:32" \
+ "mov.l @-er2,@0x12345678:32"
+gdb_test "x" "mov.l @er2\\+,@er1" \
+ "mov.l @er2+,@er1"
+gdb_test "x" "mov.l @er2\\+,@\\(0x4:2,er1\\)" \
+ "mov.l @er2+,@(0x4:2,er1)"
+gdb_test "x" "mov.l @er2\\+,@er1\\+" \
+ "mov.l @er2+,@er1+"
+gdb_test "x" "mov.l @er2\\+,@-er1" \
+ "mov.l @er2+,@-er1"
+gdb_test "x" "mov.l @er2\\+,@\\+er1" \
+ "mov.l @er2+,@+er1"
+gdb_test "x" "mov.l @er2\\+,@er1-" \
+ "mov.l @er2+,@er1-"
+gdb_test "x" "mov.l @er2\\+,@\\(0x1234:16,er1\\)" \
+ "mov.l @er2+,@(0x1234:16,er1)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x12345678:32,er1\\)" \
+ "mov.l @er2+,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @er2+,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x1234:16,r3.w\\)" \
+ "mov.l @er2+,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x1234:16,er3.l\\)" \
+ "mov.l @er2+,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @er2+,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @er2+,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @er2\\+,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @er2+,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @er2\\+,@0x1234:16" \
+ "mov.l @er2+,@0x1234:16"
+gdb_test "x" "mov.l @er2\\+,@0x12345678:32" \
+ "mov.l @er2+,@0x12345678:32"
+gdb_test "x" "mov.l @er2-,@er1" \
+ "mov.l @er2-,@er1"
+gdb_test "x" "mov.l @er2-,@\\(0x4:2,er1\\)" \
+ "mov.l @er2-,@(0x4:2,er1)"
+gdb_test "x" "mov.l @er2-,@er1\\+" \
+ "mov.l @er2-,@er1+"
+gdb_test "x" "mov.l @er2-,@-er1" \
+ "mov.l @er2-,@-er1"
+gdb_test "x" "mov.l @er2-,@\\+er1" \
+ "mov.l @er2-,@+er1"
+gdb_test "x" "mov.l @er2-,@er1-" \
+ "mov.l @er2-,@er1-"
+gdb_test "x" "mov.l @er2-,@\\(0x1234:16,er1\\)" \
+ "mov.l @er2-,@(0x1234:16,er1)"
+gdb_test "x" "mov.l @er2-,@\\(0x12345678:32,er1\\)" \
+ "mov.l @er2-,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @er2-,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @er2-,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @er2-,@\\(0x1234:16,r3.w\\)" \
+ "mov.l @er2-,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @er2-,@\\(0x1234:16,er3.l\\)" \
+ "mov.l @er2-,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @er2-,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @er2-,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @er2-,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @er2-,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @er2-,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @er2-,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @er2-,@0x1234:16" \
+ "mov.l @er2-,@0x1234:16"
+gdb_test "x" "mov.l @er2-,@0x12345678:32" \
+ "mov.l @er2-,@0x12345678:32"
+gdb_test "x" "mov.l @\\+er2,@er1" \
+ "mov.l @+er2,@er1"
+gdb_test "x" "mov.l @\\+er2,@\\(0x4:2,er1\\)" \
+ "mov.l @+er2,@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\+er2,@er1\\+" \
+ "mov.l @+er2,@er1+"
+gdb_test "x" "mov.l @\\+er2,@-er1" \
+ "mov.l @+er2,@-er1"
+gdb_test "x" "mov.l @\\+er2,@\\+er1" \
+ "mov.l @+er2,@+er1"
+gdb_test "x" "mov.l @\\+er2,@er1-" \
+ "mov.l @+er2,@er1-"
+gdb_test "x" "mov.l @\\+er2,@\\(0x1234:16,er1\\)" \
+ "mov.l @+er2,@(0x1234:16,er1)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x12345678:32,er1\\)" \
+ "mov.l @+er2,@(0x12345678:32,er1)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x1234:16,r3l.b\\)" \
+ "mov.l @+er2,@(0x1234:16,r3l.b)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x1234:16,r3.w\\)" \
+ "mov.l @+er2,@(0x1234:16,r3.w)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x1234:16,er3.l\\)" \
+ "mov.l @+er2,@(0x1234:16,er3.l)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x12345678:32,r3l.b\\)" \
+ "mov.l @+er2,@(0x12345678:32,r3l.b)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x12345678:32,r3.w\\)" \
+ "mov.l @+er2,@(0x12345678:32,r3.w)"
+gdb_test "x" "mov.l @\\+er2,@\\(0x12345678:32,er3.l\\)" \
+ "mov.l @+er2,@(0x12345678:32,er3.l)"
+gdb_test "x" "mov.l @\\+er2,@0x1234:16" \
+ "mov.l @+er2,@0x1234:16"
+gdb_test "x" "mov.l @\\+er2,@0x12345678:32" \
+ "mov.l @+er2,@0x12345678:32"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@er1" \
+ "mov.l @(0x1234:16,er2),@er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x1234:16,er2),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@er1\\+" \
+ "mov.l @(0x1234:16,er2),@er1+"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@-er1" \
+ "mov.l @(0x1234:16,er2),@-er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\+er1" \
+ "mov.l @(0x1234:16,er2),@+er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@er1-" \
+ "mov.l @(0x1234:16,er2),@er1-"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@0x9abc(:16|)" \
+ "mov.l @(0x1234:16,er2),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x1234:16,er2\\),@0x9abcdef0:32" \
+ "mov.l @(0x1234:16,er2),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@er1" \
+ "mov.l @(0x12345678:32,er2),@er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@er1\\+" \
+ "mov.l @(0x12345678:32,er2),@er1+"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@-er1" \
+ "mov.l @(0x12345678:32,er2),@-er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\+er1" \
+ "mov.l @(0x12345678:32,er2),@+er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@er1-" \
+ "mov.l @(0x12345678:32,er2),@er1-"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@0x9abc(:16|)" \
+ "mov.l @(0x12345678:32,er2),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x12345678:32,er2\\),@0x9abcdef0:32" \
+ "mov.l @(0x12345678:32,er2),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@er1" \
+ "mov.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@er1\\+" \
+ "mov.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@-er1" \
+ "mov.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\+er1" \
+ "mov.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@er1-" \
+ "mov.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@0x9abc(:16|)" \
+ "mov.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x1234:16,r3l.b\\),@0x9abcdef0:32" \
+ "mov.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@er1" \
+ "mov.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@er1\\+" \
+ "mov.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@-er1" \
+ "mov.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\+er1" \
+ "mov.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@er1-" \
+ "mov.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@0x9abc(:16|)" \
+ "mov.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x1234:16,r3.w\\),@0x9abcdef0:32" \
+ "mov.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@er1" \
+ "mov.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@er1\\+" \
+ "mov.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@-er1" \
+ "mov.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\+er1" \
+ "mov.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@er1-" \
+ "mov.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abc16,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abc16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@0x9abc(:16|)" \
+ "mov.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x1234:16,er3.l\\),@0x9abcdef0:32" \
+ "mov.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@er1" \
+ "mov.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@er1\\+" \
+ "mov.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@-er1" \
+ "mov.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\+er1" \
+ "mov.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@er1-" \
+ "mov.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@0x9abc(:16|)" \
+ "mov.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3l.b\\),@0x9abcdef0:32" \
+ "mov.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@er1" \
+ "mov.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@er1\\+" \
+ "mov.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@-er1" \
+ "mov.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\+er1" \
+ "mov.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@er1-" \
+ "mov.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@0x9abc(:16|)" \
+ "mov.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x12345678:32,r3.w\\),@0x9abcdef0:32" \
+ "mov.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@er1" \
+ "mov.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x4:2,er1\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x4:2,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@er1\\+" \
+ "mov.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@-er1" \
+ "mov.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\+er1" \
+ "mov.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@er1-" \
+ "mov.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l\t@\\(0x12345678:32,er3.l\\),@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@0x9abc(:16|)" \
+ "mov.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "mov.l @\\(0x12345678:32,er3.l\\),@0x9abcdef0:32" \
+ "mov.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "mov.l @0x1234:16,@er1" \
+ "mov.l @0x1234:16,@er1"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x4:2,er1\\)" \
+ "mov.l @0x1234:16,@(0x4:2,er1)"
+gdb_test "x" "mov.l @0x1234:16,@er1\\+" \
+ "mov.l @0x1234:16,@er1+"
+gdb_test "x" "mov.l @0x1234:16,@-er1" \
+ "mov.l @0x1234:16,@-er1"
+gdb_test "x" "mov.l @0x1234:16,@\\+er1" \
+ "mov.l @0x1234:16,@+er1"
+gdb_test "x" "mov.l @0x1234:16,@er1-" \
+ "mov.l @0x1234:16,@er1-"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @0x1234:16,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @0x1234:16,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @0x1234:16,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @0x1234:16,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @0x1234:16,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @0x1234:16,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @0x1234:16,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @0x1234:16,@0x9abc(:16|)" \
+ "mov.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "mov.l @0x1234:16,@0x9abcdef0:32" \
+ "mov.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "mov.l @0x12345678:32,@er1" \
+ "mov.l @0x12345678:32,@er1"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x4:2,er1\\)" \
+ "mov.l @0x12345678:32,@(0x4:2,er1)"
+gdb_test "x" "mov.l @0x12345678:32,@er1\\+" \
+ "mov.l @0x12345678:32,@er1+"
+gdb_test "x" "mov.l @0x12345678:32,@-er1" \
+ "mov.l @0x12345678:32,@-er1"
+gdb_test "x" "mov.l @0x12345678:32,@\\+er1" \
+ "mov.l @0x12345678:32,@+er1"
+gdb_test "x" "mov.l @0x12345678:32,@er1-" \
+ "mov.l @0x12345678:32,@er1-"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abc(:16|),er1\\)" \
+ "mov.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abcdef0:32,er1\\)" \
+ "mov.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abc(:16|),r3l.b\\)" \
+ "mov.l @0x12345678:32,@(0x9abc:16,r3l.b)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abc(:16|),r3.w\\)" \
+ "mov.l @0x12345678:32,@(0x9abc:16,r3.w)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abc(:16|),er3.l\\)" \
+ "mov.l @0x12345678:32,@(0x9abc:16,er3.l)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abcdef0:32,r3l.b\\)" \
+ "mov.l @0x12345678:32,@(0x9abcdef0:32,r3l.b)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abcdef0:32,r3.w\\)" \
+ "mov.l @0x12345678:32,@(0x9abcdef0:32,r3.w)"
+gdb_test "x" "mov.l @0x12345678:32,@\\(0x9abcdef0:32,er3.l\\)" \
+ "mov.l @0x12345678:32,@(0x9abcdef0:32,er3.l)"
+gdb_test "x" "mov.l @0x12345678:32,@0x9abc(:16|)" \
+ "mov.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "mov.l @0x12345678:32,@0x9abcdef0:32" \
+ "mov.l @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "movtpe(.b|) r2h,@0x1234:16" \
+ "movtpe.b r2h,@0x1234:16"
+gdb_test "x" "movfpe(.b|) @0x1234:16,r1h" \
+ "movfpe.b @0x1234:16,r1h"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er0-er1(\\)|)" \
+ "ldm.l @sp+,er0-er1"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er1-er2(\\)|)" \
+ "ldm.l @sp+,er1-er2"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er2-er3(\\)|)" \
+ "ldm.l @sp+,er2-er3"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er3-er4(\\)|)" \
+ "ldm.l @sp+,er3-er4"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er4-er5(\\)|)" \
+ "ldm.l @sp+,er4-er5"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er5-er6(\\)|)" \
+ "ldm.l @sp+,er5-er6"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er6-er7(\\)|)" \
+ "ldm.l @sp+,er6-er7"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er0-er2(\\)|)" \
+ "ldm.l @sp+,er0-er2"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er1-er3(\\)|)" \
+ "ldm.l @sp+,er1-er3"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er2-er4(\\)|)" \
+ "ldm.l @sp+,er2-er4"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er3-er5(\\)|)" \
+ "ldm.l @sp+,er3-er5"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er4-er6(\\)|)" \
+ "ldm.l @sp+,er4-er6"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er5-er7(\\)|)" \
+ "ldm.l @sp+,er5-er7"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er0-er3(\\)|)" \
+ "ldm.l @sp+,er0-er3"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er1-er4(\\)|)" \
+ "ldm.l @sp+,er1-er4"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er2-er5(\\)|)" \
+ "ldm.l @sp+,er2-er5"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er3-er6(\\)|)" \
+ "ldm.l @sp+,er3-er6"
+gdb_test "x" "ldm(.l|) @sp\\+,(\\(|)er4-er7(\\)|)" \
+ "ldm.l @sp+,er4-er7"
+gdb_test "x" "stm(.l) (\\(|)er0-er1(\\)|),@-sp" \
+ "stm.l er0-er1,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er1-er2(\\)|),@-sp" \
+ "stm.l er1-er2,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er2-er3(\\)|),@-sp" \
+ "stm.l er2-er3,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er3-er4(\\)|),@-sp" \
+ "stm.l er3-er4,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er4-er5(\\)|),@-sp" \
+ "stm.l er4-er5,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er5-er6(\\)|),@-sp" \
+ "stm.l er5-er6,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er6-er7(\\)|),@-sp" \
+ "stm.l er6-er7,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er0-er2(\\)|),@-sp" \
+ "stm.l er0-er2,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er1-er3(\\)|),@-sp" \
+ "stm.l er1-er3,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er2-er4(\\)|),@-sp" \
+ "stm.l er2-er4,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er3-er5(\\)|),@-sp" \
+ "stm.l er3-er5,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er4-er6(\\)|),@-sp" \
+ "stm.l er4-er6,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er5-er7(\\)|),@-sp" \
+ "stm.l er5-er7,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er0-er3(\\)|),@-sp" \
+ "stm.l er0-er3,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er1-er4(\\)|),@-sp" \
+ "stm.l er1-er4,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er2-er5(\\)|),@-sp" \
+ "stm.l er2-er5,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er3-er6(\\)|),@-sp" \
+ "stm.l er3-er6,@-sp"
+gdb_test "x" "stm(.l) (\\(|)er4-er7(\\)|),@-sp" \
+ "stm.l er4-er7,@-sp"
+gdb_test "x" "eepmov.b(\t|)" \
+ "eepmov.b"
+gdb_test "x" "eepmov.w(\t|)" \
+ "eepmov.w"
+gdb_test "x" "movmd.b(\t|)" \
+ "movmd.b"
+gdb_test "x" "movmd.w(\t|)" \
+ "movmd.w"
+gdb_test "x" "movmd.l(\t|)" \
+ "movmd.l"
+gdb_test "x" "movsd.b\t\\.\\+4 \\($hex\\)" \
+ "movsd.b .+4"
diff --git a/gdb/testsuite/gdb.disasm/t01_mov.s b/gdb/testsuite/gdb.disasm/t01_mov.s
new file mode 100644
index 0000000..fab7fb9
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t01_mov.s
@@ -0,0 +1,1107 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;mov
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ mov.b #0x12:8,r3h ;f312
+ mov.b #0x12:8,@er3 ;017d0312
+ mov.b #0x12:8,@(0x1:2,er3) ;017d1312
+ mov.b #0x12:8,@-er3 ;017db312
+ mov.b #0x12:8,@er3+ ;017d8312
+ mov.b #0x12:8,@er3- ;017da312
+ mov.b #0x12:8,@+er3 ;017d9312
+ mov.b #0x12:8,@(0x1234:16,er3) ;017dc3121234
+ mov.b #0x12:8,@(0x12345678:32,er3) ;017dcb1212345678
+ mov.b #0x12:8,@(0x1234:16,r3l.b) ;017dd3121234
+ mov.b #0x12:8,@(0x1234:16,r3.w) ;017de3121234
+ mov.b #0x12:8,@(0x1234:16,er3.l) ;017df3121234
+ mov.b #0x12:8,@(0x12345678:32,r3l.b) ;017ddb1212345678
+ mov.b #0x12:8,@(0x12345678:32,r3.w) ;017deb1212345678
+ mov.b #0x12:8,@(0x12345678:32,er3.l) ;017dfb1212345678
+ mov.b #0x12:8,@0x1234:16 ;017d40121234
+ mov.b #0x12:8,@0x12345678:32 ;017d481212345678
+
+ mov.b #0x1:4,@0x1234:16 ;6ad11234
+ mov.b #0x1:4,@0x12345678:32 ;6af112345678
+
+ mov.b r3h,r1h ;0c31
+
+ mov.b r3h,@er1 ;6893
+ mov.b r3h,@(0x1:2,er1) ;01716893
+ mov.b r3h,@-er1 ;6c93
+ mov.b r3h,@er1+ ;01736c93
+ mov.b r3h,@er1- ;01716c93
+ mov.b r3h,@+er1 ;01726c93
+ mov.b r3h,@(0x1234:16,er1) ;6e931234
+ mov.b r3h,@(0x12345678:32,er1) ;78106aa312345678
+ mov.b r3h,@(0x1234:16,r1l.b) ;01716e931234
+ mov.b r3h,@(0x1234:16,r1.w) ;01726e931234
+ mov.b r3h,@(0x1234:16,er1.l) ;01736e931234
+ mov.b r3h,@(0x12345678:32,r1l.b) ;78116aa312345678
+ mov.b r3h,@(0x12345678:32,r1.w) ;78126aa312345678
+ mov.b r3h,@(0x12345678:32,er1.l) ;78136aa312345678
+ mov.b r3h,@0xffffff12:8 ;3312
+ mov.b r3h,@0x1234:16 ;6a831234
+ mov.b r3h,@0x12345678:32 ;6aa312345678
+
+ mov.b @er3,r1h ;6831
+ mov.b @(0x1:2,er3),r1h ;01716831
+ mov.b @er3+,r1h ;6c31
+ mov.b @-er3,r1h ;01736c31
+ mov.b @+er3,r1h ;01716c31
+ mov.b @er3-,r1h ;01726c31
+ mov.b @(0x1234:16,er3),r1h ;6e311234
+ mov.b @(0x12345678:32,er3),r1h ;78306a2112345678
+ mov.b @(0x1234:16,r3l.b),r1h ;01716e311234
+ mov.b @(0x1234:16,r3.w),r1h ;01726e311234
+ mov.b @(0x1234:16,er3.l),r1h ;01736e311234
+ mov.b @(0x12345678:32,r3l.b),r1h ;78316a2112345678
+ mov.b @(0x12345678:32,r3.w),r1h ;78326a2112345678
+ mov.b @(0x12345678:32,er3.l),r1h ;78336a2112345678
+ mov.b @0xffffff12:8,r3h ;2312
+ mov.b @0x1234:16,r3h ;6a031234
+ mov.b @0x12345678:32,r3h ;6a2312345678
+
+ mov.b @er3,@er1 ;01780301
+ mov.b @er3,@(0x1:2,er1) ;01780311
+ mov.b @er3,@er1+ ;01780381
+ mov.b @er3,@-er1 ;017803b1
+ mov.b @er3,@+er1 ;01780391
+ mov.b @er3,@er1- ;017803a1
+ mov.b @er3,@(0x1234:16,er1) ;017803c11234
+ mov.b @er3,@(0x12345678:32,er1) ;017803c912345678
+ mov.b @er3,@(0x1234:16,r1l.b) ;017803d11234
+ mov.b @er3,@(0x1234:16,r1.w) ;017803e11234
+ mov.b @er3,@(0x1234:16,er1.l) ;017803f11234
+ mov.b @er3,@(0x12345678:32,r1l.b) ;017803d912345678
+ mov.b @er3,@(0x12345678:32,r1.w) ;017803e912345678
+ mov.b @er3,@(0x12345678:32,er1.l) ;017803f912345678
+ mov.b @er3,@0x1234:16 ;017803401234
+ mov.b @er3,@0x12345678:32 ;0178034812345678
+
+ mov.b @(0x1:2,er3),@er1 ;01781301
+ mov.b @(0x1:2,er3),@(0x1:2,er1) ;01781311
+ mov.b @(0x1:2,er3),@er1+ ;01781381
+ mov.b @(0x1:2,er3),@-er1 ;017813b1
+ mov.b @(0x1:2,er3),@+er1 ;01781391
+ mov.b @(0x1:2,er3),@er1- ;017813a1
+ mov.b @(0x1:2,er3),@(0x1234:16,er1) ;017813c11234
+ mov.b @(0x1:2,er3),@(0x12345678:32,er1) ;017813c912345678
+ mov.b @(0x1:2,er3),@(0x1234:16,r1l.b) ;017813d11234
+ mov.b @(0x1:2,er3),@(0x1234:16,r1.w) ;017813e11234
+ mov.b @(0x1:2,er3),@(0x1234:16,er1.l) ;017813f11234
+ mov.b @(0x1:2,er3),@(0x12345678:32,r1l.b) ;017813d912345678
+ mov.b @(0x1:2,er3),@(0x12345678:32,r1.w) ;017813e912345678
+ mov.b @(0x1:2,er3),@(0x12345678:32,er1.l) ;017813f912345678
+ mov.b @(0x1:2,er3),@0x1234:16 ;017813401234
+ mov.b @(0x1:2,er3),@0x12345678:32 ;0178134812345678
+
+ mov.b @-er3,@er1 ;0178b301
+ mov.b @-er3,@(0x1:2,er1) ;0178b311
+ mov.b @-er3,@er1+ ;0178b381
+ mov.b @-er3,@-er1 ;0178b3b1
+ mov.b @-er3,@+er1 ;0178b391
+ mov.b @-er3,@er1- ;0178b3a1
+ mov.b @-er3,@(0x1234:16,er1) ;0178b3c11234
+ mov.b @-er3,@(0x12345678:32,er1) ;0178b3c912345678
+ mov.b @-er3,@(0x1234:16,r1l.b) ;0178b3d11234
+ mov.b @-er3,@(0x1234:16,r1.w) ;0178b3e11234
+ mov.b @-er3,@(0x1234:16,er1.l) ;0178b3f11234
+ mov.b @-er3,@(0x12345678:32,r1l.b) ;0178b3d912345678
+ mov.b @-er3,@(0x12345678:32,r1.w) ;0178b3e912345678
+ mov.b @-er3,@(0x12345678:32,er1.l) ;0178b3f912345678
+ mov.b @-er3,@0x1234:16 ;0178b3401234
+ mov.b @-er3,@0x12345678:32 ;0178b34812345678
+
+ mov.b @er3+,@er1 ;01788301
+ mov.b @er3+,@(0x1:2,er1) ;01788311
+ mov.b @er3+,@er1+ ;01788381
+ mov.b @er3+,@-er1 ;017883b1
+ mov.b @er3+,@+er1 ;01788391
+ mov.b @er3+,@er1- ;017883a1
+ mov.b @er3+,@(0x1234:16,er1) ;017883c11234
+ mov.b @er3+,@(0x12345678:32,er1) ;017883c912345678
+ mov.b @er3+,@(0x1234:16,r1l.b) ;017883d11234
+ mov.b @er3+,@(0x1234:16,r1.w) ;017883e11234
+ mov.b @er3+,@(0x1234:16,er1.l) ;017883f11234
+ mov.b @er3+,@(0x12345678:32,r1l.b) ;017883d912345678
+ mov.b @er3+,@(0x12345678:32,r1.w) ;017883e912345678
+ mov.b @er3+,@(0x12345678:32,er1.l) ;017883f912345678
+ mov.b @er3+,@0x1234:16 ;017883401234
+ mov.b @er3+,@0x12345678:32 ;0178834812345678
+
+ mov.b @er3-,@er1 ;0178a301
+ mov.b @er3-,@(0x1:2,er1) ;0178a311
+ mov.b @er3-,@er1+ ;0178a381
+ mov.b @er3-,@-er1 ;0178a3b1
+ mov.b @er3-,@+er1 ;0178a391
+ mov.b @er3-,@er1- ;0178a3a1
+ mov.b @er3-,@(0x1234:16,er1) ;0178a3c11234
+ mov.b @er3-,@(0x12345678:32,er1) ;0178a3c912345678
+ mov.b @er3-,@(0x1234:16,r1l.b) ;0178a3d11234
+ mov.b @er3-,@(0x1234:16,r1.w) ;0178a3e11234
+ mov.b @er3-,@(0x1234:16,er1.l) ;0178a3f11234
+ mov.b @er3-,@(0x12345678:32,r1l.b) ;0178a3d912345678
+ mov.b @er3-,@(0x12345678:32,r1.w) ;0178a3e912345678
+ mov.b @er3-,@(0x12345678:32,er1.l) ;0178a3f912345678
+ mov.b @er3-,@0x1234:16 ;0178a3401234
+ mov.b @er3-,@0x12345678:32 ;0178a34812345678
+
+ mov.b @+er3,@er1 ;01789301
+ mov.b @+er3,@(0x1:2,er1) ;01789311
+ mov.b @+er3,@er1+ ;01789381
+ mov.b @+er3,@-er1 ;017893b1
+ mov.b @+er3,@+er1 ;01789391
+ mov.b @+er3,@er1- ;017893a1
+ mov.b @+er3,@(0x1234:16,er1) ;017893c11234
+ mov.b @+er3,@(0x12345678:32,er1) ;017893c912345678
+ mov.b @+er3,@(0x1234:16,r1l.b) ;017893d11234
+ mov.b @+er3,@(0x1234:16,r1.w) ;017893e11234
+ mov.b @+er3,@(0x1234:16,er1.l) ;017893f11234
+ mov.b @+er3,@(0x12345678:32,r1l.b) ;017893d912345678
+ mov.b @+er3,@(0x12345678:32,r1.w) ;017893e912345678
+ mov.b @+er3,@(0x12345678:32,er1.l) ;017893f912345678
+ mov.b @+er3,@0x1234:16 ;017893401234
+ mov.b @+er3,@0x12345678:32 ;0178934812345678
+
+ mov.b @(0x1234:16,er3),@er1 ;0178c3011234
+ mov.b @(0x1234:16,er3),@(0x1:2,er1) ;0178c3111234
+ mov.b @(0x1234:16,er3),@er1+ ;0178c3811234
+ mov.b @(0x1234:16,er3),@-er1 ;0178c3b11234
+ mov.b @(0x1234:16,er3),@+er1 ;0178c3911234
+ mov.b @(0x1234:16,er3),@er1- ;0178c3a11234
+ mov.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;0178c3c112349abc
+ mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;0178c3c912349abcdef0
+ mov.b @(0x1234:16,er3),@(0xffff9abc:16,r1l.b) ;0178c3d112349abc
+ mov.b @(0x1234:16,er3),@(0xffff9abc:16,r1.w) ;0178c3e112349abc
+ mov.b @(0x1234:16,er3),@(0xffff9abc:16,er1.l) ;0178c3f112349abc
+ mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1l.b) ;0178c3d912349abcdef0
+ mov.b @(0x1234:16,er3),@(0x9abcdef0:32,r1.w) ;0178c3e912349abcdef0
+ mov.b @(0x1234:16,er3),@(0x9abcdef0:32,er1.l) ;0178c3f912349abcdef0
+ mov.b @(0x1234:16,er3),@0xffff9abc:16 ;0178c34012349abc
+ mov.b @(0x1234:16,er3),@0x9abcdef0:32 ;0178c34812349abcdef0
+
+ mov.b @(0x12345678:32,er3),@er1 ;0178cb0112345678
+ mov.b @(0x12345678:32,er3),@(0x1:2,er1) ;0178cb1112345678
+ mov.b @(0x12345678:32,er3),@er1+ ;0178cb8112345678
+ mov.b @(0x12345678:32,er3),@-er1 ;0178cbb112345678
+ mov.b @(0x12345678:32,er3),@+er1 ;0178cb9112345678
+ mov.b @(0x12345678:32,er3),@er1- ;0178cba112345678
+ mov.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;0178cbc1123456789abc
+ mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;0178cbc9123456789abcdef0
+ mov.b @(0x12345678:32,er3),@(0xffff9abc:16,r1l.b) ;0178cbd1123456789abc
+ mov.b @(0x12345678:32,er3),@(0xffff9abc:16,r1.w) ;0178cbe1123456789abc
+ mov.b @(0x12345678:32,er3),@(0xffff9abc:16,er1.l) ;0178cbf1123456789abc
+ mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1l.b) ;0178cbd9123456789abcdef0
+ mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,r1.w) ;0178cbe9123456789abcdef0
+ mov.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1.l) ;0178cbf9123456789abcdef0
+ mov.b @(0x12345678:32,er3),@0xffff9abc:16 ;0178cb40123456789abc
+ mov.b @(0x12345678:32,er3),@0x9abcdef0:32 ;0178cb48123456789abcdef0
+
+ mov.b @(0x1234:16,r3l.b),@er1 ;0178d3011234
+ mov.b @(0x1234:16,r3l.b),@(0x1:2,er1) ;0178d3111234
+ mov.b @(0x1234:16,r3l.b),@er1+ ;0178d3811234
+ mov.b @(0x1234:16,r3l.b),@-er1 ;0178d3b11234
+ mov.b @(0x1234:16,r3l.b),@+er1 ;0178d3911234
+ mov.b @(0x1234:16,r3l.b),@er1- ;0178d3a11234
+ mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r1l.b) ;0178d3d112349abc
+ mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r1.w) ;0178d3e112349abc
+ mov.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1.l) ;0178d3f112349abc
+ mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1l.b) ;0178d3d912349abcdef0
+ mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r1.w) ;0178d3e912349abcdef0
+ mov.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1.l) ;0178d3f912349abcdef0
+ mov.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;0178d34012349abc
+ mov.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;0178d34812349abcdef0
+
+ mov.b @(0x1234:16,r3.w),@er1 ;0178e3011234
+ mov.b @(0x1234:16,r3.w),@(0x1:2,er1) ;0178e3111234
+ mov.b @(0x1234:16,r3.w),@er1+ ;0178e3811234
+ mov.b @(0x1234:16,r3.w),@-er1 ;0178e3b11234
+ mov.b @(0x1234:16,r3.w),@+er1 ;0178e3911234
+ mov.b @(0x1234:16,r3.w),@er1- ;0178e3a11234
+ mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;0178e3c112349abc
+ mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;0178e3c912349abcdef0
+ mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b) ;0178e3d312349abc
+ mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w) ;0178e3e312349abc
+ mov.b @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l) ;0178e3f312349abc
+ mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b) ;0178e3db12349abcdef0
+ mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w) ;0178e3eb12349abcdef0
+ mov.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l) ;0178e3fb12349abcdef0
+ mov.b @(0x1234:16,r3.w),@0xffff9abc:16 ;0178e34012349abc
+ mov.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;0178e34812349abcdef0
+
+ mov.b @(0x1234:16,er3.l),@er1 ;0178f3011234
+ mov.b @(0x1234:16,er3.l),@(0x1:2,er1) ;0178f3111234
+ mov.b @(0x1234:16,er3.l),@er1+ ;0178f3811234
+ mov.b @(0x1234:16,er3.l),@-er1 ;0178f3b11234
+ mov.b @(0x1234:16,er3.l),@+er1 ;0178f3911234
+ mov.b @(0x1234:16,er3.l),@er1- ;0178f3a11234
+ mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;0178f3c112349abc
+ mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;0178f3c912349abcdef0
+ mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b) ;0178f3d312349abc
+ mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w) ;0178f3e312349abc
+ mov.b @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l) ;0178f3f312349abc
+ mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b) ;0178f3db12349abcdef0
+ mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w) ;0178f3eb12349abcdef0
+ mov.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l) ;0178f3fb12349abcdef0
+ mov.b @(0x1234:16,er3.l),@0xffff9abc:16 ;0178f34012349abc
+ mov.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;0178f34812349abcdef0
+
+ mov.b @(0x12345678:32,r3l.b),@er1 ;0178db0112345678
+ mov.b @(0x12345678:32,r3l.b),@(0x1:2,er1) ;0178db1112345678
+ mov.b @(0x12345678:32,r3l.b),@er1+ ;0178db8112345678
+ mov.b @(0x12345678:32,r3l.b),@-er1 ;0178dbb112345678
+ mov.b @(0x12345678:32,r3l.b),@+er1 ;0178db9112345678
+ mov.b @(0x12345678:32,r3l.b),@er1- ;0178dba112345678
+ mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;0178dbc1123456789abc
+ mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;0178dbc9123456789abcdef0
+ mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b) ;0178dbd3123456789abc
+ mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w) ;0178dbe3123456789abc
+ mov.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l) ;0178dbf3123456789abc
+ mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b) ;0178dbdb123456789abcdef0
+ mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w) ;0178dbeb123456789abcdef0
+ mov.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l) ;0178dbfb123456789abcdef0
+ mov.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;0178db40123456789abc
+ mov.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;0178db48123456789abcdef0
+
+ mov.b @(0x12345678:32,r3.w),@er1 ;0178eb0112345678
+ mov.b @(0x12345678:32,r3.w),@(0x1:2,er1) ;0178eb1112345678
+ mov.b @(0x12345678:32,r3.w),@er1+ ;0178eb8112345678
+ mov.b @(0x12345678:32,r3.w),@-er1 ;0178ebb112345678
+ mov.b @(0x12345678:32,r3.w),@+er1 ;0178eb9112345678
+ mov.b @(0x12345678:32,r3.w),@er1- ;0178eba112345678
+ mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;0178ebc1123456789abc
+ mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;0178ebc9123456789abcdef0
+ mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b) ;0178ebd3123456789abc
+ mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w) ;0178ebe3123456789abc
+ mov.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l) ;0178ebf3123456789abc
+ mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b) ;0178ebdb123456789abcdef0
+ mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w) ;0178ebeb123456789abcdef0
+ mov.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l) ;0178ebfb123456789abcdef0
+ mov.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;0178eb40123456789abc
+ mov.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;0178eb48123456789abcdef0
+
+ mov.b @(0x12345678:32,er3.l),@er1 ;0178fb0112345678
+ mov.b @(0x12345678:32,er3.l),@(0x1:2,er1) ;0178fb1112345678
+ mov.b @(0x12345678:32,er3.l),@er1+ ;0178fb8112345678
+ mov.b @(0x12345678:32,er3.l),@-er1 ;0178fbb112345678
+ mov.b @(0x12345678:32,er3.l),@+er1 ;0178fb9112345678
+ mov.b @(0x12345678:32,er3.l),@er1- ;0178fba112345678
+ mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;0178fbc1123456789abc
+ mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;0178fbc9123456789abcdef0
+ mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b) ;0178fbd3123456789abc
+ mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w) ;0178fbe3123456789abc
+ mov.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l) ;0178fbf3123456789abc
+ mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b) ;0178fbdb123456789abcdef0
+ mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w) ;0178fbeb123456789abcdef0
+ mov.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l) ;0178fbfb123456789abcdef0
+ mov.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;0178fb40123456789abc
+ mov.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;0178fb48123456789abcdef0
+
+ mov.b @0x1234:16,@er1 ;017840011234
+ mov.b @0x1234:16,@(0x1:2,er1) ;017840111234
+ mov.b @0x1234:16,@er1+ ;017840811234
+ mov.b @0x1234:16,@-er1 ;017840b11234
+ mov.b @0x1234:16,@+er1 ;017840911234
+ mov.b @0x1234:16,@er1- ;017840a11234
+ mov.b @0x1234:16,@(0xffff9abc:16,er1) ;017840c112349abc
+ mov.b @0x1234:16,@(0x9abcdef0:32,er1) ;017840c912349abcdef0
+ mov.b @0x1234:16,@(0xffff9abc:16,r3l.b) ;017840d312349abc
+ mov.b @0x1234:16,@(0xffff9abc:16,r3.w) ;017840e312349abc
+ mov.b @0x1234:16,@(0xffff9abc:16,er3.l) ;017840f312349abc
+ mov.b @0x1234:16,@(0x9abcdef0:32,r3l.b) ;017840db12349abcdef0
+ mov.b @0x1234:16,@(0x9abcdef0:32,r3.w) ;017840eb12349abcdef0
+ mov.b @0x1234:16,@(0x9abcdef0:32,er3.l) ;017840fb12349abcdef0
+ mov.b @0x1234:16,@0xffff9abc:16 ;0178404012349abc
+ mov.b @0x1234:16,@0x9abcdef0:32 ;0178404812349abcdef0
+
+ mov.b @0x12345678:32,@er1 ;0178480112345678
+ mov.b @0x12345678:32,@(0x1:2,er1) ;0178481112345678
+ mov.b @0x12345678:32,@er1+ ;0178488112345678
+ mov.b @0x12345678:32,@-er1 ;017848b112345678
+ mov.b @0x12345678:32,@+er1 ;0178489112345678
+ mov.b @0x12345678:32,@er1- ;017848a112345678
+ mov.b @0x12345678:32,@(0xffff9abc:16,er1) ;017848c1123456789abc
+ mov.b @0x12345678:32,@(0x9abcdef0:32,er1) ;017848c9123456789abcdef0
+ mov.b @0x12345678:32,@(0xffff9abc:16,r3l.b) ;017848d3123456789abc
+ mov.b @0x12345678:32,@(0xffff9abc:16,r3.w) ;017848e3123456789abc
+ mov.b @0x12345678:32,@(0xffff9abc:16,er3.l) ;017848f3123456789abc
+ mov.b @0x12345678:32,@(0x9abcdef0:32,r3l.b) ;017848db123456789abcdef0
+ mov.b @0x12345678:32,@(0x9abcdef0:32,r3.w) ;017848eb123456789abcdef0
+ mov.b @0x12345678:32,@(0x9abcdef0:32,er3.l) ;017848fb123456789abcdef0
+ mov.b @0x12345678:32,@0xffff9abc:16 ;01784840123456789abc
+ mov.b @0x12345678:32,@0x9abcdef0:32 ;01784848123456789abcdef0
+
+ mov.w #0x1234:16,r1 ;79011234
+ mov.w #0x1:3,r3 ;0f13
+ mov.w #0x1234:16,@er1 ;797412340100
+ mov.w #0x1234:16,@(0x2:2,er1) ;797412341100
+ mov.w #0x1234:16,@er1+ ;797412348100
+ mov.w #0x1234:16,@-er1 ;79741234b100
+ mov.w #0x1234:16,@+er1 ;797412349100
+ mov.w #0x1234:16,@er1- ;79741234a100
+ mov.w #0x1234:16,@(0x1234:16,er1) ;79741234c1001234
+ mov.w #0x1234:16,@(0x12345678:32,er1) ;79741234c90012345678
+ mov.w #0x1234:16,@(0x1234:16,r3l.b) ;79741234d3001234
+ mov.w #0x1234:16,@(0x1234:16,r3.w) ;79741234e3001234
+ mov.w #0x1234:16,@(0x1234:16,er3.l) ;79741234f3001234
+ mov.w #0x1234:16,@(0x12345678:32,r3l.b) ;79741234db0012345678
+ mov.w #0x1234:16,@(0x12345678:32,r3.w) ;79741234eb0012345678
+ mov.w #0x1234:16,@(0x12345678:32,er3.l) ;79741234fb0012345678
+ mov.w #0x1234:16,@0x1234:16 ;7974123440001234
+ mov.w #0x1234:16,@0x12345678:32 ;79741234480012345678
+
+ mov.w #0x12:8,@er1 ;015d0112
+ mov.w #0x12:8,@(0x2:2,er1) ;015d1112
+ mov.w #0x12:8,@er1+ ;015d8112
+ mov.w #0x12:8,@-er1 ;015db112
+ mov.w #0x12:8,@+er1 ;015d9112
+ mov.w #0x12:8,@er1- ;015da112
+ mov.w #0x12:8,@(0x1234:16,er1) ;015dc1121234
+ mov.w #0x12:8,@(0x12345678:32,er1) ;015dc91212345678
+ mov.w #0x12:8,@(0x1234:16,r3l.b) ;015dd3121234
+ mov.w #0x12:8,@(0x1234:16,r3.w) ;015de3121234
+ mov.w #0x12:8,@(0x1234:16,er3.l) ;015df3121234
+ mov.w #0x12:8,@(0x12345678:32,r3l.b) ;015ddb1212345678
+ mov.w #0x12:8,@(0x12345678:32,r3.w) ;015deb1212345678
+ mov.w #0x12:8,@(0x12345678:32,er3.l) ;015dfb1212345678
+ mov.w #0x12:8,@0x1234:16 ;015d40121234
+ mov.w #0x12:8,@0x12345678:32 ;015d481212345678
+
+ mov.w #0x1:4,@0x1234:16 ;6bd11234
+ mov.w #0x1:4,@0x12345678:32 ;6bf112345678
+
+ mov.w r2,r1 ;0d21
+
+ mov.w r2,@er1 ;6992
+ mov.w r2,@(0x2:2,er1) ;01516992
+ mov.w r2,@er1+ ;01536d92
+ mov.w r2,@-er1 ;6d92
+ mov.w r2,@+er1 ;01526d92
+ mov.w r2,@er1- ;01516d92
+ mov.w r2,@(0x1234:16,er1) ;6f921234
+ mov.w r2,@(0x12345678:32,er1) ;78106ba212345678
+ mov.w r2,@(0x1234:16,r3l.b) ;01516fb21234
+ mov.w r2,@(0x1234:16,r3.w) ;01526fb21234
+ mov.w r2,@(0x1234:16,er3.l) ;01536fb21234
+ mov.w r2,@(0x12345678:32,r3l.b) ;78316ba212345678
+ mov.w r2,@(0x12345678:32,r3.w) ;78326ba212345678
+ mov.w r2,@(0x12345678:32,er3.l) ;78336ba212345678
+ mov.w r2,@0x1234:16 ;6b821234
+ mov.w r2,@0x12345678:32 ;6ba212345678
+
+ mov.w @er2,r1 ;6921
+ mov.w @(0x2:2,er2),r1 ;01516921
+ mov.w @er2+,r1 ;6d21
+ mov.w @-er2,r1 ;01536d21
+ mov.w @+er2,r1 ;01516d21
+ mov.w @er2-,r1 ;01526d21
+ mov.w @(0x1234:16,er1),r1 ;6f111234
+ mov.w @(0x12345678:32,er1),r1 ;78106b2112345678
+ mov.w @(0x1234:16,r3l.b),r1 ;01516f311234
+ mov.w @(0x1234:16,r3.w),r1 ;01526f311234
+ mov.w @(0x1234:16,er3.l),r1 ;01536f311234
+ mov.w @(0x12345678:32,r3l.b),r1 ;78316b2112345678
+ mov.w @(0x12345678:32,r3.w),r1 ;78326b2112345678
+ mov.w @(0x12345678:32,er3.l),r1 ;78336b2112345678
+ mov.w @0x1234:16,r1 ;6b011234
+ mov.w @0x12345678:32,r1 ;6b2112345678
+
+ mov.w @er2,@er1 ;01580201
+ mov.w @er2,@(0x2:2,er1) ;01580211
+ mov.w @er2,@er1+ ;01580281
+ mov.w @er2,@-er1 ;015802b1
+ mov.w @er2,@+er1 ;01580291
+ mov.w @er2,@er1- ;015802a1
+ mov.w @er2,@(0x1234:16,er1) ;015802c11234
+ mov.w @er2,@(0x12345678:32,er1) ;015802c912345678
+ mov.w @er2,@(0x1234:16,r3l.b) ;015802d31234
+ mov.w @er2,@(0x1234:16,r3.w) ;015802e31234
+ mov.w @er2,@(0x1234:16,er3.l) ;015802f31234
+ mov.w @er2,@(0x12345678:32,r3l.b) ;015802db12345678
+ mov.w @er2,@(0x12345678:32,r3.w) ;015802eb12345678
+ mov.w @er2,@(0x12345678:32,er3.l) ;015802fb12345678
+ mov.w @er2,@0x1234:16 ;015802401234
+ mov.w @er2,@0x12345678:32 ;0158024812345678
+
+ mov.w @(0x2:2,er2),@er1 ;01581201
+ mov.w @(0x2:2,er2),@(0x2:2,er1) ;01581211
+ mov.w @(0x2:2,er2),@er1+ ;01581281
+ mov.w @(0x2:2,er2),@-er1 ;015812b1
+ mov.w @(0x2:2,er2),@+er1 ;01581291
+ mov.w @(0x2:2,er2),@er1- ;015812a1
+ mov.w @(0x2:2,er2),@(0x1234:16,er1) ;015812c11234
+ mov.w @(0x2:2,er2),@(0x12345678:32,er1) ;015812c912345678
+ mov.w @(0x2:2,er2),@(0x1234:16,r3l.b) ;015812d31234
+ mov.w @(0x2:2,er2),@(0x1234:16,r3.w) ;015812e31234
+ mov.w @(0x2:2,er2),@(0x1234:16,er3.l) ;015812f31234
+ mov.w @(0x2:2,er2),@(0x12345678:32,r3l.b) ;015812db12345678
+ mov.w @(0x2:2,er2),@(0x12345678:32,r3.w) ;015812eb12345678
+ mov.w @(0x2:2,er2),@(0x12345678:32,er3.l) ;015812fb12345678
+ mov.w @(0x2:2,er2),@0x1234:16 ;015812401234
+ mov.w @(0x2:2,er2),@0x12345678:32 ;0158124812345678
+
+ mov.w @-er2,@er1 ;0158b201
+ mov.w @-er2,@(0x2:2,er1) ;0158b211
+ mov.w @-er2,@er1+ ;0158b281
+ mov.w @-er2,@-er1 ;0158b2b1
+ mov.w @-er2,@+er1 ;0158b291
+ mov.w @-er2,@er1- ;0158b2a1
+ mov.w @-er2,@(0x1234:16,er1) ;0158b2c11234
+ mov.w @-er2,@(0x12345678:32,er1) ;0158b2c912345678
+ mov.w @-er2,@(0x1234:16,r3l.b) ;0158b2d31234
+ mov.w @-er2,@(0x1234:16,r3.w) ;0158b2e31234
+ mov.w @-er2,@(0x1234:16,er3.l) ;0158b2f31234
+ mov.w @-er2,@(0x12345678:32,r3l.b) ;0158b2db12345678
+ mov.w @-er2,@(0x12345678:32,r3.w) ;0158b2eb12345678
+ mov.w @-er2,@(0x12345678:32,er3.l) ;0158b2fb12345678
+ mov.w @-er2,@0x1234:16 ;0158b2401234
+ mov.w @-er2,@0x12345678:32 ;0158b24812345678
+
+ mov.w @er2+,@er1 ;01588201
+ mov.w @er2+,@(0x2:2,er1) ;01588211
+ mov.w @er2+,@er1+ ;01588281
+ mov.w @er2+,@-er1 ;015882b1
+ mov.w @er2+,@+er1 ;01588291
+ mov.w @er2+,@er1- ;015882a1
+ mov.w @er2+,@(0x1234:16,er1) ;015882c11234
+ mov.w @er2+,@(0x12345678:32,er1) ;015882c912345678
+ mov.w @er2+,@(0x1234:16,r3l.b) ;015882d31234
+ mov.w @er2+,@(0x1234:16,r3.w) ;015882e31234
+ mov.w @er2+,@(0x1234:16,er3.l) ;015882f31234
+ mov.w @er2+,@(0x12345678:32,r3l.b) ;015882db12345678
+ mov.w @er2+,@(0x12345678:32,r3.w) ;015882eb12345678
+ mov.w @er2+,@(0x12345678:32,er3.l) ;015882fb12345678
+ mov.w @er2+,@0x1234:16 ;015882401234
+ mov.w @er2+,@0x12345678:32 ;0158824812345678
+
+ mov.w @er2-,@er1 ;0158a201
+ mov.w @er2-,@(0x2:2,er1) ;0158a211
+ mov.w @er2-,@er1+ ;0158a281
+ mov.w @er2-,@-er1 ;0158a2b1
+ mov.w @er2-,@+er1 ;0158a291
+ mov.w @er2-,@er1- ;0158a2a1
+ mov.w @er2-,@(0x1234:16,er1) ;0158a2c11234
+ mov.w @er2-,@(0x12345678:32,er1) ;0158a2c912345678
+ mov.w @er2-,@(0x1234:16,r3l.b) ;0158a2d31234
+ mov.w @er2-,@(0x1234:16,r3.w) ;0158a2e31234
+ mov.w @er2-,@(0x1234:16,er3.l) ;0158a2f31234
+ mov.w @er2-,@(0x12345678:32,r3l.b) ;0158a2db12345678
+ mov.w @er2-,@(0x12345678:32,r3.w) ;0158a2eb12345678
+ mov.w @er2-,@(0x12345678:32,er3.l) ;0158a2fb12345678
+ mov.w @er2-,@0x1234:16 ;0158a2401234
+ mov.w @er2-,@0x12345678:32 ;0158a24812345678
+
+ mov.w @+er2,@er1 ;01589201
+ mov.w @+er2,@(0x2:2,er1) ;01589211
+ mov.w @+er2,@er1+ ;01589281
+ mov.w @+er2,@-er1 ;015892b1
+ mov.w @+er2,@+er1 ;01589291
+ mov.w @+er2,@er1- ;015892a1
+ mov.w @+er2,@(0x1234:16,er1) ;015892c11234
+ mov.w @+er2,@(0x12345678:32,er1) ;015892c912345678
+ mov.w @+er2,@(0x1234:16,r3l.b) ;015892d31234
+ mov.w @+er2,@(0x1234:16,r3.w) ;015892e31234
+ mov.w @+er2,@(0x1234:16,er3.l) ;015892f31234
+ mov.w @+er2,@(0x12345678:32,r3l.b) ;015892db12345678
+ mov.w @+er2,@(0x12345678:32,r3.w) ;015892eb12345678
+ mov.w @+er2,@(0x12345678:32,er3.l) ;015892fb12345678
+ mov.w @+er2,@0x1234:16 ;015892401234
+ mov.w @+er2,@0x12345678:32 ;0158924812345678
+
+ mov.w @(0x1234:16,er2),@er1 ;0158c2011234
+ mov.w @(0x1234:16,er2),@(0x2:2,er1) ;0158c2111234
+ mov.w @(0x1234:16,er2),@er1+ ;0158c2811234
+ mov.w @(0x1234:16,er2),@-er1 ;0158c2b11234
+ mov.w @(0x1234:16,er2),@+er1 ;0158c2911234
+ mov.w @(0x1234:16,er2),@er1- ;0158c2a11234
+ mov.w @(0x1234:16,er2),@(0xffff9abc:16,er1) ;0158c2c112349abc
+ mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er1) ;0158c2c912349abcdef0
+ mov.w @(0x1234:16,er2),@(0xffff9abc:16,r3l.b) ;0158c2d312349abc
+ mov.w @(0x1234:16,er2),@(0xffff9abc:16,r3.w) ;0158c2e312349abc
+ mov.w @(0x1234:16,er2),@(0xffff9abc:16,er3.l) ;0158c2f312349abc
+ mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b) ;0158c2db12349abcdef0
+ mov.w @(0x1234:16,er2),@(0x9abcdef0:32,r3.w) ;0158c2eb12349abcdef0
+ mov.w @(0x1234:16,er2),@(0x9abcdef0:32,er3.l) ;0158c2fb12349abcdef0
+ mov.w @(0x1234:16,er2),@0xffff9abc:16 ;0158c24012349abc
+ mov.w @(0x1234:16,er2),@0x9abcdef0:32 ;0158c24812349abcdef0
+
+ mov.w @(0x12345678:32,er2),@er1 ;0158ca0112345678
+ mov.w @(0x12345678:32,er2),@(0x2:2,er1) ;0158ca1112345678
+ mov.w @(0x12345678:32,er2),@er1+ ;0158ca8112345678
+ mov.w @(0x12345678:32,er2),@-er1 ;0158cab112345678
+ mov.w @(0x12345678:32,er2),@+er1 ;0158ca9112345678
+ mov.w @(0x12345678:32,er2),@er1- ;0158caa112345678
+ mov.w @(0x12345678:32,er2),@(0xffff9abc:16,er1) ;0158cac1123456789abc
+ mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er1) ;0158cac9123456789abcdef0
+ mov.w @(0x12345678:32,er2),@(0xffff9abc:16,r3l.b) ;0158cad3123456789abc
+ mov.w @(0x12345678:32,er2),@(0xffff9abc:16,r3.w) ;0158cae3123456789abc
+ mov.w @(0x12345678:32,er2),@(0xffff9abc:16,er3.l) ;0158caf3123456789abc
+ mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b) ;0158cadb123456789abcdef0
+ mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w) ;0158caeb123456789abcdef0
+ mov.w @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l) ;0158cafb123456789abcdef0
+ mov.w @(0x12345678:32,er2),@0xffff9abc:16 ;0158ca40123456789abc
+ mov.w @(0x12345678:32,er2),@0x9abcdef0:32 ;0158ca48123456789abcdef0
+
+ mov.w @(0x1234:16,r3l.b),@er1 ;0158d3011234
+ mov.w @(0x1234:16,r3l.b),@(0x2:2,er1) ;0158d3111234
+ mov.w @(0x1234:16,r3l.b),@er1+ ;0158d3811234
+ mov.w @(0x1234:16,r3l.b),@-er1 ;0158d3b11234
+ mov.w @(0x1234:16,r3l.b),@+er1 ;0158d3911234
+ mov.w @(0x1234:16,r3l.b),@er1- ;0158d3a11234
+ mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;0158d3c112349abc
+ mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;0158d3c912349abcdef0
+ mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r3l.b) ;0158d3d312349abc
+ mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r3.w) ;0158d3e312349abc
+ mov.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er3.l) ;0158d3f312349abc
+ mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b) ;0158d3db12349abcdef0
+ mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w) ;0158d3eb12349abcdef0
+ mov.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l) ;0158d3fb12349abcdef0
+ mov.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;0158d34012349abc
+ mov.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;0158d34812349abcdef0
+
+ mov.w @(0x1234:16,r3.w),@er1 ;0158e3011234
+ mov.w @(0x1234:16,r3.w),@(0x2:2,er1) ;0158e3111234
+ mov.w @(0x1234:16,r3.w),@er1+ ;0158e3811234
+ mov.w @(0x1234:16,r3.w),@-er1 ;0158e3b11234
+ mov.w @(0x1234:16,r3.w),@+er1 ;0158e3911234
+ mov.w @(0x1234:16,r3.w),@er1- ;0158e3a11234
+ mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;0158e3c112349abc
+ mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;0158e3c912349abcdef0
+ mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b) ;0158e3d312349abc
+ mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w) ;0158e3e312349abc
+ mov.w @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l) ;0158e3f312349abc
+ mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b) ;0158e3db12349abcdef0
+ mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w) ;0158e3eb12349abcdef0
+ mov.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l) ;0158e3fb12349abcdef0
+ mov.w @(0x1234:16,r3.w),@0xffff9abc:16 ;0158e34012349abc
+ mov.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;0158e34812349abcdef0
+
+ mov.w @(0x1234:16,er3.l),@er1 ;0158f3011234
+ mov.w @(0x1234:16,er3.l),@(0x2:2,er1) ;0158f3111234
+ mov.w @(0x1234:16,er3.l),@er1+ ;0158f3811234
+ mov.w @(0x1234:16,er3.l),@-er1 ;0158f3b11234
+ mov.w @(0x1234:16,er3.l),@+er1 ;0158f3911234
+ mov.w @(0x1234:16,er3.l),@er1- ;0158f3a11234
+ mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;0158f3c112349abc
+ mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;0158f3c912349abcdef0
+ mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b) ;0158f3d312349abc
+ mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w) ;0158f3e312349abc
+ mov.w @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l) ;0158f3f312349abc
+ mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b) ;0158f3db12349abcdef0
+ mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w) ;0158f3eb12349abcdef0
+ mov.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l) ;0158f3fb12349abcdef0
+ mov.w @(0x1234:16,er3.l),@0xffff9abc:16 ;0158f34012349abc
+ mov.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;0158f34812349abcdef0
+
+ mov.w @(0x12345678:32,r3l.b),@er1 ;0158db0112345678
+ mov.w @(0x12345678:32,r3l.b),@(0x2:2,er1) ;0158db1112345678
+ mov.w @(0x12345678:32,r3l.b),@er1+ ;0158db8112345678
+ mov.w @(0x12345678:32,r3l.b),@-er1 ;0158dbb112345678
+ mov.w @(0x12345678:32,r3l.b),@+er1 ;0158db9112345678
+ mov.w @(0x12345678:32,r3l.b),@er1- ;0158dba112345678
+ mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;0158dbc1123456789abc
+ mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;0158dbc9123456789abcdef0
+ mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b) ;0158dbd3123456789abc
+ mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w) ;0158dbe3123456789abc
+ mov.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l) ;0158dbf3123456789abc
+ mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b) ;0158dbdb123456789abcdef0
+ mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w) ;0158dbeb123456789abcdef0
+ mov.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l) ;0158dbfb123456789abcdef0
+ mov.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;0158db40123456789abc
+ mov.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;0158db48123456789abcdef0
+
+ mov.w @(0x12345678:32,r3.w),@er1 ;0158eb0112345678
+ mov.w @(0x12345678:32,r3.w),@(0x2:2,er1) ;0158eb1112345678
+ mov.w @(0x12345678:32,r3.w),@er1+ ;0158eb8112345678
+ mov.w @(0x12345678:32,r3.w),@-er1 ;0158ebb112345678
+ mov.w @(0x12345678:32,r3.w),@+er1 ;0158eb9112345678
+ mov.w @(0x12345678:32,r3.w),@er1- ;0158eba112345678
+ mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;0158ebc1123456789abc
+ mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;0158ebc9123456789abcdef0
+ mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b) ;0158ebd3123456789abc
+ mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w) ;0158ebe3123456789abc
+ mov.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l) ;0158ebf3123456789abc
+ mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b) ;0158ebdb123456789abcdef0
+ mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w) ;0158ebeb123456789abcdef0
+ mov.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l) ;0158ebfb123456789abcdef0
+ mov.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;0158eb40123456789abc
+ mov.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;0158eb48123456789abcdef0
+
+ mov.w @(0x12345678:32,er3.l),@er1 ;0158fb0112345678
+ mov.w @(0x12345678:32,er3.l),@(0x2:2,er1) ;0158fb1112345678
+ mov.w @(0x12345678:32,er3.l),@er1+ ;0158fb8112345678
+ mov.w @(0x12345678:32,er3.l),@-er1 ;0158fbb112345678
+ mov.w @(0x12345678:32,er3.l),@+er1 ;0158fb9112345678
+ mov.w @(0x12345678:32,er3.l),@er1- ;0158fba112345678
+ mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;0158fbc1123456789abc
+ mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;0158fbc9123456789abcdef0
+ mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b) ;0158fbd3123456789abc
+ mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w) ;0158fbe3123456789abc
+ mov.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l) ;0158fbf3123456789abc
+ mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b) ;0158fbdb123456789abcdef0
+ mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w) ;0158fbeb123456789abcdef0
+ mov.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l) ;0158fbfb123456789abcdef0
+ mov.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;0158fb40123456789abc
+ mov.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;0158fb48123456789abcdef0
+
+ mov.w @0x1234:16,@er1 ;015840011234
+ mov.w @0x1234:16,@(0x2:2,er1) ;015840111234
+ mov.w @0x1234:16,@er1+ ;015840811234
+ mov.w @0x1234:16,@-er1 ;015840b11234
+ mov.w @0x1234:16,@+er1 ;015840911234
+ mov.w @0x1234:16,@er1- ;015840a11234
+ mov.w @0x1234:16,@(0xffff9abc:16,er1) ;015840c112349abc
+ mov.w @0x1234:16,@(0x9abcdef0:32,er1) ;015840c912349abcdef0
+ mov.w @0x1234:16,@(0xffff9abc:16,r3l.b) ;015840d312349abc
+ mov.w @0x1234:16,@(0xffff9abc:16,r3.w) ;015840e312349abc
+ mov.w @0x1234:16,@(0xffff9abc:16,er3.l) ;015840f312349abc
+ mov.w @0x1234:16,@(0x9abcdef0:32,r3l.b) ;015840db12349abcdef0
+ mov.w @0x1234:16,@(0x9abcdef0:32,r3.w) ;015840eb12349abcdef0
+ mov.w @0x1234:16,@(0x9abcdef0:32,er3.l) ;015840fb12349abcdef0
+ mov.w @0x1234:16,@0xffff9abc:16 ;0158404012349abc
+ mov.w @0x1234:16,@0x9abcdef0:32 ;0158404812349abcdef0
+
+ mov.w @0x12345678:32,@er1 ;0158480112345678
+ mov.w @0x12345678:32,@(0x2:2,er1) ;0158481112345678
+ mov.w @0x12345678:32,@er1+ ;0158488112345678
+ mov.w @0x12345678:32,@-er1 ;015848b112345678
+ mov.w @0x12345678:32,@+er1 ;0158489112345678
+ mov.w @0x12345678:32,@er1- ;015848a112345678
+ mov.w @0x12345678:32,@(0xffff9abc:16,er1) ;015848c1123456789abc
+ mov.w @0x12345678:32,@(0x9abcdef0:32,er1) ;015848c9123456789abcdef0
+ mov.w @0x12345678:32,@(0xffff9abc:16,r3l.b) ;015848d3123456789abc
+ mov.w @0x12345678:32,@(0xffff9abc:16,r3.w) ;015848e3123456789abc
+ mov.w @0x12345678:32,@(0xffff9abc:16,er3.l) ;015848f3123456789abc
+ mov.w @0x12345678:32,@(0x9abcdef0:32,r3l.b) ;015848db123456789abcdef0
+ mov.w @0x12345678:32,@(0x9abcdef0:32,r3.w) ;015848eb123456789abcdef0
+ mov.w @0x12345678:32,@(0x9abcdef0:32,er3.l) ;015848fb123456789abcdef0
+ mov.w @0x12345678:32,@0xffff9abc:16 ;01584840123456789abc
+ mov.w @0x12345678:32,@0x9abcdef0:32 ;01584848123456789abcdef0
+
+ mov.l #0x12345678:32,er1 ;7a0112345678
+
+ mov.l #0x1234:16,er1 ;7a091234
+
+ mov.l #0x1:3,er3 ;0f9b
+
+ mov.l #0x12345678:32,@er1 ;7a74123456780100
+ mov.l #0x12345678:32,@(0x4:2,er1) ;7a74123456781100
+ mov.l #0x12345678:32,@-er1 ;7a7412345678b100
+ mov.l #0x12345678:32,@er1+ ;7a74123456788100
+ mov.l #0x12345678:32,@er1- ;7a7412345678a100
+ mov.l #0x12345678:32,@+er1 ;7a74123456789100
+ mov.l #0x12345678:32,@(0x1234:16,er1) ;7a7412345678c1001234
+ mov.l #0x12345678:32,@(0x12345678:32,er1) ;7a7412345678c90012345678
+ mov.l #0x12345678:32,@(0x1234:16,r3l.b) ;7a7412345678d3001234
+ mov.l #0x12345678:32,@(0x1234:16,r3.w) ;7a7412345678e3001234
+ mov.l #0x12345678:32,@(0x1234:16,er3.l) ;7a7412345678f3001234
+ mov.l #0x12345678:32,@(0x12345678:32,r3l.b) ;7a7412345678db0012345678
+ mov.l #0x12345678:32,@(0x12345678:32,r3.w) ;7a7412345678eb0012345678
+ mov.l #0x12345678:32,@(0x12345678:32,er3.l) ;7a7412345678fb0012345678
+ mov.l #0x12345678:32,@0x1234:16 ;7a741234567840001234
+ mov.l #0x12345678:32,@0x12345678:32 ;7a7412345678480012345678
+
+ mov.l #0x1234:16,@er1 ;7a7c12340100
+ mov.l #0x1234:16,@(0x4:2,er1) ;7a7c12341100
+ mov.l #0x1234:16,@-er1 ;7a7c1234b100
+ mov.l #0x1234:16,@er1+ ;7a7c12348100
+ mov.l #0x1234:16,@er1- ;7a7c1234a100
+ mov.l #0x1234:16,@+er1 ;7a7c12349100
+ mov.l #0x1234:16,@(0x1234:16,er1) ;7a7c1234c1001234
+ mov.l #0x1234:16,@(0x12345678:32,er1) ;7a7c1234c90012345678
+ mov.l #0x1234:16,@(0x1234:16,r3l.b) ;7a7c1234d3001234
+ mov.l #0x1234:16,@(0x1234:16,r3.w) ;7a7c1234e3001234
+ mov.l #0x1234:16,@(0x1234:16,er3.l) ;7a7c1234f3001234
+ mov.l #0x1234:16,@(0x12345678:32,r3l.b) ;7a7c1234db0012345678
+ mov.l #0x1234:16,@(0x12345678:32,r3.w) ;7a7c1234eb0012345678
+ mov.l #0x1234:16,@(0x12345678:32,er3.l) ;7a7c1234fb0012345678
+ mov.l #0x1234:16,@0x1234:16 ;7a7c123440001234
+ mov.l #0x1234:16,@0x12345678:32 ;7a7c1234480012345678
+
+ mov.l #0x12:8,@er1 ;010d0112
+ mov.l #0x12:8,@(0x4:2,er1) ;010d1112
+ mov.l #0x12:8,@-er1 ;010db112
+ mov.l #0x12:8,@er1+ ;010d8112
+ mov.l #0x12:8,@er1- ;010da112
+ mov.l #0x12:8,@+er1 ;010d9112
+ mov.l #0x12:8,@(0x1234:16,er1) ;010dc1121234
+ mov.l #0x12:8,@(0x12345678:32,er1) ;010dc91212345678
+ mov.l #0x12:8,@(0x1234:16,r3l.b) ;010dd3121234
+ mov.l #0x12:8,@(0x1234:16,r3.w) ;010de3121234
+ mov.l #0x12:8,@(0x1234:16,er3.l) ;010df3121234
+ mov.l #0x12:8,@(0x12345678:32,r3l.b) ;010ddb1212345678
+ mov.l #0x12:8,@(0x12345678:32,r3.w) ;010deb1212345678
+ mov.l #0x12:8,@(0x12345678:32,er3.l) ;010dfb1212345678
+ mov.l #0x12:8,@0x1234:16 ;010d40121234
+ mov.l #0x12:8,@0x12345678:32 ;010d481212345678
+
+ mov.l er2,er1 ;0fa1
+
+ mov.l er2,@er1 ;01006992
+ mov.l er2,@(0x4:2,er1) ;01016992
+ mov.l er2,@-er1 ;01006d92
+ mov.l er2,@er1+ ;01036d92
+ mov.l er2,@er1- ;01016d92
+ mov.l er2,@+er1 ;01026d92
+ mov.l er2,@(0x1234:16,er1) ;01006f921234
+ mov.l er2,@(0x12345678:32,er1) ;78906ba212345678
+ mov.l er2,@(0x1234:16,r3l.b) ;01016fb21234
+ mov.l er2,@(0x1234:16,r3.w) ;01026fb21234
+ mov.l er2,@(0x1234:16,er3.l) ;01036fb21234
+ mov.l er2,@(0x12345678:32,r3l.b) ;78b16ba212345678
+ mov.l er2,@(0x12345678:32,r3.w) ;78b26ba212345678
+ mov.l er2,@(0x12345678:32,er3.l) ;78b36ba212345678
+ mov.l er2,@0x1234:16 ;01006b821234
+ mov.l er2,@0x12345678:32 ;01006ba212345678
+
+ mov.l @er2,er1 ;01006921
+ mov.l @(0x4:2,er2),er1 ;01016921
+ mov.l @er2+,er1 ;01006d21
+ mov.l @-er2,er1 ;01036d21
+ mov.l @+er2,er1 ;01016d21
+ mov.l @er2-,er1 ;01026d21
+ mov.l @(0x1234:16,er1),er1 ;01006f111234
+ mov.l @(0x12345678:32,er1),er1 ;78906b2112345678
+ mov.l @(0x1234:16,r3l.b),er1 ;01016f311234
+ mov.l @(0x1234:16,r3.w),er1 ;01026f311234
+ mov.l @(0x1234:16,er3.l),er1 ;01036f311234
+ mov.l @(0x12345678:32,r3l.b),er1 ;78b16b2112345678
+ mov.l @(0x12345678:32,r3.w),er1 ;78b26b2112345678
+ mov.l @(0x12345678:32,er3.l),er1 ;78b36b2112345678
+ mov.l @0x1234:16,er1 ;01006b011234
+ mov.l @0x12345678:32,er1 ;01006b2112345678
+
+ mov.l @er2,@er1 ;01080201
+ mov.l @er2,@(0x4:2,er1) ;01080211
+ mov.l @er2,@er1+ ;01080281
+ mov.l @er2,@-er1 ;010802b1
+ mov.l @er2,@+er1 ;01080291
+ mov.l @er2,@er1- ;010802a1
+ mov.l @er2,@(0x1234:16,er1) ;010802c11234
+ mov.l @er2,@(0x12345678:32,er1) ;010802c912345678
+ mov.l @er2,@(0x1234:16,r3l.b) ;010802d31234
+ mov.l @er2,@(0x1234:16,r3.w) ;010802e31234
+ mov.l @er2,@(0x1234:16,er3.l) ;010802f31234
+ mov.l @er2,@(0x12345678:32,r3l.b) ;010802db12345678
+ mov.l @er2,@(0x12345678:32,r3.w) ;010802eb12345678
+ mov.l @er2,@(0x12345678:32,er3.l) ;010802fb12345678
+ mov.l @er2,@0x1234:16 ;010802401234
+ mov.l @er2,@0x12345678:32 ;0108024812345678
+
+ mov.l @(0x4:2,er2),@er1 ;01081201
+ mov.l @(0x4:2,er2),@(0x4:2,er1) ;01081211
+ mov.l @(0x4:2,er2),@er1+ ;01081281
+ mov.l @(0x4:2,er2),@-er1 ;010812b1
+ mov.l @(0x4:2,er2),@+er1 ;01081291
+ mov.l @(0x4:2,er2),@er1- ;010812a1
+ mov.l @(0x4:2,er2),@(0x1234:16,er1) ;010812c11234
+ mov.l @(0x4:2,er2),@(0x12345678:32,er1) ;010812c912345678
+ mov.l @(0x4:2,er2),@(0x1234:16,r3l.b) ;010812d31234
+ mov.l @(0x4:2,er2),@(0x1234:16,r3.w) ;010812e31234
+ mov.l @(0x4:2,er2),@(0x1234:16,er3.l) ;010812f31234
+ mov.l @(0x4:2,er2),@(0x12345678:32,r3l.b) ;010812db12345678
+ mov.l @(0x4:2,er2),@(0x12345678:32,r3.w) ;010812eb12345678
+ mov.l @(0x4:2,er2),@(0x12345678:32,er3.l) ;010812fb12345678
+ mov.l @(0x4:2,er2),@0x1234:16 ;010812401234
+ mov.l @(0x4:2,er2),@0x12345678:32 ;0108124812345678
+
+ mov.l @-er2,@er1 ;0108b201
+ mov.l @-er2,@(0x4:2,er1) ;0108b211
+ mov.l @-er2,@er1+ ;0108b281
+ mov.l @-er2,@-er1 ;0108b2b1
+ mov.l @-er2,@+er1 ;0108b291
+ mov.l @-er2,@er1- ;0108b2a1
+ mov.l @-er2,@(0x1234:16,er1) ;0108b2c11234
+ mov.l @-er2,@(0x12345678:32,er1) ;0108b2c912345678
+ mov.l @-er2,@(0x1234:16,r3l.b) ;0108b2d31234
+ mov.l @-er2,@(0x1234:16,r3.w) ;0108b2e31234
+ mov.l @-er2,@(0x1234:16,er3.l) ;0108b2f31234
+ mov.l @-er2,@(0x12345678:32,r3l.b) ;0108b2db12345678
+ mov.l @-er2,@(0x12345678:32,r3.w) ;0108b2eb12345678
+ mov.l @-er2,@(0x12345678:32,er3.l) ;0108b2fb12345678
+ mov.l @-er2,@0x1234:16 ;0108b2401234
+ mov.l @-er2,@0x12345678:32 ;0108b24812345678
+
+ mov.l @er2+,@er1 ;01088201
+ mov.l @er2+,@(0x4:2,er1) ;01088211
+ mov.l @er2+,@er1+ ;01088281
+ mov.l @er2+,@-er1 ;010882b1
+ mov.l @er2+,@+er1 ;01088291
+ mov.l @er2+,@er1- ;010882a1
+ mov.l @er2+,@(0x1234:16,er1) ;010882c11234
+ mov.l @er2+,@(0x12345678:32,er1) ;010882c912345678
+ mov.l @er2+,@(0x1234:16,r3l.b) ;010882d31234
+ mov.l @er2+,@(0x1234:16,r3.w) ;010882e31234
+ mov.l @er2+,@(0x1234:16,er3.l) ;010882f31234
+ mov.l @er2+,@(0x12345678:32,r3l.b) ;010882db12345678
+ mov.l @er2+,@(0x12345678:32,r3.w) ;010882eb12345678
+ mov.l @er2+,@(0x12345678:32,er3.l) ;010882fb12345678
+ mov.l @er2+,@0x1234:16 ;010882401234
+ mov.l @er2+,@0x12345678:32 ;0108824812345678
+
+ mov.l @er2-,@er1 ;0108a201
+ mov.l @er2-,@(0x4:2,er1) ;0108a211
+ mov.l @er2-,@er1+ ;0108a281
+ mov.l @er2-,@-er1 ;0108a2b1
+ mov.l @er2-,@+er1 ;0108a291
+ mov.l @er2-,@er1- ;0108a2a1
+ mov.l @er2-,@(0x1234:16,er1) ;0108a2c11234
+ mov.l @er2-,@(0x12345678:32,er1) ;0108a2c912345678
+ mov.l @er2-,@(0x1234:16,r3l.b) ;0108a2d31234
+ mov.l @er2-,@(0x1234:16,r3.w) ;0108a2e31234
+ mov.l @er2-,@(0x1234:16,er3.l) ;0108a2f31234
+ mov.l @er2-,@(0x12345678:32,r3l.b) ;0108a2db12345678
+ mov.l @er2-,@(0x12345678:32,r3.w) ;0108a2eb12345678
+ mov.l @er2-,@(0x12345678:32,er3.l) ;0108a2fb12345678
+ mov.l @er2-,@0x1234:16 ;0108a2401234
+ mov.l @er2-,@0x12345678:32 ;0108a24812345678
+
+ mov.l @+er2,@er1 ;01089201
+ mov.l @+er2,@(0x4:2,er1) ;01089211
+ mov.l @+er2,@er1+ ;01089281
+ mov.l @+er2,@-er1 ;010892b1
+ mov.l @+er2,@+er1 ;01089291
+ mov.l @+er2,@er1- ;010892a1
+ mov.l @+er2,@(0x1234:16,er1) ;010892c11234
+ mov.l @+er2,@(0x12345678:32,er1) ;010892c912345678
+ mov.l @+er2,@(0x1234:16,r3l.b) ;010892d31234
+ mov.l @+er2,@(0x1234:16,r3.w) ;010892e31234
+ mov.l @+er2,@(0x1234:16,er3.l) ;010892f31234
+ mov.l @+er2,@(0x12345678:32,r3l.b) ;010892db12345678
+ mov.l @+er2,@(0x12345678:32,r3.w) ;010892eb12345678
+ mov.l @+er2,@(0x12345678:32,er3.l) ;010892fb12345678
+ mov.l @+er2,@0x1234:16 ;010892401234
+ mov.l @+er2,@0x12345678:32 ;0108924812345678
+
+ mov.l @(0x1234:16,er2),@er1 ;0108c2011234
+ mov.l @(0x1234:16,er2),@(0x4:2,er1) ;0108c2111234
+ mov.l @(0x1234:16,er2),@er1+ ;0108c2811234
+ mov.l @(0x1234:16,er2),@-er1 ;0108c2b11234
+ mov.l @(0x1234:16,er2),@+er1 ;0108c2911234
+ mov.l @(0x1234:16,er2),@er1- ;0108c2a11234
+ mov.l @(0x1234:16,er2),@(0xffff9abc:16,er1) ;0108c2c112349abc
+ mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er1) ;0108c2c912349abcdef0
+ mov.l @(0x1234:16,er2),@(0xffff9abc:16,r3l.b) ;0108c2d312349abc
+ mov.l @(0x1234:16,er2),@(0xffff9abc:16,r3.w) ;0108c2e312349abc
+ mov.l @(0x1234:16,er2),@(0xffff9abc:16,er3.l) ;0108c2f312349abc
+ mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3l.b) ;0108c2db12349abcdef0
+ mov.l @(0x1234:16,er2),@(0x9abcdef0:32,r3.w) ;0108c2eb12349abcdef0
+ mov.l @(0x1234:16,er2),@(0x9abcdef0:32,er3.l) ;0108c2fb12349abcdef0
+ mov.l @(0x1234:16,er2),@0xffff9abc:16 ;0108c24012349abc
+ mov.l @(0x1234:16,er2),@0x9abcdef0:32 ;0108c24812349abcdef0
+
+ mov.l @(0x12345678:32,er2),@er1 ;0108ca0112345678
+ mov.l @(0x12345678:32,er2),@(0x4:2,er1) ;0108ca1112345678
+ mov.l @(0x12345678:32,er2),@er1+ ;0108ca8112345678
+ mov.l @(0x12345678:32,er2),@-er1 ;0108cab112345678
+ mov.l @(0x12345678:32,er2),@+er1 ;0108ca9112345678
+ mov.l @(0x12345678:32,er2),@er1- ;0108caa112345678
+ mov.l @(0x12345678:32,er2),@(0xffff9abc:16,er1) ;0108cac1123456789abc
+ mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er1) ;0108cac9123456789abcdef0
+ mov.l @(0x12345678:32,er2),@(0xffff9abc:16,r3l.b) ;0108cad3123456789abc
+ mov.l @(0x12345678:32,er2),@(0xffff9abc:16,r3.w) ;0108cae3123456789abc
+ mov.l @(0x12345678:32,er2),@(0xffff9abc:16,er3.l) ;0108caf3123456789abc
+ mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3l.b) ;0108cadb123456789abcdef0
+ mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,r3.w) ;0108caeb123456789abcdef0
+ mov.l @(0x12345678:32,er2),@(0x9abcdef0:32,er3.l) ;0108cafb123456789abcdef0
+ mov.l @(0x12345678:32,er2),@0xffff9abc:16 ;0108ca40123456789abc
+ mov.l @(0x12345678:32,er2),@0x9abcdef0:32 ;0108ca48123456789abcdef0
+
+ mov.l @(0x1234:16,r3l.b),@er1 ;0108d3011234
+ mov.l @(0x1234:16,r3l.b),@(0x4:2,er1) ;0108d3111234
+ mov.l @(0x1234:16,r3l.b),@er1+ ;0108d3811234
+ mov.l @(0x1234:16,r3l.b),@-er1 ;0108d3b11234
+ mov.l @(0x1234:16,r3l.b),@+er1 ;0108d3911234
+ mov.l @(0x1234:16,r3l.b),@er1- ;0108d3a11234
+ mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;0108d3c112349abc
+ mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;0108d3c912349abcdef0
+ mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r3l.b) ;0108d3d312349abc
+ mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r3.w) ;0108d3e312349abc
+ mov.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er3.l) ;0108d3f312349abc
+ mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3l.b) ;0108d3db12349abcdef0
+ mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r3.w) ;0108d3eb12349abcdef0
+ mov.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er3.l) ;0108d3fb12349abcdef0
+ mov.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;0108d34012349abc
+ mov.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;0108d34812349abcdef0
+
+ mov.l @(0x1234:16,r3.w),@er1 ;0108e3011234
+ mov.l @(0x1234:16,r3.w),@(0x4:2,er1) ;0108e3111234
+ mov.l @(0x1234:16,r3.w),@er1+ ;0108e3811234
+ mov.l @(0x1234:16,r3.w),@-er1 ;0108e3b11234
+ mov.l @(0x1234:16,r3.w),@+er1 ;0108e3911234
+ mov.l @(0x1234:16,r3.w),@er1- ;0108e3a11234
+ mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;0108e3c112349abc
+ mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;0108e3c912349abcdef0
+ mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,r3l.b) ;0108e3d312349abc
+ mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,r3.w) ;0108e3e312349abc
+ mov.l @(0x1234:16,r3.w),@(0xffff9abc:16,er3.l) ;0108e3f312349abc
+ mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3l.b) ;0108e3db12349abcdef0
+ mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r3.w) ;0108e3eb12349abcdef0
+ mov.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er3.l) ;0108e3fb12349abcdef0
+ mov.l @(0x1234:16,r3.w),@0xffff9abc:16 ;0108e34012349abc
+ mov.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;0108e34812349abcdef0
+
+ mov.l @(0x1234:16,er3.l),@er1 ;0108f3011234
+ mov.l @(0x1234:16,er3.l),@(0x4:2,er1) ;0108f3111234
+ mov.l @(0x1234:16,er3.l),@er1+ ;0108f3811234
+ mov.l @(0x1234:16,er3.l),@-er1 ;0108f3b11234
+ mov.l @(0x1234:16,er3.l),@+er1 ;0108f3911234
+ mov.l @(0x1234:16,er3.l),@er1- ;0108f3a11234
+ mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;0108f3c112349abc
+ mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;0108f3c912349abcdef0
+ mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,r3l.b) ;0108f3d312349abc
+ mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,r3.w) ;0108f3e312349abc
+ mov.l @(0x1234:16,er3.l),@(0xffff9abc:16,er3.l) ;0108f3f312349abc
+ mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3l.b) ;0108f3db12349abcdef0
+ mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r3.w) ;0108f3eb12349abcdef0
+ mov.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er3.l) ;0108f3fb12349abcdef0
+ mov.l @(0x1234:16,er3.l),@0xffff9abc:16 ;0108f34012349abc
+ mov.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;0108f34812349abcdef0
+
+ mov.l @(0x12345678:32,r3l.b),@er1 ;0108db0112345678
+ mov.l @(0x12345678:32,r3l.b),@(0x4:2,er1) ;0108db1112345678
+ mov.l @(0x12345678:32,r3l.b),@er1+ ;0108db8112345678
+ mov.l @(0x12345678:32,r3l.b),@-er1 ;0108dbb112345678
+ mov.l @(0x12345678:32,r3l.b),@+er1 ;0108db9112345678
+ mov.l @(0x12345678:32,r3l.b),@er1- ;0108dba112345678
+ mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;0108dbc1123456789abc
+ mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;0108dbc9123456789abcdef0
+ mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3l.b) ;0108dbd3123456789abc
+ mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r3.w) ;0108dbe3123456789abc
+ mov.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er3.l) ;0108dbf3123456789abc
+ mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3l.b) ;0108dbdb123456789abcdef0
+ mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r3.w) ;0108dbeb123456789abcdef0
+ mov.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er3.l) ;0108dbfb123456789abcdef0
+ mov.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;0108db40123456789abc
+ mov.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;0108db48123456789abcdef0
+
+ mov.l @(0x12345678:32,r3.w),@er1 ;0108eb0112345678
+ mov.l @(0x12345678:32,r3.w),@(0x4:2,er1) ;0108eb1112345678
+ mov.l @(0x12345678:32,r3.w),@er1+ ;0108eb8112345678
+ mov.l @(0x12345678:32,r3.w),@-er1 ;0108ebb112345678
+ mov.l @(0x12345678:32,r3.w),@+er1 ;0108eb9112345678
+ mov.l @(0x12345678:32,r3.w),@er1- ;0108eba112345678
+ mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;0108ebc1123456789abc
+ mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;0108ebc9123456789abcdef0
+ mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r3l.b) ;0108ebd3123456789abc
+ mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r3.w) ;0108ebe3123456789abc
+ mov.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er3.l) ;0108ebf3123456789abc
+ mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3l.b) ;0108ebdb123456789abcdef0
+ mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r3.w) ;0108ebeb123456789abcdef0
+ mov.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er3.l) ;0108ebfb123456789abcdef0
+ mov.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;0108eb40123456789abc
+ mov.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;0108eb48123456789abcdef0
+
+ mov.l @(0x12345678:32,er3.l),@er1 ;0108fb0112345678
+ mov.l @(0x12345678:32,er3.l),@(0x4:2,er1) ;0108fb1112345678
+ mov.l @(0x12345678:32,er3.l),@er1+ ;0108fb8112345678
+ mov.l @(0x12345678:32,er3.l),@-er1 ;0108fbb112345678
+ mov.l @(0x12345678:32,er3.l),@+er1 ;0108fb9112345678
+ mov.l @(0x12345678:32,er3.l),@er1- ;0108fba112345678
+ mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;0108fbc1123456789abc
+ mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;0108fbc9123456789abcdef0
+ mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r3l.b) ;0108fbd3123456789abc
+ mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r3.w) ;0108fbe3123456789abc
+ mov.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er3.l) ;0108fbf3123456789abc
+ mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3l.b) ;0108fbdb123456789abcdef0
+ mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r3.w) ;0108fbeb123456789abcdef0
+ mov.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er3.l) ;0108fbfb123456789abcdef0
+ mov.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;0108fb40123456789abc
+ mov.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;0108fb48123456789abcdef0
+
+ mov.l @0x1234:16,@er1 ;010840011234
+ mov.l @0x1234:16,@(0x4:2,er1) ;010840111234
+ mov.l @0x1234:16,@er1+ ;010840811234
+ mov.l @0x1234:16,@-er1 ;010840b11234
+ mov.l @0x1234:16,@+er1 ;010840911234
+ mov.l @0x1234:16,@er1- ;010840a11234
+ mov.l @0x1234:16,@(0xffff9abc:16,er1) ;010840c112349abc
+ mov.l @0x1234:16,@(0x9abcdef0:32,er1) ;010840c912349abcdef0
+ mov.l @0x1234:16,@(0xffff9abc:16,r3l.b) ;010840d312349abc
+ mov.l @0x1234:16,@(0xffff9abc:16,r3.w) ;010840e312349abc
+ mov.l @0x1234:16,@(0xffff9abc:16,er3.l) ;010840f312349abc
+ mov.l @0x1234:16,@(0x9abcdef0:32,r3l.b) ;010840db12349abcdef0
+ mov.l @0x1234:16,@(0x9abcdef0:32,r3.w) ;010840eb12349abcdef0
+ mov.l @0x1234:16,@(0x9abcdef0:32,er3.l) ;010840fb12349abcdef0
+ mov.l @0x1234:16,@0xffff9abc:16 ;0108404012349abc
+ mov.l @0x1234:16,@0x9abcdef0:32 ;0108404812349abcdef0
+
+ mov.l @0x12345678:32,@er1 ;0108480112345678
+ mov.l @0x12345678:32,@(0x4:2,er1) ;0108481112345678
+ mov.l @0x12345678:32,@er1+ ;0108488112345678
+ mov.l @0x12345678:32,@-er1 ;010848b112345678
+ mov.l @0x12345678:32,@+er1 ;0108489112345678
+ mov.l @0x12345678:32,@er1- ;010848a112345678
+ mov.l @0x12345678:32,@(0xffff9abc:16,er1) ;010848c1123456789abc
+ mov.l @0x12345678:32,@(0x9abcdef0:32,er1) ;010848c9123456789abcdef0
+ mov.l @0x12345678:32,@(0xffff9abc:16,r3l.b) ;010848d3123456789abc
+ mov.l @0x12345678:32,@(0xffff9abc:16,r3.w) ;010848e3123456789abc
+ mov.l @0x12345678:32,@(0xffff9abc:16,er3.l) ;010848f3123456789abc
+ mov.l @0x12345678:32,@(0x9abcdef0:32,r3l.b) ;010848db123456789abcdef0
+ mov.l @0x12345678:32,@(0x9abcdef0:32,r3.w) ;010848eb123456789abcdef0
+ mov.l @0x12345678:32,@(0x9abcdef0:32,er3.l) ;010848fb123456789abcdef0
+ mov.l @0x12345678:32,@0xffff9abc:16 ;01084840123456789abc
+ mov.l @0x12345678:32,@0x9abcdef0:32 ;01084848123456789abcdef0
+
+ movtpe.b r2h,@0x1234:16 ;6ac21234
+ movfpe.b @0x1234:16,r1h ;6a411234
+
+ ldm @sp+,(er0-er1) ;01106d71
+ ldm @sp+,(er1-er2) ;01106d72
+ ldm @sp+,(er2-er3) ;01106d73
+ ldm @sp+,(er3-er4) ;01106d74
+ ldm @sp+,(er4-er5) ;01106d75
+ ldm @sp+,(er5-er6) ;01106d76
+ ldm @sp+,(er6-er7) ;01106d77
+
+ ldm @sp+,(er0-er2) ;01206d72
+ ldm @sp+,(er1-er3) ;01206d73
+ ldm @sp+,(er2-er4) ;01206d74
+ ldm @sp+,(er3-er5) ;01206d75
+ ldm @sp+,(er4-er6) ;01206d76
+ ldm @sp+,(er5-er7) ;01206d77
+
+ ldm @sp+,(er0-er3) ;01306d73
+ ldm @sp+,(er1-er4) ;01306d74
+ ldm @sp+,(er2-er5) ;01306d75
+ ldm @sp+,(er3-er6) ;01306d76
+ ldm @sp+,(er4-er7) ;01306d77
+
+ stm (er0-er1),@-sp ;01106df0
+ stm (er1-er2),@-sp ;01106df1
+ stm (er2-er3),@-sp ;01106df2
+ stm (er3-er4),@-sp ;01106df3
+ stm (er4-er5),@-sp ;01106df4
+ stm (er5-er6),@-sp ;01106df5
+ stm (er6-er7),@-sp ;01106df6
+
+ stm (er0-er2),@-sp ;01206df0
+ stm (er1-er3),@-sp ;01206df1
+ stm (er2-er4),@-sp ;01206df2
+ stm (er3-er5),@-sp ;01206df3
+ stm (er4-er6),@-sp ;01206df4
+ stm (er5-er7),@-sp ;01206df5
+
+ stm (er0-er3),@-sp ;01306df0
+ stm (er1-er4),@-sp ;01306df1
+ stm (er2-er5),@-sp ;01306df2
+ stm (er3-er6),@-sp ;01306df3
+ stm (er4-er7),@-sp ;01306df4
+
+ eepmov.b ;7b5c598f
+
+ eepmov.w ;7bd4598f
+
+ movmd.b ;7b94
+ movmd.w ;7ba4
+ movmd.l ;7bb4
+ movsd.b label ;7b840004
+ nop ;0000
+ nop ;0000
+label:
+
+ .end
+
diff --git a/gdb/testsuite/gdb.disasm/t02_mova.exp b/gdb/testsuite/gdb.disasm/t02_mova.exp
new file mode 100644
index 0000000..899bbfd
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t02_mova.exp
@@ -0,0 +1,486 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t02_mova"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "mova/b.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/b.c @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/b.c @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/w.c @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/w.c @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/l.c @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/l.c @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/b.c @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/b.c @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/w.c @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/w.c @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/l.c @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/l.c @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/b.l @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/b.l @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/w.l @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/w.l @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),r3l.b\\),er1" \
+ "mova/l.l @(0x1234:16,r3l.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),r3.w\\),er1" \
+ "mova/l.l @(0x1234:16,r3.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/b.l @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/b.l @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/w.l @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/w.l @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),r3l.b\\),er1" \
+ "mova/l.l @(0x12345678:32,r3l.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),r3.w\\),er1" \
+ "mova/l.l @(0x12345678:32,r3.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2.b\\),er1" \
+ "mova/b.l @(0x1234:16,@er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2\\+.b\\),er1" \
+ "mova/b.l @(0x1234:16,@er2+.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@-er2.b\\),er1" \
+ "mova/b.l @(0x1234:16,@-er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\+er2.b\\),er1" \
+ "mova/b.l @(0x1234:16,@+er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2-.b\\),er1" \
+ "mova/b.l @(0x1234:16,@er2-.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@0x9abc(:16|).b\\),er1" \
+ "mova/b.l @(0x1234:16,@0x9abc:16.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/b.l @(0x1234:16,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2.w\\),er1" \
+ "mova/b.l @(0x1234:16,@er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2\\+.w\\),er1" \
+ "mova/b.l @(0x1234:16,@er2+.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@-er2.w\\),er1" \
+ "mova/b.l @(0x1234:16,@-er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\+er2.w\\),er1" \
+ "mova/b.l @(0x1234:16,@+er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@er2-.w\\),er1" \
+ "mova/b.l @(0x1234:16,@er2-.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/b.l @(0x1234:16,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@0x9abc(:16|).w\\),er1" \
+ "mova/b.l @(0x1234:16,@0x9abc:16.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/b.l @(0x1234:16,@0x9abcdef0:32.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2.b\\),er1" \
+ "mova/w.l @(0x1234:16,@er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2\\+.b\\),er1" \
+ "mova/w.l @(0x1234:16,@er2+.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@-er2.b\\),er1" \
+ "mova/w.l @(0x1234:16,@-er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\+er2.b\\),er1" \
+ "mova/w.l @(0x1234:16,@+er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2-.b\\),er1" \
+ "mova/w.l @(0x1234:16,@er2-.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@0x9abc(:16|).b\\),er1" \
+ "mova/w.l @(0x1234:16,@0x9abc:16.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/w.l @(0x1234:16,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2.w\\),er1" \
+ "mova/w.l @(0x1234:16,@er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2\\+.w\\),er1" \
+ "mova/w.l @(0x1234:16,@er2+.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@-er2.w\\),er1" \
+ "mova/w.l @(0x1234:16,@-er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\+er2.w\\),er1" \
+ "mova/w.l @(0x1234:16,@+er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@er2-.w\\),er1" \
+ "mova/w.l @(0x1234:16,@er2-.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/w.l @(0x1234:16,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@0x9abc(:16|).w\\),er1" \
+ "mova/w.l @(0x1234:16,@0x9abc:16.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/w.l @(0x1234:16,@0x9abcdef0:32.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2.b\\),er1" \
+ "mova/l.l @(0x1234:16,@er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2\\+.b\\),er1" \
+ "mova/l.l @(0x1234:16,@er2+.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@-er2.b\\),er1" \
+ "mova/l.l @(0x1234:16,@-er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\+er2.b\\),er1" \
+ "mova/l.l @(0x1234:16,@+er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2-.b\\),er1" \
+ "mova/l.l @(0x1234:16,@er2-.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@0x9abc(:16|).b\\),er1" \
+ "mova/l.l @(0x1234:16,@0x9abc:16.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/l.l @(0x1234:16,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2.w\\),er1" \
+ "mova/l.l @(0x1234:16,@er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2\\+.w\\),er1" \
+ "mova/l.l @(0x1234:16,@er2+.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@-er2.w\\),er1" \
+ "mova/l.l @(0x1234:16,@-er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\+er2.w\\),er1" \
+ "mova/l.l @(0x1234:16,@+er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@er2-.w\\),er1" \
+ "mova/l.l @(0x1234:16,@er2-.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/l.l @(0x1234:16,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@0x9abc(:16|).w\\),er1" \
+ "mova/l.l @(0x1234:16,@0x9abc:16.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x1234(:16|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/l.l @(0x1234:16,@0x9abcdef0:32.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2.b\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2\\+.b\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2+.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@-er2.b\\),er1" \
+ "mova/b.l @(0x12345678:32,@-er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\+er2.b\\),er1" \
+ "mova/b.l @(0x12345678:32,@+er2.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2-.b\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2-.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@0x9abc(:16|).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@0x9abc:16.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/b.l @(0x12345678:32,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2.w\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2\\+.w\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2+.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@-er2.w\\),er1" \
+ "mova/b.l @(0x12345678:32,@-er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\+er2.w\\),er1" \
+ "mova/b.l @(0x12345678:32,@+er2.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@er2-.w\\),er1" \
+ "mova/b.l @(0x12345678:32,@er2-.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@0x9abc(:16|).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@0x9abc:16.w),er1"
+gdb_test "x" "mova/b.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/b.l @(0x12345678:32,@0x9abcdef0:32.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2.b\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2\\+.b\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2+.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@-er2.b\\),er1" \
+ "mova/w.l @(0x12345678:32,@-er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\+er2.b\\),er1" \
+ "mova/w.l @(0x12345678:32,@+er2.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2-.b\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2-.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@0x9abc(:16|).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@0x9abc:16.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/w.l @(0x12345678:32,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2.w\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2\\+.w\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2+.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@-er2.w\\),er1" \
+ "mova/w.l @(0x12345678:32,@-er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\+er2.w\\),er1" \
+ "mova/w.l @(0x12345678:32,@+er2.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@er2-.w\\),er1" \
+ "mova/w.l @(0x12345678:32,@er2-.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@0x9abc(:16|).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@0x9abc:16.w),er1"
+gdb_test "x" "mova/w.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/w.l @(0x12345678:32,@0x9abcdef0:32.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2.b\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x1(:2|),er2\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2\\+.b\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2+.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@-er2.b\\),er1" \
+ "mova/l.l @(0x12345678:32,@-er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\+er2.b\\),er1" \
+ "mova/l.l @(0x12345678:32,@+er2.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2-.b\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2-.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,er2).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,r2l.b).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,r2.w).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,er2.l).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@0x9abc(:16|).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@0x9abc:16.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).b\\),er1" \
+ "mova/l.l @(0x12345678:32,@0x9abcdef0:32.b),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2.w\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x2(:2|),er2\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2\\+.w\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2+.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@-er2.w\\),er1" \
+ "mova/l.l @(0x12345678:32,@-er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\+er2.w\\),er1" \
+ "mova/l.l @(0x12345678:32,@+er2.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@er2-.w\\),er1" \
+ "mova/l.l @(0x12345678:32,@er2-.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,er2).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,r2l.b).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,r2.w).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abc:16,er2.l).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,r2l.b).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,r2.w).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@(0x9abcdef0:32,er2.l).w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@0x9abc(:16|).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@0x9abc:16.w),er1"
+gdb_test "x" "mova/l.l\t@\\(0x12345678(:32|),@0x9abcdef0(:32|).w\\),er1" \
+ "mova/l.l @(0x12345678:32,@0x9abcdef0:32.w),er1"
diff --git a/gdb/testsuite/gdb.disasm/t02_mova.s b/gdb/testsuite/gdb.disasm/t02_mova.s
new file mode 100644
index 0000000..8a2e228
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t02_mova.s
@@ -0,0 +1,238 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;mova
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ mova/b.c @(0x1234:16,r3l.b),er1 ;7A891234
+ mova/b.c @(0x1234:16,r3.w),er1 ;7A991234
+ mova/w.c @(0x1234:16,r3l.b),er1 ;7AA91234
+ mova/w.c @(0x1234:16,r3.w),er1 ;7AB91234
+ mova/l.c @(0x1234:16,r3l.b),er1 ;7AC91234
+ mova/l.c @(0x1234:16,r3.w),er1 ;7AD91234
+ mova/b.c @(0x12345678:32,r3l.b),er1 ;7A8112345678
+ mova/b.c @(0x12345678:32,r3.w),er1 ;7A9112345678
+ mova/w.c @(0x12345678:32,r3l.b),er1 ;7AA112345678
+ mova/w.c @(0x12345678:32,r3.w),er1 ;7AB112345678
+ mova/l.c @(0x12345678:32,r3l.b),er1 ;7AC112345678
+ mova/l.c @(0x12345678:32,r3.w),er1 ;7AD112345678
+
+ mova/b.l @(0x1234:16,r3l.b),er1 ;78B87A891234
+ mova/b.l @(0x1234:16,r3.w),er1 ;78397A991234
+ mova/w.l @(0x1234:16,r3l.b),er1 ;78B87AA91234
+ mova/w.l @(0x1234:16,r3.w),er1 ;78397AB91234
+ mova/l.l @(0x1234:16,r3l.b),er1 ;78B87AC91234
+ mova/l.l @(0x1234:16,r3.w),er1 ;78397AD91234
+ mova/b.l @(0x12345678:32,r3l.b),er1 ;78B87A8112345678
+ mova/b.l @(0x12345678:32,r3.w),er1 ;78397A9112345678
+ mova/w.l @(0x12345678:32,r3l.b),er1 ;78B87AA112345678
+ mova/w.l @(0x12345678:32,r3.w),er1 ;78397AB112345678
+ mova/l.l @(0x12345678:32,r3l.b),er1 ;78B87AC112345678
+ mova/l.l @(0x12345678:32,r3.w),er1 ;78397AD112345678
+
+ mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234
+ mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234
+ mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234
+ mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234
+ mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234
+ mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2819ABC1234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1 ;017FCA819ABCDEF01234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2819ABC1234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2819ABC1234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2819ABC1234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDA819ABCDEF01234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEA819ABCDEF01234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFA819ABCDEF01234
+ mova/b.l @(0x1234:16,@0xFFFF9ABC:16.b),er1 ;017F40819ABC1234
+ mova/b.l @(0x1234:16,@0x9ABCDEF0:32.b),er1 ;017F48819ABCDEF01234
+
+ mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234
+ mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234
+ mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234
+ mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234
+ mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234
+ mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2919ABC1234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1 ;015FCA919ABCDEF01234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2919ABC1234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2919ABC1234
+ mova/b.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2919ABC1234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDA919ABCDEF01234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEA919ABCDEF01234
+ mova/b.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFA919ABCDEF01234
+ mova/b.l @(0x1234:16,@0xFFFF9ABC:16.w),er1 ;015F40919ABC1234
+ mova/b.l @(0x1234:16,@0x9ABCDEF0:32.w),er1 ;015F48919ABCDEF01234
+
+ mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234
+ mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234
+ mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234
+ mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234
+ mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234
+ mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2A19ABC1234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1 ;017FCAA19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2A19ABC1234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2A19ABC1234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2A19ABC1234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAA19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAA19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAA19ABCDEF01234
+ mova/w.l @(0x1234:16,@0xFFFF9ABC:16.b),er1 ;017F40A19ABC1234
+ mova/w.l @(0x1234:16,@0x9ABCDEF0:32.b),er1 ;017F48A19ABCDEF01234
+
+ mova/w.l @(0x1234:16,@er2.w),er1 ;015F02B11234
+ mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234
+ mova/w.l @(0x1234:16,@er2+.w),er1 ;015F82B11234
+ mova/w.l @(0x1234:16,@-er2.w),er1 ;015FB2B11234
+ mova/w.l @(0x1234:16,@+er2.w),er1 ;015F92B11234
+ mova/w.l @(0x1234:16,@er2-.w),er1 ;015FA2B11234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2B19ABC1234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1 ;015FCAB19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2B19ABC1234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2B19ABC1234
+ mova/w.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2B19ABC1234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAB19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAB19ABCDEF01234
+ mova/w.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAB19ABCDEF01234
+ mova/w.l @(0x1234:16,@0xFFFF9ABC:16.w),er1 ;015F40B19ABC1234
+ mova/w.l @(0x1234:16,@0x9ABCDEF0:32.w),er1 ;015F48B19ABCDEF01234
+
+ mova/l.l @(0x1234:16,@er2.b),er1 ;017F02C11234
+ mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12C11234
+ mova/l.l @(0x1234:16,@er2+.b),er1 ;017F82C11234
+ mova/l.l @(0x1234:16,@-er2.b),er1 ;017FB2C11234
+ mova/l.l @(0x1234:16,@+er2.b),er1 ;017F92C11234
+ mova/l.l @(0x1234:16,@er2-.b),er1 ;017FA2C11234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2C19ABC1234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2).b),er1 ;017FCAC19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2C19ABC1234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2C19ABC1234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2C19ABC1234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAC19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAC19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAC19ABCDEF01234
+ mova/l.l @(0x1234:16,@0xFFFF9ABC:16.b),er1 ;017F40C19ABC1234
+ mova/l.l @(0x1234:16,@0x9ABCDEF0:32.b),er1 ;017F48C19ABCDEF01234
+
+ mova/l.l @(0x1234:16,@er2.w),er1 ;015F02D11234
+ mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12D11234
+ mova/l.l @(0x1234:16,@er2+.w),er1 ;015F82D11234
+ mova/l.l @(0x1234:16,@-er2.w),er1 ;015FB2D11234
+ mova/l.l @(0x1234:16,@+er2.w),er1 ;015F92D11234
+ mova/l.l @(0x1234:16,@er2-.w),er1 ;015FA2D11234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2D19ABC1234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2).w),er1 ;015FCAD19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2D19ABC1234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2D19ABC1234
+ mova/l.l @(0x1234:16,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2D19ABC1234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAD19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAD19ABCDEF01234
+ mova/l.l @(0x1234:16,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAD19ABCDEF01234
+ mova/l.l @(0x1234:16,@0xFFFF9ABC:16.w),er1 ;015F40D19ABC1234
+ mova/l.l @(0x1234:16,@0x9ABCDEF0:32.w),er1 ;015F48D19ABCDEF01234
+
+ mova/b.l @(0x12345678:32,@er2.b),er1 ;017F028912345678
+ mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F128912345678
+ mova/b.l @(0x12345678:32,@er2+.b),er1 ;017F828912345678
+ mova/b.l @(0x12345678:32,@-er2.b),er1 ;017FB28912345678
+ mova/b.l @(0x12345678:32,@+er2.b),er1 ;017F928912345678
+ mova/b.l @(0x12345678:32,@er2-.b),er1 ;017FA28912345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2899ABC12345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1 ;017FCA899ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2899ABC12345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2899ABC12345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2899ABC12345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDA899ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEA899ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFA899ABCDEF012345678
+ mova/b.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1 ;017F40899ABC12345678
+ mova/b.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1 ;017F48899ABCDEF012345678
+
+ mova/b.l @(0x12345678:32,@er2.w),er1 ;015F029912345678
+ mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F129912345678
+ mova/b.l @(0x12345678:32,@er2+.w),er1 ;015F829912345678
+ mova/b.l @(0x12345678:32,@-er2.w),er1 ;015FB29912345678
+ mova/b.l @(0x12345678:32,@+er2.w),er1 ;015F929912345678
+ mova/b.l @(0x12345678:32,@er2-.w),er1 ;015FA29912345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2999ABC12345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1 ;015FCA999ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2999ABC12345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2999ABC12345678
+ mova/b.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2999ABC12345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDA999ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEA999ABCDEF012345678
+ mova/b.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFA999ABCDEF012345678
+ mova/b.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1 ;015F40999ABC12345678
+ mova/b.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1 ;015F48999ABCDEF012345678
+
+ mova/w.l @(0x12345678:32,@er2.b),er1 ;017F02A912345678
+ mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12A912345678
+ mova/w.l @(0x12345678:32,@er2+.b),er1 ;017F82A912345678
+ mova/w.l @(0x12345678:32,@-er2.b),er1 ;017FB2A912345678
+ mova/w.l @(0x12345678:32,@+er2.b),er1 ;017F92A912345678
+ mova/w.l @(0x12345678:32,@er2-.b),er1 ;017FA2A912345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2A99ABC12345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1 ;017FCAA99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2A99ABC12345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2A99ABC12345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2A99ABC12345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAA99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAA99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAA99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1 ;017F40A99ABC12345678
+ mova/w.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1 ;017F48A99ABCDEF012345678
+
+ mova/w.l @(0x12345678:32,@er2.w),er1 ;015F02B912345678
+ mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12B912345678
+ mova/w.l @(0x12345678:32,@er2+.w),er1 ;015F82B912345678
+ mova/w.l @(0x12345678:32,@-er2.w),er1 ;015FB2B912345678
+ mova/w.l @(0x12345678:32,@+er2.w),er1 ;015F92B912345678
+ mova/w.l @(0x12345678:32,@er2-.w),er1 ;015FA2B912345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2B99ABC12345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1 ;015FCAB99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2B99ABC12345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2B99ABC12345678
+ mova/w.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2B99ABC12345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAB99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAB99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAB99ABCDEF012345678
+ mova/w.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1 ;015F40B99ABC12345678
+ mova/w.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1 ;015F48B99ABCDEF012345678
+
+ mova/l.l @(0x12345678:32,@er2.b),er1 ;017F02C912345678
+ mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12C912345678
+ mova/l.l @(0x12345678:32,@er2+.b),er1 ;017F82C912345678
+ mova/l.l @(0x12345678:32,@-er2.b),er1 ;017FB2C912345678
+ mova/l.l @(0x12345678:32,@+er2.b),er1 ;017F92C912345678
+ mova/l.l @(0x12345678:32,@er2-.b),er1 ;017FA2C912345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).b),er1 ;017FC2C99ABC12345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).b),er1 ;017FCAC99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).b),er1 ;017FD2C99ABC12345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).b),er1 ;017FE2C99ABC12345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).b),er1 ;017FF2C99ABC12345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).b),er1 ;017FDAC99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).b),er1 ;017FEAC99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).b),er1 ;017FFAC99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@0xFFFF9ABC:16.b),er1 ;017F40C99ABC12345678
+ mova/l.l @(0x12345678:32,@0x9ABCDEF0:32.b),er1 ;017F48C99ABCDEF012345678
+
+ mova/l.l @(0x12345678:32,@er2.w),er1 ;015F02D912345678
+ mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678
+ mova/l.l @(0x12345678:32,@er2+.w),er1 ;015F82D912345678
+ mova/l.l @(0x12345678:32,@-er2.w),er1 ;015FB2D912345678
+ mova/l.l @(0x12345678:32,@+er2.w),er1 ;015F92D912345678
+ mova/l.l @(0x12345678:32,@er2-.w),er1 ;015FA2D912345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2).w),er1 ;015FC2D99ABC12345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2).w),er1 ;015FCAD99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2L.b).w),er1 ;015FD2D99ABC12345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,r2.w).w),er1 ;015FE2D99ABC12345678
+ mova/l.l @(0x12345678:32,@(0xFFFF9ABC:16,er2.l).w),er1 ;015FF2D99ABC12345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2L.b).w),er1 ;015FDAD99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,r2.w).w),er1 ;015FEAD99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@(0x9ABCDEF0:32,er2.l).w),er1 ;015FFAD99ABCDEF012345678
+ mova/l.l @(0x12345678:32,@0xFFFF9ABC:16.w),er1 ;015F40D99ABC12345678
+ mova/l.l @(0x12345678:32,@0x9ABCDEF0:32.w),er1 ;015F48D99ABCDEF012345678
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t03_add.exp b/gdb/testsuite/gdb.disasm/t03_add.exp
new file mode 100644
index 0000000..5128fb9
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t03_add.exp
@@ -0,0 +1,1876 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t03_add"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "add.b\t#0x12(:8|),r1h" \
+ "add.b #0x12:8,r1h"
+gdb_test "x" "add.b\t#0x12(:8|),@er1" \
+ "add.b #0x12:8,@er1"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x3(:2|),er1\\)" \
+ "add.b #0x12:8,@(0x3:2,er1)"
+gdb_test "x" "add.b\t#0x12(:8|),@er1\\+" \
+ "add.b #0x12:8,@er1+"
+gdb_test "x" "add.b\t#0x12(:8|),@-er1" \
+ "add.b #0x12:8,@-er1"
+gdb_test "x" "add.b\t#0x12(:8|),@\\+er1" \
+ "add.b #0x12:8,@+er1"
+gdb_test "x" "add.b\t#0x12(:8|),@er1-" \
+ "add.b #0x12:8,@er1-"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x1234(:16|),er1\\)" \
+ "add.b #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x12345678(:32|),er1\\)" \
+ "add.b #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x1234(:16|),r2l.b\\)" \
+ "add.b #0x12:8,@(0x1234:16,r2l.b)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x1234(:16|),r2.w\\)" \
+ "add.b #0x12:8,@(0x1234:16,r2.w)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x1234(:16|),er2.l\\)" \
+ "add.b #0x12:8,@(0x1234:16,er2.l)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x12345678(:32|),r2l.b\\)" \
+ "add.b #0x12:8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x12345678(:32|),r2.w\\)" \
+ "add.b #0x12:8,@(0x12345678:32,r2.w)"
+gdb_test "x" "add.b\t#0x12(:8|),@\\(0x12345678(:32|),er2.l\\)" \
+ "add.b #0x12:8,@(0x12345678:32,er2.l)"
+gdb_test "x" "add.b\t#0x12(:8|),@0x9a(:8|)" \
+ "add.b #0x12:8,@0x9a:8"
+gdb_test "x" "add.b\t#0x12(:8|),@0x1234(:16|)" \
+ "add.b #0x12:8,@0x1234:16"
+gdb_test "x" "add.b\t#0x12(:8|),@0x12345678(:32|)" \
+ "add.b #0x12:8,@0x12345678:32"
+gdb_test "x" "add.b\tr3h,r1h" \
+ "add.b r3h,r1h"
+gdb_test "x" "add.b\tr3h,@er1" \
+ "add.b r3h,@er1"
+gdb_test "x" "add.b\tr3h,@\\(0x3(:2|),er1\\)" \
+ "add.b r3h,@(0x3:2,er1)"
+gdb_test "x" "add.b\tr3h,@er1\\+" \
+ "add.b r3h,@er1+"
+gdb_test "x" "add.b\tr3h,@-er1" \
+ "add.b r3h,@-er1"
+gdb_test "x" "add.b\tr3h,@\\+er1" \
+ "add.b r3h,@+er1"
+gdb_test "x" "add.b\tr3h,@er1-" \
+ "add.b r3h,@er1-"
+gdb_test "x" "add.b\tr3h,@\\(0x1234(:16|),er1\\)" \
+ "add.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "add.b\tr3h,@\\(0x12345678(:32|),er1\\)" \
+ "add.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "add.b\tr3h,@\\(0x1234(:16|),r2l.b\\)" \
+ "add.b r3h,@(0x1234:16,r2l.b)"
+gdb_test "x" "add.b\tr3h,@\\(0x1234(:16|),r2.w\\)" \
+ "add.b r3h,@(0x1234:16,r2.w)"
+gdb_test "x" "add.b\tr3h,@\\(0x1234(:16|),er2.l\\)" \
+ "add.b r3h,@(0x1234:16,er2.l)"
+gdb_test "x" "add.b\tr3h,@\\(0x12345678(:32|),r2l.b\\)" \
+ "add.b r3h,@(0x12345678:32,r2l.b)"
+gdb_test "x" "add.b\tr3h,@\\(0x12345678(:32|),r2.w\\)" \
+ "add.b r3h,@(0x12345678:32,r2.w)"
+gdb_test "x" "add.b\tr3h,@\\(0x12345678(:32|),er2.l\\)" \
+ "add.b r3h,@(0x12345678:32,er2.l)"
+gdb_test "x" "add.b\tr3h,@0x12(:8|)" \
+ "add.b r3h,@0x12:8"
+gdb_test "x" "add.b\tr3h,@0x1234(:16|)" \
+ "add.b r3h,@0x1234:16"
+gdb_test "x" "add.b\tr3h,@0x12345678(:32|)" \
+ "add.b r3h,@0x12345678:32"
+gdb_test "x" "add.b\t@er3,r1h" \
+ "add.b @er3,r1h"
+gdb_test "x" "add.b\t@\\(0x3(:2|),er3\\),r1h" \
+ "add.b @(0x3:2,er3),r1h"
+gdb_test "x" "add.b\t@er3\\+,r1h" \
+ "add.b @er3+,r1h"
+gdb_test "x" "add.b\t@-er3,r1h" \
+ "add.b @-er3,r1h"
+gdb_test "x" "add.b\t@\\+er3,r1h" \
+ "add.b @+er3,r1h"
+gdb_test "x" "add.b\t@er3-,r1h" \
+ "add.b @er3-,r1h"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er1\\),r1h" \
+ "add.b @(0x1234:16,er1),r1h"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er1\\),r1h" \
+ "add.b @(0x12345678:32,er1),r1h"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r2l.b\\),r1h" \
+ "add.b @(0x1234:16,r2l.b),r1h"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r2.w\\),r1h" \
+ "add.b @(0x1234:16,r2.w),r1h"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er2.l\\),r1h" \
+ "add.b @(0x1234:16,er2.l),r1h"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r2l.b\\),r1h" \
+ "add.b @(0x12345678:32,r2l.b),r1h"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r2.w\\),r1h" \
+ "add.b @(0x12345678:32,r2.w),r1h"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er2.l\\),r1h" \
+ "add.b @(0x12345678:32,er2.l),r1h"
+gdb_test "x" "add.b\t@0x12(:8|),r1h" \
+ "add.b @0x12:8,r1h"
+gdb_test "x" "add.b\t@0x1234(:16|),r1h" \
+ "add.b @0x1234:16,r1h"
+gdb_test "x" "add.b\t@0x12345678(:32|),r1h" \
+ "add.b @0x12345678:32,r1h"
+gdb_test "x" "add.b\t@er3,@er1" \
+ "add.b @er3,@er1"
+gdb_test "x" "add.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "add.b @er3,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@er3,@-er1" \
+ "add.b @er3,@-er1"
+gdb_test "x" "add.b\t@er3,@er1\\+" \
+ "add.b @er3,@er1+"
+gdb_test "x" "add.b\t@er3,@er1-" \
+ "add.b @er3,@er1-"
+gdb_test "x" "add.b\t@er3,@\\+er1" \
+ "add.b @er3,@+er1"
+gdb_test "x" "add.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@er3,@0x9abc(:16|)" \
+ "add.b @er3,@0x9abc:16"
+gdb_test "x" "add.b\t@er3,@0x9abcdef0(:32|)" \
+ "add.b @er3,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@-er3,@er1" \
+ "add.b @-er3,@er1"
+gdb_test "x" "add.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "add.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@-er3,@-er1" \
+ "add.b @-er3,@-er1"
+gdb_test "x" "add.b\t@-er3,@er1\\+" \
+ "add.b @-er3,@er1+"
+gdb_test "x" "add.b\t@-er3,@er1-" \
+ "add.b @-er3,@er1-"
+gdb_test "x" "add.b\t@-er3,@\\+er1" \
+ "add.b @-er3,@+er1"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@-er3,@0x9abc(:16|)" \
+ "add.b @-er3,@0x9abc:16"
+gdb_test "x" "add.b\t@-er3,@0x9abcdef0(:32|)" \
+ "add.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@er3\\+,@er1" \
+ "add.b @er3+,@er1"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "add.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@er3\\+,@-er1" \
+ "add.b @er3+,@-er1"
+gdb_test "x" "add.b\t@er3\\+,@er1\\+" \
+ "add.b @er3+,@er1+"
+gdb_test "x" "add.b\t@er3\\+,@er1-" \
+ "add.b @er3+,@er1-"
+gdb_test "x" "add.b\t@er3\\+,@\\+er1" \
+ "add.b @er3+,@+er1"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "add.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@er3\\+,@0x9abc(:16|)" \
+ "add.b @er3+,@0x9abc:16"
+gdb_test "x" "add.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "add.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@er3-,@er1" \
+ "add.b @er3-,@er1"
+gdb_test "x" "add.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "add.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@er3-,@-er1" \
+ "add.b @er3-,@-er1"
+gdb_test "x" "add.b\t@er3-,@er1\\+" \
+ "add.b @er3-,@er1+"
+gdb_test "x" "add.b\t@er3-,@er1-" \
+ "add.b @er3-,@er1-"
+gdb_test "x" "add.b\t@er3-,@\\+er1" \
+ "add.b @er3-,@+er1"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "add.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@er3-,@0x9abc(:16|)" \
+ "add.b @er3-,@0x9abc:16"
+gdb_test "x" "add.b\t@er3-,@0x9abcdef0(:32|)" \
+ "add.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\+er3,@er1" \
+ "add.b @+er3,@er1"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "add.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\+er3,@-er1" \
+ "add.b @+er3,@-er1"
+gdb_test "x" "add.b\t@\\+er3,@er1\\+" \
+ "add.b @+er3,@er1+"
+gdb_test "x" "add.b\t@\\+er3,@er1-" \
+ "add.b @+er3,@er1-"
+gdb_test "x" "add.b\t@\\+er3,@\\+er1" \
+ "add.b @+er3,@+er1"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\+er3,@0x9abc(:16|)" \
+ "add.b @+er3,@0x9abc:16"
+gdb_test "x" "add.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "add.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "add.b @(0x1234:16,er3),@er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "add.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "add.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "add.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "add.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "add.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "add.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "add.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "add.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "add.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "add.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "add.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "add.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "add.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "add.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "add.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "add.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "add.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "add.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "add.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "add.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "add.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "add.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "add.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "add.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "add.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "add.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "add.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "add.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "add.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "add.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "add.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "add.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "add.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "add.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "add.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "add.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "add.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "add.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "add.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "add.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "add.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "add.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "add.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "add.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "add.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "add.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "add.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "add.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.b\t@0x1234(:16|),@er1" \
+ "add.b @0x1234:16,@er1"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "add.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@0x1234(:16|),@-er1" \
+ "add.b @0x1234:16,@-er1"
+gdb_test "x" "add.b\t@0x1234(:16|),@er1\\+" \
+ "add.b @0x1234:16,@er1+"
+gdb_test "x" "add.b\t@0x1234(:16|),@er1-" \
+ "add.b @0x1234:16,@er1-"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\+er1" \
+ "add.b @0x1234:16,@+er1"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "add.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "add.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "add.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "add.b\t@0x12345678(:32|),@er1" \
+ "add.b @0x12345678:32,@er1"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "add.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@-er1" \
+ "add.b @0x12345678:32,@-er1"
+gdb_test "x" "add.b\t@0x12345678(:32|),@er1\\+" \
+ "add.b @0x12345678:32,@er1+"
+gdb_test "x" "add.b\t@0x12345678(:32|),@er1-" \
+ "add.b @0x12345678:32,@er1-"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\+er1" \
+ "add.b @0x12345678:32,@+er1"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "add.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "add.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "add.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "add.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "add.w\t#0x1234(:16|),r1" \
+ "add.w #0x1234:16,r1"
+gdb_test "x" "add.w\t#0x7(:3|),r2" \
+ "add.w #0x7:3,r2"
+gdb_test "x" "add.w\t#0x1234(:16|),@er1" \
+ "add.w #0x1234:16,@er1"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "add.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "add.w\t#0x1234(:16|),@er1\\+" \
+ "add.w #0x1234:16,@er1+"
+gdb_test "x" "add.w\t#0x1234(:16|),@-er1" \
+ "add.w #0x1234:16,@-er1"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\+er1" \
+ "add.w #0x1234:16,@+er1"
+gdb_test "x" "add.w\t#0x1234(:16|),@er1-" \
+ "add.w #0x1234:16,@er1-"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "add.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "add.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "add.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "add.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "add.w\t#0x7(:3|),@er1" \
+ "add.w #0x7:3,@er1"
+gdb_test "x" "add.w\t#0x7(:3|),@0x1234(:16|)" \
+ "add.w #0x7:3,@0x1234:16"
+gdb_test "x" "add.w\t#0x7(:3|),@0x12345678(:32|)" \
+ "add.w #0x7:3,@0x12345678:32"
+gdb_test "x" "add.w\tr3,r1" \
+ "add.w r3,r1"
+gdb_test "x" "add.w\tr3,@er1" \
+ "add.w r3,@er1"
+gdb_test "x" "add.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "add.w r3,@(0x6:2,er1)"
+gdb_test "x" "add.w\tr3,@er1\\+" \
+ "add.w r3,@er1+"
+gdb_test "x" "add.w\tr3,@-er1" \
+ "add.w r3,@-er1"
+gdb_test "x" "add.w\tr3,@\\+er1" \
+ "add.w r3,@+er1"
+gdb_test "x" "add.w\tr3,@er1-" \
+ "add.w r3,@er1-"
+gdb_test "x" "add.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "add.w r3,@(0x1234:16,er1)"
+gdb_test "x" "add.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "add.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "add.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "add.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "add.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "add.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "add.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "add.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "add.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "add.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "add.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "add.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "add.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "add.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "add.w\tr3,@0x1234(:16|)" \
+ "add.w r3,@0x1234:16"
+gdb_test "x" "add.w\tr3,@0x12345678(:32|)" \
+ "add.w r3,@0x12345678:32"
+gdb_test "x" "add.w\t@er3,r1" \
+ "add.w @er3,r1"
+gdb_test "x" "add.w\t@\\(0x6(:2|),er1\\),r1" \
+ "add.w @(0x6:2,er1),r1"
+gdb_test "x" "add.w\t@er3\\+,r1" \
+ "add.w @er3+,r1"
+gdb_test "x" "add.w\t@-er3,r1" \
+ "add.w @-er3,r1"
+gdb_test "x" "add.w\t@\\+er3,r1" \
+ "add.w @+er3,r1"
+gdb_test "x" "add.w\t@er3-,r1" \
+ "add.w @er3-,r1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "add.w @(0x1234:16,er1),r1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "add.w @(0x12345678:32,er1),r1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "add.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "add.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "add.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "add.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "add.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "add.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "add.w\t@0x1234(:16|),r1" \
+ "add.w @0x1234:16,r1"
+gdb_test "x" "add.w\t@0x12345678(:32|),r1" \
+ "add.w @0x12345678:32,r1"
+gdb_test "x" "add.w\t@er3,@er1" \
+ "add.w @er3,@er1"
+gdb_test "x" "add.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "add.w @er3,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@er3,@-er1" \
+ "add.w @er3,@-er1"
+gdb_test "x" "add.w\t@er3,@er1\\+" \
+ "add.w @er3,@er1+"
+gdb_test "x" "add.w\t@er3,@er1-" \
+ "add.w @er3,@er1-"
+gdb_test "x" "add.w\t@er3,@\\+er1" \
+ "add.w @er3,@+er1"
+gdb_test "x" "add.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@er3,@0x9abc(:16|)" \
+ "add.w @er3,@0x9abc:16"
+gdb_test "x" "add.w\t@er3,@0x9abcdef0(:32|)" \
+ "add.w @er3,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@-er3,@er1" \
+ "add.w @-er3,@er1"
+gdb_test "x" "add.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "add.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@-er3,@-er1" \
+ "add.w @-er3,@-er1"
+gdb_test "x" "add.w\t@-er3,@er1\\+" \
+ "add.w @-er3,@er1+"
+gdb_test "x" "add.w\t@-er3,@er1-" \
+ "add.w @-er3,@er1-"
+gdb_test "x" "add.w\t@-er3,@\\+er1" \
+ "add.w @-er3,@+er1"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@-er3,@0x9abc(:16|)" \
+ "add.w @-er3,@0x9abc:16"
+gdb_test "x" "add.w\t@-er3,@0x9abcdef0(:32|)" \
+ "add.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@er3\\+,@er1" \
+ "add.w @er3+,@er1"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "add.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@er3\\+,@-er1" \
+ "add.w @er3+,@-er1"
+gdb_test "x" "add.w\t@er3\\+,@er1\\+" \
+ "add.w @er3+,@er1+"
+gdb_test "x" "add.w\t@er3\\+,@er1-" \
+ "add.w @er3+,@er1-"
+gdb_test "x" "add.w\t@er3\\+,@\\+er1" \
+ "add.w @er3+,@+er1"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "add.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@er3\\+,@0x9abc(:16|)" \
+ "add.w @er3+,@0x9abc:16"
+gdb_test "x" "add.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "add.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@er3-,@er1" \
+ "add.w @er3-,@er1"
+gdb_test "x" "add.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "add.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@er3-,@-er1" \
+ "add.w @er3-,@-er1"
+gdb_test "x" "add.w\t@er3-,@er1\\+" \
+ "add.w @er3-,@er1+"
+gdb_test "x" "add.w\t@er3-,@er1-" \
+ "add.w @er3-,@er1-"
+gdb_test "x" "add.w\t@er3-,@\\+er1" \
+ "add.w @er3-,@+er1"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "add.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@er3-,@0x9abc(:16|)" \
+ "add.w @er3-,@0x9abc:16"
+gdb_test "x" "add.w\t@er3-,@0x9abcdef0(:32|)" \
+ "add.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\+er3,@er1" \
+ "add.w @+er3,@er1"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "add.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\+er3,@-er1" \
+ "add.w @+er3,@-er1"
+gdb_test "x" "add.w\t@\\+er3,@er1\\+" \
+ "add.w @+er3,@er1+"
+gdb_test "x" "add.w\t@\\+er3,@er1-" \
+ "add.w @+er3,@er1-"
+gdb_test "x" "add.w\t@\\+er3,@\\+er1" \
+ "add.w @+er3,@+er1"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\+er3,@0x9abc(:16|)" \
+ "add.w @+er3,@0x9abc:16"
+gdb_test "x" "add.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "add.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "add.w @(0x1234:16,er3),@er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "add.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "add.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "add.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "add.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "add.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "add.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "add.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "add.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "add.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "add.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "add.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "add.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "add.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "add.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "add.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "add.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "add.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "add.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "add.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "add.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "add.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "add.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "add.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "add.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "add.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "add.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "add.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "add.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "add.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "add.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "add.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "add.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "add.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "add.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "add.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "add.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "add.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "add.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "add.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "add.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "add.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "add.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "add.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "add.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "add.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "add.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "add.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "add.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.w\t@0x1234(:16|),@er1" \
+ "add.w @0x1234:16,@er1"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "add.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@0x1234(:16|),@-er1" \
+ "add.w @0x1234:16,@-er1"
+gdb_test "x" "add.w\t@0x1234(:16|),@er1\\+" \
+ "add.w @0x1234:16,@er1+"
+gdb_test "x" "add.w\t@0x1234(:16|),@er1-" \
+ "add.w @0x1234:16,@er1-"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\+er1" \
+ "add.w @0x1234:16,@+er1"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "add.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "add.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "add.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "add.w\t@0x12345678(:32|),@er1" \
+ "add.w @0x12345678:32,@er1"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "add.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@-er1" \
+ "add.w @0x12345678:32,@-er1"
+gdb_test "x" "add.w\t@0x12345678(:32|),@er1\\+" \
+ "add.w @0x12345678:32,@er1+"
+gdb_test "x" "add.w\t@0x12345678(:32|),@er1-" \
+ "add.w @0x12345678:32,@er1-"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\+er1" \
+ "add.w @0x12345678:32,@+er1"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "add.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "add.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "add.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "add.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "add.l\t#0x12345678(:32|),er1" \
+ "add.l #0x12345678:32,er1"
+gdb_test "x" "add.l\t#0x1234(:16|),er1" \
+ "add.l #0x1234:16,er1"
+gdb_test "x" "add.l\t#0x7(:3|),er2" \
+ "add.l #0x7:3,er2"
+gdb_test "x" "add.l\t#0x12345678(:32|),@er1" \
+ "add.l #0x12345678:32,@er1"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "add.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@er1\\+" \
+ "add.l #0x12345678:32,@er1+"
+gdb_test "x" "add.l\t#0x12345678(:32|),@-er1" \
+ "add.l #0x12345678:32,@-er1"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\+er1" \
+ "add.l #0x12345678:32,@+er1"
+gdb_test "x" "add.l\t#0x12345678(:32|),@er1-" \
+ "add.l #0x12345678:32,@er1-"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "add.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "add.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "add.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "add.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "add.l\t#0x1234(:16|),@er1" \
+ "add.l #0x1234:16,@er1"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "add.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "add.l\t#0x1234(:16|),@er1\\+" \
+ "add.l #0x1234:16,@er1+"
+gdb_test "x" "add.l\t#0x1234(:16|),@-er1" \
+ "add.l #0x1234:16,@-er1"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\+er1" \
+ "add.l #0x1234:16,@+er1"
+gdb_test "x" "add.l\t#0x1234(:16|),@er1-" \
+ "add.l #0x1234:16,@er1-"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "add.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "add.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "add.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "add.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "add.l\ter3,er1" \
+ "add.l er3,er1"
+gdb_test "x" "add.l\ter3,@er1" \
+ "add.l er3,@er1"
+gdb_test "x" "add.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "add.l er3,@(0xc:2,er1)"
+gdb_test "x" "add.l\ter3,@er1\\+" \
+ "add.l er3,@er1+"
+gdb_test "x" "add.l\ter3,@-er1" \
+ "add.l er3,@-er1"
+gdb_test "x" "add.l\ter3,@\\+er1" \
+ "add.l er3,@+er1"
+gdb_test "x" "add.l\ter3,@er1-" \
+ "add.l er3,@er1-"
+gdb_test "x" "add.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "add.l er3,@(0x1234:16,er1)"
+gdb_test "x" "add.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "add.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "add.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "add.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "add.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "add.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "add.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "add.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "add.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "add.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "add.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "add.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "add.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "add.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "add.l\ter3,@0x1234(:16|)" \
+ "add.l er3,@0x1234:16"
+gdb_test "x" "add.l\ter3,@0x12345678(:32|)" \
+ "add.l er3,@0x12345678:32"
+gdb_test "x" "add.l\t@er3,er1" \
+ "add.l @er3,er1"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),er1" \
+ "add.l @(0xc:2,er3),er1"
+gdb_test "x" "add.l\t@er3\\+,er1" \
+ "add.l @er3+,er1"
+gdb_test "x" "add.l\t@-er3,er1" \
+ "add.l @-er3,er1"
+gdb_test "x" "add.l\t@\\+er3,er1" \
+ "add.l @+er3,er1"
+gdb_test "x" "add.l\t@er3-,er1" \
+ "add.l @er3-,er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "add.l @(0x1234:16,er1),er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "add.l @(0x12345678:32,er1),er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "add.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "add.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "add.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "add.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "add.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "add.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "add.l\t@0x1234(:16|),er1" \
+ "add.l @0x1234:16,er1"
+gdb_test "x" "add.l\t@0x12345678(:32|),er1" \
+ "add.l @0x12345678:32,er1"
+gdb_test "x" "add.l\t@er3,@er1" \
+ "add.l @er3,@er1"
+gdb_test "x" "add.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "add.l @er3,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@er3,@-er1" \
+ "add.l @er3,@-er1"
+gdb_test "x" "add.l\t@er3,@er1\\+" \
+ "add.l @er3,@er1+"
+gdb_test "x" "add.l\t@er3,@er1-" \
+ "add.l @er3,@er1-"
+gdb_test "x" "add.l\t@er3,@\\+er1" \
+ "add.l @er3,@+er1"
+gdb_test "x" "add.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@er3,@0x9abc(:16|)" \
+ "add.l @er3,@0x9abc:16"
+gdb_test "x" "add.l\t@er3,@0x9abcdef0(:32|)" \
+ "add.l @er3,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "add.l @(0xc:2,er3),@er1"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "add.l @(0xc:2,er3),@-er1"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "add.l @(0xc:2,er3),@er1+"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "add.l @(0xc:2,er3),@er1-"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "add.l @(0xc:2,er3),@+er1"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "add.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "add.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@-er3,@er1" \
+ "add.l @-er3,@er1"
+gdb_test "x" "add.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "add.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@-er3,@-er1" \
+ "add.l @-er3,@-er1"
+gdb_test "x" "add.l\t@-er3,@er1\\+" \
+ "add.l @-er3,@er1+"
+gdb_test "x" "add.l\t@-er3,@er1-" \
+ "add.l @-er3,@er1-"
+gdb_test "x" "add.l\t@-er3,@\\+er1" \
+ "add.l @-er3,@+er1"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@-er3,@0x9abc(:16|)" \
+ "add.l @-er3,@0x9abc:16"
+gdb_test "x" "add.l\t@-er3,@0x9abcdef0(:32|)" \
+ "add.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@er3\\+,@er1" \
+ "add.l @er3+,@er1"
+gdb_test "x" "add.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "add.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@er3\\+,@-er1" \
+ "add.l @er3+,@-er1"
+gdb_test "x" "add.l\t@er3\\+,@er1\\+" \
+ "add.l @er3+,@er1+"
+gdb_test "x" "add.l\t@er3\\+,@er1-" \
+ "add.l @er3+,@er1-"
+gdb_test "x" "add.l\t@er3\\+,@\\+er1" \
+ "add.l @er3+,@+er1"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "add.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@er3\\+,@0x9abc(:16|)" \
+ "add.l @er3+,@0x9abc:16"
+gdb_test "x" "add.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "add.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@er3-,@er1" \
+ "add.l @er3-,@er1"
+gdb_test "x" "add.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "add.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@er3-,@-er1" \
+ "add.l @er3-,@-er1"
+gdb_test "x" "add.l\t@er3-,@er1\\+" \
+ "add.l @er3-,@er1+"
+gdb_test "x" "add.l\t@er3-,@er1-" \
+ "add.l @er3-,@er1-"
+gdb_test "x" "add.l\t@er3-,@\\+er1" \
+ "add.l @er3-,@+er1"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "add.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@er3-,@0x9abc(:16|)" \
+ "add.l @er3-,@0x9abc:16"
+gdb_test "x" "add.l\t@er3-,@0x9abcdef0(:32|)" \
+ "add.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\+er3,@er1" \
+ "add.l @+er3,@er1"
+gdb_test "x" "add.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "add.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\+er3,@-er1" \
+ "add.l @+er3,@-er1"
+gdb_test "x" "add.l\t@\\+er3,@er1\\+" \
+ "add.l @+er3,@er1+"
+gdb_test "x" "add.l\t@\\+er3,@er1-" \
+ "add.l @+er3,@er1-"
+gdb_test "x" "add.l\t@\\+er3,@\\+er1" \
+ "add.l @+er3,@+er1"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "add.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\+er3,@0x9abc(:16|)" \
+ "add.l @+er3,@0x9abc:16"
+gdb_test "x" "add.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "add.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "add.l @(0x1234:16,er3),@er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "add.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "add.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "add.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "add.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "add.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "add.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "add.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "add.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "add.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "add.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "add.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "add.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "add.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "add.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "add.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "add.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "add.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "add.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "add.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "add.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "add.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "add.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "add.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "add.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "add.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "add.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "add.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "add.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "add.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "add.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "add.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "add.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "add.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "add.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "add.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "add.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "add.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "add.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "add.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "add.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "add.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "add.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "add.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "add.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "add.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "add.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "add.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "add.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "add.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "add.l\t@0x1234(:16|),@er1" \
+ "add.l @0x1234:16,@er1"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "add.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@0x1234(:16|),@-er1" \
+ "add.l @0x1234:16,@-er1"
+gdb_test "x" "add.l\t@0x1234(:16|),@er1\\+" \
+ "add.l @0x1234:16,@er1+"
+gdb_test "x" "add.l\t@0x1234(:16|),@er1-" \
+ "add.l @0x1234:16,@er1-"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\+er1" \
+ "add.l @0x1234:16,@+er1"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "add.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "add.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "add.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "add.l\t@0x12345678(:32|),@er1" \
+ "add.l @0x12345678:32,@er1"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "add.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@-er1" \
+ "add.l @0x12345678:32,@-er1"
+gdb_test "x" "add.l\t@0x12345678(:32|),@er1\\+" \
+ "add.l @0x12345678:32,@er1+"
+gdb_test "x" "add.l\t@0x12345678(:32|),@er1-" \
+ "add.l @0x12345678:32,@er1-"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\+er1" \
+ "add.l @0x12345678:32,@+er1"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "add.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "add.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "add.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "add.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "add.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "add.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "add.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "add.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "add.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "add.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "add.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "add.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t03_add.s b/gdb/testsuite/gdb.disasm/t03_add.s
new file mode 100644
index 0000000..a20aded
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t03_add.s
@@ -0,0 +1,978 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;arith_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ add.b #0x12:8,r1h ;8112
+ add.b #0x12:8,@er1 ;7d108012
+ add.b #0x12:8,@(0x3:2,er1) ;017768188012
+ add.b #0x12:8,@er1+ ;01746c188012
+ add.b #0x12:8,@-er1 ;01776c188012
+ add.b #0x12:8,@+er1 ;01756c188012
+ add.b #0x12:8,@er1- ;01766c188012
+ add.b #0x12:8,@(0x1234:16,er1) ;01746e1812348012
+ add.b #0x12:8,@(0x12345678:32,er1) ;78146a28123456788012
+ add.b #0x12:8,@(0x1234:16,r2l.b) ;01756e2812348012
+ add.b #0x12:8,@(0x1234:16,r2.w) ;01766e2812348012
+ add.b #0x12:8,@(0x1234:16,er2.l) ;01776e2812348012
+ add.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a28123456788012
+ add.b #0x12:8,@(0x12345678:32,r2.w) ;78266a28123456788012
+ add.b #0x12:8,@(0x12345678:32,er2.l) ;78276a28123456788012
+ add.b #0x12:8,@0xffffff9a:8 ;7f9a8012
+ add.b #0x12:8,@0x1234:16 ;6a1812348012
+ add.b #0x12:8,@0x12345678:32 ;6a38123456788012
+
+ add.b r3h,r1h ;0831
+
+ add.b r3h,@er1 ;7d100830
+ add.b r3h,@(0x3:2,er1) ;01793113
+ add.b r3h,@er1+ ;01798113
+ add.b r3h,@-er1 ;0179b113
+ add.b r3h,@+er1 ;01799113
+ add.b r3h,@er1- ;0179a113
+ add.b r3h,@(0x1234:16,er1) ;0179c1131234
+ add.b r3h,@(0x12345678:32,er1) ;0179c91312345678
+ add.b r3h,@(0x1234:16,r2l.b) ;0179d2131234
+ add.b r3h,@(0x1234:16,r2.w) ;0179e2131234
+ add.b r3h,@(0x1234:16,er2.l) ;0179f2131234
+ add.b r3h,@(0x12345678:32,r2l.b) ;0179da1312345678
+ add.b r3h,@(0x12345678:32,r2.w) ;0179ea1312345678
+ add.b r3h,@(0x12345678:32,er2.l) ;0179fa1312345678
+ add.b r3h,@0xffffff12:8 ;7f120830
+ add.b r3h,@0x1234:16 ;6a1812340830
+ add.b r3h,@0x12345678:32 ;6a38123456780830
+
+ add.b @er3,r1h ;7c300801
+ add.b @(0x3:2,er3),r1h ;017a3311
+ add.b @er3+,r1h ;017a8311
+ add.b @-er3,r1h ;017ab311
+ add.b @+er3,r1h ;017a9311
+ add.b @er3-,r1h ;017aa311
+ add.b @(0x1234:16,er1),r1h ;017ac1111234
+ add.b @(0x12345678:32,er1),r1h ;017ac91112345678
+ add.b @(0x1234:16,r2l.b),r1h ;017ad2111234
+ add.b @(0x1234:16,r2.w),r1h ;017ae2111234
+ add.b @(0x1234:16,er2.l),r1h ;017af2111234
+ add.b @(0x12345678:32,r2l.b),r1h ;017ada1112345678
+ add.b @(0x12345678:32,r2.w),r1h ;017aea1112345678
+ add.b @(0x12345678:32,er2.l),r1h ;017afa1112345678
+ add.b @0xffffff12:8,r1h ;7e120801
+ add.b @0x1234:16,r1h ;6a1012340801
+ add.b @0x12345678:32,r1h ;6a30123456780801
+
+ add.b @er3,@er1 ;7c350110
+ add.b @er3,@(3:2,er1) ;7c353110
+ add.b @er3,@-er1 ;7c35b110
+ add.b @er3,@er1+ ;7c358110
+ add.b @er3,@er1- ;7c35a110
+ add.b @er3,@+er1 ;7c359110
+ add.b @er3,@(0xffff9abc:16,er1) ;7c35c1109abc
+ add.b @er3,@(0x9abcdef0:32,er1) ;7c35c9109abcdef0
+ add.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2109abc
+ add.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2109abc
+ add.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2109abc
+ add.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da109abcdef0
+ add.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea109abcdef0
+ add.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa109abcdef0
+ add.b @er3,@0xffff9abc:16 ;7c3540109abc
+ add.b @er3,@0x9abcdef0:32 ;7c3548109abcdef0
+
+ add.b @-er3,@er1 ;01776c3c0110
+ add.b @-er3,@(3:2,er1) ;01776c3c3110
+ add.b @-er3,@-er1 ;01776c3cb110
+ add.b @-er3,@er1+ ;01776c3c8110
+ add.b @-er3,@er1- ;01776c3ca110
+ add.b @-er3,@+er1 ;01776c3c9110
+ add.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1109abc
+ add.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9109abcdef0
+ add.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2109abc
+ add.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2109abc
+ add.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2109abc
+ add.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda109abcdef0
+ add.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea109abcdef0
+ add.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa109abcdef0
+ add.b @-er3,@0xffff9abc:16 ;01776c3c40109abc
+ add.b @-er3,@0x9abcdef0:32 ;01776c3c48109abcdef0
+
+ add.b @er3+,@er1 ;01746c3c0110
+ add.b @er3+,@(3:2,er1) ;01746c3c3110
+ add.b @er3+,@-er1 ;01746c3cb110
+ add.b @er3+,@er1+ ;01746c3c8110
+ add.b @er3+,@er1- ;01746c3ca110
+ add.b @er3+,@+er1 ;01746c3c9110
+ add.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1109abc
+ add.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9109abcdef0
+ add.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2109abc
+ add.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2109abc
+ add.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2109abc
+ add.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda109abcdef0
+ add.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea109abcdef0
+ add.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa109abcdef0
+ add.b @er3+,@0xffff9abc:16 ;01746c3c40109abc
+ add.b @er3+,@0x9abcdef0:32 ;01746c3c48109abcdef0
+
+ add.b @er3-,@er1 ;01766c3c0110
+ add.b @er3-,@(3:2,er1) ;01766c3c3110
+ add.b @er3-,@-er1 ;01766c3cb110
+ add.b @er3-,@er1+ ;01766c3c8110
+ add.b @er3-,@er1- ;01766c3ca110
+ add.b @er3-,@+er1 ;01766c3c9110
+ add.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1109abc
+ add.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9109abcdef0
+ add.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2109abc
+ add.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2109abc
+ add.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2109abc
+ add.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda109abcdef0
+ add.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea109abcdef0
+ add.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa109abcdef0
+ add.b @er3-,@0xffff9abc:16 ;01766c3c40109abc
+ add.b @er3-,@0x9abcdef0:32 ;01766c3c48109abcdef0
+
+ add.b @+er3,@er1 ;01756c3c0110
+ add.b @+er3,@(3:2,er1) ;01756c3c3110
+ add.b @+er3,@-er1 ;01756c3cb110
+ add.b @+er3,@er1+ ;01756c3c8110
+ add.b @+er3,@er1- ;01756c3ca110
+ add.b @+er3,@+er1 ;01756c3c9110
+ add.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1109abc
+ add.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9109abcdef0
+ add.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2109abc
+ add.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2109abc
+ add.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2109abc
+ add.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda109abcdef0
+ add.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea109abcdef0
+ add.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa109abcdef0
+ add.b @+er3,@0xffff9abc:16 ;01756c3c40109abc
+ add.b @+er3,@0x9abcdef0:32 ;01756c3c48109abcdef0
+
+ add.b @(0x1234:16,er3),@er1 ;01746e3c12340110
+ add.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343110
+ add.b @(0x1234:16,er3),@-er1 ;01746e3c1234b110
+ add.b @(0x1234:16,er3),@er1+ ;01746e3c12348110
+ add.b @(0x1234:16,er3),@er1- ;01746e3c1234a110
+ add.b @(0x1234:16,er3),@+er1 ;01746e3c12349110
+ add.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1109abc
+ add.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9109abcdef0
+ add.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2109abc
+ add.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2109abc
+ add.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2109abc
+ add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da109abcdef0
+ add.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea109abcdef0
+ add.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa109abcdef0
+ add.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440109abc
+ add.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448109abcdef0
+
+ add.b @(0x12345678:32,er3),@er1 ;78346a2c123456780110
+ add.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783110
+ add.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b110
+ add.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788110
+ add.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a110
+ add.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789110
+ add.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1109abc
+ add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9109abcdef0
+ add.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2109abc
+ add.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2109abc
+ add.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2109abc
+ add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da109abcdef0
+ add.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea109abcdef0
+ add.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa109abcdef0
+ add.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840109abc
+ add.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848109abcdef0
+
+ add.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340110
+ add.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343110
+ add.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b110
+ add.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348110
+ add.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a110
+ add.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349110
+ add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1109abc
+ add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9109abcdef0
+ add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2109abc
+ add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2109abc
+ add.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2109abc
+ add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da109abcdef0
+ add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea109abcdef0
+ add.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa109abcdef0
+ add.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440109abc
+ add.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448109abcdef0
+
+ add.b @(0x1234:16,r3.w),@er1 ;01766e3c12340110
+ add.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343110
+ add.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b110
+ add.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348110
+ add.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a110
+ add.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349110
+ add.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1109abc
+ add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9109abcdef0
+ add.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2109abc
+ add.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2109abc
+ add.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2109abc
+ add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da109abcdef0
+ add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea109abcdef0
+ add.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa109abcdef0
+ add.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440109abc
+ add.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448109abcdef0
+
+ add.b @(0x1234:16,er3.l),@er1 ;01776e3c12340110
+ add.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343110
+ add.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b110
+ add.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348110
+ add.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a110
+ add.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349110
+ add.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1109abc
+ add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9109abcdef0
+ add.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2109abc
+ add.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2109abc
+ add.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2109abc
+ add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da109abcdef0
+ add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea109abcdef0
+ add.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa109abcdef0
+ add.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440109abc
+ add.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448109abcdef0
+
+ add.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780110
+ add.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783110
+ add.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b110
+ add.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788110
+ add.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a110
+ add.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789110
+ add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1109abc
+ add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9109abcdef0
+ add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2109abc
+ add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2109abc
+ add.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2109abc
+ add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da109abcdef0
+ add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea109abcdef0
+ add.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa109abcdef0
+ add.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840109abc
+ add.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848109abcdef0
+
+ add.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780110
+ add.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783110
+ add.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b110
+ add.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788110
+ add.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a110
+ add.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789110
+ add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1109abc
+ add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9109abcdef0
+ add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2109abc
+ add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2109abc
+ add.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2109abc
+ add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da109abcdef0
+ add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea109abcdef0
+ add.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa109abcdef0
+ add.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840109abc
+ add.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848109abcdef0
+
+ add.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780110
+ add.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783110
+ add.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b110
+ add.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788110
+ add.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a110
+ add.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789110
+ add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1109abc
+ add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9109abcdef0
+ add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2109abc
+ add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2109abc
+ add.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2109abc
+ add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da109abcdef0
+ add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea109abcdef0
+ add.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa109abcdef0
+ add.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840109abc
+ add.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848109abcdef0
+
+ add.b @0x1234:16,@er1 ;6a1512340110
+ add.b @0x1234:16,@(3:2,er1) ;6a1512343110
+ add.b @0x1234:16,@-er1 ;6a151234b110
+ add.b @0x1234:16,@er1+ ;6a1512348110
+ add.b @0x1234:16,@er1- ;6a151234a110
+ add.b @0x1234:16,@+er1 ;6a1512349110
+ add.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1109abc
+ add.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9109abcdef0
+ add.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2109abc
+ add.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2109abc
+ add.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2109abc
+ add.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da109abcdef0
+ add.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea109abcdef0
+ add.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa109abcdef0
+ add.b @0x1234:16,@0xffff9abc:16 ;6a15123440109abc
+ add.b @0x1234:16,@0x9abcdef0:32 ;6a15123448109abcdef0
+
+ add.b @0x12345678:32,@er1 ;6a35123456780110
+ add.b @0x12345678:32,@(3:2,er1) ;6a35123456783110
+ add.b @0x12345678:32,@-er1 ;6a3512345678b110
+ add.b @0x12345678:32,@er1+ ;6a35123456788110
+ add.b @0x12345678:32,@er1- ;6a3512345678a110
+ add.b @0x12345678:32,@+er1 ;6a35123456789110
+ add.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1109abc
+ add.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9109abcdef0
+ add.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2109abc
+ add.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2109abc
+ add.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2109abc
+ add.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da109abcdef0
+ add.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea109abcdef0
+ add.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa109abcdef0
+ add.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840109abc
+ add.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848109abcdef0
+
+ add.w #0x1234:16,r1 ;79111234
+ add.w #0x7:3,r2 ;0a72
+ add.w #0x1234:16,@er1 ;015e01101234
+ add.w #0x1234:16,@(0x6:2,er1) ;015e31101234
+ add.w #0x1234:16,@er1+ ;015e81101234
+ add.w #0x1234:16,@-er1 ;015eb1101234
+ add.w #0x1234:16,@+er1 ;015e91101234
+ add.w #0x1234:16,@er1- ;015ea1101234
+ add.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1109abc1234
+ add.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9109abcdef01234
+ add.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2109abc1234
+ add.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2109abc1234
+ add.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2109abc1234
+ add.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda109abcdef01234
+ add.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea109abcdef01234
+ add.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa109abcdef01234
+ add.w #0x1234:16,@0xffff9abc:16 ;015e40109abc1234
+ add.w #0x1234:16,@0x9abcdef0:32 ;015e48109abcdef01234
+
+ add.w #0x7:3,@er1 ;7d900a70
+ add.w #0x7:3,@0x1234:16 ;6b1812340a70
+ add.w #0x7:3,@0x12345678:32 ;6b38123456780a70
+
+ add.w r3,r1 ;0931
+
+ add.w r3,@er1 ;7d900930
+ add.w r3,@(0x6:2,er1) ;01593113
+ add.w r3,@er1+ ;01598113
+ add.w r3,@-er1 ;0159b113
+ add.w r3,@+er1 ;01599113
+ add.w r3,@er1- ;0159a113
+ add.w r3,@(0x1234:16,er1) ;0159c1131234
+ add.w r3,@(0x12345678:32,er1) ;0159c91312345678
+ add.w r3,@(0x1234:16,r2l.b) ;0159d2131234
+ add.w r3,@(0x1234:16,r2.w) ;0159e2131234
+ add.w r3,@(0x1234:16,er2.l) ;0159f2131234
+ add.w r3,@(0x12345678:32,r2l.b) ;0159da1312345678
+ add.w r3,@(0x12345678:32,r2.w) ;0159ea1312345678
+ add.w r3,@(0x12345678:32,er2.l) ;0159fa1312345678
+ add.w r3,@0x1234:16 ;6b1812340930
+ add.w r3,@0x12345678:32 ;6b38123456780930
+
+ add.w @er3,r1 ;7cb00901
+ add.w @(0x6:2,er1),r1 ;015a3111
+ add.w @er3+,r1 ;015a8311
+ add.w @-er3,r1 ;015ab311
+ add.w @+er3,r1 ;015a9311
+ add.w @er3-,r1 ;015aa311
+ add.w @(0x1234:16,er1),r1 ;015ac1111234
+ add.w @(0x12345678:32,er1),r1 ;015ac91112345678
+ add.w @(0x1234:16,r2l.b),r1 ;015ad2111234
+ add.w @(0x1234:16,r2.w),r1 ;015ae2111234
+ add.w @(0x1234:16,er2.l),r1 ;015af2111234
+ add.w @(0x12345678:32,r2l.b),r1 ;015ada1112345678
+ add.w @(0x12345678:32,r2.w),r1 ;015aea1112345678
+ add.w @(0x12345678:32,er2.l),r1 ;015afa1112345678
+ add.w @0x1234:16,r1 ;6b1012340901
+ add.w @0x12345678:32,r1 ;6b30123456780901
+
+ add.w @er3,@er1 ;7cb50110
+ add.w @er3,@(6:2,er1) ;7cb53110
+ add.w @er3,@-er1 ;7cb5b110
+ add.w @er3,@er1+ ;7cb58110
+ add.w @er3,@er1- ;7cb5a110
+ add.w @er3,@+er1 ;7cb59110
+ add.w @er3,@(0xffff9abc:16,er1) ;7cb5c1109abc
+ add.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9109abcdef0
+ add.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2109abc
+ add.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2109abc
+ add.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2109abc
+ add.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da109abcdef0
+ add.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea109abcdef0
+ add.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa109abcdef0
+ add.w @er3,@0xffff9abc:16 ;7cb540109abc
+ add.w @er3,@0x9abcdef0:32 ;7cb548109abcdef0
+
+ add.w @-er3,@er1 ;01576d3c0110
+ add.w @-er3,@(6:2,er1) ;01576d3c3110
+ add.w @-er3,@-er1 ;01576d3cb110
+ add.w @-er3,@er1+ ;01576d3c8110
+ add.w @-er3,@er1- ;01576d3ca110
+ add.w @-er3,@+er1 ;01576d3c9110
+ add.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1109abc
+ add.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9109abcdef0
+ add.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2109abc
+ add.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2109abc
+ add.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2109abc
+ add.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda109abcdef0
+ add.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea109abcdef0
+ add.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa109abcdef0
+ add.w @-er3,@0xffff9abc:16 ;01576d3c40109abc
+ add.w @-er3,@0x9abcdef0:32 ;01576d3c48109abcdef0
+
+ add.w @er3+,@er1 ;01546d3c0110
+ add.w @er3+,@(6:2,er1) ;01546d3c3110
+ add.w @er3+,@-er1 ;01546d3cb110
+ add.w @er3+,@er1+ ;01546d3c8110
+ add.w @er3+,@er1- ;01546d3ca110
+ add.w @er3+,@+er1 ;01546d3c9110
+ add.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1109abc
+ add.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9109abcdef0
+ add.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2109abc
+ add.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2109abc
+ add.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2109abc
+ add.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda109abcdef0
+ add.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea109abcdef0
+ add.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa109abcdef0
+ add.w @er3+,@0xffff9abc:16 ;01546d3c40109abc
+ add.w @er3+,@0x9abcdef0:32 ;01546d3c48109abcdef0
+
+ add.w @er3-,@er1 ;01566d3c0110
+ add.w @er3-,@(6:2,er1) ;01566d3c3110
+ add.w @er3-,@-er1 ;01566d3cb110
+ add.w @er3-,@er1+ ;01566d3c8110
+ add.w @er3-,@er1- ;01566d3ca110
+ add.w @er3-,@+er1 ;01566d3c9110
+ add.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1109abc
+ add.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9109abcdef0
+ add.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2109abc
+ add.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2109abc
+ add.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2109abc
+ add.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda109abcdef0
+ add.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea109abcdef0
+ add.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa109abcdef0
+ add.w @er3-,@0xffff9abc:16 ;01566d3c40109abc
+ add.w @er3-,@0x9abcdef0:32 ;01566d3c48109abcdef0
+
+ add.w @+er3,@er1 ;01556d3c0110
+ add.w @+er3,@(6:2,er1) ;01556d3c3110
+ add.w @+er3,@-er1 ;01556d3cb110
+ add.w @+er3,@er1+ ;01556d3c8110
+ add.w @+er3,@er1- ;01556d3ca110
+ add.w @+er3,@+er1 ;01556d3c9110
+ add.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1109abc
+ add.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9109abcdef0
+ add.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2109abc
+ add.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2109abc
+ add.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2109abc
+ add.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda109abcdef0
+ add.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea109abcdef0
+ add.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa109abcdef0
+ add.w @+er3,@0xffff9abc:16 ;01556d3c40109abc
+ add.w @+er3,@0x9abcdef0:32 ;01556d3c48109abcdef0
+
+ add.w @(0x1234:16,er3),@er1 ;01546f3c12340110
+ add.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343110
+ add.w @(0x1234:16,er3),@-er1 ;01546f3c1234b110
+ add.w @(0x1234:16,er3),@er1+ ;01546f3c12348110
+ add.w @(0x1234:16,er3),@er1- ;01546f3c1234a110
+ add.w @(0x1234:16,er3),@+er1 ;01546f3c12349110
+ add.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1109abc
+ add.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9109abcdef0
+ add.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2109abc
+ add.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2109abc
+ add.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2109abc
+ add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da109abcdef0
+ add.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea109abcdef0
+ add.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa109abcdef0
+ add.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440109abc
+ add.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448109abcdef0
+
+ add.w @(0x12345678:32,er3),@er1 ;78346b2c123456780110
+ add.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783110
+ add.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b110
+ add.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788110
+ add.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a110
+ add.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789110
+ add.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1109abc
+ add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9109abcdef0
+ add.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2109abc
+ add.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2109abc
+ add.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2109abc
+ add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da109abcdef0
+ add.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea109abcdef0
+ add.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa109abcdef0
+ add.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840109abc
+ add.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848109abcdef0
+
+ add.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340110
+ add.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343110
+ add.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b110
+ add.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348110
+ add.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a110
+ add.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349110
+ add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1109abc
+ add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9109abcdef0
+ add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2109abc
+ add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2109abc
+ add.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2109abc
+ add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da109abcdef0
+ add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea109abcdef0
+ add.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa109abcdef0
+ add.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440109abc
+ add.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448109abcdef0
+
+ add.w @(0x1234:16,r3.w),@er1 ;01566f3c12340110
+ add.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343110
+ add.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b110
+ add.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348110
+ add.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a110
+ add.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349110
+ add.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1109abc
+ add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9109abcdef0
+ add.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2109abc
+ add.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2109abc
+ add.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2109abc
+ add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da109abcdef0
+ add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea109abcdef0
+ add.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa109abcdef0
+ add.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440109abc
+ add.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448109abcdef0
+
+ add.w @(0x1234:16,er3.l),@er1 ;01576f3c12340110
+ add.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343110
+ add.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b110
+ add.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348110
+ add.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a110
+ add.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349110
+ add.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1109abc
+ add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9109abcdef0
+ add.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2109abc
+ add.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2109abc
+ add.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2109abc
+ add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da109abcdef0
+ add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea109abcdef0
+ add.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa109abcdef0
+ add.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440109abc
+ add.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448109abcdef0
+
+ add.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780110
+ add.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783110
+ add.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b110
+ add.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788110
+ add.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a110
+ add.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789110
+ add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1109abc
+ add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9109abcdef0
+ add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2109abc
+ add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2109abc
+ add.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2109abc
+ add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da109abcdef0
+ add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea109abcdef0
+ add.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa109abcdef0
+ add.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840109abc
+ add.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848109abcdef0
+
+ add.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780110
+ add.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783110
+ add.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b110
+ add.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788110
+ add.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a110
+ add.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789110
+ add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1109abc
+ add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9109abcdef0
+ add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2109abc
+ add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2109abc
+ add.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2109abc
+ add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da109abcdef0
+ add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea109abcdef0
+ add.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa109abcdef0
+ add.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840109abc
+ add.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848109abcdef0
+
+ add.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780110
+ add.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783110
+ add.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b110
+ add.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788110
+ add.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a110
+ add.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789110
+ add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1109abc
+ add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9109abcdef0
+ add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2109abc
+ add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2109abc
+ add.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2109abc
+ add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da109abcdef0
+ add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea109abcdef0
+ add.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa109abcdef0
+ add.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840109abc
+ add.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848109abcdef0
+
+ add.w @0x1234:16,@er1 ;6b1512340110
+ add.w @0x1234:16,@(6:2,er1) ;6b1512343110
+ add.w @0x1234:16,@-er1 ;6b151234b110
+ add.w @0x1234:16,@er1+ ;6b1512348110
+ add.w @0x1234:16,@er1- ;6b151234a110
+ add.w @0x1234:16,@+er1 ;6b1512349110
+ add.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1109abc
+ add.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9109abcdef0
+ add.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2109abc
+ add.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2109abc
+ add.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2109abc
+ add.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da109abcdef0
+ add.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea109abcdef0
+ add.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa109abcdef0
+ add.w @0x1234:16,@0xffff9abc:16 ;6b15123440109abc
+ add.w @0x1234:16,@0x9abcdef0:32 ;6b15123448109abcdef0
+
+ add.w @0x12345678:32,@er1 ;6b35123456780110
+ add.w @0x12345678:32,@(6:2,er1) ;6b35123456783110
+ add.w @0x12345678:32,@-er1 ;6b3512345678b110
+ add.w @0x12345678:32,@er1+ ;6b35123456788110
+ add.w @0x12345678:32,@er1- ;6b3512345678a110
+ add.w @0x12345678:32,@+er1 ;6b35123456789110
+ add.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1109abc
+ add.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9109abcdef0
+ add.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2109abc
+ add.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2109abc
+ add.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2109abc
+ add.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da109abcdef0
+ add.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea109abcdef0
+ add.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa109abcdef0
+ add.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840109abc
+ add.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848109abcdef0
+
+ add.l #0x12345678:32,er1 ;7a1112345678
+ add.l #0x1234:16,er1 ;7a191234
+ add.l #0x7:3,er2 ;0afa
+ add.l #0x12345678:32,@er1 ;010e011812345678
+ add.l #0x12345678:32,@(0xc:2,er1) ;010e311812345678
+ add.l #0x12345678:32,@er1+ ;010e811812345678
+ add.l #0x12345678:32,@-er1 ;010eb11812345678
+ add.l #0x12345678:32,@+er1 ;010e911812345678
+ add.l #0x12345678:32,@er1- ;010ea11812345678
+ add.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1189abc12345678
+ add.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9189abcdef012345678
+ add.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2189abc12345678
+ add.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2189abc12345678
+ add.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2189abc12345678
+ add.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda189abcdef012345678
+ add.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea189abcdef012345678
+ add.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa189abcdef012345678
+ add.l #0x12345678:32,@0xffff9abc:16 ;010e40189abc12345678
+ add.l #0x12345678:32,@0x9abcdef0:32 ;010e48189abcdef012345678
+ add.l #0x1234:16,@er1 ;010e01101234
+ add.l #0x1234:16,@(0xc:2,er1) ;010e31101234
+ add.l #0x1234:16,@er1+ ;010e81101234
+ add.l #0x1234:16,@-er1 ;010eb1101234
+ add.l #0x1234:16,@+er1 ;010e91101234
+ add.l #0x1234:16,@er1- ;010ea1101234
+ add.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1109abc1234
+ add.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9109abcdef01234
+ add.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2109abc1234
+ add.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2109abc1234
+ add.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2109abc1234
+ add.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda109abcdef01234
+ add.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea109abcdef01234
+ add.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa109abcdef01234
+ add.l #0x1234:16,@0xffff9abc:16 ;010e40109abc1234
+ add.l #0x1234:16,@0x9abcdef0:32 ;010e48109abcdef01234
+
+ add.l er3,er1 ;0ab1
+
+ add.l er3,@er1 ;01090113
+ add.l er3,@(0xc:2,er1) ;01093113
+ add.l er3,@er1+ ;01098113
+ add.l er3,@-er1 ;0109b113
+ add.l er3,@+er1 ;01099113
+ add.l er3,@er1- ;0109a113
+ add.l er3,@(0x1234:16,er1) ;0109c1131234
+ add.l er3,@(0x12345678:32,er1) ;0109c91312345678
+ add.l er3,@(0x1234:16,r2l.b) ;0109d2131234
+ add.l er3,@(0x1234:16,r2.w) ;0109e2131234
+ add.l er3,@(0x1234:16,er2.l) ;0109f2131234
+ add.l er3,@(0x12345678:32,r2l.b) ;0109da1312345678
+ add.l er3,@(0x12345678:32,r2.w) ;0109ea1312345678
+ add.l er3,@(0x12345678:32,er2.l) ;0109fa1312345678
+ add.l er3,@0x1234:16 ;010940131234
+ add.l er3,@0x12345678:32 ;0109481312345678
+
+ add.l @er3,er1 ;010a0311
+ add.l @(0xc:2,er3),er1 ;010a3311
+ add.l @er3+,er1 ;010a8311
+ add.l @-er3,er1 ;010ab311
+ add.l @+er3,er1 ;010a9311
+ add.l @er3-,er1 ;010aa311
+ add.l @(0x1234:16,er1),er1 ;010ac1111234
+ add.l @(0x12345678:32,er1),er1 ;010ac91112345678
+ add.l @(0x1234:16,r2l.b),er1 ;010ad2111234
+ add.l @(0x1234:16,r2.w),er1 ;010ae2111234
+ add.l @(0x1234:16,er2.l),er1 ;010af2111234
+ add.l @(0x12345678:32,r2l.b),er1 ;010ada1112345678
+ add.l @(0x12345678:32,r2.w),er1 ;010aea1112345678
+ add.l @(0x12345678:32,er2.l),er1 ;010afa1112345678
+ add.l @0x1234:16,er1 ;010a40111234
+ add.l @0x12345678:32,er1 ;010a481112345678
+
+ add.l @er3,@er1 ;0104693c0110
+ add.l @er3,@(0xc:2,er1) ;0104693c3110
+ add.l @er3,@-er1 ;0104693cb110
+ add.l @er3,@er1+ ;0104693c8110
+ add.l @er3,@er1- ;0104693ca110
+ add.l @er3,@+er1 ;0104693c9110
+ add.l @er3,@(0xffff9abc:16,er1) ;0104693cc1109abc
+ add.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9109abcdef0
+ add.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2109abc
+ add.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2109abc
+ add.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2109abc
+ add.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda109abcdef0
+ add.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea109abcdef0
+ add.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa109abcdef0
+ add.l @er3,@0xffff9abc:16 ;0104693c40109abc
+ add.l @er3,@0x9abcdef0:32 ;0104693c48109abcdef0
+
+ add.l @(0xc:2,er3),@er1 ;0107693c0110
+ add.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3110
+ add.l @(0xc:2,er3),@-er1 ;0107693cb110
+ add.l @(0xc:2,er3),@er1+ ;0107693c8110
+ add.l @(0xc:2,er3),@er1- ;0107693ca110
+ add.l @(0xc:2,er3),@+er1 ;0107693c9110
+ add.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1109abc
+ add.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9109abcdef0
+ add.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2109abc
+ add.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2109abc
+ add.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2109abc
+ add.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda109abcdef0
+ add.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea109abcdef0
+ add.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa109abcdef0
+ add.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40109abc
+ add.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48109abcdef0
+
+ add.l @-er3,@er1 ;01076d3c0110
+ add.l @-er3,@(0xc:2,er1) ;01076d3c3110
+ add.l @-er3,@-er1 ;01076d3cb110
+ add.l @-er3,@er1+ ;01076d3c8110
+ add.l @-er3,@er1- ;01076d3ca110
+ add.l @-er3,@+er1 ;01076d3c9110
+ add.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1109abc
+ add.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9109abcdef0
+ add.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2109abc
+ add.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2109abc
+ add.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2109abc
+ add.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda109abcdef0
+ add.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea109abcdef0
+ add.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa109abcdef0
+ add.l @-er3,@0xffff9abc:16 ;01076d3c40109abc
+ add.l @-er3,@0x9abcdef0:32 ;01076d3c48109abcdef0
+
+ add.l @er3+,@er1 ;01046d3c0110
+ add.l @er3+,@(0xc:2,er1) ;01046d3c3110
+ add.l @er3+,@-er1 ;01046d3cb110
+ add.l @er3+,@er1+ ;01046d3c8110
+ add.l @er3+,@er1- ;01046d3ca110
+ add.l @er3+,@+er1 ;01046d3c9110
+ add.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1109abc
+ add.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9109abcdef0
+ add.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2109abc
+ add.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2109abc
+ add.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2109abc
+ add.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda109abcdef0
+ add.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea109abcdef0
+ add.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa109abcdef0
+ add.l @er3+,@0xffff9abc:16 ;01046d3c40109abc
+ add.l @er3+,@0x9abcdef0:32 ;01046d3c48109abcdef0
+
+ add.l @er3-,@er1 ;01066d3c0110
+ add.l @er3-,@(0xc:2,er1) ;01066d3c3110
+ add.l @er3-,@-er1 ;01066d3cb110
+ add.l @er3-,@er1+ ;01066d3c8110
+ add.l @er3-,@er1- ;01066d3ca110
+ add.l @er3-,@+er1 ;01066d3c9110
+ add.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1109abc
+ add.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9109abcdef0
+ add.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2109abc
+ add.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2109abc
+ add.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2109abc
+ add.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda109abcdef0
+ add.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea109abcdef0
+ add.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa109abcdef0
+ add.l @er3-,@0xffff9abc:16 ;01066d3c40109abc
+ add.l @er3-,@0x9abcdef0:32 ;01066d3c48109abcdef0
+
+ add.l @+er3,@er1 ;01056d3c0110
+ add.l @+er3,@(0xc:2,er1) ;01056d3c3110
+ add.l @+er3,@-er1 ;01056d3cb110
+ add.l @+er3,@er1+ ;01056d3c8110
+ add.l @+er3,@er1- ;01056d3ca110
+ add.l @+er3,@+er1 ;01056d3c9110
+ add.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1109abc
+ add.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9109abcdef0
+ add.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2109abc
+ add.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2109abc
+ add.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2109abc
+ add.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda109abcdef0
+ add.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea109abcdef0
+ add.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa109abcdef0
+ add.l @+er3,@0xffff9abc:16 ;01056d3c40109abc
+ add.l @+er3,@0x9abcdef0:32 ;01056d3c48109abcdef0
+
+ add.l @(0x1234:16,er3),@er1 ;01046f3c12340110
+ add.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343110
+ add.l @(0x1234:16,er3),@-er1 ;01046f3c1234b110
+ add.l @(0x1234:16,er3),@er1+ ;01046f3c12348110
+ add.l @(0x1234:16,er3),@er1- ;01046f3c1234a110
+ add.l @(0x1234:16,er3),@+er1 ;01046f3c12349110
+ add.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1109abc
+ add.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9109abcdef0
+ add.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2109abc
+ add.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2109abc
+ add.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2109abc
+ add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da109abcdef0
+ add.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea109abcdef0
+ add.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa109abcdef0
+ add.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440109abc
+ add.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448109abcdef0
+
+ add.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780110
+ add.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783110
+ add.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b110
+ add.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788110
+ add.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a110
+ add.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789110
+ add.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1109abc
+ add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9109abcdef0
+ add.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2109abc
+ add.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2109abc
+ add.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2109abc
+ add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da109abcdef0
+ add.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea109abcdef0
+ add.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa109abcdef0
+ add.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840109abc
+ add.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848109abcdef0
+
+ add.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340110
+ add.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343110
+ add.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b110
+ add.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348110
+ add.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a110
+ add.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349110
+ add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1109abc
+ add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9109abcdef0
+ add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2109abc
+ add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2109abc
+ add.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2109abc
+ add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da109abcdef0
+ add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea109abcdef0
+ add.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa109abcdef0
+ add.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440109abc
+ add.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448109abcdef0
+
+ add.l @(0x1234:16,r3.w),@er1 ;01066f3c12340110
+ add.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343110
+ add.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b110
+ add.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348110
+ add.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a110
+ add.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349110
+ add.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1109abc
+ add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9109abcdef0
+ add.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2109abc
+ add.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2109abc
+ add.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2109abc
+ add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da109abcdef0
+ add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea109abcdef0
+ add.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa109abcdef0
+ add.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440109abc
+ add.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448109abcdef0
+
+ add.l @(0x1234:16,er3.l),@er1 ;01076f3c12340110
+ add.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343110
+ add.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b110
+ add.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348110
+ add.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a110
+ add.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349110
+ add.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1109abc
+ add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9109abcdef0
+ add.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2109abc
+ add.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2109abc
+ add.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2109abc
+ add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da109abcdef0
+ add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea109abcdef0
+ add.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa109abcdef0
+ add.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440109abc
+ add.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448109abcdef0
+
+ add.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780110
+ add.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783110
+ add.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b110
+ add.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788110
+ add.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a110
+ add.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789110
+ add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1109abc
+ add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9109abcdef0
+ add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2109abc
+ add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2109abc
+ add.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2109abc
+ add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da109abcdef0
+ add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea109abcdef0
+ add.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa109abcdef0
+ add.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840109abc
+ add.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848109abcdef0
+
+ add.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780110
+ add.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783110
+ add.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b110
+ add.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788110
+ add.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a110
+ add.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789110
+ add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1109abc
+ add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9109abcdef0
+ add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2109abc
+ add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2109abc
+ add.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2109abc
+ add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da109abcdef0
+ add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea109abcdef0
+ add.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa109abcdef0
+ add.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840109abc
+ add.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848109abcdef0
+
+ add.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780110
+ add.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783110
+ add.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b110
+ add.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788110
+ add.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a110
+ add.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789110
+ add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1109abc
+ add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9109abcdef0
+ add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2109abc
+ add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2109abc
+ add.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2109abc
+ add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da109abcdef0
+ add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea109abcdef0
+ add.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa109abcdef0
+ add.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840109abc
+ add.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848109abcdef0
+
+ add.l @0x1234:16,@er1 ;01046b0c12340110
+ add.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343110
+ add.l @0x1234:16,@-er1 ;01046b0c1234b110
+ add.l @0x1234:16,@er1+ ;01046b0c12348110
+ add.l @0x1234:16,@er1- ;01046b0c1234a110
+ add.l @0x1234:16,@+er1 ;01046b0c12349110
+ add.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1109abc
+ add.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9109abcdef0
+ add.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2109abc
+ add.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2109abc
+ add.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2109abc
+ add.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da109abcdef0
+ add.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea109abcdef0
+ add.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa109abcdef0
+ add.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440109abc
+ add.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448109abcdef0
+
+ add.l @0x12345678:32,@er1 ;01046b2c123456780110
+ add.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783110
+ add.l @0x12345678:32,@-er1 ;01046b2c12345678b110
+ add.l @0x12345678:32,@er1+ ;01046b2c123456788110
+ add.l @0x12345678:32,@er1- ;01046b2c12345678a110
+ add.l @0x12345678:32,@+er1 ;01046b2c123456789110
+ add.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1109abc
+ add.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9109abcdef0
+ add.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2109abc
+ add.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2109abc
+ add.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2109abc
+ add.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da109abcdef0
+ add.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea109abcdef0
+ add.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa109abcdef0
+ add.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840109abc
+ add.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848109abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t04_sub.exp b/gdb/testsuite/gdb.disasm/t04_sub.exp
new file mode 100644
index 0000000..e3a5213
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t04_sub.exp
@@ -0,0 +1,1874 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t04_sub"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "sub.b\t#0x12(:8|),@er1" \
+ "sub.b #0x12:8,@er1"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x3(:2|),er1\\)" \
+ "sub.b #0x12:8,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t#0x12(:8|),@er1\\+" \
+ "sub.b #0x12:8,@er1+"
+gdb_test "x" "sub.b\t#0x12(:8|),@-er1" \
+ "sub.b #0x12:8,@-er1"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\+er1" \
+ "sub.b #0x12:8,@+er1"
+gdb_test "x" "sub.b\t#0x12(:8|),@er1-" \
+ "sub.b #0x12:8,@er1-"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x1234(:16|),er1\\)" \
+ "sub.b #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x12345678(:32|),er1\\)" \
+ "sub.b #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x1234(:16|),r2l.b\\)" \
+ "sub.b #0x12:8,@(0x1234:16,r2l.b)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x1234(:16|),r2.w\\)" \
+ "sub.b #0x12:8,@(0x1234:16,r2.w)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x1234(:16|),er2.l\\)" \
+ "sub.b #0x12:8,@(0x1234:16,er2.l)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x12345678(:32|),r2l.b\\)" \
+ "sub.b #0x12:8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x12345678(:32|),r2.w\\)" \
+ "sub.b #0x12:8,@(0x12345678:32,r2.w)"
+gdb_test "x" "sub.b\t#0x12(:8|),@\\(0x12345678(:32|),er2.l\\)" \
+ "sub.b #0x12:8,@(0x12345678:32,er2.l)"
+gdb_test "x" "sub.b\t#0x12(:8|),@0x9a(:8|)" \
+ "sub.b #0x12:8,@0x9a:8"
+gdb_test "x" "sub.b\t#0x12(:8|),@0x1234(:16|)" \
+ "sub.b #0x12:8,@0x1234:16"
+gdb_test "x" "sub.b\t#0x12(:8|),@0x12345678(:32|)" \
+ "sub.b #0x12:8,@0x12345678:32"
+gdb_test "x" "sub.b\tr3h,r1h" \
+ "sub.b r3h,r1h"
+gdb_test "x" "sub.b\tr3h,@er1" \
+ "sub.b r3h,@er1"
+gdb_test "x" "sub.b\tr3h,@\\(0x3(:2|),er1\\)" \
+ "sub.b r3h,@(0x3:2,er1)"
+gdb_test "x" "sub.b\tr3h,@er1\\+" \
+ "sub.b r3h,@er1+"
+gdb_test "x" "sub.b\tr3h,@-er1" \
+ "sub.b r3h,@-er1"
+gdb_test "x" "sub.b\tr3h,@\\+er1" \
+ "sub.b r3h,@+er1"
+gdb_test "x" "sub.b\tr3h,@er1-" \
+ "sub.b r3h,@er1-"
+gdb_test "x" "sub.b\tr3h,@\\(0x1234(:16|),er1\\)" \
+ "sub.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "sub.b\tr3h,@\\(0x12345678(:32|),er1\\)" \
+ "sub.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "sub.b\tr3h,@\\(0x1234(:16|),r2l.b\\)" \
+ "sub.b r3h,@(0x1234:16,r2l.b)"
+gdb_test "x" "sub.b\tr3h,@\\(0x1234(:16|),r2.w\\)" \
+ "sub.b r3h,@(0x1234:16,r2.w)"
+gdb_test "x" "sub.b\tr3h,@\\(0x1234(:16|),er2.l\\)" \
+ "sub.b r3h,@(0x1234:16,er2.l)"
+gdb_test "x" "sub.b\tr3h,@\\(0x12345678(:32|),r2l.b\\)" \
+ "sub.b r3h,@(0x12345678:32,r2l.b)"
+gdb_test "x" "sub.b\tr3h,@\\(0x12345678(:32|),r2.w\\)" \
+ "sub.b r3h,@(0x12345678:32,r2.w)"
+gdb_test "x" "sub.b\tr3h,@\\(0x12345678(:32|),er2.l\\)" \
+ "sub.b r3h,@(0x12345678:32,er2.l)"
+gdb_test "x" "sub.b\tr3h,@0x12(:8|)" \
+ "sub.b r3h,@0x12:8"
+gdb_test "x" "sub.b\tr3h,@0x1234(:16|)" \
+ "sub.b r3h,@0x1234:16"
+gdb_test "x" "sub.b\tr3h,@0x12345678(:32|)" \
+ "sub.b r3h,@0x12345678:32"
+gdb_test "x" "sub.b\t@er3,r1h" \
+ "sub.b @er3,r1h"
+gdb_test "x" "sub.b\t@\\(0x3(:2|),er3\\),r1h" \
+ "sub.b @(0x3:2,er3),r1h"
+gdb_test "x" "sub.b\t@er3\\+,r1h" \
+ "sub.b @er3+,r1h"
+gdb_test "x" "sub.b\t@-er3,r1h" \
+ "sub.b @-er3,r1h"
+gdb_test "x" "sub.b\t@\\+er3,r1h" \
+ "sub.b @+er3,r1h"
+gdb_test "x" "sub.b\t@er3-,r1h" \
+ "sub.b @er3-,r1h"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er1\\),r1h" \
+ "sub.b @(0x1234:16,er1),r1h"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er1\\),r1h" \
+ "sub.b @(0x12345678:32,er1),r1h"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r2l.b\\),r1h" \
+ "sub.b @(0x1234:16,r2l.b),r1h"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r2.w\\),r1h" \
+ "sub.b @(0x1234:16,r2.w),r1h"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er2.l\\),r1h" \
+ "sub.b @(0x1234:16,er2.l),r1h"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r2l.b\\),r1h" \
+ "sub.b @(0x12345678:32,r2l.b),r1h"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r2.w\\),r1h" \
+ "sub.b @(0x12345678:32,r2.w),r1h"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er2.l\\),r1h" \
+ "sub.b @(0x12345678:32,er2.l),r1h"
+gdb_test "x" "sub.b\t@0x12(:8|),r1h" \
+ "sub.b @0x12:8,r1h"
+gdb_test "x" "sub.b\t@0x1234(:16|),r1h" \
+ "sub.b @0x1234:16,r1h"
+gdb_test "x" "sub.b\t@0x12345678(:32|),r1h" \
+ "sub.b @0x12345678:32,r1h"
+gdb_test "x" "sub.b\t@er3,@er1" \
+ "sub.b @er3,@er1"
+gdb_test "x" "sub.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "sub.b @er3,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@er3,@-er1" \
+ "sub.b @er3,@-er1"
+gdb_test "x" "sub.b\t@er3,@er1\\+" \
+ "sub.b @er3,@er1+"
+gdb_test "x" "sub.b\t@er3,@er1-" \
+ "sub.b @er3,@er1-"
+gdb_test "x" "sub.b\t@er3,@\\+er1" \
+ "sub.b @er3,@+er1"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@er3,@0x9abc(:16|)" \
+ "sub.b @er3,@0x9abc:16"
+gdb_test "x" "sub.b\t@er3,@0x9abcdef0(:32|)" \
+ "sub.b @er3,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@-er3,@er1" \
+ "sub.b @-er3,@er1"
+gdb_test "x" "sub.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "sub.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@-er3,@-er1" \
+ "sub.b @-er3,@-er1"
+gdb_test "x" "sub.b\t@-er3,@er1\\+" \
+ "sub.b @-er3,@er1+"
+gdb_test "x" "sub.b\t@-er3,@er1-" \
+ "sub.b @-er3,@er1-"
+gdb_test "x" "sub.b\t@-er3,@\\+er1" \
+ "sub.b @-er3,@+er1"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@-er3,@0x9abc(:16|)" \
+ "sub.b @-er3,@0x9abc:16"
+gdb_test "x" "sub.b\t@-er3,@0x9abcdef0(:32|)" \
+ "sub.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@er3\\+,@er1" \
+ "sub.b @er3+,@er1"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "sub.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@er3\\+,@-er1" \
+ "sub.b @er3+,@-er1"
+gdb_test "x" "sub.b\t@er3\\+,@er1\\+" \
+ "sub.b @er3+,@er1+"
+gdb_test "x" "sub.b\t@er3\\+,@er1-" \
+ "sub.b @er3+,@er1-"
+gdb_test "x" "sub.b\t@er3\\+,@\\+er1" \
+ "sub.b @er3+,@+er1"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@er3\\+,@0x9abc(:16|)" \
+ "sub.b @er3+,@0x9abc:16"
+gdb_test "x" "sub.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "sub.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@er3-,@er1" \
+ "sub.b @er3-,@er1"
+gdb_test "x" "sub.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "sub.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@er3-,@-er1" \
+ "sub.b @er3-,@-er1"
+gdb_test "x" "sub.b\t@er3-,@er1\\+" \
+ "sub.b @er3-,@er1+"
+gdb_test "x" "sub.b\t@er3-,@er1-" \
+ "sub.b @er3-,@er1-"
+gdb_test "x" "sub.b\t@er3-,@\\+er1" \
+ "sub.b @er3-,@+er1"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@er3-,@0x9abc(:16|)" \
+ "sub.b @er3-,@0x9abc:16"
+gdb_test "x" "sub.b\t@er3-,@0x9abcdef0(:32|)" \
+ "sub.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\+er3,@er1" \
+ "sub.b @+er3,@er1"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "sub.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\+er3,@-er1" \
+ "sub.b @+er3,@-er1"
+gdb_test "x" "sub.b\t@\\+er3,@er1\\+" \
+ "sub.b @+er3,@er1+"
+gdb_test "x" "sub.b\t@\\+er3,@er1-" \
+ "sub.b @+er3,@er1-"
+gdb_test "x" "sub.b\t@\\+er3,@\\+er1" \
+ "sub.b @+er3,@+er1"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\+er3,@0x9abc(:16|)" \
+ "sub.b @+er3,@0x9abc:16"
+gdb_test "x" "sub.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "sub.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "sub.b @(0x1234:16,er3),@er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "sub.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "sub.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "sub.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "sub.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "sub.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "sub.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "sub.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "sub.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "sub.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "sub.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "sub.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "sub.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "sub.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "sub.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "sub.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "sub.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "sub.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "sub.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "sub.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "sub.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "sub.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "sub.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "sub.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "sub.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "sub.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "sub.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "sub.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "sub.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "sub.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "sub.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "sub.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "sub.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "sub.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "sub.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "sub.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "sub.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "sub.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "sub.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "sub.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "sub.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "sub.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "sub.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "sub.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "sub.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "sub.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "sub.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@0x1234(:16|),@er1" \
+ "sub.b @0x1234:16,@er1"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "sub.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@-er1" \
+ "sub.b @0x1234:16,@-er1"
+gdb_test "x" "sub.b\t@0x1234(:16|),@er1\\+" \
+ "sub.b @0x1234:16,@er1+"
+gdb_test "x" "sub.b\t@0x1234(:16|),@er1-" \
+ "sub.b @0x1234:16,@er1-"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\+er1" \
+ "sub.b @0x1234:16,@+er1"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "sub.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "sub.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "sub.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@er1" \
+ "sub.b @0x12345678:32,@er1"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "sub.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@-er1" \
+ "sub.b @0x12345678:32,@-er1"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@er1\\+" \
+ "sub.b @0x12345678:32,@er1+"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@er1-" \
+ "sub.b @0x12345678:32,@er1-"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\+er1" \
+ "sub.b @0x12345678:32,@+er1"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "sub.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "sub.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "sub.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t#0x1234(:16|),r1" \
+ "sub.w #0x1234:16,r1"
+gdb_test "x" "sub.w\t#0x7(:3|),r2" \
+ "sub.w #0x7:3,r2"
+gdb_test "x" "sub.w\t#0x1234(:16|),@er1" \
+ "sub.w #0x1234:16,@er1"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "sub.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@er1\\+" \
+ "sub.w #0x1234:16,@er1+"
+gdb_test "x" "sub.w\t#0x1234(:16|),@-er1" \
+ "sub.w #0x1234:16,@-er1"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\+er1" \
+ "sub.w #0x1234:16,@+er1"
+gdb_test "x" "sub.w\t#0x1234(:16|),@er1-" \
+ "sub.w #0x1234:16,@er1-"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "sub.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "sub.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "sub.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t#0x7(:3|),@er1" \
+ "sub.w #0x7:3,@er1"
+gdb_test "x" "sub.w\t#0x7(:3|),@0x1234(:16|)" \
+ "sub.w #0x7:3,@0x1234:16"
+gdb_test "x" "sub.w\t#0x7(:3|),@0x12345678(:32|)" \
+ "sub.w #0x7:3,@0x12345678:32"
+gdb_test "x" "sub.w\tr3,r1" \
+ "sub.w r3,r1"
+gdb_test "x" "sub.w\tr3,@er1" \
+ "sub.w r3,@er1"
+gdb_test "x" "sub.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "sub.w r3,@(0x6:2,er1)"
+gdb_test "x" "sub.w\tr3,@er1\\+" \
+ "sub.w r3,@er1+"
+gdb_test "x" "sub.w\tr3,@-er1" \
+ "sub.w r3,@-er1"
+gdb_test "x" "sub.w\tr3,@\\+er1" \
+ "sub.w r3,@+er1"
+gdb_test "x" "sub.w\tr3,@er1-" \
+ "sub.w r3,@er1-"
+gdb_test "x" "sub.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "sub.w r3,@(0x1234:16,er1)"
+gdb_test "x" "sub.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "sub.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "sub.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "sub.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "sub.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "sub.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "sub.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "sub.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "sub.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "sub.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "sub.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "sub.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "sub.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "sub.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "sub.w\tr3,@0x1234(:16|)" \
+ "sub.w r3,@0x1234:16"
+gdb_test "x" "sub.w\tr3,@0x12345678(:32|)" \
+ "sub.w r3,@0x12345678:32"
+gdb_test "x" "sub.w\t@er3,r1" \
+ "sub.w @er3,r1"
+gdb_test "x" "sub.w\t@\\(0x6(:2|),er3\\),r1" \
+ "sub.w @(0x6:2,er3),r1"
+gdb_test "x" "sub.w\t@er3\\+,r1" \
+ "sub.w @er3+,r1"
+gdb_test "x" "sub.w\t@-er3,r1" \
+ "sub.w @-er3,r1"
+gdb_test "x" "sub.w\t@\\+er3,r1" \
+ "sub.w @+er3,r1"
+gdb_test "x" "sub.w\t@er3-,r1" \
+ "sub.w @er3-,r1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "sub.w @(0x1234:16,er1),r1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "sub.w @(0x12345678:32,er1),r1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "sub.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "sub.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "sub.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "sub.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "sub.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "sub.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "sub.w\t@0x1234(:16|),r1" \
+ "sub.w @0x1234:16,r1"
+gdb_test "x" "sub.w\t@0x12345678(:32|),r1" \
+ "sub.w @0x12345678:32,r1"
+gdb_test "x" "sub.w\t@er3,@er1" \
+ "sub.w @er3,@er1"
+gdb_test "x" "sub.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "sub.w @er3,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@er3,@-er1" \
+ "sub.w @er3,@-er1"
+gdb_test "x" "sub.w\t@er3,@er1\\+" \
+ "sub.w @er3,@er1+"
+gdb_test "x" "sub.w\t@er3,@er1-" \
+ "sub.w @er3,@er1-"
+gdb_test "x" "sub.w\t@er3,@\\+er1" \
+ "sub.w @er3,@+er1"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@er3,@0x9abc(:16|)" \
+ "sub.w @er3,@0x9abc:16"
+gdb_test "x" "sub.w\t@er3,@0x9abcdef0(:32|)" \
+ "sub.w @er3,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@-er3,@er1" \
+ "sub.w @-er3,@er1"
+gdb_test "x" "sub.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "sub.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@-er3,@-er1" \
+ "sub.w @-er3,@-er1"
+gdb_test "x" "sub.w\t@-er3,@er1\\+" \
+ "sub.w @-er3,@er1+"
+gdb_test "x" "sub.w\t@-er3,@er1-" \
+ "sub.w @-er3,@er1-"
+gdb_test "x" "sub.w\t@-er3,@\\+er1" \
+ "sub.w @-er3,@+er1"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@-er3,@0x9abc(:16|)" \
+ "sub.w @-er3,@0x9abc:16"
+gdb_test "x" "sub.w\t@-er3,@0x9abcdef0(:32|)" \
+ "sub.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@er3\\+,@er1" \
+ "sub.w @er3+,@er1"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "sub.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@er3\\+,@-er1" \
+ "sub.w @er3+,@-er1"
+gdb_test "x" "sub.w\t@er3\\+,@er1\\+" \
+ "sub.w @er3+,@er1+"
+gdb_test "x" "sub.w\t@er3\\+,@er1-" \
+ "sub.w @er3+,@er1-"
+gdb_test "x" "sub.w\t@er3\\+,@\\+er1" \
+ "sub.w @er3+,@+er1"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@er3\\+,@0x9abc(:16|)" \
+ "sub.w @er3+,@0x9abc:16"
+gdb_test "x" "sub.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "sub.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@er3-,@er1" \
+ "sub.w @er3-,@er1"
+gdb_test "x" "sub.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "sub.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@er3-,@-er1" \
+ "sub.w @er3-,@-er1"
+gdb_test "x" "sub.w\t@er3-,@er1\\+" \
+ "sub.w @er3-,@er1+"
+gdb_test "x" "sub.w\t@er3-,@er1-" \
+ "sub.w @er3-,@er1-"
+gdb_test "x" "sub.w\t@er3-,@\\+er1" \
+ "sub.w @er3-,@+er1"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@er3-,@0x9abc(:16|)" \
+ "sub.w @er3-,@0x9abc:16"
+gdb_test "x" "sub.w\t@er3-,@0x9abcdef0(:32|)" \
+ "sub.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\+er3,@er1" \
+ "sub.w @+er3,@er1"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "sub.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\+er3,@-er1" \
+ "sub.w @+er3,@-er1"
+gdb_test "x" "sub.w\t@\\+er3,@er1\\+" \
+ "sub.w @+er3,@er1+"
+gdb_test "x" "sub.w\t@\\+er3,@er1-" \
+ "sub.w @+er3,@er1-"
+gdb_test "x" "sub.w\t@\\+er3,@\\+er1" \
+ "sub.w @+er3,@+er1"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\+er3,@0x9abc(:16|)" \
+ "sub.w @+er3,@0x9abc:16"
+gdb_test "x" "sub.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "sub.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "sub.w @(0x1234:16,er3),@er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "sub.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "sub.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "sub.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "sub.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "sub.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "sub.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "sub.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "sub.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "sub.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "sub.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "sub.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "sub.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "sub.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "sub.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "sub.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "sub.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "sub.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "sub.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "sub.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "sub.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "sub.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "sub.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "sub.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "sub.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "sub.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "sub.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "sub.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "sub.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "sub.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "sub.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "sub.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "sub.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "sub.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "sub.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "sub.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "sub.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "sub.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "sub.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "sub.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "sub.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "sub.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "sub.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "sub.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "sub.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "sub.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "sub.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@0x1234(:16|),@er1" \
+ "sub.w @0x1234:16,@er1"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "sub.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@-er1" \
+ "sub.w @0x1234:16,@-er1"
+gdb_test "x" "sub.w\t@0x1234(:16|),@er1\\+" \
+ "sub.w @0x1234:16,@er1+"
+gdb_test "x" "sub.w\t@0x1234(:16|),@er1-" \
+ "sub.w @0x1234:16,@er1-"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\+er1" \
+ "sub.w @0x1234:16,@+er1"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "sub.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "sub.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "sub.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@er1" \
+ "sub.w @0x12345678:32,@er1"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "sub.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@-er1" \
+ "sub.w @0x12345678:32,@-er1"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@er1\\+" \
+ "sub.w @0x12345678:32,@er1+"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@er1-" \
+ "sub.w @0x12345678:32,@er1-"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\+er1" \
+ "sub.w @0x12345678:32,@+er1"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "sub.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "sub.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "sub.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t#0x12345678(:32|),er1" \
+ "sub.l #0x12345678:32,er1"
+gdb_test "x" "sub.l\t#0x1234(:16|),er1" \
+ "sub.l #0x1234:16,er1"
+gdb_test "x" "sub.l\t#0x7(:3|),er2" \
+ "sub.l #0x7:3,er2"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@er1" \
+ "sub.l #0x12345678:32,@er1"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "sub.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@er1\\+" \
+ "sub.l #0x12345678:32,@er1+"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@-er1" \
+ "sub.l #0x12345678:32,@-er1"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\+er1" \
+ "sub.l #0x12345678:32,@+er1"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@er1-" \
+ "sub.l #0x12345678:32,@er1-"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "sub.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "sub.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "sub.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t#0x1234(:16|),@er1" \
+ "sub.l #0x1234:16,@er1"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "sub.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@er1\\+" \
+ "sub.l #0x1234:16,@er1+"
+gdb_test "x" "sub.l\t#0x1234(:16|),@-er1" \
+ "sub.l #0x1234:16,@-er1"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\+er1" \
+ "sub.l #0x1234:16,@+er1"
+gdb_test "x" "sub.l\t#0x1234(:16|),@er1-" \
+ "sub.l #0x1234:16,@er1-"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "sub.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "sub.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "sub.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "sub.l\ter3,er1" \
+ "sub.l er3,er1"
+gdb_test "x" "sub.l\ter3,@er1" \
+ "sub.l er3,@er1"
+gdb_test "x" "sub.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "sub.l er3,@(0xc:2,er1)"
+gdb_test "x" "sub.l\ter3,@er1\\+" \
+ "sub.l er3,@er1+"
+gdb_test "x" "sub.l\ter3,@-er1" \
+ "sub.l er3,@-er1"
+gdb_test "x" "sub.l\ter3,@\\+er1" \
+ "sub.l er3,@+er1"
+gdb_test "x" "sub.l\ter3,@er1-" \
+ "sub.l er3,@er1-"
+gdb_test "x" "sub.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "sub.l er3,@(0x1234:16,er1)"
+gdb_test "x" "sub.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "sub.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "sub.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "sub.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "sub.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "sub.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "sub.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "sub.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "sub.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "sub.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "sub.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "sub.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "sub.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "sub.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "sub.l\ter3,@0x1234(:16|)" \
+ "sub.l er3,@0x1234:16"
+gdb_test "x" "sub.l\ter3,@0x12345678(:32|)" \
+ "sub.l er3,@0x12345678:32"
+gdb_test "x" "sub.l\t@er3,er1" \
+ "sub.l @er3,er1"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),er1" \
+ "sub.l @(0xc:2,er3),er1"
+gdb_test "x" "sub.l\t@er3\\+,er1" \
+ "sub.l @er3+,er1"
+gdb_test "x" "sub.l\t@-er3,er1" \
+ "sub.l @-er3,er1"
+gdb_test "x" "sub.l\t@\\+er3,er1" \
+ "sub.l @+er3,er1"
+gdb_test "x" "sub.l\t@er3-,er1" \
+ "sub.l @er3-,er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "sub.l @(0x1234:16,er1),er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "sub.l @(0x12345678:32,er1),er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "sub.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "sub.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "sub.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "sub.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "sub.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "sub.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "sub.l\t@0x1234(:16|),er1" \
+ "sub.l @0x1234:16,er1"
+gdb_test "x" "sub.l\t@0x12345678(:32|),er1" \
+ "sub.l @0x12345678:32,er1"
+gdb_test "x" "sub.l\t@er3,@er1" \
+ "sub.l @er3,@er1"
+gdb_test "x" "sub.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "sub.l @er3,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@er3,@-er1" \
+ "sub.l @er3,@-er1"
+gdb_test "x" "sub.l\t@er3,@er1\\+" \
+ "sub.l @er3,@er1+"
+gdb_test "x" "sub.l\t@er3,@er1-" \
+ "sub.l @er3,@er1-"
+gdb_test "x" "sub.l\t@er3,@\\+er1" \
+ "sub.l @er3,@+er1"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@er3,@0x9abc(:16|)" \
+ "sub.l @er3,@0x9abc:16"
+gdb_test "x" "sub.l\t@er3,@0x9abcdef0(:32|)" \
+ "sub.l @er3,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "sub.l @(0xc:2,er3),@er1"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "sub.l @(0xc:2,er3),@-er1"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "sub.l @(0xc:2,er3),@er1+"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "sub.l @(0xc:2,er3),@er1-"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "sub.l @(0xc:2,er3),@+er1"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "sub.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@-er3,@er1" \
+ "sub.l @-er3,@er1"
+gdb_test "x" "sub.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "sub.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@-er3,@-er1" \
+ "sub.l @-er3,@-er1"
+gdb_test "x" "sub.l\t@-er3,@er1\\+" \
+ "sub.l @-er3,@er1+"
+gdb_test "x" "sub.l\t@-er3,@er1-" \
+ "sub.l @-er3,@er1-"
+gdb_test "x" "sub.l\t@-er3,@\\+er1" \
+ "sub.l @-er3,@+er1"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@-er3,@0x9abc(:16|)" \
+ "sub.l @-er3,@0x9abc:16"
+gdb_test "x" "sub.l\t@-er3,@0x9abcdef0(:32|)" \
+ "sub.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@er3\\+,@er1" \
+ "sub.l @er3+,@er1"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "sub.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@er3\\+,@-er1" \
+ "sub.l @er3+,@-er1"
+gdb_test "x" "sub.l\t@er3\\+,@er1\\+" \
+ "sub.l @er3+,@er1+"
+gdb_test "x" "sub.l\t@er3\\+,@er1-" \
+ "sub.l @er3+,@er1-"
+gdb_test "x" "sub.l\t@er3\\+,@\\+er1" \
+ "sub.l @er3+,@+er1"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@er3\\+,@0x9abc(:16|)" \
+ "sub.l @er3+,@0x9abc:16"
+gdb_test "x" "sub.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "sub.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@er3-,@er1" \
+ "sub.l @er3-,@er1"
+gdb_test "x" "sub.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "sub.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@er3-,@-er1" \
+ "sub.l @er3-,@-er1"
+gdb_test "x" "sub.l\t@er3-,@er1\\+" \
+ "sub.l @er3-,@er1+"
+gdb_test "x" "sub.l\t@er3-,@er1-" \
+ "sub.l @er3-,@er1-"
+gdb_test "x" "sub.l\t@er3-,@\\+er1" \
+ "sub.l @er3-,@+er1"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@er3-,@0x9abc(:16|)" \
+ "sub.l @er3-,@0x9abc:16"
+gdb_test "x" "sub.l\t@er3-,@0x9abcdef0(:32|)" \
+ "sub.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\+er3,@er1" \
+ "sub.l @+er3,@er1"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "sub.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\+er3,@-er1" \
+ "sub.l @+er3,@-er1"
+gdb_test "x" "sub.l\t@\\+er3,@er1\\+" \
+ "sub.l @+er3,@er1+"
+gdb_test "x" "sub.l\t@\\+er3,@er1-" \
+ "sub.l @+er3,@er1-"
+gdb_test "x" "sub.l\t@\\+er3,@\\+er1" \
+ "sub.l @+er3,@+er1"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\+er3,@0x9abc(:16|)" \
+ "sub.l @+er3,@0x9abc:16"
+gdb_test "x" "sub.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "sub.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "sub.l @(0x1234:16,er3),@er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "sub.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "sub.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "sub.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "sub.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "sub.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "sub.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "sub.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "sub.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "sub.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "sub.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "sub.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "sub.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "sub.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "sub.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "sub.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "sub.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "sub.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "sub.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "sub.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "sub.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "sub.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "sub.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "sub.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "sub.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "sub.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "sub.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "sub.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "sub.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "sub.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "sub.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "sub.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "sub.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "sub.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "sub.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "sub.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "sub.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "sub.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "sub.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "sub.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "sub.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "sub.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "sub.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "sub.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "sub.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "sub.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "sub.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "sub.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "sub.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@0x1234(:16|),@er1" \
+ "sub.l @0x1234:16,@er1"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "sub.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@-er1" \
+ "sub.l @0x1234:16,@-er1"
+gdb_test "x" "sub.l\t@0x1234(:16|),@er1\\+" \
+ "sub.l @0x1234:16,@er1+"
+gdb_test "x" "sub.l\t@0x1234(:16|),@er1-" \
+ "sub.l @0x1234:16,@er1-"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\+er1" \
+ "sub.l @0x1234:16,@+er1"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "sub.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "sub.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "sub.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@er1" \
+ "sub.l @0x12345678:32,@er1"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "sub.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@-er1" \
+ "sub.l @0x12345678:32,@-er1"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@er1\\+" \
+ "sub.l @0x12345678:32,@er1+"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@er1-" \
+ "sub.l @0x12345678:32,@er1-"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\+er1" \
+ "sub.l @0x12345678:32,@+er1"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "sub.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "sub.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "sub.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "sub.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "sub.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "sub.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "sub.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "sub.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "sub.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "sub.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "sub.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t04_sub.s b/gdb/testsuite/gdb.disasm/t04_sub.s
new file mode 100644
index 0000000..e89b614
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t04_sub.s
@@ -0,0 +1,977 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;arith_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ sub.b #0x12:8,@er1 ;7d10a112
+ sub.b #0x12:8,@(0x3:2,er1) ;01776818a112
+ sub.b #0x12:8,@er1+ ;01746c18a112
+ sub.b #0x12:8,@-er1 ;01776c18a112
+ sub.b #0x12:8,@+er1 ;01756c18a112
+ sub.b #0x12:8,@er1- ;01766c18a112
+ sub.b #0x12:8,@(0x1234:16,er1) ;01746e181234a112
+ sub.b #0x12:8,@(0x12345678:32,er1) ;78146a2812345678a112
+ sub.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234a112
+ sub.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234a112
+ sub.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234a112
+ sub.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678a112
+ sub.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678a112
+ sub.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678a112
+ sub.b #0x12:8,@0xffffff9a:8 ;7f9aa112
+ sub.b #0x12:8,@0x1234:16 ;6a181234a112
+ sub.b #0x12:8,@0x12345678:32 ;6a3812345678a112
+
+ sub.b r3h,r1h ;1831
+
+ sub.b r3h,@er1 ;7d101830
+ sub.b r3h,@(0x3:2,er1) ;01793133
+ sub.b r3h,@er1+ ;01798133
+ sub.b r3h,@-er1 ;0179b133
+ sub.b r3h,@+er1 ;01799133
+ sub.b r3h,@er1- ;0179a133
+ sub.b r3h,@(0x1234:16,er1) ;0179c1331234
+ sub.b r3h,@(0x12345678:32,er1) ;0179c93312345678
+ sub.b r3h,@(0x1234:16,r2l.b) ;0179d2331234
+ sub.b r3h,@(0x1234:16,r2.w) ;0179e2331234
+ sub.b r3h,@(0x1234:16,er2.l) ;0179f2331234
+ sub.b r3h,@(0x12345678:32,r2l.b) ;0179da3312345678
+ sub.b r3h,@(0x12345678:32,r2.w) ;0179ea3312345678
+ sub.b r3h,@(0x12345678:32,er2.l) ;0179fa3312345678
+ sub.b r3h,@0xffffff12:8 ;7f121830
+ sub.b r3h,@0x1234:16 ;6a1812341830
+ sub.b r3h,@0x12345678:32 ;6a38123456781830
+
+ sub.b @er3,r1h ;7c301801
+ sub.b @(0x3:2,er3),r1h ;017a3331
+ sub.b @er3+,r1h ;017a8331
+ sub.b @-er3,r1h ;017ab331
+ sub.b @+er3,r1h ;017a9331
+ sub.b @er3-,r1h ;017aa331
+ sub.b @(0x1234:16,er1),r1h ;017ac1311234
+ sub.b @(0x12345678:32,er1),r1h ;017ac93112345678
+ sub.b @(0x1234:16,r2l.b),r1h ;017ad2311234
+ sub.b @(0x1234:16,r2.w),r1h ;017ae2311234
+ sub.b @(0x1234:16,er2.l),r1h ;017af2311234
+ sub.b @(0x12345678:32,r2l.b),r1h ;017ada3112345678
+ sub.b @(0x12345678:32,r2.w),r1h ;017aea3112345678
+ sub.b @(0x12345678:32,er2.l),r1h ;017afa3112345678
+ sub.b @0xffffff12:8,r1h ;7e121801
+ sub.b @0x1234:16,r1h ;6a1012341801
+ sub.b @0x12345678:32,r1h ;6a30123456781801
+
+ sub.b @er3,@er1 ;7c350130
+ sub.b @er3,@(3:2,er1) ;7c353130
+ sub.b @er3,@-er1 ;7c35b130
+ sub.b @er3,@er1+ ;7c358130
+ sub.b @er3,@er1- ;7c35a130
+ sub.b @er3,@+er1 ;7c359130
+ sub.b @er3,@(0xffff9abc:16,er1) ;7c35c1309abc
+ sub.b @er3,@(0x9abcdef0:32,er1) ;7c35c9309abcdef0
+ sub.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2309abc
+ sub.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2309abc
+ sub.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2309abc
+ sub.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da309abcdef0
+ sub.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea309abcdef0
+ sub.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa309abcdef0
+ sub.b @er3,@0xffff9abc:16 ;7c3540309abc
+ sub.b @er3,@0x9abcdef0:32 ;7c3548309abcdef0
+
+ sub.b @-er3,@er1 ;01776c3c0130
+ sub.b @-er3,@(3:2,er1) ;01776c3c3130
+ sub.b @-er3,@-er1 ;01776c3cb130
+ sub.b @-er3,@er1+ ;01776c3c8130
+ sub.b @-er3,@er1- ;01776c3ca130
+ sub.b @-er3,@+er1 ;01776c3c9130
+ sub.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1309abc
+ sub.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9309abcdef0
+ sub.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2309abc
+ sub.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2309abc
+ sub.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2309abc
+ sub.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda309abcdef0
+ sub.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea309abcdef0
+ sub.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa309abcdef0
+ sub.b @-er3,@0xffff9abc:16 ;01776c3c40309abc
+ sub.b @-er3,@0x9abcdef0:32 ;01776c3c48309abcdef0
+
+ sub.b @er3+,@er1 ;01746c3c0130
+ sub.b @er3+,@(3:2,er1) ;01746c3c3130
+ sub.b @er3+,@-er1 ;01746c3cb130
+ sub.b @er3+,@er1+ ;01746c3c8130
+ sub.b @er3+,@er1- ;01746c3ca130
+ sub.b @er3+,@+er1 ;01746c3c9130
+ sub.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1309abc
+ sub.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9309abcdef0
+ sub.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2309abc
+ sub.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2309abc
+ sub.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2309abc
+ sub.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda309abcdef0
+ sub.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea309abcdef0
+ sub.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa309abcdef0
+ sub.b @er3+,@0xffff9abc:16 ;01746c3c40309abc
+ sub.b @er3+,@0x9abcdef0:32 ;01746c3c48309abcdef0
+
+ sub.b @er3-,@er1 ;01766c3c0130
+ sub.b @er3-,@(3:2,er1) ;01766c3c3130
+ sub.b @er3-,@-er1 ;01766c3cb130
+ sub.b @er3-,@er1+ ;01766c3c8130
+ sub.b @er3-,@er1- ;01766c3ca130
+ sub.b @er3-,@+er1 ;01766c3c9130
+ sub.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1309abc
+ sub.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9309abcdef0
+ sub.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2309abc
+ sub.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2309abc
+ sub.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2309abc
+ sub.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda309abcdef0
+ sub.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea309abcdef0
+ sub.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa309abcdef0
+ sub.b @er3-,@0xffff9abc:16 ;01766c3c40309abc
+ sub.b @er3-,@0x9abcdef0:32 ;01766c3c48309abcdef0
+
+ sub.b @+er3,@er1 ;01756c3c0130
+ sub.b @+er3,@(3:2,er1) ;01756c3c3130
+ sub.b @+er3,@-er1 ;01756c3cb130
+ sub.b @+er3,@er1+ ;01756c3c8130
+ sub.b @+er3,@er1- ;01756c3ca130
+ sub.b @+er3,@+er1 ;01756c3c9130
+ sub.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1309abc
+ sub.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9309abcdef0
+ sub.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2309abc
+ sub.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2309abc
+ sub.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2309abc
+ sub.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda309abcdef0
+ sub.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea309abcdef0
+ sub.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa309abcdef0
+ sub.b @+er3,@0xffff9abc:16 ;01756c3c40309abc
+ sub.b @+er3,@0x9abcdef0:32 ;01756c3c48309abcdef0
+
+ sub.b @(0x1234:16,er3),@er1 ;01746e3c12340130
+ sub.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343130
+ sub.b @(0x1234:16,er3),@-er1 ;01746e3c1234b130
+ sub.b @(0x1234:16,er3),@er1+ ;01746e3c12348130
+ sub.b @(0x1234:16,er3),@er1- ;01746e3c1234a130
+ sub.b @(0x1234:16,er3),@+er1 ;01746e3c12349130
+ sub.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1309abc
+ sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9309abcdef0
+ sub.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2309abc
+ sub.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2309abc
+ sub.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2309abc
+ sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da309abcdef0
+ sub.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea309abcdef0
+ sub.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa309abcdef0
+ sub.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440309abc
+ sub.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448309abcdef0
+
+ sub.b @(0x12345678:32,er3),@er1 ;78346a2c123456780130
+ sub.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783130
+ sub.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b130
+ sub.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788130
+ sub.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a130
+ sub.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789130
+ sub.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1309abc
+ sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9309abcdef0
+ sub.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2309abc
+ sub.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2309abc
+ sub.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2309abc
+ sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da309abcdef0
+ sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea309abcdef0
+ sub.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa309abcdef0
+ sub.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840309abc
+ sub.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848309abcdef0
+
+ sub.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340130
+ sub.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343130
+ sub.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b130
+ sub.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348130
+ sub.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a130
+ sub.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349130
+ sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1309abc
+ sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9309abcdef0
+ sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2309abc
+ sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2309abc
+ sub.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2309abc
+ sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da309abcdef0
+ sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea309abcdef0
+ sub.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa309abcdef0
+ sub.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440309abc
+ sub.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448309abcdef0
+
+ sub.b @(0x1234:16,r3.w),@er1 ;01766e3c12340130
+ sub.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343130
+ sub.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b130
+ sub.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348130
+ sub.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a130
+ sub.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349130
+ sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1309abc
+ sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9309abcdef0
+ sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2309abc
+ sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2309abc
+ sub.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2309abc
+ sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da309abcdef0
+ sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea309abcdef0
+ sub.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa309abcdef0
+ sub.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440309abc
+ sub.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448309abcdef0
+
+ sub.b @(0x1234:16,er3.l),@er1 ;01776e3c12340130
+ sub.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343130
+ sub.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b130
+ sub.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348130
+ sub.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a130
+ sub.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349130
+ sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1309abc
+ sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9309abcdef0
+ sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2309abc
+ sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2309abc
+ sub.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2309abc
+ sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da309abcdef0
+ sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea309abcdef0
+ sub.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa309abcdef0
+ sub.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440309abc
+ sub.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448309abcdef0
+
+ sub.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780130
+ sub.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783130
+ sub.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b130
+ sub.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788130
+ sub.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a130
+ sub.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789130
+ sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1309abc
+ sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9309abcdef0
+ sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2309abc
+ sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2309abc
+ sub.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2309abc
+ sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da309abcdef0
+ sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea309abcdef0
+ sub.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa309abcdef0
+ sub.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840309abc
+ sub.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848309abcdef0
+
+ sub.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780130
+ sub.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783130
+ sub.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b130
+ sub.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788130
+ sub.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a130
+ sub.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789130
+ sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1309abc
+ sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9309abcdef0
+ sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2309abc
+ sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2309abc
+ sub.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2309abc
+ sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da309abcdef0
+ sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea309abcdef0
+ sub.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa309abcdef0
+ sub.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840309abc
+ sub.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848309abcdef0
+
+ sub.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780130
+ sub.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783130
+ sub.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b130
+ sub.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788130
+ sub.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a130
+ sub.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789130
+ sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1309abc
+ sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9309abcdef0
+ sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2309abc
+ sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2309abc
+ sub.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2309abc
+ sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da309abcdef0
+ sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea309abcdef0
+ sub.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa309abcdef0
+ sub.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840309abc
+ sub.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848309abcdef0
+
+ sub.b @0x1234:16,@er1 ;6a1512340130
+ sub.b @0x1234:16,@(3:2,er1) ;6a1512343130
+ sub.b @0x1234:16,@-er1 ;6a151234b130
+ sub.b @0x1234:16,@er1+ ;6a1512348130
+ sub.b @0x1234:16,@er1- ;6a151234a130
+ sub.b @0x1234:16,@+er1 ;6a1512349130
+ sub.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1309abc
+ sub.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9309abcdef0
+ sub.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2309abc
+ sub.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2309abc
+ sub.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2309abc
+ sub.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da309abcdef0
+ sub.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea309abcdef0
+ sub.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa309abcdef0
+ sub.b @0x1234:16,@0xffff9abc:16 ;6a15123440309abc
+ sub.b @0x1234:16,@0x9abcdef0:32 ;6a15123448309abcdef0
+
+ sub.b @0x12345678:32,@er1 ;6a35123456780130
+ sub.b @0x12345678:32,@(3:2,er1) ;6a35123456783130
+ sub.b @0x12345678:32,@-er1 ;6a3512345678b130
+ sub.b @0x12345678:32,@er1+ ;6a35123456788130
+ sub.b @0x12345678:32,@er1- ;6a3512345678a130
+ sub.b @0x12345678:32,@+er1 ;6a35123456789130
+ sub.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1309abc
+ sub.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9309abcdef0
+ sub.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2309abc
+ sub.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2309abc
+ sub.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2309abc
+ sub.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da309abcdef0
+ sub.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea309abcdef0
+ sub.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa309abcdef0
+ sub.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840309abc
+ sub.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848309abcdef0
+
+ sub.w #0x1234:16,r1 ;79311234
+ sub.w #7:3,r2 ;1a72
+ sub.w #0x1234:16,@er1 ;015e01301234
+ sub.w #0x1234:16,@(0x6:2,er1) ;015e31301234
+ sub.w #0x1234:16,@er1+ ;015e81301234
+ sub.w #0x1234:16,@-er1 ;015eb1301234
+ sub.w #0x1234:16,@+er1 ;015e91301234
+ sub.w #0x1234:16,@er1- ;015ea1301234
+ sub.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1309abc1234
+ sub.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9309abcdef01234
+ sub.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2309abc1234
+ sub.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2309abc1234
+ sub.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2309abc1234
+ sub.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda309abcdef01234
+ sub.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea309abcdef01234
+ sub.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa309abcdef01234
+ sub.w #0x1234:16,@0xffff9abc:16 ;015e40309abc1234
+ sub.w #0x1234:16,@0x9abcdef0:32 ;015e48309abcdef01234
+
+ sub.w #0x7:3,@er1 ;7d901a70
+ sub.w #0x7:3,@0x1234:16 ;6b1812341a70
+ sub.w #0x7:3,@0x12345678:32 ;6b38123456781a70
+
+ sub.w r3,r1 ;1931
+
+ sub.w r3,@er1 ;7d901930
+ sub.w r3,@(0x6:2,er1) ;01593133
+ sub.w r3,@er1+ ;01598133
+ sub.w r3,@-er1 ;0159b133
+ sub.w r3,@+er1 ;01599133
+ sub.w r3,@er1- ;0159a133
+ sub.w r3,@(0x1234:16,er1) ;0159c1331234
+ sub.w r3,@(0x12345678:32,er1) ;0159c93312345678
+ sub.w r3,@(0x1234:16,r2l.b) ;0159d2331234
+ sub.w r3,@(0x1234:16,r2.w) ;0159e2331234
+ sub.w r3,@(0x1234:16,er2.l) ;0159f2331234
+ sub.w r3,@(0x12345678:32,r2l.b) ;0159da3312345678
+ sub.w r3,@(0x12345678:32,r2.w) ;0159ea3312345678
+ sub.w r3,@(0x12345678:32,er2.l) ;0159fa3312345678
+ sub.w r3,@0x1234:16 ;6b1812341930
+ sub.w r3,@0x12345678:32 ;6b38123456781930
+
+ sub.w @er3,r1 ;7cb01901
+ sub.w @(0x6:2,er3),r1 ;015a3331
+ sub.w @er3+,r1 ;015a8331
+ sub.w @-er3,r1 ;015ab331
+ sub.w @+er3,r1 ;015a9331
+ sub.w @er3-,r1 ;015aa331
+ sub.w @(0x1234:16,er1),r1 ;015ac1311234
+ sub.w @(0x12345678:32,er1),r1 ;015ac93112345678
+ sub.w @(0x1234:16,r2l.b),r1 ;015ad2311234
+ sub.w @(0x1234:16,r2.w),r1 ;015ae2311234
+ sub.w @(0x1234:16,er2.l),r1 ;015af2311234
+ sub.w @(0x12345678:32,r2l.b),r1 ;015ada3112345678
+ sub.w @(0x12345678:32,r2.w),r1 ;015aea3112345678
+ sub.w @(0x12345678:32,er2.l),r1 ;015afa3112345678
+ sub.w @0x1234:16,r1 ;6b1012341901
+ sub.w @0x12345678:32,r1 ;6b30123456781901
+
+ sub.w @er3,@er1 ;7cb50130
+ sub.w @er3,@(6:2,er1) ;7cb53130
+ sub.w @er3,@-er1 ;7cb5b130
+ sub.w @er3,@er1+ ;7cb58130
+ sub.w @er3,@er1- ;7cb5a130
+ sub.w @er3,@+er1 ;7cb59130
+ sub.w @er3,@(0xffff9abc:16,er1) ;7cb5c1309abc
+ sub.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9309abcdef0
+ sub.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2309abc
+ sub.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2309abc
+ sub.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2309abc
+ sub.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da309abcdef0
+ sub.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea309abcdef0
+ sub.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa309abcdef0
+ sub.w @er3,@0xffff9abc:16 ;7cb540309abc
+ sub.w @er3,@0x9abcdef0:32 ;7cb548309abcdef0
+
+ sub.w @-er3,@er1 ;01576d3c0130
+ sub.w @-er3,@(6:2,er1) ;01576d3c3130
+ sub.w @-er3,@-er1 ;01576d3cb130
+ sub.w @-er3,@er1+ ;01576d3c8130
+ sub.w @-er3,@er1- ;01576d3ca130
+ sub.w @-er3,@+er1 ;01576d3c9130
+ sub.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1309abc
+ sub.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9309abcdef0
+ sub.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2309abc
+ sub.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2309abc
+ sub.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2309abc
+ sub.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda309abcdef0
+ sub.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea309abcdef0
+ sub.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa309abcdef0
+ sub.w @-er3,@0xffff9abc:16 ;01576d3c40309abc
+ sub.w @-er3,@0x9abcdef0:32 ;01576d3c48309abcdef0
+
+ sub.w @er3+,@er1 ;01546d3c0130
+ sub.w @er3+,@(6:2,er1) ;01546d3c3130
+ sub.w @er3+,@-er1 ;01546d3cb130
+ sub.w @er3+,@er1+ ;01546d3c8130
+ sub.w @er3+,@er1- ;01546d3ca130
+ sub.w @er3+,@+er1 ;01546d3c9130
+ sub.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1309abc
+ sub.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9309abcdef0
+ sub.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2309abc
+ sub.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2309abc
+ sub.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2309abc
+ sub.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda309abcdef0
+ sub.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea309abcdef0
+ sub.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa309abcdef0
+ sub.w @er3+,@0xffff9abc:16 ;01546d3c40309abc
+ sub.w @er3+,@0x9abcdef0:32 ;01546d3c48309abcdef0
+
+ sub.w @er3-,@er1 ;01566d3c0130
+ sub.w @er3-,@(6:2,er1) ;01566d3c3130
+ sub.w @er3-,@-er1 ;01566d3cb130
+ sub.w @er3-,@er1+ ;01566d3c8130
+ sub.w @er3-,@er1- ;01566d3ca130
+ sub.w @er3-,@+er1 ;01566d3c9130
+ sub.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1309abc
+ sub.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9309abcdef0
+ sub.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2309abc
+ sub.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2309abc
+ sub.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2309abc
+ sub.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda309abcdef0
+ sub.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea309abcdef0
+ sub.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa309abcdef0
+ sub.w @er3-,@0xffff9abc:16 ;01566d3c40309abc
+ sub.w @er3-,@0x9abcdef0:32 ;01566d3c48309abcdef0
+
+ sub.w @+er3,@er1 ;01556d3c0130
+ sub.w @+er3,@(6:2,er1) ;01556d3c3130
+ sub.w @+er3,@-er1 ;01556d3cb130
+ sub.w @+er3,@er1+ ;01556d3c8130
+ sub.w @+er3,@er1- ;01556d3ca130
+ sub.w @+er3,@+er1 ;01556d3c9130
+ sub.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1309abc
+ sub.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9309abcdef0
+ sub.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2309abc
+ sub.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2309abc
+ sub.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2309abc
+ sub.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda309abcdef0
+ sub.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea309abcdef0
+ sub.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa309abcdef0
+ sub.w @+er3,@0xffff9abc:16 ;01556d3c40309abc
+ sub.w @+er3,@0x9abcdef0:32 ;01556d3c48309abcdef0
+
+ sub.w @(0x1234:16,er3),@er1 ;01546f3c12340130
+ sub.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343130
+ sub.w @(0x1234:16,er3),@-er1 ;01546f3c1234b130
+ sub.w @(0x1234:16,er3),@er1+ ;01546f3c12348130
+ sub.w @(0x1234:16,er3),@er1- ;01546f3c1234a130
+ sub.w @(0x1234:16,er3),@+er1 ;01546f3c12349130
+ sub.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1309abc
+ sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9309abcdef0
+ sub.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2309abc
+ sub.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2309abc
+ sub.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2309abc
+ sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da309abcdef0
+ sub.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea309abcdef0
+ sub.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa309abcdef0
+ sub.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440309abc
+ sub.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448309abcdef0
+
+ sub.w @(0x12345678:32,er3),@er1 ;78346b2c123456780130
+ sub.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783130
+ sub.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b130
+ sub.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788130
+ sub.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a130
+ sub.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789130
+ sub.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1309abc
+ sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9309abcdef0
+ sub.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2309abc
+ sub.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2309abc
+ sub.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2309abc
+ sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da309abcdef0
+ sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea309abcdef0
+ sub.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa309abcdef0
+ sub.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840309abc
+ sub.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848309abcdef0
+
+ sub.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340130
+ sub.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343130
+ sub.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b130
+ sub.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348130
+ sub.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a130
+ sub.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349130
+ sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1309abc
+ sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9309abcdef0
+ sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2309abc
+ sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2309abc
+ sub.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2309abc
+ sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da309abcdef0
+ sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea309abcdef0
+ sub.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa309abcdef0
+ sub.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440309abc
+ sub.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448309abcdef0
+
+ sub.w @(0x1234:16,r3.w),@er1 ;01566f3c12340130
+ sub.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343130
+ sub.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b130
+ sub.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348130
+ sub.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a130
+ sub.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349130
+ sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1309abc
+ sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9309abcdef0
+ sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2309abc
+ sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2309abc
+ sub.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2309abc
+ sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da309abcdef0
+ sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea309abcdef0
+ sub.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa309abcdef0
+ sub.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440309abc
+ sub.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448309abcdef0
+
+ sub.w @(0x1234:16,er3.l),@er1 ;01576f3c12340130
+ sub.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343130
+ sub.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b130
+ sub.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348130
+ sub.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a130
+ sub.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349130
+ sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1309abc
+ sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9309abcdef0
+ sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2309abc
+ sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2309abc
+ sub.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2309abc
+ sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da309abcdef0
+ sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea309abcdef0
+ sub.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa309abcdef0
+ sub.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440309abc
+ sub.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448309abcdef0
+
+ sub.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780130
+ sub.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783130
+ sub.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b130
+ sub.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788130
+ sub.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a130
+ sub.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789130
+ sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1309abc
+ sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9309abcdef0
+ sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2309abc
+ sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2309abc
+ sub.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2309abc
+ sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da309abcdef0
+ sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea309abcdef0
+ sub.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa309abcdef0
+ sub.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840309abc
+ sub.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848309abcdef0
+
+ sub.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780130
+ sub.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783130
+ sub.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b130
+ sub.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788130
+ sub.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a130
+ sub.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789130
+ sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1309abc
+ sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9309abcdef0
+ sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2309abc
+ sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2309abc
+ sub.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2309abc
+ sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da309abcdef0
+ sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea309abcdef0
+ sub.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa309abcdef0
+ sub.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840309abc
+ sub.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848309abcdef0
+
+ sub.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780130
+ sub.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783130
+ sub.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b130
+ sub.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788130
+ sub.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a130
+ sub.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789130
+ sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1309abc
+ sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9309abcdef0
+ sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2309abc
+ sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2309abc
+ sub.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2309abc
+ sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da309abcdef0
+ sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea309abcdef0
+ sub.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa309abcdef0
+ sub.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840309abc
+ sub.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848309abcdef0
+
+ sub.w @0x1234:16,@er1 ;6b1512340130
+ sub.w @0x1234:16,@(6:2,er1) ;6b1512343130
+ sub.w @0x1234:16,@-er1 ;6b151234b130
+ sub.w @0x1234:16,@er1+ ;6b1512348130
+ sub.w @0x1234:16,@er1- ;6b151234a130
+ sub.w @0x1234:16,@+er1 ;6b1512349130
+ sub.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1309abc
+ sub.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9309abcdef0
+ sub.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2309abc
+ sub.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2309abc
+ sub.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2309abc
+ sub.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da309abcdef0
+ sub.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea309abcdef0
+ sub.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa309abcdef0
+ sub.w @0x1234:16,@0xffff9abc:16 ;6b15123440309abc
+ sub.w @0x1234:16,@0x9abcdef0:32 ;6b15123448309abcdef0
+
+ sub.w @0x12345678:32,@er1 ;6b35123456780130
+ sub.w @0x12345678:32,@(6:2,er1) ;6b35123456783130
+ sub.w @0x12345678:32,@-er1 ;6b3512345678b130
+ sub.w @0x12345678:32,@er1+ ;6b35123456788130
+ sub.w @0x12345678:32,@er1- ;6b3512345678a130
+ sub.w @0x12345678:32,@+er1 ;6b35123456789130
+ sub.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1309abc
+ sub.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9309abcdef0
+ sub.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2309abc
+ sub.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2309abc
+ sub.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2309abc
+ sub.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da309abcdef0
+ sub.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea309abcdef0
+ sub.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa309abcdef0
+ sub.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840309abc
+ sub.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848309abcdef0
+
+ sub.l #0x12345678:32,er1 ;7a3112345678
+ sub.l #0x1234:16,er1 ;7a391234
+ sub.l #0x7:3,er2 ;1afa
+ sub.l #0x12345678:32,@er1 ;010e013812345678
+ sub.l #0x12345678:32,@(0xc:2,er1) ;010e313812345678
+ sub.l #0x12345678:32,@er1+ ;010e813812345678
+ sub.l #0x12345678:32,@-er1 ;010eb13812345678
+ sub.l #0x12345678:32,@+er1 ;010e913812345678
+ sub.l #0x12345678:32,@er1- ;010ea13812345678
+ sub.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1389abc12345678
+ sub.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9389abcdef012345678
+ sub.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2389abc12345678
+ sub.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2389abc12345678
+ sub.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2389abc12345678
+ sub.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda389abcdef012345678
+ sub.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea389abcdef012345678
+ sub.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa389abcdef012345678
+ sub.l #0x12345678:32,@0xffff9abc:16 ;010e40389abc12345678
+ sub.l #0x12345678:32,@0x9abcdef0:32 ;010e48389abcdef012345678
+ sub.l #0x1234:16,@er1 ;010e01301234
+ sub.l #0x1234:16,@(0xc:2,er1) ;010e31301234
+ sub.l #0x1234:16,@er1+ ;010e81301234
+ sub.l #0x1234:16,@-er1 ;010eb1301234
+ sub.l #0x1234:16,@+er1 ;010e91301234
+ sub.l #0x1234:16,@er1- ;010ea1301234
+ sub.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1309abc1234
+ sub.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9309abcdef01234
+ sub.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2309abc1234
+ sub.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2309abc1234
+ sub.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2309abc1234
+ sub.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda309abcdef01234
+ sub.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea309abcdef01234
+ sub.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa309abcdef01234
+ sub.l #0x1234:16,@0xffff9abc:16 ;010e40309abc1234
+ sub.l #0x1234:16,@0x9abcdef0:32 ;010e48309abcdef01234
+
+ sub.l er3,er1 ;1ab1
+
+ sub.l er3,@er1 ;01090133
+ sub.l er3,@(0xc:2,er1) ;01093133
+ sub.l er3,@er1+ ;01098133
+ sub.l er3,@-er1 ;0109b133
+ sub.l er3,@+er1 ;01099133
+ sub.l er3,@er1- ;0109a133
+ sub.l er3,@(0x1234:16,er1) ;0109c1331234
+ sub.l er3,@(0x12345678:32,er1) ;0109c93312345678
+ sub.l er3,@(0x1234:16,r2l.b) ;0109d2331234
+ sub.l er3,@(0x1234:16,r2.w) ;0109e2331234
+ sub.l er3,@(0x1234:16,er2.l) ;0109f2331234
+ sub.l er3,@(0x12345678:32,r2l.b) ;0109da3312345678
+ sub.l er3,@(0x12345678:32,r2.w) ;0109ea3312345678
+ sub.l er3,@(0x12345678:32,er2.l) ;0109fa3312345678
+ sub.l er3,@0x1234:16 ;010940331234
+ sub.l er3,@0x12345678:32 ;0109483312345678
+
+ sub.l @er3,er1 ;010a0331
+ sub.l @(0xc:2,er3),er1 ;010a3331
+ sub.l @er3+,er1 ;010a8331
+ sub.l @-er3,er1 ;010ab331
+ sub.l @+er3,er1 ;010a9331
+ sub.l @er3-,er1 ;010aa331
+ sub.l @(0x1234:16,er1),er1 ;010ac1311234
+ sub.l @(0x12345678:32,er1),er1 ;010ac93112345678
+ sub.l @(0x1234:16,r2l.b),er1 ;010ad2311234
+ sub.l @(0x1234:16,r2.w),er1 ;010ae2311234
+ sub.l @(0x1234:16,er2.l),er1 ;010af2311234
+ sub.l @(0x12345678:32,r2l.b),er1 ;010ada3112345678
+ sub.l @(0x12345678:32,r2.w),er1 ;010aea3112345678
+ sub.l @(0x12345678:32,er2.l),er1 ;010afa3112345678
+ sub.l @0x1234:16,er1 ;010a40311234
+ sub.l @0x12345678:32,er1 ;010a483112345678
+
+ sub.l @er3,@er1 ;0104693c0130
+ sub.l @er3,@(0xc:2,er1) ;0104693c3130
+ sub.l @er3,@-er1 ;0104693cb130
+ sub.l @er3,@er1+ ;0104693c8130
+ sub.l @er3,@er1- ;0104693ca130
+ sub.l @er3,@+er1 ;0104693c9130
+ sub.l @er3,@(0xffff9abc:16,er1) ;0104693cc1309abc
+ sub.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9309abcdef0
+ sub.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2309abc
+ sub.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2309abc
+ sub.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2309abc
+ sub.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda309abcdef0
+ sub.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea309abcdef0
+ sub.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa309abcdef0
+ sub.l @er3,@0xffff9abc:16 ;0104693c40309abc
+ sub.l @er3,@0x9abcdef0:32 ;0104693c48309abcdef0
+
+ sub.l @(0xc:2,er3),@er1 ;0107693c0130
+ sub.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3130
+ sub.l @(0xc:2,er3),@-er1 ;0107693cb130
+ sub.l @(0xc:2,er3),@er1+ ;0107693c8130
+ sub.l @(0xc:2,er3),@er1- ;0107693ca130
+ sub.l @(0xc:2,er3),@+er1 ;0107693c9130
+ sub.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1309abc
+ sub.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9309abcdef0
+ sub.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2309abc
+ sub.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2309abc
+ sub.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2309abc
+ sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda309abcdef0
+ sub.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea309abcdef0
+ sub.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa309abcdef0
+ sub.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40309abc
+ sub.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48309abcdef0
+
+ sub.l @-er3,@er1 ;01076d3c0130
+ sub.l @-er3,@(0xc:2,er1) ;01076d3c3130
+ sub.l @-er3,@-er1 ;01076d3cb130
+ sub.l @-er3,@er1+ ;01076d3c8130
+ sub.l @-er3,@er1- ;01076d3ca130
+ sub.l @-er3,@+er1 ;01076d3c9130
+ sub.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1309abc
+ sub.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9309abcdef0
+ sub.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2309abc
+ sub.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2309abc
+ sub.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2309abc
+ sub.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda309abcdef0
+ sub.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea309abcdef0
+ sub.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa309abcdef0
+ sub.l @-er3,@0xffff9abc:16 ;01076d3c40309abc
+ sub.l @-er3,@0x9abcdef0:32 ;01076d3c48309abcdef0
+
+ sub.l @er3+,@er1 ;01046d3c0130
+ sub.l @er3+,@(0xc:2,er1) ;01046d3c3130
+ sub.l @er3+,@-er1 ;01046d3cb130
+ sub.l @er3+,@er1+ ;01046d3c8130
+ sub.l @er3+,@er1- ;01046d3ca130
+ sub.l @er3+,@+er1 ;01046d3c9130
+ sub.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1309abc
+ sub.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9309abcdef0
+ sub.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2309abc
+ sub.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2309abc
+ sub.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2309abc
+ sub.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda309abcdef0
+ sub.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea309abcdef0
+ sub.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa309abcdef0
+ sub.l @er3+,@0xffff9abc:16 ;01046d3c40309abc
+ sub.l @er3+,@0x9abcdef0:32 ;01046d3c48309abcdef0
+
+ sub.l @er3-,@er1 ;01066d3c0130
+ sub.l @er3-,@(0xc:2,er1) ;01066d3c3130
+ sub.l @er3-,@-er1 ;01066d3cb130
+ sub.l @er3-,@er1+ ;01066d3c8130
+ sub.l @er3-,@er1- ;01066d3ca130
+ sub.l @er3-,@+er1 ;01066d3c9130
+ sub.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1309abc
+ sub.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9309abcdef0
+ sub.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2309abc
+ sub.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2309abc
+ sub.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2309abc
+ sub.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda309abcdef0
+ sub.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea309abcdef0
+ sub.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa309abcdef0
+ sub.l @er3-,@0xffff9abc:16 ;01066d3c40309abc
+ sub.l @er3-,@0x9abcdef0:32 ;01066d3c48309abcdef0
+
+ sub.l @+er3,@er1 ;01056d3c0130
+ sub.l @+er3,@(0xc:2,er1) ;01056d3c3130
+ sub.l @+er3,@-er1 ;01056d3cb130
+ sub.l @+er3,@er1+ ;01056d3c8130
+ sub.l @+er3,@er1- ;01056d3ca130
+ sub.l @+er3,@+er1 ;01056d3c9130
+ sub.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1309abc
+ sub.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9309abcdef0
+ sub.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2309abc
+ sub.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2309abc
+ sub.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2309abc
+ sub.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda309abcdef0
+ sub.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea309abcdef0
+ sub.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa309abcdef0
+ sub.l @+er3,@0xffff9abc:16 ;01056d3c40309abc
+ sub.l @+er3,@0x9abcdef0:32 ;01056d3c48309abcdef0
+
+ sub.l @(0x1234:16,er3),@er1 ;01046f3c12340130
+ sub.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343130
+ sub.l @(0x1234:16,er3),@-er1 ;01046f3c1234b130
+ sub.l @(0x1234:16,er3),@er1+ ;01046f3c12348130
+ sub.l @(0x1234:16,er3),@er1- ;01046f3c1234a130
+ sub.l @(0x1234:16,er3),@+er1 ;01046f3c12349130
+ sub.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1309abc
+ sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9309abcdef0
+ sub.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2309abc
+ sub.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2309abc
+ sub.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2309abc
+ sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da309abcdef0
+ sub.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea309abcdef0
+ sub.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa309abcdef0
+ sub.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440309abc
+ sub.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448309abcdef0
+
+ sub.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780130
+ sub.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783130
+ sub.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b130
+ sub.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788130
+ sub.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a130
+ sub.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789130
+ sub.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1309abc
+ sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9309abcdef0
+ sub.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2309abc
+ sub.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2309abc
+ sub.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2309abc
+ sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da309abcdef0
+ sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea309abcdef0
+ sub.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa309abcdef0
+ sub.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840309abc
+ sub.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848309abcdef0
+
+ sub.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340130
+ sub.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343130
+ sub.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b130
+ sub.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348130
+ sub.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a130
+ sub.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349130
+ sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1309abc
+ sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9309abcdef0
+ sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2309abc
+ sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2309abc
+ sub.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2309abc
+ sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da309abcdef0
+ sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea309abcdef0
+ sub.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa309abcdef0
+ sub.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440309abc
+ sub.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448309abcdef0
+
+ sub.l @(0x1234:16,r3.w),@er1 ;01066f3c12340130
+ sub.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343130
+ sub.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b130
+ sub.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348130
+ sub.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a130
+ sub.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349130
+ sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1309abc
+ sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9309abcdef0
+ sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2309abc
+ sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2309abc
+ sub.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2309abc
+ sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da309abcdef0
+ sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea309abcdef0
+ sub.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa309abcdef0
+ sub.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440309abc
+ sub.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448309abcdef0
+
+ sub.l @(0x1234:16,er3.l),@er1 ;01076f3c12340130
+ sub.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343130
+ sub.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b130
+ sub.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348130
+ sub.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a130
+ sub.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349130
+ sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1309abc
+ sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9309abcdef0
+ sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2309abc
+ sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2309abc
+ sub.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2309abc
+ sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da309abcdef0
+ sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea309abcdef0
+ sub.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa309abcdef0
+ sub.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440309abc
+ sub.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448309abcdef0
+
+ sub.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780130
+ sub.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783130
+ sub.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b130
+ sub.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788130
+ sub.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a130
+ sub.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789130
+ sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1309abc
+ sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9309abcdef0
+ sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2309abc
+ sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2309abc
+ sub.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2309abc
+ sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da309abcdef0
+ sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea309abcdef0
+ sub.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa309abcdef0
+ sub.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840309abc
+ sub.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848309abcdef0
+
+ sub.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780130
+ sub.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783130
+ sub.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b130
+ sub.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788130
+ sub.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a130
+ sub.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789130
+ sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1309abc
+ sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9309abcdef0
+ sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2309abc
+ sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2309abc
+ sub.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2309abc
+ sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da309abcdef0
+ sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea309abcdef0
+ sub.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa309abcdef0
+ sub.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840309abc
+ sub.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848309abcdef0
+
+ sub.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780130
+ sub.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783130
+ sub.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b130
+ sub.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788130
+ sub.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a130
+ sub.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789130
+ sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1309abc
+ sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9309abcdef0
+ sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2309abc
+ sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2309abc
+ sub.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2309abc
+ sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da309abcdef0
+ sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea309abcdef0
+ sub.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa309abcdef0
+ sub.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840309abc
+ sub.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848309abcdef0
+
+ sub.l @0x1234:16,@er1 ;01046b0c12340130
+ sub.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343130
+ sub.l @0x1234:16,@-er1 ;01046b0c1234b130
+ sub.l @0x1234:16,@er1+ ;01046b0c12348130
+ sub.l @0x1234:16,@er1- ;01046b0c1234a130
+ sub.l @0x1234:16,@+er1 ;01046b0c12349130
+ sub.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1309abc
+ sub.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9309abcdef0
+ sub.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2309abc
+ sub.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2309abc
+ sub.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2309abc
+ sub.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da309abcdef0
+ sub.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea309abcdef0
+ sub.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa309abcdef0
+ sub.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440309abc
+ sub.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448309abcdef0
+
+ sub.l @0x12345678:32,@er1 ;01046b2c123456780130
+ sub.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783130
+ sub.l @0x12345678:32,@-er1 ;01046b2c12345678b130
+ sub.l @0x12345678:32,@er1+ ;01046b2c123456788130
+ sub.l @0x12345678:32,@er1- ;01046b2c12345678a130
+ sub.l @0x12345678:32,@+er1 ;01046b2c123456789130
+ sub.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1309abc
+ sub.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9309abcdef0
+ sub.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2309abc
+ sub.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2309abc
+ sub.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2309abc
+ sub.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da309abcdef0
+ sub.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea309abcdef0
+ sub.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa309abcdef0
+ sub.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840309abc
+ sub.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848309abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t05_cmp.exp b/gdb/testsuite/gdb.disasm/t05_cmp.exp
new file mode 100644
index 0000000..8578000
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t05_cmp.exp
@@ -0,0 +1,1770 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t05_cmp"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "cmp.b\t@er3,@er1" \
+ "cmp.b @er3,@er1"
+gdb_test "x" "cmp.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "cmp.b @er3,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@er3,@-er1" \
+ "cmp.b @er3,@-er1"
+gdb_test "x" "cmp.b\t@er3,@er1\\+" \
+ "cmp.b @er3,@er1+"
+gdb_test "x" "cmp.b\t@er3,@er1-" \
+ "cmp.b @er3,@er1-"
+gdb_test "x" "cmp.b\t@er3,@\\+er1" \
+ "cmp.b @er3,@+er1"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@er3,@0x9abc(:16|)" \
+ "cmp.b @er3,@0x9abc:16"
+gdb_test "x" "cmp.b\t@er3,@0x9abcdef0(:32|)" \
+ "cmp.b @er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@-er3,@er1" \
+ "cmp.b @-er3,@er1"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "cmp.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@-er3,@-er1" \
+ "cmp.b @-er3,@-er1"
+gdb_test "x" "cmp.b\t@-er3,@er1\\+" \
+ "cmp.b @-er3,@er1+"
+gdb_test "x" "cmp.b\t@-er3,@er1-" \
+ "cmp.b @-er3,@er1-"
+gdb_test "x" "cmp.b\t@-er3,@\\+er1" \
+ "cmp.b @-er3,@+er1"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@-er3,@0x9abc(:16|)" \
+ "cmp.b @-er3,@0x9abc:16"
+gdb_test "x" "cmp.b\t@-er3,@0x9abcdef0(:32|)" \
+ "cmp.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@er3\\+,@er1" \
+ "cmp.b @er3+,@er1"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "cmp.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@er3\\+,@-er1" \
+ "cmp.b @er3+,@-er1"
+gdb_test "x" "cmp.b\t@er3\\+,@er1\\+" \
+ "cmp.b @er3+,@er1+"
+gdb_test "x" "cmp.b\t@er3\\+,@er1-" \
+ "cmp.b @er3+,@er1-"
+gdb_test "x" "cmp.b\t@er3\\+,@\\+er1" \
+ "cmp.b @er3+,@+er1"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@er3\\+,@0x9abc(:16|)" \
+ "cmp.b @er3+,@0x9abc:16"
+gdb_test "x" "cmp.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "cmp.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@er3-,@er1" \
+ "cmp.b @er3-,@er1"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "cmp.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@er3-,@-er1" \
+ "cmp.b @er3-,@-er1"
+gdb_test "x" "cmp.b\t@er3-,@er1\\+" \
+ "cmp.b @er3-,@er1+"
+gdb_test "x" "cmp.b\t@er3-,@er1-" \
+ "cmp.b @er3-,@er1-"
+gdb_test "x" "cmp.b\t@er3-,@\\+er1" \
+ "cmp.b @er3-,@+er1"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@er3-,@0x9abc(:16|)" \
+ "cmp.b @er3-,@0x9abc:16"
+gdb_test "x" "cmp.b\t@er3-,@0x9abcdef0(:32|)" \
+ "cmp.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\+er3,@er1" \
+ "cmp.b @+er3,@er1"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "cmp.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\+er3,@-er1" \
+ "cmp.b @+er3,@-er1"
+gdb_test "x" "cmp.b\t@\\+er3,@er1\\+" \
+ "cmp.b @+er3,@er1+"
+gdb_test "x" "cmp.b\t@\\+er3,@er1-" \
+ "cmp.b @+er3,@er1-"
+gdb_test "x" "cmp.b\t@\\+er3,@\\+er1" \
+ "cmp.b @+er3,@+er1"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\+er3,@0x9abc(:16|)" \
+ "cmp.b @+er3,@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "cmp.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "cmp.b @(0x1234:16,er3),@er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "cmp.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "cmp.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "cmp.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "cmp.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "cmp.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "cmp.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "cmp.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "cmp.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "cmp.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "cmp.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "cmp.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "cmp.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "cmp.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "cmp.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "cmp.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "cmp.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "cmp.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "cmp.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "cmp.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "cmp.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "cmp.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "cmp.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "cmp.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "cmp.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "cmp.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "cmp.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "cmp.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "cmp.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "cmp.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "cmp.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "cmp.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "cmp.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "cmp.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "cmp.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "cmp.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "cmp.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "cmp.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "cmp.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "cmp.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "cmp.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "cmp.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@er1" \
+ "cmp.b @0x1234:16,@er1"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@-er1" \
+ "cmp.b @0x1234:16,@-er1"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@er1\\+" \
+ "cmp.b @0x1234:16,@er1+"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@er1-" \
+ "cmp.b @0x1234:16,@er1-"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\+er1" \
+ "cmp.b @0x1234:16,@+er1"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "cmp.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "cmp.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "cmp.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@er1" \
+ "cmp.b @0x12345678:32,@er1"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "cmp.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@-er1" \
+ "cmp.b @0x12345678:32,@-er1"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@er1\\+" \
+ "cmp.b @0x12345678:32,@er1+"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@er1-" \
+ "cmp.b @0x12345678:32,@er1-"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\+er1" \
+ "cmp.b @0x12345678:32,@+er1"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "cmp.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "cmp.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "cmp.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t#0x1234(:16|),r1" \
+ "cmp.w #0x1234:16,r1"
+gdb_test "x" "cmp.w\t#0x7(:3|),r2" \
+ "cmp.w #0x7:3,r2"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@er1" \
+ "cmp.w #0x1234:16,@er1"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "cmp.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@er1\\+" \
+ "cmp.w #0x1234:16,@er1+"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@-er1" \
+ "cmp.w #0x1234:16,@-er1"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\+er1" \
+ "cmp.w #0x1234:16,@+er1"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@er1-" \
+ "cmp.w #0x1234:16,@er1-"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "cmp.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "cmp.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "cmp.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t#0x7(:3|),@er1" \
+ "cmp.w #0x7:3,@er1"
+gdb_test "x" "cmp.w\t#0x7(:3|),@0x1234(:16|)" \
+ "cmp.w #0x7:3,@0x1234:16"
+gdb_test "x" "cmp.w\t#0x7(:3|),@0x12345678(:32|)" \
+ "cmp.w #0x7:3,@0x12345678:32"
+gdb_test "x" "cmp.w\tr3,r1" \
+ "cmp.w r3,r1"
+gdb_test "x" "cmp.w\tr3,@er1" \
+ "cmp.w r3,@er1"
+gdb_test "x" "cmp.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "cmp.w r3,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\tr3,@er1\\+" \
+ "cmp.w r3,@er1+"
+gdb_test "x" "cmp.w\tr3,@-er1" \
+ "cmp.w r3,@-er1"
+gdb_test "x" "cmp.w\tr3,@\\+er1" \
+ "cmp.w r3,@+er1"
+gdb_test "x" "cmp.w\tr3,@er1-" \
+ "cmp.w r3,@er1-"
+gdb_test "x" "cmp.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "cmp.w r3,@(0x1234:16,er1)"
+gdb_test "x" "cmp.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "cmp.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "cmp.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "cmp.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "cmp.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "cmp.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "cmp.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "cmp.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "cmp.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "cmp.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "cmp.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "cmp.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "cmp.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "cmp.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "cmp.w\tr3,@0x1234(:16|)" \
+ "cmp.w r3,@0x1234:16"
+gdb_test "x" "cmp.w\tr3,@0x12345678(:32|)" \
+ "cmp.w r3,@0x12345678:32"
+gdb_test "x" "cmp.w\t@er3,r1" \
+ "cmp.w @er3,r1"
+gdb_test "x" "cmp.w\t@\\(0x6(:2|),er3\\),r1" \
+ "cmp.w @(0x6:2,er3),r1"
+gdb_test "x" "cmp.w\t@er3\\+,r1" \
+ "cmp.w @er3+,r1"
+gdb_test "x" "cmp.w\t@-er3,r1" \
+ "cmp.w @-er3,r1"
+gdb_test "x" "cmp.w\t@\\+er3,r1" \
+ "cmp.w @+er3,r1"
+gdb_test "x" "cmp.w\t@er3-,r1" \
+ "cmp.w @er3-,r1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "cmp.w @(0x1234:16,er1),r1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "cmp.w @(0x12345678:32,er1),r1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "cmp.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "cmp.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "cmp.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "cmp.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "cmp.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "cmp.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "cmp.w\t@0x1234(:16|),r1" \
+ "cmp.w @0x1234:16,r1"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),r1" \
+ "cmp.w @0x12345678:32,r1"
+gdb_test "x" "cmp.w\t@er3,@er1" \
+ "cmp.w @er3,@er1"
+gdb_test "x" "cmp.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "cmp.w @er3,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@er3,@-er1" \
+ "cmp.w @er3,@-er1"
+gdb_test "x" "cmp.w\t@er3,@er1\\+" \
+ "cmp.w @er3,@er1+"
+gdb_test "x" "cmp.w\t@er3,@er1-" \
+ "cmp.w @er3,@er1-"
+gdb_test "x" "cmp.w\t@er3,@\\+er1" \
+ "cmp.w @er3,@+er1"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@er3,@0x9abc(:16|)" \
+ "cmp.w @er3,@0x9abc:16"
+gdb_test "x" "cmp.w\t@er3,@0x9abcdef0(:32|)" \
+ "cmp.w @er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@-er3,@er1" \
+ "cmp.w @-er3,@er1"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "cmp.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@-er3,@-er1" \
+ "cmp.w @-er3,@-er1"
+gdb_test "x" "cmp.w\t@-er3,@er1\\+" \
+ "cmp.w @-er3,@er1+"
+gdb_test "x" "cmp.w\t@-er3,@er1-" \
+ "cmp.w @-er3,@er1-"
+gdb_test "x" "cmp.w\t@-er3,@\\+er1" \
+ "cmp.w @-er3,@+er1"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@-er3,@0x9abc(:16|)" \
+ "cmp.w @-er3,@0x9abc:16"
+gdb_test "x" "cmp.w\t@-er3,@0x9abcdef0(:32|)" \
+ "cmp.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@er3\\+,@er1" \
+ "cmp.w @er3+,@er1"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "cmp.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@er3\\+,@-er1" \
+ "cmp.w @er3+,@-er1"
+gdb_test "x" "cmp.w\t@er3\\+,@er1\\+" \
+ "cmp.w @er3+,@er1+"
+gdb_test "x" "cmp.w\t@er3\\+,@er1-" \
+ "cmp.w @er3+,@er1-"
+gdb_test "x" "cmp.w\t@er3\\+,@\\+er1" \
+ "cmp.w @er3+,@+er1"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@er3\\+,@0x9abc(:16|)" \
+ "cmp.w @er3+,@0x9abc:16"
+gdb_test "x" "cmp.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "cmp.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@er3-,@er1" \
+ "cmp.w @er3-,@er1"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "cmp.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@er3-,@-er1" \
+ "cmp.w @er3-,@-er1"
+gdb_test "x" "cmp.w\t@er3-,@er1\\+" \
+ "cmp.w @er3-,@er1+"
+gdb_test "x" "cmp.w\t@er3-,@er1-" \
+ "cmp.w @er3-,@er1-"
+gdb_test "x" "cmp.w\t@er3-,@\\+er1" \
+ "cmp.w @er3-,@+er1"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@er3-,@0x9abc(:16|)" \
+ "cmp.w @er3-,@0x9abc:16"
+gdb_test "x" "cmp.w\t@er3-,@0x9abcdef0(:32|)" \
+ "cmp.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\+er3,@er1" \
+ "cmp.w @+er3,@er1"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "cmp.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\+er3,@-er1" \
+ "cmp.w @+er3,@-er1"
+gdb_test "x" "cmp.w\t@\\+er3,@er1\\+" \
+ "cmp.w @+er3,@er1+"
+gdb_test "x" "cmp.w\t@\\+er3,@er1-" \
+ "cmp.w @+er3,@er1-"
+gdb_test "x" "cmp.w\t@\\+er3,@\\+er1" \
+ "cmp.w @+er3,@+er1"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\+er3,@0x9abc(:16|)" \
+ "cmp.w @+er3,@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "cmp.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "cmp.w @(0x1234:16,er3),@er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "cmp.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "cmp.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "cmp.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "cmp.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "cmp.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "cmp.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "cmp.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "cmp.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "cmp.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "cmp.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "cmp.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "cmp.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "cmp.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "cmp.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "cmp.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "cmp.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "cmp.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "cmp.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "cmp.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "cmp.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "cmp.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "cmp.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "cmp.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "cmp.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "cmp.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "cmp.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "cmp.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "cmp.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "cmp.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "cmp.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "cmp.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "cmp.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "cmp.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "cmp.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "cmp.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "cmp.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "cmp.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "cmp.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "cmp.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "cmp.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "cmp.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@er1" \
+ "cmp.w @0x1234:16,@er1"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@-er1" \
+ "cmp.w @0x1234:16,@-er1"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@er1\\+" \
+ "cmp.w @0x1234:16,@er1+"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@er1-" \
+ "cmp.w @0x1234:16,@er1-"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\+er1" \
+ "cmp.w @0x1234:16,@+er1"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "cmp.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "cmp.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "cmp.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@er1" \
+ "cmp.w @0x12345678:32,@er1"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "cmp.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@-er1" \
+ "cmp.w @0x12345678:32,@-er1"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@er1\\+" \
+ "cmp.w @0x12345678:32,@er1+"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@er1-" \
+ "cmp.w @0x12345678:32,@er1-"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\+er1" \
+ "cmp.w @0x12345678:32,@+er1"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "cmp.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "cmp.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "cmp.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),er1" \
+ "cmp.l #0x12345678:32,er1"
+gdb_test "x" "cmp.l\t#0x1234(:16|),er1" \
+ "cmp.l #0x1234:16,er1"
+gdb_test "x" "cmp.l\t#0x7(:3|),er2" \
+ "cmp.l #0x7:3,er2"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@er1" \
+ "cmp.l #0x12345678:32,@er1"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "cmp.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@er1\\+" \
+ "cmp.l #0x12345678:32,@er1+"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@-er1" \
+ "cmp.l #0x12345678:32,@-er1"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\+er1" \
+ "cmp.l #0x12345678:32,@+er1"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@er1-" \
+ "cmp.l #0x12345678:32,@er1-"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "cmp.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "cmp.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "cmp.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@er1" \
+ "cmp.l #0x1234:16,@er1"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "cmp.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@er1\\+" \
+ "cmp.l #0x1234:16,@er1+"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@-er1" \
+ "cmp.l #0x1234:16,@-er1"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\+er1" \
+ "cmp.l #0x1234:16,@+er1"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@er1-" \
+ "cmp.l #0x1234:16,@er1-"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "cmp.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "cmp.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "cmp.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\ter3,er1" \
+ "cmp.l er3,er1"
+gdb_test "x" "cmp.l\ter3,@er1" \
+ "cmp.l er3,@er1"
+gdb_test "x" "cmp.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "cmp.l er3,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\ter3,@er1\\+" \
+ "cmp.l er3,@er1+"
+gdb_test "x" "cmp.l\ter3,@-er1" \
+ "cmp.l er3,@-er1"
+gdb_test "x" "cmp.l\ter3,@\\+er1" \
+ "cmp.l er3,@+er1"
+gdb_test "x" "cmp.l\ter3,@er1-" \
+ "cmp.l er3,@er1-"
+gdb_test "x" "cmp.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "cmp.l er3,@(0x1234:16,er1)"
+gdb_test "x" "cmp.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "cmp.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "cmp.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "cmp.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "cmp.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "cmp.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "cmp.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "cmp.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "cmp.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "cmp.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "cmp.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "cmp.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "cmp.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "cmp.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "cmp.l\ter3,@0x1234(:16|)" \
+ "cmp.l er3,@0x1234:16"
+gdb_test "x" "cmp.l\ter3,@0x12345678(:32|)" \
+ "cmp.l er3,@0x12345678:32"
+gdb_test "x" "cmp.l\t@er3,er1" \
+ "cmp.l @er3,er1"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),er1" \
+ "cmp.l @(0xc:2,er3),er1"
+gdb_test "x" "cmp.l\t@er3\\+,er1" \
+ "cmp.l @er3+,er1"
+gdb_test "x" "cmp.l\t@-er3,er1" \
+ "cmp.l @-er3,er1"
+gdb_test "x" "cmp.l\t@\\+er3,er1" \
+ "cmp.l @+er3,er1"
+gdb_test "x" "cmp.l\t@er3-,er1" \
+ "cmp.l @er3-,er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "cmp.l @(0x1234:16,er1),er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "cmp.l @(0x12345678:32,er1),er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "cmp.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "cmp.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "cmp.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "cmp.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "cmp.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "cmp.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "cmp.l\t@0x1234(:16|),er1" \
+ "cmp.l @0x1234:16,er1"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),er1" \
+ "cmp.l @0x12345678:32,er1"
+gdb_test "x" "cmp.l\t@er3,@er1" \
+ "cmp.l @er3,@er1"
+gdb_test "x" "cmp.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "cmp.l @er3,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@er3,@-er1" \
+ "cmp.l @er3,@-er1"
+gdb_test "x" "cmp.l\t@er3,@er1\\+" \
+ "cmp.l @er3,@er1+"
+gdb_test "x" "cmp.l\t@er3,@er1-" \
+ "cmp.l @er3,@er1-"
+gdb_test "x" "cmp.l\t@er3,@\\+er1" \
+ "cmp.l @er3,@+er1"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@er3,@0x9abc(:16|)" \
+ "cmp.l @er3,@0x9abc:16"
+gdb_test "x" "cmp.l\t@er3,@0x9abcdef0(:32|)" \
+ "cmp.l @er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "cmp.l @(0xc:2,er3),@er1"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "cmp.l @(0xc:2,er3),@-er1"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "cmp.l @(0xc:2,er3),@er1+"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "cmp.l @(0xc:2,er3),@er1-"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "cmp.l @(0xc:2,er3),@+er1"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "cmp.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@-er3,@er1" \
+ "cmp.l @-er3,@er1"
+gdb_test "x" "cmp.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "cmp.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@-er3,@-er1" \
+ "cmp.l @-er3,@-er1"
+gdb_test "x" "cmp.l\t@-er3,@er1\\+" \
+ "cmp.l @-er3,@er1+"
+gdb_test "x" "cmp.l\t@-er3,@er1-" \
+ "cmp.l @-er3,@er1-"
+gdb_test "x" "cmp.l\t@-er3,@\\+er1" \
+ "cmp.l @-er3,@+er1"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@-er3,@0x9abc(:16|)" \
+ "cmp.l @-er3,@0x9abc:16"
+gdb_test "x" "cmp.l\t@-er3,@0x9abcdef0(:32|)" \
+ "cmp.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@er3\\+,@er1" \
+ "cmp.l @er3+,@er1"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "cmp.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@er3\\+,@-er1" \
+ "cmp.l @er3+,@-er1"
+gdb_test "x" "cmp.l\t@er3\\+,@er1\\+" \
+ "cmp.l @er3+,@er1+"
+gdb_test "x" "cmp.l\t@er3\\+,@er1-" \
+ "cmp.l @er3+,@er1-"
+gdb_test "x" "cmp.l\t@er3\\+,@\\+er1" \
+ "cmp.l @er3+,@+er1"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@er3\\+,@0x9abc(:16|)" \
+ "cmp.l @er3+,@0x9abc:16"
+gdb_test "x" "cmp.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "cmp.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@er3-,@er1" \
+ "cmp.l @er3-,@er1"
+gdb_test "x" "cmp.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "cmp.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@er3-,@-er1" \
+ "cmp.l @er3-,@-er1"
+gdb_test "x" "cmp.l\t@er3-,@er1\\+" \
+ "cmp.l @er3-,@er1+"
+gdb_test "x" "cmp.l\t@er3-,@er1-" \
+ "cmp.l @er3-,@er1-"
+gdb_test "x" "cmp.l\t@er3-,@\\+er1" \
+ "cmp.l @er3-,@+er1"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@er3-,@0x9abc(:16|)" \
+ "cmp.l @er3-,@0x9abc:16"
+gdb_test "x" "cmp.l\t@er3-,@0x9abcdef0(:32|)" \
+ "cmp.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\+er3,@er1" \
+ "cmp.l @+er3,@er1"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "cmp.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\+er3,@-er1" \
+ "cmp.l @+er3,@-er1"
+gdb_test "x" "cmp.l\t@\\+er3,@er1\\+" \
+ "cmp.l @+er3,@er1+"
+gdb_test "x" "cmp.l\t@\\+er3,@er1-" \
+ "cmp.l @+er3,@er1-"
+gdb_test "x" "cmp.l\t@\\+er3,@\\+er1" \
+ "cmp.l @+er3,@+er1"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\+er3,@0x9abc(:16|)" \
+ "cmp.l @+er3,@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "cmp.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "cmp.l @(0x1234:16,er3),@er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "cmp.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "cmp.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "cmp.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "cmp.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "cmp.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "cmp.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "cmp.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "cmp.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "cmp.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "cmp.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "cmp.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "cmp.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "cmp.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "cmp.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "cmp.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "cmp.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "cmp.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "cmp.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "cmp.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "cmp.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "cmp.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "cmp.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "cmp.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "cmp.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "cmp.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "cmp.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "cmp.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "cmp.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "cmp.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "cmp.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "cmp.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "cmp.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "cmp.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "cmp.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "cmp.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "cmp.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "cmp.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "cmp.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "cmp.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "cmp.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "cmp.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "cmp.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "cmp.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "cmp.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "cmp.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "cmp.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@er1" \
+ "cmp.l @0x1234:16,@er1"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@-er1" \
+ "cmp.l @0x1234:16,@-er1"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@er1\\+" \
+ "cmp.l @0x1234:16,@er1+"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@er1-" \
+ "cmp.l @0x1234:16,@er1-"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\+er1" \
+ "cmp.l @0x1234:16,@+er1"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "cmp.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "cmp.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "cmp.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@er1" \
+ "cmp.l @0x12345678:32,@er1"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "cmp.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@-er1" \
+ "cmp.l @0x12345678:32,@-er1"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@er1\\+" \
+ "cmp.l @0x12345678:32,@er1+"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@er1-" \
+ "cmp.l @0x12345678:32,@er1-"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\+er1" \
+ "cmp.l @0x12345678:32,@+er1"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "cmp.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "cmp.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "cmp.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "cmp.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "cmp.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "cmp.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "cmp.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "cmp.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "cmp.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "cmp.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "cmp.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t05_cmp.s b/gdb/testsuite/gdb.disasm/t05_cmp.s
new file mode 100644
index 0000000..eef3359
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t05_cmp.s
@@ -0,0 +1,921 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;arith_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ cmp.b @er3,@er1 ;7c350120
+ cmp.b @er3,@(3:2,er1) ;7c353120
+ cmp.b @er3,@-er1 ;7c35b120
+ cmp.b @er3,@er1+ ;7c358120
+ cmp.b @er3,@er1- ;7c35a120
+ cmp.b @er3,@+er1 ;7c359120
+ cmp.b @er3,@(0xffff9abc:16,er1) ;7c35c1209abc
+ cmp.b @er3,@(0x9abcdef0:32,er1) ;7c35c9209abcdef0
+ cmp.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2209abc
+ cmp.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2209abc
+ cmp.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2209abc
+ cmp.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da209abcdef0
+ cmp.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea209abcdef0
+ cmp.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa209abcdef0
+ cmp.b @er3,@0xffff9abc:16 ;7c3540209abc
+ cmp.b @er3,@0x9abcdef0:32 ;7c3548209abcdef0
+
+ cmp.b @-er3,@er1 ;01776c3c0120
+ cmp.b @-er3,@(3:2,er1) ;01776c3c3120
+ cmp.b @-er3,@-er1 ;01776c3cb120
+ cmp.b @-er3,@er1+ ;01776c3c8120
+ cmp.b @-er3,@er1- ;01776c3ca120
+ cmp.b @-er3,@+er1 ;01776c3c9120
+ cmp.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1209abc
+ cmp.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9209abcdef0
+ cmp.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2209abc
+ cmp.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2209abc
+ cmp.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2209abc
+ cmp.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda209abcdef0
+ cmp.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea209abcdef0
+ cmp.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa209abcdef0
+ cmp.b @-er3,@0xffff9abc:16 ;01776c3c40209abc
+ cmp.b @-er3,@0x9abcdef0:32 ;01776c3c48209abcdef0
+
+ cmp.b @er3+,@er1 ;01746c3c0120
+ cmp.b @er3+,@(3:2,er1) ;01746c3c3120
+ cmp.b @er3+,@-er1 ;01746c3cb120
+ cmp.b @er3+,@er1+ ;01746c3c8120
+ cmp.b @er3+,@er1- ;01746c3ca120
+ cmp.b @er3+,@+er1 ;01746c3c9120
+ cmp.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1209abc
+ cmp.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9209abcdef0
+ cmp.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2209abc
+ cmp.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2209abc
+ cmp.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2209abc
+ cmp.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda209abcdef0
+ cmp.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea209abcdef0
+ cmp.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa209abcdef0
+ cmp.b @er3+,@0xffff9abc:16 ;01746c3c40209abc
+ cmp.b @er3+,@0x9abcdef0:32 ;01746c3c48209abcdef0
+
+ cmp.b @er3-,@er1 ;01766c3c0120
+ cmp.b @er3-,@(3:2,er1) ;01766c3c3120
+ cmp.b @er3-,@-er1 ;01766c3cb120
+ cmp.b @er3-,@er1+ ;01766c3c8120
+ cmp.b @er3-,@er1- ;01766c3ca120
+ cmp.b @er3-,@+er1 ;01766c3c9120
+ cmp.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1209abc
+ cmp.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9209abcdef0
+ cmp.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2209abc
+ cmp.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2209abc
+ cmp.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2209abc
+ cmp.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda209abcdef0
+ cmp.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea209abcdef0
+ cmp.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa209abcdef0
+ cmp.b @er3-,@0xffff9abc:16 ;01766c3c40209abc
+ cmp.b @er3-,@0x9abcdef0:32 ;01766c3c48209abcdef0
+
+ cmp.b @+er3,@er1 ;01756c3c0120
+ cmp.b @+er3,@(3:2,er1) ;01756c3c3120
+ cmp.b @+er3,@-er1 ;01756c3cb120
+ cmp.b @+er3,@er1+ ;01756c3c8120
+ cmp.b @+er3,@er1- ;01756c3ca120
+ cmp.b @+er3,@+er1 ;01756c3c9120
+ cmp.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1209abc
+ cmp.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9209abcdef0
+ cmp.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2209abc
+ cmp.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2209abc
+ cmp.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2209abc
+ cmp.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda209abcdef0
+ cmp.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea209abcdef0
+ cmp.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa209abcdef0
+ cmp.b @+er3,@0xffff9abc:16 ;01756c3c40209abc
+ cmp.b @+er3,@0x9abcdef0:32 ;01756c3c48209abcdef0
+
+ cmp.b @(0x1234:16,er3),@er1 ;01746e3c12340120
+ cmp.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343120
+ cmp.b @(0x1234:16,er3),@-er1 ;01746e3c1234b120
+ cmp.b @(0x1234:16,er3),@er1+ ;01746e3c12348120
+ cmp.b @(0x1234:16,er3),@er1- ;01746e3c1234a120
+ cmp.b @(0x1234:16,er3),@+er1 ;01746e3c12349120
+ cmp.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1209abc
+ cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9209abcdef0
+ cmp.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2209abc
+ cmp.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2209abc
+ cmp.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2209abc
+ cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da209abcdef0
+ cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea209abcdef0
+ cmp.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa209abcdef0
+ cmp.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440209abc
+ cmp.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448209abcdef0
+
+ cmp.b @(0x12345678:32,er3),@er1 ;78346a2c123456780120
+ cmp.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783120
+ cmp.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b120
+ cmp.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788120
+ cmp.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a120
+ cmp.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789120
+ cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1209abc
+ cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9209abcdef0
+ cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2209abc
+ cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2209abc
+ cmp.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2209abc
+ cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da209abcdef0
+ cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea209abcdef0
+ cmp.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa209abcdef0
+ cmp.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840209abc
+ cmp.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848209abcdef0
+
+ cmp.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340120
+ cmp.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343120
+ cmp.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b120
+ cmp.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348120
+ cmp.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a120
+ cmp.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349120
+ cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1209abc
+ cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9209abcdef0
+ cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2209abc
+ cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2209abc
+ cmp.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2209abc
+ cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da209abcdef0
+ cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea209abcdef0
+ cmp.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa209abcdef0
+ cmp.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440209abc
+ cmp.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448209abcdef0
+
+ cmp.b @(0x1234:16,r3.w),@er1 ;01766e3c12340120
+ cmp.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343120
+ cmp.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b120
+ cmp.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348120
+ cmp.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a120
+ cmp.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349120
+ cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1209abc
+ cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9209abcdef0
+ cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2209abc
+ cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2209abc
+ cmp.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2209abc
+ cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da209abcdef0
+ cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea209abcdef0
+ cmp.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa209abcdef0
+ cmp.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440209abc
+ cmp.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448209abcdef0
+
+ cmp.b @(0x1234:16,er3.l),@er1 ;01776e3c12340120
+ cmp.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343120
+ cmp.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b120
+ cmp.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348120
+ cmp.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a120
+ cmp.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349120
+ cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1209abc
+ cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9209abcdef0
+ cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2209abc
+ cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2209abc
+ cmp.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2209abc
+ cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da209abcdef0
+ cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea209abcdef0
+ cmp.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa209abcdef0
+ cmp.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440209abc
+ cmp.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448209abcdef0
+
+ cmp.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780120
+ cmp.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783120
+ cmp.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b120
+ cmp.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788120
+ cmp.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a120
+ cmp.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789120
+ cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1209abc
+ cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9209abcdef0
+ cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2209abc
+ cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2209abc
+ cmp.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2209abc
+ cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da209abcdef0
+ cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea209abcdef0
+ cmp.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa209abcdef0
+ cmp.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840209abc
+ cmp.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848209abcdef0
+
+ cmp.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780120
+ cmp.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783120
+ cmp.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b120
+ cmp.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788120
+ cmp.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a120
+ cmp.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789120
+ cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1209abc
+ cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9209abcdef0
+ cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2209abc
+ cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2209abc
+ cmp.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2209abc
+ cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da209abcdef0
+ cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea209abcdef0
+ cmp.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa209abcdef0
+ cmp.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840209abc
+ cmp.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848209abcdef0
+
+ cmp.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780120
+ cmp.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783120
+ cmp.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b120
+ cmp.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788120
+ cmp.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a120
+ cmp.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789120
+ cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1209abc
+ cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9209abcdef0
+ cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2209abc
+ cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2209abc
+ cmp.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2209abc
+ cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da209abcdef0
+ cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea209abcdef0
+ cmp.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa209abcdef0
+ cmp.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840209abc
+ cmp.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848209abcdef0
+
+ cmp.b @0x1234:16,@er1 ;6a1512340120
+ cmp.b @0x1234:16,@(3:2,er1) ;6a1512343120
+ cmp.b @0x1234:16,@-er1 ;6a151234b120
+ cmp.b @0x1234:16,@er1+ ;6a1512348120
+ cmp.b @0x1234:16,@er1- ;6a151234a120
+ cmp.b @0x1234:16,@+er1 ;6a1512349120
+ cmp.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1209abc
+ cmp.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9209abcdef0
+ cmp.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2209abc
+ cmp.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2209abc
+ cmp.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2209abc
+ cmp.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da209abcdef0
+ cmp.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea209abcdef0
+ cmp.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa209abcdef0
+ cmp.b @0x1234:16,@0xffff9abc:16 ;6a15123440209abc
+ cmp.b @0x1234:16,@0x9abcdef0:32 ;6a15123448209abcdef0
+
+ cmp.b @0x12345678:32,@er1 ;6a35123456780120
+ cmp.b @0x12345678:32,@(3:2,er1) ;6a35123456783120
+ cmp.b @0x12345678:32,@-er1 ;6a3512345678b120
+ cmp.b @0x12345678:32,@er1+ ;6a35123456788120
+ cmp.b @0x12345678:32,@er1- ;6a3512345678a120
+ cmp.b @0x12345678:32,@+er1 ;6a35123456789120
+ cmp.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1209abc
+ cmp.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9209abcdef0
+ cmp.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2209abc
+ cmp.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2209abc
+ cmp.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2209abc
+ cmp.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da209abcdef0
+ cmp.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea209abcdef0
+ cmp.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa209abcdef0
+ cmp.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840209abc
+ cmp.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848209abcdef0
+
+ cmp.w #0x1234:16,r1 ;79211234
+ cmp.w #0x7:3,r2 ;1f72
+ cmp.w #0x1234:16,@er1 ;015e01201234
+ cmp.w #0x1234:16,@(0x6:2,er1) ;015e31201234
+ cmp.w #0x1234:16,@er1+ ;015e81201234
+ cmp.w #0x1234:16,@-er1 ;015eb1201234
+ cmp.w #0x1234:16,@+er1 ;015e91201234
+ cmp.w #0x1234:16,@er1- ;015ea1201234
+ cmp.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1209abc1234
+ cmp.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9209abcdef01234
+ cmp.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2209abc1234
+ cmp.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2209abc1234
+ cmp.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2209abc1234
+ cmp.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda209abcdef01234
+ cmp.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea209abcdef01234
+ cmp.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa209abcdef01234
+ cmp.w #0x1234:16,@0xffff9abc:16 ;015e40209abc1234
+ cmp.w #0x1234:16,@0x9abcdef0:32 ;015e48209abcdef01234
+
+ cmp.w #0x7:3,@er1 ;7d901f70
+ cmp.w #0x7:3,@0x1234:16 ;6b1812341f70
+ cmp.w #0x7:3,@0x12345678:32 ;6b38123456781f70
+
+ cmp.w r3,r1 ;1d31
+
+ cmp.w r3,@er1 ;7d901d30
+ cmp.w r3,@(0x6:2,er1) ;01593123
+ cmp.w r3,@er1+ ;01598123
+ cmp.w r3,@-er1 ;0159b123
+ cmp.w r3,@+er1 ;01599123
+ cmp.w r3,@er1- ;0159a123
+ cmp.w r3,@(0x1234:16,er1) ;0159c1231234
+ cmp.w r3,@(0x12345678:32,er1) ;0159c92312345678
+ cmp.w r3,@(0x1234:16,r2l.b) ;0159d2231234
+ cmp.w r3,@(0x1234:16,r2.w) ;0159e2231234
+ cmp.w r3,@(0x1234:16,er2.l) ;0159f2231234
+ cmp.w r3,@(0x12345678:32,r2l.b) ;0159da2312345678
+ cmp.w r3,@(0x12345678:32,r2.w) ;0159ea2312345678
+ cmp.w r3,@(0x12345678:32,er2.l) ;0159fa2312345678
+ cmp.w r3,@0x1234:16 ;6b1812341d30
+ cmp.w r3,@0x12345678:32 ;6b38123456781d30
+
+ cmp.w @er3,r1 ;7cb01d01
+ cmp.w @(0x6:2,er3),r1 ;015a3321
+ cmp.w @er3+,r1 ;015a8321
+ cmp.w @-er3,r1 ;015ab321
+ cmp.w @+er3,r1 ;015a9321
+ cmp.w @er3-,r1 ;015aa321
+ cmp.w @(0x1234:16,er1),r1 ;015ac1211234
+ cmp.w @(0x12345678:32,er1),r1 ;015ac92112345678
+ cmp.w @(0x1234:16,r2l.b),r1 ;015ad2211234
+ cmp.w @(0x1234:16,r2.w),r1 ;015ae2211234
+ cmp.w @(0x1234:16,er2.l),r1 ;015af2211234
+ cmp.w @(0x12345678:32,r2l.b),r1 ;015ada2112345678
+ cmp.w @(0x12345678:32,r2.w),r1 ;015aea2112345678
+ cmp.w @(0x12345678:32,er2.l),r1 ;015afa2112345678
+ cmp.w @0x1234:16,r1 ;6b1012341d01
+ cmp.w @0x12345678:32,r1 ;6b30123456781d01
+
+ cmp.w @er3,@er1 ;7cb50120
+ cmp.w @er3,@(6:2,er1) ;7cb53120
+ cmp.w @er3,@-er1 ;7cb5b120
+ cmp.w @er3,@er1+ ;7cb58120
+ cmp.w @er3,@er1- ;7cb5a120
+ cmp.w @er3,@+er1 ;7cb59120
+ cmp.w @er3,@(0xffff9abc:16,er1) ;7cb5c1209abc
+ cmp.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9209abcdef0
+ cmp.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2209abc
+ cmp.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2209abc
+ cmp.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2209abc
+ cmp.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da209abcdef0
+ cmp.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea209abcdef0
+ cmp.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa209abcdef0
+ cmp.w @er3,@0xffff9abc:16 ;7cb540209abc
+ cmp.w @er3,@0x9abcdef0:32 ;7cb548209abcdef0
+
+ cmp.w @-er3,@er1 ;01576d3c0120
+ cmp.w @-er3,@(6:2,er1) ;01576d3c3120
+ cmp.w @-er3,@-er1 ;01576d3cb120
+ cmp.w @-er3,@er1+ ;01576d3c8120
+ cmp.w @-er3,@er1- ;01576d3ca120
+ cmp.w @-er3,@+er1 ;01576d3c9120
+ cmp.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1209abc
+ cmp.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9209abcdef0
+ cmp.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2209abc
+ cmp.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2209abc
+ cmp.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2209abc
+ cmp.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda209abcdef0
+ cmp.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea209abcdef0
+ cmp.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa209abcdef0
+ cmp.w @-er3,@0xffff9abc:16 ;01576d3c40209abc
+ cmp.w @-er3,@0x9abcdef0:32 ;01576d3c48209abcdef0
+
+ cmp.w @er3+,@er1 ;01546d3c0120
+ cmp.w @er3+,@(6:2,er1) ;01546d3c3120
+ cmp.w @er3+,@-er1 ;01546d3cb120
+ cmp.w @er3+,@er1+ ;01546d3c8120
+ cmp.w @er3+,@er1- ;01546d3ca120
+ cmp.w @er3+,@+er1 ;01546d3c9120
+ cmp.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1209abc
+ cmp.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9209abcdef0
+ cmp.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2209abc
+ cmp.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2209abc
+ cmp.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2209abc
+ cmp.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda209abcdef0
+ cmp.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea209abcdef0
+ cmp.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa209abcdef0
+ cmp.w @er3+,@0xffff9abc:16 ;01546d3c40209abc
+ cmp.w @er3+,@0x9abcdef0:32 ;01546d3c48209abcdef0
+
+ cmp.w @er3-,@er1 ;01566d3c0120
+ cmp.w @er3-,@(6:2,er1) ;01566d3c3120
+ cmp.w @er3-,@-er1 ;01566d3cb120
+ cmp.w @er3-,@er1+ ;01566d3c8120
+ cmp.w @er3-,@er1- ;01566d3ca120
+ cmp.w @er3-,@+er1 ;01566d3c9120
+ cmp.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1209abc
+ cmp.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9209abcdef0
+ cmp.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2209abc
+ cmp.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2209abc
+ cmp.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2209abc
+ cmp.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda209abcdef0
+ cmp.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea209abcdef0
+ cmp.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa209abcdef0
+ cmp.w @er3-,@0xffff9abc:16 ;01566d3c40209abc
+ cmp.w @er3-,@0x9abcdef0:32 ;01566d3c48209abcdef0
+
+ cmp.w @+er3,@er1 ;01556d3c0120
+ cmp.w @+er3,@(6:2,er1) ;01556d3c3120
+ cmp.w @+er3,@-er1 ;01556d3cb120
+ cmp.w @+er3,@er1+ ;01556d3c8120
+ cmp.w @+er3,@er1- ;01556d3ca120
+ cmp.w @+er3,@+er1 ;01556d3c9120
+ cmp.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1209abc
+ cmp.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9209abcdef0
+ cmp.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2209abc
+ cmp.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2209abc
+ cmp.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2209abc
+ cmp.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda209abcdef0
+ cmp.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea209abcdef0
+ cmp.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa209abcdef0
+ cmp.w @+er3,@0xffff9abc:16 ;01556d3c40209abc
+ cmp.w @+er3,@0x9abcdef0:32 ;01556d3c48209abcdef0
+
+ cmp.w @(0x1234:16,er3),@er1 ;01546f3c12340120
+ cmp.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343120
+ cmp.w @(0x1234:16,er3),@-er1 ;01546f3c1234b120
+ cmp.w @(0x1234:16,er3),@er1+ ;01546f3c12348120
+ cmp.w @(0x1234:16,er3),@er1- ;01546f3c1234a120
+ cmp.w @(0x1234:16,er3),@+er1 ;01546f3c12349120
+ cmp.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1209abc
+ cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9209abcdef0
+ cmp.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2209abc
+ cmp.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2209abc
+ cmp.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2209abc
+ cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da209abcdef0
+ cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea209abcdef0
+ cmp.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa209abcdef0
+ cmp.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440209abc
+ cmp.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448209abcdef0
+
+ cmp.w @(0x12345678:32,er3),@er1 ;78346b2c123456780120
+ cmp.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783120
+ cmp.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b120
+ cmp.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788120
+ cmp.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a120
+ cmp.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789120
+ cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1209abc
+ cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9209abcdef0
+ cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2209abc
+ cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2209abc
+ cmp.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2209abc
+ cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da209abcdef0
+ cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea209abcdef0
+ cmp.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa209abcdef0
+ cmp.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840209abc
+ cmp.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848209abcdef0
+
+ cmp.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340120
+ cmp.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343120
+ cmp.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b120
+ cmp.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348120
+ cmp.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a120
+ cmp.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349120
+ cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1209abc
+ cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9209abcdef0
+ cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2209abc
+ cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2209abc
+ cmp.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2209abc
+ cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da209abcdef0
+ cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea209abcdef0
+ cmp.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa209abcdef0
+ cmp.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440209abc
+ cmp.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448209abcdef0
+
+ cmp.w @(0x1234:16,r3.w),@er1 ;01566f3c12340120
+ cmp.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343120
+ cmp.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b120
+ cmp.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348120
+ cmp.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a120
+ cmp.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349120
+ cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1209abc
+ cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9209abcdef0
+ cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2209abc
+ cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2209abc
+ cmp.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2209abc
+ cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da209abcdef0
+ cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea209abcdef0
+ cmp.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa209abcdef0
+ cmp.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440209abc
+ cmp.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448209abcdef0
+
+ cmp.w @(0x1234:16,er3.l),@er1 ;01576f3c12340120
+ cmp.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343120
+ cmp.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b120
+ cmp.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348120
+ cmp.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a120
+ cmp.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349120
+ cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1209abc
+ cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9209abcdef0
+ cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2209abc
+ cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2209abc
+ cmp.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2209abc
+ cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da209abcdef0
+ cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea209abcdef0
+ cmp.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa209abcdef0
+ cmp.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440209abc
+ cmp.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448209abcdef0
+
+ cmp.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780120
+ cmp.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783120
+ cmp.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b120
+ cmp.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788120
+ cmp.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a120
+ cmp.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789120
+ cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1209abc
+ cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9209abcdef0
+ cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2209abc
+ cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2209abc
+ cmp.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2209abc
+ cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da209abcdef0
+ cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea209abcdef0
+ cmp.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa209abcdef0
+ cmp.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840209abc
+ cmp.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848209abcdef0
+
+ cmp.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780120
+ cmp.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783120
+ cmp.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b120
+ cmp.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788120
+ cmp.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a120
+ cmp.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789120
+ cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1209abc
+ cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9209abcdef0
+ cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2209abc
+ cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2209abc
+ cmp.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2209abc
+ cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da209abcdef0
+ cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea209abcdef0
+ cmp.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa209abcdef0
+ cmp.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840209abc
+ cmp.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848209abcdef0
+
+ cmp.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780120
+ cmp.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783120
+ cmp.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b120
+ cmp.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788120
+ cmp.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a120
+ cmp.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789120
+ cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1209abc
+ cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9209abcdef0
+ cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2209abc
+ cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2209abc
+ cmp.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2209abc
+ cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da209abcdef0
+ cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea209abcdef0
+ cmp.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa209abcdef0
+ cmp.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840209abc
+ cmp.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848209abcdef0
+
+ cmp.w @0x1234:16,@er1 ;6b1512340120
+ cmp.w @0x1234:16,@(6:2,er1) ;6b1512343120
+ cmp.w @0x1234:16,@-er1 ;6b151234b120
+ cmp.w @0x1234:16,@er1+ ;6b1512348120
+ cmp.w @0x1234:16,@er1- ;6b151234a120
+ cmp.w @0x1234:16,@+er1 ;6b1512349120
+ cmp.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1209abc
+ cmp.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9209abcdef0
+ cmp.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2209abc
+ cmp.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2209abc
+ cmp.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2209abc
+ cmp.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da209abcdef0
+ cmp.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea209abcdef0
+ cmp.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa209abcdef0
+ cmp.w @0x1234:16,@0xffff9abc:16 ;6b15123440209abc
+ cmp.w @0x1234:16,@0x9abcdef0:32 ;6b15123448209abcdef0
+
+ cmp.w @0x12345678:32,@er1 ;6b35123456780120
+ cmp.w @0x12345678:32,@(6:2,er1) ;6b35123456783120
+ cmp.w @0x12345678:32,@-er1 ;6b3512345678b120
+ cmp.w @0x12345678:32,@er1+ ;6b35123456788120
+ cmp.w @0x12345678:32,@er1- ;6b3512345678a120
+ cmp.w @0x12345678:32,@+er1 ;6b35123456789120
+ cmp.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1209abc
+ cmp.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9209abcdef0
+ cmp.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2209abc
+ cmp.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2209abc
+ cmp.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2209abc
+ cmp.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da209abcdef0
+ cmp.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea209abcdef0
+ cmp.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa209abcdef0
+ cmp.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840209abc
+ cmp.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848209abcdef0
+
+ cmp.l #0x12345678:32,er1 ;7a2112345678
+ cmp.l #0x1234:16,er1 ;7a291234
+ cmp.l #0x7:3,er2 ;1ffa
+ cmp.l #0x12345678:32,@er1 ;010e012812345678
+ cmp.l #0x12345678:32,@(0xc:2,er1) ;010e312812345678
+ cmp.l #0x12345678:32,@er1+ ;010e812812345678
+ cmp.l #0x12345678:32,@-er1 ;010eb12812345678
+ cmp.l #0x12345678:32,@+er1 ;010e912812345678
+ cmp.l #0x12345678:32,@er1- ;010ea12812345678
+ cmp.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1289abc12345678
+ cmp.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9289abcdef012345678
+ cmp.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2289abc12345678
+ cmp.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2289abc12345678
+ cmp.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2289abc12345678
+ cmp.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda289abcdef012345678
+ cmp.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea289abcdef012345678
+ cmp.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa289abcdef012345678
+ cmp.l #0x12345678:32,@0xffff9abc:16 ;010e40289abc12345678
+ cmp.l #0x12345678:32,@0x9abcdef0:32 ;010e48289abcdef012345678
+ cmp.l #0x1234:16,@er1 ;010e01201234
+ cmp.l #0x1234:16,@(0xc:2,er1) ;010e31201234
+ cmp.l #0x1234:16,@er1+ ;010e81201234
+ cmp.l #0x1234:16,@-er1 ;010eb1201234
+ cmp.l #0x1234:16,@+er1 ;010e91201234
+ cmp.l #0x1234:16,@er1- ;010ea1201234
+ cmp.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1209abc1234
+ cmp.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9209abcdef01234
+ cmp.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2209abc1234
+ cmp.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2209abc1234
+ cmp.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2209abc1234
+ cmp.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda209abcdef01234
+ cmp.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea209abcdef01234
+ cmp.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa209abcdef01234
+ cmp.l #0x1234:16,@0xffff9abc:16 ;010e40209abc1234
+ cmp.l #0x1234:16,@0x9abcdef0:32 ;010e48209abcdef01234
+
+ cmp.l er3,er1 ;1fb1
+
+ cmp.l er3,@er1 ;01090123
+ cmp.l er3,@(0xc:2,er1) ;01093123
+ cmp.l er3,@er1+ ;01098123
+ cmp.l er3,@-er1 ;0109b123
+ cmp.l er3,@+er1 ;01099123
+ cmp.l er3,@er1- ;0109a123
+ cmp.l er3,@(0x1234:16,er1) ;0109c1231234
+ cmp.l er3,@(0x12345678:32,er1) ;0109c92312345678
+ cmp.l er3,@(0x1234:16,r2l.b) ;0109d2231234
+ cmp.l er3,@(0x1234:16,r2.w) ;0109e2231234
+ cmp.l er3,@(0x1234:16,er2.l) ;0109f2231234
+ cmp.l er3,@(0x12345678:32,r2l.b) ;0109da2312345678
+ cmp.l er3,@(0x12345678:32,r2.w) ;0109ea2312345678
+ cmp.l er3,@(0x12345678:32,er2.l) ;0109fa2312345678
+ cmp.l er3,@0x1234:16 ;010940231234
+ cmp.l er3,@0x12345678:32 ;0109482312345678
+
+ cmp.l @er3,er1 ;010a0321
+ cmp.l @(0xc:2,er3),er1 ;010a3321
+ cmp.l @er3+,er1 ;010a8321
+ cmp.l @-er3,er1 ;010ab321
+ cmp.l @+er3,er1 ;010a9321
+ cmp.l @er3-,er1 ;010aa321
+ cmp.l @(0x1234:16,er1),er1 ;010ac1211234
+ cmp.l @(0x12345678:32,er1),er1 ;010ac92112345678
+ cmp.l @(0x1234:16,r2l.b),er1 ;010ad2211234
+ cmp.l @(0x1234:16,r2.w),er1 ;010ae2211234
+ cmp.l @(0x1234:16,er2.l),er1 ;010af2211234
+ cmp.l @(0x12345678:32,r2l.b),er1 ;010ada2112345678
+ cmp.l @(0x12345678:32,r2.w),er1 ;010aea2112345678
+ cmp.l @(0x12345678:32,er2.l),er1 ;010afa2112345678
+ cmp.l @0x1234:16,er1 ;010a40211234
+ cmp.l @0x12345678:32,er1 ;010a482112345678
+
+ cmp.l @er3,@er1 ;0104693c0120
+ cmp.l @er3,@(0xc:2,er1) ;0104693c3120
+ cmp.l @er3,@-er1 ;0104693cb120
+ cmp.l @er3,@er1+ ;0104693c8120
+ cmp.l @er3,@er1- ;0104693ca120
+ cmp.l @er3,@+er1 ;0104693c9120
+ cmp.l @er3,@(0xffff9abc:16,er1) ;0104693cc1209abc
+ cmp.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9209abcdef0
+ cmp.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2209abc
+ cmp.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2209abc
+ cmp.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2209abc
+ cmp.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda209abcdef0
+ cmp.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea209abcdef0
+ cmp.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa209abcdef0
+ cmp.l @er3,@0xffff9abc:16 ;0104693c40209abc
+ cmp.l @er3,@0x9abcdef0:32 ;0104693c48209abcdef0
+
+ cmp.l @(0xc:2,er3),@er1 ;0107693c0120
+ cmp.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3120
+ cmp.l @(0xc:2,er3),@-er1 ;0107693cb120
+ cmp.l @(0xc:2,er3),@er1+ ;0107693c8120
+ cmp.l @(0xc:2,er3),@er1- ;0107693ca120
+ cmp.l @(0xc:2,er3),@+er1 ;0107693c9120
+ cmp.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1209abc
+ cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9209abcdef0
+ cmp.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2209abc
+ cmp.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2209abc
+ cmp.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2209abc
+ cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda209abcdef0
+ cmp.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea209abcdef0
+ cmp.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa209abcdef0
+ cmp.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40209abc
+ cmp.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48209abcdef0
+
+ cmp.l @-er3,@er1 ;01076d3c0120
+ cmp.l @-er3,@(0xc:2,er1) ;01076d3c3120
+ cmp.l @-er3,@-er1 ;01076d3cb120
+ cmp.l @-er3,@er1+ ;01076d3c8120
+ cmp.l @-er3,@er1- ;01076d3ca120
+ cmp.l @-er3,@+er1 ;01076d3c9120
+ cmp.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1209abc
+ cmp.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9209abcdef0
+ cmp.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2209abc
+ cmp.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2209abc
+ cmp.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2209abc
+ cmp.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda209abcdef0
+ cmp.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea209abcdef0
+ cmp.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa209abcdef0
+ cmp.l @-er3,@0xffff9abc:16 ;01076d3c40209abc
+ cmp.l @-er3,@0x9abcdef0:32 ;01076d3c48209abcdef0
+
+ cmp.l @er3+,@er1 ;01046d3c0120
+ cmp.l @er3+,@(0xc:2,er1) ;01046d3c3120
+ cmp.l @er3+,@-er1 ;01046d3cb120
+ cmp.l @er3+,@er1+ ;01046d3c8120
+ cmp.l @er3+,@er1- ;01046d3ca120
+ cmp.l @er3+,@+er1 ;01046d3c9120
+ cmp.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1209abc
+ cmp.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9209abcdef0
+ cmp.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2209abc
+ cmp.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2209abc
+ cmp.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2209abc
+ cmp.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda209abcdef0
+ cmp.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea209abcdef0
+ cmp.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa209abcdef0
+ cmp.l @er3+,@0xffff9abc:16 ;01046d3c40209abc
+ cmp.l @er3+,@0x9abcdef0:32 ;01046d3c48209abcdef0
+
+ cmp.l @er3-,@er1 ;01066d3c0120
+ cmp.l @er3-,@(0xc:2,er1) ;01066d3c3120
+ cmp.l @er3-,@-er1 ;01066d3cb120
+ cmp.l @er3-,@er1+ ;01066d3c8120
+ cmp.l @er3-,@er1- ;01066d3ca120
+ cmp.l @er3-,@+er1 ;01066d3c9120
+ cmp.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1209abc
+ cmp.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9209abcdef0
+ cmp.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2209abc
+ cmp.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2209abc
+ cmp.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2209abc
+ cmp.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda209abcdef0
+ cmp.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea209abcdef0
+ cmp.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa209abcdef0
+ cmp.l @er3-,@0xffff9abc:16 ;01066d3c40209abc
+ cmp.l @er3-,@0x9abcdef0:32 ;01066d3c48209abcdef0
+
+ cmp.l @+er3,@er1 ;01056d3c0120
+ cmp.l @+er3,@(0xc:2,er1) ;01056d3c3120
+ cmp.l @+er3,@-er1 ;01056d3cb120
+ cmp.l @+er3,@er1+ ;01056d3c8120
+ cmp.l @+er3,@er1- ;01056d3ca120
+ cmp.l @+er3,@+er1 ;01056d3c9120
+ cmp.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1209abc
+ cmp.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9209abcdef0
+ cmp.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2209abc
+ cmp.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2209abc
+ cmp.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2209abc
+ cmp.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda209abcdef0
+ cmp.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea209abcdef0
+ cmp.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa209abcdef0
+ cmp.l @+er3,@0xffff9abc:16 ;01056d3c40209abc
+ cmp.l @+er3,@0x9abcdef0:32 ;01056d3c48209abcdef0
+
+ cmp.l @(0x1234:16,er3),@er1 ;01046f3c12340120
+ cmp.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343120
+ cmp.l @(0x1234:16,er3),@-er1 ;01046f3c1234b120
+ cmp.l @(0x1234:16,er3),@er1+ ;01046f3c12348120
+ cmp.l @(0x1234:16,er3),@er1- ;01046f3c1234a120
+ cmp.l @(0x1234:16,er3),@+er1 ;01046f3c12349120
+ cmp.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1209abc
+ cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9209abcdef0
+ cmp.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2209abc
+ cmp.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2209abc
+ cmp.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2209abc
+ cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da209abcdef0
+ cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea209abcdef0
+ cmp.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa209abcdef0
+ cmp.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440209abc
+ cmp.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448209abcdef0
+
+ cmp.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780120
+ cmp.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783120
+ cmp.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b120
+ cmp.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788120
+ cmp.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a120
+ cmp.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789120
+ cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1209abc
+ cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9209abcdef0
+ cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2209abc
+ cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2209abc
+ cmp.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2209abc
+ cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da209abcdef0
+ cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea209abcdef0
+ cmp.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa209abcdef0
+ cmp.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840209abc
+ cmp.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848209abcdef0
+
+ cmp.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340120
+ cmp.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343120
+ cmp.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b120
+ cmp.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348120
+ cmp.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a120
+ cmp.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349120
+ cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1209abc
+ cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9209abcdef0
+ cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2209abc
+ cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2209abc
+ cmp.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2209abc
+ cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da209abcdef0
+ cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea209abcdef0
+ cmp.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa209abcdef0
+ cmp.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440209abc
+ cmp.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448209abcdef0
+
+ cmp.l @(0x1234:16,r3.w),@er1 ;01066f3c12340120
+ cmp.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343120
+ cmp.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b120
+ cmp.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348120
+ cmp.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a120
+ cmp.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349120
+ cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1209abc
+ cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9209abcdef0
+ cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2209abc
+ cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2209abc
+ cmp.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2209abc
+ cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da209abcdef0
+ cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea209abcdef0
+ cmp.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa209abcdef0
+ cmp.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440209abc
+ cmp.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448209abcdef0
+
+ cmp.l @(0x1234:16,er3.l),@er1 ;01076f3c12340120
+ cmp.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343120
+ cmp.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b120
+ cmp.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348120
+ cmp.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a120
+ cmp.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349120
+ cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1209abc
+ cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9209abcdef0
+ cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2209abc
+ cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2209abc
+ cmp.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2209abc
+ cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da209abcdef0
+ cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea209abcdef0
+ cmp.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa209abcdef0
+ cmp.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440209abc
+ cmp.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448209abcdef0
+
+ cmp.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780120
+ cmp.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783120
+ cmp.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b120
+ cmp.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788120
+ cmp.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a120
+ cmp.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789120
+ cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1209abc
+ cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9209abcdef0
+ cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2209abc
+ cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2209abc
+ cmp.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2209abc
+ cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da209abcdef0
+ cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea209abcdef0
+ cmp.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa209abcdef0
+ cmp.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840209abc
+ cmp.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848209abcdef0
+
+ cmp.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780120
+ cmp.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783120
+ cmp.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b120
+ cmp.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788120
+ cmp.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a120
+ cmp.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789120
+ cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1209abc
+ cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9209abcdef0
+ cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2209abc
+ cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2209abc
+ cmp.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2209abc
+ cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da209abcdef0
+ cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea209abcdef0
+ cmp.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa209abcdef0
+ cmp.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840209abc
+ cmp.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848209abcdef0
+
+ cmp.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780120
+ cmp.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783120
+ cmp.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b120
+ cmp.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788120
+ cmp.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a120
+ cmp.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789120
+ cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1209abc
+ cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9209abcdef0
+ cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2209abc
+ cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2209abc
+ cmp.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2209abc
+ cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da209abcdef0
+ cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea209abcdef0
+ cmp.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa209abcdef0
+ cmp.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840209abc
+ cmp.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848209abcdef0
+
+ cmp.l @0x1234:16,@er1 ;01046b0c12340120
+ cmp.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343120
+ cmp.l @0x1234:16,@-er1 ;01046b0c1234b120
+ cmp.l @0x1234:16,@er1+ ;01046b0c12348120
+ cmp.l @0x1234:16,@er1- ;01046b0c1234a120
+ cmp.l @0x1234:16,@+er1 ;01046b0c12349120
+ cmp.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1209abc
+ cmp.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9209abcdef0
+ cmp.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2209abc
+ cmp.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2209abc
+ cmp.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2209abc
+ cmp.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da209abcdef0
+ cmp.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea209abcdef0
+ cmp.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa209abcdef0
+ cmp.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440209abc
+ cmp.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448209abcdef0
+
+ cmp.l @0x12345678:32,@er1 ;01046b2c123456780120
+ cmp.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783120
+ cmp.l @0x12345678:32,@-er1 ;01046b2c12345678b120
+ cmp.l @0x12345678:32,@er1+ ;01046b2c123456788120
+ cmp.l @0x12345678:32,@er1- ;01046b2c12345678a120
+ cmp.l @0x12345678:32,@+er1 ;01046b2c123456789120
+ cmp.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1209abc
+ cmp.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9209abcdef0
+ cmp.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2209abc
+ cmp.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2209abc
+ cmp.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2209abc
+ cmp.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da209abcdef0
+ cmp.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea209abcdef0
+ cmp.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa209abcdef0
+ cmp.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840209abc
+ cmp.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848209abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t06_ari2.exp b/gdb/testsuite/gdb.disasm/t06_ari2.exp
new file mode 100644
index 0000000..99ad366
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t06_ari2.exp
@@ -0,0 +1,282 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t06_ari2"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "addx(.b|)\t#0x12(:8|),r1h" \
+ "addx.b #0x12:8,r1h"
+gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1" \
+ "addx.b #0x12:8,@er1"
+gdb_test "x" "addx(.b|)\t#0x12(:8|),@er1-" \
+ "addx.b #0x12:8,@er1-"
+gdb_test "x" "addx(.b|)\tr3h,r1h" \
+ "addx.b r3h,r1h"
+gdb_test "x" "addx(.b|)\tr3h,@er1" \
+ "addx.b r3h,@er1"
+gdb_test "x" "addx(.b|)\tr3h,@er1-" \
+ "addx.b r3h,@er1-"
+gdb_test "x" "addx(.b|)\t@er3,r1h" \
+ "addx.b @er3,r1h"
+gdb_test "x" "addx(.b|)\t@er3,@er1" \
+ "addx.b @er3,@er1"
+gdb_test "x" "addx(.b|)\t@er3-,r1h" \
+ "addx.b @er3-,r1h"
+gdb_test "x" "addx(.b|)\t@er3-,@er1-" \
+ "addx.b @er3-,@er1-"
+gdb_test "x" "addx.w\t#0x1234(:16|),r1" \
+ "addx.w #0x1234:16,r1"
+gdb_test "x" "addx.w\t#0x1234(:16|),@er1" \
+ "addx.w #0x1234:16,@er1"
+gdb_test "x" "addx.w\t#0x1234(:16|),@er1-" \
+ "addx.w #0x1234:16,@er1-"
+gdb_test "x" "addx.w\tr3,r1" \
+ "addx.w r3,r1"
+gdb_test "x" "addx.w\tr3,@er1" \
+ "addx.w r3,@er1"
+gdb_test "x" "addx.w\tr3,@er1-" \
+ "addx.w r3,@er1-"
+gdb_test "x" "addx.w\t@er3,r1" \
+ "addx.w @er3,r1"
+gdb_test "x" "addx.w\t@er3,@er1" \
+ "addx.w @er3,@er1"
+gdb_test "x" "addx.w\t@er3-,r1" \
+ "addx.w @er3-,r1"
+gdb_test "x" "addx.w\t@er3-,@er1-" \
+ "addx.w @er3-,@er1-"
+gdb_test "x" "addx.l\t#0x12345678(:32|),er1" \
+ "addx.l #0x12345678:32,er1"
+gdb_test "x" "addx.l\t#0x12345678(:32|),@er1" \
+ "addx.l #0x12345678:32,@er1"
+gdb_test "x" "addx.l\t#0x12345678(:32|),@er1-" \
+ "addx.l #0x12345678:32,@er1-"
+gdb_test "x" "addx.l\ter3,er1" \
+ "addx.l er3,er1"
+gdb_test "x" "addx.l\ter3,@er1" \
+ "addx.l er3,@er1"
+gdb_test "x" "addx.l\ter3,@er1-" \
+ "addx.l er3,@er1-"
+gdb_test "x" "addx.l\t@er3,er1" \
+ "addx.l @er3,er1"
+gdb_test "x" "addx.l\t@er3,@er1" \
+ "addx.l @er3,@er1"
+gdb_test "x" "addx.l\t@er3-,er1" \
+ "addx.l @er3-,er1"
+gdb_test "x" "addx.l\t@er3-,@er1-" \
+ "addx.l @er3-,@er1-"
+gdb_test "x" "subx(.b|)\t#0x12(:8|),r1h" \
+ "subx.b #0x12:8,r1h"
+gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1" \
+ "subx.b #0x12:8,@er1"
+gdb_test "x" "subx(.b|)\t#0x12(:8|),@er1-" \
+ "subx.b #0x12:8,@er1-"
+gdb_test "x" "subx(.b|)\tr3h,r1h" \
+ "subx.b r3h,r1h"
+gdb_test "x" "subx(.b|)\tr3h,@er1" \
+ "subx.b r3h,@er1"
+gdb_test "x" "subx(.b|)\tr3h,@er1-" \
+ "subx.b r3h,@er1-"
+gdb_test "x" "subx(.b|)\t@er3,r1h" \
+ "subx.b @er3,r1h"
+gdb_test "x" "subx(.b|)\t@er3,@er1" \
+ "subx.b @er3,@er1"
+gdb_test "x" "subx(.b|)\t@er3-,r1h" \
+ "subx.b @er3-,r1h"
+gdb_test "x" "subx(.b|)\t@er3-,@er1-" \
+ "subx.b @er3-,@er1-"
+gdb_test "x" "subx.w\t#0x1234(:16|),r1" \
+ "subx.w #0x1234:16,r1"
+gdb_test "x" "subx.w\t#0x1234(:16|),@er1" \
+ "subx.w #0x1234:16,@er1"
+gdb_test "x" "subx.w\t#0x1234(:16|),@er1-" \
+ "subx.w #0x1234:16,@er1-"
+gdb_test "x" "subx.w\tr3,r1" \
+ "subx.w r3,r1"
+gdb_test "x" "subx.w\tr3,@er1" \
+ "subx.w r3,@er1"
+gdb_test "x" "subx.w\tr3,@er1-" \
+ "subx.w r3,@er1-"
+gdb_test "x" "subx.w\t@er3,r1" \
+ "subx.w @er3,r1"
+gdb_test "x" "subx.w\t@er3,@er1" \
+ "subx.w @er3,@er1"
+gdb_test "x" "subx.w\t@er3-,r1" \
+ "subx.w @er3-,r1"
+gdb_test "x" "subx.w\t@er3-,@er1-" \
+ "subx.w @er3-,@er1-"
+gdb_test "x" "subx.l\t#0x12345678(:32|),er1" \
+ "subx.l #0x12345678:32,er1"
+gdb_test "x" "subx.l\t#0x12345678(:32|),@er1" \
+ "subx.l #0x12345678:32,@er1"
+gdb_test "x" "subx.l\t#0x12345678(:32|),@er1-" \
+ "subx.l #0x12345678:32,@er1-"
+gdb_test "x" "subx.l\ter3,er1" \
+ "subx.l er3,er1"
+gdb_test "x" "subx.l\ter3,@er1" \
+ "subx.l er3,@er1"
+gdb_test "x" "subx.l\ter3,@er1-" \
+ "subx.l er3,@er1-"
+gdb_test "x" "subx.l\t@er3,er1" \
+ "subx.l @er3,er1"
+gdb_test "x" "subx.l\t@er3,@er1" \
+ "subx.l @er3,@er1"
+gdb_test "x" "subx.l\t@er3-,er1" \
+ "subx.l @er3-,er1"
+gdb_test "x" "subx.l\t@er3-,@er1-" \
+ "subx.l @er3-,@er1-"
+gdb_test "x" "inc(.b|)\tr1h" \
+ "inc.b r1h"
+gdb_test "x" "inc(.w|)\t#1,r1" \
+ "inc.w #1,r1"
+gdb_test "x" "inc(.w|)\t#2,r1" \
+ "inc.w #2,r1"
+gdb_test "x" "inc(.l|)\t#1,er1" \
+ "inc.l #1,er1"
+gdb_test "x" "inc(.l|)\t#2,er1" \
+ "inc.l #2,er1"
+gdb_test "x" "dec(.b|)\tr1h" \
+ "dec.b r1h"
+gdb_test "x" "dec(.w|)\t#1,r1" \
+ "dec.w #1,r1"
+gdb_test "x" "dec(.w|)\t#2,r1" \
+ "dec.w #2,r1"
+gdb_test "x" "dec(.l|)\t#1,er1" \
+ "dec.l #1,er1"
+gdb_test "x" "dec(.l|)\t#2,er1" \
+ "dec.l #2,er1"
+gdb_test "x" "adds(.l|)\t#1,er1" \
+ "adds.l #1,er1"
+gdb_test "x" "adds(.l|)\t#2,er1" \
+ "adds.l #2,er1"
+gdb_test "x" "adds(.l|)\t#4,er1" \
+ "adds.l #4,er1"
+gdb_test "x" "subs(.l|)\t#1,er1" \
+ "subs.l #1,er1"
+gdb_test "x" "subs(.l|)\t#2,er1" \
+ "subs.l #2,er1"
+gdb_test "x" "subs(.l|)\t#4,er1" \
+ "subs.l #4,er1"
+gdb_test "x" "daa(.b|)\tr1h" \
+ "daa.b r1h"
+gdb_test "x" "das(.b|)\tr1h" \
+ "das.b r1h"
+gdb_test "x" "mulxu.b\t#0xf(:4|),r1" \
+ "mulxu.b #0xf:4,r1"
+gdb_test "x" "mulxu.b\tr3h,r1" \
+ "mulxu.b r3h,r1"
+gdb_test "x" "mulxu.w\t#0xf(:4|),er1" \
+ "mulxu.w #0xf:4,er1"
+gdb_test "x" "mulxu.w\tr3,er1" \
+ "mulxu.w r3,er1"
+gdb_test "x" "divxu.b\t#0xf(:4|),r1" \
+ "divxu.b #0xf:4,r1"
+gdb_test "x" "divxu.b\tr3h,r1" \
+ "divxu.b r3h,r1"
+gdb_test "x" "divxu.w\t#0xf(:4|),er1" \
+ "divxu.w #0xf:4,er1"
+gdb_test "x" "divxu.w\tr3,er1" \
+ "divxu.w r3,er1"
+gdb_test "x" "mulxs.b\t#0xf(:4|),r1" \
+ "mulxs.b #0xf:4,r1"
+gdb_test "x" "mulxs.b\tr3h,r1" \
+ "mulxs.b r3h,r1"
+gdb_test "x" "mulxs.w\t#0xf(:4|),er1" \
+ "mulxs.w #0xf:4,er1"
+gdb_test "x" "mulxs.w\tr3,er1" \
+ "mulxs.w r3,er1"
+gdb_test "x" "divxs.b\t#0xf(:4|),r1" \
+ "divxs.b #0xf:4,r1"
+gdb_test "x" "divxs.b\tr3h,r1" \
+ "divxs.b r3h,r1"
+gdb_test "x" "divxs.w\t#0xf(:4|),er1" \
+ "divxs.w #0xf:4,er1"
+gdb_test "x" "divxs.w\tr3,er1" \
+ "divxs.w r3,er1"
+gdb_test "x" "mulu.w\t#0xf(:4|),r1" \
+ "mulu.w #0xf:4,r1"
+gdb_test "x" "mulu.w\tr3,r1" \
+ "mulu.w r3,r1"
+gdb_test "x" "mulu.l\t#0xf(:4|),er1" \
+ "mulu.l #0xf:4,er1"
+gdb_test "x" "mulu.l\ter3,er1" \
+ "mulu.l er3,er1"
+gdb_test "x" "mulu/u.l\t#0xf(:4|),er1" \
+ "mulu/u.l #0xf:4,er1"
+gdb_test "x" "mulu/u.l\ter3,er1" \
+ "mulu/u.l er3,er1"
+gdb_test "x" "muls.w\t#0xf(:4|),r1" \
+ "muls.w #0xf:4,r1"
+gdb_test "x" "muls.w\tr3,r1" \
+ "muls.w r3,r1"
+gdb_test "x" "muls.l\t#0xf(:4|),er1" \
+ "muls.l #0xf:4,er1"
+gdb_test "x" "muls.l\ter3,er1" \
+ "muls.l er3,er1"
+gdb_test "x" "muls/u.l\t#0xf(:4|),er1" \
+ "muls/u.l #0xf:4,er1"
+gdb_test "x" "muls/u.l\ter3,er1" \
+ "muls/u.l er3,er1"
+gdb_test "x" "divu.w\t#0xf(:4|),r1" \
+ "divu.w #0xf:4,r1"
+gdb_test "x" "divu.w\tr3,r1" \
+ "divu.w r3,r1"
+gdb_test "x" "divu.l\t#0xf(:4|),er1" \
+ "divu.l #0xf:4,er1"
+gdb_test "x" "divu.l\ter3,er1" \
+ "divu.l er3,er1"
+gdb_test "x" "divs.w\t#0xf(:4|),r1" \
+ "divs.w #0xf:4,r1"
+gdb_test "x" "divs.w\tr3,r1" \
+ "divs.w r3,r1"
+gdb_test "x" "divs.l\t#0xf(:4|),er1" \
+ "divs.l #0xf:4,er1"
+gdb_test "x" "divs.l\ter3,er1" \
+ "divs.l er3,er1"
diff --git a/gdb/testsuite/gdb.disasm/t06_ari2.s b/gdb/testsuite/gdb.disasm/t06_ari2.s
new file mode 100644
index 0000000..2c7c99f
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t06_ari2.s
@@ -0,0 +1,188 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;arith_2
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ addx.b #0x12:8,r1h ;9112
+ addx.b #0x12:8,@er1 ;7d109012
+ addx.b #0x12:8,@er1- ;01766c189012
+
+ addx.b r3h,r1h ;0e31
+ addx.b r3h,@er1 ;7d100e30
+ addx.b r3h,@er1- ;01766c180e30
+
+ addx.b @er3,r1h ;7c300e01
+ addx.b @er3,@er1 ;0174683d0110
+
+ addx.b @er3-,r1h ;01766c300e01
+ addx.b @er3-,@er1- ;01766c3da110
+
+ addx.w #0x1234:16,r1 ;015179111234
+ addx.w #0x1234:16,@er1 ;7d9179101234
+ addx.w #0x1234:16,@er1- ;01566d1979101234
+
+ addx.w r3,r1 ;01510931
+ addx.w r3,@er1 ;7d910930
+ addx.w r3,@er1- ;01566d190930
+
+ addx.w @er3,r1 ;7cb10901
+ addx.w @er3,@er1 ;0154693d0110
+
+ addx.w @er3-,r1 ;01566d310901
+ addx.w @er3-,@er1- ;01566d3da110
+
+ addx.l #0x12345678:32,er1 ;01017a1112345678
+ addx.l #0x12345678:32,@er1 ;010469197a1012345678
+ addx.l #0x12345678:32,@er1- ;01066d197a1012345678
+
+ addx.l er3,er1 ;01010ab1
+ addx.l er3,@er1 ;010469190ab0
+ addx.l er3,@er1- ;01066d190ab0
+
+ addx.l @er3,er1 ;010469310a81
+ addx.l @er3,@er1 ;0104693d0110
+
+ addx.l @er3-,er1 ;01066d310a81
+ addx.l @er3-,@er1- ;01066d3da110
+
+ subx.b #0x12:8,r1h ;b112
+ subx.b #0x12:8,@er1 ;7d10b012
+ subx.b #0x12:8,@er1- ;01766c18b012
+
+ subx.b r3h,r1h ;1e31
+ subx.b r3h,@er1 ;7d101e30
+ subx.b r3h,@er1- ;01766c181e30
+
+ subx.b @er3,r1h ;7c301e01
+ subx.b @er3,@er1 ;0174683d0130
+
+ subx.b @er3-,r1h ;01766c301e01
+ subx.b @er3-,@er1- ;01766c3da130
+
+ subx.w #0x1234:16,r1 ;015179311234
+ subx.w #0x1234:16,@er1 ;7d9179301234
+ subx.w #0x1234:16,@er1- ;01566d1979301234
+
+ subx.w r3,r1 ;01511931
+ subx.w r3,@er1 ;7d911930
+ subx.w r3,@er1- ;01566d191930
+
+ subx.w @er3,r1 ;7cb11901
+ subx.w @er3,@er1 ;0154693d0130
+
+ subx.w @er3-,r1 ;01566d311901
+ subx.w @er3-,@er1- ;01566d3da130
+
+ subx.l #0x12345678:32,er1 ;01017a3112345678
+ subx.l #0x12345678:32,@er1 ;010469197a3012345678
+ subx.l #0x12345678:32,@er1- ;01066d197a3012345678
+
+ subx.l er3,er1 ;01011ab1
+ subx.l er3,@er1 ;010469191ab0
+ subx.l er3,@er1- ;01066d191ab0
+
+ subx.l @er3,er1 ;010469311a81
+ subx.l @er3,@er1 ;0104693d0130
+
+ subx.l @er3-,er1 ;01066d311a81
+ subx.l @er3-,@er1- ;01066d3da130
+
+ inc.b r1h ;0a01
+ inc.w #1,r1 ;0b51
+ inc.w #2,r1 ;0bd1
+ inc.l #1,er1 ;0b71
+ inc.l #2,er1 ;0bf1
+
+ dec.b r1h ;1a01
+ dec.w #1,r1 ;1b51
+ dec.w #2,r1 ;1bd1
+ dec.l #1,er1 ;1b71
+ dec.l #2,er1 ;1bf1
+
+ adds.l #1,er1 ;0b01
+ adds.l #2,er1 ;0b81
+ adds.l #4,er1 ;0b91
+
+ subs.l #1,er1 ;1b01
+ subs.l #2,er1 ;1b81
+ subs.l #4,er1 ;1b91
+
+ daa.b r1h ;0f01
+
+ das.b r1h ;1f01
+
+ mulxu.b #0xf:4,r1 ;01cc50f1
+
+ mulxu.b r3h,r1 ;5031
+
+ mulxu.w #0xf:4,er1 ;01cc52f1
+
+ mulxu.w r3,er1 ;5231
+
+ divxu.b #0xf:4,r1 ;01dc51f1
+
+ divxu.b r3h,r1 ;5131
+
+ divxu.w #0xf:4,er1 ;01dc53f1
+
+ divxu.w r3,er1 ;5331
+
+ mulxs.b #0xf:4,r1 ;01c450f1
+
+ mulxs.b r3h,r1 ;01c05031
+
+ mulxs.w #0xf:4,er1 ;01c452f1
+
+ mulxs.w r3,er1 ;01c05231
+
+ divxs.b #0xf:4,r1 ;01d451f1
+
+ divxs.b r3h,r1 ;01d05131
+
+ divxs.w #0xf:4,er1 ;01d453f1
+
+ divxs.w r3,er1 ;01d05331
+
+ mulu.w #0xf:4,r1 ;01ce50f1
+
+ mulu.w r3,r1 ;01ca5031
+
+ mulu.l #0xf:4,er1 ;01ce52f1
+
+ mulu.l er3,er1 ;01ca5231
+
+ mulu/u.l #0xf:4,er1 ;01cf52f1
+
+ mulu/u.l er3,er1 ;01cb5231
+
+ muls.w #0xf:4,r1 ;01c650f1
+
+ muls.w r3,r1 ;01c25031
+
+ muls.l #0xf:4,er1 ;01c652f1
+
+ muls.l er3,er1 ;01c25231
+
+ muls/u.l #0xf:4,er1 ;01c752f1
+
+ muls/u.l er3,er1 ;01c35231
+
+ divu.w #0xf:4,r1 ;01de51f1
+
+ divu.w r3,r1 ;01da5131
+
+ divu.l #0xf:4,er1 ;01de53f1
+
+ divu.l er3,er1 ;01da5331
+
+ divs.w #0xf:4,r1 ;01d651f1
+
+ divs.w r3,r1 ;01d25131
+
+ divs.l #0xf:4,er1 ;01d653f1
+
+ divs.l er3,er1 ;01d25331
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t07_ari3.exp b/gdb/testsuite/gdb.disasm/t07_ari3.exp
new file mode 100644
index 0000000..7084a95
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t07_ari3.exp
@@ -0,0 +1,364 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t07_ari3"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "neg.b\tr1h" \
+ "neg.b r1h"
+gdb_test "x" "neg.b\t@er1" \
+ "neg.b @er1"
+gdb_test "x" "neg.b\t@\\(0x3(:2|),er1\\)" \
+ "neg.b @(0x3:2,er1)"
+gdb_test "x" "neg.b\t@er1\\+" \
+ "neg.b @er1+"
+gdb_test "x" "neg.b\t@-er1" \
+ "neg.b @-er1"
+gdb_test "x" "neg.b\t@\\+er1" \
+ "neg.b @+er1"
+gdb_test "x" "neg.b\t@er1-" \
+ "neg.b @er1-"
+gdb_test "x" "neg.b\t@\\(0x1234(:16|),er1\\)" \
+ "neg.b @(0x1234:16,er1)"
+gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er1\\)" \
+ "neg.b @(0x12345678:32,er1)"
+gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "neg.b @(0x1234:16,r2l.b)"
+gdb_test "x" "neg.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "neg.b @(0x1234:16,r2.w)"
+gdb_test "x" "neg.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "neg.b @(0x1234:16,er2.l)"
+gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "neg.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "neg.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "neg.b @(0x12345678:32,r2.w)"
+gdb_test "x" "neg.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "neg.b @(0x12345678:32,er2.l)"
+gdb_test "x" "neg.b\t@0x12(:8|)" \
+ "neg.b @0x12:8"
+gdb_test "x" "neg.b\t@0x1234(:16|)" \
+ "neg.b @0x1234:16"
+gdb_test "x" "neg.b\t@0x12345678(:32|)" \
+ "neg.b @0x12345678:32"
+gdb_test "x" "neg.w\tr1" \
+ "neg.w r1"
+gdb_test "x" "neg.w\t@er1" \
+ "neg.w @er1"
+gdb_test "x" "neg.w\t@\\(0x6(:2|),er1\\)" \
+ "neg.w @(0x6:2,er1)"
+gdb_test "x" "neg.w\t@er1\\+" \
+ "neg.w @er1+"
+gdb_test "x" "neg.w\t@-er1" \
+ "neg.w @-er1"
+gdb_test "x" "neg.w\t@\\+er1" \
+ "neg.w @+er1"
+gdb_test "x" "neg.w\t@er1-" \
+ "neg.w @er1-"
+gdb_test "x" "neg.w\t@\\(0x1234(:16|),er1\\)" \
+ "neg.w @(0x1234:16,er1)"
+gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er1\\)" \
+ "neg.w @(0x12345678:32,er1)"
+gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "neg.w @(0x1234:16,r2l.b)"
+gdb_test "x" "neg.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "neg.w @(0x1234:16,r2.w)"
+gdb_test "x" "neg.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "neg.w @(0x1234:16,er2.l)"
+gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "neg.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "neg.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "neg.w @(0x12345678:32,r2.w)"
+gdb_test "x" "neg.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "neg.w @(0x12345678:32,er2.l)"
+gdb_test "x" "neg.w\t@0x1234(:16|)" \
+ "neg.w @0x1234:16"
+gdb_test "x" "neg.w\t@0x12345678(:32|)" \
+ "neg.w @0x12345678:32"
+gdb_test "x" "neg.l\ter1" \
+ "neg.l er1"
+gdb_test "x" "neg.l\t@er1" \
+ "neg.l @er1"
+gdb_test "x" "neg.l\t@\\(0xc(:2|),er1\\)" \
+ "neg.l @(0xc:2,er1)"
+gdb_test "x" "neg.l\t@er1\\+" \
+ "neg.l @er1+"
+gdb_test "x" "neg.l\t@-er1" \
+ "neg.l @-er1"
+gdb_test "x" "neg.l\t@\\+er1" \
+ "neg.l @+er1"
+gdb_test "x" "neg.l\t@er1-" \
+ "neg.l @er1-"
+gdb_test "x" "neg.l\t@\\(0x1234(:16|),er1\\)" \
+ "neg.l @(0x1234:16,er1)"
+gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er1\\)" \
+ "neg.l @(0x12345678:32,er1)"
+gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "neg.l @(0x1234:16,r2l.b)"
+gdb_test "x" "neg.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "neg.l @(0x1234:16,r2.w)"
+gdb_test "x" "neg.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "neg.l @(0x1234:16,er2.l)"
+gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "neg.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "neg.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "neg.l @(0x12345678:32,r2.w)"
+gdb_test "x" "neg.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "neg.l @(0x12345678:32,er2.l)"
+gdb_test "x" "neg.l\t@0x1234(:16|)" \
+ "neg.l @0x1234:16"
+gdb_test "x" "neg.l\t@0x12345678(:32|)" \
+ "neg.l @0x12345678:32"
+gdb_test "x" "tas\t@er1" \
+ "tas @er1"
+gdb_test "x" "extu.w\tr1" \
+ "extu.w r1"
+gdb_test "x" "extu.w\t@er1" \
+ "extu.w @er1"
+gdb_test "x" "extu.w\t@\\(0x6(:2|),er1\\)" \
+ "extu.w @(0x6:2,er1)"
+gdb_test "x" "extu.w\t@er1\\+" \
+ "extu.w @er1+"
+gdb_test "x" "extu.w\t@-er1" \
+ "extu.w @-er1"
+gdb_test "x" "extu.w\t@\\+er1" \
+ "extu.w @+er1"
+gdb_test "x" "extu.w\t@er1-" \
+ "extu.w @er1-"
+gdb_test "x" "extu.w\t@\\(0x1234(:16|),er1\\)" \
+ "extu.w @(0x1234:16,er1)"
+gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er1\\)" \
+ "extu.w @(0x12345678:32,er1)"
+gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "extu.w @(0x1234:16,r2l.b)"
+gdb_test "x" "extu.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "extu.w @(0x1234:16,r2.w)"
+gdb_test "x" "extu.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "extu.w @(0x1234:16,er2.l)"
+gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "extu.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "extu.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "extu.w @(0x12345678:32,r2.w)"
+gdb_test "x" "extu.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "extu.w @(0x12345678:32,er2.l)"
+gdb_test "x" "extu.w\t@0x1234(:16|)" \
+ "extu.w @0x1234:16"
+gdb_test "x" "extu.w\t@0x12345678(:32|)" \
+ "extu.w @0x12345678:32"
+gdb_test "x" "extu.l\ter1" \
+ "extu.l er1"
+gdb_test "x" "extu.l\t@er1" \
+ "extu.l @er1"
+gdb_test "x" "extu.l\t@\\(0xc(:2|),er1\\)" \
+ "extu.l @(0xc:2,er1)"
+gdb_test "x" "extu.l\t@er1\\+" \
+ "extu.l @er1+"
+gdb_test "x" "extu.l\t@-er1" \
+ "extu.l @-er1"
+gdb_test "x" "extu.l\t@\\+er1" \
+ "extu.l @+er1"
+gdb_test "x" "extu.l\t@er1-" \
+ "extu.l @er1-"
+gdb_test "x" "extu.l\t@\\(0x1234(:16|),er1\\)" \
+ "extu.l @(0x1234:16,er1)"
+gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er1\\)" \
+ "extu.l @(0x12345678:32,er1)"
+gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "extu.l @(0x1234:16,r2l.b)"
+gdb_test "x" "extu.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "extu.l @(0x1234:16,r2.w)"
+gdb_test "x" "extu.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "extu.l @(0x1234:16,er2.l)"
+gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "extu.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "extu.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "extu.l @(0x12345678:32,r2.w)"
+gdb_test "x" "extu.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "extu.l @(0x12345678:32,er2.l)"
+gdb_test "x" "extu.l\t@0x1234(:16|)" \
+ "extu.l @0x1234:16"
+gdb_test "x" "extu.l\t@0x12345678(:32|)" \
+ "extu.l @0x12345678:32"
+gdb_test "x" "extu.l\t#2,er1" \
+ "extu.l #2,er1"
+gdb_test "x" "extu.l\t#2,@er1" \
+ "extu.l #2,@er1"
+gdb_test "x" "extu.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "extu.l #2,@(0xc:2,er1)"
+gdb_test "x" "extu.l\t#2,@er1\\+" \
+ "extu.l #2,@er1+"
+gdb_test "x" "extu.l\t#2,@-er1" \
+ "extu.l #2,@-er1"
+gdb_test "x" "extu.l\t#2,@\\+er1" \
+ "extu.l #2,@+er1"
+gdb_test "x" "extu.l\t#2,@er1-" \
+ "extu.l #2,@er1-"
+gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "extu.l #2,@(0x1234:16,er1)"
+gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "extu.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "extu.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "extu.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "extu.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "extu.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "extu.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "extu.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "extu.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "extu.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "extu.l\t#2,@0x1234(:16|)" \
+ "extu.l #2,@0x1234:16"
+gdb_test "x" "extu.l\t#2,@0x12345678(:32|)" \
+ "extu.l #2,@0x12345678:32"
+gdb_test "x" "exts.w\tr1" \
+ "exts.w r1"
+gdb_test "x" "exts.w\t@er1" \
+ "exts.w @er1"
+gdb_test "x" "exts.w\t@\\(0x6(:2|),er1\\)" \
+ "exts.w @(0x6:2,er1)"
+gdb_test "x" "exts.w\t@er1\\+" \
+ "exts.w @er1+"
+gdb_test "x" "exts.w\t@-er1" \
+ "exts.w @-er1"
+gdb_test "x" "exts.w\t@\\+er1" \
+ "exts.w @+er1"
+gdb_test "x" "exts.w\t@er1-" \
+ "exts.w @er1-"
+gdb_test "x" "exts.w\t@\\(0x1234(:16|),er1\\)" \
+ "exts.w @(0x1234:16,er1)"
+gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er1\\)" \
+ "exts.w @(0x12345678:32,er1)"
+gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "exts.w @(0x1234:16,r2l.b)"
+gdb_test "x" "exts.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "exts.w @(0x1234:16,r2.w)"
+gdb_test "x" "exts.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "exts.w @(0x1234:16,er2.l)"
+gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "exts.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "exts.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "exts.w @(0x12345678:32,r2.w)"
+gdb_test "x" "exts.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "exts.w @(0x12345678:32,er2.l)"
+gdb_test "x" "exts.w\t@0x1234(:16|)" \
+ "exts.w @0x1234:16"
+gdb_test "x" "exts.w\t@0x12345678(:32|)" \
+ "exts.w @0x12345678:32"
+gdb_test "x" "exts.l\ter1" \
+ "exts.l er1"
+gdb_test "x" "exts.l\t@er1" \
+ "exts.l @er1"
+gdb_test "x" "exts.l\t@\\(0xc(:2|),er1\\)" \
+ "exts.l @(0xc:2,er1)"
+gdb_test "x" "exts.l\t@er1\\+" \
+ "exts.l @er1+"
+gdb_test "x" "exts.l\t@-er1" \
+ "exts.l @-er1"
+gdb_test "x" "exts.l\t@\\+er1" \
+ "exts.l @+er1"
+gdb_test "x" "exts.l\t@er1-" \
+ "exts.l @er1-"
+gdb_test "x" "exts.l\t@\\(0x1234(:16|),er1\\)" \
+ "exts.l @(0x1234:16,er1)"
+gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er1\\)" \
+ "exts.l @(0x12345678:32,er1)"
+gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "exts.l @(0x1234:16,r2l.b)"
+gdb_test "x" "exts.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "exts.l @(0x1234:16,r2.w)"
+gdb_test "x" "exts.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "exts.l @(0x1234:16,er2.l)"
+gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "exts.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "exts.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "exts.l @(0x12345678:32,r2.w)"
+gdb_test "x" "exts.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "exts.l @(0x12345678:32,er2.l)"
+gdb_test "x" "exts.l\t@0x1234(:16|)" \
+ "exts.l @0x1234:16"
+gdb_test "x" "exts.l\t@0x12345678(:32|)" \
+ "exts.l @0x12345678:32"
+gdb_test "x" "exts.l\t#2,er1" \
+ "exts.l #2,er1"
+gdb_test "x" "exts.l\t#2,@er1" \
+ "exts.l #2,@er1"
+gdb_test "x" "exts.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "exts.l #2,@(0xc:2,er1)"
+gdb_test "x" "exts.l\t#2,@er1\\+" \
+ "exts.l #2,@er1+"
+gdb_test "x" "exts.l\t#2,@-er1" \
+ "exts.l #2,@-er1"
+gdb_test "x" "exts.l\t#2,@\\+er1" \
+ "exts.l #2,@+er1"
+gdb_test "x" "exts.l\t#2,@er1-" \
+ "exts.l #2,@er1-"
+gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "exts.l #2,@(0x1234:16,er1)"
+gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "exts.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "exts.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "exts.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "exts.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "exts.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "exts.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "exts.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "exts.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "exts.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "exts.l\t#2,@0x1234(:16|)" \
+ "exts.l #2,@0x1234:16"
+gdb_test "x" "exts.l\t#2,@0x12345678(:32|)" \
+ "exts.l #2,@0x12345678:32"
diff --git a/gdb/testsuite/gdb.disasm/t07_ari3.s b/gdb/testsuite/gdb.disasm/t07_ari3.s
new file mode 100644
index 0000000..985c684
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t07_ari3.s
@@ -0,0 +1,173 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;arith_3
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ neg.b r1h ;1781
+ neg.b @er1 ;7d101780
+ neg.b @(0x3:2,er1) ;017768181780
+ neg.b @er1+ ;01746c181780
+ neg.b @-er1 ;01776c181780
+ neg.b @+er1 ;01756c181780
+ neg.b @er1- ;01766c181780
+ neg.b @(0x1234:16,er1) ;01746e1812341780
+ neg.b @(0x12345678:32,er1) ;78146a28123456781780
+ neg.b @(0x1234:16,r2l.b) ;01756e2812341780
+ neg.b @(0x1234:16,r2.w) ;01766e2812341780
+ neg.b @(0x1234:16,er2.l) ;01776e2812341780
+ neg.b @(0x12345678:32,r2l.b) ;78256a28123456781780
+ neg.b @(0x12345678:32,r2.w) ;78266a28123456781780
+ neg.b @(0x12345678:32,er2.l) ;78276a28123456781780
+ neg.b @0xffffff12:8 ;7f121780
+ neg.b @0x1234:16 ;6a1812341780
+ neg.b @0x12345678:32 ;6a38123456781780
+
+ neg.w r1 ;1791
+ neg.w @er1 ;7d901790
+ neg.w @(0x6:2,er1) ;015769181790
+ neg.w @er1+ ;01546d181790
+ neg.w @-er1 ;01576d181790
+ neg.w @+er1 ;01556d181790
+ neg.w @er1- ;01566d181790
+ neg.w @(0x1234:16,er1) ;01546f1812341790
+ neg.w @(0x12345678:32,er1) ;78146b28123456781790
+ neg.w @(0x1234:16,r2l.b) ;01556f2812341790
+ neg.w @(0x1234:16,r2.w) ;01566f2812341790
+ neg.w @(0x1234:16,er2.l) ;01576f2812341790
+ neg.w @(0x12345678:32,r2l.b) ;78256b28123456781790
+ neg.w @(0x12345678:32,r2.w) ;78266b28123456781790
+ neg.w @(0x12345678:32,er2.l) ;78276b28123456781790
+ neg.w @0x1234:16 ;6b1812341790
+ neg.w @0x12345678:32 ;6b38123456781790
+
+ neg.l er1 ;17b1
+ neg.l @er1 ;0104691817b0
+ neg.l @(0xc:2,er1) ;0107691817b0
+ neg.l @er1+ ;01046d1817b0
+ neg.l @-er1 ;01076d1817b0
+ neg.l @+er1 ;01056d1817b0
+ neg.l @er1- ;01066d1817b0
+ neg.l @(0x1234:16,er1) ;01046f18123417b0
+ neg.l @(0x12345678:32,er1) ;78946b281234567817b0
+ neg.l @(0x1234:16,r2l.b) ;01056f28123417b0
+ neg.l @(0x1234:16,r2.w) ;01066f28123417b0
+ neg.l @(0x1234:16,er2.l) ;01076f28123417b0
+ neg.l @(0x12345678:32,r2l.b) ;78a56b281234567817b0
+ neg.l @(0x12345678:32,r2.w) ;78a66b281234567817b0
+ neg.l @(0x12345678:32,er2.l) ;78a76b281234567817b0
+ neg.l @0x1234:16 ;01046b08123417b0
+ neg.l @0x12345678:32 ;01046b281234567817b0
+
+ tas @er1 ;01e07b1c
+
+ extu.w r1 ;1751
+ extu.w @er1 ;7d901750
+ extu.w @(0x6:2,er1) ;015769181750
+ extu.w @er1+ ;01546d181750
+ extu.w @-er1 ;01576d181750
+ extu.w @+er1 ;01556d181750
+ extu.w @er1- ;01566d181750
+ extu.w @(0x1234:16,er1) ;01546f1812341750
+ extu.w @(0x12345678:32,er1) ;78146b28123456781750
+ extu.w @(0x1234:16,r2l.b) ;01556f2812341750
+ extu.w @(0x1234:16,r2.w) ;01566f2812341750
+ extu.w @(0x1234:16,er2.l) ;01576f2812341750
+ extu.w @(0x12345678:32,r2l.b) ;78256b28123456781750
+ extu.w @(0x12345678:32,r2.w) ;78266b28123456781750
+ extu.w @(0x12345678:32,er2.l) ;78276b28123456781750
+ extu.w @0x1234:16 ;6b1812341750
+ extu.w @0x12345678:32 ;6b38123456781750
+
+ extu.l er1 ;1771
+ extu.l @er1 ;010469181770
+ extu.l @(0xc:2,er1) ;010769181770
+ extu.l @er1+ ;01046d181770
+ extu.l @-er1 ;01076d181770
+ extu.l @+er1 ;01056d181770
+ extu.l @er1- ;01066d181770
+ extu.l @(0x1234:16,er1) ;01046f1812341770
+ extu.l @(0x12345678:32,er1) ;78946b28123456781770
+ extu.l @(0x1234:16,r2l.b) ;01056f2812341770
+ extu.l @(0x1234:16,r2.w) ;01066f2812341770
+ extu.l @(0x1234:16,er2.l) ;01076f2812341770
+ extu.l @(0x12345678:32,r2l.b) ;78a56b28123456781770
+ extu.l @(0x12345678:32,r2.w) ;78a66b28123456781770
+ extu.l @(0x12345678:32,er2.l) ;78a76b28123456781770
+ extu.l @0x1234:16 ;01046b0812341770
+ extu.l @0x12345678:32 ;01046b28123456781770
+
+ extu.l #2,er1 ;1761
+ extu.l #2,@er1 ;010469181760
+ extu.l #2,@(0xc:2,er1) ;010769181760
+ extu.l #2,@er1+ ;01046d181760
+ extu.l #2,@-er1 ;01076d181760
+ extu.l #2,@+er1 ;01056d181760
+ extu.l #2,@er1- ;01066d181760
+ extu.l #2,@(0x1234:16,er1) ;01046f1812341760
+ extu.l #2,@(0x12345678:32,er1) ;78946b28123456781760
+ extu.l #2,@(0x1234:16,r2l.b) ;01056f2812341760
+ extu.l #2,@(0x1234:16,r2.w) ;01066f2812341760
+ extu.l #2,@(0x1234:16,er2.l) ;01076f2812341760
+ extu.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781760
+ extu.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781760
+ extu.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781760
+ extu.l #2,@0x1234:16 ;01046b0812341760
+ extu.l #2,@0x12345678:32 ;01046b28123456781760
+
+ exts.w r1 ;17d1
+ exts.w @er1 ;7d9017d0
+ exts.w @(0x6:2,er1) ;0157691817d0
+ exts.w @er1+ ;01546d1817d0
+ exts.w @-er1 ;01576d1817d0
+ exts.w @+er1 ;01556d1817d0
+ exts.w @er1- ;01566d1817d0
+ exts.w @(0x1234:16,er1) ;01546f18123417d0
+ exts.w @(0x12345678:32,er1) ;78146b281234567817d0
+ exts.w @(0x1234:16,r2l.b) ;01556f28123417d0
+ exts.w @(0x1234:16,r2.w) ;01566f28123417d0
+ exts.w @(0x1234:16,er2.l) ;01576f28123417d0
+ exts.w @(0x12345678:32,r2l.b) ;78256b281234567817d0
+ exts.w @(0x12345678:32,r2.w) ;78266b281234567817d0
+ exts.w @(0x12345678:32,er2.l) ;78276b281234567817d0
+ exts.w @0x1234:16 ;6b18123417d0
+ exts.w @0x12345678:32 ;6b381234567817d0
+
+ exts.l er1 ;17f1
+ exts.l @er1 ;0104691817f0
+ exts.l @(0xc:2,er1) ;0107691817f0
+ exts.l @er1+ ;01046d1817f0
+ exts.l @-er1 ;01076d1817f0
+ exts.l @+er1 ;01056d1817f0
+ exts.l @er1- ;01066d1817f0
+ exts.l @(0x1234:16,er1) ;01046f18123417f0
+ exts.l @(0x12345678:32,er1) ;78946b281234567817f0
+ exts.l @(0x1234:16,r2l.b) ;01056f28123417f0
+ exts.l @(0x1234:16,r2.w) ;01066f28123417f0
+ exts.l @(0x1234:16,er2.l) ;01076f28123417f0
+ exts.l @(0x12345678:32,r2l.b) ;78a56b281234567817f0
+ exts.l @(0x12345678:32,r2.w) ;78a66b281234567817f0
+ exts.l @(0x12345678:32,er2.l) ;78a76b281234567817f0
+ exts.l @0x1234:16 ;01046b08123417f0
+ exts.l @0x12345678:32 ;01046b281234567817f0
+
+ exts.l #2,er1 ;17e1
+ exts.l #2,@er1 ;0104691817e0
+ exts.l #2,@(0xc:2,er1) ;0107691817e0
+ exts.l #2,@er1+ ;01046d1817e0
+ exts.l #2,@-er1 ;01076d1817e0
+ exts.l #2,@+er1 ;01056d1817e0
+ exts.l #2,@er1- ;01066d1817e0
+ exts.l #2,@(0x1234:16,er1) ;01046f18123417e0
+ exts.l #2,@(0x12345678:32,er1) ;78946b281234567817e0
+ exts.l #2,@(0x1234:16,r2l.b) ;01056f28123417e0
+ exts.l #2,@(0x1234:16,r2.w) ;01066f28123417e0
+ exts.l #2,@(0x1234:16,er2.l) ;01076f28123417e0
+ exts.l #2,@(0x12345678:32,r2l.b) ;78a56b281234567817e0
+ exts.l #2,@(0x12345678:32,r2.w) ;78a66b281234567817e0
+ exts.l #2,@(0x12345678:32,er2.l) ;78a76b281234567817e0
+ exts.l #2,@0x1234:16 ;01046b08123417e0
+ exts.l #2,@0x12345678:32 ;01046b281234567817e0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t08_or.exp b/gdb/testsuite/gdb.disasm/t08_or.exp
new file mode 100644
index 0000000..5652cf7
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t08_or.exp
@@ -0,0 +1,1866 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t08_or"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "or.b\t#0x12(:8|),r1h" \
+ "or.b #0x12:8,r1h"
+gdb_test "x" "or.b\t#0x12(:8|),@er1" \
+ "or.b #0x12:8,@er1"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x3(:2|),er1\\)" \
+ "or.b #0x12:8,@(0x3:2,er1)"
+gdb_test "x" "or.b\t#0x12(:8|),@er1\\+" \
+ "or.b #0x12:8,@er1+"
+gdb_test "x" "or.b\t#0x12(:8|),@-er1" \
+ "or.b #0x12:8,@-er1"
+gdb_test "x" "or.b\t#0x12(:8|),@\\+er1" \
+ "or.b #0x12:8,@+er1"
+gdb_test "x" "or.b\t#0x12(:8|),@er1-" \
+ "or.b #0x12:8,@er1-"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x1234(:16|),er1\\)" \
+ "or.b #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x12345678(:32|),er1\\)" \
+ "or.b #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x1234(:16|),r2l.b\\)" \
+ "or.b #0x12:8,@(0x1234:16,r2l.b)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x1234(:16|),r2.w\\)" \
+ "or.b #0x12:8,@(0x1234:16,r2.w)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x1234(:16|),er2.l\\)" \
+ "or.b #0x12:8,@(0x1234:16,er2.l)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x12345678(:32|),r2l.b\\)" \
+ "or.b #0x12:8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x12345678(:32|),r2.w\\)" \
+ "or.b #0x12:8,@(0x12345678:32,r2.w)"
+gdb_test "x" "or.b\t#0x12(:8|),@\\(0x12345678(:32|),er2.l\\)" \
+ "or.b #0x12:8,@(0x12345678:32,er2.l)"
+gdb_test "x" "or.b\t#0x12(:8|),@0x12(:8|)" \
+ "or.b #0x12:8,@0x12:8"
+gdb_test "x" "or.b\t#0x12(:8|),@0x1234(:16|)" \
+ "or.b #0x12:8,@0x1234:16"
+gdb_test "x" "or.b\t#0x12(:8|),@0x12345678(:32|)" \
+ "or.b #0x12:8,@0x12345678:32"
+gdb_test "x" "or.b\tr3h,r1h" \
+ "or.b r3h,r1h"
+gdb_test "x" "or.b\tr3h,@er1" \
+ "or.b r3h,@er1"
+gdb_test "x" "or.b\tr3h,@\\(0x3(:2|),er1\\)" \
+ "or.b r3h,@(0x3:2,er1)"
+gdb_test "x" "or.b\tr3h,@er1\\+" \
+ "or.b r3h,@er1+"
+gdb_test "x" "or.b\tr3h,@-er1" \
+ "or.b r3h,@-er1"
+gdb_test "x" "or.b\tr3h,@\\+er1" \
+ "or.b r3h,@+er1"
+gdb_test "x" "or.b\tr3h,@er1-" \
+ "or.b r3h,@er1-"
+gdb_test "x" "or.b\tr3h,@\\(0x1234(:16|),er1\\)" \
+ "or.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "or.b\tr3h,@\\(0x12345678(:32|),er1\\)" \
+ "or.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "or.b\tr3h,@\\(0x1234(:16|),r2l.b\\)" \
+ "or.b r3h,@(0x1234:16,r2l.b)"
+gdb_test "x" "or.b\tr3h,@\\(0x1234(:16|),r2.w\\)" \
+ "or.b r3h,@(0x1234:16,r2.w)"
+gdb_test "x" "or.b\tr3h,@\\(0x1234(:16|),er2.l\\)" \
+ "or.b r3h,@(0x1234:16,er2.l)"
+gdb_test "x" "or.b\tr3h,@\\(0x12345678(:32|),r2l.b\\)" \
+ "or.b r3h,@(0x12345678:32,r2l.b)"
+gdb_test "x" "or.b\tr3h,@\\(0x12345678(:32|),r2.w\\)" \
+ "or.b r3h,@(0x12345678:32,r2.w)"
+gdb_test "x" "or.b\tr3h,@\\(0x12345678(:32|),er2.l\\)" \
+ "or.b r3h,@(0x12345678:32,er2.l)"
+gdb_test "x" "or.b\tr3h,@0x12(:8|)" \
+ "or.b r3h,@0x12:8"
+gdb_test "x" "or.b\tr3h,@0x1234(:16|)" \
+ "or.b r3h,@0x1234:16"
+gdb_test "x" "or.b\tr3h,@0x12345678(:32|)" \
+ "or.b r3h,@0x12345678:32"
+gdb_test "x" "or.b\t@er3,r1h" \
+ "or.b @er3,r1h"
+gdb_test "x" "or.b\t@\\(0x3(:2|),er3\\),r1h" \
+ "or.b @(0x3:2,er3),r1h"
+gdb_test "x" "or.b\t@er3\\+,r1h" \
+ "or.b @er3+,r1h"
+gdb_test "x" "or.b\t@-er3,r1h" \
+ "or.b @-er3,r1h"
+gdb_test "x" "or.b\t@\\+er3,r1h" \
+ "or.b @+er3,r1h"
+gdb_test "x" "or.b\t@er3-,r1h" \
+ "or.b @er3-,r1h"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er1\\),r1h" \
+ "or.b @(0x1234:16,er1),r1h"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er1\\),r1h" \
+ "or.b @(0x12345678:32,er1),r1h"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r2l.b\\),r1h" \
+ "or.b @(0x1234:16,r2l.b),r1h"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r2.w\\),r1h" \
+ "or.b @(0x1234:16,r2.w),r1h"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er2.l\\),r1h" \
+ "or.b @(0x1234:16,er2.l),r1h"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r2l.b\\),r1h" \
+ "or.b @(0x12345678:32,r2l.b),r1h"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r2.w\\),r1h" \
+ "or.b @(0x12345678:32,r2.w),r1h"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er2.l\\),r1h" \
+ "or.b @(0x12345678:32,er2.l),r1h"
+gdb_test "x" "or.b\t@0x12(:8|),r1h" \
+ "or.b @0x12:8,r1h"
+gdb_test "x" "or.b\t@0x1234(:16|),r1h" \
+ "or.b @0x1234:16,r1h"
+gdb_test "x" "or.b\t@0x12345678(:32|),r1h" \
+ "or.b @0x12345678:32,r1h"
+gdb_test "x" "or.b\t@er3,@er1" \
+ "or.b @er3,@er1"
+gdb_test "x" "or.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "or.b @er3,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@er3,@-er1" \
+ "or.b @er3,@-er1"
+gdb_test "x" "or.b\t@er3,@er1\\+" \
+ "or.b @er3,@er1+"
+gdb_test "x" "or.b\t@er3,@er1-" \
+ "or.b @er3,@er1-"
+gdb_test "x" "or.b\t@er3,@\\+er1" \
+ "or.b @er3,@+er1"
+gdb_test "x" "or.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@er3,@0x9abc(:16|)" \
+ "or.b @er3,@0x9abc:16"
+gdb_test "x" "or.b\t@er3,@0x9abcdef0(:32|)" \
+ "or.b @er3,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@-er3,@er1" \
+ "or.b @-er3,@er1"
+gdb_test "x" "or.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "or.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@-er3,@-er1" \
+ "or.b @-er3,@-er1"
+gdb_test "x" "or.b\t@-er3,@er1\\+" \
+ "or.b @-er3,@er1+"
+gdb_test "x" "or.b\t@-er3,@er1-" \
+ "or.b @-er3,@er1-"
+gdb_test "x" "or.b\t@-er3,@\\+er1" \
+ "or.b @-er3,@+er1"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@-er3,@0x9abc(:16|)" \
+ "or.b @-er3,@0x9abc:16"
+gdb_test "x" "or.b\t@-er3,@0x9abcdef0(:32|)" \
+ "or.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@er3\\+,@er1" \
+ "or.b @er3+,@er1"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "or.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@er3\\+,@-er1" \
+ "or.b @er3+,@-er1"
+gdb_test "x" "or.b\t@er3\\+,@er1\\+" \
+ "or.b @er3+,@er1+"
+gdb_test "x" "or.b\t@er3\\+,@er1-" \
+ "or.b @er3+,@er1-"
+gdb_test "x" "or.b\t@er3\\+,@\\+er1" \
+ "or.b @er3+,@+er1"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "or.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@er3\\+,@0x9abc(:16|)" \
+ "or.b @er3+,@0x9abc:16"
+gdb_test "x" "or.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "or.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@er3-,@er1" \
+ "or.b @er3-,@er1"
+gdb_test "x" "or.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "or.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@er3-,@-er1" \
+ "or.b @er3-,@-er1"
+gdb_test "x" "or.b\t@er3-,@er1\\+" \
+ "or.b @er3-,@er1+"
+gdb_test "x" "or.b\t@er3-,@er1-" \
+ "or.b @er3-,@er1-"
+gdb_test "x" "or.b\t@er3-,@\\+er1" \
+ "or.b @er3-,@+er1"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "or.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@er3-,@0x9abc(:16|)" \
+ "or.b @er3-,@0x9abc:16"
+gdb_test "x" "or.b\t@er3-,@0x9abcdef0(:32|)" \
+ "or.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\+er3,@er1" \
+ "or.b @+er3,@er1"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "or.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\+er3,@-er1" \
+ "or.b @+er3,@-er1"
+gdb_test "x" "or.b\t@\\+er3,@er1\\+" \
+ "or.b @+er3,@er1+"
+gdb_test "x" "or.b\t@\\+er3,@er1-" \
+ "or.b @+er3,@er1-"
+gdb_test "x" "or.b\t@\\+er3,@\\+er1" \
+ "or.b @+er3,@+er1"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\+er3,@0x9abc(:16|)" \
+ "or.b @+er3,@0x9abc:16"
+gdb_test "x" "or.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "or.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "or.b @(0x1234:16,er3),@er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "or.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "or.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "or.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "or.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "or.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "or.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "or.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "or.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "or.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "or.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "or.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "or.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "or.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "or.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "or.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "or.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "or.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "or.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "or.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "or.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "or.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "or.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "or.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "or.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "or.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "or.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "or.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "or.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "or.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "or.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "or.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "or.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "or.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "or.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "or.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "or.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "or.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "or.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "or.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "or.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "or.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "or.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "or.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "or.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "or.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "or.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "or.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "or.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.b\t@0x1234(:16|),@er1" \
+ "or.b @0x1234:16,@er1"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "or.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@0x1234(:16|),@-er1" \
+ "or.b @0x1234:16,@-er1"
+gdb_test "x" "or.b\t@0x1234(:16|),@er1\\+" \
+ "or.b @0x1234:16,@er1+"
+gdb_test "x" "or.b\t@0x1234(:16|),@er1-" \
+ "or.b @0x1234:16,@er1-"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\+er1" \
+ "or.b @0x1234:16,@+er1"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "or.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "or.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "or.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "or.b\t@0x12345678(:32|),@er1" \
+ "or.b @0x12345678:32,@er1"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "or.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@-er1" \
+ "or.b @0x12345678:32,@-er1"
+gdb_test "x" "or.b\t@0x12345678(:32|),@er1\\+" \
+ "or.b @0x12345678:32,@er1+"
+gdb_test "x" "or.b\t@0x12345678(:32|),@er1-" \
+ "or.b @0x12345678:32,@er1-"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\+er1" \
+ "or.b @0x12345678:32,@+er1"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "or.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "or.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "or.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "or.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "or.w\t#0x1234(:16|),r1" \
+ "or.w #0x1234:16,r1"
+gdb_test "x" "or.w\t#0x1234(:16|),@er1" \
+ "or.w #0x1234:16,@er1"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "or.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "or.w\t#0x1234(:16|),@er1\\+" \
+ "or.w #0x1234:16,@er1+"
+gdb_test "x" "or.w\t#0x1234(:16|),@-er1" \
+ "or.w #0x1234:16,@-er1"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\+er1" \
+ "or.w #0x1234:16,@+er1"
+gdb_test "x" "or.w\t#0x1234(:16|),@er1-" \
+ "or.w #0x1234:16,@er1-"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "or.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "or.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "or.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "or.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "or.w\tr3,r1" \
+ "or.w r3,r1"
+gdb_test "x" "or.w\tr3,@er1" \
+ "or.w r3,@er1"
+gdb_test "x" "or.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "or.w r3,@(0x6:2,er1)"
+gdb_test "x" "or.w\tr3,@er1\\+" \
+ "or.w r3,@er1+"
+gdb_test "x" "or.w\tr3,@-er1" \
+ "or.w r3,@-er1"
+gdb_test "x" "or.w\tr3,@\\+er1" \
+ "or.w r3,@+er1"
+gdb_test "x" "or.w\tr3,@er1-" \
+ "or.w r3,@er1-"
+gdb_test "x" "or.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "or.w r3,@(0x1234:16,er1)"
+gdb_test "x" "or.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "or.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "or.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "or.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "or.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "or.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "or.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "or.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "or.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "or.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "or.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "or.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "or.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "or.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "or.w\tr3,@0x1234(:16|)" \
+ "or.w r3,@0x1234:16"
+gdb_test "x" "or.w\tr3,@0x12345678(:32|)" \
+ "or.w r3,@0x12345678:32"
+gdb_test "x" "or.w\t@er3,r1" \
+ "or.w @er3,r1"
+gdb_test "x" "or.w\t@\\(0x6(:2|),er3\\),r1" \
+ "or.w @(0x6:2,er3),r1"
+gdb_test "x" "or.w\t@er3\\+,r1" \
+ "or.w @er3+,r1"
+gdb_test "x" "or.w\t@-er3,r1" \
+ "or.w @-er3,r1"
+gdb_test "x" "or.w\t@\\+er3,r1" \
+ "or.w @+er3,r1"
+gdb_test "x" "or.w\t@er3-,r1" \
+ "or.w @er3-,r1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "or.w @(0x1234:16,er1),r1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "or.w @(0x12345678:32,er1),r1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "or.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "or.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "or.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "or.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "or.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "or.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "or.w\t@0x1234(:16|),r1" \
+ "or.w @0x1234:16,r1"
+gdb_test "x" "or.w\t@0x12345678(:32|),r1" \
+ "or.w @0x12345678:32,r1"
+gdb_test "x" "or.w\t@er3,@er1" \
+ "or.w @er3,@er1"
+gdb_test "x" "or.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "or.w @er3,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@er3,@-er1" \
+ "or.w @er3,@-er1"
+gdb_test "x" "or.w\t@er3,@er1\\+" \
+ "or.w @er3,@er1+"
+gdb_test "x" "or.w\t@er3,@er1-" \
+ "or.w @er3,@er1-"
+gdb_test "x" "or.w\t@er3,@\\+er1" \
+ "or.w @er3,@+er1"
+gdb_test "x" "or.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@er3,@0x9abc(:16|)" \
+ "or.w @er3,@0x9abc:16"
+gdb_test "x" "or.w\t@er3,@0x9abcdef0(:32|)" \
+ "or.w @er3,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@-er3,@er1" \
+ "or.w @-er3,@er1"
+gdb_test "x" "or.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "or.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@-er3,@-er1" \
+ "or.w @-er3,@-er1"
+gdb_test "x" "or.w\t@-er3,@er1\\+" \
+ "or.w @-er3,@er1+"
+gdb_test "x" "or.w\t@-er3,@er1-" \
+ "or.w @-er3,@er1-"
+gdb_test "x" "or.w\t@-er3,@\\+er1" \
+ "or.w @-er3,@+er1"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@-er3,@0x9abc(:16|)" \
+ "or.w @-er3,@0x9abc:16"
+gdb_test "x" "or.w\t@-er3,@0x9abcdef0(:32|)" \
+ "or.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@er3\\+,@er1" \
+ "or.w @er3+,@er1"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "or.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@er3\\+,@-er1" \
+ "or.w @er3+,@-er1"
+gdb_test "x" "or.w\t@er3\\+,@er1\\+" \
+ "or.w @er3+,@er1+"
+gdb_test "x" "or.w\t@er3\\+,@er1-" \
+ "or.w @er3+,@er1-"
+gdb_test "x" "or.w\t@er3\\+,@\\+er1" \
+ "or.w @er3+,@+er1"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "or.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@er3\\+,@0x9abc(:16|)" \
+ "or.w @er3+,@0x9abc:16"
+gdb_test "x" "or.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "or.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@er3-,@er1" \
+ "or.w @er3-,@er1"
+gdb_test "x" "or.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "or.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@er3-,@-er1" \
+ "or.w @er3-,@-er1"
+gdb_test "x" "or.w\t@er3-,@er1\\+" \
+ "or.w @er3-,@er1+"
+gdb_test "x" "or.w\t@er3-,@er1-" \
+ "or.w @er3-,@er1-"
+gdb_test "x" "or.w\t@er3-,@\\+er1" \
+ "or.w @er3-,@+er1"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "or.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@er3-,@0x9abc(:16|)" \
+ "or.w @er3-,@0x9abc:16"
+gdb_test "x" "or.w\t@er3-,@0x9abcdef0(:32|)" \
+ "or.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\+er3,@er1" \
+ "or.w @+er3,@er1"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "or.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\+er3,@-er1" \
+ "or.w @+er3,@-er1"
+gdb_test "x" "or.w\t@\\+er3,@er1\\+" \
+ "or.w @+er3,@er1+"
+gdb_test "x" "or.w\t@\\+er3,@er1-" \
+ "or.w @+er3,@er1-"
+gdb_test "x" "or.w\t@\\+er3,@\\+er1" \
+ "or.w @+er3,@+er1"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\+er3,@0x9abc(:16|)" \
+ "or.w @+er3,@0x9abc:16"
+gdb_test "x" "or.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "or.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "or.w @(0x1234:16,er3),@er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "or.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "or.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "or.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "or.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "or.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "or.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "or.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "or.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "or.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "or.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "or.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "or.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "or.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "or.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "or.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "or.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "or.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "or.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "or.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "or.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "or.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "or.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "or.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "or.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "or.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "or.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "or.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "or.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "or.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "or.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "or.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "or.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "or.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "or.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "or.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "or.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "or.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "or.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "or.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "or.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "or.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "or.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "or.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "or.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "or.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "or.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "or.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "or.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.w\t@0x1234(:16|),@er1" \
+ "or.w @0x1234:16,@er1"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "or.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@0x1234(:16|),@-er1" \
+ "or.w @0x1234:16,@-er1"
+gdb_test "x" "or.w\t@0x1234(:16|),@er1\\+" \
+ "or.w @0x1234:16,@er1+"
+gdb_test "x" "or.w\t@0x1234(:16|),@er1-" \
+ "or.w @0x1234:16,@er1-"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\+er1" \
+ "or.w @0x1234:16,@+er1"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "or.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "or.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "or.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "or.w\t@0x12345678(:32|),@er1" \
+ "or.w @0x12345678:32,@er1"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "or.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@-er1" \
+ "or.w @0x12345678:32,@-er1"
+gdb_test "x" "or.w\t@0x12345678(:32|),@er1\\+" \
+ "or.w @0x12345678:32,@er1+"
+gdb_test "x" "or.w\t@0x12345678(:32|),@er1-" \
+ "or.w @0x12345678:32,@er1-"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\+er1" \
+ "or.w @0x12345678:32,@+er1"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "or.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "or.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "or.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "or.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "or.l\t#0x12345678(:32|),er1" \
+ "or.l #0x12345678:32,er1"
+gdb_test "x" "or.l\t#0x1234(:16|),er1" \
+ "or.l #0x1234:16,er1"
+gdb_test "x" "or.l\t#0x12345678(:32|),@er1" \
+ "or.l #0x12345678:32,@er1"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "or.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@er1\\+" \
+ "or.l #0x12345678:32,@er1+"
+gdb_test "x" "or.l\t#0x12345678(:32|),@-er1" \
+ "or.l #0x12345678:32,@-er1"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\+er1" \
+ "or.l #0x12345678:32,@+er1"
+gdb_test "x" "or.l\t#0x12345678(:32|),@er1-" \
+ "or.l #0x12345678:32,@er1-"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "or.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "or.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "or.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "or.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "or.l\t#0x1234(:16|),@er1" \
+ "or.l #0x1234:16,@er1"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "or.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "or.l\t#0x1234(:16|),@er1\\+" \
+ "or.l #0x1234:16,@er1+"
+gdb_test "x" "or.l\t#0x1234(:16|),@-er1" \
+ "or.l #0x1234:16,@-er1"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\+er1" \
+ "or.l #0x1234:16,@+er1"
+gdb_test "x" "or.l\t#0x1234(:16|),@er1-" \
+ "or.l #0x1234:16,@er1-"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "or.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "or.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "or.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "or.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "or.l\ter3,er1" \
+ "or.l er3,er1"
+gdb_test "x" "or.l\ter3,@er1" \
+ "or.l er3,@er1"
+gdb_test "x" "or.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "or.l er3,@(0xc:2,er1)"
+gdb_test "x" "or.l\ter3,@er1\\+" \
+ "or.l er3,@er1+"
+gdb_test "x" "or.l\ter3,@-er1" \
+ "or.l er3,@-er1"
+gdb_test "x" "or.l\ter3,@\\+er1" \
+ "or.l er3,@+er1"
+gdb_test "x" "or.l\ter3,@er1-" \
+ "or.l er3,@er1-"
+gdb_test "x" "or.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "or.l er3,@(0x1234:16,er1)"
+gdb_test "x" "or.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "or.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "or.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "or.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "or.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "or.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "or.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "or.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "or.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "or.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "or.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "or.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "or.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "or.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "or.l\ter3,@0x1234(:16|)" \
+ "or.l er3,@0x1234:16"
+gdb_test "x" "or.l\ter3,@0x12345678(:32|)" \
+ "or.l er3,@0x12345678:32"
+gdb_test "x" "or.l\t@er3,er1" \
+ "or.l @er3,er1"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),er1" \
+ "or.l @(0xc:2,er3),er1"
+gdb_test "x" "or.l\t@er3\\+,er1" \
+ "or.l @er3+,er1"
+gdb_test "x" "or.l\t@-er3,er1" \
+ "or.l @-er3,er1"
+gdb_test "x" "or.l\t@\\+er3,er1" \
+ "or.l @+er3,er1"
+gdb_test "x" "or.l\t@er3-,er1" \
+ "or.l @er3-,er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "or.l @(0x1234:16,er1),er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "or.l @(0x12345678:32,er1),er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "or.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "or.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "or.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "or.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "or.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "or.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "or.l\t@0x1234(:16|),er1" \
+ "or.l @0x1234:16,er1"
+gdb_test "x" "or.l\t@0x12345678(:32|),er1" \
+ "or.l @0x12345678:32,er1"
+gdb_test "x" "or.l\t@er3,@er1" \
+ "or.l @er3,@er1"
+gdb_test "x" "or.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "or.l @er3,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@er3,@-er1" \
+ "or.l @er3,@-er1"
+gdb_test "x" "or.l\t@er3,@er1\\+" \
+ "or.l @er3,@er1+"
+gdb_test "x" "or.l\t@er3,@er1-" \
+ "or.l @er3,@er1-"
+gdb_test "x" "or.l\t@er3,@\\+er1" \
+ "or.l @er3,@+er1"
+gdb_test "x" "or.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@er3,@0x9abc(:16|)" \
+ "or.l @er3,@0x9abc:16"
+gdb_test "x" "or.l\t@er3,@0x9abcdef0(:32|)" \
+ "or.l @er3,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "or.l @(0xc:2,er3),@er1"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "or.l @(0xc:2,er3),@-er1"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "or.l @(0xc:2,er3),@er1+"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "or.l @(0xc:2,er3),@er1-"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "or.l @(0xc:2,er3),@+er1"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "or.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "or.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@-er3,@er1" \
+ "or.l @-er3,@er1"
+gdb_test "x" "or.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "or.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@-er3,@-er1" \
+ "or.l @-er3,@-er1"
+gdb_test "x" "or.l\t@-er3,@er1\\+" \
+ "or.l @-er3,@er1+"
+gdb_test "x" "or.l\t@-er3,@er1-" \
+ "or.l @-er3,@er1-"
+gdb_test "x" "or.l\t@-er3,@\\+er1" \
+ "or.l @-er3,@+er1"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@-er3,@0x9abc(:16|)" \
+ "or.l @-er3,@0x9abc:16"
+gdb_test "x" "or.l\t@-er3,@0x9abcdef0(:32|)" \
+ "or.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@er3\\+,@er1" \
+ "or.l @er3+,@er1"
+gdb_test "x" "or.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "or.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@er3\\+,@-er1" \
+ "or.l @er3+,@-er1"
+gdb_test "x" "or.l\t@er3\\+,@er1\\+" \
+ "or.l @er3+,@er1+"
+gdb_test "x" "or.l\t@er3\\+,@er1-" \
+ "or.l @er3+,@er1-"
+gdb_test "x" "or.l\t@er3\\+,@\\+er1" \
+ "or.l @er3+,@+er1"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "or.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@er3\\+,@0x9abc(:16|)" \
+ "or.l @er3+,@0x9abc:16"
+gdb_test "x" "or.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "or.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@er3-,@er1" \
+ "or.l @er3-,@er1"
+gdb_test "x" "or.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "or.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@er3-,@-er1" \
+ "or.l @er3-,@-er1"
+gdb_test "x" "or.l\t@er3-,@er1\\+" \
+ "or.l @er3-,@er1+"
+gdb_test "x" "or.l\t@er3-,@er1-" \
+ "or.l @er3-,@er1-"
+gdb_test "x" "or.l\t@er3-,@\\+er1" \
+ "or.l @er3-,@+er1"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "or.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@er3-,@0x9abc(:16|)" \
+ "or.l @er3-,@0x9abc:16"
+gdb_test "x" "or.l\t@er3-,@0x9abcdef0(:32|)" \
+ "or.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\+er3,@er1" \
+ "or.l @+er3,@er1"
+gdb_test "x" "or.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "or.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\+er3,@-er1" \
+ "or.l @+er3,@-er1"
+gdb_test "x" "or.l\t@\\+er3,@er1\\+" \
+ "or.l @+er3,@er1+"
+gdb_test "x" "or.l\t@\\+er3,@er1-" \
+ "or.l @+er3,@er1-"
+gdb_test "x" "or.l\t@\\+er3,@\\+er1" \
+ "or.l @+er3,@+er1"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "or.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\+er3,@0x9abc(:16|)" \
+ "or.l @+er3,@0x9abc:16"
+gdb_test "x" "or.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "or.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "or.l @(0x1234:16,er3),@er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "or.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "or.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "or.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "or.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "or.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "or.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "or.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "or.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "or.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "or.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "or.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "or.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "or.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "or.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "or.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "or.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "or.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "or.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "or.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "or.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "or.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "or.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "or.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "or.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "or.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "or.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "or.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "or.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "or.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "or.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "or.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "or.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "or.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "or.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "or.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "or.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "or.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "or.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "or.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "or.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "or.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "or.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "or.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "or.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "or.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "or.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "or.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "or.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "or.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "or.l\t@0x1234(:16|),@er1" \
+ "or.l @0x1234:16,@er1"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "or.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@0x1234(:16|),@-er1" \
+ "or.l @0x1234:16,@-er1"
+gdb_test "x" "or.l\t@0x1234(:16|),@er1\\+" \
+ "or.l @0x1234:16,@er1+"
+gdb_test "x" "or.l\t@0x1234(:16|),@er1-" \
+ "or.l @0x1234:16,@er1-"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\+er1" \
+ "or.l @0x1234:16,@+er1"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "or.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "or.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "or.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "or.l\t@0x12345678(:32|),@er1" \
+ "or.l @0x12345678:32,@er1"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "or.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@-er1" \
+ "or.l @0x12345678:32,@-er1"
+gdb_test "x" "or.l\t@0x12345678(:32|),@er1\\+" \
+ "or.l @0x12345678:32,@er1+"
+gdb_test "x" "or.l\t@0x12345678(:32|),@er1-" \
+ "or.l @0x12345678:32,@er1-"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\+er1" \
+ "or.l @0x12345678:32,@+er1"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "or.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "or.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "or.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "or.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "or.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "or.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "or.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "or.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "or.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "or.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "or.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "or.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t08_or.s b/gdb/testsuite/gdb.disasm/t08_or.s
new file mode 100644
index 0000000..22d9f04
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t08_or.s
@@ -0,0 +1,972 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;log_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ or.b #0x12:8,r1h ;c112
+ or.b #0x12:8,@er1 ;7d10c012
+ or.b #0x12:8,@(0x3:2,er1) ;01776818c012
+ or.b #0x12:8,@er1+ ;01746c18c012
+ or.b #0x12:8,@-er1 ;01776c18c012
+ or.b #0x12:8,@+er1 ;01756c18c012
+ or.b #0x12:8,@er1- ;01766c18c012
+ or.b #0x12:8,@(0x1234:16,er1) ;01746e181234c012
+ or.b #0x12:8,@(0x12345678:32,er1) ;78146a2812345678c012
+ or.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234c012
+ or.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234c012
+ or.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234c012
+ or.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678c012
+ or.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678c012
+ or.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678c012
+ or.b #0x12:8,@0xffffff12:8 ;7f12c012
+ or.b #0x12:8,@0x1234:16 ;6a181234c012
+ or.b #0x12:8,@0x12345678:32 ;6a3812345678c012
+
+ or.b r3h,r1h ;1431
+
+ or.b r3h,@er1 ;7d101430
+ or.b r3h,@(0x3:2,er1) ;01793143
+ or.b r3h,@er1+ ;01798143
+ or.b r3h,@-er1 ;0179b143
+ or.b r3h,@+er1 ;01799143
+ or.b r3h,@er1- ;0179a143
+ or.b r3h,@(0x1234:16,er1) ;0179c1431234
+ or.b r3h,@(0x12345678:32,er1) ;0179c94312345678
+ or.b r3h,@(0x1234:16,r2l.b) ;0179d2431234
+ or.b r3h,@(0x1234:16,r2.w) ;0179e2431234
+ or.b r3h,@(0x1234:16,er2.l) ;0179f2431234
+ or.b r3h,@(0x12345678:32,r2l.b) ;0179da4312345678
+ or.b r3h,@(0x12345678:32,r2.w) ;0179ea4312345678
+ or.b r3h,@(0x12345678:32,er2.l) ;0179fa4312345678
+ or.b r3h,@0xffffff12:8 ;7f121430
+ or.b r3h,@0x1234:16 ;6a1812341430
+ or.b r3h,@0x12345678:32 ;6a38123456781430
+
+ or.b @er3,r1h ;7c301401
+ or.b @(0x3:2,er3),r1h ;017a3341
+ or.b @er3+,r1h ;017a8341
+ or.b @-er3,r1h ;017ab341
+ or.b @+er3,r1h ;017a9341
+ or.b @er3-,r1h ;017aa341
+ or.b @(0x1234:16,er1),r1h ;017ac1411234
+ or.b @(0x12345678:32,er1),r1h ;017ac94112345678
+ or.b @(0x1234:16,r2l.b),r1h ;017ad2411234
+ or.b @(0x1234:16,r2.w),r1h ;017ae2411234
+ or.b @(0x1234:16,er2.l),r1h ;017af2411234
+ or.b @(0x12345678:32,r2l.b),r1h ;017ada4112345678
+ or.b @(0x12345678:32,r2.w),r1h ;017aea4112345678
+ or.b @(0x12345678:32,er2.l),r1h ;017afa4112345678
+ or.b @0xffffff12:8,r1h ;7e121401
+ or.b @0x1234:16,r1h ;6a1012341401
+ or.b @0x12345678:32,r1h ;6a30123456781401
+
+ or.b @er3,@er1 ;7c350140
+ or.b @er3,@(3:2,er1) ;7c353140
+ or.b @er3,@-er1 ;7c35b140
+ or.b @er3,@er1+ ;7c358140
+ or.b @er3,@er1- ;7c35a140
+ or.b @er3,@+er1 ;7c359140
+ or.b @er3,@(0xffff9abc:16,er1) ;7c35c1409abc
+ or.b @er3,@(0x9abcdef0:32,er1) ;7c35c9409abcdef0
+ or.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2409abc
+ or.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2409abc
+ or.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2409abc
+ or.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da409abcdef0
+ or.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea409abcdef0
+ or.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa409abcdef0
+ or.b @er3,@0xffff9abc:16 ;7c3540409abc
+ or.b @er3,@0x9abcdef0:32 ;7c3548409abcdef0
+
+ or.b @-er3,@er1 ;01776c3c0140
+ or.b @-er3,@(3:2,er1) ;01776c3c3140
+ or.b @-er3,@-er1 ;01776c3cb140
+ or.b @-er3,@er1+ ;01776c3c8140
+ or.b @-er3,@er1- ;01776c3ca140
+ or.b @-er3,@+er1 ;01776c3c9140
+ or.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1409abc
+ or.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9409abcdef0
+ or.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2409abc
+ or.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2409abc
+ or.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2409abc
+ or.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda409abcdef0
+ or.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea409abcdef0
+ or.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa409abcdef0
+ or.b @-er3,@0xffff9abc:16 ;01776c3c40409abc
+ or.b @-er3,@0x9abcdef0:32 ;01776c3c48409abcdef0
+
+ or.b @er3+,@er1 ;01746c3c0140
+ or.b @er3+,@(3:2,er1) ;01746c3c3140
+ or.b @er3+,@-er1 ;01746c3cb140
+ or.b @er3+,@er1+ ;01746c3c8140
+ or.b @er3+,@er1- ;01746c3ca140
+ or.b @er3+,@+er1 ;01746c3c9140
+ or.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1409abc
+ or.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9409abcdef0
+ or.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2409abc
+ or.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2409abc
+ or.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2409abc
+ or.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda409abcdef0
+ or.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea409abcdef0
+ or.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa409abcdef0
+ or.b @er3+,@0xffff9abc:16 ;01746c3c40409abc
+ or.b @er3+,@0x9abcdef0:32 ;01746c3c48409abcdef0
+
+ or.b @er3-,@er1 ;01766c3c0140
+ or.b @er3-,@(3:2,er1) ;01766c3c3140
+ or.b @er3-,@-er1 ;01766c3cb140
+ or.b @er3-,@er1+ ;01766c3c8140
+ or.b @er3-,@er1- ;01766c3ca140
+ or.b @er3-,@+er1 ;01766c3c9140
+ or.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1409abc
+ or.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9409abcdef0
+ or.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2409abc
+ or.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2409abc
+ or.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2409abc
+ or.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda409abcdef0
+ or.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea409abcdef0
+ or.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa409abcdef0
+ or.b @er3-,@0xffff9abc:16 ;01766c3c40409abc
+ or.b @er3-,@0x9abcdef0:32 ;01766c3c48409abcdef0
+
+ or.b @+er3,@er1 ;01756c3c0140
+ or.b @+er3,@(3:2,er1) ;01756c3c3140
+ or.b @+er3,@-er1 ;01756c3cb140
+ or.b @+er3,@er1+ ;01756c3c8140
+ or.b @+er3,@er1- ;01756c3ca140
+ or.b @+er3,@+er1 ;01756c3c9140
+ or.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1409abc
+ or.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9409abcdef0
+ or.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2409abc
+ or.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2409abc
+ or.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2409abc
+ or.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda409abcdef0
+ or.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea409abcdef0
+ or.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa409abcdef0
+ or.b @+er3,@0xffff9abc:16 ;01756c3c40409abc
+ or.b @+er3,@0x9abcdef0:32 ;01756c3c48409abcdef0
+
+ or.b @(0x1234:16,er3),@er1 ;01746e3c12340140
+ or.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343140
+ or.b @(0x1234:16,er3),@-er1 ;01746e3c1234b140
+ or.b @(0x1234:16,er3),@er1+ ;01746e3c12348140
+ or.b @(0x1234:16,er3),@er1- ;01746e3c1234a140
+ or.b @(0x1234:16,er3),@+er1 ;01746e3c12349140
+ or.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1409abc
+ or.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9409abcdef0
+ or.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2409abc
+ or.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2409abc
+ or.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2409abc
+ or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da409abcdef0
+ or.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea409abcdef0
+ or.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa409abcdef0
+ or.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440409abc
+ or.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448409abcdef0
+
+ or.b @(0x12345678:32,er3),@er1 ;78346a2c123456780140
+ or.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783140
+ or.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b140
+ or.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788140
+ or.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a140
+ or.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789140
+ or.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1409abc
+ or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9409abcdef0
+ or.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2409abc
+ or.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2409abc
+ or.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2409abc
+ or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da409abcdef0
+ or.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea409abcdef0
+ or.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa409abcdef0
+ or.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840409abc
+ or.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848409abcdef0
+
+ or.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340140
+ or.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343140
+ or.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b140
+ or.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348140
+ or.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a140
+ or.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349140
+ or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1409abc
+ or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9409abcdef0
+ or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2409abc
+ or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2409abc
+ or.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2409abc
+ or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da409abcdef0
+ or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea409abcdef0
+ or.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa409abcdef0
+ or.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440409abc
+ or.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448409abcdef0
+
+ or.b @(0x1234:16,r3.w),@er1 ;01766e3c12340140
+ or.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343140
+ or.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b140
+ or.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348140
+ or.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a140
+ or.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349140
+ or.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1409abc
+ or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9409abcdef0
+ or.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2409abc
+ or.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2409abc
+ or.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2409abc
+ or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da409abcdef0
+ or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea409abcdef0
+ or.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa409abcdef0
+ or.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440409abc
+ or.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448409abcdef0
+
+ or.b @(0x1234:16,er3.l),@er1 ;01776e3c12340140
+ or.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343140
+ or.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b140
+ or.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348140
+ or.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a140
+ or.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349140
+ or.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1409abc
+ or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9409abcdef0
+ or.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2409abc
+ or.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2409abc
+ or.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2409abc
+ or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da409abcdef0
+ or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea409abcdef0
+ or.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa409abcdef0
+ or.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440409abc
+ or.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448409abcdef0
+
+ or.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780140
+ or.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783140
+ or.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b140
+ or.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788140
+ or.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a140
+ or.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789140
+ or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1409abc
+ or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9409abcdef0
+ or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2409abc
+ or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2409abc
+ or.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2409abc
+ or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da409abcdef0
+ or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea409abcdef0
+ or.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa409abcdef0
+ or.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840409abc
+ or.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848409abcdef0
+
+ or.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780140
+ or.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783140
+ or.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b140
+ or.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788140
+ or.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a140
+ or.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789140
+ or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1409abc
+ or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9409abcdef0
+ or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2409abc
+ or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2409abc
+ or.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2409abc
+ or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da409abcdef0
+ or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea409abcdef0
+ or.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa409abcdef0
+ or.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840409abc
+ or.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848409abcdef0
+
+ or.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780140
+ or.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783140
+ or.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b140
+ or.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788140
+ or.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a140
+ or.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789140
+ or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1409abc
+ or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9409abcdef0
+ or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2409abc
+ or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2409abc
+ or.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2409abc
+ or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da409abcdef0
+ or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea409abcdef0
+ or.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa409abcdef0
+ or.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840409abc
+ or.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848409abcdef0
+
+ or.b @0x1234:16,@er1 ;6a1512340140
+ or.b @0x1234:16,@(3:2,er1) ;6a1512343140
+ or.b @0x1234:16,@-er1 ;6a151234b140
+ or.b @0x1234:16,@er1+ ;6a1512348140
+ or.b @0x1234:16,@er1- ;6a151234a140
+ or.b @0x1234:16,@+er1 ;6a1512349140
+ or.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1409abc
+ or.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9409abcdef0
+ or.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2409abc
+ or.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2409abc
+ or.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2409abc
+ or.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da409abcdef0
+ or.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea409abcdef0
+ or.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa409abcdef0
+ or.b @0x1234:16,@0xffff9abc:16 ;6a15123440409abc
+ or.b @0x1234:16,@0x9abcdef0:32 ;6a15123448409abcdef0
+
+ or.b @0x12345678:32,@er1 ;6a35123456780140
+ or.b @0x12345678:32,@(3:2,er1) ;6a35123456783140
+ or.b @0x12345678:32,@-er1 ;6a3512345678b140
+ or.b @0x12345678:32,@er1+ ;6a35123456788140
+ or.b @0x12345678:32,@er1- ;6a3512345678a140
+ or.b @0x12345678:32,@+er1 ;6a35123456789140
+ or.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1409abc
+ or.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9409abcdef0
+ or.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2409abc
+ or.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2409abc
+ or.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2409abc
+ or.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da409abcdef0
+ or.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea409abcdef0
+ or.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa409abcdef0
+ or.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840409abc
+ or.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848409abcdef0
+
+ or.w #0x1234:16,r1 ;79411234
+ or.w #0x1234:16,@er1 ;015e01401234
+ or.w #0x1234:16,@(0x6:2,er1) ;015e31401234
+ or.w #0x1234:16,@er1+ ;015e81401234
+ or.w #0x1234:16,@-er1 ;015eb1401234
+ or.w #0x1234:16,@+er1 ;015e91401234
+ or.w #0x1234:16,@er1- ;015ea1401234
+ or.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1409abc1234
+ or.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9409abcdef01234
+ or.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2409abc1234
+ or.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2409abc1234
+ or.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2409abc1234
+ or.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda409abcdef01234
+ or.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea409abcdef01234
+ or.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa409abcdef01234
+ or.w #0x1234:16,@0xffff9abc:16 ;015e40409abc1234
+ or.w #0x1234:16,@0x9abcdef0:32 ;015e48409abcdef01234
+
+ or.w r3,r1 ;6431
+
+ or.w r3,@er1 ;7d906430
+ or.w r3,@(0x6:2,er1) ;01593143
+ or.w r3,@er1+ ;01598143
+ or.w r3,@-er1 ;0159b143
+ or.w r3,@+er1 ;01599143
+ or.w r3,@er1- ;0159a143
+ or.w r3,@(0x1234:16,er1) ;0159c1431234
+ or.w r3,@(0x12345678:32,er1) ;0159c94312345678
+ or.w r3,@(0x1234:16,r2l.b) ;0159d2431234
+ or.w r3,@(0x1234:16,r2.w) ;0159e2431234
+ or.w r3,@(0x1234:16,er2.l) ;0159f2431234
+ or.w r3,@(0x12345678:32,r2l.b) ;0159da4312345678
+ or.w r3,@(0x12345678:32,r2.w) ;0159ea4312345678
+ or.w r3,@(0x12345678:32,er2.l) ;0159fa4312345678
+ or.w r3,@0x1234:16 ;6b1812346430
+ or.w r3,@0x12345678:32 ;6b38123456786430
+
+ or.w @er3,r1 ;7cb06401
+ or.w @(0x6:2,er3),r1 ;015a3341
+ or.w @er3+,r1 ;015a8341
+ or.w @-er3,r1 ;015ab341
+ or.w @+er3,r1 ;015a9341
+ or.w @er3-,r1 ;015aa341
+ or.w @(0x1234:16,er1),r1 ;015ac1411234
+ or.w @(0x12345678:32,er1),r1 ;015ac94112345678
+ or.w @(0x1234:16,r2l.b),r1 ;015ad2411234
+ or.w @(0x1234:16,r2.w),r1 ;015ae2411234
+ or.w @(0x1234:16,er2.l),r1 ;015af2411234
+ or.w @(0x12345678:32,r2l.b),r1 ;015ada4112345678
+ or.w @(0x12345678:32,r2.w),r1 ;015aea4112345678
+ or.w @(0x12345678:32,er2.l),r1 ;015afa4112345678
+ or.w @0x1234:16,r1 ;6b1012346401
+ or.w @0x12345678:32,r1 ;6b30123456786401
+
+ or.w @er3,@er1 ;7cb50140
+ or.w @er3,@(6:2,er1) ;7cb53140
+ or.w @er3,@-er1 ;7cb5b140
+ or.w @er3,@er1+ ;7cb58140
+ or.w @er3,@er1- ;7cb5a140
+ or.w @er3,@+er1 ;7cb59140
+ or.w @er3,@(0xffff9abc:16,er1) ;7cb5c1409abc
+ or.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9409abcdef0
+ or.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2409abc
+ or.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2409abc
+ or.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2409abc
+ or.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da409abcdef0
+ or.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea409abcdef0
+ or.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa409abcdef0
+ or.w @er3,@0xffff9abc:16 ;7cb540409abc
+ or.w @er3,@0x9abcdef0:32 ;7cb548409abcdef0
+
+ or.w @-er3,@er1 ;01576d3c0140
+ or.w @-er3,@(6:2,er1) ;01576d3c3140
+ or.w @-er3,@-er1 ;01576d3cb140
+ or.w @-er3,@er1+ ;01576d3c8140
+ or.w @-er3,@er1- ;01576d3ca140
+ or.w @-er3,@+er1 ;01576d3c9140
+ or.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1409abc
+ or.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9409abcdef0
+ or.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2409abc
+ or.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2409abc
+ or.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2409abc
+ or.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda409abcdef0
+ or.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea409abcdef0
+ or.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa409abcdef0
+ or.w @-er3,@0xffff9abc:16 ;01576d3c40409abc
+ or.w @-er3,@0x9abcdef0:32 ;01576d3c48409abcdef0
+
+ or.w @er3+,@er1 ;01546d3c0140
+ or.w @er3+,@(6:2,er1) ;01546d3c3140
+ or.w @er3+,@-er1 ;01546d3cb140
+ or.w @er3+,@er1+ ;01546d3c8140
+ or.w @er3+,@er1- ;01546d3ca140
+ or.w @er3+,@+er1 ;01546d3c9140
+ or.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1409abc
+ or.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9409abcdef0
+ or.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2409abc
+ or.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2409abc
+ or.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2409abc
+ or.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda409abcdef0
+ or.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea409abcdef0
+ or.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa409abcdef0
+ or.w @er3+,@0xffff9abc:16 ;01546d3c40409abc
+ or.w @er3+,@0x9abcdef0:32 ;01546d3c48409abcdef0
+
+ or.w @er3-,@er1 ;01566d3c0140
+ or.w @er3-,@(6:2,er1) ;01566d3c3140
+ or.w @er3-,@-er1 ;01566d3cb140
+ or.w @er3-,@er1+ ;01566d3c8140
+ or.w @er3-,@er1- ;01566d3ca140
+ or.w @er3-,@+er1 ;01566d3c9140
+ or.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1409abc
+ or.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9409abcdef0
+ or.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2409abc
+ or.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2409abc
+ or.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2409abc
+ or.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda409abcdef0
+ or.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea409abcdef0
+ or.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa409abcdef0
+ or.w @er3-,@0xffff9abc:16 ;01566d3c40409abc
+ or.w @er3-,@0x9abcdef0:32 ;01566d3c48409abcdef0
+
+ or.w @+er3,@er1 ;01556d3c0140
+ or.w @+er3,@(6:2,er1) ;01556d3c3140
+ or.w @+er3,@-er1 ;01556d3cb140
+ or.w @+er3,@er1+ ;01556d3c8140
+ or.w @+er3,@er1- ;01556d3ca140
+ or.w @+er3,@+er1 ;01556d3c9140
+ or.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1409abc
+ or.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9409abcdef0
+ or.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2409abc
+ or.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2409abc
+ or.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2409abc
+ or.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda409abcdef0
+ or.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea409abcdef0
+ or.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa409abcdef0
+ or.w @+er3,@0xffff9abc:16 ;01556d3c40409abc
+ or.w @+er3,@0x9abcdef0:32 ;01556d3c48409abcdef0
+
+ or.w @(0x1234:16,er3),@er1 ;01546f3c12340140
+ or.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343140
+ or.w @(0x1234:16,er3),@-er1 ;01546f3c1234b140
+ or.w @(0x1234:16,er3),@er1+ ;01546f3c12348140
+ or.w @(0x1234:16,er3),@er1- ;01546f3c1234a140
+ or.w @(0x1234:16,er3),@+er1 ;01546f3c12349140
+ or.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1409abc
+ or.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9409abcdef0
+ or.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2409abc
+ or.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2409abc
+ or.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2409abc
+ or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da409abcdef0
+ or.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea409abcdef0
+ or.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa409abcdef0
+ or.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440409abc
+ or.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448409abcdef0
+
+ or.w @(0x12345678:32,er3),@er1 ;78346b2c123456780140
+ or.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783140
+ or.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b140
+ or.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788140
+ or.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a140
+ or.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789140
+ or.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1409abc
+ or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9409abcdef0
+ or.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2409abc
+ or.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2409abc
+ or.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2409abc
+ or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da409abcdef0
+ or.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea409abcdef0
+ or.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa409abcdef0
+ or.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840409abc
+ or.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848409abcdef0
+
+ or.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340140
+ or.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343140
+ or.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b140
+ or.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348140
+ or.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a140
+ or.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349140
+ or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1409abc
+ or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9409abcdef0
+ or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2409abc
+ or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2409abc
+ or.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2409abc
+ or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da409abcdef0
+ or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea409abcdef0
+ or.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa409abcdef0
+ or.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440409abc
+ or.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448409abcdef0
+
+ or.w @(0x1234:16,r3.w),@er1 ;01566f3c12340140
+ or.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343140
+ or.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b140
+ or.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348140
+ or.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a140
+ or.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349140
+ or.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1409abc
+ or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9409abcdef0
+ or.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2409abc
+ or.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2409abc
+ or.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2409abc
+ or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da409abcdef0
+ or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea409abcdef0
+ or.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa409abcdef0
+ or.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440409abc
+ or.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448409abcdef0
+
+ or.w @(0x1234:16,er3.l),@er1 ;01576f3c12340140
+ or.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343140
+ or.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b140
+ or.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348140
+ or.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a140
+ or.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349140
+ or.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1409abc
+ or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9409abcdef0
+ or.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2409abc
+ or.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2409abc
+ or.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2409abc
+ or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da409abcdef0
+ or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea409abcdef0
+ or.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa409abcdef0
+ or.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440409abc
+ or.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448409abcdef0
+
+ or.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780140
+ or.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783140
+ or.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b140
+ or.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788140
+ or.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a140
+ or.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789140
+ or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1409abc
+ or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9409abcdef0
+ or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2409abc
+ or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2409abc
+ or.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2409abc
+ or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da409abcdef0
+ or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea409abcdef0
+ or.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa409abcdef0
+ or.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840409abc
+ or.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848409abcdef0
+
+ or.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780140
+ or.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783140
+ or.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b140
+ or.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788140
+ or.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a140
+ or.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789140
+ or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1409abc
+ or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9409abcdef0
+ or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2409abc
+ or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2409abc
+ or.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2409abc
+ or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da409abcdef0
+ or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea409abcdef0
+ or.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa409abcdef0
+ or.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840409abc
+ or.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848409abcdef0
+
+ or.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780140
+ or.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783140
+ or.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b140
+ or.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788140
+ or.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a140
+ or.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789140
+ or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1409abc
+ or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9409abcdef0
+ or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2409abc
+ or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2409abc
+ or.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2409abc
+ or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da409abcdef0
+ or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea409abcdef0
+ or.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa409abcdef0
+ or.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840409abc
+ or.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848409abcdef0
+
+ or.w @0x1234:16,@er1 ;6b1512340140
+ or.w @0x1234:16,@(6:2,er1) ;6b1512343140
+ or.w @0x1234:16,@-er1 ;6b151234b140
+ or.w @0x1234:16,@er1+ ;6b1512348140
+ or.w @0x1234:16,@er1- ;6b151234a140
+ or.w @0x1234:16,@+er1 ;6b1512349140
+ or.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1409abc
+ or.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9409abcdef0
+ or.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2409abc
+ or.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2409abc
+ or.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2409abc
+ or.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da409abcdef0
+ or.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea409abcdef0
+ or.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa409abcdef0
+ or.w @0x1234:16,@0xffff9abc:16 ;6b15123440409abc
+ or.w @0x1234:16,@0x9abcdef0:32 ;6b15123448409abcdef0
+
+ or.w @0x12345678:32,@er1 ;6b35123456780140
+ or.w @0x12345678:32,@(6:2,er1) ;6b35123456783140
+ or.w @0x12345678:32,@-er1 ;6b3512345678b140
+ or.w @0x12345678:32,@er1+ ;6b35123456788140
+ or.w @0x12345678:32,@er1- ;6b3512345678a140
+ or.w @0x12345678:32,@+er1 ;6b35123456789140
+ or.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1409abc
+ or.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9409abcdef0
+ or.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2409abc
+ or.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2409abc
+ or.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2409abc
+ or.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da409abcdef0
+ or.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea409abcdef0
+ or.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa409abcdef0
+ or.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840409abc
+ or.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848409abcdef0
+
+ or.l #0x12345678:32,er1 ;7a4112345678
+ or.l #0x1234:16,er1 ;7a491234
+ or.l #0x12345678:32,@er1 ;010e014812345678
+ or.l #0x12345678:32,@(0xc:2,er1) ;010e314812345678
+ or.l #0x12345678:32,@er1+ ;010e814812345678
+ or.l #0x12345678:32,@-er1 ;010eb14812345678
+ or.l #0x12345678:32,@+er1 ;010e914812345678
+ or.l #0x12345678:32,@er1- ;010ea14812345678
+ or.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1489abc12345678
+ or.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9489abcdef012345678
+ or.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2489abc12345678
+ or.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2489abc12345678
+ or.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2489abc12345678
+ or.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda489abcdef012345678
+ or.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea489abcdef012345678
+ or.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa489abcdef012345678
+ or.l #0x12345678:32,@0xffff9abc:16 ;010e40489abc12345678
+ or.l #0x12345678:32,@0x9abcdef0:32 ;010e48489abcdef012345678
+ or.l #0x1234:16,@er1 ;010e01401234
+ or.l #0x1234:16,@(0xc:2,er1) ;010e31401234
+ or.l #0x1234:16,@er1+ ;010e81401234
+ or.l #0x1234:16,@-er1 ;010eb1401234
+ or.l #0x1234:16,@+er1 ;010e91401234
+ or.l #0x1234:16,@er1- ;010ea1401234
+ or.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1409abc1234
+ or.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9409abcdef01234
+ or.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2409abc1234
+ or.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2409abc1234
+ or.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2409abc1234
+ or.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda409abcdef01234
+ or.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea409abcdef01234
+ or.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa409abcdef01234
+ or.l #0x1234:16,@0xffff9abc:16 ;010e40409abc1234
+ or.l #0x1234:16,@0x9abcdef0:32 ;010e48409abcdef01234
+
+ or.l er3,er1 ;01f06431
+
+ or.l er3,@er1 ;01090143
+ or.l er3,@(0xc:2,er1) ;01093143
+ or.l er3,@er1+ ;01098143
+ or.l er3,@-er1 ;0109b143
+ or.l er3,@+er1 ;01099143
+ or.l er3,@er1- ;0109a143
+ or.l er3,@(0x1234:16,er1) ;0109c1431234
+ or.l er3,@(0x12345678:32,er1) ;0109c94312345678
+ or.l er3,@(0x1234:16,r2l.b) ;0109d2431234
+ or.l er3,@(0x1234:16,r2.w) ;0109e2431234
+ or.l er3,@(0x1234:16,er2.l) ;0109f2431234
+ or.l er3,@(0x12345678:32,r2l.b) ;0109da4312345678
+ or.l er3,@(0x12345678:32,r2.w) ;0109ea4312345678
+ or.l er3,@(0x12345678:32,er2.l) ;0109fa4312345678
+ or.l er3,@0x1234:16 ;010940431234
+ or.l er3,@0x12345678:32 ;0109484312345678
+
+ or.l @er3,er1 ;010a0341
+ or.l @(0xc:2,er3),er1 ;010a3341
+ or.l @er3+,er1 ;010a8341
+ or.l @-er3,er1 ;010ab341
+ or.l @+er3,er1 ;010a9341
+ or.l @er3-,er1 ;010aa341
+ or.l @(0x1234:16,er1),er1 ;010ac1411234
+ or.l @(0x12345678:32,er1),er1 ;010ac94112345678
+ or.l @(0x1234:16,r2l.b),er1 ;010ad2411234
+ or.l @(0x1234:16,r2.w),er1 ;010ae2411234
+ or.l @(0x1234:16,er2.l),er1 ;010af2411234
+ or.l @(0x12345678:32,r2l.b),er1 ;010ada4112345678
+ or.l @(0x12345678:32,r2.w),er1 ;010aea4112345678
+ or.l @(0x12345678:32,er2.l),er1 ;010afa4112345678
+ or.l @0x1234:16,er1 ;010a40411234
+ or.l @0x12345678:32,er1 ;010a484112345678
+
+ or.l @er3,@er1 ;0104693c0140
+ or.l @er3,@(0xc:2,er1) ;0104693c3140
+ or.l @er3,@-er1 ;0104693cb140
+ or.l @er3,@er1+ ;0104693c8140
+ or.l @er3,@er1- ;0104693ca140
+ or.l @er3,@+er1 ;0104693c9140
+ or.l @er3,@(0xffff9abc:16,er1) ;0104693cc1409abc
+ or.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9409abcdef0
+ or.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2409abc
+ or.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2409abc
+ or.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2409abc
+ or.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda409abcdef0
+ or.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea409abcdef0
+ or.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa409abcdef0
+ or.l @er3,@0xffff9abc:16 ;0104693c40409abc
+ or.l @er3,@0x9abcdef0:32 ;0104693c48409abcdef0
+
+ or.l @(0xc:2,er3),@er1 ;0107693c0140
+ or.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3140
+ or.l @(0xc:2,er3),@-er1 ;0107693cb140
+ or.l @(0xc:2,er3),@er1+ ;0107693c8140
+ or.l @(0xc:2,er3),@er1- ;0107693ca140
+ or.l @(0xc:2,er3),@+er1 ;0107693c9140
+ or.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1409abc
+ or.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9409abcdef0
+ or.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2409abc
+ or.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2409abc
+ or.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2409abc
+ or.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda409abcdef0
+ or.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea409abcdef0
+ or.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa409abcdef0
+ or.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40409abc
+ or.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48409abcdef0
+
+ or.l @-er3,@er1 ;01076d3c0140
+ or.l @-er3,@(0xc:2,er1) ;01076d3c3140
+ or.l @-er3,@-er1 ;01076d3cb140
+ or.l @-er3,@er1+ ;01076d3c8140
+ or.l @-er3,@er1- ;01076d3ca140
+ or.l @-er3,@+er1 ;01076d3c9140
+ or.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1409abc
+ or.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9409abcdef0
+ or.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2409abc
+ or.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2409abc
+ or.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2409abc
+ or.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda409abcdef0
+ or.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea409abcdef0
+ or.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa409abcdef0
+ or.l @-er3,@0xffff9abc:16 ;01076d3c40409abc
+ or.l @-er3,@0x9abcdef0:32 ;01076d3c48409abcdef0
+
+ or.l @er3+,@er1 ;01046d3c0140
+ or.l @er3+,@(0xc:2,er1) ;01046d3c3140
+ or.l @er3+,@-er1 ;01046d3cb140
+ or.l @er3+,@er1+ ;01046d3c8140
+ or.l @er3+,@er1- ;01046d3ca140
+ or.l @er3+,@+er1 ;01046d3c9140
+ or.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1409abc
+ or.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9409abcdef0
+ or.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2409abc
+ or.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2409abc
+ or.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2409abc
+ or.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda409abcdef0
+ or.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea409abcdef0
+ or.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa409abcdef0
+ or.l @er3+,@0xffff9abc:16 ;01046d3c40409abc
+ or.l @er3+,@0x9abcdef0:32 ;01046d3c48409abcdef0
+
+ or.l @er3-,@er1 ;01066d3c0140
+ or.l @er3-,@(0xc:2,er1) ;01066d3c3140
+ or.l @er3-,@-er1 ;01066d3cb140
+ or.l @er3-,@er1+ ;01066d3c8140
+ or.l @er3-,@er1- ;01066d3ca140
+ or.l @er3-,@+er1 ;01066d3c9140
+ or.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1409abc
+ or.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9409abcdef0
+ or.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2409abc
+ or.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2409abc
+ or.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2409abc
+ or.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda409abcdef0
+ or.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea409abcdef0
+ or.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa409abcdef0
+ or.l @er3-,@0xffff9abc:16 ;01066d3c40409abc
+ or.l @er3-,@0x9abcdef0:32 ;01066d3c48409abcdef0
+
+ or.l @+er3,@er1 ;01056d3c0140
+ or.l @+er3,@(0xc:2,er1) ;01056d3c3140
+ or.l @+er3,@-er1 ;01056d3cb140
+ or.l @+er3,@er1+ ;01056d3c8140
+ or.l @+er3,@er1- ;01056d3ca140
+ or.l @+er3,@+er1 ;01056d3c9140
+ or.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1409abc
+ or.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9409abcdef0
+ or.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2409abc
+ or.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2409abc
+ or.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2409abc
+ or.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda409abcdef0
+ or.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea409abcdef0
+ or.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa409abcdef0
+ or.l @+er3,@0xffff9abc:16 ;01056d3c40409abc
+ or.l @+er3,@0x9abcdef0:32 ;01056d3c48409abcdef0
+
+ or.l @(0x1234:16,er3),@er1 ;01046f3c12340140
+ or.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343140
+ or.l @(0x1234:16,er3),@-er1 ;01046f3c1234b140
+ or.l @(0x1234:16,er3),@er1+ ;01046f3c12348140
+ or.l @(0x1234:16,er3),@er1- ;01046f3c1234a140
+ or.l @(0x1234:16,er3),@+er1 ;01046f3c12349140
+ or.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1409abc
+ or.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9409abcdef0
+ or.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2409abc
+ or.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2409abc
+ or.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2409abc
+ or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da409abcdef0
+ or.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea409abcdef0
+ or.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa409abcdef0
+ or.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440409abc
+ or.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448409abcdef0
+
+ or.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780140
+ or.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783140
+ or.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b140
+ or.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788140
+ or.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a140
+ or.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789140
+ or.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1409abc
+ or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9409abcdef0
+ or.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2409abc
+ or.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2409abc
+ or.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2409abc
+ or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da409abcdef0
+ or.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea409abcdef0
+ or.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa409abcdef0
+ or.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840409abc
+ or.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848409abcdef0
+
+ or.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340140
+ or.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343140
+ or.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b140
+ or.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348140
+ or.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a140
+ or.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349140
+ or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1409abc
+ or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9409abcdef0
+ or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2409abc
+ or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2409abc
+ or.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2409abc
+ or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da409abcdef0
+ or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea409abcdef0
+ or.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa409abcdef0
+ or.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440409abc
+ or.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448409abcdef0
+
+ or.l @(0x1234:16,r3.w),@er1 ;01066f3c12340140
+ or.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343140
+ or.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b140
+ or.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348140
+ or.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a140
+ or.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349140
+ or.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1409abc
+ or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9409abcdef0
+ or.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2409abc
+ or.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2409abc
+ or.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2409abc
+ or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da409abcdef0
+ or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea409abcdef0
+ or.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa409abcdef0
+ or.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440409abc
+ or.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448409abcdef0
+
+ or.l @(0x1234:16,er3.l),@er1 ;01076f3c12340140
+ or.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343140
+ or.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b140
+ or.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348140
+ or.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a140
+ or.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349140
+ or.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1409abc
+ or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9409abcdef0
+ or.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2409abc
+ or.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2409abc
+ or.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2409abc
+ or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da409abcdef0
+ or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea409abcdef0
+ or.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa409abcdef0
+ or.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440409abc
+ or.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448409abcdef0
+
+ or.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780140
+ or.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783140
+ or.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b140
+ or.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788140
+ or.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a140
+ or.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789140
+ or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1409abc
+ or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9409abcdef0
+ or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2409abc
+ or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2409abc
+ or.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2409abc
+ or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da409abcdef0
+ or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea409abcdef0
+ or.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa409abcdef0
+ or.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840409abc
+ or.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848409abcdef0
+
+ or.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780140
+ or.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783140
+ or.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b140
+ or.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788140
+ or.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a140
+ or.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789140
+ or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1409abc
+ or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9409abcdef0
+ or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2409abc
+ or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2409abc
+ or.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2409abc
+ or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da409abcdef0
+ or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea409abcdef0
+ or.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa409abcdef0
+ or.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840409abc
+ or.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848409abcdef0
+
+ or.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780140
+ or.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783140
+ or.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b140
+ or.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788140
+ or.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a140
+ or.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789140
+ or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1409abc
+ or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9409abcdef0
+ or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2409abc
+ or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2409abc
+ or.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2409abc
+ or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da409abcdef0
+ or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea409abcdef0
+ or.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa409abcdef0
+ or.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840409abc
+ or.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848409abcdef0
+
+ or.l @0x1234:16,@er1 ;01046b0c12340140
+ or.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343140
+ or.l @0x1234:16,@-er1 ;01046b0c1234b140
+ or.l @0x1234:16,@er1+ ;01046b0c12348140
+ or.l @0x1234:16,@er1- ;01046b0c1234a140
+ or.l @0x1234:16,@+er1 ;01046b0c12349140
+ or.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1409abc
+ or.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9409abcdef0
+ or.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2409abc
+ or.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2409abc
+ or.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2409abc
+ or.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da409abcdef0
+ or.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea409abcdef0
+ or.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa409abcdef0
+ or.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440409abc
+ or.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448409abcdef0
+
+ or.l @0x12345678:32,@er1 ;01046b2c123456780140
+ or.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783140
+ or.l @0x12345678:32,@-er1 ;01046b2c12345678b140
+ or.l @0x12345678:32,@er1+ ;01046b2c123456788140
+ or.l @0x12345678:32,@er1- ;01046b2c12345678a140
+ or.l @0x12345678:32,@+er1 ;01046b2c123456789140
+ or.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1409abc
+ or.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9409abcdef0
+ or.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2409abc
+ or.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2409abc
+ or.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2409abc
+ or.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da409abcdef0
+ or.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea409abcdef0
+ or.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa409abcdef0
+ or.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840409abc
+ or.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848409abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t09_xor.exp b/gdb/testsuite/gdb.disasm/t09_xor.exp
new file mode 100644
index 0000000..0164b33
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t09_xor.exp
@@ -0,0 +1,1866 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t09_xor"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "xor.b\t#0x12(:8|),r1h" \
+ "xor.b #0x12:8,r1h"
+gdb_test "x" "xor.b\t#0x12(:8|),@er1" \
+ "xor.b #0x12:8,@er1"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x3(:2|),er1\\)" \
+ "xor.b #0x12:8,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t#0x12(:8|),@er1\\+" \
+ "xor.b #0x12:8,@er1+"
+gdb_test "x" "xor.b\t#0x12(:8|),@-er1" \
+ "xor.b #0x12:8,@-er1"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\+er1" \
+ "xor.b #0x12:8,@+er1"
+gdb_test "x" "xor.b\t#0x12(:8|),@er1-" \
+ "xor.b #0x12:8,@er1-"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x1234(:16|),er1\\)" \
+ "xor.b #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x12345678(:32|),er1\\)" \
+ "xor.b #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x1234(:16|),r2l.b\\)" \
+ "xor.b #0x12:8,@(0x1234:16,r2l.b)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x1234(:16|),r2.w\\)" \
+ "xor.b #0x12:8,@(0x1234:16,r2.w)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x1234(:16|),er2.l\\)" \
+ "xor.b #0x12:8,@(0x1234:16,er2.l)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x12345678(:32|),r2l.b\\)" \
+ "xor.b #0x12:8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x12345678(:32|),r2.w\\)" \
+ "xor.b #0x12:8,@(0x12345678:32,r2.w)"
+gdb_test "x" "xor.b\t#0x12(:8|),@\\(0x12345678(:32|),er2.l\\)" \
+ "xor.b #0x12:8,@(0x12345678:32,er2.l)"
+gdb_test "x" "xor.b\t#0x12(:8|),@0x12(:8|)" \
+ "xor.b #0x12:8,@0x12:8"
+gdb_test "x" "xor.b\t#0x12(:8|),@0x1234(:16|)" \
+ "xor.b #0x12:8,@0x1234:16"
+gdb_test "x" "xor.b\t#0x12(:8|),@0x12345678(:32|)" \
+ "xor.b #0x12:8,@0x12345678:32"
+gdb_test "x" "xor.b\tr3h,r1h" \
+ "xor.b r3h,r1h"
+gdb_test "x" "xor.b\tr3h,@er1" \
+ "xor.b r3h,@er1"
+gdb_test "x" "xor.b\tr3h,@\\(0x3(:2|),er1\\)" \
+ "xor.b r3h,@(0x3:2,er1)"
+gdb_test "x" "xor.b\tr3h,@er1\\+" \
+ "xor.b r3h,@er1+"
+gdb_test "x" "xor.b\tr3h,@-er1" \
+ "xor.b r3h,@-er1"
+gdb_test "x" "xor.b\tr3h,@\\+er1" \
+ "xor.b r3h,@+er1"
+gdb_test "x" "xor.b\tr3h,@er1-" \
+ "xor.b r3h,@er1-"
+gdb_test "x" "xor.b\tr3h,@\\(0x1234(:16|),er1\\)" \
+ "xor.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "xor.b\tr3h,@\\(0x12345678(:32|),er1\\)" \
+ "xor.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "xor.b\tr3h,@\\(0x1234(:16|),r2l.b\\)" \
+ "xor.b r3h,@(0x1234:16,r2l.b)"
+gdb_test "x" "xor.b\tr3h,@\\(0x1234(:16|),r2.w\\)" \
+ "xor.b r3h,@(0x1234:16,r2.w)"
+gdb_test "x" "xor.b\tr3h,@\\(0x1234(:16|),er2.l\\)" \
+ "xor.b r3h,@(0x1234:16,er2.l)"
+gdb_test "x" "xor.b\tr3h,@\\(0x12345678(:32|),r2l.b\\)" \
+ "xor.b r3h,@(0x12345678:32,r2l.b)"
+gdb_test "x" "xor.b\tr3h,@\\(0x12345678(:32|),r2.w\\)" \
+ "xor.b r3h,@(0x12345678:32,r2.w)"
+gdb_test "x" "xor.b\tr3h,@\\(0x12345678(:32|),er2.l\\)" \
+ "xor.b r3h,@(0x12345678:32,er2.l)"
+gdb_test "x" "xor.b\tr3h,@0x12(:8|)" \
+ "xor.b r3h,@0x12:8"
+gdb_test "x" "xor.b\tr3h,@0x1234(:16|)" \
+ "xor.b r3h,@0x1234:16"
+gdb_test "x" "xor.b\tr3h,@0x12345678(:32|)" \
+ "xor.b r3h,@0x12345678:32"
+gdb_test "x" "xor.b\t@er3,r1h" \
+ "xor.b @er3,r1h"
+gdb_test "x" "xor.b\t@\\(0x3(:2|),er3\\),r1h" \
+ "xor.b @(0x3:2,er3),r1h"
+gdb_test "x" "xor.b\t@er3\\+,r1h" \
+ "xor.b @er3+,r1h"
+gdb_test "x" "xor.b\t@-er3,r1h" \
+ "xor.b @-er3,r1h"
+gdb_test "x" "xor.b\t@\\+er3,r1h" \
+ "xor.b @+er3,r1h"
+gdb_test "x" "xor.b\t@er3-,r1h" \
+ "xor.b @er3-,r1h"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er1\\),r1h" \
+ "xor.b @(0x1234:16,er1),r1h"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er1\\),r1h" \
+ "xor.b @(0x12345678:32,er1),r1h"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r2l.b\\),r1h" \
+ "xor.b @(0x1234:16,r2l.b),r1h"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r2.w\\),r1h" \
+ "xor.b @(0x1234:16,r2.w),r1h"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er2.l\\),r1h" \
+ "xor.b @(0x1234:16,er2.l),r1h"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r2l.b\\),r1h" \
+ "xor.b @(0x12345678:32,r2l.b),r1h"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r2.w\\),r1h" \
+ "xor.b @(0x12345678:32,r2.w),r1h"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er2.l\\),r1h" \
+ "xor.b @(0x12345678:32,er2.l),r1h"
+gdb_test "x" "xor.b\t@0x12(:8|),r1h" \
+ "xor.b @0x12:8,r1h"
+gdb_test "x" "xor.b\t@0x1234(:16|),r1h" \
+ "xor.b @0x1234:16,r1h"
+gdb_test "x" "xor.b\t@0x12345678(:32|),r1h" \
+ "xor.b @0x12345678:32,r1h"
+gdb_test "x" "xor.b\t@er3,@er1" \
+ "xor.b @er3,@er1"
+gdb_test "x" "xor.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "xor.b @er3,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@er3,@-er1" \
+ "xor.b @er3,@-er1"
+gdb_test "x" "xor.b\t@er3,@er1\\+" \
+ "xor.b @er3,@er1+"
+gdb_test "x" "xor.b\t@er3,@er1-" \
+ "xor.b @er3,@er1-"
+gdb_test "x" "xor.b\t@er3,@\\+er1" \
+ "xor.b @er3,@+er1"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@er3,@0x9abc(:16|)" \
+ "xor.b @er3,@0x9abc:16"
+gdb_test "x" "xor.b\t@er3,@0x9abcdef0(:32|)" \
+ "xor.b @er3,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@-er3,@er1" \
+ "xor.b @-er3,@er1"
+gdb_test "x" "xor.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "xor.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@-er3,@-er1" \
+ "xor.b @-er3,@-er1"
+gdb_test "x" "xor.b\t@-er3,@er1\\+" \
+ "xor.b @-er3,@er1+"
+gdb_test "x" "xor.b\t@-er3,@er1-" \
+ "xor.b @-er3,@er1-"
+gdb_test "x" "xor.b\t@-er3,@\\+er1" \
+ "xor.b @-er3,@+er1"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@-er3,@0x9abc(:16|)" \
+ "xor.b @-er3,@0x9abc:16"
+gdb_test "x" "xor.b\t@-er3,@0x9abcdef0(:32|)" \
+ "xor.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@er3\\+,@er1" \
+ "xor.b @er3+,@er1"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "xor.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@er3\\+,@-er1" \
+ "xor.b @er3+,@-er1"
+gdb_test "x" "xor.b\t@er3\\+,@er1\\+" \
+ "xor.b @er3+,@er1+"
+gdb_test "x" "xor.b\t@er3\\+,@er1-" \
+ "xor.b @er3+,@er1-"
+gdb_test "x" "xor.b\t@er3\\+,@\\+er1" \
+ "xor.b @er3+,@+er1"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@er3\\+,@0x9abc(:16|)" \
+ "xor.b @er3+,@0x9abc:16"
+gdb_test "x" "xor.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "xor.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@er3-,@er1" \
+ "xor.b @er3-,@er1"
+gdb_test "x" "xor.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "xor.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@er3-,@-er1" \
+ "xor.b @er3-,@-er1"
+gdb_test "x" "xor.b\t@er3-,@er1\\+" \
+ "xor.b @er3-,@er1+"
+gdb_test "x" "xor.b\t@er3-,@er1-" \
+ "xor.b @er3-,@er1-"
+gdb_test "x" "xor.b\t@er3-,@\\+er1" \
+ "xor.b @er3-,@+er1"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@er3-,@0x9abc(:16|)" \
+ "xor.b @er3-,@0x9abc:16"
+gdb_test "x" "xor.b\t@er3-,@0x9abcdef0(:32|)" \
+ "xor.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\+er3,@er1" \
+ "xor.b @+er3,@er1"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "xor.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\+er3,@-er1" \
+ "xor.b @+er3,@-er1"
+gdb_test "x" "xor.b\t@\\+er3,@er1\\+" \
+ "xor.b @+er3,@er1+"
+gdb_test "x" "xor.b\t@\\+er3,@er1-" \
+ "xor.b @+er3,@er1-"
+gdb_test "x" "xor.b\t@\\+er3,@\\+er1" \
+ "xor.b @+er3,@+er1"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\+er3,@0x9abc(:16|)" \
+ "xor.b @+er3,@0x9abc:16"
+gdb_test "x" "xor.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "xor.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "xor.b @(0x1234:16,er3),@er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "xor.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "xor.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "xor.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "xor.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "xor.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "xor.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "xor.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "xor.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "xor.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "xor.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "xor.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "xor.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "xor.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "xor.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "xor.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "xor.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "xor.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "xor.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "xor.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "xor.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "xor.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "xor.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "xor.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "xor.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "xor.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "xor.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "xor.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "xor.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "xor.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "xor.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "xor.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "xor.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "xor.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "xor.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "xor.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "xor.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "xor.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "xor.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "xor.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "xor.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "xor.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "xor.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "xor.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "xor.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "xor.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "xor.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@0x1234(:16|),@er1" \
+ "xor.b @0x1234:16,@er1"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "xor.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@-er1" \
+ "xor.b @0x1234:16,@-er1"
+gdb_test "x" "xor.b\t@0x1234(:16|),@er1\\+" \
+ "xor.b @0x1234:16,@er1+"
+gdb_test "x" "xor.b\t@0x1234(:16|),@er1-" \
+ "xor.b @0x1234:16,@er1-"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\+er1" \
+ "xor.b @0x1234:16,@+er1"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "xor.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "xor.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "xor.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@er1" \
+ "xor.b @0x12345678:32,@er1"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "xor.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@-er1" \
+ "xor.b @0x12345678:32,@-er1"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@er1\\+" \
+ "xor.b @0x12345678:32,@er1+"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@er1-" \
+ "xor.b @0x12345678:32,@er1-"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\+er1" \
+ "xor.b @0x12345678:32,@+er1"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "xor.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "xor.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "xor.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t#0x1234(:16|),r1" \
+ "xor.w #0x1234:16,r1"
+gdb_test "x" "xor.w\t#0x1234(:16|),@er1" \
+ "xor.w #0x1234:16,@er1"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "xor.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@er1\\+" \
+ "xor.w #0x1234:16,@er1+"
+gdb_test "x" "xor.w\t#0x1234(:16|),@-er1" \
+ "xor.w #0x1234:16,@-er1"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\+er1" \
+ "xor.w #0x1234:16,@+er1"
+gdb_test "x" "xor.w\t#0x1234(:16|),@er1-" \
+ "xor.w #0x1234:16,@er1-"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "xor.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "xor.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "xor.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "xor.w\tr3,r1" \
+ "xor.w r3,r1"
+gdb_test "x" "xor.w\tr3,@er1" \
+ "xor.w r3,@er1"
+gdb_test "x" "xor.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "xor.w r3,@(0x6:2,er1)"
+gdb_test "x" "xor.w\tr3,@-er1" \
+ "xor.w r3,@-er1"
+gdb_test "x" "xor.w\tr3,@er1\\+" \
+ "xor.w r3,@er1+"
+gdb_test "x" "xor.w\tr3,@er1-" \
+ "xor.w r3,@er1-"
+gdb_test "x" "xor.w\tr3,@\\+er1" \
+ "xor.w r3,@+er1"
+gdb_test "x" "xor.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "xor.w r3,@(0x1234:16,er1)"
+gdb_test "x" "xor.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "xor.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "xor.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "xor.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "xor.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "xor.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "xor.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "xor.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "xor.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "xor.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "xor.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "xor.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "xor.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "xor.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "xor.w\tr3,@0x1234(:16|)" \
+ "xor.w r3,@0x1234:16"
+gdb_test "x" "xor.w\tr3,@0x12345678(:32|)" \
+ "xor.w r3,@0x12345678:32"
+gdb_test "x" "xor.w\t@er3,r1" \
+ "xor.w @er3,r1"
+gdb_test "x" "xor.w\t@\\(0x6(:2|),er3\\),r1" \
+ "xor.w @(0x6:2,er3),r1"
+gdb_test "x" "xor.w\t@er3\\+,r1" \
+ "xor.w @er3+,r1"
+gdb_test "x" "xor.w\t@-er3,r1" \
+ "xor.w @-er3,r1"
+gdb_test "x" "xor.w\t@\\+er3,r1" \
+ "xor.w @+er3,r1"
+gdb_test "x" "xor.w\t@er3-,r1" \
+ "xor.w @er3-,r1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "xor.w @(0x1234:16,er1),r1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "xor.w @(0x12345678:32,er1),r1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "xor.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "xor.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "xor.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "xor.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "xor.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "xor.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "xor.w\t@0x1234(:16|),r1" \
+ "xor.w @0x1234:16,r1"
+gdb_test "x" "xor.w\t@0x12345678(:32|),r1" \
+ "xor.w @0x12345678:32,r1"
+gdb_test "x" "xor.w\t@er3,@er1" \
+ "xor.w @er3,@er1"
+gdb_test "x" "xor.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "xor.w @er3,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@er3,@-er1" \
+ "xor.w @er3,@-er1"
+gdb_test "x" "xor.w\t@er3,@er1\\+" \
+ "xor.w @er3,@er1+"
+gdb_test "x" "xor.w\t@er3,@er1-" \
+ "xor.w @er3,@er1-"
+gdb_test "x" "xor.w\t@er3,@\\+er1" \
+ "xor.w @er3,@+er1"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@er3,@0x9abc(:16|)" \
+ "xor.w @er3,@0x9abc:16"
+gdb_test "x" "xor.w\t@er3,@0x9abcdef0(:32|)" \
+ "xor.w @er3,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@-er3,@er1" \
+ "xor.w @-er3,@er1"
+gdb_test "x" "xor.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "xor.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@-er3,@-er1" \
+ "xor.w @-er3,@-er1"
+gdb_test "x" "xor.w\t@-er3,@er1\\+" \
+ "xor.w @-er3,@er1+"
+gdb_test "x" "xor.w\t@-er3,@er1-" \
+ "xor.w @-er3,@er1-"
+gdb_test "x" "xor.w\t@-er3,@\\+er1" \
+ "xor.w @-er3,@+er1"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@-er3,@0x9abc(:16|)" \
+ "xor.w @-er3,@0x9abc:16"
+gdb_test "x" "xor.w\t@-er3,@0x9abcdef0(:32|)" \
+ "xor.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@er3\\+,@er1" \
+ "xor.w @er3+,@er1"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "xor.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@er3\\+,@-er1" \
+ "xor.w @er3+,@-er1"
+gdb_test "x" "xor.w\t@er3\\+,@er1\\+" \
+ "xor.w @er3+,@er1+"
+gdb_test "x" "xor.w\t@er3\\+,@er1-" \
+ "xor.w @er3+,@er1-"
+gdb_test "x" "xor.w\t@er3\\+,@\\+er1" \
+ "xor.w @er3+,@+er1"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@er3\\+,@0x9abc(:16|)" \
+ "xor.w @er3+,@0x9abc:16"
+gdb_test "x" "xor.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "xor.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@er3-,@er1" \
+ "xor.w @er3-,@er1"
+gdb_test "x" "xor.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "xor.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@er3-,@-er1" \
+ "xor.w @er3-,@-er1"
+gdb_test "x" "xor.w\t@er3-,@er1\\+" \
+ "xor.w @er3-,@er1+"
+gdb_test "x" "xor.w\t@er3-,@er1-" \
+ "xor.w @er3-,@er1-"
+gdb_test "x" "xor.w\t@er3-,@\\+er1" \
+ "xor.w @er3-,@+er1"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@er3-,@0x9abc(:16|)" \
+ "xor.w @er3-,@0x9abc:16"
+gdb_test "x" "xor.w\t@er3-,@0x9abcdef0(:32|)" \
+ "xor.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\+er3,@er1" \
+ "xor.w @+er3,@er1"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "xor.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\+er3,@-er1" \
+ "xor.w @+er3,@-er1"
+gdb_test "x" "xor.w\t@\\+er3,@er1\\+" \
+ "xor.w @+er3,@er1+"
+gdb_test "x" "xor.w\t@\\+er3,@er1-" \
+ "xor.w @+er3,@er1-"
+gdb_test "x" "xor.w\t@\\+er3,@\\+er1" \
+ "xor.w @+er3,@+er1"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\+er3,@0x9abc(:16|)" \
+ "xor.w @+er3,@0x9abc:16"
+gdb_test "x" "xor.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "xor.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "xor.w @(0x1234:16,er3),@er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "xor.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "xor.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "xor.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "xor.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "xor.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "xor.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "xor.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "xor.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "xor.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "xor.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "xor.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "xor.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "xor.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "xor.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "xor.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "xor.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "xor.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "xor.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "xor.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "xor.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "xor.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "xor.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "xor.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "xor.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "xor.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "xor.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "xor.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "xor.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "xor.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "xor.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "xor.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "xor.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "xor.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "xor.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "xor.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "xor.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "xor.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "xor.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "xor.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "xor.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "xor.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "xor.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "xor.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "xor.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "xor.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "xor.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@0x1234(:16|),@er1" \
+ "xor.w @0x1234:16,@er1"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "xor.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@-er1" \
+ "xor.w @0x1234:16,@-er1"
+gdb_test "x" "xor.w\t@0x1234(:16|),@er1\\+" \
+ "xor.w @0x1234:16,@er1+"
+gdb_test "x" "xor.w\t@0x1234(:16|),@er1-" \
+ "xor.w @0x1234:16,@er1-"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\+er1" \
+ "xor.w @0x1234:16,@+er1"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "xor.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "xor.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "xor.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@er1" \
+ "xor.w @0x12345678:32,@er1"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "xor.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@-er1" \
+ "xor.w @0x12345678:32,@-er1"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@er1\\+" \
+ "xor.w @0x12345678:32,@er1+"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@er1-" \
+ "xor.w @0x12345678:32,@er1-"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\+er1" \
+ "xor.w @0x12345678:32,@+er1"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "xor.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "xor.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "xor.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t#0x12345678(:32|),er1" \
+ "xor.l #0x12345678:32,er1"
+gdb_test "x" "xor.l\t#0x1234(:16|),er1" \
+ "xor.l #0x1234:16,er1"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@er1" \
+ "xor.l #0x12345678:32,@er1"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "xor.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@er1\\+" \
+ "xor.l #0x12345678:32,@er1+"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@-er1" \
+ "xor.l #0x12345678:32,@-er1"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\+er1" \
+ "xor.l #0x12345678:32,@+er1"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@er1-" \
+ "xor.l #0x12345678:32,@er1-"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "xor.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "xor.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "xor.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t#0x1234(:16|),@er1" \
+ "xor.l #0x1234:16,@er1"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "xor.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@er1\\+" \
+ "xor.l #0x1234:16,@er1+"
+gdb_test "x" "xor.l\t#0x1234(:16|),@-er1" \
+ "xor.l #0x1234:16,@-er1"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\+er1" \
+ "xor.l #0x1234:16,@+er1"
+gdb_test "x" "xor.l\t#0x1234(:16|),@er1-" \
+ "xor.l #0x1234:16,@er1-"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "xor.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "xor.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "xor.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "xor.l\ter3,er1" \
+ "xor.l er3,er1"
+gdb_test "x" "xor.l\ter3,@er1" \
+ "xor.l er3,@er1"
+gdb_test "x" "xor.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "xor.l er3,@(0xc:2,er1)"
+gdb_test "x" "xor.l\ter3,@er1\\+" \
+ "xor.l er3,@er1+"
+gdb_test "x" "xor.l\ter3,@-er1" \
+ "xor.l er3,@-er1"
+gdb_test "x" "xor.l\ter3,@\\+er1" \
+ "xor.l er3,@+er1"
+gdb_test "x" "xor.l\ter3,@er1-" \
+ "xor.l er3,@er1-"
+gdb_test "x" "xor.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "xor.l er3,@(0x1234:16,er1)"
+gdb_test "x" "xor.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "xor.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "xor.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "xor.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "xor.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "xor.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "xor.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "xor.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "xor.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "xor.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "xor.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "xor.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "xor.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "xor.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "xor.l\ter3,@0x1234(:16|)" \
+ "xor.l er3,@0x1234:16"
+gdb_test "x" "xor.l\ter3,@0x12345678(:32|)" \
+ "xor.l er3,@0x12345678:32"
+gdb_test "x" "xor.l\t@er3,er1" \
+ "xor.l @er3,er1"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),er1" \
+ "xor.l @(0xc:2,er3),er1"
+gdb_test "x" "xor.l\t@er3\\+,er1" \
+ "xor.l @er3+,er1"
+gdb_test "x" "xor.l\t@-er3,er1" \
+ "xor.l @-er3,er1"
+gdb_test "x" "xor.l\t@\\+er3,er1" \
+ "xor.l @+er3,er1"
+gdb_test "x" "xor.l\t@er3-,er1" \
+ "xor.l @er3-,er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "xor.l @(0x1234:16,er1),er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "xor.l @(0x12345678:32,er1),er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "xor.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "xor.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "xor.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "xor.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "xor.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "xor.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "xor.l\t@0x1234(:16|),er1" \
+ "xor.l @0x1234:16,er1"
+gdb_test "x" "xor.l\t@0x12345678(:32|),er1" \
+ "xor.l @0x12345678:32,er1"
+gdb_test "x" "xor.l\t@er3,@er1" \
+ "xor.l @er3,@er1"
+gdb_test "x" "xor.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "xor.l @er3,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@er3,@-er1" \
+ "xor.l @er3,@-er1"
+gdb_test "x" "xor.l\t@er3,@er1\\+" \
+ "xor.l @er3,@er1+"
+gdb_test "x" "xor.l\t@er3,@er1-" \
+ "xor.l @er3,@er1-"
+gdb_test "x" "xor.l\t@er3,@\\+er1" \
+ "xor.l @er3,@+er1"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@er3,@0x9abc(:16|)" \
+ "xor.l @er3,@0x9abc:16"
+gdb_test "x" "xor.l\t@er3,@0x9abcdef0(:32|)" \
+ "xor.l @er3,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "xor.l @(0xc:2,er3),@er1"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "xor.l @(0xc:2,er3),@-er1"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "xor.l @(0xc:2,er3),@er1+"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "xor.l @(0xc:2,er3),@er1-"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "xor.l @(0xc:2,er3),@+er1"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "xor.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@-er3,@er1" \
+ "xor.l @-er3,@er1"
+gdb_test "x" "xor.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "xor.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@-er3,@-er1" \
+ "xor.l @-er3,@-er1"
+gdb_test "x" "xor.l\t@-er3,@er1\\+" \
+ "xor.l @-er3,@er1+"
+gdb_test "x" "xor.l\t@-er3,@er1-" \
+ "xor.l @-er3,@er1-"
+gdb_test "x" "xor.l\t@-er3,@\\+er1" \
+ "xor.l @-er3,@+er1"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@-er3,@0x9abc(:16|)" \
+ "xor.l @-er3,@0x9abc:16"
+gdb_test "x" "xor.l\t@-er3,@0x9abcdef0(:32|)" \
+ "xor.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@er3\\+,@er1" \
+ "xor.l @er3+,@er1"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "xor.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@er3\\+,@-er1" \
+ "xor.l @er3+,@-er1"
+gdb_test "x" "xor.l\t@er3\\+,@er1\\+" \
+ "xor.l @er3+,@er1+"
+gdb_test "x" "xor.l\t@er3\\+,@er1-" \
+ "xor.l @er3+,@er1-"
+gdb_test "x" "xor.l\t@er3\\+,@\\+er1" \
+ "xor.l @er3+,@+er1"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@er3\\+,@0x9abc(:16|)" \
+ "xor.l @er3+,@0x9abc:16"
+gdb_test "x" "xor.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "xor.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@er3-,@er1" \
+ "xor.l @er3-,@er1"
+gdb_test "x" "xor.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "xor.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@er3-,@-er1" \
+ "xor.l @er3-,@-er1"
+gdb_test "x" "xor.l\t@er3-,@er1\\+" \
+ "xor.l @er3-,@er1+"
+gdb_test "x" "xor.l\t@er3-,@er1-" \
+ "xor.l @er3-,@er1-"
+gdb_test "x" "xor.l\t@er3-,@\\+er1" \
+ "xor.l @er3-,@+er1"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@er3-,@0x9abc(:16|)" \
+ "xor.l @er3-,@0x9abc:16"
+gdb_test "x" "xor.l\t@er3-,@0x9abcdef0(:32|)" \
+ "xor.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\+er3,@er1" \
+ "xor.l @+er3,@er1"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "xor.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\+er3,@-er1" \
+ "xor.l @+er3,@-er1"
+gdb_test "x" "xor.l\t@\\+er3,@er1\\+" \
+ "xor.l @+er3,@er1+"
+gdb_test "x" "xor.l\t@\\+er3,@er1-" \
+ "xor.l @+er3,@er1-"
+gdb_test "x" "xor.l\t@\\+er3,@\\+er1" \
+ "xor.l @+er3,@+er1"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\+er3,@0x9abc(:16|)" \
+ "xor.l @+er3,@0x9abc:16"
+gdb_test "x" "xor.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "xor.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "xor.l @(0x1234:16,er3),@er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "xor.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "xor.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "xor.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "xor.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "xor.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "xor.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "xor.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "xor.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "xor.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "xor.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "xor.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "xor.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "xor.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "xor.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "xor.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "xor.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "xor.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "xor.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "xor.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "xor.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "xor.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "xor.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "xor.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "xor.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "xor.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "xor.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "xor.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "xor.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "xor.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "xor.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "xor.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "xor.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "xor.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "xor.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "xor.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "xor.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "xor.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "xor.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "xor.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "xor.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "xor.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "xor.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "xor.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "xor.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "xor.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "xor.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "xor.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "xor.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@0x1234(:16|),@er1" \
+ "xor.l @0x1234:16,@er1"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "xor.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@-er1" \
+ "xor.l @0x1234:16,@-er1"
+gdb_test "x" "xor.l\t@0x1234(:16|),@er1\\+" \
+ "xor.l @0x1234:16,@er1+"
+gdb_test "x" "xor.l\t@0x1234(:16|),@er1-" \
+ "xor.l @0x1234:16,@er1-"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\+er1" \
+ "xor.l @0x1234:16,@+er1"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "xor.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "xor.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "xor.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@er1" \
+ "xor.l @0x12345678:32,@er1"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "xor.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@-er1" \
+ "xor.l @0x12345678:32,@-er1"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@er1\\+" \
+ "xor.l @0x12345678:32,@er1+"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@er1-" \
+ "xor.l @0x12345678:32,@er1-"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\+er1" \
+ "xor.l @0x12345678:32,@+er1"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "xor.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "xor.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "xor.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "xor.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "xor.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "xor.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "xor.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "xor.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "xor.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "xor.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "xor.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t09_xor.s b/gdb/testsuite/gdb.disasm/t09_xor.s
new file mode 100644
index 0000000..7b9e8c4
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t09_xor.s
@@ -0,0 +1,972 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;log_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ xor.b #0x12:8,r1h ;d112
+ xor.b #0x12:8,@er1 ;7d10d012
+ xor.b #0x12:8,@(0x3:2,er1) ;01776818d012
+ xor.b #0x12:8,@er1+ ;01746c18d012
+ xor.b #0x12:8,@-er1 ;01776c18d012
+ xor.b #0x12:8,@+er1 ;01756c18d012
+ xor.b #0x12:8,@er1- ;01766c18d012
+ xor.b #0x12:8,@(0x1234:16,er1) ;01746e181234d012
+ xor.b #0x12:8,@(0x12345678:32,er1) ;78146a2812345678d012
+ xor.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234d012
+ xor.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234d012
+ xor.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234d012
+ xor.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678d012
+ xor.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678d012
+ xor.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678d012
+ xor.b #0x12:8,@0xffffff12:8 ;7f12d012
+ xor.b #0x12:8,@0x1234:16 ;6a181234d012
+ xor.b #0x12:8,@0x12345678:32 ;6a3812345678d012
+
+ xor.b r3h,r1h ;1531
+
+ xor.b r3h,@er1 ;7d101530
+ xor.b r3h,@(0x3:2,er1) ;01793153
+ xor.b r3h,@er1+ ;01798153
+ xor.b r3h,@-er1 ;0179b153
+ xor.b r3h,@+er1 ;01799153
+ xor.b r3h,@er1- ;0179a153
+ xor.b r3h,@(0x1234:16,er1) ;0179c1531234
+ xor.b r3h,@(0x12345678:32,er1) ;0179c95312345678
+ xor.b r3h,@(0x1234:16,r2l.b) ;0179d2531234
+ xor.b r3h,@(0x1234:16,r2.w) ;0179e2531234
+ xor.b r3h,@(0x1234:16,er2.l) ;0179f2531234
+ xor.b r3h,@(0x12345678:32,r2l.b) ;0179da5312345678
+ xor.b r3h,@(0x12345678:32,r2.w) ;0179ea5312345678
+ xor.b r3h,@(0x12345678:32,er2.l) ;0179fa5312345678
+ xor.b r3h,@0xffffff12:8 ;7f121530
+ xor.b r3h,@0x1234:16 ;6a1812341530
+ xor.b r3h,@0x12345678:32 ;6a38123456781530
+
+ xor.b @er3,r1h ;7c301501
+ xor.b @(0x3:2,er3),r1h ;017a3351
+ xor.b @er3+,r1h ;017a8351
+ xor.b @-er3,r1h ;017ab351
+ xor.b @+er3,r1h ;017a9351
+ xor.b @er3-,r1h ;017aa351
+ xor.b @(0x1234:16,er1),r1h ;017ac1511234
+ xor.b @(0x12345678:32,er1),r1h ;017ac95112345678
+ xor.b @(0x1234:16,r2l.b),r1h ;017ad2511234
+ xor.b @(0x1234:16,r2.w),r1h ;017ae2511234
+ xor.b @(0x1234:16,er2.l),r1h ;017af2511234
+ xor.b @(0x12345678:32,r2l.b),r1h ;017ada5112345678
+ xor.b @(0x12345678:32,r2.w),r1h ;017aea5112345678
+ xor.b @(0x12345678:32,er2.l),r1h ;017afa5112345678
+ xor.b @0xffffff12:8,r1h ;7e121501
+ xor.b @0x1234:16,r1h ;6a1012341501
+ xor.b @0x12345678:32,r1h ;6a30123456781501
+
+ xor.b @er3,@er1 ;7c350150
+ xor.b @er3,@(3:2,er1) ;7c353150
+ xor.b @er3,@-er1 ;7c35b150
+ xor.b @er3,@er1+ ;7c358150
+ xor.b @er3,@er1- ;7c35a150
+ xor.b @er3,@+er1 ;7c359150
+ xor.b @er3,@(0xffff9abc:16,er1) ;7c35c1509abc
+ xor.b @er3,@(0x9abcdef0:32,er1) ;7c35c9509abcdef0
+ xor.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2509abc
+ xor.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2509abc
+ xor.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2509abc
+ xor.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da509abcdef0
+ xor.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea509abcdef0
+ xor.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa509abcdef0
+ xor.b @er3,@0xffff9abc:16 ;7c3540509abc
+ xor.b @er3,@0x9abcdef0:32 ;7c3548509abcdef0
+
+ xor.b @-er3,@er1 ;01776c3c0150
+ xor.b @-er3,@(3:2,er1) ;01776c3c3150
+ xor.b @-er3,@-er1 ;01776c3cb150
+ xor.b @-er3,@er1+ ;01776c3c8150
+ xor.b @-er3,@er1- ;01776c3ca150
+ xor.b @-er3,@+er1 ;01776c3c9150
+ xor.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1509abc
+ xor.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9509abcdef0
+ xor.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2509abc
+ xor.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2509abc
+ xor.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2509abc
+ xor.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda509abcdef0
+ xor.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea509abcdef0
+ xor.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa509abcdef0
+ xor.b @-er3,@0xffff9abc:16 ;01776c3c40509abc
+ xor.b @-er3,@0x9abcdef0:32 ;01776c3c48509abcdef0
+
+ xor.b @er3+,@er1 ;01746c3c0150
+ xor.b @er3+,@(3:2,er1) ;01746c3c3150
+ xor.b @er3+,@-er1 ;01746c3cb150
+ xor.b @er3+,@er1+ ;01746c3c8150
+ xor.b @er3+,@er1- ;01746c3ca150
+ xor.b @er3+,@+er1 ;01746c3c9150
+ xor.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1509abc
+ xor.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9509abcdef0
+ xor.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2509abc
+ xor.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2509abc
+ xor.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2509abc
+ xor.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda509abcdef0
+ xor.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea509abcdef0
+ xor.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa509abcdef0
+ xor.b @er3+,@0xffff9abc:16 ;01746c3c40509abc
+ xor.b @er3+,@0x9abcdef0:32 ;01746c3c48509abcdef0
+
+ xor.b @er3-,@er1 ;01766c3c0150
+ xor.b @er3-,@(3:2,er1) ;01766c3c3150
+ xor.b @er3-,@-er1 ;01766c3cb150
+ xor.b @er3-,@er1+ ;01766c3c8150
+ xor.b @er3-,@er1- ;01766c3ca150
+ xor.b @er3-,@+er1 ;01766c3c9150
+ xor.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1509abc
+ xor.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9509abcdef0
+ xor.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2509abc
+ xor.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2509abc
+ xor.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2509abc
+ xor.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda509abcdef0
+ xor.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea509abcdef0
+ xor.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa509abcdef0
+ xor.b @er3-,@0xffff9abc:16 ;01766c3c40509abc
+ xor.b @er3-,@0x9abcdef0:32 ;01766c3c48509abcdef0
+
+ xor.b @+er3,@er1 ;01756c3c0150
+ xor.b @+er3,@(3:2,er1) ;01756c3c3150
+ xor.b @+er3,@-er1 ;01756c3cb150
+ xor.b @+er3,@er1+ ;01756c3c8150
+ xor.b @+er3,@er1- ;01756c3ca150
+ xor.b @+er3,@+er1 ;01756c3c9150
+ xor.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1509abc
+ xor.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9509abcdef0
+ xor.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2509abc
+ xor.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2509abc
+ xor.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2509abc
+ xor.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda509abcdef0
+ xor.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea509abcdef0
+ xor.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa509abcdef0
+ xor.b @+er3,@0xffff9abc:16 ;01756c3c40509abc
+ xor.b @+er3,@0x9abcdef0:32 ;01756c3c48509abcdef0
+
+ xor.b @(0x1234:16,er3),@er1 ;01746e3c12340150
+ xor.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343150
+ xor.b @(0x1234:16,er3),@-er1 ;01746e3c1234b150
+ xor.b @(0x1234:16,er3),@er1+ ;01746e3c12348150
+ xor.b @(0x1234:16,er3),@er1- ;01746e3c1234a150
+ xor.b @(0x1234:16,er3),@+er1 ;01746e3c12349150
+ xor.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1509abc
+ xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9509abcdef0
+ xor.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2509abc
+ xor.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2509abc
+ xor.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2509abc
+ xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da509abcdef0
+ xor.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea509abcdef0
+ xor.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa509abcdef0
+ xor.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440509abc
+ xor.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448509abcdef0
+
+ xor.b @(0x12345678:32,er3),@er1 ;78346a2c123456780150
+ xor.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783150
+ xor.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b150
+ xor.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788150
+ xor.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a150
+ xor.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789150
+ xor.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1509abc
+ xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9509abcdef0
+ xor.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2509abc
+ xor.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2509abc
+ xor.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2509abc
+ xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da509abcdef0
+ xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea509abcdef0
+ xor.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa509abcdef0
+ xor.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840509abc
+ xor.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848509abcdef0
+
+ xor.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340150
+ xor.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343150
+ xor.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b150
+ xor.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348150
+ xor.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a150
+ xor.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349150
+ xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1509abc
+ xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9509abcdef0
+ xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2509abc
+ xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2509abc
+ xor.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2509abc
+ xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da509abcdef0
+ xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea509abcdef0
+ xor.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa509abcdef0
+ xor.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440509abc
+ xor.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448509abcdef0
+
+ xor.b @(0x1234:16,r3.w),@er1 ;01766e3c12340150
+ xor.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343150
+ xor.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b150
+ xor.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348150
+ xor.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a150
+ xor.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349150
+ xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1509abc
+ xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9509abcdef0
+ xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2509abc
+ xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2509abc
+ xor.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2509abc
+ xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da509abcdef0
+ xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea509abcdef0
+ xor.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa509abcdef0
+ xor.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440509abc
+ xor.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448509abcdef0
+
+ xor.b @(0x1234:16,er3.l),@er1 ;01776e3c12340150
+ xor.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343150
+ xor.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b150
+ xor.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348150
+ xor.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a150
+ xor.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349150
+ xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1509abc
+ xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9509abcdef0
+ xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2509abc
+ xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2509abc
+ xor.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2509abc
+ xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da509abcdef0
+ xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea509abcdef0
+ xor.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa509abcdef0
+ xor.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440509abc
+ xor.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448509abcdef0
+
+ xor.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780150
+ xor.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783150
+ xor.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b150
+ xor.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788150
+ xor.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a150
+ xor.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789150
+ xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1509abc
+ xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9509abcdef0
+ xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2509abc
+ xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2509abc
+ xor.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2509abc
+ xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da509abcdef0
+ xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea509abcdef0
+ xor.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa509abcdef0
+ xor.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840509abc
+ xor.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848509abcdef0
+
+ xor.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780150
+ xor.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783150
+ xor.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b150
+ xor.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788150
+ xor.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a150
+ xor.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789150
+ xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1509abc
+ xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9509abcdef0
+ xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2509abc
+ xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2509abc
+ xor.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2509abc
+ xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da509abcdef0
+ xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea509abcdef0
+ xor.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa509abcdef0
+ xor.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840509abc
+ xor.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848509abcdef0
+
+ xor.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780150
+ xor.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783150
+ xor.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b150
+ xor.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788150
+ xor.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a150
+ xor.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789150
+ xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1509abc
+ xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9509abcdef0
+ xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2509abc
+ xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2509abc
+ xor.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2509abc
+ xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da509abcdef0
+ xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea509abcdef0
+ xor.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa509abcdef0
+ xor.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840509abc
+ xor.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848509abcdef0
+
+ xor.b @0x1234:16,@er1 ;6a1512340150
+ xor.b @0x1234:16,@(3:2,er1) ;6a1512343150
+ xor.b @0x1234:16,@-er1 ;6a151234b150
+ xor.b @0x1234:16,@er1+ ;6a1512348150
+ xor.b @0x1234:16,@er1- ;6a151234a150
+ xor.b @0x1234:16,@+er1 ;6a1512349150
+ xor.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1509abc
+ xor.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9509abcdef0
+ xor.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2509abc
+ xor.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2509abc
+ xor.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2509abc
+ xor.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da509abcdef0
+ xor.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea509abcdef0
+ xor.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa509abcdef0
+ xor.b @0x1234:16,@0xffff9abc:16 ;6a15123440509abc
+ xor.b @0x1234:16,@0x9abcdef0:32 ;6a15123448509abcdef0
+
+ xor.b @0x12345678:32,@er1 ;6a35123456780150
+ xor.b @0x12345678:32,@(3:2,er1) ;6a35123456783150
+ xor.b @0x12345678:32,@-er1 ;6a3512345678b150
+ xor.b @0x12345678:32,@er1+ ;6a35123456788150
+ xor.b @0x12345678:32,@er1- ;6a3512345678a150
+ xor.b @0x12345678:32,@+er1 ;6a35123456789150
+ xor.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1509abc
+ xor.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9509abcdef0
+ xor.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2509abc
+ xor.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2509abc
+ xor.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2509abc
+ xor.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da509abcdef0
+ xor.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea509abcdef0
+ xor.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa509abcdef0
+ xor.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840509abc
+ xor.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848509abcdef0
+
+ xor.w #0x1234:16,r1 ;79511234
+ xor.w #0x1234:16,@er1 ;015e01501234
+ xor.w #0x1234:16,@(0x6:2,er1) ;015e31501234
+ xor.w #0x1234:16,@er1+ ;015e81501234
+ xor.w #0x1234:16,@-er1 ;015eb1501234
+ xor.w #0x1234:16,@+er1 ;015e91501234
+ xor.w #0x1234:16,@er1- ;015ea1501234
+ xor.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1509abc1234
+ xor.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9509abcdef01234
+ xor.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2509abc1234
+ xor.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2509abc1234
+ xor.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2509abc1234
+ xor.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda509abcdef01234
+ xor.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea509abcdef01234
+ xor.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa509abcdef01234
+ xor.w #0x1234:16,@0xffff9abc:16 ;015e40509abc1234
+ xor.w #0x1234:16,@0x9abcdef0:32 ;015e48509abcdef01234
+
+ xor.w r3,r1 ;6531
+
+ xor.w r3,@er1 ;7d906530
+ xor.w r3,@(0x6:2,er1) ;01593153
+ xor.w r3,@-er1 ;0159b153
+ xor.w r3,@er1+ ;01598153
+ xor.w r3,@er1- ;0159a153
+ xor.w r3,@+er1 ;01599153
+ xor.w r3,@(0x1234:16,er1) ;0159c1531234
+ xor.w r3,@(0x12345678:32,er1) ;0159c95312345678
+ xor.w r3,@(0x1234:16,r2l.b) ;0159d2531234
+ xor.w r3,@(0x1234:16,r2.w) ;0159e2531234
+ xor.w r3,@(0x1234:16,er2.l) ;0159f2531234
+ xor.w r3,@(0x12345678:32,r2l.b) ;0159da5312345678
+ xor.w r3,@(0x12345678:32,r2.w) ;0159ea5312345678
+ xor.w r3,@(0x12345678:32,er2.l) ;0159fa5312345678
+ xor.w r3,@0x1234:16 ;6b1812346530
+ xor.w r3,@0x12345678:32 ;6b38123456786530
+
+ xor.w @er3,r1 ;7cb06501
+ xor.w @(0x6:2,er3),r1 ;015a3351
+ xor.w @er3+,r1 ;015a8351
+ xor.w @-er3,r1 ;015ab351
+ xor.w @+er3,r1 ;015a9351
+ xor.w @er3-,r1 ;015aa351
+ xor.w @(0x1234:16,er1),r1 ;015ac1511234
+ xor.w @(0x12345678:32,er1),r1 ;015ac95112345678
+ xor.w @(0x1234:16,r2l.b),r1 ;015ad2511234
+ xor.w @(0x1234:16,r2.w),r1 ;015ae2511234
+ xor.w @(0x1234:16,er2.l),r1 ;015af2511234
+ xor.w @(0x12345678:32,r2l.b),r1 ;015ada5112345678
+ xor.w @(0x12345678:32,r2.w),r1 ;015aea5112345678
+ xor.w @(0x12345678:32,er2.l),r1 ;015afa5112345678
+ xor.w @0x1234:16,r1 ;6b1012346501
+ xor.w @0x12345678:32,r1 ;6b30123456786501
+
+ xor.w @er3,@er1 ;7cb50150
+ xor.w @er3,@(6:2,er1) ;7cb53150
+ xor.w @er3,@-er1 ;7cb5b150
+ xor.w @er3,@er1+ ;7cb58150
+ xor.w @er3,@er1- ;7cb5a150
+ xor.w @er3,@+er1 ;7cb59150
+ xor.w @er3,@(0xffff9abc:16,er1) ;7cb5c1509abc
+ xor.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9509abcdef0
+ xor.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2509abc
+ xor.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2509abc
+ xor.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2509abc
+ xor.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da509abcdef0
+ xor.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea509abcdef0
+ xor.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa509abcdef0
+ xor.w @er3,@0xffff9abc:16 ;7cb540509abc
+ xor.w @er3,@0x9abcdef0:32 ;7cb548509abcdef0
+
+ xor.w @-er3,@er1 ;01576d3c0150
+ xor.w @-er3,@(6:2,er1) ;01576d3c3150
+ xor.w @-er3,@-er1 ;01576d3cb150
+ xor.w @-er3,@er1+ ;01576d3c8150
+ xor.w @-er3,@er1- ;01576d3ca150
+ xor.w @-er3,@+er1 ;01576d3c9150
+ xor.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1509abc
+ xor.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9509abcdef0
+ xor.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2509abc
+ xor.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2509abc
+ xor.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2509abc
+ xor.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda509abcdef0
+ xor.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea509abcdef0
+ xor.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa509abcdef0
+ xor.w @-er3,@0xffff9abc:16 ;01576d3c40509abc
+ xor.w @-er3,@0x9abcdef0:32 ;01576d3c48509abcdef0
+
+ xor.w @er3+,@er1 ;01546d3c0150
+ xor.w @er3+,@(6:2,er1) ;01546d3c3150
+ xor.w @er3+,@-er1 ;01546d3cb150
+ xor.w @er3+,@er1+ ;01546d3c8150
+ xor.w @er3+,@er1- ;01546d3ca150
+ xor.w @er3+,@+er1 ;01546d3c9150
+ xor.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1509abc
+ xor.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9509abcdef0
+ xor.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2509abc
+ xor.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2509abc
+ xor.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2509abc
+ xor.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda509abcdef0
+ xor.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea509abcdef0
+ xor.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa509abcdef0
+ xor.w @er3+,@0xffff9abc:16 ;01546d3c40509abc
+ xor.w @er3+,@0x9abcdef0:32 ;01546d3c48509abcdef0
+
+ xor.w @er3-,@er1 ;01566d3c0150
+ xor.w @er3-,@(6:2,er1) ;01566d3c3150
+ xor.w @er3-,@-er1 ;01566d3cb150
+ xor.w @er3-,@er1+ ;01566d3c8150
+ xor.w @er3-,@er1- ;01566d3ca150
+ xor.w @er3-,@+er1 ;01566d3c9150
+ xor.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1509abc
+ xor.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9509abcdef0
+ xor.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2509abc
+ xor.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2509abc
+ xor.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2509abc
+ xor.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda509abcdef0
+ xor.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea509abcdef0
+ xor.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa509abcdef0
+ xor.w @er3-,@0xffff9abc:16 ;01566d3c40509abc
+ xor.w @er3-,@0x9abcdef0:32 ;01566d3c48509abcdef0
+
+ xor.w @+er3,@er1 ;01556d3c0150
+ xor.w @+er3,@(6:2,er1) ;01556d3c3150
+ xor.w @+er3,@-er1 ;01556d3cb150
+ xor.w @+er3,@er1+ ;01556d3c8150
+ xor.w @+er3,@er1- ;01556d3ca150
+ xor.w @+er3,@+er1 ;01556d3c9150
+ xor.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1509abc
+ xor.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9509abcdef0
+ xor.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2509abc
+ xor.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2509abc
+ xor.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2509abc
+ xor.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda509abcdef0
+ xor.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea509abcdef0
+ xor.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa509abcdef0
+ xor.w @+er3,@0xffff9abc:16 ;01556d3c40509abc
+ xor.w @+er3,@0x9abcdef0:32 ;01556d3c48509abcdef0
+
+ xor.w @(0x1234:16,er3),@er1 ;01546f3c12340150
+ xor.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343150
+ xor.w @(0x1234:16,er3),@-er1 ;01546f3c1234b150
+ xor.w @(0x1234:16,er3),@er1+ ;01546f3c12348150
+ xor.w @(0x1234:16,er3),@er1- ;01546f3c1234a150
+ xor.w @(0x1234:16,er3),@+er1 ;01546f3c12349150
+ xor.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1509abc
+ xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9509abcdef0
+ xor.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2509abc
+ xor.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2509abc
+ xor.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2509abc
+ xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da509abcdef0
+ xor.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea509abcdef0
+ xor.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa509abcdef0
+ xor.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440509abc
+ xor.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448509abcdef0
+
+ xor.w @(0x12345678:32,er3),@er1 ;78346b2c123456780150
+ xor.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783150
+ xor.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b150
+ xor.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788150
+ xor.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a150
+ xor.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789150
+ xor.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1509abc
+ xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9509abcdef0
+ xor.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2509abc
+ xor.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2509abc
+ xor.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2509abc
+ xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da509abcdef0
+ xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea509abcdef0
+ xor.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa509abcdef0
+ xor.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840509abc
+ xor.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848509abcdef0
+
+ xor.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340150
+ xor.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343150
+ xor.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b150
+ xor.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348150
+ xor.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a150
+ xor.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349150
+ xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1509abc
+ xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9509abcdef0
+ xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2509abc
+ xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2509abc
+ xor.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2509abc
+ xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da509abcdef0
+ xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea509abcdef0
+ xor.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa509abcdef0
+ xor.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440509abc
+ xor.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448509abcdef0
+
+ xor.w @(0x1234:16,r3.w),@er1 ;01566f3c12340150
+ xor.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343150
+ xor.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b150
+ xor.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348150
+ xor.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a150
+ xor.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349150
+ xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1509abc
+ xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9509abcdef0
+ xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2509abc
+ xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2509abc
+ xor.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2509abc
+ xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da509abcdef0
+ xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea509abcdef0
+ xor.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa509abcdef0
+ xor.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440509abc
+ xor.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448509abcdef0
+
+ xor.w @(0x1234:16,er3.l),@er1 ;01576f3c12340150
+ xor.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343150
+ xor.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b150
+ xor.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348150
+ xor.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a150
+ xor.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349150
+ xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1509abc
+ xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9509abcdef0
+ xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2509abc
+ xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2509abc
+ xor.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2509abc
+ xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da509abcdef0
+ xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea509abcdef0
+ xor.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa509abcdef0
+ xor.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440509abc
+ xor.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448509abcdef0
+
+ xor.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780150
+ xor.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783150
+ xor.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b150
+ xor.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788150
+ xor.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a150
+ xor.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789150
+ xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1509abc
+ xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9509abcdef0
+ xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2509abc
+ xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2509abc
+ xor.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2509abc
+ xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da509abcdef0
+ xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea509abcdef0
+ xor.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa509abcdef0
+ xor.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840509abc
+ xor.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848509abcdef0
+
+ xor.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780150
+ xor.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783150
+ xor.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b150
+ xor.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788150
+ xor.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a150
+ xor.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789150
+ xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1509abc
+ xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9509abcdef0
+ xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2509abc
+ xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2509abc
+ xor.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2509abc
+ xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da509abcdef0
+ xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea509abcdef0
+ xor.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa509abcdef0
+ xor.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840509abc
+ xor.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848509abcdef0
+
+ xor.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780150
+ xor.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783150
+ xor.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b150
+ xor.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788150
+ xor.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a150
+ xor.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789150
+ xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1509abc
+ xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9509abcdef0
+ xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2509abc
+ xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2509abc
+ xor.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2509abc
+ xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da509abcdef0
+ xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea509abcdef0
+ xor.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa509abcdef0
+ xor.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840509abc
+ xor.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848509abcdef0
+
+ xor.w @0x1234:16,@er1 ;6b1512340150
+ xor.w @0x1234:16,@(6:2,er1) ;6b1512343150
+ xor.w @0x1234:16,@-er1 ;6b151234b150
+ xor.w @0x1234:16,@er1+ ;6b1512348150
+ xor.w @0x1234:16,@er1- ;6b151234a150
+ xor.w @0x1234:16,@+er1 ;6b1512349150
+ xor.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1509abc
+ xor.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9509abcdef0
+ xor.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2509abc
+ xor.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2509abc
+ xor.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2509abc
+ xor.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da509abcdef0
+ xor.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea509abcdef0
+ xor.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa509abcdef0
+ xor.w @0x1234:16,@0xffff9abc:16 ;6b15123440509abc
+ xor.w @0x1234:16,@0x9abcdef0:32 ;6b15123448509abcdef0
+
+ xor.w @0x12345678:32,@er1 ;6b35123456780150
+ xor.w @0x12345678:32,@(6:2,er1) ;6b35123456783150
+ xor.w @0x12345678:32,@-er1 ;6b3512345678b150
+ xor.w @0x12345678:32,@er1+ ;6b35123456788150
+ xor.w @0x12345678:32,@er1- ;6b3512345678a150
+ xor.w @0x12345678:32,@+er1 ;6b35123456789150
+ xor.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1509abc
+ xor.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9509abcdef0
+ xor.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2509abc
+ xor.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2509abc
+ xor.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2509abc
+ xor.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da509abcdef0
+ xor.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea509abcdef0
+ xor.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa509abcdef0
+ xor.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840509abc
+ xor.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848509abcdef0
+
+ xor.l #0x12345678:32,er1 ;7a5112345678
+ xor.l #0x1234:16,er1 ;7a591234
+ xor.l #0x12345678:32,@er1 ;010e015812345678
+ xor.l #0x12345678:32,@(0xc:2,er1) ;010e315812345678
+ xor.l #0x12345678:32,@er1+ ;010e815812345678
+ xor.l #0x12345678:32,@-er1 ;010eb15812345678
+ xor.l #0x12345678:32,@+er1 ;010e915812345678
+ xor.l #0x12345678:32,@er1- ;010ea15812345678
+ xor.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1589abc12345678
+ xor.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9589abcdef012345678
+ xor.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2589abc12345678
+ xor.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2589abc12345678
+ xor.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2589abc12345678
+ xor.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda589abcdef012345678
+ xor.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea589abcdef012345678
+ xor.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa589abcdef012345678
+ xor.l #0x12345678:32,@0xffff9abc:16 ;010e40589abc12345678
+ xor.l #0x12345678:32,@0x9abcdef0:32 ;010e48589abcdef012345678
+ xor.l #0x1234:16,@er1 ;010e01501234
+ xor.l #0x1234:16,@(0xc:2,er1) ;010e31501234
+ xor.l #0x1234:16,@er1+ ;010e81501234
+ xor.l #0x1234:16,@-er1 ;010eb1501234
+ xor.l #0x1234:16,@+er1 ;010e91501234
+ xor.l #0x1234:16,@er1- ;010ea1501234
+ xor.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1509abc1234
+ xor.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9509abcdef01234
+ xor.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2509abc1234
+ xor.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2509abc1234
+ xor.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2509abc1234
+ xor.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda509abcdef01234
+ xor.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea509abcdef01234
+ xor.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa509abcdef01234
+ xor.l #0x1234:16,@0xffff9abc:16 ;010e40509abc1234
+ xor.l #0x1234:16,@0x9abcdef0:32 ;010e48509abcdef01234
+
+ xor.l er3,er1 ;01f06531
+
+ xor.l er3,@er1 ;01090153
+ xor.l er3,@(0xc:2,er1) ;01093153
+ xor.l er3,@er1+ ;01098153
+ xor.l er3,@-er1 ;0109b153
+ xor.l er3,@+er1 ;01099153
+ xor.l er3,@er1- ;0109a153
+ xor.l er3,@(0x1234:16,er1) ;0109c1531234
+ xor.l er3,@(0x12345678:32,er1) ;0109c95312345678
+ xor.l er3,@(0x1234:16,r2l.b) ;0109d2531234
+ xor.l er3,@(0x1234:16,r2.w) ;0109e2531234
+ xor.l er3,@(0x1234:16,er2.l) ;0109f2531234
+ xor.l er3,@(0x12345678:32,r2l.b) ;0109da5312345678
+ xor.l er3,@(0x12345678:32,r2.w) ;0109ea5312345678
+ xor.l er3,@(0x12345678:32,er2.l) ;0109fa5312345678
+ xor.l er3,@0x1234:16 ;010940531234
+ xor.l er3,@0x12345678:32 ;0109485312345678
+
+ xor.l @er3,er1 ;010a0351
+ xor.l @(0xc:2,er3),er1 ;010a3351
+ xor.l @er3+,er1 ;010a8351
+ xor.l @-er3,er1 ;010ab351
+ xor.l @+er3,er1 ;010a9351
+ xor.l @er3-,er1 ;010aa351
+ xor.l @(0x1234:16,er1),er1 ;010ac1511234
+ xor.l @(0x12345678:32,er1),er1 ;010ac95112345678
+ xor.l @(0x1234:16,r2l.b),er1 ;010ad2511234
+ xor.l @(0x1234:16,r2.w),er1 ;010ae2511234
+ xor.l @(0x1234:16,er2.l),er1 ;010af2511234
+ xor.l @(0x12345678:32,r2l.b),er1 ;010ada5112345678
+ xor.l @(0x12345678:32,r2.w),er1 ;010aea5112345678
+ xor.l @(0x12345678:32,er2.l),er1 ;010afa5112345678
+ xor.l @0x1234:16,er1 ;010a40511234
+ xor.l @0x12345678:32,er1 ;010a485112345678
+
+ xor.l @er3,@er1 ;0104693c0150
+ xor.l @er3,@(0xc:2,er1) ;0104693c3150
+ xor.l @er3,@-er1 ;0104693cb150
+ xor.l @er3,@er1+ ;0104693c8150
+ xor.l @er3,@er1- ;0104693ca150
+ xor.l @er3,@+er1 ;0104693c9150
+ xor.l @er3,@(0xffff9abc:16,er1) ;0104693cc1509abc
+ xor.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9509abcdef0
+ xor.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2509abc
+ xor.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2509abc
+ xor.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2509abc
+ xor.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda509abcdef0
+ xor.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea509abcdef0
+ xor.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa509abcdef0
+ xor.l @er3,@0xffff9abc:16 ;0104693c40509abc
+ xor.l @er3,@0x9abcdef0:32 ;0104693c48509abcdef0
+
+ xor.l @(0xc:2,er3),@er1 ;0107693c0150
+ xor.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3150
+ xor.l @(0xc:2,er3),@-er1 ;0107693cb150
+ xor.l @(0xc:2,er3),@er1+ ;0107693c8150
+ xor.l @(0xc:2,er3),@er1- ;0107693ca150
+ xor.l @(0xc:2,er3),@+er1 ;0107693c9150
+ xor.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1509abc
+ xor.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9509abcdef0
+ xor.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2509abc
+ xor.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2509abc
+ xor.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2509abc
+ xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda509abcdef0
+ xor.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea509abcdef0
+ xor.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa509abcdef0
+ xor.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40509abc
+ xor.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48509abcdef0
+
+ xor.l @-er3,@er1 ;01076d3c0150
+ xor.l @-er3,@(0xc:2,er1) ;01076d3c3150
+ xor.l @-er3,@-er1 ;01076d3cb150
+ xor.l @-er3,@er1+ ;01076d3c8150
+ xor.l @-er3,@er1- ;01076d3ca150
+ xor.l @-er3,@+er1 ;01076d3c9150
+ xor.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1509abc
+ xor.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9509abcdef0
+ xor.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2509abc
+ xor.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2509abc
+ xor.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2509abc
+ xor.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda509abcdef0
+ xor.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea509abcdef0
+ xor.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa509abcdef0
+ xor.l @-er3,@0xffff9abc:16 ;01076d3c40509abc
+ xor.l @-er3,@0x9abcdef0:32 ;01076d3c48509abcdef0
+
+ xor.l @er3+,@er1 ;01046d3c0150
+ xor.l @er3+,@(0xc:2,er1) ;01046d3c3150
+ xor.l @er3+,@-er1 ;01046d3cb150
+ xor.l @er3+,@er1+ ;01046d3c8150
+ xor.l @er3+,@er1- ;01046d3ca150
+ xor.l @er3+,@+er1 ;01046d3c9150
+ xor.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1509abc
+ xor.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9509abcdef0
+ xor.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2509abc
+ xor.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2509abc
+ xor.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2509abc
+ xor.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda509abcdef0
+ xor.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea509abcdef0
+ xor.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa509abcdef0
+ xor.l @er3+,@0xffff9abc:16 ;01046d3c40509abc
+ xor.l @er3+,@0x9abcdef0:32 ;01046d3c48509abcdef0
+
+ xor.l @er3-,@er1 ;01066d3c0150
+ xor.l @er3-,@(0xc:2,er1) ;01066d3c3150
+ xor.l @er3-,@-er1 ;01066d3cb150
+ xor.l @er3-,@er1+ ;01066d3c8150
+ xor.l @er3-,@er1- ;01066d3ca150
+ xor.l @er3-,@+er1 ;01066d3c9150
+ xor.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1509abc
+ xor.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9509abcdef0
+ xor.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2509abc
+ xor.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2509abc
+ xor.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2509abc
+ xor.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda509abcdef0
+ xor.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea509abcdef0
+ xor.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa509abcdef0
+ xor.l @er3-,@0xffff9abc:16 ;01066d3c40509abc
+ xor.l @er3-,@0x9abcdef0:32 ;01066d3c48509abcdef0
+
+ xor.l @+er3,@er1 ;01056d3c0150
+ xor.l @+er3,@(0xc:2,er1) ;01056d3c3150
+ xor.l @+er3,@-er1 ;01056d3cb150
+ xor.l @+er3,@er1+ ;01056d3c8150
+ xor.l @+er3,@er1- ;01056d3ca150
+ xor.l @+er3,@+er1 ;01056d3c9150
+ xor.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1509abc
+ xor.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9509abcdef0
+ xor.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2509abc
+ xor.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2509abc
+ xor.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2509abc
+ xor.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda509abcdef0
+ xor.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea509abcdef0
+ xor.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa509abcdef0
+ xor.l @+er3,@0xffff9abc:16 ;01056d3c40509abc
+ xor.l @+er3,@0x9abcdef0:32 ;01056d3c48509abcdef0
+
+ xor.l @(0x1234:16,er3),@er1 ;01046f3c12340150
+ xor.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343150
+ xor.l @(0x1234:16,er3),@-er1 ;01046f3c1234b150
+ xor.l @(0x1234:16,er3),@er1+ ;01046f3c12348150
+ xor.l @(0x1234:16,er3),@er1- ;01046f3c1234a150
+ xor.l @(0x1234:16,er3),@+er1 ;01046f3c12349150
+ xor.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1509abc
+ xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9509abcdef0
+ xor.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2509abc
+ xor.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2509abc
+ xor.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2509abc
+ xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da509abcdef0
+ xor.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea509abcdef0
+ xor.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa509abcdef0
+ xor.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440509abc
+ xor.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448509abcdef0
+
+ xor.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780150
+ xor.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783150
+ xor.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b150
+ xor.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788150
+ xor.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a150
+ xor.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789150
+ xor.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1509abc
+ xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9509abcdef0
+ xor.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2509abc
+ xor.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2509abc
+ xor.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2509abc
+ xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da509abcdef0
+ xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea509abcdef0
+ xor.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa509abcdef0
+ xor.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840509abc
+ xor.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848509abcdef0
+
+ xor.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340150
+ xor.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343150
+ xor.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b150
+ xor.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348150
+ xor.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a150
+ xor.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349150
+ xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1509abc
+ xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9509abcdef0
+ xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2509abc
+ xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2509abc
+ xor.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2509abc
+ xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da509abcdef0
+ xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea509abcdef0
+ xor.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa509abcdef0
+ xor.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440509abc
+ xor.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448509abcdef0
+
+ xor.l @(0x1234:16,r3.w),@er1 ;01066f3c12340150
+ xor.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343150
+ xor.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b150
+ xor.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348150
+ xor.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a150
+ xor.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349150
+ xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1509abc
+ xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9509abcdef0
+ xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2509abc
+ xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2509abc
+ xor.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2509abc
+ xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da509abcdef0
+ xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea509abcdef0
+ xor.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa509abcdef0
+ xor.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440509abc
+ xor.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448509abcdef0
+
+ xor.l @(0x1234:16,er3.l),@er1 ;01076f3c12340150
+ xor.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343150
+ xor.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b150
+ xor.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348150
+ xor.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a150
+ xor.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349150
+ xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1509abc
+ xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9509abcdef0
+ xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2509abc
+ xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2509abc
+ xor.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2509abc
+ xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da509abcdef0
+ xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea509abcdef0
+ xor.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa509abcdef0
+ xor.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440509abc
+ xor.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448509abcdef0
+
+ xor.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780150
+ xor.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783150
+ xor.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b150
+ xor.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788150
+ xor.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a150
+ xor.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789150
+ xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1509abc
+ xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9509abcdef0
+ xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2509abc
+ xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2509abc
+ xor.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2509abc
+ xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da509abcdef0
+ xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea509abcdef0
+ xor.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa509abcdef0
+ xor.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840509abc
+ xor.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848509abcdef0
+
+ xor.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780150
+ xor.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783150
+ xor.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b150
+ xor.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788150
+ xor.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a150
+ xor.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789150
+ xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1509abc
+ xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9509abcdef0
+ xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2509abc
+ xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2509abc
+ xor.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2509abc
+ xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da509abcdef0
+ xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea509abcdef0
+ xor.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa509abcdef0
+ xor.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840509abc
+ xor.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848509abcdef0
+
+ xor.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780150
+ xor.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783150
+ xor.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b150
+ xor.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788150
+ xor.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a150
+ xor.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789150
+ xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1509abc
+ xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9509abcdef0
+ xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2509abc
+ xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2509abc
+ xor.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2509abc
+ xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da509abcdef0
+ xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea509abcdef0
+ xor.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa509abcdef0
+ xor.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840509abc
+ xor.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848509abcdef0
+
+ xor.l @0x1234:16,@er1 ;01046b0c12340150
+ xor.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343150
+ xor.l @0x1234:16,@-er1 ;01046b0c1234b150
+ xor.l @0x1234:16,@er1+ ;01046b0c12348150
+ xor.l @0x1234:16,@er1- ;01046b0c1234a150
+ xor.l @0x1234:16,@+er1 ;01046b0c12349150
+ xor.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1509abc
+ xor.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9509abcdef0
+ xor.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2509abc
+ xor.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2509abc
+ xor.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2509abc
+ xor.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da509abcdef0
+ xor.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea509abcdef0
+ xor.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa509abcdef0
+ xor.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440509abc
+ xor.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448509abcdef0
+
+ xor.l @0x12345678:32,@er1 ;01046b2c123456780150
+ xor.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783150
+ xor.l @0x12345678:32,@-er1 ;01046b2c12345678b150
+ xor.l @0x12345678:32,@er1+ ;01046b2c123456788150
+ xor.l @0x12345678:32,@er1- ;01046b2c12345678a150
+ xor.l @0x12345678:32,@+er1 ;01046b2c123456789150
+ xor.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1509abc
+ xor.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9509abcdef0
+ xor.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2509abc
+ xor.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2509abc
+ xor.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2509abc
+ xor.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da509abcdef0
+ xor.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea509abcdef0
+ xor.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa509abcdef0
+ xor.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840509abc
+ xor.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848509abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t10_and.exp b/gdb/testsuite/gdb.disasm/t10_and.exp
new file mode 100644
index 0000000..63ae907
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t10_and.exp
@@ -0,0 +1,1866 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t10_and"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "and.b\t#0x12(:8|),r1h" \
+ "and.b #0x12:8,r1h"
+gdb_test "x" "and.b\t#0x12(:8|),@er1" \
+ "and.b #0x12:8,@er1"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x3(:2|),er1\\)" \
+ "and.b #0x12:8,@(0x3:2,er1)"
+gdb_test "x" "and.b\t#0x12(:8|),@er1\\+" \
+ "and.b #0x12:8,@er1+"
+gdb_test "x" "and.b\t#0x12(:8|),@-er1" \
+ "and.b #0x12:8,@-er1"
+gdb_test "x" "and.b\t#0x12(:8|),@\\+er1" \
+ "and.b #0x12:8,@+er1"
+gdb_test "x" "and.b\t#0x12(:8|),@er1-" \
+ "and.b #0x12:8,@er1-"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x1234(:16|),er1\\)" \
+ "and.b #0x12:8,@(0x1234:16,er1)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x12345678(:32|),er1\\)" \
+ "and.b #0x12:8,@(0x12345678:32,er1)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x1234(:16|),r2l.b\\)" \
+ "and.b #0x12:8,@(0x1234:16,r2l.b)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x1234(:16|),r2.w\\)" \
+ "and.b #0x12:8,@(0x1234:16,r2.w)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x1234(:16|),er2.l\\)" \
+ "and.b #0x12:8,@(0x1234:16,er2.l)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x12345678(:32|),r2l.b\\)" \
+ "and.b #0x12:8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x12345678(:32|),r2.w\\)" \
+ "and.b #0x12:8,@(0x12345678:32,r2.w)"
+gdb_test "x" "and.b\t#0x12(:8|),@\\(0x12345678(:32|),er2.l\\)" \
+ "and.b #0x12:8,@(0x12345678:32,er2.l)"
+gdb_test "x" "and.b\t#0x12(:8|),@0x12(:8|)" \
+ "and.b #0x12:8,@0x12:8"
+gdb_test "x" "and.b\t#0x12(:8|),@0x1234(:16|)" \
+ "and.b #0x12:8,@0x1234:16"
+gdb_test "x" "and.b\t#0x12(:8|),@0x12345678(:32|)" \
+ "and.b #0x12:8,@0x12345678:32"
+gdb_test "x" "and.b\tr3h,r1h" \
+ "and.b r3h,r1h"
+gdb_test "x" "and.b\tr3h,@er1" \
+ "and.b r3h,@er1"
+gdb_test "x" "and.b\tr3h,@\\(0x3(:2|),er1\\)" \
+ "and.b r3h,@(0x3:2,er1)"
+gdb_test "x" "and.b\tr3h,@er1\\+" \
+ "and.b r3h,@er1+"
+gdb_test "x" "and.b\tr3h,@-er1" \
+ "and.b r3h,@-er1"
+gdb_test "x" "and.b\tr3h,@\\+er1" \
+ "and.b r3h,@+er1"
+gdb_test "x" "and.b\tr3h,@er1-" \
+ "and.b r3h,@er1-"
+gdb_test "x" "and.b\tr3h,@\\(0x1234(:16|),er1\\)" \
+ "and.b r3h,@(0x1234:16,er1)"
+gdb_test "x" "and.b\tr3h,@\\(0x12345678(:32|),er1\\)" \
+ "and.b r3h,@(0x12345678:32,er1)"
+gdb_test "x" "and.b\tr3h,@\\(0x1234(:16|),r2l.b\\)" \
+ "and.b r3h,@(0x1234:16,r2l.b)"
+gdb_test "x" "and.b\tr3h,@\\(0x1234(:16|),r2.w\\)" \
+ "and.b r3h,@(0x1234:16,r2.w)"
+gdb_test "x" "and.b\tr3h,@\\(0x1234(:16|),er2.l\\)" \
+ "and.b r3h,@(0x1234:16,er2.l)"
+gdb_test "x" "and.b\tr3h,@\\(0x12345678(:32|),r2l.b\\)" \
+ "and.b r3h,@(0x12345678:32,r2l.b)"
+gdb_test "x" "and.b\tr3h,@\\(0x12345678(:32|),r2.w\\)" \
+ "and.b r3h,@(0x12345678:32,r2.w)"
+gdb_test "x" "and.b\tr3h,@\\(0x12345678(:32|),er2.l\\)" \
+ "and.b r3h,@(0x12345678:32,er2.l)"
+gdb_test "x" "and.b\tr3h,@0x12(:8|)" \
+ "and.b r3h,@0x12:8"
+gdb_test "x" "and.b\tr3h,@0x1234(:16|)" \
+ "and.b r3h,@0x1234:16"
+gdb_test "x" "and.b\tr3h,@0x12345678(:32|)" \
+ "and.b r3h,@0x12345678:32"
+gdb_test "x" "and.b\t@er3,r1h" \
+ "and.b @er3,r1h"
+gdb_test "x" "and.b\t@\\(0x3(:2|),er3\\),r1h" \
+ "and.b @(0x3:2,er3),r1h"
+gdb_test "x" "and.b\t@er3\\+,r1h" \
+ "and.b @er3+,r1h"
+gdb_test "x" "and.b\t@-er3,r1h" \
+ "and.b @-er3,r1h"
+gdb_test "x" "and.b\t@\\+er3,r1h" \
+ "and.b @+er3,r1h"
+gdb_test "x" "and.b\t@er3-,r1h" \
+ "and.b @er3-,r1h"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er1\\),r1h" \
+ "and.b @(0x1234:16,er1),r1h"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er1\\),r1h" \
+ "and.b @(0x12345678:32,er1),r1h"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r2l.b\\),r1h" \
+ "and.b @(0x1234:16,r2l.b),r1h"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r2.w\\),r1h" \
+ "and.b @(0x1234:16,r2.w),r1h"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er2.l\\),r1h" \
+ "and.b @(0x1234:16,er2.l),r1h"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r2l.b\\),r1h" \
+ "and.b @(0x12345678:32,r2l.b),r1h"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r2.w\\),r1h" \
+ "and.b @(0x12345678:32,r2.w),r1h"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er2.l\\),r1h" \
+ "and.b @(0x12345678:32,er2.l),r1h"
+gdb_test "x" "and.b\t@0x12(:8|),r1h" \
+ "and.b @0x12:8,r1h"
+gdb_test "x" "and.b\t@0x1234(:16|),r1h" \
+ "and.b @0x1234:16,r1h"
+gdb_test "x" "and.b\t@0x12345678(:32|),r1h" \
+ "and.b @0x12345678:32,r1h"
+gdb_test "x" "and.b\t@er3,@er1" \
+ "and.b @er3,@er1"
+gdb_test "x" "and.b\t@er3,@\\(0x3(:2|),er1\\)" \
+ "and.b @er3,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@er3,@-er1" \
+ "and.b @er3,@-er1"
+gdb_test "x" "and.b\t@er3,@er1\\+" \
+ "and.b @er3,@er1+"
+gdb_test "x" "and.b\t@er3,@er1-" \
+ "and.b @er3,@er1-"
+gdb_test "x" "and.b\t@er3,@\\+er1" \
+ "and.b @er3,@+er1"
+gdb_test "x" "and.b\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.b @er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@er3,@0x9abc(:16|)" \
+ "and.b @er3,@0x9abc:16"
+gdb_test "x" "and.b\t@er3,@0x9abcdef0(:32|)" \
+ "and.b @er3,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@-er3,@er1" \
+ "and.b @-er3,@er1"
+gdb_test "x" "and.b\t@-er3,@\\(0x3(:2|),er1\\)" \
+ "and.b @-er3,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@-er3,@-er1" \
+ "and.b @-er3,@-er1"
+gdb_test "x" "and.b\t@-er3,@er1\\+" \
+ "and.b @-er3,@er1+"
+gdb_test "x" "and.b\t@-er3,@er1-" \
+ "and.b @-er3,@er1-"
+gdb_test "x" "and.b\t@-er3,@\\+er1" \
+ "and.b @-er3,@+er1"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.b @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@-er3,@0x9abc(:16|)" \
+ "and.b @-er3,@0x9abc:16"
+gdb_test "x" "and.b\t@-er3,@0x9abcdef0(:32|)" \
+ "and.b @-er3,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@er3\\+,@er1" \
+ "and.b @er3+,@er1"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x3(:2|),er1\\)" \
+ "and.b @er3+,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@er3\\+,@-er1" \
+ "and.b @er3+,@-er1"
+gdb_test "x" "and.b\t@er3\\+,@er1\\+" \
+ "and.b @er3+,@er1+"
+gdb_test "x" "and.b\t@er3\\+,@er1-" \
+ "and.b @er3+,@er1-"
+gdb_test "x" "and.b\t@er3\\+,@\\+er1" \
+ "and.b @er3+,@+er1"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "and.b @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@er3\\+,@0x9abc(:16|)" \
+ "and.b @er3+,@0x9abc:16"
+gdb_test "x" "and.b\t@er3\\+,@0x9abcdef0(:32|)" \
+ "and.b @er3+,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@er3-,@er1" \
+ "and.b @er3-,@er1"
+gdb_test "x" "and.b\t@er3-,@\\(0x3(:2|),er1\\)" \
+ "and.b @er3-,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@er3-,@-er1" \
+ "and.b @er3-,@-er1"
+gdb_test "x" "and.b\t@er3-,@er1\\+" \
+ "and.b @er3-,@er1+"
+gdb_test "x" "and.b\t@er3-,@er1-" \
+ "and.b @er3-,@er1-"
+gdb_test "x" "and.b\t@er3-,@\\+er1" \
+ "and.b @er3-,@+er1"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "and.b @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@er3-,@0x9abc(:16|)" \
+ "and.b @er3-,@0x9abc:16"
+gdb_test "x" "and.b\t@er3-,@0x9abcdef0(:32|)" \
+ "and.b @er3-,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\+er3,@er1" \
+ "and.b @+er3,@er1"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x3(:2|),er1\\)" \
+ "and.b @+er3,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\+er3,@-er1" \
+ "and.b @+er3,@-er1"
+gdb_test "x" "and.b\t@\\+er3,@er1\\+" \
+ "and.b @+er3,@er1+"
+gdb_test "x" "and.b\t@\\+er3,@er1-" \
+ "and.b @+er3,@er1-"
+gdb_test "x" "and.b\t@\\+er3,@\\+er1" \
+ "and.b @+er3,@+er1"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.b @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\+er3,@0x9abc(:16|)" \
+ "and.b @+er3,@0x9abc:16"
+gdb_test "x" "and.b\t@\\+er3,@0x9abcdef0(:32|)" \
+ "and.b @+er3,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@er1" \
+ "and.b @(0x1234:16,er3),@er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x1234:16,er3),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "and.b @(0x1234:16,er3),@-er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "and.b @(0x1234:16,er3),@er1+"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "and.b @(0x1234:16,er3),@er1-"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "and.b @(0x1234:16,er3),@+er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "and.b @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "and.b @(0x12345678:32,er3),@er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x12345678:32,er3),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "and.b @(0x12345678:32,er3),@-er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "and.b @(0x12345678:32,er3),@er1+"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "and.b @(0x12345678:32,er3),@er1-"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "and.b @(0x12345678:32,er3),@+er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "and.b @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "and.b @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "and.b @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "and.b @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "and.b @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "and.b @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "and.b @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "and.b @(0x1234:16,r3.w),@er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "and.b @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "and.b @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "and.b @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "and.b @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "and.b @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "and.b @(0x1234:16,er3.l),@er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "and.b @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "and.b @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "and.b @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "and.b @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "and.b @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "and.b @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "and.b @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "and.b @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "and.b @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "and.b @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "and.b @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "and.b @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "and.b @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "and.b @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "and.b @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "and.b @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "and.b @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "and.b @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x3(:2|),er1\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x3:2,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "and.b @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "and.b @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "and.b @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "and.b @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "and.b @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "and.b\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.b @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.b\t@0x1234(:16|),@er1" \
+ "and.b @0x1234:16,@er1"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x3(:2|),er1\\)" \
+ "and.b @0x1234:16,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@0x1234(:16|),@-er1" \
+ "and.b @0x1234:16,@-er1"
+gdb_test "x" "and.b\t@0x1234(:16|),@er1\\+" \
+ "and.b @0x1234:16,@er1+"
+gdb_test "x" "and.b\t@0x1234(:16|),@er1-" \
+ "and.b @0x1234:16,@er1-"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\+er1" \
+ "and.b @0x1234:16,@+er1"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@0x1234(:16|),@0x9abc(:16|)" \
+ "and.b @0x1234:16,@0x9abc:16"
+gdb_test "x" "and.b\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "and.b @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "and.b\t@0x12345678(:32|),@er1" \
+ "and.b @0x12345678:32,@er1"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x3(:2|),er1\\)" \
+ "and.b @0x12345678:32,@(0x3:2,er1)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@-er1" \
+ "and.b @0x12345678:32,@-er1"
+gdb_test "x" "and.b\t@0x12345678(:32|),@er1\\+" \
+ "and.b @0x12345678:32,@er1+"
+gdb_test "x" "and.b\t@0x12345678(:32|),@er1-" \
+ "and.b @0x12345678:32,@er1-"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\+er1" \
+ "and.b @0x12345678:32,@+er1"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "and.b @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.b @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.b @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.b @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.b @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.b @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.b @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.b @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.b\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "and.b @0x12345678:32,@0x9abc:16"
+gdb_test "x" "and.b\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "and.b @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "and.w\t#0x1234(:16|),r1" \
+ "and.w #0x1234:16,r1"
+gdb_test "x" "and.w\t#0x1234(:16|),@er1" \
+ "and.w #0x1234:16,@er1"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "and.w #0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "and.w\t#0x1234(:16|),@er1\\+" \
+ "and.w #0x1234:16,@er1+"
+gdb_test "x" "and.w\t#0x1234(:16|),@-er1" \
+ "and.w #0x1234:16,@-er1"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\+er1" \
+ "and.w #0x1234:16,@+er1"
+gdb_test "x" "and.w\t#0x1234(:16|),@er1-" \
+ "and.w #0x1234:16,@er1-"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "and.w #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t#0x1234(:16|),@0x9abc(:16|)" \
+ "and.w #0x1234:16,@0x9abc:16"
+gdb_test "x" "and.w\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "and.w #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "and.w\tr3,r1" \
+ "and.w r3,r1"
+gdb_test "x" "and.w\tr3,@er1" \
+ "and.w r3,@er1"
+gdb_test "x" "and.w\tr3,@\\(0x6(:2|),er1\\)" \
+ "and.w r3,@(0x6:2,er1)"
+gdb_test "x" "and.w\tr3,@er1\\+" \
+ "and.w r3,@er1+"
+gdb_test "x" "and.w\tr3,@-er1" \
+ "and.w r3,@-er1"
+gdb_test "x" "and.w\tr3,@\\+er1" \
+ "and.w r3,@+er1"
+gdb_test "x" "and.w\tr3,@er1-" \
+ "and.w r3,@er1-"
+gdb_test "x" "and.w\tr3,@\\(0x1234(:16|),er1\\)" \
+ "and.w r3,@(0x1234:16,er1)"
+gdb_test "x" "and.w\tr3,@\\(0x12345678(:32|),er1\\)" \
+ "and.w r3,@(0x12345678:32,er1)"
+gdb_test "x" "and.w\tr3,@\\(0x1234(:16|),r2l.b\\)" \
+ "and.w r3,@(0x1234:16,r2l.b)"
+gdb_test "x" "and.w\tr3,@\\(0x1234(:16|),r2.w\\)" \
+ "and.w r3,@(0x1234:16,r2.w)"
+gdb_test "x" "and.w\tr3,@\\(0x1234(:16|),er2.l\\)" \
+ "and.w r3,@(0x1234:16,er2.l)"
+gdb_test "x" "and.w\tr3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "and.w r3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "and.w\tr3,@\\(0x12345678(:32|),r2.w\\)" \
+ "and.w r3,@(0x12345678:32,r2.w)"
+gdb_test "x" "and.w\tr3,@\\(0x12345678(:32|),er2.l\\)" \
+ "and.w r3,@(0x12345678:32,er2.l)"
+gdb_test "x" "and.w\tr3,@0x1234(:16|)" \
+ "and.w r3,@0x1234:16"
+gdb_test "x" "and.w\tr3,@0x12345678(:32|)" \
+ "and.w r3,@0x12345678:32"
+gdb_test "x" "and.w\t@er3,r1" \
+ "and.w @er3,r1"
+gdb_test "x" "and.w\t@\\(0x6(:2|),er3\\),r1" \
+ "and.w @(0x6:2,er3),r1"
+gdb_test "x" "and.w\t@er3\\+,r1" \
+ "and.w @er3+,r1"
+gdb_test "x" "and.w\t@-er3,r1" \
+ "and.w @-er3,r1"
+gdb_test "x" "and.w\t@\\+er3,r1" \
+ "and.w @+er3,r1"
+gdb_test "x" "and.w\t@er3-,r1" \
+ "and.w @er3-,r1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er1\\),r1" \
+ "and.w @(0x1234:16,er1),r1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er1\\),r1" \
+ "and.w @(0x12345678:32,er1),r1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r2l.b\\),r1" \
+ "and.w @(0x1234:16,r2l.b),r1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r2.w\\),r1" \
+ "and.w @(0x1234:16,r2.w),r1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er2.l\\),r1" \
+ "and.w @(0x1234:16,er2.l),r1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r2l.b\\),r1" \
+ "and.w @(0x12345678:32,r2l.b),r1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r2.w\\),r1" \
+ "and.w @(0x12345678:32,r2.w),r1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er2.l\\),r1" \
+ "and.w @(0x12345678:32,er2.l),r1"
+gdb_test "x" "and.w\t@0x1234(:16|),r1" \
+ "and.w @0x1234:16,r1"
+gdb_test "x" "and.w\t@0x12345678(:32|),r1" \
+ "and.w @0x12345678:32,r1"
+gdb_test "x" "and.w\t@er3,@er1" \
+ "and.w @er3,@er1"
+gdb_test "x" "and.w\t@er3,@\\(0x6(:2|),er1\\)" \
+ "and.w @er3,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@er3,@-er1" \
+ "and.w @er3,@-er1"
+gdb_test "x" "and.w\t@er3,@er1\\+" \
+ "and.w @er3,@er1+"
+gdb_test "x" "and.w\t@er3,@er1-" \
+ "and.w @er3,@er1-"
+gdb_test "x" "and.w\t@er3,@\\+er1" \
+ "and.w @er3,@+er1"
+gdb_test "x" "and.w\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.w @er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@er3,@0x9abc(:16|)" \
+ "and.w @er3,@0x9abc:16"
+gdb_test "x" "and.w\t@er3,@0x9abcdef0(:32|)" \
+ "and.w @er3,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@-er3,@er1" \
+ "and.w @-er3,@er1"
+gdb_test "x" "and.w\t@-er3,@\\(0x6(:2|),er1\\)" \
+ "and.w @-er3,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@-er3,@-er1" \
+ "and.w @-er3,@-er1"
+gdb_test "x" "and.w\t@-er3,@er1\\+" \
+ "and.w @-er3,@er1+"
+gdb_test "x" "and.w\t@-er3,@er1-" \
+ "and.w @-er3,@er1-"
+gdb_test "x" "and.w\t@-er3,@\\+er1" \
+ "and.w @-er3,@+er1"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.w @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@-er3,@0x9abc(:16|)" \
+ "and.w @-er3,@0x9abc:16"
+gdb_test "x" "and.w\t@-er3,@0x9abcdef0(:32|)" \
+ "and.w @-er3,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@er3\\+,@er1" \
+ "and.w @er3+,@er1"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x6(:2|),er1\\)" \
+ "and.w @er3+,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@er3\\+,@-er1" \
+ "and.w @er3+,@-er1"
+gdb_test "x" "and.w\t@er3\\+,@er1\\+" \
+ "and.w @er3+,@er1+"
+gdb_test "x" "and.w\t@er3\\+,@er1-" \
+ "and.w @er3+,@er1-"
+gdb_test "x" "and.w\t@er3\\+,@\\+er1" \
+ "and.w @er3+,@+er1"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "and.w @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@er3\\+,@0x9abc(:16|)" \
+ "and.w @er3+,@0x9abc:16"
+gdb_test "x" "and.w\t@er3\\+,@0x9abcdef0(:32|)" \
+ "and.w @er3+,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@er3-,@er1" \
+ "and.w @er3-,@er1"
+gdb_test "x" "and.w\t@er3-,@\\(0x6(:2|),er1\\)" \
+ "and.w @er3-,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@er3-,@-er1" \
+ "and.w @er3-,@-er1"
+gdb_test "x" "and.w\t@er3-,@er1\\+" \
+ "and.w @er3-,@er1+"
+gdb_test "x" "and.w\t@er3-,@er1-" \
+ "and.w @er3-,@er1-"
+gdb_test "x" "and.w\t@er3-,@\\+er1" \
+ "and.w @er3-,@+er1"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "and.w @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@er3-,@0x9abc(:16|)" \
+ "and.w @er3-,@0x9abc:16"
+gdb_test "x" "and.w\t@er3-,@0x9abcdef0(:32|)" \
+ "and.w @er3-,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\+er3,@er1" \
+ "and.w @+er3,@er1"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x6(:2|),er1\\)" \
+ "and.w @+er3,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\+er3,@-er1" \
+ "and.w @+er3,@-er1"
+gdb_test "x" "and.w\t@\\+er3,@er1\\+" \
+ "and.w @+er3,@er1+"
+gdb_test "x" "and.w\t@\\+er3,@er1-" \
+ "and.w @+er3,@er1-"
+gdb_test "x" "and.w\t@\\+er3,@\\+er1" \
+ "and.w @+er3,@+er1"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.w @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\+er3,@0x9abc(:16|)" \
+ "and.w @+er3,@0x9abc:16"
+gdb_test "x" "and.w\t@\\+er3,@0x9abcdef0(:32|)" \
+ "and.w @+er3,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@er1" \
+ "and.w @(0x1234:16,er3),@er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x1234:16,er3),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "and.w @(0x1234:16,er3),@-er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "and.w @(0x1234:16,er3),@er1+"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "and.w @(0x1234:16,er3),@er1-"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "and.w @(0x1234:16,er3),@+er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "and.w @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "and.w @(0x12345678:32,er3),@er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x12345678:32,er3),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "and.w @(0x12345678:32,er3),@-er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "and.w @(0x12345678:32,er3),@er1+"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "and.w @(0x12345678:32,er3),@er1-"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "and.w @(0x12345678:32,er3),@+er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "and.w @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "and.w @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "and.w @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "and.w @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "and.w @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "and.w @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "and.w @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "and.w @(0x1234:16,r3.w),@er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "and.w @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "and.w @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "and.w @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "and.w @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "and.w @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "and.w @(0x1234:16,er3.l),@er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "and.w @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "and.w @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "and.w @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "and.w @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "and.w @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "and.w @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "and.w @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "and.w @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "and.w @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "and.w @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "and.w @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "and.w @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "and.w @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "and.w @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "and.w @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "and.w @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "and.w @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "and.w @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x6(:2|),er1\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x6:2,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "and.w @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "and.w @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "and.w @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "and.w @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "and.w @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "and.w\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.w @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.w\t@0x1234(:16|),@er1" \
+ "and.w @0x1234:16,@er1"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x6(:2|),er1\\)" \
+ "and.w @0x1234:16,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@0x1234(:16|),@-er1" \
+ "and.w @0x1234:16,@-er1"
+gdb_test "x" "and.w\t@0x1234(:16|),@er1\\+" \
+ "and.w @0x1234:16,@er1+"
+gdb_test "x" "and.w\t@0x1234(:16|),@er1-" \
+ "and.w @0x1234:16,@er1-"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\+er1" \
+ "and.w @0x1234:16,@+er1"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@0x1234(:16|),@0x9abc(:16|)" \
+ "and.w @0x1234:16,@0x9abc:16"
+gdb_test "x" "and.w\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "and.w @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "and.w\t@0x12345678(:32|),@er1" \
+ "and.w @0x12345678:32,@er1"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x6(:2|),er1\\)" \
+ "and.w @0x12345678:32,@(0x6:2,er1)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@-er1" \
+ "and.w @0x12345678:32,@-er1"
+gdb_test "x" "and.w\t@0x12345678(:32|),@er1\\+" \
+ "and.w @0x12345678:32,@er1+"
+gdb_test "x" "and.w\t@0x12345678(:32|),@er1-" \
+ "and.w @0x12345678:32,@er1-"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\+er1" \
+ "and.w @0x12345678:32,@+er1"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "and.w @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.w @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.w @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.w @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.w @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.w @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.w @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.w @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.w\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "and.w @0x12345678:32,@0x9abc:16"
+gdb_test "x" "and.w\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "and.w @0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "and.l\t#0x12345678(:32|),er1" \
+ "and.l #0x12345678:32,er1"
+gdb_test "x" "and.l\t#0x1234(:16|),er1" \
+ "and.l #0x1234:16,er1"
+gdb_test "x" "and.l\t#0x12345678(:32|),@er1" \
+ "and.l #0x12345678:32,@er1"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "and.l #0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@er1\\+" \
+ "and.l #0x12345678:32,@er1+"
+gdb_test "x" "and.l\t#0x12345678(:32|),@-er1" \
+ "and.l #0x12345678:32,@-er1"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\+er1" \
+ "and.l #0x12345678:32,@+er1"
+gdb_test "x" "and.l\t#0x12345678(:32|),@er1-" \
+ "and.l #0x12345678:32,@er1-"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "and.l #0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l #0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l #0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l #0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l #0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l #0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l #0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l #0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t#0x12345678(:32|),@0x9abc(:16|)" \
+ "and.l #0x12345678:32,@0x9abc:16"
+gdb_test "x" "and.l\t#0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "and.l #0x12345678:32,@0x9abcdef0:32"
+gdb_test "x" "and.l\t#0x1234(:16|),@er1" \
+ "and.l #0x1234:16,@er1"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "and.l #0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "and.l\t#0x1234(:16|),@er1\\+" \
+ "and.l #0x1234:16,@er1+"
+gdb_test "x" "and.l\t#0x1234(:16|),@-er1" \
+ "and.l #0x1234:16,@-er1"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\+er1" \
+ "and.l #0x1234:16,@+er1"
+gdb_test "x" "and.l\t#0x1234(:16|),@er1-" \
+ "and.l #0x1234:16,@er1-"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "and.l #0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l #0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l #0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l #0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l #0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l #0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l #0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t#0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l #0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t#0x1234(:16|),@0x9abc(:16|)" \
+ "and.l #0x1234:16,@0x9abc:16"
+gdb_test "x" "and.l\t#0x1234(:16|),@0x9abcdef0(:32|)" \
+ "and.l #0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "and.l\ter3,er1" \
+ "and.l er3,er1"
+gdb_test "x" "and.l\ter3,@er1" \
+ "and.l er3,@er1"
+gdb_test "x" "and.l\ter3,@\\(0xc(:2|),er1\\)" \
+ "and.l er3,@(0xc:2,er1)"
+gdb_test "x" "and.l\ter3,@er1\\+" \
+ "and.l er3,@er1+"
+gdb_test "x" "and.l\ter3,@-er1" \
+ "and.l er3,@-er1"
+gdb_test "x" "and.l\ter3,@\\+er1" \
+ "and.l er3,@+er1"
+gdb_test "x" "and.l\ter3,@er1-" \
+ "and.l er3,@er1-"
+gdb_test "x" "and.l\ter3,@\\(0x1234(:16|),er1\\)" \
+ "and.l er3,@(0x1234:16,er1)"
+gdb_test "x" "and.l\ter3,@\\(0x12345678(:32|),er1\\)" \
+ "and.l er3,@(0x12345678:32,er1)"
+gdb_test "x" "and.l\ter3,@\\(0x1234(:16|),r2l.b\\)" \
+ "and.l er3,@(0x1234:16,r2l.b)"
+gdb_test "x" "and.l\ter3,@\\(0x1234(:16|),r2.w\\)" \
+ "and.l er3,@(0x1234:16,r2.w)"
+gdb_test "x" "and.l\ter3,@\\(0x1234(:16|),er2.l\\)" \
+ "and.l er3,@(0x1234:16,er2.l)"
+gdb_test "x" "and.l\ter3,@\\(0x12345678(:32|),r2l.b\\)" \
+ "and.l er3,@(0x12345678:32,r2l.b)"
+gdb_test "x" "and.l\ter3,@\\(0x12345678(:32|),r2.w\\)" \
+ "and.l er3,@(0x12345678:32,r2.w)"
+gdb_test "x" "and.l\ter3,@\\(0x12345678(:32|),er2.l\\)" \
+ "and.l er3,@(0x12345678:32,er2.l)"
+gdb_test "x" "and.l\ter3,@0x1234(:16|)" \
+ "and.l er3,@0x1234:16"
+gdb_test "x" "and.l\ter3,@0x12345678(:32|)" \
+ "and.l er3,@0x12345678:32"
+gdb_test "x" "and.l\t@er3,er1" \
+ "and.l @er3,er1"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),er1" \
+ "and.l @(0xc:2,er3),er1"
+gdb_test "x" "and.l\t@er3\\+,er1" \
+ "and.l @er3+,er1"
+gdb_test "x" "and.l\t@-er3,er1" \
+ "and.l @-er3,er1"
+gdb_test "x" "and.l\t@\\+er3,er1" \
+ "and.l @+er3,er1"
+gdb_test "x" "and.l\t@er3-,er1" \
+ "and.l @er3-,er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er1\\),er1" \
+ "and.l @(0x1234:16,er1),er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er1\\),er1" \
+ "and.l @(0x12345678:32,er1),er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r2l.b\\),er1" \
+ "and.l @(0x1234:16,r2l.b),er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r2.w\\),er1" \
+ "and.l @(0x1234:16,r2.w),er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er2.l\\),er1" \
+ "and.l @(0x1234:16,er2.l),er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r2l.b\\),er1" \
+ "and.l @(0x12345678:32,r2l.b),er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r2.w\\),er1" \
+ "and.l @(0x12345678:32,r2.w),er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er2.l\\),er1" \
+ "and.l @(0x12345678:32,er2.l),er1"
+gdb_test "x" "and.l\t@0x1234(:16|),er1" \
+ "and.l @0x1234:16,er1"
+gdb_test "x" "and.l\t@0x12345678(:32|),er1" \
+ "and.l @0x12345678:32,er1"
+gdb_test "x" "and.l\t@er3,@er1" \
+ "and.l @er3,@er1"
+gdb_test "x" "and.l\t@er3,@\\(0xc(:2|),er1\\)" \
+ "and.l @er3,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@er3,@-er1" \
+ "and.l @er3,@-er1"
+gdb_test "x" "and.l\t@er3,@er1\\+" \
+ "and.l @er3,@er1+"
+gdb_test "x" "and.l\t@er3,@er1-" \
+ "and.l @er3,@er1-"
+gdb_test "x" "and.l\t@er3,@\\+er1" \
+ "and.l @er3,@+er1"
+gdb_test "x" "and.l\t@er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.l @er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@er3,@0x9abc(:16|)" \
+ "and.l @er3,@0x9abc:16"
+gdb_test "x" "and.l\t@er3,@0x9abcdef0(:32|)" \
+ "and.l @er3,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@er1" \
+ "and.l @(0xc:2,er3),@er1"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0xc:2,er3),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@-er1" \
+ "and.l @(0xc:2,er3),@-er1"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@er1\\+" \
+ "and.l @(0xc:2,er3),@er1+"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@er1-" \
+ "and.l @(0xc:2,er3),@er1-"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\+er1" \
+ "and.l @(0xc:2,er3),@+er1"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0xc:2,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0xc:2,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0xc:2,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0xc:2,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0xc:2,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@0x9abc(:16|)" \
+ "and.l @(0xc:2,er3),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0xc(:2|),er3\\),@0x9abcdef0(:32|)" \
+ "and.l @(0xc:2,er3),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@-er3,@er1" \
+ "and.l @-er3,@er1"
+gdb_test "x" "and.l\t@-er3,@\\(0xc(:2|),er1\\)" \
+ "and.l @-er3,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@-er3,@-er1" \
+ "and.l @-er3,@-er1"
+gdb_test "x" "and.l\t@-er3,@er1\\+" \
+ "and.l @-er3,@er1+"
+gdb_test "x" "and.l\t@-er3,@er1-" \
+ "and.l @-er3,@er1-"
+gdb_test "x" "and.l\t@-er3,@\\+er1" \
+ "and.l @-er3,@+er1"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.l @-er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @-er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @-er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @-er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @-er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @-er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @-er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@-er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @-er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@-er3,@0x9abc(:16|)" \
+ "and.l @-er3,@0x9abc:16"
+gdb_test "x" "and.l\t@-er3,@0x9abcdef0(:32|)" \
+ "and.l @-er3,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@er3\\+,@er1" \
+ "and.l @er3+,@er1"
+gdb_test "x" "and.l\t@er3\\+,@\\(0xc(:2|),er1\\)" \
+ "and.l @er3+,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@er3\\+,@-er1" \
+ "and.l @er3+,@-er1"
+gdb_test "x" "and.l\t@er3\\+,@er1\\+" \
+ "and.l @er3+,@er1+"
+gdb_test "x" "and.l\t@er3\\+,@er1-" \
+ "and.l @er3+,@er1-"
+gdb_test "x" "and.l\t@er3\\+,@\\+er1" \
+ "and.l @er3+,@+er1"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abc(:16|),er1\\)" \
+ "and.l @er3+,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @er3+,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @er3+,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @er3+,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @er3+,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @er3+,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @er3+,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@er3\\+,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @er3+,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@er3\\+,@0x9abc(:16|)" \
+ "and.l @er3+,@0x9abc:16"
+gdb_test "x" "and.l\t@er3\\+,@0x9abcdef0(:32|)" \
+ "and.l @er3+,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@er3-,@er1" \
+ "and.l @er3-,@er1"
+gdb_test "x" "and.l\t@er3-,@\\(0xc(:2|),er1\\)" \
+ "and.l @er3-,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@er3-,@-er1" \
+ "and.l @er3-,@-er1"
+gdb_test "x" "and.l\t@er3-,@er1\\+" \
+ "and.l @er3-,@er1+"
+gdb_test "x" "and.l\t@er3-,@er1-" \
+ "and.l @er3-,@er1-"
+gdb_test "x" "and.l\t@er3-,@\\+er1" \
+ "and.l @er3-,@+er1"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abc(:16|),er1\\)" \
+ "and.l @er3-,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @er3-,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @er3-,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @er3-,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @er3-,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @er3-,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @er3-,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@er3-,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @er3-,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@er3-,@0x9abc(:16|)" \
+ "and.l @er3-,@0x9abc:16"
+gdb_test "x" "and.l\t@er3-,@0x9abcdef0(:32|)" \
+ "and.l @er3-,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\+er3,@er1" \
+ "and.l @+er3,@er1"
+gdb_test "x" "and.l\t@\\+er3,@\\(0xc(:2|),er1\\)" \
+ "and.l @+er3,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\+er3,@-er1" \
+ "and.l @+er3,@-er1"
+gdb_test "x" "and.l\t@\\+er3,@er1\\+" \
+ "and.l @+er3,@er1+"
+gdb_test "x" "and.l\t@\\+er3,@er1-" \
+ "and.l @+er3,@er1-"
+gdb_test "x" "and.l\t@\\+er3,@\\+er1" \
+ "and.l @+er3,@+er1"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abc(:16|),er1\\)" \
+ "and.l @+er3,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @+er3,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @+er3,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @+er3,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @+er3,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @+er3,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @+er3,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\+er3,@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @+er3,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\+er3,@0x9abc(:16|)" \
+ "and.l @+er3,@0x9abc:16"
+gdb_test "x" "and.l\t@\\+er3,@0x9abcdef0(:32|)" \
+ "and.l @+er3,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@er1" \
+ "and.l @(0x1234:16,er3),@er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x1234:16,er3),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@-er1" \
+ "and.l @(0x1234:16,er3),@-er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@er1\\+" \
+ "and.l @(0x1234:16,er3),@er1+"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@er1-" \
+ "and.l @(0x1234:16,er3),@er1-"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\+er1" \
+ "and.l @(0x1234:16,er3),@+er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@0x9abc(:16|)" \
+ "and.l @(0x1234:16,er3),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x1234:16,er3),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@er1" \
+ "and.l @(0x12345678:32,er3),@er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x12345678:32,er3),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@-er1" \
+ "and.l @(0x12345678:32,er3),@-er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@er1\\+" \
+ "and.l @(0x12345678:32,er3),@er1+"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@er1-" \
+ "and.l @(0x12345678:32,er3),@er1-"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\+er1" \
+ "and.l @(0x12345678:32,er3),@+er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@0x9abc(:16|)" \
+ "and.l @(0x12345678:32,er3),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x12345678:32,er3),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@er1" \
+ "and.l @(0x1234:16,r3l.b),@er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@-er1" \
+ "and.l @(0x1234:16,r3l.b),@-er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@er1\\+" \
+ "and.l @(0x1234:16,r3l.b),@er1+"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@er1-" \
+ "and.l @(0x1234:16,r3l.b),@er1-"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\+er1" \
+ "and.l @(0x1234:16,r3l.b),@+er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abc(:16|)" \
+ "and.l @(0x1234:16,r3l.b),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x1234:16,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@er1" \
+ "and.l @(0x1234:16,r3.w),@er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x1234:16,r3.w),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@-er1" \
+ "and.l @(0x1234:16,r3.w),@-er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@er1\\+" \
+ "and.l @(0x1234:16,r3.w),@er1+"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@er1-" \
+ "and.l @(0x1234:16,r3.w),@er1-"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\+er1" \
+ "and.l @(0x1234:16,r3.w),@+er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@0x9abc(:16|)" \
+ "and.l @(0x1234:16,r3.w),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x1234:16,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@er1" \
+ "and.l @(0x1234:16,er3.l),@er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x1234:16,er3.l),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@-er1" \
+ "and.l @(0x1234:16,er3.l),@-er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@er1\\+" \
+ "and.l @(0x1234:16,er3.l),@er1+"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@er1-" \
+ "and.l @(0x1234:16,er3.l),@er1-"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\+er1" \
+ "and.l @(0x1234:16,er3.l),@+er1"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@0x9abc(:16|)" \
+ "and.l @(0x1234:16,er3.l),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x1234(:16|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x1234:16,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@er1" \
+ "and.l @(0x12345678:32,r3l.b),@er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@-er1" \
+ "and.l @(0x12345678:32,r3l.b),@-er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@er1\\+" \
+ "and.l @(0x12345678:32,r3l.b),@er1+"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@er1-" \
+ "and.l @(0x12345678:32,r3l.b),@er1-"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\+er1" \
+ "and.l @(0x12345678:32,r3l.b),@+er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abc(:16|)" \
+ "and.l @(0x12345678:32,r3l.b),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3l.b\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x12345678:32,r3l.b),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@er1" \
+ "and.l @(0x12345678:32,r3.w),@er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@-er1" \
+ "and.l @(0x12345678:32,r3.w),@-er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@er1\\+" \
+ "and.l @(0x12345678:32,r3.w),@er1+"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@er1-" \
+ "and.l @(0x12345678:32,r3.w),@er1-"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\+er1" \
+ "and.l @(0x12345678:32,r3.w),@+er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abc(:16|)" \
+ "and.l @(0x12345678:32,r3.w),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),r3.w\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x12345678:32,r3.w),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@er1" \
+ "and.l @(0x12345678:32,er3.l),@er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0xc(:2|),er1\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0xc:2,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@-er1" \
+ "and.l @(0x12345678:32,er3.l),@-er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@er1\\+" \
+ "and.l @(0x12345678:32,er3.l),@er1+"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@er1-" \
+ "and.l @(0x12345678:32,er3.l),@er1-"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\+er1" \
+ "and.l @(0x12345678:32,er3.l),@+er1"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abc(:16|)" \
+ "and.l @(0x12345678:32,er3.l),@0x9abc:16"
+gdb_test "x" "and.l\t@\\(0x12345678(:32|),er3.l\\),@0x9abcdef0(:32|)" \
+ "and.l @(0x12345678:32,er3.l),@0x9abcdef0:32"
+gdb_test "x" "and.l\t@0x1234(:16|),@er1" \
+ "and.l @0x1234:16,@er1"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0xc(:2|),er1\\)" \
+ "and.l @0x1234:16,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@0x1234(:16|),@-er1" \
+ "and.l @0x1234:16,@-er1"
+gdb_test "x" "and.l\t@0x1234(:16|),@er1\\+" \
+ "and.l @0x1234:16,@er1+"
+gdb_test "x" "and.l\t@0x1234(:16|),@er1-" \
+ "and.l @0x1234:16,@er1-"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\+er1" \
+ "and.l @0x1234:16,@+er1"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @0x1234:16,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @0x1234:16,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @0x1234:16,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @0x1234:16,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @0x1234:16,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @0x1234:16,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @0x1234:16,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@0x1234(:16|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @0x1234:16,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@0x1234(:16|),@0x9abc(:16|)" \
+ "and.l @0x1234:16,@0x9abc:16"
+gdb_test "x" "and.l\t@0x1234(:16|),@0x9abcdef0(:32|)" \
+ "and.l @0x1234:16,@0x9abcdef0:32"
+gdb_test "x" "and.l\t@0x12345678(:32|),@er1" \
+ "and.l @0x12345678:32,@er1"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0xc(:2|),er1\\)" \
+ "and.l @0x12345678:32,@(0xc:2,er1)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@-er1" \
+ "and.l @0x12345678:32,@-er1"
+gdb_test "x" "and.l\t@0x12345678(:32|),@er1\\+" \
+ "and.l @0x12345678:32,@er1+"
+gdb_test "x" "and.l\t@0x12345678(:32|),@er1-" \
+ "and.l @0x12345678:32,@er1-"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\+er1" \
+ "and.l @0x12345678:32,@+er1"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er1\\)" \
+ "and.l @0x12345678:32,@(0x9abc:16,er1)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er1\\)" \
+ "and.l @0x12345678:32,@(0x9abcdef0:32,er1)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2l.b\\)" \
+ "and.l @0x12345678:32,@(0x9abc:16,r2l.b)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abc(:16|),r2.w\\)" \
+ "and.l @0x12345678:32,@(0x9abc:16,r2.w)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abc(:16|),er2.l\\)" \
+ "and.l @0x12345678:32,@(0x9abc:16,er2.l)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2l.b\\)" \
+ "and.l @0x12345678:32,@(0x9abcdef0:32,r2l.b)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),r2.w\\)" \
+ "and.l @0x12345678:32,@(0x9abcdef0:32,r2.w)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@\\(0x9abcdef0(:32|),er2.l\\)" \
+ "and.l @0x12345678:32,@(0x9abcdef0:32,er2.l)"
+gdb_test "x" "and.l\t@0x12345678(:32|),@0x9abc(:16|)" \
+ "and.l @0x12345678:32,@0x9abc:16"
+gdb_test "x" "and.l\t@0x12345678(:32|),@0x9abcdef0(:32|)" \
+ "and.l @0x12345678:32,@0x9abcdef0:32"
diff --git a/gdb/testsuite/gdb.disasm/t10_and.s b/gdb/testsuite/gdb.disasm/t10_and.s
new file mode 100644
index 0000000..63ce383
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t10_and.s
@@ -0,0 +1,972 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;log_1
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ and.b #0x12:8,r1h ;e112
+ and.b #0x12:8,@er1 ;7d10e012
+ and.b #0x12:8,@(0x3:2,er1) ;01776818e012
+ and.b #0x12:8,@er1+ ;01746c18e012
+ and.b #0x12:8,@-er1 ;01776c18e012
+ and.b #0x12:8,@+er1 ;01756c18e012
+ and.b #0x12:8,@er1- ;01766c18e012
+ and.b #0x12:8,@(0x1234:16,er1) ;01746e181234e012
+ and.b #0x12:8,@(0x12345678:32,er1) ;78146a2812345678e012
+ and.b #0x12:8,@(0x1234:16,r2l.b) ;01756e281234e012
+ and.b #0x12:8,@(0x1234:16,r2.w) ;01766e281234e012
+ and.b #0x12:8,@(0x1234:16,er2.l) ;01776e281234e012
+ and.b #0x12:8,@(0x12345678:32,r2l.b) ;78256a2812345678e012
+ and.b #0x12:8,@(0x12345678:32,r2.w) ;78266a2812345678e012
+ and.b #0x12:8,@(0x12345678:32,er2.l) ;78276a2812345678e012
+ and.b #0x12:8,@0xffffff12:8 ;7f12e012
+ and.b #0x12:8,@0x1234:16 ;6a181234e012
+ and.b #0x12:8,@0x12345678:32 ;6a3812345678e012
+
+ and.b r3h,r1h ;1631
+
+ and.b r3h,@er1 ;7d101630
+ and.b r3h,@(0x3:2,er1) ;01793163
+ and.b r3h,@er1+ ;01798163
+ and.b r3h,@-er1 ;0179b163
+ and.b r3h,@+er1 ;01799163
+ and.b r3h,@er1- ;0179a163
+ and.b r3h,@(0x1234:16,er1) ;0179c1631234
+ and.b r3h,@(0x12345678:32,er1) ;0179c96312345678
+ and.b r3h,@(0x1234:16,r2l.b) ;0179d2631234
+ and.b r3h,@(0x1234:16,r2.w) ;0179e2631234
+ and.b r3h,@(0x1234:16,er2.l) ;0179f2631234
+ and.b r3h,@(0x12345678:32,r2l.b) ;0179da6312345678
+ and.b r3h,@(0x12345678:32,r2.w) ;0179ea6312345678
+ and.b r3h,@(0x12345678:32,er2.l) ;0179fa6312345678
+ and.b r3h,@0xffffff12:8 ;7f121630
+ and.b r3h,@0x1234:16 ;6a1812341630
+ and.b r3h,@0x12345678:32 ;6a38123456781630
+
+ and.b @er3,r1h ;7c301601
+ and.b @(0x3:2,er3),r1h ;017a3361
+ and.b @er3+,r1h ;017a8361
+ and.b @-er3,r1h ;017ab361
+ and.b @+er3,r1h ;017a9361
+ and.b @er3-,r1h ;017aa361
+ and.b @(0x1234:16,er1),r1h ;017ac1611234
+ and.b @(0x12345678:32,er1),r1h ;017ac96112345678
+ and.b @(0x1234:16,r2l.b),r1h ;017ad2611234
+ and.b @(0x1234:16,r2.w),r1h ;017ae2611234
+ and.b @(0x1234:16,er2.l),r1h ;017af2611234
+ and.b @(0x12345678:32,r2l.b),r1h ;017ada6112345678
+ and.b @(0x12345678:32,r2.w),r1h ;017aea6112345678
+ and.b @(0x12345678:32,er2.l),r1h ;017afa6112345678
+ and.b @0xffffff12:8,r1h ;7e121601
+ and.b @0x1234:16,r1h ;6a1012341601
+ and.b @0x12345678:32,r1h ;6a30123456781601
+
+ and.b @er3,@er1 ;7c350160
+ and.b @er3,@(3:2,er1) ;7c353160
+ and.b @er3,@-er1 ;7c35b160
+ and.b @er3,@er1+ ;7c358160
+ and.b @er3,@er1- ;7c35a160
+ and.b @er3,@+er1 ;7c359160
+ and.b @er3,@(0xffff9abc:16,er1) ;7c35c1609abc
+ and.b @er3,@(0x9abcdef0:32,er1) ;7c35c9609abcdef0
+ and.b @er3,@(0xffff9abc:16,r2l.b) ;7c35d2609abc
+ and.b @er3,@(0xffff9abc:16,r2.w) ;7c35e2609abc
+ and.b @er3,@(0xffff9abc:16,er2.l) ;7c35f2609abc
+ and.b @er3,@(0x9abcdef0:32,r2l.b) ;7c35da609abcdef0
+ and.b @er3,@(0x9abcdef0:32,r2.w) ;7c35ea609abcdef0
+ and.b @er3,@(0x9abcdef0:32,er2.l) ;7c35fa609abcdef0
+ and.b @er3,@0xffff9abc:16 ;7c3540609abc
+ and.b @er3,@0x9abcdef0:32 ;7c3548609abcdef0
+
+ and.b @-er3,@er1 ;01776c3c0160
+ and.b @-er3,@(3:2,er1) ;01776c3c3160
+ and.b @-er3,@-er1 ;01776c3cb160
+ and.b @-er3,@er1+ ;01776c3c8160
+ and.b @-er3,@er1- ;01776c3ca160
+ and.b @-er3,@+er1 ;01776c3c9160
+ and.b @-er3,@(0xffff9abc:16,er1) ;01776c3cc1609abc
+ and.b @-er3,@(0x9abcdef0:32,er1) ;01776c3cc9609abcdef0
+ and.b @-er3,@(0xffff9abc:16,r2l.b) ;01776c3cd2609abc
+ and.b @-er3,@(0xffff9abc:16,r2.w) ;01776c3ce2609abc
+ and.b @-er3,@(0xffff9abc:16,er2.l) ;01776c3cf2609abc
+ and.b @-er3,@(0x9abcdef0:32,r2l.b) ;01776c3cda609abcdef0
+ and.b @-er3,@(0x9abcdef0:32,r2.w) ;01776c3cea609abcdef0
+ and.b @-er3,@(0x9abcdef0:32,er2.l) ;01776c3cfa609abcdef0
+ and.b @-er3,@0xffff9abc:16 ;01776c3c40609abc
+ and.b @-er3,@0x9abcdef0:32 ;01776c3c48609abcdef0
+
+ and.b @er3+,@er1 ;01746c3c0160
+ and.b @er3+,@(3:2,er1) ;01746c3c3160
+ and.b @er3+,@-er1 ;01746c3cb160
+ and.b @er3+,@er1+ ;01746c3c8160
+ and.b @er3+,@er1- ;01746c3ca160
+ and.b @er3+,@+er1 ;01746c3c9160
+ and.b @er3+,@(0xffff9abc:16,er1) ;01746c3cc1609abc
+ and.b @er3+,@(0x9abcdef0:32,er1) ;01746c3cc9609abcdef0
+ and.b @er3+,@(0xffff9abc:16,r2l.b) ;01746c3cd2609abc
+ and.b @er3+,@(0xffff9abc:16,r2.w) ;01746c3ce2609abc
+ and.b @er3+,@(0xffff9abc:16,er2.l) ;01746c3cf2609abc
+ and.b @er3+,@(0x9abcdef0:32,r2l.b) ;01746c3cda609abcdef0
+ and.b @er3+,@(0x9abcdef0:32,r2.w) ;01746c3cea609abcdef0
+ and.b @er3+,@(0x9abcdef0:32,er2.l) ;01746c3cfa609abcdef0
+ and.b @er3+,@0xffff9abc:16 ;01746c3c40609abc
+ and.b @er3+,@0x9abcdef0:32 ;01746c3c48609abcdef0
+
+ and.b @er3-,@er1 ;01766c3c0160
+ and.b @er3-,@(3:2,er1) ;01766c3c3160
+ and.b @er3-,@-er1 ;01766c3cb160
+ and.b @er3-,@er1+ ;01766c3c8160
+ and.b @er3-,@er1- ;01766c3ca160
+ and.b @er3-,@+er1 ;01766c3c9160
+ and.b @er3-,@(0xffff9abc:16,er1) ;01766c3cc1609abc
+ and.b @er3-,@(0x9abcdef0:32,er1) ;01766c3cc9609abcdef0
+ and.b @er3-,@(0xffff9abc:16,r2l.b) ;01766c3cd2609abc
+ and.b @er3-,@(0xffff9abc:16,r2.w) ;01766c3ce2609abc
+ and.b @er3-,@(0xffff9abc:16,er2.l) ;01766c3cf2609abc
+ and.b @er3-,@(0x9abcdef0:32,r2l.b) ;01766c3cda609abcdef0
+ and.b @er3-,@(0x9abcdef0:32,r2.w) ;01766c3cea609abcdef0
+ and.b @er3-,@(0x9abcdef0:32,er2.l) ;01766c3cfa609abcdef0
+ and.b @er3-,@0xffff9abc:16 ;01766c3c40609abc
+ and.b @er3-,@0x9abcdef0:32 ;01766c3c48609abcdef0
+
+ and.b @+er3,@er1 ;01756c3c0160
+ and.b @+er3,@(3:2,er1) ;01756c3c3160
+ and.b @+er3,@-er1 ;01756c3cb160
+ and.b @+er3,@er1+ ;01756c3c8160
+ and.b @+er3,@er1- ;01756c3ca160
+ and.b @+er3,@+er1 ;01756c3c9160
+ and.b @+er3,@(0xffff9abc:16,er1) ;01756c3cc1609abc
+ and.b @+er3,@(0x9abcdef0:32,er1) ;01756c3cc9609abcdef0
+ and.b @+er3,@(0xffff9abc:16,r2l.b) ;01756c3cd2609abc
+ and.b @+er3,@(0xffff9abc:16,r2.w) ;01756c3ce2609abc
+ and.b @+er3,@(0xffff9abc:16,er2.l) ;01756c3cf2609abc
+ and.b @+er3,@(0x9abcdef0:32,r2l.b) ;01756c3cda609abcdef0
+ and.b @+er3,@(0x9abcdef0:32,r2.w) ;01756c3cea609abcdef0
+ and.b @+er3,@(0x9abcdef0:32,er2.l) ;01756c3cfa609abcdef0
+ and.b @+er3,@0xffff9abc:16 ;01756c3c40609abc
+ and.b @+er3,@0x9abcdef0:32 ;01756c3c48609abcdef0
+
+ and.b @(0x1234:16,er3),@er1 ;01746e3c12340160
+ and.b @(0x1234:16,er3),@(3:2,er1) ;01746e3c12343160
+ and.b @(0x1234:16,er3),@-er1 ;01746e3c1234b160
+ and.b @(0x1234:16,er3),@er1+ ;01746e3c12348160
+ and.b @(0x1234:16,er3),@er1- ;01746e3c1234a160
+ and.b @(0x1234:16,er3),@+er1 ;01746e3c12349160
+ and.b @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01746e3c1234c1609abc
+ and.b @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01746e3c1234c9609abcdef0
+ and.b @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01746e3c1234d2609abc
+ and.b @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01746e3c1234e2609abc
+ and.b @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01746e3c1234f2609abc
+ and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01746e3c1234da609abcdef0
+ and.b @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01746e3c1234ea609abcdef0
+ and.b @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01746e3c1234fa609abcdef0
+ and.b @(0x1234:16,er3),@0xffff9abc:16 ;01746e3c123440609abc
+ and.b @(0x1234:16,er3),@0x9abcdef0:32 ;01746e3c123448609abcdef0
+
+ and.b @(0x12345678:32,er3),@er1 ;78346a2c123456780160
+ and.b @(0x12345678:32,er3),@(3:2,er1) ;78346a2c123456783160
+ and.b @(0x12345678:32,er3),@-er1 ;78346a2c12345678b160
+ and.b @(0x12345678:32,er3),@er1+ ;78346a2c123456788160
+ and.b @(0x12345678:32,er3),@er1- ;78346a2c12345678a160
+ and.b @(0x12345678:32,er3),@+er1 ;78346a2c123456789160
+ and.b @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346a2c12345678c1609abc
+ and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346a2c12345678c9609abcdef0
+ and.b @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346a2c12345678d2609abc
+ and.b @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346a2c12345678e2609abc
+ and.b @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346a2c12345678f2609abc
+ and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346a2c12345678da609abcdef0
+ and.b @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346a2c12345678ea609abcdef0
+ and.b @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346a2c12345678fa609abcdef0
+ and.b @(0x12345678:32,er3),@0xffff9abc:16 ;78346a2c1234567840609abc
+ and.b @(0x12345678:32,er3),@0x9abcdef0:32 ;78346a2c1234567848609abcdef0
+
+ and.b @(0x1234:16,r3l.b),@er1 ;01756e3c12340160
+ and.b @(0x1234:16,r3l.b),@(3:2,er1) ;01756e3c12343160
+ and.b @(0x1234:16,r3l.b),@-er1 ;01756e3c1234b160
+ and.b @(0x1234:16,r3l.b),@er1+ ;01756e3c12348160
+ and.b @(0x1234:16,r3l.b),@er1- ;01756e3c1234a160
+ and.b @(0x1234:16,r3l.b),@+er1 ;01756e3c12349160
+ and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01756e3c1234c1609abc
+ and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01756e3c1234c9609abcdef0
+ and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01756e3c1234d2609abc
+ and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01756e3c1234e2609abc
+ and.b @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01756e3c1234f2609abc
+ and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01756e3c1234da609abcdef0
+ and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01756e3c1234ea609abcdef0
+ and.b @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01756e3c1234fa609abcdef0
+ and.b @(0x1234:16,r3l.b),@0xffff9abc:16 ;01756e3c123440609abc
+ and.b @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01756e3c123448609abcdef0
+
+ and.b @(0x1234:16,r3.w),@er1 ;01766e3c12340160
+ and.b @(0x1234:16,r3.w),@(3:2,er1) ;01766e3c12343160
+ and.b @(0x1234:16,r3.w),@-er1 ;01766e3c1234b160
+ and.b @(0x1234:16,r3.w),@er1+ ;01766e3c12348160
+ and.b @(0x1234:16,r3.w),@er1- ;01766e3c1234a160
+ and.b @(0x1234:16,r3.w),@+er1 ;01766e3c12349160
+ and.b @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01766e3c1234c1609abc
+ and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01766e3c1234c9609abcdef0
+ and.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01766e3c1234d2609abc
+ and.b @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01766e3c1234e2609abc
+ and.b @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01766e3c1234f2609abc
+ and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01766e3c1234da609abcdef0
+ and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01766e3c1234ea609abcdef0
+ and.b @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01766e3c1234fa609abcdef0
+ and.b @(0x1234:16,r3.w),@0xffff9abc:16 ;01766e3c123440609abc
+ and.b @(0x1234:16,r3.w),@0x9abcdef0:32 ;01766e3c123448609abcdef0
+
+ and.b @(0x1234:16,er3.l),@er1 ;01776e3c12340160
+ and.b @(0x1234:16,er3.l),@(3:2,er1) ;01776e3c12343160
+ and.b @(0x1234:16,er3.l),@-er1 ;01776e3c1234b160
+ and.b @(0x1234:16,er3.l),@er1+ ;01776e3c12348160
+ and.b @(0x1234:16,er3.l),@er1- ;01776e3c1234a160
+ and.b @(0x1234:16,er3.l),@+er1 ;01776e3c12349160
+ and.b @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01776e3c1234c1609abc
+ and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01776e3c1234c9609abcdef0
+ and.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01776e3c1234d2609abc
+ and.b @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01776e3c1234e2609abc
+ and.b @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01776e3c1234f2609abc
+ and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01776e3c1234da609abcdef0
+ and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01776e3c1234ea609abcdef0
+ and.b @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01776e3c1234fa609abcdef0
+ and.b @(0x1234:16,er3.l),@0xffff9abc:16 ;01776e3c123440609abc
+ and.b @(0x1234:16,er3.l),@0x9abcdef0:32 ;01776e3c123448609abcdef0
+
+ and.b @(0x12345678:32,r3l.b),@er1 ;78356a2c123456780160
+ and.b @(0x12345678:32,r3l.b),@(3:2,er1) ;78356a2c123456783160
+ and.b @(0x12345678:32,r3l.b),@-er1 ;78356a2c12345678b160
+ and.b @(0x12345678:32,r3l.b),@er1+ ;78356a2c123456788160
+ and.b @(0x12345678:32,r3l.b),@er1- ;78356a2c12345678a160
+ and.b @(0x12345678:32,r3l.b),@+er1 ;78356a2c123456789160
+ and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356a2c12345678c1609abc
+ and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356a2c12345678c9609abcdef0
+ and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356a2c12345678d2609abc
+ and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356a2c12345678e2609abc
+ and.b @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356a2c12345678f2609abc
+ and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356a2c12345678da609abcdef0
+ and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356a2c12345678ea609abcdef0
+ and.b @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356a2c12345678fa609abcdef0
+ and.b @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356a2c1234567840609abc
+ and.b @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356a2c1234567848609abcdef0
+
+ and.b @(0x12345678:32,r3.w),@er1 ;78366a2c123456780160
+ and.b @(0x12345678:32,r3.w),@(3:2,er1) ;78366a2c123456783160
+ and.b @(0x12345678:32,r3.w),@-er1 ;78366a2c12345678b160
+ and.b @(0x12345678:32,r3.w),@er1+ ;78366a2c123456788160
+ and.b @(0x12345678:32,r3.w),@er1- ;78366a2c12345678a160
+ and.b @(0x12345678:32,r3.w),@+er1 ;78366a2c123456789160
+ and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366a2c12345678c1609abc
+ and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366a2c12345678c9609abcdef0
+ and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366a2c12345678d2609abc
+ and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366a2c12345678e2609abc
+ and.b @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366a2c12345678f2609abc
+ and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366a2c12345678da609abcdef0
+ and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366a2c12345678ea609abcdef0
+ and.b @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366a2c12345678fa609abcdef0
+ and.b @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366a2c1234567840609abc
+ and.b @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366a2c1234567848609abcdef0
+
+ and.b @(0x12345678:32,er3.l),@er1 ;78376a2c123456780160
+ and.b @(0x12345678:32,er3.l),@(3:2,er1) ;78376a2c123456783160
+ and.b @(0x12345678:32,er3.l),@-er1 ;78376a2c12345678b160
+ and.b @(0x12345678:32,er3.l),@er1+ ;78376a2c123456788160
+ and.b @(0x12345678:32,er3.l),@er1- ;78376a2c12345678a160
+ and.b @(0x12345678:32,er3.l),@+er1 ;78376a2c123456789160
+ and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376a2c12345678c1609abc
+ and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376a2c12345678c9609abcdef0
+ and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376a2c12345678d2609abc
+ and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376a2c12345678e2609abc
+ and.b @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376a2c12345678f2609abc
+ and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376a2c12345678da609abcdef0
+ and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376a2c12345678ea609abcdef0
+ and.b @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376a2c12345678fa609abcdef0
+ and.b @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376a2c1234567840609abc
+ and.b @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376a2c1234567848609abcdef0
+
+ and.b @0x1234:16,@er1 ;6a1512340160
+ and.b @0x1234:16,@(3:2,er1) ;6a1512343160
+ and.b @0x1234:16,@-er1 ;6a151234b160
+ and.b @0x1234:16,@er1+ ;6a1512348160
+ and.b @0x1234:16,@er1- ;6a151234a160
+ and.b @0x1234:16,@+er1 ;6a1512349160
+ and.b @0x1234:16,@(0xffff9abc:16,er1) ;6a151234c1609abc
+ and.b @0x1234:16,@(0x9abcdef0:32,er1) ;6a151234c9609abcdef0
+ and.b @0x1234:16,@(0xffff9abc:16,r2l.b) ;6a151234d2609abc
+ and.b @0x1234:16,@(0xffff9abc:16,r2.w) ;6a151234e2609abc
+ and.b @0x1234:16,@(0xffff9abc:16,er2.l) ;6a151234f2609abc
+ and.b @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6a151234da609abcdef0
+ and.b @0x1234:16,@(0x9abcdef0:32,r2.w) ;6a151234ea609abcdef0
+ and.b @0x1234:16,@(0x9abcdef0:32,er2.l) ;6a151234fa609abcdef0
+ and.b @0x1234:16,@0xffff9abc:16 ;6a15123440609abc
+ and.b @0x1234:16,@0x9abcdef0:32 ;6a15123448609abcdef0
+
+ and.b @0x12345678:32,@er1 ;6a35123456780160
+ and.b @0x12345678:32,@(3:2,er1) ;6a35123456783160
+ and.b @0x12345678:32,@-er1 ;6a3512345678b160
+ and.b @0x12345678:32,@er1+ ;6a35123456788160
+ and.b @0x12345678:32,@er1- ;6a3512345678a160
+ and.b @0x12345678:32,@+er1 ;6a35123456789160
+ and.b @0x12345678:32,@(0xffff9abc:16,er1) ;6a3512345678c1609abc
+ and.b @0x12345678:32,@(0x9abcdef0:32,er1) ;6a3512345678c9609abcdef0
+ and.b @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6a3512345678d2609abc
+ and.b @0x12345678:32,@(0xffff9abc:16,r2.w) ;6a3512345678e2609abc
+ and.b @0x12345678:32,@(0xffff9abc:16,er2.l) ;6a3512345678f2609abc
+ and.b @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6a3512345678da609abcdef0
+ and.b @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6a3512345678ea609abcdef0
+ and.b @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6a3512345678fa609abcdef0
+ and.b @0x12345678:32,@0xffff9abc:16 ;6a351234567840609abc
+ and.b @0x12345678:32,@0x9abcdef0:32 ;6a351234567848609abcdef0
+
+ and.w #0x1234:16,r1 ;79611234
+ and.w #0x1234:16,@er1 ;015e01601234
+ and.w #0x1234:16,@(0x6:2,er1) ;015e31601234
+ and.w #0x1234:16,@er1+ ;015e81601234
+ and.w #0x1234:16,@-er1 ;015eb1601234
+ and.w #0x1234:16,@+er1 ;015e91601234
+ and.w #0x1234:16,@er1- ;015ea1601234
+ and.w #0x1234:16,@(0xffff9abc:16,er1) ;015ec1609abc1234
+ and.w #0x1234:16,@(0x9abcdef0:32,er1) ;015ec9609abcdef01234
+ and.w #0x1234:16,@(0xffff9abc:16,r2l.b) ;015ed2609abc1234
+ and.w #0x1234:16,@(0xffff9abc:16,r2.w) ;015ee2609abc1234
+ and.w #0x1234:16,@(0xffff9abc:16,er2.l) ;015ef2609abc1234
+ and.w #0x1234:16,@(0x9abcdef0:32,r2l.b) ;015eda609abcdef01234
+ and.w #0x1234:16,@(0x9abcdef0:32,r2.w) ;015eea609abcdef01234
+ and.w #0x1234:16,@(0x9abcdef0:32,er2.l) ;015efa609abcdef01234
+ and.w #0x1234:16,@0xffff9abc:16 ;015e40609abc1234
+ and.w #0x1234:16,@0x9abcdef0:32 ;015e48609abcdef01234
+
+ and.w r3,r1 ;6631
+
+ and.w r3,@er1 ;7d906630
+ and.w r3,@(0x6:2,er1) ;01593163
+ and.w r3,@er1+ ;01598163
+ and.w r3,@-er1 ;0159b163
+ and.w r3,@+er1 ;01599163
+ and.w r3,@er1- ;0159a163
+ and.w r3,@(0x1234:16,er1) ;0159c1631234
+ and.w r3,@(0x12345678:32,er1) ;0159c96312345678
+ and.w r3,@(0x1234:16,r2l.b) ;0159d2631234
+ and.w r3,@(0x1234:16,r2.w) ;0159e2631234
+ and.w r3,@(0x1234:16,er2.l) ;0159f2631234
+ and.w r3,@(0x12345678:32,r2l.b) ;0159da6312345678
+ and.w r3,@(0x12345678:32,r2.w) ;0159ea6312345678
+ and.w r3,@(0x12345678:32,er2.l) ;0159fa6312345678
+ and.w r3,@0x1234:16 ;6b1812346630
+ and.w r3,@0x12345678:32 ;6b38123456786630
+
+ and.w @er3,r1 ;7cb06601
+ and.w @(0x6:2,er3),r1 ;015a3361
+ and.w @er3+,r1 ;015a8361
+ and.w @-er3,r1 ;015ab361
+ and.w @+er3,r1 ;015a9361
+ and.w @er3-,r1 ;015aa361
+ and.w @(0x1234:16,er1),r1 ;015ac1611234
+ and.w @(0x12345678:32,er1),r1 ;015ac96112345678
+ and.w @(0x1234:16,r2l.b),r1 ;015ad2611234
+ and.w @(0x1234:16,r2.w),r1 ;015ae2611234
+ and.w @(0x1234:16,er2.l),r1 ;015af2611234
+ and.w @(0x12345678:32,r2l.b),r1 ;015ada6112345678
+ and.w @(0x12345678:32,r2.w),r1 ;015aea6112345678
+ and.w @(0x12345678:32,er2.l),r1 ;015afa6112345678
+ and.w @0x1234:16,r1 ;6b1012346601
+ and.w @0x12345678:32,r1 ;6b30123456786601
+
+ and.w @er3,@er1 ;7cb50160
+ and.w @er3,@(6:2,er1) ;7cb53160
+ and.w @er3,@-er1 ;7cb5b160
+ and.w @er3,@er1+ ;7cb58160
+ and.w @er3,@er1- ;7cb5a160
+ and.w @er3,@+er1 ;7cb59160
+ and.w @er3,@(0xffff9abc:16,er1) ;7cb5c1609abc
+ and.w @er3,@(0x9abcdef0:32,er1) ;7cb5c9609abcdef0
+ and.w @er3,@(0xffff9abc:16,r2l.b) ;7cb5d2609abc
+ and.w @er3,@(0xffff9abc:16,r2.w) ;7cb5e2609abc
+ and.w @er3,@(0xffff9abc:16,er2.l) ;7cb5f2609abc
+ and.w @er3,@(0x9abcdef0:32,r2l.b) ;7cb5da609abcdef0
+ and.w @er3,@(0x9abcdef0:32,r2.w) ;7cb5ea609abcdef0
+ and.w @er3,@(0x9abcdef0:32,er2.l) ;7cb5fa609abcdef0
+ and.w @er3,@0xffff9abc:16 ;7cb540609abc
+ and.w @er3,@0x9abcdef0:32 ;7cb548609abcdef0
+
+ and.w @-er3,@er1 ;01576d3c0160
+ and.w @-er3,@(6:2,er1) ;01576d3c3160
+ and.w @-er3,@-er1 ;01576d3cb160
+ and.w @-er3,@er1+ ;01576d3c8160
+ and.w @-er3,@er1- ;01576d3ca160
+ and.w @-er3,@+er1 ;01576d3c9160
+ and.w @-er3,@(0xffff9abc:16,er1) ;01576d3cc1609abc
+ and.w @-er3,@(0x9abcdef0:32,er1) ;01576d3cc9609abcdef0
+ and.w @-er3,@(0xffff9abc:16,r2l.b) ;01576d3cd2609abc
+ and.w @-er3,@(0xffff9abc:16,r2.w) ;01576d3ce2609abc
+ and.w @-er3,@(0xffff9abc:16,er2.l) ;01576d3cf2609abc
+ and.w @-er3,@(0x9abcdef0:32,r2l.b) ;01576d3cda609abcdef0
+ and.w @-er3,@(0x9abcdef0:32,r2.w) ;01576d3cea609abcdef0
+ and.w @-er3,@(0x9abcdef0:32,er2.l) ;01576d3cfa609abcdef0
+ and.w @-er3,@0xffff9abc:16 ;01576d3c40609abc
+ and.w @-er3,@0x9abcdef0:32 ;01576d3c48609abcdef0
+
+ and.w @er3+,@er1 ;01546d3c0160
+ and.w @er3+,@(6:2,er1) ;01546d3c3160
+ and.w @er3+,@-er1 ;01546d3cb160
+ and.w @er3+,@er1+ ;01546d3c8160
+ and.w @er3+,@er1- ;01546d3ca160
+ and.w @er3+,@+er1 ;01546d3c9160
+ and.w @er3+,@(0xffff9abc:16,er1) ;01546d3cc1609abc
+ and.w @er3+,@(0x9abcdef0:32,er1) ;01546d3cc9609abcdef0
+ and.w @er3+,@(0xffff9abc:16,r2l.b) ;01546d3cd2609abc
+ and.w @er3+,@(0xffff9abc:16,r2.w) ;01546d3ce2609abc
+ and.w @er3+,@(0xffff9abc:16,er2.l) ;01546d3cf2609abc
+ and.w @er3+,@(0x9abcdef0:32,r2l.b) ;01546d3cda609abcdef0
+ and.w @er3+,@(0x9abcdef0:32,r2.w) ;01546d3cea609abcdef0
+ and.w @er3+,@(0x9abcdef0:32,er2.l) ;01546d3cfa609abcdef0
+ and.w @er3+,@0xffff9abc:16 ;01546d3c40609abc
+ and.w @er3+,@0x9abcdef0:32 ;01546d3c48609abcdef0
+
+ and.w @er3-,@er1 ;01566d3c0160
+ and.w @er3-,@(6:2,er1) ;01566d3c3160
+ and.w @er3-,@-er1 ;01566d3cb160
+ and.w @er3-,@er1+ ;01566d3c8160
+ and.w @er3-,@er1- ;01566d3ca160
+ and.w @er3-,@+er1 ;01566d3c9160
+ and.w @er3-,@(0xffff9abc:16,er1) ;01566d3cc1609abc
+ and.w @er3-,@(0x9abcdef0:32,er1) ;01566d3cc9609abcdef0
+ and.w @er3-,@(0xffff9abc:16,r2l.b) ;01566d3cd2609abc
+ and.w @er3-,@(0xffff9abc:16,r2.w) ;01566d3ce2609abc
+ and.w @er3-,@(0xffff9abc:16,er2.l) ;01566d3cf2609abc
+ and.w @er3-,@(0x9abcdef0:32,r2l.b) ;01566d3cda609abcdef0
+ and.w @er3-,@(0x9abcdef0:32,r2.w) ;01566d3cea609abcdef0
+ and.w @er3-,@(0x9abcdef0:32,er2.l) ;01566d3cfa609abcdef0
+ and.w @er3-,@0xffff9abc:16 ;01566d3c40609abc
+ and.w @er3-,@0x9abcdef0:32 ;01566d3c48609abcdef0
+
+ and.w @+er3,@er1 ;01556d3c0160
+ and.w @+er3,@(6:2,er1) ;01556d3c3160
+ and.w @+er3,@-er1 ;01556d3cb160
+ and.w @+er3,@er1+ ;01556d3c8160
+ and.w @+er3,@er1- ;01556d3ca160
+ and.w @+er3,@+er1 ;01556d3c9160
+ and.w @+er3,@(0xffff9abc:16,er1) ;01556d3cc1609abc
+ and.w @+er3,@(0x9abcdef0:32,er1) ;01556d3cc9609abcdef0
+ and.w @+er3,@(0xffff9abc:16,r2l.b) ;01556d3cd2609abc
+ and.w @+er3,@(0xffff9abc:16,r2.w) ;01556d3ce2609abc
+ and.w @+er3,@(0xffff9abc:16,er2.l) ;01556d3cf2609abc
+ and.w @+er3,@(0x9abcdef0:32,r2l.b) ;01556d3cda609abcdef0
+ and.w @+er3,@(0x9abcdef0:32,r2.w) ;01556d3cea609abcdef0
+ and.w @+er3,@(0x9abcdef0:32,er2.l) ;01556d3cfa609abcdef0
+ and.w @+er3,@0xffff9abc:16 ;01556d3c40609abc
+ and.w @+er3,@0x9abcdef0:32 ;01556d3c48609abcdef0
+
+ and.w @(0x1234:16,er3),@er1 ;01546f3c12340160
+ and.w @(0x1234:16,er3),@(6:2,er1) ;01546f3c12343160
+ and.w @(0x1234:16,er3),@-er1 ;01546f3c1234b160
+ and.w @(0x1234:16,er3),@er1+ ;01546f3c12348160
+ and.w @(0x1234:16,er3),@er1- ;01546f3c1234a160
+ and.w @(0x1234:16,er3),@+er1 ;01546f3c12349160
+ and.w @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01546f3c1234c1609abc
+ and.w @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01546f3c1234c9609abcdef0
+ and.w @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01546f3c1234d2609abc
+ and.w @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01546f3c1234e2609abc
+ and.w @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01546f3c1234f2609abc
+ and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01546f3c1234da609abcdef0
+ and.w @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01546f3c1234ea609abcdef0
+ and.w @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01546f3c1234fa609abcdef0
+ and.w @(0x1234:16,er3),@0xffff9abc:16 ;01546f3c123440609abc
+ and.w @(0x1234:16,er3),@0x9abcdef0:32 ;01546f3c123448609abcdef0
+
+ and.w @(0x12345678:32,er3),@er1 ;78346b2c123456780160
+ and.w @(0x12345678:32,er3),@(6:2,er1) ;78346b2c123456783160
+ and.w @(0x12345678:32,er3),@-er1 ;78346b2c12345678b160
+ and.w @(0x12345678:32,er3),@er1+ ;78346b2c123456788160
+ and.w @(0x12345678:32,er3),@er1- ;78346b2c12345678a160
+ and.w @(0x12345678:32,er3),@+er1 ;78346b2c123456789160
+ and.w @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78346b2c12345678c1609abc
+ and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78346b2c12345678c9609abcdef0
+ and.w @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78346b2c12345678d2609abc
+ and.w @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78346b2c12345678e2609abc
+ and.w @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78346b2c12345678f2609abc
+ and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78346b2c12345678da609abcdef0
+ and.w @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78346b2c12345678ea609abcdef0
+ and.w @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78346b2c12345678fa609abcdef0
+ and.w @(0x12345678:32,er3),@0xffff9abc:16 ;78346b2c1234567840609abc
+ and.w @(0x12345678:32,er3),@0x9abcdef0:32 ;78346b2c1234567848609abcdef0
+
+ and.w @(0x1234:16,r3l.b),@er1 ;01556f3c12340160
+ and.w @(0x1234:16,r3l.b),@(6:2,er1) ;01556f3c12343160
+ and.w @(0x1234:16,r3l.b),@-er1 ;01556f3c1234b160
+ and.w @(0x1234:16,r3l.b),@er1+ ;01556f3c12348160
+ and.w @(0x1234:16,r3l.b),@er1- ;01556f3c1234a160
+ and.w @(0x1234:16,r3l.b),@+er1 ;01556f3c12349160
+ and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01556f3c1234c1609abc
+ and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01556f3c1234c9609abcdef0
+ and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01556f3c1234d2609abc
+ and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01556f3c1234e2609abc
+ and.w @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01556f3c1234f2609abc
+ and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01556f3c1234da609abcdef0
+ and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01556f3c1234ea609abcdef0
+ and.w @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01556f3c1234fa609abcdef0
+ and.w @(0x1234:16,r3l.b),@0xffff9abc:16 ;01556f3c123440609abc
+ and.w @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01556f3c123448609abcdef0
+
+ and.w @(0x1234:16,r3.w),@er1 ;01566f3c12340160
+ and.w @(0x1234:16,r3.w),@(6:2,er1) ;01566f3c12343160
+ and.w @(0x1234:16,r3.w),@-er1 ;01566f3c1234b160
+ and.w @(0x1234:16,r3.w),@er1+ ;01566f3c12348160
+ and.w @(0x1234:16,r3.w),@er1- ;01566f3c1234a160
+ and.w @(0x1234:16,r3.w),@+er1 ;01566f3c12349160
+ and.w @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01566f3c1234c1609abc
+ and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01566f3c1234c9609abcdef0
+ and.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01566f3c1234d2609abc
+ and.w @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01566f3c1234e2609abc
+ and.w @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01566f3c1234f2609abc
+ and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01566f3c1234da609abcdef0
+ and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01566f3c1234ea609abcdef0
+ and.w @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01566f3c1234fa609abcdef0
+ and.w @(0x1234:16,r3.w),@0xffff9abc:16 ;01566f3c123440609abc
+ and.w @(0x1234:16,r3.w),@0x9abcdef0:32 ;01566f3c123448609abcdef0
+
+ and.w @(0x1234:16,er3.l),@er1 ;01576f3c12340160
+ and.w @(0x1234:16,er3.l),@(6:2,er1) ;01576f3c12343160
+ and.w @(0x1234:16,er3.l),@-er1 ;01576f3c1234b160
+ and.w @(0x1234:16,er3.l),@er1+ ;01576f3c12348160
+ and.w @(0x1234:16,er3.l),@er1- ;01576f3c1234a160
+ and.w @(0x1234:16,er3.l),@+er1 ;01576f3c12349160
+ and.w @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01576f3c1234c1609abc
+ and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01576f3c1234c9609abcdef0
+ and.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01576f3c1234d2609abc
+ and.w @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01576f3c1234e2609abc
+ and.w @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01576f3c1234f2609abc
+ and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01576f3c1234da609abcdef0
+ and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01576f3c1234ea609abcdef0
+ and.w @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01576f3c1234fa609abcdef0
+ and.w @(0x1234:16,er3.l),@0xffff9abc:16 ;01576f3c123440609abc
+ and.w @(0x1234:16,er3.l),@0x9abcdef0:32 ;01576f3c123448609abcdef0
+
+ and.w @(0x12345678:32,r3l.b),@er1 ;78356b2c123456780160
+ and.w @(0x12345678:32,r3l.b),@(6:2,er1) ;78356b2c123456783160
+ and.w @(0x12345678:32,r3l.b),@-er1 ;78356b2c12345678b160
+ and.w @(0x12345678:32,r3l.b),@er1+ ;78356b2c123456788160
+ and.w @(0x12345678:32,r3l.b),@er1- ;78356b2c12345678a160
+ and.w @(0x12345678:32,r3l.b),@+er1 ;78356b2c123456789160
+ and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78356b2c12345678c1609abc
+ and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78356b2c12345678c9609abcdef0
+ and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78356b2c12345678d2609abc
+ and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78356b2c12345678e2609abc
+ and.w @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78356b2c12345678f2609abc
+ and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78356b2c12345678da609abcdef0
+ and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78356b2c12345678ea609abcdef0
+ and.w @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78356b2c12345678fa609abcdef0
+ and.w @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78356b2c1234567840609abc
+ and.w @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78356b2c1234567848609abcdef0
+
+ and.w @(0x12345678:32,r3.w),@er1 ;78366b2c123456780160
+ and.w @(0x12345678:32,r3.w),@(6:2,er1) ;78366b2c123456783160
+ and.w @(0x12345678:32,r3.w),@-er1 ;78366b2c12345678b160
+ and.w @(0x12345678:32,r3.w),@er1+ ;78366b2c123456788160
+ and.w @(0x12345678:32,r3.w),@er1- ;78366b2c12345678a160
+ and.w @(0x12345678:32,r3.w),@+er1 ;78366b2c123456789160
+ and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78366b2c12345678c1609abc
+ and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78366b2c12345678c9609abcdef0
+ and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78366b2c12345678d2609abc
+ and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78366b2c12345678e2609abc
+ and.w @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78366b2c12345678f2609abc
+ and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78366b2c12345678da609abcdef0
+ and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78366b2c12345678ea609abcdef0
+ and.w @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78366b2c12345678fa609abcdef0
+ and.w @(0x12345678:32,r3.w),@0xffff9abc:16 ;78366b2c1234567840609abc
+ and.w @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78366b2c1234567848609abcdef0
+
+ and.w @(0x12345678:32,er3.l),@er1 ;78376b2c123456780160
+ and.w @(0x12345678:32,er3.l),@(6:2,er1) ;78376b2c123456783160
+ and.w @(0x12345678:32,er3.l),@-er1 ;78376b2c12345678b160
+ and.w @(0x12345678:32,er3.l),@er1+ ;78376b2c123456788160
+ and.w @(0x12345678:32,er3.l),@er1- ;78376b2c12345678a160
+ and.w @(0x12345678:32,er3.l),@+er1 ;78376b2c123456789160
+ and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78376b2c12345678c1609abc
+ and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78376b2c12345678c9609abcdef0
+ and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78376b2c12345678d2609abc
+ and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78376b2c12345678e2609abc
+ and.w @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78376b2c12345678f2609abc
+ and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78376b2c12345678da609abcdef0
+ and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78376b2c12345678ea609abcdef0
+ and.w @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78376b2c12345678fa609abcdef0
+ and.w @(0x12345678:32,er3.l),@0xffff9abc:16 ;78376b2c1234567840609abc
+ and.w @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78376b2c1234567848609abcdef0
+
+ and.w @0x1234:16,@er1 ;6b1512340160
+ and.w @0x1234:16,@(6:2,er1) ;6b1512343160
+ and.w @0x1234:16,@-er1 ;6b151234b160
+ and.w @0x1234:16,@er1+ ;6b1512348160
+ and.w @0x1234:16,@er1- ;6b151234a160
+ and.w @0x1234:16,@+er1 ;6b1512349160
+ and.w @0x1234:16,@(0xffff9abc:16,er1) ;6b151234c1609abc
+ and.w @0x1234:16,@(0x9abcdef0:32,er1) ;6b151234c9609abcdef0
+ and.w @0x1234:16,@(0xffff9abc:16,r2l.b) ;6b151234d2609abc
+ and.w @0x1234:16,@(0xffff9abc:16,r2.w) ;6b151234e2609abc
+ and.w @0x1234:16,@(0xffff9abc:16,er2.l) ;6b151234f2609abc
+ and.w @0x1234:16,@(0x9abcdef0:32,r2l.b) ;6b151234da609abcdef0
+ and.w @0x1234:16,@(0x9abcdef0:32,r2.w) ;6b151234ea609abcdef0
+ and.w @0x1234:16,@(0x9abcdef0:32,er2.l) ;6b151234fa609abcdef0
+ and.w @0x1234:16,@0xffff9abc:16 ;6b15123440609abc
+ and.w @0x1234:16,@0x9abcdef0:32 ;6b15123448609abcdef0
+
+ and.w @0x12345678:32,@er1 ;6b35123456780160
+ and.w @0x12345678:32,@(6:2,er1) ;6b35123456783160
+ and.w @0x12345678:32,@-er1 ;6b3512345678b160
+ and.w @0x12345678:32,@er1+ ;6b35123456788160
+ and.w @0x12345678:32,@er1- ;6b3512345678a160
+ and.w @0x12345678:32,@+er1 ;6b35123456789160
+ and.w @0x12345678:32,@(0xffff9abc:16,er1) ;6b3512345678c1609abc
+ and.w @0x12345678:32,@(0x9abcdef0:32,er1) ;6b3512345678c9609abcdef0
+ and.w @0x12345678:32,@(0xffff9abc:16,r2l.b) ;6b3512345678d2609abc
+ and.w @0x12345678:32,@(0xffff9abc:16,r2.w) ;6b3512345678e2609abc
+ and.w @0x12345678:32,@(0xffff9abc:16,er2.l) ;6b3512345678f2609abc
+ and.w @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;6b3512345678da609abcdef0
+ and.w @0x12345678:32,@(0x9abcdef0:32,r2.w) ;6b3512345678ea609abcdef0
+ and.w @0x12345678:32,@(0x9abcdef0:32,er2.l) ;6b3512345678fa609abcdef0
+ and.w @0x12345678:32,@0xffff9abc:16 ;6b351234567840609abc
+ and.w @0x12345678:32,@0x9abcdef0:32 ;6b351234567848609abcdef0
+
+ and.l #0x12345678:32,er1 ;7a6112345678
+ and.l #0x1234:16,er1 ;7a691234
+ and.l #0x12345678:32,@er1 ;010e016812345678
+ and.l #0x12345678:32,@(0xc:2,er1) ;010e316812345678
+ and.l #0x12345678:32,@er1+ ;010e816812345678
+ and.l #0x12345678:32,@-er1 ;010eb16812345678
+ and.l #0x12345678:32,@+er1 ;010e916812345678
+ and.l #0x12345678:32,@er1- ;010ea16812345678
+ and.l #0x12345678:32,@(0xffff9abc:16,er1) ;010ec1689abc12345678
+ and.l #0x12345678:32,@(0x9abcdef0:32,er1) ;010ec9689abcdef012345678
+ and.l #0x12345678:32,@(0xffff9abc:16,r2l.b) ;010ed2689abc12345678
+ and.l #0x12345678:32,@(0xffff9abc:16,r2.w) ;010ee2689abc12345678
+ and.l #0x12345678:32,@(0xffff9abc:16,er2.l) ;010ef2689abc12345678
+ and.l #0x12345678:32,@(0x9abcdef0:32,r2l.b) ;010eda689abcdef012345678
+ and.l #0x12345678:32,@(0x9abcdef0:32,r2.w) ;010eea689abcdef012345678
+ and.l #0x12345678:32,@(0x9abcdef0:32,er2.l) ;010efa689abcdef012345678
+ and.l #0x12345678:32,@0xffff9abc:16 ;010e40689abc12345678
+ and.l #0x12345678:32,@0x9abcdef0:32 ;010e48689abcdef012345678
+ and.l #0x1234:16,@er1 ;010e01601234
+ and.l #0x1234:16,@(0xc:2,er1) ;010e31601234
+ and.l #0x1234:16,@er1+ ;010e81601234
+ and.l #0x1234:16,@-er1 ;010eb1601234
+ and.l #0x1234:16,@+er1 ;010e91601234
+ and.l #0x1234:16,@er1- ;010ea1601234
+ and.l #0x1234:16,@(0xffff9abc:16,er1) ;010ec1609abc1234
+ and.l #0x1234:16,@(0x9abcdef0:32,er1) ;010ec9609abcdef01234
+ and.l #0x1234:16,@(0xffff9abc:16,r2l.b) ;010ed2609abc1234
+ and.l #0x1234:16,@(0xffff9abc:16,r2.w) ;010ee2609abc1234
+ and.l #0x1234:16,@(0xffff9abc:16,er2.l) ;010ef2609abc1234
+ and.l #0x1234:16,@(0x9abcdef0:32,r2l.b) ;010eda609abcdef01234
+ and.l #0x1234:16,@(0x9abcdef0:32,r2.w) ;010eea609abcdef01234
+ and.l #0x1234:16,@(0x9abcdef0:32,er2.l) ;010efa609abcdef01234
+ and.l #0x1234:16,@0xffff9abc:16 ;010e40609abc1234
+ and.l #0x1234:16,@0x9abcdef0:32 ;010e48609abcdef01234
+
+ and.l er3,er1 ;01f06631
+
+ and.l er3,@er1 ;01090163
+ and.l er3,@(0xc:2,er1) ;01093163
+ and.l er3,@er1+ ;01098163
+ and.l er3,@-er1 ;0109b163
+ and.l er3,@+er1 ;01099163
+ and.l er3,@er1- ;0109a163
+ and.l er3,@(0x1234:16,er1) ;0109c1631234
+ and.l er3,@(0x12345678:32,er1) ;0109c96312345678
+ and.l er3,@(0x1234:16,r2l.b) ;0109d2631234
+ and.l er3,@(0x1234:16,r2.w) ;0109e2631234
+ and.l er3,@(0x1234:16,er2.l) ;0109f2631234
+ and.l er3,@(0x12345678:32,r2l.b) ;0109da6312345678
+ and.l er3,@(0x12345678:32,r2.w) ;0109ea6312345678
+ and.l er3,@(0x12345678:32,er2.l) ;0109fa6312345678
+ and.l er3,@0x1234:16 ;010940631234
+ and.l er3,@0x12345678:32 ;0109486312345678
+
+ and.l @er3,er1 ;010a0361
+ and.l @(0xc:2,er3),er1 ;010a3361
+ and.l @er3+,er1 ;010a8361
+ and.l @-er3,er1 ;010ab361
+ and.l @+er3,er1 ;010a9361
+ and.l @er3-,er1 ;010aa361
+ and.l @(0x1234:16,er1),er1 ;010ac1611234
+ and.l @(0x12345678:32,er1),er1 ;010ac96112345678
+ and.l @(0x1234:16,r2l.b),er1 ;010ad2611234
+ and.l @(0x1234:16,r2.w),er1 ;010ae2611234
+ and.l @(0x1234:16,er2.l),er1 ;010af2611234
+ and.l @(0x12345678:32,r2l.b),er1 ;010ada6112345678
+ and.l @(0x12345678:32,r2.w),er1 ;010aea6112345678
+ and.l @(0x12345678:32,er2.l),er1 ;010afa6112345678
+ and.l @0x1234:16,er1 ;010a40611234
+ and.l @0x12345678:32,er1 ;010a486112345678
+
+ and.l @er3,@er1 ;0104693c0160
+ and.l @er3,@(0xc:2,er1) ;0104693c3160
+ and.l @er3,@-er1 ;0104693cb160
+ and.l @er3,@er1+ ;0104693c8160
+ and.l @er3,@er1- ;0104693ca160
+ and.l @er3,@+er1 ;0104693c9160
+ and.l @er3,@(0xffff9abc:16,er1) ;0104693cc1609abc
+ and.l @er3,@(0x9abcdef0:32,er1) ;0104693cc9609abcdef0
+ and.l @er3,@(0xffff9abc:16,r2l.b) ;0104693cd2609abc
+ and.l @er3,@(0xffff9abc:16,r2.w) ;0104693ce2609abc
+ and.l @er3,@(0xffff9abc:16,er2.l) ;0104693cf2609abc
+ and.l @er3,@(0x9abcdef0:32,r2l.b) ;0104693cda609abcdef0
+ and.l @er3,@(0x9abcdef0:32,r2.w) ;0104693cea609abcdef0
+ and.l @er3,@(0x9abcdef0:32,er2.l) ;0104693cfa609abcdef0
+ and.l @er3,@0xffff9abc:16 ;0104693c40609abc
+ and.l @er3,@0x9abcdef0:32 ;0104693c48609abcdef0
+
+ and.l @(0xc:2,er3),@er1 ;0107693c0160
+ and.l @(0xc:2,er3),@(0xc:2,er1) ;0107693c3160
+ and.l @(0xc:2,er3),@-er1 ;0107693cb160
+ and.l @(0xc:2,er3),@er1+ ;0107693c8160
+ and.l @(0xc:2,er3),@er1- ;0107693ca160
+ and.l @(0xc:2,er3),@+er1 ;0107693c9160
+ and.l @(0xc:2,er3),@(0xffff9abc:16,er1) ;0107693cc1609abc
+ and.l @(0xc:2,er3),@(0x9abcdef0:32,er1) ;0107693cc9609abcdef0
+ and.l @(0xc:2,er3),@(0xffff9abc:16,r2l.b) ;0107693cd2609abc
+ and.l @(0xc:2,er3),@(0xffff9abc:16,r2.w) ;0107693ce2609abc
+ and.l @(0xc:2,er3),@(0xffff9abc:16,er2.l) ;0107693cf2609abc
+ and.l @(0xc:2,er3),@(0x9abcdef0:32,r2l.b) ;0107693cda609abcdef0
+ and.l @(0xc:2,er3),@(0x9abcdef0:32,r2.w) ;0107693cea609abcdef0
+ and.l @(0xc:2,er3),@(0x9abcdef0:32,er2.l) ;0107693cfa609abcdef0
+ and.l @(0xc:2,er3),@0xffff9abc:16 ;0107693c40609abc
+ and.l @(0xc:2,er3),@0x9abcdef0:32 ;0107693c48609abcdef0
+
+ and.l @-er3,@er1 ;01076d3c0160
+ and.l @-er3,@(0xc:2,er1) ;01076d3c3160
+ and.l @-er3,@-er1 ;01076d3cb160
+ and.l @-er3,@er1+ ;01076d3c8160
+ and.l @-er3,@er1- ;01076d3ca160
+ and.l @-er3,@+er1 ;01076d3c9160
+ and.l @-er3,@(0xffff9abc:16,er1) ;01076d3cc1609abc
+ and.l @-er3,@(0x9abcdef0:32,er1) ;01076d3cc9609abcdef0
+ and.l @-er3,@(0xffff9abc:16,r2l.b) ;01076d3cd2609abc
+ and.l @-er3,@(0xffff9abc:16,r2.w) ;01076d3ce2609abc
+ and.l @-er3,@(0xffff9abc:16,er2.l) ;01076d3cf2609abc
+ and.l @-er3,@(0x9abcdef0:32,r2l.b) ;01076d3cda609abcdef0
+ and.l @-er3,@(0x9abcdef0:32,r2.w) ;01076d3cea609abcdef0
+ and.l @-er3,@(0x9abcdef0:32,er2.l) ;01076d3cfa609abcdef0
+ and.l @-er3,@0xffff9abc:16 ;01076d3c40609abc
+ and.l @-er3,@0x9abcdef0:32 ;01076d3c48609abcdef0
+
+ and.l @er3+,@er1 ;01046d3c0160
+ and.l @er3+,@(0xc:2,er1) ;01046d3c3160
+ and.l @er3+,@-er1 ;01046d3cb160
+ and.l @er3+,@er1+ ;01046d3c8160
+ and.l @er3+,@er1- ;01046d3ca160
+ and.l @er3+,@+er1 ;01046d3c9160
+ and.l @er3+,@(0xffff9abc:16,er1) ;01046d3cc1609abc
+ and.l @er3+,@(0x9abcdef0:32,er1) ;01046d3cc9609abcdef0
+ and.l @er3+,@(0xffff9abc:16,r2l.b) ;01046d3cd2609abc
+ and.l @er3+,@(0xffff9abc:16,r2.w) ;01046d3ce2609abc
+ and.l @er3+,@(0xffff9abc:16,er2.l) ;01046d3cf2609abc
+ and.l @er3+,@(0x9abcdef0:32,r2l.b) ;01046d3cda609abcdef0
+ and.l @er3+,@(0x9abcdef0:32,r2.w) ;01046d3cea609abcdef0
+ and.l @er3+,@(0x9abcdef0:32,er2.l) ;01046d3cfa609abcdef0
+ and.l @er3+,@0xffff9abc:16 ;01046d3c40609abc
+ and.l @er3+,@0x9abcdef0:32 ;01046d3c48609abcdef0
+
+ and.l @er3-,@er1 ;01066d3c0160
+ and.l @er3-,@(0xc:2,er1) ;01066d3c3160
+ and.l @er3-,@-er1 ;01066d3cb160
+ and.l @er3-,@er1+ ;01066d3c8160
+ and.l @er3-,@er1- ;01066d3ca160
+ and.l @er3-,@+er1 ;01066d3c9160
+ and.l @er3-,@(0xffff9abc:16,er1) ;01066d3cc1609abc
+ and.l @er3-,@(0x9abcdef0:32,er1) ;01066d3cc9609abcdef0
+ and.l @er3-,@(0xffff9abc:16,r2l.b) ;01066d3cd2609abc
+ and.l @er3-,@(0xffff9abc:16,r2.w) ;01066d3ce2609abc
+ and.l @er3-,@(0xffff9abc:16,er2.l) ;01066d3cf2609abc
+ and.l @er3-,@(0x9abcdef0:32,r2l.b) ;01066d3cda609abcdef0
+ and.l @er3-,@(0x9abcdef0:32,r2.w) ;01066d3cea609abcdef0
+ and.l @er3-,@(0x9abcdef0:32,er2.l) ;01066d3cfa609abcdef0
+ and.l @er3-,@0xffff9abc:16 ;01066d3c40609abc
+ and.l @er3-,@0x9abcdef0:32 ;01066d3c48609abcdef0
+
+ and.l @+er3,@er1 ;01056d3c0160
+ and.l @+er3,@(0xc:2,er1) ;01056d3c3160
+ and.l @+er3,@-er1 ;01056d3cb160
+ and.l @+er3,@er1+ ;01056d3c8160
+ and.l @+er3,@er1- ;01056d3ca160
+ and.l @+er3,@+er1 ;01056d3c9160
+ and.l @+er3,@(0xffff9abc:16,er1) ;01056d3cc1609abc
+ and.l @+er3,@(0x9abcdef0:32,er1) ;01056d3cc9609abcdef0
+ and.l @+er3,@(0xffff9abc:16,r2l.b) ;01056d3cd2609abc
+ and.l @+er3,@(0xffff9abc:16,r2.w) ;01056d3ce2609abc
+ and.l @+er3,@(0xffff9abc:16,er2.l) ;01056d3cf2609abc
+ and.l @+er3,@(0x9abcdef0:32,r2l.b) ;01056d3cda609abcdef0
+ and.l @+er3,@(0x9abcdef0:32,r2.w) ;01056d3cea609abcdef0
+ and.l @+er3,@(0x9abcdef0:32,er2.l) ;01056d3cfa609abcdef0
+ and.l @+er3,@0xffff9abc:16 ;01056d3c40609abc
+ and.l @+er3,@0x9abcdef0:32 ;01056d3c48609abcdef0
+
+ and.l @(0x1234:16,er3),@er1 ;01046f3c12340160
+ and.l @(0x1234:16,er3),@(0xc:2,er1) ;01046f3c12343160
+ and.l @(0x1234:16,er3),@-er1 ;01046f3c1234b160
+ and.l @(0x1234:16,er3),@er1+ ;01046f3c12348160
+ and.l @(0x1234:16,er3),@er1- ;01046f3c1234a160
+ and.l @(0x1234:16,er3),@+er1 ;01046f3c12349160
+ and.l @(0x1234:16,er3),@(0xffff9abc:16,er1) ;01046f3c1234c1609abc
+ and.l @(0x1234:16,er3),@(0x9abcdef0:32,er1) ;01046f3c1234c9609abcdef0
+ and.l @(0x1234:16,er3),@(0xffff9abc:16,r2l.b) ;01046f3c1234d2609abc
+ and.l @(0x1234:16,er3),@(0xffff9abc:16,r2.w) ;01046f3c1234e2609abc
+ and.l @(0x1234:16,er3),@(0xffff9abc:16,er2.l) ;01046f3c1234f2609abc
+ and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2l.b) ;01046f3c1234da609abcdef0
+ and.l @(0x1234:16,er3),@(0x9abcdef0:32,r2.w) ;01046f3c1234ea609abcdef0
+ and.l @(0x1234:16,er3),@(0x9abcdef0:32,er2.l) ;01046f3c1234fa609abcdef0
+ and.l @(0x1234:16,er3),@0xffff9abc:16 ;01046f3c123440609abc
+ and.l @(0x1234:16,er3),@0x9abcdef0:32 ;01046f3c123448609abcdef0
+
+ and.l @(0x12345678:32,er3),@er1 ;78b46b2c123456780160
+ and.l @(0x12345678:32,er3),@(0xc:2,er1) ;78b46b2c123456783160
+ and.l @(0x12345678:32,er3),@-er1 ;78b46b2c12345678b160
+ and.l @(0x12345678:32,er3),@er1+ ;78b46b2c123456788160
+ and.l @(0x12345678:32,er3),@er1- ;78b46b2c12345678a160
+ and.l @(0x12345678:32,er3),@+er1 ;78b46b2c123456789160
+ and.l @(0x12345678:32,er3),@(0xffff9abc:16,er1) ;78b46b2c12345678c1609abc
+ and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er1) ;78b46b2c12345678c9609abcdef0
+ and.l @(0x12345678:32,er3),@(0xffff9abc:16,r2l.b) ;78b46b2c12345678d2609abc
+ and.l @(0x12345678:32,er3),@(0xffff9abc:16,r2.w) ;78b46b2c12345678e2609abc
+ and.l @(0x12345678:32,er3),@(0xffff9abc:16,er2.l) ;78b46b2c12345678f2609abc
+ and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2l.b) ;78b46b2c12345678da609abcdef0
+ and.l @(0x12345678:32,er3),@(0x9abcdef0:32,r2.w) ;78b46b2c12345678ea609abcdef0
+ and.l @(0x12345678:32,er3),@(0x9abcdef0:32,er2.l) ;78b46b2c12345678fa609abcdef0
+ and.l @(0x12345678:32,er3),@0xffff9abc:16 ;78b46b2c1234567840609abc
+ and.l @(0x12345678:32,er3),@0x9abcdef0:32 ;78b46b2c1234567848609abcdef0
+
+ and.l @(0x1234:16,r3l.b),@er1 ;01056f3c12340160
+ and.l @(0x1234:16,r3l.b),@(0xc:2,er1) ;01056f3c12343160
+ and.l @(0x1234:16,r3l.b),@-er1 ;01056f3c1234b160
+ and.l @(0x1234:16,r3l.b),@er1+ ;01056f3c12348160
+ and.l @(0x1234:16,r3l.b),@er1- ;01056f3c1234a160
+ and.l @(0x1234:16,r3l.b),@+er1 ;01056f3c12349160
+ and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er1) ;01056f3c1234c1609abc
+ and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er1) ;01056f3c1234c9609abcdef0
+ and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2l.b) ;01056f3c1234d2609abc
+ and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,r2.w) ;01056f3c1234e2609abc
+ and.l @(0x1234:16,r3l.b),@(0xffff9abc:16,er2.l) ;01056f3c1234f2609abc
+ and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2l.b) ;01056f3c1234da609abcdef0
+ and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,r2.w) ;01056f3c1234ea609abcdef0
+ and.l @(0x1234:16,r3l.b),@(0x9abcdef0:32,er2.l) ;01056f3c1234fa609abcdef0
+ and.l @(0x1234:16,r3l.b),@0xffff9abc:16 ;01056f3c123440609abc
+ and.l @(0x1234:16,r3l.b),@0x9abcdef0:32 ;01056f3c123448609abcdef0
+
+ and.l @(0x1234:16,r3.w),@er1 ;01066f3c12340160
+ and.l @(0x1234:16,r3.w),@(0xc:2,er1) ;01066f3c12343160
+ and.l @(0x1234:16,r3.w),@-er1 ;01066f3c1234b160
+ and.l @(0x1234:16,r3.w),@er1+ ;01066f3c12348160
+ and.l @(0x1234:16,r3.w),@er1- ;01066f3c1234a160
+ and.l @(0x1234:16,r3.w),@+er1 ;01066f3c12349160
+ and.l @(0x1234:16,r3.w),@(0xffff9abc:16,er1) ;01066f3c1234c1609abc
+ and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er1) ;01066f3c1234c9609abcdef0
+ and.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2l.b) ;01066f3c1234d2609abc
+ and.l @(0x1234:16,r3.w),@(0xffff9abc:16,r2.w) ;01066f3c1234e2609abc
+ and.l @(0x1234:16,r3.w),@(0xffff9abc:16,er2.l) ;01066f3c1234f2609abc
+ and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2l.b) ;01066f3c1234da609abcdef0
+ and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,r2.w) ;01066f3c1234ea609abcdef0
+ and.l @(0x1234:16,r3.w),@(0x9abcdef0:32,er2.l) ;01066f3c1234fa609abcdef0
+ and.l @(0x1234:16,r3.w),@0xffff9abc:16 ;01066f3c123440609abc
+ and.l @(0x1234:16,r3.w),@0x9abcdef0:32 ;01066f3c123448609abcdef0
+
+ and.l @(0x1234:16,er3.l),@er1 ;01076f3c12340160
+ and.l @(0x1234:16,er3.l),@(0xc:2,er1) ;01076f3c12343160
+ and.l @(0x1234:16,er3.l),@-er1 ;01076f3c1234b160
+ and.l @(0x1234:16,er3.l),@er1+ ;01076f3c12348160
+ and.l @(0x1234:16,er3.l),@er1- ;01076f3c1234a160
+ and.l @(0x1234:16,er3.l),@+er1 ;01076f3c12349160
+ and.l @(0x1234:16,er3.l),@(0xffff9abc:16,er1) ;01076f3c1234c1609abc
+ and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er1) ;01076f3c1234c9609abcdef0
+ and.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2l.b) ;01076f3c1234d2609abc
+ and.l @(0x1234:16,er3.l),@(0xffff9abc:16,r2.w) ;01076f3c1234e2609abc
+ and.l @(0x1234:16,er3.l),@(0xffff9abc:16,er2.l) ;01076f3c1234f2609abc
+ and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2l.b) ;01076f3c1234da609abcdef0
+ and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,r2.w) ;01076f3c1234ea609abcdef0
+ and.l @(0x1234:16,er3.l),@(0x9abcdef0:32,er2.l) ;01076f3c1234fa609abcdef0
+ and.l @(0x1234:16,er3.l),@0xffff9abc:16 ;01076f3c123440609abc
+ and.l @(0x1234:16,er3.l),@0x9abcdef0:32 ;01076f3c123448609abcdef0
+
+ and.l @(0x12345678:32,r3l.b),@er1 ;78b56b2c123456780160
+ and.l @(0x12345678:32,r3l.b),@(0xc:2,er1) ;78b56b2c123456783160
+ and.l @(0x12345678:32,r3l.b),@-er1 ;78b56b2c12345678b160
+ and.l @(0x12345678:32,r3l.b),@er1+ ;78b56b2c123456788160
+ and.l @(0x12345678:32,r3l.b),@er1- ;78b56b2c12345678a160
+ and.l @(0x12345678:32,r3l.b),@+er1 ;78b56b2c123456789160
+ and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er1) ;78b56b2c12345678c1609abc
+ and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er1) ;78b56b2c12345678c9609abcdef0
+ and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2l.b) ;78b56b2c12345678d2609abc
+ and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,r2.w) ;78b56b2c12345678e2609abc
+ and.l @(0x12345678:32,r3l.b),@(0xffff9abc:16,er2.l) ;78b56b2c12345678f2609abc
+ and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2l.b) ;78b56b2c12345678da609abcdef0
+ and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,r2.w) ;78b56b2c12345678ea609abcdef0
+ and.l @(0x12345678:32,r3l.b),@(0x9abcdef0:32,er2.l) ;78b56b2c12345678fa609abcdef0
+ and.l @(0x12345678:32,r3l.b),@0xffff9abc:16 ;78b56b2c1234567840609abc
+ and.l @(0x12345678:32,r3l.b),@0x9abcdef0:32 ;78b56b2c1234567848609abcdef0
+
+ and.l @(0x12345678:32,r3.w),@er1 ;78b66b2c123456780160
+ and.l @(0x12345678:32,r3.w),@(0xc:2,er1) ;78b66b2c123456783160
+ and.l @(0x12345678:32,r3.w),@-er1 ;78b66b2c12345678b160
+ and.l @(0x12345678:32,r3.w),@er1+ ;78b66b2c123456788160
+ and.l @(0x12345678:32,r3.w),@er1- ;78b66b2c12345678a160
+ and.l @(0x12345678:32,r3.w),@+er1 ;78b66b2c123456789160
+ and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er1) ;78b66b2c12345678c1609abc
+ and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er1) ;78b66b2c12345678c9609abcdef0
+ and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2l.b) ;78b66b2c12345678d2609abc
+ and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,r2.w) ;78b66b2c12345678e2609abc
+ and.l @(0x12345678:32,r3.w),@(0xffff9abc:16,er2.l) ;78b66b2c12345678f2609abc
+ and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2l.b) ;78b66b2c12345678da609abcdef0
+ and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,r2.w) ;78b66b2c12345678ea609abcdef0
+ and.l @(0x12345678:32,r3.w),@(0x9abcdef0:32,er2.l) ;78b66b2c12345678fa609abcdef0
+ and.l @(0x12345678:32,r3.w),@0xffff9abc:16 ;78b66b2c1234567840609abc
+ and.l @(0x12345678:32,r3.w),@0x9abcdef0:32 ;78b66b2c1234567848609abcdef0
+
+ and.l @(0x12345678:32,er3.l),@er1 ;78b76b2c123456780160
+ and.l @(0x12345678:32,er3.l),@(0xc:2,er1) ;78b76b2c123456783160
+ and.l @(0x12345678:32,er3.l),@-er1 ;78b76b2c12345678b160
+ and.l @(0x12345678:32,er3.l),@er1+ ;78b76b2c123456788160
+ and.l @(0x12345678:32,er3.l),@er1- ;78b76b2c12345678a160
+ and.l @(0x12345678:32,er3.l),@+er1 ;78b76b2c123456789160
+ and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er1) ;78b76b2c12345678c1609abc
+ and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er1) ;78b76b2c12345678c9609abcdef0
+ and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2l.b) ;78b76b2c12345678d2609abc
+ and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,r2.w) ;78b76b2c12345678e2609abc
+ and.l @(0x12345678:32,er3.l),@(0xffff9abc:16,er2.l) ;78b76b2c12345678f2609abc
+ and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2l.b) ;78b76b2c12345678da609abcdef0
+ and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,r2.w) ;78b76b2c12345678ea609abcdef0
+ and.l @(0x12345678:32,er3.l),@(0x9abcdef0:32,er2.l) ;78b76b2c12345678fa609abcdef0
+ and.l @(0x12345678:32,er3.l),@0xffff9abc:16 ;78b76b2c1234567840609abc
+ and.l @(0x12345678:32,er3.l),@0x9abcdef0:32 ;78b76b2c1234567848609abcdef0
+
+ and.l @0x1234:16,@er1 ;01046b0c12340160
+ and.l @0x1234:16,@(0xc:2,er1) ;01046b0c12343160
+ and.l @0x1234:16,@-er1 ;01046b0c1234b160
+ and.l @0x1234:16,@er1+ ;01046b0c12348160
+ and.l @0x1234:16,@er1- ;01046b0c1234a160
+ and.l @0x1234:16,@+er1 ;01046b0c12349160
+ and.l @0x1234:16,@(0xffff9abc:16,er1) ;01046b0c1234c1609abc
+ and.l @0x1234:16,@(0x9abcdef0:32,er1) ;01046b0c1234c9609abcdef0
+ and.l @0x1234:16,@(0xffff9abc:16,r2l.b) ;01046b0c1234d2609abc
+ and.l @0x1234:16,@(0xffff9abc:16,r2.w) ;01046b0c1234e2609abc
+ and.l @0x1234:16,@(0xffff9abc:16,er2.l) ;01046b0c1234f2609abc
+ and.l @0x1234:16,@(0x9abcdef0:32,r2l.b) ;01046b0c1234da609abcdef0
+ and.l @0x1234:16,@(0x9abcdef0:32,r2.w) ;01046b0c1234ea609abcdef0
+ and.l @0x1234:16,@(0x9abcdef0:32,er2.l) ;01046b0c1234fa609abcdef0
+ and.l @0x1234:16,@0xffff9abc:16 ;01046b0c123440609abc
+ and.l @0x1234:16,@0x9abcdef0:32 ;01046b0c123448609abcdef0
+
+ and.l @0x12345678:32,@er1 ;01046b2c123456780160
+ and.l @0x12345678:32,@(0xc:2,er1) ;01046b2c123456783160
+ and.l @0x12345678:32,@-er1 ;01046b2c12345678b160
+ and.l @0x12345678:32,@er1+ ;01046b2c123456788160
+ and.l @0x12345678:32,@er1- ;01046b2c12345678a160
+ and.l @0x12345678:32,@+er1 ;01046b2c123456789160
+ and.l @0x12345678:32,@(0xffff9abc:16,er1) ;01046b2c12345678c1609abc
+ and.l @0x12345678:32,@(0x9abcdef0:32,er1) ;01046b2c12345678c9609abcdef0
+ and.l @0x12345678:32,@(0xffff9abc:16,r2l.b) ;01046b2c12345678d2609abc
+ and.l @0x12345678:32,@(0xffff9abc:16,r2.w) ;01046b2c12345678e2609abc
+ and.l @0x12345678:32,@(0xffff9abc:16,er2.l) ;01046b2c12345678f2609abc
+ and.l @0x12345678:32,@(0x9abcdef0:32,r2l.b) ;01046b2c12345678da609abcdef0
+ and.l @0x12345678:32,@(0x9abcdef0:32,r2.w) ;01046b2c12345678ea609abcdef0
+ and.l @0x12345678:32,@(0x9abcdef0:32,er2.l) ;01046b2c12345678fa609abcdef0
+ and.l @0x12345678:32,@0xffff9abc:16 ;01046b2c1234567840609abc
+ and.l @0x12345678:32,@0x9abcdef0:32 ;01046b2c1234567848609abcdef0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t11_logs.exp b/gdb/testsuite/gdb.disasm/t11_logs.exp
new file mode 100644
index 0000000..85b2a9e
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t11_logs.exp
@@ -0,0 +1,2258 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t11_logs"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "not.b\tr1h" \
+ "not.b r1h"
+gdb_test "x" "not.b\t@er1" \
+ "not.b @er1"
+gdb_test "x" "not.b\t@\\(0x3(:2|),er1\\)" \
+ "not.b @(0x3:2,er1)"
+gdb_test "x" "not.b\t@er1\\+" \
+ "not.b @er1+"
+gdb_test "x" "not.b\t@-er1" \
+ "not.b @-er1"
+gdb_test "x" "not.b\t@\\+er1" \
+ "not.b @+er1"
+gdb_test "x" "not.b\t@er1-" \
+ "not.b @er1-"
+gdb_test "x" "not.b\t@\\(0x1234(:16|),er1\\)" \
+ "not.b @(0x1234:16,er1)"
+gdb_test "x" "not.b\t@\\(0x12345678(:32|),er1\\)" \
+ "not.b @(0x12345678:32,er1)"
+gdb_test "x" "not.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "not.b @(0x1234:16,r2l.b)"
+gdb_test "x" "not.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "not.b @(0x1234:16,r2.w)"
+gdb_test "x" "not.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "not.b @(0x1234:16,er2.l)"
+gdb_test "x" "not.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "not.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "not.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "not.b @(0x12345678:32,r2.w)"
+gdb_test "x" "not.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "not.b @(0x12345678:32,er2.l)"
+gdb_test "x" "not.b\t@0x12(:8|)" \
+ "not.b @0x12:8"
+gdb_test "x" "not.b\t@0x1234(:16|)" \
+ "not.b @0x1234:16"
+gdb_test "x" "not.b\t@0x12345678(:32|)" \
+ "not.b @0x12345678:32"
+gdb_test "x" "not.w\tr1" \
+ "not.w r1"
+gdb_test "x" "not.w\t@er1" \
+ "not.w @er1"
+gdb_test "x" "not.w\t@\\(0x6(:2|),er1\\)" \
+ "not.w @(0x6:2,er1)"
+gdb_test "x" "not.w\t@er1\\+" \
+ "not.w @er1+"
+gdb_test "x" "not.w\t@-er1" \
+ "not.w @-er1"
+gdb_test "x" "not.w\t@\\+er1" \
+ "not.w @+er1"
+gdb_test "x" "not.w\t@er1-" \
+ "not.w @er1-"
+gdb_test "x" "not.w\t@\\(0x1234(:16|),er1\\)" \
+ "not.w @(0x1234:16,er1)"
+gdb_test "x" "not.w\t@\\(0x12345678(:32|),er1\\)" \
+ "not.w @(0x12345678:32,er1)"
+gdb_test "x" "not.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "not.w @(0x1234:16,r2l.b)"
+gdb_test "x" "not.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "not.w @(0x1234:16,r2.w)"
+gdb_test "x" "not.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "not.w @(0x1234:16,er2.l)"
+gdb_test "x" "not.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "not.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "not.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "not.w @(0x12345678:32,r2.w)"
+gdb_test "x" "not.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "not.w @(0x12345678:32,er2.l)"
+gdb_test "x" "not.w\t@0x1234(:16|)" \
+ "not.w @0x1234:16"
+gdb_test "x" "not.w\t@0x12345678(:32|)" \
+ "not.w @0x12345678:32"
+gdb_test "x" "not.l\ter1" \
+ "not.l er1"
+gdb_test "x" "not.l\t@er1" \
+ "not.l @er1"
+gdb_test "x" "not.l\t@\\(0xc(:2|),er1\\)" \
+ "not.l @(0xc:2,er1)"
+gdb_test "x" "not.l\t@er1\\+" \
+ "not.l @er1+"
+gdb_test "x" "not.l\t@-er1" \
+ "not.l @-er1"
+gdb_test "x" "not.l\t@\\+er1" \
+ "not.l @+er1"
+gdb_test "x" "not.l\t@er1-" \
+ "not.l @er1-"
+gdb_test "x" "not.l\t@\\(0x1234(:16|),er1\\)" \
+ "not.l @(0x1234:16,er1)"
+gdb_test "x" "not.l\t@\\(0x12345678(:32|),er1\\)" \
+ "not.l @(0x12345678:32,er1)"
+gdb_test "x" "not.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "not.l @(0x1234:16,r2l.b)"
+gdb_test "x" "not.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "not.l @(0x1234:16,r2.w)"
+gdb_test "x" "not.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "not.l @(0x1234:16,er2.l)"
+gdb_test "x" "not.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "not.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "not.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "not.l @(0x12345678:32,r2.w)"
+gdb_test "x" "not.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "not.l @(0x12345678:32,er2.l)"
+gdb_test "x" "not.l\t@0x1234(:16|)" \
+ "not.l @0x1234:16"
+gdb_test "x" "not.l\t@0x12345678(:32|)" \
+ "not.l @0x12345678:32"
+gdb_test "x" "shll.b\tr1h" \
+ "shll.b r1h"
+gdb_test "x" "shll.b\t@er1" \
+ "shll.b @er1"
+gdb_test "x" "shll.b\t@\\(0x3(:2|),er1\\)" \
+ "shll.b @(0x3:2,er1)"
+gdb_test "x" "shll.b\t@er1\\+" \
+ "shll.b @er1+"
+gdb_test "x" "shll.b\t@-er1" \
+ "shll.b @-er1"
+gdb_test "x" "shll.b\t@\\+er1" \
+ "shll.b @+er1"
+gdb_test "x" "shll.b\t@er1-" \
+ "shll.b @er1-"
+gdb_test "x" "shll.b\t@\\(0x1234(:16|),er1\\)" \
+ "shll.b @(0x1234:16,er1)"
+gdb_test "x" "shll.b\t@\\(0x12345678(:32|),er1\\)" \
+ "shll.b @(0x12345678:32,er1)"
+gdb_test "x" "shll.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.b @(0x1234:16,r2l.b)"
+gdb_test "x" "shll.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "shll.b @(0x1234:16,r2.w)"
+gdb_test "x" "shll.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "shll.b @(0x1234:16,er2.l)"
+gdb_test "x" "shll.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.b @(0x12345678:32,r2.w)"
+gdb_test "x" "shll.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.b @(0x12345678:32,er2.l)"
+gdb_test "x" "shll.b\t@0x12(:8|)" \
+ "shll.b @0x12:8"
+gdb_test "x" "shll.b\t@0x1234(:16|)" \
+ "shll.b @0x1234:16"
+gdb_test "x" "shll.b\t@0x12345678(:32|)" \
+ "shll.b @0x12345678:32"
+gdb_test "x" "shll.w\tr1" \
+ "shll.w r1"
+gdb_test "x" "shll.w\t@er1" \
+ "shll.w @er1"
+gdb_test "x" "shll.w\t@\\(0x6(:2|),er1\\)" \
+ "shll.w @(0x6:2,er1)"
+gdb_test "x" "shll.w\t@er1\\+" \
+ "shll.w @er1+"
+gdb_test "x" "shll.w\t@-er1" \
+ "shll.w @-er1"
+gdb_test "x" "shll.w\t@\\+er1" \
+ "shll.w @+er1"
+gdb_test "x" "shll.w\t@er1-" \
+ "shll.w @er1-"
+gdb_test "x" "shll.w\t@\\(0x1234(:16|),er1\\)" \
+ "shll.w @(0x1234:16,er1)"
+gdb_test "x" "shll.w\t@\\(0x12345678(:32|),er1\\)" \
+ "shll.w @(0x12345678:32,er1)"
+gdb_test "x" "shll.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.w @(0x1234:16,r2l.b)"
+gdb_test "x" "shll.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "shll.w @(0x1234:16,r2.w)"
+gdb_test "x" "shll.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "shll.w @(0x1234:16,er2.l)"
+gdb_test "x" "shll.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.w @(0x12345678:32,r2.w)"
+gdb_test "x" "shll.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.w @(0x12345678:32,er2.l)"
+gdb_test "x" "shll.w\t@0x1234(:16|)" \
+ "shll.w @0x1234:16"
+gdb_test "x" "shll.w\t@0x12345678(:32|)" \
+ "shll.w @0x12345678:32"
+gdb_test "x" "shll.l\ter1" \
+ "shll.l er1"
+gdb_test "x" "shll.l\t@er1" \
+ "shll.l @er1"
+gdb_test "x" "shll.l\t@\\(0xc(:2|),er1\\)" \
+ "shll.l @(0xc:2,er1)"
+gdb_test "x" "shll.l\t@er1\\+" \
+ "shll.l @er1+"
+gdb_test "x" "shll.l\t@-er1" \
+ "shll.l @-er1"
+gdb_test "x" "shll.l\t@\\+er1" \
+ "shll.l @+er1"
+gdb_test "x" "shll.l\t@er1-" \
+ "shll.l @er1-"
+gdb_test "x" "shll.l\t@\\(0x1234(:16|),er1\\)" \
+ "shll.l @(0x1234:16,er1)"
+gdb_test "x" "shll.l\t@\\(0x12345678(:32|),er1\\)" \
+ "shll.l @(0x12345678:32,er1)"
+gdb_test "x" "shll.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.l @(0x1234:16,r2l.b)"
+gdb_test "x" "shll.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "shll.l @(0x1234:16,r2.w)"
+gdb_test "x" "shll.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "shll.l @(0x1234:16,er2.l)"
+gdb_test "x" "shll.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.l @(0x12345678:32,r2.w)"
+gdb_test "x" "shll.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.l @(0x12345678:32,er2.l)"
+gdb_test "x" "shll.l\t@0x1234(:16|)" \
+ "shll.l @0x1234:16"
+gdb_test "x" "shll.l\t@0x12345678(:32|)" \
+ "shll.l @0x12345678:32"
+gdb_test "x" "shll.b\t#2,r1h" \
+ "shll.b #2,r1h"
+gdb_test "x" "shll.b\t#2,@er1" \
+ "shll.b #2,@er1"
+gdb_test "x" "shll.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "shll.b #2,@(0x3:2,er1)"
+gdb_test "x" "shll.b\t#2,@er1\\+" \
+ "shll.b #2,@er1+"
+gdb_test "x" "shll.b\t#2,@-er1" \
+ "shll.b #2,@-er1"
+gdb_test "x" "shll.b\t#2,@\\+er1" \
+ "shll.b #2,@+er1"
+gdb_test "x" "shll.b\t#2,@er1-" \
+ "shll.b #2,@er1-"
+gdb_test "x" "shll.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shll.b #2,@(0x1234:16,er1)"
+gdb_test "x" "shll.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shll.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "shll.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.b\t#2,@0x12(:8|)" \
+ "shll.b #2,@0x12:8"
+gdb_test "x" "shll.b\t#2,@0x1234(:16|)" \
+ "shll.b #2,@0x1234:16"
+gdb_test "x" "shll.b\t#2,@0x12345678(:32|)" \
+ "shll.b #2,@0x12345678:32"
+gdb_test "x" "shll.w\t#2,r1" \
+ "shll.w #2,r1"
+gdb_test "x" "shll.w\t#2,@er1" \
+ "shll.w #2,@er1"
+gdb_test "x" "shll.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "shll.w #2,@(0x6:2,er1)"
+gdb_test "x" "shll.w\t#2,@er1\\+" \
+ "shll.w #2,@er1+"
+gdb_test "x" "shll.w\t#2,@-er1" \
+ "shll.w #2,@-er1"
+gdb_test "x" "shll.w\t#2,@\\+er1" \
+ "shll.w #2,@+er1"
+gdb_test "x" "shll.w\t#2,@er1-" \
+ "shll.w #2,@er1-"
+gdb_test "x" "shll.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shll.w #2,@(0x1234:16,er1)"
+gdb_test "x" "shll.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shll.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "shll.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.w\t#2,@0x1234(:16|)" \
+ "shll.w #2,@0x1234:16"
+gdb_test "x" "shll.w\t#2,@0x12345678(:32|)" \
+ "shll.w #2,@0x12345678:32"
+gdb_test "x" "shll.l\t#2,er1" \
+ "shll.l #2,er1"
+gdb_test "x" "shll.l\t#2,@er1" \
+ "shll.l #2,@er1"
+gdb_test "x" "shll.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "shll.l #2,@(0xc:2,er1)"
+gdb_test "x" "shll.l\t#2,@er1\\+" \
+ "shll.l #2,@er1+"
+gdb_test "x" "shll.l\t#2,@-er1" \
+ "shll.l #2,@-er1"
+gdb_test "x" "shll.l\t#2,@\\+er1" \
+ "shll.l #2,@+er1"
+gdb_test "x" "shll.l\t#2,@er1-" \
+ "shll.l #2,@er1-"
+gdb_test "x" "shll.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shll.l #2,@(0x1234:16,er1)"
+gdb_test "x" "shll.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shll.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "shll.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.l\t#2,@0x1234(:16|)" \
+ "shll.l #2,@0x1234:16"
+gdb_test "x" "shll.l\t#2,@0x12345678(:32|)" \
+ "shll.l #2,@0x12345678:32"
+gdb_test "x" "shll.b\t#4,r1h" \
+ "shll.b #4,r1h"
+gdb_test "x" "shll.b\t#4,@er1" \
+ "shll.b #4,@er1"
+gdb_test "x" "shll.b\t#4,@\\(0x3(:2|),er1\\)" \
+ "shll.b #4,@(0x3:2,er1)"
+gdb_test "x" "shll.b\t#4,@er1\\+" \
+ "shll.b #4,@er1+"
+gdb_test "x" "shll.b\t#4,@-er1" \
+ "shll.b #4,@-er1"
+gdb_test "x" "shll.b\t#4,@\\+er1" \
+ "shll.b #4,@+er1"
+gdb_test "x" "shll.b\t#4,@er1-" \
+ "shll.b #4,@er1-"
+gdb_test "x" "shll.b\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shll.b #4,@(0x1234:16,er1)"
+gdb_test "x" "shll.b\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shll.b #4,@(0x12345678:32,er1)"
+gdb_test "x" "shll.b\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.b #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.b\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.b #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.b\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.b #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.b\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.b #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.b\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.b #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.b\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.b #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.b\t#4,@0x12(:8|)" \
+ "shll.b #4,@0x12:8"
+gdb_test "x" "shll.b\t#4,@0x1234(:16|)" \
+ "shll.b #4,@0x1234:16"
+gdb_test "x" "shll.b\t#4,@0x12345678(:32|)" \
+ "shll.b #4,@0x12345678:32"
+gdb_test "x" "shll.w\t#4,r1" \
+ "shll.w #4,r1"
+gdb_test "x" "shll.w\t#4,@er1" \
+ "shll.w #4,@er1"
+gdb_test "x" "shll.w\t#4,@\\(0x6(:2|),er1\\)" \
+ "shll.w #4,@(0x6:2,er1)"
+gdb_test "x" "shll.w\t#4,@er1\\+" \
+ "shll.w #4,@er1+"
+gdb_test "x" "shll.w\t#4,@-er1" \
+ "shll.w #4,@-er1"
+gdb_test "x" "shll.w\t#4,@\\+er1" \
+ "shll.w #4,@+er1"
+gdb_test "x" "shll.w\t#4,@er1-" \
+ "shll.w #4,@er1-"
+gdb_test "x" "shll.w\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shll.w #4,@(0x1234:16,er1)"
+gdb_test "x" "shll.w\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shll.w #4,@(0x12345678:32,er1)"
+gdb_test "x" "shll.w\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.w #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.w\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.w #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.w\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.w #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.w\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.w #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.w\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.w #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.w\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.w #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.w\t#4,@0x1234(:16|)" \
+ "shll.w #4,@0x1234:16"
+gdb_test "x" "shll.w\t#4,@0x12345678(:32|)" \
+ "shll.w #4,@0x12345678:32"
+gdb_test "x" "shll.l\t#4,er1" \
+ "shll.l #4,er1"
+gdb_test "x" "shll.l\t#4,@er1" \
+ "shll.l #4,@er1"
+gdb_test "x" "shll.l\t#4,@\\(0xc(:2|),er1\\)" \
+ "shll.l #4,@(0xc:2,er1)"
+gdb_test "x" "shll.l\t#4,@er1\\+" \
+ "shll.l #4,@er1+"
+gdb_test "x" "shll.l\t#4,@-er1" \
+ "shll.l #4,@-er1"
+gdb_test "x" "shll.l\t#4,@\\+er1" \
+ "shll.l #4,@+er1"
+gdb_test "x" "shll.l\t#4,@er1-" \
+ "shll.l #4,@er1-"
+gdb_test "x" "shll.l\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shll.l #4,@(0x1234:16,er1)"
+gdb_test "x" "shll.l\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shll.l #4,@(0x12345678:32,er1)"
+gdb_test "x" "shll.l\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.l #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.l\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.l #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.l\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.l #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.l\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.l #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.l\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.l #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.l\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.l #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.l\t#4,@0x1234(:16|)" \
+ "shll.l #4,@0x1234:16"
+gdb_test "x" "shll.l\t#4,@0x12345678(:32|)" \
+ "shll.l #4,@0x12345678:32"
+gdb_test "x" "shll.w\t#8,r1" \
+ "shll.w #8,r1"
+gdb_test "x" "shll.w\t#8,@er1" \
+ "shll.w #8,@er1"
+gdb_test "x" "shll.w\t#8,@\\(0x6(:2|),er1\\)" \
+ "shll.w #8,@(0x6:2,er1)"
+gdb_test "x" "shll.w\t#8,@er1\\+" \
+ "shll.w #8,@er1+"
+gdb_test "x" "shll.w\t#8,@-er1" \
+ "shll.w #8,@-er1"
+gdb_test "x" "shll.w\t#8,@\\+er1" \
+ "shll.w #8,@+er1"
+gdb_test "x" "shll.w\t#8,@er1-" \
+ "shll.w #8,@er1-"
+gdb_test "x" "shll.w\t#8,@\\(0x1234(:16|),er1\\)" \
+ "shll.w #8,@(0x1234:16,er1)"
+gdb_test "x" "shll.w\t#8,@\\(0x12345678(:32|),er1\\)" \
+ "shll.w #8,@(0x12345678:32,er1)"
+gdb_test "x" "shll.w\t#8,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.w #8,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.w\t#8,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.w #8,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.w\t#8,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.w #8,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.w\t#8,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.w #8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.w\t#8,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.w #8,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.w\t#8,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.w #8,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.w\t#8,@0x1234(:16|)" \
+ "shll.w #8,@0x1234:16"
+gdb_test "x" "shll.w\t#8,@0x12345678(:32|)" \
+ "shll.w #8,@0x12345678:32"
+gdb_test "x" "shll.l\t#8,er1" \
+ "shll.l #8,er1"
+gdb_test "x" "shll.l\t#8,@er1" \
+ "shll.l #8,@er1"
+gdb_test "x" "shll.l\t#8,@\\(0xc(:2|),er1\\)" \
+ "shll.l #8,@(0xc:2,er1)"
+gdb_test "x" "shll.l\t#8,@er1\\+" \
+ "shll.l #8,@er1+"
+gdb_test "x" "shll.l\t#8,@-er1" \
+ "shll.l #8,@-er1"
+gdb_test "x" "shll.l\t#8,@\\+er1" \
+ "shll.l #8,@+er1"
+gdb_test "x" "shll.l\t#8,@er1-" \
+ "shll.l #8,@er1-"
+gdb_test "x" "shll.l\t#8,@\\(0x1234(:16|),er1\\)" \
+ "shll.l #8,@(0x1234:16,er1)"
+gdb_test "x" "shll.l\t#8,@\\(0x12345678(:32|),er1\\)" \
+ "shll.l #8,@(0x12345678:32,er1)"
+gdb_test "x" "shll.l\t#8,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.l #8,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.l\t#8,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.l #8,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.l\t#8,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.l #8,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.l\t#8,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.l #8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.l\t#8,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.l #8,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.l\t#8,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.l #8,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.l\t#8,@0x1234(:16|)" \
+ "shll.l #8,@0x1234:16"
+gdb_test "x" "shll.l\t#8,@0x12345678(:32|)" \
+ "shll.l #8,@0x12345678:32"
+gdb_test "x" "shll.l\t#16,er1" \
+ "shll.l #16,er1"
+gdb_test "x" "shll.l\t#16,@er1" \
+ "shll.l #16,@er1"
+gdb_test "x" "shll.l\t#16,@\\(0xc(:2|),er1\\)" \
+ "shll.l #16,@(0xc:2,er1)"
+gdb_test "x" "shll.l\t#16,@er1\\+" \
+ "shll.l #16,@er1+"
+gdb_test "x" "shll.l\t#16,@-er1" \
+ "shll.l #16,@-er1"
+gdb_test "x" "shll.l\t#16,@\\+er1" \
+ "shll.l #16,@+er1"
+gdb_test "x" "shll.l\t#16,@er1-" \
+ "shll.l #16,@er1-"
+gdb_test "x" "shll.l\t#16,@\\(0x1234(:16|),er1\\)" \
+ "shll.l #16,@(0x1234:16,er1)"
+gdb_test "x" "shll.l\t#16,@\\(0x12345678(:32|),er1\\)" \
+ "shll.l #16,@(0x12345678:32,er1)"
+gdb_test "x" "shll.l\t#16,@\\(0x1234(:16|),r2l.b\\)" \
+ "shll.l #16,@(0x1234:16,r2l.b)"
+gdb_test "x" "shll.l\t#16,@\\(0x1234(:16|),r2.w\\)" \
+ "shll.l #16,@(0x1234:16,r2.w)"
+gdb_test "x" "shll.l\t#16,@\\(0x1234(:16|),er2.l\\)" \
+ "shll.l #16,@(0x1234:16,er2.l)"
+gdb_test "x" "shll.l\t#16,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shll.l #16,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shll.l\t#16,@\\(0x12345678(:32|),r2.w\\)" \
+ "shll.l #16,@(0x12345678:32,r2.w)"
+gdb_test "x" "shll.l\t#16,@\\(0x12345678(:32|),er2.l\\)" \
+ "shll.l #16,@(0x12345678:32,er2.l)"
+gdb_test "x" "shll.l\t#16,@0x1234(:16|)" \
+ "shll.l #16,@0x1234:16"
+gdb_test "x" "shll.l\t#16,@0x12345678(:32|)" \
+ "shll.l #16,@0x12345678:32"
+gdb_test "x" "shll.b\t#0x7(:5|),r1h" \
+ "shll.b #0x7:5,r1h"
+gdb_test "x" "shll.w\t#0xf(:5|),r1" \
+ "shll.w #0xf:5,r1"
+gdb_test "x" "shll.l\t#0x1f(:5|),er1" \
+ "shll.l #0x1f:5,er1"
+gdb_test "x" "shll.b\tr3h,r1h" \
+ "shll.b r3h,r1h"
+gdb_test "x" "shll.w\tr3h,r1" \
+ "shll.w r3h,r1"
+gdb_test "x" "shll.l\tr3h,er1" \
+ "shll.l r3h,er1"
+gdb_test "x" "shlr.b\tr1h" \
+ "shlr.b r1h"
+gdb_test "x" "shlr.b\t@er1" \
+ "shlr.b @er1"
+gdb_test "x" "shlr.b\t@\\(0x3(:2|),er1\\)" \
+ "shlr.b @(0x3:2,er1)"
+gdb_test "x" "shlr.b\t@er1\\+" \
+ "shlr.b @er1+"
+gdb_test "x" "shlr.b\t@-er1" \
+ "shlr.b @-er1"
+gdb_test "x" "shlr.b\t@\\+er1" \
+ "shlr.b @+er1"
+gdb_test "x" "shlr.b\t@er1-" \
+ "shlr.b @er1-"
+gdb_test "x" "shlr.b\t@\\(0x1234(:16|),er1\\)" \
+ "shlr.b @(0x1234:16,er1)"
+gdb_test "x" "shlr.b\t@\\(0x12345678(:32|),er1\\)" \
+ "shlr.b @(0x12345678:32,er1)"
+gdb_test "x" "shlr.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.b @(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.b @(0x1234:16,r2.w)"
+gdb_test "x" "shlr.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.b @(0x1234:16,er2.l)"
+gdb_test "x" "shlr.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.b @(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.b @(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.b\t@0x12(:8|)" \
+ "shlr.b @0x12:8"
+gdb_test "x" "shlr.b\t@0x1234(:16|)" \
+ "shlr.b @0x1234:16"
+gdb_test "x" "shlr.b\t@0x12345678(:32|)" \
+ "shlr.b @0x12345678:32"
+gdb_test "x" "shlr.w\tr1" \
+ "shlr.w r1"
+gdb_test "x" "shlr.w\t@er1" \
+ "shlr.w @er1"
+gdb_test "x" "shlr.w\t@\\(0x6(:2|),er1\\)" \
+ "shlr.w @(0x6:2,er1)"
+gdb_test "x" "shlr.w\t@er1\\+" \
+ "shlr.w @er1+"
+gdb_test "x" "shlr.w\t@-er1" \
+ "shlr.w @-er1"
+gdb_test "x" "shlr.w\t@\\+er1" \
+ "shlr.w @+er1"
+gdb_test "x" "shlr.w\t@er1-" \
+ "shlr.w @er1-"
+gdb_test "x" "shlr.w\t@\\(0x1234(:16|),er1\\)" \
+ "shlr.w @(0x1234:16,er1)"
+gdb_test "x" "shlr.w\t@\\(0x12345678(:32|),er1\\)" \
+ "shlr.w @(0x12345678:32,er1)"
+gdb_test "x" "shlr.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.w @(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.w @(0x1234:16,r2.w)"
+gdb_test "x" "shlr.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.w @(0x1234:16,er2.l)"
+gdb_test "x" "shlr.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.w @(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.w @(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.w\t@0x1234(:16|)" \
+ "shlr.w @0x1234:16"
+gdb_test "x" "shlr.w\t@0x12345678(:32|)" \
+ "shlr.w @0x12345678:32"
+gdb_test "x" "shlr.l\ter1" \
+ "shlr.l er1"
+gdb_test "x" "shlr.l\t@er1" \
+ "shlr.l @er1"
+gdb_test "x" "shlr.l\t@\\(0xc(:2|),er1\\)" \
+ "shlr.l @(0xc:2,er1)"
+gdb_test "x" "shlr.l\t@er1\\+" \
+ "shlr.l @er1+"
+gdb_test "x" "shlr.l\t@-er1" \
+ "shlr.l @-er1"
+gdb_test "x" "shlr.l\t@\\+er1" \
+ "shlr.l @+er1"
+gdb_test "x" "shlr.l\t@er1-" \
+ "shlr.l @er1-"
+gdb_test "x" "shlr.l\t@\\(0x1234(:16|),er1\\)" \
+ "shlr.l @(0x1234:16,er1)"
+gdb_test "x" "shlr.l\t@\\(0x12345678(:32|),er1\\)" \
+ "shlr.l @(0x12345678:32,er1)"
+gdb_test "x" "shlr.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.l @(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.l @(0x1234:16,r2.w)"
+gdb_test "x" "shlr.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.l @(0x1234:16,er2.l)"
+gdb_test "x" "shlr.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.l @(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.l @(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.l\t@0x1234(:16|)" \
+ "shlr.l @0x1234:16"
+gdb_test "x" "shlr.l\t@0x12345678(:32|)" \
+ "shlr.l @0x12345678:32"
+gdb_test "x" "shlr.b\t#2,r1h" \
+ "shlr.b #2,r1h"
+gdb_test "x" "shlr.b\t#2,@er1" \
+ "shlr.b #2,@er1"
+gdb_test "x" "shlr.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "shlr.b #2,@(0x3:2,er1)"
+gdb_test "x" "shlr.b\t#2,@er1\\+" \
+ "shlr.b #2,@er1+"
+gdb_test "x" "shlr.b\t#2,@-er1" \
+ "shlr.b #2,@-er1"
+gdb_test "x" "shlr.b\t#2,@\\+er1" \
+ "shlr.b #2,@+er1"
+gdb_test "x" "shlr.b\t#2,@er1-" \
+ "shlr.b #2,@er1-"
+gdb_test "x" "shlr.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shlr.b #2,@(0x1234:16,er1)"
+gdb_test "x" "shlr.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.b\t#2,@0x12(:8|)" \
+ "shlr.b #2,@0x12:8"
+gdb_test "x" "shlr.b\t#2,@0x1234(:16|)" \
+ "shlr.b #2,@0x1234:16"
+gdb_test "x" "shlr.b\t#2,@0x12345678(:32|)" \
+ "shlr.b #2,@0x12345678:32"
+gdb_test "x" "shlr.w\t#2,r1" \
+ "shlr.w #2,r1"
+gdb_test "x" "shlr.w\t#2,@er1" \
+ "shlr.w #2,@er1"
+gdb_test "x" "shlr.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "shlr.w #2,@(0x6:2,er1)"
+gdb_test "x" "shlr.w\t#2,@er1\\+" \
+ "shlr.w #2,@er1+"
+gdb_test "x" "shlr.w\t#2,@-er1" \
+ "shlr.w #2,@-er1"
+gdb_test "x" "shlr.w\t#2,@\\+er1" \
+ "shlr.w #2,@+er1"
+gdb_test "x" "shlr.w\t#2,@er1-" \
+ "shlr.w #2,@er1-"
+gdb_test "x" "shlr.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shlr.w #2,@(0x1234:16,er1)"
+gdb_test "x" "shlr.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.w\t#2,@0x1234(:16|)" \
+ "shlr.w #2,@0x1234:16"
+gdb_test "x" "shlr.w\t#2,@0x12345678(:32|)" \
+ "shlr.w #2,@0x12345678:32"
+gdb_test "x" "shlr.l\t#2,er1" \
+ "shlr.l #2,er1"
+gdb_test "x" "shlr.l\t#2,@er1" \
+ "shlr.l #2,@er1"
+gdb_test "x" "shlr.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "shlr.l #2,@(0xc:2,er1)"
+gdb_test "x" "shlr.l\t#2,@er1\\+" \
+ "shlr.l #2,@er1+"
+gdb_test "x" "shlr.l\t#2,@-er1" \
+ "shlr.l #2,@-er1"
+gdb_test "x" "shlr.l\t#2,@\\+er1" \
+ "shlr.l #2,@+er1"
+gdb_test "x" "shlr.l\t#2,@er1-" \
+ "shlr.l #2,@er1-"
+gdb_test "x" "shlr.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shlr.l #2,@(0x1234:16,er1)"
+gdb_test "x" "shlr.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.l\t#2,@0x1234(:16|)" \
+ "shlr.l #2,@0x1234:16"
+gdb_test "x" "shlr.l\t#2,@0x12345678(:32|)" \
+ "shlr.l #2,@0x12345678:32"
+gdb_test "x" "shlr.b\t#4,r1h" \
+ "shlr.b #4,r1h"
+gdb_test "x" "shlr.b\t#4,@er1" \
+ "shlr.b #4,@er1"
+gdb_test "x" "shlr.b\t#4,@\\(0x3(:2|),er1\\)" \
+ "shlr.b #4,@(0x3:2,er1)"
+gdb_test "x" "shlr.b\t#4,@er1\\+" \
+ "shlr.b #4,@er1+"
+gdb_test "x" "shlr.b\t#4,@-er1" \
+ "shlr.b #4,@-er1"
+gdb_test "x" "shlr.b\t#4,@\\+er1" \
+ "shlr.b #4,@+er1"
+gdb_test "x" "shlr.b\t#4,@er1-" \
+ "shlr.b #4,@er1-"
+gdb_test "x" "shlr.b\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shlr.b #4,@(0x1234:16,er1)"
+gdb_test "x" "shlr.b\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.b #4,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.b\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.b #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.b\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.b #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.b\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.b #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.b\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.b #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.b\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.b #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.b\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.b #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.b\t#4,@0x12(:8|)" \
+ "shlr.b #4,@0x12:8"
+gdb_test "x" "shlr.b\t#4,@0x1234(:16|)" \
+ "shlr.b #4,@0x1234:16"
+gdb_test "x" "shlr.b\t#4,@0x12345678(:32|)" \
+ "shlr.b #4,@0x12345678:32"
+gdb_test "x" "shlr.w\t#4,r1" \
+ "shlr.w #4,r1"
+gdb_test "x" "shlr.w\t#4,@er1" \
+ "shlr.w #4,@er1"
+gdb_test "x" "shlr.w\t#4,@\\(0x6(:2|),er1\\)" \
+ "shlr.w #4,@(0x6:2,er1)"
+gdb_test "x" "shlr.w\t#4,@er1\\+" \
+ "shlr.w #4,@er1+"
+gdb_test "x" "shlr.w\t#4,@-er1" \
+ "shlr.w #4,@-er1"
+gdb_test "x" "shlr.w\t#4,@\\+er1" \
+ "shlr.w #4,@+er1"
+gdb_test "x" "shlr.w\t#4,@er1-" \
+ "shlr.w #4,@er1-"
+gdb_test "x" "shlr.w\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shlr.w #4,@(0x1234:16,er1)"
+gdb_test "x" "shlr.w\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.w #4,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.w\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.w #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.w\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.w #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.w\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.w #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.w\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.w #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.w\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.w #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.w\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.w #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.w\t#4,@0x1234(:16|)" \
+ "shlr.w #4,@0x1234:16"
+gdb_test "x" "shlr.w\t#4,@0x12345678(:32|)" \
+ "shlr.w #4,@0x12345678:32"
+gdb_test "x" "shlr.l\t#4,er1" \
+ "shlr.l #4,er1"
+gdb_test "x" "shlr.l\t#4,@er1" \
+ "shlr.l #4,@er1"
+gdb_test "x" "shlr.l\t#4,@\\(0xc(:2|),er1\\)" \
+ "shlr.l #4,@(0xc:2,er1)"
+gdb_test "x" "shlr.l\t#4,@er1\\+" \
+ "shlr.l #4,@er1+"
+gdb_test "x" "shlr.l\t#4,@-er1" \
+ "shlr.l #4,@-er1"
+gdb_test "x" "shlr.l\t#4,@\\+er1" \
+ "shlr.l #4,@+er1"
+gdb_test "x" "shlr.l\t#4,@er1-" \
+ "shlr.l #4,@er1-"
+gdb_test "x" "shlr.l\t#4,@\\(0x1234(:16|),er1\\)" \
+ "shlr.l #4,@(0x1234:16,er1)"
+gdb_test "x" "shlr.l\t#4,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.l #4,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.l\t#4,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.l #4,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.l\t#4,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.l #4,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.l\t#4,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.l #4,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.l\t#4,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.l #4,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.l\t#4,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.l #4,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.l\t#4,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.l #4,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.l\t#4,@0x1234(:16|)" \
+ "shlr.l #4,@0x1234:16"
+gdb_test "x" "shlr.l\t#4,@0x12345678(:32|)" \
+ "shlr.l #4,@0x12345678:32"
+gdb_test "x" "shlr.w\t#8,r1" \
+ "shlr.w #8,r1"
+gdb_test "x" "shlr.w\t#8,@er1" \
+ "shlr.w #8,@er1"
+gdb_test "x" "shlr.w\t#8,@\\(0x6(:2|),er1\\)" \
+ "shlr.w #8,@(0x6:2,er1)"
+gdb_test "x" "shlr.w\t#8,@er1\\+" \
+ "shlr.w #8,@er1+"
+gdb_test "x" "shlr.w\t#8,@-er1" \
+ "shlr.w #8,@-er1"
+gdb_test "x" "shlr.w\t#8,@\\+er1" \
+ "shlr.w #8,@+er1"
+gdb_test "x" "shlr.w\t#8,@er1-" \
+ "shlr.w #8,@er1-"
+gdb_test "x" "shlr.w\t#8,@\\(0x1234(:16|),er1\\)" \
+ "shlr.w #8,@(0x1234:16,er1)"
+gdb_test "x" "shlr.w\t#8,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.w #8,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.w\t#8,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.w #8,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.w\t#8,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.w #8,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.w\t#8,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.w #8,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.w\t#8,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.w #8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.w\t#8,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.w #8,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.w\t#8,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.w #8,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.w\t#8,@0x1234(:16|)" \
+ "shlr.w #8,@0x1234:16"
+gdb_test "x" "shlr.w\t#8,@0x12345678(:32|)" \
+ "shlr.w #8,@0x12345678:32"
+gdb_test "x" "shlr.l\t#8,er1" \
+ "shlr.l #8,er1"
+gdb_test "x" "shlr.l\t#8,@er1" \
+ "shlr.l #8,@er1"
+gdb_test "x" "shlr.l\t#8,@\\(0xc(:2|),er1\\)" \
+ "shlr.l #8,@(0xc:2,er1)"
+gdb_test "x" "shlr.l\t#8,@er1\\+" \
+ "shlr.l #8,@er1+"
+gdb_test "x" "shlr.l\t#8,@-er1" \
+ "shlr.l #8,@-er1"
+gdb_test "x" "shlr.l\t#8,@\\+er1" \
+ "shlr.l #8,@+er1"
+gdb_test "x" "shlr.l\t#8,@er1-" \
+ "shlr.l #8,@er1-"
+gdb_test "x" "shlr.l\t#8,@\\(0x1234(:16|),er1\\)" \
+ "shlr.l #8,@(0x1234:16,er1)"
+gdb_test "x" "shlr.l\t#8,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.l #8,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.l\t#8,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.l #8,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.l\t#8,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.l #8,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.l\t#8,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.l #8,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.l\t#8,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.l #8,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.l\t#8,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.l #8,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.l\t#8,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.l #8,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.l\t#8,@0x1234(:16|)" \
+ "shlr.l #8,@0x1234:16"
+gdb_test "x" "shlr.l\t#8,@0x12345678(:32|)" \
+ "shlr.l #8,@0x12345678:32"
+gdb_test "x" "shlr.l\t#16,er1" \
+ "shlr.l #16,er1"
+gdb_test "x" "shlr.l\t#16,@er1" \
+ "shlr.l #16,@er1"
+gdb_test "x" "shlr.l\t#16,@\\(0xc(:2|),er1\\)" \
+ "shlr.l #16,@(0xc:2,er1)"
+gdb_test "x" "shlr.l\t#16,@er1\\+" \
+ "shlr.l #16,@er1+"
+gdb_test "x" "shlr.l\t#16,@-er1" \
+ "shlr.l #16,@-er1"
+gdb_test "x" "shlr.l\t#16,@\\+er1" \
+ "shlr.l #16,@+er1"
+gdb_test "x" "shlr.l\t#16,@er1-" \
+ "shlr.l #16,@er1-"
+gdb_test "x" "shlr.l\t#16,@\\(0x1234(:16|),er1\\)" \
+ "shlr.l #16,@(0x1234:16,er1)"
+gdb_test "x" "shlr.l\t#16,@\\(0x12345678(:32|),er1\\)" \
+ "shlr.l #16,@(0x12345678:32,er1)"
+gdb_test "x" "shlr.l\t#16,@\\(0x1234(:16|),r2l.b\\)" \
+ "shlr.l #16,@(0x1234:16,r2l.b)"
+gdb_test "x" "shlr.l\t#16,@\\(0x1234(:16|),r2.w\\)" \
+ "shlr.l #16,@(0x1234:16,r2.w)"
+gdb_test "x" "shlr.l\t#16,@\\(0x1234(:16|),er2.l\\)" \
+ "shlr.l #16,@(0x1234:16,er2.l)"
+gdb_test "x" "shlr.l\t#16,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shlr.l #16,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shlr.l\t#16,@\\(0x12345678(:32|),r2.w\\)" \
+ "shlr.l #16,@(0x12345678:32,r2.w)"
+gdb_test "x" "shlr.l\t#16,@\\(0x12345678(:32|),er2.l\\)" \
+ "shlr.l #16,@(0x12345678:32,er2.l)"
+gdb_test "x" "shlr.l\t#16,@0x1234(:16|)" \
+ "shlr.l #16,@0x1234:16"
+gdb_test "x" "shlr.l\t#16,@0x12345678(:32|)" \
+ "shlr.l #16,@0x12345678:32"
+gdb_test "x" "shlr.b\t#0x7(:5|),r1h" \
+ "shlr.b #0x7:5,r1h"
+gdb_test "x" "shlr.w\t#0xf(:5|),r1" \
+ "shlr.w #0xf:5,r1"
+gdb_test "x" "shlr.l\t#0x1f(:5|),er1" \
+ "shlr.l #0x1f:5,er1"
+gdb_test "x" "shlr.b\tr3h,r1h" \
+ "shlr.b r3h,r1h"
+gdb_test "x" "shlr.w\tr3h,r1" \
+ "shlr.w r3h,r1"
+gdb_test "x" "shlr.l\tr3h,er1" \
+ "shlr.l r3h,er1"
+gdb_test "x" "shal.b\tr1h" \
+ "shal.b r1h"
+gdb_test "x" "shal.b\t@er1" \
+ "shal.b @er1"
+gdb_test "x" "shal.b\t@\\(0x3(:2|),er1\\)" \
+ "shal.b @(0x3:2,er1)"
+gdb_test "x" "shal.b\t@er1\\+" \
+ "shal.b @er1+"
+gdb_test "x" "shal.b\t@-er1" \
+ "shal.b @-er1"
+gdb_test "x" "shal.b\t@\\+er1" \
+ "shal.b @+er1"
+gdb_test "x" "shal.b\t@er1-" \
+ "shal.b @er1-"
+gdb_test "x" "shal.b\t@\\(0x1234(:16|),er1\\)" \
+ "shal.b @(0x1234:16,er1)"
+gdb_test "x" "shal.b\t@\\(0x12345678(:32|),er1\\)" \
+ "shal.b @(0x12345678:32,er1)"
+gdb_test "x" "shal.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.b @(0x1234:16,r2l.b)"
+gdb_test "x" "shal.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "shal.b @(0x1234:16,r2.w)"
+gdb_test "x" "shal.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "shal.b @(0x1234:16,er2.l)"
+gdb_test "x" "shal.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.b @(0x12345678:32,r2.w)"
+gdb_test "x" "shal.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.b @(0x12345678:32,er2.l)"
+gdb_test "x" "shal.b\t@0x12(:8|)" \
+ "shal.b @0x12:8"
+gdb_test "x" "shal.b\t@0x1234(:16|)" \
+ "shal.b @0x1234:16"
+gdb_test "x" "shal.b\t@0x12345678(:32|)" \
+ "shal.b @0x12345678:32"
+gdb_test "x" "shal.w\tr1" \
+ "shal.w r1"
+gdb_test "x" "shal.w\t@er1" \
+ "shal.w @er1"
+gdb_test "x" "shal.w\t@\\(0x6(:2|),er1\\)" \
+ "shal.w @(0x6:2,er1)"
+gdb_test "x" "shal.w\t@er1\\+" \
+ "shal.w @er1+"
+gdb_test "x" "shal.w\t@-er1" \
+ "shal.w @-er1"
+gdb_test "x" "shal.w\t@\\+er1" \
+ "shal.w @+er1"
+gdb_test "x" "shal.w\t@er1-" \
+ "shal.w @er1-"
+gdb_test "x" "shal.w\t@\\(0x1234(:16|),er1\\)" \
+ "shal.w @(0x1234:16,er1)"
+gdb_test "x" "shal.w\t@\\(0x12345678(:32|),er1\\)" \
+ "shal.w @(0x12345678:32,er1)"
+gdb_test "x" "shal.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.w @(0x1234:16,r2l.b)"
+gdb_test "x" "shal.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "shal.w @(0x1234:16,r2.w)"
+gdb_test "x" "shal.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "shal.w @(0x1234:16,er2.l)"
+gdb_test "x" "shal.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.w @(0x12345678:32,r2.w)"
+gdb_test "x" "shal.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.w @(0x12345678:32,er2.l)"
+gdb_test "x" "shal.w\t@0x1234(:16|)" \
+ "shal.w @0x1234:16"
+gdb_test "x" "shal.w\t@0x12345678(:32|)" \
+ "shal.w @0x12345678:32"
+gdb_test "x" "shal.l\ter1" \
+ "shal.l er1"
+gdb_test "x" "shal.l\t@er1" \
+ "shal.l @er1"
+gdb_test "x" "shal.l\t@\\(0xc(:2|),er1\\)" \
+ "shal.l @(0xc:2,er1)"
+gdb_test "x" "shal.l\t@er1\\+" \
+ "shal.l @er1+"
+gdb_test "x" "shal.l\t@-er1" \
+ "shal.l @-er1"
+gdb_test "x" "shal.l\t@\\+er1" \
+ "shal.l @+er1"
+gdb_test "x" "shal.l\t@er1-" \
+ "shal.l @er1-"
+gdb_test "x" "shal.l\t@\\(0x1234(:16|),er1\\)" \
+ "shal.l @(0x1234:16,er1)"
+gdb_test "x" "shal.l\t@\\(0x12345678(:32|),er1\\)" \
+ "shal.l @(0x12345678:32,er1)"
+gdb_test "x" "shal.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.l @(0x1234:16,r2l.b)"
+gdb_test "x" "shal.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "shal.l @(0x1234:16,r2.w)"
+gdb_test "x" "shal.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "shal.l @(0x1234:16,er2.l)"
+gdb_test "x" "shal.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.l @(0x12345678:32,r2.w)"
+gdb_test "x" "shal.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.l @(0x12345678:32,er2.l)"
+gdb_test "x" "shal.l\t@0x1234(:16|)" \
+ "shal.l @0x1234:16"
+gdb_test "x" "shal.l\t@0x12345678(:32|)" \
+ "shal.l @0x12345678:32"
+gdb_test "x" "shal.b\t#2,r1h" \
+ "shal.b #2,r1h"
+gdb_test "x" "shal.b\t#2,@er1" \
+ "shal.b #2,@er1"
+gdb_test "x" "shal.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "shal.b #2,@(0x3:2,er1)"
+gdb_test "x" "shal.b\t#2,@er1\\+" \
+ "shal.b #2,@er1+"
+gdb_test "x" "shal.b\t#2,@-er1" \
+ "shal.b #2,@-er1"
+gdb_test "x" "shal.b\t#2,@\\+er1" \
+ "shal.b #2,@+er1"
+gdb_test "x" "shal.b\t#2,@er1-" \
+ "shal.b #2,@er1-"
+gdb_test "x" "shal.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shal.b #2,@(0x1234:16,er1)"
+gdb_test "x" "shal.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shal.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "shal.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shal.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shal.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shal.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shal.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shal.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shal.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shal.b\t#2,@0x12(:8|)" \
+ "shal.b #2,@0x12:8"
+gdb_test "x" "shal.b\t#2,@0x1234(:16|)" \
+ "shal.b #2,@0x1234:16"
+gdb_test "x" "shal.b\t#2,@0x12345678(:32|)" \
+ "shal.b #2,@0x12345678:32"
+gdb_test "x" "shal.w\t#2,r1" \
+ "shal.w #2,r1"
+gdb_test "x" "shal.w\t#2,@er1" \
+ "shal.w #2,@er1"
+gdb_test "x" "shal.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "shal.w #2,@(0x6:2,er1)"
+gdb_test "x" "shal.w\t#2,@er1\\+" \
+ "shal.w #2,@er1+"
+gdb_test "x" "shal.w\t#2,@-er1" \
+ "shal.w #2,@-er1"
+gdb_test "x" "shal.w\t#2,@\\+er1" \
+ "shal.w #2,@+er1"
+gdb_test "x" "shal.w\t#2,@er1-" \
+ "shal.w #2,@er1-"
+gdb_test "x" "shal.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shal.w #2,@(0x1234:16,er1)"
+gdb_test "x" "shal.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shal.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "shal.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shal.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shal.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shal.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shal.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shal.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shal.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shal.w\t#2,@0x1234(:16|)" \
+ "shal.w #2,@0x1234:16"
+gdb_test "x" "shal.w\t#2,@0x12345678(:32|)" \
+ "shal.w #2,@0x12345678:32"
+gdb_test "x" "shal.l\t#2,er1" \
+ "shal.l #2,er1"
+gdb_test "x" "shal.l\t#2,@er1" \
+ "shal.l #2,@er1"
+gdb_test "x" "shal.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "shal.l #2,@(0xc:2,er1)"
+gdb_test "x" "shal.l\t#2,@er1\\+" \
+ "shal.l #2,@er1+"
+gdb_test "x" "shal.l\t#2,@-er1" \
+ "shal.l #2,@-er1"
+gdb_test "x" "shal.l\t#2,@\\+er1" \
+ "shal.l #2,@+er1"
+gdb_test "x" "shal.l\t#2,@er1-" \
+ "shal.l #2,@er1-"
+gdb_test "x" "shal.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shal.l #2,@(0x1234:16,er1)"
+gdb_test "x" "shal.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shal.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "shal.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shal.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shal.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shal.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shal.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shal.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shal.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shal.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shal.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shal.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shal.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shal.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shal.l\t#2,@0x1234(:16|)" \
+ "shal.l #2,@0x1234:16"
+gdb_test "x" "shal.l\t#2,@0x12345678(:32|)" \
+ "shal.l #2,@0x12345678:32"
+gdb_test "x" "shar.b\tr1h" \
+ "shar.b r1h"
+gdb_test "x" "shar.b\t@er1" \
+ "shar.b @er1"
+gdb_test "x" "shar.b\t@\\(0x3(:2|),er1\\)" \
+ "shar.b @(0x3:2,er1)"
+gdb_test "x" "shar.b\t@er1\\+" \
+ "shar.b @er1+"
+gdb_test "x" "shar.b\t@-er1" \
+ "shar.b @-er1"
+gdb_test "x" "shar.b\t@\\+er1" \
+ "shar.b @+er1"
+gdb_test "x" "shar.b\t@er1-" \
+ "shar.b @er1-"
+gdb_test "x" "shar.b\t@\\(0x1234(:16|),er1\\)" \
+ "shar.b @(0x1234:16,er1)"
+gdb_test "x" "shar.b\t@\\(0x12345678(:32|),er1\\)" \
+ "shar.b @(0x12345678:32,er1)"
+gdb_test "x" "shar.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.b @(0x1234:16,r2l.b)"
+gdb_test "x" "shar.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "shar.b @(0x1234:16,r2.w)"
+gdb_test "x" "shar.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "shar.b @(0x1234:16,er2.l)"
+gdb_test "x" "shar.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.b @(0x12345678:32,r2.w)"
+gdb_test "x" "shar.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.b @(0x12345678:32,er2.l)"
+gdb_test "x" "shar.b\t@0x12(:8|)" \
+ "shar.b @0x12:8"
+gdb_test "x" "shar.b\t@0x1234(:16|)" \
+ "shar.b @0x1234:16"
+gdb_test "x" "shar.b\t@0x12345678(:32|)" \
+ "shar.b @0x12345678:32"
+gdb_test "x" "shar.w\tr1" \
+ "shar.w r1"
+gdb_test "x" "shar.w\t@er1" \
+ "shar.w @er1"
+gdb_test "x" "shar.w\t@\\(0x6(:2|),er1\\)" \
+ "shar.w @(0x6:2,er1)"
+gdb_test "x" "shar.w\t@er1\\+" \
+ "shar.w @er1+"
+gdb_test "x" "shar.w\t@-er1" \
+ "shar.w @-er1"
+gdb_test "x" "shar.w\t@\\+er1" \
+ "shar.w @+er1"
+gdb_test "x" "shar.w\t@er1-" \
+ "shar.w @er1-"
+gdb_test "x" "shar.w\t@\\(0x1234(:16|),er1\\)" \
+ "shar.w @(0x1234:16,er1)"
+gdb_test "x" "shar.w\t@\\(0x12345678(:32|),er1\\)" \
+ "shar.w @(0x12345678:32,er1)"
+gdb_test "x" "shar.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.w @(0x1234:16,r2l.b)"
+gdb_test "x" "shar.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "shar.w @(0x1234:16,r2.w)"
+gdb_test "x" "shar.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "shar.w @(0x1234:16,er2.l)"
+gdb_test "x" "shar.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.w @(0x12345678:32,r2.w)"
+gdb_test "x" "shar.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.w @(0x12345678:32,er2.l)"
+gdb_test "x" "shar.w\t@0x1234(:16|)" \
+ "shar.w @0x1234:16"
+gdb_test "x" "shar.w\t@0x12345678(:32|)" \
+ "shar.w @0x12345678:32"
+gdb_test "x" "shar.l\ter1" \
+ "shar.l er1"
+gdb_test "x" "shar.l\t@er1" \
+ "shar.l @er1"
+gdb_test "x" "shar.l\t@\\(0xc(:2|),er1\\)" \
+ "shar.l @(0xc:2,er1)"
+gdb_test "x" "shar.l\t@er1\\+" \
+ "shar.l @er1+"
+gdb_test "x" "shar.l\t@-er1" \
+ "shar.l @-er1"
+gdb_test "x" "shar.l\t@\\+er1" \
+ "shar.l @+er1"
+gdb_test "x" "shar.l\t@er1-" \
+ "shar.l @er1-"
+gdb_test "x" "shar.l\t@\\(0x1234(:16|),er1\\)" \
+ "shar.l @(0x1234:16,er1)"
+gdb_test "x" "shar.l\t@\\(0x12345678(:32|),er1\\)" \
+ "shar.l @(0x12345678:32,er1)"
+gdb_test "x" "shar.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.l @(0x1234:16,r2l.b)"
+gdb_test "x" "shar.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "shar.l @(0x1234:16,r2.w)"
+gdb_test "x" "shar.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "shar.l @(0x1234:16,er2.l)"
+gdb_test "x" "shar.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.l @(0x12345678:32,r2.w)"
+gdb_test "x" "shar.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.l @(0x12345678:32,er2.l)"
+gdb_test "x" "shar.l\t@0x1234(:16|)" \
+ "shar.l @0x1234:16"
+gdb_test "x" "shar.l\t@0x12345678(:32|)" \
+ "shar.l @0x12345678:32"
+gdb_test "x" "shar.b\t#2,r1h" \
+ "shar.b #2,r1h"
+gdb_test "x" "shar.b\t#2,@er1" \
+ "shar.b #2,@er1"
+gdb_test "x" "shar.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "shar.b #2,@(0x3:2,er1)"
+gdb_test "x" "shar.b\t#2,@er1\\+" \
+ "shar.b #2,@er1+"
+gdb_test "x" "shar.b\t#2,@-er1" \
+ "shar.b #2,@-er1"
+gdb_test "x" "shar.b\t#2,@\\+er1" \
+ "shar.b #2,@+er1"
+gdb_test "x" "shar.b\t#2,@er1-" \
+ "shar.b #2,@er1-"
+gdb_test "x" "shar.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shar.b #2,@(0x1234:16,er1)"
+gdb_test "x" "shar.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shar.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "shar.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shar.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shar.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shar.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shar.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shar.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shar.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shar.b\t#2,@0x12(:8|)" \
+ "shar.b #2,@0x12:8"
+gdb_test "x" "shar.b\t#2,@0x1234(:16|)" \
+ "shar.b #2,@0x1234:16"
+gdb_test "x" "shar.b\t#2,@0x12345678(:32|)" \
+ "shar.b #2,@0x12345678:32"
+gdb_test "x" "shar.w\t#2,r1" \
+ "shar.w #2,r1"
+gdb_test "x" "shar.w\t#2,@er1" \
+ "shar.w #2,@er1"
+gdb_test "x" "shar.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "shar.w #2,@(0x6:2,er1)"
+gdb_test "x" "shar.w\t#2,@er1\\+" \
+ "shar.w #2,@er1+"
+gdb_test "x" "shar.w\t#2,@-er1" \
+ "shar.w #2,@-er1"
+gdb_test "x" "shar.w\t#2,@\\+er1" \
+ "shar.w #2,@+er1"
+gdb_test "x" "shar.w\t#2,@er1-" \
+ "shar.w #2,@er1-"
+gdb_test "x" "shar.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shar.w #2,@(0x1234:16,er1)"
+gdb_test "x" "shar.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shar.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "shar.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shar.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shar.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shar.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shar.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shar.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shar.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shar.w\t#2,@0x1234(:16|)" \
+ "shar.w #2,@0x1234:16"
+gdb_test "x" "shar.w\t#2,@0x12345678(:32|)" \
+ "shar.w #2,@0x12345678:32"
+gdb_test "x" "shar.l\t#2,er1" \
+ "shar.l #2,er1"
+gdb_test "x" "shar.l\t#2,@er1" \
+ "shar.l #2,@er1"
+gdb_test "x" "shar.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "shar.l #2,@(0xc:2,er1)"
+gdb_test "x" "shar.l\t#2,@er1\\+" \
+ "shar.l #2,@er1+"
+gdb_test "x" "shar.l\t#2,@-er1" \
+ "shar.l #2,@-er1"
+gdb_test "x" "shar.l\t#2,@\\+er1" \
+ "shar.l #2,@+er1"
+gdb_test "x" "shar.l\t#2,@er1-" \
+ "shar.l #2,@er1-"
+gdb_test "x" "shar.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "shar.l #2,@(0x1234:16,er1)"
+gdb_test "x" "shar.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "shar.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "shar.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "shar.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "shar.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "shar.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "shar.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "shar.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "shar.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "shar.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "shar.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "shar.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "shar.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "shar.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "shar.l\t#2,@0x1234(:16|)" \
+ "shar.l #2,@0x1234:16"
+gdb_test "x" "shar.l\t#2,@0x12345678(:32|)" \
+ "shar.l #2,@0x12345678:32"
+gdb_test "x" "rotxl.b\tr1h" \
+ "rotxl.b r1h"
+gdb_test "x" "rotxl.b\t@er1" \
+ "rotxl.b @er1"
+gdb_test "x" "rotxl.b\t@\\(0x3(:2|),er1\\)" \
+ "rotxl.b @(0x3:2,er1)"
+gdb_test "x" "rotxl.b\t@er1\\+" \
+ "rotxl.b @er1+"
+gdb_test "x" "rotxl.b\t@-er1" \
+ "rotxl.b @-er1"
+gdb_test "x" "rotxl.b\t@\\+er1" \
+ "rotxl.b @+er1"
+gdb_test "x" "rotxl.b\t@er1-" \
+ "rotxl.b @er1-"
+gdb_test "x" "rotxl.b\t@\\(0x1234(:16|),er1\\)" \
+ "rotxl.b @(0x1234:16,er1)"
+gdb_test "x" "rotxl.b\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.b @(0x12345678:32,er1)"
+gdb_test "x" "rotxl.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.b @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.b @(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.b @(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.b @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.b @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.b\t@0x12(:8|)" \
+ "rotxl.b @0x12:8"
+gdb_test "x" "rotxl.b\t@0x1234(:16|)" \
+ "rotxl.b @0x1234:16"
+gdb_test "x" "rotxl.b\t@0x12345678(:32|)" \
+ "rotxl.b @0x12345678:32"
+gdb_test "x" "rotxl.w\tr1" \
+ "rotxl.w r1"
+gdb_test "x" "rotxl.w\t@er1" \
+ "rotxl.w @er1"
+gdb_test "x" "rotxl.w\t@\\(0x6(:2|),er1\\)" \
+ "rotxl.w @(0x6:2,er1)"
+gdb_test "x" "rotxl.w\t@er1\\+" \
+ "rotxl.w @er1+"
+gdb_test "x" "rotxl.w\t@-er1" \
+ "rotxl.w @-er1"
+gdb_test "x" "rotxl.w\t@\\+er1" \
+ "rotxl.w @+er1"
+gdb_test "x" "rotxl.w\t@er1-" \
+ "rotxl.w @er1-"
+gdb_test "x" "rotxl.w\t@\\(0x1234(:16|),er1\\)" \
+ "rotxl.w @(0x1234:16,er1)"
+gdb_test "x" "rotxl.w\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.w @(0x12345678:32,er1)"
+gdb_test "x" "rotxl.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.w @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.w @(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.w @(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.w @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.w @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.w\t@0x1234(:16|)" \
+ "rotxl.w @0x1234:16"
+gdb_test "x" "rotxl.w\t@0x12345678(:32|)" \
+ "rotxl.w @0x12345678:32"
+gdb_test "x" "rotxl.l\ter1" \
+ "rotxl.l er1"
+gdb_test "x" "rotxl.l\t@er1" \
+ "rotxl.l @er1"
+gdb_test "x" "rotxl.l\t@\\(0xc(:2|),er1\\)" \
+ "rotxl.l @(0xc:2,er1)"
+gdb_test "x" "rotxl.l\t@er1\\+" \
+ "rotxl.l @er1+"
+gdb_test "x" "rotxl.l\t@-er1" \
+ "rotxl.l @-er1"
+gdb_test "x" "rotxl.l\t@\\+er1" \
+ "rotxl.l @+er1"
+gdb_test "x" "rotxl.l\t@er1-" \
+ "rotxl.l @er1-"
+gdb_test "x" "rotxl.l\t@\\(0x1234(:16|),er1\\)" \
+ "rotxl.l @(0x1234:16,er1)"
+gdb_test "x" "rotxl.l\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.l @(0x12345678:32,er1)"
+gdb_test "x" "rotxl.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.l @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.l @(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.l @(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.l @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.l @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.l\t@0x1234(:16|)" \
+ "rotxl.l @0x1234:16"
+gdb_test "x" "rotxl.l\t@0x12345678(:32|)" \
+ "rotxl.l @0x12345678:32"
+gdb_test "x" "rotxl.b\t#2,r1h" \
+ "rotxl.b #2,r1h"
+gdb_test "x" "rotxl.b\t#2,@er1" \
+ "rotxl.b #2,@er1"
+gdb_test "x" "rotxl.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "rotxl.b #2,@(0x3:2,er1)"
+gdb_test "x" "rotxl.b\t#2,@er1\\+" \
+ "rotxl.b #2,@er1+"
+gdb_test "x" "rotxl.b\t#2,@-er1" \
+ "rotxl.b #2,@-er1"
+gdb_test "x" "rotxl.b\t#2,@\\+er1" \
+ "rotxl.b #2,@+er1"
+gdb_test "x" "rotxl.b\t#2,@er1-" \
+ "rotxl.b #2,@er1-"
+gdb_test "x" "rotxl.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxl.b #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.b\t#2,@0x12(:8|)" \
+ "rotxl.b #2,@0x12:8"
+gdb_test "x" "rotxl.b\t#2,@0x1234(:16|)" \
+ "rotxl.b #2,@0x1234:16"
+gdb_test "x" "rotxl.b\t#2,@0x12345678(:32|)" \
+ "rotxl.b #2,@0x12345678:32"
+gdb_test "x" "rotxl.w\t#2,r1" \
+ "rotxl.w #2,r1"
+gdb_test "x" "rotxl.w\t#2,@er1" \
+ "rotxl.w #2,@er1"
+gdb_test "x" "rotxl.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "rotxl.w #2,@(0x6:2,er1)"
+gdb_test "x" "rotxl.w\t#2,@er1\\+" \
+ "rotxl.w #2,@er1+"
+gdb_test "x" "rotxl.w\t#2,@-er1" \
+ "rotxl.w #2,@-er1"
+gdb_test "x" "rotxl.w\t#2,@\\+er1" \
+ "rotxl.w #2,@+er1"
+gdb_test "x" "rotxl.w\t#2,@er1-" \
+ "rotxl.w #2,@er1-"
+gdb_test "x" "rotxl.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxl.w #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.w\t#2,@0x1234(:16|)" \
+ "rotxl.w #2,@0x1234:16"
+gdb_test "x" "rotxl.w\t#2,@0x12345678(:32|)" \
+ "rotxl.w #2,@0x12345678:32"
+gdb_test "x" "rotxl.l\t#2,er1" \
+ "rotxl.l #2,er1"
+gdb_test "x" "rotxl.l\t#2,@er1" \
+ "rotxl.l #2,@er1"
+gdb_test "x" "rotxl.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "rotxl.l #2,@(0xc:2,er1)"
+gdb_test "x" "rotxl.l\t#2,@er1\\+" \
+ "rotxl.l #2,@er1+"
+gdb_test "x" "rotxl.l\t#2,@-er1" \
+ "rotxl.l #2,@-er1"
+gdb_test "x" "rotxl.l\t#2,@\\+er1" \
+ "rotxl.l #2,@+er1"
+gdb_test "x" "rotxl.l\t#2,@er1-" \
+ "rotxl.l #2,@er1-"
+gdb_test "x" "rotxl.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxl.l #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxl.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxl.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxl.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxl.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxl.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxl.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxl.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxl.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxl.l\t#2,@0x1234(:16|)" \
+ "rotxl.l #2,@0x1234:16"
+gdb_test "x" "rotxl.l\t#2,@0x12345678(:32|)" \
+ "rotxl.l #2,@0x12345678:32"
+gdb_test "x" "rotxr.b\tr1h" \
+ "rotxr.b r1h"
+gdb_test "x" "rotxr.b\t@er1" \
+ "rotxr.b @er1"
+gdb_test "x" "rotxr.b\t@\\(0x3(:2|),er1\\)" \
+ "rotxr.b @(0x3:2,er1)"
+gdb_test "x" "rotxr.b\t@er1\\+" \
+ "rotxr.b @er1+"
+gdb_test "x" "rotxr.b\t@-er1" \
+ "rotxr.b @-er1"
+gdb_test "x" "rotxr.b\t@\\+er1" \
+ "rotxr.b @+er1"
+gdb_test "x" "rotxr.b\t@er1-" \
+ "rotxr.b @er1-"
+gdb_test "x" "rotxr.b\t@\\(0x1234(:16|),er1\\)" \
+ "rotxr.b @(0x1234:16,er1)"
+gdb_test "x" "rotxr.b\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.b @(0x12345678:32,er1)"
+gdb_test "x" "rotxr.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.b @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.b @(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.b @(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.b @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.b @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.b\t@0x12(:8|)" \
+ "rotxr.b @0x12:8"
+gdb_test "x" "rotxr.b\t@0x1234(:16|)" \
+ "rotxr.b @0x1234:16"
+gdb_test "x" "rotxr.b\t@0x12345678(:32|)" \
+ "rotxr.b @0x12345678:32"
+gdb_test "x" "rotxr.w\tr1" \
+ "rotxr.w r1"
+gdb_test "x" "rotxr.w\t@er1" \
+ "rotxr.w @er1"
+gdb_test "x" "rotxr.w\t@\\(0x6(:2|),er1\\)" \
+ "rotxr.w @(0x6:2,er1)"
+gdb_test "x" "rotxr.w\t@er1\\+" \
+ "rotxr.w @er1+"
+gdb_test "x" "rotxr.w\t@-er1" \
+ "rotxr.w @-er1"
+gdb_test "x" "rotxr.w\t@\\+er1" \
+ "rotxr.w @+er1"
+gdb_test "x" "rotxr.w\t@er1-" \
+ "rotxr.w @er1-"
+gdb_test "x" "rotxr.w\t@\\(0x1234(:16|),er1\\)" \
+ "rotxr.w @(0x1234:16,er1)"
+gdb_test "x" "rotxr.w\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.w @(0x12345678:32,er1)"
+gdb_test "x" "rotxr.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.w @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.w @(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.w @(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.w @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.w @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.w\t@0x1234(:16|)" \
+ "rotxr.w @0x1234:16"
+gdb_test "x" "rotxr.w\t@0x12345678(:32|)" \
+ "rotxr.w @0x12345678:32"
+gdb_test "x" "rotxr.l\ter1" \
+ "rotxr.l er1"
+gdb_test "x" "rotxr.l\t@er1" \
+ "rotxr.l @er1"
+gdb_test "x" "rotxr.l\t@\\(0xc(:2|),er1\\)" \
+ "rotxr.l @(0xc:2,er1)"
+gdb_test "x" "rotxr.l\t@er1\\+" \
+ "rotxr.l @er1+"
+gdb_test "x" "rotxr.l\t@-er1" \
+ "rotxr.l @-er1"
+gdb_test "x" "rotxr.l\t@\\+er1" \
+ "rotxr.l @+er1"
+gdb_test "x" "rotxr.l\t@er1-" \
+ "rotxr.l @er1-"
+gdb_test "x" "rotxr.l\t@\\(0x1234(:16|),er1\\)" \
+ "rotxr.l @(0x1234:16,er1)"
+gdb_test "x" "rotxr.l\t@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.l @(0x12345678:32,er1)"
+gdb_test "x" "rotxr.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.l @(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.l @(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.l @(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.l @(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.l @(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.l\t@0x1234(:16|)" \
+ "rotxr.l @0x1234:16"
+gdb_test "x" "rotxr.l\t@0x12345678(:32|)" \
+ "rotxr.l @0x12345678:32"
+gdb_test "x" "rotxr.b\t#2,r1h" \
+ "rotxr.b #2,r1h"
+gdb_test "x" "rotxr.b\t#2,@er1" \
+ "rotxr.b #2,@er1"
+gdb_test "x" "rotxr.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "rotxr.b #2,@(0x3:2,er1)"
+gdb_test "x" "rotxr.b\t#2,@er1\\+" \
+ "rotxr.b #2,@er1+"
+gdb_test "x" "rotxr.b\t#2,@-er1" \
+ "rotxr.b #2,@-er1"
+gdb_test "x" "rotxr.b\t#2,@\\+er1" \
+ "rotxr.b #2,@+er1"
+gdb_test "x" "rotxr.b\t#2,@er1-" \
+ "rotxr.b #2,@er1-"
+gdb_test "x" "rotxr.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxr.b #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.b\t#2,@0x12(:8|)" \
+ "rotxr.b #2,@0x12:8"
+gdb_test "x" "rotxr.b\t#2,@0x1234(:16|)" \
+ "rotxr.b #2,@0x1234:16"
+gdb_test "x" "rotxr.b\t#2,@0x12345678(:32|)" \
+ "rotxr.b #2,@0x12345678:32"
+gdb_test "x" "rotxr.w\t#2,r1" \
+ "rotxr.w #2,r1"
+gdb_test "x" "rotxr.w\t#2,@er1" \
+ "rotxr.w #2,@er1"
+gdb_test "x" "rotxr.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "rotxr.w #2,@(0x6:2,er1)"
+gdb_test "x" "rotxr.w\t#2,@er1\\+" \
+ "rotxr.w #2,@er1+"
+gdb_test "x" "rotxr.w\t#2,@-er1" \
+ "rotxr.w #2,@-er1"
+gdb_test "x" "rotxr.w\t#2,@\\+er1" \
+ "rotxr.w #2,@+er1"
+gdb_test "x" "rotxr.w\t#2,@er1-" \
+ "rotxr.w #2,@er1-"
+gdb_test "x" "rotxr.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxr.w #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.w\t#2,@0x1234(:16|)" \
+ "rotxr.w #2,@0x1234:16"
+gdb_test "x" "rotxr.w\t#2,@0x12345678(:32|)" \
+ "rotxr.w #2,@0x12345678:32"
+gdb_test "x" "rotxr.l\t#2,er1" \
+ "rotxr.l #2,er1"
+gdb_test "x" "rotxr.l\t#2,@er1" \
+ "rotxr.l #2,@er1"
+gdb_test "x" "rotxr.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "rotxr.l #2,@(0xc:2,er1)"
+gdb_test "x" "rotxr.l\t#2,@er1\\+" \
+ "rotxr.l #2,@er1+"
+gdb_test "x" "rotxr.l\t#2,@-er1" \
+ "rotxr.l #2,@-er1"
+gdb_test "x" "rotxr.l\t#2,@\\+er1" \
+ "rotxr.l #2,@+er1"
+gdb_test "x" "rotxr.l\t#2,@er1-" \
+ "rotxr.l #2,@er1-"
+gdb_test "x" "rotxr.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotxr.l #2,@(0x1234:16,er1)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotxr.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotxr.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotxr.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotxr.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotxr.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotxr.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotxr.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotxr.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotxr.l\t#2,@0x1234(:16|)" \
+ "rotxr.l #2,@0x1234:16"
+gdb_test "x" "rotxr.l\t#2,@0x12345678(:32|)" \
+ "rotxr.l #2,@0x12345678:32"
+gdb_test "x" "rotl.b\tr1h" \
+ "rotl.b r1h"
+gdb_test "x" "rotl.b\t@er1" \
+ "rotl.b @er1"
+gdb_test "x" "rotl.b\t@\\(0x3(:2|),er1\\)" \
+ "rotl.b @(0x3:2,er1)"
+gdb_test "x" "rotl.b\t@er1\\+" \
+ "rotl.b @er1+"
+gdb_test "x" "rotl.b\t@-er1" \
+ "rotl.b @-er1"
+gdb_test "x" "rotl.b\t@\\+er1" \
+ "rotl.b @+er1"
+gdb_test "x" "rotl.b\t@er1-" \
+ "rotl.b @er1-"
+gdb_test "x" "rotl.b\t@\\(0x1234(:16|),er1\\)" \
+ "rotl.b @(0x1234:16,er1)"
+gdb_test "x" "rotl.b\t@\\(0x12345678(:32|),er1\\)" \
+ "rotl.b @(0x12345678:32,er1)"
+gdb_test "x" "rotl.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.b @(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.b @(0x1234:16,r2.w)"
+gdb_test "x" "rotl.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.b @(0x1234:16,er2.l)"
+gdb_test "x" "rotl.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.b @(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.b @(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.b\t@0x12(:8|)" \
+ "rotl.b @0x12:8"
+gdb_test "x" "rotl.b\t@0x1234(:16|)" \
+ "rotl.b @0x1234:16"
+gdb_test "x" "rotl.b\t@0x12345678(:32|)" \
+ "rotl.b @0x12345678:32"
+gdb_test "x" "rotl.w\tr1" \
+ "rotl.w r1"
+gdb_test "x" "rotl.w\t@er1" \
+ "rotl.w @er1"
+gdb_test "x" "rotl.w\t@\\(0x6(:2|),er1\\)" \
+ "rotl.w @(0x6:2,er1)"
+gdb_test "x" "rotl.w\t@-er1" \
+ "rotl.w @-er1"
+gdb_test "x" "rotl.w\t@er1\\+" \
+ "rotl.w @er1+"
+gdb_test "x" "rotl.w\t@er1-" \
+ "rotl.w @er1-"
+gdb_test "x" "rotl.w\t@\\+er1" \
+ "rotl.w @+er1"
+gdb_test "x" "rotl.w\t@\\(0x1234(:16|),er1\\)" \
+ "rotl.w @(0x1234:16,er1)"
+gdb_test "x" "rotl.w\t@\\(0x12345678(:32|),er1\\)" \
+ "rotl.w @(0x12345678:32,er1)"
+gdb_test "x" "rotl.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.w @(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.w @(0x1234:16,r2.w)"
+gdb_test "x" "rotl.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.w @(0x1234:16,er2.l)"
+gdb_test "x" "rotl.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.w @(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.w @(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.w\t@0x1234(:16|)" \
+ "rotl.w @0x1234:16"
+gdb_test "x" "rotl.w\t@0x12345678(:32|)" \
+ "rotl.w @0x12345678:32"
+gdb_test "x" "rotl.l\ter1" \
+ "rotl.l er1"
+gdb_test "x" "rotl.l\t@er1" \
+ "rotl.l @er1"
+gdb_test "x" "rotl.l\t@\\(0xc(:2|),er1\\)" \
+ "rotl.l @(0xc:2,er1)"
+gdb_test "x" "rotl.l\t@er1\\+" \
+ "rotl.l @er1+"
+gdb_test "x" "rotl.l\t@-er1" \
+ "rotl.l @-er1"
+gdb_test "x" "rotl.l\t@\\+er1" \
+ "rotl.l @+er1"
+gdb_test "x" "rotl.l\t@er1-" \
+ "rotl.l @er1-"
+gdb_test "x" "rotl.l\t@\\(0x1234(:16|),er1\\)" \
+ "rotl.l @(0x1234:16,er1)"
+gdb_test "x" "rotl.l\t@\\(0x12345678(:32|),er1\\)" \
+ "rotl.l @(0x12345678:32,er1)"
+gdb_test "x" "rotl.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.l @(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.l @(0x1234:16,r2.w)"
+gdb_test "x" "rotl.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.l @(0x1234:16,er2.l)"
+gdb_test "x" "rotl.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.l @(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.l @(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.l\t@0x1234(:16|)" \
+ "rotl.l @0x1234:16"
+gdb_test "x" "rotl.l\t@0x12345678(:32|)" \
+ "rotl.l @0x12345678:32"
+gdb_test "x" "rotl.b\t#2,r1h" \
+ "rotl.b #2,r1h"
+gdb_test "x" "rotl.b\t#2,@er1" \
+ "rotl.b #2,@er1"
+gdb_test "x" "rotl.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "rotl.b #2,@(0x3:2,er1)"
+gdb_test "x" "rotl.b\t#2,@er1\\+" \
+ "rotl.b #2,@er1+"
+gdb_test "x" "rotl.b\t#2,@-er1" \
+ "rotl.b #2,@-er1"
+gdb_test "x" "rotl.b\t#2,@\\+er1" \
+ "rotl.b #2,@+er1"
+gdb_test "x" "rotl.b\t#2,@er1-" \
+ "rotl.b #2,@er1-"
+gdb_test "x" "rotl.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotl.b #2,@(0x1234:16,er1)"
+gdb_test "x" "rotl.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotl.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotl.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotl.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotl.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.b\t#2,@0x12(:8|)" \
+ "rotl.b #2,@0x12:8"
+gdb_test "x" "rotl.b\t#2,@0x1234(:16|)" \
+ "rotl.b #2,@0x1234:16"
+gdb_test "x" "rotl.b\t#2,@0x12345678(:32|)" \
+ "rotl.b #2,@0x12345678:32"
+gdb_test "x" "rotl.w\t#2,r1" \
+ "rotl.w #2,r1"
+gdb_test "x" "rotl.w\t#2,@er1" \
+ "rotl.w #2,@er1"
+gdb_test "x" "rotl.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "rotl.w #2,@(0x6:2,er1)"
+gdb_test "x" "rotl.w\t#2,@er1\\+" \
+ "rotl.w #2,@er1+"
+gdb_test "x" "rotl.w\t#2,@-er1" \
+ "rotl.w #2,@-er1"
+gdb_test "x" "rotl.w\t#2,@\\+er1" \
+ "rotl.w #2,@+er1"
+gdb_test "x" "rotl.w\t#2,@er1-" \
+ "rotl.w #2,@er1-"
+gdb_test "x" "rotl.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotl.w #2,@(0x1234:16,er1)"
+gdb_test "x" "rotl.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotl.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotl.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotl.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotl.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.w\t#2,@0x1234(:16|)" \
+ "rotl.w #2,@0x1234:16"
+gdb_test "x" "rotl.w\t#2,@0x12345678(:32|)" \
+ "rotl.w #2,@0x12345678:32"
+gdb_test "x" "rotl.l\t#2,er1" \
+ "rotl.l #2,er1"
+gdb_test "x" "rotl.l\t#2,@er1" \
+ "rotl.l #2,@er1"
+gdb_test "x" "rotl.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "rotl.l #2,@(0xc:2,er1)"
+gdb_test "x" "rotl.l\t#2,@er1\\+" \
+ "rotl.l #2,@er1+"
+gdb_test "x" "rotl.l\t#2,@-er1" \
+ "rotl.l #2,@-er1"
+gdb_test "x" "rotl.l\t#2,@\\+er1" \
+ "rotl.l #2,@+er1"
+gdb_test "x" "rotl.l\t#2,@er1-" \
+ "rotl.l #2,@er1-"
+gdb_test "x" "rotl.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotl.l #2,@(0x1234:16,er1)"
+gdb_test "x" "rotl.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotl.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotl.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotl.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotl.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotl.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotl.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotl.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotl.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotl.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotl.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotl.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotl.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotl.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotl.l\t#2,@0x1234(:16|)" \
+ "rotl.l #2,@0x1234:16"
+gdb_test "x" "rotl.l\t#2,@0x12345678(:32|)" \
+ "rotl.l #2,@0x12345678:32"
+gdb_test "x" "rotr.b\tr1h" \
+ "rotr.b r1h"
+gdb_test "x" "rotr.b\t@er1" \
+ "rotr.b @er1"
+gdb_test "x" "rotr.b\t@\\(0x3(:2|),er1\\)" \
+ "rotr.b @(0x3:2,er1)"
+gdb_test "x" "rotr.b\t@er1\\+" \
+ "rotr.b @er1+"
+gdb_test "x" "rotr.b\t@-er1" \
+ "rotr.b @-er1"
+gdb_test "x" "rotr.b\t@\\+er1" \
+ "rotr.b @+er1"
+gdb_test "x" "rotr.b\t@er1-" \
+ "rotr.b @er1-"
+gdb_test "x" "rotr.b\t@\\(0x1234(:16|),er1\\)" \
+ "rotr.b @(0x1234:16,er1)"
+gdb_test "x" "rotr.b\t@\\(0x12345678(:32|),er1\\)" \
+ "rotr.b @(0x12345678:32,er1)"
+gdb_test "x" "rotr.b\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.b @(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.b\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.b @(0x1234:16,r2.w)"
+gdb_test "x" "rotr.b\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.b @(0x1234:16,er2.l)"
+gdb_test "x" "rotr.b\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.b @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.b\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.b @(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.b\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.b @(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.b\t@0x12(:8|)" \
+ "rotr.b @0x12:8"
+gdb_test "x" "rotr.b\t@0x1234(:16|)" \
+ "rotr.b @0x1234:16"
+gdb_test "x" "rotr.b\t@0x12345678(:32|)" \
+ "rotr.b @0x12345678:32"
+gdb_test "x" "rotr.w\tr1" \
+ "rotr.w r1"
+gdb_test "x" "rotr.w\t@er1" \
+ "rotr.w @er1"
+gdb_test "x" "rotr.w\t@\\(0x6(:2|),er1\\)" \
+ "rotr.w @(0x6:2,er1)"
+gdb_test "x" "rotr.w\t@-er1" \
+ "rotr.w @-er1"
+gdb_test "x" "rotr.w\t@er1\\+" \
+ "rotr.w @er1+"
+gdb_test "x" "rotr.w\t@er1-" \
+ "rotr.w @er1-"
+gdb_test "x" "rotr.w\t@\\+er1" \
+ "rotr.w @+er1"
+gdb_test "x" "rotr.w\t@\\(0x1234(:16|),er1\\)" \
+ "rotr.w @(0x1234:16,er1)"
+gdb_test "x" "rotr.w\t@\\(0x12345678(:32|),er1\\)" \
+ "rotr.w @(0x12345678:32,er1)"
+gdb_test "x" "rotr.w\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.w @(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.w\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.w @(0x1234:16,r2.w)"
+gdb_test "x" "rotr.w\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.w @(0x1234:16,er2.l)"
+gdb_test "x" "rotr.w\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.w @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.w\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.w @(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.w\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.w @(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.w\t@0x1234(:16|)" \
+ "rotr.w @0x1234:16"
+gdb_test "x" "rotr.w\t@0x12345678(:32|)" \
+ "rotr.w @0x12345678:32"
+gdb_test "x" "rotr.l\ter1" \
+ "rotr.l er1"
+gdb_test "x" "rotr.l\t@er1" \
+ "rotr.l @er1"
+gdb_test "x" "rotr.l\t@\\(0xc(:2|),er1\\)" \
+ "rotr.l @(0xc:2,er1)"
+gdb_test "x" "rotr.l\t@er1\\+" \
+ "rotr.l @er1+"
+gdb_test "x" "rotr.l\t@-er1" \
+ "rotr.l @-er1"
+gdb_test "x" "rotr.l\t@\\+er1" \
+ "rotr.l @+er1"
+gdb_test "x" "rotr.l\t@er1-" \
+ "rotr.l @er1-"
+gdb_test "x" "rotr.l\t@\\(0x1234(:16|),er1\\)" \
+ "rotr.l @(0x1234:16,er1)"
+gdb_test "x" "rotr.l\t@\\(0x12345678(:32|),er1\\)" \
+ "rotr.l @(0x12345678:32,er1)"
+gdb_test "x" "rotr.l\t@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.l @(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.l\t@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.l @(0x1234:16,r2.w)"
+gdb_test "x" "rotr.l\t@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.l @(0x1234:16,er2.l)"
+gdb_test "x" "rotr.l\t@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.l @(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.l\t@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.l @(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.l\t@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.l @(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.l\t@0x1234(:16|)" \
+ "rotr.l @0x1234:16"
+gdb_test "x" "rotr.l\t@0x12345678(:32|)" \
+ "rotr.l @0x12345678:32"
+gdb_test "x" "rotr.b\t#2,r1h" \
+ "rotr.b #2,r1h"
+gdb_test "x" "rotr.b\t#2,@er1" \
+ "rotr.b #2,@er1"
+gdb_test "x" "rotr.b\t#2,@\\(0x3(:2|),er1\\)" \
+ "rotr.b #2,@(0x3:2,er1)"
+gdb_test "x" "rotr.b\t#2,@er1\\+" \
+ "rotr.b #2,@er1+"
+gdb_test "x" "rotr.b\t#2,@-er1" \
+ "rotr.b #2,@-er1"
+gdb_test "x" "rotr.b\t#2,@\\+er1" \
+ "rotr.b #2,@+er1"
+gdb_test "x" "rotr.b\t#2,@er1-" \
+ "rotr.b #2,@er1-"
+gdb_test "x" "rotr.b\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotr.b #2,@(0x1234:16,er1)"
+gdb_test "x" "rotr.b\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotr.b #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotr.b\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.b #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.b\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.b #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotr.b\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.b #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotr.b\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.b #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.b\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.b #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.b\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.b #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.b\t#2,@0x12(:8|)" \
+ "rotr.b #2,@0x12:8"
+gdb_test "x" "rotr.b\t#2,@0x1234(:16|)" \
+ "rotr.b #2,@0x1234:16"
+gdb_test "x" "rotr.b\t#2,@0x12345678(:32|)" \
+ "rotr.b #2,@0x12345678:32"
+gdb_test "x" "rotr.w\t#2,r1" \
+ "rotr.w #2,r1"
+gdb_test "x" "rotr.w\t#2,@er1" \
+ "rotr.w #2,@er1"
+gdb_test "x" "rotr.w\t#2,@\\(0x6(:2|),er1\\)" \
+ "rotr.w #2,@(0x6:2,er1)"
+gdb_test "x" "rotr.w\t#2,@er1\\+" \
+ "rotr.w #2,@er1+"
+gdb_test "x" "rotr.w\t#2,@-er1" \
+ "rotr.w #2,@-er1"
+gdb_test "x" "rotr.w\t#2,@\\+er1" \
+ "rotr.w #2,@+er1"
+gdb_test "x" "rotr.w\t#2,@er1-" \
+ "rotr.w #2,@er1-"
+gdb_test "x" "rotr.w\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotr.w #2,@(0x1234:16,er1)"
+gdb_test "x" "rotr.w\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotr.w #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotr.w\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.w #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.w\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.w #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotr.w\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.w #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotr.w\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.w #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.w\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.w #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.w\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.w #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.w\t#2,@0x1234(:16|)" \
+ "rotr.w #2,@0x1234:16"
+gdb_test "x" "rotr.w\t#2,@0x12345678(:32|)" \
+ "rotr.w #2,@0x12345678:32"
+gdb_test "x" "rotr.l\t#2,er1" \
+ "rotr.l #2,er1"
+gdb_test "x" "rotr.l\t#2,@er1" \
+ "rotr.l #2,@er1"
+gdb_test "x" "rotr.l\t#2,@\\(0xc(:2|),er1\\)" \
+ "rotr.l #2,@(0xc:2,er1)"
+gdb_test "x" "rotr.l\t#2,@er1\\+" \
+ "rotr.l #2,@er1+"
+gdb_test "x" "rotr.l\t#2,@-er1" \
+ "rotr.l #2,@-er1"
+gdb_test "x" "rotr.l\t#2,@\\+er1" \
+ "rotr.l #2,@+er1"
+gdb_test "x" "rotr.l\t#2,@er1-" \
+ "rotr.l #2,@er1-"
+gdb_test "x" "rotr.l\t#2,@\\(0x1234(:16|),er1\\)" \
+ "rotr.l #2,@(0x1234:16,er1)"
+gdb_test "x" "rotr.l\t#2,@\\(0x12345678(:32|),er1\\)" \
+ "rotr.l #2,@(0x12345678:32,er1)"
+gdb_test "x" "rotr.l\t#2,@\\(0x1234(:16|),r2l.b\\)" \
+ "rotr.l #2,@(0x1234:16,r2l.b)"
+gdb_test "x" "rotr.l\t#2,@\\(0x1234(:16|),r2.w\\)" \
+ "rotr.l #2,@(0x1234:16,r2.w)"
+gdb_test "x" "rotr.l\t#2,@\\(0x1234(:16|),er2.l\\)" \
+ "rotr.l #2,@(0x1234:16,er2.l)"
+gdb_test "x" "rotr.l\t#2,@\\(0x12345678(:32|),r2l.b\\)" \
+ "rotr.l #2,@(0x12345678:32,r2l.b)"
+gdb_test "x" "rotr.l\t#2,@\\(0x12345678(:32|),r2.w\\)" \
+ "rotr.l #2,@(0x12345678:32,r2.w)"
+gdb_test "x" "rotr.l\t#2,@\\(0x12345678(:32|),er2.l\\)" \
+ "rotr.l #2,@(0x12345678:32,er2.l)"
+gdb_test "x" "rotr.l\t#2,@0x1234(:16|)" \
+ "rotr.l #2,@0x1234:16"
+gdb_test "x" "rotr.l\t#2,@0x12345678(:32|)" \
+ "rotr.l #2,@0x12345678:32"
diff --git a/gdb/testsuite/gdb.disasm/t11_logs.s b/gdb/testsuite/gdb.disasm/t11_logs.s
new file mode 100644
index 0000000..7782754
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t11_logs.s
@@ -0,0 +1,1177 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;log_sft
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ not.b r1h ;1701
+ not.b @er1 ;7d101700
+ not.b @(0x3:2,er1) ;017768181700
+ not.b @er1+ ;01746c181700
+ not.b @-er1 ;01776c181700
+ not.b @+er1 ;01756c181700
+ not.b @er1- ;01766c181700
+ not.b @(0x1234:16,er1) ;01746e1812341700
+ not.b @(0x12345678:32,er1) ;78146a28123456781700
+ not.b @(0x1234:16,r2l.b) ;01756e2812341700
+ not.b @(0x1234:16,r2.w) ;01766e2812341700
+ not.b @(0x1234:16,er2.l) ;01776e2812341700
+ not.b @(0x12345678:32,r2l.b) ;78256a28123456781700
+ not.b @(0x12345678:32,r2.w) ;78266a28123456781700
+ not.b @(0x12345678:32,er2.l) ;78276a28123456781700
+ not.b @0xffffff12:8 ;7f121700
+ not.b @0x1234:16 ;6a1812341700
+ not.b @0x12345678:32 ;6a38123456781700
+
+ not.w r1 ;1711
+ not.w @er1 ;7d901710
+ not.w @(0x6:2,er1) ;015769181710
+ not.w @er1+ ;01546d181710
+ not.w @-er1 ;01576d181710
+ not.w @+er1 ;01556d181710
+ not.w @er1- ;01566d181710
+ not.w @(0x1234:16,er1) ;01546f1812341710
+ not.w @(0x12345678:32,er1) ;78146b28123456781710
+ not.w @(0x1234:16,r2l.b) ;01556f2812341710
+ not.w @(0x1234:16,r2.w) ;01566f2812341710
+ not.w @(0x1234:16,er2.l) ;01576f2812341710
+ not.w @(0x12345678:32,r2l.b) ;78256b28123456781710
+ not.w @(0x12345678:32,r2.w) ;78266b28123456781710
+ not.w @(0x12345678:32,er2.l) ;78276b28123456781710
+ not.w @0x1234:16 ;6b1812341710
+ not.w @0x12345678:32 ;6b38123456781710
+
+ not.l er1 ;1731
+ not.l @er1 ;010469181730
+ not.l @(0xc:2,er1) ;010769181730
+ not.l @er1+ ;01046d181730
+ not.l @-er1 ;01076d181730
+ not.l @+er1 ;01056d181730
+ not.l @er1- ;01066d181730
+ not.l @(0x1234:16,er1) ;01046f1812341730
+ not.l @(0x12345678:32,er1) ;78946b28123456781730
+ not.l @(0x1234:16,r2l.b) ;01056f2812341730
+ not.l @(0x1234:16,r2.w) ;01066f2812341730
+ not.l @(0x1234:16,er2.l) ;01076f2812341730
+ not.l @(0x12345678:32,r2l.b) ;78a56b28123456781730
+ not.l @(0x12345678:32,r2.w) ;78a66b28123456781730
+ not.l @(0x12345678:32,er2.l) ;78a76b28123456781730
+ not.l @0x1234:16 ;01046b0812341730
+ not.l @0x12345678:32 ;01046b28123456781730
+
+ shll.b r1h ;1001
+ shll.b @er1 ;7d101000
+ shll.b @(0x3:2,er1) ;017768181000
+ shll.b @er1+ ;01746c181000
+ shll.b @-er1 ;01776c181000
+ shll.b @+er1 ;01756c181000
+ shll.b @er1- ;01766c181000
+ shll.b @(0x1234:16,er1) ;01746e1812341000
+ shll.b @(0x12345678:32,er1) ;78146a28123456781000
+ shll.b @(0x1234:16,r2l.b) ;01756e2812341000
+ shll.b @(0x1234:16,r2.w) ;01766e2812341000
+ shll.b @(0x1234:16,er2.l) ;01776e2812341000
+ shll.b @(0x12345678:32,r2l.b) ;78256a28123456781000
+ shll.b @(0x12345678:32,r2.w) ;78266a28123456781000
+ shll.b @(0x12345678:32,er2.l) ;78276a28123456781000
+ shll.b @0xffffff12:8 ;7f121000
+ shll.b @0x1234:16 ;6a1812341000
+ shll.b @0x12345678:32 ;6a38123456781000
+
+ shll.w r1 ;1011
+ shll.w @er1 ;7d901010
+ shll.w @(0x6:2,er1) ;015769181010
+ shll.w @er1+ ;01546d181010
+ shll.w @-er1 ;01576d181010
+ shll.w @+er1 ;01556d181010
+ shll.w @er1- ;01566d181010
+ shll.w @(0x1234:16,er1) ;01546f1812341010
+ shll.w @(0x12345678:32,er1) ;78146b28123456781010
+ shll.w @(0x1234:16,r2l.b) ;01556f2812341010
+ shll.w @(0x1234:16,r2.w) ;01566f2812341010
+ shll.w @(0x1234:16,er2.l) ;01576f2812341010
+ shll.w @(0x12345678:32,r2l.b) ;78256b28123456781010
+ shll.w @(0x12345678:32,r2.w) ;78266b28123456781010
+ shll.w @(0x12345678:32,er2.l) ;78276b28123456781010
+ shll.w @0x1234:16 ;6b1812341010
+ shll.w @0x12345678:32 ;6b38123456781010
+
+ shll.l er1 ;1031
+ shll.l @er1 ;010469181030
+ shll.l @(0xc:2,er1) ;010769181030
+ shll.l @er1+ ;01046d181030
+ shll.l @-er1 ;01076d181030
+ shll.l @+er1 ;01056d181030
+ shll.l @er1- ;01066d181030
+ shll.l @(0x1234:16,er1) ;01046f1812341030
+ shll.l @(0x12345678:32,er1) ;78946b28123456781030
+ shll.l @(0x1234:16,r2l.b) ;01056f2812341030
+ shll.l @(0x1234:16,r2.w) ;01066f2812341030
+ shll.l @(0x1234:16,er2.l) ;01076f2812341030
+ shll.l @(0x12345678:32,r2l.b) ;78a56b28123456781030
+ shll.l @(0x12345678:32,r2.w) ;78a66b28123456781030
+ shll.l @(0x12345678:32,er2.l) ;78a76b28123456781030
+ shll.l @0x1234:16 ;01046b0812341030
+ shll.l @0x12345678:32 ;01046b28123456781030
+
+ shll.b #2,r1h ;1041
+ shll.b #2,@er1 ;7d101040
+ shll.b #2,@(0x3:2,er1) ;017768181040
+ shll.b #2,@er1+ ;01746c181040
+ shll.b #2,@-er1 ;01776c181040
+ shll.b #2,@+er1 ;01756c181040
+ shll.b #2,@er1- ;01766c181040
+ shll.b #2,@(0x1234:16,er1) ;01746e1812341040
+ shll.b #2,@(0x12345678:32,er1) ;78146a28123456781040
+ shll.b #2,@(0x1234:16,r2l.b) ;01756e2812341040
+ shll.b #2,@(0x1234:16,r2.w) ;01766e2812341040
+ shll.b #2,@(0x1234:16,er2.l) ;01776e2812341040
+ shll.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781040
+ shll.b #2,@(0x12345678:32,r2.w) ;78266a28123456781040
+ shll.b #2,@(0x12345678:32,er2.l) ;78276a28123456781040
+ shll.b #2,@0xffffff12:8 ;7f121040
+ shll.b #2,@0x1234:16 ;6a1812341040
+ shll.b #2,@0x12345678:32 ;6a38123456781040
+
+ shll.w #2,r1 ;1051
+ shll.w #2,@er1 ;7d901050
+ shll.w #2,@(0x6:2,er1) ;015769181050
+ shll.w #2,@er1+ ;01546d181050
+ shll.w #2,@-er1 ;01576d181050
+ shll.w #2,@+er1 ;01556d181050
+ shll.w #2,@er1- ;01566d181050
+ shll.w #2,@(0x1234:16,er1) ;01546f1812341050
+ shll.w #2,@(0x12345678:32,er1) ;78146b28123456781050
+ shll.w #2,@(0x1234:16,r2l.b) ;01556f2812341050
+ shll.w #2,@(0x1234:16,r2.w) ;01566f2812341050
+ shll.w #2,@(0x1234:16,er2.l) ;01576f2812341050
+ shll.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781050
+ shll.w #2,@(0x12345678:32,r2.w) ;78266b28123456781050
+ shll.w #2,@(0x12345678:32,er2.l) ;78276b28123456781050
+ shll.w #2,@0x1234:16 ;6b1812341050
+ shll.w #2,@0x12345678:32 ;6b38123456781050
+
+ shll.l #2,er1 ;1071
+ shll.l #2,@er1 ;010469181070
+ shll.l #2,@(0xc:2,er1) ;010769181070
+ shll.l #2,@er1+ ;01046d181070
+ shll.l #2,@-er1 ;01076d181070
+ shll.l #2,@+er1 ;01056d181070
+ shll.l #2,@er1- ;01066d181070
+ shll.l #2,@(0x1234:16,er1) ;01046f1812341070
+ shll.l #2,@(0x12345678:32,er1) ;78946b28123456781070
+ shll.l #2,@(0x1234:16,r2l.b) ;01056f2812341070
+ shll.l #2,@(0x1234:16,r2.w) ;01066f2812341070
+ shll.l #2,@(0x1234:16,er2.l) ;01076f2812341070
+ shll.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781070
+ shll.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781070
+ shll.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781070
+ shll.l #2,@0x1234:16 ;01046b0812341070
+ shll.l #2,@0x12345678:32 ;01046b28123456781070
+
+ shll.b #4,r1h ;10a1
+ shll.b #4,@er1 ;7d1010a0
+ shll.b #4,@(0x3:2,er1) ;0177681810a0
+ shll.b #4,@er1+ ;01746c1810a0
+ shll.b #4,@-er1 ;01776c1810a0
+ shll.b #4,@+er1 ;01756c1810a0
+ shll.b #4,@er1- ;01766c1810a0
+ shll.b #4,@(0x1234:16,er1) ;01746e18123410a0
+ shll.b #4,@(0x12345678:32,er1) ;78146a281234567810a0
+ shll.b #4,@(0x1234:16,r2l.b) ;01756e28123410a0
+ shll.b #4,@(0x1234:16,r2.w) ;01766e28123410a0
+ shll.b #4,@(0x1234:16,er2.l) ;01776e28123410a0
+ shll.b #4,@(0x12345678:32,r2l.b) ;78256a281234567810a0
+ shll.b #4,@(0x12345678:32,r2.w) ;78266a281234567810a0
+ shll.b #4,@(0x12345678:32,er2.l) ;78276a281234567810a0
+ shll.b #4,@0xffffff12:8 ;7f1210a0
+ shll.b #4,@0x1234:16 ;6a18123410a0
+ shll.b #4,@0x12345678:32 ;6a381234567810a0
+
+ shll.w #4,r1 ;1021
+ shll.w #4,@er1 ;7d901020
+ shll.w #4,@(0x6:2,er1) ;015769181020
+ shll.w #4,@er1+ ;01546d181020
+ shll.w #4,@-er1 ;01576d181020
+ shll.w #4,@+er1 ;01556d181020
+ shll.w #4,@er1- ;01566d181020
+ shll.w #4,@(0x1234:16,er1) ;01546f1812341020
+ shll.w #4,@(0x12345678:32,er1) ;78146b28123456781020
+ shll.w #4,@(0x1234:16,r2l.b) ;01556f2812341020
+ shll.w #4,@(0x1234:16,r2.w) ;01566f2812341020
+ shll.w #4,@(0x1234:16,er2.l) ;01576f2812341020
+ shll.w #4,@(0x12345678:32,r2l.b) ;78256b28123456781020
+ shll.w #4,@(0x12345678:32,r2.w) ;78266b28123456781020
+ shll.w #4,@(0x12345678:32,er2.l) ;78276b28123456781020
+ shll.w #4,@0x1234:16 ;6b1812341020
+ shll.w #4,@0x12345678:32 ;6b38123456781020
+
+ shll.l #4,er1 ;1039
+ shll.l #4,@er1 ;010469181038
+ shll.l #4,@(0xc:2,er1) ;010769181038
+ shll.l #4,@er1+ ;01046d181038
+ shll.l #4,@-er1 ;01076d181038
+ shll.l #4,@+er1 ;01056d181038
+ shll.l #4,@er1- ;01066d181038
+ shll.l #4,@(0x1234:16,er1) ;01046f1812341038
+ shll.l #4,@(0x12345678:32,er1) ;78946b28123456781038
+ shll.l #4,@(0x1234:16,r2l.b) ;01056f2812341038
+ shll.l #4,@(0x1234:16,r2.w) ;01066f2812341038
+ shll.l #4,@(0x1234:16,er2.l) ;01076f2812341038
+ shll.l #4,@(0x12345678:32,r2l.b) ;78a56b28123456781038
+ shll.l #4,@(0x12345678:32,r2.w) ;78a66b28123456781038
+ shll.l #4,@(0x12345678:32,er2.l) ;78a76b28123456781038
+ shll.l #4,@0x1234:16 ;01046b0812341038
+ shll.l #4,@0x12345678:32 ;01046b28123456781038
+
+ shll.w #8,r1 ;1061
+ shll.w #8,@er1 ;7d901060
+ shll.w #8,@(0x6:2,er1) ;015769181060
+ shll.w #8,@er1+ ;01546d181060
+ shll.w #8,@-er1 ;01576d181060
+ shll.w #8,@+er1 ;01556d181060
+ shll.w #8,@er1- ;01566d181060
+ shll.w #8,@(0x1234:16,er1) ;01546f1812341060
+ shll.w #8,@(0x12345678:32,er1) ;78146b28123456781060
+ shll.w #8,@(0x1234:16,r2l.b) ;01556f2812341060
+ shll.w #8,@(0x1234:16,r2.w) ;01566f2812341060
+ shll.w #8,@(0x1234:16,er2.l) ;01576f2812341060
+ shll.w #8,@(0x12345678:32,r2l.b) ;78256b28123456781060
+ shll.w #8,@(0x12345678:32,r2.w) ;78266b28123456781060
+ shll.w #8,@(0x12345678:32,er2.l) ;78276b28123456781060
+ shll.w #8,@0x1234:16 ;6b1812341060
+ shll.w #8,@0x12345678:32 ;6b38123456781060
+
+ shll.l #8,er1 ;1079
+ shll.l #8,@er1 ;010469181078
+ shll.l #8,@(0xc:2,er1) ;010769181078
+ shll.l #8,@er1+ ;01046d181078
+ shll.l #8,@-er1 ;01076d181078
+ shll.l #8,@+er1 ;01056d181078
+ shll.l #8,@er1- ;01066d181078
+ shll.l #8,@(0x1234:16,er1) ;01046f1812341078
+ shll.l #8,@(0x12345678:32,er1) ;78946b28123456781078
+ shll.l #8,@(0x1234:16,r2l.b) ;01056f2812341078
+ shll.l #8,@(0x1234:16,r2.w) ;01066f2812341078
+ shll.l #8,@(0x1234:16,er2.l) ;01076f2812341078
+ shll.l #8,@(0x12345678:32,r2l.b) ;78a56b28123456781078
+ shll.l #8,@(0x12345678:32,r2.w) ;78a66b28123456781078
+ shll.l #8,@(0x12345678:32,er2.l) ;78a76b28123456781078
+ shll.l #8,@0x1234:16 ;01046b0812341078
+ shll.l #8,@0x12345678:32 ;01046b28123456781078
+
+ shll.l #16,er1 ;10f9
+ shll.l #16,@er1 ;0104691810f8
+ shll.l #16,@(0xc:2,er1) ;0107691810f8
+ shll.l #16,@er1+ ;01046d1810f8
+ shll.l #16,@-er1 ;01076d1810f8
+ shll.l #16,@+er1 ;01056d1810f8
+ shll.l #16,@er1- ;01066d1810f8
+ shll.l #16,@(0x1234:16,er1) ;01046f18123410f8
+ shll.l #16,@(0x12345678:32,er1) ;78946b281234567810f8
+ shll.l #16,@(0x1234:16,r2l.b) ;01056f28123410f8
+ shll.l #16,@(0x1234:16,r2.w) ;01066f28123410f8
+ shll.l #16,@(0x1234:16,er2.l) ;01076f28123410f8
+ shll.l #16,@(0x12345678:32,r2l.b) ;78a56b281234567810f8
+ shll.l #16,@(0x12345678:32,r2.w) ;78a66b281234567810f8
+ shll.l #16,@(0x12345678:32,er2.l) ;78a76b281234567810f8
+ shll.l #16,@0x1234:16 ;01046b08123410f8
+ shll.l #16,@0x12345678:32 ;01046b281234567810f8
+
+ shll.b #0x7:5,r1h ;03871001
+ shll.w #0xf:5,r1 ;038f1011
+ shll.l #0x1f:5,er1 ;039f1031
+
+ shll.b r3h,r1h ;78381001
+ shll.w r3h,r1 ;78381011
+ shll.l r3h,er1 ;78381031
+
+ shlr.b r1h ;1101
+ shlr.b @er1 ;7d101100
+ shlr.b @(0x3:2,er1) ;017768181100
+ shlr.b @er1+ ;01746c181100
+ shlr.b @-er1 ;01776c181100
+ shlr.b @+er1 ;01756c181100
+ shlr.b @er1- ;01766c181100
+ shlr.b @(0x1234:16,er1) ;01746e1812341100
+ shlr.b @(0x12345678:32,er1) ;78146a28123456781100
+ shlr.b @(0x1234:16,r2l.b) ;01756e2812341100
+ shlr.b @(0x1234:16,r2.w) ;01766e2812341100
+ shlr.b @(0x1234:16,er2.l) ;01776e2812341100
+ shlr.b @(0x12345678:32,r2l.b) ;78256a28123456781100
+ shlr.b @(0x12345678:32,r2.w) ;78266a28123456781100
+ shlr.b @(0x12345678:32,er2.l) ;78276a28123456781100
+ shlr.b @0xffffff12:8 ;7f121100
+ shlr.b @0x1234:16 ;6a1812341100
+ shlr.b @0x12345678:32 ;6a38123456781100
+
+ shlr.w r1 ;1111
+ shlr.w @er1 ;7d901110
+ shlr.w @(0x6:2,er1) ;015769181110
+ shlr.w @er1+ ;01546d181110
+ shlr.w @-er1 ;01576d181110
+ shlr.w @+er1 ;01556d181110
+ shlr.w @er1- ;01566d181110
+ shlr.w @(0x1234:16,er1) ;01546f1812341110
+ shlr.w @(0x12345678:32,er1) ;78146b28123456781110
+ shlr.w @(0x1234:16,r2l.b) ;01556f2812341110
+ shlr.w @(0x1234:16,r2.w) ;01566f2812341110
+ shlr.w @(0x1234:16,er2.l) ;01576f2812341110
+ shlr.w @(0x12345678:32,r2l.b) ;78256b28123456781110
+ shlr.w @(0x12345678:32,r2.w) ;78266b28123456781110
+ shlr.w @(0x12345678:32,er2.l) ;78276b28123456781110
+ shlr.w @0x1234:16 ;6b1812341110
+ shlr.w @0x12345678:32 ;6b38123456781110
+
+ shlr.l er1 ;1131
+ shlr.l @er1 ;010469181130
+ shlr.l @(0xc:2,er1) ;010769181130
+ shlr.l @er1+ ;01046d181130
+ shlr.l @-er1 ;01076d181130
+ shlr.l @+er1 ;01056d181130
+ shlr.l @er1- ;01066d181130
+ shlr.l @(0x1234:16,er1) ;01046f1812341130
+ shlr.l @(0x12345678:32,er1) ;78946b28123456781130
+ shlr.l @(0x1234:16,r2l.b) ;01056f2812341130
+ shlr.l @(0x1234:16,r2.w) ;01066f2812341130
+ shlr.l @(0x1234:16,er2.l) ;01076f2812341130
+ shlr.l @(0x12345678:32,r2l.b) ;78a56b28123456781130
+ shlr.l @(0x12345678:32,r2.w) ;78a66b28123456781130
+ shlr.l @(0x12345678:32,er2.l) ;78a76b28123456781130
+ shlr.l @0x1234:16 ;01046b0812341130
+ shlr.l @0x12345678:32 ;01046b28123456781130
+
+ shlr.b #2,r1h ;1141
+ shlr.b #2,@er1 ;7d101140
+ shlr.b #2,@(0x3:2,er1) ;017768181140
+ shlr.b #2,@er1+ ;01746c181140
+ shlr.b #2,@-er1 ;01776c181140
+ shlr.b #2,@+er1 ;01756c181140
+ shlr.b #2,@er1- ;01766c181140
+ shlr.b #2,@(0x1234:16,er1) ;01746e1812341140
+ shlr.b #2,@(0x12345678:32,er1) ;78146a28123456781140
+ shlr.b #2,@(0x1234:16,r2l.b) ;01756e2812341140
+ shlr.b #2,@(0x1234:16,r2.w) ;01766e2812341140
+ shlr.b #2,@(0x1234:16,er2.l) ;01776e2812341140
+ shlr.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781140
+ shlr.b #2,@(0x12345678:32,r2.w) ;78266a28123456781140
+ shlr.b #2,@(0x12345678:32,er2.l) ;78276a28123456781140
+ shlr.b #2,@0xffffff12:8 ;7f121140
+ shlr.b #2,@0x1234:16 ;6a1812341140
+ shlr.b #2,@0x12345678:32 ;6a38123456781140
+
+ shlr.w #2,r1 ;1151
+ shlr.w #2,@er1 ;7d901150
+ shlr.w #2,@(0x6:2,er1) ;015769181150
+ shlr.w #2,@er1+ ;01546d181150
+ shlr.w #2,@-er1 ;01576d181150
+ shlr.w #2,@+er1 ;01556d181150
+ shlr.w #2,@er1- ;01566d181150
+ shlr.w #2,@(0x1234:16,er1) ;01546f1812341150
+ shlr.w #2,@(0x12345678:32,er1) ;78146b28123456781150
+ shlr.w #2,@(0x1234:16,r2l.b) ;01556f2812341150
+ shlr.w #2,@(0x1234:16,r2.w) ;01566f2812341150
+ shlr.w #2,@(0x1234:16,er2.l) ;01576f2812341150
+ shlr.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781150
+ shlr.w #2,@(0x12345678:32,r2.w) ;78266b28123456781150
+ shlr.w #2,@(0x12345678:32,er2.l) ;78276b28123456781150
+ shlr.w #2,@0x1234:16 ;6b1812341150
+ shlr.w #2,@0x12345678:32 ;6b38123456781150
+
+ shlr.l #2,er1 ;1171
+ shlr.l #2,@er1 ;010469181170
+ shlr.l #2,@(0xc:2,er1) ;010769181170
+ shlr.l #2,@er1+ ;01046d181170
+ shlr.l #2,@-er1 ;01076d181170
+ shlr.l #2,@+er1 ;01056d181170
+ shlr.l #2,@er1- ;01066d181170
+ shlr.l #2,@(0x1234:16,er1) ;01046f1812341170
+ shlr.l #2,@(0x12345678:32,er1) ;78946b28123456781170
+ shlr.l #2,@(0x1234:16,r2l.b) ;01056f2812341170
+ shlr.l #2,@(0x1234:16,r2.w) ;01066f2812341170
+ shlr.l #2,@(0x1234:16,er2.l) ;01076f2812341170
+ shlr.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781170
+ shlr.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781170
+ shlr.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781170
+ shlr.l #2,@0x1234:16 ;01046b0812341170
+ shlr.l #2,@0x12345678:32 ;01046b28123456781170
+
+ shlr.b #4,r1h ;11a1
+ shlr.b #4,@er1 ;7d1011a0
+ shlr.b #4,@(0x3:2,er1) ;0177681811a0
+ shlr.b #4,@er1+ ;01746c1811a0
+ shlr.b #4,@-er1 ;01776c1811a0
+ shlr.b #4,@+er1 ;01756c1811a0
+ shlr.b #4,@er1- ;01766c1811a0
+ shlr.b #4,@(0x1234:16,er1) ;01746e18123411a0
+ shlr.b #4,@(0x12345678:32,er1) ;78146a281234567811a0
+ shlr.b #4,@(0x1234:16,r2l.b) ;01756e28123411a0
+ shlr.b #4,@(0x1234:16,r2.w) ;01766e28123411a0
+ shlr.b #4,@(0x1234:16,er2.l) ;01776e28123411a0
+ shlr.b #4,@(0x12345678:32,r2l.b) ;78256a281234567811a0
+ shlr.b #4,@(0x12345678:32,r2.w) ;78266a281234567811a0
+ shlr.b #4,@(0x12345678:32,er2.l) ;78276a281234567811a0
+ shlr.b #4,@0xffffff12:8 ;7f1211a0
+ shlr.b #4,@0x1234:16 ;6a18123411a0
+ shlr.b #4,@0x12345678:32 ;6a381234567811a0
+
+ shlr.w #4,r1 ;1121
+ shlr.w #4,@er1 ;7d901120
+ shlr.w #4,@(0x6:2,er1) ;015769181120
+ shlr.w #4,@er1+ ;01546d181120
+ shlr.w #4,@-er1 ;01576d181120
+ shlr.w #4,@+er1 ;01556d181120
+ shlr.w #4,@er1- ;01566d181120
+ shlr.w #4,@(0x1234:16,er1) ;01546f1812341120
+ shlr.w #4,@(0x12345678:32,er1) ;78146b28123456781120
+ shlr.w #4,@(0x1234:16,r2l.b) ;01556f2812341120
+ shlr.w #4,@(0x1234:16,r2.w) ;01566f2812341120
+ shlr.w #4,@(0x1234:16,er2.l) ;01576f2812341120
+ shlr.w #4,@(0x12345678:32,r2l.b) ;78256b28123456781120
+ shlr.w #4,@(0x12345678:32,r2.w) ;78266b28123456781120
+ shlr.w #4,@(0x12345678:32,er2.l) ;78276b28123456781120
+ shlr.w #4,@0x1234:16 ;6b1812341120
+ shlr.w #4,@0x12345678:32 ;6b38123456781120
+
+ shlr.l #4,er1 ;1139
+ shlr.l #4,@er1 ;010469181138
+ shlr.l #4,@(0xc:2,er1) ;010769181138
+ shlr.l #4,@er1+ ;01046d181138
+ shlr.l #4,@-er1 ;01076d181138
+ shlr.l #4,@+er1 ;01056d181138
+ shlr.l #4,@er1- ;01066d181138
+ shlr.l #4,@(0x1234:16,er1) ;01046f1812341138
+ shlr.l #4,@(0x12345678:32,er1) ;78946b28123456781138
+ shlr.l #4,@(0x1234:16,r2l.b) ;01056f2812341138
+ shlr.l #4,@(0x1234:16,r2.w) ;01066f2812341138
+ shlr.l #4,@(0x1234:16,er2.l) ;01076f2812341138
+ shlr.l #4,@(0x12345678:32,r2l.b) ;78a56b28123456781138
+ shlr.l #4,@(0x12345678:32,r2.w) ;78a66b28123456781138
+ shlr.l #4,@(0x12345678:32,er2.l) ;78a76b28123456781138
+ shlr.l #4,@0x1234:16 ;01046b0812341138
+ shlr.l #4,@0x12345678:32 ;01046b28123456781138
+
+ shlr.w #8,r1 ;1161
+ shlr.w #8,@er1 ;7d901160
+ shlr.w #8,@(0x6:2,er1) ;015769181160
+ shlr.w #8,@er1+ ;01546d181160
+ shlr.w #8,@-er1 ;01576d181160
+ shlr.w #8,@+er1 ;01556d181160
+ shlr.w #8,@er1- ;01566d181160
+ shlr.w #8,@(0x1234:16,er1) ;01546f1812341160
+ shlr.w #8,@(0x12345678:32,er1) ;78146b28123456781160
+ shlr.w #8,@(0x1234:16,r2l.b) ;01556f2812341160
+ shlr.w #8,@(0x1234:16,r2.w) ;01566f2812341160
+ shlr.w #8,@(0x1234:16,er2.l) ;01576f2812341160
+ shlr.w #8,@(0x12345678:32,r2l.b) ;78256b28123456781160
+ shlr.w #8,@(0x12345678:32,r2.w) ;78266b28123456781160
+ shlr.w #8,@(0x12345678:32,er2.l) ;78276b28123456781160
+ shlr.w #8,@0x1234:16 ;6b1812341160
+ shlr.w #8,@0x12345678:32 ;6b38123456781160
+
+ shlr.l #8,er1 ;1179
+ shlr.l #8,@er1 ;010469181178
+ shlr.l #8,@(0xc:2,er1) ;010769181178
+ shlr.l #8,@er1+ ;01046d181178
+ shlr.l #8,@-er1 ;01076d181178
+ shlr.l #8,@+er1 ;01056d181178
+ shlr.l #8,@er1- ;01066d181178
+ shlr.l #8,@(0x1234:16,er1) ;01046f1812341178
+ shlr.l #8,@(0x12345678:32,er1) ;78946b28123456781178
+ shlr.l #8,@(0x1234:16,r2l.b) ;01056f2812341178
+ shlr.l #8,@(0x1234:16,r2.w) ;01066f2812341178
+ shlr.l #8,@(0x1234:16,er2.l) ;01076f2812341178
+ shlr.l #8,@(0x12345678:32,r2l.b) ;78a56b28123456781178
+ shlr.l #8,@(0x12345678:32,r2.w) ;78a66b28123456781178
+ shlr.l #8,@(0x12345678:32,er2.l) ;78a76b28123456781178
+ shlr.l #8,@0x1234:16 ;01046b0812341178
+ shlr.l #8,@0x12345678:32 ;01046b28123456781178
+
+ shlr.l #16,er1 ;11f9
+ shlr.l #16,@er1 ;0104691811f8
+ shlr.l #16,@(0xc:2,er1) ;0107691811f8
+ shlr.l #16,@er1+ ;01046d1811f8
+ shlr.l #16,@-er1 ;01076d1811f8
+ shlr.l #16,@+er1 ;01056d1811f8
+ shlr.l #16,@er1- ;01066d1811f8
+ shlr.l #16,@(0x1234:16,er1) ;01046f18123411f8
+ shlr.l #16,@(0x12345678:32,er1) ;78946b281234567811f8
+ shlr.l #16,@(0x1234:16,r2l.b) ;01056f28123411f8
+ shlr.l #16,@(0x1234:16,r2.w) ;01066f28123411f8
+ shlr.l #16,@(0x1234:16,er2.l) ;01076f28123411f8
+ shlr.l #16,@(0x12345678:32,r2l.b) ;78a56b281234567811f8
+ shlr.l #16,@(0x12345678:32,r2.w) ;78a66b281234567811f8
+ shlr.l #16,@(0x12345678:32,er2.l) ;78a76b281234567811f8
+ shlr.l #16,@0x1234:16 ;01046b08123411f8
+ shlr.l #16,@0x12345678:32 ;01046b281234567811f8
+
+ shlr.b #0x7:5,r1h ;03871101
+ shlr.w #0xf:5,r1 ;038f1111
+ shlr.l #0x1f:5,er1 ;039f1131
+
+ shlr.b r3h,r1h ;78381101
+ shlr.w r3h,r1 ;78381111
+ shlr.l r3h,er1 ;78381131
+
+ shal.b r1h ;1081
+ shal.b @er1 ;7d101080
+ shal.b @(0x3:2,er1) ;017768181080
+ shal.b @er1+ ;01746c181080
+ shal.b @-er1 ;01776c181080
+ shal.b @+er1 ;01756c181080
+ shal.b @er1- ;01766c181080
+ shal.b @(0x1234:16,er1) ;01746e1812341080
+ shal.b @(0x12345678:32,er1) ;78146a28123456781080
+ shal.b @(0x1234:16,r2l.b) ;01756e2812341080
+ shal.b @(0x1234:16,r2.w) ;01766e2812341080
+ shal.b @(0x1234:16,er2.l) ;01776e2812341080
+ shal.b @(0x12345678:32,r2l.b) ;78256a28123456781080
+ shal.b @(0x12345678:32,r2.w) ;78266a28123456781080
+ shal.b @(0x12345678:32,er2.l) ;78276a28123456781080
+ shal.b @0xffffff12:8 ;7f121080
+ shal.b @0x1234:16 ;6a1812341080
+ shal.b @0x12345678:32 ;6a38123456781080
+
+ shal.w r1 ;1091
+ shal.w @er1 ;7d901090
+ shal.w @(0x6:2,er1) ;015769181090
+ shal.w @er1+ ;01546d181090
+ shal.w @-er1 ;01576d181090
+ shal.w @+er1 ;01556d181090
+ shal.w @er1- ;01566d181090
+ shal.w @(0x1234:16,er1) ;01546f1812341090
+ shal.w @(0x12345678:32,er1) ;78146b28123456781090
+ shal.w @(0x1234:16,r2l.b) ;01556f2812341090
+ shal.w @(0x1234:16,r2.w) ;01566f2812341090
+ shal.w @(0x1234:16,er2.l) ;01576f2812341090
+ shal.w @(0x12345678:32,r2l.b) ;78256b28123456781090
+ shal.w @(0x12345678:32,r2.w) ;78266b28123456781090
+ shal.w @(0x12345678:32,er2.l) ;78276b28123456781090
+ shal.w @0x1234:16 ;6b1812341090
+ shal.w @0x12345678:32 ;6b38123456781090
+
+ shal.l er1 ;10b1
+ shal.l @er1 ;0104691810b0
+ shal.l @(0xc:2,er1) ;0107691810b0
+ shal.l @er1+ ;01046d1810b0
+ shal.l @-er1 ;01076d1810b0
+ shal.l @+er1 ;01056d1810b0
+ shal.l @er1- ;01066d1810b0
+ shal.l @(0x1234:16,er1) ;01046f18123410b0
+ shal.l @(0x12345678:32,er1) ;78946b281234567810b0
+ shal.l @(0x1234:16,r2l.b) ;01056f28123410b0
+ shal.l @(0x1234:16,r2.w) ;01066f28123410b0
+ shal.l @(0x1234:16,er2.l) ;01076f28123410b0
+ shal.l @(0x12345678:32,r2l.b) ;78a56b281234567810b0
+ shal.l @(0x12345678:32,r2.w) ;78a66b281234567810b0
+ shal.l @(0x12345678:32,er2.l) ;78a76b281234567810b0
+ shal.l @0x1234:16 ;01046b08123410b0
+ shal.l @0x12345678:32 ;01046b281234567810b0
+
+ shal.b #2,r1h ;10c1
+ shal.b #2,@er1 ;7d1010c0
+ shal.b #2,@(0x3:2,er1) ;0177681810c0
+ shal.b #2,@er1+ ;01746c1810c0
+ shal.b #2,@-er1 ;01776c1810c0
+ shal.b #2,@+er1 ;01756c1810c0
+ shal.b #2,@er1- ;01766c1810c0
+ shal.b #2,@(0x1234:16,er1) ;01746e18123410c0
+ shal.b #2,@(0x12345678:32,er1) ;78146a281234567810c0
+ shal.b #2,@(0x1234:16,r2l.b) ;01756e28123410c0
+ shal.b #2,@(0x1234:16,r2.w) ;01766e28123410c0
+ shal.b #2,@(0x1234:16,er2.l) ;01776e28123410c0
+ shal.b #2,@(0x12345678:32,r2l.b) ;78256a281234567810c0
+ shal.b #2,@(0x12345678:32,r2.w) ;78266a281234567810c0
+ shal.b #2,@(0x12345678:32,er2.l) ;78276a281234567810c0
+ shal.b #2,@0xffffff12:8 ;7f1210c0
+ shal.b #2,@0x1234:16 ;6a18123410c0
+ shal.b #2,@0x12345678:32 ;6a381234567810c0
+
+ shal.w #2,r1 ;10d1
+ shal.w #2,@er1 ;7d9010d0
+ shal.w #2,@(0x6:2,er1) ;0157691810d0
+ shal.w #2,@er1+ ;01546d1810d0
+ shal.w #2,@-er1 ;01576d1810d0
+ shal.w #2,@+er1 ;01556d1810d0
+ shal.w #2,@er1- ;01566d1810d0
+ shal.w #2,@(0x1234:16,er1) ;01546f18123410d0
+ shal.w #2,@(0x12345678:32,er1) ;78146b281234567810d0
+ shal.w #2,@(0x1234:16,r2l.b) ;01556f28123410d0
+ shal.w #2,@(0x1234:16,r2.w) ;01566f28123410d0
+ shal.w #2,@(0x1234:16,er2.l) ;01576f28123410d0
+ shal.w #2,@(0x12345678:32,r2l.b) ;78256b281234567810d0
+ shal.w #2,@(0x12345678:32,r2.w) ;78266b281234567810d0
+ shal.w #2,@(0x12345678:32,er2.l) ;78276b281234567810d0
+ shal.w #2,@0x1234:16 ;6b18123410d0
+ shal.w #2,@0x12345678:32 ;6b381234567810d0
+
+ shal.l #2,er1 ;10f1
+ shal.l #2,@er1 ;0104691810f0
+ shal.l #2,@(0xc:2,er1) ;0107691810f0
+ shal.l #2,@er1+ ;01046d1810f0
+ shal.l #2,@-er1 ;01076d1810f0
+ shal.l #2,@+er1 ;01056d1810f0
+ shal.l #2,@er1- ;01066d1810f0
+ shal.l #2,@(0x1234:16,er1) ;01046f18123410f0
+ shal.l #2,@(0x12345678:32,er1) ;78946b281234567810f0
+ shal.l #2,@(0x1234:16,r2l.b) ;01056f28123410f0
+ shal.l #2,@(0x1234:16,r2.w) ;01066f28123410f0
+ shal.l #2,@(0x1234:16,er2.l) ;01076f28123410f0
+ shal.l #2,@(0x12345678:32,r2l.b) ;78a56b281234567810f0
+ shal.l #2,@(0x12345678:32,r2.w) ;78a66b281234567810f0
+ shal.l #2,@(0x12345678:32,er2.l) ;78a76b281234567810f0
+ shal.l #2,@0x1234:16 ;01046b08123410f0
+ shal.l #2,@0x12345678:32 ;01046b281234567810f0
+
+ shar.b r1h ;1181
+ shar.b @er1 ;7d101180
+ shar.b @(0x3:2,er1) ;017768181180
+ shar.b @er1+ ;01746c181180
+ shar.b @-er1 ;01776c181180
+ shar.b @+er1 ;01756c181180
+ shar.b @er1- ;01766c181180
+ shar.b @(0x1234:16,er1) ;01746e1812341180
+ shar.b @(0x12345678:32,er1) ;78146a28123456781180
+ shar.b @(0x1234:16,r2l.b) ;01756e2812341180
+ shar.b @(0x1234:16,r2.w) ;01766e2812341180
+ shar.b @(0x1234:16,er2.l) ;01776e2812341180
+ shar.b @(0x12345678:32,r2l.b) ;78256a28123456781180
+ shar.b @(0x12345678:32,r2.w) ;78266a28123456781180
+ shar.b @(0x12345678:32,er2.l) ;78276a28123456781180
+ shar.b @0xffffff12:8 ;7f121180
+ shar.b @0x1234:16 ;6a1812341180
+ shar.b @0x12345678:32 ;6a38123456781180
+
+ shar.w r1 ;1191
+ shar.w @er1 ;7d901190
+ shar.w @(0x6:2,er1) ;015769181190
+ shar.w @er1+ ;01546d181190
+ shar.w @-er1 ;01576d181190
+ shar.w @+er1 ;01556d181190
+ shar.w @er1- ;01566d181190
+ shar.w @(0x1234:16,er1) ;01546f1812341190
+ shar.w @(0x12345678:32,er1) ;78146b28123456781190
+ shar.w @(0x1234:16,r2l.b) ;01556f2812341190
+ shar.w @(0x1234:16,r2.w) ;01566f2812341190
+ shar.w @(0x1234:16,er2.l) ;01576f2812341190
+ shar.w @(0x12345678:32,r2l.b) ;78256b28123456781190
+ shar.w @(0x12345678:32,r2.w) ;78266b28123456781190
+ shar.w @(0x12345678:32,er2.l) ;78276b28123456781190
+ shar.w @0x1234:16 ;6b1812341190
+ shar.w @0x12345678:32 ;6b38123456781190
+
+ shar.l er1 ;11b1
+ shar.l @er1 ;0104691811b0
+ shar.l @(0xc:2,er1) ;0107691811b0
+ shar.l @er1+ ;01046d1811b0
+ shar.l @-er1 ;01076d1811b0
+ shar.l @+er1 ;01056d1811b0
+ shar.l @er1- ;01066d1811b0
+ shar.l @(0x1234:16,er1) ;01046f18123411b0
+ shar.l @(0x12345678:32,er1) ;78946b281234567811b0
+ shar.l @(0x1234:16,r2l.b) ;01056f28123411b0
+ shar.l @(0x1234:16,r2.w) ;01066f28123411b0
+ shar.l @(0x1234:16,er2.l) ;01076f28123411b0
+ shar.l @(0x12345678:32,r2l.b) ;78a56b281234567811b0
+ shar.l @(0x12345678:32,r2.w) ;78a66b281234567811b0
+ shar.l @(0x12345678:32,er2.l) ;78a76b281234567811b0
+ shar.l @0x1234:16 ;01046b08123411b0
+ shar.l @0x12345678:32 ;01046b281234567811b0
+
+ shar.b #2,r1h ;11c1
+ shar.b #2,@er1 ;7d1011c0
+ shar.b #2,@(0x3:2,er1) ;0177681811c0
+ shar.b #2,@er1+ ;01746c1811c0
+ shar.b #2,@-er1 ;01776c1811c0
+ shar.b #2,@+er1 ;01756c1811c0
+ shar.b #2,@er1- ;01766c1811c0
+ shar.b #2,@(0x1234:16,er1) ;01746e18123411c0
+ shar.b #2,@(0x12345678:32,er1) ;78146a281234567811c0
+ shar.b #2,@(0x1234:16,r2l.b) ;01756e28123411c0
+ shar.b #2,@(0x1234:16,r2.w) ;01766e28123411c0
+ shar.b #2,@(0x1234:16,er2.l) ;01776e28123411c0
+ shar.b #2,@(0x12345678:32,r2l.b) ;78256a281234567811c0
+ shar.b #2,@(0x12345678:32,r2.w) ;78266a281234567811c0
+ shar.b #2,@(0x12345678:32,er2.l) ;78276a281234567811c0
+ shar.b #2,@0xffffff12:8 ;7f1211c0
+ shar.b #2,@0x1234:16 ;6a18123411c0
+ shar.b #2,@0x12345678:32 ;6a381234567811c0
+
+ shar.w #2,r1 ;11d1
+ shar.w #2,@er1 ;7d9011d0
+ shar.w #2,@(0x6:2,er1) ;0157691811d0
+ shar.w #2,@er1+ ;01546d1811d0
+ shar.w #2,@-er1 ;01576d1811d0
+ shar.w #2,@+er1 ;01556d1811d0
+ shar.w #2,@er1- ;01566d1811d0
+ shar.w #2,@(0x1234:16,er1) ;01546f18123411d0
+ shar.w #2,@(0x12345678:32,er1) ;78146b281234567811d0
+ shar.w #2,@(0x1234:16,r2l.b) ;01556f28123411d0
+ shar.w #2,@(0x1234:16,r2.w) ;01566f28123411d0
+ shar.w #2,@(0x1234:16,er2.l) ;01576f28123411d0
+ shar.w #2,@(0x12345678:32,r2l.b) ;78256b281234567811d0
+ shar.w #2,@(0x12345678:32,r2.w) ;78266b281234567811d0
+ shar.w #2,@(0x12345678:32,er2.l) ;78276b281234567811d0
+ shar.w #2,@0x1234:16 ;6b18123411d0
+ shar.w #2,@0x12345678:32 ;6b381234567811d0
+
+ shar.l #2,er1 ;11f1
+ shar.l #2,@er1 ;0104691811f0
+ shar.l #2,@(0xc:2,er1) ;0107691811f0
+ shar.l #2,@er1+ ;01046d1811f0
+ shar.l #2,@-er1 ;01076d1811f0
+ shar.l #2,@+er1 ;01056d1811f0
+ shar.l #2,@er1- ;01066d1811f0
+ shar.l #2,@(0x1234:16,er1) ;01046f18123411f0
+ shar.l #2,@(0x12345678:32,er1) ;78946b281234567811f0
+ shar.l #2,@(0x1234:16,r2l.b) ;01056f28123411f0
+ shar.l #2,@(0x1234:16,r2.w) ;01066f28123411f0
+ shar.l #2,@(0x1234:16,er2.l) ;01076f28123411f0
+ shar.l #2,@(0x12345678:32,r2l.b) ;78a56b281234567811f0
+ shar.l #2,@(0x12345678:32,r2.w) ;78a66b281234567811f0
+ shar.l #2,@(0x12345678:32,er2.l) ;78a76b281234567811f0
+ shar.l #2,@0x1234:16 ;01046b08123411f0
+ shar.l #2,@0x12345678:32 ;01046b281234567811f0
+
+ rotxl.b r1h ;1201
+ rotxl.b @er1 ;7d101200
+ rotxl.b @(0x3:2,er1) ;017768181200
+ rotxl.b @er1+ ;01746c181200
+ rotxl.b @-er1 ;01776c181200
+ rotxl.b @+er1 ;01756c181200
+ rotxl.b @er1- ;01766c181200
+ rotxl.b @(0x1234:16,er1) ;01746e1812341200
+ rotxl.b @(0x12345678:32,er1) ;78146a28123456781200
+ rotxl.b @(0x1234:16,r2l.b) ;01756e2812341200
+ rotxl.b @(0x1234:16,r2.w) ;01766e2812341200
+ rotxl.b @(0x1234:16,er2.l) ;01776e2812341200
+ rotxl.b @(0x12345678:32,r2l.b) ;78256a28123456781200
+ rotxl.b @(0x12345678:32,r2.w) ;78266a28123456781200
+ rotxl.b @(0x12345678:32,er2.l) ;78276a28123456781200
+ rotxl.b @0xffffff12:8 ;7f121200
+ rotxl.b @0x1234:16 ;6a1812341200
+ rotxl.b @0x12345678:32 ;6a38123456781200
+
+ rotxl.w r1 ;1211
+ rotxl.w @er1 ;7d901210
+ rotxl.w @(0x6:2,er1) ;015769181210
+ rotxl.w @er1+ ;01546d181210
+ rotxl.w @-er1 ;01576d181210
+ rotxl.w @+er1 ;01556d181210
+ rotxl.w @er1- ;01566d181210
+ rotxl.w @(0x1234:16,er1) ;01546f1812341210
+ rotxl.w @(0x12345678:32,er1) ;78146b28123456781210
+ rotxl.w @(0x1234:16,r2l.b) ;01556f2812341210
+ rotxl.w @(0x1234:16,r2.w) ;01566f2812341210
+ rotxl.w @(0x1234:16,er2.l) ;01576f2812341210
+ rotxl.w @(0x12345678:32,r2l.b) ;78256b28123456781210
+ rotxl.w @(0x12345678:32,r2.w) ;78266b28123456781210
+ rotxl.w @(0x12345678:32,er2.l) ;78276b28123456781210
+ rotxl.w @0x1234:16 ;6b1812341210
+ rotxl.w @0x12345678:32 ;6b38123456781210
+
+ rotxl.l er1 ;1231
+ rotxl.l @er1 ;010469181230
+ rotxl.l @(0xc:2,er1) ;010769181230
+ rotxl.l @er1+ ;01046d181230
+ rotxl.l @-er1 ;01076d181230
+ rotxl.l @+er1 ;01056d181230
+ rotxl.l @er1- ;01066d181230
+ rotxl.l @(0x1234:16,er1) ;01046f1812341230
+ rotxl.l @(0x12345678:32,er1) ;78946b28123456781230
+ rotxl.l @(0x1234:16,r2l.b) ;01056f2812341230
+ rotxl.l @(0x1234:16,r2.w) ;01066f2812341230
+ rotxl.l @(0x1234:16,er2.l) ;01076f2812341230
+ rotxl.l @(0x12345678:32,r2l.b) ;78a56b28123456781230
+ rotxl.l @(0x12345678:32,r2.w) ;78a66b28123456781230
+ rotxl.l @(0x12345678:32,er2.l) ;78a76b28123456781230
+ rotxl.l @0x1234:16 ;01046b0812341230
+ rotxl.l @0x12345678:32 ;01046b28123456781230
+
+ rotxl.b #2,r1h ;1241
+ rotxl.b #2,@er1 ;7d101240
+ rotxl.b #2,@(0x3:2,er1) ;017768181240
+ rotxl.b #2,@er1+ ;01746c181240
+ rotxl.b #2,@-er1 ;01776c181240
+ rotxl.b #2,@+er1 ;01756c181240
+ rotxl.b #2,@er1- ;01766c181240
+ rotxl.b #2,@(0x1234:16,er1) ;01746e1812341240
+ rotxl.b #2,@(0x12345678:32,er1) ;78146a28123456781240
+ rotxl.b #2,@(0x1234:16,r2l.b) ;01756e2812341240
+ rotxl.b #2,@(0x1234:16,r2.w) ;01766e2812341240
+ rotxl.b #2,@(0x1234:16,er2.l) ;01776e2812341240
+ rotxl.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781240
+ rotxl.b #2,@(0x12345678:32,r2.w) ;78266a28123456781240
+ rotxl.b #2,@(0x12345678:32,er2.l) ;78276a28123456781240
+ rotxl.b #2,@0xffffff12:8 ;7f121240
+ rotxl.b #2,@0x1234:16 ;6a1812341240
+ rotxl.b #2,@0x12345678:32 ;6a38123456781240
+
+ rotxl.w #2,r1 ;1251
+ rotxl.w #2,@er1 ;7d901250
+ rotxl.w #2,@(0x6:2,er1) ;015769181250
+ rotxl.w #2,@er1+ ;01546d181250
+ rotxl.w #2,@-er1 ;01576d181250
+ rotxl.w #2,@+er1 ;01556d181250
+ rotxl.w #2,@er1- ;01566d181250
+ rotxl.w #2,@(0x1234:16,er1) ;01546f1812341250
+ rotxl.w #2,@(0x12345678:32,er1) ;78146b28123456781250
+ rotxl.w #2,@(0x1234:16,r2l.b) ;01556f2812341250
+ rotxl.w #2,@(0x1234:16,r2.w) ;01566f2812341250
+ rotxl.w #2,@(0x1234:16,er2.l) ;01576f2812341250
+ rotxl.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781250
+ rotxl.w #2,@(0x12345678:32,r2.w) ;78266b28123456781250
+ rotxl.w #2,@(0x12345678:32,er2.l) ;78276b28123456781250
+ rotxl.w #2,@0x1234:16 ;6b1812341250
+ rotxl.w #2,@0x12345678:32 ;6b38123456781250
+
+ rotxl.l #2,er1 ;1271
+ rotxl.l #2,@er1 ;010469181270
+ rotxl.l #2,@(0xc:2,er1) ;010769181270
+ rotxl.l #2,@er1+ ;01046d181270
+ rotxl.l #2,@-er1 ;01076d181270
+ rotxl.l #2,@+er1 ;01056d181270
+ rotxl.l #2,@er1- ;01066d181270
+ rotxl.l #2,@(0x1234:16,er1) ;01046f1812341270
+ rotxl.l #2,@(0x12345678:32,er1) ;78946b28123456781270
+ rotxl.l #2,@(0x1234:16,r2l.b) ;01056f2812341270
+ rotxl.l #2,@(0x1234:16,r2.w) ;01066f2812341270
+ rotxl.l #2,@(0x1234:16,er2.l) ;01076f2812341270
+ rotxl.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781270
+ rotxl.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781270
+ rotxl.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781270
+ rotxl.l #2,@0x1234:16 ;01046b0812341270
+ rotxl.l #2,@0x12345678:32 ;01046b28123456781270
+
+ rotxr.b r1h ;1301
+ rotxr.b @er1 ;7d101300
+ rotxr.b @(0x3:2,er1) ;017768181300
+ rotxr.b @er1+ ;01746c181300
+ rotxr.b @-er1 ;01776c181300
+ rotxr.b @+er1 ;01756c181300
+ rotxr.b @er1- ;01766c181300
+ rotxr.b @(0x1234:16,er1) ;01746e1812341300
+ rotxr.b @(0x12345678:32,er1) ;78146a28123456781300
+ rotxr.b @(0x1234:16,r2l.b) ;01756e2812341300
+ rotxr.b @(0x1234:16,r2.w) ;01766e2812341300
+ rotxr.b @(0x1234:16,er2.l) ;01776e2812341300
+ rotxr.b @(0x12345678:32,r2l.b) ;78256a28123456781300
+ rotxr.b @(0x12345678:32,r2.w) ;78266a28123456781300
+ rotxr.b @(0x12345678:32,er2.l) ;78276a28123456781300
+ rotxr.b @0xffffff12:8 ;7f121300
+ rotxr.b @0x1234:16 ;6a1812341300
+ rotxr.b @0x12345678:32 ;6a38123456781300
+
+ rotxr.w r1 ;1311
+ rotxr.w @er1 ;7d901310
+ rotxr.w @(0x6:2,er1) ;015769181310
+ rotxr.w @er1+ ;01546d181310
+ rotxr.w @-er1 ;01576d181310
+ rotxr.w @+er1 ;01556d181310
+ rotxr.w @er1- ;01566d181310
+ rotxr.w @(0x1234:16,er1) ;01546f1812341310
+ rotxr.w @(0x12345678:32,er1) ;78146b28123456781310
+ rotxr.w @(0x1234:16,r2l.b) ;01556f2812341310
+ rotxr.w @(0x1234:16,r2.w) ;01566f2812341310
+ rotxr.w @(0x1234:16,er2.l) ;01576f2812341310
+ rotxr.w @(0x12345678:32,r2l.b) ;78256b28123456781310
+ rotxr.w @(0x12345678:32,r2.w) ;78266b28123456781310
+ rotxr.w @(0x12345678:32,er2.l) ;78276b28123456781310
+ rotxr.w @0x1234:16 ;6b1812341310
+ rotxr.w @0x12345678:32 ;6b38123456781310
+
+ rotxr.l er1 ;1331
+ rotxr.l @er1 ;010469181330
+ rotxr.l @(0xc:2,er1) ;010769181330
+ rotxr.l @er1+ ;01046d181330
+ rotxr.l @-er1 ;01076d181330
+ rotxr.l @+er1 ;01056d181330
+ rotxr.l @er1- ;01066d181330
+ rotxr.l @(0x1234:16,er1) ;01046f1812341330
+ rotxr.l @(0x12345678:32,er1) ;78946b28123456781330
+ rotxr.l @(0x1234:16,r2l.b) ;01056f2812341330
+ rotxr.l @(0x1234:16,r2.w) ;01066f2812341330
+ rotxr.l @(0x1234:16,er2.l) ;01076f2812341330
+ rotxr.l @(0x12345678:32,r2l.b) ;78a56b28123456781330
+ rotxr.l @(0x12345678:32,r2.w) ;78a66b28123456781330
+ rotxr.l @(0x12345678:32,er2.l) ;78a76b28123456781330
+ rotxr.l @0x1234:16 ;01046b0812341330
+ rotxr.l @0x12345678:32 ;01046b28123456781330
+
+ rotxr.b #2,r1h ;1341
+ rotxr.b #2,@er1 ;7d101340
+ rotxr.b #2,@(0x3:2,er1) ;017768181340
+ rotxr.b #2,@er1+ ;01746c181340
+ rotxr.b #2,@-er1 ;01776c181340
+ rotxr.b #2,@+er1 ;01756c181340
+ rotxr.b #2,@er1- ;01766c181340
+ rotxr.b #2,@(0x1234:16,er1) ;01746e1812341340
+ rotxr.b #2,@(0x12345678:32,er1) ;78146a28123456781340
+ rotxr.b #2,@(0x1234:16,r2l.b) ;01756e2812341340
+ rotxr.b #2,@(0x1234:16,r2.w) ;01766e2812341340
+ rotxr.b #2,@(0x1234:16,er2.l) ;01776e2812341340
+ rotxr.b #2,@(0x12345678:32,r2l.b) ;78256a28123456781340
+ rotxr.b #2,@(0x12345678:32,r2.w) ;78266a28123456781340
+ rotxr.b #2,@(0x12345678:32,er2.l) ;78276a28123456781340
+ rotxr.b #2,@0xffffff12:8 ;7f121340
+ rotxr.b #2,@0x1234:16 ;6a1812341340
+ rotxr.b #2,@0x12345678:32 ;6a38123456781340
+
+ rotxr.w #2,r1 ;1351
+ rotxr.w #2,@er1 ;7d901350
+ rotxr.w #2,@(0x6:2,er1) ;015769181350
+ rotxr.w #2,@er1+ ;01546d181350
+ rotxr.w #2,@-er1 ;01576d181350
+ rotxr.w #2,@+er1 ;01556d181350
+ rotxr.w #2,@er1- ;01566d181350
+ rotxr.w #2,@(0x1234:16,er1) ;01546f1812341350
+ rotxr.w #2,@(0x12345678:32,er1) ;78146b28123456781350
+ rotxr.w #2,@(0x1234:16,r2l.b) ;01556f2812341350
+ rotxr.w #2,@(0x1234:16,r2.w) ;01566f2812341350
+ rotxr.w #2,@(0x1234:16,er2.l) ;01576f2812341350
+ rotxr.w #2,@(0x12345678:32,r2l.b) ;78256b28123456781350
+ rotxr.w #2,@(0x12345678:32,r2.w) ;78266b28123456781350
+ rotxr.w #2,@(0x12345678:32,er2.l) ;78276b28123456781350
+ rotxr.w #2,@0x1234:16 ;6b1812341350
+ rotxr.w #2,@0x12345678:32 ;6b38123456781350
+
+ rotxr.l #2,er1 ;1371
+ rotxr.l #2,@er1 ;010469181370
+ rotxr.l #2,@(0xc:2,er1) ;010769181370
+ rotxr.l #2,@er1+ ;01046d181370
+ rotxr.l #2,@-er1 ;01076d181370
+ rotxr.l #2,@+er1 ;01056d181370
+ rotxr.l #2,@er1- ;01066d181370
+ rotxr.l #2,@(0x1234:16,er1) ;01046f1812341370
+ rotxr.l #2,@(0x12345678:32,er1) ;78946b28123456781370
+ rotxr.l #2,@(0x1234:16,r2l.b) ;01056f2812341370
+ rotxr.l #2,@(0x1234:16,r2.w) ;01066f2812341370
+ rotxr.l #2,@(0x1234:16,er2.l) ;01076f2812341370
+ rotxr.l #2,@(0x12345678:32,r2l.b) ;78a56b28123456781370
+ rotxr.l #2,@(0x12345678:32,r2.w) ;78a66b28123456781370
+ rotxr.l #2,@(0x12345678:32,er2.l) ;78a76b28123456781370
+ rotxr.l #2,@0x1234:16 ;01046b0812341370
+ rotxr.l #2,@0x12345678:32 ;01046b28123456781370
+
+ rotl.b r1h ;1281
+ rotl.b @er1 ;7d101280
+ rotl.b @(0x3:2,er1) ;017768181280
+ rotl.b @er1+ ;01746c181280
+ rotl.b @-er1 ;01776c181280
+ rotl.b @+er1 ;01756c181280
+ rotl.b @er1- ;01766c181280
+ rotl.b @(0x1234:16,er1) ;01746e1812341280
+ rotl.b @(0x12345678:32,er1) ;78146a28123456781280
+ rotl.b @(0x1234:16,r2l.b) ;01756e2812341280
+ rotl.b @(0x1234:16,r2.w) ;01766e2812341280
+ rotl.b @(0x1234:16,er2.l) ;01776e2812341280
+ rotl.b @(0x12345678:32,r2l.b) ;78256a28123456781280
+ rotl.b @(0x12345678:32,r2.w) ;78266a28123456781280
+ rotl.b @(0x12345678:32,er2.l) ;78276a28123456781280
+ rotl.b @0xffffff12:8 ;7f121280
+ rotl.b @0x1234:16 ;6a1812341280
+ rotl.b @0x12345678:32 ;6a38123456781280
+
+ rotl.w r1 ;1291
+ rotl.w @er1 ;7d901290
+ rotl.w @(0x6:2,er1) ;015769181290
+ rotl.w @-er1 ;01576d181290
+ rotl.w @er1+ ;01546d181290
+ rotl.w @er1- ;01566d181290
+ rotl.w @+er1 ;01556d181290
+ rotl.w @(0x1234:16,er1) ;01546f1812341290
+ rotl.w @(0x12345678:32,er1) ;78146b28123456781290
+ rotl.w @(0x1234:16,r2l.b) ;01556f2812341290
+ rotl.w @(0x1234:16,r2.w) ;01566f2812341290
+ rotl.w @(0x1234:16,er2.l) ;01576f2812341290
+ rotl.w @(0x12345678:32,r2l.b) ;78256b28123456781290
+ rotl.w @(0x12345678:32,r2.w) ;78266b28123456781290
+ rotl.w @(0x12345678:32,er2.l) ;78276b28123456781290
+ rotl.w @0x1234:16 ;6b1812341290
+ rotl.w @0x12345678:32 ;6b38123456781290
+
+ rotl.l er1 ;12b1
+ rotl.l @er1 ;0104691812b0
+ rotl.l @(0xc:2,er1) ;0107691812b0
+ rotl.l @er1+ ;01046d1812b0
+ rotl.l @-er1 ;01076d1812b0
+ rotl.l @+er1 ;01056d1812b0
+ rotl.l @er1- ;01066d1812b0
+ rotl.l @(0x1234:16,er1) ;01046f18123412b0
+ rotl.l @(0x12345678:32,er1) ;78946b281234567812b0
+ rotl.l @(0x1234:16,r2l.b) ;01056f28123412b0
+ rotl.l @(0x1234:16,r2.w) ;01066f28123412b0
+ rotl.l @(0x1234:16,er2.l) ;01076f28123412b0
+ rotl.l @(0x12345678:32,r2l.b) ;78a56b281234567812b0
+ rotl.l @(0x12345678:32,r2.w) ;78a66b281234567812b0
+ rotl.l @(0x12345678:32,er2.l) ;78a76b281234567812b0
+ rotl.l @0x1234:16 ;01046b08123412b0
+ rotl.l @0x12345678:32 ;01046b281234567812b0
+
+ rotl.b #2,r1h ;12c1
+ rotl.b #2,@er1 ;7d1012c0
+ rotl.b #2,@(0x3:2,er1) ;0177681812c0
+ rotl.b #2,@er1+ ;01746c1812c0
+ rotl.b #2,@-er1 ;01776c1812c0
+ rotl.b #2,@+er1 ;01756c1812c0
+ rotl.b #2,@er1- ;01766c1812c0
+ rotl.b #2,@(0x1234:16,er1) ;01746e18123412c0
+ rotl.b #2,@(0x12345678:32,er1) ;78146a281234567812c0
+ rotl.b #2,@(0x1234:16,r2l.b) ;01756e28123412c0
+ rotl.b #2,@(0x1234:16,r2.w) ;01766e28123412c0
+ rotl.b #2,@(0x1234:16,er2.l) ;01776e28123412c0
+ rotl.b #2,@(0x12345678:32,r2l.b) ;78256a281234567812c0
+ rotl.b #2,@(0x12345678:32,r2.w) ;78266a281234567812c0
+ rotl.b #2,@(0x12345678:32,er2.l) ;78276a281234567812c0
+ rotl.b #2,@0xffffff12:8 ;7f1212c0
+ rotl.b #2,@0x1234:16 ;6a18123412c0
+ rotl.b #2,@0x12345678:32 ;6a381234567812c0
+
+ rotl.w #2,r1 ;12d1
+ rotl.w #2,@er1 ;7d9012d0
+ rotl.w #2,@(0x6:2,er1) ;0157691812d0
+ rotl.w #2,@er1+ ;01546d1812d0
+ rotl.w #2,@-er1 ;01576d1812d0
+ rotl.w #2,@+er1 ;01556d1812d0
+ rotl.w #2,@er1- ;01566d1812d0
+ rotl.w #2,@(0x1234:16,er1) ;01546f18123412d0
+ rotl.w #2,@(0x12345678:32,er1) ;78146b281234567812d0
+ rotl.w #2,@(0x1234:16,r2l.b) ;01556f28123412d0
+ rotl.w #2,@(0x1234:16,r2.w) ;01566f28123412d0
+ rotl.w #2,@(0x1234:16,er2.l) ;01576f28123412d0
+ rotl.w #2,@(0x12345678:32,r2l.b) ;78256b281234567812d0
+ rotl.w #2,@(0x12345678:32,r2.w) ;78266b281234567812d0
+ rotl.w #2,@(0x12345678:32,er2.l) ;78276b281234567812d0
+ rotl.w #2,@0x1234:16 ;6b18123412d0
+ rotl.w #2,@0x12345678:32 ;6b381234567812d0
+
+ rotl.l #2,er1 ;12f1
+ rotl.l #2,@er1 ;0104691812f0
+ rotl.l #2,@(0xc:2,er1) ;0107691812f0
+ rotl.l #2,@er1+ ;01046d1812f0
+ rotl.l #2,@-er1 ;01076d1812f0
+ rotl.l #2,@+er1 ;01056d1812f0
+ rotl.l #2,@er1- ;01066d1812f0
+ rotl.l #2,@(0x1234:16,er1) ;01046f18123412f0
+ rotl.l #2,@(0x12345678:32,er1) ;78946b281234567812f0
+ rotl.l #2,@(0x1234:16,r2l.b) ;01056f28123412f0
+ rotl.l #2,@(0x1234:16,r2.w) ;01066f28123412f0
+ rotl.l #2,@(0x1234:16,er2.l) ;01076f28123412f0
+ rotl.l #2,@(0x12345678:32,r2l.b) ;78a56b281234567812f0
+ rotl.l #2,@(0x12345678:32,r2.w) ;78a66b281234567812f0
+ rotl.l #2,@(0x12345678:32,er2.l) ;78a76b281234567812f0
+ rotl.l #2,@0x1234:16 ;01046b08123412f0
+ rotl.l #2,@0x12345678:32 ;01046b281234567812f0
+
+ rotr.b r1h ;1381
+ rotr.b @er1 ;7d101380
+ rotr.b @(0x3:2,er1) ;017768181380
+ rotr.b @er1+ ;01746c181380
+ rotr.b @-er1 ;01776c181380
+ rotr.b @+er1 ;01756c181380
+ rotr.b @er1- ;01766c181380
+ rotr.b @(0x1234:16,er1) ;01746e1812341380
+ rotr.b @(0x12345678:32,er1) ;78146a28123456781380
+ rotr.b @(0x1234:16,r2l.b) ;01756e2812341380
+ rotr.b @(0x1234:16,r2.w) ;01766e2812341380
+ rotr.b @(0x1234:16,er2.l) ;01776e2812341380
+ rotr.b @(0x12345678:32,r2l.b) ;78256a28123456781380
+ rotr.b @(0x12345678:32,r2.w) ;78266a28123456781380
+ rotr.b @(0x12345678:32,er2.l) ;78276a28123456781380
+ rotr.b @0xffffff12:8 ;7f121380
+ rotr.b @0x1234:16 ;6a1812341380
+ rotr.b @0x12345678:32 ;6a38123456781380
+
+ rotr.w r1 ;1391
+ rotr.w @er1 ;7d901390
+ rotr.w @(0x6:2,er1) ;015769181390
+ rotr.w @-er1 ;01576d181390
+ rotr.w @er1+ ;01546d181390
+ rotr.w @er1- ;01566d181390
+ rotr.w @+er1 ;01556d181390
+ rotr.w @(0x1234:16,er1) ;01546f1812341390
+ rotr.w @(0x12345678:32,er1) ;78146b28123456781390
+ rotr.w @(0x1234:16,r2l.b) ;01556f2812341390
+ rotr.w @(0x1234:16,r2.w) ;01566f2812341390
+ rotr.w @(0x1234:16,er2.l) ;01576f2812341390
+ rotr.w @(0x12345678:32,r2l.b) ;78256b28123456781390
+ rotr.w @(0x12345678:32,r2.w) ;78266b28123456781390
+ rotr.w @(0x12345678:32,er2.l) ;78276b28123456781390
+ rotr.w @0x1234:16 ;6b1812341390
+ rotr.w @0x12345678:32 ;6b38123456781390
+
+ rotr.l er1 ;13b1
+ rotr.l @er1 ;0104691813b0
+ rotr.l @(0xc:2,er1) ;0107691813b0
+ rotr.l @er1+ ;01046d1813b0
+ rotr.l @-er1 ;01076d1813b0
+ rotr.l @+er1 ;01056d1813b0
+ rotr.l @er1- ;01066d1813b0
+ rotr.l @(0x1234:16,er1) ;01046f18123413b0
+ rotr.l @(0x12345678:32,er1) ;78946b281234567813b0
+ rotr.l @(0x1234:16,r2l.b) ;01056f28123413b0
+ rotr.l @(0x1234:16,r2.w) ;01066f28123413b0
+ rotr.l @(0x1234:16,er2.l) ;01076f28123413b0
+ rotr.l @(0x12345678:32,r2l.b) ;78a56b281234567813b0
+ rotr.l @(0x12345678:32,r2.w) ;78a66b281234567813b0
+ rotr.l @(0x12345678:32,er2.l) ;78a76b281234567813b0
+ rotr.l @0x1234:16 ;01046b08123413b0
+ rotr.l @0x12345678:32 ;01046b281234567813b0
+
+ rotr.b #2,r1h ;13c1
+ rotr.b #2,@er1 ;7d1013c0
+ rotr.b #2,@(0x3:2,er1) ;0177681813c0
+ rotr.b #2,@er1+ ;01746c1813c0
+ rotr.b #2,@-er1 ;01776c1813c0
+ rotr.b #2,@+er1 ;01756c1813c0
+ rotr.b #2,@er1- ;01766c1813c0
+ rotr.b #2,@(0x1234:16,er1) ;01746e18123413c0
+ rotr.b #2,@(0x12345678:32,er1) ;78146a281234567813c0
+ rotr.b #2,@(0x1234:16,r2l.b) ;01756e28123413c0
+ rotr.b #2,@(0x1234:16,r2.w) ;01766e28123413c0
+ rotr.b #2,@(0x1234:16,er2.l) ;01776e28123413c0
+ rotr.b #2,@(0x12345678:32,r2l.b) ;78256a281234567813c0
+ rotr.b #2,@(0x12345678:32,r2.w) ;78266a281234567813c0
+ rotr.b #2,@(0x12345678:32,er2.l) ;78276a281234567813c0
+ rotr.b #2,@0xffffff12:8 ;7f1213c0
+ rotr.b #2,@0x1234:16 ;6a18123413c0
+ rotr.b #2,@0x12345678:32 ;6a381234567813c0
+
+ rotr.w #2,r1 ;13d1
+ rotr.w #2,@er1 ;7d9013d0
+ rotr.w #2,@(0x6:2,er1) ;0157691813d0
+ rotr.w #2,@er1+ ;01546d1813d0
+ rotr.w #2,@-er1 ;01576d1813d0
+ rotr.w #2,@+er1 ;01556d1813d0
+ rotr.w #2,@er1- ;01566d1813d0
+ rotr.w #2,@(0x1234:16,er1) ;01546f18123413d0
+ rotr.w #2,@(0x12345678:32,er1) ;78146b281234567813d0
+ rotr.w #2,@(0x1234:16,r2l.b) ;01556f28123413d0
+ rotr.w #2,@(0x1234:16,r2.w) ;01566f28123413d0
+ rotr.w #2,@(0x1234:16,er2.l) ;01576f28123413d0
+ rotr.w #2,@(0x12345678:32,r2l.b) ;78256b281234567813d0
+ rotr.w #2,@(0x12345678:32,r2.w) ;78266b281234567813d0
+ rotr.w #2,@(0x12345678:32,er2.l) ;78276b281234567813d0
+ rotr.w #2,@0x1234:16 ;6b18123413d0
+ rotr.w #2,@0x12345678:32 ;6b381234567813d0
+
+ rotr.l #2,er1 ;13f1
+ rotr.l #2,@er1 ;0104691813f0
+ rotr.l #2,@(0xc:2,er1) ;0107691813f0
+ rotr.l #2,@er1+ ;01046d1813f0
+ rotr.l #2,@-er1 ;01076d1813f0
+ rotr.l #2,@+er1 ;01056d1813f0
+ rotr.l #2,@er1- ;01066d1813f0
+ rotr.l #2,@(0x1234:16,er1) ;01046f18123413f0
+ rotr.l #2,@(0x12345678:32,er1) ;78946b281234567813f0
+ rotr.l #2,@(0x1234:16,r2l.b) ;01056f28123413f0
+ rotr.l #2,@(0x1234:16,r2.w) ;01066f28123413f0
+ rotr.l #2,@(0x1234:16,er2.l) ;01076f28123413f0
+ rotr.l #2,@(0x12345678:32,r2l.b) ;78a56b281234567813f0
+ rotr.l #2,@(0x12345678:32,r2.w) ;78a66b281234567813f0
+ rotr.l #2,@(0x12345678:32,er2.l) ;78a76b281234567813f0
+ rotr.l #2,@0x1234:16 ;01046b08123413f0
+ rotr.l #2,@0x12345678:32 ;01046b281234567813f0
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t12_bit.exp b/gdb/testsuite/gdb.disasm/t12_bit.exp
new file mode 100644
index 0000000..c59cdc8
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t12_bit.exp
@@ -0,0 +1,330 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t12_bit"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+gdb_test "x /i _start" "bset\t#0x7,r1h" \
+ "bset #0x7,r1h"
+gdb_test "x" "bset\t#0x7,@er1" \
+ "bset #0x7,@er1"
+gdb_test "x" "bset\t#0x7,@0x12(:8|)" \
+ "bset #0x7,@0x12:8"
+gdb_test "x" "bset\t#0x7,@0x1234(:16|)" \
+ "bset #0x7,@0x1234:16"
+gdb_test "x" "bset\t#0x7,@0x12345678(:32|)" \
+ "bset #0x7,@0x12345678:32"
+gdb_test "x" "bset\tr3h,r1h" \
+ "bset r3h,r1h"
+gdb_test "x" "bset\tr3h,@er1" \
+ "bset r3h,@er1"
+gdb_test "x" "bset\tr3h,@0x12(:8|)" \
+ "bset r3h,@0x12:8"
+gdb_test "x" "bset\tr3h,@0x1234(:16|)" \
+ "bset r3h,@0x1234:16"
+gdb_test "x" "bset\tr3h,@0x12345678(:32|)" \
+ "bset r3h,@0x12345678:32"
+gdb_test "x" "bset/eq\t#0x7,@er1" \
+ "bset/eq #0x7,@er1"
+gdb_test "x" "bset/eq\t#0x7,@0x12(:8|)" \
+ "bset/eq #0x7,@0x12:8"
+gdb_test "x" "bset/eq\t#0x7,@0x1234(:16|)" \
+ "bset/eq #0x7,@0x1234:16"
+gdb_test "x" "bset/eq\t#0x7,@0x12345678(:32|)" \
+ "bset/eq #0x7,@0x12345678:32"
+gdb_test "x" "bset/eq\tr3h,@er1" \
+ "bset/eq r3h,@er1"
+gdb_test "x" "bset/eq\tr3h,@0x12(:8|)" \
+ "bset/eq r3h,@0x12:8"
+gdb_test "x" "bset/eq\tr3h,@0x1234(:16|)" \
+ "bset/eq r3h,@0x1234:16"
+gdb_test "x" "bset/eq\tr3h,@0x12345678(:32|)" \
+ "bset/eq r3h,@0x12345678:32"
+gdb_test "x" "bset/ne\t#0x7,@er1" \
+ "bset/ne #0x7,@er1"
+gdb_test "x" "bset/ne\t#0x7,@0x12(:8|)" \
+ "bset/ne #0x7,@0x12:8"
+gdb_test "x" "bset/ne\t#0x7,@0x1234(:16|)" \
+ "bset/ne #0x7,@0x1234:16"
+gdb_test "x" "bset/ne\t#0x7,@0x12345678(:32|)" \
+ "bset/ne #0x7,@0x12345678:32"
+gdb_test "x" "bset/ne\tr3h,@er1" \
+ "bset/ne r3h,@er1"
+gdb_test "x" "bset/ne\tr3h,@0x12(:8|)" \
+ "bset/ne r3h,@0x12:8"
+gdb_test "x" "bset/ne\tr3h,@0x1234(:16|)" \
+ "bset/ne r3h,@0x1234:16"
+gdb_test "x" "bset/ne\tr3h,@0x12345678(:32|)" \
+ "bset/ne r3h,@0x12345678:32"
+gdb_test "x" "bnot\t#0x7,r1h" \
+ "bnot #0x7,r1h"
+gdb_test "x" "bnot\t#0x7,@er1" \
+ "bnot #0x7,@er1"
+gdb_test "x" "bnot\t#0x7,@0x12(:8|)" \
+ "bnot #0x7,@0x12:8"
+gdb_test "x" "bnot\t#0x7,@0x1234(:16|)" \
+ "bnot #0x7,@0x1234:16"
+gdb_test "x" "bnot\t#0x7,@0x12345678(:32|)" \
+ "bnot #0x7,@0x12345678:32"
+gdb_test "x" "bnot\tr3h,r1h" \
+ "bnot r3h,r1h"
+gdb_test "x" "bnot\tr3h,@er1" \
+ "bnot r3h,@er1"
+gdb_test "x" "bnot\tr3h,@0x12(:8|)" \
+ "bnot r3h,@0x12:8"
+gdb_test "x" "bnot\tr3h,@0x1234(:16|)" \
+ "bnot r3h,@0x1234:16"
+gdb_test "x" "bnot\tr3h,@0x12345678(:32|)" \
+ "bnot r3h,@0x12345678:32"
+gdb_test "x" "bclr\t#0x7,r1h" \
+ "bclr #0x7,r1h"
+gdb_test "x" "bclr\t#0x7,@er1" \
+ "bclr #0x7,@er1"
+gdb_test "x" "bclr\t#0x7,@0x12(:8|)" \
+ "bclr #0x7,@0x12:8"
+gdb_test "x" "bclr\t#0x7,@0x1234(:16|)" \
+ "bclr #0x7,@0x1234:16"
+gdb_test "x" "bclr\t#0x7,@0x12345678(:32|)" \
+ "bclr #0x7,@0x12345678:32"
+gdb_test "x" "bclr\tr3h,r1h" \
+ "bclr r3h,r1h"
+gdb_test "x" "bclr\tr3h,@er1" \
+ "bclr r3h,@er1"
+gdb_test "x" "bclr\tr3h,@0x12(:8|)" \
+ "bclr r3h,@0x12:8"
+gdb_test "x" "bclr\tr3h,@0x1234(:16|)" \
+ "bclr r3h,@0x1234:16"
+gdb_test "x" "bclr\tr3h,@0x12345678(:32|)" \
+ "bclr r3h,@0x12345678:32"
+gdb_test "x" "bclr/eq\t#0x7,@er1" \
+ "bclr/eq #0x7,@er1"
+gdb_test "x" "bclr/eq\t#0x7,@0x12(:8|)" \
+ "bclr/eq #0x7,@0x12:8"
+gdb_test "x" "bclr/eq\t#0x7,@0x1234(:16|)" \
+ "bclr/eq #0x7,@0x1234:16"
+gdb_test "x" "bclr/eq\t#0x7,@0x12345678(:32|)" \
+ "bclr/eq #0x7,@0x12345678:32"
+gdb_test "x" "bclr/eq\tr3h,@er1" \
+ "bclr/eq r3h,@er1"
+gdb_test "x" "bclr/eq\tr3h,@0x12(:8|)" \
+ "bclr/eq r3h,@0x12:8"
+gdb_test "x" "bclr/eq\tr3h,@0x1234(:16|)" \
+ "bclr/eq r3h,@0x1234:16"
+gdb_test "x" "bclr/eq\tr3h,@0x12345678(:32|)" \
+ "bclr/eq r3h,@0x12345678:32"
+gdb_test "x" "bclr/ne\t#0x7,@er1" \
+ "bclr/ne #0x7,@er1"
+gdb_test "x" "bclr/ne\t#0x7,@0x12(:8|)" \
+ "bclr/ne #0x7,@0x12:8"
+gdb_test "x" "bclr/ne\t#0x7,@0x1234(:16|)" \
+ "bclr/ne #0x7,@0x1234:16"
+gdb_test "x" "bclr/ne\t#0x7,@0x12345678(:32|)" \
+ "bclr/ne #0x7,@0x12345678:32"
+gdb_test "x" "bclr/ne\tr3h,@er1" \
+ "bclr/ne r3h,@er1"
+gdb_test "x" "bclr/ne\tr3h,@0x12(:8|)" \
+ "bclr/ne r3h,@0x12:8"
+gdb_test "x" "bclr/ne\tr3h,@0x1234(:16|)" \
+ "bclr/ne r3h,@0x1234:16"
+gdb_test "x" "bclr/ne\tr3h,@0x12345678(:32|)" \
+ "bclr/ne r3h,@0x12345678:32"
+gdb_test "x" "btst\t#0x7,r1h" \
+ "btst #0x7,r1h"
+gdb_test "x" "btst\t#0x7,@er1" \
+ "btst #0x7,@er1"
+gdb_test "x" "btst\t#0x7,@0x12(:8|)" \
+ "btst #0x7,@0x12:8"
+gdb_test "x" "btst\t#0x7,@0x1234(:16|)" \
+ "btst #0x7,@0x1234:16"
+gdb_test "x" "btst\t#0x7,@0x12345678(:32|)" \
+ "btst #0x7,@0x12345678:32"
+gdb_test "x" "btst\tr3h,r1h" \
+ "btst r3h,r1h"
+gdb_test "x" "btst\tr3h,@er1" \
+ "btst r3h,@er1"
+gdb_test "x" "btst\tr3h,@0x12(:8|)" \
+ "btst r3h,@0x12:8"
+gdb_test "x" "btst\tr3h,@0x1234(:16|)" \
+ "btst r3h,@0x1234:16"
+gdb_test "x" "btst\tr3h,@0x12345678(:32|)" \
+ "btst r3h,@0x12345678:32"
+gdb_test "x" "bor\t#0x7,r1h" \
+ "bor #0x7,r1h"
+gdb_test "x" "bor\t#0x7,@er1" \
+ "bor #0x7,@er1"
+gdb_test "x" "bor\t#0x7,@0x12(:8|)" \
+ "bor #0x7,@0x12:8"
+gdb_test "x" "bor\t#0x7,@0x1234(:16|)" \
+ "bor #0x7,@0x1234:16"
+gdb_test "x" "bor\t#0x7,@0x12345678(:32|)" \
+ "bor #0x7,@0x12345678:32"
+gdb_test "x" "bior\t#0x7,r1h" \
+ "bior #0x7,r1h"
+gdb_test "x" "bior\t#0x7,@er1" \
+ "bior #0x7,@er1"
+gdb_test "x" "bior\t#0x7,@0x12(:8|)" \
+ "bior #0x7,@0x12:8"
+gdb_test "x" "bior\t#0x7,@0x1234(:16|)" \
+ "bior #0x7,@0x1234:16"
+gdb_test "x" "bior\t#0x7,@0x12345678(:32|)" \
+ "bior #0x7,@0x12345678:32"
+gdb_test "x" "bxor\t#0x7,r1h" \
+ "bxor #0x7,r1h"
+gdb_test "x" "bxor\t#0x7,@er1" \
+ "bxor #0x7,@er1"
+gdb_test "x" "bxor\t#0x7,@0x12(:8|)" \
+ "bxor #0x7,@0x12:8"
+gdb_test "x" "bxor\t#0x7,@0x1234(:16|)" \
+ "bxor #0x7,@0x1234:16"
+gdb_test "x" "bxor\t#0x7,@0x12345678(:32|)" \
+ "bxor #0x7,@0x12345678:32"
+gdb_test "x" "bixor\t#0x7,r1h" \
+ "bixor #0x7,r1h"
+gdb_test "x" "bixor\t#0x7,@er1" \
+ "bixor #0x7,@er1"
+gdb_test "x" "bixor\t#0x7,@0x12(:8|)" \
+ "bixor #0x7,@0x12:8"
+gdb_test "x" "bixor\t#0x7,@0x1234(:16|)" \
+ "bixor #0x7,@0x1234:16"
+gdb_test "x" "bixor\t#0x7,@0x12345678(:32|)" \
+ "bixor #0x7,@0x12345678:32"
+gdb_test "x" "band\t#0x7,r1h" \
+ "band #0x7,r1h"
+gdb_test "x" "band\t#0x7,@er1" \
+ "band #0x7,@er1"
+gdb_test "x" "band\t#0x7,@0x12(:8|)" \
+ "band #0x7,@0x12:8"
+gdb_test "x" "band\t#0x7,@0x1234(:16|)" \
+ "band #0x7,@0x1234:16"
+gdb_test "x" "band\t#0x7,@0x12345678(:32|)" \
+ "band #0x7,@0x12345678:32"
+gdb_test "x" "biand\t#0x7,r1h" \
+ "biand #0x7,r1h"
+gdb_test "x" "biand\t#0x7,@er1" \
+ "biand #0x7,@er1"
+gdb_test "x" "biand\t#0x7,@0x12(:8|)" \
+ "biand #0x7,@0x12:8"
+gdb_test "x" "biand\t#0x7,@0x1234(:16|)" \
+ "biand #0x7,@0x1234:16"
+gdb_test "x" "biand\t#0x7,@0x12345678(:32|)" \
+ "biand #0x7,@0x12345678:32"
+gdb_test "x" "bld\t#0x7,r1h" \
+ "bld #0x7,r1h"
+gdb_test "x" "bld\t#0x7,@er1" \
+ "bld #0x7,@er1"
+gdb_test "x" "bld\t#0x7,@0x12(:8|)" \
+ "bld #0x7,@0x12:8"
+gdb_test "x" "bld\t#0x7,@0x1234(:16|)" \
+ "bld #0x7,@0x1234:16"
+gdb_test "x" "bld\t#0x7,@0x12345678(:32|)" \
+ "bld #0x7,@0x12345678:32"
+gdb_test "x" "bild\t#0x7,r1h" \
+ "bild #0x7,r1h"
+gdb_test "x" "bild\t#0x7,@er1" \
+ "bild #0x7,@er1"
+gdb_test "x" "bild\t#0x7,@0x12(:8|)" \
+ "bild #0x7,@0x12:8"
+gdb_test "x" "bild\t#0x7,@0x1234(:16|)" \
+ "bild #0x7,@0x1234:16"
+gdb_test "x" "bild\t#0x7,@0x12345678(:32|)" \
+ "bild #0x7,@0x12345678:32"
+gdb_test "x" "bst\t#0x7,r1h" \
+ "bst #0x7,r1h"
+gdb_test "x" "bst\t#0x7,@er1" \
+ "bst #0x7,@er1"
+gdb_test "x" "bst\t#0x7,@0x12(:8|)" \
+ "bst #0x7,@0x12:8"
+gdb_test "x" "bst\t#0x7,@0x1234(:16|)" \
+ "bst #0x7,@0x1234:16"
+gdb_test "x" "bst\t#0x7,@0x12345678(:32|)" \
+ "bst #0x7,@0x12345678:32"
+gdb_test "x" "bstz\t#0x7,@er1" \
+ "bstz #0x7,@er1"
+gdb_test "x" "bstz\t#0x7,@0x12(:8|)" \
+ "bstz #0x7,@0x12:8"
+gdb_test "x" "bstz\t#0x7,@0x1234(:16|)" \
+ "bstz #0x7,@0x1234:16"
+gdb_test "x" "bstz\t#0x7,@0x12345678(:32|)" \
+ "bstz #0x7,@0x12345678:32"
+gdb_test "x" "bist\t#0x7,r1h" \
+ "bist #0x7,r1h"
+gdb_test "x" "bist\t#0x7,@er1" \
+ "bist #0x7,@er1"
+gdb_test "x" "bist\t#0x7,@0x12(:8|)" \
+ "bist #0x7,@0x12:8"
+gdb_test "x" "bist\t#0x7,@0x1234(:16|)" \
+ "bist #0x7,@0x1234:16"
+gdb_test "x" "bist\t#0x7,@0x12345678(:32|)" \
+ "bist #0x7,@0x12345678:32"
+gdb_test "x" "bistz\t#0x7,@er1" \
+ "bistz #0x7,@er1"
+gdb_test "x" "bistz\t#0x7,@0x12(:8|)" \
+ "bistz #0x7,@0x12:8"
+gdb_test "x" "bistz\t#0x7,@0x1234(:16|)" \
+ "bistz #0x7,@0x1234:16"
+gdb_test "x" "bistz\t#0x7,@0x12345678(:32|)" \
+ "bistz #0x7,@0x12345678:32"
+gdb_test "x" "bfld\t#0x34(:8|),@er1,r3h" \
+ "bfld #0x34:8,@er1,r3h"
+gdb_test "x" "bfld\t#0x34(:8|),@0x12(:8|),r3h" \
+ "bfld #0x34:8,@0x12:8,r3h"
+gdb_test "x" "bfld\t#0x34(:8|),@0x1234(:16|),r3h" \
+ "bfld #0x34:8,@0x1234:16,r3h"
+gdb_test "x" "bfld\t#0x34(:8|),@0x12345678(:32|),r3h" \
+ "bfld #0x34:8,@0x12345678:32,r3h"
+gdb_test "x" "bfst\tr3h,#0x34(:8|),@er1" \
+ "bfst r3h,#0x34:8,@er1"
+gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x12(:8|)" \
+ "bfst r3h,#0x34:8,@0x12:8"
+gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x1234(:16|)" \
+ "bfst r3h,#0x34:8,@0x1234:16"
+gdb_test "x" "bfst\tr3h,#0x34(:8|),@0x12345678(:32|)" \
+ "bfst r3h,#0x34:8,@0x12345678:32"
diff --git a/gdb/testsuite/gdb.disasm/t12_bit.s b/gdb/testsuite/gdb.disasm/t12_bit.s
new file mode 100644
index 0000000..cd22f2f
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t12_bit.s
@@ -0,0 +1,176 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;bit
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .global _start
+_start:
+ bset #0x7,r1h ;7071
+ bset #0x7,@er1 ;7d107070
+ bset #0x7,@0xffffff12:8 ;7f127070
+ bset #0x7,@0x1234:16 ;6a1812347070
+ bset #0x7,@0x12345678:32 ;6a38123456787070
+
+ bset r3h,r1h ;6031
+ bset r3h,@er1 ;7d106030
+ bset r3h,@0xffffff12:8 ;7f126030
+ bset r3h,@0x1234:16 ;6a1812346030
+ bset r3h,@0x12345678:32 ;6a38123456786030
+
+ bset/eq #0x7,@er1 ;7d107077
+ bset/eq #0x7,@0xffffff12:8 ;7f127077
+ bset/eq #0x7,@0x1234:16 ;6a1812347077
+ bset/eq #0x7,@0x12345678:32 ;6a38123456787077
+
+ bset/eq r3h,@er1 ;7d106037
+ bset/eq r3h,@0xffffff12:8 ;7f126037
+ bset/eq r3h,@0x1234:16 ;6a1812346037
+ bset/eq r3h,@0x12345678:32 ;6a38123456786037
+
+ bset/ne #0x7,@er1 ;7d107076
+ bset/ne #0x7,@0xffffff12:8 ;7f127076
+ bset/ne #0x7,@0x1234:16 ;6a1812347076
+ bset/ne #0x7,@0x12345678:32 ;6a38123456787076
+
+ bset/ne r3h,@er1 ;7d106036
+ bset/ne r3h,@0xffffff12:8 ;7f126036
+ bset/ne r3h,@0x1234:16 ;6a1812346036
+ bset/ne r3h,@0x12345678:32 ;6a38123456786036
+
+ bnot #0x7,r1h ;7171
+ bnot #0x7,@er1 ;7d107170
+ bnot #0x7,@0xffffff12:8 ;7f127170
+ bnot #0x7,@0x1234:16 ;6a1812347170
+ bnot #0x7,@0x12345678:32 ;6a38123456787170
+
+ bnot r3h,r1h ;6131
+ bnot r3h,@er1 ;7d106130
+ bnot r3h,@0xffffff12:8 ;7f126130
+ bnot r3h,@0x1234:16 ;6a1812346130
+ bnot r3h,@0x12345678:32 ;6a38123456786130
+
+ bclr #0x7,r1h ;7271
+ bclr #0x7,@er1 ;7d107270
+ bclr #0x7,@0xffffff12:8 ;7f127270
+ bclr #0x7,@0x1234:16 ;6a1812347270
+ bclr #0x7,@0x12345678:32 ;6a38123456787270
+
+ bclr r3h,r1h ;6231
+ bclr r3h,@er1 ;7d106230
+ bclr r3h,@0xffffff12:8 ;7f126230
+ bclr r3h,@0x1234:16 ;6a1812346230
+ bclr r3h,@0x12345678:32 ;6a38123456786230
+
+ bclr/eq #0x7,@er1 ;7d107277
+ bclr/eq #0x7,@0xffffff12:8 ;7f127277
+ bclr/eq #0x7,@0x1234:16 ;6a1812347277
+ bclr/eq #0x7,@0x12345678:32 ;6a38123456787277
+
+ bclr/eq r3h,@er1 ;7d106237
+ bclr/eq r3h,@0xffffff12:8 ;7f126237
+ bclr/eq r3h,@0x1234:16 ;6a1812346237
+ bclr/eq r3h,@0x12345678:32 ;6a38123456786237
+
+ bclr/ne #0x7,@er1 ;7d107276
+ bclr/ne #0x7,@0xffffff12:8 ;7f127276
+ bclr/ne #0x7,@0x1234:16 ;6a1812347276
+ bclr/ne #0x7,@0x12345678:32 ;6a38123456787276
+
+ bclr/ne r3h,@er1 ;7d106236
+ bclr/ne r3h,@0xffffff12:8 ;7f126236
+ bclr/ne r3h,@0x1234:16 ;6a1812346236
+ bclr/ne r3h,@0x12345678:32 ;6a38123456786236
+
+ btst #0x7,r1h ;7371
+ btst #0x7,@er1 ;7c107370
+ btst #0x7,@0xffffff12:8 ;7e127370
+ btst #0x7,@0x1234:16 ;6a1012347370
+ btst #0x7,@0x12345678:32 ;6a30123456787370
+
+ btst r3h,r1h ;6331
+ btst r3h,@er1 ;7c106330
+ btst r3h,@0xffffff12:8 ;7e126330
+ btst r3h,@0x1234:16 ;6a1012346330
+ btst r3h,@0x12345678:32 ;6a30123456786330
+
+ bor #0x7,r1h ;7471
+ bor #0x7,@er1 ;7c107470
+ bor #0x7,@0xffffff12:8 ;7e127470
+ bor #0x7,@0x1234:16 ;6a1012347470
+ bor #0x7,@0x12345678:32 ;6a30123456787470
+
+ bior #0x7,r1h ;74f1
+ bior #0x7,@er1 ;7c1074f0
+ bior #0x7,@0xffffff12:8 ;7e1274f0
+ bior #0x7,@0x1234:16 ;6a10123474f0
+ bior #0x7,@0x12345678:32 ;6a301234567874f0
+
+ bxor #0x7,r1h ;7571
+ bxor #0x7,@er1 ;7c107570
+ bxor #0x7,@0xffffff12:8 ;7e127570
+ bxor #0x7,@0x1234:16 ;6a1012347570
+ bxor #0x7,@0x12345678:32 ;6a30123456787570
+
+ bixor #0x7,r1h ;75f1
+ bixor #0x7,@er1 ;7c1075f0
+ bixor #0x7,@0xffffff12:8 ;7e1275f0
+ bixor #0x7,@0x1234:16 ;6a10123475f0
+ bixor #0x7,@0x12345678:32 ;6a301234567875f0
+
+ band #0x7,r1h ;7671
+ band #0x7,@er1 ;7c107670
+ band #0x7,@0xffffff12:8 ;7e127670
+ band #0x7,@0x1234:16 ;6a1012347670
+ band #0x7,@0x12345678:32 ;6a30123456787670
+
+ biand #0x7,r1h ;76f1
+ biand #0x7,@er1 ;7c1076f0
+ biand #0x7,@0xffffff12:8 ;7e1276f0
+ biand #0x7,@0x1234:16 ;6a10123476f0
+ biand #0x7,@0x12345678:32 ;6a301234567876f0
+
+ bld #0x7,r1h ;7771
+ bld #0x7,@er1 ;7c107770
+ bld #0x7,@0xffffff12:8 ;7e127770
+ bld #0x7,@0x1234:16 ;6a1012347770
+ bld #0x7,@0x12345678:32 ;6a30123456787770
+
+ bild #0x7,r1h ;77f1
+ bild #0x7,@er1 ;7c1077f0
+ bild #0x7,@0xffffff12:8 ;7e1277f0
+ bild #0x7,@0x1234:16 ;6a10123477f0
+ bild #0x7,@0x12345678:32 ;6a301234567877f0
+
+ bst #0x7,r1h ;6771
+ bst #0x7,@er1 ;7d106770
+ bst #0x7,@0xffffff12:8 ;7f126770
+ bst #0x7,@0x1234:16 ;6a1812346770
+ bst #0x7,@0x12345678:32 ;6a38123456786770
+
+ bstz #0x7,@er1 ;7d106777
+ bstz #0x7,@0xffffff12:8 ;7f126777
+ bstz #0x7,@0x1234:16 ;6a1812346777
+ bstz #0x7,@0x12345678:32 ;6a38123456786777
+
+ bist #0x7,r1h ;67f1
+ bist #0x7,@er1 ;7d1067f0
+ bist #0x7,@0xffffff12:8 ;7f1267f0
+ bist #0x7,@0x1234:16 ;6a18123467f0
+ bist #0x7,@0x12345678:32 ;6a381234567867f0
+
+ bistz #0x7,@er1 ;7d1067f7
+ bistz #0x7,@0xffffff12:8 ;7f1267f7
+ bistz #0x7,@0x1234:16 ;6a18123467f7
+ bistz #0x7,@0x12345678:32 ;6a381234567867f7
+
+ bfld #0x34:8,@er1,r3h ;7c10f334
+ bfld #0x34:8,@0xffffff12:8,r3h ;7e12f334
+ bfld #0x34:8,@0x1234:16,r3h ;6a101234f334
+ bfld #0x34:8,@0x12345678:32,r3h ;6a3012345678f334
+
+ bfst r3h,#0x34:8,@er1 ;7d10f334
+ bfst r3h,#0x34:8,@0xffffff12:8 ;7f12f334
+ bfst r3h,#0x34:8,@0x1234:16 ;6a181234f334
+ bfst r3h,#0x34:8,@0x12345678:32 ;6a3812345678f334
+
+ .end
diff --git a/gdb/testsuite/gdb.disasm/t13_otr.exp b/gdb/testsuite/gdb.disasm/t13_otr.exp
new file mode 100644
index 0000000..5c01842
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t13_otr.exp
@@ -0,0 +1,306 @@
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# This file was written by Michael Snyder (msnyder@redhat.com)
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+if ![istarget "h8300*-*-*"] {
+ verbose "Tests ignored for all but h8300s based targets."
+ return
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "t13_otr"
+set srcfile ${srcdir}/${subdir}/${testfile}.s
+set objfile ${objdir}/${subdir}/${testfile}.o
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+set asm-flags "";
+set link-flags "-m h8300sxelf";
+
+
+if {[target_assemble $srcfile $objfile "${asm-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase assembly failed, so all tests in this file will automatically fail."
+}
+
+if {[target_link $objfile $binfile "${link-flags}"] != ""} then {
+ gdb_suppress_entire_file "Testcase link failed, so all tests in this file will automatically fail."
+}
+
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load $binfile
+
+global hex
+
+gdb_test "x /i _start" "bra\t.\\+18 \\($hex\\)" \
+ "bra .+18"
+gdb_test "x" "brn\t.\\+18 \\($hex\\)" \
+ "brn .+18"
+gdb_test "x" "bhi\t.\\+18 \\($hex\\)" \
+ "bhi .+18"
+gdb_test "x" "bls\t.\\+18 \\($hex\\)" \
+ "bls .+18"
+gdb_test "x" "bcc\t.\\+18 \\($hex\\)" \
+ "bcc .+18"
+gdb_test "x" "bcs\t.\\+18 \\($hex\\)" \
+ "bcs .+18"
+gdb_test "x" "bne\t.\\+18 \\($hex\\)" \
+ "bne .+18"
+gdb_test "x" "beq\t.\\+18 \\($hex\\)" \
+ "beq .+18"
+gdb_test "x" "bvc\t.\\+18 \\($hex\\)" \
+ "bvc .+18"
+gdb_test "x" "bvs\t.\\+18 \\($hex\\)" \
+ "bvs .+18"
+gdb_test "x" "bpl\t.\\+18 \\($hex\\)" \
+ "bpl .+18"
+gdb_test "x" "bmi\t.\\+18 \\($hex\\)" \
+ "bmi .+18"
+gdb_test "x" "bge\t.\\+18 \\($hex\\)" \
+ "bge .+18"
+gdb_test "x" "blt\t.\\+18 \\($hex\\)" \
+ "blt .+18"
+gdb_test "x" "bgt\t.\\+18 \\($hex\\)" \
+ "bgt .+18"
+gdb_test "x" "ble\t.\\+18 \\($hex\\)" \
+ "ble .+18"
+gdb_test "x" "bra\t.\\+4660 \\($hex\\)" \
+ "bra .+4660"
+gdb_test "x" "brn\t.\\+4660 \\($hex\\)" \
+ "brn .+4660"
+gdb_test "x" "bhi\t.\\+4660 \\($hex\\)" \
+ "bhi .+4660"
+gdb_test "x" "bls\t.\\+4660 \\($hex\\)" \
+ "bls .+4660"
+gdb_test "x" "bcc\t.\\+4660 \\($hex\\)" \
+ "bcc .+4660"
+gdb_test "x" "bcs\t.\\+4660 \\($hex\\)" \
+ "bcs .+4660"
+gdb_test "x" "bne\t.\\+4660 \\($hex\\)" \
+ "bne .+4660"
+gdb_test "x" "beq\t.\\+4660 \\($hex\\)" \
+ "beq .+4660"
+gdb_test "x" "bvc\t.\\+4660 \\($hex\\)" \
+ "bvc .+4660"
+gdb_test "x" "bvs\t.\\+4660 \\($hex\\)" \
+ "bvs .+4660"
+gdb_test "x" "bpl\t.\\+4660 \\($hex\\)" \
+ "bpl .+4660"
+gdb_test "x" "bmi\t.\\+4660 \\($hex\\)" \
+ "bmi .+4660"
+gdb_test "x" "bge\t.\\+4660 \\($hex\\)" \
+ "bge .+4660"
+gdb_test "x" "blt\t.\\+4660 \\($hex\\)" \
+ "blt .+4660"
+gdb_test "x" "bgt\t.\\+4660 \\($hex\\)" \
+ "bgt .+4660"
+gdb_test "x" "ble\t.\\+4660 \\($hex\\)" \
+ "ble .+4660"
+gdb_test "x" "bra/s\t.\\+18 \\($hex\\)" \
+ "bra/s .+18"
+gdb_test "x" "nop\[ \t\]*" \
+ "nop"
+gdb_test "x" "bra/bc\t#0x7,@er2,.\\+18 \\($hex\\)" \
+ "bra/bc #0x7,@er2,.+18"
+gdb_test "x" "bra/bc\t#0x7,@0x9a(:8|),.\\+18 \\($hex\\)" \
+ "bra/bc #0x7,@0x9a:8,.+18"
+gdb_test "x" "bra/bc\t#0x7,@0x1234(:16|),.\\+18 \\($hex\\)" \
+ "bra/bc #0x7,@0x1234:16,.+18"
+gdb_test "x" "bra/bc\t#0x7,@0x12345678(:32|),.\\+18 \\($hex\\)" \
+ "bra/bc #0x7,@0x12345678:32,.+18"
+gdb_test "x" "bra/bc\t#0x7,@er2,.\\+4660 \\($hex\\)" \
+ "bra/bc #0x7,@er2,.+4660"
+gdb_test "x" "bra/bc\t#0x7,@0x12(:8|),.\\+4660 \\($hex\\)" \
+ "bra/bc #0x7,@0x12:8,.+4660"
+gdb_test "x" "bra/bc\t#0x7,@0x9abc(:16|),.\\+4660 \\($hex\\)" \
+ "bra/bc #0x7,@0x9abc:16,.+4660"
+gdb_test "x" "bra/bc\t#0x7,@0x12345678(:32|),.\\+4660 \\($hex\\)" \
+ "bra/bc #0x7,@0x12345678:32,.+4660"
+gdb_test "x" "bra/bs\t#0x7,@er2,.\\+18 \\($hex\\)" \
+ "bra/bs #0x7,@er2,.+18"
+gdb_test "x" "bra/bs\t#0x7,@0x9a(:8|),.\\+18 \\($hex\\)" \
+ "bra/bs #0x7,@0x9a:8,.+18"
+gdb_test "x" "bra/bs\t#0x7,@0x1234(:16|),.\\+18 \\($hex\\)" \
+ "bra/bs #0x7,@0x1234:16,.+18"
+gdb_test "x" "bra/bs\t#0x7,@0x12345678(:32|),.\\+18 \\($hex\\)" \
+ "bra/bs #0x7,@0x12345678:32,.+18"
+gdb_test "x" "bra/bs\t#0x7,@er2,.\\+4660 \\($hex\\)" \
+ "bra/bs #0x7,@er2,.+4660"
+gdb_test "x" "bra/bs\t#0x7,@0x12(:8|),.\\+4660 \\($hex\\)" \
+ "bra/bs #0x7,@0x12:8,.+4660"
+gdb_test "x" "bra/bs\t#0x7,@0x9abc(:16|),.\\+4660 \\($hex\\)" \
+ "bra/bs #0x7,@0x9abc:16,.+4660"
+gdb_test "x" "bra/bs\t#0x7,@0x12345678(:32|),.\\+4660 \\($hex\\)" \
+ "bra/bs #0x7,@0x12345678:32,.+4660"
+gdb_test "x" "bsr/bc\t#0x7,@er2,.\\+4660 \\($hex\\)" \
+ "bsr/bc #0x7,@er2,.+4660"
+gdb_test "x" "bsr/bc\t#0x7,@0x12(:8|),.\\+4660 \\($hex\\)" \
+ "bsr/bc #0x7,@0x12:8,.+4660"
+gdb_test "x" "bsr/bc\t#0x7,@0x9abc(:16|),.\\+4660 \\($hex\\)" \
+ "bsr/bc #0x7,@0x9abc:16,.+4660"
+gdb_test "x" "bsr/bc\t#0x7,@0x12345678(:32|),.\\+4660 \\($hex\\)" \
+ "bsr/bc #0x7,@0x12345678:32,.+4660"
+gdb_test "x" "bsr/bs\t#0x7,@er2,.\\+4660 \\($hex\\)" \
+ "bsr/bs #0x7,@er2,.+4660"
+gdb_test "x" "bsr/bs\t#0x7,@0x12(:8|),.\\+4660 \\($hex\\)" \
+ "bsr/bs #0x7,@0x12:8,.+4660"
+gdb_test "x" "bsr/bs\t#0x7,@0x9abc(:16|),.\\+4660 \\($hex\\)" \
+ "bsr/bs #0x7,@0x9abc:16,.+4660"
+gdb_test "x" "bsr/bs\t#0x7,@0x12345678(:32|),.\\+4660 \\($hex\\)" \
+ "bsr/bs #0x7,@0x12345678:32,.+4660"
+gdb_test "x" "bra\tr2l.b" \
+ "bra r2l.b"
+gdb_test "x" "bra\tr2.w" \
+ "bra r2.w"
+gdb_test "x" "bra\ter2(.l|)" \
+ "bra er2.l"
+gdb_test "x" "bsr\t.\\+18 \\($hex\\)" \
+ "bsr .+18"
+gdb_test "x" "bsr\t.\\+4660 \\($hex\\)" \
+ "bsr .+4660"
+gdb_test "x" "bsr\tr2l.b" \
+ "bsr r2l.b"
+gdb_test "x" "bsr\tr2.w" \
+ "bsr r2.w"
+gdb_test "x" "bsr\ter2(.l|)" \
+ "bsr er2.l"
+gdb_test "x" "jmp\t@er2" \
+ "jmp @er2"
+gdb_test "x" "jmp\t@0x123456(:24|)" \
+ "jmp @0x123456:24"
+gdb_test "x" "jmp\t@0x12345678(:32|)" \
+ "jmp @0x12345678:32"
+gdb_test "x" "jmp\t@@18 \\(0x12\\)" \
+ "jmp @@18 (0x12)"
+gdb_test "x" "jmp\t@@564 \\(0x234\\)" \
+ "jmp @@564 (0x234)"
+gdb_test "x" "jsr\t@er2" \
+ "jsr @er2"
+gdb_test "x" "jsr\t@0x123456(:24|)" \
+ "jsr @0x123456:24"
+gdb_test "x" "jsr\t@0x12345678(:32|)" \
+ "jsr @0x12345678:32"
+gdb_test "x" "jsr\t@@18 \\(0x12\\)" \
+ "jsr @@18 (0x12)"
+gdb_test "x" "jsr\t@@564 \\(0x234\\)" \
+ "jsr @@564 (0x234)"
+gdb_test "x" "rts\[ \t\]*" \
+ "rts"
+gdb_test "x" "rts/l\ter3" \
+ "rts/l er3"
+gdb_test "x" "rts/l\ter1-er2" \
+ "rts/l er1-er2"
+gdb_test "x" "rts/l\ter2-er4" \
+ "rts/l er2-er4"
+gdb_test "x" "rts/l\ter3-er6" \
+ "rts/l er3-er6"
+gdb_test "x" "trapa\t#0x3" \
+ "trapa #0x3"
+gdb_test "x" "rte\[ \t\]*" \
+ "rte"
+gdb_test "x" "rte/l\ter3" \
+ "rte/l er3"
+gdb_test "x" "rte/l\ter1-er2" \
+ "rte/l er1-er2"
+gdb_test "x" "rte/l\ter2-er4" \
+ "rte/l er2-er4"
+gdb_test "x" "rte/l\ter3-er6" \
+ "rte/l er3-er6"
+gdb_test "x" "ldc(.b|)\t#0x12(:8|),ccr" \
+ "ldc.b #0x12:8,ccr"
+gdb_test "x" "ldc(.b|)\tr3h,ccr" \
+ "ldc.b r3h,ccr"
+gdb_test "x" "ldc(.w|)\t@er3,ccr" \
+ "ldc.w @er3,ccr"
+gdb_test "x" "ldc(.w|)\t@er3\\+,ccr" \
+ "ldc.w @er3+,ccr"
+gdb_test "x" "ldc(.w|)\t@\\(0x1234(:16|),er3\\),ccr" \
+ "ldc.w @(0x1234:16,er3),ccr"
+gdb_test "x" "ldc(.w|)\t@\\(0x12345678(:32|),er3\\),ccr" \
+ "ldc.w @(0x12345678:32,er3),ccr"
+gdb_test "x" "ldc(.w|)\t@0x1234(:16|),ccr" \
+ "ldc.w @0x1234:16,ccr"
+gdb_test "x" "ldc(.w|)\t@0x12345678(:32|),ccr" \
+ "ldc.w @0x12345678:32,ccr"
+gdb_test "x" "ldc(.b|)\t#0x12(:8|),exr" \
+ "ldc.b #0x12:8,exr"
+gdb_test "x" "ldc(.b|)\tr3h,exr" \
+ "ldc.b r3h,exr"
+gdb_test "x" "ldc(.w|)\t@er3,exr" \
+ "ldc.w @er3,exr"
+gdb_test "x" "ldc(.w|)\t@er3\\+,exr" \
+ "ldc.w @er3+,exr"
+gdb_test "x" "ldc(.w|)\t@\\(0x1234(:16|),er3\\),exr" \
+ "ldc.w @(0x1234:16,er3),exr"
+gdb_test "x" "ldc(.w|)\t@\\(0x12345678(:32|),er3\\),exr" \
+ "ldc.w @(0x12345678:32,er3),exr"
+gdb_test "x" "ldc(.w|)\t@0x1234(:16|),exr" \
+ "ldc.w @0x1234:16,exr"
+gdb_test "x" "ldc(.w|)\t@0x12345678(:32|),exr" \
+ "ldc.w @0x12345678:32,exr"
+gdb_test "x" "stc(.b|)\tccr,r1h" \
+ "stc.b ccr,r1h"
+gdb_test "x" "stc(.w|)\tccr,@er1" \
+ "stc.w ccr,@er1"
+gdb_test "x" "stc(.w|)\tccr,@-er1" \
+ "stc.w ccr,@-er1"
+gdb_test "x" "stc(.w|)\tccr,@\\(0x1234(:16|),er1\\)" \
+ "stc.w ccr,@(0x1234:16,er1)"
+gdb_test "x" "stc(.w|)\tccr,@\\(0x12345678(:32|),er1\\)" \
+ "stc.w ccr,@(0x12345678:32,er1)"
+gdb_test "x" "stc(.w|)\tccr,@0x1234(:16|)" \
+ "stc.w ccr,@0x1234:16"
+gdb_test "x" "stc(.w|)\tccr,@0x12345678(:32|)" \
+ "stc.w ccr,@0x12345678:32"
+gdb_test "x" "stc(.b|)\texr,r1h" \
+ "stc.b exr,r1h"
+gdb_test "x" "stc(.w|)\texr,@er1" \
+ "stc.w exr,@er1"
+gdb_test "x" "stc(.w|)\texr,@-er1" \
+ "stc.w exr,@-er1"
+gdb_test "x" "stc(.w|)\texr,@\\(0x1234(:16|),er1\\)" \
+ "stc.w exr,@(0x1234:16,er1)"
+gdb_test "x" "stc(.w|)\texr,@\\(0x12345678(:32|),er1\\)" \
+ "stc.w exr,@(0x12345678:32,er1)"
+gdb_test "x" "stc(.w|)\texr,@0x1234(:16|)" \
+ "stc.w exr,@0x1234:16"
+gdb_test "x" "stc(.w|)\texr,@0x12345678(:32|)" \
+ "stc.w exr,@0x12345678:32"
+gdb_test "x" "orc(.b|)\t#0x12(:8|),ccr" \
+ "orc.b #0x12:8,ccr"
+gdb_test "x" "orc(.b|)\t#0x12(:8|),exr" \
+ "orc.b #0x12:8,exr"
+gdb_test "x" "xorc(.b|)\t#0x12(:8|),ccr" \
+ "xorc.b #0x12:8,ccr"
+gdb_test "x" "xorc(.b|)\t#0x12(:8|),exr" \
+ "xorc.b #0x12:8,exr"
+gdb_test "x" "andc(.b|)\t#0x12(:8|),ccr" \
+ "andc.b #0x12:8,ccr"
+gdb_test "x" "andc(.b|)\t#0x12(:8|),exr" \
+ "andc.b #0x12:8,exr"
+gdb_test "x" "sleep\[ \t\]*" \
+ "sleep"
+gdb_test "x" "nop\[ \t\]*" \
+ "nop"
diff --git a/gdb/testsuite/gdb.disasm/t13_otr.s b/gdb/testsuite/gdb.disasm/t13_otr.s
new file mode 100644
index 0000000..6e0f887
--- /dev/null
+++ b/gdb/testsuite/gdb.disasm/t13_otr.s
@@ -0,0 +1,159 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;others
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ .h8300sx
+ .text
+ .org 0x12
+lab_12:
+ .org 0x1234
+ .global _start
+_start:
+ bra 0x12+.+2 ;4012
+ brn 0x12+.+2 ;4112
+ bhi 0x12+.+2 ;4212
+ bls 0x12+.+2 ;4312
+ bcc 0x12+.+2 ;4412
+ bcs 0x12+.+2 ;4512
+ bne 0x12+.+2 ;4612
+ beq 0x12+.+2 ;4712
+ bvc 0x12+.+2 ;4812
+ bvs 0x12+.+2 ;4912
+ bpl 0x12+.+2 ;4a12
+ bmi 0x12+.+2 ;4b12
+ bge 0x12+.+2 ;4c12
+ blt 0x12+.+2 ;4d12
+ bgt 0x12+.+2 ;4e12
+ ble 0x12+.+2 ;4f12
+
+ bra 0x1234+.+4 ;58001234
+ brn 0x1234+.+4 ;58101234
+ bhi 0x1234+.+4 ;58201234
+ bls 0x1234+.+4 ;58301234
+ bcc 0x1234+.+4 ;58401234
+ bcs 0x1234+.+4 ;58501234
+ bne 0x1234+.+4 ;58601234
+ beq 0x1234+.+4 ;58701234
+ bvc 0x1234+.+4 ;58801234
+ bvs 0x1234+.+4 ;58901234
+ bpl 0x1234+.+4 ;58a01234
+ bmi 0x1234+.+4 ;58b01234
+ bge 0x1234+.+4 ;58c01234
+ blt 0x1234+.+4 ;58d01234
+ bgt 0x1234+.+4 ;58e01234
+ ble 0x1234+.+4 ;58f01234
+
+ bra/s 0x12+.+2 ;4013
+ nop ;0000
+
+ bra/bc #0x7,@er2,0x12+.+4 ;7c204712
+ bra/bc #0x7,@0xffffff9a:8,0x12+.+4 ;7e9a4712
+ bra/bc #0x7,@0x1234:16,0x12+.+6 ;6a1012344712
+ bra/bc #0x7,@0x12345678:32,0x12+.+8 ;6a30123456784712
+ bra/bc #0x7,@er2,0x1234+.+6 ;7c2058701234
+ bra/bc #0x7,@0xffffff12:8,0x1234+.+6 ;7e1258701234
+ bra/bc #0x7,@0xffff9abc:16,0x1234+.+8 ;6a109abc58701234
+ bra/bc #0x7,@0x12345678:32,0x1234+.+0xa ;6a301234567858701234
+
+ bra/bs #0x7,@er2,0x12+.+4 ;7c204f12
+ bra/bs #0x7,@0xffffff9a:8,0x12+.+4 ;7e9a4f12
+ bra/bs #0x7,@0x1234:16,0x12+.+6 ;6a1012344f12
+ bra/bs #0x7,@0x12345678:32,0x12+.+8 ;6a30123456784f12
+ bra/bs #0x7,@er2,0x1234+.+6 ;7c2058f01234
+ bra/bs #0x7,@0xffffff12:8,0x1234+.+6 ;7e1258f01234
+ bra/bs #0x7,@0xffff9abc:16,0x1234+.+8 ;6a109abc58f01234
+ bra/bs #0x7,@0x12345678:32,0x1234+.+0xa ;6a301234567858f01234
+
+ bsr/bc #0x7,@er2,0x1234+.+6 ;7c205c701234
+ bsr/bc #0x7,@0xffffff12:8,0x1234+.+6 ;7e125c701234
+ bsr/bc #0x7,@0xffff9abc:16,0x1234+.+8 ;6a109abc5c701234
+ bsr/bc #0x7,@0x12345678:32,0x1234+.+0xa ;6a30123456785c701234
+
+ bsr/bs #0x7,@er2,0x1234+.+6 ;7c205cf01234
+ bsr/bs #0x7,@0xffffff12:8,0x1234+.+6 ;7e125cf01234
+ bsr/bs #0x7,@0xffff9abc:16,0x1234+.+8 ;6a109abc5cf01234
+ bsr/bs #0x7,@0x12345678:32,0x1234+.+0xa ;6a30123456785cf01234
+
+ bra r2l.b ;5925
+ bra r2.w ;5926
+ bra er2.l ;5927
+
+ bsr 0x12+.+2 ;5512
+ bsr 0x1234+.+4 ;5c001234
+ bsr r2l.b ;5d25
+ bsr r2.w ;5d26
+ bsr er2.l ;5d27
+
+ jmp @er2 ;5920
+ jmp @0x123456:24 ;5a123456
+ jmp @0x12345678:32 ;590812345678
+ jmp @@0x12 ;5b12
+ jmp @@0x234 ;598d
+
+ jsr @er2 ;5d20
+ jsr @0x123456:24 ;5e123456
+ jsr @0x12345678:32 ;5d0812345678
+ jsr @@0x12 ;5f12
+ jsr @@0x234 ;5d8d
+
+ rts ;5470
+ rts/l er3 ;5403
+ rts/l er1-er2 ;5412
+ rts/l er2-er4 ;5424
+ rts/l er3-er6 ;5436
+
+ trapa #0x3 ;5730
+
+ rte ;5670
+ rte/l er3 ;5603
+ rte/l er1-er2 ;5612
+ rte/l er2-er4 ;5624
+ rte/l er3-er6 ;5636
+
+ ldc.b #0x12:8,ccr ;0712
+ ldc.b r3h,ccr ;0303
+ ldc.w @er3,ccr ;01406930
+ ldc.w @er3+,ccr ;01406d30
+ ldc.w @(0x1234:16,er3),ccr ;01406f301234
+ ldc.w @(0x12345678:32,er3),ccr ;014078306b2012345678
+ ldc.w @0x1234:16,ccr ;01406b001234
+ ldc.w @0x12345678:32,ccr ;01406b2012345678
+
+ ldc.b #0x12:8,exr ;01410712
+ ldc.b r3h,exr ;0313
+ ldc.w @er3,exr ;01416930
+ ldc.w @er3+,exr ;01416d30
+ ldc.w @(0x1234:16,er3),exr ;01416f301234
+ ldc.w @(0x12345678:32,er3),exr ;014178306b2012345678
+ ldc.w @0x1234:16,exr ;01416b001234
+ ldc.w @0x12345678:32,exr ;01416b2012345678
+
+ stc.b ccr,r1h ;0201
+ stc.w ccr,@er1 ;01406990
+ stc.w ccr,@-er1 ;01406d90
+ stc.w ccr,@(0x1234:16,er1) ;01406f901234
+ stc.w ccr,@(0x12345678:32,er1) ;014078106ba012345678
+ stc.w ccr,@0x1234:16 ;01406b801234
+ stc.w ccr,@0x12345678:32 ;01406ba012345678
+
+ stc.b exr,r1h ;0211
+ stc.w exr,@er1 ;01416990
+ stc.w exr,@-er1 ;01416d90
+ stc.w exr,@(0x1234:16,er1) ;01416f901234
+ stc.w exr,@(0x12345678:32,er1) ;014178106ba012345678
+ stc.w exr,@0x1234:16 ;01416b801234
+ stc.w exr,@0x12345678:32 ;01416ba012345678
+
+ orc.b #0x12:8,ccr ;0412
+ orc.b #0x12:8,exr ;01410412
+
+ xorc.b #0x12:8,ccr ;0512
+ xorc.b #0x12:8,exr ;01410512
+
+ andc.b #0x12:8,ccr ;0612
+ andc.b #0x12:8,exr ;01410612
+
+ sleep ;0180
+
+ nop ;0000
+
+ .end
diff --git a/gdb/testsuite/gdb.java/jmisc1.exp b/gdb/testsuite/gdb.java/jmisc1.exp
index eea559e..dd5af98 100644
--- a/gdb/testsuite/gdb.java/jmisc1.exp
+++ b/gdb/testsuite/gdb.java/jmisc1.exp
@@ -1,4 +1,4 @@
-# Copyright 2002 Free Software Foundation, Inc.
+# Copyright 2002, 2003 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -88,4 +88,30 @@ if ![set_lang_java] then {
-re ".*$gdb_prompt $" { fail "p *args" }
timeout { fail "p *args (timeout)" ; return }
}
+
+ # The idea of running to 'exit' is that 'exit' is in a different
+ # objfile from the rest of the program (provided that program is
+ # linked normally with a shared libc). That causes gdb to examine
+ # fresh objfiles. There is nothing important about 'exit'
+ # semantics; it could be any symbol that is in a shared library.
+ # -- chastain 2003-08-06
+
+ gdb_test "break exit" ".*Breakpoint $decimal at .*"
+ gdb_test_multiple "continue" "continue to exit" {
+ -re ".*Breakpoint $decimal, .*exit.*$gdb_prompt $" {
+ pass "continue to exit"
+ }
+ -re ".*internal-error: sect_index_text not initialized.*\\(y or n\\) " {
+ # gdb choked on the "anonymous objfile" (probably).
+ kfail "gdb/1322" "continue to exit"
+ # get back to the gdb prompt
+ gdb_test_multiple "no" "internal sync 1" {
+ -re ".*\\(y or n\\) " {
+ gdb_test_multiple "no" "internal sync 2" {
+ -re ".*$gdb_prompt $" { ; }
+ }
+ }
+ }
+ }
+ }
}
diff --git a/gdb/testsuite/gdb.mi/ChangeLog b/gdb/testsuite/gdb.mi/ChangeLog
index e4aec35..6f263c3 100644
--- a/gdb/testsuite/gdb.mi/ChangeLog
+++ b/gdb/testsuite/gdb.mi/ChangeLog
@@ -1,3 +1,14 @@
+2003-08-07 Andrew Cagney <cagney@redhat.com>
+
+ * mi2-basics.exp: Copy base MI .exp file, set MIFLAGS to -i=mi2.
+ * mi2-break.exp, mi2-cli.exp, mi2-console.exp: Ditto.
+ * mi2-disassemble.exp, mi2-eval.exp, mi2-file.exp: Ditto.
+ * mi2-hack-cli.exp, mi2-pthreads.exp, mi2-read-memory.exp: Ditto.
+ * mi2-regs.exp, mi2-return.exp, mi2-simplerun.exp: Ditto.
+ * mi2-stack.exp, mi2-stepi.exp, mi2-syn-frame.exp: Ditto.
+ * mi2-until.exp, mi2-var-block.exp, mi2-var-child.exp: Ditto.
+ * mi2-var-cmd.exp, mi2-var-display.exp, mi2-watch.exp: Ditto.
+
2003-05-03 J. Brobecker <brobecker@gnat.com>
From Thierry Schneider <tpschneider1@yahoo.com>:
diff --git a/gdb/testsuite/gdb.mi/mi-basics.exp b/gdb/testsuite/gdb.mi/mi-basics.exp
index 98ffe1d..9377baf 100644
--- a/gdb/testsuite/gdb.mi/mi-basics.exp
+++ b/gdb/testsuite/gdb.mi/mi-basics.exp
@@ -40,6 +40,9 @@ if [mi_gdb_start] {
set testfile "basics"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
+set escapedobjdir [string_to_regexp ${objdir}]
+set escapedsrcdir [string_to_regexp ${srcdir}]
+
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
@@ -154,25 +157,25 @@ proc test_dir_specification {} {
# -environment-directory
# -environment-directory -r
-#exp_internal 1
+ set envirodir [string_to_regexp ${srcdir}/${subdir}]
+
mi_gdb_test "202-environment-directory ${srcdir}/${subdir}" \
- "\\\^done,source-path=\"${srcdir}/${subdir}.\\\$cdir.\\\$cwd\"" \
+ "\\\^done,source-path=\"${envirodir}.\\\$cdir.\\\$cwd\"" \
"environment-directory arg operation"
mi_gdb_test "203-environment-directory" \
- "\\\^done,source-path=\"${srcdir}/${subdir}.\\\$cdir.\\\$cwd\"" \
+ "\\\^done,source-path=\"${envirodir}.\\\$cdir.\\\$cwd\"" \
"environment-directory empty-string operation"
mi_gdb_test "204-environment-directory -r" \
"\\\^done,source-path=\"\\\$cdir.\\\$cwd\"" \
"environment-directory operation"
-
-#exp_internal 0
}
proc test_cwd_specification {} {
global mi_gdb_prompt
global objdir
+ global escapedobjdir
global subdir
# Change the working directory, then print the current working directory
@@ -185,7 +188,7 @@ proc test_cwd_specification {} {
"environment-cd arg operation"
mi_gdb_test "206-environment-pwd" \
- "\\\^done,cwd=\"${objdir}\"" \
+ "\\\^done,cwd=\"${escapedobjdir}\"" \
"environment-pwd operation"
}
@@ -194,6 +197,8 @@ proc test_path_specification {} {
global orig_path
global objdir
global srcdir
+ global escapedobjdir
+ global escapedsrcdir
# Add to the path, display, then reset
# Tests:
@@ -202,8 +207,6 @@ proc test_path_specification {} {
# -environment-path -r dir
# -environment-path -r
-#exp_internal 1
-
send_gdb "-environment-path\n"
gdb_expect 20 {
-re "\\\^done,path=\"\(.*\)\"\r\n$mi_gdb_prompt" {
@@ -220,18 +223,17 @@ proc test_path_specification {} {
"environment-path no-args operation"
mi_gdb_test "208-environment-path $srcdir $objdir" \
- "\\\^done,path=\"$srcdir.$objdir.$orig_path\"" \
+ "\\\^done,path=\"$escapedsrcdir.$escapedobjdir.$orig_path\"" \
"environment-path dir1 dir2 operation"
mi_gdb_test "209-environment-path -r $objdir" \
- "\\\^done,path=\"$objdir.$orig_path\"" \
+ "\\\^done,path=\"$escapedobjdir.$orig_path\"" \
"environment-path -r dir operation"
mi_gdb_test "210-environment-path -r" \
"\\\^done,path=\"$orig_path\"" \
"environment-path -r operation"
-#exp_internal 0
}
if [test_mi_interpreter_selection] {
diff --git a/gdb/testsuite/gdb.mi/mi-var-display.exp b/gdb/testsuite/gdb.mi/mi-var-display.exp
index fafa79a..ab5a17b 100644
--- a/gdb/testsuite/gdb.mi/mi-var-display.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-display.exp
@@ -183,7 +183,7 @@ mi_gdb_test "-var-create weird * weird" \
"create local variable weird"
mi_gdb_test "-var-list-children weird" \
- "\\^done,numchild=\"11\",children=\\\[child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\(\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
+ "\\^done,numchild=\"11\",children=\\\[child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\((void|)\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
"get children local variable weird"
diff --git a/gdb/testsuite/gdb.mi/mi1-var-display.exp b/gdb/testsuite/gdb.mi/mi1-var-display.exp
index 0bdaee4..593a1c0 100644
--- a/gdb/testsuite/gdb.mi/mi1-var-display.exp
+++ b/gdb/testsuite/gdb.mi/mi1-var-display.exp
@@ -183,7 +183,7 @@ mi_gdb_test "-var-create weird * weird" \
"create local variable weird"
mi_gdb_test "-var-list-children weird" \
- "\\^done,numchild=\"11\",children=\{child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\(\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\}" \
+ "\\^done,numchild=\"11\",children=\{child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\((void|)\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\}" \
"get children local variable weird"
diff --git a/gdb/testsuite/gdb.mi/mi2-var-display.exp b/gdb/testsuite/gdb.mi/mi2-var-display.exp
index 427e75e..3b0990d 100644
--- a/gdb/testsuite/gdb.mi/mi2-var-display.exp
+++ b/gdb/testsuite/gdb.mi/mi2-var-display.exp
@@ -183,7 +183,7 @@ mi_gdb_test "-var-create weird * weird" \
"create local variable weird"
mi_gdb_test "-var-list-children weird" \
- "\\^done,numchild=\"11\",children=\\\[child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\(\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\(\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
+ "\\^done,numchild=\"11\",children=\\\[child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"10\",type=\"long int \\\[10\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\((void|)\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\((int, char \\*, long int|)\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
"get children local variable weird"
diff --git a/gdb/testsuite/gdb.mi/pthreads.c b/gdb/testsuite/gdb.mi/pthreads.c
index c3e17bc..1ba5a15 100644
--- a/gdb/testsuite/gdb.mi/pthreads.c
+++ b/gdb/testsuite/gdb.mi/pthreads.c
@@ -1,26 +1,4 @@
#include <stdio.h>
-
-#include "config.h"
-
-#ifndef HAVE_PTHREAD_H
-
-/* Don't even try to compile. In fact, cause a syntax error that we can
- look for as a compiler error message and know that we have no pthread
- support. In that case we can just suppress the test completely. */
-
-#error "no posix threads support"
-
-#else
-
-/* OK. We have the right header. If we try to compile this and fail, then
- there is something wrong and the user should know about it so the testsuite
- should issue an ERROR result.. */
-
-#ifdef __linux__
-#define _MIT_POSIX_THREADS 1 /* GNU/Linux (or at least RedHat 4.0)
- needs this */
-#endif
-
#include <pthread.h>
/* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
@@ -77,4 +55,3 @@ main (int argc, char *argv[])
return 0;
}
-#endif /* ifndef HAVE_PTHREAD_H */
diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp
index 8184fa5..5cb80bd 100644
--- a/gdb/testsuite/gdb.threads/gcore-thread.exp
+++ b/gdb/testsuite/gdb.threads/gcore-thread.exp
@@ -103,9 +103,10 @@ delete_breakpoints
gdb_breakpoint "thread2"
gdb_test "continue" "Continuing.*Breakpoint.* thread2 .*" "thread 2 is running"
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
# Drop corefile
gdb_test "gcore ${objdir}/${subdir}/gcore.test" \
- "Saved corefile ${objdir}/${subdir}/gcore.test" \
+ "Saved corefile ${escapedfilename}" \
"save a corefile"
# Now restart gdb and load the corefile.
diff --git a/gdb/testsuite/gdb.threads/pthreads.c b/gdb/testsuite/gdb.threads/pthreads.c
index b8f126d..fdc0324 100644
--- a/gdb/testsuite/gdb.threads/pthreads.c
+++ b/gdb/testsuite/gdb.threads/pthreads.c
@@ -1,26 +1,4 @@
#include <stdio.h>
-
-#include "config.h"
-
-#ifndef HAVE_PTHREAD_H
-
-/* Don't even try to compile. In fact, cause a syntax error that we can
- look for as a compiler error message and know that we have no pthread
- support. In that case we can just suppress the test completely. */
-
-#error "no posix threads support"
-
-#else
-
-/* OK. We have the right header. If we try to compile this and fail, then
- there is something wrong and the user should know about it so the testsuite
- should issue an ERROR result.. */
-
-#ifdef __linux__
-#define _MIT_POSIX_THREADS 1 /* GNU/Linux (or at least RedHat 4.0)
- needs this */
-#endif
-
#include <pthread.h>
/* Under OSF 2.0 & 3.0 and HPUX 10, the second arg of pthread_create
@@ -168,4 +146,3 @@ main(argc, argv)
exit(0);
}
-#endif /* ifndef HAVE_PTHREAD_H */
diff --git a/gdb/testsuite/gdb.threads/tls-main.c b/gdb/testsuite/gdb.threads/tls-main.c
new file mode 100644
index 0000000..eec5d50
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls-main.c
@@ -0,0 +1,9 @@
+__thread int i_tls = 2;
+int main ()
+{
+ int result;
+ result = foo (); /* Call to foo should return 2, not 1. */
+ result ++;
+ return 0; /* break here to check result */
+}
+
diff --git a/gdb/testsuite/gdb.threads/tls-shared.c b/gdb/testsuite/gdb.threads/tls-shared.c
new file mode 100644
index 0000000..d4f8e5c
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls-shared.c
@@ -0,0 +1,6 @@
+__thread int i_tls = 1;
+int foo ()
+{
+ return i_tls;
+}
+
diff --git a/gdb/testsuite/gdb.threads/tls-shared.exp b/gdb/testsuite/gdb.threads/tls-shared.exp
new file mode 100644
index 0000000..fc5c086
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls-shared.exp
@@ -0,0 +1,115 @@
+# Copyright 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+# tls-shared.exp -- Expect script to test thread local storage in gdb, with
+# shared libraries.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set testfile tls-main
+set libfile tls-shared
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+remote_exec build "rm -f ${binfile}"
+
+# get the value of gcc_compiled
+if [get_compiler_info ${binfile}] {
+ return -1
+}
+
+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}.o" object {debug}] != "" } {
+ return -1
+}
+
+# Build the shared libraries this test case needs.
+#
+
+if {$gcc_compiled == 0} {
+ if [istarget "hppa*-hp-hpux*"] then {
+ set additional_flags "additional_flags=+z"
+ } elseif { [istarget "mips-sgi-irix*"] } {
+ # Disable SGI compiler's implicit -Dsgi
+ set additional_flags "additional_flags=-Usgi"
+ } else {
+ # don't know what the compiler is...
+ set additional_flags ""
+ }
+} else {
+ if { ([istarget "powerpc*-*-aix*"]
+ || [istarget "rs6000*-*-aix*"]) } {
+ set additional_flags ""
+ } else {
+ set additional_flags "additional_flags=-fpic"
+ }
+}
+
+set additional_flags "$additional_flags -shared"
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${libfile}.c" "${objdir}/${subdir}/${libfile}.so" executable [list debug $additional_flags "incdir=${objdir}"]] != ""} {
+ return -1
+}
+
+if { ($gcc_compiled
+&& ([istarget "powerpc*-*-aix*"]
+|| [istarget "rs6000*-*-aix*"] )) } {
+ set additional_flags "additional_flags=-L${objdir}/${subdir}"
+} elseif { [istarget "mips-sgi-irix*"] } {
+ set additional_flags "additional_flags=-rpath ${objdir}/${subdir}"
+} else {
+ set additional_flags ""
+}
+
+if {[gdb_compile_pthreads "${objdir}/${subdir}/${testfile}.o ${objdir}/${subdir}/${libfile}.so" "${binfile}" executable [list debug $additional_flags]] != ""} {
+ return -1
+}
+
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
+}
+
+gdb_test "print i_tls" "2" "print thread local storage variable"
+
+gdb_test "ptype i_tls" "int" "ptype of thread local storage variable"
+
+gdb_test "info address i_tls" \
+ "Symbol \\\"i_tls\\\" is a thread-local variable at offset 0 in the thread-local storage for .*tls-main.." \
+ "print storage info for thread local storage variable"
+
+set line_number [gdb_get_line_number "break here to check result"]
+
+gdb_test "break $line_number" \
+ "Breakpoint.*at.*file.*tls-main.c.*line ${line_number}." \
+ "break at and of main"
+gdb_test "continue" \
+ "main .* at .*:.*return 0.*break here to check result.*" \
+ "continue to break"
+# This is more of a gcc/glibc test, really.
+#
+gdb_test "print result" "3" "print result"
+
+
diff --git a/gdb/testsuite/gdb.threads/tls.c b/gdb/testsuite/gdb.threads/tls.c
new file mode 100644
index 0000000..9b2145e
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls.c
@@ -0,0 +1,221 @@
+/* BeginSourceFile tls.c
+
+ This file creates and deletes threads. It uses thread local storage
+ variables too. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <errno.h>
+
+#define N_THREADS 3
+
+/* Uncomment to turn on debugging output */
+/*#define START_DEBUG*/
+
+/* Thread-local storage. */
+__thread int a_thread_local;
+__thread int another_thread_local;
+
+/* Global variable just for info addr in gdb. */
+int a_global;
+
+/* Print the results of thread-local storage. */
+int thread_local_val[ N_THREADS ];
+int another_thread_local_val[ N_THREADS ];
+
+/* Semaphores to make sure the threads are alive when we print the TLS
+ variables from gdb. */
+sem_t tell_main, tell_thread;
+
+
+void print_error ()
+{
+ switch (errno)
+ {
+ case EAGAIN:
+ fprintf (stderr, "EAGAIN\n");
+ break;
+ case EINTR:
+ fprintf (stderr, "EINTR\n");
+ break;
+ case EINVAL:
+ fprintf (stderr, "EINVAL\n");
+ break;
+ case ENOSYS:
+ fprintf (stderr, "ENOSYS\n");
+ break;
+ case ENOENT:
+ fprintf (stderr, "ENOENT\n");
+ break;
+ case EDEADLK:
+ fprintf (stderr, "EDEADLK\n");
+ break;
+ default:
+ fprintf (stderr, "Unknown error\n");
+ break;
+ }
+}
+
+/* Routine for each thread to run, does nothing. */
+void *spin( vp )
+ void * vp;
+{
+ int me = (long) vp;
+ int i;
+
+ /* Use a_global. */
+ a_global++;
+
+ a_thread_local = 0;
+ another_thread_local = me;
+ for( i = 0; i <= me; i++ ) {
+ a_thread_local += i;
+ }
+
+ another_thread_local_val[me] = another_thread_local;
+ thread_local_val[ me ] = a_thread_local; /* here we know tls value */
+
+ if (sem_post (&tell_main) == -1)
+ {
+ fprintf (stderr, "th %d post on sem tell_main failed\n", me);
+ print_error ();
+ return;
+ }
+#ifdef START_DEBUG
+ fprintf (stderr, "th %d post on tell main\n", me);
+#endif
+
+ while (1)
+ {
+#ifdef START_DEBUG
+ fprintf (stderr, "th %d start wait on tell_thread\n", me);
+#endif
+ if (sem_wait (&tell_thread) == 0)
+ break;
+
+ if (errno == EINTR)
+ {
+#ifdef START_DEBUG
+ fprintf (stderr, "th %d wait tell_thread got EINTR, rewaiting\n", me);
+#endif
+ continue;
+ }
+ else
+ {
+ fprintf (stderr, "th %d wait on sem tell_thread failed\n", me);
+ print_error ();
+ return;
+ }
+ }
+
+#ifdef START_DEBUG
+ fprintf (stderr, "th %d Wait on tell_thread\n", me);
+#endif
+
+}
+
+void
+do_pass()
+{
+ int i;
+ pthread_t t[ N_THREADS ];
+ int err;
+
+ for( i = 0; i < N_THREADS; i++)
+ {
+ thread_local_val[i] = 0;
+ another_thread_local_val[i] = 0;
+ }
+
+ if (sem_init (&tell_main, 0, 0) == -1)
+ {
+ fprintf (stderr, "tell_main semaphore init failed\n");
+ return;
+ }
+
+ if (sem_init (&tell_thread, 0, 0) == -1)
+ {
+ fprintf (stderr, "tell_thread semaphore init failed\n");
+ return;
+ }
+
+ /* Start N_THREADS threads, then join them so that they are terminated. */
+ for( i = 0; i < N_THREADS; i++ )
+ {
+ err = pthread_create( &t[i], NULL, spin, (void *) (long) i );
+ if( err != 0 ) {
+ fprintf(stderr, "Error in thread %d create\n", i );
+ }
+ }
+
+ for( i = 0; i < N_THREADS; i++ )
+ {
+ while (1)
+ {
+#ifdef START_DEBUG
+ fprintf (stderr, "main %d start wait on tell_main\n", i);
+#endif
+ if (sem_wait (&tell_main) == 0)
+ break;
+
+ if (errno == EINTR)
+ {
+#ifdef START_DEBUG
+ fprintf (stderr, "main %d wait tell_main got EINTR, rewaiting\n", i);
+#endif
+ continue;
+ }
+ else
+ {
+ fprintf (stderr, "main %d wait on sem tell_main failed\n", i);
+ print_error ();
+ return;
+ }
+ }
+ }
+
+#ifdef START_DEBUG
+ fprintf (stderr, "main done waiting on tell_main\n");
+#endif
+
+ i = 10; /* Here all threads should be still alive. */
+
+ for( i = 0; i < N_THREADS; i++ )
+ {
+ if (sem_post (&tell_thread) == -1)
+ {
+ fprintf (stderr, "main %d post on sem tell_thread failed\n", i);
+ print_error ();
+ return;
+ }
+#ifdef START_DEBUG
+ fprintf (stderr, "main %d post on tell_thread\n", i);
+#endif
+ }
+
+ for( i = 0; i < N_THREADS; i++ )
+ {
+ err = pthread_join(t[i], NULL );
+ if( err != 0 )
+ {
+ fprintf (stderr, "error in thread %d join\n", i );
+ }
+ }
+
+ i = 10; /* Null line for setting bpts on. */
+
+}
+
+int
+main()
+{
+ do_pass ();
+
+ return 0; /* Set breakpoint here before exit. */
+}
+
+/* EndSourceFile */
diff --git a/gdb/testsuite/gdb.threads/tls.exp b/gdb/testsuite/gdb.threads/tls.exp
new file mode 100644
index 0000000..3f74993
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/tls.exp
@@ -0,0 +1,291 @@
+# tls.exp -- Expect script to test thread-local storage
+# Copyright (C) 1992, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@prep.ai.mit.edu
+
+set testfile tls
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if [istarget "*-*-linux"] then {
+ set target_cflags "-D_MIT_POSIX_THREADS"
+} else {
+ set target_cflags ""
+}
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } {
+ return -1
+}
+
+### Compute the value of the a_thread_local variable.
+proc compute_expected_value {value} {
+ set expected_value 0
+ set i 0
+ while { $i <= $value} {
+ incr expected_value $i
+ incr i
+ }
+ return $expected_value
+}
+
+### Get the value of the variable 'me' for the current thread.
+proc get_me_variable {tnum} {
+ global expect_out
+ global gdb_prompt
+ global decimal
+
+ set value_of_me -1
+ send_gdb "print me\n"
+ gdb_expect {
+ -re ".*= ($decimal).*\r\n$gdb_prompt $" {
+ set value_of_me $expect_out(1,string)
+ pass "$tnum thread print me"
+ }
+ -re "$gdb_prompt $" {
+ fail "$tnum thread print me"
+ }
+ timeout {
+ fail "$tnum thread print me (timeout)"
+ }
+ }
+ return ${value_of_me}
+}
+
+### Check the values of the thread local variables in the thread.
+### Also check that info address print the right things.
+proc check_thread_local {number} {
+ set me_variable [get_me_variable $number]
+ set expected_value [compute_expected_value ${me_variable}]
+
+ gdb_test "p a_thread_local" \
+ "= $expected_value" \
+ "${number} thread local storage"
+
+ gdb_test "p another_thread_local" \
+ "= $me_variable" \
+ "${number} another thread local storage"
+
+ gdb_test "info address a_thread_local" \
+ ".*a_thread_local.*a thread-local variable at offset.*" \
+ "${number} info address a_thread_local"
+
+ gdb_test "info address another_thread_local" \
+ ".*another_thread_local.*a thread-local variable at offset.*" \
+ "${number} info address another_thread_local"
+}
+
+### Select a particular thread.
+proc select_thread {thread} {
+ global gdb_prompt
+
+ send_gdb "thread $thread\n"
+ gdb_expect {
+ -re "\\\[Switching to thread .*\\\].*\r\n$gdb_prompt $" {
+ pass "selected thread: $thread"
+ }
+ -re "$gdb_prompt $" {
+ fail "selected thread: $thread"
+ }
+ timeout {
+ fail "selected thread: $thread (timeout)"
+ }
+ }
+}
+
+### Do a backtrace for the current thread, and check that the 'spin' routine
+### is in it. This means we have one of the threads we created, rather
+### than the main thread. Record the thread in the spin_threads
+### array. Also remember the level of the 'spin' routine in the backtrace, for
+### later use.
+proc check_thread_stack {number spin_threads spin_threads_level} {
+ global gdb_prompt
+ global expect_out
+ global decimal
+ global hex
+ upvar $spin_threads tarr
+ upvar $spin_threads_level tarrl
+
+ select_thread $number
+ send_gdb "where\n"
+ gdb_expect {
+ -re ".*(\[0-9\]+)\[ \t\]+$hex in spin \\(vp=(0x\[0-9a-f\]+).*\r\n$gdb_prompt $" {
+ if {[info exists tarr($number)]} {
+ fail "backtrace of thread number $number in spin"
+ } else {
+ pass "backtrace of thread number $number in spin"
+ set level $expect_out(1,string)
+ set tarrl($number) $level
+ set tarr($number) 1
+ }
+ }
+ -re ".*$gdb_prompt $" {
+ set tarr($number) 0
+ set tarrl($number) 0
+ pass "backtrace of thread number $number not relevant"
+ }
+ timeout {
+ fail "backtrace of thread number $number (timeout)"
+ }
+ }
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+gdb_load ${binfile}
+if ![runto_main] then {
+ fail "Can't run to main"
+ return 0
+}
+
+# Set a breakpoint at the "spin" routine to
+# test the thread local's value.
+#
+gdb_test "b [gdb_get_line_number "here we know tls value"]" \
+ ".*Breakpoint 2.*tls.*" "set breakpoint at all threads"
+
+# Set a bp at a point where we know all threads are alive.
+#
+gdb_test "b [gdb_get_line_number "still alive"]" \
+ ".*Breakpoint 3.*tls.*" "set breakpoint at synch point"
+
+# Set a bp at the end to see if all threads are finished.
+#
+gdb_test "b [gdb_get_line_number "before exit"]" \
+ ".*Breakpoint 4.*tls.*" "set breakpoint at exit"
+
+send_gdb "continue\n"
+gdb_expect {
+ -re ".*Program received signal SIGSEGV.*a_thread_local = 0;.*$gdb_prompt $" {
+ # This is the first symptom if the gcc and binutils versions
+ # in use support TLS, but the system glibc does not.
+ unsupported "continue to first thread: system does not support TLS"
+ return -1
+ }
+ -re ".*Program exited normally.*$gdb_prompt $" {
+ fail "continue to first thread: program runaway"
+ }
+ -re ".*Pass 0 done.*Pass 1 done.*$gdb_prompt $" {
+ fail "continue to first thread: program runaway 2"
+ }
+ -re ".*Breakpoint 2.*tls value.*$gdb_prompt $" {
+ pass "continue to first thread: get to thread"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "continue to first thread: no progress?"
+ }
+ timeout { fail "continue to first thread (timeout)" }
+}
+
+gdb_test "info thread" ".*Thread.*spin.*" \
+ "at least one th in spin while stopped at first th"
+
+check_thread_local "first"
+
+gdb_test "continue" ".*Breakpoint 2.*tls value.*" "continue to second thread"
+gdb_test "info thread" "Thread.*spin.*" \
+ "at least one th in spin while stopped at second th"
+
+check_thread_local "second"
+
+gdb_test "continue" ".*Breakpoint 2.*tls value.*" "continue to third thread"
+gdb_test "info thread" ".*Thread.*spin.*" \
+ "at least one th in spin while stopped at third th"
+
+check_thread_local "third"
+
+gdb_test "continue" ".*Breakpoint 3.*still alive.*" "continue to synch point"
+
+set no_of_threads 0
+send_gdb "info thread\n"
+gdb_expect {
+ -re "^info thread\[ \t\r\n\]+(\[0-9\]+) Thread.*$gdb_prompt $" {
+ set no_of_threads $expect_out(1,string)
+ pass "get number of threads"
+ }
+ -re "$gdb_prompt $" {
+ fail "get number of threads"
+ }
+ timeout {
+ fail "get number of threads (timeout)"
+ }
+}
+
+array set spin_threads {}
+unset spin_threads
+array set spin_threads_level {}
+unset spin_threads_level
+
+# For each thread check its backtrace to see if it is stopped at the
+# spin routine.
+for {set i 1} {$i <= $no_of_threads} {incr i} {
+ check_thread_stack $i spin_threads spin_threads_level
+}
+
+### Loop through the threads and check the values of the tls variables.
+### keep track of how many threads we find in the spin routine.
+set thrs_in_spin 0
+foreach i [array names spin_threads] {
+ if {$spin_threads($i) == 1} {
+ incr thrs_in_spin
+ select_thread $i
+ set level $spin_threads_level($i)
+ gdb_test "up $level" ".*spin.*sem_wait.*" "thread $i up"
+ check_thread_local $i
+ }
+}
+
+if {$thrs_in_spin == 0} {
+ fail "No thread backtrace reported spin (vsyscall kernel problem?)"
+}
+
+gdb_test "continue" ".*Breakpoint 4.*before exit.*" "threads exited"
+
+send_gdb "info thread\n"
+gdb_expect {
+ -re ".* 1 Thread.*2 Thread.*$gdb_prompt $" {
+ fail "Too many threads left at end"
+ }
+ -re ".*\\\* 1 Thread.*main.*$gdb_prompt $" {
+ pass "Expect only base thread at end"
+ }
+ -re ".*No stack.*$gdb_prompt $" {
+ fail "runaway at end"
+ }
+ -re ".*$gdb_prompt $" {
+ fail "mess at end"
+ }
+ timeout { fail "at end (timeout)" }
+}
+
+# Start over and do some "info address" stuff
+#
+runto spin
+
+gdb_test "info address a_global" \
+ ".*a_global.*static storage at address.*" "info address a_global"
+
+setup_kfail "gdb/1294" "*-*-*"
+gdb_test "info address me" ".*me.*is a variable at offset.*" "info address me"
+
+# Done!
+#
+gdb_exit
+
+return 0
diff --git a/gdb/testsuite/gdb.trace/save-trace.exp b/gdb/testsuite/gdb.trace/save-trace.exp
index b461ad8..a5b7cf0 100644
--- a/gdb/testsuite/gdb.trace/save-trace.exp
+++ b/gdb/testsuite/gdb.trace/save-trace.exp
@@ -145,9 +145,10 @@ remote_file host delete savetrace.tr
# 10.3 repeat with a path to the file
+set escapedfilename [string_to_regexp $objdir/savetrace.tr]
remote_file host delete $objdir/savetrace.tr
gdb_test "save-tracepoints $objdir/savetrace.tr" \
- "Tracepoints saved to file '$objdir/savetrace.tr'." \
+ "Tracepoints saved to file '${escapedfilename}'." \
"10.3: save tracepoint definitions, full path"
gdb_delete_tracepoints
diff --git a/gdb/top.c b/gdb/top.c
index 3efebec..7ac5dd8 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1201,9 +1201,9 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix)
if (annotation_level > 1 && instream == stdin)
{
- printf_unfiltered ("\n\032\032pre-");
- printf_unfiltered (annotation_suffix);
- printf_unfiltered ("\n");
+ puts_unfiltered ("\n\032\032pre-");
+ puts_unfiltered (annotation_suffix);
+ puts_unfiltered ("\n");
}
/* Don't use fancy stuff if not talking to stdin. */
@@ -1222,9 +1222,9 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix)
if (annotation_level > 1 && instream == stdin)
{
- printf_unfiltered ("\n\032\032post-");
- printf_unfiltered (annotation_suffix);
- printf_unfiltered ("\n");
+ puts_unfiltered ("\n\032\032post-");
+ puts_unfiltered (annotation_suffix);
+ puts_unfiltered ("\n");
}
if (!rl || rl == (char *) EOF)
@@ -1388,267 +1388,13 @@ There is absolutely no warranty for GDB. Type \"show warranty\" for details.\n"
/* get_prompt: access method for the GDB prompt string. */
-#define MAX_PROMPT_SIZE 256
-
-/*
- * int get_prompt_1 (char * buf);
- *
- * Work-horse for get_prompt (called via catch_errors).
- * Argument is buffer to hold the formatted prompt.
- *
- * Returns: 1 for success (use formatted prompt)
- * 0 for failure (use gdb_prompt_string).
- */
-
-static int gdb_prompt_escape;
-
-static int
-get_prompt_1 (void *data)
-{
- char *formatted_prompt = data;
- char *local_prompt;
-
- if (event_loop_p)
- local_prompt = PROMPT (0);
- else
- local_prompt = gdb_prompt_string;
-
-
- if (gdb_prompt_escape == 0)
- {
- return 0; /* do no formatting */
- }
- else
- /* formatted prompt */
- {
- char fmt[40], *promptp, *outp, *tmp;
- struct value *arg_val;
- DOUBLEST doubleval;
- LONGEST longval;
- CORE_ADDR addrval;
-
- int i, len;
- struct type *arg_type, *elt_type;
-
- promptp = local_prompt;
- outp = formatted_prompt;
-
- while (*promptp != '\0')
- {
- int available = MAX_PROMPT_SIZE - (outp - formatted_prompt) - 1;
-
- if (*promptp != gdb_prompt_escape)
- {
- if (available >= 1) /* overflow protect */
- *outp++ = *promptp++;
- }
- else
- {
- /* GDB prompt string contains escape char. Parse for arg.
- Two consecutive escape chars followed by arg followed by
- a comma means to insert the arg using a default format.
- Otherwise a printf format string may be included between
- the two escape chars. eg:
- %%foo, insert foo using default format
- %2.2f%foo, insert foo using "%2.2f" format
- A mismatch between the format string and the data type
- of "foo" is an error (which we don't know how to protect
- against). */
-
- fmt[0] = '\0'; /* assume null format string */
- if (promptp[1] == gdb_prompt_escape) /* double esc char */
- {
- promptp += 2; /* skip past two escape chars. */
- }
- else
- {
- /* extract format string from between two esc chars */
- i = 0;
- do
- {
- fmt[i++] = *promptp++; /* copy format string */
- }
- while (i < sizeof (fmt) - 1 &&
- *promptp != gdb_prompt_escape &&
- *promptp != '\0');
-
- if (*promptp != gdb_prompt_escape)
- error ("Syntax error at prompt position %d",
- (int) (promptp - local_prompt));
- else
- {
- promptp++; /* skip second escape char */
- fmt[i++] = '\0'; /* terminate the format string */
- }
- }
-
- arg_val = parse_to_comma_and_eval (&promptp);
- if (*promptp == ',')
- promptp++; /* skip past the comma */
- arg_type = check_typedef (VALUE_TYPE (arg_val));
- switch (TYPE_CODE (arg_type))
- {
- case TYPE_CODE_ARRAY:
- elt_type = check_typedef (TYPE_TARGET_TYPE (arg_type));
- if (TYPE_LENGTH (arg_type) > 0 &&
- TYPE_LENGTH (elt_type) == 1 &&
- TYPE_CODE (elt_type) == TYPE_CODE_INT)
- {
- int len = TYPE_LENGTH (arg_type);
-
- if (VALUE_LAZY (arg_val))
- value_fetch_lazy (arg_val);
- tmp = VALUE_CONTENTS (arg_val);
-
- if (len > available)
- len = available; /* overflow protect */
-
- /* FIXME: how to protect GDB from crashing
- from bad user-supplied format string? */
- if (fmt[0] != 0)
- sprintf (outp, fmt, tmp);
- else
- strncpy (outp, tmp, len);
- outp[len] = '\0';
- }
- break;
- case TYPE_CODE_PTR:
- elt_type = check_typedef (TYPE_TARGET_TYPE (arg_type));
- addrval = value_as_address (arg_val);
-
- if (TYPE_LENGTH (elt_type) == 1 &&
- TYPE_CODE (elt_type) == TYPE_CODE_INT &&
- addrval != 0)
- {
- /* display it as a string */
- char *default_fmt = "%s";
- char *tmp;
- int err = 0;
-
- /* Limiting the number of bytes that the following call
- will read protects us from sprintf overflow later. */
- i = target_read_string (addrval, /* src */
- &tmp, /* dest */
- available, /* len */
- &err);
- if (err) /* read failed */
- error ("%s on target_read", safe_strerror (err));
-
- tmp[i] = '\0'; /* force-terminate string */
- /* FIXME: how to protect GDB from crashing
- from bad user-supplied format string? */
- sprintf (outp, fmt[0] == 0 ? default_fmt : fmt,
- tmp);
- xfree (tmp);
- }
- else
- {
- /* display it as a pointer */
- char *default_fmt = "0x%x";
-
- /* FIXME: how to protect GDB from crashing
- from bad user-supplied format string? */
- if (available >= 16 /*? */ ) /* overflow protect */
- sprintf (outp, fmt[0] == 0 ? default_fmt : fmt,
- (long) addrval);
- }
- break;
- case TYPE_CODE_FLT:
- {
- char *default_fmt = "%g";
-
- doubleval = value_as_double (arg_val);
- /* FIXME: how to protect GDB from crashing
- from bad user-supplied format string? */
- if (available >= 16 /*? */ ) /* overflow protect */
- sprintf (outp, fmt[0] == 0 ? default_fmt : fmt,
- (double) doubleval);
- break;
- }
- case TYPE_CODE_INT:
- {
- char *default_fmt = "%d";
-
- longval = value_as_long (arg_val);
- /* FIXME: how to protect GDB from crashing
- from bad user-supplied format string? */
- if (available >= 16 /*? */ ) /* overflow protect */
- sprintf (outp, fmt[0] == 0 ? default_fmt : fmt,
- (long) longval);
- break;
- }
- case TYPE_CODE_BOOL:
- {
- /* no default format for bool */
- longval = value_as_long (arg_val);
- if (available >= 8 /*? */ ) /* overflow protect */
- {
- if (longval)
- strcpy (outp, "<true>");
- else
- strcpy (outp, "<false>");
- }
- break;
- }
- case TYPE_CODE_ENUM:
- {
- /* no default format for enum */
- longval = value_as_long (arg_val);
- len = TYPE_NFIELDS (arg_type);
- /* find enum name if possible */
- for (i = 0; i < len; i++)
- if (TYPE_FIELD_BITPOS (arg_type, i) == longval)
- break; /* match -- end loop */
-
- if (i < len) /* enum name found */
- {
- char *name = TYPE_FIELD_NAME (arg_type, i);
-
- strncpy (outp, name, available);
- /* in casel available < strlen (name), */
- outp[available] = '\0';
- }
- else
- {
- if (available >= 16 /*? */ ) /* overflow protect */
- sprintf (outp, "%ld", (long) longval);
- }
- break;
- }
- case TYPE_CODE_VOID:
- *outp = '\0';
- break; /* void type -- no output */
- default:
- error ("bad data type at prompt position %d",
- (int) (promptp - local_prompt));
- break;
- }
- outp += strlen (outp);
- }
- }
- *outp++ = '\0'; /* terminate prompt string */
- return 1;
- }
-}
-
char *
get_prompt (void)
{
- static char buf[MAX_PROMPT_SIZE];
-
- if (catch_errors (get_prompt_1, buf, "bad formatted prompt: ",
- RETURN_MASK_ALL))
- {
- return &buf[0]; /* successful formatted prompt */
- }
+ if (event_loop_p)
+ return PROMPT (0);
else
- {
- /* Prompt could not be formatted. */
- if (event_loop_p)
- return PROMPT (0);
- else
- return gdb_prompt_string;
- }
+ return gdb_prompt_string;
}
void
@@ -1686,7 +1432,7 @@ quit_confirm (void)
else
s = "The program is running. Exit anyway? ";
- if (!query (s))
+ if (!query ("%s", s))
return 0;
}
@@ -1946,7 +1692,6 @@ init_main (void)
if (annotation_level > 1)
set_async_annotation_level (NULL, 0, NULL);
}
- gdb_prompt_escape = 0; /* default to none. */
/* Set the important stuff up for command editing. */
command_editing_p = 1;
@@ -1986,13 +1731,6 @@ init_main (void)
set_cmd_sfunc (c, set_async_prompt);
}
- add_show_from_set
- (add_set_cmd ("prompt-escape-char", class_support, var_zinteger,
- (char *) &gdb_prompt_escape,
- "Set escape character for formatting of gdb's prompt",
- &setlist),
- &showlist);
-
add_com ("dont-repeat", class_support, dont_repeat_command, "Don't repeat this command.\n\
Primarily used inside of user-defined commands that should not be repeated when\n\
hitting return.");
diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c
index d73813b..f397f5d 100644
--- a/gdb/trad-frame.c
+++ b/gdb/trad-frame.c
@@ -111,7 +111,7 @@ trad_frame_prev_register (struct frame_info *next_frame,
}
else if (trad_frame_realreg_p (this_saved_regs, regnum))
{
- /* As the next frame to return the value of the register. */
+ /* Ask the next frame to return the value of the register. */
frame_register_unwind (next_frame, this_saved_regs[regnum].realreg,
optimizedp, lvalp, addrp, realregp, bufferp);
}
diff --git a/gdb/tui/ChangeLog b/gdb/tui/ChangeLog
index 41fe93d..8eb6d33 100644
--- a/gdb/tui/ChangeLog
+++ b/gdb/tui/ChangeLog
@@ -22,7 +22,7 @@
(_initialize_tui_interp): Use the tui interpreter even when no
other interpreter was set and define in which TUI mode to start.
-2003-07-02 Daniel Jacobowitz <drow@mvista.com>
+2003-06-28 Daniel Jacobowitz <drow@mvista.com>
* tui-out.c (tui_ui_out_impl): Add NULL for redirect member.
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index 840fa97..5e19aff 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -25,10 +25,9 @@
/* The ui_out structure */
-struct ui_file;
struct ui_out;
struct ui_out_data;
-
+struct ui_file;
/* the current ui_out */
diff --git a/gdb/user-regs.c b/gdb/user-regs.c
new file mode 100644
index 0000000..470a518
--- /dev/null
+++ b/gdb/user-regs.c
@@ -0,0 +1,205 @@
+/* User visible, per-frame registers, for GDB, the GNU debugger.
+
+ Copyright 2002 Free Software Foundation, Inc.
+
+ Contributed by Red Hat.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "defs.h"
+#include "user-regs.h"
+#include "gdbtypes.h"
+#include "gdb_string.h"
+#include "gdb_assert.h"
+#include "frame.h"
+
+/* A table of user registers.
+
+ User registers have regnum's that live above of the range [0
+ .. NUM_REGS + NUM_PSEUDO_REGS) (which is controlled by the target).
+ The target should never see a user register's regnum value.
+
+ Always append, never delete. By doing this, the relative regnum
+ (offset from NUM_REGS + NUM_PSEUDO_REGS) assigned to each user
+ register never changes. */
+
+struct user_reg
+{
+ const char *name;
+ struct value *(*read) (struct frame_info * frame);
+ struct user_reg *next;
+};
+
+struct user_regs
+{
+ struct user_reg *first;
+ struct user_reg **last;
+};
+
+static void
+append_user_reg (struct user_regs *regs, const char *name,
+ user_reg_read_ftype *read, struct user_reg *reg)
+{
+ /* The caller is responsible for allocating memory needed to store
+ the register. By doing this, the function can operate on a
+ register list stored in the common heap or a specific obstack. */
+ gdb_assert (reg != NULL);
+ reg->name = name;
+ reg->read = read;
+ reg->next = NULL;
+ (*regs->last) = reg;
+ regs->last = &(*regs->last)->next;
+}
+
+/* An array of the builtin user registers. */
+
+static struct user_regs builtin_user_regs = { NULL, &builtin_user_regs.first };
+
+void
+user_reg_add_builtin (const char *name, user_reg_read_ftype *read)
+{
+ append_user_reg (&builtin_user_regs, name, read,
+ XMALLOC (struct user_reg));
+}
+
+/* Per-architecture user registers. Start with the builtin user
+ registers and then, again, append. */
+
+static struct gdbarch_data *user_regs_data;
+
+static void *
+user_regs_init (struct gdbarch *gdbarch)
+{
+ struct user_reg *reg;
+ struct user_regs *regs = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_regs);
+ regs->last = &regs->first;
+ for (reg = builtin_user_regs.first; reg != NULL; reg = reg->next)
+ append_user_reg (regs, reg->name, reg->read,
+ GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_reg));
+ return regs;
+}
+
+void
+user_reg_add (struct gdbarch *gdbarch, const char *name,
+ user_reg_read_ftype *read)
+{
+ struct user_regs *regs = gdbarch_data (gdbarch, user_regs_data);
+ if (regs == NULL)
+ {
+ /* ULGH, called during architecture initialization. Patch
+ things up. */
+ regs = user_regs_init (gdbarch);
+ set_gdbarch_data (gdbarch, user_regs_data, regs);
+ }
+ append_user_reg (regs, name, read,
+ GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_reg));
+}
+
+int
+user_reg_map_name_to_regnum (struct gdbarch *gdbarch, const char *name,
+ int len)
+{
+ /* Make life easy, set the len to something reasonable. */
+ if (len < 0)
+ len = strlen (name);
+
+ /* Search register name space first - always let an architecture
+ specific register override the user registers. */
+ {
+ int i;
+ int maxregs = (gdbarch_num_regs (gdbarch)
+ + gdbarch_num_pseudo_regs (gdbarch));
+ for (i = 0; i < maxregs; i++)
+ {
+ const char *regname = gdbarch_register_name (gdbarch, i);
+ if (regname != NULL && len == strlen (regname)
+ && strncmp (regname, name, len) == 0)
+ {
+ return i;
+ }
+ }
+ }
+
+ /* Search the user name space. */
+ {
+ struct user_regs *regs = gdbarch_data (gdbarch, user_regs_data);
+ struct user_reg *reg;
+ int nr;
+ for (nr = 0, reg = regs->first; reg != NULL; reg = reg->next, nr++)
+ {
+ if ((len < 0 && strcmp (reg->name, name))
+ || (len == strlen (reg->name)
+ && strncmp (reg->name, name, len) == 0))
+ return NUM_REGS + NUM_PSEUDO_REGS + nr;
+ }
+ }
+
+ return -1;
+}
+
+static struct user_reg *
+usernum_to_user_reg (struct gdbarch *gdbarch, int usernum)
+{
+ struct user_regs *regs = gdbarch_data (gdbarch, user_regs_data);
+ struct user_reg *reg;
+ for (reg = regs->first; reg != NULL; reg = reg->next)
+ {
+ if (usernum == 0)
+ return reg;
+ usernum--;
+ }
+ return NULL;
+}
+
+const char *
+user_reg_map_regnum_to_name (struct gdbarch *gdbarch, int regnum)
+{
+ int maxregs = (gdbarch_num_regs (gdbarch)
+ + gdbarch_num_pseudo_regs (gdbarch));
+ if (regnum < 0)
+ return NULL;
+ else if (regnum < maxregs)
+ return gdbarch_register_name (gdbarch, regnum);
+ else
+ {
+ struct user_reg *reg = usernum_to_user_reg (gdbarch, regnum - maxregs);
+ if (reg == NULL)
+ return NULL;
+ else
+ return reg->name;
+ }
+}
+
+struct value *
+value_of_user_reg (int regnum, struct frame_info *frame)
+{
+ struct gdbarch *gdbarch = get_frame_arch (frame);
+ int maxregs = (gdbarch_num_regs (gdbarch)
+ + gdbarch_num_pseudo_regs (gdbarch));
+ struct user_reg *reg = usernum_to_user_reg (gdbarch, regnum - maxregs);
+ gdb_assert (reg != NULL);
+ return reg->read (frame);
+}
+
+extern initialize_file_ftype _initialize_user_regs; /* -Wmissing-prototypes */
+
+void
+_initialize_user_regs (void)
+{
+ user_regs_data = register_gdbarch_data (user_regs_init);
+}
diff --git a/gdb/user-regs.h b/gdb/user-regs.h
new file mode 100644
index 0000000..d845c8a
--- /dev/null
+++ b/gdb/user-regs.h
@@ -0,0 +1,71 @@
+/* Per-frame user registers, for GDB, the GNU debugger.
+
+ Copyright 2002, 2003 Free Software Foundation, Inc.
+
+ Contributed by Red Hat.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef USER_REGS_H
+#define USER_REGS_H
+
+/* Implement both builtin, and architecture specific, per-frame user
+ visible registers.
+
+ Builtin registers apply to all architectures, where as architecture
+ specific registers are present when the architecture is selected.
+
+ These registers are assigned register numbers outside the
+ architecture's register range [0 .. NUM_REGS + NUM_PSEUDO_REGS).
+ Their values should be constructed using per-frame information. */
+
+/* TODO: cagney/2003-06-27: Need to think more about how these
+ registers are added, read, and modified. At present they are kind
+ of assumed to be read-only. Should it, for instance, return a
+ register descriptor that contains all the relvent access methods. */
+
+struct frame_info;
+struct gdbarch;
+
+/* Given an architecture, map a user visible register name onto its
+ index. */
+
+extern int user_reg_map_name_to_regnum (struct gdbarch *gdbarch,
+ const char *str, int len);
+
+extern const char *user_reg_map_regnum_to_name (struct gdbarch *gdbarch,
+ int regnum);
+
+/* Return the value of the frame register in the specified frame.
+
+ Note; These methods return a "struct value" instead of the raw
+ bytes as, at the time the register is being added, the type needed
+ to describe the register has not bee initialized. */
+
+typedef struct value *(user_reg_read_ftype) (struct frame_info *frame);
+extern struct value *value_of_user_reg (int regnum, struct frame_info *frame);
+
+/* Add a builtin register (present in all architectures). */
+extern void user_reg_add_builtin (const char *name,
+ user_reg_read_ftype *read);
+
+/* Add a per-architecture frame register. */
+extern void user_reg_add (struct gdbarch *gdbarch, const char *name,
+ user_reg_read_ftype *read);
+
+#endif
diff --git a/gdb/utils.c b/gdb/utils.c
index 4dfe89b..ae28c04 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -578,7 +578,7 @@ vwarning (const char *string, va_list args)
wrap_here (""); /* Force out any buffered output */
gdb_flush (gdb_stdout);
if (warning_pre_print)
- fprintf_unfiltered (gdb_stderr, warning_pre_print);
+ fputs_unfiltered (warning_pre_print, gdb_stderr);
vfprintf_unfiltered (gdb_stderr, string, args);
fprintf_unfiltered (gdb_stderr, "\n");
va_end (args);
@@ -644,7 +644,7 @@ error_stream (struct ui_file *stream)
gdb_flush (gdb_stdout);
annotate_error_begin ();
if (error_pre_print)
- fprintf_filtered (gdb_stderr, error_pre_print);
+ fputs_filtered (error_pre_print, gdb_stderr);
ui_file_put (stream, do_write, gdb_stderr);
fprintf_filtered (gdb_stderr, "\n");
@@ -922,7 +922,7 @@ quit (void)
/* Don't use *_filtered; we don't want to prompt the user to continue. */
if (quit_pre_print)
- fprintf_unfiltered (gdb_stderr, quit_pre_print);
+ fputs_unfiltered (quit_pre_print, gdb_stderr);
#ifdef __MSDOS__
/* No steenking SIGINT will ever be coming our way when the
@@ -1178,6 +1178,17 @@ xfree (void *ptr)
/* Like asprintf/vasprintf but get an internal_error if the call
fails. */
+char *
+xstrprintf (const char *format, ...)
+{
+ char *ret;
+ va_list args;
+ va_start (args, format);
+ xvasprintf (&ret, format, args);
+ va_end (args);
+ return ret;
+}
+
void
xasprintf (char **ret, const char *format, ...)
{
diff --git a/gdb/valprint.c b/gdb/valprint.c
index d4b8bf5..71e391a 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -452,9 +452,9 @@ print_floating (char *valaddr, struct type *type, struct ui_file *stream)
if (floatformat_is_negative (fmt, valaddr))
fprintf_filtered (stream, "-");
fprintf_filtered (stream, "nan(");
- fprintf_filtered (stream, local_hex_format_prefix ());
- fprintf_filtered (stream, floatformat_mantissa (fmt, valaddr));
- fprintf_filtered (stream, local_hex_format_suffix ());
+ fputs_filtered (local_hex_format_prefix (), stream);
+ fputs_filtered (floatformat_mantissa (fmt, valaddr), stream);
+ fputs_filtered (local_hex_format_suffix (), stream);
fprintf_filtered (stream, ")");
return;
}
@@ -515,7 +515,7 @@ print_binary_chars (struct ui_file *stream, unsigned char *valaddr,
/* FIXME: We should be not printing leading zeroes in most cases. */
- fprintf_filtered (stream, local_binary_format_prefix ());
+ fputs_filtered (local_binary_format_prefix (), stream);
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
for (p = valaddr;
@@ -553,7 +553,7 @@ print_binary_chars (struct ui_file *stream, unsigned char *valaddr,
}
}
}
- fprintf_filtered (stream, local_binary_format_suffix ());
+ fputs_filtered (local_binary_format_suffix (), stream);
}
/* VALADDR points to an integer of LEN bytes.
@@ -602,7 +602,7 @@ print_octal_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
cycle = (len * BITS_IN_BYTES) % BITS_IN_OCTAL;
carry = 0;
- fprintf_filtered (stream, local_octal_format_prefix ());
+ fputs_filtered (local_octal_format_prefix (), stream);
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
for (p = valaddr;
@@ -701,7 +701,7 @@ print_octal_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
}
}
- fprintf_filtered (stream, local_octal_format_suffix ());
+ fputs_filtered (local_octal_format_suffix (), stream);
}
/* VALADDR points to an integer of LEN bytes.
@@ -744,7 +744,7 @@ print_decimal_chars (struct ui_file *stream, unsigned char *valaddr,
digits[i] = 0;
}
- fprintf_filtered (stream, local_decimal_format_prefix ());
+ fputs_filtered (local_decimal_format_prefix (), stream);
/* Ok, we have an unknown number of bytes of data to be printed in
* decimal.
@@ -841,7 +841,7 @@ print_decimal_chars (struct ui_file *stream, unsigned char *valaddr,
}
xfree (digits);
- fprintf_filtered (stream, local_decimal_format_suffix ());
+ fputs_filtered (local_decimal_format_suffix (), stream);
}
/* VALADDR points to an integer of LEN bytes. Print it in hex on stream. */
@@ -853,7 +853,7 @@ print_hex_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
/* FIXME: We should be not printing leading zeroes in most cases. */
- fprintf_filtered (stream, local_hex_format_prefix ());
+ fputs_filtered (local_hex_format_prefix (), stream);
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
for (p = valaddr;
@@ -872,7 +872,7 @@ print_hex_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
fprintf_filtered (stream, "%02x", *p);
}
}
- fprintf_filtered (stream, local_hex_format_suffix ());
+ fputs_filtered (local_hex_format_suffix (), stream);
}
/* Called by various <lang>_val_print routines to print elements of an
diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c
index 1b6f8ca..c2a3fbb 100644
--- a/gdb/vax-tdep.c
+++ b/gdb/vax-tdep.c
@@ -38,8 +38,6 @@ static gdbarch_register_name_ftype vax_register_name;
static gdbarch_skip_prologue_ftype vax_skip_prologue;
static gdbarch_frame_num_args_ftype vax_frame_num_args;
static gdbarch_deprecated_frame_chain_ftype vax_frame_chain;
-static gdbarch_frame_args_address_ftype vax_frame_args_address;
-static gdbarch_frame_locals_address_ftype vax_frame_locals_address;
static gdbarch_deprecated_extract_return_value_ftype vax_extract_return_value;
static gdbarch_deprecated_extract_struct_value_address_ftype
@@ -136,7 +134,7 @@ vax_sigtramp_saved_pc (struct frame_info *frame)
/* Get sigcontext address, it is the third parameter on the stack. */
if (get_next_frame (frame))
sigcontext_addr = read_memory_typed_address
- (FRAME_ARGS_ADDRESS (get_next_frame (frame))
+ (DEPRECATED_FRAME_ARGS_ADDRESS (get_next_frame (frame))
+ FRAME_ARGS_SKIP + sigcontext_offs,
builtin_type_void_data_ptr);
else
@@ -181,7 +179,7 @@ vax_frame_args_address (struct frame_info *frame)
static int
vax_frame_num_args (struct frame_info *fi)
{
- return (0xff & read_memory_integer (FRAME_ARGS_ADDRESS (fi), 1));
+ return (0xff & read_memory_integer (DEPRECATED_FRAME_ARGS_ADDRESS (fi), 1));
}
static CORE_ADDR
@@ -380,7 +378,7 @@ vax_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_deprecated_frame_chain (gdbarch, vax_frame_chain);
set_gdbarch_deprecated_frame_saved_pc (gdbarch, vax_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, vax_frame_args_address);
+ set_gdbarch_deprecated_frame_args_address (gdbarch, vax_frame_args_address);
set_gdbarch_deprecated_frame_init_saved_regs (gdbarch, vax_frame_init_saved_regs);
diff --git a/gdb/version.in b/gdb/version.in
index 6830f91..2efc51c 100644
--- a/gdb/version.in
+++ b/gdb/version.in
@@ -1 +1 @@
-5.3.90_2003-08-07-cvs
+2003-08-21-cvs
diff --git a/gdb/win32-nat.c b/gdb/win32-nat.c
index 77e9f4a..897a541 100644
--- a/gdb/win32-nat.c
+++ b/gdb/win32-nat.c
@@ -637,7 +637,7 @@ get_image_name (HANDLE h, void *address, int unicode)
/* See if we could read the address of a string, and that the
address isn't null. */
- if (!ReadProcessMemory (h, address, &address_ptr, sizeof (address_ptr), &done)
+ if (!ReadProcessMemory (h, address, &address_ptr, sizeof (address_ptr), &done)
|| done != sizeof (address_ptr) || !address_ptr)
return NULL;
diff --git a/gdb/x86-64-linux-nat.c b/gdb/x86-64-linux-nat.c
index 87b69c9..66a1b68 100644
--- a/gdb/x86-64-linux-nat.c
+++ b/gdb/x86-64-linux-nat.c
@@ -25,6 +25,7 @@
#include "inferior.h"
#include "gdbcore.h"
#include "regcache.h"
+#include "linux-nat.h"
#include "gdb_assert.h"
#include "gdb_string.h"
@@ -347,3 +348,9 @@ ps_get_thread_area (const struct ps_prochandle *ph,
return PS_ERR; /* ptrace failed. */
}
+void
+child_post_startup_inferior (ptid_t ptid)
+{
+ i386_cleanup_dregs ();
+ linux_child_post_startup_inferior (ptid);
+}
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c
index 1d960a0..78d06d3 100644
--- a/gdb/x86-64-tdep.c
+++ b/gdb/x86-64-tdep.c
@@ -39,18 +39,7 @@
#include "x86-64-tdep.h"
#include "i387-tdep.h"
-/* Register numbers of various important registers. */
-
-#define X86_64_RAX_REGNUM 0 /* %rax */
-#define X86_64_RDX_REGNUM 3 /* %rdx */
-#define X86_64_RDI_REGNUM 5 /* %rdi */
-#define X86_64_RBP_REGNUM 6 /* %rbp */
-#define X86_64_RSP_REGNUM 7 /* %rsp */
-#define X86_64_RIP_REGNUM 16 /* %rip */
-#define X86_64_EFLAGS_REGNUM 17 /* %eflags */
-#define X86_64_ST0_REGNUM 22 /* %st0 */
-#define X86_64_XMM0_REGNUM 38 /* %xmm0 */
-#define X86_64_XMM1_REGNUM 39 /* %xmm1 */
+/* Register information. */
struct x86_64_register_info
{
@@ -183,7 +172,7 @@ static int x86_64_dwarf_regmap[] =
X86_64_XMM0_REGNUM + 14, X86_64_XMM0_REGNUM + 15,
/* Floating Point Registers 0-7. */
- X86_64_ST0_REGNUM + 0, X86_64_ST0_REGNUM + 1,
+ X86_64_ST0_REGNUM + 0, X86_64_ST0_REGNUM + 1,
X86_64_ST0_REGNUM + 2, X86_64_ST0_REGNUM + 3,
X86_64_ST0_REGNUM + 4, X86_64_ST0_REGNUM + 5,
X86_64_ST0_REGNUM + 6, X86_64_ST0_REGNUM + 7
@@ -625,13 +614,6 @@ x86_64_push_arguments (struct regcache *regcache, int nargs,
int *stack_values;
stack_values = alloca (nargs * sizeof (int));
- /* Before storing anything to the stack we must skip
- the "Red zone" (see the "Function calling sequence" section
- of AMD64 ABI).
- It could have already been skipped in the function's
- prologue, but we don't care and will easily skip it once again. */
- sp -= 128;
-
for (i = 0; i < nargs; i++)
{
enum x86_64_reg_class class[MAX_CLASSES];
@@ -1096,7 +1078,7 @@ static const struct frame_unwind x86_64_frame_unwind =
};
static const struct frame_unwind *
-x86_64_frame_p (CORE_ADDR pc)
+x86_64_frame_sniffer (struct frame_info *next_frame)
{
return &x86_64_frame_unwind;
}
@@ -1168,8 +1150,9 @@ static const struct frame_unwind x86_64_sigtramp_frame_unwind =
};
static const struct frame_unwind *
-x86_64_sigtramp_frame_p (CORE_ADDR pc)
+x86_64_sigtramp_frame_sniffer (struct frame_info *next_frame)
{
+ CORE_ADDR pc = frame_pc_unwind (next_frame);
char *name;
find_pc_partial_function (pc, &name, NULL, NULL);
@@ -1213,6 +1196,14 @@ x86_64_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
return frame_id_build (fp + 16, frame_pc_unwind (next_frame));
}
+/* 16 byte align the SP per frame requirements. */
+
+static CORE_ADDR
+x86_64_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
+{
+ return sp & -(CORE_ADDR)16;
+}
+
void
x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -1256,6 +1247,8 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Call dummy code. */
set_gdbarch_push_dummy_call (gdbarch, x86_64_push_dummy_call);
+ set_gdbarch_frame_align (gdbarch, x86_64_frame_align);
+ set_gdbarch_frame_red_zone_size (gdbarch, 128);
set_gdbarch_convert_register_p (gdbarch, x86_64_convert_register_p);
set_gdbarch_register_to_value (gdbarch, i387_register_to_value);
@@ -1279,8 +1272,8 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
in the future. */
set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
- frame_unwind_append_predicate (gdbarch, x86_64_sigtramp_frame_p);
- frame_unwind_append_predicate (gdbarch, x86_64_frame_p);
+ frame_unwind_append_sniffer (gdbarch, x86_64_sigtramp_frame_sniffer);
+ frame_unwind_append_sniffer (gdbarch, x86_64_frame_sniffer);
frame_base_set_default (gdbarch, &x86_64_frame_base);
}
diff --git a/gdb/x86-64-tdep.h b/gdb/x86-64-tdep.h
index 70ceffb..608219c 100644
--- a/gdb/x86-64-tdep.h
+++ b/gdb/x86-64-tdep.h
@@ -30,6 +30,19 @@ struct frame_info;
#include "i386-tdep.h"
+/* Register numbers of various important registers. */
+
+#define X86_64_RAX_REGNUM 0 /* %rax */
+#define X86_64_RDX_REGNUM 3 /* %rdx */
+#define X86_64_RDI_REGNUM 5 /* %rdi */
+#define X86_64_RBP_REGNUM 6 /* %rbp */
+#define X86_64_RSP_REGNUM 7 /* %rsp */
+#define X86_64_RIP_REGNUM 16 /* %rip */
+#define X86_64_EFLAGS_REGNUM 17 /* %eflags */
+#define X86_64_ST0_REGNUM 22 /* %st0 */
+#define X86_64_XMM0_REGNUM 38 /* %xmm0 */
+#define X86_64_XMM1_REGNUM 39 /* %xmm1 */
+
/* Number of general purpose registers. */
#define X86_64_NUM_GREGS 22
@@ -47,5 +60,11 @@ void x86_64_supply_fxsave (char *fxsave);
reserved bits in *FXSAVE. */
void x86_64_fill_fxsave (char *fxsave, int regnum);
+
+
+/* Variables exported from amd64fbsd-tdep.c. */
+extern CORE_ADDR amd64fbsd_sigtramp_start;
+extern CORE_ADDR amd64fbsd_sigtramp_end;
+extern int amd64fbsd_sc_reg_offset[];
#endif /* x86-64-tdep.h */
diff --git a/include/ChangeLog b/include/ChangeLog
index 5e9ac7a..971de50 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,42 @@
+2003-08-20 Nick Clifton <nickc@redhat.com>
+
+ * bfdlink.h (enum report_method): New enum. Describes how to
+ report something.
+ (struct bfd_link_info): Delete fields 'no_undefined' and
+ 'allow_shlib_undefined'. Replace with
+ 'unresolved_symbols_in_objects' and
+ 'unresolved_symbols_in_shared_libs'.
+
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * bfdlink.h: Remove PARAMS macro. Replace PTR with void *.
+ * dis-asm.h: Likewise.
+
+2003-07-09 Bob Wilson <bob.wilson@acm.org>
+
+ * xtensa-config.h: Undef all macros before defining them.
+
+2003-07-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * demangle.h: Support C++.
+
+2003-07-01 Zack Weinberg <zack@codesourcery.com>
+
+ * filenames.h: New file imported from binutils.
+
+2003-06-30 Bob Wilson <bob.wilson@acm.org>
+
+ * xtensa-config.h: New file imported from binutils.
+
+2003-06-30 Bob Wilson <bob.wilson@acm.org>
+
+ * xtensa-config.h (XCHAL_HAVE_CONST16, XCHAL_HAVE_ABS,
+ XCHAL_HAVE_ADDX, XCHAL_HAVE_L32R): Define.
+
+2003-06-25 Alan Modra <amodra@bigpond.net.au>
+
+ * bfdlink.h: Correct spelling of "relocatable".
+
2003-06-22 Zack Weinberg <zack@codesourcery.com>
* safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC): Rename to
diff --git a/include/bfdlink.h b/include/bfdlink.h
index 4636025..c174dcd 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -1,5 +1,5 @@
/* bfdlink.h -- header file for BFD link routines
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
+ Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
@@ -171,26 +171,26 @@ struct bfd_link_hash_table
follows bfd_link_hash_indirect and bfd_link_hash_warning links to
the real symbol. */
extern struct bfd_link_hash_entry *bfd_link_hash_lookup
- PARAMS ((struct bfd_link_hash_table *, const char *, bfd_boolean create,
- bfd_boolean copy, bfd_boolean follow));
+ (struct bfd_link_hash_table *, const char *, bfd_boolean create,
+ bfd_boolean copy, bfd_boolean follow);
/* Look up an entry in the main linker hash table if the symbol might
be wrapped. This should only be used for references to an
undefined symbol, not for definitions of a symbol. */
extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
- PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean,
- bfd_boolean, bfd_boolean));
+ (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
+ bfd_boolean, bfd_boolean);
/* Traverse a link hash table. */
extern void bfd_link_hash_traverse
- PARAMS ((struct bfd_link_hash_table *,
- bfd_boolean (*) (struct bfd_link_hash_entry *, PTR),
- PTR));
+ (struct bfd_link_hash_table *,
+ bfd_boolean (*) (struct bfd_link_hash_entry *, void *),
+ void *);
/* Add an entry to the undefs list. */
extern void bfd_link_add_undef
- PARAMS ((struct bfd_link_hash_table *, struct bfd_link_hash_entry *));
+ (struct bfd_link_hash_table *, struct bfd_link_hash_entry *);
struct bfd_sym_chain
{
@@ -198,13 +198,26 @@ struct bfd_sym_chain
const char *name;
};
+/* How to handle unresolved symbols.
+ There are four possibilities which are enumerated below: */
+enum report_method
+{
+ /* This is the initial value when then link_info structure is created.
+ It allows the various stages of the linker to determine whether they
+ allowed to set the value. */
+ RM_NOT_YET_SET = 0,
+ RM_IGNORE,
+ RM_GENERATE_WARNING,
+ RM_GENERATE_ERROR
+};
+
/* This structure holds all the information needed to communicate
between BFD and the linker when doing a link. */
struct bfd_link_info
{
/* TRUE if BFD should generate a relocatable object file. */
- unsigned int relocateable: 1;
+ unsigned int relocatable: 1;
/* TRUE if BFD should generate relocation information in the final
executable. */
@@ -238,24 +251,6 @@ struct bfd_link_info
need much more time and therefore must be explicitly selected. */
unsigned int optimize: 1;
- /* TRUE if BFD should generate errors for undefined symbols
- even if generating a shared object. */
- unsigned int no_undefined: 1;
-
- /* TRUE if BFD should allow undefined symbols in shared objects even
- when no_undefined is set to disallow undefined symbols. The net
- result will be that undefined symbols in regular objects will
- still trigger an error, but undefined symbols in shared objects
- will be ignored. The implementation of no_undefined makes the
- assumption that the runtime linker will choke on undefined
- symbols. However there is at least one system (BeOS) where
- undefined symbols in shared libraries is normal since the kernel
- patches them at load time to select which function is most
- appropriate for the current architecture. I.E. dynamically
- select an appropriate memset function. Apparently it is also
- normal for HPPA shared libraries to have undefined symbols. */
- unsigned int allow_shlib_undefined: 1;
-
/* TRUE if ok to have multiple definition. */
unsigned int allow_multiple_definition: 1;
@@ -305,6 +300,17 @@ struct bfd_link_info
flags. */
unsigned int noexecstack: 1;
+ /* What to do with unresolved symbols in an object file.
+ When producing static binaries the default is GENERATE_ERROR.
+ When producing dynamic binaries the default is IGNORE. The
+ assumption with dynamic binaries is that the reference will be
+ resolved at load/execution time. */
+ enum report_method unresolved_syms_in_objects;
+
+ /* What to do with unresolved symbols in a shared library.
+ The same defaults apply. */
+ enum report_method unresolved_syms_in_shared_libs;
+
/* Which symbols to strip. */
enum bfd_link_strip strip;
@@ -350,7 +356,7 @@ struct bfd_link_info
struct bfd_sym_chain *gc_sym_list;
/* If a base output file is wanted, then this points to it */
- PTR base_file;
+ void *base_file;
/* The function to call when the executable or shared object is
loaded. */
@@ -399,7 +405,7 @@ struct bfd_link_callbacks
name of the symbol which caused the archive element to be pulled
in. */
bfd_boolean (*add_archive_element)
- PARAMS ((struct bfd_link_info *, bfd *abfd, const char *name));
+ (struct bfd_link_info *, bfd *abfd, const char *name);
/* A function which is called when a symbol is found with multiple
definitions. NAME is the symbol which is defined multiple times.
OBFD is the old BFD, OSEC is the old section, OVAL is the old
@@ -407,9 +413,9 @@ struct bfd_link_callbacks
the new value. OBFD may be NULL. OSEC and NSEC may be
bfd_com_section or bfd_ind_section. */
bfd_boolean (*multiple_definition)
- PARAMS ((struct bfd_link_info *, const char *name,
- bfd *obfd, asection *osec, bfd_vma oval,
- bfd *nbfd, asection *nsec, bfd_vma nval));
+ (struct bfd_link_info *, const char *name,
+ bfd *obfd, asection *osec, bfd_vma oval,
+ bfd *nbfd, asection *nsec, bfd_vma nval);
/* A function which is called when a common symbol is defined
multiple times. NAME is the symbol appearing multiple times.
OBFD is the BFD of the existing symbol; it may be NULL if this is
@@ -422,28 +428,27 @@ struct bfd_link_callbacks
bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE
is the size of the new symbol. */
bfd_boolean (*multiple_common)
- PARAMS ((struct bfd_link_info *, const char *name,
- bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
- bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize));
+ (struct bfd_link_info *, const char *name,
+ bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
+ bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize);
/* A function which is called to add a symbol to a set. ENTRY is
the link hash table entry for the set itself (e.g.,
__CTOR_LIST__). RELOC is the relocation to use for an entry in
- the set when generating a relocateable file, and is also used to
+ the set when generating a relocatable file, and is also used to
get the size of the entry when generating an executable file.
ABFD, SEC and VALUE identify the value to add to the set. */
bfd_boolean (*add_to_set)
- PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *entry,
- bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec,
- bfd_vma value));
+ (struct bfd_link_info *, struct bfd_link_hash_entry *entry,
+ bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec, bfd_vma value);
/* A function which is called when the name of a g++ constructor or
destructor is found. This is only called by some object file
formats. CONSTRUCTOR is TRUE for a constructor, FALSE for a
destructor. This will use BFD_RELOC_CTOR when generating a
- relocateable file. NAME is the name of the symbol found. ABFD,
+ relocatable file. NAME is the name of the symbol found. ABFD,
SECTION and VALUE are the value of the symbol. */
bfd_boolean (*constructor)
- PARAMS ((struct bfd_link_info *, bfd_boolean constructor,
- const char *name, bfd *abfd, asection *sec, bfd_vma value));
+ (struct bfd_link_info *, bfd_boolean constructor, const char *name,
+ bfd *abfd, asection *sec, bfd_vma value);
/* A function which is called to issue a linker warning. For
example, this is called when there is a reference to a warning
symbol. WARNING is the warning to be issued. SYMBOL is the name
@@ -452,16 +457,16 @@ struct bfd_link_callbacks
which trigerred the warning; either ABFD or SECTION or both may
be NULL if the location is not known. */
bfd_boolean (*warning)
- PARAMS ((struct bfd_link_info *, const char *warning, const char *symbol,
- bfd *abfd, asection *section, bfd_vma address));
+ (struct bfd_link_info *, const char *warning, const char *symbol,
+ bfd *abfd, asection *section, bfd_vma address);
/* A function which is called when a relocation is attempted against
an undefined symbol. NAME is the symbol which is undefined.
ABFD, SECTION and ADDRESS identify the location from which the
reference is made. FATAL indicates whether an undefined symbol is
a fatal error or not. In some cases SECTION may be NULL. */
bfd_boolean (*undefined_symbol)
- PARAMS ((struct bfd_link_info *, const char *name, bfd *abfd,
- asection *section, bfd_vma address, bfd_boolean fatal));
+ (struct bfd_link_info *, const char *name, bfd *abfd,
+ asection *section, bfd_vma address, bfd_boolean fatal);
/* A function which is called when a reloc overflow occurs. NAME is
the name of the symbol or section the reloc is against,
RELOC_NAME is the name of the relocation, and ADDEND is any
@@ -470,8 +475,8 @@ struct bfd_link_callbacks
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
bfd_boolean (*reloc_overflow)
- PARAMS ((struct bfd_link_info *, const char *name, const char *reloc_name,
- bfd_vma addend, bfd *abfd, asection *section, bfd_vma address));
+ (struct bfd_link_info *, const char *name, const char *reloc_name,
+ bfd_vma addend, bfd *abfd, asection *section, bfd_vma address);
/* A function which is called when a dangerous reloc is performed.
The canonical example is an a29k IHCONST reloc which does not
follow an IHIHALF reloc. MESSAGE is an appropriate message.
@@ -480,8 +485,8 @@ struct bfd_link_callbacks
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
bfd_boolean (*reloc_dangerous)
- PARAMS ((struct bfd_link_info *, const char *message,
- bfd *abfd, asection *section, bfd_vma address));
+ (struct bfd_link_info *, const char *message,
+ bfd *abfd, asection *section, bfd_vma address);
/* A function which is called when a reloc is found to be attached
to a symbol which is not being written out. NAME is the name of
the symbol. ABFD, SECTION and ADDRESS identify the location of
@@ -489,20 +494,20 @@ struct bfd_link_callbacks
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
bfd_boolean (*unattached_reloc)
- PARAMS ((struct bfd_link_info *, const char *name,
- bfd *abfd, asection *section, bfd_vma address));
+ (struct bfd_link_info *, const char *name,
+ bfd *abfd, asection *section, bfd_vma address);
/* A function which is called when a symbol in notice_hash is
defined or referenced. NAME is the symbol. ABFD, SECTION and
ADDRESS are the value of the symbol. If SECTION is
bfd_und_section, this is a reference. */
bfd_boolean (*notice)
- PARAMS ((struct bfd_link_info *, const char *name,
- bfd *abfd, asection *section, bfd_vma address));
+ (struct bfd_link_info *, const char *name,
+ bfd *abfd, asection *section, bfd_vma address);
/* A function which is called for reporting a linker error. ID is the
error identifier. The remaining input is the same as einfo () in
ld. */
bfd_boolean (*error_handler)
- PARAMS ((int id, const char * fmt, ...));
+ (int id, const char *fmt, ...);
/* Identifiers of linker error messages used by error_handler. */
#define LD_DEFINITION_IN_DISCARDED_SECTION 1
@@ -605,7 +610,7 @@ struct bfd_link_order_reloc
};
/* Allocate a new link_order for a section. */
-extern struct bfd_link_order *bfd_new_link_order PARAMS ((bfd *, asection *));
+extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *);
/* These structures are used to describe version information for the
ELF linker. These structures could be manipulated entirely inside
@@ -621,7 +626,7 @@ struct bfd_elf_version_expr
/* Regular expression. */
const char *pattern;
/* Matching function. */
- int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *));
+ int (*match) (struct bfd_elf_version_expr *, const char *);
/* Defined by ".symver". */
unsigned int symver: 1;
/* Defined by version script. */
diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog
index b6db306..35988e3 100644
--- a/include/coff/ChangeLog
+++ b/include/coff/ChangeLog
@@ -1,4 +1,38 @@
-2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * ti.h (GET_SCNHDR_NRELOC): Rename PTR param to LOC.
+ (PUT_SCNHDR_NRELOC, GET_SCNHDR_NLNNO, PUT_SCNHDR_NLNNO): Likewise.
+ (GET_SCNHDR_FLAGS, PUT_SCNHDR_FLAGS): Likewise.
+ (GET_SCNHDR_PAGE, PUT_SCNHDR_PAGE): Likewise.
+
+2003-07-17 Jeff Muizelaar <muizelaar@rogers.com>
+
+ * pe.h: (IMAGE_FILE_NET_RUN_FROM_SWAP): Define.
+ (IMAGE_FILE_MACHINE_WCEMIPSV2): Define.
+ (IMAGE_FILE_MACHINE_SH3DSP): Define.
+ (IMAGE_FILE_MACHINE_SH3E): Define.
+ (IMAGE_FILE_MACHINE_SH5): Define.
+ (IMAGE_FILE_MACHINE_AM33): Define.
+ (IMAGE_FILE_MACHINE_POWERPCFP): Define.
+ (IMAGE_FILE_MACHINE_AXP64): Define.
+ (IMAGE_FILE_MACHINE_TRICORE): Define.
+ (IMAGE_FILE_MACHINE_CEF): Define.
+ (IMAGE_FILE_MACHINE_EBC): Define.
+ (IMAGE_FILE_MACHINE_AMD64): Define.
+ (IMAGE_FILE_MACHINE_M32R): Define.
+ (IMAGE_FILE_MACHINE_CEE): Define.
+
+2003-07-14 Christian Groessler <chris@groessler.org>
+
+ * i860.h (AOUTSZ): Define for i860 coff.
+
+2003-06-29 Andreas Jaeger <aj@suse.de>
+
+ * xcoff.h (struct __rtinit ): Convert to ISO C90 prototypes.
+
+ * ecoff.h: Convert to ISO C90 prototypes. Replace PTR by void *.
+
+2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
* coff/h8300.h (H8300HNMAGIC, H8300SNMAGIC): New.
(H8300HNBADMAG, H8300SNBADMAG): New.
@@ -11,7 +45,7 @@
2003-03-25 Stan Cox <scox@redhat.com>
Nick Clifton <nickc@redhat.com>
-
+
Contribute support for Intel's iWMMXt chip - an ARM variant:
* arm.h (ARM_NOTE_SECTION): Define.
@@ -28,26 +62,26 @@
2002-02-01 Tom Rix <trix@redhat.com>
* xcoff.h: Conditionally support <aiaff> for pre AIX 4.3.
-
+
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* or32.h: New file.
2001-12-24 Tom Rix <trix@redhat.com>
- * xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
+ * xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
format.
- (XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
- archive header ascii elements.
+ (XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
+ archive header ascii elements.
2001-12-17 Tom Rix <trix@redhat.com>
* xcoff.h : Add .except and .typchk section string and styp flags.
- Fix xcoff_big_format_p macro.
+ Fix xcoff_big_format_p macro.
2001-12-16 Tom Rix <trix@redhat.com>
- * xcoff.h : Clean up formatting.
+ * xcoff.h : Clean up formatting.
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
@@ -57,9 +91,9 @@
* ti.h: Move arch-specific stuff from here...
(COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
- value.
+ value.
* tic54x.h: ...to here.
-
+
2001-10-26 Christian Groessler <cpg@aladdin.de>
* external.h (GET_LINENO_LNNO): Fix usage of H_GET_32/16.
@@ -83,7 +117,7 @@
2001-09-05 Tom Rix <trix@redhat.com>
* xcoff.h : Add XCOFF_SYSCALL32 and XCOFF_SYSCALL64 hash table flags.
-
+
2001-08-27 Andreas Jaeger <aj@suse.de>
* xcoff.h (struct __rtinit): Make proper prototype for rtl.
@@ -94,12 +128,12 @@ Fri Aug 24 01:18:51 2001 J"orn Rennecke <amylaar@redhat.com>
2001-04-05 Tom Rix <trix@redhat.com>
- * rs6000.h : move xcoff32 external structures from xcofflink.
- * rs6k64.h : move xcoff64 external structures from xcofflink.
+ * rs6000.h : move xcoff32 external structures from xcofflink.
+ * rs6k64.h : move xcoff64 external structures from xcofflink.
* internal.h : promote 32 bit structure elements to 64 bit
for xcoff64 support
* xcoff.h : New file.
-
+
2001-03-23 Nick Clifton <nickc@redhat.com>
* a29k.h: Fix compile time warning.
@@ -166,10 +200,10 @@ Fri Aug 24 01:18:51 2001 J"orn Rennecke <amylaar@redhat.com>
* rs6k64.h: New file.
2000-04-17 Timothy Wall <twall@cygnus.com>
-
+
* ti.h: Load page cleanup.
* intental.h: Add load page field.
-
+
Mon Apr 17 16:44:01 2000 David Mosberger <davidm@hpl.hp.com>
* pe.h (PEP64AOUTHDR): New header for PE+.
@@ -195,15 +229,15 @@ Mon Apr 17 16:44:01 2000 David Mosberger <davidm@hpl.hp.com>
2000-04-11 Timothy Wall <twall@cygnus.com>
* ti.h: Remove load page references until load pages are
- reimplemented.
+ reimplemented.
* tic54x.h: Ditto.
-
+
2000-04-07 Timothy Wall <twall@cygnus.com>
* internal.h: Fix some comments related to TI COFF (instead of tic80).
* ti.h: New.
* tic54x.h: New.
-
+
Wed Apr 5 22:08:41 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.
@@ -223,7 +257,7 @@ Wed Apr 5 22:08:41 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* arm.h: Add Windows CE definitions.
* mipspe.h: New file: Windows CE definitions for MIPS.
* pe.h: Add constants for ILF support.
-
+
2000-01-05 Nick Clifton <nickc@cygnus.com>
* pe.h: Fix formatting of comments.
@@ -295,7 +329,7 @@ Mon May 17 13:35:35 1999 Stan Cox <scox@cygnus.com>
1999-04-08 Nick Clifton <nickc@cygnus.com>
* mcore.h: New header file. Defines for Motorola's MCore
- processor.
+ processor.
Sun Dec 6 21:36:37 1998 Mark Elbrecht <snowball3@usa.net>
@@ -306,11 +340,11 @@ Wed Jan 27 13:35:35 1999 Stan Cox <scox@cygnus.com>
* arm.h (F_PIC_INT, F_ARM_2, F_ARM_3, F_ARM_4, F_APCS26):
Changed values to avoid clashing with IMAGE_FILE_* coff header
flag values.
-
+
Wed Apr 1 16:06:15 1998 Nick Clifton <nickc@cygnus.com>
* internal.h: Document numbers associated with Thumb symbol
- types.
+ types.
Fri Mar 27 17:16:57 1998 Ian Lance Taylor <ian@cygnus.com>
@@ -417,7 +451,7 @@ Wed Jun 26 16:24:26 1996 Ian Lance Taylor <ian@cygnus.com>
Fri Jun 21 11:17:46 1996 Richard Henderson <rth@tamu.edu>
* alpha.h: Add declarations for relocation types added for Alpha
- OSF/1 3.0.
+ OSF/1 3.0.
Tue Jun 18 16:04:29 1996 Jeffrey A. Law <law@rtl.cygnus.com>
@@ -443,7 +477,7 @@ Tue May 7 00:36:39 1996 Jeffrey A Law (law@cygnus.com)
(R_MOV16B1, R_MOV16B2): Renamed from R_MOVB1 and R_MOVB2.
(R_MOV24B1, R_MOV24B2): Renamed from R_MOVLB1 and R_MOVLB2.
(R_MOVL1, R_MOVL2): New relocs.
-
+
Fri May 3 13:01:12 1996 Jeffrey A Law (law@cygnus.com)
* internal.h (R_PCRWORD_B): Define for the h8300 relaxing
@@ -473,7 +507,7 @@ Thu Mar 21 16:25:57 1996 David Mosberger-Tang <davidm@azstarnet.com>
Thu Mar 14 15:22:44 1996 Jeffrey A Law (law@cygnus.com)
* internal.h (R_MEM_INDIRECT): New reloc for the h8300.
-
+
Fri Feb 9 10:44:11 1996 Ian Lance Taylor <ian@cygnus.com>
* aux-coff.h: Rename from aux.h, to avoid problems on hapless DOS
@@ -522,7 +556,7 @@ Wed Nov 1 15:25:18 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@l
Wed Oct 18 18:36:19 1995 Geoffrey Noer <noer@cygnus.com>
- * sym.h: #if 0'd out runtime_pdr struct because it chokes
+ * sym.h: #if 0'd out runtime_pdr struct because it chokes
Visual C++ and there aren't any references to it elsewhere in gdb.
Mon Oct 16 11:12:24 1995 Ian Lance Taylor <ian@cygnus.com>
diff --git a/include/coff/ecoff.h b/include/coff/ecoff.h
index 00d2f24..3a7aa4f 100644
--- a/include/coff/ecoff.h
+++ b/include/coff/ecoff.h
@@ -2,7 +2,7 @@
This does not include symbol information, found in sym.h and
symconst.h.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -296,21 +296,21 @@ struct ecoff_debug_info
fields are also used by the assembler to output ECOFF debugging
information. */
unsigned char *line;
- PTR external_dnr; /* struct dnr_ext */
- PTR external_pdr; /* struct pdr_ext */
- PTR external_sym; /* struct sym_ext */
- PTR external_opt; /* struct opt_ext */
+ void *external_dnr; /* struct dnr_ext */
+ void *external_pdr; /* struct pdr_ext */
+ void *external_sym; /* struct sym_ext */
+ void *external_opt; /* struct opt_ext */
union aux_ext *external_aux;
char *ss;
char *ssext;
- PTR external_fdr; /* struct fdr_ext */
- PTR external_rfd; /* struct rfd_ext */
- PTR external_ext; /* struct ext_ext */
+ void *external_fdr; /* struct fdr_ext */
+ void *external_rfd; /* struct rfd_ext */
+ void *external_ext; /* struct ext_ext */
/* These fields are used when linking. They may disappear at some
point. */
char *ssext_end;
- PTR external_ext_end;
+ void *external_ext_end;
/* When linking, this field holds a mapping from the input FDR
numbers to the output numbers, and is used when writing out the
@@ -406,32 +406,31 @@ struct ecoff_debug_swap
bfd_size_type external_rfd_size;
bfd_size_type external_ext_size;
/* Functions to swap in external symbolic data. */
- void (*swap_hdr_in) PARAMS ((bfd *, PTR, HDRR *));
- void (*swap_dnr_in) PARAMS ((bfd *, PTR, DNR *));
- void (*swap_pdr_in) PARAMS ((bfd *, PTR, PDR *));
- void (*swap_sym_in) PARAMS ((bfd *, PTR, SYMR *));
- void (*swap_opt_in) PARAMS ((bfd *, PTR, OPTR *));
- void (*swap_fdr_in) PARAMS ((bfd *, PTR, FDR *));
- void (*swap_rfd_in) PARAMS ((bfd *, PTR, RFDT *));
- void (*swap_ext_in) PARAMS ((bfd *, PTR, EXTR *));
- void (*swap_tir_in) PARAMS ((int, const struct tir_ext *, TIR *));
- void (*swap_rndx_in) PARAMS ((int, const struct rndx_ext *, RNDXR *));
+ void (*swap_hdr_in) (bfd *, void *, HDRR *);
+ void (*swap_dnr_in) (bfd *, void *, DNR *);
+ void (*swap_pdr_in) (bfd *, void *, PDR *);
+ void (*swap_sym_in) (bfd *, void *, SYMR *);
+ void (*swap_opt_in) (bfd *, void *, OPTR *);
+ void (*swap_fdr_in) (bfd *, void *, FDR *);
+ void (*swap_rfd_in) (bfd *, void *, RFDT *);
+ void (*swap_ext_in) (bfd *, void *, EXTR *);
+ void (*swap_tir_in) (int, const struct tir_ext *, TIR *);
+ void (*swap_rndx_in) (int, const struct rndx_ext *, RNDXR *);
/* Functions to swap out external symbolic data. */
- void (*swap_hdr_out) PARAMS ((bfd *, const HDRR *, PTR));
- void (*swap_dnr_out) PARAMS ((bfd *, const DNR *, PTR));
- void (*swap_pdr_out) PARAMS ((bfd *, const PDR *, PTR));
- void (*swap_sym_out) PARAMS ((bfd *, const SYMR *, PTR));
- void (*swap_opt_out) PARAMS ((bfd *, const OPTR *, PTR));
- void (*swap_fdr_out) PARAMS ((bfd *, const FDR *, PTR));
- void (*swap_rfd_out) PARAMS ((bfd *, const RFDT *, PTR));
- void (*swap_ext_out) PARAMS ((bfd *, const EXTR *, PTR));
- void (*swap_tir_out) PARAMS ((int, const TIR *, struct tir_ext *));
- void (*swap_rndx_out) PARAMS ((int, const RNDXR *, struct rndx_ext *));
+ void (*swap_hdr_out) (bfd *, const HDRR *, void *);
+ void (*swap_dnr_out) (bfd *, const DNR *, void *);
+ void (*swap_pdr_out) (bfd *, const PDR *, void *);
+ void (*swap_sym_out) (bfd *, const SYMR *, void *);
+ void (*swap_opt_out) (bfd *, const OPTR *, void *);
+ void (*swap_fdr_out) (bfd *, const FDR *, void *);
+ void (*swap_rfd_out) (bfd *, const RFDT *, void *);
+ void (*swap_ext_out) (bfd *, const EXTR *, void *);
+ void (*swap_tir_out) (int, const TIR *, struct tir_ext *);
+ void (*swap_rndx_out) (int, const RNDXR *, struct rndx_ext *);
/* Function to read symbol data and set up pointers in
ecoff_debug_info structure. The section argument is used for
ELF, not straight ECOFF. */
- bfd_boolean (*read_debug_info)
- PARAMS ((bfd *, asection *, struct ecoff_debug_info *));
+ bfd_boolean (*read_debug_info) (bfd *, asection *, struct ecoff_debug_info *);
};
#endif /* ! defined (ECOFF_H) */
diff --git a/include/coff/i860.h b/include/coff/i860.h
index dac7617..95d0c1a 100644
--- a/include/coff/i860.h
+++ b/include/coff/i860.h
@@ -37,6 +37,9 @@
#define I860BADMAG(x) ((x).f_magic != I860MAGIC)
+#undef AOUTSZ
+#define AOUTSZ 36
+
/* FIXME: What are the a.out magic numbers? */
#define _ETEXT "etext"
diff --git a/include/coff/pe.h b/include/coff/pe.h
index ff37875..363d307 100644
--- a/include/coff/pe.h
+++ b/include/coff/pe.h
@@ -1,6 +1,6 @@
/* pe.h - PE COFF header information
- Copyright 2000, 2001 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -32,6 +32,7 @@
#define IMAGE_FILE_32BIT_MACHINE 0x0100
#define IMAGE_FILE_DEBUG_STRIPPED 0x0200
#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800
#define IMAGE_FILE_SYSTEM 0x1000
#define IMAGE_FILE_DLL 0x2000
#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000
@@ -88,24 +89,37 @@
/* Machine numbers. */
-#define IMAGE_FILE_MACHINE_UNKNOWN 0x0
-#define IMAGE_FILE_MACHINE_ALPHA 0x184
-#define IMAGE_FILE_MACHINE_ARM 0x1c0
-#define IMAGE_FILE_MACHINE_ALPHA64 0x284
-#define IMAGE_FILE_MACHINE_I386 0x14c
-#define IMAGE_FILE_MACHINE_IA64 0x200
-#define IMAGE_FILE_MACHINE_M68K 0x268
-#define IMAGE_FILE_MACHINE_MIPS16 0x266
-#define IMAGE_FILE_MACHINE_MIPSFPU 0x366
-#define IMAGE_FILE_MACHINE_MIPSFPU16 0x466
-#define IMAGE_FILE_MACHINE_POWERPC 0x1f0
-#define IMAGE_FILE_MACHINE_R3000 0x162
-#define IMAGE_FILE_MACHINE_R4000 0x166
-#define IMAGE_FILE_MACHINE_R10000 0x168
-#define IMAGE_FILE_MACHINE_SH3 0x1a2
-#define IMAGE_FILE_MACHINE_SH4 0x1a6
-#define IMAGE_FILE_MACHINE_THUMB 0x1c2
-
+#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000
+#define IMAGE_FILE_MACHINE_ALPHA 0x0184
+#define IMAGE_FILE_MACHINE_ALPHA64 0x0284
+#define IMAGE_FILE_MACHINE_AM33 0x01d3
+#define IMAGE_FILE_MACHINE_AMD64 0x8664
+#define IMAGE_FILE_MACHINE_ARM 0x01c0
+#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64
+#define IMAGE_FILE_MACHINE_CEE 0xc0ee
+#define IMAGE_FILE_MACHINE_CEF 0x0cef
+#define IMAGE_FILE_MACHINE_EBC 0x0ebc
+#define IMAGE_FILE_MACHINE_I386 0x014c
+#define IMAGE_FILE_MACHINE_IA64 0x0200
+#define IMAGE_FILE_MACHINE_M32R 0x9041
+#define IMAGE_FILE_MACHINE_M68K 0x0268
+#define IMAGE_FILE_MACHINE_MIPS16 0x0266
+#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
+#define IMAGE_FILE_MACHINE_POWERPC 0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
+#define IMAGE_FILE_MACHINE_R10000 0x0168
+#define IMAGE_FILE_MACHINE_R3000 0x0162
+#define IMAGE_FILE_MACHINE_R4000 0x0166
+#define IMAGE_FILE_MACHINE_SH3 0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3
+#define IMAGE_FILE_MACHINE_SH3E 0x01a4
+#define IMAGE_FILE_MACHINE_SH4 0x01a6
+#define IMAGE_FILE_MACHINE_SH5 0x01a8
+#define IMAGE_FILE_MACHINE_THUMB 0x01c2
+#define IMAGE_FILE_MACHINE_TRICORE 0x0520
+#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
+
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
diff --git a/include/coff/ti.h b/include/coff/ti.h
index 8df1522..a15fe71 100644
--- a/include/coff/ti.h
+++ b/include/coff/ti.h
@@ -2,7 +2,7 @@
customized in a target-specific file, and then this file included (see
tic54x.h for an example).
- Copyright 2001 Free Software Foundation, Inc.
+ Copyright 2001, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -215,25 +215,25 @@ struct external_scnhdr {
Assume we're dealing with the COFF2 scnhdr structure, and adjust
accordingly
*/
-#define GET_SCNHDR_NRELOC(ABFD, PTR) \
- (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, PTR))
-#define PUT_SCNHDR_NRELOC(ABFD, VAL, PTR) \
- (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, PTR))
-#define GET_SCNHDR_NLNNO(ABFD, PTR) \
- (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -2))
-#define PUT_SCNHDR_NLNNO(ABFD, VAL, PTR) \
- (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -2))
-#define GET_SCNHDR_FLAGS(ABFD, PTR) \
- (COFF2_P (ABFD) ? H_GET_32 (ABFD, PTR) : H_GET_16 (ABFD, (PTR) -4))
-#define PUT_SCNHDR_FLAGS(ABFD, VAL, PTR) \
- (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, PTR) : H_PUT_16 (ABFD, VAL, (PTR) -4))
-#define GET_SCNHDR_PAGE(ABFD, PTR) \
- (COFF2_P (ABFD) ? H_GET_16 (ABFD, PTR) : (unsigned) H_GET_8 (ABFD, (PTR) -7))
+#define GET_SCNHDR_NRELOC(ABFD, LOC) \
+ (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, LOC))
+#define PUT_SCNHDR_NRELOC(ABFD, VAL, LOC) \
+ (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, LOC))
+#define GET_SCNHDR_NLNNO(ABFD, LOC) \
+ (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 2))
+#define PUT_SCNHDR_NLNNO(ABFD, VAL, LOC) \
+ (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 2))
+#define GET_SCNHDR_FLAGS(ABFD, LOC) \
+ (COFF2_P (ABFD) ? H_GET_32 (ABFD, LOC) : H_GET_16 (ABFD, (LOC) - 4))
+#define PUT_SCNHDR_FLAGS(ABFD, VAL, LOC) \
+ (COFF2_P (ABFD) ? H_PUT_32 (ABFD, VAL, LOC) : H_PUT_16 (ABFD, VAL, (LOC) - 4))
+#define GET_SCNHDR_PAGE(ABFD, LOC) \
+ (COFF2_P (ABFD) ? H_GET_16 (ABFD, LOC) : (unsigned) H_GET_8 (ABFD, (LOC) - 7))
/* on output, make sure that the "reserved" field is zero */
-#define PUT_SCNHDR_PAGE(ABFD, VAL, PTR) \
+#define PUT_SCNHDR_PAGE(ABFD, VAL, LOC) \
(COFF2_P (ABFD) \
- ? H_PUT_16 (ABFD, VAL, PTR) \
- : H_PUT_8 (ABFD, VAL, (PTR) -7), H_PUT_8 (ABFD, 0, (PTR) -8))
+ ? H_PUT_16 (ABFD, VAL, LOC) \
+ : H_PUT_8 (ABFD, VAL, (LOC) - 7), H_PUT_8 (ABFD, 0, (LOC) - 8))
/* TI COFF stores section size as number of bytes (address units, not octets),
so adjust to be number of octets, which is what BFD expects */
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
index b27cece..64a9ee1 100644
--- a/include/coff/xcoff.h
+++ b/include/coff/xcoff.h
@@ -1,6 +1,6 @@
/* Internal format of XCOFF object file data structures for BFD.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
@@ -424,7 +424,7 @@ struct __rtinit
{
/* Pointer to runtime linker.
XXX: Is the parameter really void? */
- int (*rtl) PARAMS ((void));
+ int (*rtl) (void);
/* Offset to array of init functions, 0 if none. */
int init_offset;
diff --git a/include/demangle.h b/include/demangle.h
index 21e9dd3..bff2669 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -23,6 +23,10 @@
#include "ansidecl.h"
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
/* Options passed to cplus_demangle (in 2nd parameter). */
#define DMGL_NO_OPTS 0 /* For readability... */
@@ -160,4 +164,8 @@ enum gnu_v3_dtor_kinds {
extern enum gnu_v3_dtor_kinds
is_gnu_v3_mangled_dtor PARAMS ((const char *name));
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif /* DEMANGLE_H */
diff --git a/include/dis-asm.h b/include/dis-asm.h
index 392cbf9..1d67ae4 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -1,6 +1,6 @@
/* Interface between the opcode library and its callers.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ extern "C" {
#include <stdio.h>
#include "bfd.h"
-typedef int (*fprintf_ftype) PARAMS((PTR, const char*, ...));
+typedef int (*fprintf_ftype) (void *, const char*, ...);
enum dis_insn_type {
dis_noninsn, /* Not a valid instruction */
@@ -59,8 +59,8 @@ enum dis_insn_type {
typedef struct disassemble_info {
fprintf_ftype fprintf_func;
- PTR stream;
- PTR application_data;
+ void *stream;
+ void *application_data;
/* Target description. We could replace this with a pointer to the bfd,
but that would require one. There currently isn't any such requirement
@@ -98,7 +98,7 @@ typedef struct disassemble_info {
The bottom 16 bits are for the internal use of the disassembler. */
unsigned long flags;
#define INSN_HAS_RELOC 0x80000000
- PTR private_data;
+ void *private_data;
/* Function used to get bytes to disassemble. MEMADDR is the
address of the stuff to be disassembled, MYADDR is the address to
@@ -106,19 +106,19 @@ typedef struct disassemble_info {
INFO is a pointer to this struct.
Returns an errno value or 0 for success. */
int (*read_memory_func)
- PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, unsigned int length,
- struct disassemble_info *info));
+ (bfd_vma memaddr, bfd_byte *myaddr, unsigned int length,
+ struct disassemble_info *info);
/* Function which should be called if we get an error that we can't
recover from. STATUS is the errno value from read_memory_func and
MEMADDR is the address that we were trying to read. INFO is a
pointer to this struct. */
void (*memory_error_func)
- PARAMS ((int status, bfd_vma memaddr, struct disassemble_info *info));
+ (int status, bfd_vma memaddr, struct disassemble_info *info);
/* Function called to print ADDR. */
void (*print_address_func)
- PARAMS ((bfd_vma addr, struct disassemble_info *info));
+ (bfd_vma addr, struct disassemble_info *info);
/* Function called to determine if there is a symbol at the given ADDR.
If there is, the function returns 1, otherwise it returns 0.
@@ -128,7 +128,7 @@ typedef struct disassemble_info {
address, (normally because there is a symbol associated with
that address), but sometimes we want to mask out the overlay bits. */
int (* symbol_at_address_func)
- PARAMS ((bfd_vma addr, struct disassemble_info * info));
+ (bfd_vma addr, struct disassemble_info * info);
/* These are for buffer_read_memory. */
bfd_byte *buffer;
@@ -177,88 +177,88 @@ typedef struct disassemble_info {
/* Standard disassemblers. Disassemble one instruction at the given
target address. Return number of octets processed. */
-typedef int (*disassembler_ftype)
- PARAMS((bfd_vma, disassemble_info *));
-
-extern int print_insn_big_mips PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_little_mips PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_i386 PARAMS ((bfd_vma, disassemble_info *));
-extern int print_insn_i386_att PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_i386_intel PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_ia64 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_i370 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_m68hc11 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_m68hc12 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_m68k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_z8001 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_z8002 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_h8300 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_h8300h PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_h8300s PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_h8500 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_alpha PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_big_arm PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_little_arm PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_sparc PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_big_a29k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_little_a29k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_avr PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_d10v PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_d30v PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_dlx PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_fr30 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_hppa PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_i860 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_i960 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_ip2k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_m32r PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_m88k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_mcore PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_mmix PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_msp430 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_openrisc PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_big_or32 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_little_or32 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_pdp11 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_little_powerpc PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_rs6000 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_sh PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_tic30 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_tic4x PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_tic54x PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_tic80 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_v850 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_vax PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_w65 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_xstormy16 PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_xtensa PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_sh64 PARAMS ((bfd_vma, disassemble_info *));
-extern int print_insn_sh64x_media PARAMS ((bfd_vma, disassemble_info *));
-extern int print_insn_frv PARAMS ((bfd_vma, disassemble_info *));
-extern int print_insn_iq2000 PARAMS ((bfd_vma, disassemble_info *));
-
-extern disassembler_ftype arc_get_disassembler PARAMS ((void *));
-extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *));
-
-extern void print_mips_disassembler_options PARAMS ((FILE *));
-extern void print_ppc_disassembler_options PARAMS ((FILE *));
-extern void print_arm_disassembler_options PARAMS ((FILE *));
-extern void parse_arm_disassembler_option PARAMS ((char *));
-extern int get_arm_regname_num_options PARAMS ((void));
-extern int set_arm_regname_option PARAMS ((int));
-extern int get_arm_regnames PARAMS ((int, const char **, const char **, const char ***));
+typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
+
+extern int print_insn_big_mips (bfd_vma, disassemble_info *);
+extern int print_insn_little_mips (bfd_vma, disassemble_info *);
+extern int print_insn_i386 (bfd_vma, disassemble_info *);
+extern int print_insn_i386_att (bfd_vma, disassemble_info *);
+extern int print_insn_i386_intel (bfd_vma, disassemble_info *);
+extern int print_insn_ia64 (bfd_vma, disassemble_info *);
+extern int print_insn_i370 (bfd_vma, disassemble_info *);
+extern int print_insn_m68hc11 (bfd_vma, disassemble_info *);
+extern int print_insn_m68hc12 (bfd_vma, disassemble_info *);
+extern int print_insn_m68k (bfd_vma, disassemble_info *);
+extern int print_insn_z8001 (bfd_vma, disassemble_info *);
+extern int print_insn_z8002 (bfd_vma, disassemble_info *);
+extern int print_insn_h8300 (bfd_vma, disassemble_info *);
+extern int print_insn_h8300h (bfd_vma, disassemble_info *);
+extern int print_insn_h8300s (bfd_vma, disassemble_info *);
+extern int print_insn_h8500 (bfd_vma, disassemble_info *);
+extern int print_insn_alpha (bfd_vma, disassemble_info *);
+extern int print_insn_big_arm (bfd_vma, disassemble_info *);
+extern int print_insn_little_arm (bfd_vma, disassemble_info *);
+extern int print_insn_sparc (bfd_vma, disassemble_info *);
+extern int print_insn_big_a29k (bfd_vma, disassemble_info *);
+extern int print_insn_little_a29k (bfd_vma, disassemble_info *);
+extern int print_insn_avr (bfd_vma, disassemble_info *);
+extern int print_insn_d10v (bfd_vma, disassemble_info *);
+extern int print_insn_d30v (bfd_vma, disassemble_info *);
+extern int print_insn_dlx (bfd_vma, disassemble_info *);
+extern int print_insn_fr30 (bfd_vma, disassemble_info *);
+extern int print_insn_hppa (bfd_vma, disassemble_info *);
+extern int print_insn_i860 (bfd_vma, disassemble_info *);
+extern int print_insn_i960 (bfd_vma, disassemble_info *);
+extern int print_insn_ip2k (bfd_vma, disassemble_info *);
+extern int print_insn_m32r (bfd_vma, disassemble_info *);
+extern int print_insn_m88k (bfd_vma, disassemble_info *);
+extern int print_insn_mcore (bfd_vma, disassemble_info *);
+extern int print_insn_mmix (bfd_vma, disassemble_info *);
+extern int print_insn_mn10200 (bfd_vma, disassemble_info *);
+extern int print_insn_mn10300 (bfd_vma, disassemble_info *);
+extern int print_insn_msp430 (bfd_vma, disassemble_info *);
+extern int print_insn_ns32k (bfd_vma, disassemble_info *);
+extern int print_insn_openrisc (bfd_vma, disassemble_info *);
+extern int print_insn_big_or32 (bfd_vma, disassemble_info *);
+extern int print_insn_little_or32 (bfd_vma, disassemble_info *);
+extern int print_insn_pdp11 (bfd_vma, disassemble_info *);
+extern int print_insn_pj (bfd_vma, disassemble_info *);
+extern int print_insn_big_powerpc (bfd_vma, disassemble_info *);
+extern int print_insn_little_powerpc (bfd_vma, disassemble_info *);
+extern int print_insn_rs6000 (bfd_vma, disassemble_info *);
+extern int print_insn_s390 (bfd_vma, disassemble_info *);
+extern int print_insn_sh (bfd_vma, disassemble_info *);
+extern int print_insn_tic30 (bfd_vma, disassemble_info *);
+extern int print_insn_tic4x (bfd_vma, disassemble_info *);
+extern int print_insn_tic54x (bfd_vma, disassemble_info *);
+extern int print_insn_tic80 (bfd_vma, disassemble_info *);
+extern int print_insn_v850 (bfd_vma, disassemble_info *);
+extern int print_insn_vax (bfd_vma, disassemble_info *);
+extern int print_insn_w65 (bfd_vma, disassemble_info *);
+extern int print_insn_xstormy16 (bfd_vma, disassemble_info *);
+extern int print_insn_xtensa (bfd_vma, disassemble_info *);
+extern int print_insn_sh64 (bfd_vma, disassemble_info *);
+extern int print_insn_sh64x_media (bfd_vma, disassemble_info *);
+extern int print_insn_frv (bfd_vma, disassemble_info *);
+extern int print_insn_iq2000 (bfd_vma, disassemble_info *);
+
+extern disassembler_ftype arc_get_disassembler (void *);
+extern disassembler_ftype cris_get_disassembler (bfd *);
+
+extern void print_mips_disassembler_options (FILE *);
+extern void print_ppc_disassembler_options (FILE *);
+extern void print_arm_disassembler_options (FILE *);
+extern void parse_arm_disassembler_option (char *);
+extern int get_arm_regname_num_options (void);
+extern int set_arm_regname_option (int);
+extern int get_arm_regnames
+ (int, const char **, const char **, const char ***);
/* Fetch the disassembler for a given BFD, if that support is available. */
-extern disassembler_ftype disassembler PARAMS ((bfd *));
+extern disassembler_ftype disassembler (bfd *);
/* Document any target specific options available from the disassembler. */
-extern void disassembler_usage PARAMS ((FILE *));
+extern void disassembler_usage (FILE *);
/* This block of definitions is for particular callers who read instructions
@@ -267,22 +267,22 @@ extern void disassembler_usage PARAMS ((FILE *));
/* Here is a function which callers may wish to use for read_memory_func.
It gets bytes from a buffer. */
extern int buffer_read_memory
- PARAMS ((bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *));
+ (bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *);
/* This function goes with buffer_read_memory.
It prints a message using info->fprintf_func and info->stream. */
-extern void perror_memory PARAMS ((int, bfd_vma, struct disassemble_info *));
+extern void perror_memory (int, bfd_vma, struct disassemble_info *);
/* Just print the address in hex. This is included for completeness even
though both GDB and objdump provide their own (to print symbolic
addresses). */
extern void generic_print_address
- PARAMS ((bfd_vma, struct disassemble_info *));
+ (bfd_vma, struct disassemble_info *);
/* Always true. */
extern int generic_symbol_at_address
- PARAMS ((bfd_vma, struct disassemble_info *));
+ (bfd_vma, struct disassemble_info *);
/* Macro to initialize a disassemble_info struct. This should be called
by all applications creating such a struct. */
@@ -302,7 +302,7 @@ extern int generic_symbol_at_address
#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
(INFO).fprintf_func = (fprintf_ftype)(FPRINTF_FUNC), \
- (INFO).stream = (PTR)(STREAM), \
+ (INFO).stream = (STREAM), \
(INFO).section = NULL, \
(INFO).symbols = NULL, \
(INFO).num_symbols = 0, \
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index eb4b7cc..f538951 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,58 @@
+2003-08-21 James Cownie <jcownie@etnus.com>
+
+ * dwarf2.h: Add PGI dwarf extensions.
+
+2003-08-08 Dmitry Diky <diwil@mail.ru>
+
+ * msp430.h: Add xW42 and xE42 parts. Sort MPU list according to
+ gcc order.
+
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * reloc-macros.h (START_RELOC_NUMBERS) : Remove PARAMS macro. Use
+ C90 function definition. Formatting.
+ (RELOC_NUMBER): Remove !__STDC__ code.
+
+2003-07-28 Eric Christopher <echristo@redhat.com>
+
+ * ppc.h (R_PPC_RELAX32): New. Fake relocation.
+
+2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * v850.h (SHF_V850_GPREL): New.
+ (SHF_V850_EPREL): Likewise.
+ (SHF_V850_R0REL): Likewise.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-05-16 Alexandre Oliva <aoliva@redhat.com>
+ * mn10300.h: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
+ PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
+ Renumbered all relocs.
+ 2001-04-12 Alexandre Oliva <aoliva@redhat.com>
+ * mn10300.h (R_MN10300_GOTPC, R_MN10300_GOTOFF,
+ R_MN10300_PLT32, R_MN10300_GOT32, R_MN10300_GOT24,
+ R_MN10300_GOT16, R_MN10300_COPY, R_MN10300_GLOB_DAT,
+ R_MN10300_JMP_SLOT, R_MN10300_RELATIVE): New relocs.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
+ * mn10300.h (E_MN10300_MACH_AM33_2): Renamed from
+ E_MN10300_MACH_AM332.
+ 2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
+ * mn10300.h (E_MN10300_MACH_AM332): Defined.
+
+2003-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * s390.h (elf_s390_reloc_type): Add long displacement relocations
+ R_390_20, R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.
+
+2003-06-29 Andreas Jaeger <aj@suse.de>
+
+ * mmix.h: Convert to ISO C90 prototypes.
+ * mips.h: Likewise.
+
2003-06-13 Robert Millan <zeratul2@wanadoo.es>
* common.h (GNU_ABI_TAG_NETBSD): New tag.
@@ -95,7 +150,7 @@
2002-04-02 Alexandre Oliva <aoliva@redhat.com>
- * sh.h (EF_SH_MERGE_MACH): Handle SH2E.
+ * sh.h (EF_SH_MERGE_MACH): Handle SH2E.
2002-04-02 Elena Zannoni <ezannoni@redhat.com>
diff --git a/include/elf/dwarf2.h b/include/elf/dwarf2.h
index 9c8ce4e..26d2dea 100644
--- a/include/elf/dwarf2.h
+++ b/include/elf/dwarf2.h
@@ -1,7 +1,7 @@
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
- Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002
- Free Software Foundation, Inc.
+ Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
+ 2003 Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
Office (AJPO), Florida State Unviversity and Silicon Graphics Inc.
@@ -198,7 +198,10 @@ enum dwarf_tag
/* Extensions for UPC. See: http://upc.gwu.edu/~upc. */
DW_TAG_upc_shared_type = 0x8765,
DW_TAG_upc_strict_type = 0x8766,
- DW_TAG_upc_relaxed_type = 0x8767
+ DW_TAG_upc_relaxed_type = 0x8767,
+ /* PGI (STMicroelectronics) extensions. No documentation available. */
+ DW_TAG_PGI_kanji_type = 0xA000,
+ DW_TAG_PGI_interface_block = 0xA020
};
#define DW_TAG_lo_user 0x4080
@@ -336,7 +339,11 @@ enum dwarf_attribute
/* VMS extensions. */
DW_AT_VMS_rtnbeg_pd_address = 0x2201,
/* UPC extension. */
- DW_AT_upc_threads_scaled = 0x3210
+ DW_AT_upc_threads_scaled = 0x3210,
+ /* PGI (STMicroelectronics) extensions. */
+ DW_AT_PGI_lbase = 0x3a00,
+ DW_AT_PGI_soffset = 0x3a01,
+ DW_AT_PGI_lstride = 0x3a02
};
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
diff --git a/include/elf/mips.h b/include/elf/mips.h
index 44f7cb9..4b36ff7 100644
--- a/include/elf/mips.h
+++ b/include/elf/mips.h
@@ -1,5 +1,5 @@
/* MIPS ELF support for BFD.
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003
Free Software Foundation, Inc.
By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
@@ -456,9 +456,9 @@ typedef struct
/* MIPS ELF .reginfo swapping routines. */
extern void bfd_mips_elf32_swap_reginfo_in
- PARAMS ((bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *));
+ (bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *);
extern void bfd_mips_elf32_swap_reginfo_out
- PARAMS ((bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *));
+ (bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *);
/* Processor specific section flags. */
@@ -822,9 +822,9 @@ typedef struct
/* MIPS ELF option header swapping routines. */
extern void bfd_mips_elf_swap_options_in
- PARAMS ((bfd *, const Elf_External_Options *, Elf_Internal_Options *));
+ (bfd *, const Elf_External_Options *, Elf_Internal_Options *);
extern void bfd_mips_elf_swap_options_out
- PARAMS ((bfd *, const Elf_Internal_Options *, Elf_External_Options *));
+ (bfd *, const Elf_Internal_Options *, Elf_External_Options *);
/* Values which may appear in the kind field of an Elf_Options
structure. */
@@ -926,9 +926,9 @@ typedef struct
/* MIPS ELF reginfo swapping routines. */
extern void bfd_mips_elf64_swap_reginfo_in
- PARAMS ((bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *));
+ (bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *);
extern void bfd_mips_elf64_swap_reginfo_out
- PARAMS ((bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *));
+ (bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *);
/* Masks for the info work of an ODK_EXCEPTIONS descriptor. */
#define OEX_FPU_MIN 0x1f /* FPEs which must be enabled. */
diff --git a/include/elf/mmix.h b/include/elf/mmix.h
index 98536e2..fef3e91 100644
--- a/include/elf/mmix.h
+++ b/include/elf/mmix.h
@@ -1,5 +1,5 @@
/* MMIX support for BFD.
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -158,11 +158,11 @@ END_RELOC_NUMBERS (R_MMIX_max)
#ifdef BFD_ARCH_SIZE
extern bfd_boolean _bfd_mmix_prepare_linker_allocated_gregs
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_mmix_finalize_linker_allocated_gregs
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_mmix_check_all_relocs
- PARAMS ((bfd *, struct bfd_link_info *));
+ (bfd *, struct bfd_link_info *);
#endif
#endif /* ELF_MMIX_H */
diff --git a/include/elf/mn10300.h b/include/elf/mn10300.h
index e10be90..e640096 100644
--- a/include/elf/mn10300.h
+++ b/include/elf/mn10300.h
@@ -1,5 +1,5 @@
/* MN10300 ELF support for BFD.
- Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -36,6 +36,20 @@ START_RELOC_NUMBERS (elf_mn10300_reloc_type)
RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8)
RELOC_NUMBER (R_MN10300_24, 9)
+ RELOC_NUMBER (R_MN10300_GOTPC32, 10)
+ RELOC_NUMBER (R_MN10300_GOTPC16, 11)
+ RELOC_NUMBER (R_MN10300_GOTOFF32, 12)
+ RELOC_NUMBER (R_MN10300_GOTOFF24, 13)
+ RELOC_NUMBER (R_MN10300_GOTOFF16, 14)
+ RELOC_NUMBER (R_MN10300_PLT32, 15)
+ RELOC_NUMBER (R_MN10300_PLT16, 16)
+ RELOC_NUMBER (R_MN10300_GOT32, 17)
+ RELOC_NUMBER (R_MN10300_GOT24, 18)
+ RELOC_NUMBER (R_MN10300_GOT16, 19)
+ RELOC_NUMBER (R_MN10300_COPY, 20)
+ RELOC_NUMBER (R_MN10300_GLOB_DAT, 21)
+ RELOC_NUMBER (R_MN10300_JMP_SLOT, 22)
+ RELOC_NUMBER (R_MN10300_RELATIVE, 23)
END_RELOC_NUMBERS (R_MN10300_MAX)
/* Machine variant if we know it. This field was invented at Cygnus,
@@ -50,4 +64,5 @@ END_RELOC_NUMBERS (R_MN10300_MAX)
#define E_MN10300_MACH_MN10300 0x00810000
#define E_MN10300_MACH_AM33 0x00820000
+#define E_MN10300_MACH_AM33_2 0x00830000
#endif /* _ELF_MN10300_H */
diff --git a/include/elf/msp430.h b/include/elf/msp430.h
index cb3f241..912ded7 100644
--- a/include/elf/msp430.h
+++ b/include/elf/msp430.h
@@ -26,19 +26,20 @@
/* Processor specific flags for the ELF header e_flags field. */
#define EF_MSP430_MACH 0xff
-#define E_MSP430_MACH_MSP430x11x1 110
#define E_MSP430_MACH_MSP430x11 11
+#define E_MSP430_MACH_MSP430x11x1 110
#define E_MSP430_MACH_MSP430x12 12
#define E_MSP430_MACH_MSP430x13 13
#define E_MSP430_MACH_MSP430x14 14
+#define E_MSP430_MACH_MSP430x15 15
+#define E_MSP430_MACH_MSP430x16 16
#define E_MSP430_MACH_MSP430x31 31
#define E_MSP430_MACH_MSP430x32 32
#define E_MSP430_MACH_MSP430x33 33
#define E_MSP430_MACH_MSP430x41 41
+#define E_MSP430_MACH_MSP430x42 42
#define E_MSP430_MACH_MSP430x43 43
#define E_MSP430_MACH_MSP430x44 44
-#define E_MSP430_MACH_MSP430x15 15
-#define E_MSP430_MACH_MSP430x16 16
/* Relocations. */
START_RELOC_NUMBERS (elf_msp430_reloc_type)
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
index 52bcc1e..54914e3 100644
--- a/include/elf/ppc.h
+++ b/include/elf/ppc.h
@@ -120,7 +120,11 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
- /* These are GNU extensions to enable C++ vtable garbage collection. */
+/* Fake relocation for branch stubs. This will keep them
+ together. */
+#define R_PPC_RELAX32 251
+
+/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254)
diff --git a/include/elf/reloc-macros.h b/include/elf/reloc-macros.h
index 9ad346c..4a3a60f 100644
--- a/include/elf/reloc-macros.h
+++ b/include/elf/reloc-macros.h
@@ -1,5 +1,5 @@
/* Generic relocation support for BFD.
- Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -46,10 +46,9 @@
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
following function will be generated:
- static const char * foo PARAMS ((unsigned long rtype));
+ static const char *foo (unsigned long rtype);
static const char *
- foo (rtype)
- unsigned long rtype;
+ foo (unsigned long rtype)
{
switch (rtype)
{
@@ -70,26 +69,22 @@
the relocation is not recognised, NULL is returned. */
#define START_RELOC_NUMBERS(name) \
-static const char * name PARAMS ((unsigned long rtype)); \
+static const char *name (unsigned long rtype); \
static const char * \
-name (rtype) \
- unsigned long rtype; \
+name (unsigned long rtype) \
{ \
switch (rtype) \
- {
+ {
-#if defined (__STDC__) || defined (ALMOST_STDC)
-#define RELOC_NUMBER(name, number) case number : return #name ;
-#else
-#define RELOC_NUMBER(name, number) case number : return "name" ;
-#endif
+#define RELOC_NUMBER(name, number) \
+ case number: return #name;
#define FAKE_RELOC(name, number)
#define EMPTY_RELOC(name)
#define END_RELOC_NUMBERS(name) \
default: return NULL; \
- } \
+ } \
}
diff --git a/include/elf/s390.h b/include/elf/s390.h
index 6a21c3b..3a1306f 100644
--- a/include/elf/s390.h
+++ b/include/elf/s390.h
@@ -110,6 +110,11 @@ START_RELOC_NUMBERS (elf_s390_reloc_type)
RELOC_NUMBER (R_390_TLS_DTPOFF, 55) /* Offset in TLS block. */
RELOC_NUMBER (R_390_TLS_TPOFF, 56) /* Negate offset in static TLS
block. */
+ RELOC_NUMBER (R_390_20, 57) /* Direct 20 bit. */
+ RELOC_NUMBER (R_390_GOT20, 58) /* 20 bit GOT offset. */
+ RELOC_NUMBER (R_390_GOTPLT20, 59) /* 20 bit offset to jump slot. */
+ RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS
+ block offset. */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_390_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
diff --git a/include/elf/v850.h b/include/elf/v850.h
index c949ab0..db5b2d9 100644
--- a/include/elf/v850.h
+++ b/include/elf/v850.h
@@ -104,4 +104,15 @@ END_RELOC_NUMBERS (R_V850_max)
/* Section contains the .scommon data. */
#define SHT_V850_ZCOMMON 0x70000002
+/* Processor specific section flags. */
+
+/* This section must be in the small data area (pointed to by GP). */
+#define SHF_V850_GPREL 0x10000000
+
+/* This section must be in the tiny data area (pointed to by EP). */
+#define SHF_V850_EPREL 0x20000000
+
+/* This section must be in the zero data area (pointed to by R0). */
+#define SHF_V850_R0REL 0x40000000
+
#endif /* _ELF_V850_H */
diff --git a/include/nlm/ChangeLog b/include/nlm/ChangeLog
index 979b162..b3c9529 100644
--- a/include/nlm/ChangeLog
+++ b/include/nlm/ChangeLog
@@ -1,3 +1,7 @@
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * internal.h (Nlm_Internal_Custom_Header): Replace PTR with void *.
+
2001-10-02 Alan Modra <amodra@bigpond.net.au>
* common.h (NLM_CAT, NLM_CAT3): Don't define.
diff --git a/include/nlm/internal.h b/include/nlm/internal.h
index cae93f8..f61c42d 100644
--- a/include/nlm/internal.h
+++ b/include/nlm/internal.h
@@ -1,5 +1,5 @@
/* NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 1994 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 2003 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support.
@@ -282,7 +282,7 @@ typedef struct nlm_internal_custom_header
file_ptr dataOffset;
bfd_size_type dataLength;
char dataStamp[8];
- PTR hdr;
+ void *hdr;
} Nlm_Internal_Custom_Header;
#define nlm32_internal_custom_header nlm_internal_custom_header
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 9785f4e..8aa8453 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,75 @@
+2003-08-19 Alan Modra <amodra@bigpond.net.au>
+
+ * ppc.h (PPC_OPCODE_440): Define. Formatting. Use hex for other
+ PPC_OPCODE_* defines.
+
+2003-08-16 Jason Eckhardt <jle@rice.edu>
+
+ * i860.h (fmov.ds): Expand as famov.ds.
+ (fmov.sd): Expand as famov.sd.
+ (pfmov.ds): Expand as pfamov.ds.
+
+2003-08-07 Michael Meissner <gnu@the-meissners.org>
+
+ * cgen.h: Remove PARAM macro usage in all prototypes.
+ (CGEN_EXTRACT_INFO): Use void * instead of PTR.
+ (cgen_print_fn): Ditto.
+ (CGEN_HW_ENTRY): Ditto.
+ (CGEN_MAYBE_MULTI_IFLD): Ditto.
+ (struct cgen_insn): Ditto.
+ (CGEN_CPU_TABLE): Ditto.
+
+2003-08-07 Alan Modra <amodra@bigpond.net.au>
+
+ * alpha.h: Remove PARAMS macro.
+ * arc.h: Likewise.
+ * d10v.h: Likewise.
+ * d30v.h: Likewise.
+ * i370.h: Likewise.
+ * or32.h: Likewise.
+ * pj.h: Likewise.
+ * ppc.h: Likewise.
+ * sparc.h: Likewise.
+ * tic80.h: Likewise.
+ * v850.h: Likewise.
+
+2003-07-18 Michael Snyder <msnyder@redhat.com>
+
+ * include/opcode/h8sx.h (DO_MOVA1, DO_MOVA2): Reformatting.
+
+2003-07-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * mips.h (CPU_RM7000): New macro.
+ (OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
+ * mn10300.h (AM33_2): Renamed from AM33.
+ 2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
+ * mn10300.h (AM332, FMT_D3): Defined.
+ (MN10300_OPERAND_FSREG, MN10300_OPERAND_FDREG): Likewise.
+ (MN10300_OPERAND_FPCR): Likewise.
+
+2003-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * s390.h (s390_opcode_cpu_val): Add enum for cpu type z990.
+
+2003-06-25 Richard Sandiford <rsandifo@redhat.com>
+
+ * h8300.h (IMM2_NS, IMM8_NS, IMM16_NS): Remove.
+ (IMM8U, IMM8U_NS): Define.
+ (h8_opcodes): Use IMM8U_NS for mov.[wl] #xx:8,@yy.
+
+2003-06-25 Richard Sandiford <rsandifo@redhat.com>
+
+ * h8300.h (h8_opcodes): Fix the mov.l @(dd:32,ERs),ERd and
+ mov.l ERs,@(dd:32,ERd) entries.
+
+2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386.h (i386_optab): Support Intel Precott New Instructions.
+
2003-06-10 Gary Hade <garyhade@us.ibm.com>
* ppc.h (PPC_OPERAND_DQ): Define.
diff --git a/include/opcode/alpha.h b/include/opcode/alpha.h
index 487b696..efe1626 100644
--- a/include/opcode/alpha.h
+++ b/include/opcode/alpha.h
@@ -1,5 +1,5 @@
/* alpha.h -- Header file for Alpha opcode table
- Copyright 1996, 1999 Free Software Foundation, Inc.
+ Copyright 1996, 1999, 2001, 2003 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@tamu.edu>,
patterned after the PPC opcode table written by Ian Lance Taylor.
@@ -108,8 +108,7 @@ struct alpha_operand
string (the operand will be inserted in any case). If the
operand value is legal, *ERRMSG will be unchanged (most operands
can accept any value). */
- unsigned (*insert) PARAMS ((unsigned instruction, int op,
- const char **errmsg));
+ unsigned (*insert) (unsigned instruction, int op, const char **errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -128,7 +127,7 @@ struct alpha_operand
non-zero if this operand type can not actually be extracted from
this operand (i.e., the instruction does not match). If the
operand is valid, *INVALID will not be changed. */
- int (*extract) PARAMS ((unsigned instruction, int *invalid));
+ int (*extract) (unsigned instruction, int *invalid);
};
/* Elements in the table are retrieved by indexing with values from
diff --git a/include/opcode/arc.h b/include/opcode/arc.h
index 3da68ec..629979d 100644
--- a/include/opcode/arc.h
+++ b/include/opcode/arc.h
@@ -1,5 +1,6 @@
/* Opcode table for the ARC.
- Copyright 1994, 1995, 1997, 2001 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 1997, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Contributed by Doug Evans (dje@cygnus.com).
This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
@@ -17,7 +18,8 @@
You should have received a copy of the GNU General Public License
along with GAS or GDB; see the file COPYING. If not, write to
- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
/* List of the various cpu types.
@@ -226,10 +228,9 @@ struct arc_operand {
REG is non-NULL when inserting a register value. */
- arc_insn (*insert) PARAMS ((arc_insn insn,
- const struct arc_operand *operand, int mods,
- const struct arc_operand_value *reg, long value,
- const char **errmsg));
+ arc_insn (*insert)
+ (arc_insn insn, const struct arc_operand *operand, int mods,
+ const struct arc_operand_value *reg, long value, const char **errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -255,10 +256,9 @@ struct arc_operand {
Operands that have a printable form like registers and suffixes have
their struct arc_operand_value pointer stored in OPVAL. */
- long (*extract) PARAMS ((arc_insn *insn,
- const struct arc_operand *operand,
- int mods, const struct arc_operand_value **opval,
- int *invalid));
+ long (*extract)
+ (arc_insn *insn, const struct arc_operand *operand, int mods,
+ const struct arc_operand_value **opval, int *invalid);
};
/* Bits that say what version of cpu we have. These should be passed to
@@ -302,22 +302,22 @@ extern const int arc_reg_names_count;
extern unsigned char arc_operand_map[];
/* Utility fns in arc-opc.c. */
-int arc_get_opcode_mach PARAMS ((int, int));
+int arc_get_opcode_mach (int, int);
/* `arc_opcode_init_tables' must be called before `arc_xxx_supported'. */
-void arc_opcode_init_tables PARAMS ((int));
-void arc_opcode_init_insert PARAMS ((void));
-void arc_opcode_init_extract PARAMS ((void));
-const struct arc_opcode *arc_opcode_lookup_asm PARAMS ((const char *));
-const struct arc_opcode *arc_opcode_lookup_dis PARAMS ((unsigned int));
-int arc_opcode_limm_p PARAMS ((long *));
+void arc_opcode_init_tables (int);
+void arc_opcode_init_insert (void);
+void arc_opcode_init_extract (void);
+const struct arc_opcode *arc_opcode_lookup_asm (const char *);
+const struct arc_opcode *arc_opcode_lookup_dis (unsigned int);
+int arc_opcode_limm_p (long *);
const struct arc_operand_value *arc_opcode_lookup_suffix
- PARAMS ((const struct arc_operand *type, int value));
-int arc_opcode_supported PARAMS ((const struct arc_opcode *));
-int arc_opval_supported PARAMS ((const struct arc_operand_value *));
-int arc_limm_fixup_adjust PARAMS ((arc_insn));
-int arc_insn_is_j PARAMS ((arc_insn));
-int arc_insn_not_jl PARAMS ((arc_insn));
-int arc_operand_type PARAMS ((int));
-struct arc_operand_value *get_ext_suffix PARAMS ((char *));
-int arc_get_noshortcut_flag PARAMS ((void));
+ (const struct arc_operand *type, int value);
+int arc_opcode_supported (const struct arc_opcode *);
+int arc_opval_supported (const struct arc_operand_value *);
+int arc_limm_fixup_adjust (arc_insn);
+int arc_insn_is_j (arc_insn);
+int arc_insn_not_jl (arc_insn);
+int arc_operand_type (int);
+struct arc_operand_value *get_ext_suffix (char *);
+int arc_get_noshortcut_flag (void);
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
index 76a0af4..16366fd 100644
--- a/include/opcode/cgen.h
+++ b/include/opcode/cgen.h
@@ -242,9 +242,9 @@ typedef struct cgen_fields CGEN_FIELDS;
typedef struct {
/* A pointer to the disassemble_info struct.
- We don't require dis-asm.h so we use PTR for the type here.
+ We don't require dis-asm.h so we use void * for the type here.
If NULL, BYTES is full of valid data (VALID == -1). */
- PTR dis_info;
+ void *dis_info;
/* Points to a working buffer of sufficient size. */
unsigned char *insn_bytes;
/* Mask of bytes that are valid in INSN_BYTES. */
@@ -265,8 +265,8 @@ typedef struct {
If not it is left alone.
The result is NULL if success or an error message. */
typedef const char * (cgen_parse_fn)
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
- const char **strp_, CGEN_FIELDS *fields_));
+ (CGEN_CPU_DESC, const CGEN_INSN *insn_,
+ const char **strp_, CGEN_FIELDS *fields_);
/* Insert handler.
CD is a cpu table descriptor.
@@ -279,9 +279,9 @@ typedef const char * (cgen_parse_fn)
#ifdef __BFD_H_SEEN__
typedef const char * (cgen_insert_fn)
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
- CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_,
- bfd_vma pc_));
+ (CGEN_CPU_DESC, const CGEN_INSN *insn_,
+ CGEN_FIELDS *fields_, CGEN_INSN_BYTES_PTR insnp_,
+ bfd_vma pc_);
#else
typedef const char * (cgen_insert_fn) ();
#endif
@@ -300,9 +300,9 @@ typedef const char * (cgen_insert_fn) ();
#ifdef __BFD_H_SEEN__
typedef int (cgen_extract_fn)
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
- CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_,
- CGEN_FIELDS *fields_, bfd_vma pc_));
+ (CGEN_CPU_DESC, const CGEN_INSN *insn_,
+ CGEN_EXTRACT_INFO *ex_info_, CGEN_INSN_INT base_insn_,
+ CGEN_FIELDS *fields_, bfd_vma pc_);
#else
typedef int (cgen_extract_fn) ();
#endif
@@ -319,8 +319,8 @@ typedef int (cgen_extract_fn) ();
#ifdef __BFD_H_SEEN__
typedef void (cgen_print_fn)
- PARAMS ((CGEN_CPU_DESC, PTR info_, const CGEN_INSN *insn_,
- CGEN_FIELDS *fields_, bfd_vma pc_, int len_));
+ (CGEN_CPU_DESC, void * info_, const CGEN_INSN *insn_,
+ CGEN_FIELDS *fields_, bfd_vma pc_, int len_);
#else
typedef void (cgen_print_fn) ();
#endif
@@ -384,9 +384,9 @@ enum cgen_parse_operand_result
#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */
typedef const char * (cgen_parse_operand_fn)
- PARAMS ((CGEN_CPU_DESC,
- enum cgen_parse_operand_type, const char **, int, int,
- enum cgen_parse_operand_result *, bfd_vma *));
+ (CGEN_CPU_DESC,
+ enum cgen_parse_operand_type, const char **, int, int,
+ enum cgen_parse_operand_result *, bfd_vma *);
#else
typedef const char * (cgen_parse_operand_fn) ();
#endif
@@ -394,11 +394,11 @@ typedef const char * (cgen_parse_operand_fn) ();
/* Set the cgen_parse_operand_fn callback. */
extern void cgen_set_parse_operand_fn
- PARAMS ((CGEN_CPU_DESC, cgen_parse_operand_fn));
+ (CGEN_CPU_DESC, cgen_parse_operand_fn);
/* Called before trying to match a table entry with the insn. */
-extern void cgen_init_parse_operand PARAMS ((CGEN_CPU_DESC));
+extern void cgen_init_parse_operand (CGEN_CPU_DESC);
/* Operand values (keywords, integers, symbols, etc.) */
@@ -422,7 +422,7 @@ typedef struct
/* There is currently no example where both index specs and value specs
are required, so for now both are clumped under "asm_data". */
enum cgen_asm_type asm_type;
- PTR asm_data;
+ void *asm_data;
#ifndef CGEN_HW_NBOOL_ATTRS
#define CGEN_HW_NBOOL_ATTRS 1
#endif
@@ -453,9 +453,9 @@ typedef struct {
} CGEN_HW_TABLE;
extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name
- PARAMS ((CGEN_CPU_DESC, const char *));
+ (CGEN_CPU_DESC, const char *);
extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num
- PARAMS ((CGEN_CPU_DESC, unsigned int));
+ (CGEN_CPU_DESC, unsigned int);
/* This struct is used to describe things like register names, etc. */
@@ -543,41 +543,41 @@ typedef struct
/* Lookup a keyword from its name. */
const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name
- PARAMS ((CGEN_KEYWORD *, const char *));
+ (CGEN_KEYWORD *, const char *);
/* Lookup a keyword from its value. */
const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value
- PARAMS ((CGEN_KEYWORD *, int));
+ (CGEN_KEYWORD *, int);
/* Add a keyword. */
-void cgen_keyword_add PARAMS ((CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *));
+void cgen_keyword_add (CGEN_KEYWORD *, CGEN_KEYWORD_ENTRY *);
/* Keyword searching.
This can be used to retrieve every keyword, or a subset. */
CGEN_KEYWORD_SEARCH cgen_keyword_search_init
- PARAMS ((CGEN_KEYWORD *, const char *));
+ (CGEN_KEYWORD *, const char *);
const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next
- PARAMS ((CGEN_KEYWORD_SEARCH *));
+ (CGEN_KEYWORD_SEARCH *);
/* Operand value support routines. */
extern const char *cgen_parse_keyword
- PARAMS ((CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *));
+ (CGEN_CPU_DESC, const char **, CGEN_KEYWORD *, long *);
#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */
extern const char *cgen_parse_signed_integer
- PARAMS ((CGEN_CPU_DESC, const char **, int, long *));
+ (CGEN_CPU_DESC, const char **, int, long *);
extern const char *cgen_parse_unsigned_integer
- PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *));
+ (CGEN_CPU_DESC, const char **, int, unsigned long *);
extern const char *cgen_parse_address
- PARAMS ((CGEN_CPU_DESC, const char **, int, int,
- enum cgen_parse_operand_result *, bfd_vma *));
+ (CGEN_CPU_DESC, const char **, int, int,
+ enum cgen_parse_operand_result *, bfd_vma *);
extern const char *cgen_validate_signed_integer
- PARAMS ((long, long, long));
+ (long, long, long);
extern const char *cgen_validate_unsigned_integer
- PARAMS ((unsigned long, unsigned long, unsigned long));
+ (unsigned long, unsigned long, unsigned long);
#endif
/* Operand modes. */
@@ -621,7 +621,7 @@ typedef struct cgen_maybe_multi_ifield
n: indexed by array of more cgen_maybe_multi_ifields. */
union
{
- const PTR p;
+ const void *p;
const struct cgen_maybe_multi_ifield * multi;
const struct cgen_ifld * leaf;
} val;
@@ -705,9 +705,9 @@ typedef struct {
} CGEN_OPERAND_TABLE;
extern const CGEN_OPERAND * cgen_operand_lookup_by_name
- PARAMS ((CGEN_CPU_DESC, const char *));
+ (CGEN_CPU_DESC, const char *);
extern const CGEN_OPERAND * cgen_operand_lookup_by_num
- PARAMS ((CGEN_CPU_DESC, int));
+ (CGEN_CPU_DESC, int);
/* Instruction operand instances.
@@ -1061,8 +1061,8 @@ typedef struct
/* Return number of instructions. This includes any added at run-time. */
-extern int cgen_insn_count PARAMS ((CGEN_CPU_DESC));
-extern int cgen_macro_insn_count PARAMS ((CGEN_CPU_DESC));
+extern int cgen_insn_count (CGEN_CPU_DESC);
+extern int cgen_macro_insn_count (CGEN_CPU_DESC);
/* Macros to access the other insn elements not recorded in CGEN_IBASE. */
@@ -1126,9 +1126,10 @@ typedef struct cgen_minsn_expansion {
If the expansion fails (e.g. "no match") NULL is returned.
Space for the expansion is obtained with malloc.
It is up to the caller to free it. */
- const char * (* fn) PARAMS ((const struct cgen_minsn_expansion *,
- const char *, const char **, int *,
- CGEN_OPERAND **));
+ const char * (* fn)
+ (const struct cgen_minsn_expansion *,
+ const char *, const char **, int *,
+ CGEN_OPERAND **);
#define CGEN_MIEXPN_FN(ex) ((ex)->fn)
/* Instruction(s) the macro expands to.
@@ -1146,15 +1147,15 @@ typedef struct cgen_minsn_expansion {
may contain further macro invocations. */
extern const char * cgen_expand_macro_insn
- PARAMS ((CGEN_CPU_DESC, const struct cgen_minsn_expansion *,
- const char *, const char **, int *, CGEN_OPERAND **));
+ (CGEN_CPU_DESC, const struct cgen_minsn_expansion *,
+ const char *, const char **, int *, CGEN_OPERAND **);
/* The assembler insn table is hashed based on some function of the mnemonic
(the actually hashing done is up to the target, but we provide a few
examples like the first letter or a function of the entire mnemonic). */
extern CGEN_INSN_LIST * cgen_asm_lookup_insn
- PARAMS ((CGEN_CPU_DESC, const char *));
+ (CGEN_CPU_DESC, const char *);
#define CGEN_ASM_LOOKUP_INSN(cd, string) cgen_asm_lookup_insn ((cd), (string))
#define CGEN_ASM_NEXT_INSN(insn) ((insn)->next)
@@ -1162,7 +1163,7 @@ extern CGEN_INSN_LIST * cgen_asm_lookup_insn
instruction (the actually hashing done is up to the target). */
extern CGEN_INSN_LIST * cgen_dis_lookup_insn
- PARAMS ((CGEN_CPU_DESC, const char *, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, const char *, CGEN_INSN_INT);
/* FIXME: delete these two */
#define CGEN_DIS_LOOKUP_INSN(cd, buf, value) cgen_dis_lookup_insn ((cd), (buf), (value))
#define CGEN_DIS_NEXT_INSN(insn) ((insn)->next)
@@ -1246,25 +1247,24 @@ typedef struct cgen_cpu_desc
int int_insn_p;
/* Called to rebuild the tables after something has changed. */
- void (*rebuild_tables) PARAMS ((CGEN_CPU_DESC));
+ void (*rebuild_tables) (CGEN_CPU_DESC);
/* Operand parser callback. */
cgen_parse_operand_fn * parse_operand_fn;
/* Parse/insert/extract/print cover fns for operands. */
const char * (*parse_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, const char **,
- CGEN_FIELDS *fields_));
+ (CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_);
#ifdef __BFD_H_SEEN__
const char * (*insert_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
- CGEN_INSN_BYTES_PTR, bfd_vma pc_));
+ (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
+ CGEN_INSN_BYTES_PTR, bfd_vma pc_);
int (*extract_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- CGEN_FIELDS *fields_, bfd_vma pc_));
+ (CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ CGEN_FIELDS *fields_, bfd_vma pc_);
void (*print_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, PTR info_, CGEN_FIELDS * fields_,
- void const *attrs_, bfd_vma pc_, int length_));
+ (CGEN_CPU_DESC, int opindex_, void * info_, CGEN_FIELDS * fields_,
+ void const *attrs_, bfd_vma pc_, int length_);
#else
const char * (*insert_operand) ();
int (*extract_operand) ();
@@ -1280,19 +1280,19 @@ typedef struct cgen_cpu_desc
#define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields)
/* Set the bitsize field. */
- void (*set_fields_bitsize) PARAMS ((CGEN_FIELDS *fields_, int size_));
+ void (*set_fields_bitsize) (CGEN_FIELDS *fields_, int size_);
#define CGEN_CPU_SET_FIELDS_BITSIZE(cd) ((cd)->set_fields_bitsize)
/* CGEN_FIELDS accessors. */
int (*get_int_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_));
+ (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
void (*set_int_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_));
+ (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_);
#ifdef __BFD_H_SEEN__
bfd_vma (*get_vma_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_));
+ (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
void (*set_vma_operand)
- PARAMS ((CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_));
+ (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_);
#else
long (*get_vma_operand) ();
void (*set_vma_operand) ();
@@ -1314,19 +1314,19 @@ typedef struct cgen_cpu_desc
#define CGEN_PRINT_FN(cd, insn) (cd->print_handlers[(insn)->opcode->handlers.print])
/* Return non-zero if insn should be added to hash table. */
- int (* asm_hash_p) PARAMS ((const CGEN_INSN *));
+ int (* asm_hash_p) (const CGEN_INSN *);
/* Assembler hash function. */
- unsigned int (* asm_hash) PARAMS ((const char *));
+ unsigned int (* asm_hash) (const char *);
/* Number of entries in assembler hash table. */
unsigned int asm_hash_size;
/* Return non-zero if insn should be added to hash table. */
- int (* dis_hash_p) PARAMS ((const CGEN_INSN *));
+ int (* dis_hash_p) (const CGEN_INSN *);
/* Disassembler hash function. */
- unsigned int (* dis_hash) PARAMS ((const char *, CGEN_INSN_INT));
+ unsigned int (* dis_hash) (const char *, CGEN_INSN_INT);
/* Number of entries in disassembler hash table. */
unsigned int dis_hash_size;
@@ -1381,81 +1381,80 @@ extern CGEN_CPU_DESC CGEN_SYM (cpu_open) (enum cgen_cpu_open_arg, ...);
/* Cover fn to handle simple case. */
-extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1) PARAMS ((const char *mach_name_,
- enum cgen_endian endian_));
+extern CGEN_CPU_DESC CGEN_SYM (cpu_open_1)
+ (const char *mach_name_, enum cgen_endian endian_);
/* Close it. */
-extern void CGEN_SYM (cpu_close) PARAMS ((CGEN_CPU_DESC));
+extern void CGEN_SYM (cpu_close) (CGEN_CPU_DESC);
/* Initialize the opcode table for use.
Called by init_asm/init_dis. */
-extern void CGEN_SYM (init_opcode_table) PARAMS ((CGEN_CPU_DESC cd_));
+extern void CGEN_SYM (init_opcode_table) (CGEN_CPU_DESC cd_);
/* build the insn selection regex.
called by init_opcode_table */
-extern char * CGEN_SYM(build_insn_regex) PARAMS ((CGEN_INSN *insn_));
+extern char * CGEN_SYM(build_insn_regex) (CGEN_INSN *insn_);
/* Initialize the ibld table for use.
Called by init_asm/init_dis. */
-extern void CGEN_SYM (init_ibld_table) PARAMS ((CGEN_CPU_DESC cd_));
+extern void CGEN_SYM (init_ibld_table) (CGEN_CPU_DESC cd_);
/* Initialize an cpu table for assembler or disassembler use.
These must be called immediately after cpu_open. */
-extern void CGEN_SYM (init_asm) PARAMS ((CGEN_CPU_DESC));
-extern void CGEN_SYM (init_dis) PARAMS ((CGEN_CPU_DESC));
+extern void CGEN_SYM (init_asm) (CGEN_CPU_DESC);
+extern void CGEN_SYM (init_dis) (CGEN_CPU_DESC);
/* Initialize the operand instance table for use. */
-extern void CGEN_SYM (init_opinst_table) PARAMS ((CGEN_CPU_DESC cd_));
+extern void CGEN_SYM (init_opinst_table) (CGEN_CPU_DESC cd_);
/* Assemble an instruction. */
extern const CGEN_INSN * CGEN_SYM (assemble_insn)
- PARAMS ((CGEN_CPU_DESC, const char *, CGEN_FIELDS *,
- CGEN_INSN_BYTES_PTR, char **));
+ (CGEN_CPU_DESC, const char *, CGEN_FIELDS *,
+ CGEN_INSN_BYTES_PTR, char **);
extern const CGEN_KEYWORD CGEN_SYM (operand_mach);
-extern int CGEN_SYM (get_mach) PARAMS ((const char *));
+extern int CGEN_SYM (get_mach) (const char *);
/* Operand index computation. */
extern const CGEN_INSN * cgen_lookup_insn
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN * insn_,
- CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
- int length_, CGEN_FIELDS *fields_, int alias_p_));
+ (CGEN_CPU_DESC, const CGEN_INSN * insn_,
+ CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
+ int length_, CGEN_FIELDS *fields_, int alias_p_);
extern void cgen_get_insn_operands
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN * insn_,
- const CGEN_FIELDS *fields_, int *indices_));
+ (CGEN_CPU_DESC, const CGEN_INSN * insn_,
+ const CGEN_FIELDS *fields_, int *indices_);
extern const CGEN_INSN * cgen_lookup_get_insn_operands
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *insn_,
- CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
- int length_, int *indices_, CGEN_FIELDS *fields_));
+ (CGEN_CPU_DESC, const CGEN_INSN *insn_,
+ CGEN_INSN_INT int_value_, unsigned char *bytes_value_,
+ int length_, int *indices_, CGEN_FIELDS *fields_);
/* Cover fns to bfd_get/set. */
extern CGEN_INSN_INT cgen_get_insn_value
- PARAMS ((CGEN_CPU_DESC, unsigned char *, int));
+ (CGEN_CPU_DESC, unsigned char *, int);
extern void cgen_put_insn_value
- PARAMS ((CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, unsigned char *, int, CGEN_INSN_INT);
/* Read in a cpu description file.
??? For future concerns, including adding instructions to the assembler/
disassembler at run-time. */
-extern const char * cgen_read_cpu_file
- PARAMS ((CGEN_CPU_DESC, const char * filename_));
+extern const char * cgen_read_cpu_file (CGEN_CPU_DESC, const char * filename_);
/* Allow signed overflow of instruction fields. */
-extern void cgen_set_signed_overflow_ok PARAMS ((CGEN_CPU_DESC));
+extern void cgen_set_signed_overflow_ok (CGEN_CPU_DESC);
/* Generate an error message if a signed field in an instruction overflows. */
-extern void cgen_clear_signed_overflow_ok PARAMS ((CGEN_CPU_DESC));
+extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC);
/* Will an error message be generated if a signed field in an instruction overflows ? */
-extern unsigned int cgen_signed_overflow_ok_p PARAMS ((CGEN_CPU_DESC));
+extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC);
#endif /* CGEN_H */
diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h
index cc27850..74d9006 100644
--- a/include/opcode/d10v.h
+++ b/include/opcode/d10v.h
@@ -1,5 +1,6 @@
/* d10v.h -- Header file for D10V opcode table
- Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003
+ Free Software Foundation, Inc.
Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
This file is part of GDB, GAS, and the GNU binutils.
@@ -198,7 +199,7 @@ struct pd_reg
};
extern const struct pd_reg d10v_predefined_registers[];
-int d10v_reg_name_cnt PARAMS ((void));
+int d10v_reg_name_cnt (void);
/* an expressionS only has one register type, so we fake it */
/* by setting high bits to indicate type */
diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h
index c18874b..809bdeb 100644
--- a/include/opcode/d30v.h
+++ b/include/opcode/d30v.h
@@ -1,5 +1,5 @@
/* d30v.h -- Header file for D30V opcode table
- Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1997, 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions
This file is part of GDB, GAS, and the GNU binutils.
@@ -32,7 +32,7 @@ struct pd_reg
};
extern const struct pd_reg pre_defined_registers[];
-int reg_name_cnt PARAMS ((void));
+int reg_name_cnt (void);
/* the number of control registers */
#define MAX_CONTROL_REG 64
diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h
index 4318dcc..20793a0 100644
--- a/include/opcode/h8300.h
+++ b/include/opcode/h8300.h
@@ -117,6 +117,7 @@ enum h8_flags {
B31 = 0x40000000, /* Bit 3 must be high. */
E = 0x80000000, /* End of nibble sequence. */
+ /* Immediates smaller than 8 bits are always unsigned. */
IMM3 = IMM | L_3,
IMM4 = IMM | L_4,
IMM5 = IMM | L_5,
@@ -124,15 +125,14 @@ enum h8_flags {
IMM2 = IMM | L_2,
IMM8 = IMM | SRC | L_8,
+ IMM8U = IMM | SRC | L_8U,
IMM16 = IMM | SRC | L_16,
IMM16U = IMM | SRC | L_16U,
IMM32 = IMM | SRC | L_32,
IMM3NZ_NS = IMM3NZ | NO_SYMBOLS,
- IMM2_NS = IMM2 | NO_SYMBOLS,
IMM4_NS = IMM4 | NO_SYMBOLS,
- IMM8_NS = IMM8 | NO_SYMBOLS,
- IMM16_NS = IMM16 | NO_SYMBOLS,
+ IMM8U_NS = IMM8U | NO_SYMBOLS,
IMM16U_NS = IMM16U | NO_SYMBOLS,
RD8 = DST | L_8 | REG,
@@ -1475,7 +1475,7 @@ struct h8_opcode h8_opcodes[] =
{O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}},
{O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}},
- MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D, "mov.w", IMM8_NS),
+ MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D, "mov.w", IMM8U_NS),
MOVFROM_IMM (O (O_MOV, SW), PREFIX_7974, "mov.w", IMM16, IMM16LIST),
{O (O_MOV, SW), AV_H8, 2, "mov.w", {{RS16, RD16, E}}, {{0x0, 0xD, RS16, RD16, E}}},
@@ -1501,7 +1501,7 @@ struct h8_opcode h8_opcodes[] =
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}},
- MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8_NS),
+ MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8U_NS),
MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST),
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}},
@@ -1518,7 +1518,8 @@ struct h8_opcode h8_opcodes[] =
{O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDPREDEC, E}}, {{PREFIX_0100, 0x6, 0xd, B31 | RDPREDEC, RS32, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, DISP2DST, E}}, {{PREFIX_010, B30 | B20 | DISP2DST, 0x6, 0x9, B31 | DSTDISPREG, RS32, E}}},
{O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP16DST, E}}, {{PREFIX_0100, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
+ {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
+ {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB16D, E}}, {{PREFIX_0101, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW16D, E}}, {{PREFIX_0102, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL16D, E}}, {{PREFIX_0103, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}},
@@ -1535,7 +1536,8 @@ struct h8_opcode h8_opcodes[] =
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREDEC, RD32, E}}, {{PREFIX_0103, 0x6, 0xd, B30 | RSPREDEC, RD32, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{DISP2SRC, RD32, E}}, {{PREFIX_010, B30 | B20 | DISP2SRC, 0x6, 0x9, B30 | DISPREG, RD32, E}}},
{O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
+ {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
+ {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{PREFIX_0100, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB16, RD32, E}}, {{PREFIX_0101, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW16, RD32, E}}, {{PREFIX_0102, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}},
{O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL16, RD32, E}}, {{PREFIX_0103, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}},
@@ -1625,17 +1627,17 @@ struct h8_opcode h8_opcodes[] =
DO_MOVA1 (RDPOSTDEC, 0xA, B30 | RDPOSTDEC),
DO_MOVA1 (RDPREINC, 0x9, B30 | RDPREINC),
DO_MOVA1 (RDPREDEC, 0xB, B30 | RDPREDEC),
- DO_MOVA1 (DISP2DST, B30 | B20 | DISP2DST, B30 | DSTDISPREG),
- DO_MOVA2 (DISP16DST, 0xC, B30 | DSTDISPREG, DSTDISP16LIST),
- DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, DSTDISP32LIST),
- DO_MOVA2 (INDEXB16 | DST, 0xD, B30 | DSTDISPREG, DSTDISP16LIST),
- DO_MOVA2 (INDEXW16 | DST, 0xE, B30 | DSTDISPREG, DSTDISP16LIST),
- DO_MOVA2 (INDEXL16 | DST, 0xF, B30 | DSTDISPREG, DSTDISP16LIST),
- DO_MOVA2 (INDEXB32 | DST, 0xD, B31 | DSTDISPREG, DSTDISP32LIST),
- DO_MOVA2 (INDEXW32 | DST, 0xE, B31 | DSTDISPREG, DSTDISP32LIST),
- DO_MOVA2 (INDEXL32 | DST, 0xF, B31 | DSTDISPREG, DSTDISP32LIST),
- DO_MOVA2 (ABS16DST | DST, 0x4, 0x0, DSTABS16LIST),
- DO_MOVA2 (ABS32DST | DST, 0x4, 0x8, DSTABS32LIST),
+ DO_MOVA1 (DISP2DST, B30 | B20 | DISP2DST, B30 | DSTDISPREG),
+ DO_MOVA2 (DISP16DST, 0xC, B30 | DSTDISPREG, DSTDISP16LIST),
+ DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, DSTDISP32LIST),
+ DO_MOVA2 (INDEXB16D, 0xD, B30 | DSTDISPREG, DSTDISP16LIST),
+ DO_MOVA2 (INDEXW16D, 0xE, B30 | DSTDISPREG, DSTDISP16LIST),
+ DO_MOVA2 (INDEXL16D, 0xF, B30 | DSTDISPREG, DSTDISP16LIST),
+ DO_MOVA2 (INDEXB32D, 0xD, B31 | DSTDISPREG, DSTDISP32LIST),
+ DO_MOVA2 (INDEXW32D, 0xE, B31 | DSTDISPREG, DSTDISP32LIST),
+ DO_MOVA2 (INDEXL32D, 0xF, B31 | DSTDISPREG, DSTDISP32LIST),
+ DO_MOVA2 (ABS16DST, 0x4, 0x0, DSTABS16LIST),
+ DO_MOVA2 (ABS32DST, 0x4, 0x8, DSTABS32LIST),
{O (O_MOV, SB), AV_H8, 10, "movfpe", {{ABS16SRC, RD8, E}}, {{0x6, 0xA, 0x4, RD8, ABS16SRC, DATA3, E}}},
{O (O_MOV, SB), AV_H8, 10, "movtpe", {{RS8, ABS16DST, E}}, {{0x6, 0xA, 0xC, RS8, ABS16DST, DATA3, E}}},
diff --git a/include/opcode/i370.h b/include/opcode/i370.h
index 155a3cf..e317f23 100644
--- a/include/opcode/i370.h
+++ b/include/opcode/i370.h
@@ -1,5 +1,5 @@
/* i370.h -- Header file for S/390 opcode table
- Copyright 1994, 1995, 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
PowerPC version written by Ian Lance Taylor, Cygnus Support
Rewritten for i370 ESA/390 support, Linas Vepstas <linas@linas.org>
@@ -159,8 +159,8 @@ struct i370_operand
string (the operand will be inserted in any case). If the
operand value is legal, *ERRMSG will be unchanged (most operands
can accept any value). */
- i370_insn_t (*insert) PARAMS ((i370_insn_t instruction, long op,
- const char **errmsg));
+ i370_insn_t (*insert)
+ (i370_insn_t instruction, long op, const char **errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -179,7 +179,7 @@ struct i370_operand
non-zero if this operand type can not actually be extracted from
this operand (i.e., the instruction does not match). If the
operand is valid, *INVALID will not be changed. */
- long (*extract) PARAMS ((i370_insn_t instruction, int *invalid));
+ long (*extract) (i370_insn_t instruction, int *invalid);
/* One bit syntax flags. */
unsigned long flags;
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index 71c204c..cb3a99a 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -1302,6 +1302,30 @@ static const template i386_optab[] = {
{"punpckhqdq",2, 0x660f6d, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"punpcklqdq",2, 0x660f6c, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+/* Prescott New Instructions. */
+
+{"addsubpd", 2, 0x660fd0, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"addsubps", 2, 0xf20fd0, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"fisttp", 1, 0xdf, 1, CpuPNI, sl_FP|FloatMF|Modrm, { ShortMem|LongMem, 0, 0} },
+/* Intel Syntax */
+{"fisttpd", 1, 0xdd, 1, CpuPNI, FP|Modrm, { LLongMem, 0, 0} },
+{"fisttpq", 1, 0xdd, 1, CpuPNI, FP|Modrm, { LLongMem, 0, 0} },
+{"fisttpll", 1, 0xdd, 1, CpuPNI, FP|Modrm, { LLongMem, 0, 0} },
+{"haddpd", 2, 0x660f7c, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"haddps", 2, 0xf20f7c, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"hsubpd", 2, 0x660f7d, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"hsubps", 2, 0xf20f7d, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"lddqu", 2, 0xf20ff0, X, CpuPNI, FP|Modrm, { LLongMem, RegXMM, 0 } },
+{"monitor", 0, 0x0f01, 0xc8, CpuPNI, FP|ImmExt, { 0, 0, 0} },
+/* Need to ensure only "monitor %eax,%ecx,%edx" is accepted. */
+{"monitor", 3, 0x0f01, 0xc8, CpuPNI, FP|ImmExt, { Reg32, Reg32, Reg32} },
+{"movddup", 2, 0xf20f12, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"movshdup", 2, 0xf30f16, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"movsldup", 2, 0xf30f12, X, CpuPNI, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"mwait", 0, 0x0f01, 0xc9, CpuPNI, FP|ImmExt, { 0, 0, 0} },
+/* Need to ensure only "mwait %eax,%ecx" is accepted. */
+{"mwait", 2, 0x0f01, 0xc9, CpuPNI, FP|ImmExt, { Reg32, Reg32, 0} },
+
/* AMD 3DNow! instructions. */
{"prefetch", 1, 0x0f0d, 0, Cpu3dnow, FP|Modrm, { ByteMem, 0, 0 } },
diff --git a/include/opcode/i860.h b/include/opcode/i860.h
index 6e2a683..b46a5e5 100644
--- a/include/opcode/i860.h
+++ b/include/opcode/i860.h
@@ -494,9 +494,9 @@ static const struct i860_opcode i860_opcodes[] =
/* Floating point pseudo-instructions. */
{ "fmov.ss", 0x48000049, 0xb7e005b6, "e,g", 0 }, /* fiadd.ss fsrc1,f0,fdest */
{ "fmov.dd", 0x480001c9, 0xb7e00436, "e,g", 0 }, /* fiadd.dd fsrc1,f0,fdest */
-{ "fmov.sd", 0x480000b0, 0xb7e0054f, "e,g", 0 }, /* fadd.sd fsrc1,f0,fdest */
-{ "fmov.ds", 0x48000130, 0xb7e004cf, "e,g", 0 }, /* fadd.ds fsrc1,f0,fdest */
-{ "pfmov.ds", 0x48000530, 0xb73000cf, "e,g", 0 }, /* pfadd.ds fsrc1,f0,fdest */
+{ "fmov.sd", 0x480000b3, 0xb400054c, "e,g", 0 }, /* famov.sd fsrc1,fdest */
+{ "fmov.ds", 0x48000133, 0xb40004cc, "e,g", 0 }, /* famov.ds fsrc1,fdest */
+{ "pfmov.ds", 0x48000533, 0xb40000cc, "e,g", 0 }, /* pfamov.ds fsrc1,fdest */
{ "pfmov.dd", 0x480005c9, 0xb7e00036, "e,g", 0 }, /* pfiadd.dd fsrc1,f0,fdest */
{ 0, 0, 0, 0, 0 },
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
index 476c8e3..65434a7 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
@@ -451,6 +451,7 @@ struct mips_opcode
#define CPU_VR5400 5400
#define CPU_VR5500 5500
#define CPU_R6000 6000
+#define CPU_RM7000 7000
#define CPU_R8000 8000
#define CPU_R10000 10000
#define CPU_R12000 12000
@@ -469,6 +470,7 @@ struct mips_opcode
#define OPCODE_IS_MEMBER(insn, isa, cpu) \
(((insn)->membership & isa) != 0 \
|| (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \
+ || (cpu == CPU_RM7000 && ((insn)->membership & INSN_4650) != 0) \
|| (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0) \
|| (cpu == CPU_VR4100 && ((insn)->membership & INSN_4100) != 0) \
|| (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0) \
diff --git a/include/opcode/mn10300.h b/include/opcode/mn10300.h
index 0de7f45..bd7faa1 100644
--- a/include/opcode/mn10300.h
+++ b/include/opcode/mn10300.h
@@ -135,6 +135,12 @@ extern const struct mn10300_operand mn10300_operands[];
#define MN10300_OPERAND_24BIT 0x800000
+#define MN10300_OPERAND_FSREG 0x1000000
+
+#define MN10300_OPERAND_FDREG 0x2000000
+
+#define MN10300_OPERAND_FPCR 0x4000000
+
/* Opcode Formats. */
#define FMT_S0 1
#define FMT_S1 2
@@ -151,11 +157,13 @@ extern const struct mn10300_operand mn10300_operands[];
#define FMT_D8 13
#define FMT_D9 14
#define FMT_D10 15
+#define FMT_D3 16
/* Variants of the mn10300 which have additional opcodes. */
#define MN103 300
#define AM30 300
#define AM33 330
+#define AM33_2 332
#endif /* MN10300_H */
diff --git a/include/opcode/or32.h b/include/opcode/or32.h
index 4609a48..d72b9bd 100644
--- a/include/opcode/or32.h
+++ b/include/opcode/or32.h
@@ -1,5 +1,5 @@
/* Table of opcodes for the OpenRISC 1000 ISA.
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
Contributed by Damjan Lampret (lampret@opencores.org).
This file is part of or1k_gen_isa, or1ksim, GDB and GAS.
@@ -27,10 +27,6 @@
#define NUM_UNSIGNED (0)
#define NUM_SIGNED (1)
-#ifndef PARAMS
-#define PARAMS(x) x
-#endif
-
#define MAX_GPRS 32
#define PAGE_SIZE 4096
#undef __HALF_WORD_INSN__
@@ -71,7 +67,7 @@ struct or32_opcode
/* Opcode and operand encoding. */
char *encoding;
- void (*exec) PARAMS ((void));
+ void (*exec) (void);
unsigned int flags;
};
@@ -93,59 +89,59 @@ extern struct insn_op_struct
} **op_start;
#ifdef HAS_EXECUTION
-extern void l_invalid PARAMS ((void));
-extern void l_sfne PARAMS ((void));
-extern void l_bf PARAMS ((void));
-extern void l_add PARAMS ((void));
-extern void l_sw PARAMS ((void));
-extern void l_sb PARAMS ((void));
-extern void l_sh PARAMS ((void));
-extern void l_lwz PARAMS ((void));
-extern void l_lbs PARAMS ((void));
-extern void l_lbz PARAMS ((void));
-extern void l_lhs PARAMS ((void));
-extern void l_lhz PARAMS ((void));
-extern void l_movhi PARAMS ((void));
-extern void l_and PARAMS ((void));
-extern void l_or PARAMS ((void));
-extern void l_xor PARAMS ((void));
-extern void l_sub PARAMS ((void));
-extern void l_mul PARAMS ((void));
-extern void l_div PARAMS ((void));
-extern void l_divu PARAMS ((void));
-extern void l_sll PARAMS ((void));
-extern void l_sra PARAMS ((void));
-extern void l_srl PARAMS ((void));
-extern void l_j PARAMS ((void));
-extern void l_jal PARAMS ((void));
-extern void l_jalr PARAMS ((void));
-extern void l_jr PARAMS ((void));
-extern void l_rfe PARAMS ((void));
-extern void l_nop PARAMS ((void));
-extern void l_bnf PARAMS ((void));
-extern void l_sfeq PARAMS ((void));
-extern void l_sfgts PARAMS ((void));
-extern void l_sfges PARAMS ((void));
-extern void l_sflts PARAMS ((void));
-extern void l_sfles PARAMS ((void));
-extern void l_sfgtu PARAMS ((void));
-extern void l_sfgeu PARAMS ((void));
-extern void l_sfltu PARAMS ((void));
-extern void l_sfleu PARAMS ((void));
-extern void l_mtspr PARAMS ((void));
-extern void l_mfspr PARAMS ((void));
-extern void l_sys PARAMS ((void));
-extern void l_trap PARAMS ((void)); /* CZ 21/06/01. */
-extern void l_macrc PARAMS ((void));
-extern void l_mac PARAMS ((void));
-extern void l_msb PARAMS ((void));
-extern void l_invalid PARAMS ((void));
-extern void l_cust1 PARAMS ((void));
-extern void l_cust2 PARAMS ((void));
-extern void l_cust3 PARAMS ((void));
-extern void l_cust4 PARAMS ((void));
+extern void l_invalid (void);
+extern void l_sfne (void);
+extern void l_bf (void);
+extern void l_add (void);
+extern void l_sw (void);
+extern void l_sb (void);
+extern void l_sh (void);
+extern void l_lwz (void);
+extern void l_lbs (void);
+extern void l_lbz (void);
+extern void l_lhs (void);
+extern void l_lhz (void);
+extern void l_movhi (void);
+extern void l_and (void);
+extern void l_or (void);
+extern void l_xor (void);
+extern void l_sub (void);
+extern void l_mul (void);
+extern void l_div (void);
+extern void l_divu (void);
+extern void l_sll (void);
+extern void l_sra (void);
+extern void l_srl (void);
+extern void l_j (void);
+extern void l_jal (void);
+extern void l_jalr (void);
+extern void l_jr (void);
+extern void l_rfe (void);
+extern void l_nop (void);
+extern void l_bnf (void);
+extern void l_sfeq (void);
+extern void l_sfgts (void);
+extern void l_sfges (void);
+extern void l_sflts (void);
+extern void l_sfles (void);
+extern void l_sfgtu (void);
+extern void l_sfgeu (void);
+extern void l_sfltu (void);
+extern void l_sfleu (void);
+extern void l_mtspr (void);
+extern void l_mfspr (void);
+extern void l_sys (void);
+extern void l_trap (void); /* CZ 21/06/01. */
+extern void l_macrc (void);
+extern void l_mac (void);
+extern void l_msb (void);
+extern void l_invalid (void);
+extern void l_cust1 (void);
+extern void l_cust2 (void);
+extern void l_cust3 (void);
+extern void l_cust4 (void);
#endif
-extern void l_none PARAMS ((void));
+extern void l_none (void);
extern const struct or32_letter or32_letters[];
@@ -154,31 +150,31 @@ extern const struct or32_opcode or32_opcodes[];
extern const unsigned int or32_num_opcodes;
/* Calculates instruction length in bytes. Always 4 for OR32. */
-extern int insn_len PARAMS ((int));
+extern int insn_len (int);
/* Is individual insn's operand signed or unsigned? */
-extern int letter_signed PARAMS ((char));
+extern int letter_signed (char);
/* Number of letters in the individual lettered operand. */
-extern int letter_range PARAMS ((char));
+extern int letter_range (char);
/* MM: Returns index of given instruction name. */
-extern int insn_index PARAMS ((char *));
+extern int insn_index (char *);
/* MM: Returns instruction name from index. */
-extern const char *insn_name PARAMS ((int));
+extern const char *insn_name (int);
/* MM: Constructs new FSM, based on or32_opcodes. */
-extern void build_automata PARAMS ((void));
+extern void build_automata (void);
/* MM: Destructs FSM. */
-extern void destruct_automata PARAMS ((void));
+extern void destruct_automata (void);
/* MM: Decodes instruction using FSM. Call build_automata first. */
-extern int insn_decode PARAMS ((unsigned int));
+extern int insn_decode (unsigned int);
/* Disassemble one instruction from insn to disassemble.
Return the size of the instruction. */
-int disassemble_insn PARAMS ((unsigned long));
+int disassemble_insn (unsigned long);
#endif
diff --git a/include/opcode/pj.h b/include/opcode/pj.h
index 5779507..f9e44db 100644
--- a/include/opcode/pj.h
+++ b/include/opcode/pj.h
@@ -1,5 +1,5 @@
/* Definitions for decoding the picoJava opcode table.
- Copyright 1999 Free Software Foundation, Inc.
+ Copyright 1999, 2002, 2003 Free Software Foundation, Inc.
Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
This program is free software; you can redistribute it and/or modify
@@ -44,6 +44,6 @@ typedef struct pj_opc_info_t
unsigned char arg[2];
union {
const char *name;
- void (*func) PARAMS ((struct pj_opc_info_t *, char *));
+ void (*func) (struct pj_opc_info_t *, char *);
} u;
} pj_opc_info_t;
diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h
index c4adf71..342237e 100644
--- a/include/opcode/ppc.h
+++ b/include/opcode/ppc.h
@@ -59,77 +59,80 @@ extern const int powerpc_num_opcodes;
/* Values defined for the flags field of a struct powerpc_opcode. */
/* Opcode is defined for the PowerPC architecture. */
-#define PPC_OPCODE_PPC (01)
+#define PPC_OPCODE_PPC 1
/* Opcode is defined for the POWER (RS/6000) architecture. */
-#define PPC_OPCODE_POWER (02)
+#define PPC_OPCODE_POWER 2
/* Opcode is defined for the POWER2 (Rios 2) architecture. */
-#define PPC_OPCODE_POWER2 (04)
+#define PPC_OPCODE_POWER2 4
/* Opcode is only defined on 32 bit architectures. */
-#define PPC_OPCODE_32 (010)
+#define PPC_OPCODE_32 8
/* Opcode is only defined on 64 bit architectures. */
-#define PPC_OPCODE_64 (020)
+#define PPC_OPCODE_64 0x10
/* Opcode is supported by the Motorola PowerPC 601 processor. The 601
is assumed to support all PowerPC (PPC_OPCODE_PPC) instructions,
but it also supports many additional POWER instructions. */
-#define PPC_OPCODE_601 (040)
+#define PPC_OPCODE_601 0x20
/* Opcode is supported in both the Power and PowerPC architectures
(ie, compiler's -mcpu=common or assembler's -mcom). */
-#define PPC_OPCODE_COMMON (0100)
+#define PPC_OPCODE_COMMON 0x40
/* Opcode is supported for any Power or PowerPC platform (this is
for the assembler's -many option, and it eliminates duplicates). */
-#define PPC_OPCODE_ANY (0200)
+#define PPC_OPCODE_ANY 0x80
/* Opcode is supported as part of the 64-bit bridge. */
-#define PPC_OPCODE_64_BRIDGE (0400)
+#define PPC_OPCODE_64_BRIDGE 0x100
/* Opcode is supported by Altivec Vector Unit */
-#define PPC_OPCODE_ALTIVEC (01000)
+#define PPC_OPCODE_ALTIVEC 0x200
/* Opcode is supported by PowerPC 403 processor. */
-#define PPC_OPCODE_403 (02000)
+#define PPC_OPCODE_403 0x400
/* Opcode is supported by PowerPC BookE processor. */
-#define PPC_OPCODE_BOOKE (04000)
+#define PPC_OPCODE_BOOKE 0x800
/* Opcode is only supported by 64-bit PowerPC BookE processor. */
-#define PPC_OPCODE_BOOKE64 (010000)
+#define PPC_OPCODE_BOOKE64 0x1000
+
+/* Opcode is supported by PowerPC 440 processor. */
+#define PPC_OPCODE_440 0x2000
/* Opcode is only supported by Power4 architecture. */
-#define PPC_OPCODE_POWER4 (020000)
+#define PPC_OPCODE_POWER4 0x4000
/* Opcode isn't supported by Power4 architecture. */
-#define PPC_OPCODE_NOPOWER4 (040000)
+#define PPC_OPCODE_NOPOWER4 0x8000
/* Opcode is only supported by POWERPC Classic architecture. */
-#define PPC_OPCODE_CLASSIC (0100000)
+#define PPC_OPCODE_CLASSIC 0x10000
/* Opcode is only supported by e500x2 Core. */
-#define PPC_OPCODE_SPE (0200000)
+#define PPC_OPCODE_SPE 0x20000
/* Opcode is supported by e500x2 Integer select APU. */
-#define PPC_OPCODE_ISEL (0400000)
+#define PPC_OPCODE_ISEL 0x40000
/* Opcode is an e500 SPE floating point instruction. */
-#define PPC_OPCODE_EFS (01000000)
+#define PPC_OPCODE_EFS 0x80000
/* Opcode is supported by branch locking APU. */
-#define PPC_OPCODE_BRLOCK (02000000)
+#define PPC_OPCODE_BRLOCK 0x100000
/* Opcode is supported by performance monitor APU. */
-#define PPC_OPCODE_PMR (04000000)
+#define PPC_OPCODE_PMR 0x200000
/* Opcode is supported by cache locking APU. */
-#define PPC_OPCODE_CACHELCK (010000000)
+#define PPC_OPCODE_CACHELCK 0x400000
/* Opcode is supported by machine check APU. */
-#define PPC_OPCODE_RFMCI (020000000)
+#define PPC_OPCODE_RFMCI 0x800000
/* A macro to extract the major opcode from an instruction. */
#define PPC_OP(i) (((i) >> 26) & 0x3f)
@@ -160,9 +163,8 @@ struct powerpc_operand
string (the operand will be inserted in any case). If the
operand value is legal, *ERRMSG will be unchanged (most operands
can accept any value). */
- unsigned long (*insert) PARAMS ((unsigned long instruction, long op,
- int dialect,
- const char **errmsg));
+ unsigned long (*insert)
+ (unsigned long instruction, long op, int dialect, const char **errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -181,8 +183,7 @@ struct powerpc_operand
non-zero if this operand type can not actually be extracted from
this operand (i.e., the instruction does not match). If the
operand is valid, *INVALID will not be changed. */
- long (*extract) PARAMS ((unsigned long instruction, int dialect,
- int *invalid));
+ long (*extract) (unsigned long instruction, int dialect, int *invalid);
/* One bit syntax flags. */
unsigned long flags;
diff --git a/include/opcode/s390.h b/include/opcode/s390.h
index 6e32723..f582a4e 100644
--- a/include/opcode/s390.h
+++ b/include/opcode/s390.h
@@ -34,7 +34,8 @@ enum s390_opcode_cpu_val
{
S390_OPCODE_G5 = 0,
S390_OPCODE_G6,
- S390_OPCODE_Z900
+ S390_OPCODE_Z900,
+ S390_OPCODE_Z990
};
/* The opcode table is an array of struct s390_opcode. */
diff --git a/include/opcode/sparc.h b/include/opcode/sparc.h
index c412923..c336493 100644
--- a/include/opcode/sparc.h
+++ b/include/opcode/sparc.h
@@ -1,6 +1,6 @@
/* Definitions for opcode table for the sparc.
- Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002
- Free Software Foundation, Inc.
+ Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002,
+ 2003 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
the GNU Binutils.
@@ -74,8 +74,7 @@ struct sparc_opcode_arch {
extern const struct sparc_opcode_arch sparc_opcode_archs[];
/* Given architecture name, look up it's sparc_opcode_arch_val value. */
-extern enum sparc_opcode_arch_val sparc_opcode_lookup_arch
- PARAMS ((const char *));
+extern enum sparc_opcode_arch_val sparc_opcode_lookup_arch (const char *);
/* Return the bitmask of supported architectures for ARCH. */
#define SPARC_OPCODE_SUPPORTED(ARCH) (sparc_opcode_archs[ARCH].supported)
@@ -223,14 +222,14 @@ The following chars are unused: (note: ,[] are used as punctuation)
extern const struct sparc_opcode sparc_opcodes[];
extern const int sparc_num_opcodes;
-extern int sparc_encode_asi PARAMS ((const char *));
-extern const char *sparc_decode_asi PARAMS ((int));
-extern int sparc_encode_membar PARAMS ((const char *));
-extern const char *sparc_decode_membar PARAMS ((int));
-extern int sparc_encode_prefetch PARAMS ((const char *));
-extern const char *sparc_decode_prefetch PARAMS ((int));
-extern int sparc_encode_sparclet_cpreg PARAMS ((const char *));
-extern const char *sparc_decode_sparclet_cpreg PARAMS ((int));
+extern int sparc_encode_asi (const char *);
+extern const char *sparc_decode_asi (int);
+extern int sparc_encode_membar (const char *);
+extern const char *sparc_decode_membar (int);
+extern int sparc_encode_prefetch (const char *);
+extern const char *sparc_decode_prefetch (int);
+extern int sparc_encode_sparclet_cpreg (const char *);
+extern const char *sparc_decode_sparclet_cpreg (int);
/*
* Local Variables:
diff --git a/include/opcode/tic80.h b/include/opcode/tic80.h
index 01159e4..c6a79df 100644
--- a/include/opcode/tic80.h
+++ b/include/opcode/tic80.h
@@ -1,5 +1,5 @@
/* tic80.h -- Header file for TI TMS320C80 (MV) opcode table
- Copyright 1996, 1997 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 2003 Free Software Foundation, Inc.
Written by Fred Fish (fnf@cygnus.com), Cygnus Support
This file is part of GDB, GAS, and the GNU binutils.
@@ -90,8 +90,8 @@ struct tic80_operand
operand value is legal, *ERRMSG will be unchanged (most operands
can accept any value). */
- unsigned long (*insert) PARAMS ((unsigned long instruction, long op,
- const char **errmsg));
+ unsigned long (*insert)
+ (unsigned long instruction, long op, const char **errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -111,7 +111,7 @@ struct tic80_operand
this operand (i.e., the instruction does not match). If the
operand is valid, *INVALID will not be changed. */
- long (*extract) PARAMS ((unsigned long instruction, int *invalid));
+ long (*extract) (unsigned long instruction, int *invalid);
/* One bit syntax flags. */
@@ -265,13 +265,18 @@ struct predefined_symbol
#define PDS_NAME(pdsp) ((pdsp) -> name)
#define PDS_VALUE(pdsp) ((pdsp) -> value)
-extern const struct predefined_symbol tic80_predefined_symbols[]; /* Translation array */
-extern const int tic80_num_predefined_symbols; /* How many members in the array */
+/* Translation array. */
+extern const struct predefined_symbol tic80_predefined_symbols[];
+/* How many members in the array. */
+extern const int tic80_num_predefined_symbols;
-const char *tic80_value_to_symbol PARAMS ((int val, int class)); /* Translate value to symbolic name */
-int tic80_symbol_to_value PARAMS ((char *name, int class)); /* Translate symbolic name to value */
+/* Translate value to symbolic name. */
+const char *tic80_value_to_symbol (int val, int class);
-const struct predefined_symbol *
-tic80_next_predefined_symbol PARAMS ((const struct predefined_symbol *));
+/* Translate symbolic name to value. */
+int tic80_symbol_to_value (char *name, int class);
+
+const struct predefined_symbol *tic80_next_predefined_symbol
+ (const struct predefined_symbol *);
#endif /* TIC80_H */
diff --git a/include/opcode/v850.h b/include/opcode/v850.h
index 2183bc8..f6a1eb4 100644
--- a/include/opcode/v850.h
+++ b/include/opcode/v850.h
@@ -1,5 +1,5 @@
/* v850.h -- Header file for NEC V850 opcode table
- Copyright 1996, 1997, 2001 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 2001, 2003 Free Software Foundation, Inc.
Written by J.T. Conklin, Cygnus Support
This file is part of GDB, GAS, and the GNU binutils.
@@ -95,8 +95,8 @@ struct v850_operand
string (the operand will be inserted in any case). If the
operand value is legal, *ERRMSG will be unchanged (most operands
can accept any value). */
- unsigned long (* insert) PARAMS ((unsigned long instruction, long op,
- const char ** errmsg));
+ unsigned long (* insert)
+ (unsigned long instruction, long op, const char ** errmsg);
/* Extraction function. This is used by the disassembler. To
extract this operand type from an instruction, check this field.
@@ -114,7 +114,7 @@ struct v850_operand
non-zero if this operand type can not actually be extracted from
this operand (i.e., the instruction does not match). If the
operand is valid, *INVALID will not be changed. */
- unsigned long (* extract) PARAMS ((unsigned long instruction, int * invalid));
+ unsigned long (* extract) (unsigned long instruction, int * invalid);
/* One bit syntax flags. */
int flags;
diff --git a/include/xtensa-config.h b/include/xtensa-config.h
index b47cbd7..4191c36 100644
--- a/include/xtensa-config.h
+++ b/include/xtensa-config.h
@@ -1,5 +1,5 @@
/* Xtensa configuration settings.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This program is free software; you can redistribute it and/or modify
@@ -24,41 +24,116 @@
Xtensa System Software Reference Manual for documentation of these
macros. */
+#undef XCHAL_HAVE_BE
#define XCHAL_HAVE_BE 1
+
+#undef XCHAL_HAVE_DENSITY
#define XCHAL_HAVE_DENSITY 1
+
+#undef XCHAL_HAVE_CONST16
+#define XCHAL_HAVE_CONST16 0
+
+#undef XCHAL_HAVE_ABS
+#define XCHAL_HAVE_ABS 1
+
+#undef XCHAL_HAVE_ADDX
+#define XCHAL_HAVE_ADDX 1
+
+#undef XCHAL_HAVE_L32R
+#define XCHAL_HAVE_L32R 1
+
+#undef XCHAL_HAVE_MAC16
#define XCHAL_HAVE_MAC16 0
+
+#undef XCHAL_HAVE_MUL16
#define XCHAL_HAVE_MUL16 0
+
+#undef XCHAL_HAVE_MUL32
#define XCHAL_HAVE_MUL32 0
+
+#undef XCHAL_HAVE_DIV32
#define XCHAL_HAVE_DIV32 0
+
+#undef XCHAL_HAVE_NSA
#define XCHAL_HAVE_NSA 1
+
+#undef XCHAL_HAVE_MINMAX
#define XCHAL_HAVE_MINMAX 0
+
+#undef XCHAL_HAVE_SEXT
#define XCHAL_HAVE_SEXT 0
+
+#undef XCHAL_HAVE_LOOPS
#define XCHAL_HAVE_LOOPS 1
+
+#undef XCHAL_HAVE_BOOLEANS
#define XCHAL_HAVE_BOOLEANS 0
+
+#undef XCHAL_HAVE_FP
#define XCHAL_HAVE_FP 0
+
+#undef XCHAL_HAVE_FP_DIV
#define XCHAL_HAVE_FP_DIV 0
+
+#undef XCHAL_HAVE_FP_RECIP
#define XCHAL_HAVE_FP_RECIP 0
+
+#undef XCHAL_HAVE_FP_SQRT
#define XCHAL_HAVE_FP_SQRT 0
+
+#undef XCHAL_HAVE_FP_RSQRT
#define XCHAL_HAVE_FP_RSQRT 0
+
+#undef XCHAL_HAVE_WINDOWED
#define XCHAL_HAVE_WINDOWED 1
+
+#undef XCHAL_ICACHE_SIZE
#define XCHAL_ICACHE_SIZE 8192
+
+#undef XCHAL_DCACHE_SIZE
#define XCHAL_DCACHE_SIZE 8192
+
+#undef XCHAL_ICACHE_LINESIZE
#define XCHAL_ICACHE_LINESIZE 16
+
+#undef XCHAL_DCACHE_LINESIZE
#define XCHAL_DCACHE_LINESIZE 16
+
+#undef XCHAL_ICACHE_LINEWIDTH
#define XCHAL_ICACHE_LINEWIDTH 4
+
+#undef XCHAL_DCACHE_LINEWIDTH
#define XCHAL_DCACHE_LINEWIDTH 4
+
+#undef XCHAL_DCACHE_IS_WRITEBACK
#define XCHAL_DCACHE_IS_WRITEBACK 0
+
+#undef XCHAL_HAVE_MMU
#define XCHAL_HAVE_MMU 1
+
+#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE
#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12
+
+#undef XCHAL_HAVE_DEBUG
#define XCHAL_HAVE_DEBUG 1
+
+#undef XCHAL_NUM_IBREAK
#define XCHAL_NUM_IBREAK 2
+
+#undef XCHAL_NUM_DBREAK
#define XCHAL_NUM_DBREAK 2
+
+#undef XCHAL_DEBUGLEVEL
#define XCHAL_DEBUGLEVEL 4
-#define XCHAL_EXTRA_SA_SIZE 0
-#define XCHAL_EXTRA_SA_ALIGN 1
+
+#undef XCHAL_EXTRA_SA_SIZE
+#define XCHAL_EXTRA_SA_SIZE 0
+
+#undef XCHAL_EXTRA_SA_ALIGN
+#define XCHAL_EXTRA_SA_ALIGN 1
#endif /* !XTENSA_CONFIG_H */
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 913bf54..031b7f1 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,24 @@
+2003-08-12 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * cp-demangle.c: Clarify what package(s) this is part of.
+
+2003-07-05 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * pex-win32.c (pexecute): Mark parameters this_pname and
+ temp_base as unused. Remove unused variables retries,
+ sleep_interval. Initialize org_stdin, org_stdout.
+ (pwait): Mark parameter flags as unused.
+
+2003-07-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * pex-win32.c (fix_argv): Ensure that the executable pathname
+ uses Win32 backslashes.
+ (pexecute): Cast away constness when assigning *errmsg_arg.
+
+2003-06-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/demangle-expected: Add more GNU V3 testcases.
+
2003-06-22 Zack Weinberg <zack@codesourcery.com>
* safe-ctype.c: Use HOST_CHARSET_ASCII and HOST_CHARSET_EBCDIC,
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 5dcce55..bd48822 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -2,9 +2,9 @@
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Written by Alex Samuel <samuel@codesourcery.com>.
- This file is part of GNU CC.
+ This file is part of the libiberty library, which is part of GCC.
- This program is free software; you can redistribute it and/or modify
+ This file 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.
diff --git a/libiberty/pex-win32.c b/libiberty/pex-win32.c
index bd097a4..27a5bb4 100644
--- a/libiberty/pex-win32.c
+++ b/libiberty/pex-win32.c
@@ -57,7 +57,13 @@ fix_argv (argvec)
char **argvec;
{
int i;
+ char * command0 = argvec[0];
+ /* Ensure that the executable pathname uses Win32 backslashes. */
+ for (; *command0 != '\0'; command0++)
+ if (*command0 == '/')
+ *command0 = '\\';
+
for (i = 1; argvec[i] != 0; i++)
{
int len, j;
@@ -130,15 +136,16 @@ int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
- const char *this_pname;
- const char *temp_base;
+ const char *this_pname ATTRIBUTE_UNUSED;
+ const char *temp_base ATTRIBUTE_UNUSED;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
int pid;
- int pdes[2], org_stdin, org_stdout;
+ int pdes[2];
+ int org_stdin = -1;
+ int org_stdout = -1;
int input_desc, output_desc;
- int retries, sleep_interval;
/* Pipe waiting from last process, to be used as input for the next one.
Value is STDIN_FILE_NO if no pipe is waiting
@@ -203,7 +210,7 @@ pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
if (pid == -1)
{
*errmsg_fmt = install_error_msg;
- *errmsg_arg = program;
+ *errmsg_arg = (char*) program;
return -1;
}
@@ -221,7 +228,7 @@ int
pwait (pid, status, flags)
int pid;
int *status;
- int flags;
+ int flags ATTRIBUTE_UNUSED;
{
int termstat;
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index c048318..6be66e1 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -2598,9 +2598,269 @@ _Utf58_0_1__1_2147483647__2147483648
--format=gnu-v3
St9bad_alloc
std::bad_alloc
+#
+--format=gnu-v3
+_ZN1f1fE
+f::f
+#
+--format=gnu-v3
+_Z1fv
+f()
+#
+--format=gnu-v3
+_Z1fi
+f(int)
+#
+--format=gnu-v3
+_Z3foo3bar
+foo(bar)
+#
+--format=gnu-v3
+_Zrm1XS_
+operator%(X, X)
+#
+--format=gnu-v3
+_ZplR1XS0_
+operator+(X&, X&)
+#
+--format=gnu-v3
+_ZlsRK1XS1_
+operator<<(X const&, X const&)
+#
+--format=gnu-v3
+_ZN3FooIA4_iE3barE
+Foo<int[4]>::bar
+#
+--format=gnu-v3
+_Z1fIiEvi
+void f<int>(int)
+#
+--format=gnu-v3
+_Z5firstI3DuoEvS0_
+void first<Duo>(Duo)
+#
+--format=gnu-v3
+_Z5firstI3DuoEvT_
+void first<Duo>(Duo)
+#
+--format=gnu-v3
+_Z3fooIiFvdEiEvv
+void foo<int, void ()(double), int>()
+#
+--format=gnu-v3
+_ZN1N1fE
+N::f
+#
+--format=gnu-v3
+_ZN6System5Sound4beepEv
+System::Sound::beep()
+#
+--format=gnu-v3
+_ZN5Arena5levelE
+Arena::level
+#
+--format=gnu-v3
+_ZN5StackIiiE5levelE
+Stack<int, int>::level
+#
+--format=gnu-v3
+_Z1fI1XEvPVN1AIT_E1TE
+void f<X>(A<X>::T volatile*)
+#
+--format=gnu-v3
+_ZngILi42EEvN1AIXplT_Li2EEE1TE
+void operator-<42>(A<(42) + (2)>::T)
+#
+--format=gnu-v3
+_Z4makeI7FactoryiET_IT0_Ev
+Factory<int> make<Factory, int>()
+#
+--format=gnu-v3
+_Z4makeI7FactoryiET_IT0_Ev
+Factory<int> make<Factory, int>()
+#
+--format=gnu-v3
+_Z3foo5Hello5WorldS0_S_
+foo(Hello, World, World, Hello)
+#
+--format=gnu-v3
+_Z3fooPM2ABi
+foo(int AB::**)
+#
+--format=gnu-v3
+_ZlsRSoRKSs
+operator<<(std::ostream&, std::string const&)
+#
+--format=gnu-v3
+_ZTI7a_class
+typeinfo for a_class
+#
+--format=gnu-v3
+U4_farrVKPi
+int* restrict volatile const _far
+#
+--format=gnu-v3
+_Z3fooILi2EEvRAplT_Li1E_i
+void foo<2>(int (&) [(2) + (1)])
+#
+--format=gnu-v3
+_Z1fM1AKFvvE
+f(void (A::*)() const)
+#
+--format=gnu-v3
+_Z3fooc
+foo(char)
+#
+--format=gnu-v3
+2CBIL_Z3foocEE
+CB<foo(char)>
+#
+--format=gnu-v3
+2CBIL_Z7IsEmptyEE
+CB<IsEmpty>
+#
+--format=gnu-v3
+_ZZN1N1fEiE1p
+N::f(int)::p
+#
+--format=gnu-v3
+_ZZN1N1fEiEs
+N::f(int)::string literal
+#
+--format=gnu-v3
+_Z1fPFvvEM1SFvvE
+f(void (*)(), void (S::*)())
+#
+--format=gnu-v3
+_ZN1N1TIiiE2mfES0_IddE
+N::T<int, int>::mf(N::T<double, double>)
+#
+--format=gnu-v3
+_ZSt5state
+std::state
+#
+--format=gnu-v3
+_ZNSt3_In4wardE
+std::_In::ward
+#
+--format=gnu-v3
+_Z1fKPFiiE
+f(int (* const)(int))
+#
+--format=gnu-v3
+_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i
+f(int[sizeof(N::A::f() const::foo)])
+#
+--format=gnu-v3
+_Z1fA37_iPS_
+f(int[37], int (*) [37])
+#
+--format=gnu-v3
+_Z1fM1AFivEPS0_
+f(int (A::*)(), int (*)())
+#
+--format=gnu-v3
+_Z1fPFPA1_ivE
+f(int (*(*)()) [1])
+#
+--format=gnu-v3
+_Z1fPKM1AFivE
+f(int (A::* const*)())
+#
+--format=gnu-v3
+_Z1jM1AFivEPS1_
+j(int (A::*)(), int (A::**)())
+#
+--format=gnu-v3
+_Z1sPA37_iPS0_
+s(int (*) [37], int (**) [37])
+#
+--format=gnu-v3
+_Z3fooA30_A_i
+foo(int[30][])
+#
+--format=gnu-v3
+_Z3kooPA28_A30_i
+koo(int (*) [28][30])
+#
+--format=gnu-v3
+_ZlsRKU3fooU4bart1XS0_
+operator<<(X bart foo const&, X bart)
+#
+--format=gnu-v3
+_ZlsRKU3fooU4bart1XS2_
+operator<<(X bart foo const&, X bart foo const)
+#
+--format=gnu-v3
+_Z1fM1AKFivE
+f(int (A::*)() const)
+#
+--format=gnu-v3
+_Z3absILi11EEvv
+void abs<11>()
+#
+--format=gnu-v3
+_ZN1AIfEcvT_IiEEv
+A<float>::operator int<int>()
+#
+--format=gnu-v3
+_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_
+void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)
+#
+--format=gnu-v3
+_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE
+guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
+#
+--format=gnu-v3
+_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE
+libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)
+#
+--format=gnu-v3
+_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv
+std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const
+#
+--format=gnu-v3
+_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_
+std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const
+#
+--format=gnu-v3
+_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_
+std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const
+#
+--format=gnu-v3
+_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_
+char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)
+#
+--format=gnu-v3
+_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_
+void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])
+#
+--format=gnu-v3
+_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_
+foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
+#
+--format=gnu-v3
+_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_
+std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)
+#
+--format=gnu-v3
+_X11TransParseAddress
+_X11TransParseAddress
+#
+--format=gnu-v3
+_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE
+std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
+#
+--format=gnu-v3
+_GLOBAL__I__Z2fnv
+global constructors keyed to fn()
+#
+--format=gnu-v3
+_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_
+r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)
#
# This caused an infinite loop.
# We still don't demangle this correctly, but at least we don't hang.
--format=auto
__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
-_Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm(iterator)
+__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
diff --git a/mkinstalldirs b/mkinstalldirs
index cc8783e..d2d5f21 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -2,35 +2,110 @@
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
-# Last modified: 1994-03-25
# Public domain
errstatus=0
+dirmode=""
-for file in ${1+"$@"} ; do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
- pathcomp=
- for d in ${1+"$@"} ; do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage" 1>&2
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+case $dirmode in
+ '')
+ if mkdir -p -- . 2>/dev/null; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
- mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
- fi
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
- pathcomp="$pathcomp/"
- done
+ pathcomp="$pathcomp/"
+ done
done
exit $errstatus
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
# mkinstalldirs ends here
diff --git a/mmalloc/ChangeLog b/mmalloc/ChangeLog
index a46ca36..a1e3ad0 100644
--- a/mmalloc/ChangeLog
+++ b/mmalloc/ChangeLog
@@ -1,3 +1,8 @@
+2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (install-info): Create dest dir. Support DESTDIR.
+ (install): Likewise.
+
2002-11-28 Elena Zannoni <ezannoni@redhat.com>
* Makefile.in (install): Move install-info to here...
diff --git a/mmalloc/Makefile.in b/mmalloc/Makefile.in
index 06fbd9c..b05aea7 100644
--- a/mmalloc/Makefile.in
+++ b/mmalloc/Makefile.in
@@ -113,6 +113,7 @@ mmalloc.dvi: mmalloc.texi
rm -f mmalloc.?? mmalloc.??s mmalloc.log mmalloc.aux mmalloc.toc
install-info: info
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
@@ -156,9 +157,10 @@ check: test1.c
# ./a.out
install: all install-info
- $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)n
- $(RANLIB) $(libdir)/$(TARGETLIB)n
- mv -f $(libdir)/$(TARGETLIB)n $(libdir)/$(TARGETLIB)
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n
+ $(RANLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n
+ mv -f $(DESTDIR)$(libdir)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(TARGETLIB)
uninstall: uninstall-info
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index b112aae..077c4ed 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,277 @@
+2003-08-19 Nick Clifton <nickc@redhat.com>
+
+ * arm-dis.c (print_insn_arm: case 'A'): Add code to
+ disassemble unindexed form of Addressing Mode 5.
+
+2003-08-19 Alan Modra <amodra@bigpond.net.au>
+
+ * ppc-opc.c (PPC440): Define.
+ (powerpc_opcodes): Allow mac*, mul*, nmac*, dccci, dcread, iccci,
+ icread instructions when PPC440. Add dlmzb instruction.
+
+2003-08-14 Alan Modra <amodra@bigpond.net.au>
+
+ * dep-in.sed: Remove libintl.h.
+ * Makefile.am (POTFILES.in): Unset LC_COLLATE.
+ Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+2003-08-07 Michael Meissner <gnu@the-meissners.org>
+
+ * cgen-asm.c (hash_insn_array): Remove PARAMS macro.
+ (hash_insn_list): Ditto.
+ (build_asm_hash_table): Ditto.
+ (cgen_set_parse_operand_fn): Prototype definition.
+ (cgen_init_parse_operand): Ditto.
+ (hash_insn_array): Ditto.
+ (hash_insn_list): Ditto.
+ (build_asm_hash_table): Ditto.
+ (cgen_asm_lookup_insn): Ditto.
+ (cgen_parse_keyword): Ditto.
+ (cgen_parse_signed_integer): Ditto.
+ (cgen_parse_unsigned_integer): Ditto.
+ (cgen_parse_address): Ditto.
+ (cgen_validate_signed_integer): Ditto.
+ (cgen_validate_unsigned_integer): Ditto.
+
+ * cgen-opc.c (hash_keyword_name): Remove PARAMS macro.
+ (hash_keyword_value): Ditto.
+ (build_keyword_hash_tables): Ditto.
+ (cgen_keyword_lookup_name): Prototype definition.
+ (cgen_keyword_lookup_value): Ditto.
+ (cgen_keyword_add): Ditto.
+ (cgen_keyword_search_init): Ditto.
+ (cgen_keyword_search_next): Ditto.
+ (hash_keyword_name): Ditto.
+ (hash_keyword_value): Ditto.
+ (build_keyword_hash_tables): Ditto.
+ (cgen_hw_lookup_by_name): Ditto.
+ (cgen_hw_lookup_by_num): Ditto.
+ (cgen_operand_lookup_by_name): Ditto.
+ (cgen_operand_lookup_by_num): Ditto.
+ (cgen_insn_count): Ditto.
+ (cgen_macro_insn_count): Ditto.
+ (cgen_get_insn_value): Ditto.
+ (cgen_put_insn_value): Ditto.
+ (cgen_lookup_insn): Ditto.
+ (cgen_get_insn_operands): Ditto.
+ (cgen_lookup_get_insn_operands): Ditto.
+ (cgen_set_signed_overflow_ok): Ditto.
+ (cgen_clear_signed_overflow_ok): Ditto.
+ (cgen_signed_overflow_ok_p): Ditto.
+
+ * cgen-dis.c (hash_insn_array): Remove PARAMS macro.
+ (hash_insn_list): Ditto.
+ (build_dis_hash_table): Ditto.
+ (count_decodable_bits): Ditto.
+ (add_insn_to_hash_chain): Ditto.
+ (count_decodable_bits): Prototype definition.
+ (add_insn_to_hash_chain): Ditto.
+ (hash_insn_array): Ditto.
+ (hash_insn_list): Ditto.
+ (build_dis_hash_table): Ditto.
+ (cgen_dis_lookup_insn): Ditto.
+
+ * cgen-asm.in (parse_insn_normal): Remove PARAMS macro.
+ (@arch@_cgen_build_insn_regex): Prototype definition.
+ (parse_insn_normal): Ditto.
+ (@arch@_cgen_assemble_insn): Ditto.
+ (@arch@_cgen_asm_hash_keywords): Ditto.
+
+ * cgen-dis.in (print_normal): Remove PARAMS macro. Use void *
+ instead of PTR.
+ (print_address): Ditto.
+ (print_keyword): Ditto.
+ (print_insn_normal): Ditto.
+ (print_insn): Ditto.
+ (default_print_insn): Ditto.
+ (read_insn): Ditto.
+ (print_normal): Prototype definition. Use void * instead of PTR.
+ (print_address): Ditto.
+ (print_keyword): Ditto.
+ (print_insn_normal): Ditto.
+ (read_insn): Ditto.
+ (print_insn): Ditto.
+ (default_print_insn): Ditto.
+ (print_insn_@arch@): Ditto.
+
+ * cgen-ibld.in (insert_normal): Remove PARAMS macro.
+ (insn_insn_normal): Ditto.
+ (extract_normal): Ditto.
+ (extract_insn_normal): Ditto.
+ (put_insn_int_value): Ditto.
+ (insert_1): Ditto.
+ (fill_cache): Ditto.
+ (extract_1): Ditto.
+ (insert_1): Prototype definition.
+ (insert_normal): Ditto.
+ (insert_insn_normal): Ditto.
+ (put_insn_int_value): Ditto.
+ (fill_cache): Ditto.
+ (extract_1): Ditto.
+ (extract_normal): Ditto.
+ (extract_insn_normal): Ditto.
+
+ * fr30-asm.c: Regenerate.
+ * fr30-dis.c: Ditto.
+ * fr30-ibld.c: Ditto.
+ * frv-asm.c: Ditto.
+ * frv-dis.c: Ditto.
+ * frv-ibld.c: Ditto.
+ * ip2k-asm.c: Ditto.
+ * ip2k-dis.c: Ditto.
+ * ip2k-ibld.c: Ditto.
+ * iq2000-asm.c: Ditto.
+ * iq2000-dis.c: Ditto.
+ * iq2000-ibld.c: Ditto.
+ * m32r-asm.c: Ditto.
+ * m32r-dis.c: Ditto.
+ * m32r-ibld.c: Ditto.
+ * openrisc-asm.c: Ditto.
+ * openrisc-dis.c: Ditto.
+ * openrisc-ibld.c: Ditto.
+ * xstormy16-asm.c: Ditto.
+ * xstormy16-dis.c: Ditto.
+ * xstormy16-ibld.c: Ditto.
+
+2003-08-06 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2003-08-05 Nick Clifton <nickc@redhat.com>
+
+ * configure.in (ALL_LINGUAS): Add nl.
+ * configure: Regenerate.
+ * po/nl.po: New Dutch translation.
+
+2003-07-30 Jason Eckhardt <jle@rice.edu>
+
+ * i860-dis.c: Convert to ISO C90. Remove superflous prototypes.
+
+2003-07-30 Nick Clifton <nickc@redhat.com>
+
+ * po/ro.po: Updated Romanian translation.
+
+2003-07-29 Jakub Jelinek <jakub@redhat.com>
+
+ * ppc-opc.c (insert_mbe, extract_mbe): Shift 1L instead of 1 up.
+
+2003-07-24 Nick Clifton <nickc@redhat.com>
+
+ * po/fr.po: Updated French translation.
+
+2003-07-18 Nick Clifton <nickc@redhat.com>
+
+ * arm-dis.c (parse_arm_disassembler_option): Do not expect
+ option string to be NUL terminated.
+ (parse_disassembler_options): Allow options to be space or
+ comma separated.
+
+2003-07-17 Nick Clifton <nickc@redhat.com>
+
+ * po/es.po: New Spanish translation.
+ * po/sv.po: New Swedish translation.
+ * po/opcodes.pot: Regenerate.
+
+2003-07-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * mips-dis.c (mips_arch_choices): Add rm7000 and rm9000 entries.
+
+2003-07-14 Nick Clifton <nickc@redhat.com>
+
+ * po/tr.po: Update with latest version.
+ * po/POTFILES.in: Regenerate.
+ * Makefile.in: Regenerate.
+
+2003-07-11 Alan Modra <amodra@bigpond.net.au>
+
+ * po/opcodes.pot: Regenerate.
+
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2000-05-25 Alexandre Oliva <aoliva@cygnus.com>
+ * m10300-dis.c (disassemble): Negate negative accumulator's shift.
+ 2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
+ * m10300-dis.c (disassemble, case FSREG, FDREG): Don't assume
+ 32-bit longs when sign-extending operands.
+ 2000-04-20 Alexandre Oliva <aoliva@cygnus.com>
+ * m10300-opc.c: Remove MN10300_OPERAND_RELAX from all FSREGs.
+ * m10300-dis.c (HAVE_AM33_2): Define.
+ (disassemble): Use it.
+ (HAVE_AM33): Redefine.
+ (print_insn_mn10300): Fix mask for 5-byte extended insns.
+ 2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
+ * m10300-opc.c: Renamed AM332 to AM33_2.
+ 2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
+ * m10300-opc.c: Defined AM33 2.0 register operands. Added support
+ for AM33 2.0 `imm8,(abs16)' addressing mode for btst, bset and
+ bclr. Implemented `fbCC', `flCC', `dcpf' and all FP insns.
+ * m10300-dis.c (print_insn_mn10300): Recognize 5byte extended
+ insn code of AM33 2.0.
+ (disassemble): Recognize FMT_D3. Print out FP register names.
+
+2003-07-09 Chris Demetriou <cgd@broadcom.com>
+
+ * mips-dis.c (set_default_mips_dis_options): Get BFD from
+ the disassembler_info's section, rather than from the
+ disassembler_info's symbols pointer.
+
+2003-07-07 Alan Modra <amodra@bigpond.net.au>
+
+ * ppc-opc.c: Remove NULL pointer checks. Formatting. Remove
+ extraneous ATTRIBUTE_UNUSED.
+ * ppc-dis.c (print_insn_powerpc): Always pass a valid address to
+ operand->extract.
+
+2003-07-04 Alan Modra <amodra@bigpond.net.au>
+
+ * ppc-opc.c: Convert to C90, removing unnecessary prototypes and
+ casts. Formatting.
+
+ * ppc-opc.c: Remove PARAMS from prototypes.
+ (FXM4): Define.
+ (insert_fxm): New function, used by both FXM and FXM4.
+ (extract_fxm): Likewise.
+ (XFXFXM_MASK): Remove 1 << 20 term.
+ (powerpc_opcodes): Add Power4 version of "mfcr". Simplify "mtcr" mask.
+
+2003-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * s390-dis.c (s390_extract_operand): Add support for long displacements.
+ * s390-mkopc.c (s390_opcode_cpu_val): Add support for cpu type z990.
+ * s390-opc.c (D20_20): Add define for 20 bit displacements.
+ (INSTR_RRF_R0RR, INSTR_RSL_R0RD, INSTR_RSY_RRRD, INSTR_RSY_RURD,
+ INSTR_RSY_AARD, INSTR_RXY_RRRD, INSTR_RXY_FRRD, INSTR_SIY_URD): Add
+ new instruction formats.
+ (MASK_RRF_R0RR, MASK_RSL_R0RD, MASK_RSY_RRRD, MASK_RSY_RURD,
+ MASK_RSY_AARD, MASK_RXY_RRRD, MASK_RXY_FRRD, MASK_SIY_URD): Likewise.
+ (s390_opformats): Likewise.
+ * s390-opc.txt: Add new instructions for cpu type z990. Add missing
+ hfp instructions. Add missing instructions pgin, pgout and xsch.
+
+2003-06-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386-dis.c (PNI_Fixup): New. Fix up "mwait" and "monitor" in
+ Intel Precott New Instructions.
+ (PREGRP27): New. Added for "addsubpd" and "addsubps".
+ (PREGRP28): New. Added for "haddpd" and "haddps".
+ (PREGRP29): New. Added for "hsubpd" and "hsubps".
+ (PREGRP30): New. Added for "movsldup" and "movddup".
+ (PREGRP31): New. Added for "movshdup" and "movhpd".
+ (PREGRP32): New. Added for "lddqu".
+ (dis386_twobyte): Use PREGRP30 to replace the "movlpX" entry.
+ Use PREGRP31 to replace the "movhpX" entry. Use PREGRP28 for
+ entry 0x7c. Use PREGRP29 for entry 0x7d. Use PREGRP27 for
+ entry 0xd0. Use PREGRP32 for entry 0xf0.
+ (twobyte_has_modrm): Updated.
+ (twobyte_uses_SSE_prefix): Likewise.
+ (grps): Use PNI_Fixup in the "sidtQ" entry.
+ (prefix_user_table): Add PREGRP27, PREGRP28, PREGRP29, PREGRP30,
+ PREGRP31 and PREGRP32.
+ (float_mem): Use "fisttp{l||l|}" in entry 1 in opcode 0xdb.
+ Use "fisttpll" in entry 1 in opcode 0xdd.
+ Use "fisttp" in entry 1 in opcode 0xdf.
+
2003-06-19 Christian Groessler <chris@groessler.org>
* z8k-dis.c (instr_data_s): Change tabl_index from long to int.
@@ -672,7 +946,7 @@
2002-11-06 Aldy Hernandez <aldyh@redhat.com>
- * opcodes/ppc-opc.c: Change RD to RS for evmerge*.
+ * ppc-opc.c: Change RD to RS for evmerge*.
2002-10-07 Nathan Tallent <eraxxon@alumni.rice.edu>
@@ -1569,7 +1843,7 @@
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
- * opcodes/po/POTFILES.in: Regenerate.
+ * po/POTFILES.in: Regenerate.
2002-01-19 Richard Earnshaw <rearnsha@arm.com>
@@ -2134,9 +2408,9 @@
2001-08-23 Martin Schwidefsky <schwidefsky@de.ibm.com>
- * opcodes/s390-opc.c: Add "low or high" and "not low or high"
+ * s390-opc.c: Add "low or high" and "not low or high"
branch instructions for gcc 3.0.
- * opcodes/s390-opc.txt: Likewise.
+ * s390-opc.txt: Likewise.
2001-08-21 Andreas Jaeger <aj@suse.de>
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index 7097be0..ae03afc 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -306,7 +306,7 @@ libopcodes.a: stamp-lib ; @true
POTFILES = $(HFILES) $(CFILES)
po/POTFILES.in: @MAINT@ Makefile
- for file in $(POTFILES); do echo $$file; done | sort > tmp \
+ for f in $(POTFILES); do echo $$f; done | LC_COLLATE= sort > tmp \
&& mv tmp $(srcdir)/po/POTFILES.in
# We should reconfigure whenever bfd/configure.in changes, because
@@ -515,9 +515,9 @@ arc-ext.lo: arc-ext.c sysdep.h config.h $(INCDIR)/ansidecl.h \
arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h arm-opc.h \
$(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \
- opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/arm.h \
- $(INCDIR)/elf/reloc-macros.h
+ opintl.h $(INCDIR)/safe-ctype.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h
avr-dis.lo: avr-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h \
$(INCDIR)/libiberty.h $(INCDIR)/opcode/avr.h
@@ -624,7 +624,7 @@ ia64-gen.lo: ia64-gen.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
$(INCDIR)/safe-ctype.h sysdep.h config.h $(INCDIR)/getopt.h \
ia64-opc.h $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/symcat.h \
ia64-opc-a.c ia64-opc-i.c ia64-opc-m.c ia64-opc-b.c \
- ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c ../intl/libintl.h
+ ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c
ia64-asmtab.lo: ia64-asmtab.c
ip2k-asm.lo: ip2k-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index 2823902..065293e 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -840,7 +840,7 @@ stamp-lib: libopcodes.la
libopcodes.a: stamp-lib ; @true
po/POTFILES.in: @MAINT@ Makefile
- for file in $(POTFILES); do echo $$file; done | sort > tmp \
+ for f in $(POTFILES); do echo $$f; done | LC_COLLATE= sort > tmp \
&& mv tmp $(srcdir)/po/POTFILES.in
# We should reconfigure whenever bfd/configure.in changes, because
@@ -1011,9 +1011,9 @@ arc-ext.lo: arc-ext.c sysdep.h config.h $(INCDIR)/ansidecl.h \
arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h arm-opc.h \
$(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \
- opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/arm.h \
- $(INCDIR)/elf/reloc-macros.h
+ opintl.h $(INCDIR)/safe-ctype.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h
avr-dis.lo: avr-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h \
$(INCDIR)/libiberty.h $(INCDIR)/opcode/avr.h
@@ -1120,7 +1120,7 @@ ia64-gen.lo: ia64-gen.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
$(INCDIR)/safe-ctype.h sysdep.h config.h $(INCDIR)/getopt.h \
ia64-opc.h $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/symcat.h \
ia64-opc-a.c ia64-opc-i.c ia64-opc-m.c ia64-opc-b.c \
- ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c ../intl/libintl.h
+ ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c
ia64-asmtab.lo: ia64-asmtab.c
ip2k-asm.lo: ip2k-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 2c9e385..ac36e88 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -27,6 +27,7 @@
#include "coff/internal.h"
#include "libcoff.h"
#include "opintl.h"
+#include "safe-ctype.h"
/* FIXME: This shouldn't be done here. */
#include "elf-bfd.h"
@@ -444,9 +445,11 @@ print_insn_arm (pc, info, given)
case 'A':
func (stream, "[%s", arm_regnames [(given >> 16) & 0xf]);
- if ((given & 0x01000000) != 0)
+
+ if ((given & (1 << 24)) != 0)
{
int offset = given & 0xff;
+
if (offset)
func (stream, ", %s#%d]%s",
((given & 0x00800000) == 0 ? "-" : ""),
@@ -458,12 +461,18 @@ print_insn_arm (pc, info, given)
else
{
int offset = given & 0xff;
- if (offset)
- func (stream, "], %s#%d",
- ((given & 0x00800000) == 0 ? "-" : ""),
- offset * 4);
+
+ func (stream, "]");
+
+ if (given & (1 << 21))
+ {
+ if (offset)
+ func (stream, ", %s#%d",
+ ((given & 0x00800000) == 0 ? "-" : ""),
+ offset * 4);
+ }
else
- func (stream, "]");
+ func (stream, ", {%d}", offset);
}
break;
@@ -1152,51 +1161,48 @@ parse_arm_disassembler_option (option)
option += 10;
for (i = NUM_ARM_REGNAMES; i--;)
- if (streq (option, regnames[i].name))
+ if (strneq (option, regnames[i].name, strlen (regnames[i].name)))
{
regname_selected = i;
break;
}
if (i < 0)
+ /* XXX - should break 'option' at following delimiter. */
fprintf (stderr, _("Unrecognised register name set: %s\n"), option);
}
- else if (streq (option, "force-thumb"))
+ else if (strneq (option, "force-thumb", 11))
force_thumb = 1;
- else if (streq (option, "no-force-thumb"))
+ else if (strneq (option, "no-force-thumb", 14))
force_thumb = 0;
else
+ /* XXX - should break 'option' at following delimiter. */
fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
return;
}
-/* Parse the string of disassembler options, spliting it at whitespaces. */
+/* Parse the string of disassembler options, spliting it at whitespaces
+ or commas. (Whitespace separators supported for backwards compatibility). */
static void
parse_disassembler_options (options)
char * options;
{
- char * space;
-
if (options == NULL)
return;
- do
+ while (*options)
{
- space = strchr (options, ' ');
-
- if (space)
- {
- * space = '\0';
- parse_arm_disassembler_option (options);
- * space = ' ';
- options = space + 1;
- }
- else
- parse_arm_disassembler_option (options);
+ parse_arm_disassembler_option (options);
+
+ /* Skip forward to next seperator. */
+ while ((*options) && (! ISSPACE (*options)) && (*options != ','))
+ ++ options;
+ /* Skip forward past seperators. */
+ while (ISSPACE (*options) || (*options == ','))
+ ++ options;
}
- while (space);
}
/* NOTE: There are no checks in these routines that
diff --git a/opcodes/cgen-asm.c b/opcodes/cgen-asm.c
index c71c70de..7231e2d 100644
--- a/opcodes/cgen-asm.c
+++ b/opcodes/cgen-asm.c
@@ -28,16 +28,14 @@
#include "opcode/cgen.h"
#include "opintl.h"
-static CGEN_INSN_LIST * hash_insn_array PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
-static CGEN_INSN_LIST * hash_insn_list PARAMS ((CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
-static void build_asm_hash_table PARAMS ((CGEN_CPU_DESC));
+static CGEN_INSN_LIST * hash_insn_array (CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *);
+static CGEN_INSN_LIST * hash_insn_list (CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *);
+static void build_asm_hash_table (CGEN_CPU_DESC);
/* Set the cgen_parse_operand_fn callback. */
void
-cgen_set_parse_operand_fn (cd, fn)
- CGEN_CPU_DESC cd;
- cgen_parse_operand_fn fn;
+cgen_set_parse_operand_fn (CGEN_CPU_DESC cd, cgen_parse_operand_fn fn)
{
cd->parse_operand_fn = fn;
}
@@ -45,8 +43,7 @@ cgen_set_parse_operand_fn (cd, fn)
/* Called whenever starting to parse an insn. */
void
-cgen_init_parse_operand (cd)
- CGEN_CPU_DESC cd;
+cgen_init_parse_operand (CGEN_CPU_DESC cd)
{
/* This tells the callback to re-initialize. */
(void) (* cd->parse_operand_fn)
@@ -66,13 +63,12 @@ cgen_init_parse_operand (cd)
list and we want earlier ones to be prefered. */
static CGEN_INSN_LIST *
-hash_insn_array (cd, insns, count, entsize, htable, hentbuf)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insns;
- int count;
- int entsize ATTRIBUTE_UNUSED;
- CGEN_INSN_LIST **htable;
- CGEN_INSN_LIST *hentbuf;
+hash_insn_array (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insns,
+ int count,
+ int entsize ATTRIBUTE_UNUSED,
+ CGEN_INSN_LIST **htable,
+ CGEN_INSN_LIST *hentbuf)
{
int i;
@@ -97,11 +93,10 @@ hash_insn_array (cd, insns, count, entsize, htable, hentbuf)
in a list. */
static CGEN_INSN_LIST *
-hash_insn_list (cd, insns, htable, hentbuf)
- CGEN_CPU_DESC cd;
- const CGEN_INSN_LIST *insns;
- CGEN_INSN_LIST **htable;
- CGEN_INSN_LIST *hentbuf;
+hash_insn_list (CGEN_CPU_DESC cd,
+ const CGEN_INSN_LIST *insns,
+ CGEN_INSN_LIST **htable,
+ CGEN_INSN_LIST *hentbuf)
{
const CGEN_INSN_LIST *ilist;
@@ -123,8 +118,7 @@ hash_insn_list (cd, insns, htable, hentbuf)
/* Build the assembler instruction hash table. */
static void
-build_asm_hash_table (cd)
- CGEN_CPU_DESC cd;
+build_asm_hash_table (CGEN_CPU_DESC cd)
{
int count = cgen_insn_count (cd) + cgen_macro_insn_count (cd);
CGEN_INSN_TABLE *insn_table = &cd->insn_table;
@@ -179,9 +173,7 @@ build_asm_hash_table (cd)
/* Return the first entry in the hash list for INSN. */
CGEN_INSN_LIST *
-cgen_asm_lookup_insn (cd, insn)
- CGEN_CPU_DESC cd;
- const char *insn;
+cgen_asm_lookup_insn (CGEN_CPU_DESC cd, const char *insn)
{
unsigned int hash;
@@ -201,11 +193,10 @@ cgen_asm_lookup_insn (cd, insn)
recording something in the keyword table]. */
const char *
-cgen_parse_keyword (cd, strp, keyword_table, valuep)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- const char **strp;
- CGEN_KEYWORD *keyword_table;
- long *valuep;
+cgen_parse_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ const char **strp,
+ CGEN_KEYWORD *keyword_table,
+ long *valuep)
{
const CGEN_KEYWORD_ENTRY *ke;
char buf[256];
@@ -262,11 +253,10 @@ cgen_parse_keyword (cd, strp, keyword_table, valuep)
cgen_parse_address. */
const char *
-cgen_parse_signed_integer (cd, strp, opindex, valuep)
- CGEN_CPU_DESC cd;
- const char **strp;
- int opindex;
- long *valuep;
+cgen_parse_signed_integer (CGEN_CPU_DESC cd,
+ const char **strp,
+ int opindex,
+ long *valuep)
{
bfd_vma value;
enum cgen_parse_operand_result result;
@@ -287,11 +277,10 @@ cgen_parse_signed_integer (cd, strp, opindex, valuep)
cgen_parse_address. */
const char *
-cgen_parse_unsigned_integer (cd, strp, opindex, valuep)
- CGEN_CPU_DESC cd;
- const char **strp;
- int opindex;
- unsigned long *valuep;
+cgen_parse_unsigned_integer (CGEN_CPU_DESC cd,
+ const char **strp,
+ int opindex,
+ unsigned long *valuep)
{
bfd_vma value;
enum cgen_parse_operand_result result;
@@ -309,13 +298,12 @@ cgen_parse_unsigned_integer (cd, strp, opindex, valuep)
/* Address parser. */
const char *
-cgen_parse_address (cd, strp, opindex, opinfo, resultp, valuep)
- CGEN_CPU_DESC cd;
- const char **strp;
- int opindex;
- int opinfo;
- enum cgen_parse_operand_result *resultp;
- bfd_vma *valuep;
+cgen_parse_address (CGEN_CPU_DESC cd,
+ const char **strp,
+ int opindex,
+ int opinfo,
+ enum cgen_parse_operand_result *resultp,
+ bfd_vma *valuep)
{
bfd_vma value;
enum cgen_parse_operand_result result_type;
@@ -337,8 +325,7 @@ cgen_parse_address (cd, strp, opindex, opinfo, resultp, valuep)
/* Signed integer validation routine. */
const char *
-cgen_validate_signed_integer (value, min, max)
- long value, min, max;
+cgen_validate_signed_integer (long value, long min, long max)
{
if (value < min || value > max)
{
@@ -358,8 +345,9 @@ cgen_validate_signed_integer (value, min, max)
cases where min != 0 (and max > LONG_MAX). */
const char *
-cgen_validate_unsigned_integer (value, min, max)
- unsigned long value, min, max;
+cgen_validate_unsigned_integer (unsigned long value,
+ unsigned long min,
+ unsigned long max)
{
if (value < min || value > max)
{
diff --git a/opcodes/cgen-asm.in b/opcodes/cgen-asm.in
index 1ea0768..420f640 100644
--- a/opcodes/cgen-asm.in
+++ b/opcodes/cgen-asm.in
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -60,8 +60,7 @@ static const char * parse_insn_normal
Returns NULL for success, an error message for failure. */
char *
-@arch@_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+@arch@_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -184,11 +183,10 @@ char *
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -326,12 +324,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-@arch@_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+@arch@_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -435,9 +432,7 @@ const CGEN_INSN *
FIXME: Not currently used. */
void
-@arch@_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+@arch@_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/cgen-dis.c b/opcodes/cgen-dis.c
index 881ee14..ca621de 100644
--- a/opcodes/cgen-dis.c
+++ b/opcodes/cgen-dis.c
@@ -27,19 +27,18 @@
#include "symcat.h"
#include "opcode/cgen.h"
-static CGEN_INSN_LIST * hash_insn_array PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
-static CGEN_INSN_LIST * hash_insn_list PARAMS ((CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *));
-static void build_dis_hash_table PARAMS ((CGEN_CPU_DESC));
-static int count_decodable_bits PARAMS ((const CGEN_INSN *));
-static void add_insn_to_hash_chain PARAMS ((CGEN_INSN_LIST *,
- const CGEN_INSN *,
- CGEN_INSN_LIST **,
- unsigned int));
+static CGEN_INSN_LIST * hash_insn_array (CGEN_CPU_DESC, const CGEN_INSN *, int, int, CGEN_INSN_LIST **, CGEN_INSN_LIST *);
+static CGEN_INSN_LIST * hash_insn_list (CGEN_CPU_DESC, const CGEN_INSN_LIST *, CGEN_INSN_LIST **, CGEN_INSN_LIST *);
+static void build_dis_hash_table (CGEN_CPU_DESC);
+static int count_decodable_bits (const CGEN_INSN *);
+static void add_insn_to_hash_chain (CGEN_INSN_LIST *,
+ const CGEN_INSN *,
+ CGEN_INSN_LIST **,
+ unsigned int);
/* Return the number of decodable bits in this insn. */
static int
-count_decodable_bits (insn)
- const CGEN_INSN *insn;
+count_decodable_bits (const CGEN_INSN *insn)
{
unsigned mask = CGEN_INSN_BASE_MASK (insn);
int bits = 0;
@@ -54,11 +53,10 @@ count_decodable_bits (insn)
/* Add an instruction to the hash chain. */
static void
-add_insn_to_hash_chain (hentbuf, insn, htable, hash)
- CGEN_INSN_LIST *hentbuf;
- const CGEN_INSN *insn;
- CGEN_INSN_LIST **htable;
- unsigned int hash;
+add_insn_to_hash_chain (CGEN_INSN_LIST *hentbuf,
+ const CGEN_INSN *insn,
+ CGEN_INSN_LIST **htable,
+ unsigned int hash)
{
CGEN_INSN_LIST *current_buf;
CGEN_INSN_LIST *previous_buf;
@@ -100,13 +98,12 @@ add_insn_to_hash_chain (hentbuf, insn, htable, hash)
list and we want earlier ones to be prefered. */
static CGEN_INSN_LIST *
-hash_insn_array (cd, insns, count, entsize, htable, hentbuf)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insns;
- int count;
- int entsize ATTRIBUTE_UNUSED;
- CGEN_INSN_LIST ** htable;
- CGEN_INSN_LIST * hentbuf;
+hash_insn_array (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insns,
+ int count,
+ int entsize ATTRIBUTE_UNUSED,
+ CGEN_INSN_LIST ** htable,
+ CGEN_INSN_LIST * hentbuf)
{
int big_p = CGEN_CPU_ENDIAN (cd) == CGEN_ENDIAN_BIG;
int i;
@@ -141,11 +138,10 @@ hash_insn_array (cd, insns, count, entsize, htable, hentbuf)
in a list. */
static CGEN_INSN_LIST *
-hash_insn_list (cd, insns, htable, hentbuf)
- CGEN_CPU_DESC cd;
- const CGEN_INSN_LIST *insns;
- CGEN_INSN_LIST **htable;
- CGEN_INSN_LIST *hentbuf;
+hash_insn_list (CGEN_CPU_DESC cd,
+ const CGEN_INSN_LIST *insns,
+ CGEN_INSN_LIST **htable,
+ CGEN_INSN_LIST *hentbuf)
{
int big_p = CGEN_CPU_ENDIAN (cd) == CGEN_ENDIAN_BIG;
const CGEN_INSN_LIST *ilist;
@@ -177,8 +173,7 @@ hash_insn_list (cd, insns, htable, hentbuf)
/* Build the disassembler instruction hash table. */
static void
-build_dis_hash_table (cd)
- CGEN_CPU_DESC cd;
+build_dis_hash_table (CGEN_CPU_DESC cd)
{
int count = cgen_insn_count (cd) + cgen_macro_insn_count (cd);
CGEN_INSN_TABLE *insn_table = & cd->insn_table;
@@ -233,10 +228,7 @@ build_dis_hash_table (cd)
/* Return the first entry in the hash list for INSN. */
CGEN_INSN_LIST *
-cgen_dis_lookup_insn (cd, buf, value)
- CGEN_CPU_DESC cd;
- const char * buf;
- CGEN_INSN_INT value;
+cgen_dis_lookup_insn (CGEN_CPU_DESC cd, const char * buf, CGEN_INSN_INT value)
{
unsigned int hash;
diff --git a/opcodes/cgen-dis.in b/opcodes/cgen-dis.in
index 9203b71..1a3c0fa 100644
--- a/opcodes/cgen-dis.in
+++ b/opcodes/cgen-dis.in
@@ -41,34 +41,32 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -88,13 +86,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -118,12 +115,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -137,17 +133,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -179,14 +174,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -210,12 +204,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -320,10 +313,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -362,9 +352,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_@arch@ (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_@arch@ (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/cgen-ibld.in b/opcodes/cgen-ibld.in
index d2bfd02..316f183 100644
--- a/opcodes/cgen-ibld.in
+++ b/opcodes/cgen-ibld.in
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/cgen-opc.c b/opcodes/cgen-opc.c
index 06544ca..882b348 100644
--- a/opcodes/cgen-opc.c
+++ b/opcodes/cgen-opc.c
@@ -33,11 +33,11 @@
#endif
static unsigned int hash_keyword_name
- PARAMS ((const CGEN_KEYWORD *, const char *, int));
+ (const CGEN_KEYWORD *, const char *, int);
static unsigned int hash_keyword_value
- PARAMS ((const CGEN_KEYWORD *, unsigned int));
+ (const CGEN_KEYWORD *, unsigned int);
static void build_keyword_hash_tables
- PARAMS ((CGEN_KEYWORD *));
+ (CGEN_KEYWORD *);
/* Return number of hash table entries to use for N elements. */
#define KEYWORD_HASH_SIZE(n) ((n) <= 31 ? 17 : 31)
@@ -46,9 +46,7 @@ static void build_keyword_hash_tables
The result is the keyword entry or NULL if not found. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_lookup_name (kt, name)
- CGEN_KEYWORD *kt;
- const char *name;
+cgen_keyword_lookup_name (CGEN_KEYWORD *kt, const char *name)
{
const CGEN_KEYWORD_ENTRY *ke;
const char *p,*n;
@@ -87,9 +85,7 @@ cgen_keyword_lookup_name (kt, name)
The result is the keyword entry or NULL if not found. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_lookup_value (kt, value)
- CGEN_KEYWORD *kt;
- int value;
+cgen_keyword_lookup_value (CGEN_KEYWORD *kt, int value)
{
const CGEN_KEYWORD_ENTRY *ke;
@@ -111,9 +107,7 @@ cgen_keyword_lookup_value (kt, value)
/* Add an entry to a keyword table. */
void
-cgen_keyword_add (kt, ke)
- CGEN_KEYWORD *kt;
- CGEN_KEYWORD_ENTRY *ke;
+cgen_keyword_add (CGEN_KEYWORD *kt, CGEN_KEYWORD_ENTRY *ke)
{
unsigned int hash;
size_t i;
@@ -159,9 +153,7 @@ cgen_keyword_add (kt, ke)
It is passed to each call to cgen_keyword_search_next. */
CGEN_KEYWORD_SEARCH
-cgen_keyword_search_init (kt, spec)
- CGEN_KEYWORD *kt;
- const char *spec;
+cgen_keyword_search_init (CGEN_KEYWORD *kt, const char *spec)
{
CGEN_KEYWORD_SEARCH search;
@@ -183,8 +175,7 @@ cgen_keyword_search_init (kt, spec)
The result is the next entry or NULL if there are no more. */
const CGEN_KEYWORD_ENTRY *
-cgen_keyword_search_next (search)
- CGEN_KEYWORD_SEARCH *search;
+cgen_keyword_search_next (CGEN_KEYWORD_SEARCH *search)
{
/* Has search finished? */
if (search->current_hash == search->table->hash_table_size)
@@ -218,10 +209,9 @@ cgen_keyword_search_next (search)
If CASE_SENSITIVE_P is non-zero, return a case sensitive hash. */
static unsigned int
-hash_keyword_name (kt, name, case_sensitive_p)
- const CGEN_KEYWORD *kt;
- const char *name;
- int case_sensitive_p;
+hash_keyword_name (const CGEN_KEYWORD *kt,
+ const char *name,
+ int case_sensitive_p)
{
unsigned int hash;
@@ -237,9 +227,7 @@ hash_keyword_name (kt, name, case_sensitive_p)
/* Return first entry in hash chain for VALUE. */
static unsigned int
-hash_keyword_value (kt, value)
- const CGEN_KEYWORD *kt;
- unsigned int value;
+hash_keyword_value (const CGEN_KEYWORD *kt, unsigned int value)
{
return value % kt->hash_table_size;
}
@@ -249,8 +237,7 @@ hash_keyword_value (kt, value)
we're using the disassembler, but we keep things simple. */
static void
-build_keyword_hash_tables (kt)
- CGEN_KEYWORD *kt;
+build_keyword_hash_tables (CGEN_KEYWORD *kt)
{
int i;
/* Use the number of compiled in entries as an estimate for the
@@ -278,9 +265,7 @@ build_keyword_hash_tables (kt)
mach/isa. */
const CGEN_HW_ENTRY *
-cgen_hw_lookup_by_name (cd, name)
- CGEN_CPU_DESC cd;
- const char *name;
+cgen_hw_lookup_by_name (CGEN_CPU_DESC cd, const char *name)
{
unsigned int i;
const CGEN_HW_ENTRY **hw = cd->hw_table.entries;
@@ -298,9 +283,7 @@ cgen_hw_lookup_by_name (cd, name)
Returns NULL if HWNUM is not supported by the currently selected mach. */
const CGEN_HW_ENTRY *
-cgen_hw_lookup_by_num (cd, hwnum)
- CGEN_CPU_DESC cd;
- unsigned int hwnum;
+cgen_hw_lookup_by_num (CGEN_CPU_DESC cd, unsigned int hwnum)
{
unsigned int i;
const CGEN_HW_ENTRY **hw = cd->hw_table.entries;
@@ -320,9 +303,7 @@ cgen_hw_lookup_by_num (cd, hwnum)
mach/isa. */
const CGEN_OPERAND *
-cgen_operand_lookup_by_name (cd, name)
- CGEN_CPU_DESC cd;
- const char *name;
+cgen_operand_lookup_by_name (CGEN_CPU_DESC cd, const char *name)
{
unsigned int i;
const CGEN_OPERAND **op = cd->operand_table.entries;
@@ -341,9 +322,7 @@ cgen_operand_lookup_by_name (cd, name)
mach/isa. */
const CGEN_OPERAND *
-cgen_operand_lookup_by_num (cd, opnum)
- CGEN_CPU_DESC cd;
- int opnum;
+cgen_operand_lookup_by_num (CGEN_CPU_DESC cd, int opnum)
{
return cd->operand_table.entries[opnum];
}
@@ -353,8 +332,7 @@ cgen_operand_lookup_by_num (cd, opnum)
/* Return number of instructions. This includes any added at runtime. */
int
-cgen_insn_count (cd)
- CGEN_CPU_DESC cd;
+cgen_insn_count (CGEN_CPU_DESC cd)
{
int count = cd->insn_table.num_init_entries;
CGEN_INSN_LIST *rt_insns = cd->insn_table.new_entries;
@@ -369,8 +347,7 @@ cgen_insn_count (cd)
This includes any added at runtime. */
int
-cgen_macro_insn_count (cd)
- CGEN_CPU_DESC cd;
+cgen_macro_insn_count (CGEN_CPU_DESC cd)
{
int count = cd->macro_insn_table.num_init_entries;
CGEN_INSN_LIST *rt_insns = cd->macro_insn_table.new_entries;
@@ -384,10 +361,7 @@ cgen_macro_insn_count (cd)
/* Cover function to read and properly byteswap an insn value. */
CGEN_INSN_INT
-cgen_get_insn_value (cd, buf, length)
- CGEN_CPU_DESC cd;
- unsigned char *buf;
- int length;
+cgen_get_insn_value (CGEN_CPU_DESC cd, unsigned char *buf, int length)
{
int big_p = (cd->insn_endian == CGEN_ENDIAN_BIG);
int insn_chunk_bitsize = cd->insn_chunk_bitsize;
@@ -423,11 +397,10 @@ cgen_get_insn_value (cd, buf, length)
/* Cover function to store an insn value properly byteswapped. */
void
-cgen_put_insn_value (cd, buf, length, value)
- CGEN_CPU_DESC cd;
- unsigned char *buf;
- int length;
- CGEN_INSN_INT value;
+cgen_put_insn_value (CGEN_CPU_DESC cd,
+ unsigned char *buf,
+ int length,
+ CGEN_INSN_INT value)
{
int big_p = (cd->insn_endian == CGEN_ENDIAN_BIG);
int insn_chunk_bitsize = cd->insn_chunk_bitsize;
@@ -472,16 +445,14 @@ cgen_put_insn_value (cd, buf, length, value)
/* ??? Will need to be revisited for VLIW architectures. */
const CGEN_INSN *
-cgen_lookup_insn (cd, insn, insn_int_value, insn_bytes_value, length, fields,
- alias_p)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_INSN_INT insn_int_value;
- /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
- unsigned char *insn_bytes_value;
- int length;
- CGEN_FIELDS *fields;
- int alias_p;
+cgen_lookup_insn (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_INSN_INT insn_int_value,
+ /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
+ unsigned char *insn_bytes_value,
+ int length,
+ CGEN_FIELDS *fields,
+ int alias_p)
{
unsigned char *buf;
CGEN_INSN_INT base_insn;
@@ -571,11 +542,10 @@ cgen_lookup_insn (cd, insn, insn_int_value, insn_bytes_value, length, fields,
in. */
void
-cgen_get_insn_operands (cd, insn, fields, indices)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const CGEN_FIELDS *fields;
- int *indices;
+cgen_get_insn_operands (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const CGEN_FIELDS *fields,
+ int *indices)
{
const CGEN_OPINST *opinst;
int i;
@@ -603,16 +573,14 @@ cgen_get_insn_operands (cd, insn, fields, indices)
recognized. */
const CGEN_INSN *
-cgen_lookup_get_insn_operands (cd, insn, insn_int_value, insn_bytes_value,
- length, indices, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_INSN_INT insn_int_value;
- /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
- unsigned char *insn_bytes_value;
- int length;
- int *indices;
- CGEN_FIELDS *fields;
+cgen_lookup_get_insn_operands (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_INSN_INT insn_int_value,
+ /* ??? CGEN_INSN_BYTES would be a nice type name to use here. */
+ unsigned char *insn_bytes_value,
+ int length,
+ int *indices,
+ CGEN_FIELDS *fields)
{
/* Pass non-zero for ALIAS_P only if INSN != NULL.
If INSN == NULL, we want a real insn. */
@@ -627,24 +595,21 @@ cgen_lookup_get_insn_operands (cd, insn, insn_int_value, insn_bytes_value,
/* Allow signed overflow of instruction fields. */
void
-cgen_set_signed_overflow_ok (cd)
- CGEN_CPU_DESC cd;
+cgen_set_signed_overflow_ok (CGEN_CPU_DESC cd)
{
cd->signed_overflow_ok_p = 1;
}
/* Generate an error message if a signed field in an instruction overflows. */
void
-cgen_clear_signed_overflow_ok (cd)
- CGEN_CPU_DESC cd;
+cgen_clear_signed_overflow_ok (CGEN_CPU_DESC cd)
{
cd->signed_overflow_ok_p = 0;
}
/* Will an error message be generated if a signed field in an instruction overflows ? */
unsigned int
-cgen_signed_overflow_ok_p (cd)
- CGEN_CPU_DESC cd;
+cgen_signed_overflow_ok_p (CGEN_CPU_DESC cd)
{
return cd->signed_overflow_ok_p;
}
diff --git a/opcodes/configure b/opcodes/configure
index ae248d0..4a95a9a 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -2672,7 +2672,7 @@ else
fi
-ALL_LINGUAS="fr sv tr es da de id pt_BR ro"
+ALL_LINGUAS="fr sv tr es da de id pt_BR ro nl"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:2678: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
diff --git a/opcodes/configure.in b/opcodes/configure.in
index ea64c84..8919924 100644
--- a/opcodes/configure.in
+++ b/opcodes/configure.in
@@ -78,7 +78,7 @@ AC_EXEEXT
AC_PROG_CC
-ALL_LINGUAS="fr sv tr es da de id pt_BR ro"
+ALL_LINGUAS="fr sv tr es da de id pt_BR ro nl"
CY_GNU_GETTEXT
. ${srcdir}/../bfd/configure.host
diff --git a/opcodes/dep-in.sed b/opcodes/dep-in.sed
index e373d4c..94da2ad 100644
--- a/opcodes/dep-in.sed
+++ b/opcodes/dep-in.sed
@@ -10,6 +10,7 @@ s!@TOPDIR@/include!$(INCDIR)!g
s!@BFDDIR@!$(BFDDIR)!g
s!@TOPDIR@/bfd!$(BFDDIR)!g
s!@SRCDIR@/!!g
+s! \.\./intl/libintl\.h!!g
s/\\\n */ /g
diff --git a/opcodes/fr30-asm.c b/opcodes/fr30-asm.c
index 8e7c7b8..f1c18a1 100644
--- a/opcodes/fr30-asm.c
+++ b/opcodes/fr30-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -356,8 +356,7 @@ fr30_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-fr30_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+fr30_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -480,11 +479,10 @@ fr30_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -622,12 +620,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-fr30_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+fr30_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -731,9 +728,7 @@ fr30_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-fr30_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+fr30_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/fr30-dis.c b/opcodes/fr30-dis.c
index ef7b37a..0b99a4a 100644
--- a/opcodes/fr30-dis.c
+++ b/opcodes/fr30-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -343,13 +342,12 @@ fr30_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -369,13 +367,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -399,12 +396,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -418,17 +414,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -460,14 +455,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -491,12 +485,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -601,10 +594,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -643,9 +633,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_fr30 (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_fr30 (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/fr30-ibld.c b/opcodes/fr30-ibld.c
index 9637461..b01e483 100644
--- a/opcodes/fr30-ibld.c
+++ b/opcodes/fr30-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/frv-asm.c b/opcodes/frv-asm.c
index 0e3d8dd..5fe28d3 100644
--- a/opcodes/frv-asm.c
+++ b/opcodes/frv-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -659,8 +659,7 @@ frv_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-frv_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+frv_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -783,11 +782,10 @@ frv_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -925,12 +923,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-frv_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+frv_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -1034,9 +1031,7 @@ frv_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-frv_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+frv_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/frv-dis.c b/opcodes/frv-dis.c
index dfe053d..8b1e4da 100644
--- a/opcodes/frv-dis.c
+++ b/opcodes/frv-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -394,13 +393,12 @@ frv_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -420,13 +418,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -450,12 +447,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -469,17 +465,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -511,14 +506,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -542,12 +536,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -652,10 +645,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -694,9 +684,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_frv (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_frv (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/frv-ibld.c b/opcodes/frv-ibld.c
index bac1837..15bc827 100644
--- a/opcodes/frv-ibld.c
+++ b/opcodes/frv-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index be78e83..7c03205 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -93,6 +93,7 @@ static void OP_XS PARAMS ((int, int));
static void OP_3DNowSuffix PARAMS ((int, int));
static void OP_SIMD_Suffix PARAMS ((int, int));
static void SIMD_Fixup PARAMS ((int, int));
+static void PNI_Fixup PARAMS ((int, int));
static void BadOp PARAMS ((void));
struct dis_private {
@@ -417,6 +418,12 @@ fetch_data (info, addr)
#define PREGRP24 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 24, NULL, 0
#define PREGRP25 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 25, NULL, 0
#define PREGRP26 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 26, NULL, 0
+#define PREGRP27 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 27, NULL, 0
+#define PREGRP28 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 28, NULL, 0
+#define PREGRP29 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 29, NULL, 0
+#define PREGRP30 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 30, NULL, 0
+#define PREGRP31 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 31, NULL, 0
+#define PREGRP32 NULL, NULL, USE_PREFIX_USER_TABLE, NULL, 32, NULL, 0
#define X86_64_0 NULL, NULL, X86_64_SPECIAL, NULL, 0, NULL, 0
@@ -776,11 +783,11 @@ static const struct dis386 dis386_twobyte[] = {
/* 10 */
{ PREGRP8 },
{ PREGRP9 },
- { "movlpX", XM, EX, SIMD_Fixup, 'h' }, /* really only 2 operands */
+ { PREGRP30 },
{ "movlpX", EX, XM, SIMD_Fixup, 'h' },
{ "unpcklpX", XM, EX, XX },
{ "unpckhpX", XM, EX, XX },
- { "movhpX", XM, EX, SIMD_Fixup, 'l' },
+ { PREGRP31 },
{ "movhpX", EX, XM, SIMD_Fixup, 'l' },
/* 18 */
{ GRP14 },
@@ -895,8 +902,8 @@ static const struct dis386 dis386_twobyte[] = {
{ "(bad)", XX, XX, XX },
{ "(bad)", XX, XX, XX },
{ "(bad)", XX, XX, XX },
- { "(bad)", XX, XX, XX },
- { "(bad)", XX, XX, XX },
+ { PREGRP28 },
+ { PREGRP29 },
{ PREGRP23 },
{ PREGRP20 },
/* 80 */
@@ -990,7 +997,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "bswap", RMeSI, XX, XX },
{ "bswap", RMeDI, XX, XX },
/* d0 */
- { "(bad)", XX, XX, XX },
+ { PREGRP27 },
{ "psrlw", MX, EM, XX },
{ "psrld", MX, EM, XX },
{ "psrlq", MX, EM, XX },
@@ -1026,7 +1033,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "pmaxsw", MX, EM, XX },
{ "pxor", MX, EM, XX },
/* f0 */
- { "(bad)", XX, XX, XX },
+ { PREGRP32 },
{ "psllw", MX, EM, XX },
{ "pslld", MX, EM, XX },
{ "psllq", MX, EM, XX },
@@ -1078,15 +1085,15 @@ static const unsigned char twobyte_has_modrm[256] = {
/* 40 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 4f */
/* 50 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 5f */
/* 60 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 6f */
- /* 70 */ 1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1, /* 7f */
+ /* 70 */ 1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1, /* 7f */
/* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
/* 90 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 9f */
/* a0 */ 0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1, /* af */
/* b0 */ 1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, /* bf */
/* c0 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* cf */
- /* d0 */ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
+ /* d0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
/* e0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ef */
- /* f0 */ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 /* ff */
+ /* f0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 /* ff */
/* ------------------------------- */
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
};
@@ -1095,21 +1102,21 @@ static const unsigned char twobyte_uses_SSE_prefix[256] = {
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
/* ------------------------------- */
/* 00 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0f */
- /* 10 */ 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 1f */
+ /* 10 */ 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0, /* 1f */
/* 20 */ 0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0, /* 2f */
/* 30 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 3f */
/* 40 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 4f */
/* 50 */ 0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1, /* 5f */
/* 60 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1, /* 6f */
- /* 70 */ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, /* 7f */
+ /* 70 */ 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, /* 7f */
/* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
/* 90 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 9f */
/* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */
/* b0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* bf */
/* c0 */ 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, /* cf */
- /* d0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* df */
+ /* d0 */ 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* df */
/* e0 */ 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, /* ef */
- /* f0 */ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 /* ff */
+ /* f0 */ 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 /* ff */
/* ------------------------------- */
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
};
@@ -1349,7 +1356,7 @@ static const struct dis386 grps[][8] = {
/* GRP7 */
{
{ "sgdtQ", M, XX, XX },
- { "sidtQ", M, XX, XX },
+ { "sidtQ", PNI_Fixup, 0, XX, XX },
{ "lgdtQ", M, XX, XX },
{ "lidtQ", M, XX, XX },
{ "smswQ", Ev, XX, XX },
@@ -1638,6 +1645,48 @@ static const struct dis386 prefix_user_table[][4] = {
{ "punpcklqdq", XM, EX, XX },
{ "(bad)", XM, EX, XX },
},
+ /* PREGRP27 */
+ {
+ { "(bad)", MX, EX, XX },
+ { "(bad)", XM, EX, XX },
+ { "addsubpd", XM, EX, XX },
+ { "addsubps", XM, EX, XX },
+ },
+ /* PREGRP28 */
+ {
+ { "(bad)", MX, EX, XX },
+ { "(bad)", XM, EX, XX },
+ { "haddpd", XM, EX, XX },
+ { "haddps", XM, EX, XX },
+ },
+ /* PREGRP29 */
+ {
+ { "(bad)", MX, EX, XX },
+ { "(bad)", XM, EX, XX },
+ { "hsubpd", XM, EX, XX },
+ { "hsubps", XM, EX, XX },
+ },
+ /* PREGRP30 */
+ {
+ { "movlpX", XM, EX, SIMD_Fixup, 'h' }, /* really only 2 operands */
+ { "movsldup", XM, EX, XX },
+ { "movlpd", XM, EX, XX },
+ { "movddup", XM, EX, XX },
+ },
+ /* PREGRP31 */
+ {
+ { "movhpX", XM, EX, SIMD_Fixup, 'l' },
+ { "movshdup", XM, EX, XX },
+ { "movhpd", XM, EX, XX },
+ { "(bad)", XM, EX, XX },
+ },
+ /* PREGRP32 */
+ {
+ { "(bad)", XM, EX, XX },
+ { "(bad)", XM, EX, XX },
+ { "(bad)", XM, EX, XX },
+ { "lddqu", XM, M, XX },
+ },
};
static const struct dis386 x86_64_table[][2] = {
@@ -2294,7 +2343,7 @@ static const char *float_mem[] = {
"fidivr{l||l|}",
/* db */
"fild{l||l|}",
- "(bad)",
+ "fisttp{l||l|}",
"fist{l||l|}",
"fistp{l||l|}",
"(bad)",
@@ -2312,7 +2361,7 @@ static const char *float_mem[] = {
"fdivr{l||l|}",
/* dd */
"fld{l||l|}",
- "(bad)",
+ "fisttpll",
"fst{l||l|}",
"fstp{l||l|}",
"frstor",
@@ -2330,7 +2379,7 @@ static const char *float_mem[] = {
"fidivr",
/* df */
"fild",
- "(bad)",
+ "fisttp",
"fist",
"fistp",
"fbld",
@@ -4138,6 +4187,33 @@ SIMD_Fixup (extrachar, sizeflag)
}
static void
+PNI_Fixup (extrachar, sizeflag)
+ int extrachar ATTRIBUTE_UNUSED;
+ int sizeflag ATTRIBUTE_UNUSED;
+{
+ if (mod == 3 && reg == 1)
+ {
+ char *p = obuf + strlen (obuf);
+
+ /* Override "sidt". */
+ if (rm)
+ {
+ /* mwait %eax,%ecx */
+ strcpy (p - 4, "mwait %eax,%ecx");
+ }
+ else
+ {
+ /* monitor %eax,%ecx,%edx" */
+ strcpy (p - 4, "monitor %eax,%ecx,%edx");
+ }
+
+ codep++;
+ }
+ else
+ OP_E (0, sizeflag);
+}
+
+static void
BadOp (void)
{
/* Throw away prefixes and 1st. opcode byte. */
diff --git a/opcodes/i860-dis.c b/opcodes/i860-dis.c
index a3e87b0..d95c7e9 100644
--- a/opcodes/i860-dis.c
+++ b/opcodes/i860-dis.c
@@ -44,10 +44,6 @@ static const char *const crnames[] =
"p0", "p1", "p2", "p3", "--", "--", "--", "--" };
-/* Prototypes. */
-static int sign_ext PARAMS((unsigned int, int));
-static void print_br_address PARAMS((disassemble_info *, bfd_vma, long));
-
/* True if opcode is xor, xorh, and, andh, or, orh, andnot, andnoth. */
#define BITWISE_OP(op) ((op) == 0x30 || (op) == 0x31 \
@@ -60,9 +56,7 @@ static void print_br_address PARAMS((disassemble_info *, bfd_vma, long));
/* Sign extend N-bit number. */
static int
-sign_ext (x, n)
- unsigned int x;
- int n;
+sign_ext (unsigned int x, int n)
{
int t;
t = x >> (n - 1);
@@ -74,10 +68,7 @@ sign_ext (x, n)
/* Print a PC-relative branch offset. VAL is the sign extended value
from the branch instruction. */
static void
-print_br_address (info, memaddr, val)
- disassemble_info *info;
- bfd_vma memaddr;
- long val;
+print_br_address (disassemble_info *info, bfd_vma memaddr, long val)
{
long adj = (long)memaddr + 4 + (val << 2);
@@ -96,9 +87,7 @@ print_br_address (info, memaddr, val)
/* Print one instruction. */
int
-print_insn_i860 (memaddr, info)
- bfd_vma memaddr;
- disassemble_info *info;
+print_insn_i860 (bfd_vma memaddr, disassemble_info *info)
{
bfd_byte buff[4];
unsigned int insn, i;
diff --git a/opcodes/ip2k-asm.c b/opcodes/ip2k-asm.c
index 524f256..593db9d 100644
--- a/opcodes/ip2k-asm.c
+++ b/opcodes/ip2k-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -607,8 +607,7 @@ ip2k_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-ip2k_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+ip2k_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -731,11 +730,10 @@ ip2k_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -873,12 +871,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-ip2k_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+ip2k_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -982,9 +979,7 @@ ip2k_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-ip2k_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+ip2k_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/ip2k-dis.c b/opcodes/ip2k-dis.c
index f33fcc0..00e764c 100644
--- a/opcodes/ip2k-dis.c
+++ b/opcodes/ip2k-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -352,13 +351,12 @@ ip2k_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -378,13 +376,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -408,12 +405,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -427,17 +423,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -469,14 +464,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -500,12 +494,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -610,10 +603,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -652,9 +642,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_ip2k (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_ip2k (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/ip2k-ibld.c b/opcodes/ip2k-ibld.c
index 22e2d8d..e0c5309 100644
--- a/opcodes/ip2k-ibld.c
+++ b/opcodes/ip2k-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/iq2000-asm.c b/opcodes/iq2000-asm.c
index 7fb795e..62d03f8 100644
--- a/opcodes/iq2000-asm.c
+++ b/opcodes/iq2000-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -493,8 +493,7 @@ iq2000_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-iq2000_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+iq2000_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -617,11 +616,10 @@ iq2000_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -759,12 +757,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-iq2000_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+iq2000_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -868,9 +865,7 @@ iq2000_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-iq2000_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+iq2000_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/iq2000-dis.c b/opcodes/iq2000-dis.c
index b1bfa0e..c20e978 100644
--- a/opcodes/iq2000-dis.c
+++ b/opcodes/iq2000-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -215,13 +214,12 @@ iq2000_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -241,13 +239,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -271,12 +268,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -290,17 +286,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -332,14 +327,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -363,12 +357,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -473,10 +466,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -515,9 +505,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_iq2000 (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_iq2000 (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/iq2000-ibld.c b/opcodes/iq2000-ibld.c
index 4917d9f..f0640f0 100644
--- a/opcodes/iq2000-ibld.c
+++ b/opcodes/iq2000-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/m10300-dis.c b/opcodes/m10300-dis.c
index a8d4b51..1d3637c 100644
--- a/opcodes/m10300-dis.c
+++ b/opcodes/m10300-dis.c
@@ -26,7 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static void disassemble PARAMS ((bfd_vma, struct disassemble_info *,
unsigned long insn, unsigned int));
-#define HAVE_AM33 (info->mach == AM33)
+#define HAVE_AM33_2 (info->mach == AM33_2)
+#define HAVE_AM33 (info->mach == AM33 || HAVE_AM33_2)
#define HAVE_AM30 (info->mach == AM30)
int
@@ -200,6 +201,9 @@ print_insn_mn10300 (memaddr, info)
insn = bfd_getb32 (buffer);
consume = 7;
+ /* Handle the 5-byte extended instruction codes. */
+ if ((insn & 0xfff80000) == 0xfe800000)
+ consume = 5;
}
disassemble (memaddr, info, insn, consume);
@@ -237,6 +241,8 @@ disassemble (memaddr, info, insn, size)
mysize = 5;
else if (op->format == FMT_D2)
mysize = 4;
+ else if (op->format == FMT_D3)
+ mysize = 5;
else if (op->format == FMT_D4)
mysize = 6;
else if (op->format == FMT_D6)
@@ -253,6 +259,7 @@ disassemble (memaddr, info, insn, size)
if ((op->mask & insn) == op->opcode
&& size == (unsigned int) mysize
&& (op->machine == 0
+ || (op->machine == AM33_2 && HAVE_AM33_2)
|| (op->machine == AM33 && HAVE_AM33)
|| (op->machine == AM30 && HAVE_AM30)))
{
@@ -343,6 +350,25 @@ disassemble (memaddr, info, insn, size)
insn |= (temp & 0xffffff00) >> 8;
extension = temp & 0xff;
}
+ else if (size == 5 && op->format == FMT_D3)
+ {
+ status = (*info->read_memory_func) (memaddr + 2, buffer, 2, info);
+ if (status != 0)
+ {
+ (*info->memory_error_func) (status, memaddr, info);
+ return;
+ }
+ insn &= 0xffff0000;
+ insn |= bfd_getl16 (buffer);
+
+ status = (*info->read_memory_func) (memaddr + 4, buffer, 1, info);
+ if (status != 0)
+ {
+ (*info->memory_error_func) (status, memaddr, info);
+ return;
+ }
+ extension = *(unsigned char *) buffer;
+ }
else if (size == 5)
{
unsigned long temp = 0;
@@ -498,6 +524,52 @@ disassemble (memaddr, info, insn, size)
if ((operand->flags & MN10300_OPERAND_SIGNED) != 0)
value = ((value & 0xffffff) ^ 0x800000) - 0x800000;
}
+ else if ((operand->flags & (MN10300_OPERAND_FSREG
+ | MN10300_OPERAND_FDREG)))
+ {
+ /* See m10300-opc.c just before #define FSM0 for an
+ explanation of these variables. Note that
+ FMT-implied shifts are not taken into account for
+ FP registers. */
+ unsigned long mask_low, mask_high;
+ int shl_low, shr_high, shl_high;
+
+ switch (operand->bits)
+ {
+ case 5:
+ /* Handle regular FP registers. */
+ if (operand->shift >= 0)
+ {
+ /* This is an `m' register. */
+ shl_low = operand->shift;
+ shl_high = 8 + (8 & shl_low) + (shl_low & 4) / 4;
+ }
+ else
+ {
+ /* This is an `n' register. */
+ shl_low = -operand->shift;
+ shl_high = shl_low / 4;
+ }
+ mask_low = 0x0f;
+ mask_high = 0x10;
+ shr_high = 4;
+ break;
+
+ case 3:
+ /* Handle accumulators. */
+ shl_low = -operand->shift;
+ shl_high = 0;
+ mask_low = 0x03;
+ mask_high = 0x04;
+ shr_high = 2;
+ break;
+
+ default:
+ abort ();
+ }
+ value = ((((insn >> shl_high) << shr_high) & mask_high)
+ | ((insn >> shl_low) & mask_low));
+ }
else if ((operand->flags & MN10300_OPERAND_EXTENDED) != 0)
{
value = ((extension >> (operand->shift))
@@ -567,6 +639,15 @@ disassemble (memaddr, info, insn, size)
(*info->fprintf_func) (info->stream, "xr%d", (int) value);
}
+ else if ((operand->flags & MN10300_OPERAND_FSREG) != 0)
+ (*info->fprintf_func) (info->stream, "fs%d", (int) value);
+
+ else if ((operand->flags & MN10300_OPERAND_FDREG) != 0)
+ (*info->fprintf_func) (info->stream, "fd%d", (int) value);
+
+ else if ((operand->flags & MN10300_OPERAND_FPCR) != 0)
+ (*info->fprintf_func) (info->stream, "fpcr");
+
else if ((operand->flags & MN10300_OPERAND_USP) != 0)
(*info->fprintf_func) (info->stream, "usp");
diff --git a/opcodes/m10300-opc.c b/opcodes/m10300-opc.c
index 84014e1..d1a2ea2 100644
--- a/opcodes/m10300-opc.c
+++ b/opcodes/m10300-opc.c
@@ -338,6 +338,85 @@ const struct mn10300_operand mn10300_operands[] = {
#define SIMM4_6 (SIMM4_2+1)
{4, 12, MN10300_OPERAND_SIGNED},
+#define FPCR (SIMM4_6+1)
+ {0, 0, MN10300_OPERAND_FPCR},
+
+/* We call f[sd]m registers those whose most significant bit is stored
+ * within the opcode half-word, i.e., in a bit on the left of the 4
+ * least significant bits, and f[sd]n registers those whose most
+ * significant bit is stored at the end of the full word, after the 4
+ * least significant bits. They're not numbered after their position
+ * in the mnemonic asm instruction, but after their position in the
+ * opcode word, i.e., depending on the amount of shift they need.
+ *
+ * The additional bit is shifted as follows: for `n' registers, it
+ * will be shifted by (|shift|/4); for `m' registers, it will be
+ * shifted by (8+(8&shift)+(shift&4)/4); for accumulator, whose
+ * specifications are only 3-bits long, the two least-significant bits
+ * are shifted by 16, and the most-significant bit is shifted by -2
+ * (i.e., it's stored in the least significant bit of the full
+ * word). */
+
+/* fsm register in the first register operand position. */
+#define FSM0 (FPCR+1)
+ {5, 0, MN10300_OPERAND_FSREG },
+
+/* fsm register in the second register operand position. */
+#define FSM1 (FSM0+1)
+ {5, 4, MN10300_OPERAND_FSREG },
+
+/* fsm register in the third register operand position. */
+#define FSM2 (FSM1+1)
+ {5, 8, MN10300_OPERAND_FSREG },
+
+/* fsm register in the fourth register operand position. */
+#define FSM3 (FSM2+1)
+ {5, 12, MN10300_OPERAND_FSREG },
+
+/* fsn register in the first register operand position. */
+#define FSN1 (FSM3+1)
+ {5, -4, MN10300_OPERAND_FSREG },
+
+/* fsn register in the second register operand position. */
+#define FSN2 (FSN1+1)
+ {5, -8, MN10300_OPERAND_FSREG },
+
+/* fsm register in the third register operand position. */
+#define FSN3 (FSN2+1)
+ {5, -12, MN10300_OPERAND_FSREG },
+
+/* fsm accumulator, in the fourth register operand position. */
+#define FSACC (FSN3+1)
+ {3, -16, MN10300_OPERAND_FSREG },
+
+/* fdm register in the first register operand position. */
+#define FDM0 (FSACC+1)
+ {5, 0, MN10300_OPERAND_FDREG },
+
+/* fdm register in the second register operand position. */
+#define FDM1 (FDM0+1)
+ {5, 4, MN10300_OPERAND_FDREG },
+
+/* fdm register in the third register operand position. */
+#define FDM2 (FDM1+1)
+ {5, 8, MN10300_OPERAND_FDREG },
+
+/* fdm register in the fourth register operand position. */
+#define FDM3 (FDM2+1)
+ {5, 12, MN10300_OPERAND_FDREG },
+
+/* fdn register in the first register operand position. */
+#define FDN1 (FDM3+1)
+ {5, -4, MN10300_OPERAND_FDREG },
+
+/* fdn register in the second register operand position. */
+#define FDN2 (FDN1+1)
+ {5, -8, MN10300_OPERAND_FDREG },
+
+/* fdn register in the third register operand position. */
+#define FDN3 (FDN2+1)
+ {5, -12, MN10300_OPERAND_FDREG },
+
} ;
#define MEM(ADDR) PAREN, ADDR, PAREN
@@ -810,14 +889,17 @@ const struct mn10300_opcode mn10300_opcodes[] = {
{ "btst", 0xfbe90000, 0xffff0000, 0, FMT_D7, AM33, {IMM8, RN02}},
{ "btst", 0xfde90000, 0xffff0000, 0, FMT_D8, AM33, {IMM24, RN02}},
{ "btst", 0xfee90000, 0xffff0000, 0, FMT_D9, AM33, {IMM32_HIGH8, RN02}},
+{ "btst", 0xfe820000, 0xffff0000, 0, FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
{ "btst", 0xfe020000, 0xffff0000, 0, FMT_D5, 0, {IMM8E, MEM(IMM32_LOWSHIFT8)}},
{ "btst", 0xfaf80000, 0xfffc0000, 0, FMT_D2, 0, {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
{ "bset", 0xf080, 0xfff0, 0, FMT_D0, 0, {DM1, MEM(AN0)}},
+{ "bset", 0xfe800000, 0xffff0000, 0, FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
{ "bset", 0xfe000000, 0xffff0000, 0, FMT_D5, 0, {IMM8E, MEM(IMM32_LOWSHIFT8)}},
{ "bset", 0xfaf00000, 0xfffc0000, 0, FMT_D2, 0, {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
{ "bclr", 0xf090, 0xfff0, 0, FMT_D0, 0, {DM1, MEM(AN0)}},
+{ "bclr", 0xfe810000, 0xffff0000, 0, FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
{ "bclr", 0xfe010000, 0xffff0000, 0, FMT_D5, 0, {IMM8E, MEM(IMM32_LOWSHIFT8)}},
{ "bclr", 0xfaf40000, 0xfffc0000, 0, FMT_D2, 0, {IMM8, MEM2(SD8N_SHIFT8,AN0)}},
@@ -889,6 +971,36 @@ const struct mn10300_opcode mn10300_opcodes[] = {
{ "lra", 0xda, 0xff, 0, FMT_S0, 0, {UNUSED}},
{ "setlb", 0xdb, 0xff, 0, FMT_S0, 0, {UNUSED}},
+{ "fbeq", 0xf8d000, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbne", 0xf8d100, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbgt", 0xf8d200, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbge", 0xf8d300, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fblt", 0xf8d400, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fble", 0xf8d500, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbuo", 0xf8d600, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fblg", 0xf8d700, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbleg", 0xf8d800, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbug", 0xf8d900, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbuge", 0xf8da00, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbul", 0xf8db00, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbule", 0xf8dc00, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbue", 0xf8dd00, 0xffff00, 0, FMT_D1, AM33_2, {SD8N_PCREL}},
+
+{ "fleq", 0xf0d0, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flne", 0xf0d1, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flgt", 0xf0d2, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flge", 0xf0d3, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "fllt", 0xf0d4, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flle", 0xf0d5, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "fluo", 0xf0d6, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "fllg", 0xf0d7, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flleg", 0xf0d8, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flug", 0xf0d9, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "fluge", 0xf0da, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flul", 0xf0db, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flule", 0xf0dc, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+{ "flue", 0xf0dd, 0xffff, 0, FMT_D0, AM33_2, {UNUSED}},
+
{ "jmp", 0xf0f4, 0xfffc, 0, FMT_D0, 0, {PAREN,AN0,PAREN}},
{ "jmp", 0xcc0000, 0xff0000, 0, FMT_S2, 0, {IMM16_PCREL}},
{ "jmp", 0xdc000000, 0xff000000, 0, FMT_S4, 0, {IMM32_HIGH24}},
@@ -906,6 +1018,141 @@ const struct mn10300_opcode mn10300_opcodes[] = {
{ "rtm", 0xf0ff, 0xffff, 0, FMT_D0, 0, {UNUSED}},
{ "nop", 0xcb, 0xff, 0, FMT_S0, 0, {UNUSED}},
+{ "dcpf", 0xf9a600, 0xffff0f, 0, FMT_D6, AM33_2, {MEM (RM2)}},
+{ "dcpf", 0xf9a700, 0xffffff, 0, FMT_D6, AM33_2, {MEM (SP)}},
+{ "dcpf", 0xfba60000, 0xffff00ff, 0, FMT_D7, AM33_2, {MEM2 (RI,RM0)}},
+{ "dcpf", 0xfba70000, 0xffff0f00, 0, FMT_D7, AM33_2, {MEM2 (SD8,RM2)}},
+{ "dcpf", 0xfda70000, 0xffff0f00, 0, FMT_D8, AM33_2, {MEM2 (SD24,RM2)}},
+{ "dcpf", 0xfe460000, 0xffff0f00, 0, FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8,RM2)}},
+
+{ "fmov", 0xf92000, 0xfffe00, 0, FMT_D6, AM33_2, {MEM (RM2), FSM0}},
+{ "fmov", 0xf92200, 0xfffe00, 0, FMT_D6, AM33_2, {MEMINC (RM2), FSM0}},
+{ "fmov", 0xf92400, 0xfffef0, 0, FMT_D6, AM33_2, {MEM (SP), FSM0}},
+{ "fmov", 0xf92600, 0xfffe00, 0, FMT_D6, AM33_2, {RM2, FSM0}},
+{ "fmov", 0xf93000, 0xfffd00, 0, FMT_D6, AM33_2, {FSM1, MEM (RM0)}},
+{ "fmov", 0xf93100, 0xfffd00, 0, FMT_D6, AM33_2, {FSM1, MEMINC (RM0)}},
+{ "fmov", 0xf93400, 0xfffd0f, 0, FMT_D6, AM33_2, {FSM1, MEM (SP)}},
+{ "fmov", 0xf93500, 0xfffd00, 0, FMT_D6, AM33_2, {FSM1, RM0}},
+{ "fmov", 0xf94000, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fmov", 0xf9a000, 0xfffe01, 0, FMT_D6, AM33_2, {MEM (RM2), FDM0}},
+{ "fmov", 0xf9a200, 0xfffe01, 0, FMT_D6, AM33_2, {MEMINC (RM2), FDM0}},
+{ "fmov", 0xf9a400, 0xfffef1, 0, FMT_D6, AM33_2, {MEM (SP), FDM0}},
+{ "fmov", 0xf9b000, 0xfffd10, 0, FMT_D6, AM33_2, {FDM1, MEM (RM0)}},
+{ "fmov", 0xf9b100, 0xfffd10, 0, FMT_D6, AM33_2, {FDM1, MEMINC (RM0)}},
+{ "fmov", 0xf9b400, 0xfffd1f, 0, FMT_D6, AM33_2, {FDM1, MEM (SP)}},
+{ "fmov", 0xf9b500, 0xffff0f, 0, FMT_D6, AM33_2, {RM2, FPCR}},
+{ "fmov", 0xf9b700, 0xfffff0, 0, FMT_D6, AM33_2, {FPCR, RM0}},
+{ "fmov", 0xf9c000, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fmov", 0xfb200000, 0xfffe0000, 0, FMT_D7, AM33_2, {MEM2 (SD8, RM2), FSM2}},
+{ "fmov", 0xfb220000, 0xfffe0000, 0, FMT_D7, AM33_2, {MEMINC2 (RM2, SIMM8), FSM2}},
+{ "fmov", 0xfb240000, 0xfffef000, 0, FMT_D7, AM33_2, {MEM2 (IMM8, SP), FSM2}},
+{ "fmov", 0xfb270000, 0xffff000d, 0, FMT_D7, AM33_2, {MEM2 (RI, RM0), FSN1}},
+{ "fmov", 0xfb300000, 0xfffd0000, 0, FMT_D7, AM33_2, {FSM3, MEM2 (SD8, RM0)}},
+{ "fmov", 0xfb310000, 0xfffd0000, 0, FMT_D7, AM33_2, {FSM3, MEMINC2 (RM0, SIMM8)}},
+{ "fmov", 0xfb340000, 0xfffd0f00, 0, FMT_D7, AM33_2, {FSM3, MEM2 (IMM8, SP)}},
+{ "fmov", 0xfb370000, 0xffff000d, 0, FMT_D7, AM33_2, {FSN1, MEM2(RI, RM0)}},
+ /* FIXME: the spec doesn't say the fd register must be even for the
+ * next two insns. Assuming it was a mistake in the spec. */
+{ "fmov", 0xfb470000, 0xffff001d, 0, FMT_D7, AM33_2, {MEM2 (RI, RM0), FDN1}},
+{ "fmov", 0xfb570000, 0xffff001d, 0, FMT_D7, AM33_2, {FDN1, MEM2(RI, RM0)}},
+ /* END of FIXME */
+{ "fmov", 0xfba00000, 0xfffe0100, 0, FMT_D7, AM33_2, {MEM2 (SD8, RM2), FDM2}},
+{ "fmov", 0xfba20000, 0xfffe0100, 0, FMT_D7, AM33_2, {MEMINC2 (RM2, SIMM8), FDM2}},
+{ "fmov", 0xfba40000, 0xfffef100, 0, FMT_D7, AM33_2, {MEM2 (IMM8, SP), FDM2}},
+{ "fmov", 0xfbb00000, 0xfffd1000, 0, FMT_D7, AM33_2, {FDM3, MEM2 (SD8, RM0)}},
+{ "fmov", 0xfbb10000, 0xfffd1000, 0, FMT_D7, AM33_2, {FDM3, MEMINC2 (RM0, SIMM8)}},
+{ "fmov", 0xfbb40000, 0xfffd1f00, 0, FMT_D7, AM33_2, {FDM3, MEM2 (IMM8, SP)}},
+{ "fmov", 0xfd200000, 0xfffe0000, 0, FMT_D8, AM33_2, {MEM2 (SIMM24, RM2), FSM2}},
+{ "fmov", 0xfd220000, 0xfffe0000, 0, FMT_D8, AM33_2, {MEMINC2 (RM2, SIMM24), FSM2}},
+{ "fmov", 0xfd240000, 0xfffef000, 0, FMT_D8, AM33_2, {MEM2 (IMM24, SP), FSM2}},
+{ "fmov", 0xfd300000, 0xfffd0000, 0, FMT_D8, AM33_2, {FSM3, MEM2 (SIMM24, RM0)}},
+{ "fmov", 0xfd310000, 0xfffd0000, 0, FMT_D8, AM33_2, {FSM3, MEMINC2 (RM0, SIMM24)}},
+{ "fmov", 0xfd340000, 0xfffd0f00, 0, FMT_D8, AM33_2, {FSM3, MEM2 (IMM24, SP)}},
+{ "fmov", 0xfda00000, 0xfffe0100, 0, FMT_D8, AM33_2, {MEM2 (SIMM24, RM2), FDM2}},
+{ "fmov", 0xfda20000, 0xfffe0100, 0, FMT_D8, AM33_2, {MEMINC2 (RM2, SIMM24), FDM2}},
+{ "fmov", 0xfda40000, 0xfffef100, 0, FMT_D8, AM33_2, {MEM2 (IMM24, SP), FDM2}},
+{ "fmov", 0xfdb00000, 0xfffd1000, 0, FMT_D8, AM33_2, {FDM3, MEM2 (SIMM24, RM0)}},
+{ "fmov", 0xfdb10000, 0xfffd1000, 0, FMT_D8, AM33_2, {FDM3, MEMINC2 (RM0, SIMM24)}},
+{ "fmov", 0xfdb40000, 0xfffd1f00, 0, FMT_D8, AM33_2, {FDM3, MEM2 (IMM24, SP)}},
+{ "fmov", 0xfdb50000, 0xffff0000, 0, FMT_D4, AM33_2, {IMM32, FPCR}},
+{ "fmov", 0xfe200000, 0xfffe0000, 0, FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, RM2), FSM2}},
+{ "fmov", 0xfe220000, 0xfffe0000, 0, FMT_D9, AM33_2, {MEMINC2 (RM2, IMM32_HIGH8), FSM2}},
+{ "fmov", 0xfe240000, 0xfffef000, 0, FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, SP), FSM2}},
+{ "fmov", 0xfe260000, 0xfffef000, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM2}},
+{ "fmov", 0xfe300000, 0xfffd0000, 0, FMT_D9, AM33_2, {FSM3, MEM2 (IMM32_HIGH8, RM0)}},
+{ "fmov", 0xfe310000, 0xfffd0000, 0, FMT_D9, AM33_2, {FSM3, MEMINC2 (RM0, IMM32_HIGH8)}},
+{ "fmov", 0xfe340000, 0xfffd0f00, 0, FMT_D9, AM33_2, {FSM3, MEM2 (IMM32_HIGH8, SP)}},
+{ "fmov", 0xfe400000, 0xfffe0100, 0, FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, RM2), FDM2}},
+{ "fmov", 0xfe420000, 0xfffe0100, 0, FMT_D9, AM33_2, {MEMINC2 (RM2, IMM32_HIGH8), FDM2}},
+{ "fmov", 0xfe440000, 0xfffef100, 0, FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, SP), FDM2}},
+{ "fmov", 0xfe500000, 0xfffd1000, 0, FMT_D9, AM33_2, {FDM3, MEM2 (IMM32_HIGH8, RM0)}},
+{ "fmov", 0xfe510000, 0xfffd1000, 0, FMT_D9, AM33_2, {FDM3, MEMINC2 (RM0, IMM32_HIGH8)}},
+{ "fmov", 0xfe540000, 0xfffd1f00, 0, FMT_D9, AM33_2, {FDM3, MEM2 (IMM32_HIGH8, SP)}},
+
+ /* FIXME: these are documented in the instruction bitmap, but not in
+ * the instruction manual. */
+{ "ftoi", 0xfb400000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "itof", 0xfb420000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "ftod", 0xfb520000, 0xffff0f15, 0, FMT_D10,AM33_2, {FSN3, FDN1}},
+{ "dtof", 0xfb560000, 0xffff1f05, 0, FMT_D10,AM33_2, {FDN3, FSN1}},
+ /* END of FIXME */
+
+{ "fabs", 0xfb440000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "fabs", 0xfbc40000, 0xffff1f15, 0, FMT_D10,AM33_2, {FDN3, FDN1}},
+{ "fabs", 0xf94400, 0xfffef0, 0, FMT_D6, AM33_2, {FSM0}},
+{ "fabs", 0xf9c400, 0xfffef1, 0, FMT_D6, AM33_2, {FDM0}},
+
+{ "fneg", 0xfb460000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "fneg", 0xfbc60000, 0xffff1f15, 0, FMT_D10,AM33_2, {FDN3, FDN1}},
+{ "fneg", 0xf94600, 0xfffef0, 0, FMT_D6, AM33_2, {FSM0}},
+{ "fneg", 0xf9c600, 0xfffef1, 0, FMT_D6, AM33_2, {FDM0}},
+
+{ "frsqrt", 0xfb500000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "frsqrt", 0xfbd00000, 0xffff1f15, 0, FMT_D10,AM33_2, {FDN3, FDN1}},
+{ "frsqrt", 0xf95000, 0xfffef0, 0, FMT_D6, AM33_2, {FSM0}},
+{ "frsqrt", 0xf9d000, 0xfffef1, 0, FMT_D6, AM33_2, {FDM0}},
+
+ /* FIXME: this is documented in the instruction bitmap, but not in
+ * the instruction manual. */
+{ "fsqrt", 0xfb540000, 0xffff0f05, 0, FMT_D10,AM33_2, {FSN3, FSN1}},
+{ "fsqrt", 0xfbd40000, 0xffff1f15, 0, FMT_D10,AM33_2, {FDN3, FDN1}},
+{ "fsqrt", 0xf95200, 0xfffef0, 0, FMT_D6, AM33_2, {FSM0}},
+{ "fsqrt", 0xf9d200, 0xfffef1, 0, FMT_D6, AM33_2, {FDM0}},
+ /* END of FIXME */
+
+{ "fcmp", 0xf95400, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fcmp", 0xf9d400, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fcmp", 0xfe350000, 0xfffd0f00, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM3}},
+
+{ "fadd", 0xfb600000, 0xffff0001, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1}},
+{ "fadd", 0xfbe00000, 0xffff1111, 0, FMT_D10,AM33_2, {FDN3, FDN2, FDN1}},
+{ "fadd", 0xf96000, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fadd", 0xf9e000, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fadd", 0xfe600000, 0xfffc0000, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fsub", 0xfb640000, 0xffff0001, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1}},
+{ "fsub", 0xfbe40000, 0xffff1111, 0, FMT_D10,AM33_2, {FDN3, FDN2, FDN1}},
+{ "fsub", 0xf96400, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fsub", 0xf9e400, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fsub", 0xfe640000, 0xfffc0000, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fmul", 0xfb700000, 0xffff0001, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1}},
+{ "fmul", 0xfbf00000, 0xffff1111, 0, FMT_D10,AM33_2, {FDN3, FDN2, FDN1}},
+{ "fmul", 0xf97000, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fmul", 0xf9f000, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fmul", 0xfe700000, 0xfffc0000, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fdiv", 0xfb740000, 0xffff0001, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1}},
+{ "fdiv", 0xfbf40000, 0xffff1111, 0, FMT_D10,AM33_2, {FDN3, FDN2, FDN1}},
+{ "fdiv", 0xf97400, 0xfffc00, 0, FMT_D6, AM33_2, {FSM1, FSM0}},
+{ "fdiv", 0xf9f400, 0xfffc11, 0, FMT_D6, AM33_2, {FDM1, FDM0}},
+{ "fdiv", 0xfe740000, 0xfffc0000, 0, FMT_D9, AM33_2, {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fmadd", 0xfb800000, 0xfffc0000, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1, FSACC}},
+{ "fmsub", 0xfb840000, 0xfffc0000, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1, FSACC}},
+{ "fnmadd", 0xfb900000, 0xfffc0000, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1, FSACC}},
+{ "fnmsub", 0xfb940000, 0xfffc0000, 0, FMT_D10,AM33_2, {FSN3, FSN2, FSN1, FSACC}},
+
/* UDF instructions. */
{ "udf00", 0xf600, 0xfff0, 0, FMT_D0, 0, {DM1, DN0}},
{ "udf00", 0xf90000, 0xfffc00, 0, FMT_D1, 0, {SIMM8, DN0}},
diff --git a/opcodes/m32r-asm.c b/opcodes/m32r-asm.c
index 2bd751a..a8c9485 100644
--- a/opcodes/m32r-asm.c
+++ b/opcodes/m32r-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -358,8 +358,7 @@ m32r_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-m32r_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+m32r_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -482,11 +481,10 @@ m32r_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -624,12 +622,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-m32r_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+m32r_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -733,9 +730,7 @@ m32r_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-m32r_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+m32r_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/m32r-dis.c b/opcodes/m32r-dis.c
index 5688049..e8abbc6 100644
--- a/opcodes/m32r-dis.c
+++ b/opcodes/m32r-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -274,13 +273,12 @@ m32r_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -300,13 +298,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -330,12 +327,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -349,17 +345,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -391,14 +386,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -422,12 +416,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -532,10 +525,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -574,9 +564,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_m32r (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_m32r (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/m32r-ibld.c b/opcodes/m32r-ibld.c
index ef1ee0e..2a8d104 100644
--- a/opcodes/m32r-ibld.c
+++ b/opcodes/m32r-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 1ed436a..af6c445 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -347,6 +347,10 @@ const struct mips_arch_choice mips_arch_choices[] = {
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r6000", 1, bfd_mach_mips6000, CPU_R6000, ISA_MIPS2,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
+ { "rm7000", 1, bfd_mach_mips7000, CPU_RM7000, ISA_MIPS4,
+ mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
+ { "rm9000", 1, bfd_mach_mips7000, CPU_RM7000, ISA_MIPS4,
+ mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r8000", 1, bfd_mach_mips8000, CPU_R8000, ISA_MIPS4,
mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric },
{ "r10000", 1, bfd_mach_mips10000, CPU_R10000, ISA_MIPS4,
@@ -495,11 +499,11 @@ set_default_mips_dis_options (info)
mips_hwr_names = mips_hwr_names_numeric;
/* If an ELF "newabi" binary, use the n32/(n)64 GPR names. */
- if (info->flavour == bfd_target_elf_flavour && info->symbols != NULL)
+ if (info->flavour == bfd_target_elf_flavour && info->section != NULL)
{
Elf_Internal_Ehdr *header;
- header = elf_elfheader (bfd_asymbol_bfd (*(info->symbols)));
+ header = elf_elfheader (info->section->owner);
if (is_newabi (header))
mips_gpr_names = mips_gpr_names_newabi;
}
diff --git a/opcodes/openrisc-asm.c b/opcodes/openrisc-asm.c
index 26b2625..9f6ee32 100644
--- a/opcodes/openrisc-asm.c
+++ b/opcodes/openrisc-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -277,8 +277,7 @@ openrisc_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-openrisc_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+openrisc_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -401,11 +400,10 @@ openrisc_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -543,12 +541,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-openrisc_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+openrisc_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -652,9 +649,7 @@ openrisc_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-openrisc_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+openrisc_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/openrisc-dis.c b/opcodes/openrisc-dis.c
index 5c4da5f..6b721e2 100644
--- a/opcodes/openrisc-dis.c
+++ b/opcodes/openrisc-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -161,13 +160,12 @@ openrisc_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -187,13 +185,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -217,12 +214,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -236,17 +232,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -278,14 +273,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -309,12 +303,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -419,10 +412,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -461,9 +451,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_openrisc (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_openrisc (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/openrisc-ibld.c b/opcodes/openrisc-ibld.c
index c2e5156..751ac07 100644
--- a/opcodes/openrisc-ibld.c
+++ b/opcodes/openrisc-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in
index df9060e..f16a87b 100644
--- a/opcodes/po/POTFILES.in
+++ b/opcodes/po/POTFILES.in
@@ -16,8 +16,8 @@ d10v-dis.c
d10v-opc.c
d30v-dis.c
d30v-opc.c
-dis-buf.c
disassemble.c
+dis-buf.c
dlx-dis.c
fr30-asm.c
fr30-desc.c
@@ -48,12 +48,12 @@ ia64-dis.c
ia64-gen.c
ia64-opc-a.c
ia64-opc-b.c
+ia64-opc.c
ia64-opc-d.c
ia64-opc-f.c
+ia64-opc.h
ia64-opc-i.c
ia64-opc-m.c
-ia64-opc.c
-ia64-opc.h
ip2k-asm.c
ip2k-desc.c
ip2k-desc.h
@@ -87,9 +87,9 @@ m68k-opc.c
m88k-dis.c
mcore-dis.c
mcore-opc.h
+mips16-opc.c
mips-dis.c
mips-opc.c
-mips16-opc.c
mmix-dis.c
mmix-opc.c
ns32k-dis.c
@@ -111,11 +111,11 @@ ppc-opc.c
s390-dis.c
s390-mkopc.c
s390-opc.c
-sh-dis.c
-sh-opc.h
sh64-dis.c
sh64-opc.c
sh64-opc.h
+sh-dis.c
+sh-opc.h
sparc-dis.c
sparc-opc.c
sysdep.h
@@ -139,5 +139,5 @@ xstormy16-opc.c
xstormy16-opc.h
xtensa-dis.c
z8k-dis.c
-z8k-opc.h
z8kgen.c
+z8k-opc.h
diff --git a/opcodes/po/es.po b/opcodes/po/es.po
index 4ee0c99..f94b967 100644
--- a/opcodes/po/es.po
+++ b/opcodes/po/es.po
@@ -1,12 +1,12 @@
-# Mensajes en español para opcodes-2.12.91
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002.
+# Mensajes en español para opcodes-2.14rel030712.
+# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-24 02:03-0500\n"
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-07-14 18:57-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
@@ -25,21 +25,21 @@ msgstr "pista de salto sin alinear"
msgid "Illegal limm reference in last instruction!\n"
msgstr "¡Referencia limm ilegal en la última instrucción!\n"
-#: arm-dis.c:507
+#: arm-dis.c:554
msgid "<illegal precision>"
msgstr "<precisión ilegal>"
-#: arm-dis.c:1010
+#: arm-dis.c:1162
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Conjunto de nombres de registro no reconocido: %s\n"
-#: arm-dis.c:1017
+#: arm-dis.c:1169
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Opción de desensamblador no reconocida: %s\n"
-#: arm-dis.c:1191
+#: arm-dis.c:1343
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -49,26 +49,26 @@ msgstr ""
"Las siguientes opciones de desensamblador específicas de ARM tienen soporte\n"
"para su uso con el interruptor -M:\n"
-#: avr-dis.c:118 avr-dis.c:128
+#: avr-dis.c:117 avr-dis.c:127
msgid "undefined"
msgstr "sin definir"
-#: avr-dis.c:180
+#: avr-dis.c:179
msgid "Internal disassembler error"
msgstr "Error interno del desensamblador"
-#: avr-dis.c:228
+#: avr-dis.c:227
#, c-format
msgid "unknown constraint `%c'"
msgstr "restricción `%c' desconocida"
-#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195
-#: openrisc-ibld.c:195 xstormy16-ibld.c:195
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "operando fuera de rango (%ld no está entre %ld y %ld)"
-#: cgen-asm.c:367
+#: cgen-asm.c:369
#, c-format
msgid "operand out of range (%lu not between %lu and %lu)"
msgstr "operando fuera de rango (%lu no está entre %lu y %lu)"
@@ -89,129 +89,135 @@ msgstr "Error desconocido %d\n"
msgid "Address 0x%x is out of bounds.\n"
msgstr "La dirección 0x%x está fuera de los límites.\n"
-#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244
-#: xstormy16-asm.c:231
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "No se reconoció el campo %d durante la decodificación.\n"
-#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294
-#: xstormy16-asm.c:281
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
msgid "missing mnemonic in syntax string"
msgstr "falta el mnemónico en la cadena sintáctica"
#. We couldn't parse it.
-#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781
-#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515
-#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434
-#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417
-#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
msgid "unrecognized instruction"
msgstr "instrucción no reconocida"
-#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477
-#: xstormy16-asm.c:464
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "error sintáctico (se esperaba el carácter `%c', se encontró `%c')"
-#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487
-#: xstormy16-asm.c:474
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "error sintáctico (se esperaba el carácter `%c', se encontró el final de la instrucción)"
-#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515
-#: xstormy16-asm.c:502
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
msgid "junk at end of line"
msgstr "basura al final de la línea"
-#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622
-#: xstormy16-asm.c:609
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
msgid "unrecognized form of instruction"
msgstr "forma de instrucción no reconocida"
-#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634
-#: xstormy16-asm.c:621
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "instrucción errónea `%.50s...'"
-#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637
-#: xstormy16-asm.c:624
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s'"
msgstr "instrucción errónea `%.50s'"
#. Default text to print if an instruction isn't recognized.
-#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
-#: xstormy16-dis.c:39
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr "*desconocida*"
-#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136
-#: xstormy16-dis.c:169
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "No se reconoció el campo %d al mostrar insn.\n"
-#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
-#: xstormy16-ibld.c:166
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "operando fuera de rango (%ld no está entre %ld y %lu)"
-#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
-#: xstormy16-ibld.c:179
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "operando fuera de rango (%lu no está entre 0 y %lu)"
-#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633
-#: xstormy16-ibld.c:678
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "No se reconoció el campo %d al construir insn.\n"
-#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735
-#: xstormy16-ibld.c:826
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "No se reconoció el campo %d al decodificar insn.\n"
-#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815
-#: xstormy16-ibld.c:939
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "No se reconoció el campo %d al obtener el operando int.\n"
-#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875
-#: xstormy16-ibld.c:1032
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "No se reconoció el campo %d al obtener el operando vma.\n"
-#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944
-#: xstormy16-ibld.c:1134
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "No se reconoció el campo %d al establecer el operando int.\n"
-#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001
-#: xstormy16-ibld.c:1224
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "No se reconoció el campo %d al establecer el operando vma.\n"
-#: h8300-dis.c:385
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "el número de registro debe ser par"
+
+#: h8300-dis.c:377
#, c-format
-msgid "Hmmmm %x"
-msgstr "Hmmmm %x"
+msgid "Hmmmm 0x%x"
+msgstr "Hmmmm 0x%x"
-#: h8300-dis.c:396
+#: h8300-dis.c:760
#, c-format
-msgid "Don't understand %x \n"
-msgstr "No se entiende %x \n"
+msgid "Don't understand 0x%x \n"
+msgstr "No se entiende 0x%x \n"
#: h8500-dis.c:143
#, c-format
@@ -224,10 +230,188 @@ msgstr "no se puede lidiar con insert %d\n"
msgid "%02x\t\t*unknown*"
msgstr "%02x\t\t*desconocido*"
-#: i386-dis.c:1649
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr "<error interno del desensamblador>"
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Error: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Aviso: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "la nota múltiple %s no se maneja\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "no se puede encontrar ia64-ic.tbl para lectura\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "no se puede encontrar %s para lectura\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"el formato más reciente '%s'\n"
+"parece más restrictivo que '%s'\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "campo solapado %s->%s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "se sobreescribe la nota %d con la nota %d (IC:%s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "no se sabe cómo especificar la dependencia %% %s\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "No se sabe cómo especificar la dependencia # %s\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC:%s [%s] no tiene terminales o sub-clases\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC:%s no tiene terminales o sub-clases\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "no hay insns mapeadas directamente al IC terminal %s [%s]"
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "no hay insns mapeadas directamente al IC terminal %s\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "se define la clase %s pero no se utiliza\n"
+
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "Aviso: el rsrc %s (%s) no tiene chks%s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "el rsrc %s (%s) no tiene registros\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "la nota IC %d en el código de operación %s (IC:%s) tiene conflictos con el recurso %s nota %d\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "la nota IC %d para el código de operación %s (IC:%s) tiene conflictos con el recurso %s nota %d\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "el código de operación %s no tiene clase (ops %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "no se puede cambiar el directorio a \"%s\", errno = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "la palabra clave W es inválida en la ranura del operando FR."
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "el desplazamiento(IP) no es una forma válida"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "desplazamiento (DP) fuera de rango."
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "desplazamiento (SP) fuera de rango."
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "uso ilegal de paréntesis"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "operando fuera de rango (no está entre 1 y 255)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: índice de operador inválido."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "Se requiere una dirección de byte. - debe ser par."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address devolvió un símbolo. Se requiere una literal."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "el operando %operator no es un símbolo"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "Se intentó encontrar un índice de bit de 0"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "el valor inmediato no puede ser un registro"
+
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "el valor inmediato está fuera de rango"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "desplazamiento de 21-bit fuera de rango"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "falta un `)'"
+
#: m10200-dis.c:199
#, c-format
msgid "unknown\t0x%02x"
@@ -238,7 +422,7 @@ msgstr "desconocido\t0x%02x"
msgid "unknown\t0x%04lx"
msgstr "desconocido\t0x%04lx"
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr "desconocido\t0x%04x"
@@ -253,21 +437,128 @@ msgstr "<error interno en la tabla de códigos de operación: %s %s>\n"
msgid "<function code %d>"
msgstr "<código de función %d>"
-#: m88k-dis.c:255
+#: m88k-dis.c:746
#, c-format
msgid "# <dis error: %08x>"
msgstr "# <error de desensamblador: %08x>"
-#: mips-dis.c:337
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# error interno, secuencia de extensión incompleta (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# error interno, secuencia de extensión sin definir (+%c)"
+
+#: mips-dis.c:1000
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr "# error interno, modificador(%c) sin definir"
-#: mips-dis.c:1209
+#: mips-dis.c:1751
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr "# error interno del desensamblador, modificador (%c) no reconocido"
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"Las siguientes opciones de desensamblador específicas de MIPS tienen soporte\n"
+"para su uso con el interruptor -M (las opciones múltiples se deben separar con comas):\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Muestra los nombres GPR de acuerdo a la ABI especificada.\n"
+" Por omisión: basado en el binario a desensamblar.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Muestra los nombres FPR de acuerdo a la ABI especificada.\n"
+" Por omisión: numérico.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=ARCH Muestra los nombres de registro CP0 de acuerdo a\n"
+" la arquitectura especificada.\n"
+" Por omisión: basado en el binario a desensamblar.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=ARCH Muestra los nombres HWR de acuerdo a la arquitectura \n"
+" especificada.\n"
+" Por omisión: basado en el binario a desensamblar.\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Muestra los nombres GPR y FPR de acuerdo a\n"
+" la ABI especificada.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=ARCH Muestra el registro CP0 y los nombres HWR de acuerdo a\n"
+" la arquitectura especificada.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" Para las opciones anteriores, se da soporte a los siguientes valores de \"ABI\":\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" Para las opciones anteriores, se da soporte a los siguientes valores de \"ARCH\":\n"
+" "
+
#: mmix-dis.c:34
#, c-format
msgid "Bad case %d (%s) in %s:%d\n"
@@ -282,7 +573,7 @@ msgstr "Interno: Código no depurado (falta el caso de prueba): %s:%d"
msgid "(unknown)"
msgstr "(desconocido)"
-#: mmix-dis.c:517
+#: mmix-dis.c:519
#, c-format
msgid "*unknown operands type: %d*"
msgstr "*tipo de operandos operandos desconocido: %d*"
@@ -293,76 +584,116 @@ msgstr "*tipo de operandos operandos desconocido: %d*"
#. * aoffsetp by since whatever generated this is broken
#. * anyway!
#.
-#: ns32k-dis.c:628
+#: ns32k-dis.c:631
msgid "$<undefined>"
msgstr "$<sin definir>"
-#: ppc-opc.c:777 ppc-opc.c:810
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr "opción condicional inválida"
-#: ppc-opc.c:812
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr "intento de establecer el bit y cuando se usaba el modificador + ó -"
-#: ppc-opc.c:844 ppc-opc.c:896
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "el desplazamiento no es un múltiplo de 16"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "el desplazamiento no es un múltiplo de 2"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "el desplazamiento es mayor que 62"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr "el desplazamiento no es un múltiplo de 4"
-#: ppc-opc.c:869
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "el desplazamiento es mayor que 124"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "el desplazamiento no es un múltiplo de 8"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "el desplazamiento es mayor que 248"
+
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr "el desplazamiento no está entre -2048 y 2047"
-#: ppc-opc.c:894
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr "el desplazamiento no está entre -8192 y 8191"
-#: ppc-opc.c:922
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "se ignora la máscara mfcr inválida"
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr "ignorando los bits menos significativos en el desplazamiento de la rama"
-#: ppc-opc.c:956 ppc-opc.c:993
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr "máscara de bits ilegal"
-#: ppc-opc.c:1066
+#: ppc-opc.c:1192
msgid "value out of range"
msgstr "valor fuera de rango"
-#: ppc-opc.c:1142
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr "registro índice en el rango de carga"
-#: ppc-opc.c:1158
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "los operandos de registros fuente y objetivo deben ser diferentes"
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr "operando de registro inválido mientras se actualizaba"
-#. Mark as non-valid instruction
-#: sparc-dis.c:750
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "el operando de registro objetivo debe ser par"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "el operando de registro fuente debe ser par"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
msgid "unknown"
msgstr "desconocida"
-#: sparc-dis.c:825
+#: sparc-dis.c:835
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Error interno: sparc-opcode.h erróneo: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:836
+#: sparc-dis.c:846
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Error interno: sparc-opcode.h erróneo: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:885
+#: sparc-dis.c:895
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr "Error interno: sparc-opcode.h erróneo: \"%s\" == \"%s\"\n"
-#: v850-dis.c:224
+#: v850-dis.c:221
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "operando de desplazamiento desconocido: %x\n"
-#: v850-dis.c:236
+#: v850-dis.c:233
#, c-format
msgid "unknown pop reg: %d\n"
msgstr "registro pop desconocido: %d\n"
@@ -416,33 +747,45 @@ msgstr "el valor inmediato no está en rango y no es par"
msgid "immediate value must be even"
msgstr "el valor inmediato debe ser par"
-#: xstormy16-asm.c:74
+#: xstormy16-asm.c:76
msgid "Bad register in preincrement"
msgstr "Registro erróneo en el preincremento"
-#: xstormy16-asm.c:79
+#: xstormy16-asm.c:81
msgid "Bad register in postincrement"
msgstr "Registro erróneo en el postincremento"
-#: xstormy16-asm.c:81
+#: xstormy16-asm.c:83
msgid "Bad register name"
msgstr "Nombre de registro erróneo"
-#: xstormy16-asm.c:85
+#: xstormy16-asm.c:87
msgid "Label conflicts with register name"
msgstr "La etiqueta tiene conflictos con el nombre de registro"
-#: xstormy16-asm.c:89
+#: xstormy16-asm.c:91
msgid "Label conflicts with `Rx'"
msgstr "La etiqueta tiene conflictos con `Rx'"
-#: xstormy16-asm.c:91
+#: xstormy16-asm.c:93
msgid "Bad immediate expression"
msgstr "Expresión inmediata errónea"
-#: xstormy16-asm.c:120
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "No hay reubicaciones para inmediatos small"
+
+#: xstormy16-asm.c:125
msgid "Small operand was not an immediate number"
msgstr "El operando small no era un número inmediato"
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "El operando no es un símbolo"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Error sintáctico: No hay ')' al final"
+
#~ msgid "unrecognized keyword/register name"
#~ msgstr "nombre clave/de registro no reconocido"
diff --git a/opcodes/po/fr.po b/opcodes/po/fr.po
index b0ff20e..7ec06af 100644
--- a/opcodes/po/fr.po
+++ b/opcodes/po/fr.po
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-24 08:00-0500\n"
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-08-05 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
@@ -25,21 +25,21 @@ msgstr "saut indicé non aligné"
msgid "Illegal limm reference in last instruction!\n"
msgstr "Référence limite illégale dans la dernière instruction!\n"
-#: arm-dis.c:507
+#: arm-dis.c:554
msgid "<illegal precision>"
msgstr "<précision illégale>"
-#: arm-dis.c:1010
+#: arm-dis.c:1162
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Nom de jeu de registres inconnu: %s\n"
-#: arm-dis.c:1017
+#: arm-dis.c:1169
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Option du désassembleur non reconnue: %s\n"
-#: arm-dis.c:1191
+#: arm-dis.c:1343
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -49,29 +49,29 @@ msgstr ""
"Les options spécifiques ARM suivantes sont supportées avec l'utilisation de\n"
"l'option -M:\n"
-#: avr-dis.c:118 avr-dis.c:128
+#: avr-dis.c:117 avr-dis.c:127
msgid "undefined"
msgstr "non défini"
-#: avr-dis.c:180
+#: avr-dis.c:179
msgid "Internal disassembler error"
msgstr "Erreur interne du désassembleur"
-#: avr-dis.c:228
+#: avr-dis.c:227
#, c-format
msgid "unknown constraint `%c'"
msgstr "contrainte inconnue « %c »"
-#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195
-#: openrisc-ibld.c:195 xstormy16-ibld.c:195
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
-msgstr "opérande hors gamme (%ld n'est pas entre %ld et %ld)"
+msgstr "opérande hors limite (%ld n'est pas entre %ld et %ld)"
-#: cgen-asm.c:367
+#: cgen-asm.c:369
#, c-format
msgid "operand out of range (%lu not between %lu and %lu)"
-msgstr "opérande hors gamme (%lu n'est pas entre %lu et %lu)"
+msgstr "opérande hors limite (%lu n'est pas entre %lu et %lu)"
#: d30v-dis.c:312
#, c-format
@@ -87,132 +87,138 @@ msgstr "Erreur inconnue %d\n"
#: dis-buf.c:62
#, c-format
msgid "Address 0x%x is out of bounds.\n"
-msgstr "Adresse 0x%x est hors gamme.\n"
+msgstr "Adresse 0x%x est hors limite.\n"
-#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244
-#: xstormy16-asm.c:231
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Champ non reconnu %d lors de l'analyse.\n"
-#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294
-#: xstormy16-asm.c:281
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
msgid "missing mnemonic in syntax string"
msgstr "mnémonique manquante dans la syntaxe de la chaîne"
#. We couldn't parse it.
-#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781
-#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515
-#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434
-#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417
-#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
msgid "unrecognized instruction"
msgstr "instruction non reconnue"
-#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477
-#: xstormy16-asm.c:464
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "erreur de syntaxe (caractère « %c » attendu, « %c » obtenu)"
-#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487
-#: xstormy16-asm.c:474
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "erreur de syntaxe (caractère « %c » attendu, fin de l'instruction obtenue)"
-#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515
-#: xstormy16-asm.c:502
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
msgid "junk at end of line"
msgstr "rebut à la fin de la ligne"
-#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622
-#: xstormy16-asm.c:609
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
msgid "unrecognized form of instruction"
msgstr "forme d'instruction non reconnue"
-#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634
-#: xstormy16-asm.c:621
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "instruction erronée « %.50s... »"
-#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637
-#: xstormy16-asm.c:624
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s'"
msgstr "instruction erronée « %.50s »"
#. Default text to print if an instruction isn't recognized.
-#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
-#: xstormy16-dis.c:39
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr "*inconnu*"
-#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136
-#: xstormy16-dis.c:169
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "Champ non reconnu %d lors de l'impression insn.\n"
-#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
-#: xstormy16-ibld.c:166
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
-msgstr "opérande hors gamme (%ld n'est pas entre %ld et %lu)"
+msgstr "opérande hors limite (%ld n'est pas entre %ld et %lu)"
-#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
-#: xstormy16-ibld.c:179
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
-msgstr "opérande hors gamme (%lu n'est pas entre 0 et %lu)"
+msgstr "opérande hors limite (%lu n'est pas entre 0 et %lu)"
-#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633
-#: xstormy16-ibld.c:678
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Champ non reconnu %d lors de la construction de insn.\n"
-#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735
-#: xstormy16-ibld.c:826
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Champ non reconnu %d lors du décodage de insn.\n"
-#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815
-#: xstormy16-ibld.c:939
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "Champ non reconnu %d lors de la prise d'une opérande int.\n"
-#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875
-#: xstormy16-ibld.c:1032
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "Champ non reconnu %d lors de la prise d'une opérande vma.\n"
-#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944
-#: xstormy16-ibld.c:1134
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande int.\n"
-#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001
-#: xstormy16-ibld.c:1224
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande vma.\n"
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "numéro de registre doit être pair"
+
# h8300-dis.c:380Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
-#: h8300-dis.c:385
+#: h8300-dis.c:377
#, c-format
-msgid "Hmmmm %x"
-msgstr "Hummm %x"
+msgid "Hmmmm 0x%x"
+msgstr "Hummmm 0x%x"
-#: h8300-dis.c:396
+#: h8300-dis.c:760
#, c-format
-msgid "Don't understand %x \n"
-msgstr "Ne comprend pas %x \n"
+msgid "Don't understand 0x%x \n"
+msgstr "Ne comprend pas 0x%x \n"
#: h8500-dis.c:143
#, c-format
@@ -225,10 +231,188 @@ msgstr "Ne peut gérer l'insertion %d\n"
msgid "%02x\t\t*unknown*"
msgstr "%02x\t\t*inconnu*"
-#: i386-dis.c:1649
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr "<erreur interne du désassembleur>"
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: ERREUR: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: AVERTISSEMENT: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "note multiple %s n'est pas traitée\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "ne peut trouver ia64-ic.tbl pour la lecture\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "ne peut trouver %s pour la lecture\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"le plus récent format '%s'\n"
+"apparaît plus restrictif que '%s'\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "chevauchement de champ %s->%s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "sur-écriture de la note %d avec la note %d (IC:%s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "ne sait comment spécifier %% pour la dépendance %s\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "Ne sait comment spécifier # pour la dépendence %s\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC:%s [%s] n'a pas de terminals ou de sous-classes\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC:%s n'a pas de terminals ou de sous-classes\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "aucun insns mappé directement au terminal IC %s [%s]"
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "aucun insns mappé directement au terminal IC %s\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "classe %s défini mais non utilisée\n"
+
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "AVERTISSEMENT: rsrc %s (%s) n'a pas de chks%s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "rsrc %s (%s) n'a pas de registres\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "IC note %d dans l'opcode %s (IC:%s) entre en conflit avec la ressource %s note %d\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "IC note %d pour l'opcode %s (IC:%s) entre en conflit avec la ressource %s note %d\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "opcode %s n'a pas de classe (ops %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "incapable de changer de répertoire vers \"%s\", errno = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "W mot clé invalide dans la slot de l'opérance FR."
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "décalage(IP) n'a pas un format valide"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "décalage (DP) est hors limite."
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "décalage (SP) est hors limite."
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "usage illégal des parenthèses"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "opérande hors limite (n'est pas entre 1 et 255)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: opindex invalide."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "adresse d'octet requise - doit être paire."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address a retourné un symbole. Litéral requis."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "opérande de l'%opérateur n'est pas un symbole"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "Tentative de repérage d'un index de bit de 0"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "valeur immédiate doit être un registre"
+
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "valeur immédiate est hors limite"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "décalage de 21 bits est hors limite"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "`)' manquante"
+
#: m10200-dis.c:199
#, c-format
msgid "unknown\t0x%02x"
@@ -239,7 +423,7 @@ msgstr "inconnu\t0x%02x"
msgid "unknown\t0x%04lx"
msgstr "inconnu\t0x%04lx"
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr "inconnu\t0x%04x"
@@ -254,21 +438,128 @@ msgstr "<erreur interne dans la table des codes-op: %s %s>\n"
msgid "<function code %d>"
msgstr "<code de fonction %d>"
-#: m88k-dis.c:255
+#: m88k-dis.c:746
#, c-format
msgid "# <dis error: %08x>"
msgstr "# <erreur du désassembleur: %08x>"
-#: mips-dis.c:337
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# erreur interne, séquence d'extension incomplète (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# erreur interne, séquence d'extension indéfinie (+%c)"
+
+#: mips-dis.c:1000
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr "# erreur interne, modificateur non défini(%c)"
-#: mips-dis.c:1209
+#: mips-dis.c:1751
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr "# erreur interne du déssassembleur, modificateur non reconnu(%c)"
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"Les options spécifiques MIPS du désassembleur sont supportées avec l'utilisation de\n"
+"l'option -M (les options multiples doivent être séparées par des virgules):\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Afficher les noms GPR selon l'ABI spécifié.\n"
+" Par défaut: basé sur le binaire déassemblé.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Afficher les noms FPR selon l'ABI spécifié.\n"
+" Par défaut: numérique.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=ARCH Afficher les noms des registres CP0 selon\n"
+" l'architecture spécifiée.\n"
+" Par défaut: basé sur le binaire déassemblé.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=ARCH Afficher les noms HWR selon \n"
+"\t\t\t l'architecture spécifiée.\n"
+" Par défaut: basé sur le binaire déassemblé.\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Afficher les noms GPR et FPR selon l'ABI\n"
+" spécifié.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=ARCH Afficher les noms des registres CP0 et HWR selon\n"
+" l'architecture spécifiée.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" Pour les options ci-haut, les valeurs suivantes sont supportés pour l'\"ABI\":\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" Pour les options ci-haut, les valeurs suivantes sont supportées pour \"ARCH\":\n"
+" "
+
#: mmix-dis.c:34
#, c-format
msgid "Bad case %d (%s) in %s:%d\n"
@@ -283,7 +574,7 @@ msgstr "Interne: code qui n'est pas au point (case de test manquant): %s:%d"
msgid "(unknown)"
msgstr "(inconnu)"
-#: mmix-dis.c:517
+#: mmix-dis.c:519
#, c-format
msgid "*unknown operands type: %d*"
msgstr "*type d'opérande inconnue: %d*"
@@ -294,76 +585,116 @@ msgstr "*type d'opérande inconnue: %d*"
#. * aoffsetp by since whatever generated this is broken
#. * anyway!
#.
-#: ns32k-dis.c:628
+#: ns32k-dis.c:631
msgid "$<undefined>"
msgstr "$<non défini>"
-#: ppc-opc.c:777 ppc-opc.c:810
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr "option conditionnelle invalide"
-#: ppc-opc.c:812
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr "tentative d'initialisation du bit y lorsque le modificateur + ou - a été utilisé"
-#: ppc-opc.c:844 ppc-opc.c:896
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "décalage n'est pas un multiple de 16"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "décalage n'est pas un multiple de 2"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "décalage plus grand que 62"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr "décalage n'est pas un multiple de 4"
-#: ppc-opc.c:869
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "décalage plus grand que 124"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "décalage n'est pas un multiple de 8"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "décalage plus grand que 248"
+
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr "décalage n'est pas entre -2048 et 2047"
-#: ppc-opc.c:894
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr "décalage n'est pas entre -8192 et 8191"
-#: ppc-opc.c:922
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "masque mfcr invalide est ignoré"
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr "Les derniers bits les moins significatifs sont ignorés dans le décalage de branchement"
-#: ppc-opc.c:956 ppc-opc.c:993
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr "masque de bits illégal"
-#: ppc-opc.c:1066
+#: ppc-opc.c:1192
msgid "value out of range"
-msgstr "valeur hors gamme"
+msgstr "valeur hors limite"
-#: ppc-opc.c:1142
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr "registre index n'est pas dans la plage de chargement"
-#: ppc-opc.c:1158
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "les opérandes des registres source et cible doivent être diffrents"
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr "opérande registre invalide lors de la mise à jour"
-#. Mark as non-valid instruction
-#: sparc-dis.c:750
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "opérande du registre cible doit être pair"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "opérande du registre source doit être pair"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
msgid "unknown"
msgstr "inconnu"
-#: sparc-dis.c:825
+#: sparc-dis.c:835
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Erreur interne: sparc-opcode.h erroné: « %s », %#.8lx, %#.8lx\n"
-#: sparc-dis.c:836
+#: sparc-dis.c:846
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Erreur interne: sparc-opcode.h erroné: « %s », %#.8lx, %#.8lx\n"
-#: sparc-dis.c:885
+#: sparc-dis.c:895
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr "Erreur interne: sparc-opcode.h erroné: « %s » == « %s »\n"
-#: v850-dis.c:224
+#: v850-dis.c:221
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "décalage d'opérande inconnu: %x\n"
-#: v850-dis.c:236
+#: v850-dis.c:233
#, c-format
msgid "unknown pop reg: %d\n"
msgstr "registre de pile inconnu: %d\n"
@@ -375,11 +706,11 @@ msgstr "registre de pile inconnu: %d\n"
#. specific command line option is given to GAS.
#: v850-opc.c:68
msgid "displacement value is not in range and is not aligned"
-msgstr "La valeur de déplacement est hors gamme et n'est pas alignée."
+msgstr "La valeur de déplacement est hors limite et n'est pas alignée."
#: v850-opc.c:69
msgid "displacement value is out of range"
-msgstr "valeur de déplacement est hors gamme"
+msgstr "valeur de déplacement est hors limite"
#: v850-opc.c:70
msgid "displacement value is not aligned"
@@ -387,15 +718,15 @@ msgstr "valeur de déplacement n'est pas alignée"
#: v850-opc.c:72
msgid "immediate value is out of range"
-msgstr "valeur immédiate est hors gamme"
+msgstr "valeur immédiate est hors limite"
#: v850-opc.c:83
msgid "branch value not in range and to odd offset"
-msgstr "valeur de branchement est hors gamme et a un décalage impair"
+msgstr "valeur de branchement est hors limite et a un décalage impair"
#: v850-opc.c:85 v850-opc.c:117
msgid "branch value out of range"
-msgstr "valeur de branchement hors gamme"
+msgstr "valeur de branchement hors limite"
#: v850-opc.c:88 v850-opc.c:120
msgid "branch to odd offset"
@@ -403,7 +734,7 @@ msgstr "Branchement avec un décalage impair"
#: v850-opc.c:115
msgid "branch value not in range and to an odd offset"
-msgstr "valeur de branchement est hors gamme et a un décalage impair"
+msgstr "valeur de branchement est hors limite et a un décalage impair"
#: v850-opc.c:346
msgid "invalid register for stack adjustment"
@@ -411,39 +742,51 @@ msgstr "registre invalide pour un ajustement de la pile"
#: v850-opc.c:370
msgid "immediate value not in range and not even"
-msgstr "valeur immédiate est hors gamme et est impaire"
+msgstr "valeur immédiate est hors limite et est impaire"
#: v850-opc.c:375
msgid "immediate value must be even"
msgstr "valeur immédiate doit être paire"
-#: xstormy16-asm.c:74
+#: xstormy16-asm.c:76
msgid "Bad register in preincrement"
msgstr "Registre erroné dans un préincrément"
-#: xstormy16-asm.c:79
+#: xstormy16-asm.c:81
msgid "Bad register in postincrement"
msgstr "Registre erroné dans un postincrément"
-#: xstormy16-asm.c:81
+#: xstormy16-asm.c:83
msgid "Bad register name"
msgstr "Nom erroné de registre"
-#: xstormy16-asm.c:85
+#: xstormy16-asm.c:87
msgid "Label conflicts with register name"
msgstr "Conflits d'étiquette avec le nom de registre"
-#: xstormy16-asm.c:89
+#: xstormy16-asm.c:91
msgid "Label conflicts with `Rx'"
msgstr "Conflit d'étiquette avec « Rx »"
-#: xstormy16-asm.c:91
+#: xstormy16-asm.c:93
msgid "Bad immediate expression"
msgstr "Expression immédiate erronée"
-#: xstormy16-asm.c:120
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "aucune relocalisation pour un petit immédiat"
+
+#: xstormy16-asm.c:125
msgid "Small operand was not an immediate number"
msgstr "Petite opérande n'était pas un nombre immédiat"
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "opérande n'est pas un symbol"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Erreur de syntaxe: pas de ')' en suffixe"
+
#~ msgid "unrecognized keyword/register name"
#~ msgstr "nom de mot clé ou de registre non reconnu"
diff --git a/opcodes/po/nl.po b/opcodes/po/nl.po
new file mode 100644
index 0000000..d4247c1
--- /dev/null
+++ b/opcodes/po/nl.po
@@ -0,0 +1,809 @@
+# Dutch messages for the Opcodes Library.
+# Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the Opcodes package.
+# Tim Van Holder <tim.van.holder@pandora.be>, 1999, 2002, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-07-18 17:17+0200\n"
+"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
+"Language-Team: Dutch <vertaling@nl.linux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+# misschien 'branch' vertalen (vertakking?)
+# en unaligned vertalen als 'niet uitgelijnd'?
+#: alpha-opc.c:335
+msgid "branch operand unaligned"
+msgstr "branch-operand niet uitgelijnd"
+
+#: alpha-opc.c:358 alpha-opc.c:380
+msgid "jump hint unaligned"
+msgstr "jump-hint niet uitgelijnd"
+
+#: arc-dis.c:52
+msgid "Illegal limm reference in last instruction!\n"
+msgstr "Ongeldige limm-verwijzing in de laatste instructie!\n"
+
+#: arm-dis.c:554
+msgid "<illegal precision>"
+msgstr "<ongeldige precisie>"
+
+# Hoort set bij 'name', of bij 'register name'?
+#: arm-dis.c:1162
+#, c-format
+msgid "Unrecognised register name set: %s\n"
+msgstr "Registernaam-verzameling niet herkend: %s\n"
+
+#: arm-dis.c:1169
+#, c-format
+msgid "Unrecognised disassembler option: %s\n"
+msgstr "Disassembler-optie niet herkend: %s\n"
+
+#: arm-dis.c:1343
+msgid ""
+"\n"
+"The following ARM specific disassembler options are supported for use with\n"
+"the -M switch:\n"
+msgstr ""
+"\n"
+"De volgende ARM-specifieke disassembler-opties worden ondersteund voor gebruik\n"
+"via de -M optie:\n"
+
+#: avr-dis.c:117 avr-dis.c:127
+msgid "undefined"
+msgstr "niet gedefinieerd"
+
+#: avr-dis.c:179
+msgid "Internal disassembler error"
+msgstr "Interne fout in de disassembler"
+
+# Vertaling voor constraint? 'begrenzing' misschien?
+#: avr-dis.c:227
+#, c-format
+msgid "unknown constraint `%c'"
+msgstr "onbekende constraint `%c'"
+
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
+#, c-format
+msgid "operand out of range (%ld not between %ld and %ld)"
+msgstr "operand buiten bereik (%ld niet tussen %ld en %ld)"
+
+#: cgen-asm.c:369
+#, c-format
+msgid "operand out of range (%lu not between %lu and %lu)"
+msgstr "operand buiten bereik (%lu niet tussen %lu en %lu)"
+
+#: d30v-dis.c:312
+#, c-format
+msgid "<unknown register %d>"
+msgstr "<onbekend register %d>"
+
+#. Can't happen.
+#: dis-buf.c:57
+#, c-format
+msgid "Unknown error %d\n"
+msgstr "Onbekende fout %d\n"
+
+# Slecht vertaald. Wat is de geijkte vertaling voor 'out of bounds'?
+#: dis-buf.c:62
+#, c-format
+msgid "Address 0x%x is out of bounds.\n"
+msgstr "Adres 0x%x is buiten de perken.\n"
+
+# Betere vertaling voor 'parsing'?
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
+#, c-format
+msgid "Unrecognized field %d while parsing.\n"
+msgstr "Veld %d niet herkend tijdens parsen.\n"
+
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
+msgid "missing mnemonic in syntax string"
+msgstr "mnemonic ontbreekt in syntaxstring"
+
+#. We couldn't parse it.
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
+msgid "unrecognized instruction"
+msgstr "instructie niet herkend"
+
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
+#, c-format
+msgid "syntax error (expected char `%c', found `%c')"
+msgstr "syntaxfout (verwachtte character `%c', maar vond `%c')"
+
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
+#, c-format
+msgid "syntax error (expected char `%c', found end of instruction)"
+msgstr "syntaxfout (verwachtte character `%c', maar vond het einde van de instructie)"
+
+# Betere (niet-Vlaamse) vertaling voor 'junk'?
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
+msgid "junk at end of line"
+msgstr "brol aan einde van lijn"
+
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
+msgid "unrecognized form of instruction"
+msgstr "instructievorm niet herkend"
+
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
+#, c-format
+msgid "bad instruction `%.50s...'"
+msgstr "slechte instructie `%s.50s...'"
+
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
+#, c-format
+msgid "bad instruction `%.50s'"
+msgstr "slechte instructie `%s.50s'"
+
+#. Default text to print if an instruction isn't recognized.
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
+msgid "*unknown*"
+msgstr "*onbekend*"
+
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
+#, c-format
+msgid "Unrecognized field %d while printing insn.\n"
+msgstr "Veld %d niet herkend bij het afdrukken van een insn.\n"
+
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
+#, c-format
+msgid "operand out of range (%ld not between %ld and %lu)"
+msgstr "operand buiten bereik (%ld niet tussen %ld en %lu)"
+
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
+#, c-format
+msgid "operand out of range (%lu not between 0 and %lu)"
+msgstr "operand buiten bereik (%lu niet tussen 0 en %lu)"
+
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
+#, c-format
+msgid "Unrecognized field %d while building insn.\n"
+msgstr "Veld %d niet herkend bij het opbouwen van een insn.\n"
+
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
+#, c-format
+msgid "Unrecognized field %d while decoding insn.\n"
+msgstr "Veld %d niet herkend bij het decoderen van een insn.\n"
+
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
+#, c-format
+msgid "Unrecognized field %d while getting int operand.\n"
+msgstr "Veld %d niet herkend bij het ophalen van een int-operand.\n"
+
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
+#, c-format
+msgid "Unrecognized field %d while getting vma operand.\n"
+msgstr "Veld %d niet herkend bij het ophalen van een vma-operand.\n"
+
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
+#, c-format
+msgid "Unrecognized field %d while setting int operand.\n"
+msgstr "Veld %d niet herkend bij het instellen van een int-operand.\n"
+
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
+#, c-format
+msgid "Unrecognized field %d while setting vma operand.\n"
+msgstr "Veld %d niet herkend bij het instellen van een vma-operand.\n"
+
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "registernummer moet paar zijn"
+
+#: h8300-dis.c:377
+#, c-format
+msgid "Hmmmm 0x%x"
+msgstr "Hmmmm 0x%x"
+
+#: h8300-dis.c:760
+#, c-format
+msgid "Don't understand 0x%x \n"
+msgstr "Ik begrijp 0x%x niet\n"
+
+#: h8500-dis.c:143
+#, c-format
+msgid "can't cope with insert %d\n"
+msgstr "kan niet omgaan met insert %d\n"
+
+#. Couldn't understand anything.
+#: h8500-dis.c:350
+#, c-format
+msgid "%02x\t\t*unknown*"
+msgstr "%02x\t\t*onbekend*"
+
+#: i386-dis.c:1699
+msgid "<internal disassembler error>"
+msgstr "<interne fout in de disassembler>"
+
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Fout: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Let Op: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "meervoudige noot %s wordt niet opgevangen\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "kan invoerbestand ia64-ic.tbl niet vinden\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "kan invoerbestand %s niet vinden\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"het meest recente formaat '%s'\n"
+"lijkt meer beperkend dan '%s'\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "overlappend veld %s->%s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "noot %d wordt overschreven door noot %d (IC:%s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "ik weet niet hoe ik de %%-dependency %s moet opgeven\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "Ik weet niet hoe ik de #-dependency %s moet opgeven\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC:%s [%s] heeft geen eindsymbolen of subklassen\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC:%s heeft geen eindsymbolen of subklassen\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "er zijn geen insns die rechtstreeks naar eindsymbool IC %s [%s] vertaald worden"
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "er zijn geen insns die rechtstreeks naar eindsymbool IC %s vertaald worden\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "klasse %s is gedefinieerd maar wordt niet gebruikt\n"
+
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "Let Op: rsrc %s (%s) heeft geen chks%s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "rsrc %s (%s) heeft geen regs\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "IC noot %d in opcode %s (IC:%s) geeft een conflict met resource %s noot %d\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "IC noot %d voor opcode %s (IC:%s) geeft een conflict met resource %s noot %d\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "opcode %s heeft geen klasse (ops %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "kan niet naar directory \"%s\" gaan, errno = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "keyword W is ongeldig in operand-slot FR"
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "offset(IP) is geen geldige vorm"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "(DP) offset buiten bereik"
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "(SP) offset buiten bereik"
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "ongeldig gebruik van haakjes"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "operand buiten bereik (niet tussen 1 en 255)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: ongeldige opindex."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "Byte-adres vereist. - moet paar zijn."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address gaf een symbool terug terwijl een letterlijke waarde vereist is."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "operand van %operator is geen symbool"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "Poging tot vinden van bit-index van 0"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "onmiddellijke waarde kan geen register zijn"
+
+# of moet 'immediate' behouden worden?
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "onmiddellijke waarde is buiten bereik"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "21-bit offset is buiten bereik"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "`)' ontbreekt"
+
+#: m10200-dis.c:199
+#, c-format
+msgid "unknown\t0x%02x"
+msgstr "onbekend\t0x%02x"
+
+#: m10200-dis.c:339
+#, c-format
+msgid "unknown\t0x%04lx"
+msgstr "onbekend\t0x%04lx"
+
+#: m10300-dis.c:766
+#, c-format
+msgid "unknown\t0x%04x"
+msgstr "onbekend\t0x%04x"
+
+#: m68k-dis.c:429
+#, c-format
+msgid "<internal error in opcode table: %s %s>\n"
+msgstr "<interne fout in opcode-tabel: %s %s>\n"
+
+#: m68k-dis.c:1007
+#, c-format
+msgid "<function code %d>"
+msgstr "<functie-code %d>"
+
+#: m88k-dis.c:746
+#, c-format
+msgid "# <dis error: %08x>"
+msgstr "# <dis fout: %08x>"
+
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# interne fout, onvolledige extension sequence (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# interne fout, extension sequence (+%c) niet gedefinieerd"
+
+#: mips-dis.c:1000
+#, c-format
+msgid "# internal error, undefined modifier(%c)"
+msgstr "# interne fout, modifier(%c) niet gedefinieerd"
+
+#: mips-dis.c:1751
+#, c-format
+msgid "# internal disassembler error, unrecognised modifier (%c)"
+msgstr "# interne fout in disassembler, modifier(%c) niet herkend"
+
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"De volgende MIPS-specifieke disassembler-opties worden ondersteund voor gebruik\n"
+"via de -M optie (meerdere opties moeten door komma's gescheiden worden):\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Druk GPR-namen af volgens de opgegeven ABI.\n"
+" Standaard: gebaseerd op het binair bestand dat\n"
+" gedesassembleerd wordt.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Druk FPR-namen af volgens de opgegeven ABI.\n"
+" Standaard: numeriek.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=ARCH Druk CP0 registernamen af volgens de opgegeven\n"
+" architectuur.\n"
+" Standaard: gebaseerd op het binair bestand dat\n"
+" gedesassembleerd wordt.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=ARCH Druk HWR-namen af volgens de opgegeven architectuur.\n"
+" Standaard: gebaseerd op het binair bestand dat\n"
+" gedesassembleerd wordt.\n"
+"\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Druk GPR- en FPR-namen af volgens de opgegeven ABI.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=ARCH Druk CP0 registernamen en HWR-namen af volgens de\n"
+" opgegeven architectuur.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" Voor de bovenstaande opties zijn dit de ondersteunde waarden voor \"ABI\":\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" Voor de bovenstaande opties zijn dit de ondersteunde waarden voor \"ARCH\":\n"
+" "
+
+#: mmix-dis.c:34
+#, c-format
+msgid "Bad case %d (%s) in %s:%d\n"
+msgstr "Ongeldige case %d (%s) in %s:%d\n"
+
+#: mmix-dis.c:44
+#, c-format
+msgid "Internal: Non-debugged code (test-case missing): %s:%d"
+msgstr "Intern: Code niet gedebugd (test-case ontbreekt): %s:%d"
+
+#: mmix-dis.c:53
+msgid "(unknown)"
+msgstr "(onbekend)"
+
+#: mmix-dis.c:519
+#, c-format
+msgid "*unknown operands type: %d*"
+msgstr "onbekend type operanden: %d"
+
+#. I and Z are output operands and can`t be immediate
+#. * A is an address and we can`t have the address of
+#. * an immediate either. We don't know how much to increase
+#. * aoffsetp by since whatever generated this is broken
+#. * anyway!
+#.
+#: ns32k-dis.c:631
+msgid "$<undefined>"
+msgstr "$<niet gedefinieerd>"
+
+#: ppc-opc.c:781 ppc-opc.c:809
+msgid "invalid conditional option"
+msgstr "ongeldige voorwaardelijke optie"
+
+# Dit kan waarschijnlijk beter
+#: ppc-opc.c:811
+msgid "attempt to set y bit when using + or - modifier"
+msgstr "poging om y bit in te stellen wanneer + of - modifier gebruikt wordt"
+
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "offset is geen veelvoud van 16"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "offset is geen veelvoud van 2"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "offset is groter dan 62"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
+msgid "offset not a multiple of 4"
+msgstr "offset is geen veelvoud van 4"
+
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "offset is groter dan 124"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "offset is geen veelvoud van 8"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "offset is groter dan 248"
+
+#: ppc-opc.c:950
+msgid "offset not between -2048 and 2047"
+msgstr "offset ligt niet tussen -2048 en 2047"
+
+#: ppc-opc.c:973
+msgid "offset not between -8192 and 8191"
+msgstr "offset ligt niet tussen -8192 en 8191"
+
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "ongeldig mfcr-masker wordt genegeerd"
+
+#: ppc-opc.c:1059
+msgid "ignoring least significant bits in branch offset"
+msgstr "minst significante bits worden genegeerd in branch offset"
+
+#: ppc-opc.c:1090 ppc-opc.c:1125
+msgid "illegal bitmask"
+msgstr "illegaal bitmasker"
+
+#: ppc-opc.c:1192
+msgid "value out of range"
+msgstr "waarde buiten bereik"
+
+# of is laadbereik beter?
+#: ppc-opc.c:1262
+msgid "index register in load range"
+msgstr "indexregister in load-bereik"
+
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "bron- en doel-registeroperanden moeten verschillen"
+
+#: ppc-opc.c:1294
+msgid "invalid register operand when updating"
+msgstr "ongeldige register-operand bij update"
+
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "doel-registeroperand moet paar zijn"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "bron-registeroperand moet paar zijn"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
+msgid "unknown"
+msgstr "onbekend"
+
+# Looks like this is a typo (two spaces after the ':')
+#: sparc-dis.c:835
+#, c-format
+msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
+msgstr "Interne fout: sparch-opcode.h is verkeerd: \"%s\", %#.8lx, %#.8lx\n"
+
+#: sparc-dis.c:846
+#, c-format
+msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
+msgstr "Interne fout: sparch-opcode.h is verkeerd: \"%s\", %#.8lx, %#.8lx\n"
+
+#: sparc-dis.c:895
+#, c-format
+msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
+msgstr "Interne fout: sparch-opcode.h is verkeerd: \"%s\" == \"%s\"\n"
+
+#: v850-dis.c:221
+#, c-format
+msgid "unknown operand shift: %x\n"
+msgstr "onbekende operand-shift: %x\n"
+
+#: v850-dis.c:233
+#, c-format
+msgid "unknown pop reg: %d\n"
+msgstr "onbekend pop reg: %d\n"
+
+# Wat is een goede vertaling voor 'displacement'?
+#. The functions used to insert and extract complicated operands.
+#. Note: There is a conspiracy between these functions and
+#. v850_insert_operand() in gas/config/tc-v850.c. Error messages
+#. containing the string 'out of range' will be ignored unless a
+#. specific command line option is given to GAS.
+#: v850-opc.c:68
+msgid "displacement value is not in range and is not aligned"
+msgstr "displacement-waarde is niet in bereik en is niet uitgelijnd"
+
+#: v850-opc.c:69
+msgid "displacement value is out of range"
+msgstr "displacement-waarde is buiten bereik"
+
+#: v850-opc.c:70
+msgid "displacement value is not aligned"
+msgstr "displacement-waarde is niet uitgelijnd"
+
+# of moet 'immediate' behouden worden?
+#: v850-opc.c:72
+msgid "immediate value is out of range"
+msgstr "onmiddellijke waarde is buiten bereik"
+
+# Repeated message..., use 'to an odd...' to merge it
+#: v850-opc.c:83
+msgid "branch value not in range and to odd offset"
+msgstr "branch-waarde niet in bereik en naar onpare offset"
+
+#: v850-opc.c:85 v850-opc.c:117
+msgid "branch value out of range"
+msgstr "branch-waarde buiten bereik"
+
+#: v850-opc.c:88 v850-opc.c:120
+msgid "branch to odd offset"
+msgstr "branch naar onpare offset"
+
+#: v850-opc.c:115
+msgid "branch value not in range and to an odd offset"
+msgstr "branch-waarde niet in bereik en naar een onpare offset"
+
+#: v850-opc.c:346
+msgid "invalid register for stack adjustment"
+msgstr "ongeldig register voor stack-aanpassing"
+
+#: v850-opc.c:370
+msgid "immediate value not in range and not even"
+msgstr "onmiddellijke waarde niet in bereik en niet paar"
+
+#: v850-opc.c:375
+msgid "immediate value must be even"
+msgstr "onmiddellijke waarde moet paar zijn"
+
+# of is laadbereik beter?
+#: xstormy16-asm.c:76
+msgid "Bad register in preincrement"
+msgstr "Ongeldig register in preincrement"
+
+#: xstormy16-asm.c:81
+msgid "Bad register in postincrement"
+msgstr "Ongeldig register in postincrement"
+
+# of is laadbereik beter?
+#: xstormy16-asm.c:83
+msgid "Bad register name"
+msgstr "Ongeldige registernaam"
+
+#: xstormy16-asm.c:87
+msgid "Label conflicts with register name"
+msgstr "Label geeft conflict met registernaam"
+
+#: xstormy16-asm.c:91
+msgid "Label conflicts with `Rx'"
+msgstr "Label geeft conflict met `Rx'"
+
+#: xstormy16-asm.c:93
+msgid "Bad immediate expression"
+msgstr "Slechte onmiddelijke expressie"
+
+# immediate what? 'value' assumed
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "Geen relocatie voor kleine onmiddelijke waarde"
+
+#: xstormy16-asm.c:125
+msgid "Small operand was not an immediate number"
+msgstr "Kleine operand was geen onmiddellijk getal"
+
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "Operand is geen symbool"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Syntaxfout: Geen sluithaakje"
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index ee61ca6..15fdff0 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2003-06-05 11:34+0100\n"
+"POT-Creation-Date: 2003-07-17 14:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -228,7 +228,7 @@ msgstr ""
msgid "%02x\t\t*unknown*"
msgstr ""
-#: i386-dis.c:1650
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr ""
@@ -417,7 +417,7 @@ msgstr ""
msgid "unknown\t0x%04lx"
msgstr ""
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr ""
@@ -437,47 +437,47 @@ msgstr ""
msgid "# <dis error: %08x>"
msgstr ""
-#: mips-dis.c:699
+#: mips-dis.c:703
msgid "# internal error, incomplete extension sequence (+)"
msgstr ""
-#: mips-dis.c:742
+#: mips-dis.c:746
#, c-format
msgid "# internal error, undefined extension sequence (+%c)"
msgstr ""
-#: mips-dis.c:1000
+#: mips-dis.c:1004
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr ""
-#: mips-dis.c:1751
+#: mips-dis.c:1755
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr ""
-#: mips-dis.c:1763
+#: mips-dis.c:1767
msgid ""
"\n"
"The following MIPS specific disassembler options are supported for use\n"
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: mips-dis.c:1767
+#: mips-dis.c:1771
msgid ""
"\n"
" gpr-names=ABI Print GPR names according to specified ABI.\n"
" Default: based on binary being disassembled.\n"
msgstr ""
-#: mips-dis.c:1771
+#: mips-dis.c:1775
msgid ""
"\n"
" fpr-names=ABI Print FPR names according to specified ABI.\n"
" Default: numeric.\n"
msgstr ""
-#: mips-dis.c:1775
+#: mips-dis.c:1779
msgid ""
"\n"
" cp0-names=ARCH Print CP0 register names according to\n"
@@ -485,7 +485,7 @@ msgid ""
" Default: based on binary being disassembled.\n"
msgstr ""
-#: mips-dis.c:1780
+#: mips-dis.c:1784
msgid ""
"\n"
" hwr-names=ARCH Print HWR names according to specified \n"
@@ -493,32 +493,32 @@ msgid ""
" Default: based on binary being disassembled.\n"
msgstr ""
-#: mips-dis.c:1785
+#: mips-dis.c:1789
msgid ""
"\n"
" reg-names=ABI Print GPR and FPR names according to\n"
" specified ABI.\n"
msgstr ""
-#: mips-dis.c:1789
+#: mips-dis.c:1793
msgid ""
"\n"
" reg-names=ARCH Print CP0 register and HWR names according to\n"
" specified architecture.\n"
msgstr ""
-#: mips-dis.c:1793
+#: mips-dis.c:1797
msgid ""
"\n"
" For the options above, the following values are supported for \"ABI\":\n"
" "
msgstr ""
-#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+#: mips-dis.c:1802 mips-dis.c:1810 mips-dis.c:1812
msgid "\n"
msgstr ""
-#: mips-dis.c:1800
+#: mips-dis.c:1804
msgid ""
"\n"
" For the options above, The following values are supported for \"ARCH\":\n"
@@ -554,66 +554,86 @@ msgstr ""
msgid "$<undefined>"
msgstr ""
-#: ppc-opc.c:818 ppc-opc.c:851
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr ""
-#: ppc-opc.c:853
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr ""
-#: ppc-opc.c:881
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr ""
+
+#: ppc-opc.c:860
msgid "offset not a multiple of 2"
msgstr ""
-#: ppc-opc.c:883
+#: ppc-opc.c:862
msgid "offset greater than 62"
msgstr ""
-#: ppc-opc.c:904 ppc-opc.c:954 ppc-opc.c:1006
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr ""
-#: ppc-opc.c:906
+#: ppc-opc.c:883
msgid "offset greater than 124"
msgstr ""
-#: ppc-opc.c:927
+#: ppc-opc.c:902
msgid "offset not a multiple of 8"
msgstr ""
-#: ppc-opc.c:929
+#: ppc-opc.c:904
msgid "offset greater than 248"
msgstr ""
-#: ppc-opc.c:979
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr ""
-#: ppc-opc.c:1004
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr ""
-#: ppc-opc.c:1032
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr ""
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr ""
-#: ppc-opc.c:1066 ppc-opc.c:1103
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr ""
-#: ppc-opc.c:1176
+#: ppc-opc.c:1192
msgid "value out of range"
msgstr ""
-#: ppc-opc.c:1252
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr ""
-#: ppc-opc.c:1268
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr ""
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr ""
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr ""
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr ""
+
#. Mark as non-valid instruction.
#: sparc-dis.c:760
msgid "unknown"
diff --git a/opcodes/po/ro.po b/opcodes/po/ro.po
index 72077ed..ca0b870 100644
--- a/opcodes/po/ro.po
+++ b/opcodes/po/ro.po
@@ -1,18 +1,17 @@
-# Mesajele în limba român? pentru pachetul opcodes
+# Mesajele în limba românã pentru pachetul opcodes
# Copyright (C) 2003 Free Software Foundation, Inc.
# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2003-04-28 08:32+0300\n"
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-07-21 16:53+0300\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: alpha-opc.c:335
msgid "branch operand unaligned"
@@ -20,27 +19,27 @@ msgstr "ramurã operand nealiniatã"
#: alpha-opc.c:358 alpha-opc.c:380
msgid "jump hint unaligned"
-msgstr "sugestie sãriturã(jump) nealiniatã"
+msgstr "sugestie salt(jump) nealiniat"
#: arc-dis.c:52
msgid "Illegal limm reference in last instruction!\n"
msgstr "referinþã limm ilegalã în ultima instrucþiune!\n"
-#: arm-dis.c:507
+#: arm-dis.c:554
msgid "<illegal precision>"
msgstr "<precizie ilegalã>"
-#: arm-dis.c:1010
+#: arm-dis.c:1162
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Setare nume registru necunoscutã: %s\n"
-#: arm-dis.c:1017
+#: arm-dis.c:1169
#, c-format
msgid "Unrecognised disassembler option: %s\n"
-msgstr "Opþiune dezasamblor necunoscutã: %s\n"
+msgstr "Opþiune dezasamblor necunsocutã: %s\n"
-#: arm-dis.c:1191
+#: arm-dis.c:1343
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -50,26 +49,26 @@ msgstr ""
"Opþiunile ARM de dezasamblor specifice urmãtoare sunt permise cu folosirea\n"
"switch-ului -M:\n"
-#: avr-dis.c:118 avr-dis.c:128
+#: avr-dis.c:117 avr-dis.c:127
msgid "undefined"
msgstr "nedefinit(ã)"
-#: avr-dis.c:180
+#: avr-dis.c:179
msgid "Internal disassembler error"
msgstr "Eroare internã de dezasamblor"
-#: avr-dis.c:228
+#: avr-dis.c:227
#, c-format
msgid "unknown constraint `%c'"
msgstr "constrângere necunoscutã `%c'"
-#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195
-#: openrisc-ibld.c:195 xstormy16-ibld.c:195
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "operand în afara intervalului (%ld nu este între %ld ºi %ld)"
-#: cgen-asm.c:367
+#: cgen-asm.c:369
#, c-format
msgid "operand out of range (%lu not between %lu and %lu)"
msgstr "operand în afara intervalului (%lu nu este între %lu ºi %lu)"
@@ -88,131 +87,137 @@ msgstr "Eroare necunoscutã %d\n"
#: dis-buf.c:62
#, c-format
msgid "Address 0x%x is out of bounds.\n"
-msgstr "Adresa 0x%x este în afara limitelor (out of bounds).\n"
+msgstr "Adresa 0x%x este peste limite (out of bounds).\n"
-#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244
-#: xstormy16-asm.c:231
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Câmp necunoscut %d în analizã(parsing).\n"
-#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294
-#: xstormy16-asm.c:281
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
msgid "missing mnemonic in syntax string"
msgstr "mnemonicã lipsã în sintaxã"
#. We couldn't parse it.
-#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781
-#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515
-#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434
-#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417
-#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
msgid "unrecognized instruction"
msgstr "instrucþiune necunoscutã"
-#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477
-#: xstormy16-asm.c:464
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "eroare de sintaxã ( se aºtepta %c', s-a primit `%c')"
-#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487
-#: xstormy16-asm.c:474
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "eroare de sintaxã (s-a aºteptat char `%c' s-a primit sfârºit de instrucþiune)"
-#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515
-#: xstormy16-asm.c:502
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
msgid "junk at end of line"
msgstr "resturi(junk) la sfârºit de linie"
-#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622
-#: xstormy16-asm.c:609
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
msgid "unrecognized form of instruction"
msgstr "formã de instrucþiune necunoscutã"
-#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634
-#: xstormy16-asm.c:621
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
#, c-format
msgid "bad instruction `%.50s...'"
-msgstr "instrucþiune greºitã `%.50s...'"
+msgstr "instrucþiune greºitã ``%.50s...'"
-#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637
-#: xstormy16-asm.c:624
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s'"
msgstr "instrucþiune greºitã `%.50s'"
#. Default text to print if an instruction isn't recognized.
-#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
-#: xstormy16-dis.c:39
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr "*necunoscut(ã)*"
-#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136
-#: xstormy16-dis.c:169
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
-msgstr "Câmp necunoscut %d la tipãrirea insn.\n"
+msgstr "Câmp necunoscut %d în tipãrire insn.\n"
-#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
-#: xstormy16-ibld.c:166
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "operand în afara limitelor (%ld nu este între %ld ºi %lu)"
-#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
-#: xstormy16-ibld.c:179
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "operand în afara limitelor (%lu nu este între 0 ºi %lu)"
-#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633
-#: xstormy16-ibld.c:678
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Câmp necunoscut %d în construire(building) insn.\n"
-#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735
-#: xstormy16-ibld.c:826
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Câmp necunoscut %d în decodare insn.\n"
-#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815
-#: xstormy16-ibld.c:939
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "Câmp necunoscut %d în preluare operand int.\n"
-#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875
-#: xstormy16-ibld.c:1032
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "Câmp necunoscut %d în preluare operand vma.\n"
-#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944
-#: xstormy16-ibld.c:1134
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "Câmp necunoscut %d în setare operand int.\n"
-#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001
-#: xstormy16-ibld.c:1224
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "Câmp necunoscut %d în setare operand vma.\n"
-#: h8300-dis.c:385
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "numãrul registrului trebuie sã fie par"
+
+#: h8300-dis.c:377
#, c-format
-msgid "Hmmmm %x"
-msgstr "Hmmmm %x"
+msgid "Hmmmm 0x%x"
+msgstr "Hmmmm 0x%x"
-#: h8300-dis.c:396
+#: h8300-dis.c:760
#, c-format
-msgid "Don't understand %x \n"
-msgstr "Nu înþeleg %x \n"
+msgid "Don't understand 0x%x \n"
+msgstr "Nu înþeleg 0x%x \n"
#: h8500-dis.c:143
#, c-format
@@ -225,10 +230,188 @@ msgstr "nu fac faþã la inserarea %d\n"
msgid "%02x\t\t*unknown*"
msgstr "%02x\t\t*necunoscut(ã)*"
-#: i386-dis.c:1649
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr "<eroare internã de dezasamblor>"
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Eroare: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Avertisment: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "notele multiple %s nerezolvabile(handled)\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "nu pot gãsi ia64-ic.tbl pentru citire\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "nu pot gãsi %s pentru citire\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"cel mai recent format %s \n"
+"pare mai restrictiv decât '%s'\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "câmp suprapus %s -> %s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "suprascriere nota %d cu nota %d (IC:%s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "nu ºtiu cum se specificã dependinþele %% %s\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "nu ºtiu cum se specificã dependinþele # %s\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC:%s [%s] nu are terminale sau sublclase\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC:%s nu are terminale sau subclase\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "nici un insns mapat direct la terminalul IC %s [%s]"
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "nici un insns mapat direct la terminalul IC %s\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "clasa %s este definitã dar nefolositã\n"
+
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "Avertisment: rsrc %s (%s) nu are chks%s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "rsrc %s (%s) nu areo regs\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "Nota IC %d din opcode %s (IC:%s) e în conflict cu resursa %s nota %d\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "Nota IC %d pentru opcode %s (IC:%s) e în conflict cu resursa %s nota %d\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "opcode %s nu are clasã (ops %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "nu am putut schimba directorul în \"%s\", errno = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "Cuvânt cheie W invalidv în slotul operand FR."
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "offsetul(IP) nu are formã validã"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "(DP) offset în afara intervalului"
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "(SP) offset în afara intervalului"
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "Folosire ilegalã de paranteze"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "operand în afara limitelor (nu este între 0 ºi 255)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: opindex invalid."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "Se necesitã adresã byte. -trebuie sã fie parã (even)."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address a returnat un simbol. Se necesitã literal."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "%operator operandulk nu este un simbol"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "Se încearcã gãsirea bitului index de 0"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "valoarea directã(immediate) nu poate fi înregistratã"
+
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "valoare directã(immediate) în afara intervalului"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "offsetul 21 bit în afara intervalului"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "`)' lipsã"
+
#: m10200-dis.c:199
#, c-format
msgid "unknown\t0x%02x"
@@ -239,7 +422,7 @@ msgstr "necunoscut(ã)\t0x%02x"
msgid "unknown\t0x%04lx"
msgstr "necunoscut(ã)\t0x%04lx"
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr "necunoscut(ã)\t0x%04x"
@@ -254,21 +437,128 @@ msgstr "<eroare internã în tabel opcode: %s %s>\n"
msgid "<function code %d>"
msgstr "<cod funcþie %d>"
-#: m88k-dis.c:255
+#: m88k-dis.c:746
#, c-format
msgid "# <dis error: %08x>"
msgstr "# <eroare dez: %08x>"
-#: mips-dis.c:337
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# eroare internã, secvenþã incompletã de extensie (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# eroare internã, secvenþã de extensie nedefinitã (+%c)"
+
+#: mips-dis.c:1000
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr "# eroare internã, modificator nedefinit(%c)"
-#: mips-dis.c:1209
+#: mips-dis.c:1751
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr "# eroare internã de dezasamblor, modificator necunoscut (%c)"
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"Opþiunile MIPS de dezasamblor specifice urmãtoare sunt permise cu folosirea\n"
+"switch-ului -M (opþiunile multiple trebuie separate prin virgulã:\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Afiºeazã numele GPR potrivit ABI specificat.\n"
+" Implicit: bazat pe binar ce este dezasamblat.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Afiºeazã numele FPR potrivit ABI specificat.\n"
+" Implicit: numeric.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=ARCH Afiºeazã numele de regiºtri CP0 potrivit\n"
+" arhitecturii specifice.\n"
+" Implicit: bazat pe binar în dezasamblare.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=ARCH Afiºeazã numele HWR potrivit arhitecturii \n"
+"\t\t\t specifice.\n"
+" Implicit: bazat pe binar în dezasamblare.\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Afiºeazã numele GPR ºi FPR potriviti\n"
+" ABI specificat.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=ARCH Afiºeazã regiºtrii CP0 ºi numele HWR potrivit\n"
+" arhitecturii specifice.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" Pentru opþiunile de mai sus, urmatoarele valori sunt suportate pentru \"ABI\":\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" Pentru opþiunile de mai sus, urmatoarele valori sunt suportate pentru \"ARCH\":\n"
+" "
+
#: mmix-dis.c:34
#, c-format
msgid "Bad case %d (%s) in %s:%d\n"
@@ -277,13 +567,13 @@ msgstr "Caz greºit %d (%s) in %s: %d\n"
#: mmix-dis.c:44
#, c-format
msgid "Internal: Non-debugged code (test-case missing): %s:%d"
-msgstr "Intern: cod ne-depanat (caz test lipsã) %s:%d"
+msgstr "Intern: cod non debugged (caz test lipsã) %s:%d"
#: mmix-dis.c:53
msgid "(unknown)"
msgstr "(necunoscut)"
-#: mmix-dis.c:517
+#: mmix-dis.c:519
#, c-format
msgid "*unknown operands type: %d*"
msgstr "*tip necunoscut de operanzi: %d*"
@@ -294,76 +584,116 @@ msgstr "*tip necunoscut de operanzi: %d*"
#. * aoffsetp by since whatever generated this is broken
#. * anyway!
#.
-#: ns32k-dis.c:628
+#: ns32k-dis.c:631
msgid "$<undefined>"
msgstr "$<nedefinit>"
-#: ppc-opc.c:777 ppc-opc.c:810
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr "opþiune condiþionalã invalidã"
-#: ppc-opc.c:812
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr "se încearcã setarea bitului y în folosirea modificatorilor + sau -"
-#: ppc-opc.c:844 ppc-opc.c:896
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "offsetul nu este multiplu de 16"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "offsetul nu este multiplu de 2"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "offset mai mare decât 62"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr "offsetul nu este multiplu de 4"
-#: ppc-opc.c:869
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "offset mai mare decât 124"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "offsetul nu este multiplu de 8"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "offset mai mare de 248"
+
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr "offsetul nu este între -2048 ºi 2047"
-#: ppc-opc.c:894
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr "offsetul nu este între -8192 ºi 8191"
-#: ppc-opc.c:922
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "se ignorã mascã mfcr invalidã"
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr "se ignorã cei mai puþin semnificanþi biþi în offsetul ramurii(branch)"
-#: ppc-opc.c:956 ppc-opc.c:993
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr "bitmask ilegal"
-#: ppc-opc.c:1066
+#: ppc-opc.c:1192
msgid "value out of range"
msgstr "valoare în afara intervalului"
-#: ppc-opc.c:1142
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr "registru index în interval de încãrcare"
-#: ppc-opc.c:1158
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "operanzii regiºtri sursã ºi destinaþie trebuie sã fie diferiþi"
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr "registru de operand invalid în updatare"
-#. Mark as non-valid instruction
-#: sparc-dis.c:750
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "operandul registru destinaþie trebuie sã fie par"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "operandul registru sursã trebuie sã fie par"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
msgid "unknown"
msgstr "necunoscut(ã)"
-#: sparc-dis.c:825
+#: sparc-dis.c:835
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Eroare internã: opcode.h sparc greºit: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:836
+#: sparc-dis.c:846
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Eroare internã: opcode.h sparc greºit: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:885
+#: sparc-dis.c:895
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr "Eroare internã: opcode.h sparc greºit: \"%s\" == \"%s\"\n"
-#: v850-dis.c:224
+#: v850-dis.c:221
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "schimbare(shift) de oberand necunoscutã: %x\n"
-#: v850-dis.c:236
+#: v850-dis.c:233
#, c-format
msgid "unknown pop reg: %d\n"
msgstr "pop reg necunoscut: %d\n"
@@ -379,7 +709,7 @@ msgstr "valoarea deplasãrii în afara intervalului ºi nealiniatã"
#: v850-opc.c:69
msgid "displacement value is out of range"
-msgstr "valoare deplasare în afara intervalului"
+msgstr "deplasare"
#: v850-opc.c:70
msgid "displacement value is not aligned"
@@ -417,30 +747,42 @@ msgstr "valoare directã(immediate) în afara intervalului ºi imparã"
msgid "immediate value must be even"
msgstr "valoarea directã(immediate) trebuie sã fie parã"
-#: xstormy16-asm.c:74
+#: xstormy16-asm.c:76
msgid "Bad register in preincrement"
msgstr "Registru greºit în preincrementare"
-#: xstormy16-asm.c:79
+#: xstormy16-asm.c:81
msgid "Bad register in postincrement"
msgstr "Registru greºit în postincrementare"
-#: xstormy16-asm.c:81
+#: xstormy16-asm.c:83
msgid "Bad register name"
msgstr "Nume registru greºit"
-#: xstormy16-asm.c:85
+#: xstormy16-asm.c:87
msgid "Label conflicts with register name"
msgstr "Eticheta(label) se aflã în conflict cu numele de registru"
-#: xstormy16-asm.c:89
+#: xstormy16-asm.c:91
msgid "Label conflicts with `Rx'"
msgstr "Eticheta(label) se aflã în conflict cu `Rx'"
-#: xstormy16-asm.c:91
+#: xstormy16-asm.c:93
msgid "Bad immediate expression"
msgstr "Expresie directã(immediate) greºitã"
-#: xstormy16-asm.c:120
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "Nici o relocare pentru mai mic directã(immediate)"
+
+#: xstormy16-asm.c:125
msgid "Small operand was not an immediate number"
msgstr "Operandul redus nu a fost un numãr direct(immediate)"
+
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "Operandul nu este simbol"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Eroare de sintaxã:Nu existã ')'"
diff --git a/opcodes/po/sv.po b/opcodes/po/sv.po
index 56190f8..ae55351 100644
--- a/opcodes/po/sv.po
+++ b/opcodes/po/sv.po
@@ -1,12 +1,12 @@
# Swedish messages for opcodes.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-# Christian Rose <menthos@menthos.com>, 2001, 2002.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-08-03 13:19+0200\n"
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-07-16 14:36+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
@@ -25,21 +25,21 @@ msgstr "hopptipset ligger inte på jämn gräns"
msgid "Illegal limm reference in last instruction!\n"
msgstr "Otillåten limm-referens i sista instruktionen!\n"
-#: arm-dis.c:507
+#: arm-dis.c:554
msgid "<illegal precision>"
msgstr "<otillåten precision>"
-#: arm-dis.c:1010
+#: arm-dis.c:1162
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Okänt registernamn är angivet: %s\n"
-#: arm-dis.c:1017
+#: arm-dis.c:1169
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Okänt disassembleralternativ: %s\n"
-#: arm-dis.c:1191
+#: arm-dis.c:1343
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -49,26 +49,26 @@ msgstr ""
"Följande ARM-specifika disassembleralternativ stöds för användning\n"
"tillsammans med flaggan -M:\n"
-#: avr-dis.c:118 avr-dis.c:128
+#: avr-dis.c:117 avr-dis.c:127
msgid "undefined"
msgstr "odefinierad"
-#: avr-dis.c:180
+#: avr-dis.c:179
msgid "Internal disassembler error"
msgstr "Internt fel i disassembleraren"
-#: avr-dis.c:228
+#: avr-dis.c:227
#, c-format
msgid "unknown constraint `%c'"
msgstr "okänd begränsning \"%c\""
-#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195
-#: openrisc-ibld.c:195 xstormy16-ibld.c:195
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %ld)"
-#: cgen-asm.c:367
+#: cgen-asm.c:369
#, c-format
msgid "operand out of range (%lu not between %lu and %lu)"
msgstr "operanden är utanför intervallet (%lu är inte mellan %lu och %lu)"
@@ -89,129 +89,135 @@ msgstr "Okänt fel %d\n"
msgid "Address 0x%x is out of bounds.\n"
msgstr "Adressen 0x%x ligger utanför tillåtna gränser.\n"
-#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244
-#: xstormy16-asm.c:231
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Okänt fält %d vid tolkning.\n"
-#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294
-#: xstormy16-asm.c:281
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
msgid "missing mnemonic in syntax string"
msgstr "instruktion saknas i syntaxsträng"
#. We couldn't parse it.
-#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781
-#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515
-#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434
-#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417
-#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
msgid "unrecognized instruction"
msgstr "okänd instruktion"
-#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477
-#: xstormy16-asm.c:464
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade \"%c\")"
-#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487
-#: xstormy16-asm.c:474
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade slutet på instruktion)"
-#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515
-#: xstormy16-asm.c:502
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
msgid "junk at end of line"
msgstr "skräp vid slutet på raden"
-#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622
-#: xstormy16-asm.c:609
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
msgid "unrecognized form of instruction"
msgstr "okänd instruktionsform"
-#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634
-#: xstormy16-asm.c:621
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "felaktig instruktion \"%.50s...\""
-#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637
-#: xstormy16-asm.c:624
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s'"
msgstr "felaktig instruktion \"%.50s\""
#. Default text to print if an instruction isn't recognized.
-#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
-#: xstormy16-dis.c:39
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr "*okänd*"
-#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136
-#: xstormy16-dis.c:169
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "Okänt fält %d vid utskrift av instruktion.\n"
-#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
-#: xstormy16-ibld.c:166
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %lu)"
-#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
-#: xstormy16-ibld.c:179
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "operanden utanför intervallet (%lu inte mellan 0 och %lu)"
-#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633
-#: xstormy16-ibld.c:678
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Okänt fält %d vid konstruktion av instruktion.\n"
-#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735
-#: xstormy16-ibld.c:826
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Okänt fält %d vid avkodning av instruktion.\n"
-#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815
-#: xstormy16-ibld.c:939
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "Okänt fält %d vid hämtning av heltalsoperand.\n"
-#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875
-#: xstormy16-ibld.c:1032
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "Okänt fält %d vid hämtning av vma-operand.\n"
-#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944
-#: xstormy16-ibld.c:1134
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "Okänt fält %d vid inställning av heltalsoperand.\n"
-#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001
-#: xstormy16-ibld.c:1224
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "Okänt fält %d vid inställning av vma-operand.\n"
-#: h8300-dis.c:385
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "registernumret måste vara jämnt"
+
+#: h8300-dis.c:377
#, c-format
-msgid "Hmmmm %x"
-msgstr "Hmmmm %x"
+msgid "Hmmmm 0x%x"
+msgstr "Hmmmm 0x%x"
-#: h8300-dis.c:396
+#: h8300-dis.c:760
#, c-format
-msgid "Don't understand %x \n"
-msgstr "Förstår inte %x \n"
+msgid "Don't understand 0x%x \n"
+msgstr "Förstår inte 0x%x \n"
#: h8500-dis.c:143
#, c-format
@@ -224,10 +230,193 @@ msgstr "kan inte sätta in %d\n"
msgid "%02x\t\t*unknown*"
msgstr "%02x\t\t*okänd*"
-#: i386-dis.c:1649
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr "<internt fel i disassembleraren>"
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Fel: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Varning: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "multipel anteckning %s hanteras inte\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "kan inte hitta ia64-ic.tbl för läsning\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "kan inte hitta %s för läsning\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"allra senaste formatet \"%s\"\n"
+"verkar mer restriktivt än \"%s\"\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "överlappande fält %s->%s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "skriver över anteckning %d med anteckning %d (IC:%s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "vet inte hur %%-beroende %s ska anges\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "Vet inte hur #-beroende %s ska anges\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC:%s [%s] har inga terminaler eller underklasser\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC:%s har inga terminaler eller underklasser\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "inga instruktioner mappade direkt till terminal-IC %s [%s]"
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "inga instruktioner mappade direkt till terminal-IC %s\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "klassen %s är definierad men inte använd\n"
+
+# Misstänkt pluralhack!
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "Varning: rsrc %s (%s) har inga kontroller%s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "rsrc %s (%s) har inga register\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr ""
+"IC-anteckning %d i instruktion %s (IC:%s) står i konflikt med resurs %s\n"
+"anteckning %d\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr ""
+"IC-anteckning %d för instruktion %s (IC:%s) står i konflikt med resurs %s\n"
+"anteckning %d\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "instruktion %s har ingen klass (operationer %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "kan inte byta katalog till \"%s\", felnummer = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "W-nyckelord ogiltigt i FR-operandlucka."
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "avståndet(IP) är inte en giltig form"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "(DP) avståndet är utanför intervallet."
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "(SP) avståndet är utanför intervallet."
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "otillåten användning av parenteser"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "operanden utanför intervallet (inte mellan 1 och 255)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: ogiltigt opindex."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "Byteadress krävs - måste vara jämn."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address returnerade en symbol. Literal krävs."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "%operator-operand är inte en symbol"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "Försök att hitta 0-bitindex"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "omedelbart värde kan inte vara register"
+
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "omedelbart värde är utanför intervallet"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "21-bitars avstånd utanför intervallet"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "\")\" saknas"
+
#: m10200-dis.c:199
#, c-format
msgid "unknown\t0x%02x"
@@ -238,7 +427,7 @@ msgstr "okänd\t0x%02x"
msgid "unknown\t0x%04lx"
msgstr "okänd\t0x%04lx"
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr "okänd\t0x%04x"
@@ -253,21 +442,131 @@ msgstr "<internt fel i instruktionstabellen: %s %s>\n"
msgid "<function code %d>"
msgstr "<funktionskod %d>"
-#: m88k-dis.c:255
+#: m88k-dis.c:746
#, c-format
msgid "# <dis error: %08x>"
msgstr "# <disassemblerarfel: %08x>"
-#: mips-dis.c:337
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# internt fel, ofullständig ändelsesekvens (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# internt fel, odefinierad ändelsesekvens (+%c)"
+
+#: mips-dis.c:1000
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr "# internt fel, okänd modifierare(%c)"
-#: mips-dis.c:1209
+#: mips-dis.c:1751
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr "# internt disassemblerfel, okänd modifierare (%c)"
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"Följande MIPS-specifika disassembleralternativ stöds för användning\n"
+"tillsammans med flaggan -M (flera alternativ kan skiljas åt med komman):\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Skriv ut GPR-namn enligt det angivna ABI:t.\n"
+" Standard: baserat på den binärfil som\n"
+" disassembleras.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Skriv ut FPR-namn enligt det angivna ABI:t.\n"
+" Standard: numeriskt.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=ARK Skriv ut CP0-registernamn enligt den angivna\n"
+" arkitekturen.\n"
+" Standard: baserat på den binärfil som\n"
+" disassembleras.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=ARK Skriv ut HWR-namn enligt den angivna \n"
+"\t\t\t arkitekturen.\n"
+" Standard: baserat på den binärfil som\n"
+" disassembleras.\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Skriv ut GPR- och FPR-namn enligt det angivna\n"
+" ABI:t.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=ARK Skriv ut CP0-register med HWR-namn enligt\n"
+" angiven arkitektur.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" För flaggorna ovan stöds följande värden på \"ABI\":\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" För flaggorna ovan stöds följande värden på \"ARK\":\n"
+" "
+
#: mmix-dis.c:34
#, c-format
msgid "Bad case %d (%s) in %s:%d\n"
@@ -282,7 +581,7 @@ msgstr "Internt: Ej felsökt kod (testfall saknas): %s:%d"
msgid "(unknown)"
msgstr "(okänd)"
-#: mmix-dis.c:517
+#: mmix-dis.c:519
#, c-format
msgid "*unknown operands type: %d*"
msgstr "*okänd operandtyp: %d*"
@@ -293,76 +592,116 @@ msgstr "*okänd operandtyp: %d*"
#. * aoffsetp by since whatever generated this is broken
#. * anyway!
#.
-#: ns32k-dis.c:628
+#: ns32k-dis.c:631
msgid "$<undefined>"
msgstr "$<odefinierad>"
-#: ppc-opc.c:777 ppc-opc.c:810
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr "ogiltig villkorlig flagga"
-#: ppc-opc.c:812
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr "försök att ställa in y-biten då modifieraren + eller - användes"
-#: ppc-opc.c:844 ppc-opc.c:896
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "avståndet är inte en multipel av 16"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "avståndet är inte en multipel av 2"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "avståndet är större än 62"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr "avståndet är inte en multipel av 4"
-#: ppc-opc.c:869
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "avståndet är större än 124"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "avståndet är inte en multipel av 8"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "avståndet är större än 248"
+
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr "avståndet är inte mellan -2048 och 2047"
-#: ppc-opc.c:894
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr "avståndet är inte mellan -8192 och 8191"
-#: ppc-opc.c:922
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "ignorerar ogiltig mfcr-mask"
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr "ignorerar minst signifikanta bitarna i grenavstånd"
-#: ppc-opc.c:956 ppc-opc.c:993
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr "otillåten bitmask"
-#: ppc-opc.c:1066
+#: ppc-opc.c:1192
msgid "value out of range"
msgstr "värdet är utanför intervallet"
-#: ppc-opc.c:1142
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr "indexregistret är i inläsningsintervallet"
-#: ppc-opc.c:1158
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "käll- och målregisteroperander måste vara olika"
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr "ogiltig registeroperand vid uppdatering"
-#. Mark as non-valid instruction
-#: sparc-dis.c:750
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "målregisteroperand måste vara jämn"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "källregisteroperand måste vara jämn"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
msgid "unknown"
msgstr "okänd"
-#: sparc-dis.c:825
+#: sparc-dis.c:835
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Internt fel: felaktig sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:836
+#: sparc-dis.c:846
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "Internt fel: felaktig sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:885
+#: sparc-dis.c:895
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr "Internt fel: felaktig sparc-opcode.h: \"%s\" == \"%s\"\n"
-#: v850-dis.c:224
+#: v850-dis.c:221
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "okänt operandskifte: %x\n"
-#: v850-dis.c:236
+#: v850-dis.c:233
#, c-format
msgid "unknown pop reg: %d\n"
msgstr "okänt pop-register: %d\n"
@@ -416,33 +755,54 @@ msgstr "omedelbara värdet är inte inom intervallet och inte jämnt"
msgid "immediate value must be even"
msgstr "omedelbara värdet måste vara jämnt"
-#: xstormy16-asm.c:74
+#: xstormy16-asm.c:76
msgid "Bad register in preincrement"
msgstr "Felaktigt register i förhandsökning"
-#: xstormy16-asm.c:79
+#: xstormy16-asm.c:81
msgid "Bad register in postincrement"
msgstr "Felaktigt register i efterhandsökning"
-#: xstormy16-asm.c:81
+#: xstormy16-asm.c:83
msgid "Bad register name"
msgstr "Felaktigt registernamn"
-#: xstormy16-asm.c:85
+#: xstormy16-asm.c:87
msgid "Label conflicts with register name"
-msgstr "Etiketten är i konflikt med registernamn"
+msgstr "Etiketten står i konflikt med registernamn"
-#: xstormy16-asm.c:89
+#: xstormy16-asm.c:91
msgid "Label conflicts with `Rx'"
-msgstr "Etiketten är i konflikt med \"Rx\""
+msgstr "Etiketten står i konflikt med \"Rx\""
-#: xstormy16-asm.c:91
+#: xstormy16-asm.c:93
msgid "Bad immediate expression"
msgstr "Felaktigt omedelbart uttryck"
-#: xstormy16-asm.c:120
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "Ingen omlokalisering för litet omedelbart tal"
+
+#: xstormy16-asm.c:125
msgid "Small operand was not an immediate number"
msgstr "Liten operand var inte ett omedelbart tal"
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "Operanden är inte en symbol"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Syntaxfel: Inget eftersläpande \")\""
+
+#~ msgid "Hmmmm %x"
+#~ msgstr "Hmmmm %x"
+
+#~ msgid "Don't understand %x \n"
+#~ msgstr "Förstår inte %x \n"
+
+#~ msgid "No relocation for small immediate number"
+#~ msgstr "Ingen omlokalisering för litet omedelbart tal"
+
#~ msgid "unrecognized keyword/register name"
#~ msgstr "okänt namn på nyckelord/register"
diff --git a/opcodes/po/tr.po b/opcodes/po/tr.po
index 75ef049..f01f58d 100644
--- a/opcodes/po/tr.po
+++ b/opcodes/po/tr.po
@@ -1,18 +1,18 @@
-# Binutils Opcode Turkish Translation
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Deniz Akkus Kanca <deniz@arayan.com>, 2001.
+# translation of opcodes-2.14rel030712.tr.po to Turkish
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Deniz Akkus Kanca <deniz@arayan.com>, 2001,2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2002-07-24 11:26EET\n"
+"Project-Id-Version: opcodes 2.14rel030712\n"
+"POT-Creation-Date: 2003-07-11 13:56+0930\n"
+"PO-Revision-Date: 2003-07-13 22:58+0300\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
+"X-Generator: KBabel 1.0\n"
#: alpha-opc.c:335
msgid "branch operand unaligned"
@@ -26,21 +26,21 @@ msgstr "atlama işareti hizalı değil"
msgid "Illegal limm reference in last instruction!\n"
msgstr "Son işlemde geçersiz limm referansı!\n"
-#: arm-dis.c:507
+#: arm-dis.c:554
msgid "<illegal precision>"
msgstr "<geçersiz kesinlik>"
-#: arm-dis.c:1010
+#: arm-dis.c:1162
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Bilinmeyen yazmaç ad kümesi: %s\n"
-#: arm-dis.c:1017
+#: arm-dis.c:1169
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Bilinmeyen karşıt-çevirici seçeneği: %s\n"
-#: arm-dis.c:1191
+#: arm-dis.c:1343
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -50,26 +50,26 @@ msgstr ""
"Aşağıdaki ARM'a özgü karşıt-çevirici seçenekleri \n"
"-M seçeneği ile kullanılabilir:\n"
-#: avr-dis.c:118 avr-dis.c:128
+#: avr-dis.c:117 avr-dis.c:127
msgid "undefined"
msgstr "tanımlanmamış"
-#: avr-dis.c:180
+#: avr-dis.c:179
msgid "Internal disassembler error"
msgstr "İç karşıt-çevirici hatası "
-#: avr-dis.c:228
+#: avr-dis.c:227
#, c-format
msgid "unknown constraint `%c'"
msgstr "`%c' bilinmeyen kısıtı"
-#: cgen-asm.c:346 fr30-ibld.c:195 frv-ibld.c:195 m32r-ibld.c:195
-#: openrisc-ibld.c:195 xstormy16-ibld.c:195
+#: cgen-asm.c:348 fr30-ibld.c:195 frv-ibld.c:195 ip2k-ibld.c:195
+#: iq2000-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195 xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "Kapsam dışı terim (%ld, %ld ve %ld arasında değil) "
-#: cgen-asm.c:367
+#: cgen-asm.c:369
#, c-format
msgid "operand out of range (%lu not between %lu and %lu)"
msgstr "Kapsam dışı terim (%lu, %lu ve %lu arasında değil)"
@@ -90,129 +90,135 @@ msgstr "Bilinmeyen hata %d\n"
msgid "Address 0x%x is out of bounds.\n"
msgstr "0x%x adresi sınırların dışında.\n"
-#: fr30-asm.c:323 frv-asm.c:595 m32r-asm.c:325 openrisc-asm.c:244
-#: xstormy16-asm.c:231
+#: fr30-asm.c:323 frv-asm.c:626 ip2k-asm.c:574 iq2000-asm.c:460 m32r-asm.c:325
+#: openrisc-asm.c:261 xstormy16-asm.c:284
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Ayrıştırma esnasında bilinmeyen alan %d bulundu.\n"
-#: fr30-asm.c:373 frv-asm.c:645 m32r-asm.c:375 openrisc-asm.c:294
-#: xstormy16-asm.c:281
+#: fr30-asm.c:373 frv-asm.c:676 ip2k-asm.c:624 iq2000-asm.c:510 m32r-asm.c:375
+#: openrisc-asm.c:311 xstormy16-asm.c:334
msgid "missing mnemonic in syntax string"
msgstr "biçem dizgesinde ipucu eksik"
#. We couldn't parse it.
-#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:781
-#: frv-asm.c:785 frv-asm.c:872 frv-asm.c:974 m32r-asm.c:511 m32r-asm.c:515
-#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430 openrisc-asm.c:434
-#: openrisc-asm.c:521 openrisc-asm.c:623 xstormy16-asm.c:417
-#: xstormy16-asm.c:421 xstormy16-asm.c:508 xstormy16-asm.c:610
+#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 frv-asm.c:812
+#: frv-asm.c:816 frv-asm.c:903 frv-asm.c:1005 ip2k-asm.c:760 ip2k-asm.c:764
+#: ip2k-asm.c:851 ip2k-asm.c:953 iq2000-asm.c:646 iq2000-asm.c:650
+#: iq2000-asm.c:737 iq2000-asm.c:839 m32r-asm.c:511 m32r-asm.c:515
+#: m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:447 openrisc-asm.c:451
+#: openrisc-asm.c:538 openrisc-asm.c:640 xstormy16-asm.c:470
+#: xstormy16-asm.c:474 xstormy16-asm.c:561 xstormy16-asm.c:663
msgid "unrecognized instruction"
msgstr "bilinmeyen iÅŸlem"
-#: fr30-asm.c:556 frv-asm.c:828 m32r-asm.c:558 openrisc-asm.c:477
-#: xstormy16-asm.c:464
+#: fr30-asm.c:556 frv-asm.c:859 ip2k-asm.c:807 iq2000-asm.c:693 m32r-asm.c:558
+#: openrisc-asm.c:494 xstormy16-asm.c:517
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "biçem hatası (char `%c' beklenirken `%c' bulundu)"
-#: fr30-asm.c:566 frv-asm.c:838 m32r-asm.c:568 openrisc-asm.c:487
-#: xstormy16-asm.c:474
+#: fr30-asm.c:566 frv-asm.c:869 ip2k-asm.c:817 iq2000-asm.c:703 m32r-asm.c:568
+#: openrisc-asm.c:504 xstormy16-asm.c:527
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "biçem hatası (char `%c' beklenirken işlem sonu bulundu)"
-#: fr30-asm.c:594 frv-asm.c:866 m32r-asm.c:596 openrisc-asm.c:515
-#: xstormy16-asm.c:502
+#: fr30-asm.c:594 frv-asm.c:897 ip2k-asm.c:845 iq2000-asm.c:731 m32r-asm.c:596
+#: openrisc-asm.c:532 xstormy16-asm.c:555
msgid "junk at end of line"
msgstr "Satır sonu bozuk "
-#: fr30-asm.c:701 frv-asm.c:973 m32r-asm.c:703 openrisc-asm.c:622
-#: xstormy16-asm.c:609
+#: fr30-asm.c:701 frv-asm.c:1004 ip2k-asm.c:952 iq2000-asm.c:838
+#: m32r-asm.c:703 openrisc-asm.c:639 xstormy16-asm.c:662
msgid "unrecognized form of instruction"
msgstr "bilinmeyen işlem türü"
-#: fr30-asm.c:713 frv-asm.c:985 m32r-asm.c:715 openrisc-asm.c:634
-#: xstormy16-asm.c:621
+#: fr30-asm.c:713 frv-asm.c:1016 ip2k-asm.c:964 iq2000-asm.c:850
+#: m32r-asm.c:715 openrisc-asm.c:651 xstormy16-asm.c:674
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "geçersiz işlem `%.50s...'"
-#: fr30-asm.c:716 frv-asm.c:988 m32r-asm.c:718 openrisc-asm.c:637
-#: xstormy16-asm.c:624
+#: fr30-asm.c:716 frv-asm.c:1019 ip2k-asm.c:967 iq2000-asm.c:853
+#: m32r-asm.c:718 openrisc-asm.c:654 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s'"
msgstr "geçersiz işlem `%.50s'"
#. Default text to print if an instruction isn't recognized.
-#: fr30-dis.c:39 frv-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
-#: xstormy16-dis.c:39
+#: fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41 m32r-dis.c:41
+#: mmix-dis.c:284 openrisc-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr "*bilinmeyen*"
-#: fr30-dis.c:318 frv-dis.c:360 m32r-dis.c:249 openrisc-dis.c:136
-#: xstormy16-dis.c:169
+#: fr30-dis.c:320 frv-dis.c:371 ip2k-dis.c:329 iq2000-dis.c:192 m32r-dis.c:251
+#: openrisc-dis.c:138 xstormy16-dis.c:171
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "yönerge yazdırılırken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:166 frv-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
-#: xstormy16-ibld.c:166
+#: fr30-ibld.c:166 frv-ibld.c:166 ip2k-ibld.c:166 iq2000-ibld.c:166
+#: m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "Kapsam dışı işlenen (%ld, %ld ve %lu arasında değil) "
-#: fr30-ibld.c:179 frv-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
-#: xstormy16-ibld.c:179
+#: fr30-ibld.c:179 frv-ibld.c:179 ip2k-ibld.c:179 iq2000-ibld.c:179
+#: m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "kapsam dışı terim (%lu 0 ve %lu arasında değil) "
-#: fr30-ibld.c:730 frv-ibld.c:820 m32r-ibld.c:659 openrisc-ibld.c:633
-#: xstormy16-ibld.c:678
+#: fr30-ibld.c:730 frv-ibld.c:829 ip2k-ibld.c:607 iq2000-ibld.c:713
+#: m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Yönerge oluşturulurken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:937 frv-ibld.c:1103 m32r-ibld.c:792 openrisc-ibld.c:735
-#: xstormy16-ibld.c:826
+#: fr30-ibld.c:937 frv-ibld.c:1121 ip2k-ibld.c:684 iq2000-ibld.c:890
+#: m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Yönerge çözümlenirken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:1086 frv-ibld.c:1348 m32r-ibld.c:902 openrisc-ibld.c:815
-#: xstormy16-ibld.c:939
+#: fr30-ibld.c:1086 frv-ibld.c:1375 ip2k-ibld.c:761 iq2000-ibld.c:1024
+#: m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "`int' terimi alınırken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:1215 frv-ibld.c:1573 m32r-ibld.c:992 openrisc-ibld.c:875
-#: xstormy16-ibld.c:1032
+#: fr30-ibld.c:1215 frv-ibld.c:1609 ip2k-ibld.c:818 iq2000-ibld.c:1138
+#: m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "`vma' terimi alınırken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:1349 frv-ibld.c:1807 m32r-ibld.c:1090 openrisc-ibld.c:944
-#: xstormy16-ibld.c:1134
+#: fr30-ibld.c:1349 frv-ibld.c:1852 ip2k-ibld.c:880 iq2000-ibld.c:1261
+#: m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "`int' terimi atanırken bilinmeyen alan %d bulundu.\n"
-#: fr30-ibld.c:1471 frv-ibld.c:2029 m32r-ibld.c:1176 openrisc-ibld.c:1001
-#: xstormy16-ibld.c:1224
+#: fr30-ibld.c:1471 frv-ibld.c:2083 ip2k-ibld.c:930 iq2000-ibld.c:1372
+#: m32r-ibld.c:1176 openrisc-ibld.c:1001 xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "`vma' terimi atanırken bilinmeyen alan %d bulundu.\n"
-#: h8300-dis.c:385
+#: frv-asm.c:365
+msgid "register number must be even"
+msgstr "yazmaç çift sayı olmalı"
+
+#: h8300-dis.c:377
#, c-format
-msgid "Hmmmm %x"
-msgstr "Hmmmm %x"
+msgid "Hmmmm 0x%x"
+msgstr "Hmmmm 0x%x"
-#: h8300-dis.c:396
+#: h8300-dis.c:760
#, c-format
-msgid "Don't understand %x \n"
-msgstr "%x anlaşılamadı\n"
+msgid "Don't understand 0x%x \n"
+msgstr "0x%x anlaşılamadı\n"
#: h8500-dis.c:143
#, c-format
@@ -225,10 +231,188 @@ msgstr "insert %d yaptırılamıyor\n"
msgid "%02x\t\t*unknown*"
msgstr "%02x\t\t*bilinmeyen*"
-#: i386-dis.c:1649
+#: i386-dis.c:1699
msgid "<internal disassembler error>"
msgstr "<iç karşıt-çevirici hatası>"
+#: ia64-gen.c:295
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: Hata: "
+
+#: ia64-gen.c:308
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: Uyarı: "
+
+#: ia64-gen.c:494 ia64-gen.c:728
+#, c-format
+msgid "multiple note %s not handled\n"
+msgstr "çoklu not %s desteklenmiyor\n"
+
+#: ia64-gen.c:605
+msgid "can't find ia64-ic.tbl for reading\n"
+msgstr "ia64-ic.tbl okunmak için bulunamadı\n"
+
+#: ia64-gen.c:810
+#, c-format
+msgid "can't find %s for reading\n"
+msgstr "%s okunmak için bulunamadı\n"
+
+#: ia64-gen.c:1034
+#, c-format
+msgid ""
+"most recent format '%s'\n"
+"appears more restrictive than '%s'\n"
+msgstr ""
+"en son biçem '%s'\n"
+"'%s'dan daha kısıtlayıcı\n"
+
+#: ia64-gen.c:1045
+#, c-format
+msgid "overlapping field %s->%s\n"
+msgstr "üstüste binmiş alan %s->%s\n"
+
+#: ia64-gen.c:1236
+#, c-format
+msgid "overwriting note %d with note %d (IC:%s)\n"
+msgstr "%2$d notu %1$d notunun üstüne yazılıyor (IC:%3$s)\n"
+
+#: ia64-gen.c:1435
+#, c-format
+msgid "don't know how to specify %% dependency %s\n"
+msgstr "%% %s bağımlılığının nasıl tanımlanacağı bilinmiyor\n"
+
+#: ia64-gen.c:1457
+#, c-format
+msgid "Don't know how to specify # dependency %s\n"
+msgstr "# %s bağımlılığının nasıl tanımlanacağı bilinmiyor\n"
+
+#: ia64-gen.c:1496
+#, c-format
+msgid "IC:%s [%s] has no terminals or sub-classes\n"
+msgstr "IC: %s [%s]'nin değişmez simgeleri veya alt sınıfları yok\n"
+
+#: ia64-gen.c:1499
+#, c-format
+msgid "IC:%s has no terminals or sub-classes\n"
+msgstr "IC: %s'nin değişmez simgeleri veya alt sınıfları yok\n"
+
+#: ia64-gen.c:1508
+#, c-format
+msgid "no insns mapped directly to terminal IC %s [%s]"
+msgstr "deÄŸiÅŸmez simge IC %s [%s]'ye direkt eÅŸleÅŸen iÅŸlem yok "
+
+#: ia64-gen.c:1511
+#, c-format
+msgid "no insns mapped directly to terminal IC %s\n"
+msgstr "deÄŸiÅŸmez simge IC %s'ye direkt eÅŸleÅŸen iÅŸlem yok\n"
+
+#: ia64-gen.c:1522
+#, c-format
+msgid "class %s is defined but not used\n"
+msgstr "%s sınıfı tanımlanmış fakat kullanılmamış\n"
+
+#: ia64-gen.c:1533
+#, c-format
+msgid "Warning: rsrc %s (%s) has no chks%s\n"
+msgstr "Uyarı: rsrc %s (%s) içinde kontrol yok %s\n"
+
+#: ia64-gen.c:1537
+#, c-format
+msgid "rsrc %s (%s) has no regs\n"
+msgstr "rsrc %s (%s) içinde yazmaç yok\n"
+
+#: ia64-gen.c:2436
+#, c-format
+msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "(IC:%3$s) opkod %2$s içinde IC notu %1$d, %4$s kaynağı %5$d notuyla çelişiyor\n"
+
+#: ia64-gen.c:2464
+#, c-format
+msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
+msgstr "(IC:%3$s) opkod %2$s için IC notu %1$d, %4$s kaynağı %5$d notuyla çelişiyor\n"
+
+#: ia64-gen.c:2478
+#, c-format
+msgid "opcode %s has no class (ops %d %d %d)\n"
+msgstr "%s opkodunun sınıfları yok (ops %d %d %d)\n"
+
+#: ia64-gen.c:2789
+#, c-format
+msgid "unable to change directory to \"%s\", errno = %s\n"
+msgstr "\"%s\" dizinine geçilemedi, hatano = %s\n"
+
+#. We've been passed a w. Return with an error message so that
+#. cgen will try the next parsing option.
+#: ip2k-asm.c:92
+msgid "W keyword invalid in FR operand slot."
+msgstr "FR işlenen slotunda W anahtar kelimesi geçersiz."
+
+#. Invalid offset present.
+#: ip2k-asm.c:122
+msgid "offset(IP) is not a valid form"
+msgstr "görece(IP) geçerli biçimde değil"
+
+#. Found something there in front of (DP) but it's out
+#. of range.
+#: ip2k-asm.c:175
+msgid "(DP) offset out of range."
+msgstr "(DP) görecesi aralık dışı."
+
+#. Found something there in front of (SP) but it's out
+#. of range.
+#: ip2k-asm.c:221
+msgid "(SP) offset out of range."
+msgstr "(SP) görece aralık dışı."
+
+#: ip2k-asm.c:241
+msgid "illegal use of parentheses"
+msgstr "parantezlerin geçersiz kullanımı"
+
+#: ip2k-asm.c:248
+msgid "operand out of range (not between 1 and 255)"
+msgstr "kapsam dışı işlenen (1 ve 255 arasında değil)"
+
+#. Something is very wrong. opindex has to be one of the above.
+#: ip2k-asm.c:273
+msgid "parse_addr16: invalid opindex."
+msgstr "parse_addr16: geçersiz opindeks."
+
+#: ip2k-asm.c:353
+msgid "Byte address required. - must be even."
+msgstr "Bayt adresi gerekli. - çift sayı olmalı."
+
+#: ip2k-asm.c:362
+msgid "cgen_parse_address returned a symbol. Literal required."
+msgstr "cgen_parse_address bir sembol döndürdü. Sabit gerekli."
+
+#: ip2k-asm.c:420
+#, c-format
+msgid "%operator operand is not a symbol"
+msgstr "%operator iÅŸleneni sembol deÄŸil"
+
+#: ip2k-asm.c:474
+msgid "Attempt to find bit index of 0"
+msgstr "0'ın bit indeksini bulma denemesi"
+
+#: iq2000-asm.c:110 iq2000-asm.c:141
+msgid "immediate value cannot be register"
+msgstr "şimdiki değer yazmaç olamaz"
+
+#: iq2000-asm.c:120 iq2000-asm.c:151
+msgid "immediate value out of range"
+msgstr "şimdiki değer kapsam dışı"
+
+#: iq2000-asm.c:180
+msgid "21-bit offset out of range"
+msgstr "21 bit görece değer aralık dışı"
+
+#: iq2000-asm.c:205 iq2000-asm.c:235 iq2000-asm.c:272 iq2000-asm.c:305
+#: openrisc-asm.c:96 openrisc-asm.c:155
+msgid "missing `)'"
+msgstr "eksik `)'"
+
#: m10200-dis.c:199
#, c-format
msgid "unknown\t0x%02x"
@@ -239,7 +423,7 @@ msgstr "bilinmeyen\t0x%02x"
msgid "unknown\t0x%04lx"
msgstr "bilinmeyen\t0x%04lx"
-#: m10300-dis.c:685
+#: m10300-dis.c:766
#, c-format
msgid "unknown\t0x%04x"
msgstr "bilinmeyen\t0x%04x"
@@ -254,21 +438,127 @@ msgstr "<işlemci kod tablosunda iç hata: %s %s>\n"
msgid "<function code %d>"
msgstr "<iÅŸlev kodu %d>"
-#: m88k-dis.c:255
+#: m88k-dis.c:746
#, c-format
msgid "# <dis error: %08x>"
msgstr "# <`dis' hatası: %08x>"
-#: mips-dis.c:337
+#: mips-dis.c:699
+msgid "# internal error, incomplete extension sequence (+)"
+msgstr "# iç hata, eksik uzatma dizisi (+)"
+
+#: mips-dis.c:742
+#, c-format
+msgid "# internal error, undefined extension sequence (+%c)"
+msgstr "# iç hata, tanımlanmamış uzatma dizisi (+%c)"
+
+#: mips-dis.c:1000
#, c-format
msgid "# internal error, undefined modifier(%c)"
msgstr "#iç hata, tanımlanmamış değiştirici (%c)"
-#: mips-dis.c:1209
+#: mips-dis.c:1751
#, c-format
msgid "# internal disassembler error, unrecognised modifier (%c)"
msgstr "#iç karşıt-çevirici hatası, tanımlanmamış değiştirici (%c)"
+#: mips-dis.c:1763
+msgid ""
+"\n"
+"The following MIPS specific disassembler options are supported for use\n"
+"with the -M switch (multiple options should be separated by commas):\n"
+msgstr ""
+"\n"
+"Aşağıdaki MIPS'e özgü karşıt-çevirici seçenekleri \n"
+"-M seçeneği ile kullanılabilir (birden fazla seçenek virgülle ayrılmalıdır):\n"
+
+#: mips-dis.c:1767
+msgid ""
+"\n"
+" gpr-names=ABI Print GPR names according to specified ABI.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" gpr-names=ABI Belirtilen ABI'ye göre GPR isimlerini gösterir.\n"
+" Öntanımlı: karşıt-çevrilen ikilik dosyaya göre.\n"
+
+#: mips-dis.c:1771
+msgid ""
+"\n"
+" fpr-names=ABI Print FPR names according to specified ABI.\n"
+" Default: numeric.\n"
+msgstr ""
+"\n"
+" fpr-names=ABI Belirtilen ABI'ye göre FPR isimlerini gösterir.\n"
+" Öntanımlı: sayısal.\n"
+
+#: mips-dis.c:1775
+msgid ""
+"\n"
+" cp0-names=ARCH Print CP0 register names according to\n"
+" specified architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" cp0-names=MİMARİ Belirtilen mimariye göre CP0 yazmaç isimlerini\n"
+" gösterir.\n"
+" Öntanımlı: karşıt-çevrilen ikilik dosyaya göre.\n"
+
+#: mips-dis.c:1780
+msgid ""
+"\n"
+" hwr-names=ARCH Print HWR names according to specified \n"
+"\t\t\t architecture.\n"
+" Default: based on binary being disassembled.\n"
+msgstr ""
+"\n"
+" hwr-names=MİMARİ Belirtilen mimariye göre HWR isimlerini gösterir.\n"
+" Öntanımlı: karşıt-çevrilen ikilik dosyaya göre.\n"
+
+#: mips-dis.c:1785
+msgid ""
+"\n"
+" reg-names=ABI Print GPR and FPR names according to\n"
+" specified ABI.\n"
+msgstr ""
+"\n"
+" reg-names=ABI Belirtilen ABI'ye göre GPR ve FPR isimlerini\n"
+" gösterir.\n"
+
+#: mips-dis.c:1789
+msgid ""
+"\n"
+" reg-names=ARCH Print CP0 register and HWR names according to\n"
+" specified architecture.\n"
+msgstr ""
+"\n"
+" reg-names=MİMARİ Belirtilen mimariye göre CP0 yazmaç ve HWR\n"
+" isimlerini gösterir.\n"
+
+#: mips-dis.c:1793
+msgid ""
+"\n"
+" For the options above, the following values are supported for \"ABI\":\n"
+" "
+msgstr ""
+"\n"
+" Yukarıdaki seçeneklere göre \"ABI\" için aşağıdaki değerler desteklenir:\n"
+" "
+
+#: mips-dis.c:1798 mips-dis.c:1806 mips-dis.c:1808
+msgid "\n"
+msgstr "\n"
+
+#: mips-dis.c:1800
+msgid ""
+"\n"
+" For the options above, The following values are supported for \"ARCH\":\n"
+" "
+msgstr ""
+"\n"
+" Yukarıdaki seçeneklere göre \"ARCH\" için aşağıdaki değerler desteklenir:\n"
+" "
+
#: mmix-dis.c:34
#, c-format
msgid "Bad case %d (%s) in %s:%d\n"
@@ -283,7 +573,7 @@ msgstr "İç Hata: Hata ayıklanmamış kod (test eksik): %s:%d"
msgid "(unknown)"
msgstr "(bilinmeyen)"
-#: mmix-dis.c:517
+#: mmix-dis.c:519
#, c-format
msgid "*unknown operands type: %d*"
msgstr "bilinmeyen işlenen türü: %d*"
@@ -294,76 +584,116 @@ msgstr "bilinmeyen işlenen türü: %d*"
#. * aoffsetp by since whatever generated this is broken
#. * anyway!
#.
-#: ns32k-dis.c:628
+#: ns32k-dis.c:631
msgid "$<undefined>"
msgstr "$<tanımlanmamış>"
-#: ppc-opc.c:777 ppc-opc.c:810
+#: ppc-opc.c:781 ppc-opc.c:809
msgid "invalid conditional option"
msgstr "koşullu seçenek geçersiz "
-#: ppc-opc.c:812
+#: ppc-opc.c:811
msgid "attempt to set y bit when using + or - modifier"
msgstr "+ veya - değiştiricisini kullanırken y bitini atama denemesi"
-#: ppc-opc.c:844 ppc-opc.c:896
+#: ppc-opc.c:840
+msgid "offset not a multiple of 16"
+msgstr "görece 16'nın katı değil"
+
+#: ppc-opc.c:860
+msgid "offset not a multiple of 2"
+msgstr "görece 2'nin katı değil"
+
+#: ppc-opc.c:862
+msgid "offset greater than 62"
+msgstr "görece 62'den büyük"
+
+#: ppc-opc.c:881 ppc-opc.c:927 ppc-opc.c:975
msgid "offset not a multiple of 4"
msgstr "görece 4'ün katı değil"
-#: ppc-opc.c:869
+#: ppc-opc.c:883
+msgid "offset greater than 124"
+msgstr "görece 124'ten büyük"
+
+#: ppc-opc.c:902
+msgid "offset not a multiple of 8"
+msgstr "görece 8'in katı değil"
+
+#: ppc-opc.c:904
+msgid "offset greater than 248"
+msgstr "görece 248'den büyük"
+
+#: ppc-opc.c:950
msgid "offset not between -2048 and 2047"
msgstr "görece -2048 ve 2047 arasında değil"
-#: ppc-opc.c:894
+#: ppc-opc.c:973
msgid "offset not between -8192 and 8191"
msgstr "görece -8192 ve 8191 arasında değil"
-#: ppc-opc.c:922
+#: ppc-opc.c:1011
+msgid "ignoring invalid mfcr mask"
+msgstr "geçersiz mfcr maskesi yoksayıldı"
+
+#: ppc-opc.c:1059
msgid "ignoring least significant bits in branch offset"
msgstr "Dal göreli konumunda en önemsiz bitler atlanıyor"
-#: ppc-opc.c:956 ppc-opc.c:993
+#: ppc-opc.c:1090 ppc-opc.c:1125
msgid "illegal bitmask"
msgstr "geçersiz bitmask "
-#: ppc-opc.c:1066
+#: ppc-opc.c:1192
msgid "value out of range"
msgstr "değer aralık dışı"
-#: ppc-opc.c:1142
+#: ppc-opc.c:1262
msgid "index register in load range"
msgstr "yükleme aralığında endeks yazmacı"
-#: ppc-opc.c:1158
+#: ppc-opc.c:1279
+msgid "source and target register operands must be different"
+msgstr "kaynak ve hedef yazmaç işlenenleri farklı olmalı"
+
+#: ppc-opc.c:1294
msgid "invalid register operand when updating"
msgstr "güncelleme esnasında geçersiz yazmaç terimi bulundu"
-#. Mark as non-valid instruction
-#: sparc-dis.c:750
+#: ppc-opc.c:1335
+msgid "target register operand must be even"
+msgstr "hedef yazmaç işleneni çift sayı olmalı"
+
+#: ppc-opc.c:1350
+msgid "source register operand must be even"
+msgstr "kaynak yazmaç işleneni çift sayı olmalı"
+
+#. Mark as non-valid instruction.
+#: sparc-dis.c:760
msgid "unknown"
msgstr "bilinmeyen"
-#: sparc-dis.c:825
+#: sparc-dis.c:835
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "İç hata: geçersiz sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:836
+#: sparc-dis.c:846
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
msgstr "İç hata: geçersiz sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-#: sparc-dis.c:885
+#: sparc-dis.c:895
#, c-format
msgid "Internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
msgstr "İç hata: geçersiz sparc-opcode.h: \"%s\" == \"%s\"\n"
-#: v850-dis.c:224
+#: v850-dis.c:221
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "bilinmeyen terim kaydırması: %x\n"
-#: v850-dis.c:236
+#: v850-dis.c:233
#, c-format
msgid "unknown pop reg: %d\n"
msgstr "bilinmeyen çek yazmacı: %d\n"
@@ -417,30 +747,42 @@ msgstr "şimdiki değer kapsam dışı ve çift sayı değil"
msgid "immediate value must be even"
msgstr "şimdiki değer çift sayı olmalı"
-#: xstormy16-asm.c:74
+#: xstormy16-asm.c:76
msgid "Bad register in preincrement"
msgstr "Arttırma öncesinde geçersiz yazmaç"
-#: xstormy16-asm.c:79
+#: xstormy16-asm.c:81
msgid "Bad register in postincrement"
msgstr "Arttırma sonrasında geçersiz yazmaç "
-#: xstormy16-asm.c:81
+#: xstormy16-asm.c:83
msgid "Bad register name"
msgstr "Geçersiz yazmaç adı"
-#: xstormy16-asm.c:85
+#: xstormy16-asm.c:87
msgid "Label conflicts with register name"
msgstr "Etiket, yazmaç adıyla çakışıyor"
-#: xstormy16-asm.c:89
+#: xstormy16-asm.c:91
msgid "Label conflicts with `Rx'"
msgstr "Etiket, `Rx' ile çakışıyor"
-#: xstormy16-asm.c:91
+#: xstormy16-asm.c:93
msgid "Bad immediate expression"
msgstr "Hatalı şimdiki ifade"
-#: xstormy16-asm.c:120
+#: xstormy16-asm.c:115
+msgid "No relocation for small immediate"
+msgstr "Küçük şimdiki için yerdeğiştirme yok"
+
+#: xstormy16-asm.c:125
msgid "Small operand was not an immediate number"
msgstr "Küçük işlenen şimdiki sayı değil"
+
+#: xstormy16-asm.c:164
+msgid "Operand is not a symbol"
+msgstr "Ä°ÅŸlenen bir sembol deÄŸil"
+
+#: xstormy16-asm.c:172
+msgid "Syntax error: No trailing ')'"
+msgstr "Sözdizim hatası: Sonlandıran ')' yok"
diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c
index 3df7dc1..b8b8b1a 100644
--- a/opcodes/ppc-dis.c
+++ b/opcodes/ppc-dis.c
@@ -1,5 +1,6 @@
/* ppc-dis.c -- Disassemble PowerPC instructions
- Copyright 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support
This file is part of GDB, GAS, and the GNU binutils.
@@ -214,7 +215,7 @@ print_insn_powerpc (memaddr, info, bigendian, dialect)
/* Extract the value from the instruction. */
if (operand->extract)
- value = (*operand->extract) (insn, dialect, (int *) NULL);
+ value = (*operand->extract) (insn, dialect, &invalid);
else
{
value = (insn >> operand->shift) & ((1 << operand->bits) - 1);
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index a6e9313..7fd2977 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -38,112 +38,60 @@
/* Local insertion and extraction functions. */
-static unsigned long insert_bat
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bat
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_bba
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bba
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_bd
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bd
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_bdm
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bdm
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_bdp
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bdp
- PARAMS ((unsigned long, int, int *));
-static int valid_bo
- PARAMS ((long, int));
-static unsigned long insert_bo
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_bo
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_boe
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_boe
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_dq
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_dq
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_ds
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_ds
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_de
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_de
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_des
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_des
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_li
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_li
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_mbe
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_mbe
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_mb6
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_mb6
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_nb
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_nb
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_nsi
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_nsi
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_ral
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_ram
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_raq
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_ras
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_rbs
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_rbs
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_rsq
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_rtq
- PARAMS ((unsigned long, long, int, const char **));
-static unsigned long insert_sh6
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_sh6
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_spr
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_spr
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_tbr
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_tbr
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_ev2
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_ev2
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_ev4
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_ev4
- PARAMS ((unsigned long, int, int *));
-static unsigned long insert_ev8
- PARAMS ((unsigned long, long, int, const char **));
-static long extract_ev8
- PARAMS ((unsigned long, int, int *));
+static unsigned long insert_bat (unsigned long, long, int, const char **);
+static long extract_bat (unsigned long, int, int *);
+static unsigned long insert_bba (unsigned long, long, int, const char **);
+static long extract_bba (unsigned long, int, int *);
+static unsigned long insert_bd (unsigned long, long, int, const char **);
+static long extract_bd (unsigned long, int, int *);
+static unsigned long insert_bdm (unsigned long, long, int, const char **);
+static long extract_bdm (unsigned long, int, int *);
+static unsigned long insert_bdp (unsigned long, long, int, const char **);
+static long extract_bdp (unsigned long, int, int *);
+static unsigned long insert_bo (unsigned long, long, int, const char **);
+static long extract_bo (unsigned long, int, int *);
+static unsigned long insert_boe (unsigned long, long, int, const char **);
+static long extract_boe (unsigned long, int, int *);
+static unsigned long insert_dq (unsigned long, long, int, const char **);
+static long extract_dq (unsigned long, int, int *);
+static unsigned long insert_ds (unsigned long, long, int, const char **);
+static long extract_ds (unsigned long, int, int *);
+static unsigned long insert_de (unsigned long, long, int, const char **);
+static long extract_de (unsigned long, int, int *);
+static unsigned long insert_des (unsigned long, long, int, const char **);
+static long extract_des (unsigned long, int, int *);
+static unsigned long insert_fxm (unsigned long, long, int, const char **);
+static long extract_fxm (unsigned long, int, int *);
+static unsigned long insert_li (unsigned long, long, int, const char **);
+static long extract_li (unsigned long, int, int *);
+static unsigned long insert_mbe (unsigned long, long, int, const char **);
+static long extract_mbe (unsigned long, int, int *);
+static unsigned long insert_mb6 (unsigned long, long, int, const char **);
+static long extract_mb6 (unsigned long, int, int *);
+static unsigned long insert_nb (unsigned long, long, int, const char **);
+static long extract_nb (unsigned long, int, int *);
+static unsigned long insert_nsi (unsigned long, long, int, const char **);
+static long extract_nsi (unsigned long, int, int *);
+static unsigned long insert_ral (unsigned long, long, int, const char **);
+static unsigned long insert_ram (unsigned long, long, int, const char **);
+static unsigned long insert_raq (unsigned long, long, int, const char **);
+static unsigned long insert_ras (unsigned long, long, int, const char **);
+static unsigned long insert_rbs (unsigned long, long, int, const char **);
+static long extract_rbs (unsigned long, int, int *);
+static unsigned long insert_rsq (unsigned long, long, int, const char **);
+static unsigned long insert_rtq (unsigned long, long, int, const char **);
+static unsigned long insert_sh6 (unsigned long, long, int, const char **);
+static long extract_sh6 (unsigned long, int, int *);
+static unsigned long insert_spr (unsigned long, long, int, const char **);
+static long extract_spr (unsigned long, int, int *);
+static unsigned long insert_tbr (unsigned long, long, int, const char **);
+static long extract_tbr (unsigned long, int, int *);
+static unsigned long insert_ev2 (unsigned long, long, int, const char **);
+static long extract_ev2 (unsigned long, int, int *);
+static unsigned long insert_ev4 (unsigned long, long, int, const char **);
+static long extract_ev4 (unsigned long, int, int *);
+static unsigned long insert_ev8 (unsigned long, long, int, const char **);
+static long extract_ev8 (unsigned long, int, int *);
/* The operands table.
@@ -341,10 +289,14 @@ const struct powerpc_operand powerpc_operands[] =
/* The FXM field in an XFX instruction. */
#define FXM FRS + 1
#define FXM_MASK (0xff << 12)
- { 8, 12, 0, 0, 0 },
+ { 8, 12, insert_fxm, extract_fxm, 0 },
+
+ /* Power4 version for mfcr. */
+#define FXM4 FXM + 1
+ { 8, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
/* The L field in a D or X form instruction. */
-#define L FXM + 1
+#define L FXM4 + 1
{ 1, 21, 0, 0, PPC_OPERAND_OPTIONAL },
/* The LEV field in a POWER SC form instruction. */
@@ -598,23 +550,20 @@ const struct powerpc_operand powerpc_operands[] =
/*ARGSUSED*/
static unsigned long
-insert_bat (insn, value, dialect, errmsg)
- unsigned long insn;
- long value ATTRIBUTE_UNUSED;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_bat (unsigned long insn,
+ long value ATTRIBUTE_UNUSED,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | (((insn >> 21) & 0x1f) << 16);
}
static long
-extract_bat (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid;
+extract_bat (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid)
{
- if (invalid != (int *) NULL
- && ((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
+ if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
*invalid = 1;
return 0;
}
@@ -627,23 +576,20 @@ extract_bat (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_bba (insn, value, dialect, errmsg)
- unsigned long insn;
- long value ATTRIBUTE_UNUSED;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_bba (unsigned long insn,
+ long value ATTRIBUTE_UNUSED,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | (((insn >> 16) & 0x1f) << 11);
}
static long
-extract_bba (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid;
+extract_bba (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid)
{
- if (invalid != (int *) NULL
- && ((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
+ if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
*invalid = 1;
return 0;
}
@@ -653,21 +599,19 @@ extract_bba (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_bd (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_bd (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | (value & 0xfffc);
}
/*ARGSUSED*/
static long
-extract_bd (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_bd (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
}
@@ -687,11 +631,10 @@ extract_bd (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_bdm (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_bdm (unsigned long insn,
+ long value,
+ int dialect,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
if ((dialect & PPC_OPCODE_POWER4) == 0)
{
@@ -709,25 +652,22 @@ insert_bdm (insn, value, dialect, errmsg)
}
static long
-extract_bdm (insn, dialect, invalid)
- unsigned long insn;
- int dialect;
- int *invalid;
+extract_bdm (unsigned long insn,
+ int dialect,
+ int *invalid)
{
- if (invalid != (int *) NULL)
+ if ((dialect & PPC_OPCODE_POWER4) == 0)
{
- if ((dialect & PPC_OPCODE_POWER4) == 0)
- {
- if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
- *invalid = 1;
- }
- else
- {
- if ((insn & (0x17 << 21)) != (0x06 << 21)
- && (insn & (0x1d << 21)) != (0x18 << 21))
- *invalid = 1;
- }
+ if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
+ *invalid = 1;
}
+ else
+ {
+ if ((insn & (0x17 << 21)) != (0x06 << 21)
+ && (insn & (0x1d << 21)) != (0x18 << 21))
+ *invalid = 1;
+ }
+
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
}
@@ -737,11 +677,10 @@ extract_bdm (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_bdp (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_bdp (unsigned long insn,
+ long value,
+ int dialect,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
if ((dialect & PPC_OPCODE_POWER4) == 0)
{
@@ -759,34 +698,29 @@ insert_bdp (insn, value, dialect, errmsg)
}
static long
-extract_bdp (insn, dialect, invalid)
- unsigned long insn;
- int dialect;
- int *invalid;
+extract_bdp (unsigned long insn,
+ int dialect,
+ int *invalid)
{
- if (invalid != (int *) NULL)
+ if ((dialect & PPC_OPCODE_POWER4) == 0)
{
- if ((dialect & PPC_OPCODE_POWER4) == 0)
- {
- if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
- *invalid = 1;
- }
- else
- {
- if ((insn & (0x17 << 21)) != (0x07 << 21)
- && (insn & (0x1d << 21)) != (0x19 << 21))
- *invalid = 1;
- }
+ if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
+ *invalid = 1;
}
+ else
+ {
+ if ((insn & (0x17 << 21)) != (0x07 << 21)
+ && (insn & (0x1d << 21)) != (0x19 << 21))
+ *invalid = 1;
+ }
+
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
}
/* Check for legal values of a BO field. */
static int
-valid_bo (value, dialect)
- long value;
- int dialect;
+valid_bo (long value, int dialect)
{
if ((dialect & PPC_OPCODE_POWER4) == 0)
{
@@ -838,29 +772,25 @@ valid_bo (value, dialect)
the field to an illegal value. */
static unsigned long
-insert_bo (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect;
- const char **errmsg;
+insert_bo (unsigned long insn,
+ long value,
+ int dialect,
+ const char **errmsg)
{
- if (errmsg != (const char **) NULL
- && ! valid_bo (value, dialect))
+ if (!valid_bo (value, dialect))
*errmsg = _("invalid conditional option");
return insn | ((value & 0x1f) << 21);
}
static long
-extract_bo (insn, dialect, invalid)
- unsigned long insn;
- int dialect;
- int *invalid;
+extract_bo (unsigned long insn,
+ int dialect,
+ int *invalid)
{
long value;
value = (insn >> 21) & 0x1f;
- if (invalid != (int *) NULL
- && ! valid_bo (value, dialect))
+ if (!valid_bo (value, dialect))
*invalid = 1;
return value;
}
@@ -870,128 +800,115 @@ extract_bo (insn, dialect, invalid)
extracting it, we force it to be even. */
static unsigned long
-insert_boe (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect;
- const char **errmsg;
+insert_boe (unsigned long insn,
+ long value,
+ int dialect,
+ const char **errmsg)
{
- if (errmsg != (const char **) NULL)
- {
- if (! valid_bo (value, dialect))
- *errmsg = _("invalid conditional option");
- else if ((value & 1) != 0)
- *errmsg = _("attempt to set y bit when using + or - modifier");
- }
+ if (!valid_bo (value, dialect))
+ *errmsg = _("invalid conditional option");
+ else if ((value & 1) != 0)
+ *errmsg = _("attempt to set y bit when using + or - modifier");
+
return insn | ((value & 0x1f) << 21);
}
static long
-extract_boe (insn, dialect, invalid)
- unsigned long insn;
- int dialect;
- int *invalid;
+extract_boe (unsigned long insn,
+ int dialect,
+ int *invalid)
{
long value;
value = (insn >> 21) & 0x1f;
- if (invalid != (int *) NULL
- && ! valid_bo (value, dialect))
+ if (!valid_bo (value, dialect))
*invalid = 1;
return value & 0x1e;
}
- /* The DQ field in a DQ form instruction. This is like D, but the
- lower four bits are forced to zero. */
+/* The DQ field in a DQ form instruction. This is like D, but the
+ lower four bits are forced to zero. */
/*ARGSUSED*/
static unsigned long
-insert_dq (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char ** errmsg ATTRIBUTE_UNUSED;
+insert_dq (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 0xf) != 0 && errmsg != NULL)
+ if ((value & 0xf) != 0)
*errmsg = _("offset not a multiple of 16");
return insn | (value & 0xfff0);
}
/*ARGSUSED*/
static long
-extract_dq (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_dq (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn & 0xfff0) ^ 0x8000) - 0x8000;
}
static unsigned long
-insert_ev2 (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char ** errmsg ATTRIBUTE_UNUSED;
+insert_ev2 (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 1) != 0 && errmsg != NULL)
+ if ((value & 1) != 0)
*errmsg = _("offset not a multiple of 2");
- if ((value > 62) != 0 && errmsg != NULL)
+ if ((value > 62) != 0)
*errmsg = _("offset greater than 62");
return insn | ((value & 0x3e) << 10);
}
static long
-extract_ev2 (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int * invalid ATTRIBUTE_UNUSED;
+extract_ev2 (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return (insn >> 10) & 0x3e;
}
static unsigned long
-insert_ev4 (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char ** errmsg ATTRIBUTE_UNUSED;
+insert_ev4 (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 3) != 0 && errmsg != NULL)
+ if ((value & 3) != 0)
*errmsg = _("offset not a multiple of 4");
- if ((value > 124) != 0 && errmsg != NULL)
+ if ((value > 124) != 0)
*errmsg = _("offset greater than 124");
return insn | ((value & 0x7c) << 9);
}
static long
-extract_ev4 (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int * invalid ATTRIBUTE_UNUSED;
+extract_ev4 (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return (insn >> 9) & 0x7c;
}
static unsigned long
-insert_ev8 (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char ** errmsg ATTRIBUTE_UNUSED;
+insert_ev8 (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 7) != 0 && errmsg != NULL)
+ if ((value & 7) != 0)
*errmsg = _("offset not a multiple of 8");
- if ((value > 248) != 0 && errmsg != NULL)
+ if ((value > 248) != 0)
*errmsg = _("offset greater than 248");
return insn | ((value & 0xf8) << 8);
}
static long
-extract_ev8 (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int * invalid ATTRIBUTE_UNUSED;
+extract_ev8 (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return (insn >> 8) & 0xf8;
}
@@ -1001,23 +918,21 @@ extract_ev8 (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_ds (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_ds (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 3) != 0 && errmsg != NULL)
+ if ((value & 3) != 0)
*errmsg = _("offset not a multiple of 4");
return insn | (value & 0xfffc);
}
/*ARGSUSED*/
static long
-extract_ds (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_ds (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
}
@@ -1026,23 +941,21 @@ extract_ds (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_de (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_de (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value > 2047 || value < -2048) && errmsg != NULL)
+ if (value > 2047 || value < -2048)
*errmsg = _("offset not between -2048 and 2047");
return insn | ((value << 4) & 0xfff0);
}
/*ARGSUSED*/
static long
-extract_de (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_de (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return (insn & 0xfff0) >> 4;
}
@@ -1051,51 +964,107 @@ extract_de (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_des (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_des (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value > 8191 || value < -8192) && errmsg != NULL)
+ if (value > 8191 || value < -8192)
*errmsg = _("offset not between -8192 and 8191");
- else if ((value & 3) != 0 && errmsg != NULL)
+ else if ((value & 3) != 0)
*errmsg = _("offset not a multiple of 4");
return insn | ((value << 2) & 0xfff0);
}
/*ARGSUSED*/
static long
-extract_des (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_des (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return (((insn >> 2) & 0x3ffc) ^ 0x2000) - 0x2000;
}
+/* FXM mask in mfcr and mtcrf instructions. */
+
+static unsigned long
+insert_fxm (unsigned long insn,
+ long value,
+ int dialect,
+ const char **errmsg)
+{
+ /* If the optional field on mfcr is missing that means we want to use
+ the old form of the instruction that moves the whole cr. In that
+ case we'll have VALUE zero. There doesn't seem to be a way to
+ distinguish this from the case where someone writes mfcr %r3,0. */
+ if (value == 0)
+ ;
+
+ /* If only one bit of the FXM field is set, we can use the new form
+ of the instruction, which is faster. */
+ else if ((dialect & PPC_OPCODE_POWER4) != 0 && (value & -value) == value)
+ insn |= 1 << 20;
+
+ /* Any other value on mfcr is an error. */
+ else if ((insn & (0x3ff << 1)) == 19 << 1)
+ {
+ *errmsg = _("ignoring invalid mfcr mask");
+ value = 0;
+ }
+
+ return insn | ((value & 0xff) << 12);
+}
+
+static long
+extract_fxm (unsigned long insn,
+ int dialect,
+ int *invalid)
+{
+ long mask = (insn >> 12) & 0xff;
+
+ /* Is this a Power4 insn? */
+ if ((insn & (1 << 20)) != 0)
+ {
+ if ((dialect & PPC_OPCODE_POWER4) == 0)
+ *invalid = 1;
+ else
+ {
+ /* Exactly one bit of MASK should be set. */
+ if (mask == 0 || (mask & -mask) != mask)
+ *invalid = 1;
+ }
+ }
+
+ /* Check that non-power4 form of mfcr has a zero MASK. */
+ else if ((insn & (0x3ff << 1)) == 19 << 1)
+ {
+ if (mask != 0)
+ *invalid = 1;
+ }
+
+ return mask;
+}
+
/* The LI field in an I form instruction. The lower two bits are
forced to zero. */
/*ARGSUSED*/
static unsigned long
-insert_li (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_li (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 3) != 0 && errmsg != (const char **) NULL)
+ if ((value & 3) != 0)
*errmsg = _("ignoring least significant bits in branch offset");
return insn | (value & 0x3fffffc);
}
/*ARGSUSED*/
static long
-extract_li (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_li (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn & 0x3fffffc) ^ 0x2000000) - 0x2000000;
}
@@ -1106,11 +1075,10 @@ extract_li (insn, dialect, invalid)
instruction which uses a field of this type. */
static unsigned long
-insert_mbe (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_mbe (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
unsigned long uval, mask;
int mb, me, mx, count, last;
@@ -1119,8 +1087,7 @@ insert_mbe (insn, value, dialect, errmsg)
if (uval == 0)
{
- if (errmsg != (const char **) NULL)
- *errmsg = _("illegal bitmask");
+ *errmsg = _("illegal bitmask");
return insn;
}
@@ -1136,7 +1103,7 @@ insert_mbe (insn, value, dialect, errmsg)
/* me: location of last 1->0 transition */
/* count: # transitions */
- for (mx = 0, mask = (long) 1 << 31; mx < 32; ++mx, mask >>= 1)
+ for (mx = 0, mask = 1L << 31; mx < 32; ++mx, mask >>= 1)
{
if ((uval & mask) && !last)
{
@@ -1155,26 +1122,21 @@ insert_mbe (insn, value, dialect, errmsg)
me = 32;
if (count != 2 && (count != 0 || ! last))
- {
- if (errmsg != (const char **) NULL)
- *errmsg = _("illegal bitmask");
- }
+ *errmsg = _("illegal bitmask");
return insn | (mb << 6) | ((me - 1) << 1);
}
static long
-extract_mbe (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid;
+extract_mbe (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid)
{
long ret;
int mb, me;
int i;
- if (invalid != (int *) NULL)
- *invalid = 1;
+ *invalid = 1;
mb = (insn >> 6) & 0x1f;
me = (insn >> 1) & 0x1f;
@@ -1182,15 +1144,15 @@ extract_mbe (insn, dialect, invalid)
{
ret = 0;
for (i = mb; i <= me; i++)
- ret |= (long) 1 << (31 - i);
+ ret |= 1L << (31 - i);
}
else if (mb == me + 1)
ret = ~0;
else /* (mb > me + 1) */
{
- ret = ~ (long) 0;
+ ret = ~0;
for (i = me + 1; i < mb; i++)
- ret &= ~ ((long) 1 << (31 - i));
+ ret &= ~(1L << (31 - i));
}
return ret;
}
@@ -1200,21 +1162,19 @@ extract_mbe (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_mb6 (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_mb6 (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | ((value & 0x1f) << 6) | (value & 0x20);
}
/*ARGSUSED*/
static long
-extract_mb6 (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_mb6 (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn >> 6) & 0x1f) | (insn & 0x20);
}
@@ -1223,11 +1183,10 @@ extract_mb6 (insn, dialect, invalid)
0. */
static unsigned long
-insert_nb (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_nb (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
if (value < 0 || value > 32)
*errmsg = _("value out of range");
@@ -1238,10 +1197,9 @@ insert_nb (insn, value, dialect, errmsg)
/*ARGSUSED*/
static long
-extract_nb (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_nb (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
long ret;
@@ -1258,24 +1216,21 @@ extract_nb (insn, dialect, invalid)
/*ARGSUSED*/
static unsigned long
-insert_nsi (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_nsi (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
- return insn | ((- value) & 0xffff);
+ return insn | (-value & 0xffff);
}
static long
-extract_nsi (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid;
+extract_nsi (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid)
{
- if (invalid != (int *) NULL)
- *invalid = 1;
- return - (((insn & 0xffff) ^ 0x8000) - 0x8000);
+ *invalid = 1;
+ return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
}
/* The RA field in a D or X form instruction which is an updating
@@ -1283,11 +1238,10 @@ extract_nsi (insn, dialect, invalid)
equal the RT field. */
static unsigned long
-insert_ral (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_ral (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
if (value == 0
|| (unsigned long) value == ((insn >> 21) & 0x1f))
@@ -1299,31 +1253,29 @@ insert_ral (insn, value, dialect, errmsg)
restrictions. */
static unsigned long
-insert_ram (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_ram (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
if ((unsigned long) value >= ((insn >> 21) & 0x1f))
*errmsg = _("index register in load range");
return insn | ((value & 0x1f) << 16);
}
- /* The RA field in the DQ form lq instruction, which has special
- value restrictions. */
+/* The RA field in the DQ form lq instruction, which has special
+ value restrictions. */
/*ARGSUSED*/
static unsigned long
-insert_raq (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_raq (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
long rtvalue = (insn & RT_MASK) >> 21;
- if (value == rtvalue && errmsg != NULL)
+ if (value == rtvalue)
*errmsg = _("source and target register operands must be different");
return insn | ((value & 0x1f) << 16);
}
@@ -1333,11 +1285,10 @@ insert_raq (insn, value, dialect, errmsg)
field may not be zero. */
static unsigned long
-insert_ras (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_ras (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
if (value == 0)
*errmsg = _("invalid register operand when updating");
@@ -1352,55 +1303,50 @@ insert_ras (insn, value, dialect, errmsg)
/*ARGSUSED*/
static unsigned long
-insert_rbs (insn, value, dialect, errmsg)
- unsigned long insn;
- long value ATTRIBUTE_UNUSED;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_rbs (unsigned long insn,
+ long value ATTRIBUTE_UNUSED,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | (((insn >> 21) & 0x1f) << 11);
}
static long
-extract_rbs (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid;
+extract_rbs (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid)
{
- if (invalid != (int *) NULL
- && ((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
+ if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
*invalid = 1;
return 0;
}
- /* The RT field of the DQ form lq instruction, which has special
- value restrictions. */
+/* The RT field of the DQ form lq instruction, which has special
+ value restrictions. */
/*ARGSUSED*/
static unsigned long
-insert_rtq (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_rtq (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 1) != 0 && errmsg != NULL)
+ if ((value & 1) != 0)
*errmsg = _("target register operand must be even");
return insn | ((value & 0x1f) << 21);
}
- /* The RS field of the DS form stq instruction, which has special
- value restrictions. */
+/* The RS field of the DS form stq instruction, which has special
+ value restrictions. */
/*ARGSUSED*/
static unsigned long
-insert_rsq (insn, value, dialect, errmsg)
- unsigned long insn;
- long value ATTRIBUTE_UNUSED;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg;
+insert_rsq (unsigned long insn,
+ long value ATTRIBUTE_UNUSED,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg)
{
- if ((value & 1) != 0 && errmsg != NULL)
+ if ((value & 1) != 0)
*errmsg = _("source register operand must be even");
return insn | ((value & 0x1f) << 21);
}
@@ -1409,21 +1355,19 @@ insert_rsq (insn, value, dialect, errmsg)
/*ARGSUSED*/
static unsigned long
-insert_sh6 (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_sh6 (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
}
/*ARGSUSED*/
static long
-extract_sh6 (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_sh6 (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
}
@@ -1432,20 +1376,18 @@ extract_sh6 (insn, dialect, invalid)
lower 5 bits are stored in the upper 5 and vice- versa. */
static unsigned long
-insert_spr (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_spr (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
}
static long
-extract_spr (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_spr (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
}
@@ -1461,11 +1403,10 @@ extract_spr (insn, dialect, invalid)
#define TB (268)
static unsigned long
-insert_tbr (insn, value, dialect, errmsg)
- unsigned long insn;
- long value;
- int dialect ATTRIBUTE_UNUSED;
- const char **errmsg ATTRIBUTE_UNUSED;
+insert_tbr (unsigned long insn,
+ long value,
+ int dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
{
if (value == 0)
value = TB;
@@ -1473,10 +1414,9 @@ insert_tbr (insn, value, dialect, errmsg)
}
static long
-extract_tbr (insn, dialect, invalid)
- unsigned long insn;
- int dialect ATTRIBUTE_UNUSED;
- int *invalid ATTRIBUTE_UNUSED;
+extract_tbr (unsigned long insn,
+ int dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
{
long ret;
@@ -1739,7 +1679,7 @@ extract_tbr (insn, dialect, invalid)
#define XS_MASK XS (0x3f, 0x1ff, 1)
/* A mask for the FXM version of an XFX form instruction. */
-#define XFXFXM_MASK (X_MASK | (((unsigned long)1) << 20) | (((unsigned long)1) << 11))
+#define XFXFXM_MASK (X_MASK | (1 << 11))
/* An XFX form instruction with the FXM field filled in. */
#define XFXM(op, xop, fxm) \
@@ -1831,6 +1771,7 @@ extract_tbr (insn, dialect, invalid)
#define PPCONLY PPC_OPCODE_PPC
#define PPC403 PPC_OPCODE_403
#define PPC405 PPC403
+#define PPC440 PPC_OPCODE_440
#define PPC750 PPC
#define PPC860 PPC
#define PPCVEC PPC_OPCODE_ALTIVEC | PPC_OPCODE_ANY | PPC_OPCODE_PPC
@@ -1923,90 +1864,90 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "twi", OP(3), OP_MASK, PPCCOM, { TO, RA, SI } },
{ "ti", OP(3), OP_MASK, PWRCOM, { TO, RA, SI } },
-{ "macchw", XO(4,172,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchw.", XO(4,172,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwo", XO(4,172,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwo.", XO(4,172,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchws", XO(4,236,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchws.", XO(4,236,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwso", XO(4,236,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwso.", XO(4,236,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwsu", XO(4,204,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwsu.", XO(4,204,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwsuo", XO(4,204,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwsuo.", XO(4,204,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwu", XO(4,140,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwu.", XO(4,140,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwuo", XO(4,140,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "macchwuo.", XO(4,140,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhw", XO(4,44,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhw.", XO(4,44,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwo", XO(4,44,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwo.", XO(4,44,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhws", XO(4,108,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhws.", XO(4,108,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwso", XO(4,108,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwso.", XO(4,108,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwsu", XO(4,76,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwsu.", XO(4,76,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwsuo", XO(4,76,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwsuo.", XO(4,76,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwu", XO(4,12,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwu.", XO(4,12,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwuo", XO(4,12,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "machhwuo.", XO(4,12,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhw", XO(4,428,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhw.", XO(4,428,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwo", XO(4,428,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwo.", XO(4,428,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhws", XO(4,492,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhws.", XO(4,492,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwso", XO(4,492,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwso.", XO(4,492,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwsu", XO(4,460,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwsu.", XO(4,460,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwsuo", XO(4,460,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwsuo.", XO(4,460,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwu", XO(4,396,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwu.", XO(4,396,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwuo", XO(4,396,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "maclhwuo.", XO(4,396,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "mulchw", XRC(4,168,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulchw.", XRC(4,168,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulchwu", XRC(4,136,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulchwu.", XRC(4,136,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulhhw", XRC(4,40,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulhhw.", XRC(4,40,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulhhwu", XRC(4,8,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mulhhwu.", XRC(4,8,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "mullhw", XRC(4,424,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mullhw.", XRC(4,424,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "mullhwu", XRC(4,392,0), X_MASK, PPC405, { RT, RA, RB } },
-{ "mullhwu.", XRC(4,392,1), X_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchw", XO(4,174,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchw.", XO(4,174,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchwo", XO(4,174,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchwo.", XO(4,174,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchws", XO(4,238,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchws.", XO(4,238,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchwso", XO(4,238,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmacchwso.", XO(4,238,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhw", XO(4,46,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhw.", XO(4,46,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhwo", XO(4,46,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhwo.", XO(4,46,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhws", XO(4,110,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhws.", XO(4,110,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhwso", XO(4,110,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmachhwso.", XO(4,110,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhw", XO(4,430,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhw.", XO(4,430,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhwo", XO(4,430,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhwo.", XO(4,430,1,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhws", XO(4,494,0,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhws.", XO(4,494,0,1), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhwso", XO(4,494,1,0), XO_MASK, PPC405, { RT, RA, RB } },
-{ "nmaclhwso.", XO(4,494,1,1), XO_MASK, PPC405, { RT, RA, RB } },
+{ "macchw", XO(4,172,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchw.", XO(4,172,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwo", XO(4,172,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwo.", XO(4,172,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchws", XO(4,236,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchws.", XO(4,236,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwso", XO(4,236,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwso.", XO(4,236,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwsu", XO(4,204,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwsu.", XO(4,204,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwsuo", XO(4,204,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwsuo.", XO(4,204,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwu", XO(4,140,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwu.", XO(4,140,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwuo", XO(4,140,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "macchwuo.", XO(4,140,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhw", XO(4,44,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhw.", XO(4,44,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwo", XO(4,44,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwo.", XO(4,44,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhws", XO(4,108,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhws.", XO(4,108,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwso", XO(4,108,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwso.", XO(4,108,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwsu", XO(4,76,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwsu.", XO(4,76,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwsuo", XO(4,76,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwsuo.", XO(4,76,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwu", XO(4,12,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwu.", XO(4,12,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwuo", XO(4,12,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "machhwuo.", XO(4,12,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhw", XO(4,428,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhw.", XO(4,428,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwo", XO(4,428,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwo.", XO(4,428,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhws", XO(4,492,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhws.", XO(4,492,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwso", XO(4,492,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwso.", XO(4,492,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwsu", XO(4,460,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwsu.", XO(4,460,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwsuo", XO(4,460,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwsuo.", XO(4,460,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwu", XO(4,396,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwu.", XO(4,396,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwuo", XO(4,396,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "maclhwuo.", XO(4,396,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulchw", XRC(4,168,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulchw.", XRC(4,168,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulchwu", XRC(4,136,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulchwu.", XRC(4,136,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulhhw", XRC(4,40,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulhhw.", XRC(4,40,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulhhwu", XRC(4,8,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mulhhwu.", XRC(4,8,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mullhw", XRC(4,424,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mullhw.", XRC(4,424,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mullhwu", XRC(4,392,0), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "mullhwu.", XRC(4,392,1), X_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchw", XO(4,174,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchw.", XO(4,174,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchwo", XO(4,174,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchwo.", XO(4,174,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchws", XO(4,238,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchws.", XO(4,238,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchwso", XO(4,238,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmacchwso.", XO(4,238,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhw", XO(4,46,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhw.", XO(4,46,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhwo", XO(4,46,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhwo.", XO(4,46,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhws", XO(4,110,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhws.", XO(4,110,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhwso", XO(4,110,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmachhwso.", XO(4,110,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhw", XO(4,430,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhw.", XO(4,430,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhwo", XO(4,430,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhwo.", XO(4,430,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhws", XO(4,494,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhws.", XO(4,494,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhwso", XO(4,494,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
+{ "nmaclhwso.", XO(4,494,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } },
{ "mfvscr", VX(4, 1540), VX_MASK, PPCVEC, { VD } },
{ "mtvscr", VX(4, 1604), VX_MASK, PPCVEC, { VB } },
{ "vaddcuw", VX(4, 384), VX_MASK, PPCVEC, { VD, VA, VB } },
@@ -3286,7 +3227,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "iseleq", X(31,79), X_MASK, PPCISEL, { RT, RA, RB } },
{ "isel", XISEL(31,15), XISEL_MASK, PPCISEL, { RT, RA, RB, CRB } },
-{ "mfcr", X(31,19), XRARB_MASK, COM, { RT } },
+{ "mfcr", X(31,19), XRARB_MASK, NOPOWER4, { RT } },
+{ "mfcr", X(31,19), XFXFXM_MASK, POWER4, { RT, FXM4 } },
{ "lwarx", X(31,20), X_MASK, PPC, { RT, RA, RB } },
@@ -3373,6 +3315,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "mulhw", XO(31,75,0,0), XO_MASK, PPC, { RT, RA, RB } },
{ "mulhw.", XO(31,75,0,1), XO_MASK, PPC, { RT, RA, RB } },
+{ "dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440, { RA, RS, RB } },
+{ "dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440, { RA, RS, RB } },
+
{ "mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, { SR, RS } },
{ "mfmsr", X(31,83), XRARB_MASK, COM, { RT } },
@@ -3437,7 +3382,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "dcbtstlse",X(31,142),X_MASK, PPCCHLK64, { CT, RA, RB }},
-{ "mtcr", XFXM(31,144,0xff), XFXFXM_MASK|FXM_MASK, COM, { RS }},
+{ "mtcr", XFXM(31,144,0xff), XRARB_MASK, COM, { RS }},
{ "mtcrf", X(31,144), XFXFXM_MASK, COM, { FXM, RS } },
{ "mtmsr", X(31,146), XRARB_MASK, COM, { RS } },
@@ -3842,7 +3787,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, { RA, RB, STRM } },
{ "dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, { RA, RB, STRM } },
-{ "dccci", X(31,454), XRT_MASK, PPC403, { RA, RB } },
+{ "dccci", X(31,454), XRT_MASK, PPC403|PPC440, { RA, RB } },
{ "abs", XO(31,360,0,0), XORB_MASK, M601, { RT, RA } },
{ "abs.", XO(31,360,0,1), XORB_MASK, M601, { RT, RA } },
@@ -4124,7 +4069,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "dcbie", X(31,478), XRT_MASK, BOOKE64, { RA, RB } },
-{ "dcread", X(31,486), X_MASK, PPC403, { RT, RA, RB }},
+{ "dcread", X(31,486), X_MASK, PPC403|PPC440, { RT, RA, RB }},
{ "mtpmr", X(31,462), X_MASK, PPCPMR, { PMR, RS }},
@@ -4347,7 +4292,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "stduxe", X(31,959), X_MASK, BOOKE64, { RS, RAS, RB } },
-{ "iccci", X(31,966), XRT_MASK, PPC403, { RA, RB } },
+{ "iccci", X(31,966), XRT_MASK, PPC403|PPC440, { RA, RB } },
{ "tlbwe", X(31,978), X_MASK, BOOKE, { 0 } },
@@ -4364,7 +4309,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "extsw", XRC(31,986,0), XRB_MASK, PPC64 | BOOKE64,{ RA, RS } },
{ "extsw.", XRC(31,986,1), XRB_MASK, PPC64, { RA, RS } },
-{ "icread", X(31,998), XRT_MASK, PPC403, { RA, RB } },
+{ "icread", X(31,998), XRT_MASK, PPC403|PPC440, { RA, RB } },
{ "icbie", X(31,990), XRT_MASK, BOOKE64, { RA, RB } },
{ "stfiwxe", X(31,991), X_MASK, BOOKE64, { FRS, RA, RB } },
diff --git a/opcodes/s390-dis.c b/opcodes/s390-dis.c
index 33121c7..42f5151 100644
--- a/opcodes/s390-dis.c
+++ b/opcodes/s390-dis.c
@@ -89,6 +89,10 @@ s390_extract_operand (insn, operand)
val >>= -bits;
val &= ((1U << (operand->bits - 1)) << 1) - 1;
+ /* Check for special long displacement case. */
+ if (operand->bits == 20 && operand->shift == 20)
+ val = (val & 0xff) << 12 | (val & 0xfff00) >> 8;
+
/* Sign extend value if the operand is signed or pc relative. */
if ((operand->flags & (S390_OPERAND_SIGNED | S390_OPERAND_PCREL))
&& (val & (1U << (operand->bits - 1))))
diff --git a/opcodes/s390-mkopc.c b/opcodes/s390-mkopc.c
index caa9993..34188e6 100644
--- a/opcodes/s390-mkopc.c
+++ b/opcodes/s390-mkopc.c
@@ -34,7 +34,8 @@ enum s390_opcode_cpu_val
{
S390_OPCODE_G5 = 0,
S390_OPCODE_G6,
- S390_OPCODE_Z900
+ S390_OPCODE_Z900,
+ S390_OPCODE_Z990
};
struct op_struct
@@ -192,6 +193,8 @@ main (void)
min_cpu = S390_OPCODE_G6;
else if (strcmp (cpu_string, "z900") == 0)
min_cpu = S390_OPCODE_Z900;
+ else if (strcmp (cpu_string, "z990") == 0)
+ min_cpu = S390_OPCODE_Z990;
else {
fprintf (stderr, "Couldn't parse cpu string %s\n", cpu_string);
exit (1);
diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c
index a283783..1a4b276 100644
--- a/opcodes/s390-opc.c
+++ b/opcodes/s390-opc.c
@@ -98,33 +98,35 @@ const struct s390_operand s390_operands[] =
{ 12, 20, S390_OPERAND_DISP },
#define D_36 25 /* Displacement starting at position 36 */
{ 12, 36, S390_OPERAND_DISP },
+#define D20_20 26 /* 20 bit displacement starting at 20 */
+ { 20, 20, S390_OPERAND_DISP|S390_OPERAND_SIGNED },
-#define L4_8 26 /* 4 bit length starting at position 8 */
+#define L4_8 27 /* 4 bit length starting at position 8 */
{ 4, 8, S390_OPERAND_LENGTH },
-#define L4_12 27 /* 4 bit length starting at position 12 */
+#define L4_12 28 /* 4 bit length starting at position 12 */
{ 4, 12, S390_OPERAND_LENGTH },
-#define L8_8 28 /* 8 bit length starting at position 8 */
+#define L8_8 29 /* 8 bit length starting at position 8 */
{ 8, 8, S390_OPERAND_LENGTH },
-#define U4_8 29 /* 4 bit unsigned value starting at 8 */
+#define U4_8 30 /* 4 bit unsigned value starting at 8 */
{ 4, 8, 0 },
-#define U4_12 30 /* 4 bit unsigned value starting at 12 */
+#define U4_12 31 /* 4 bit unsigned value starting at 12 */
{ 4, 12, 0 },
-#define U4_16 31 /* 4 bit unsigned value starting at 16 */
+#define U4_16 32 /* 4 bit unsigned value starting at 16 */
{ 4, 16, 0 },
-#define U4_20 32 /* 4 bit unsigned value starting at 20 */
+#define U4_20 33 /* 4 bit unsigned value starting at 20 */
{ 4, 20, 0 },
-#define U8_8 33 /* 8 bit unsigned value starting at 8 */
+#define U8_8 34 /* 8 bit unsigned value starting at 8 */
{ 8, 8, 0 },
-#define U8_16 34 /* 8 bit unsigned value starting at 16 */
+#define U8_16 35 /* 8 bit unsigned value starting at 16 */
{ 8, 16, 0 },
-#define I16_16 35 /* 16 bit signed value starting at 16 */
+#define I16_16 36 /* 16 bit signed value starting at 16 */
{ 16, 16, S390_OPERAND_SIGNED },
-#define U16_16 36 /* 16 bit unsigned value starting at 16 */
+#define U16_16 37 /* 16 bit unsigned value starting at 16 */
{ 16, 16, 0 },
-#define J16_16 37 /* PC relative jump offset at 16 */
+#define J16_16 38 /* PC relative jump offset at 16 */
{ 16, 16, S390_OPERAND_PCREL },
-#define J32_16 38 /* PC relative long offset at 16 */
+#define J32_16 39 /* PC relative long offset at 16 */
{ 32, 16, S390_OPERAND_PCREL }
};
@@ -194,6 +196,7 @@ const struct s390_operand s390_operands[] =
#define INSTR_RRF_F0FF 4, { F_16,F_24,F_28,0,0,0 } /* e.g. madbr */
#define INSTR_RRF_FUFF 4, { F_24,F_16,F_28,U4_20,0,0 } /* e.g. didbr */
#define INSTR_RRF_RURR 4, { R_24,R_28,R_16,U4_20,0,0 } /* e.g. .insn */
+#define INSTR_RRF_R0RR 4, { R_24,R_28,R_16,0,0,0 } /* e.g. idte */
#define INSTR_RRF_U0FF 4, { F_24,U4_16,F_28,0,0,0 } /* e.g. cfxbr */
#define INSTR_RRF_U0FR 4, { F_24,U4_16,R_28,0,0,0 } /* e.g. cfebr */
#define INSTR_RRF_U0FR 4, { F_24,U4_16,R_28,0,0,0 } /* e.g. cfxbr */
@@ -205,7 +208,11 @@ const struct s390_operand s390_operands[] =
#define INSTR_RR_UR 2, { U4_8,R_12,0,0,0,0 } /* e.g. bcr */
#define INSTR_RSE_RRRD 6, { R_8,R_12,D_20,B_16,0,0 } /* e.g. lmh */
#define INSTR_RSE_RURD 6, { R_8,U4_12,D_20,B_16,0,0 } /* e.g. icmh */
+#define INSTR_RSL_R0RD 6, { R_8,D_20,B_16,0,0,0 } /* e.g. tp */
#define INSTR_RSI_RRP 4, { R_8,R_12,J16_16,0,0,0 } /* e.g. brxh */
+#define INSTR_RSY_RRRD 6, { R_8,R_12,D20_20,B_16,0,0 } /* e.g. stmy */
+#define INSTR_RSY_RURD 6, { R_8,U4_12,D20_20,B_16,0,0 } /* e.g. icmh */
+#define INSTR_RSY_AARD 6, { A_8,A_12,D20_20,B_16,0,0 } /* e.g. lamy */
#define INSTR_RS_AARD 4, { A_8,A_12,D_20,B_16,0,0 } /* e.g. lam */
#define INSTR_RS_CCRD 4, { C_8,C_12,D_20,B_16,0,0 } /* e.g. lctl */
#define INSTR_RS_R0RD 4, { R_8,D_20,B_16,0,0,0 } /* e.g. sll */
@@ -215,11 +222,14 @@ const struct s390_operand s390_operands[] =
#define INSTR_RXE_RRRD 6, { R_8,D_20,X_12,B_16,0,0 } /* e.g. lg */
#define INSTR_RXF_FRRDF 6, { F_32,F_8,D_20,X_12,B_16,0 } /* e.g. madb */
#define INSTR_RXF_RRRDR 6, { R_32,R_8,D_20,X_12,B_16,0 } /* e.g. .insn */
+#define INSTR_RXY_RRRD 6, { R_8,D20_20,X_12,B_16,0,0 } /* e.g. ly */
+#define INSTR_RXY_FRRD 6, { F_8,D20_20,X_12,B_16,0,0 } /* e.g. ley */
#define INSTR_RX_0RRD 4, { D_20,X_12,B_16,0,0,0 } /* e.g. be */
#define INSTR_RX_FRRD 4, { F_8,D_20,X_12,B_16,0,0 } /* e.g. ae */
#define INSTR_RX_RRRD 4, { R_8,D_20,X_12,B_16,0,0 } /* e.g. l */
#define INSTR_RX_URRD 4, { U4_8,D_20,X_12,B_16,0,0 } /* e.g. bc */
#define INSTR_SI_URD 4, { D_20,B_16,U8_8,0,0,0 } /* e.g. cli */
+#define INSTR_SIY_URD 6, { D20_20,B_16,U8_8,0,0,0 } /* e.g. tmy */
#define INSTR_SSE_RDRD 6, { D_20,B_16,D_36,B_32,0,0 } /* e.g. mvsdk */
#define INSTR_SS_L0RDRD 6, { D_20,L8_8,B_16,D_36,B_32,0 } /* e.g. mvc */
#define INSTR_SS_LIRDRD 6, { D_20,L4_8,B_16,D_36,B_32,U4_12 } /* e.g. srp */
@@ -253,6 +263,7 @@ const struct s390_operand s390_operands[] =
#define MASK_RRF_F0FF { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
#define MASK_RRF_FUFF { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RRF_RURR { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RRF_R0RR { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RRF_U0FF { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
#define MASK_RRF_U0FR { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
#define MASK_RRF_U0FR { 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00 }
@@ -264,21 +275,28 @@ const struct s390_operand s390_operands[] =
#define MASK_RR_UR { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RSE_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RSE_RURD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSL_R0RD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RSI_RRP { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RS_AARD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RS_CCRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RS_R0RD { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RS_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RS_RURD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_RSY_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_RURD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RSY_AARD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RXE_FRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RXE_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RXF_FRRDF { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RXF_RRRDR { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXY_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
+#define MASK_RXY_FRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_RX_0RRD { 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RX_FRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RX_RRRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_RX_URRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_SI_URD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
+#define MASK_SIY_URD { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
#define MASK_SSE_RDRD { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
#define MASK_SS_L0RDRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define MASK_SS_LIRDRD { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }
@@ -303,11 +321,14 @@ const struct s390_opcode s390_opformats[] =
{ "rs", OP8(0x00LL), MASK_RS_RRRD, INSTR_RS_RRRD, 3, 0 },
{ "rse", OP8(0x00LL), MASK_RSE_RRRD, INSTR_RSE_RRRD, 3, 0 },
{ "rsi", OP8(0x00LL), MASK_RSI_RRP, INSTR_RSI_RRP, 3, 0 },
+ { "rsy", OP8(0x00LL), MASK_RSY_RRRD, INSTR_RSY_RRRD, 3, 3 },
{ "rx", OP8(0x00LL), MASK_RX_RRRD, INSTR_RX_RRRD, 3, 0 },
{ "rxe", OP8(0x00LL), MASK_RXE_RRRD, INSTR_RXE_RRRD, 3, 0 },
{ "rxf", OP8(0x00LL), MASK_RXF_RRRDR, INSTR_RXF_RRRDR,3, 0 },
+ { "rxy", OP8(0x00LL), MASK_RXY_RRRD, INSTR_RXY_RRRD, 3, 3 },
{ "s", OP8(0x00LL), MASK_S_RD, INSTR_S_RD, 3, 0 },
{ "si", OP8(0x00LL), MASK_SI_URD, INSTR_SI_URD, 3, 0 },
+ { "siy", OP8(0x00LL), MASK_SIY_URD, INSTR_SIY_URD, 3, 3 },
{ "ss", OP8(0x00LL), MASK_SS_RRRDRD, INSTR_SS_RRRDRD,3, 0 },
{ "sse", OP8(0x00LL), MASK_SSE_RDRD, INSTR_SSE_RDRD, 3, 0 },
};
diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
index f0b7f83..be08c82 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -109,6 +109,8 @@ b7 lctl RS_CCRD "load control" g5 esa,zarch
b1 lra RX_RRRD "load real address" g5 esa,zarch
25 lrdr RR_FF "load rounded (ext. to long)" g5 esa,zarch
35 lrer RR_FF "load rounded (long to short)" g5 esa,zarch
+25 ldxr RR_FF "load rounded (ext. to long)" g5 esa,zarch
+35 ledr RR_FF "load rounded (long to short)" g5 esa,zarch
22 ltdr RR_FF "load and test (long)" g5 esa,zarch
32 lter RR_FF "load and test (short)" g5 esa,zarch
12 ltr RR_RR "load and test" g5 esa,zarch
@@ -118,7 +120,9 @@ af mc SI_URD "monitor call" g5 esa,zarch
6c md RX_FRRD "multiply (long)" g5 esa,zarch
2c mdr RR_FF "multiply (long)" g5 esa,zarch
7c me RX_FRRD "multiply (short to long)" g5 esa,zarch
+7c mde RX_FRRD "multiply (short to long)" g5 esa,zarch
3c mer RR_FF "multiply (short to long)" g5 esa,zarch
+3c mder RR_FF "multiply short to long hfp" g5 esa,zarch
4c mh RX_RRRD "multiply halfword" g5 esa,zarch
fc mp SS_LLRDRD "multiply decimal" g5 esa,zarch
1c mr RR_RR "multiply" g5 esa,zarch
@@ -623,3 +627,167 @@ e30000000090 llgc RXE_RRRD "load logical character" z900 zarch
e30000000091 llgh RXE_RRRD "load logical halfword" z900 zarch
eb000000001c rllg RSE_RRRD "rotate left single logical 64" z900 zarch
eb000000001d rll RSE_RRRD "rotate left single logical 32" z900 esa,zarch
+b369 cxr RRE_FF "compare extended hfp" g5 esa,zarch
+b3b6 cxfr RRE_RF "convert from fixed 32 to extended hfp" g5 esa,zarch
+b3b5 cdfr RRE_RF "convert from fixed 32 to long hfp" g5 esa,zarch
+b3b4 cefr RRE_RF "convert from fixed 32 to short hfp" g5 esa,zarch
+b3ba cfxr RRF_U0FR "convert to fixed extended hfp to 32" z900 zarch
+b3b9 cfdr RRF_U0FR "convert to fixed long hfp to 32" z900 zarch
+b3b8 cfer RRF_U0FR "convert to fixed short hfp to 32" z900 zarch
+b362 ltxr RRE_FF "load and test extended hfp" g5 esa,zarch
+b363 lcxr RRE_FF "load complement extended hfp" g5 esa,zarch
+b367 fixr RRF_U0FF "load fp integer extended hfp" g5 esa,zarch
+b37f fidr RRF_U0FF "load fp integer long hfp" g5 esa,zarch
+b377 fier RRF_U0FF "load fp integer short hfp" g5 esa,zarch
+b325 lxdr RRE_FF "load lengthened long to extended hfp" g5 esa,zarch
+ed0000000025 lxd RXE_FRRD "load lengthened long to extended hfp" g5 esa,zarch
+b326 lxer RRE_FF "load lengthened short to extended hfp" g5 esa,zarch
+ed0000000026 lxe RXE_FRRD "load lengthened short to extended hfp" g5 esa,zarch
+b324 lder RRE_FF "load lengthened short to long hfp" g5 esa,zarch
+ed0000000024 lde RXE_FRRD "load lengthened short to long hfp" g5 esa,zarch
+b361 lnxr RRE_FF "load negative long hfp" g5 esa,zarch
+b360 lpxr RRE_FF "load positive long hfp" g5 esa,zarch
+b366 lexr RRE_FF "load rounded extended to short hfp" g5 esa,zarch
+35 ledr RR_FF "load rounded long to short hfp" g5 esa,zarch
+b337 meer RRE_FF "multiply short hfp" g5 esa,zarch
+ed0000000037 mee RXE_FRRD "multiply short hfp" g5 esa,zarch
+b336 sqxr RRE_FF "square root extended hfp" g5 esa,zarch
+ed0000000034 sqe RXE_FRRD "square root short hfp" g5 esa,zarch
+b263 cmpsc RRE_RR "compression call" g5 esa,zarch
+eb00000000c0 tp RSL_R0RD "test decimal" g5 esa,zarch
+b365 lxr RRE_RR "load extended hfp" g5 esa,zarch
+b22e pgin RRE_RR "page in" g5 esa,zarch
+b22f pgout RRE_RR "page out" g5 esa,zarch
+b276 xsch S_00 "cancel subchannel" g5 esa,zarch
+# New long displacement instructions on z990
+e3000000005a ay RXY_RRRD "add with long offset" z990 zarch
+e3000000007a ahy RXY_RRRD "add halfword with long offset" z990 zarch
+e3000000005e aly RXY_RRRD "add logical with long offset" z990 zarch
+eb0000000054 niy SIY_URD "and immediate with long offset" z990 zarch
+e30000000054 ny RXY_RRRD "and with long offset" z990 zarch
+e30000000059 cy RXY_RRRD "compare with long offset" z990 zarch
+eb0000000014 csy RSY_RRRD "compare and swap with long offset" z990 zarch
+eb0000000031 cdsy RSY_RRRD "compare double and swap with long offset" z990 zarch
+e30000000079 chy RXY_RRRD "compare halfword with long offset" z990 zarch
+e30000000055 cly RXY_RRRD "compare logical with long offset" z990 zarch
+eb0000000055 cliy SIY_URD "compare logical immediate with long offset" z990 zarch
+eb0000000021 clmy RSY_RURD "compare logical characters under mask with long offset" z990 zarch
+e30000000006 cvby RXY_RRRD "convert to binary with long offset" z990 zarch
+e30000000026 cvdy RXY_RRRD "convert to decimal with long offset" z990 zarch
+eb0000000057 xiy SIY_URD "exclusive or immediate with long offset" z990 zarch
+e30000000057 xy RXY_RRRD "exclusive or with long offset" z990 zarch
+e30000000073 icy RXY_RRRD "insert character with long offset" z990 zarch
+eb0000000081 icmy RSY_RURD "insert characters with long offset" z990 zarch
+ed0000000065 ldy RXY_FRRD "load (long) with long offset" z990 zarch
+ed0000000064 ley RXY_FRRD "load (short) with long offset" z990 zarch
+e30000000058 ly RXY_RRRD "load with long offset" z990 zarch
+eb000000009a lamy RSY_AARD "load access multiple" z990 zarch
+e30000000071 lay RXY_RRRD "load address with long offset" z990 zarch
+e30000000076 lb RXY_RRRD "load byte with long offset" z990 zarch
+e30000000077 lgb RXY_RRRD "load byte with long offset 64" z990 zarch
+e30000000078 lhy RXY_RRRD "load halfword with long offset" z990 zarch
+eb0000000098 lmy RSY_RRRD "load multiple with long offset" z990 zarch
+e30000000013 lray RXY_RRRD "load real address with long offset" z990 zarch
+eb0000000052 mviy SIY_URD "move immediate with long offset" z990 zarch
+e30000000051 msy RXY_RRRD "multiply single with long offset" z990 zarch
+eb0000000056 oiy SIY_URD "or immediate with long offset" z990 zarch
+e30000000056 oy RXY_RRRD "or with long offset" z990 zarch
+ed0000000067 stdy RXY_FRRD "load (long) with long offset" z990 zarch
+ed0000000066 stey RXY_FRRD "load (short) with long offset" z990 zarch
+e30000000050 sty RXY_RRRD "store with long offset" z990 zarch
+eb000000009b stamy RSY_AARD "store access multiple with long offset" z990 zarch
+e30000000072 stcy RXY_RRRD "store character with long offset" z990 zarch
+eb000000002d stcmy RSY_RURD "store characters under mask with long offset" z990 zarch
+e30000000070 sthy RXY_RRRD "store halfword with long offset" z990 zarch
+eb0000000090 stmy RSY_RRRD "store multiple with long offset" z990 zarch
+e3000000005b sy RXY_RRRD "subtract with long offset" z990 zarch
+e3000000007b shy RXY_RRRD "subtract halfword with long offset" z990 zarch
+e3000000005f sly RXY_RRRD "subtract logical with long offset" z990 zarch
+eb0000000051 tmy SIY_URD "test under mask with long offset" z990 zarch
+# 'old' instructions extended to long displacement
+# these instructions are entered into the opcode table twice.
+e30000000003 lrag RXY_RRRD "load real address with long offset 64" z990 zarch
+e30000000004 lg RXY_RRRD " load 64" z990 zarch
+e30000000008 ag RXY_RRRD "add with long offset 64" z990 zarch
+e30000000009 sg RXY_RRRD "subtract with long offset 64" z990 zarch
+e3000000000a alg RXY_RRRD "add logical with long offset 64" z990 zarch
+e3000000000b slg RXY_RRRD "subtract logical with long offset 64" z990 zarch
+e3000000000c msg RXY_RRRD "multiply single with long offset 64" z990 zarch
+e3000000000d dsg RXY_RRRD "divide single 64" z990 zarch
+e3000000000e cvbg RXY_RRRD "convert to binary with long offset 64" z990 zarch
+e3000000000f lrvg RXY_RRRD "load reversed 64" z990 zarch
+e30000000014 lgf RXY_RRRD "load 64<32" z990 zarch
+e30000000015 lgh RXY_RRRD "load halfword 64" z990 zarch
+e30000000016 llgf RXY_RRRD "load logical 64<32" z990 zarch
+e30000000017 llgt RXY_RRRD "load logical thirty one bits" z990 zarch
+e30000000018 agf RXY_RRRD "add with long offset 64<32" z990 zarch
+e30000000019 sgf RXY_RRRD "subtract with long offset 64<32" z990 zarch
+e3000000001a algf RXY_RRRD "add logical with long offset 64<32" z990 zarch
+e3000000001b slgf RXY_RRRD "subtract logical with long offset 64<32" z990 zarch
+e3000000001c msgf RXY_RRRD "multiply single with long offset 64<32" z990 zarch
+e3000000001d dsgf RXY_RRRD "divide single 64<32" z990 zarch
+e3000000001e lrv RXY_RRRD "load reversed 32" z990 zarch
+e3000000001f lrvh RXY_RRRD "load reversed 16" z990 zarch
+e30000000020 cg RXY_RRRD "compare with long offset 64" z990 zarch
+e30000000021 clg RXY_RRRD "compare logical with long offset 64" z990 zarch
+e30000000024 stg RXY_RRRD "store with long offset 64" z990 zarch
+e3000000002e cvdg RXY_RRRD "convert to decimal with long offset 64" z990 zarch
+e3000000002f strvg RXY_RRRD "store reversed 64" z990 zarch
+e30000000030 cgf RXY_RRRD "compare with long offset 64<32" z990 zarch
+e30000000031 clgf RXY_RRRD "compare logical with long offset 64<32" z990 zarch
+e3000000003e strv RXY_RRRD "store reversed 32" z990 zarch
+e3000000003f strvh RXY_RRRD "store reversed 64" z990 zarch
+e30000000046 bctg RXY_RRRD "branch on count 64" z990 zarch
+e30000000080 ng RXY_RRRD "and with long offset 64" z990 zarch
+e30000000081 og RXY_RRRD "or with long offset 64" z990 zarch
+e30000000082 xg RXY_RRRD "exclusive or with long offset 64" z990 zarch
+e30000000086 mlg RXY_RRRD "multiply logical 64" z990 zarch
+e30000000087 dlg RXY_RRRD "divide logical 64" z990 zarch
+e30000000088 alcg RXY_RRRD "add logical with carry 64" z990 zarch
+e30000000089 slbg RXY_RRRD "subtract logical with borrow 64" z990 zarch
+e3000000008e stpq RXY_RRRD "store pair to quadword" z990 zarch
+e3000000008f lpq RXY_RRRD "load pair from quadword" z990 zarch
+e30000000090 llgc RXY_RRRD "load logical character" z990 zarch
+e30000000091 llgh RXY_RRRD "load logical halfword" z990 zarch
+e30000000096 ml RXY_RRRD "multiply logical 32" z990 zarch
+e30000000097 dl RXY_RRRD "divide logical 32" z990 zarch
+e30000000098 alc RXY_RRRD "add logical with carry 32" z990 zarch
+e30000000099 slb RXY_RRRD "subtract logical with borrow 32" z990 zarch
+eb0000000004 lmg RSY_RRRD "load multiple with long offset 64" z990 zarch
+eb000000000a srag RSY_RRRD "shift right single 64" z990 zarch
+eb000000000b slag RSY_RRRD "shift left single 64" z990 zarch
+eb000000000c srlg RSY_RRRD "shift right single logical 64" z990 zarch
+eb000000000d sllg RSY_RRRD "shift left single logical 64" z990 zarch
+eb000000000f tracg RSY_RRRD "trace 64" z990 zarch
+eb000000001c rllg RSY_RRRD "rotate left single logical 64" z990 zarch
+eb000000001d rll RSY_RRRD "rotate left single logical 32" z990 zarch
+eb0000000020 clmh RSY_RURD "compare logical characters under mask high with long offset" z990 zarch
+eb0000000024 stmg RSY_RRRD "store multiple with long offset 64" z990 zarch
+eb0000000025 stctg RSY_RRRD "store control 64" z990 zarch
+eb0000000026 stmh RSY_RRRD "store multiple high" z990 zarch
+eb000000002c stcmh RSY_RURD "store characters under mask high with long offset" z990 zarch
+eb000000002f lctlg RSY_RRRD "load control 64" z990 zarch
+eb0000000030 csg RSY_RRRD "compare and swap with long offset 64" z990 zarch
+eb000000003e cdsg RSY_RRRD "compare double and swap with long offset 64" z990 zarch
+eb0000000044 bxhg RSY_RRRD "branch on index high 64" z990 zarch
+eb0000000045 bxleg RSY_RRRD "branch on index low or equal 64" z990 zarch
+eb0000000080 icmh RSY_RURD "insert characters under mask high with long offset" z990 zarch
+eb000000008e mvclu RSY_RRRD "move long unicode" z990 zarch
+eb000000008f clclu RSY_RRRD "compare logical long unicode with long offset" z990 zarch
+eb0000000096 lmh RSY_RRRD "load multiple high" z990 zarch
+# new z990 instructions
+b98a cspg RRE_RR "compare and swap and purge" z990 zarch
+b98e idte RRF_R0RR "invalidate dat table entry" z990 zarch
+b33e madr RRF_F0FF "multiply and add long hfp" z990 esa,zarch
+ed000000003e mad RXF_FRRDF "multiply and add long hfp" z990 esa,zarch
+b32e maer RRF_F0FF "multiply and add short hfp" z990 esa,zarch
+ed000000002e mae RXF_FRRDF "multiply and add shoft hfp" z990 esa,zarch
+b33f msdr RRF_F0FF "multiply and subtract long hfp" z990 esa,zarch
+ed000000003f msd RXF_FRRDF "multiply and subtract long hfp" z990 esa,zarch
+b32f mser RRF_F0FF "mutliply and subtract short hfp" z990 esa,zarch
+ed000000002f mse RXF_FRRDF "multiply and subttract short hfp" z990 esa,zarch
+b92e km RRE_RR "cipher message" z990 esa,zarch
+b92f kmc RRE_RR "cipher message with chaining" z990 esa,zarch
+b93e kimd RRE_RR "compute intermediate message digest" z990 esa,zarch
+b93f klmd RRE_RR "compute last message digest" z990 esa,zarch
+b91e kmac RRE_RR "compute message authentication code" z990 esa,zarch
diff --git a/opcodes/xstormy16-asm.c b/opcodes/xstormy16-asm.c
index 810938c..618e33b 100644
--- a/opcodes/xstormy16-asm.c
+++ b/opcodes/xstormy16-asm.c
@@ -43,7 +43,7 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define max(a,b) ((a) > (b) ? (a) : (b))
static const char * parse_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *));
+ (CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *);
/* -- assembler routines inserted here. */
@@ -317,8 +317,7 @@ xstormy16_cgen_init_asm (cd)
Returns NULL for success, an error message for failure. */
char *
-xstormy16_cgen_build_insn_regex (insn)
- CGEN_INSN *insn;
+xstormy16_cgen_build_insn_regex (CGEN_INSN *insn)
{
CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn);
const char *mnem = CGEN_INSN_MNEMONIC (insn);
@@ -441,11 +440,10 @@ xstormy16_cgen_build_insn_regex (insn)
Returns NULL for success, an error message for failure. */
static const char *
-parse_insn_normal (cd, insn, strp, fields)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- const char **strp;
- CGEN_FIELDS *fields;
+parse_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ const char **strp,
+ CGEN_FIELDS *fields)
{
/* ??? Runtime added insns not handled yet. */
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
@@ -583,12 +581,11 @@ parse_insn_normal (cd, insn, strp, fields)
mind helps keep the design clean. */
const CGEN_INSN *
-xstormy16_cgen_assemble_insn (cd, str, fields, buf, errmsg)
- CGEN_CPU_DESC cd;
- const char *str;
- CGEN_FIELDS *fields;
- CGEN_INSN_BYTES_PTR buf;
- char **errmsg;
+xstormy16_cgen_assemble_insn (CGEN_CPU_DESC cd,
+ const char *str,
+ CGEN_FIELDS *fields,
+ CGEN_INSN_BYTES_PTR buf,
+ char **errmsg)
{
const char *start;
CGEN_INSN_LIST *ilist;
@@ -692,9 +689,7 @@ xstormy16_cgen_assemble_insn (cd, str, fields, buf, errmsg)
FIXME: Not currently used. */
void
-xstormy16_cgen_asm_hash_keywords (cd, opvals)
- CGEN_CPU_DESC cd;
- CGEN_KEYWORD *opvals;
+xstormy16_cgen_asm_hash_keywords (CGEN_CPU_DESC cd, CGEN_KEYWORD *opvals)
{
CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL);
const CGEN_KEYWORD_ENTRY * ke;
diff --git a/opcodes/xstormy16-dis.c b/opcodes/xstormy16-dis.c
index 17c54a6..54af257 100644
--- a/opcodes/xstormy16-dis.c
+++ b/opcodes/xstormy16-dis.c
@@ -41,21 +41,20 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define UNKNOWN_INSN_MSG _("*unknown*")
static void print_normal
- PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, long, unsigned int, bfd_vma, int);
static void print_address
- PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int));
+ (CGEN_CPU_DESC, void *, bfd_vma, unsigned int, bfd_vma, int);
static void print_keyword
- PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int));
+ (CGEN_CPU_DESC, void *, CGEN_KEYWORD *, long, unsigned int);
static void print_insn_normal
- PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *,
- bfd_vma, int));
+ (CGEN_CPU_DESC, void *, const CGEN_INSN *, CGEN_FIELDS *, bfd_vma, int);
static int print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned);
static int default_print_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *);
static int read_insn
- PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int,
- CGEN_EXTRACT_INFO *, unsigned long *));
+ (CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, CGEN_EXTRACT_INFO *,
+ unsigned long *);
/* -- disassembler routines inserted here */
@@ -194,13 +193,12 @@ xstormy16_cgen_init_dis (cd)
/* Default print handler. */
static void
-print_normal (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- long value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_normal (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ long value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -220,13 +218,12 @@ print_normal (cd, dis_info, value, attrs, pc, length)
/* Default address handler. */
static void
-print_address (cd, dis_info, value, attrs, pc, length)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- bfd_vma value;
- unsigned int attrs;
- bfd_vma pc ATTRIBUTE_UNUSED;
- int length ATTRIBUTE_UNUSED;
+print_address (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ bfd_vma value,
+ unsigned int attrs,
+ bfd_vma pc ATTRIBUTE_UNUSED,
+ int length ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
@@ -250,12 +247,11 @@ print_address (cd, dis_info, value, attrs, pc, length)
/* Keyword print handler. */
static void
-print_keyword (cd, dis_info, keyword_table, value, attrs)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- PTR dis_info;
- CGEN_KEYWORD *keyword_table;
- long value;
- unsigned int attrs ATTRIBUTE_UNUSED;
+print_keyword (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ void *dis_info,
+ CGEN_KEYWORD *keyword_table,
+ long value,
+ unsigned int attrs ATTRIBUTE_UNUSED)
{
disassemble_info *info = (disassemble_info *) dis_info;
const CGEN_KEYWORD_ENTRY *ke;
@@ -269,17 +265,16 @@ print_keyword (cd, dis_info, keyword_table, value, attrs)
/* Default insn printer.
- DIS_INFO is defined as `PTR' so the disassembler needn't know anything
+ DIS_INFO is defined as `void *' so the disassembler needn't know anything
about disassemble_info. */
static void
-print_insn_normal (cd, dis_info, insn, fields, pc, length)
- CGEN_CPU_DESC cd;
- PTR dis_info;
- const CGEN_INSN *insn;
- CGEN_FIELDS *fields;
- bfd_vma pc;
- int length;
+print_insn_normal (CGEN_CPU_DESC cd,
+ void *dis_info,
+ const CGEN_INSN *insn,
+ CGEN_FIELDS *fields,
+ bfd_vma pc,
+ int length)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
disassemble_info *info = (disassemble_info *) dis_info;
@@ -311,14 +306,13 @@ print_insn_normal (cd, dis_info, insn, fields, pc, length)
Returns 0 if all is well, non-zero otherwise. */
static int
-read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- int buflen;
- CGEN_EXTRACT_INFO *ex_info;
- unsigned long *insn_value;
+read_insn (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ int buflen,
+ CGEN_EXTRACT_INFO *ex_info,
+ unsigned long *insn_value)
{
int status = (*info->read_memory_func) (pc, buf, buflen, info);
if (status != 0)
@@ -342,12 +336,11 @@ read_insn (cd, pc, info, buf, buflen, ex_info, insn_value)
been called). */
static int
-print_insn (cd, pc, info, buf, buflen)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
- char *buf;
- unsigned int buflen;
+print_insn (CGEN_CPU_DESC cd,
+ bfd_vma pc,
+ disassemble_info *info,
+ char *buf,
+ unsigned int buflen)
{
CGEN_INSN_INT insn_value;
const CGEN_INSN_LIST *insn_list;
@@ -452,10 +445,7 @@ print_insn (cd, pc, info, buf, buflen)
#endif
static int
-default_print_insn (cd, pc, info)
- CGEN_CPU_DESC cd;
- bfd_vma pc;
- disassemble_info *info;
+default_print_insn (CGEN_CPU_DESC cd, bfd_vma pc, disassemble_info *info)
{
char buf[CGEN_MAX_INSN_SIZE];
int buflen;
@@ -494,9 +484,7 @@ typedef struct cpu_desc_list {
} cpu_desc_list;
int
-print_insn_xstormy16 (pc, info)
- bfd_vma pc;
- disassemble_info *info;
+print_insn_xstormy16 (bfd_vma pc, disassemble_info *info)
{
static cpu_desc_list *cd_list = 0;
cpu_desc_list *cl = 0;
diff --git a/opcodes/xstormy16-ibld.c b/opcodes/xstormy16-ibld.c
index 0e4876a..13433e0 100644
--- a/opcodes/xstormy16-ibld.c
+++ b/opcodes/xstormy16-ibld.c
@@ -44,30 +44,29 @@ along with this program; if not, write to the Free Software Foundation, Inc.,
#define FLD(f) (fields->f)
static const char * insert_normal
- PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR));
+ (CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR);
static const char * insert_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *,
- CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *,
+ CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma);
static int extract_normal
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int, unsigned int, bfd_vma, long *));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
+ unsigned int, unsigned int, unsigned int, unsigned int,
+ unsigned int, unsigned int, bfd_vma, long *);
static int extract_insn_normal
- PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
- CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma));
+ (CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *,
+ CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma);
#if CGEN_INT_INSN_P
static void put_insn_int_value
- PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT));
+ (CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT);
#endif
#if ! CGEN_INT_INSN_P
static CGEN_INLINE void insert_1
- PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *));
+ (CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *);
static CGEN_INLINE int fill_cache
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma);
static CGEN_INLINE long extract_1
- PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int,
- unsigned char *, bfd_vma));
+ (CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, unsigned char *, bfd_vma);
#endif
/* Operand insertion. */
@@ -77,11 +76,12 @@ static CGEN_INLINE long extract_1
/* Subroutine of insert_normal. */
static CGEN_INLINE void
-insert_1 (cd, value, start, length, word_length, bufp)
- CGEN_CPU_DESC cd;
- unsigned long value;
- int start,length,word_length;
- unsigned char *bufp;
+insert_1 (CGEN_CPU_DESC cd,
+ unsigned long value,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp)
{
unsigned long x,mask;
int shift;
@@ -118,13 +118,15 @@ insert_1 (cd, value, start, length, word_length, bufp)
necessary. */
static const char *
-insert_normal (cd, value, attrs, word_offset, start, length, word_length,
- total_length, buffer)
- CGEN_CPU_DESC cd;
- long value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
- CGEN_INSN_BYTES_PTR buffer;
+insert_normal (CGEN_CPU_DESC cd,
+ long value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
+ CGEN_INSN_BYTES_PTR buffer)
{
static char errbuf[100];
/* Written this way to avoid undefined behaviour. */
@@ -232,12 +234,11 @@ insert_normal (cd, value, attrs, word_offset, start, length, word_length,
The result is an error message or NULL if success. */
static const char *
-insert_insn_normal (cd, insn, fields, buffer, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN * insn;
- CGEN_FIELDS * fields;
- CGEN_INSN_BYTES_PTR buffer;
- bfd_vma pc;
+insert_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN * insn,
+ CGEN_FIELDS * fields,
+ CGEN_INSN_BYTES_PTR buffer,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
unsigned long value;
@@ -288,12 +289,11 @@ insert_insn_normal (cd, insn, fields, buffer, pc)
because it needs <prefix>-desc.h for CGEN_INT_INSN_P. */
static void
-put_insn_int_value (cd, buf, length, insn_length, value)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_INSN_BYTES_PTR buf;
- int length;
- int insn_length;
- CGEN_INSN_INT value;
+put_insn_int_value (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_INSN_BYTES_PTR buf,
+ int length,
+ int insn_length,
+ CGEN_INSN_INT value)
{
/* For architectures with insns smaller than the base-insn-bitsize,
length may be too big. */
@@ -320,11 +320,11 @@ put_insn_int_value (cd, buf, length, insn_length, value)
Returns 1 for success, 0 for failure. */
static CGEN_INLINE int
-fill_cache (cd, ex_info, offset, bytes, pc)
- CGEN_CPU_DESC cd ATTRIBUTE_UNUSED;
- CGEN_EXTRACT_INFO *ex_info;
- int offset, bytes;
- bfd_vma pc;
+fill_cache (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED,
+ CGEN_EXTRACT_INFO *ex_info,
+ int offset,
+ int bytes,
+ bfd_vma pc)
{
/* It's doubtful that the middle part has already been fetched so
we don't optimize that case. kiss. */
@@ -364,12 +364,13 @@ fill_cache (cd, ex_info, offset, bytes, pc)
/* Subroutine of extract_normal. */
static CGEN_INLINE long
-extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
- CGEN_CPU_DESC cd;
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
- int start,length,word_length;
- unsigned char *bufp;
- bfd_vma pc ATTRIBUTE_UNUSED;
+extract_1 (CGEN_CPU_DESC cd,
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
+ int start,
+ int length,
+ int word_length,
+ unsigned char *bufp,
+ bfd_vma pc ATTRIBUTE_UNUSED)
{
unsigned long x;
int shift;
@@ -408,23 +409,25 @@ extract_1 (cd, ex_info, start, length, word_length, bufp, pc)
necessary. */
static int
-extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
- word_length, total_length, pc, valuep)
- CGEN_CPU_DESC cd;
+extract_normal (CGEN_CPU_DESC cd,
#if ! CGEN_INT_INSN_P
- CGEN_EXTRACT_INFO *ex_info;
+ CGEN_EXTRACT_INFO *ex_info,
#else
- CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED;
+ CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED,
#endif
- CGEN_INSN_INT insn_value;
- unsigned int attrs;
- unsigned int word_offset, start, length, word_length, total_length;
+ CGEN_INSN_INT insn_value,
+ unsigned int attrs,
+ unsigned int word_offset,
+ unsigned int start,
+ unsigned int length,
+ unsigned int word_length,
+ unsigned int total_length,
#if ! CGEN_INT_INSN_P
- bfd_vma pc;
+ bfd_vma pc,
#else
- bfd_vma pc ATTRIBUTE_UNUSED;
+ bfd_vma pc ATTRIBUTE_UNUSED,
#endif
- long *valuep;
+ long *valuep)
{
long value, mask;
@@ -505,13 +508,12 @@ extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length,
been called). */
static int
-extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc)
- CGEN_CPU_DESC cd;
- const CGEN_INSN *insn;
- CGEN_EXTRACT_INFO *ex_info;
- CGEN_INSN_INT insn_value;
- CGEN_FIELDS *fields;
- bfd_vma pc;
+extract_insn_normal (CGEN_CPU_DESC cd,
+ const CGEN_INSN *insn,
+ CGEN_EXTRACT_INFO *ex_info,
+ CGEN_INSN_INT insn_value,
+ CGEN_FIELDS *fields,
+ bfd_vma pc)
{
const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn);
const CGEN_SYNTAX_CHAR_TYPE *syn;
diff --git a/sim/ChangeLog b/sim/ChangeLog
index f3bc71d..f4c616e 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,10 +1,25 @@
+2003-08-10 Ben Elliston <bje@wasabisystems.com>
+
+ * MAINTAINERS: Update my mail address.
+
+2003-08-09 Andrew Cagney <cagney@redhat.com>
+
+ * MAINTAINERS: Andrew Cagney (mips) and Geoff Keating (ppc) drop
+ maintenance. List igen and sh maintainers. Mention that target
+ and global maintainers pick up the slack.
+
+2003-07-09 Michael Snyder <msnyder@redhat.com>
+
+ * configure.in: Add testsuite to extra_subdirs for sh.
+ * configure: Regenerate.
+
2003-01-23 Nick Clifton <nickc@redhat.com>
* Add sh2e support:
- 2002-04-02 Alexandre Oliva <aoliva@redhat.com>
+2002-04-02 Alexandre Oliva <aoliva@redhat.com>
- * sh/gencode.c: Replace sh3e with sh2e except in fsqrt.
+ * sh/gencode.c: Replace sh3e with sh2e except in fsqrt.
2002-08-24 Geoffrey Keating <geoffk@redhat.com>
diff --git a/sim/MAINTAINERS b/sim/MAINTAINERS
index e54adb5..3e94cda 100644
--- a/sim/MAINTAINERS
+++ b/sim/MAINTAINERS
@@ -10,10 +10,16 @@ gdb-patches@sources.redhat.com
Maintainers for particular sims:
arm Nick Clifton <nickc@redhat.com>
+igen (igen simulators)
ppc Andrew Cagney <ac131313@redhat.com>
-ppc Geoff Keating <geoffk@geoffk.org>
m68hc11 Stephane Carrez <stcarrez@nerim.fr>
-mips Andrew Cagney <ac131313@redhat.com>
mips Chris Demetriou <cgd@broadcom.com>
-common Ben Elliston <bje@redhat.com>
+sh (global maintainers)
+common Ben Elliston <bje@wasabisystems.com>
common Frank Ch. Eigler <fche@redhat.com>
+* (target, then global maintainers)
+
+ Past sim maintainers:
+
+mips Andrew Cagney <ac131313@redhat.com>
+ppc Geoff Keating <geoffk@geoffk.org>
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index 9417d32..c7172f9 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-23 Michael Snyder <msnyder@redhat.com>
+
+ * nrun.c (main): Delete h8/300 ifdef (sim now handles signals).
+ * sim-reg.c: Fix cut-and-paste bug in comment.
+
2003-06-22 Andrew Cagney <cagney@redhat.com>
From matthew green <mrg@redhat.com>:
diff --git a/sim/common/nrun.c b/sim/common/nrun.c
index 7c77f5c..8dfa946 100644
--- a/sim/common/nrun.c
+++ b/sim/common/nrun.c
@@ -176,11 +176,6 @@ main (int argc, char **argv)
the signal that the simulator received; we want to return that to
indicate failure. */
-#ifdef SIM_H8300 /* FIXME: Ugh. grep for SLEEP in compile.c */
- if (sigrc == SIGILL)
- abort ();
- sigrc = 0;
-#else
/* Why did we stop? */
switch (reason)
{
@@ -198,7 +193,6 @@ main (int argc, char **argv)
break;
}
-#endif
return sigrc;
}
diff --git a/sim/common/sim-reg.c b/sim/common/sim-reg.c
index 3f3dc41..75cfb0a 100644
--- a/sim/common/sim-reg.c
+++ b/sim/common/sim-reg.c
@@ -36,8 +36,8 @@ sim_fetch_register (SIM_DESC sd, int rn, unsigned char *buf, int length)
return (* CPU_REG_FETCH (cpu)) (cpu, rn, buf, length);
}
-/* Generic implementation of sim_fetch_register for simulators using
- CPU_REG_FETCH.
+/* Generic implementation of sim_store_register for simulators using
+ CPU_REG_STORE.
The contents of BUF are in target byte order. */
/* ??? Obviously the interface needs to be extended to handle multiple
cpus. */
diff --git a/sim/configure b/sim/configure
index 7819fc4..d6382b6 100755
--- a/sim/configure
+++ b/sim/configure
@@ -1450,7 +1450,10 @@ case "${target}" in
mn10200*-*-*)
sim_target=mn10200
;;
- sh*-*-*) sim_target=sh ;;
+ sh*-*-*)
+ sim_target=sh
+ extra_subdirs="${extra_subdirs} testsuite"
+ ;;
powerpc*-*-eabi* | powerpc*-*-solaris* | powerpc*-*-sysv4* | \
powerpc*-*-elf* | powerpc*-*-linux* | powerpc*-*-netbsd* )
# The PowerPC simulator uses the GCC extension long long as well as
diff --git a/sim/configure.in b/sim/configure.in
index 4a1b0b5..da2f20a 100644
--- a/sim/configure.in
+++ b/sim/configure.in
@@ -89,7 +89,10 @@ case "${target}" in
mn10200*-*-*)
sim_target=mn10200
;;
- sh*-*-*) sim_target=sh ;;
+ sh*-*-*)
+ sim_target=sh
+ extra_subdirs="${extra_subdirs} testsuite"
+ ;;
powerpc*-*-eabi* | powerpc*-*-solaris* | powerpc*-*-sysv4* | \
powerpc*-*-elf* | powerpc*-*-linux* | powerpc*-*-netbsd* )
# The PowerPC simulator uses the GCC extension long long as well as
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index cd81e6e..3bd23ec 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,3 +1,30 @@
+2003-07-18 Michael Snyder <msnyder@redhat.com>
+
+ * compile.c (decode): Enhancements for mova.
+ Initialize cst, reg, and rdisp inside the loop, for each
+ new instruction. Defer correction of the disp2 values until
+ later, and then adjust them by the size of the first operand,
+ rather than the size of the instruction.
+ (sim_resume): For mova, adjust the size of the second operand
+ according to the type of the first operand (INDEXB vs. INDEXW).
+ In cases where there is only one operand, the other two must
+ both be composed on the fly.
+
+2003-07-22 Michael Snyder <msnyder@redhat.com>
+
+ * compile.c (sim_resume): Revert 6-24 change, it does not
+ work with gdb breakpoints.
+
+2003-07-17 Michael Snyder <msnyder@redhat.com>
+
+ * compile.c (sim_resume): Handle shll reg, reg and shlr reg, reg.
+ (decode): IMM16 is always zero-extended.
+
+2003-06-24 Michael Snyder <msnyder@redhat.com>
+
+ * sim-main.h (SIM_WIFSTOPPED, SIM_WSTOPSIG): Define.
+ * compile.c (sim_resume): Use the above to return stop signal.
+
2003-06-18 Michael Snyder <msnyder@redhat.com>
* compile.c: Replace "Hitachi" with "Renesas".
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index f416695..a799d2b 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -606,6 +606,10 @@ decode (SIM_DESC sd, int addr, unsigned char *data, decoded_inst *dst)
(q->available == AV_H8H && !h8300hmode))
continue;
+ cst[0] = cst[1] = cst[2] = 0;
+ reg[0] = reg[1] = reg[2] = 0;
+ rdisp[0] = rdisp[1] = rdisp[2] = 0;
+
while (1)
{
op_type looking_for = *nib;
@@ -770,26 +774,11 @@ decode (SIM_DESC sd, int addr, unsigned char *data, decoded_inst *dst)
(looking_for & MODE) == INDEXB ||
(looking_for & MODE) == INDEXW ||
(looking_for & MODE) == INDEXL)
-
{
switch (looking_for & SIZE)
{
case L_2:
cst[opnum] = thisnib & 3;
-
- /* DISP2 special treatment. */
- if ((looking_for & MODE) == DISP)
- {
- switch (OP_SIZE (q->how)) {
- default: break;
- case SW:
- cst[opnum] *= 2;
- break;
- case SL:
- cst[opnum] *= 4;
- break;
- }
- }
break;
case L_8:
cst[opnum] = SEXTCHAR (data[len / 2]);
@@ -818,7 +807,9 @@ decode (SIM_DESC sd, int addr, unsigned char *data, decoded_inst *dst)
(looking_for & SIZE) == L_16U)
{
cst[opnum] = (data[len / 2] << 8) + data[len / 2 + 1];
- if ((looking_for & SIZE) != L_16U)
+ /* Immediates are always unsigned. */
+ if ((looking_for & SIZE) != L_16U &&
+ (looking_for & MODE) != IMM)
cst[opnum] = (short) cst[opnum]; /* Sign extend. */
}
else if (looking_for & ABSJMP)
@@ -1070,31 +1061,64 @@ decode (SIM_DESC sd, int addr, unsigned char *data, decoded_inst *dst)
p->type = X (OP_IMM, SP);
p->literal = cst[opnum];
}
- else if ((x & MODE) == INDEXB ||
- (x & MODE) == INDEXW ||
- (x & MODE) == INDEXL ||
- (x & MODE) == DISP)
+ else if ((x & MODE) == INDEXB)
{
- /* Use the instruction to determine
- the operand size. */
- switch (x & MODE) {
- case INDEXB:
- p->type = X (OP_INDEXB, OP_SIZE (q->how));
- break;
- case INDEXW:
- p->type = X (OP_INDEXW, OP_SIZE (q->how));
- break;
- case INDEXL:
- p->type = X (OP_INDEXL, OP_SIZE (q->how));
- break;
- case DISP:
- p->type = X (OP_DISP, OP_SIZE (q->how));
- break;
- }
-
+ p->type = X (OP_INDEXB, OP_SIZE (q->how));
p->literal = cst[opnum];
p->reg = rdisp[opnum];
}
+ else if ((x & MODE) == INDEXW)
+ {
+ p->type = X (OP_INDEXW, OP_SIZE (q->how));
+ p->literal = cst[opnum];
+ p->reg = rdisp[opnum];
+ }
+ else if ((x & MODE) == INDEXL)
+ {
+ p->type = X (OP_INDEXL, OP_SIZE (q->how));
+ p->literal = cst[opnum];
+ p->reg = rdisp[opnum];
+ }
+ else if ((x & MODE) == DISP)
+ {
+ /* Yuck -- special for mova args. */
+ if (strncmp (q->name, "mova", 4) == 0 &&
+ (x & SIZE) == L_2)
+ {
+ /* Mova can have a DISP2 dest, with an
+ INDEXB or INDEXW src. The multiplier
+ for the displacement value is determined
+ by the src operand, not by the insn. */
+
+ switch (OP_KIND (dst->src.type))
+ {
+ case OP_INDEXB:
+ p->type = X (OP_DISP, SB);
+ p->literal = cst[opnum];
+ break;
+ case OP_INDEXW:
+ p->type = X (OP_DISP, SW);
+ p->literal = cst[opnum] * 2;
+ break;
+ default:
+ goto fail;
+ }
+ }
+ else
+ {
+ p->type = X (OP_DISP, OP_SIZE (q->how));
+ p->literal = cst[opnum];
+ /* DISP2 is special. */
+ if ((x & SIZE) == L_2)
+ switch (OP_SIZE (q->how))
+ {
+ case SB: break;
+ case SW: p->literal *= 2; break;
+ case SL: p->literal *= 4; break;
+ }
+ }
+ p->reg = rdisp[opnum];
+ }
else if (x & CTRL)
{
switch (reg[opnum])
@@ -1977,8 +2001,44 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
(mova/b, mova/w, mova/l).
4) Add literal value of 1st argument (src).
5) Store result in 3rd argument (op3).
+ */
+
+ /* Alas, since this is the only instruction with 3 arguments,
+ decode doesn't handle them very well. Some fix-up is required.
+
+ a) The size of dst is determined by whether src is
+ INDEXB or INDEXW. */
+
+ if (OP_KIND (code->src.type) == OP_INDEXB)
+ code->dst.type = X (OP_KIND (code->dst.type), SB);
+ else if (OP_KIND (code->src.type) == OP_INDEXW)
+ code->dst.type = X (OP_KIND (code->dst.type), SW);
+ /* b) If op3 == null, then this is the short form of the insn.
+ Dst is the dispreg of src, and op3 is the 32-bit form
+ of the same register.
*/
+
+ if (code->op3.type == 0)
+ {
+ /* Short form: src == INDEXB/INDEXW, dst == op3 == 0.
+ We get to compose dst and op3 as follows:
+
+ op3 is a 32-bit register, ID == src.reg.
+ dst is the same register, but 8 or 16 bits
+ depending on whether src is INDEXB or INDEXW.
+ */
+
+ code->op3.type = X (OP_REG, SL);
+ code->op3.reg = code->src.reg;
+ code->op3.literal = 0;
+
+ if (OP_KIND (code->src.type) == OP_INDEXB)
+ code->dst.type = X (OP_REG, SB);
+ else
+ code->dst.type = X (OP_REG, SW);
+ }
+
if (fetch (sd, &code->dst, &ea))
goto end;
@@ -3151,10 +3211,10 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
if (fetch2 (sd, &code->dst, &rd))
goto end;
- if (code->src.type == X (OP_IMM, SB))
+ if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
+ ea = 1; /* unary op */
+ else /* binary op */
fetch (sd, &code->src, &ea);
- else
- ea = 1;
if (code->opcode == O (O_SHLL, SB))
{
@@ -3175,10 +3235,10 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
if (fetch2 (sd, &code->dst, &rd))
goto end;
- if (code->src.type == X (OP_IMM, SW))
- fetch (sd, &code->src, &ea);
+ if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
+ ea = 1; /* unary op */
else
- ea = 1;
+ fetch (sd, &code->src, &ea);
if (code->opcode == O (O_SHLL, SW))
{
@@ -3199,10 +3259,10 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
if (fetch2 (sd, &code->dst, &rd))
goto end;
- if (code->src.type == X (OP_IMM, SL))
- fetch (sd, &code->src, &ea);
+ if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
+ ea = 1; /* unary op */
else
- ea = 1;
+ fetch (sd, &code->src, &ea);
if (code->opcode == O (O_SHLL, SL))
{
@@ -3575,6 +3635,17 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
sim_engine_set_run_state (sd, sim_exited,
SIM_WEXITSTATUS (h8_get_reg (sd, 0)));
}
+#if 0
+ /* Unfortunately this won't really work, because
+ when we take a breakpoint trap, R0 has a "random",
+ user-defined value. Don't see any immediate solution. */
+ else if (SIM_WIFSTOPPED (h8_get_reg (sd, 0)))
+ {
+ /* Pass the stop signal up to gdb. */
+ sim_engine_set_run_state (sd, sim_stopped,
+ SIM_WSTOPSIG (h8_get_reg (sd, 0)));
+ }
+#endif
else
{
/* Treat it as a sigtrap. */
diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h
index 6acf901..284a558 100644
--- a/sim/h8300/sim-main.h
+++ b/sim/h8300/sim-main.h
@@ -164,7 +164,9 @@ struct sim_state {
/* Local version of macros for decoding exit status.
(included here rather than try to find target version of wait.h)
*/
-#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
-#define SIM_WEXITSTATUS(V) ((V) >> 8)
+#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
+#define SIM_WIFSTOPPED(V) (!SIM_WIFEXITED (V))
+#define SIM_WEXITSTATUS(V) (((V) >> 8) & 0xff)
+#define SIM_WSTOPSIG(V) ((V) & 0x7f)
#endif /* SIM_MAIN_H */
diff --git a/sim/m68hc11/ChangeLog b/sim/m68hc11/ChangeLog
index 9c34d47..3d019d7 100644
--- a/sim/m68hc11/ChangeLog
+++ b/sim/m68hc11/ChangeLog
@@ -1,3 +1,57 @@
+2003-08-08 Stephane Carrez <stcarrez@nerim.fr>
+
+ * dv-m68hc11tim.c (cycle_to_string): Add flags parameter to better
+ control the translation.
+ (m68hc11tim_print_timer): Update cycle_to_string conversion.
+ (m68hc11tim_timer_event): Fix handling of output
+ compare register with its interrupts.
+ (m68hc11tim_io_write_buffer): Check output compare
+ after setting M6811_TMSK1.
+ (m68hc11tim_io_read_buffer): Fix compilation warning.
+ * dv-m68hc11.c (m68hc11_option_handler): Likewise.
+ * dv-m68hc11spi.c (m68hc11spi_info): Likewise.
+ * dv-m68hc11sio.c (m68hc11sio_info): Likewise.
+ * interrupts.c (interrupts_info): Likewise.
+ (interrupts_reset): Recognize bootstrap mode.
+ * sim-main.h (PRINT_CYCLE, PRINT_TIME): New defines.
+ (_sim_cpu): Add cpu_start_mode.
+ (cycle_to_string): Add flags member.
+ * m68hc11_sim.c (OPTION_CPU_BOOTSTRAP): New option.
+ (cpu_options): Declare new option bootstrap.
+ (cpu_option_handler): Handle it.
+ (cpu_info): Update call to cycle_to_string.
+
+2003-08-08 Stephane Carrez <stcarrez@nerim.fr>
+
+ * sim-main.h (phys_to_virt): Use memory bank parameters to translate
+ the physical address in virtual address.
+ (struct _sim_cpu): Add memory bank members.
+ * m68hc11_sim.c (cpu_initialize): Clear memory bank parameters.
+ * interp.c (sim_hw_configure): Create memory bank according to memory
+ bank parameters.
+ (sim_get_bank_parameters): New function to obtain memory bank config
+ from the symbol table.
+ (sim_prepare_for_program): Call it to obtain the memory bank parameters.
+ (sim_open): Call sim_prepare_for_program.
+ * dv-m68hc11.c (m68hc11cpu_io_write_buffer): Use memory bank parameters
+ to check if address is within bank window.
+ (m68hc11cpu_io_read_buffer): Likewise.
+ (attach_m68hc11_regs): Map the memory bank according to memory bank
+ parameters.
+
+2003-08-08 Stephane Carrez <stcarrez@nerim.fr>,
+
+ * sim-main.h (PAGE_REGNUM, Z_REGNUM): Use same numbering as gdb.
+
+2003-08-08 Stephane Carrez <stcarrez@nerim.fr>,
+ Gary Piercey <gpiercey@northstar-technical.com>
+
+ * m68hc11_sim.c (print_io_word): New function to print 16-bit value.
+ * sim-main.h (print_io_word): Declare.
+ * dv-m68hc11tim.c (tmsk1_desc): New description table for TMSK1.
+ (tflg1_desc): Likewise for TFLG1.
+ (m68hc11tim_info): Print input and output compare registers
+
2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
* Makefile.in (SIM_EXTRA_CFLAGS): Set WITH_TARGET_ADDRESS_BITSIZE
diff --git a/sim/m68hc11/dv-m68hc11.c b/sim/m68hc11/dv-m68hc11.c
index 669a045..5cc7161 100644
--- a/sim/m68hc11/dv-m68hc11.c
+++ b/sim/m68hc11/dv-m68hc11.c
@@ -1,5 +1,5 @@
/* dv-m68hc11.c -- CPU 68HC11&68HC12 as a device.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
@@ -324,8 +324,8 @@ attach_m68hc11_regs (struct hw *me,
if (hw_find_property (me, "use_bank") != NULL)
hw_attach_address (hw_parent (me), 0,
exec_map,
- 0x08000,
- 0x04000,
+ cpu->bank_start,
+ cpu->bank_end - cpu->bank_start,
me);
cpu_mode = "expanded";
@@ -808,13 +808,15 @@ m68hc11_option_handler (SIM_DESC sd, sim_cpu *cpu,
" %d %d %35.35s\n",
osc->name, freq,
cur_value, next_value,
- cycle_to_string (cpu, t));
+ cycle_to_string (cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
else
sim_io_printf (sd, " %4.4s %8.8s hz "
" %d %d %35.35s\n",
osc->name, freq,
cur_value, next_value,
- cycle_to_string (cpu, t));
+ cycle_to_string (cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
}
}
break;
@@ -843,7 +845,7 @@ m68hc11cpu_io_read_buffer (struct hw *me,
sd = hw_system (me);
cpu = STATE_CPU (sd, 0);
- if (base >= 0x8000 && base < 0xc000)
+ if (base >= cpu->bank_start && base < cpu->bank_end)
{
address_word virt_addr = phys_to_virt (cpu, base);
if (virt_addr != base)
@@ -864,7 +866,7 @@ m68hc11cpu_io_read_buffer (struct hw *me,
break;
memcpy (dest, &cpu->ios[base], 1);
- dest++;
+ dest = (char*) dest + 1;
base++;
byte++;
nr_bytes--;
@@ -1091,7 +1093,7 @@ m68hc11cpu_io_write_buffer (struct hw *me,
sd = hw_system (me);
cpu = STATE_CPU (sd, 0);
- if (base >= 0x8000 && base < 0xc000)
+ if (base >= cpu->bank_start && base < cpu->bank_end)
{
address_word virt_addr = phys_to_virt (cpu, base);
if (virt_addr != base)
@@ -1113,7 +1115,7 @@ m68hc11cpu_io_write_buffer (struct hw *me,
val = *((uint8*) source);
m68hc11cpu_io_write (me, cpu, base, val);
- source++;
+ source = (char*) source + 1;
base++;
byte++;
nr_bytes--;
diff --git a/sim/m68hc11/dv-m68hc11sio.c b/sim/m68hc11/dv-m68hc11sio.c
index ec7a46d..655a6db 100644
--- a/sim/m68hc11/dv-m68hc11sio.c
+++ b/sim/m68hc11/dv-m68hc11sio.c
@@ -463,7 +463,8 @@ m68hc11sio_info (struct hw *me)
n = (clock_cycle - t) / controller->baud_cycle;
n = controller->data_length - n;
sim_io_printf (sd, " Transmit finished in %s (%d bit%s)\n",
- cycle_to_string (cpu, t), n, (n > 1 ? "s" : ""));
+ cycle_to_string (cpu, t, PRINT_TIME | PRINT_CYCLE),
+ n, (n > 1 ? "s" : ""));
}
if (controller->rx_poll_event)
{
@@ -471,7 +472,7 @@ m68hc11sio_info (struct hw *me)
t = hw_event_remain_time (me, controller->rx_poll_event);
sim_io_printf (sd, " Receive finished in %s\n",
- cycle_to_string (cpu, t));
+ cycle_to_string (cpu, t, PRINT_TIME | PRINT_CYCLE));
}
}
diff --git a/sim/m68hc11/dv-m68hc11spi.c b/sim/m68hc11/dv-m68hc11spi.c
index 5f5e0bb..619a2d3 100644
--- a/sim/m68hc11/dv-m68hc11spi.c
+++ b/sim/m68hc11/dv-m68hc11spi.c
@@ -1,6 +1,6 @@
/* dv-m68hc11spi.c -- Simulation of the 68HC11 SPI
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- Written by Stephane Carrez (stcarrez@worldnet.fr)
+ Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
This file is part of the program GDB, the GNU debugger.
@@ -358,11 +358,11 @@ m68hc11spi_info (struct hw *me)
controller->tx_bit + 1);
t = hw_event_remain_time (me, controller->spi_event);
sim_io_printf (sd, " SPI current bit-cycle finished in %s\n",
- cycle_to_string (cpu, t));
+ cycle_to_string (cpu, t, PRINT_TIME | PRINT_CYCLE));
t += (controller->tx_bit + 1) * 2 * controller->clock;
sim_io_printf (sd, " SPI operation finished in %s\n",
- cycle_to_string (cpu, t));
+ cycle_to_string (cpu, t, PRINT_TIME | PRINT_CYCLE));
}
}
diff --git a/sim/m68hc11/dv-m68hc11tim.c b/sim/m68hc11/dv-m68hc11tim.c
index 3edcac0..0456f67 100644
--- a/sim/m68hc11/dv-m68hc11tim.c
+++ b/sim/m68hc11/dv-m68hc11tim.c
@@ -1,6 +1,6 @@
/* dv-m68hc11tim.c -- Simulation of the 68HC11 timer devices.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
- Written by Stephane Carrez (stcarrez@worldnet.fr)
+ Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
This file is part of the program GDB, the GNU debugger.
@@ -25,7 +25,7 @@
#include "sim-main.h"
#include "hw-main.h"
#include "sim-assert.h"
-
+#include <limits.h>
/* DEVICE
@@ -250,7 +250,9 @@ m68hc11tim_timer_event (struct hw *me, void *data)
unsigned mask;
unsigned flags;
unsigned long tcnt_internal;
- unsigned long tcnt;
+ unsigned long tcnt, tcnt_prev;
+ signed64 tcnt_insn_end;
+ signed64 tcnt_insn_start;
int i;
sim_events *events;
@@ -289,11 +291,8 @@ m68hc11tim_timer_event (struct hw *me, void *data)
break;
case OVERFLOW_EVENT:
- /* Compute the 68HC11 internal free running counter.
- There may be 'nr_ticks_to_process' pending cycles that are
- not (yet) taken into account by 'sim_events_time'. */
- tcnt_internal = sim_events_time (sd) - controller->tcnt_adjust;
- tcnt_internal += events->nr_ticks_to_process;
+ /* Compute the 68HC11 internal free running counter. */
+ tcnt_internal = (cpu->cpu_absolute_cycle - controller->tcnt_adjust);
/* We must take into account the prescaler that comes
before the counter (it's a power of 2). */
@@ -316,22 +315,22 @@ m68hc11tim_timer_event (struct hw *me, void *data)
break;
case COMPARE_EVENT:
- eventp = &controller->cmp_timer_event;
+ /* Compute value of TCNT register (64-bit precision) at beginning
+ and end of instruction. */
+ tcnt_insn_end = (cpu->cpu_absolute_cycle - controller->tcnt_adjust);
+ tcnt_insn_start = (tcnt_insn_end - cpu->cpu_current_cycle);
+
+ /* TCNT value at beginning of current instruction. */
+ tcnt_prev = (tcnt_insn_start / controller->clock_prescaler) & 0x0ffff;
- /* Compute the 68HC11 internal free running counter.
- There may be 'nr_ticks_to_process' pending cycles that are
- not (yet) taken into account by 'sim_events_time'. */
- events = STATE_EVENTS (sd);
- tcnt_internal = sim_events_time (sd) - controller->tcnt_adjust;
- tcnt_internal += events->nr_ticks_to_process;
+ /* TCNT value at end of current instruction. */
+ tcnt = (tcnt_insn_end / controller->clock_prescaler) & 0x0ffff;
/* We must take into account the prescaler that comes
before the counter (it's a power of 2). */
+ tcnt_internal = tcnt_insn_end;
tcnt_internal &= 0x0ffff * controller->clock_prescaler;
- /* Get current visible TCNT register value. */
- tcnt = tcnt_internal / controller->clock_prescaler;
-
flags = cpu->ios[M6811_TMSK1];
mask = 0x80;
delay = 65536 * controller->clock_prescaler;
@@ -342,12 +341,28 @@ m68hc11tim_timer_event (struct hw *me, void *data)
for (i = M6811_TOC1; i <= M6811_TOC5; i += 2, mask >>= 1)
{
unsigned long compare;
-
- compare = (cpu->ios[i] << 8) + cpu->ios[i+1];
- if (compare == tcnt && (flags & mask))
+
+ compare = (cpu->ios[i] << 8) + cpu->ios[i + 1];
+
+ /* See if compare is reached; handle wrap arround. */
+ if ((compare >= tcnt_prev && compare <= tcnt && tcnt_prev < tcnt)
+ || (compare >= tcnt_prev && tcnt_prev > tcnt)
+ || (compare < tcnt && tcnt_prev > tcnt))
{
+ unsigned dt;
+
+ if (compare > tcnt)
+ dt = 0x10000 - compare - tcnt;
+ else
+ dt = tcnt - compare;
+
cpu->ios[M6811_TFLG1] |= mask;
- check_interrupt++;
+
+ /* Raise interrupt now at the correct CPU cycle so that
+ we can find the interrupt latency. */
+ cpu->cpu_absolute_cycle -= dt;
+ interrupts_update_pending (&cpu->cpu_interrupts);
+ cpu->cpu_absolute_cycle += dt;
}
/* Compute how many times for the next match.
@@ -359,14 +374,18 @@ m68hc11tim_timer_event (struct hw *me, void *data)
else
compare = compare - tcnt_internal
+ 65536 * controller->clock_prescaler;
-
+
if (compare < delay)
delay = compare;
}
/* Deactivate the compare timer if no output compare is enabled. */
- if ((flags & 0xF0) == 0)
+ if ((flags & 0xF8) == 0)
delay = 0;
+ else
+ delay += events->nr_ticks_to_process;
+
+ eventp = &controller->cmp_timer_event;
break;
default:
@@ -394,6 +413,30 @@ m68hc11tim_timer_event (struct hw *me, void *data)
/* Descriptions of the Timer I/O ports. These descriptions are only used to
give information of the Timer device under GDB. */
+io_reg_desc tmsk1_desc[] = {
+ { M6811_OC1I, "OC1I ", "Timer Output Compare 1 Interrupt Enable" },
+ { M6811_OC2I, "OC2I ", "Timer Output Compare 2 Interrupt Enable" },
+ { M6811_OC3I, "OC3I ", "Timer Output Compare 3 Interrupt Enable" },
+ { M6811_OC4I, "OC4I ", "Timer Output Compare 4 Interrupt Enable" },
+ { M6811_OC5I, "OC5I ", "Timer Input Capture 4 / Output Compare 5 Enable" },
+ { M6811_IC1I, "IC1I ", "Timer Input Capture 1 Interrupt Enable" },
+ { M6811_IC2I, "IC2I ", "Timer Input Capture 2 Interrupt Enable" },
+ { M6811_IC3I, "IC3I ", "Timer Input Capture 3 Interrupt Enable" },
+ { 0, 0, 0 }
+};
+
+io_reg_desc tflg1_desc[] = {
+ { M6811_OC1F, "OC1F ", "Timer Output Compare 1 Interrupt Flag" },
+ { M6811_OC2F, "OC2F ", "Timer Output Compare 2 Interrupt Flag" },
+ { M6811_OC3F, "OC3F ", "Timer Output Compare 3 Interrupt Flag" },
+ { M6811_OC4F, "OC4F ", "Timer Output Compare 4 Interrupt Flag" },
+ { M6811_OC5F, "OC5F ", "Timer Input Capture 4 / Output Compare 5 Flag" },
+ { M6811_IC1F, "IC1F ", "Timer Input Capture 1 Interrupt Flag" },
+ { M6811_IC2F, "IC2F ", "Timer Input Capture 2 Interrupt Flag" },
+ { M6811_IC3F, "IC3F ", "Timer Input Capture 3 Interrupt Flag" },
+ { 0, 0, 0 }
+};
+
io_reg_desc tmsk2_desc[] = {
{ M6811_TOI, "TOI ", "Timer Overflow Interrupt Enable" },
{ M6811_RTII, "RTII ", "RTI Interrupt Enable" },
@@ -433,22 +476,35 @@ to_realtime (sim_cpu *cpu, signed64 t)
}
const char*
-cycle_to_string (sim_cpu *cpu, signed64 t)
+cycle_to_string (sim_cpu *cpu, signed64 t, int flags)
{
- double dt;
- char tbuf[32];
+ char time_buf[32];
+ char cycle_buf[32];
static char buf[64];
- dt = to_realtime (cpu, t);
- if (dt < 0.001)
- sprintf (tbuf, "(%3.1f us)", dt * 1000000.0);
- else if (dt < 1.0)
- sprintf (tbuf, "(%3.1f ms)", dt * 1000.0);
- else
- sprintf (tbuf, "(%3.1f s)", dt);
+ time_buf[0] = 0;
+ cycle_buf[0] = 0;
+ if (flags & PRINT_TIME)
+ {
+ double dt;
+
+ dt = to_realtime (cpu, t);
+ if (dt < 0.001)
+ sprintf (time_buf, " (%3.1f us)", dt * 1000000.0);
+ else if (dt < 1.0)
+ sprintf (time_buf, " (%3.1f ms)", dt * 1000.0);
+ else
+ sprintf (time_buf, " (%3.1f s)", dt);
+ }
+
+ if (flags & PRINT_CYCLE)
+ sprintf (cycle_buf, " cycle%s",
+ (t > 1 ? "s" : ""));
- sprintf (buf, "%llu cycle%s %10.10s", t,
- (t > 1 ? "s" : ""), tbuf);
+ if (t < LONG_MAX)
+ sprintf (buf, "%9lu%s%s", (unsigned long) t, cycle_buf, time_buf);
+ else
+ sprintf (buf, "%llu%s%s", t, cycle_buf, time_buf);
return buf;
}
@@ -472,7 +528,7 @@ m68hc11tim_print_timer (struct hw *me, const char *name,
t = hw_event_remain_time (me, event);
sim_io_printf (sd, " Next %s interrupt in %s\n",
- name, cycle_to_string (cpu, t));
+ name, cycle_to_string (cpu, t, PRINT_TIME | PRINT_CYCLE));
}
}
@@ -484,6 +540,7 @@ m68hc11tim_info (struct hw *me)
sim_cpu *cpu;
struct m68hc11tim *controller;
uint8 val;
+ uint16 val16;
sd = hw_system (me);
cpu = STATE_CPU (sd, 0);
@@ -493,6 +550,56 @@ m68hc11tim_info (struct hw *me)
base = cpu_get_io_base (cpu);
+ /* Info for TIC1 */
+ val16 = (cpu->ios[M6811_TIC1_H] << 8) + cpu->ios[M6811_TIC1_L];
+ print_io_word (sd, "TIC1 ", 0, val16, base + M6811_TIC1);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TIC2 */
+ val16 = (cpu->ios[M6811_TIC2_H] << 8) + cpu->ios[M6811_TIC2_L];
+ print_io_word (sd, "TIC2 ", 0, val16, base + M6811_TIC2);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TIC3 */
+ val16 = (cpu->ios[M6811_TIC3_H] << 8) + cpu->ios[M6811_TIC3_L];
+ print_io_word (sd, "TIC3 ", 0, val16, base + M6811_TIC3);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TOC1 */
+ val16 = (cpu->ios[M6811_TOC1_H] << 8) + cpu->ios[M6811_TOC1_L];
+ print_io_word (sd, "TOC1 ", 0, val16, base + M6811_TOC1);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TOC2 */
+ val16 = (cpu->ios[M6811_TOC2_H] << 8) + cpu->ios[M6811_TOC2_L];
+ print_io_word (sd, "TOC2 ", 0, val16, base + M6811_TOC2);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TOC3 */
+ val16 = (cpu->ios[M6811_TOC3_H] << 8) + cpu->ios[M6811_TOC3_L];
+ print_io_word (sd, "TOC3 ", 0, val16, base + M6811_TOC3);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TOC4 */
+ val16 = (cpu->ios[M6811_TOC4_H] << 8) + cpu->ios[M6811_TOC4_L];
+ print_io_word (sd, "TOC4 ", 0, val16, base + M6811_TOC4);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TOC5 */
+ val16 = (cpu->ios[M6811_TOC5_H] << 8) + cpu->ios[M6811_TOC5_L];
+ print_io_word (sd, "TOC5 ", 0, val16, base + M6811_TOC5);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TMSK1 */
+ val = cpu->ios[M6811_TMSK1];
+ print_io_byte (sd, "TMSK1 ", tmsk1_desc, val, base + M6811_TMSK1);
+ sim_io_printf (sd, "\n");
+
+ /* Info for TFLG1 */
+ val = cpu->ios[M6811_TFLG1];
+ print_io_byte (sd, "TFLG1", tflg1_desc, val, base + M6811_TFLG1);
+ sim_io_printf (sd, "\n");
+
val = cpu->ios[M6811_TMSK2];
print_io_byte (sd, "TMSK2 ", tmsk2_desc, val, base + M6811_TMSK2);
sim_io_printf (sd, "\n");
@@ -568,7 +675,7 @@ m68hc11tim_io_read_buffer (struct hw *me,
break;
}
*((unsigned8*) dest) = val;
- dest++;
+ dest = (char*) dest + 1;
base++;
nr_bytes--;
cnt++;
@@ -679,6 +786,7 @@ m68hc11tim_io_write_buffer (struct hw *me,
case M6811_TMSK1:
cpu->ios[M6811_TMSK1] = val;
interrupts_update_pending (&cpu->cpu_interrupts);
+ reset_compare = 1;
break;
case M6811_TFLG1:
@@ -695,7 +803,7 @@ m68hc11tim_io_write_buffer (struct hw *me,
cpu->ios[base] = val;
reset_compare = 1;
break;
-
+
case M6811_TCTL1:
case M6811_TCTL2:
cpu->ios[base] = val;
@@ -709,7 +817,7 @@ m68hc11tim_io_write_buffer (struct hw *me,
base++;
nr_bytes--;
cnt++;
- source++;
+ source = (char*) source + 1;
}
/* Re-compute the next timer compare event. */
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index 3da382d..b80bc94 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -1,5 +1,5 @@
/* interp.c -- Simulator for Motorola 68HC11/68HC12
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, the GNU debugger.
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "hw-tree.h"
#include "hw-device.h"
#include "hw-ports.h"
+#include "elf32-m68hc1x.h"
#ifndef MONITOR_BASE
# define MONITOR_BASE (0x0C000)
@@ -194,8 +195,17 @@ sim_hw_configure (SIM_DESC sd)
sim_do_commandf (sd, "memory region 0x000@%d,0x8000",
M6811_RAM_LEVEL);
sim_hw_parse (sd, "/m68hc11/reg 0x1000 0x03F");
+ if (cpu->bank_start < cpu->bank_end)
+ {
+ sim_do_commandf (sd, "memory region 0x%lx@%d,0x100000",
+ cpu->bank_virtual, M6811_RAM_LEVEL);
+ sim_hw_parse (sd, "/m68hc11/use_bank 1");
+ }
}
-
+ if (cpu->cpu_start_mode)
+ {
+ sim_hw_parse (sd, "/m68hc11/mode %s", cpu->cpu_start_mode);
+ }
if (hw_tree_find_property (device_tree, "/m68hc11/m68hc11sio/reg") == 0)
{
sim_hw_parse (sd, "/m68hc11/m68hc11sio/reg 0x2b 0x5");
@@ -242,14 +252,16 @@ sim_hw_configure (SIM_DESC sd)
{
/* Allocate core external memory. */
sim_do_commandf (sd, "memory region 0x%lx@%d,0x%lx",
- 0xC000, M6811_RAM_LEVEL, 0x4000);
+ 0x8000, M6811_RAM_LEVEL, 0x8000);
sim_do_commandf (sd, "memory region 0x000@%d,0x8000",
M6811_RAM_LEVEL);
- sim_do_commandf (sd, "memory region 0x01000000@%d,0x100000",
- M6811_RAM_LEVEL);
-
+ if (cpu->bank_start < cpu->bank_end)
+ {
+ sim_do_commandf (sd, "memory region 0x%lx@%d,0x100000",
+ cpu->bank_virtual, M6811_RAM_LEVEL);
+ sim_hw_parse (sd, "/m68hc12/use_bank 1");
+ }
sim_hw_parse (sd, "/m68hc12/reg 0x0 0x3FF");
- sim_hw_parse (sd, "/m68hc12/use_bank 1");
}
if (!hw_tree_find_property (device_tree, "/m68hc12/m68hc12sio@1/reg"))
@@ -294,19 +306,77 @@ sim_hw_configure (SIM_DESC sd)
return 1;
}
+/* Get the memory bank parameters by looking at the global symbols
+ defined by the linker. */
static int
-sim_prepare_for_program (SIM_DESC sd, struct bfd* abfd)
+sim_get_bank_parameters (SIM_DESC sd, bfd* abfd)
{
sim_cpu *cpu;
+ long symsize;
+ long symbol_count, i;
+ unsigned size;
+ asymbol** asymbols;
+ asymbol** current;
cpu = STATE_CPU (sd, 0);
- if (!sim_hw_configure (sd))
- return SIM_RC_FAIL;
+ symsize = bfd_get_symtab_upper_bound (abfd);
+ if (symsize < 0)
+ {
+ sim_io_eprintf (sd, "Cannot read symbols of program");
+ return 0;
+ }
+ asymbols = (asymbol **) xmalloc (symsize);
+ symbol_count = bfd_canonicalize_symtab (abfd, asymbols);
+ if (symbol_count < 0)
+ {
+ sim_io_eprintf (sd, "Cannot read symbols of program");
+ return 0;
+ }
+
+ size = 0;
+ for (i = 0, current = asymbols; i < symbol_count; i++, current++)
+ {
+ const char* name = bfd_asymbol_name (*current);
+
+ if (strcmp (name, BFD_M68HC11_BANK_START_NAME) == 0)
+ {
+ cpu->bank_start = bfd_asymbol_value (*current);
+ }
+ else if (strcmp (name, BFD_M68HC11_BANK_SIZE_NAME) == 0)
+ {
+ size = bfd_asymbol_value (*current);
+ }
+ else if (strcmp (name, BFD_M68HC11_BANK_VIRTUAL_NAME) == 0)
+ {
+ cpu->bank_virtual = bfd_asymbol_value (*current);
+ }
+ }
+ free (asymbols);
+
+ cpu->bank_end = cpu->bank_start + size;
+ cpu->bank_shift = 0;
+ for (; size > 1; size >>= 1)
+ cpu->bank_shift++;
+
+ return 0;
+}
+
+static int
+sim_prepare_for_program (SIM_DESC sd, bfd* abfd)
+{
+ sim_cpu *cpu;
+ int elf_flags = 0;
+
+ cpu = STATE_CPU (sd, 0);
if (abfd != NULL)
{
asection *s;
+
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+ elf_flags = elf_elfheader (abfd)->e_flags;
+
cpu->cpu_elf_start = bfd_get_start_address (abfd);
/* See if any section sets the reset address */
cpu->cpu_use_elf_start = 1;
@@ -331,8 +401,17 @@ sim_prepare_for_program (SIM_DESC sd, struct bfd* abfd)
}
}
}
+
+ if (elf_flags & E_M68HC12_BANKS)
+ {
+ if (sim_get_bank_parameters (sd, abfd) != 0)
+ sim_io_eprintf (sd, "Memory bank parameters are not initialized\n");
+ }
}
+ if (!sim_hw_configure (sd))
+ return SIM_RC_FAIL;
+
/* reset all state information */
sim_board_reset (sd);
@@ -341,7 +420,7 @@ sim_prepare_for_program (SIM_DESC sd, struct bfd* abfd)
SIM_DESC
sim_open (SIM_OPEN_KIND kind, host_callback *callback,
- struct bfd *abfd, char **argv)
+ bfd *abfd, char **argv)
{
SIM_DESC sd;
sim_cpu *cpu;
@@ -398,8 +477,11 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback,
free_state (sd);
return 0;
}
-
- sim_hw_configure (sd);
+ if (sim_prepare_for_program (sd, abfd) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
/* Fudge our descriptor. */
return sd;
diff --git a/sim/m68hc11/interrupts.c b/sim/m68hc11/interrupts.c
index 5844c74..b466d69 100644
--- a/sim/m68hc11/interrupts.c
+++ b/sim/m68hc11/interrupts.c
@@ -1,6 +1,6 @@
/* interrupts.c -- 68HC11 Interrupts Emulation
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
- Written by Stephane Carrez (stcarrez@worldnet.fr)
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
@@ -166,6 +166,20 @@ interrupts_reset (struct interrupts *interrupts)
memset (interrupts->interrupts, 0,
sizeof (interrupts->interrupts));
+
+ /* In bootstrap mode, initialize the vector table to point
+ to the RAM location. */
+ if (interrupts->cpu->cpu_mode == M6811_SMOD)
+ {
+ bfd_vma addr = interrupts->vectors_addr;
+ uint16 vector = 0x0100 - 3 * (M6811_INT_NUMBER - 1);
+ for (i = 0; i < M6811_INT_NUMBER; i++)
+ {
+ memory_write16 (interrupts->cpu, addr, vector);
+ addr += 2;
+ vector += 3;
+ }
+ }
}
static int
@@ -517,7 +531,7 @@ interrupts_raise (struct interrupts *interrupts, enum M6811_INT number)
void
interrupts_info (SIM_DESC sd, struct interrupts *interrupts)
{
- signed64 t;
+ signed64 t, prev_interrupt;
int i;
sim_io_printf (sd, "Interrupts Info:\n");
@@ -533,21 +547,25 @@ interrupts_info (SIM_DESC sd, struct interrupts *interrupts)
interrupts->max_mask_cycles = t;
sim_io_printf (sd, " Current interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
}
t = interrupts->min_mask_cycles == CYCLES_MAX ?
interrupts->max_mask_cycles :
interrupts->min_mask_cycles;
sim_io_printf (sd, " Shortest interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
t = interrupts->max_mask_cycles;
sim_io_printf (sd, " Longest interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
t = interrupts->last_mask_cycles;
sim_io_printf (sd, " Last interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
if (interrupts->xirq_start_mask_cycle >= 0)
{
@@ -558,22 +576,26 @@ interrupts_info (SIM_DESC sd, struct interrupts *interrupts)
interrupts->xirq_max_mask_cycles = t;
sim_io_printf (sd, " XIRQ Current interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
}
t = interrupts->xirq_min_mask_cycles == CYCLES_MAX ?
interrupts->xirq_max_mask_cycles :
interrupts->xirq_min_mask_cycles;
sim_io_printf (sd, " XIRQ Min interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
t = interrupts->xirq_max_mask_cycles;
sim_io_printf (sd, " XIRQ Max interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
t = interrupts->xirq_last_mask_cycles;
sim_io_printf (sd, " XIRQ Last interrupts masked sequence: %s\n",
- cycle_to_string (interrupts->cpu, t));
+ cycle_to_string (interrupts->cpu, t,
+ PRINT_TIME | PRINT_CYCLE));
if (interrupts->pending_mask)
{
@@ -590,6 +612,9 @@ interrupts_info (SIM_DESC sd, struct interrupts *interrupts)
sim_io_printf (sd, "\n");
}
+ prev_interrupt = 0;
+ sim_io_printf (sd, "N Interrupt Cycle Taken Latency"
+ " Delta between interrupts\n");
for (i = 0; i < MAX_INT_HISTORY; i++)
{
int which;
@@ -604,10 +629,18 @@ interrupts_info (SIM_DESC sd, struct interrupts *interrupts)
break;
dt = h->taken_cycle - h->raised_cycle;
- sim_io_printf (sd, "%2d %-10.10s %30.30s ", i,
+ sim_io_printf (sd, "%2d %-9.9s %15.15s ", i,
interrupt_names[h->type],
- cycle_to_string (interrupts->cpu, h->taken_cycle));
- sim_io_printf (sd, "%s\n",
- cycle_to_string (interrupts->cpu, dt));
+ cycle_to_string (interrupts->cpu, h->taken_cycle, 0));
+ sim_io_printf (sd, "%15.15s",
+ cycle_to_string (interrupts->cpu, dt, 0));
+ if (prev_interrupt)
+ {
+ dt = prev_interrupt - h->taken_cycle;
+ sim_io_printf (sd, " %s",
+ cycle_to_string (interrupts->cpu, dt, PRINT_TIME));
+ }
+ sim_io_printf (sd, "\n");
+ prev_interrupt = h->taken_cycle;
}
}
diff --git a/sim/m68hc11/m68hc11_sim.c b/sim/m68hc11/m68hc11_sim.c
index fe5985f..444147b 100644
--- a/sim/m68hc11/m68hc11_sim.c
+++ b/sim/m68hc11/m68hc11_sim.c
@@ -1,5 +1,5 @@
/* m6811_cpu.c -- 68HC11&68HC12 CPU Emulation
- Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
@@ -27,6 +27,7 @@ enum {
OPTION_CPU_RESET = OPTION_START,
OPTION_EMUL_OS,
OPTION_CPU_CONFIG,
+ OPTION_CPU_BOOTSTRAP,
OPTION_CPU_MODE
};
@@ -46,6 +47,10 @@ static const OPTION cpu_options[] =
'\0', NULL, "Specify the initial CPU configuration register",
cpu_option_handler },
+ { {"bootstrap", no_argument, NULL, OPTION_CPU_BOOTSTRAP },
+ '\0', NULL, "Start the processing in bootstrap mode",
+ cpu_option_handler },
+
{ {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL }
};
@@ -77,7 +82,11 @@ cpu_option_handler (SIM_DESC sd, sim_cpu *cpu,
else
cpu->cpu_use_local_config = 0;
break;
-
+
+ case OPTION_CPU_BOOTSTRAP:
+ cpu->cpu_start_mode = "bootstrap";
+ break;
+
case OPTION_CPU_MODE:
break;
}
@@ -464,6 +473,9 @@ cpu_initialize (SIM_DESC sd, sim_cpu *cpu)
cpu->cpu_use_elf_start = 0;
cpu->cpu_elf_start = 0;
cpu->cpu_use_local_config = 0;
+ cpu->bank_start = 0;
+ cpu->bank_end = 0;
+ cpu->bank_shift = 0;
cpu->cpu_config = M6811_NOSEC | M6811_NOCOP | M6811_ROMON |
M6811_EEON;
interrupts_initialize (sd, cpu);
@@ -582,6 +594,15 @@ print_io_byte (SIM_DESC sd, const char *name, io_reg_desc *desc,
}
void
+print_io_word (SIM_DESC sd, const char *name, io_reg_desc *desc,
+ uint16 val, uint16 addr)
+{
+ sim_io_printf (sd, " %-9.9s @ 0x%04x 0x%04x ", name, addr, val);
+ if (desc)
+ print_io_reg_desc (sd, desc, val, 0);
+}
+
+void
cpu_ccr_update_tst8 (sim_cpu *proc, uint8 val)
{
cpu_set_ccr_V (proc, 0);
@@ -1037,7 +1058,8 @@ cpu_info (SIM_DESC sd, sim_cpu *cpu)
{
sim_io_printf (sd, "CPU info:\n");
sim_io_printf (sd, " Absolute cycle: %s\n",
- cycle_to_string (cpu, cpu->cpu_absolute_cycle));
+ cycle_to_string (cpu, cpu->cpu_absolute_cycle,
+ PRINT_TIME | PRINT_CYCLE));
sim_io_printf (sd, " Syscall emulation: %s\n",
cpu->cpu_emul_syscall ? "yes, via 0xcd <n>" : "no");
diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
index c8933a0..a4bd3a6 100644
--- a/sim/m68hc11/sim-main.h
+++ b/sim/m68hc11/sim-main.h
@@ -1,5 +1,5 @@
/* sim-main.h -- Simulator for Motorola 68HC11 & 68HC12
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, the GNU debugger.
@@ -79,8 +79,8 @@ enum cpu_type
#define A_REGNUM 5
#define B_REGNUM 6
#define PSW_REGNUM 7
-#define Z_REGNUM 8
-#define PAGE_REGNUM 9
+#define PAGE_REGNUM 8
+#define Z_REGNUM 9
typedef struct m6811_regs {
unsigned short d;
@@ -108,6 +108,8 @@ extern void print_io_reg_desc (SIM_DESC sd, io_reg_desc *desc, int val,
int mode);
extern void print_io_byte (SIM_DESC sd, const char *name,
io_reg_desc *desc, uint8 val, uint16 addr);
+extern void print_io_word (SIM_DESC sd, const char *name,
+ io_reg_desc *desc, uint16 val, uint16 addr);
/* List of special 68HC11&68HC12 instructions that are not handled by the
@@ -198,6 +200,7 @@ struct _sim_cpu {
/* The mode in which the CPU is configured (MODA and MODB pins). */
unsigned int cpu_mode;
+ const char* cpu_start_mode;
/* The cpu being configured. */
enum cpu_type cpu_type;
@@ -208,6 +211,14 @@ struct _sim_cpu {
uint8 ios[MAX_PORTS];
+ /* Memory bank parameters which describe how the memory bank window
+ is mapped in memory and how to convert it in virtual address. */
+ uint16 bank_start;
+ uint16 bank_end;
+ address_word bank_virtual;
+ unsigned bank_shift;
+
+
struct hw *hw_cpu;
/* ... base type ... */
@@ -235,7 +246,7 @@ struct _sim_cpu {
#define cpu_get_sp(PROC) ((PROC)->cpu_regs.sp)
#define cpu_get_a(PROC) ((PROC->cpu_regs.d >> 8) & 0x0FF)
#define cpu_get_b(PROC) ((PROC->cpu_regs.d) & 0x0FF)
-#define cpu_get_page(PROC) (PROC->cpu_regs.page)
+#define cpu_get_page(PROC) ((PROC)->cpu_regs.page)
/* 68HC12 specific and Motorola internal registers. */
#define cpu_get_tmp3(PROC) (0)
@@ -244,7 +255,7 @@ struct _sim_cpu {
#define cpu_set_d(PROC,VAL) (((PROC)->cpu_regs.d) = (VAL))
#define cpu_set_x(PROC,VAL) (((PROC)->cpu_regs.ix) = (VAL))
#define cpu_set_y(PROC,VAL) (((PROC)->cpu_regs.iy) = (VAL))
-#define cpu_set_page(PROC,VAL) ((PROC->cpu_regs.page) = (VAL))
+#define cpu_set_page(PROC,VAL) (((PROC)->cpu_regs.page) = (VAL))
/* 68HC12 specific and Motorola internal registers. */
#define cpu_set_tmp3(PROC,VAL) (0)
@@ -295,9 +306,10 @@ extern void cpu_memory_exception (struct _sim_cpu *proc,
inline address_word
phys_to_virt (sim_cpu *cpu, address_word addr)
{
- if (addr >= 0x8000 && addr < 0xc000)
- return ((address_word) (addr) - 0x8000)
- + (((address_word) cpu->cpu_regs.page) << 14) + 0x01000000;
+ if (addr >= cpu->bank_start && addr < cpu->bank_end)
+ return ((address_word) (addr - cpu->bank_start)
+ + (((address_word) cpu->cpu_regs.page) << cpu->bank_shift)
+ + cpu->bank_virtual);
else
return (address_word) (addr);
}
@@ -580,7 +592,9 @@ extern void sim_set_profile (int n);
extern void sim_set_profile_size (int n);
extern void sim_board_reset (SIM_DESC sd);
-extern const char *cycle_to_string (sim_cpu *cpu, signed64 t);
+#define PRINT_TIME 0x01
+#define PRINT_CYCLE 0x02
+extern const char *cycle_to_string (sim_cpu *cpu, signed64 t, int flags);
#endif
diff --git a/sim/sh/ChangeLog b/sim/sh/ChangeLog
index 007bf46..7ab1394 100644
--- a/sim/sh/ChangeLog
+++ b/sim/sh/ChangeLog
@@ -1,3 +1,61 @@
+2003-08-11 Shrinivas Atre <shrinivasa@KPITCummins.com>
+ * sim/sh/gencode.c ( tab[] ): Addition of MAC.L handler and
+ correction for MAC.W handler
+ * sim/sh/interp.c ( macl ): New Function. Implementation of
+ MAC.L handler.
+
+2003-08-07 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (expand_ppi_code): Comment spelling fix.
+
+2003-07-25 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (pshl): Change < to <= (shift by 16 is allowed).
+ Cast argument of >> to unsigned to prevent sign extension.
+ (psha): Change < to <= (shift by 32 is allowed).
+
+2003-07-24 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c: Fix typo in comment.
+
+2003-07-23 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c: A few more fix-ups of refs and defs.
+ (frchg): Raise SIGILL if in double-precision mode.
+ (ldtlb): We don't simulate cache, so this is a no-op.
+ (movsxy_tab): Correct a few bit pattern errors.
+
+2003-07-09 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (prnd): Clear LSW of result to zeros.
+ * gencode.c (pmuls): Expression is mis-parenthesized.
+ * gencode.c (ppi_gensim): For a conditional ppi insn, if the
+ condition is false, we want to return (not break). A break
+ will take us to the end of the function where registers will
+ be updated, whereas the desired outcome is for nothing to change.
+
+2003-07-03 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (movs): Fix a couple of text transpositions.
+
+2003-06-27 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (op tab): Some fix-ups of refs and defs.
+ (ocbi, ocbp): Cache not simulated, but may cause memory fault.
+ (gensym_caselist): Add default case to switch statement.
+ (expand_ppi_code): Add default case to switch statement.
+ * gencode.c (op tab): Implement movca.l.
+ * gencode.c (op movsxy_tab): Fix an error in the bit pattern.
+ * gencode.c (gensim_caselist): The movy instructions use
+ registers R6 and R7 (not R4 and R5 like the movx insns).
+
+2003-06-27 Michael Snyder <msnyder@redhat.com>
+
+ * gencode.c (op movsxy_tab): Fix up some copy/paste errors
+ in name: s/REG_x/REG_y/.
+
+ * gencode.c (op tab): Move misplaced semicolon.
+
2003-02-27 Andrew Cagney <cagney@redhat.com>
* interp.c (init_dsp, sim_open, sim_create_inferior): Rename _bfd
diff --git a/sim/sh/gencode.c b/sim/sh/gencode.c
index 167fdd1..a4a1c2d 100644
--- a/sim/sh/gencode.c
+++ b/sim/sh/gencode.c
@@ -195,7 +195,7 @@ op tab[] =
"SET_SR_T (0);",
},
- { "", "", "div1 <REG_M>,<REG_N>", "0011nnnnmmmm0100",
+ { "", "nm", "div1 <REG_M>,<REG_N>", "0011nnnnmmmm0100", /* ? MVS */
"div1 (R, m, n/*, T*/);",
},
@@ -346,7 +346,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s <FREG_M>,@<REG_N>", "1111nnnnmmmm1010",
+ { "", "n", "fmov.s <FREG_M>,@<REG_N>", "1111nnnnmmmm1010",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -359,7 +359,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s @<REG_M>,<FREG_N>", "1111nnnnmmmm1000",
+ { "", "m", "fmov.s @<REG_M>,<FREG_N>", "1111nnnnmmmm1000",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -372,7 +372,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s @<REG_M>+,<FREG_N>", "1111nnnnmmmm1001",
+ { "m", "m", "fmov.s @<REG_M>+,<FREG_N>", "1111nnnnmmmm1001",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -387,7 +387,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s <FREG_M>,@-<REG_N>", "1111nnnnmmmm1011",
+ { "n", "n", "fmov.s <FREG_M>,@-<REG_N>", "1111nnnnmmmm1011",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -402,7 +402,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s @(R0,<REG_M>),<FREG_N>", "1111nnnnmmmm0110",
+ { "", "0m", "fmov.s @(R0,<REG_M>),<FREG_N>", "1111nnnnmmmm0110",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -415,7 +415,7 @@ op tab[] =
"}",
},
/* sh2e */
- { "", "", "fmov.s <FREG_M>,@(R0,<REG_N>)", "1111nnnnmmmm0111",
+ { "", "0n", "fmov.s <FREG_M>,@(R0,<REG_N>)", "1111nnnnmmmm0111",
/* sh4 */
"if (FPSCR_SZ) {",
" MA (2);",
@@ -442,7 +442,10 @@ op tab[] =
/* sh4 */
{ "", "", "frchg", "1111101111111101",
- "SET_FPSCR (GET_FPSCR() ^ FPSCR_MASK_FR);",
+ "if (FPSCR_PR)",
+ " RAISE_EXCEPTION (SIGILL);",
+ "else",
+ " SET_FPSCR (GET_FPSCR() ^ FPSCR_MASK_FR);",
},
/* sh4 */
@@ -519,25 +522,25 @@ op tab[] =
"/* FIXME: user mode */",
},
#endif
- { "", "n", "ldc.l @<REG_N>+,<CREG_M>", "0100nnnnmmmm0111",
+ { "n", "n", "ldc.l @<REG_N>+,<CREG_M>", "0100nnnnmmmm0111",
"MA (1);",
"CREG (m) = RLAT (R[n]);",
"R[n] += 4;",
"/* FIXME: user mode */",
},
- { "", "n", "ldc.l @<REG_N>+,SR", "0100nnnn00000111",
+ { "n", "n", "ldc.l @<REG_N>+,SR", "0100nnnn00000111",
"MA (1);",
"SET_SR (RLAT (R[n]));",
"R[n] += 4;",
"/* FIXME: user mode */",
},
- { "", "n", "ldc.l @<REG_N>+,MOD", "0100nnnn01010111",
+ { "n", "n", "ldc.l @<REG_N>+,MOD", "0100nnnn01010111",
"MA (1);",
"SET_MOD (RLAT (R[n]));",
"R[n] += 4;",
},
#if 0
- { "", "n", "ldc.l @<REG_N>+,DBR", "0100nnnn11110110",
+ { "n", "n", "ldc.l @<REG_N>+,DBR", "0100nnnn11110110",
"MA (1);",
"DBR = RLAT (R[n]);",
"R[n] += 4;",
@@ -556,7 +559,7 @@ op tab[] =
{ "", "n", "lds <REG_N>,<SREG_M>", "0100nnnnssss1010",
"SREG (m) = R[n];",
},
- { "", "n", "lds.l @<REG_N>+,<SREG_M>", "0100nnnnssss0110",
+ { "n", "n", "lds.l @<REG_N>+,<SREG_M>", "0100nnnnssss0110",
"MA (1);",
"SREG (m) = RLAT(R[n]);",
"R[n] += 4;",
@@ -566,23 +569,22 @@ op tab[] =
"SET_FPSCR(R[n]);",
},
/* sh2e / sh-dsp (lds.l @<REG_N>+,DSR) */
- { "", "n", "lds.l @<REG_N>+,FPSCR", "0100nnnn01100110",
+ { "n", "n", "lds.l @<REG_N>+,FPSCR", "0100nnnn01100110",
"MA (1);",
"SET_FPSCR (RLAT(R[n]));",
"R[n] += 4;",
},
{ "", "", "ldtlb", "0000000000111000",
- "/* FIXME: XXX*/ abort();",
+ "/* We don't implement cache or tlb, so this is a noop. */",
},
- { "", "nm", "mac.l @<REG_M>+,@<REG_N>+", "0000nnnnmmmm1111",
- "trap (255, R0, PC, memory, maskl, maskw, endianw);",
- "/* FIXME: mac.l support */",
+ { "nm", "nm", "mac.l @<REG_M>+,@<REG_N>+", "0000nnnnmmmm1111",
+ "macl(&R0,memory,n,m);",
},
- { "", "nm", "mac.w @<REG_M>+,@<REG_N>+", "0100nnnnmmmm1111",
- "macw(R0,memory,n,m,endianw);",
+ { "nm", "nm", "mac.w @<REG_M>+,@<REG_N>+", "0100nnnnmmmm1111",
+ "macw(&R0,memory,n,m,endianw);",
},
{ "n", "", "mov #<imm>,<REG_N>", "1110nnnni8*1....",
@@ -607,7 +609,7 @@ op tab[] =
"R[n] = RSBAT (R0 + R[m]);",
"L (n);",
},
- { "n", "m", "mov.b @<REG_M>+,<REG_N>", "0110nnnnmmmm0100",
+ { "nm", "m", "mov.b @<REG_M>+,<REG_N>", "0110nnnnmmmm0100",
"MA (1);",
"R[n] = RSBAT (R[m]);",
"R[m] += 1;",
@@ -629,7 +631,7 @@ op tab[] =
"MA (1);",
"WBAT (R[n] + R0, R[m]);",
},
- { "", "nm", "mov.b <REG_M>,@-<REG_N>", "0010nnnnmmmm0100",
+ { "n", "nm", "mov.b <REG_M>,@-<REG_N>", "0010nnnnmmmm0100",
"MA (1);",
"R[n] -= 1;",
"WBAT (R[n], R[m]);",
@@ -683,7 +685,7 @@ op tab[] =
"MA (1);",
"WLAT (R0 + R[n], R[m]);",
},
- { "", "nm", "mov.l <REG_M>,@-<REG_N>", "0010nnnnmmmm0110",
+ { "n", "nm", "mov.l <REG_M>,@-<REG_N>", "0010nnnnmmmm0110",
"MA (1) ;",
"R[n] -= 4;",
"WLAT (R[n], R[m]);",
@@ -694,8 +696,8 @@ op tab[] =
},
{ "0", "", "mov.w @(<disp>,GBR),R0", "11000101i8*2....",
- "MA (1)",
- ";R0 = RSWAT (i + GBR);",
+ "MA (1);",
+ "R0 = RSWAT (i + GBR);",
"L (0);",
},
{ "n", "", "mov.w @(<disp>,PC),<REG_N>", "1001nnnni8p2....",
@@ -750,9 +752,10 @@ op tab[] =
"R0 = ((i + 4 + PH2T (PC)) & ~0x3);",
},
- { "0", "", "movca.l @R0, <REG_N>", "0000nnnn11000011",
- "/* FIXME: Not implemented */",
- "RAISE_EXCEPTION (SIGILL);",
+ { "", "n0", "movca.l R0, @<REG_N>", "0000nnnn11000011",
+ "/* We don't simulate cache, so this insn is identical to mov. */",
+ "MA (1);",
+ "WLAT (R[n], R[0]);",
},
{ "n", "", "movt <REG_N>", "0000nnnn00101001",
@@ -798,18 +801,18 @@ op tab[] =
"R[n] = ~R[m];",
},
- { "0", "", "ocbi @<REG_N>", "0000nnnn10010011",
- "/* FIXME: Not implemented */",
- "RAISE_EXCEPTION (SIGILL);",
+ { "", "n", "ocbi @<REG_N>", "0000nnnn10010011",
+ "RSBAT (R[n]); /* Take exceptions like byte load, otherwise noop. */",
+ "/* FIXME: Cache not implemented */",
},
- { "0", "", "ocbp @<REG_N>", "0000nnnn10100011",
- "/* FIXME: Not implemented */",
- "RAISE_EXCEPTION (SIGILL);",
+ { "", "n", "ocbp @<REG_N>", "0000nnnn10100011",
+ "RSBAT (R[n]); /* Take exceptions like byte load, otherwise noop. */",
+ "/* FIXME: Cache not implemented */",
},
{ "", "n", "ocbwb @<REG_N>", "0000nnnn10110011",
- "RSBAT (R[n]); /* Take exceptions like byte load. */",
+ "RSBAT (R[n]); /* Take exceptions like byte load, otherwise noop. */",
"/* FIXME: Cache not implemented */",
},
@@ -880,7 +883,7 @@ op tab[] =
{ "", "n", "setrc <REG_N>", "0100nnnn00010100",
"SET_RC (R[n]);",
},
- { "", "n", "setrc #<imm>", "10000010i8*1....",
+ { "", "", "setrc #<imm>", "10000010i8*1....",
/* It would be more realistic to let loop_start point to some static
memory that contains an illegal opcode and then give a bus error when
the loop is eventually encountered, but it seems not only simpler,
@@ -1137,7 +1140,7 @@ op movsxy_tab[] =
"DSP_R (m) = RSWAT (R[n]);",
"R[n] += R[8];",
},
- { "n", "n", "<DSP_REG_M>,movs.w @-<REG_N>", "111101NNMMMM0001",
+ { "n", "n", "movs.w <DSP_REG_M>,@-<REG_N>", "111101NNMMMM0001",
"MA (1);",
"R[n] -= 2;",
"WWAT (R[n], DSP_R (m) >> 16);",
@@ -1198,7 +1201,7 @@ op movsxy_tab[] =
"DSP_GRD (m) = SIGN32 (DSP_R (m));",
"R[n] += R[8];",
},
- { "n", "n", "<DSP_REG_M>,movs.l @-<REG_N>", "111101NNMMMM0011",
+ { "n", "n", "movs.l <DSP_REG_M>,@-<REG_N>", "111101NNMMMM0011",
"MA (1);",
"R[n] -= 4;",
"WLAT (R[n], DSP_R (m));",
@@ -1217,7 +1220,7 @@ op movsxy_tab[] =
"WLAT (R[n], DSP_R (m));",
"R[n] += R[8];",
},
- { "n", "n", "<DSP_GRD_M>,movs.l @-<REG_N>", "111101NNGGGG0011",
+ { "n", "n", "movs.l <DSP_GRD_M>,@-<REG_N>", "111101NNGGGG0011",
"MA (1);",
"R[n] -= 4;",
"WLAT (R[n], SEXT (DSP_R (m)));",
@@ -1245,7 +1248,7 @@ op movsxy_tab[] =
"R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : 2;",
"iword &= 0xfd53; goto top;",
},
- { "n", "n8","movx.w @<REG_x>+REG_8,<DSP_XX>", "111100xxXX001000",
+ { "n", "n8","movx.w @<REG_x>+REG_8,<DSP_XX>", "111100xxXX001100",
"DSP_R (m) = RSWAT (R[n]) << 16;",
"R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : R[8];",
"iword &= 0xfd53; goto top;",
@@ -1259,7 +1262,7 @@ op movsxy_tab[] =
"R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : 2;",
"iword &= 0xfd53; goto top;",
},
- { "n", "n8","movx.w <DSP_Aa>,@<REG_x>+REG_8","111100xxaa101000",
+ { "n", "n8","movx.w <DSP_Aa>,@<REG_x>+REG_8","111100xxaa101100",
"WWAT (R[n], DSP_R (m) >> 16);",
"R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : R[8];",
"iword &= 0xfd53; goto top;",
@@ -1267,22 +1270,22 @@ op movsxy_tab[] =
{ "", "n", "movy.w @<REG_y>,<DSP_YY>", "111100yyYY000001",
"DSP_R (m) = RSWAT (R[n]) << 16;",
},
- { "n", "n", "movy.w @<REG_x>+,<DSP_YY>", "111100yyYY000010",
+ { "n", "n", "movy.w @<REG_y>+,<DSP_YY>", "111100yyYY000010",
"DSP_R (m) = RSWAT (R[n]) << 16;",
"R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : 2;",
},
- { "n", "n9","movy.w @<REG_x>+REG_9,<DSP_YY>", "111100yyYY000010",
+ { "n", "n9","movy.w @<REG_y>+REG_9,<DSP_YY>", "111100yyYY000011",
"DSP_R (m) = RSWAT (R[n]) << 16;",
"R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : R[9];",
},
- { "", "n", "movy.w <DSP_Aa>,@<REG_x>", "111100yyAA010001",
+ { "", "n", "movy.w <DSP_Aa>,@<REG_y>", "111100yyAA010001",
"WWAT (R[n], DSP_R (m) >> 16);",
},
- { "n", "n", "movy.w <DSP_Aa>,@<REG_x>+", "111100yyAA010010",
+ { "n", "n", "movy.w <DSP_Aa>,@<REG_y>+", "111100yyAA010010",
"WWAT (R[n], DSP_R (m) >> 16);",
"R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : 2;",
},
- { "n", "n9", "movy.w <DSP_Aa>,@<REG_x>+REG_9", "111100yyAA010010",
+ { "n", "n9", "movy.w <DSP_Aa>,@<REG_y>+REG_9", "111100yyAA010011",
"WWAT (R[n], DSP_R (m) >> 16);",
"R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : R[9];",
},
@@ -1302,10 +1305,10 @@ op ppi_tab[] =
{ "","", "pshl #<imm>,dz", "00000iiim16.zzzz",
"int Sz = DSP_R (z) & 0xffff0000;",
"",
- "if (i < 16)",
+ "if (i <= 16)",
" res = Sz << i;",
"else if (i >= 128 - 16)",
- " res = Sz >> 128 - i;",
+ " res = (unsigned) Sz >> 128 - i; /* no sign extension */",
"else",
" {",
" RAISE_EXCEPTION (SIGILL);",
@@ -1319,7 +1322,7 @@ op ppi_tab[] =
"int Sz = DSP_R (z);",
"int Sz_grd = GET_DSP_GRD (z);",
"",
- "if (i < 32)",
+ "if (i <= 32)",
" {",
" if (i == 32)",
" {",
@@ -1358,7 +1361,7 @@ op ppi_tab[] =
"greater_equal = 0;",
},
{ "","", "pmuls Se,Sf,Dg", "0100eeffxxyygguu",
- "res = (DSP_R (e)) >> 16 * (DSP_R (f) >> 16) * 2;",
+ "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
"if (res == 0x80000000)",
" res = 0x7fffffff;",
"DSP_R (g) = res;",
@@ -1371,7 +1374,7 @@ op ppi_tab[] =
"int Sy = DSP_R (y);",
"int Sy_grd = SIGN32 (Sy);",
"",
- "res = (DSP_R (e)) >> 16 * (DSP_R (f) >> 16) * 2;",
+ "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
"if (res == 0x80000000)",
" res = 0x7fffffff;",
"DSP_R (g) = res;",
@@ -1390,7 +1393,7 @@ op ppi_tab[] =
"int Sy = DSP_R (y);",
"int Sy_grd = SIGN32 (Sy);",
"",
- "res = (DSP_R (e)) >> 16 * (DSP_R (f) >> 16) * 2;",
+ "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
"if (res == 0x80000000)",
" res = 0x7fffffff;",
"DSP_R (g) = res;",
@@ -1478,7 +1481,7 @@ op ppi_tab[] =
"int Sx = DSP_R (x);",
"int Sx_grd = GET_DSP_GRD (x);",
"",
- "res = Sx + 0x8000;",
+ "res = (Sx + 0x8000) & 0xffff0000;",
"carry = (unsigned) res < (unsigned) Sx;",
"res_grd = Sx_grd + carry;",
"COMPUTE_OVERFLOW;",
@@ -1511,7 +1514,7 @@ op ppi_tab[] =
"int Sy = DSP_R (y);",
"int Sy_grd = SIGN32 (Sy);",
"",
- "res = Sy + 0x8000;",
+ "res = (Sy + 0x8000) & 0xffff0000;",
"carry = (unsigned) res < (unsigned) Sy;",
"res_grd = Sy_grd + carry;",
"COMPUTE_OVERFLOW;",
@@ -1521,10 +1524,10 @@ op ppi_tab[] =
"int Sx = DSP_R (x) & 0xffff0000;",
"int Sy = DSP_R (y) >> 16 & 0x7f;",
"",
- "if (Sy < 16)",
+ "if (Sy <= 16)",
" res = Sx << Sy;",
"else if (Sy >= 128 - 16)",
- " res = Sx >> 128 - Sy;",
+ " res = (unsigned) Sx >> 128 - Sy; /* no sign extension */",
"else",
" {",
" RAISE_EXCEPTION (SIGILL);",
@@ -1537,7 +1540,7 @@ op ppi_tab[] =
"int Sx_grd = GET_DSP_GRD (x);",
"int Sy = DSP_R (y) >> 16 & 0x7f;",
"",
- "if (Sy < 32)",
+ "if (Sy <= 32)",
" {",
" if (Sy == 32)",
" {",
@@ -2102,7 +2105,7 @@ filltable (p)
}
}
-/* Table already contais all the switch case tags for 16-bit opcode double
+/* Table already contains all the switch case tags for 16-bit opcode double
data transfer (ddt) insns, and the switch case tag for processing parallel
processing insns (ppi) for code 0xf800 (ppi nopx nopy). Copy the
latter tag to represent all combinations of ppi with ddt. */
@@ -2137,6 +2140,11 @@ gensim_caselist (p)
{
switch (*s)
{
+ default:
+ fprintf (stderr, "gencode/gensim_caselist: illegal char '%c'\n",
+ *s);
+ exit (1);
+ break;
case '0':
case '1':
s += 2;
@@ -2159,7 +2167,7 @@ gensim_caselist (p)
s += 2;
break;
case 'y':
- printf (" int n = ((iword >> 8) & 1) + 4;\n");
+ printf (" int n = ((iword >> 8) & 1) + 6;\n");
needn = 1;
s += 2;
break;
@@ -2315,7 +2323,7 @@ gendefines ()
static int ppi_index;
-/* Take an ppi code, expand all varying fields in it and fill all the
+/* Take a ppi code, expand all varying fields in it and fill all the
right entries in 'table' with the opcode index. */
static void
@@ -2330,6 +2338,11 @@ expand_ppi_code (val, i, s)
{
switch (s[0])
{
+ default:
+ fprintf (stderr, "gencode/expand_ppi_code: Illegal char '%c'\n",
+ s[0]);
+ exit (2);
+ break;
/* The last eight bits are disregarded for the switch table. */
case 'm':
case 'x':
@@ -2459,7 +2472,7 @@ ppi_gensim ()
break;
case 'c':
printf (" if ((((iword >> 8) ^ DSR) & 1) == 0)\n");
- printf ("\tbreak;\n");
+ printf ("\treturn;\n");
printf (" }\n");
printf (" case %d: \n", p->index + 1);
printf (" {\n");
diff --git a/sim/sh/interp.c b/sim/sh/interp.c
index 887b7a6..91899f4 100644
--- a/sim/sh/interp.c
+++ b/sim/sh/interp.c
@@ -169,6 +169,7 @@ static char **prog_argv;
#if 1
static int maskw = 0;
+static int maskl = 0;
#endif
static SIM_OPEN_KIND sim_kind;
@@ -651,6 +652,7 @@ rbat_fast (memory, x, maskb)
#define RUWAT(x) (RWAT(x) & 0xffff)
#define RSWAT(x) ((short)(RWAT(x)))
+#define RSLAT(x) ((long)(RLAT(x)))
#define RSBAT(x) (SEXT(RBAT(x)))
#define RDAT(x, n) (do_rdat (memory, (x), (n), (maskl)))
@@ -1348,6 +1350,56 @@ macw (regs, memory, n, m, endianw)
MACL = sum;
}
+static void
+macl (regs, memory, n, m)
+ int *regs;
+ unsigned char *memory;
+ int m, n;
+{
+ long tempm, tempn;
+ long prod, macl, mach, sum;
+ long long ans,ansl,ansh,t;
+ unsigned long long high,low,combine;
+ union mac64
+ {
+ long m[2]; /* mach and macl*/
+ long long m64; /* 64 bit MAC */
+ }mac64;
+
+ tempm = RSLAT(regs[m]);
+ regs[m] += 4;
+
+ tempn = RSLAT(regs[n]);
+ regs[n] += 4;
+
+ mach = MACH;
+ macl = MACL;
+
+ mac64.m[0] = macl;
+ mac64.m[1] = mach;
+
+ ans = (long long)tempm * (long long)tempn; /* Multiply 32bit * 32bit */
+
+ mac64.m64 += ans; /* Accumulate 64bit + 64 bit */
+
+ macl = mac64.m[0];
+ mach = mac64.m[1];
+
+ if (S) /* Store only 48 bits of the result */
+ {
+ if (mach < 0) /* Result is negative */
+ {
+ mach = mach & 0x0000ffff; /* Mask higher 16 bits */
+ mach |= 0xffff8000; /* Sign extend higher 16 bits */
+ }
+ else
+ mach = mach & 0x00007fff; /* Postive Result */
+ }
+
+ MACL = macl;
+ MACH = mach;
+}
+
static struct loop_bounds
get_loop_bounds (rs, re, memory, mem_end, maskw, endianw)
int rs, re;
diff --git a/sim/testsuite/ChangeLog b/sim/testsuite/ChangeLog
index c88c159..301fe81 100644
--- a/sim/testsuite/ChangeLog
+++ b/sim/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2003-07-09 Michael Snyder <msnyder@redhat.com>
+
+ * sim/sh: New directory. Tests for Renesas sh family.
+
2003-04-13 Michael Snyder <msnyder@redhat.com>
* sim/h8300: New directory. Tests for Renesas h8/300 family.
diff --git a/sim/testsuite/sim/h8300/ChangeLog b/sim/testsuite/sim/h8300/ChangeLog
index 3f1c1d3..4dc6559 100644
--- a/sim/testsuite/sim/h8300/ChangeLog
+++ b/sim/testsuite/sim/h8300/ChangeLog
@@ -1,3 +1,10 @@
+2003-07-22 Michael Snyder <msnyder@redhat.com>
+
+ * cmpw.s: Add test for less-than-zero immediate.
+ * shll.s: Test for shll reg, reg.
+ * shlr.s: Test for shlr reg, reg.
+ * mova.s: Add dozens of new mova tests.
+
2003-05-30 Alexandre Oliva <aoliva@redhat.com>
* allinsn.exp: Fix typos introduced on 2003-05-27.
diff --git a/sim/testsuite/sim/h8300/cmpw.s b/sim/testsuite/sim/h8300/cmpw.s
index 2c69dbd..872c56c 100644
--- a/sim/testsuite/sim/h8300/cmpw.s
+++ b/sim/testsuite/sim/h8300/cmpw.s
@@ -48,7 +48,7 @@ cmp_w_imm16: ; cmp.w immediate not available in h8300 mode.
set_grs_a5a5 ; Fill all general regs with a fixed pattern
;; fixme set ccr
- ;; cmp.w #xx:8,Rd
+ ;; cmp.w #xx:16,Rd
cmp.w #0xa5a5, r0 ; Immediate 16-bit operand
beq eqi
fail
@@ -71,6 +71,22 @@ gti:
test_gr_a5a5 5
test_gr_a5a5 6
test_gr_a5a5 7
+
+cmp_w_imm16_less_than_zero: ; Test for less-than-zero immediate
+ set_grs_a5a5
+ ;; cmp.w #xx:16, Rd, where #xx < 0 (ie. #xx > 0x7fff).
+ sub.w r0, r0
+ cmp.w #0x8001, r0
+ bls ltz
+ fail
+ltz: test_gr_a5a5 1
+ test_gr_a5a5 2
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
+
.endif
cmp_w_reg:
diff --git a/sim/testsuite/sim/h8300/mova.s b/sim/testsuite/sim/h8300/mova.s
index 03c6adc..a4bcfd6 100644
--- a/sim/testsuite/sim/h8300/mova.s
+++ b/sim/testsuite/sim/h8300/mova.s
@@ -10,6 +10,11 @@
.include "testutils.inc"
+ .data
+foo: .long 0x01010101
+ .long 0x10101010
+ .long 0x11111111
+
start
movabl16_reg8:
@@ -204,6 +209,630 @@ movall32_reg16:
test_gr_a5a5 6
test_gr_a5a5 7
+t02_mova:
+ set_grs_a5a5
+ set_ccr_zero
+
+ mov.l #0x01010101, er1
+ mova/b.c @(0x1234:16,r1l.b),er1 ; 7A891234
+ test_h_gr32 0x1235, er1 ; 1s
+ mov.l #0x01010101, er1
+ mova/b.c @(0x1234:16,r1.w),er1 ; 7A991234
+ test_h_gr32 0x1335, er1 ; 2s
+ mov.l #0x01010101, er1
+ mova/w.c @(0x1234:16,r1l.b),er1 ; 7AA91234
+ test_h_gr32 0x1236, er1 ; 3s
+ mov.l #0x01010101, er1
+ mova/w.c @(0x1234:16,r1.w),er1 ; 7AB91234
+ test_h_gr32 0x1436, er1 ; 4s
+ mov.l #0x01010101, er1
+ mova/l.c @(0x1234:16,r1l.b),er1 ; 7AC91234
+ test_h_gr32 0x1238, er1 ; 5s
+ mov.l #0x01010101, er1
+ mova/l.c @(0x1234:16,r1.w),er1 ; 7AD91234
+ test_h_gr32 0x1638, er1 ; 6s
+ mov.l #0x01010101, er1
+ mova/b.c @(0x12345678:32,r1l.b),er1 ; 7A8112345678
+ test_h_gr32 0x12345679, er1 ; 7s
+ mov.l #0x01010101, er1
+ mova/b.c @(0x12345678:32,r1.w),er1 ; 7A9112345678
+ test_h_gr32 0x12345779, er1 ; 8s
+ mov.l #0x01010101, er1
+ mova/w.c @(0x12345678:32,r1l.b),er1 ; 7AA112345678
+ test_h_gr32 0x1234567a, er1 ; 9s
+ mov.l #0x01010101, er1
+ mova/w.c @(0x12345678:32,r1.w),er1 ; 7AB112345678
+ test_h_gr32 0x1234587a, er1 ; 10s
+ mov.l #0x01010101, er1
+ mova/l.c @(0x12345678:32,r1l.b),er1 ; 7AC112345678
+ test_h_gr32 0x1234567c, er1 ; 11s
+ mov.l #0x01010101, er1
+ mova/l.c @(0x12345678:32,r1.w),er1 ; 7AD112345678
+ test_h_gr32 0x12345a7c, er1 ; 12s
+
+t02b:
+ mov.l #0x01010101, er3
+ mova/b.l @(0x1234:16,r3l.b),er1 ; 78B87A891234
+ test_h_gr32 0x1235, er1 ; 1
+ mova/b.l @(0x1234:16,r3.w),er1 ; 78397A991234
+ test_h_gr32 0x1335, er1 ; 2
+ mova/w.l @(0x1234:16,r3l.b),er1 ; 78B87AA91234
+ test_h_gr32 0x1236, er1 ; 3
+ mova/w.l @(0x1234:16,r3.w),er1 ; 78397AB91234
+ test_h_gr32 0x1436, er1 ; 4
+ mova/l.l @(0x1234:16,r3l.b),er1 ; 78B87AC91234
+ test_h_gr32 0x1238, er1 ; 5
+ mova/l.l @(0x1234:16,r3.w),er1 ; 78397AD91234
+ test_h_gr32 0x1638, er1 ; 6
+ mova/b.l @(0x12345678:32,r3l.b),er1 ; 78B87A8112345678
+ test_h_gr32 0x12345679, er1 ; 7
+ mova/b.l @(0x12345678:32,r3.w),er1 ; 78397A9112345678
+ test_h_gr32 0x12345779, er1 ; 8
+ mova/w.l @(0x12345678:32,r3l.b),er1 ; 78B87AA112345678
+ test_h_gr32 0x1234567a, er1 ; 9
+ mova/w.l @(0x12345678:32,r3.w),er1 ; 78397AB112345678
+ test_h_gr32 0x1234587a, er1 ; 10
+ mova/l.l @(0x12345678:32,r3l.b),er1 ; 78B87AC112345678
+ test_h_gr32 0x1234567c, er1 ; 11
+ mova/l.l @(0x12345678:32,r3.w),er1 ; 78397AD112345678
+ test_h_gr32 0x12345a7c, er1 ; 12
+ test_h_gr32 0x01010101, er3
+t02c:
+ mov.l #foo, er2
+ mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234
+ test_h_gr32 0x1235, er1 ; 13
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234
+ test_h_gr32 0x1235, er1 ; 18
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234
+ test_h_gr32 0x1235, er1 ; 14
+ test_h_gr32 foo+1, er2
+ mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234
+ test_h_gr32 0x1235, er1 ; 17
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234
+ test_h_gr32 0x1235, er1 ; 16
+ test_h_gr32 foo+1, er2
+ mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234
+ test_h_gr32 0x1235, er1 ; 15
+ test_h_gr32 foo, er2
+t02d:
+ mov.l #4, er2
+ mova/b.l @(0x1234:16, @(foo:16, er2).b), er1
+ test_h_gr32 0x1244, er1 ; 19
+ mova/b.l @(0x1234:16, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x1244, er1 ; 21
+ mova/b.l @(0x1234:16, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x1244, er1 ; 22
+ mova/b.l @(0x1234:16, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x1244, er1 ; 23
+
+ mov.l #4, er2
+ mova/b.l @(0x1234:16, @(foo:32, er2).b), er1
+ test_h_gr32 0x1244, er1 ; 20
+ mova/b.l @(0x1234:16, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x1244, er1 ; 24
+ mova/b.l @(0x1234:16, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x1244, er1 ; 25
+ mova/b.l @(0x1234:16, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x1244, er1 ; 26
+
+ mova/b.l @(0x1234:16,@foo:16.b),er1
+ test_h_gr32 0x1235, er1 ; 27
+ mova/b.l @(0x1234:16,@foo:32.b),er1
+ test_h_gr32 0x1235, er1 ; 28
+
+t02e:
+ mov.l #foo, er2
+ mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234
+ test_h_gr32 0x1335, er1 ; 29
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234
+ test_h_gr32 0x1335, er1 ; 34
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234
+ test_h_gr32 0x1335, er1 ; 30
+ test_h_gr32 foo+2, er2
+ mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234
+ test_h_gr32 0x1335, er1 ; 33
+ test_h_gr32 foo, er2
+ mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234
+ test_h_gr32 0x1335, er1 ; 32
+ test_h_gr32 foo+2, er2
+ mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234
+ test_h_gr32 0x1335, er1 ; 31
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/b.l @(0x1234:16, @(foo:16, er2).w), er1
+ test_h_gr32 0x2244, er1 ; 35
+ shar.l er2
+ mova/b.l @(0x1234:16, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x2244, er1 ; 37
+ mova/b.l @(0x1234:16, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x2244, er1 ; 38
+ mova/b.l @(0x1234:16, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x2244, er1 ; 39
+
+ mov.l #4, er2
+ mova/b.l @(0x1234:16, @(foo:32, er2).w), er1
+ test_h_gr32 0x2244, er1 ; 36
+ shar.l er2
+ mova/b.l @(0x1234:16, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x2244, er1 ; 40
+ mova/b.l @(0x1234:16, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x2244, er1 ; 41
+ mova/b.l @(0x1234:16, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x2244, er1 ; 42
+
+ mova/b.l @(0x1234:16,@foo:16.w),er1 ;015F40919ABC1234
+ test_h_gr32 0x1335, er1 ; 43
+ mova/b.l @(0x1234:16,@foo:32.w),er1 ;015F48919ABCDEF01234
+ test_h_gr32 0x1335, er1 ; 44
+
+t02f:
+ mov.l #foo, er2
+ mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234
+ test_h_gr32 0x1236, er1 ; 45
+ mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234
+ test_h_gr32 0x1236, er1 ; 50
+ mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234
+ test_h_gr32 0x1236, er1 ; 46
+ test_h_gr32 foo+1, er2
+ mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234
+ test_h_gr32 0x1236, er1 ; 49
+ test_h_gr32 foo, er2
+ mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234
+ test_h_gr32 0x1236, er1 ; 48
+ test_h_gr32 foo+1, er2
+ mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234
+ test_h_gr32 0x1236, er1 ; 47
+ test_h_gr32 foo, er2
+
+t02g:
+ mov.l #4, er2
+ mova/w.l @(0x1234:16, @(foo:16, er2).b), er1
+ test_h_gr32 0x1254, er1 ; 51
+ mova/w.l @(0x1234:16, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x1254, er1 ; 53
+ mova/w.l @(0x1234:16, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x1254, er1 ; 54
+ mova/w.l @(0x1234:16, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x1254, er1 ; 55
+
+ mov.l #4, er2
+ mova/w.l @(0x1234:16, @(foo:32, er2).b), er1
+ test_h_gr32 0x1254, er1 ; 52
+ mova/w.l @(0x1234:16, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x1254, er1 ; 56
+ mova/w.l @(0x1234:16, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x1254, er1 ; 57
+ mova/w.l @(0x1234:16, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x1254, er1 ; 58
+
+ mova/w.l @(0x1234:16,@foo:16.b),er1 ;017F40A19ABC1234
+ test_h_gr32 0x1236, er1 ; 59 (can't test -- points into the woods)
+ mova/w.l @(0x1234:16,@foo:32.b),er1 ;017F48A19ABCDEF01234
+ test_h_gr32 0x1236, er1 ; 60 (can't test -- points into the woods)
+
+t02h:
+ mov.l #foo, er2
+ mova/w.l @(0x1234:16,@er2.w),er1 ;015F02B11234
+ test_h_gr32 0x1436, er1 ; 61
+ mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234
+ test_h_gr32 0x1436, er1 ; 66, 0x1234 + (@(4+foo).w << 1
+ mova/w.l @(0x1234:16,@er2+.w),er1 ;015F82B11234
+ test_h_gr32 0x1436, er1 ; 62
+ test_h_gr32 foo+2, er2
+ mova/w.l @(0x1234:16,@-er2.w),er1 ;015FB2B11234
+ test_h_gr32 0x1436, er1 ; 63
+ test_h_gr32 foo, er2
+ mova/w.l @(0x1234:16,@+er2.w),er1 ;015F92B11234
+ test_h_gr32 0x1436, er1 ; 64
+ test_h_gr32 foo+2, er2
+ mova/w.l @(0x1234:16,@er2-.w),er1 ;015FA2B11234
+ test_h_gr32 0x1436, er1 ; 65
+ test_h_gr32 foo, er2
+t02i:
+ mov.l #4, er2
+ mova/w.l @(0x1234:16, @(foo:16, er2).w), er1
+ test_h_gr32 0x3254, er1 ; 67
+ shar.l er2
+ mova/w.l @(0x1234:16, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x3254, er1 ; 69
+ mova/w.l @(0x1234:16, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x3254, er1 ; 70
+ mova/w.l @(0x1234:16, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x3254, er1 ; 71
+
+ mov.l #4, er2
+ mova/w.l @(0x1234:16, @(foo:32, er2).w), er1
+ test_h_gr32 0x3254, er1 ; 68
+ shar.l er2
+ mova/w.l @(0x1234:16, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x3254, er1 ; 72
+ mova/w.l @(0x1234:16, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x3254, er1 ; 73
+ mova/w.l @(0x1234:16, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x3254, er1 ; 74
+
+ mova/w.l @(0x1234:16,@foo:16.w),er1 ;015F40B19ABC1234
+ test_h_gr32 0x1436, er1 ; 75 (can't test -- points into the woods)
+ mova/w.l @(0x1234:16,@foo:32.w),er1 ;015F48B19ABCDEF01234
+ test_h_gr32 0x1436, er1 ; 76 (can't test -- points into the woods)
+
+t02j:
+ mov.l #foo, er2
+ mova/l.l @(0x1234:16,@er2.b),er1 ;017F02C11234
+ test_h_gr32 0x1238, er1 ; 77
+ mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12C11234
+ test_h_gr32 0x1238, er1 ; 82
+ mova/l.l @(0x1234:16,@er2+.b),er1 ;017F82C11234
+ test_h_gr32 0x1238, er1 ; 78
+ test_h_gr32 foo+1, er2
+ mova/l.l @(0x1234:16,@-er2.b),er1 ;017FB2C11234
+ test_h_gr32 0x1238, er1 ; 79
+ test_h_gr32 foo, er2
+ mova/l.l @(0x1234:16,@+er2.b),er1 ;017F92C11234
+ test_h_gr32 0x1238, er1 ; 80
+ test_h_gr32 foo+1, er2
+ mova/l.l @(0x1234:16,@er2-.b),er1 ;017FA2C11234
+ test_h_gr32 0x1238, er1 ; 81
+ test_h_gr32 foo, er2
+
+t02k:
+ mov.l #4, er2
+ mova/l.l @(0x1234:16, @(foo:16, er2).b), er1
+ test_h_gr32 0x1274, er1 ; 83
+ mova/l.l @(0x1234:16, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x1274, er1 ; 85
+ mova/l.l @(0x1234:16, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x1274, er1 ; 86
+ mova/l.l @(0x1234:16, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x1274, er1 ; 87
+
+ mov.l #4, er2
+ mova/l.l @(0x1234:16, @(foo:32, er2).b), er1
+ test_h_gr32 0x1274, er1 ; 84
+ mova/l.l @(0x1234:16, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x1274, er1 ; 88
+ mova/l.l @(0x1234:16, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x1274, er1 ; 89
+ mova/l.l @(0x1234:16, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x1274, er1 ; 90
+
+ mova/l.l @(0x1234:16,@foo:16.b),er1 ;017F40C19ABC1234
+ test_h_gr32 0x1238, er1 ; 91 (can't test -- points into the woods)
+ mova/l.l @(0x1234:16,@foo:32.b),er1 ;017F48C19ABCDEF01234
+ test_h_gr32 0x1238, er1 ; 92 (can't test -- points into the woods)
+
+t02l:
+ mov.l #foo, er2
+ mova/l.l @(0x1234:16,@er2.w),er1 ;015F02D11234
+ test_h_gr32 0x1638, er1 ; 93
+ mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12D11234
+ test_h_gr32 0x1638, er1 ; 98
+ mova/l.l @(0x1234:16,@er2+.w),er1 ;015F82D11234
+ test_h_gr32 0x1638, er1 ; 94
+ test_h_gr32 foo+2, er2
+ mova/l.l @(0x1234:16,@-er2.w),er1 ;015FB2D11234
+ test_h_gr32 0x1638, er1 ; 97
+ test_h_gr32 foo, er2
+ mova/l.l @(0x1234:16,@+er2.w),er1 ;015F92D11234
+ test_h_gr32 0x1638, er1 ; 96
+ test_h_gr32 foo+2, er2
+ mova/l.l @(0x1234:16,@er2-.w),er1 ;015FA2D11234
+ test_h_gr32 0x1638, er1 ; 95
+ test_h_gr32 foo, er2
+
+t02o:
+ mov.l #4, er2
+ mova/l.l @(0x1234:16, @(foo:16, er2).w), er1
+ test_h_gr32 0x5274, er1 ; 99
+ shar.l er2
+ mova/l.l @(0x1234:16, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x5274, er1 ; 101
+ mova/l.l @(0x1234:16, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x5274, er1 ; 102
+ mova/l.l @(0x1234:16, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x5274, er1 ; 103
+
+ mov.l #4, er2
+ mova/l.l @(0x1234:16, @(foo:32, er2).w), er1
+ test_h_gr32 0x5274, er1 ; 100
+ shar.l er2
+ mova/l.l @(0x1234:16, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x5274, er1 ; 104
+ mova/l.l @(0x1234:16, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x5274, er1 ; 105
+ mova/l.l @(0x1234:16, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x5274, er1 ; 106
+
+ mova/l.l @(0x1234:16,@foo:16.w),er1 ;015F40D19ABC1234
+ test_h_gr32 0x1638, er1 ; 107 (can't test -- points into the woods)
+ mova/l.l @(0x1234:16,@foo:32.w),er1 ;015F48D19ABCDEF01234
+ test_h_gr32 0x1638, er1 ; 108 (can't test -- points into the woods)
+
+t02p:
+ mov.l #foo, er2
+ mova/b.l @(0x12345678:32,@er2.b),er1 ;017F028912345678
+ test_h_gr32 0x12345679, er1 ; 109
+ mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F128912345678
+ test_h_gr32 0x12345679, er1 ; 114
+ mova/b.l @(0x12345678:32,@er2+.b),er1 ;017F828912345678
+ test_h_gr32 0x12345679, er1 ; 110
+ test_h_gr32 foo+1, er2
+ mova/b.l @(0x12345678:32,@-er2.b),er1 ;017FB28912345678
+ test_h_gr32 0x12345679, er1 ; 113
+ test_h_gr32 foo, er2
+ mova/b.l @(0x12345678:32,@+er2.b),er1 ;017F928912345678
+ test_h_gr32 0x12345679, er1 ; 112
+ test_h_gr32 foo+1, er2
+ mova/b.l @(0x12345678:32,@er2-.b),er1 ;017FA28912345678
+ test_h_gr32 0x12345679, er1 ; 111
+ test_h_gr32 foo, er2
+
+t02q:
+ mov.l #4, er2
+ mova/b.l @(0x12345678:32, @(foo:16, er2).b), er1
+ test_h_gr32 0x12345688, er1 ; 115
+ mova/b.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x12345688, er1 ; 117
+ mova/b.l @(0x12345678:32, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x12345688, er1 ; 118
+ mova/b.l @(0x12345678:32, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x12345688, er1 ; 119
+
+ mov.l #4, er2
+ mova/b.l @(0x12345678:32, @(foo:32, er2).b), er1
+ test_h_gr32 0x12345688, er1 ; 116
+ mova/b.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x12345688, er1 ; 120
+ mova/b.l @(0x12345678:32, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x12345688, er1 ; 121
+ mova/b.l @(0x12345678:32, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x12345688, er1 ; 122
+
+ mova/b.l @(0x12345678:32,@foo:16.b),er1
+ test_h_gr32 0x12345679, er1 ; 123
+ mova/b.l @(0x12345678:32,@foo:32.b),er1
+ test_h_gr32 0x12345679, er1 ; 124
+
+t02r:
+ mov.l #foo, er2
+ mova/b.l @(0x12345678:32,@er2.w),er1 ;015F029912345678
+ test_h_gr32 0x12345779, er1 ; 125
+ mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F129912345678
+ test_h_gr32 0x12345779, er1 ; 130
+ mova/b.l @(0x12345678:32,@er2+.w),er1 ;015F829912345678
+ test_h_gr32 0x12345779, er1 ; 126
+ test_h_gr32 foo+2, er2
+ mova/b.l @(0x12345678:32,@-er2.w),er1 ;015FB29912345678
+ test_h_gr32 0x12345779, er1 ; 129
+ test_h_gr32 foo, er2
+ mova/b.l @(0x12345678:32,@+er2.w),er1 ;015F929912345678
+ test_h_gr32 0x12345779, er1 ; 128
+ test_h_gr32 foo+2, er2
+ mova/b.l @(0x12345678:32,@er2-.w),er1 ;015FA29912345678
+ test_h_gr32 0x12345779, er1 ; 127
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/b.l @(0x12345678:32, @(foo:16, er2).w), er1
+ test_h_gr32 0x12346688, er1 ; 131
+ shar.l er2
+ mova/b.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x12346688, er1 ; 133
+ mova/b.l @(0x12345678:32, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x12346688, er1 ; 134
+ mova/b.l @(0x12345678:32, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x12346688, er1 ; 135
+
+ mov.l #4, er2
+ mova/b.l @(0x12345678:32, @(foo:32, er2).w), er1
+ test_h_gr32 0x12346688, er1 ; 132
+ shar.l er2
+ mova/b.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x12346688, er1 ; 136
+ mova/b.l @(0x12345678:32, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x12346688, er1 ; 137
+ mova/b.l @(0x12345678:32, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x12346688, er1 ; 138
+
+ mova/b.l @(0x12345678:32,@foo:16.w),er1
+ test_h_gr32 0x12345779, er1 ; 139
+ mova/b.l @(0x12345678:32,@foo:32.w),er1
+ test_h_gr32 0x12345779, er1 ; 140
+
+t02s:
+ mov.l #foo, er2
+ mova/w.l @(0x12345678:32,@er2.b),er1 ;017F02A912345678
+ test_h_gr32 0x1234567a, er1 ; 141
+ mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12A912345678
+ test_h_gr32 0x1234567a, er1 ; 146
+ mova/w.l @(0x12345678:32,@er2+.b),er1 ;017F82A912345678
+ test_h_gr32 0x1234567a, er1 ; 142
+ test_h_gr32 foo+1, er2
+ mova/w.l @(0x12345678:32,@-er2.b),er1 ;017FB2A912345678
+ test_h_gr32 0x1234567a, er1 ; 145
+ test_h_gr32 foo, er2
+ mova/w.l @(0x12345678:32,@+er2.b),er1 ;017F92A912345678
+ test_h_gr32 0x1234567a, er1 ; 144
+ test_h_gr32 foo+1, er2
+ mova/w.l @(0x12345678:32,@er2-.b),er1 ;017FA2A912345678
+ test_h_gr32 0x1234567a, er1 ; 143
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/w.l @(0x12345678:32, @(foo:16, er2).b), er1
+ test_h_gr32 0x12345698, er1 ; 147
+ mova/w.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x12345698, er1 ; 149
+ mova/w.l @(0x12345678:32, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x12345698, er1 ; 150
+ mova/w.l @(0x12345678:32, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x12345698, er1 ; 151
+
+ mov.l #4, er2
+ mova/w.l @(0x12345678:32, @(foo:32, er2).b), er1
+ test_h_gr32 0x12345698, er1 ; 148
+ mova/w.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x12345698, er1 ; 152
+ mova/w.l @(0x12345678:32, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x12345698, er1 ; 153
+ mova/w.l @(0x12345678:32, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x12345698, er1 ; 154
+
+ mova/w.l @(0x12345678:32,@foo:16.b),er1
+ test_h_gr32 0x1234567a, er1 ; 155
+ mova/w.l @(0x12345678:32,@foo:32.b),er1
+ test_h_gr32 0x1234567a, er1 ; 156
+
+t02t:
+ mov.l #foo, er2
+ mova/w.l @(0x12345678:32,@er2.w),er1 ;015F02B912345678
+ test_h_gr32 0x1234587a, er1 ; 157
+ mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12B912345678
+ test_h_gr32 0x1234587a, er1 ; 162
+ mova/w.l @(0x12345678:32,@er2+.w),er1 ;015F82B912345678
+ test_h_gr32 0x1234587a, er1 ; 158
+ test_h_gr32 foo+2, er2
+ mova/w.l @(0x12345678:32,@-er2.w),er1 ;015FB2B912345678
+ test_h_gr32 0x1234587a, er1 ; 161
+ test_h_gr32 foo, er2
+ mova/w.l @(0x12345678:32,@+er2.w),er1 ;015F92B912345678
+ test_h_gr32 0x1234587a, er1 ; 160
+ test_h_gr32 foo+2, er2
+ mova/w.l @(0x12345678:32,@er2-.w),er1 ;015FA2B912345678
+ test_h_gr32 0x1234587a, er1 ; 159
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/w.l @(0x12345678:32, @(foo:16, er2).w), er1
+ test_h_gr32 0x12347698, er1 ; 163
+ shar.l er2
+ mova/w.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x12347698, er1 ; 165
+ mova/w.l @(0x12345678:32, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x12347698, er1 ; 166
+ mova/w.l @(0x12345678:32, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x12347698, er1 ; 167
+
+ mov.l #4, er2
+ mova/w.l @(0x12345678:32, @(foo:32, er2).w), er1
+ test_h_gr32 0x12347698, er1 ; 164
+ shar.l er2
+ mova/w.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x12347698, er1 ; 168
+ mova/w.l @(0x12345678:32, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x12347698, er1 ; 169
+ mova/w.l @(0x12345678:32, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x12347698, er1 ; 170
+
+ mova/w.l @(0x12345678:32,@foo:16.w),er1
+ test_h_gr32 0x1234587a, er1 ; 171
+ mova/w.l @(0x12345678:32,@foo:32.w),er1
+ test_h_gr32 0x1234587a, er1 ; 172
+
+t02u:
+ mov.l #foo, er2
+ mova/l.l @(0x12345678:32,@er2.b),er1 ;017F02C912345678
+ test_h_gr32 0x1234567c, er1 ; 173
+ mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12C912345678
+ test_h_gr32 0x1234567c, er1 ; 178
+ mova/l.l @(0x12345678:32,@er2+.b),er1 ;017F82C912345678
+ test_h_gr32 0x1234567c, er1 ; 174
+ test_h_gr32 foo+1, er2
+ mova/l.l @(0x12345678:32,@-er2.b),er1 ;017FB2C912345678
+ test_h_gr32 0x1234567c, er1 ; 177
+ test_h_gr32 foo, er2
+ mova/l.l @(0x12345678:32,@+er2.b),er1 ;017F92C912345678
+ test_h_gr32 0x1234567c, er1 ; 176
+ test_h_gr32 foo+1, er2
+ mova/l.l @(0x12345678:32,@er2-.b),er1 ;017FA2C912345678
+ test_h_gr32 0x1234567c, er1 ; 175
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/l.l @(0x12345678:32, @(foo:16, er2).b), er1
+ test_h_gr32 0x123456b8, er1 ; 179
+ mova/l.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
+ test_h_gr32 0x123456b8, er1 ; 181
+ mova/l.l @(0x12345678:32, @(foo:16, r2.w).b), er1
+ test_h_gr32 0x123456b8, er1 ; 182
+ mova/l.l @(0x12345678:32, @(foo:16, er2.l).b), er1
+ test_h_gr32 0x123456b8, er1 ; 183
+
+ mov.l #4, er2
+ mova/l.l @(0x12345678:32, @(foo:32, er2).b), er1
+ test_h_gr32 0x123456b8, er1 ; 180
+ mova/l.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
+ test_h_gr32 0x123456b8, er1 ; 184
+ mova/l.l @(0x12345678:32, @(foo:32, r2.w).b), er1
+ test_h_gr32 0x123456b8, er1 ; 185
+ mova/l.l @(0x12345678:32, @(foo:32, er2.l).b), er1
+ test_h_gr32 0x123456b8, er1 ; 186
+
+ mova/l.l @(0x12345678:32,@foo:16.b),er1
+ test_h_gr32 0x1234567c, er1 ; 187
+ mova/l.l @(0x12345678:32,@foo:32.b),er1
+ test_h_gr32 0x1234567c, er1 ; 188
+
+t02v:
+ mov.l #foo, er2
+ mova/l.l @(0x12345678:32,@er2.w),er1 ;015F02D912345678
+ test_h_gr32 0x12345a7c, er1 ; 189
+ mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678
+ test_h_gr32 0x12345a7c, er1 ; 194
+ mova/l.l @(0x12345678:32,@er2+.w),er1 ;015F82D912345678
+ test_h_gr32 0x12345a7c, er1 ; 190
+ test_h_gr32 foo+2, er2
+ mova/l.l @(0x12345678:32,@-er2.w),er1 ;015FB2D912345678
+ test_h_gr32 0x12345a7c, er1 ; 193
+ test_h_gr32 foo, er2
+ mova/l.l @(0x12345678:32,@+er2.w),er1 ;015F92D912345678
+ test_h_gr32 0x12345a7c, er1 ; 192
+ test_h_gr32 foo+2, er2
+ mova/l.l @(0x12345678:32,@er2-.w),er1 ;015FA2D912345678
+ test_h_gr32 0x12345a7c, er1 ; 191
+ test_h_gr32 foo, er2
+
+ mov.l #4, er2
+ mova/l.l @(0x12345678:32, @(foo:16, er2).w), er1
+ test_h_gr32 0x123496b8, er1 ; 195
+ shar.l er2
+ mova/l.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
+ test_h_gr32 0x123496b8, er1 ; 197
+ mova/l.l @(0x12345678:32, @(foo:16, r2.w).w), er1
+ test_h_gr32 0x123496b8, er1 ; 198
+ mova/l.l @(0x12345678:32, @(foo:16, er2.l).w), er1
+ test_h_gr32 0x123496b8, er1 ; 199
+
+ mov.l #4, er2
+ mova/l.l @(0x12345678:32, @(foo:32, er2).w), er1
+ test_h_gr32 0x123496b8, er1 ; 195
+ shar.l er2
+ mova/l.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
+ test_h_gr32 0x123496b8, er1 ; 197
+ mova/l.l @(0x12345678:32, @(foo:32, r2.w).w), er1
+ test_h_gr32 0x123496b8, er1 ; 198
+ mova/l.l @(0x12345678:32, @(foo:32, er2.l).w), er1
+ test_h_gr32 0x123496b8, er1 ; 199
+
+ mova/l.l @(0x12345678:32,@foo:16.w),er1
+ test_h_gr32 0x12345a7c, er1 ; 203
+ mova/l.l @(0x12345678:32,@foo:32.w),er1
+ test_h_gr32 0x12345a7c, er1 ; 204
+
+ test_gr_a5a5 0
+ test_h_gr32 2, er2
+ test_h_gr32 0x01010101, er3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
+
pass
exit 0
diff --git a/sim/testsuite/sim/h8300/shll.s b/sim/testsuite/sim/h8300/shll.s
index fcff565..7fbf14d 100644
--- a/sim/testsuite/sim/h8300/shll.s
+++ b/sim/testsuite/sim/h8300/shll.s
@@ -90,6 +90,28 @@ shll_b_reg8_4:
test_gr_a5a5 5
test_gr_a5a5 6
test_gr_a5a5 7
+
+shll_b_reg8_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r0h
+ shll.b r0h, r0l ; shift left logical by register value
+
+ test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_set
+ test_h_gr16 0x05a0 r0 ; 1010 0101 -> 1010 0000
+ test_h_gr32 0xa5a505a0 er0
+
+ test_gr_a5a5 1 ; Make sure other general regs not disturbed
+ test_gr_a5a5 2
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
.endif
.if (sim_cpu) ; Not available in h8300 mode
@@ -181,6 +203,28 @@ shll_w_reg16_8:
test_gr_a5a5 5
test_gr_a5a5 6
test_gr_a5a5 7
+
+shll_w_reg16_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r0h
+ shll.w r0h, r0 ; shift left logical by register value
+
+ test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_set
+ test_h_gr16 0xb4a0 r0 ; 1010 0101 1010 0101 -> 1011 0100 1010 0000
+ test_h_gr32 0xa5a5b4a0 er0
+
+ test_gr_a5a5 1 ; Make sure other general regs not disturbed
+ test_gr_a5a5 2
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
.endif
shll_l_reg32_1:
@@ -299,6 +343,29 @@ shll_l_reg32_16:
test_gr_a5a5 5
test_gr_a5a5 6
test_gr_a5a5 7
+
+shll_l_reg32_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r1l
+ shll.l r1l, er0 ; shift left logical by register value
+
+ test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_set
+ ; 1010 0101 1010 0101 1010 0101 1010 0101
+ ; -> 1011 0100 1011 0100 1011 0100 1010 0000
+ test_h_gr32 0xb4b4b4a0 er0
+
+ test_h_gr32 0xa5a5a505 er1
+ test_gr_a5a5 2 ; Make sure other general regs not disturbed
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
.endif
.endif
diff --git a/sim/testsuite/sim/h8300/shlr.s b/sim/testsuite/sim/h8300/shlr.s
index f7dffc2..4223313 100644
--- a/sim/testsuite/sim/h8300/shlr.s
+++ b/sim/testsuite/sim/h8300/shlr.s
@@ -691,6 +691,28 @@ shlr_b_reg8_4:
test_gr_a5a5 6
test_gr_a5a5 7
+shlr_b_reg8_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r0h
+ shlr.b r0h, r0l ; shift right logical by register value
+
+ test_carry_clear ; H=0 N=0 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_clear
+
+ test_h_gr16 0x0505 r0 ; 1010 0101 -> 0000 0101
+ test_h_gr32 0xa5a50505 er0
+ test_gr_a5a5 1 ; Make sure other general regs not disturbed
+ test_gr_a5a5 2
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
+
shlr_b_ind_4:
set_grs_a5a5 ; Fill all general regs with a fixed pattern
set_ccr_zero
@@ -1685,6 +1707,28 @@ shlr_w_reg16_4:
test_gr_a5a5 6
test_gr_a5a5 7
+shlr_w_reg16_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r1l
+ shlr.w r1l, r0 ; shift right logical by register value
+
+ test_carry_clear ; H=0 N=0 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_clear
+
+ test_h_gr16 0x052d r0 ; 1010 0101 1010 0101 -> 0000 0101 0010 1101
+ test_h_gr32 0xa5a5052d er0
+ test_h_gr32 0xa5a5a505 er1
+ test_gr_a5a5 2 ; Make sure other general regs not disturbed
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
+
shlr_w_ind_4:
set_grs_a5a5 ; Fill all general regs with a fixed pattern
set_ccr_zero
@@ -3029,6 +3073,29 @@ shlr_l_reg32_4:
test_gr_a5a5 6
test_gr_a5a5 7
+shlr_l_reg32_reg8:
+ set_grs_a5a5 ; Fill all general regs with a fixed pattern
+ set_ccr_zero
+
+ mov #5, r1l
+ shlr.l r1l, er0 ; shift right logical by value of register
+
+ test_carry_clear ; H=0 N=0 Z=0 V=0 C=0
+ test_zero_clear
+ test_ovf_clear
+ test_neg_clear
+ ; 1010 0101 1010 0101 1010 0101 1010 0101
+ ; -> 0000 0101 0010 1101 0010 1101 0010 1101
+ test_h_gr32 0x052d2d2d er0
+ test_h_gr32 0xa5a5a505 er1
+
+ test_gr_a5a5 2 ; Make sure other general regs not disturbed
+ test_gr_a5a5 3
+ test_gr_a5a5 4
+ test_gr_a5a5 5
+ test_gr_a5a5 6
+ test_gr_a5a5 7
+
shlr_l_ind_4:
set_grs_a5a5 ; Fill all general regs with a fixed pattern
set_ccr_zero
diff --git a/sim/testsuite/sim/sh/ChangeLog b/sim/testsuite/sim/sh/ChangeLog
new file mode 100644
index 0000000..7df64f7
--- /dev/null
+++ b/sim/testsuite/sim/sh/ChangeLog
@@ -0,0 +1,33 @@
+2003-08-11 Michael Snyder <msnyder@redhat.com>
+
+ * macl.s: New file.
+ * macw.s: New file.
+ * allinsn.exp: Add new tests for mac.w and mac.l.
+
+2003-07-25 Michael Snyder <msnyder@redhat.com>
+
+ * pshai.s, pshar.s, pshli.s, pshlr.s: New files.
+ * allinsn.exp: Add psha, pshl tests.
+ * pdec.s, pinc.s, padd.s, paddc.s: New files.
+ * allinsn.exp: Add pdec, pinc, padd, paddc tests.
+ * pand.s, pdmsb.s: New files.
+ * allinsn.exp: Add pand, pdmsb tests.
+
+2003-07-23 Michael Snyder <msnyder@redhat.com>
+
+ * pmuls.s: New file.
+
+2003-07-08 Michael Snyder <msnyder@redhat.com>
+
+ * allinsn.exp, testutils.inc, add.s, fabs.s, fadd.s, fcmpeq.s,
+ fcmpgt.s, fcnvds.s, fcnvsd.s, fdiv.s, fldi0.s, fldi1.s, flds.s,
+ float.s, fmac.s, fmov.s, fmul.s, fneg.s, frchg.s, fschg.s,
+ fsqrt.s, fsub.s, ftrc.s, shll16.s, shll2.s, shll8.s, shll.s,
+ shlr16.s, shlr2.s, shlr8.s, shlr.s, swap.s: New files.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/sim/testsuite/sim/sh/add.s b/sim/testsuite/sim/sh/add.s
new file mode 100644
index 0000000..9519251
--- /dev/null
+++ b/sim/testsuite/sim/sh/add.s
@@ -0,0 +1,86 @@
+# sh testcase for add
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ .align 2
+_x: .long 1
+_y: .long 1
+
+ start
+
+add_reg_reg_direct:
+ set_grs_a5a5
+ mov.l i, r1
+ mov.l j, r2
+ add r1, r2
+ test_gr0_a5a5
+ assertreg 2 r1
+ assertreg 4 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+add_reg_reg_indirect:
+ set_grs_a5a5
+ mov.l x, r1
+ mov.l y, r2
+ mov.l @r1, r1
+ mov.l @r2, r2
+ add r1, r2
+ test_gr0_a5a5
+ assertreg 1 r1
+ assertreg 2 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+add_imm_reg:
+ set_grs_a5a5
+ add #0x16, r1
+ test_gr0_a5a5
+ assertreg 0xa5a5a5bb r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ pass
+
+ exit 0
+
+ .align 2
+x: .long _x
+y: .long _y
+i: .long 2
+j: .long 2
+
diff --git a/sim/testsuite/sim/sh/allinsn.exp b/sim/testsuite/sim/sh/allinsn.exp
new file mode 100644
index 0000000..7192e81
--- /dev/null
+++ b/sim/testsuite/sim/sh/allinsn.exp
@@ -0,0 +1,49 @@
+# sh tests
+
+set all "sh shdsp"
+
+if [istarget sh-*elf] {
+ run_sim_test add.s $all
+ run_sim_test fabs.s sh
+ run_sim_test fadd.s sh
+ run_sim_test fcmpeq.s sh
+ run_sim_test fcmpgt.s sh
+ run_sim_test fcnvds.s sh
+ run_sim_test fcnvsd.s sh
+ run_sim_test fdiv.s sh
+ run_sim_test fldi0.s sh
+ run_sim_test fldi1.s sh
+ run_sim_test flds.s sh
+ run_sim_test float.s sh
+ run_sim_test fmac.s sh
+ run_sim_test fmov.s sh
+ run_sim_test fmul.s sh
+ run_sim_test fneg.s sh
+ run_sim_test frchg.s sh
+ run_sim_test fschg.s sh
+ run_sim_test fsqrt.s sh
+ run_sim_test fsub.s sh
+ run_sim_test ftrc.s sh
+ run_sim_test macl.s sh
+ run_sim_test macw.s sh
+ run_sim_test paddc.s shdsp
+ run_sim_test padd.s shdsp
+ run_sim_test pand.s shdsp
+ run_sim_test pdec.s shdsp
+ run_sim_test pdmsb.s shdsp
+ run_sim_test pinc.s shdsp
+ run_sim_test pmuls.s shdsp
+ run_sim_test pshai.s shdsp
+ run_sim_test pshar.s shdsp
+ run_sim_test pshli.s shdsp
+ run_sim_test pshlr.s shdsp
+ run_sim_test shll.s $all
+ run_sim_test shll2.s $all
+ run_sim_test shll8.s $all
+ run_sim_test shll16.s $all
+ run_sim_test shlr.s $all
+ run_sim_test shlr2.s $all
+ run_sim_test shlr8.s $all
+ run_sim_test shlr16.s $all
+ run_sim_test swap.s $all
+}
diff --git a/sim/testsuite/sim/sh/fabs.s b/sim/testsuite/sim/sh/fabs.s
new file mode 100644
index 0000000..1fb354e
--- /dev/null
+++ b/sim/testsuite/sim/sh/fabs.s
@@ -0,0 +1,115 @@
+# sh testcase for fabs
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fabs_freg_b0:
+ single_prec
+ bank0
+ set_grs_a5a5
+ set_fprs_a5a5
+ # fabs(0.0) = 0.0.
+ fldi0 fr0
+ fabs fr0
+ fldi0 fr1
+ fcmp/eq fr0, fr1
+ bt .L1
+ fail
+.L1:
+ # fabs(1.0) = 1.0.
+ fldi1 fr0
+ fabs fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bt .L2
+ fail
+.L2:
+ # fabs(-1.0) = 1.0.
+ fldi1 fr0
+ fneg fr0
+ fabs fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bt .L3
+ fail
+.L3:
+ test_grs_a5a5
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fabs_dreg_b0:
+ # double precision tests.
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ # fabs(0.0) = 0.0.
+ fldi0 fr0
+ flds fr0, fpul
+ fcnvsd fpul, dr0
+ fabs dr0
+ assert_dpreg_i 0 dr0
+
+ # fabs(1.0) = 1.0.
+ fldi1 fr0
+ flds fr0, fpul
+ fcnvsd fpul, dr0
+ fabs dr0
+ assert_dpreg_i 1 dr0
+
+ # check.
+ fldi1 fr2
+ flds fr2, fpul
+ fcnvsd fpul, dr2
+ fcmp/eq dr0, dr2
+ bt .L4
+ fail
+
+.L4:
+ # fabs(-1.0) = 1.0.
+ fldi1 fr0
+ fneg fr0
+ flds fr0, fpul
+ fcnvsd fpul, dr0
+ fabs dr0
+ assert_dpreg_i 1 dr0
+
+ # check.
+ fldi1 fr2
+ flds fr2, fpul
+ fcnvsd fpul, dr2
+ fcmp/eq dr0, dr2
+ bt .L5
+ fail
+.L5:
+ test_grs_a5a5
+ assert_dpreg_i 1 dr0
+ assert_dpreg_i 1 dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fadd.s b/sim/testsuite/sim/sh/fadd.s
new file mode 100644
index 0000000..72431f0
--- /dev/null
+++ b/sim/testsuite/sim/sh/fadd.s
@@ -0,0 +1,75 @@
+# sh testcase for fadd
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fadd_freg_freg_b0:
+ set_grs_a5a5
+ set_fprs_a5a5
+ bank0
+
+ fldi1 fr0
+ fldi1 fr1
+ fadd fr0, fr1
+ assert_fpreg_i 2 fr1
+
+ fldi0 fr0
+ fldi1 fr1
+ fadd fr0, fr1
+ assert_fpreg_i 1 fr1
+
+ fldi1 fr0
+ fldi0 fr1
+ fadd fr0, fr1
+ assert_fpreg_i 1 fr1
+ test_grs_a5a5
+ assert_fpreg_i 1 fr0
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fadd_dreg_dreg_b0:
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ fldi1 fr0
+ fldi1 fr2
+ flds fr0, fpul
+ fcnvsd fpul, dr0
+ flds fr2, fpul
+ fcnvsd fpul, dr2
+ fadd dr0, dr2
+ fcnvds dr2, fpul
+ fsts fpul, fr0
+
+ test_grs_a5a5
+ assert_fpreg_i 2, fr0
+ assert_dpreg_i 2, dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fcmpeq.s b/sim/testsuite/sim/sh/fcmpeq.s
new file mode 100644
index 0000000..9c0ef57
--- /dev/null
+++ b/sim/testsuite/sim/sh/fcmpeq.s
@@ -0,0 +1,119 @@
+# sh testcase for fcmpeq
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fcmpeq_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # 1.0 == 1.0.
+ fldi1 fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bt .L0
+ fail
+.L0:
+ # 0.0 != 1.0.
+ fldi0 fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bf .L1
+ fail
+.L1:
+ # 1.0 != 0.0.
+ fldi1 fr0
+ fldi0 fr1
+ fcmp/eq fr0, fr1
+ bf .L2
+ fail
+.L2:
+ # 2.0 != 1.0
+ fldi1 fr0
+ fadd fr0, fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bf .L3
+ fail
+.L3:
+ test_grs_a5a5
+ assert_fpreg_i 2, fr0
+ assert_fpreg_i 1, fr1
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fcmpeq_double:
+ # 1.0 == 1.0
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ fldi1 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bt .L10
+ fail
+.L10:
+ # 0.0 != 1.0
+ fldi0 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bf .L11
+ fail
+.L11:
+ # 1.0 != 0.0
+ fldi1 fr0
+ fldi0 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bf .L12
+ fail
+.L12:
+ # 2.0 != 1.0
+ fldi1 fr0
+ single_prec
+ fadd fr0, fr0
+ double_prec
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bf .L13
+ fail
+.L13:
+ test_grs_a5a5
+ assert_dpreg_i 2, dr0
+ assert_dpreg_i 1, dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/fcmpgt.s b/sim/testsuite/sim/sh/fcmpgt.s
new file mode 100644
index 0000000..c6945ba
--- /dev/null
+++ b/sim/testsuite/sim/sh/fcmpgt.s
@@ -0,0 +1,119 @@
+# sh testcase for fcmpgt
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fcmpgt_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # 1.0 !> 1.0.
+ fldi1 fr0
+ fldi1 fr1
+ fcmp/gt fr0, fr1
+ bf .L0
+ fail
+.L0:
+ # 0.0 !> 1.0.
+ fldi0 fr0
+ fldi1 fr1
+ fcmp/gt fr0, fr1
+ bt .L1
+ fail
+.L1:
+ # 1.0 > 0.0.
+ fldi1 fr0
+ fldi0 fr1
+ fcmp/gt fr0, fr1
+ bf .L2
+ fail
+.L2:
+ # 2.0 > 1.0
+ fldi1 fr0
+ fadd fr0, fr0
+ fldi1 fr1
+ fcmp/gt fr0, fr1
+ bf .L3
+ fail
+.L3:
+ test_grs_a5a5
+ assert_fpreg_i 2, fr0
+ assert_fpreg_i 1, fr1
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fcmpgt_double:
+ # double precision tests.
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ # 1.0 !> 1.0.
+ fldi1 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/gt dr0, dr2
+ bf .L10
+ fail
+.L10:
+ # 0.0 !> 1.0.
+ fldi0 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/gt dr0, dr2
+ bt .L11
+ fail
+.L11:
+ # 1.0 > 0.0.
+ fldi1 fr0
+ fldi0 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/gt dr0, dr2
+ bf .L12
+ fail
+.L12:
+ # 2.0 > 1.0.
+ fldi1 fr0
+ single_prec
+ fadd fr0, fr0
+ double_prec
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fcmp/gt dr0, dr2
+ bf .L13
+ fail
+.L13:
+ test_grs_a5a5
+ assert_dpreg_i 2, dr0
+ assert_dpreg_i 1, dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fcnvds.s b/sim/testsuite/sim/sh/fcnvds.s
new file mode 100644
index 0000000..cffcb49
--- /dev/null
+++ b/sim/testsuite/sim/sh/fcnvds.s
@@ -0,0 +1,56 @@
+# sh testcase for fcnvds
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+ double_prec
+ sz_64
+ set_grs_a5a5
+ set_fprs_a5a5
+ mov.l ax, r0
+ fmov @r0, dr0
+ fcnvds dr0, fpul
+ fsts fpul, fr2
+
+ assert_dpreg_i 5, dr0
+ single_prec
+ assert_fpreg_i 5, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ assertreg0 x
+ test_gr_a5a5 r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ pass
+ exit 0
+
+ .align 2
+x: .double 5.0
+ax: .long x
+
diff --git a/sim/testsuite/sim/sh/fcnvsd.s b/sim/testsuite/sim/sh/fcnvsd.s
new file mode 100644
index 0000000..6592540
--- /dev/null
+++ b/sim/testsuite/sim/sh/fcnvsd.s
@@ -0,0 +1,40 @@
+# sh testcase for fcnvsd
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ fldi1 fr0
+ flds fr0, fpul
+ fcnvsd fpul, dr2
+ assert_dpreg_i 1, dr2
+
+ # Convert back.
+ fcnvds dr2, fpul
+ fsts fpul, fr1
+ single_prec
+ assert_fpreg_i 1, fr1
+ fcmp/eq fr0, fr1
+ bt .L0
+ fail
+.L0:
+ test_grs_a5a5
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/fdiv.s b/sim/testsuite/sim/sh/fdiv.s
new file mode 100644
index 0000000..629e774
--- /dev/null
+++ b/sim/testsuite/sim/sh/fdiv.s
@@ -0,0 +1,91 @@
+# sh testcase for fdiv
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fdiv_single:
+ # Single test
+ set_grs_a5a5
+ set_fprs_a5a5
+ single_prec
+ # 1.0 / 0.0 should be INF
+ # (and not crash the sim).
+ fldi0 fr0
+ fldi1 fr1
+ fdiv fr0, fr1
+ assert_fpreg_x 0x7f800000, fr1
+
+ # 0.0 / 1.0 == 0.0.
+ fldi0 fr0
+ fldi1 fr1
+ fdiv fr1, fr0
+ assert_fpreg_x 0, fr0
+
+ # 2.0 / 1.0 == 2.0.
+ fldi1 fr1
+ fldi1 fr2
+ fadd fr2, fr2
+ fdiv fr1, fr2
+ assert_fpreg_i 2, fr2
+
+ # (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
+ fldi1 fr1
+ fldi1 fr2
+ fadd fr2, fr2
+ fdiv fr2, fr1
+ # fr1 should contain 0.5.
+ fadd fr1, fr1
+ assert_fpreg_i 1, fr1
+ test_grs_a5a5
+ assert_fpreg_i 2, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fdiv_double:
+ # Double test
+ set_grs_a5a5
+ set_fprs_a5a5
+ # (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
+ fldi1 fr1
+ fldi1 fr2
+ # This add must be in single precision. The rest must be in double.
+ fadd fr2, fr2
+ double_prec
+ _s2d fr1, dr0
+ _s2d fr2, dr2
+ fdiv dr2, dr0
+ # dr0 should contain 0.5.
+ # double it, expect 1.0.
+ fadd dr0, dr0
+ assert_dpreg_i 1, dr0
+ assert_dpreg_i 2, dr2
+ test_grs_a5a5
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/fldi0.s b/sim/testsuite/sim/sh/fldi0.s
new file mode 100644
index 0000000..1e20058
--- /dev/null
+++ b/sim/testsuite/sim/sh/fldi0.s
@@ -0,0 +1,37 @@
+# sh testcase for fldi0 $frn
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fldi0_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ fldi0 fr0
+ fldi0 fr2
+ fldi0 fr4
+ fldi0 fr6
+ fldi0 fr8
+ fldi0 fr10
+ fldi0 fr12
+ fldi0 fr14
+ test_grs_a5a5
+ assert_fpreg_i 0 fr0
+ assert_fpreg_i 0 fr2
+ assert_fpreg_i 0 fr4
+ assert_fpreg_i 0 fr6
+ assert_fpreg_i 0 fr8
+ assert_fpreg_i 0 fr10
+ assert_fpreg_i 0 fr12
+ assert_fpreg_i 0 fr14
+ assert_fpreg_x 0xa5a5a5a5 fr1
+ assert_fpreg_x 0xa5a5a5a5 fr3
+ assert_fpreg_x 0xa5a5a5a5 fr5
+ assert_fpreg_x 0xa5a5a5a5 fr7
+ assert_fpreg_x 0xa5a5a5a5 fr9
+ assert_fpreg_x 0xa5a5a5a5 fr11
+ assert_fpreg_x 0xa5a5a5a5 fr13
+ assert_fpreg_x 0xa5a5a5a5 fr15
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fldi1.s b/sim/testsuite/sim/sh/fldi1.s
new file mode 100644
index 0000000..1b7c170
--- /dev/null
+++ b/sim/testsuite/sim/sh/fldi1.s
@@ -0,0 +1,38 @@
+# sh testcase for fldi1 $frn
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fldi1_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ fldi1 fr1
+ fldi1 fr3
+ fldi1 fr5
+ fldi1 fr7
+ fldi1 fr9
+ fldi1 fr11
+ fldi1 fr13
+ fldi1 fr15
+ test_grs_a5a5
+ assert_fpreg_x 0xa5a5a5a5 fr0
+ assert_fpreg_x 0xa5a5a5a5 fr2
+ assert_fpreg_x 0xa5a5a5a5 fr4
+ assert_fpreg_x 0xa5a5a5a5 fr6
+ assert_fpreg_x 0xa5a5a5a5 fr8
+ assert_fpreg_x 0xa5a5a5a5 fr10
+ assert_fpreg_x 0xa5a5a5a5 fr12
+ assert_fpreg_x 0xa5a5a5a5 fr14
+ assert_fpreg_i 1 fr1
+ assert_fpreg_i 1 fr3
+ assert_fpreg_i 1 fr5
+ assert_fpreg_i 1 fr7
+ assert_fpreg_i 1 fr9
+ assert_fpreg_i 1 fr11
+ assert_fpreg_i 1 fr13
+ assert_fpreg_i 1 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/flds.s b/sim/testsuite/sim/sh/flds.s
new file mode 100644
index 0000000..086b4ed
--- /dev/null
+++ b/sim/testsuite/sim/sh/flds.s
@@ -0,0 +1,43 @@
+# sh testcase for flds
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+flds_zero:
+ set_grs_a5a5
+ set_fprs_a5a5
+ fldi0 fr0
+ flds fr0, fpul
+ fsts fpul, fr1
+ fcmp/eq fr0, fr1
+ bt flds_one
+ fail
+flds_one:
+ fldi1 fr0
+ flds fr0, fpul
+ fsts fpul, fr1
+ fcmp/eq fr0, fr1
+ bt .L0
+ fail
+.L0:
+ test_grs_a5a5
+ assert_fpreg_i 1, fr0
+ assert_fpreg_i 1, fr1
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/float.s b/sim/testsuite/sim/sh/float.s
new file mode 100644
index 0000000..e5a3bc6
--- /dev/null
+++ b/sim/testsuite/sim/sh/float.s
@@ -0,0 +1,149 @@
+# sh testcase for float
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+
+float_pos:
+ set_grs_a5a5
+ set_fprs_a5a5
+ single_prec
+ mov #3, r0
+ lds r0, fpul
+ float fpul, fr2
+
+ # Check the result.
+ fldi1 fr0
+ fldi1 fr1
+ fadd fr0, fr1
+ fadd fr0, fr1
+ fcmp/eq fr1, fr2
+ bt float_neg
+ fail
+
+float_neg:
+ mov #3, r0
+ neg r0, r0
+ lds r0, fpul
+ float fpul, fr2
+
+ # Check the result.
+ fldi1 fr0
+ fldi1 fr1
+ fadd fr0, fr1
+ fadd fr0, fr1
+ fneg fr1
+ fcmp/eq fr1, fr2
+ bt .L0
+ fail
+.L0:
+ assertreg0 -3
+ test_gr_a5a5 r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ assert_fpreg_i 1, fr0
+ assert_fpreg_i -3, fr1
+ assert_fpreg_i -3, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+double_pos:
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ mov #3, r0
+ lds r0, fpul
+ float fpul, dr4
+
+ # check the result.
+ fldi1 fr0
+ fldi1 fr1
+ single_prec
+ fadd fr0, fr1
+ fadd fr0, fr1
+ double_prec
+ _s2d fr1, dr2
+ fcmp/eq dr2, dr4
+ bt double_neg
+ fail
+
+double_neg:
+ double_prec
+ mov #3, r0
+ neg r0, r0
+ lds r0, fpul
+ float fpul, dr4
+
+ # check the result.
+ fldi1 fr0
+ fldi1 fr1
+ single_prec
+ fadd fr0, fr1
+ fadd fr0, fr1
+ fneg fr1
+ double_prec
+ _s2d fr1, dr2
+ fcmp/eq dr2, dr4
+ bt .L2
+ fail
+.L2:
+ assertreg0 -3
+ test_gr_a5a5 r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ single_prec
+ assert_fpreg_i 1, fr0
+ assert_fpreg_i -3, fr1
+ double_prec
+ assert_dpreg_i -3, dr2
+ assert_dpreg_i -3, dr4
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fmac.s b/sim/testsuite/sim/sh/fmac.s
new file mode 100644
index 0000000..eba1da5
--- /dev/null
+++ b/sim/testsuite/sim/sh/fmac.s
@@ -0,0 +1,98 @@
+# sh testcase for fmac
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fmac_:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # 0.0 * x + y = y.
+
+ fldi0 fr0
+ fldi1 fr1
+ fldi1 fr2
+ fmac fr0, fr1, fr2
+ # check result.
+ fldi1 fr0
+ fcmp/eq fr0, fr2
+ bt .L0
+ fail
+.L0:
+ # x * y + 0.0 = x * y.
+
+ fldi1 fr0
+ fldi1 fr1
+ fldi0 fr2
+ # double it.
+ fadd fr1, fr2
+ fmac fr0, fr1, fr2
+ # check result.
+ fldi1 fr0
+ fadd fr0, fr0
+ fcmp/eq fr0, fr2
+ bt .L1
+ fail
+.L1:
+ # x * 0.0 + y = y.
+
+ fldi1 fr0
+ fldi0 fr1
+ fldi1 fr2
+ fadd fr2, fr2
+ fmac fr0, fr1, fr2
+ # check result.
+ fldi1 fr0
+ # double fr0.
+ fadd fr0, fr0
+ fcmp/eq fr0, fr2
+ bt .L2
+ fail
+.L2:
+ # x * 0.0 + 0.0 = 0.0
+
+ fldi1 fr0
+ fadd fr0, fr0
+ fldi0 fr1
+ fldi0 fr2
+ fmac fr0, fr1, fr2
+ # check result.
+ fldi0 fr0
+ fcmp/eq fr0, fr2
+ bt .L3
+ fail
+.L3:
+ # 0.0 * x + 0.0 = 0.0.
+
+ fldi0 fr0
+ fldi1 fr1
+ # double it.
+ fadd fr1, fr1
+ fldi0 fr2
+ fmac fr0, fr1, fr2
+ # check result.
+ fldi0 fr0
+ fcmp/eq fr0, fr2
+ bt .L4
+ fail
+.L4:
+ test_grs_a5a5
+ assert_fpreg_i 0, fr0
+ assert_fpreg_i 2, fr1
+ assert_fpreg_i 0, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fmov.s b/sim/testsuite/sim/sh/fmov.s
new file mode 100644
index 0000000..29c51b5
--- /dev/null
+++ b/sim/testsuite/sim/sh/fmov.s
@@ -0,0 +1,322 @@
+# sh testcase for all fmov instructions
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ .macro init
+ fldi0 fr0
+ fldi1 fr1
+ fldi1 fr2
+ fldi1 fr3
+ .endm
+
+ start
+
+fmov1: # Test fr -> fr.
+ set_grs_a5a5
+ set_fprs_a5a5
+ init
+ single_prec
+ sz_32
+ fmov fr0, fr1
+ # Ensure fr0 and fr1 are now equal.
+ fcmp/eq fr0, fr1
+ bt fmov2
+ fail
+
+fmov2: # Test dr -> dr.
+ init
+ double_prec
+ sz_64
+ fmov dr0, dr2
+ # Ensure dr0 and dr2 are now equal.
+ fcmp/eq dr0, dr2
+ bt fmov3
+ fail
+
+fmov3: # Test dr -> xd and xd -> dr.
+ init
+ sz_64
+ fmov dr0, xd0
+ # Ensure dr0 and xd0 are now equal.
+ fmov xd0, dr2
+ fcmp/eq dr0, dr2
+ bt fmov4
+ fail
+
+fmov4: # Test xd -> xd.
+ init
+ sz_64
+ double_prec
+ fmov dr0, xd0
+ fmov xd0, xd2
+ fmov xd2, dr2
+ # Ensure dr0 and dr2 are now equal.
+ fcmp/eq dr0, dr2
+ bt .L0
+ fail
+
+ # FIXME: test fmov.s fr -> @gr, fmov dr -> @gr
+ # FIXME: test fmov.s @gr -> fr, fmov @gr -> dr
+ # FIXME: test fmov.s @gr+ -> fr, fmov @gr+ -> dr
+ # FIXME: test fmov.s fr -> @-gr, fmov dr -> @-gr
+ # FIXME: test fmov.s @(r0,gr) -> fr, fmov @(r0,gr) -> dr
+ # FIXME: test fmov.s fr -> @(r0,gr), fmov dr -> @(r0,gr)
+
+.L0:
+ test_grs_a5a5
+ sz_32
+ single_prec
+ assert_fpreg_i 0, fr0
+ assert_fpreg_i 1, fr1
+ assert_fpreg_i 0, fr2
+ assert_fpreg_i 1, fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fmov5: # Test fr -> @rn and @rn -> fr.
+ init
+ sz_32
+ single_prec
+ # FIXME! Use a reserved memory location!
+ mov #40, r0
+ shll8 r0
+ fmov fr0, @r0
+ fmov @r0, fr1
+ fcmp/eq fr0, fr1
+ bt fmov6
+ fail
+
+fmov6: # Test dr -> @rn and @rn -> dr.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ fmov dr0, @r0
+ fmov @r0, dr2
+ fcmp/eq dr0, dr2
+ bt fmov7
+ fail
+
+fmov7: # Test xd -> @rn and @rn -> xd.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ fmov dr0, xd0
+ fmov xd0, @r0
+ fmov @r0, xd2
+ fmov xd2, dr2
+ fcmp/eq dr0, dr2
+ bt fmov8
+ fail
+
+fmov8: # Test fr -> @-rn.
+ init
+ sz_32
+ single_prec
+ mov #40, r0
+ shll8 r0
+ # Preserve.
+ mov r0, r1
+ fmov fr0, @-r0
+ fmov @r0, fr2
+ fcmp/eq fr0, fr2
+ bt f8b
+ fail
+f8b: # check pre-dec.
+ add #4, r0
+ cmp/eq r0, r1
+ bt fmov9
+ fail
+
+fmov9: # Test dr -> @-rn.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ # Preserve r0.
+ mov r0, r1
+ fmov dr0, @-r0
+ fmov @r0, dr2
+ fcmp/eq dr0, dr2
+ bt f9b
+ fail
+f9b: # check pre-dec.
+ add #8, r0
+ cmp/eq r0, r1
+ bt fmov10
+ fail
+
+fmov10: # Test xd -> @-rn.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ # Preserve r0.
+ mov r0, r1
+ fmov dr0, xd0
+ fmov xd0, @-r0
+ fmov @r0, xd2
+ fmov xd2, dr2
+ fcmp/eq dr0, dr2
+ bt f10b
+ fail
+f10b: # check pre-dec.
+ add #8, r0
+ cmp/eq r0, r1
+ bt fmov11
+ fail
+
+fmov11: # Test @rn+ -> fr.
+ init
+ sz_32
+ single_prec
+ mov #40, r0
+ shll8 r0
+ # Preserve r0.
+ mov r0, r1
+ fmov fr0, @r0
+ fmov @r0+, fr2
+ fcmp/eq fr0, fr2
+ bt f11b
+ fail
+f11b: # check post-inc.
+ add #4, r1
+ cmp/eq r0, r1
+ bt fmov12
+ fail
+
+fmov12: # Test @rn+ -> dr.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ # preserve r0.
+ mov r0, r1
+ fmov dr0, @r0
+ fmov @r0+, dr2
+ fcmp/eq dr0, dr2
+ bt f12b
+ fail
+f12b: # check post-inc.
+ add #8, r1
+ cmp/eq r0, r1
+ bt fmov13
+ fail
+
+fmov13: # Test @rn -> xd.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ # Preserve r0.
+ mov r0, r1
+ fmov dr0, xd0
+ fmov xd0, @r0
+ fmov @r0+, xd2
+ fmov xd2, dr2
+ fcmp/eq dr0, dr2
+ bt f13b
+ fail
+f13b:
+ add #8, r1
+ cmp/eq r0, r1
+ bt fmov14
+ fail
+
+fmov14: # Test fr -> @(r0,rn), @(r0, rn) -> fr.
+ init
+ sz_32
+ single_prec
+ mov #40, r0
+ shll8 r0
+ mov #0, r1
+ fmov fr0, @(r0, r1)
+ fmov @(r0, r1), fr1
+ fcmp/eq fr0, fr1
+ bt fmov15
+ fail
+
+fmov15: # Test dr -> @(r0, rn), @(r0, rn) -> dr.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ mov #0, r1
+ fmov dr0, @(r0, r1)
+ fmov @(r0, r1), dr2
+ fcmp/eq dr0, dr2
+ bt fmov16
+ fail
+
+fmov16: # Test xd -> @(r0, rn), @(r0, rn) -> xd.
+ init
+ sz_64
+ double_prec
+ mov #40, r0
+ shll8 r0
+ mov #0, r1
+ fmov dr0, xd0
+ fmov xd0, @(r0, r1)
+ fmov @(r0, r1), xd2
+ fmov xd2, dr2
+ fcmp/eq dr0, dr2
+ bt .L1
+ fail
+.L1:
+ assertreg0 0x2800
+ assertreg 0, r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ sz_32
+ single_prec
+ assert_fpreg_i 0, fr0
+ assert_fpreg_i 1, fr1
+ assert_fpreg_i 0, fr2
+ assert_fpreg_i 1, fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fmul.s b/sim/testsuite/sim/sh/fmul.s
new file mode 100644
index 0000000..81a2545
--- /dev/null
+++ b/sim/testsuite/sim/sh/fmul.s
@@ -0,0 +1,116 @@
+# sh testcase for fmul
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ .macro init
+ fldi0 fr0
+ fldi1 fr1
+ fldi1 fr2
+ fadd fr2, fr2
+ .endm
+
+ start
+fmul_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # 0.0 * 0.0 = 0.0.
+ init
+ fmul fr0, fr0
+ assert_fpreg_i 0, fr0
+
+ # 0.0 * 1.0 = 0.0.
+ init
+ fmul fr1, fr0
+ assert_fpreg_i 0, fr0
+
+ # 1.0 * 0.0 = 0.0.
+ init
+ fmul fr0, fr1
+ assert_fpreg_i 0, fr1
+
+ # 1.0 * 1.0 = 1.0.
+ init
+ fmul fr1, fr1
+ assert_fpreg_i 1, fr1
+
+ # 2.0 * 1.0 = 2.0.
+ init
+ fmul fr2, fr1
+ assert_fpreg_i 2, fr1
+
+ test_grs_a5a5
+ assert_fpreg_i 0, fr0
+ assert_fpreg_i 2, fr1
+ assert_fpreg_i 2, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ .macro dinit
+ fldi0 fr0
+ fldi1 fr2
+ fldi1 fr4
+ single_prec
+ fadd fr4, fr4
+ double_prec
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ _s2d fr4, dr4
+ .endm
+
+fmul_double:
+ double_prec
+ # 0.0 * 0.0 = 0.0.
+ dinit
+ fmul dr0, dr0
+ assert_dpreg_i 0, dr0
+
+ # 0.0 * 1.0 = 0.0.
+ dinit
+ fmul dr2, dr0
+ assert_dpreg_i 0, dr0
+
+ # 1.0 * 0.0 = 0.0.
+ dinit
+ fmul dr0, dr2
+ assert_dpreg_i 0, dr2
+
+ # 1.0 * 1.0 = 1.0.
+ dinit
+ fmul dr2, dr2
+ assert_dpreg_i 1, dr2
+
+ # 2.0 * 1.0 = 2.0.
+ dinit
+ fmul dr4, dr2
+ assert_dpreg_i 2, dr2
+
+ test_grs_a5a5
+ assert_dpreg_i 0, dr0
+ assert_dpreg_i 2, dr2
+ assert_dpreg_i 2, dr4
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fneg.s b/sim/testsuite/sim/sh/fneg.s
new file mode 100644
index 0000000..dd5fe5d
--- /dev/null
+++ b/sim/testsuite/sim/sh/fneg.s
@@ -0,0 +1,112 @@
+# sh testcase for fneg
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fneg_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # neg(0.0) = 0.0.
+ fldi0 fr0
+ fldi0 fr1
+ fneg fr0
+ fcmp/eq fr0, fr1
+ bt .L0
+ fail
+.L0:
+ # neg(1.0) = fsub(0,1)
+ fldi1 fr0
+ fneg fr0
+ fldi0 fr1
+ fldi1 fr2
+ fsub fr2, fr1
+ fcmp/eq fr0, fr1
+ bt .L1
+ fail
+.L1:
+ # neg(neg(1.0)) = 1.0.
+ fldi1 fr0
+ fldi1 fr1
+ fneg fr0
+ fneg fr0
+ fcmp/eq fr0, fr1
+ bt .L2
+ fail
+.L2:
+ test_grs_a5a5
+ assert_fpreg_i 1, fr0
+ assert_fpreg_i 1, fr1
+ assert_fpreg_i 1, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fneg_double:
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ # neg(0.0) = 0.0.
+ fldi0 fr0
+ fldi0 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fneg dr0
+ fcmp/eq dr0, dr2
+ bt .L10
+ fail
+.L10:
+ # neg(1.0) = fsub(0,1)
+ fldi1 fr0
+ _s2d fr0, dr0
+ fneg dr0
+ fldi0 fr2
+ fldi1 fr3
+ single_prec
+ fsub fr3, fr2
+ double_prec
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bt .L11
+ fail
+.L11:
+ # neg(neg(1.0)) = 1.0.
+ fldi1 fr0
+ _s2d fr0, dr0
+ fldi1 fr2
+ _s2d fr2, dr2
+ fneg dr2
+ fneg dr2
+ fcmp/eq dr0, dr2
+ bt .L12
+ fail
+.L12:
+ test_grs_a5a5
+ assert_dpreg_i 1, dr0
+ assert_dpreg_i 1, dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/frchg.s b/sim/testsuite/sim/sh/frchg.s
new file mode 100644
index 0000000..c5dc099
--- /dev/null
+++ b/sim/testsuite/sim/sh/frchg.s
@@ -0,0 +1,30 @@
+# sh testcase for frchg
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ set_fprs_a5a5
+ sts fpscr, r0
+ assertreg0 0
+ frchg
+ sts fpscr, r0
+ assertreg0 0x200000
+ frchg
+ sts fpscr, r0
+ assertreg0 0
+ frchg
+ sts fpscr, r0
+ assertreg0 0x200000
+ frchg
+ sts fpscr, r0
+ assertreg0 0
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ test_fprs_a5a5
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fschg.s b/sim/testsuite/sim/sh/fschg.s
new file mode 100644
index 0000000..7454787
--- /dev/null
+++ b/sim/testsuite/sim/sh/fschg.s
@@ -0,0 +1,29 @@
+# sh testcase for fschg
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ set_fprs_a5a5
+ sts fpscr, r0
+ assertreg0 0
+ fschg
+ sts fpscr, r0
+ assertreg0 0x100000
+ fschg
+ sts fpscr, r0
+ assertreg0 0
+ fschg
+ sts fpscr, r0
+ assertreg0 0x100000
+ fschg
+ sts fpscr, r0
+ assertreg0 0
+
+ set_greg 0xa5a5a5a5 r0
+ test_grs_a5a5
+ test_fprs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fsqrt.s b/sim/testsuite/sim/sh/fsqrt.s
new file mode 100644
index 0000000..cb61bcf
--- /dev/null
+++ b/sim/testsuite/sim/sh/fsqrt.s
@@ -0,0 +1,120 @@
+# sh testcase for fsqrt
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fsqrt_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # sqrt(0.0) = 0.0.
+ fldi0 fr0
+ fsqrt fr0
+ fldi0 fr1
+ fcmp/eq fr0, fr1
+ bt .L0
+ fail
+.L0:
+ # sqrt(1.0) = 1.0.
+ fldi1 fr0
+ fsqrt fr0
+ fldi1 fr1
+ fcmp/eq fr0, fr1
+ bt .L1
+ fail
+.L1:
+ # sqrt(4.0) = 2.0
+ fldi1 fr0
+ # Double it.
+ fadd fr0, fr0
+ # Double it again.
+ fadd fr0, fr0
+ fsqrt fr0
+ fldi1 fr1
+ # Double it.
+ fadd fr1, fr1
+ fcmp/eq fr0, fr1
+ bt .L2
+ fail
+.L2:
+ test_grs_a5a5
+ assert_fpreg_i 2, fr0
+ assert_fpreg_i 2, fr1
+ test_fpr_a5a5 fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fsqrt_double:
+ double_prec
+ set_grs_a5a5
+ set_fprs_a5a5
+ # sqrt(0.0) = 0.0.
+ fldi0 fr0
+ _s2d fr0, dr0
+ fsqrt dr0
+ fldi0 fr2
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bt .L10
+ fail
+.L10:
+ # sqrt(1.0) = 1.0.
+ fldi1 fr0
+ _s2d fr0, dr0
+ fsqrt dr0
+ fldi1 fr2
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bt .L11
+ fail
+.L11:
+ # sqrt(4.0) = 2.0.
+ fldi1 fr0
+ # Double it.
+ single_prec
+ fadd fr0, fr0
+ # Double it again.
+ fadd fr0, fr0
+ double_prec
+ _s2d fr0, dr0
+ fsqrt dr0
+ fldi1 fr2
+ # Double it.
+ single_prec
+ fadd fr2, fr2
+ double_prec
+ _s2d fr2, dr2
+ fcmp/eq dr0, dr2
+ bt .L12
+ fail
+.L12:
+ test_grs_a5a5
+ assert_dpreg_i 2, dr0
+ assert_dpreg_i 2, dr2
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/fsub.s b/sim/testsuite/sim/sh/fsub.s
new file mode 100644
index 0000000..dfe9172
--- /dev/null
+++ b/sim/testsuite/sim/sh/fsub.s
@@ -0,0 +1,136 @@
+# sh testcase for fsub
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+fsub_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # 0.0 - 0.0 = 0.0.
+ fldi0 fr0
+ fldi0 fr1
+ fsub fr0, fr1
+ fldi0 fr2
+ fcmp/eq fr1, fr2
+ bt .L0
+ fail
+.L0:
+ # 1.0 - 0.0 = 1.0.
+ fldi0 fr0
+ fldi1 fr1
+ fsub fr0, fr1
+ fldi1 fr2
+ fcmp/eq fr1, fr2
+ bt .L1
+ fail
+.L1:
+ # 1.0 - 1.0 = 0.0.
+ fldi1 fr0
+ fldi1 fr1
+ fsub fr0, fr1
+ fldi0 fr2
+ fcmp/eq fr1, fr2
+ bt .L2
+ fail
+.L2:
+ # 0.0 - 1.0 = -1.0.
+ fldi1 fr0
+ fldi0 fr1
+ fsub fr0, fr1
+ fldi1 fr2
+ fneg fr2
+ fcmp/eq fr1, fr2
+ bt .L3
+ fail
+.L3:
+ test_grs_a5a5
+ assert_fpreg_i 1, fr0
+ assert_fpreg_i -1, fr1
+ assert_fpreg_i -1, fr2
+ test_fpr_a5a5 fr3
+ test_fpr_a5a5 fr4
+ test_fpr_a5a5 fr5
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+
+fsub_double:
+ set_grs_a5a5
+ set_fprs_a5a5
+ double_prec
+ # 0.0 - 0.0 = 0.0.
+ fldi0 fr0
+ fldi0 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fsub dr0, dr2
+ fldi0 fr4
+ _s2d fr4, dr4
+ fcmp/eq dr2, dr4
+ bt .L10
+ fail
+.L10:
+ # 1.0 - 0.0 = 1.0.
+ fldi0 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fsub dr0, dr2
+ fldi1 fr4
+ _s2d fr4, dr4
+ fcmp/eq dr2, dr4
+ bt .L11
+ fail
+.L11:
+ # 1.0 - 1.0 = 0.0.
+ fldi1 fr0
+ fldi1 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fsub dr0, dr2
+ fldi0 fr4
+ _s2d fr4, dr4
+ fcmp/eq dr2, dr4
+ bt .L12
+ fail
+.L12:
+ # 0.0 - 1.0 = -1.0.
+ fldi1 fr0
+ fldi0 fr2
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ fsub dr0, dr2
+ fldi1 fr4
+ single_prec
+ fneg fr4
+ double_prec
+ _s2d fr4, dr4
+ fcmp/eq dr2, dr4
+ bt .L13
+ fail
+.L13:
+ test_grs_a5a5
+ assert_dpreg_i 1, dr0
+ assert_dpreg_i -1, dr2
+ assert_dpreg_i -1, dr4
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/ftrc.s b/sim/testsuite/sim/sh/ftrc.s
new file mode 100644
index 0000000..25e33be
--- /dev/null
+++ b/sim/testsuite/sim/sh/ftrc.s
@@ -0,0 +1,156 @@
+# sh testcase for ftrc
+# mach: sh
+# as(sh): -defsym sim_cpu=0
+
+ .include "testutils.inc"
+
+ start
+ftrc_single:
+ set_grs_a5a5
+ set_fprs_a5a5
+ # ftrc(0.0) = 0.
+ fldi0 fr0
+ ftrc fr0, fpul
+ # check results.
+ mov #0, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt .L0
+ fail
+.L0:
+ # ftrc(1.5) = 1.
+ fldi1 fr0
+ fldi1 fr1
+ fldi1 fr2
+ # double it.
+ fadd fr2, fr2
+ # form the fraction.
+ fdiv fr2, fr1
+ fadd fr1, fr0
+ # now we've got 1.5 in fr0.
+ ftrc fr0, fpul
+ # check results.
+ mov #1, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt .L1
+ fail
+.L1:
+ # ftrc(-1.5) = -1.
+ fldi1 fr0
+ fneg fr0
+ fldi1 fr1
+ fldi1 fr2
+ # double it.
+ fadd fr2, fr2
+ # form the fraction.
+ fdiv fr2, fr1
+ fneg fr1
+ # -1 + -0.5 = -1.5.
+ fadd fr1, fr0
+ # now we've got 1.5 in fr0.
+ ftrc fr0, fpul
+ # check results.
+ mov #1, r0
+ neg r0, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt ftrc_double
+ fail
+
+ftrc_double:
+ double_prec
+ # ftrc(0.0) = 0.
+ fldi0 fr0
+ _s2d fr0, dr0
+ ftrc dr0, fpul
+ # check results.
+ mov #0, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt .L10
+ fail
+.L10:
+ # ftrc(1.5) = 1.
+ fldi1 fr0
+ fldi1 fr2
+ fldi1 fr4
+ # double it.
+ single_prec
+ fadd fr4, fr4
+ # form 0.5.
+ fdiv fr4, fr2
+ fadd fr2, fr0
+ double_prec
+ # now we've got 1.5 in fr0, so do some single->double
+ # conversions and perform the ftrc.
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ _s2d fr4, dr4
+ ftrc dr0, fpul
+
+ # check results.
+ mov #1, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt .L11
+ fail
+.L11:
+ # ftrc(-1.5) = -1.
+ fldi1 fr0
+ fneg fr0
+ fldi1 fr2
+ fldi1 fr4
+ single_prec
+ # double it.
+ fadd fr4, fr4
+ # form the fraction.
+ fdiv fr4, fr2
+ fneg fr2
+ # -1 + -0.5 = -1.5.
+ fadd fr2, fr0
+ double_prec
+ # now we've got 1.5 in fr0, so do some single->double
+ # conversions and perform the ftrc.
+ _s2d fr0, dr0
+ _s2d fr2, dr2
+ _s2d fr4, dr4
+ ftrc dr0, fpul
+
+ # check results.
+ mov #1, r0
+ neg r0, r0
+ sts fpul, r1
+ cmp/eq r0, r1
+ bt .L12
+ fail
+.L12:
+ assertreg0 -1
+ assertreg -1, r1
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ assert_dpreg_i 2, dr4
+ test_fpr_a5a5 fr6
+ test_fpr_a5a5 fr7
+ test_fpr_a5a5 fr8
+ test_fpr_a5a5 fr9
+ test_fpr_a5a5 fr10
+ test_fpr_a5a5 fr11
+ test_fpr_a5a5 fr12
+ test_fpr_a5a5 fr13
+ test_fpr_a5a5 fr14
+ test_fpr_a5a5 fr15
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/macl.s b/sim/testsuite/sim/sh/macl.s
new file mode 100644
index 0000000..39b3b7d
--- /dev/null
+++ b/sim/testsuite/sim/sh/macl.s
@@ -0,0 +1,54 @@
+# sh testcase for mac.l
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ # force S-bit clear
+ clrs
+
+init:
+ # Prime {MACL, MACH} to #1.
+ mov #1, r0
+ dmulu.l r0, r0
+
+ # Set up addresses.
+ mov.l pfour00, r0 ! 85
+ mov.l pfour12, r1 ! 17
+
+test:
+ mac.l @r0+, @r1+
+
+check:
+ # Check result.
+ assert_sreg 0, mach
+ assert_sreg 85*17+1, macl
+
+ # Ensure post-increment occurred.
+ assertreg0 four00+4
+ assertreg four12+4, r1
+
+doubleinc:
+ mov.l pfour00, r0
+ mac.l @r0+, @r0+
+ assertreg0 four00+8
+
+
+ pass
+ exit 0
+
+ .align 1
+four00:
+ .long 85
+ .long 2
+four12:
+ .long 17
+ .long 3
+
+ .align 2
+pfour00:
+ .long four00
+pfour12:
+ .long four12
diff --git a/sim/testsuite/sim/sh/macw.s b/sim/testsuite/sim/sh/macw.s
new file mode 100644
index 0000000..7e3ebc0
--- /dev/null
+++ b/sim/testsuite/sim/sh/macw.s
@@ -0,0 +1,56 @@
+# sh testcase for mac.w
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+
+ # Prime {MACL, MACH} to #1.
+ mov #1, r0
+ dmulu.l r0, r0
+
+ # Set up addresses.
+ mov.l pfour00, r0 ! 85
+ mov.l pfour12, r1 ! 17
+
+test:
+ mac.w @r0+, @r1+ ! MAC = 85 * 17 + 1
+
+check:
+ # Check result.
+ assert_sreg 0, mach
+ assert_sreg 85*17+1, macl
+
+ # Ensure post-increment occurred.
+ assertreg0 four00+2
+ assertreg four12+2, r1
+
+doubleinc:
+ mov.l pfour00, r0
+ mac.w @r0+, @r0+
+ assertreg0 four00+4
+
+ set_greg 0xa5a5a5a5, r0
+ set_greg 0xa5a5a5a5, r1
+
+ test_grs_a5a5
+
+ pass
+ exit 0
+
+ .align 2
+four00:
+ .word 85
+ .word 2
+four12:
+ .word 17
+ .word 3
+
+
+pfour00:
+ .long four00
+pfour12:
+ .long four12
diff --git a/sim/testsuite/sim/sh/padd.s b/sim/testsuite/sim/sh/padd.s
new file mode 100644
index 0000000..072935d
--- /dev/null
+++ b/sim/testsuite/sim/sh/padd.s
@@ -0,0 +1,54 @@
+# sh testcase for padd
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ padd x0, y0, a0
+ assert_sreg 0x4b4b4b4a, a0
+
+ # 2 + 2 = 4
+ mov #2, r0
+ lds r0, x0
+ lds r0, y0
+ padd x0, y0, a0
+ assert_sreg 4, a0
+
+ set_dcfalse
+ dct padd x0, y0, a1
+ assert_sreg2 0xa5a5a5a5, a1
+ set_dctrue
+ dct padd x0, y0, a1
+ assert_sreg2 4, a1
+
+ set_dctrue
+ dcf padd x0, y0, m1
+ assert_sreg2 0xa5a5a5a5, m1
+ set_dcfalse
+ dcf padd x0, y0, m1
+ assert_sreg2 4, m1
+
+ # padd / pmuls
+
+ padd x0, y0, y0 pmuls x1, y1, m1
+ assert_sreg 4, y0
+ assert_sreg2 0x3fc838b2, m1 ! (int) 0xa5a5 x (int) 0xa5a5 x 2
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/paddc.s b/sim/testsuite/sim/sh/paddc.s
new file mode 100644
index 0000000..0dd3b67
--- /dev/null
+++ b/sim/testsuite/sim/sh/paddc.s
@@ -0,0 +1,39 @@
+# sh testcase for paddc
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ # 2 + 2 = 4
+ set_dcfalse
+ mov #2, r0
+ lds r0, x0
+ lds r0, y0
+ paddc x0, y0, a0
+ assert_sreg 4, a0
+
+ # 2 + 2 + carry = 5
+ set_dctrue
+ paddc x0, y0, a1
+ assert_sreg2 5, a1
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/pand.s b/sim/testsuite/sim/sh/pand.s
new file mode 100644
index 0000000..cddf058
--- /dev/null
+++ b/sim/testsuite/sim/sh/pand.s
@@ -0,0 +1,48 @@
+# sh testcase for pand
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ pand x0, y0, a0
+ assert_sreg 0xa5a50000, a0
+
+ # 0xa5a5a5a5 & 0x5a5a5a5a == 0
+ set_greg 0x5a5a5a5a r0
+ lds r0, x0
+ pand x0, y0, a0
+ assert_sreg 0, a0
+
+ set_dcfalse
+ dct pand x0, y0, m0
+ assert_sreg2 0xa5a5a5a5, m0
+ set_dctrue
+ dct pand x0, y0, m0
+ assert_sreg2 0, m0
+
+ set_dctrue
+ dcf pand x0, y0, m1
+ assert_sreg2 0xa5a5a5a5, m1
+ set_dcfalse
+ dcf pand x0, y0, m1
+ assert_sreg2 0, m1
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, a1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/pdec.s b/sim/testsuite/sim/sh/pdec.s
new file mode 100644
index 0000000..fa4b6a5
--- /dev/null
+++ b/sim/testsuite/sim/sh/pdec.s
@@ -0,0 +1,110 @@
+# sh testcase for pdec
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+pdecx:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ pdec x0, y0
+ assert_sreg 0xa5a40000, y0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+pdecy:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ pdec y0, x0
+ assert_sreg 0xa5a40000, x0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+dct_pdecx:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_dcfalse
+ dct pdec x0, y0
+ assert_sreg 0xa5a5a5a5, y0
+ set_dctrue
+ dct pdec x0, y0
+ assert_sreg 0xa5a40000, y0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+dcf_pdecy:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_dctrue
+ dcf pdec y0, x0
+ assert_sreg 0xa5a5a5a5, x0
+ set_dcfalse
+ dcf pdec y0, x0
+ assert_sreg 0xa5a40000, x0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/pdmsb.s b/sim/testsuite/sim/sh/pdmsb.s
new file mode 100644
index 0000000..0cb7829
--- /dev/null
+++ b/sim/testsuite/sim/sh/pdmsb.s
@@ -0,0 +1,230 @@
+# sh testcase for pdmsb
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_sreg 0x0, x0
+L0: pdmsb x0, x1
+# assert_sreg 31<<16, x1
+ set_sreg 0x1, x0
+L1: pdmsb x0, x1
+ assert_sreg 30<<16, x1
+ set_sreg 0x3, x0
+L2: pdmsb x0, x1
+ assert_sreg 29<<16, x1
+ set_sreg 0x7, x0
+L3: pdmsb x0, x1
+ assert_sreg 28<<16, x1
+ set_sreg 0xf, x0
+L4: pdmsb x0, x1
+ assert_sreg 27<<16, x1
+ set_sreg 0x1f, x0
+L5: pdmsb x0, x1
+ assert_sreg 26<<16, x1
+ set_sreg 0x3f, x0
+L6: pdmsb x0, x1
+ assert_sreg 25<<16, x1
+ set_sreg 0x7f, x0
+L7: pdmsb x0, x1
+ assert_sreg 24<<16, x1
+ set_sreg 0xff, x0
+L8: pdmsb x0, x1
+ assert_sreg 23<<16, x1
+
+ set_sreg 0x1ff, x0
+L9: pdmsb x0, x1
+ assert_sreg 22<<16, x1
+ set_sreg 0x3ff, x0
+L10: pdmsb x0, x1
+ assert_sreg 21<<16, x1
+ set_sreg 0x7ff, x0
+L11: pdmsb x0, x1
+ assert_sreg 20<<16, x1
+ set_sreg 0xfff, x0
+L12: pdmsb x0, x1
+ assert_sreg 19<<16, x1
+ set_sreg 0x1fff, x0
+L13: pdmsb x0, x1
+ assert_sreg 18<<16, x1
+ set_sreg 0x3fff, x0
+L14: pdmsb x0, x1
+ assert_sreg 17<<16, x1
+ set_sreg 0x7fff, x0
+L15: pdmsb x0, x1
+ assert_sreg 16<<16, x1
+ set_sreg 0xffff, x0
+L16: pdmsb x0, x1
+ assert_sreg 15<<16, x1
+
+ set_sreg 0x1ffff, x0
+L17: pdmsb x0, x1
+ assert_sreg 14<<16, x1
+ set_sreg 0x3ffff, x0
+L18: pdmsb x0, x1
+ assert_sreg 13<<16, x1
+ set_sreg 0x7ffff, x0
+L19: pdmsb x0, x1
+ assert_sreg 12<<16, x1
+ set_sreg 0xfffff, x0
+L20: pdmsb x0, x1
+ assert_sreg 11<<16, x1
+ set_sreg 0x1fffff, x0
+L21: pdmsb x0, x1
+ assert_sreg 10<<16, x1
+ set_sreg 0x3fffff, x0
+L22: pdmsb x0, x1
+ assert_sreg 9<<16, x1
+ set_sreg 0x7fffff, x0
+L23: pdmsb x0, x1
+ assert_sreg 8<<16, x1
+ set_sreg 0xffffff, x0
+L24: pdmsb x0, x1
+ assert_sreg 7<<16, x1
+
+ set_sreg 0x1ffffff, x0
+L25: pdmsb x0, x1
+ assert_sreg 6<<16, x1
+ set_sreg 0x3ffffff, x0
+L26: pdmsb x0, x1
+ assert_sreg 5<<16, x1
+ set_sreg 0x7ffffff, x0
+L27: pdmsb x0, x1
+ assert_sreg 4<<16, x1
+ set_sreg 0xfffffff, x0
+L28: pdmsb x0, x1
+ assert_sreg 3<<16, x1
+ set_sreg 0x1fffffff, x0
+L29: pdmsb x0, x1
+ assert_sreg 2<<16, x1
+ set_sreg 0x3fffffff, x0
+L30: pdmsb x0, x1
+ assert_sreg 1<<16, x1
+ set_sreg 0x7fffffff, x0
+L31: pdmsb x0, x1
+ assert_sreg 0<<16, x1
+ set_sreg 0xffffffff, x0
+L32: pdmsb x0, x1
+# assert_sreg 31<<16, x1
+
+ set_sreg 0xfffffffe, x0
+L33: pdmsb x0, x1
+ assert_sreg 30<<16, x1
+ set_sreg 0xfffffffc, x0
+L34: pdmsb x0, x1
+ assert_sreg 29<<16, x1
+ set_sreg 0xfffffff8, x0
+L35: pdmsb x0, x1
+ assert_sreg 28<<16, x1
+ set_sreg 0xfffffff0, x0
+L36: pdmsb x0, x1
+ assert_sreg 27<<16, x1
+ set_sreg 0xffffffe0, x0
+L37: pdmsb x0, x1
+ assert_sreg 26<<16, x1
+ set_sreg 0xffffffc0, x0
+L38: pdmsb x0, x1
+ assert_sreg 25<<16, x1
+ set_sreg 0xffffff80, x0
+L39: pdmsb x0, x1
+ assert_sreg 24<<16, x1
+ set_sreg 0xffffff00, x0
+L40: pdmsb x0, x1
+ assert_sreg 23<<16, x1
+
+ set_sreg 0xfffffe00, x0
+L41: pdmsb x0, x1
+ assert_sreg 22<<16, x1
+ set_sreg 0xfffffc00, x0
+L42: pdmsb x0, x1
+ assert_sreg 21<<16, x1
+ set_sreg 0xfffff800, x0
+L43: pdmsb x0, x1
+ assert_sreg 20<<16, x1
+ set_sreg 0xfffff000, x0
+L44: pdmsb x0, x1
+ assert_sreg 19<<16, x1
+ set_sreg 0xffffe000, x0
+L45: pdmsb x0, x1
+ assert_sreg 18<<16, x1
+ set_sreg 0xffffc000, x0
+L46: pdmsb x0, x1
+ assert_sreg 17<<16, x1
+ set_sreg 0xffff8000, x0
+L47: pdmsb x0, x1
+ assert_sreg 16<<16, x1
+ set_sreg 0xffff0000, x0
+L48: pdmsb x0, x1
+ assert_sreg 15<<16, x1
+
+ set_sreg 0xfffe0000, x0
+L49: pdmsb x0, x1
+ assert_sreg 14<<16, x1
+ set_sreg 0xfffc0000, x0
+L50: pdmsb x0, x1
+ assert_sreg 13<<16, x1
+ set_sreg 0xfff80000, x0
+L51: pdmsb x0, x1
+ assert_sreg 12<<16, x1
+ set_sreg 0xfff00000, x0
+L52: pdmsb x0, x1
+ assert_sreg 11<<16, x1
+ set_sreg 0xffe00000, x0
+L53: pdmsb x0, x1
+ assert_sreg 10<<16, x1
+ set_sreg 0xffc00000, x0
+L54: pdmsb x0, x1
+ assert_sreg 9<<16, x1
+ set_sreg 0xff800000, x0
+L55: pdmsb x0, x1
+ assert_sreg 8<<16, x1
+ set_sreg 0xff000000, x0
+L56: pdmsb x0, x1
+ assert_sreg 7<<16, x1
+
+ set_sreg 0xfe000000, x0
+L57: pdmsb x0, x1
+ assert_sreg 6<<16, x1
+ set_sreg 0xfc000000, x0
+L58: pdmsb x0, x1
+ assert_sreg 5<<16, x1
+ set_sreg 0xf8000000, x0
+L59: pdmsb x0, x1
+ assert_sreg 4<<16, x1
+ set_sreg 0xf0000000, x0
+L60: pdmsb x0, x1
+ assert_sreg 3<<16, x1
+ set_sreg 0xe0000000, x0
+L61: pdmsb x0, x1
+ assert_sreg 2<<16, x1
+ set_sreg 0xc0000000, x0
+L62: pdmsb x0, x1
+ assert_sreg 1<<16, x1
+ set_sreg 0x80000000, x0
+L63: pdmsb x0, x1
+ assert_sreg 0<<16, x1
+ set_sreg 0x00000000, x0
+L64: pdmsb x0, x1
+# assert_sreg 31<<16, x1
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/pinc.s b/sim/testsuite/sim/sh/pinc.s
new file mode 100644
index 0000000..0067bc0
--- /dev/null
+++ b/sim/testsuite/sim/sh/pinc.s
@@ -0,0 +1,110 @@
+# sh testcase for pinc
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+pincx:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ pinc x0, y0
+ assert_sreg 0xa5a60000, y0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+pincy:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ pinc y0, x0
+ assert_sreg 0xa5a60000, x0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+dct_pincx:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_dcfalse
+ dct pinc x0, y0
+ assert_sreg 0xa5a5a5a5, y0
+ set_dctrue
+ dct pinc x0, y0
+ assert_sreg 0xa5a60000, y0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+dcf_pincy:
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_dctrue
+ dcf pinc y0, x0
+ assert_sreg 0xa5a5a5a5, x0
+ set_dcfalse
+ dcf pinc y0, x0
+ assert_sreg 0xa5a60000, x0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/pmuls.s b/sim/testsuite/sim/sh/pmuls.s
new file mode 100644
index 0000000..4cff878
--- /dev/null
+++ b/sim/testsuite/sim/sh/pmuls.s
@@ -0,0 +1,33 @@
+# sh testcase for pmuls
+# mach: shdsp
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ # 2 x 2 = 8 (?)
+ # (I don't understand why the result is x2,
+ # but that's what it says in the manual...)
+ mov #2, r0
+ shll16 r0
+ lds r0, y0
+ lds r0, y1
+ pmuls y0, y1, a0
+
+ assert_sreg 8, a0
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/pshai.s b/sim/testsuite/sim/sh/pshai.s
new file mode 100644
index 0000000..b2cdbbc
--- /dev/null
+++ b/sim/testsuite/sim/sh/pshai.s
@@ -0,0 +1,200 @@
+# sh testcase for psha <imm>
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+psha_imm: ! shift arithmetic, immediate operand
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_sreg 0x1, a0
+ psha #0, a0
+ assert_sreg 0x1, a0
+ psha #-0, a0
+ assert_sreg 0x1, a0
+
+ psha #1, a0
+ assert_sreg 0x2, a0
+ psha #-1, a0
+ assert_sreg 0x1, a0
+
+ psha #2, a0
+ assert_sreg 0x4, a0
+ psha #-2, a0
+ assert_sreg 0x1, a0
+
+ psha #3, a0
+ assert_sreg 0x8, a0
+ psha #-3, a0
+ assert_sreg 0x1, a0
+
+ psha #4, a0
+ assert_sreg 0x10, a0
+ psha #-4, a0
+ assert_sreg 0x1, a0
+
+ psha #5, a0
+ assert_sreg 0x20, a0
+ psha #-5, a0
+ assert_sreg 0x1, a0
+
+ psha #6, a0
+ assert_sreg 0x40, a0
+ psha #-6, a0
+ assert_sreg 0x1, a0
+
+ psha #7, a0
+ assert_sreg 0x80, a0
+ psha #-7, a0
+ assert_sreg 0x1, a0
+
+ psha #8, a0
+ assert_sreg 0x100, a0
+ psha #-8, a0
+ assert_sreg 0x1, a0
+
+ psha #9, a0
+ assert_sreg 0x200, a0
+ psha #-9, a0
+ assert_sreg 0x1, a0
+
+ psha #10, a0
+ assert_sreg 0x400, a0
+ psha #-10, a0
+ assert_sreg 0x1, a0
+
+ psha #11, a0
+ assert_sreg 0x800, a0
+ psha #-11, a0
+ assert_sreg 0x1, a0
+
+ psha #12, a0
+ assert_sreg 0x1000, a0
+ psha #-12, a0
+ assert_sreg 0x1, a0
+
+ psha #13, a0
+ assert_sreg 0x2000, a0
+ psha #-13, a0
+ assert_sreg 0x1, a0
+
+ psha #14, a0
+ assert_sreg 0x4000, a0
+ psha #-14, a0
+ assert_sreg 0x1, a0
+
+ psha #15, a0
+ assert_sreg 0x8000, a0
+ psha #-15, a0
+ assert_sreg 0x1, a0
+
+ psha #16, a0
+ assert_sreg 0x10000, a0
+ psha #-16, a0
+ assert_sreg 0x1, a0
+
+ psha #17, a0
+ assert_sreg 0x20000, a0
+ psha #-17, a0
+ assert_sreg 0x1, a0
+
+ psha #18, a0
+ assert_sreg 0x40000, a0
+ psha #-18, a0
+ assert_sreg 0x1, a0
+
+ psha #19, a0
+ assert_sreg 0x80000, a0
+ psha #-19, a0
+ assert_sreg 0x1, a0
+
+ psha #20, a0
+ assert_sreg 0x100000, a0
+ psha #-20, a0
+ assert_sreg 0x1, a0
+
+ psha #21, a0
+ assert_sreg 0x200000, a0
+ psha #-21, a0
+ assert_sreg 0x1, a0
+
+ psha #22, a0
+ assert_sreg 0x400000, a0
+ psha #-22, a0
+ assert_sreg 0x1, a0
+
+ psha #23, a0
+ assert_sreg 0x800000, a0
+ psha #-23, a0
+ assert_sreg 0x1, a0
+
+ psha #24, a0
+ assert_sreg 0x1000000, a0
+ psha #-24, a0
+ assert_sreg 0x1, a0
+
+ psha #25, a0
+ assert_sreg 0x2000000, a0
+ psha #-25, a0
+ assert_sreg 0x1, a0
+
+ psha #26, a0
+ assert_sreg 0x4000000, a0
+ psha #-26, a0
+ assert_sreg 0x1, a0
+
+ psha #27, a0
+ assert_sreg 0x8000000, a0
+ psha #-27, a0
+ assert_sreg 0x1, a0
+
+ psha #28, a0
+ assert_sreg 0x10000000, a0
+ psha #-28, a0
+ assert_sreg 0x1, a0
+
+ psha #29, a0
+ assert_sreg 0x20000000, a0
+ psha #-29, a0
+ assert_sreg 0x1, a0
+
+ psha #30, a0
+ assert_sreg 0x40000000, a0
+ psha #-30, a0
+ assert_sreg 0x1, a0
+
+ psha #31, a0
+ assert_sreg 0x80000000, a0
+ psha #-31, a0
+ assert_sreg 0xffffffff, a0
+
+ psha #32, a0
+ assert_sreg 0x00000000, a0
+# I don't grok what should happen here...
+# psha #-32, a0
+# assert_sreg 0x0, a0
+
+ test_grs_a5a5
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/pshar.s b/sim/testsuite/sim/sh/pshar.s
new file mode 100644
index 0000000..01c4b5f
--- /dev/null
+++ b/sim/testsuite/sim/sh/pshar.s
@@ -0,0 +1,265 @@
+# sh testcase for psha <reg>
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+psha_reg: ! shift arithmetic, register operand
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_sreg 0x1, x0
+ set_sreg 0x0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x10000, y0
+ psha x0, y0, x0
+ assert_sreg 0x2, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x20000, y0
+ psha x0, y0, x0
+ assert_sreg 0x4, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x30000, y0
+ psha x0, y0, x0
+ assert_sreg 0x8, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x40000, y0
+ psha x0, y0, x0
+ assert_sreg 0x10, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x50000, y0
+ psha x0, y0, x0
+ assert_sreg 0x20, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x60000, y0
+ psha x0, y0, x0
+ assert_sreg 0x40, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x70000, y0
+ psha x0, y0, x0
+ assert_sreg 0x80, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x80000, y0
+ psha x0, y0, x0
+ assert_sreg 0x100, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x90000, y0
+ psha x0, y0, x0
+ assert_sreg 0x200, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xa0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x400, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xb0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x800, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xc0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x1000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xd0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x2000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xe0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x4000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0xf0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x8000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x100000, y0
+ psha x0, y0, x0
+ assert_sreg 0x10000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x110000, y0
+ psha x0, y0, x0
+ assert_sreg 0x20000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x120000, y0
+ psha x0, y0, x0
+ assert_sreg 0x40000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x130000, y0
+ psha x0, y0, x0
+ assert_sreg 0x80000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x140000, y0
+ psha x0, y0, x0
+ assert_sreg 0x100000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x150000, y0
+ psha x0, y0, x0
+ assert_sreg 0x200000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x160000, y0
+ psha x0, y0, x0
+ assert_sreg 0x400000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x170000, y0
+ psha x0, y0, x0
+ assert_sreg 0x800000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x180000, y0
+ psha x0, y0, x0
+ assert_sreg 0x1000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x190000, y0
+ psha x0, y0, x0
+ assert_sreg 0x2000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1a0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x4000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1b0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x8000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1c0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x10000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1d0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x20000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1e0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x40000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0x1, x0
+
+ set_sreg 0x1f0000, y0
+ psha x0, y0, x0
+ assert_sreg 0x80000000, x0
+ pneg y0, y0
+ psha x0, y0, x0
+ assert_sreg 0xffffffff, x0
+
+ set_sreg 0x200000, y0
+ psha x0, y0, x0
+ assert_sreg 0x00000000, x0
+# I don't grok what should happen here...
+# pneg y0, y0
+# psha x0, y0, x0
+# assert_sreg 0x0, x0
+
+ test_grs_a5a5
+ assert_sreg 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/pshli.s b/sim/testsuite/sim/sh/pshli.s
new file mode 100644
index 0000000..a6616e8
--- /dev/null
+++ b/sim/testsuite/sim/sh/pshli.s
@@ -0,0 +1,119 @@
+# sh testcase for pshl <imm>
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+pshl_imm: ! shift logical, immediate operand
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_sreg 0x10000, a0
+ pshl #0, a0
+ assert_sreg 0x10000, a0
+ pshl #-0, a0
+ assert_sreg 0x10000, a0
+
+ pshl #1, a0
+ assert_sreg 0x20000, a0
+ pshl #-1, a0
+ assert_sreg 0x10000, a0
+
+ pshl #2, a0
+ assert_sreg 0x40000, a0
+ pshl #-2, a0
+ assert_sreg 0x10000, a0
+
+ pshl #3, a0
+ assert_sreg 0x80000, a0
+ pshl #-3, a0
+ assert_sreg 0x10000, a0
+
+ pshl #4, a0
+ assert_sreg 0x100000, a0
+ pshl #-4, a0
+ assert_sreg 0x10000, a0
+
+ pshl #5, a0
+ assert_sreg 0x200000, a0
+ pshl #-5, a0
+ assert_sreg 0x10000, a0
+
+ pshl #6, a0
+ assert_sreg 0x400000, a0
+ pshl #-6, a0
+ assert_sreg 0x10000, a0
+
+ pshl #7, a0
+ assert_sreg 0x800000, a0
+ pshl #-7, a0
+ assert_sreg 0x10000, a0
+
+ pshl #8, a0
+ assert_sreg 0x1000000, a0
+ pshl #-8, a0
+ assert_sreg 0x10000, a0
+
+ pshl #9, a0
+ assert_sreg 0x2000000, a0
+ pshl #-9, a0
+ assert_sreg 0x10000, a0
+
+ pshl #10, a0
+ assert_sreg 0x4000000, a0
+ pshl #-10, a0
+ assert_sreg 0x10000, a0
+
+ pshl #11, a0
+ assert_sreg 0x8000000, a0
+ pshl #-11, a0
+ assert_sreg 0x10000, a0
+
+ pshl #12, a0
+ assert_sreg 0x10000000, a0
+ pshl #-12, a0
+ assert_sreg 0x10000, a0
+
+ pshl #13, a0
+ assert_sreg 0x20000000, a0
+ pshl #-13, a0
+ assert_sreg 0x10000, a0
+
+ pshl #14, a0
+ assert_sreg 0x40000000, a0
+ pshl #-14, a0
+ assert_sreg 0x10000, a0
+
+ pshl #15, a0
+ assert_sreg 0x80000000, a0
+ pshl #-15, a0
+ assert_sreg 0x10000, a0
+
+ pshl #16, a0
+ assert_sreg 0x00000000, a0
+ pshl #-16, a0
+ assert_sreg 0x0, a0
+
+ test_grs_a5a5
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg 0xa5a5a5a5, x0
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y0
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/pshlr.s b/sim/testsuite/sim/sh/pshlr.s
new file mode 100644
index 0000000..36cb47f
--- /dev/null
+++ b/sim/testsuite/sim/sh/pshlr.s
@@ -0,0 +1,152 @@
+# sh testcase for pshl <reg>
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+pshl_reg: ! shift arithmetic, register operand
+ set_grs_a5a5
+ lds r0, a0
+ pcopy a0, a1
+ lds r0, x0
+ lds r0, x1
+ lds r0, y0
+ lds r0, y1
+ pcopy x0, m0
+ pcopy y1, m1
+
+ set_sreg 0x10000, x0
+ set_sreg 0x0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x10000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x20000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x20000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x40000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x30000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x80000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x40000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x100000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x50000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x200000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x60000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x400000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x70000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x800000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x80000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x1000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x90000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x2000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xa0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x4000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xb0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x8000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xc0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xd0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x20000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xe0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x40000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0xf0000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x80000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x10000, x0
+
+ set_sreg 0x100000, y0
+ pshl x0, y0, x0
+ assert_sreg 0x00000000, x0
+ pneg y0, y0
+ pshl x0, y0, x0
+ assert_sreg 0x0, x0
+
+ test_grs_a5a5
+ assert_sreg2 0xa5a5a5a5, a0
+ assert_sreg2 0xa5a5a5a5, a1
+ assert_sreg 0xa5a5a5a5, x1
+ assert_sreg 0xa5a5a5a5, y1
+ assert_sreg2 0xa5a5a5a5, m0
+ assert_sreg2 0xa5a5a5a5, m1
+
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/shll.s b/sim/testsuite/sim/sh/shll.s
new file mode 100644
index 0000000..ec2ea12
--- /dev/null
+++ b/sim/testsuite/sim/sh/shll.s
@@ -0,0 +1,91 @@
+# sh testcase for shll
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shll:
+ set_grs_a5a5
+ mov #1, r1
+ shll r1
+ assertreg 2, r1
+ shll r1
+ assertreg 4, r1
+ shll r1
+ assertreg 8, r1
+ shll r1
+ assertreg 16, r1
+ shll r1
+ assertreg 32, r1
+ shll r1
+ assertreg 64, r1
+ shll r1
+ assertreg 0x80, r1
+ shll r1
+ assertreg 0x100, r1
+ shll r1
+ assertreg 0x200, r1
+ shll r1
+ assertreg 0x400, r1
+ shll r1
+ assertreg 0x800, r1
+ shll r1
+ assertreg 0x1000, r1
+ shll r1
+ assertreg 0x2000, r1
+ shll r1
+ assertreg 0x4000, r1
+ shll r1
+ assertreg 0x8000, r1
+ shll r1
+ assertreg 0x10000, r1
+ shll r1
+ assertreg 0x20000, r1
+ shll r1
+ assertreg 0x40000, r1
+ shll r1
+ assertreg 0x80000, r1
+ shll r1
+ assertreg 0x100000, r1
+ shll r1
+ assertreg 0x200000, r1
+ shll r1
+ assertreg 0x400000, r1
+ shll r1
+ assertreg 0x800000, r1
+ shll r1
+ assertreg 0x1000000, r1
+ shll r1
+ assertreg 0x2000000, r1
+ shll r1
+ assertreg 0x4000000, r1
+ shll r1
+ assertreg 0x8000000, r1
+ shll r1
+ assertreg 0x10000000, r1
+ shll r1
+ assertreg 0x20000000, r1
+ shll r1
+ assertreg 0x40000000, r1
+ shll r1
+ assertreg 0x80000000, r1
+ shll r1
+ assertreg 0, r1
+ shll r1
+ assertreg 0, r1
+
+ # another:
+ mov #1, r1
+ shll r1
+ shll r1
+ shll r1
+ assertreg 8, r1
+
+ set_greg 0xa5a5a5a5, r1
+ test_grs_a5a5
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/shll16.s b/sim/testsuite/sim/sh/shll16.s
new file mode 100644
index 0000000..4574835
--- /dev/null
+++ b/sim/testsuite/sim/sh/shll16.s
@@ -0,0 +1,46 @@
+# sh testcase for shll16
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shll16:
+ set_grs_a5a5
+ mov #0x18, r1
+ shll16 r1
+ assertreg 0x180000, r1
+ shll16 r1
+ assertreg 0, r1
+
+ # another:
+ mov #1, r1
+ shll16 r1
+ mov #1, r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ shll r7
+ cmp/eq r1, r7
+ bt okay
+ fail
+okay:
+ set_greg 0xa5a5a5a5, r1
+ set_greg 0xa5a5a5a5, r7
+ test_grs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/shll2.s b/sim/testsuite/sim/sh/shll2.s
new file mode 100644
index 0000000..01a784c
--- /dev/null
+++ b/sim/testsuite/sim/sh/shll2.s
@@ -0,0 +1,51 @@
+# sh testcase for shll2
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shll2:
+ set_grs_a5a5
+ mov #1, r1
+ shll2 r1
+ assertreg 4, r1
+ shll2 r1
+ assertreg 16, r1
+ shll2 r1
+ assertreg 64, r1
+ shll2 r1
+ assertreg 0x100, r1
+ shll2 r1
+ assertreg 0x400, r1
+ shll2 r1
+ assertreg 0x1000, r1
+ shll2 r1
+ assertreg 0x4000, r1
+ shll2 r1
+ assertreg 0x10000, r1
+ shll2 r1
+ assertreg 0x40000, r1
+ shll2 r1
+ assertreg 0x100000, r1
+ shll2 r1
+ assertreg 0x400000, r1
+ shll2 r1
+ assertreg 0x1000000, r1
+ shll2 r1
+ assertreg 0x4000000, r1
+ shll2 r1
+ assertreg 0x10000000, r1
+ shll2 r1
+ assertreg 0x40000000, r1
+ shll2 r1
+ assertreg 0, r1
+
+ set_greg 0xa5a5a5a5, r1
+ test_grs_a5a5
+
+ pass
+ exit 0
+
diff --git a/sim/testsuite/sim/sh/shll8.s b/sim/testsuite/sim/sh/shll8.s
new file mode 100644
index 0000000..71e241d
--- /dev/null
+++ b/sim/testsuite/sim/sh/shll8.s
@@ -0,0 +1,42 @@
+# sh testcase for shll8
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shll8:
+ set_grs_a5a5
+ mov #1, r1
+ shll8 r1
+ assertreg 0x100, r1
+ shll8 r1
+ assertreg 0x10000, r1
+ shll8 r1
+ assertreg 0x1000000, r1
+ shll8 r1
+ assertreg 0, r1
+
+ # another:
+ mov #1, r1
+ shll8 r1
+ mov #1, r2
+ shll r2
+ shll r2
+ shll r2
+ shll r2
+ shll r2
+ shll r2
+ shll r2
+ shll r2
+ cmp/eq r1, r2
+ bt okay
+ fail
+okay:
+ set_greg 0xa5a5a5a5, r1
+ set_greg 0xa5a5a5a5, r2
+ test_grs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/shlr.s b/sim/testsuite/sim/sh/shlr.s
new file mode 100644
index 0000000..8755afb
--- /dev/null
+++ b/sim/testsuite/sim/sh/shlr.s
@@ -0,0 +1,42 @@
+# sh testcase for shlr
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shlr:
+ set_grs_a5a5
+ mov #0, r0
+ or #192, r0
+ shlr r0
+ assertreg0 96
+ shlr r0
+ assertreg0 48
+ shlr r0
+ assertreg0 24
+ shlr r0
+ assertreg0 12
+ shlr r0
+ assertreg0 6
+ shlr r0
+ assertreg0 3
+
+ # Make sure a bit is shifted into T.
+ shlr r0
+ bf wrong
+ assertreg0 1
+ # Ditto.
+ shlr r0
+ bf wrong
+ assertreg0 0
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ pass
+ exit 0
+
+wrong:
+ fail
diff --git a/sim/testsuite/sim/sh/shlr16.s b/sim/testsuite/sim/sh/shlr16.s
new file mode 100644
index 0000000..1161c66
--- /dev/null
+++ b/sim/testsuite/sim/sh/shlr16.s
@@ -0,0 +1,20 @@
+# sh testcase for shlr16
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shrl16:
+ set_grs_a5a5
+ shlr16 r0
+ assertreg0 0xa5a5
+ shlr16 r0
+ assertreg0 0
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/shlr2.s b/sim/testsuite/sim/sh/shlr2.s
new file mode 100644
index 0000000..ce554dd
--- /dev/null
+++ b/sim/testsuite/sim/sh/shlr2.s
@@ -0,0 +1,48 @@
+# sh testcase for shlr2
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shrl2:
+ set_grs_a5a5
+ shlr2 r0
+ assertreg0 0x29696969
+ shlr2 r0
+ assertreg0 0x0a5a5a5a
+ shlr2 r0
+ assertreg0 0x02969696
+ shlr2 r0
+ assertreg0 0x00a5a5a5
+ shlr2 r0
+ assertreg0 0x00296969
+ shlr2 r0
+ assertreg0 0x000a5a5a
+ shlr2 r0
+ assertreg0 0x00029696
+ shlr2 r0
+ assertreg0 0x0000a5a5
+ shlr2 r0
+ assertreg0 0x00002969
+ shlr2 r0
+ assertreg0 0x00000a5a
+ shlr2 r0
+ assertreg0 0x00000296
+ shlr2 r0
+ assertreg0 0x000000a5
+ shlr2 r0
+ assertreg0 0x00000029
+ shlr2 r0
+ assertreg0 0x0000000a
+ shlr2 r0
+ assertreg0 0x00000002
+ shlr2 r0
+ assertreg0 0
+
+ set_greg 0xa5a5a5a5 r0
+ test_grs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/shlr8.s b/sim/testsuite/sim/sh/shlr8.s
new file mode 100644
index 0000000..d609af1
--- /dev/null
+++ b/sim/testsuite/sim/sh/shlr8.s
@@ -0,0 +1,24 @@
+# sh testcase for shlr8
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+shrl8:
+ set_grs_a5a5
+ shlr8 r0
+ assertreg0 0xa5a5a5
+ shlr8 r0
+ assertreg0 0xa5a5
+ shlr8 r0
+ assertreg0 0xa5
+ shlr8 r0
+ assertreg0 0x0
+
+ set_greg 0xa5a5a5a5, r0
+ test_grs_a5a5
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/swap.s b/sim/testsuite/sim/sh/swap.s
new file mode 100644
index 0000000..4dd6572
--- /dev/null
+++ b/sim/testsuite/sim/sh/swap.s
@@ -0,0 +1,59 @@
+# sh testcase for swap
+# mach: all
+# as(sh): -defsym sim_cpu=0
+# as(shdsp): -defsym sim_cpu=1 -dsp
+
+ .include "testutils.inc"
+
+ start
+
+swapb:
+ set_grs_a5a5
+ mov #0x5a, r0
+ shll8 r0
+ or #0xa5, r0
+ assertreg0 0x5aa5
+
+ swap.b r0, r1
+ assertreg 0xa55a, r1
+
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+swapw:
+ set_grs_a5a5
+ mov #0x5a, r0
+ shll16 r0
+ or #0xa5, r0
+ assertreg0 0x5a00a5
+
+ swap.w r0, r1
+ assertreg 0xa5005a, r1
+
+ test_gr_a5a5 r2
+ test_gr_a5a5 r3
+ test_gr_a5a5 r4
+ test_gr_a5a5 r5
+ test_gr_a5a5 r6
+ test_gr_a5a5 r7
+ test_gr_a5a5 r8
+ test_gr_a5a5 r9
+ test_gr_a5a5 r10
+ test_gr_a5a5 r11
+ test_gr_a5a5 r12
+ test_gr_a5a5 r13
+ test_gr_a5a5 r14
+
+ pass
+ exit 0
diff --git a/sim/testsuite/sim/sh/testutils.inc b/sim/testsuite/sim/sh/testutils.inc
new file mode 100644
index 0000000..5c547f2
--- /dev/null
+++ b/sim/testsuite/sim/sh/testutils.inc
@@ -0,0 +1,588 @@
+# Support macros for the sh assembly test cases.
+
+ .equ no_dsp, 0
+ .equ yes_dsp, 1
+
+ .section .rodata
+ .align 2
+_pass: .string "pass\n"
+_fail: .string "fail\n"
+_stack: .fill 128, 4, 0
+stackt:
+
+ .macro push reg
+ mov.l \reg, @-r15
+ .endm
+
+ .macro pop reg
+ mov.l @r15+, \reg
+ .endm
+
+ .macro start
+ .text
+ .align 1
+ .global start
+start: mov.l stackp, r15
+ bra main
+ nop
+ .align 2
+stackp: .long stackt
+mpass:
+ mov #4, r4
+ mov #1, r5
+ mov.l ppass, r6
+ mov #5, r7
+ trapa #34
+ rts
+ nop
+mfail:
+ mov #4, r4
+ mov #1, r5
+ mov.l pfail, r6
+ mov #5, r7
+ trapa #34
+ mov #1, r5
+mexit:
+ mov #1, r4
+ mov #0, r6
+ mov #0, r7
+ trapa #34
+ .align 2
+ppass: .long _pass
+pfail: .long _fail
+
+mtesta5:
+ push r0
+ mov.l a5a5, r0
+ cmp/eq r1, r0
+ bf mfail
+ cmp/eq r2, r0
+ bf mfail
+ cmp/eq r3, r0
+ bf mfail
+ cmp/eq r4, r0
+ bf mfail
+ cmp/eq r5, r0
+ bf mfail
+ cmp/eq r6, r0
+ bf mfail
+ cmp/eq r7, r0
+ bf mfail
+ cmp/eq r8, r0
+ bf mfail
+ cmp/eq r9, r0
+ bf mfail
+ cmp/eq r10, r0
+ bf mfail
+ cmp/eq r11, r0
+ bf mfail
+ cmp/eq r12, r0
+ bf mfail
+ cmp/eq r13, r0
+ bf mfail
+ cmp/eq r14, r0
+ bf mfail
+ # restore and check r0
+ pop r0
+ cmp/eq r0, r1
+ bf mfail
+ # pass
+ rts
+ nop
+.if (sim_cpu == no_dsp)
+mtesta5_fp:
+ push r0
+ flds fr0, fpul
+ sts fpul, r0
+ push r0
+ mov.l a5a5, r0
+ lds r0, fpul
+ fsts fpul, fr0
+ fcmp/eq fr1, fr0
+ bf mfail
+ fcmp/eq fr2, fr0
+ bf mfail
+ fcmp/eq fr3, fr0
+ bf mfail
+ fcmp/eq fr4, fr0
+ bf mfail
+ fcmp/eq fr5, fr0
+ bf mfail
+ fcmp/eq fr6, fr0
+ bf mfail
+ fcmp/eq fr7, fr0
+ bf mfail
+ fcmp/eq fr8, fr0
+ bf mfail
+ fcmp/eq fr9, fr0
+ bf mfail
+ fcmp/eq fr10, fr0
+ bf mfail
+ fcmp/eq fr11, fr0
+ bf mfail
+ fcmp/eq fr12, fr0
+ bf mfail
+ fcmp/eq fr13, fr0
+ bf mfail
+ fcmp/eq fr14, fr0
+ bf mfail
+ fcmp/eq fr15, fr0
+ bf mfail
+ # restore and check fr0
+ pop r0
+ lds r0, fpul
+ fsts fpul, fr0
+ fcmp/eq fr0, fr1
+ bf mfail
+ # restore r0 and pass
+ pop r0
+ rts
+ nop
+.endif
+
+mseta5:
+ mov.l a5a5, r0
+ mov.l a5a5, r1
+ mov.l a5a5, r2
+ mov.l a5a5, r3
+ mov.l a5a5, r4
+ mov.l a5a5, r5
+ mov.l a5a5, r6
+ mov.l a5a5, r7
+ mov.l a5a5, r8
+ mov.l a5a5, r9
+ mov.l a5a5, r10
+ mov.l a5a5, r11
+ mov.l a5a5, r12
+ mov.l a5a5, r13
+ mov.l a5a5, r14
+ rts
+ nop
+
+.if (sim_cpu == no_dsp)
+mseta5_fp:
+ push r0
+ mov.l a5a5, r0
+ lds r0, fpul
+ fsts fpul, fr0
+ fsts fpul, fr1
+ fsts fpul, fr2
+ fsts fpul, fr3
+ fsts fpul, fr4
+ fsts fpul, fr5
+ fsts fpul, fr6
+ fsts fpul, fr7
+ fsts fpul, fr8
+ fsts fpul, fr9
+ fsts fpul, fr10
+ fsts fpul, fr11
+ fsts fpul, fr12
+ fsts fpul, fr13
+ fsts fpul, fr14
+ fsts fpul, fr15
+ pop r0
+ rts
+ nop
+.endif
+
+ .align 2
+a5a5: .long 0xa5a5a5a5
+main:
+ .endm
+
+ .macro exit val
+ mov #\val, r5
+ bra mexit
+ nop
+ .endm
+
+ .macro pass
+ bsr mpass
+ nop
+ .endm
+
+ .macro fail
+ bra mfail
+ nop
+ .endm
+
+ # Assert value of register (any general register but r0)
+ # Preserves r0 on stack, restores it on success.
+ .macro assertreg val reg
+ push r0
+ mov.l .Larval\@, r0
+ cmp/eq r0, \reg
+ bt .Lar\@
+ fail
+ .align 2
+.Larval\@:
+ .long \val
+.Lar\@: pop r0
+ .endm
+
+ # Assert value of register zero
+ # Preserves r1 on stack, restores it on success.
+ .macro assertreg0 val
+ push r1
+ mov.l .Lazval\@, r1
+ cmp/eq r1, r0
+ bt .Laz\@
+ fail
+ .align 2
+.Lazval\@:
+ .long \val
+.Laz\@: pop r1
+ .endm
+
+ # Assert value of system register
+ # [mach, macl, pr, dsr, a0, x0, x1, y0, y1, ...]
+ .macro assert_sreg val reg
+ push r0
+ sts \reg, r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ # Assert value of system register that isn't directly stc-able
+ # [a1, m0, m1, ...]
+ .macro assert_sreg2 val reg
+ push r0
+ sts a0, r0
+ push r0
+ pcopy \reg, a0
+ sts a0, r0
+ assertreg0 \val
+ pop r0
+ lds r0, a0
+ pop r0
+ .endm
+
+ # Assert value of control register
+ # [gbr, vbr, ssr, spc, sgr, dbr, r[0-7]_bank, sr, mod, re, rs, ...]
+ .macro assert_creg val reg
+ push r0
+ stc \reg, r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ # Assert integer value of fp register
+ # Preserves r0 on stack, restores it on success
+ # Assumes single-precision fp mode
+ .macro assert_fpreg_i val freg
+ push r0
+ ftrc \freg, fpul
+ sts fpul, r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ # Assert integer value of dp register
+ # Preserves r0 on stack, restores it on success
+ # Assumes double-precision fp mode
+ .macro assert_dpreg_i val dreg
+ push r0
+ ftrc \dreg, fpul
+ sts fpul, r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ # Assert hex value of fp register
+ # Preserves r0 on stack, restores it on success
+ # Assumes single-precision fp mode
+ .macro assert_fpreg_x val freg
+ push r0
+ flds \freg, fpul
+ sts fpul, r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ # Set FP bank 0
+ # Saves and restores r0 and r1
+ .macro bank0
+ push r0
+ push r1
+ mov #32, r1
+ shll16 r1
+ not r1, r1
+ sts fpscr, r0
+ and r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ # Set FP bank 1
+ .macro bank1
+ push r0
+ push r1
+ mov #32, r1
+ shll16 r1
+ sts fpscr, r0
+ or r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ # Set FP 32-bit xfer
+ .macro sz_32
+ push r0
+ push r1
+ mov #16, r1
+ shll16 r1
+ not r1, r1
+ sts fpscr, r0
+ and r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ # Set FP 64-bit xfer
+ .macro sz_64
+ push r0
+ push r1
+ mov #16, r1
+ shll16 r1
+ sts fpscr, r0
+ or r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ # Set FP single precision
+ .macro single_prec
+ push r0
+ push r1
+ mov #8, r1
+ shll16 r1
+ not r1, r1
+ sts fpscr, r0
+ and r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ # Set FP double precision
+ .macro double_prec
+ push r0
+ push r1
+ mov #8, r1
+ shll16 r1
+ sts fpscr, r0
+ or r1, r0
+ lds r0, fpscr
+ pop r1
+ pop r0
+ .endm
+
+ .macro set_carry
+ sett
+ .endm
+
+ .macro set_ovf
+ sett
+ .endm
+
+ .macro clear_carry
+ clrt
+ .endm
+
+ .macro clear_ovf
+ clrt
+ .endm
+
+ # sets, clrs
+
+
+ .macro set_grs_a5a5
+ bsr mseta5
+ nop
+ .endm
+
+ .macro set_greg val greg
+ mov.l gregval\@, \greg
+ bra set_greg\@
+ nop
+ .align 2
+gregval\@: .long \val
+set_greg\@:
+ .endm
+
+ .macro set_fprs_a5a5
+ bsr mseta5_fp
+ nop
+ .endm
+
+ .macro test_grs_a5a5
+ bsr mtesta5
+ nop
+ .endm
+
+ .macro test_fprs_a5a5
+ bsr mtesta5_fp
+ nop
+ .endm
+
+ .macro test_gr_a5a5 reg
+ assertreg 0xa5a5a5a5 \reg
+ .endm
+
+ .macro test_fpr_a5a5 reg
+ assert_fpreg_x 0xa5a5a5a5 \reg
+ .endm
+
+ .macro test_gr0_a5a5
+ assertreg0 0xa5a5a5a5
+ .endm
+
+ # Perform a single to double precision floating point conversion.
+ # Assumes correct settings of fpscr.
+ .macro _s2d fpr dpr
+ flds \fpr, fpul
+ fcnvsd fpul, \dpr
+ .endm
+
+ # Manipulate the status register
+ .macro set_sr val
+ push r0
+ mov.l .Lsrval\@, r0
+ ldc r0, sr
+ pop r0
+ bra .Lsetsr\@
+ nop
+ .align 2
+.Lsrval\@:
+ .long \val
+.Lsetsr\@:
+ .endm
+
+ .macro get_sr reg
+ stc sr, \reg
+ .endm
+
+ .macro test_sr val
+ push r0
+ get_sr r0
+ assertreg0 \val
+ pop r0
+ .endm
+
+ .macro set_sr_bit
+ push r0
+ push r1
+ get_sr r0
+ mov.l .Lsrbitval\@, r1
+ or r1, r0
+ ldc r0, sr
+ pop r1
+ pop r0
+ bra .Lsrbit\@
+ nop
+ .align 2
+.Lsrbitval:
+ .long \val
+.Lsrbit:
+ .endm
+
+ .macro test_sr_bit_set val
+ push r0
+ push r1
+ get_sr r0
+ mov.l .Ltsbsval\@, r1
+ tst r1, r0
+ bf .Ltsbs\@
+ fail
+ .align 2
+.Ltsbsval\@:
+ .long \val
+.Ltsbs\@:
+ pop r1
+ pop r0
+ .endm
+
+ .macro test_sr_bit_clear val
+ push r0
+ push r1
+ get_sr r0
+ mov.l .Ltsbcval\@, r1
+ not r0, r0
+ tst r1, r0
+ bf .Ltsbc\@
+ fail
+ .align 2
+.Ltsbcval\@:
+ .long \val
+.Ltsbc\@:
+ pop r1
+ pop r0
+ .endm
+
+ # Set system registers
+ .macro set_sreg val reg
+ # [mach, macl, pr, dsr, a0, x0, x1, y0, y1, ...]
+ push r0
+ mov.l .Lssrval\@, r0
+ lds r0, \reg
+ pop r0
+ bra .Lssr\@
+ nop
+.Lssrval\@:
+ .long \val
+.Lssr\@:
+ .endm
+
+ .macro set_sreg2 val reg
+ # [a1, m0, m1, ...]
+ push r0
+ sts a0, r0
+ push r0
+ mov.l .Lssr2val\@, r0
+ lds r0, a0
+ pcopy a0, \reg
+ pop r0
+ lds r0, a0
+ pop r0
+ bra .Lssr2_\@
+ nop
+.Lssr2val\@:
+ .long \val
+.Lssr2_\@:
+ .endm
+
+
+ .macro set_creg val reg
+ #
+ push r0
+ mov.l .Lscrval\@, r0
+ ldc r0, \reg
+ pop r0
+ bra .Lscr\@
+ nop
+.Lscrval\@:
+ .long \val
+.Lscr\@:
+ .endm
+
+ .macro set_dctrue
+ push r0
+ sts dsr, r0
+ or #1, r0
+ lds r0, dsr
+ pop r0
+ .endm
+
+ .macro set_dcfalse
+ push r0
+ sts dsr, r0
+ not r0, r0
+ or #1, r0
+ not r0, r0
+ lds r0, dsr
+ pop r0
+ .endm
diff --git a/src-release b/src-release
index 2b8fa45..78d9f83 100644
--- a/src-release
+++ b/src-release
@@ -160,6 +160,14 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
done
cd etc && $(MAKE) info
$(MAKE) distclean
+ # Kludge for pr gdb/708. 'configure' configures in
+ # dejagnu/example/calc, but 'make distclean' does not clean in
+ # dejagnu/example. Someday somebody might fix this in dejagnu,
+ # and then import a new dejagnu into sourceware. Right now, a
+ # couple of 'rm' commands will get the gdb snapshots working
+ # again. -- chastain 2003-08-15
+ rm -f dejagnu/example/calc/config.status
+ rm -f dejagnu/example/calc/config.log
#
mkdir proto-toplev/etc
(cd proto-toplev/etc; \
diff --git a/symlink-tree b/symlink-tree
index 5b18cab..22132c7 100755
--- a/symlink-tree
+++ b/symlink-tree
@@ -1,6 +1,31 @@
#!/bin/sh
# Create a symlink tree.
#
+# Copyright (C) 1995, 2000, 2003 Free Software Foundation, Inc.
+#
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# Please report bugs to <gcc-bugs@gnu.org>
+# and send patches to <gcc-patches@gnu.org>.
+
# Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
#
# where srcdir is the directory to create a symlink tree to,