Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <>2011-12-20 21:01:31 +0400
committercvs2svn <>2011-12-20 21:01:31 +0400
commitd4375efeb0bc9af5251c0b09e7935a3695abd726 (patch)
tree28b29164aadca00f5c2b402ac38ed8cd8a5cfc1d
parentad0835bc5e9652f42535584b12137a955ac68789 (diff)
This commit was manufactured by cvs2svn to create tag 'cgen-cgen-snapshot-20120201
snapshot-20120201'. Sprout from gdb_7_4-branch 2011-12-08 20:47:28 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'gdb_7_4-branch'.' Cherrypick from master 2011-12-20 17:01:29 UTC Andreas Schwab <schwab@linux-m68k.org> 'config/:': COPYING.LIBGLOSS ChangeLog config/ChangeLog config/acx.m4 config/warnings.m4 configure Delete: djunpack.bat include/COPYING include/COPYING3 include/ChangeLog include/ChangeLog-9103 include/MAINTAINERS include/alloca-conf.h include/ansidecl.h include/aout/ChangeLog include/aout/adobe.h include/aout/aout64.h include/aout/ar.h include/aout/dynix3.h include/aout/encap.h include/aout/host.h include/aout/hp.h include/aout/hp300hpux.h include/aout/hppa.h include/aout/ranlib.h include/aout/reloc.h include/aout/stab.def include/aout/stab_gnu.h include/aout/sun4.h include/bfdlink.h include/binary-io.h include/bout.h include/cgen/ChangeLog include/cgen/basic-modes.h include/cgen/basic-ops.h include/cgen/bitset.h include/coff/ChangeLog include/coff/ChangeLog-9103 include/coff/alpha.h include/coff/apollo.h include/coff/arm.h include/coff/aux-coff.h include/coff/ecoff.h include/coff/external.h include/coff/go32exe.h include/coff/h8300.h include/coff/h8500.h include/coff/i386.h include/coff/i860.h include/coff/i960.h include/coff/ia64.h include/coff/internal.h include/coff/m68k.h include/coff/m88k.h include/coff/mcore.h include/coff/mips.h include/coff/mipspe.h include/coff/or32.h include/coff/pe.h include/coff/powerpc.h include/coff/rs6000.h include/coff/rs6k64.h include/coff/sh.h include/coff/sparc.h include/coff/sym.h include/coff/symconst.h include/coff/ti.h include/coff/tic30.h include/coff/tic4x.h include/coff/tic54x.h include/coff/tic80.h include/coff/w65.h include/coff/we32k.h include/coff/x86_64.h include/coff/xcoff.h include/coff/z80.h include/coff/z8k.h include/demangle.h include/dis-asm.h include/dwarf2.h include/dyn-string.h include/elf/ChangeLog include/elf/ChangeLog-9103 include/elf/alpha.h include/elf/arc.h include/elf/arm.h include/elf/avr.h include/elf/bfin.h include/elf/common.h include/elf/cr16.h include/elf/cr16c.h include/elf/cris.h include/elf/crx.h include/elf/d10v.h include/elf/d30v.h include/elf/dlx.h include/elf/dwarf.h include/elf/epiphany.h include/elf/external.h include/elf/fr30.h include/elf/frv.h include/elf/h8.h include/elf/hppa.h include/elf/i370.h include/elf/i386.h include/elf/i860.h include/elf/i960.h include/elf/ia64.h include/elf/internal.h include/elf/ip2k.h include/elf/iq2000.h include/elf/lm32.h include/elf/m32c.h include/elf/m32r.h include/elf/m68hc11.h include/elf/m68k.h include/elf/mcore.h include/elf/mep.h include/elf/microblaze.h include/elf/mips.h include/elf/mmix.h include/elf/mn10200.h include/elf/mn10300.h include/elf/moxie.h include/elf/msp430.h include/elf/mt.h include/elf/openrisc.h include/elf/or32.h include/elf/pj.h include/elf/ppc.h include/elf/ppc64.h include/elf/reloc-macros.h include/elf/rl78.h include/elf/rx.h include/elf/s390.h include/elf/score.h include/elf/sh.h include/elf/sparc.h include/elf/spu.h include/elf/tic6x-attrs.h include/elf/tic6x.h include/elf/tilegx.h include/elf/tilepro.h include/elf/v850.h include/elf/vax.h include/elf/vxworks.h include/elf/x86-64.h include/elf/xc16x.h include/elf/xstormy16.h include/elf/xtensa.h include/fibheap.h include/filenames.h include/floatformat.h include/fnmatch.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/fileio.h include/gdb/remote-sim.h include/gdb/signals.def include/gdb/signals.h include/gdb/sim-arm.h include/gdb/sim-bfin.h include/gdb/sim-cr16.h include/gdb/sim-d10v.h include/gdb/sim-frv.h include/gdb/sim-h8300.h include/gdb/sim-lm32.h include/gdb/sim-m32c.h include/gdb/sim-ppc.h include/gdb/sim-rx.h include/gdb/sim-sh.h include/gdbm.h include/getopt.h include/hashtab.h include/hp-symtab.h include/ieee.h include/libiberty.h include/lto-symtab.h include/mach-o/ChangeLog include/mach-o/external.h include/mach-o/loader.h include/mach-o/reloc.h include/mach-o/x86-64.h include/md5.h include/nlm/ChangeLog include/nlm/alpha-ext.h include/nlm/common.h include/nlm/external.h include/nlm/i386-ext.h include/nlm/internal.h include/nlm/ppc-ext.h include/nlm/sparc32-ext.h include/oasys.h include/objalloc.h include/obstack.h include/opcode/ChangeLog include/opcode/ChangeLog-9103 include/opcode/alpha.h include/opcode/arc.h include/opcode/arm.h include/opcode/avr.h include/opcode/bfin.h include/opcode/cgen.h include/opcode/convex.h include/opcode/cr16.h include/opcode/cris.h include/opcode/crx.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/dlx.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/i960.h include/opcode/ia64.h include/opcode/m68hc11.h include/opcode/m68k.h include/opcode/m88k.h include/opcode/mips.h include/opcode/mmix.h include/opcode/mn10200.h include/opcode/mn10300.h include/opcode/moxie.h include/opcode/msp430.h include/opcode/np1.h include/opcode/ns32k.h include/opcode/or32.h include/opcode/pdp11.h include/opcode/pj.h include/opcode/pn.h include/opcode/ppc.h include/opcode/pyr.h include/opcode/rl78.h include/opcode/rx.h include/opcode/s390.h include/opcode/score-datadep.h include/opcode/score-inst.h include/opcode/sparc.h include/opcode/spu-insns.h include/opcode/spu.h include/opcode/tahoe.h include/opcode/tic30.h include/opcode/tic4x.h include/opcode/tic54x.h include/opcode/tic6x-control-registers.h include/opcode/tic6x-insn-formats.h include/opcode/tic6x-opcode-table.h include/opcode/tic6x.h include/opcode/tic80.h include/opcode/tilegx.h include/opcode/tilepro.h include/opcode/v850.h include/opcode/vax.h include/os9k.h include/partition.h include/plugin-api.h include/progress.h include/safe-ctype.h include/sha1.h include/simple-object.h include/som/ChangeLog include/som/aout.h include/som/clock.h include/som/internal.h include/som/lst.h include/som/reloc.h include/sort.h include/splay-tree.h include/symcat.h include/timeval-utils.h include/vms/ChangeLog include/vms/dcx.h include/vms/dmt.h include/vms/dsc.h include/vms/dst.h include/vms/eeom.h include/vms/egps.h include/vms/egsd.h include/vms/egst.h include/vms/egsy.h include/vms/eiaf.h include/vms/eicp.h include/vms/eidc.h include/vms/eiha.h include/vms/eihd.h include/vms/eihi.h include/vms/eihs.h include/vms/eihvn.h include/vms/eisd.h include/vms/emh.h include/vms/eobjrec.h include/vms/esdf.h include/vms/esdfm.h include/vms/esdfv.h include/vms/esgps.h include/vms/esrf.h include/vms/etir.h include/vms/internal.h include/vms/lbr.h include/vms/prt.h include/vms/shl.h include/xregex.h include/xregex2.h include/xtensa-config.h include/xtensa-isa-internal.h include/xtensa-isa.h texinfo/texinfo.tex
-rw-r--r--COPYING.LIBGLOSS37
-rw-r--r--ChangeLog8
-rw-r--r--config/ChangeLog15
-rw-r--r--config/acx.m48
-rw-r--r--config/warnings.m424
-rwxr-xr-xconfigure2
-rwxr-xr-xdjunpack.bat52
-rw-r--r--include/COPYING340
-rw-r--r--include/COPYING3674
-rw-r--r--include/ChangeLog1612
-rw-r--r--include/ChangeLog-91032682
-rw-r--r--include/MAINTAINERS1
-rw-r--r--include/alloca-conf.h45
-rw-r--r--include/ansidecl.h434
-rw-r--r--include/aout/ChangeLog253
-rw-r--r--include/aout/adobe.h314
-rw-r--r--include/aout/aout64.h516
-rw-r--r--include/aout/ar.h55
-rw-r--r--include/aout/dynix3.h87
-rw-r--r--include/aout/encap.h135
-rw-r--r--include/aout/host.h43
-rw-r--r--include/aout/hp.h83
-rw-r--r--include/aout/hp300hpux.h132
-rw-r--r--include/aout/hppa.h7
-rw-r--r--include/aout/ranlib.h63
-rw-r--r--include/aout/reloc.h67
-rw-r--r--include/aout/stab.def283
-rw-r--r--include/aout/stab_gnu.h55
-rw-r--r--include/aout/sun4.h239
-rw-r--r--include/bfdlink.h816
-rw-r--r--include/binary-io.h62
-rw-r--r--include/bout.h192
-rw-r--r--include/cgen/ChangeLog10
-rw-r--r--include/cgen/basic-modes.h52
-rw-r--r--include/cgen/basic-ops.h347
-rw-r--r--include/cgen/bitset.h56
-rw-r--r--include/coff/ChangeLog348
-rw-r--r--include/coff/ChangeLog-91031177
-rw-r--r--include/coff/alpha.h386
-rw-r--r--include/coff/apollo.h125
-rw-r--r--include/coff/arm.h128
-rw-r--r--include/coff/aux-coff.h49
-rw-r--r--include/coff/ecoff.h411
-rw-r--r--include/coff/external.h269
-rw-r--r--include/coff/go32exe.h36
-rw-r--r--include/coff/h8300.h55
-rw-r--r--include/coff/h8500.h47
-rw-r--r--include/coff/i386.h74
-rw-r--r--include/coff/i860.h87
-rw-r--r--include/coff/i960.h320
-rw-r--r--include/coff/ia64.h89
-rw-r--r--include/coff/internal.h828
-rw-r--r--include/coff/m68k.h82
-rw-r--r--include/coff/m88k.h197
-rw-r--r--include/coff/mcore.h72
-rw-r--r--include/coff/mips.h344
-rw-r--r--include/coff/mipspe.h67
-rw-r--r--include/coff/or32.h288
-rw-r--r--include/coff/pe.h512
-rw-r--r--include/coff/powerpc.h59
-rw-r--r--include/coff/rs6000.h293
-rw-r--r--include/coff/rs6k64.h275
-rw-r--r--include/coff/sh.h148
-rw-r--r--include/coff/sparc.h156
-rw-r--r--include/coff/sym.h484
-rw-r--r--include/coff/symconst.h184
-rw-r--r--include/coff/ti.h558
-rw-r--r--include/coff/tic30.h51
-rw-r--r--include/coff/tic4x.h47
-rw-r--r--include/coff/tic54x.h60
-rw-r--r--include/coff/tic80.h123
-rw-r--r--include/coff/w65.h47
-rw-r--r--include/coff/we32k.h62
-rw-r--r--include/coff/x86_64.h57
-rw-r--r--include/coff/xcoff.h643
-rw-r--r--include/coff/z80.h60
-rw-r--r--include/coff/z8k.h49
-rw-r--r--include/demangle.h655
-rw-r--r--include/dis-asm.h372
-rw-r--r--include/dwarf2.h922
-rw-r--r--include/dyn-string.h73
-rw-r--r--include/elf/ChangeLog1547
-rw-r--r--include/elf/ChangeLog-91031948
-rw-r--r--include/elf/alpha.h131
-rw-r--r--include/elf/arc.h57
-rw-r--r--include/elf/arm.h338
-rw-r--r--include/elf/avr.h82
-rw-r--r--include/elf/bfin.h95
-rw-r--r--include/elf/common.h959
-rw-r--r--include/elf/cr16.h62
-rw-r--r--include/elf/cr16c.h258
-rw-r--r--include/elf/cris.h193
-rw-r--r--include/elf/crx.h53
-rw-r--r--include/elf/d10v.h38
-rw-r--r--include/elf/d30v.h42
-rw-r--r--include/elf/dlx.h53
-rw-r--r--include/elf/dwarf.h323
-rwxr-xr-xinclude/elf/epiphany.h59
-rw-r--r--include/elf/external.h288
-rw-r--r--include/elf/fr30.h42
-rw-r--r--include/elf/frv.h130
-rw-r--r--include/elf/h8.h100
-rw-r--r--include/elf/hppa.h635
-rw-r--r--include/elf/i370.h61
-rw-r--r--include/elf/i386.h79
-rw-r--r--include/elf/i860.h66
-rw-r--r--include/elf/i960.h37
-rw-r--r--include/elf/ia64.h412
-rw-r--r--include/elf/internal.h360
-rw-r--r--include/elf/ip2k.h62
-rw-r--r--include/elf/iq2000.h58
-rw-r--r--include/elf/lm32.h56
-rw-r--r--include/elf/m32c.h67
-rw-r--r--include/elf/m32r.h123
-rw-r--r--include/elf/m68hc11.h95
-rw-r--r--include/elf/m68k.h102
-rw-r--r--include/elf/mcore.h47
-rw-r--r--include/elf/mep.h95
-rw-r--r--include/elf/microblaze.h63
-rw-r--r--include/elf/mips.h1119
-rw-r--r--include/elf/mmix.h173
-rw-r--r--include/elf/mn10200.h40
-rw-r--r--include/elf/mn10300.h71
-rw-r--r--include/elf/moxie.h32
-rw-r--r--include/elf/msp430.h58
-rw-r--r--include/elf/mt.h46
-rw-r--r--include/elf/openrisc.h39
-rw-r--r--include/elf/or32.h56
-rw-r--r--include/elf/pj.h44
-rw-r--r--include/elf/ppc.h202
-rw-r--r--include/elf/ppc64.h177
-rw-r--r--include/elf/reloc-macros.h129
-rw-r--r--include/elf/rl78.h118
-rw-r--r--include/elf/rx.h135
-rw-r--r--include/elf/s390.h129
-rw-r--r--include/elf/score.h130
-rw-r--r--include/elf/sh.h250
-rw-r--r--include/elf/sparc.h216
-rw-r--r--include/elf/spu.h61
-rw-r--r--include/elf/tic6x-attrs.h35
-rw-r--r--include/elf/tic6x.h167
-rw-r--r--include/elf/tilegx.h162
-rw-r--r--include/elf/tilepro.h128
-rw-r--r--include/elf/v850.h151
-rw-r--r--include/elf/vax.h51
-rw-r--r--include/elf/vxworks.h33
-rw-r--r--include/elf/x86-64.h89
-rw-r--r--include/elf/xc16x.h40
-rw-r--r--include/elf/xstormy16.h57
-rw-r--r--include/elf/xtensa.h208
-rw-r--r--include/fibheap.h95
-rw-r--r--include/filenames.h91
-rw-r--r--include/floatformat.h151
-rw-r--r--include/fnmatch.h70
-rw-r--r--include/fopen-bin.h27
-rw-r--r--include/fopen-same.h27
-rw-r--r--include/fopen-vms.h24
-rw-r--r--include/gdb/ChangeLog234
-rw-r--r--include/gdb/callback.h333
-rw-r--r--include/gdb/fileio.h144
-rw-r--r--include/gdb/remote-sim.h288
-rw-r--r--include/gdb/signals.def200
-rw-r--r--include/gdb/signals.h60
-rw-r--r--include/gdb/sim-arm.h113
-rw-r--r--include/gdb/sim-bfin.h82
-rw-r--r--include/gdb/sim-cr16.h106
-rw-r--r--include/gdb/sim-d10v.h142
-rw-r--r--include/gdb/sim-frv.h51
-rw-r--r--include/gdb/sim-h8300.h78
-rw-r--r--include/gdb/sim-lm32.h76
-rw-r--r--include/gdb/sim-m32c.h63
-rw-r--r--include/gdb/sim-ppc.h773
-rw-r--r--include/gdb/sim-rx.h56
-rw-r--r--include/gdb/sim-sh.h170
-rw-r--r--include/gdbm.h91
-rw-r--r--include/getopt.h144
-rw-r--r--include/hashtab.h209
-rw-r--r--include/hp-symtab.h1867
-rw-r--r--include/ieee.h165
-rw-r--r--include/libiberty.h686
-rw-r--r--include/lto-symtab.h41
-rw-r--r--include/mach-o/ChangeLog19
-rw-r--r--include/mach-o/external.h273
-rw-r--r--include/mach-o/loader.h345
-rw-r--r--include/mach-o/reloc.h53
-rw-r--r--include/mach-o/x86-64.h37
-rw-r--r--include/md5.h149
-rw-r--r--include/nlm/ChangeLog110
-rw-r--r--include/nlm/alpha-ext.h167
-rw-r--r--include/nlm/common.h123
-rw-r--r--include/nlm/external.h172
-rw-r--r--include/nlm/i386-ext.h117
-rw-r--r--include/nlm/internal.h309
-rw-r--r--include/nlm/ppc-ext.h164
-rw-r--r--include/nlm/sparc32-ext.h121
-rw-r--r--include/oasys.h192
-rw-r--r--include/objalloc.h115
-rw-r--r--include/obstack.h545
-rw-r--r--include/opcode/ChangeLog1467
-rw-r--r--include/opcode/ChangeLog-91033121
-rw-r--r--include/opcode/alpha.h238
-rw-r--r--include/opcode/arc.h322
-rw-r--r--include/opcode/arm.h261
-rw-r--r--include/opcode/avr.h293
-rwxr-xr-xinclude/opcode/bfin.h1761
-rw-r--r--include/opcode/cgen.h1480
-rw-r--r--include/opcode/convex.h1708
-rw-r--r--include/opcode/cr16.h438
-rw-r--r--include/opcode/cris.h367
-rw-r--r--include/opcode/crx.h419
-rw-r--r--include/opcode/d10v.h209
-rw-r--r--include/opcode/d30v.h288
-rw-r--r--include/opcode/dlx.h283
-rw-r--r--include/opcode/h8300.h1894
-rw-r--r--include/opcode/hppa.h1092
-rw-r--r--include/opcode/i370.h267
-rw-r--r--include/opcode/i386.h145
-rw-r--r--include/opcode/i860.h507
-rw-r--r--include/opcode/i960.h525
-rw-r--r--include/opcode/ia64.h413
-rw-r--r--include/opcode/m68hc11.h428
-rw-r--r--include/opcode/m68k.h378
-rw-r--r--include/opcode/m88k.h455
-rw-r--r--include/opcode/mips.h1739
-rw-r--r--include/opcode/mmix.h187
-rw-r--r--include/opcode/mn10200.h111
-rw-r--r--include/opcode/mn10300.h170
-rw-r--r--include/opcode/moxie.h72
-rw-r--r--include/opcode/msp430.h126
-rw-r--r--include/opcode/np1.h421
-rw-r--r--include/opcode/ns32k.h487
-rw-r--r--include/opcode/or32.h181
-rw-r--r--include/opcode/pdp11.h84
-rw-r--r--include/opcode/pj.h49
-rw-r--r--include/opcode/pn.h283
-rw-r--r--include/opcode/ppc.h365
-rw-r--r--include/opcode/pyr.h305
-rw-r--r--include/opcode/rl78.h168
-rw-r--r--include/opcode/rx.h215
-rw-r--r--include/opcode/s390.h153
-rw-r--r--include/opcode/score-datadep.h65
-rw-r--r--include/opcode/score-inst.h236
-rw-r--r--include/opcode/sparc.h258
-rw-r--r--include/opcode/spu-insns.h417
-rw-r--r--include/opcode/spu.h125
-rw-r--r--include/opcode/tahoe.h213
-rw-r--r--include/opcode/tic30.h691
-rw-r--r--include/opcode/tic4x.h1079
-rw-r--r--include/opcode/tic54x.h163
-rw-r--r--include/opcode/tic6x-control-registers.h56
-rw-r--r--include/opcode/tic6x-insn-formats.h198
-rw-r--r--include/opcode/tic6x-opcode-table.h2549
-rw-r--r--include/opcode/tic6x.h613
-rw-r--r--include/opcode/tic80.h283
-rw-r--r--include/opcode/tilegx.h1302
-rw-r--r--include/opcode/tilepro.h1636
-rw-r--r--include/opcode/v850.h207
-rw-r--r--include/opcode/vax.h383
-rw-r--r--include/os9k.h181
-rw-r--r--include/partition.h82
-rw-r--r--include/plugin-api.h400
-rw-r--r--include/progress.h38
-rw-r--r--include/safe-ctype.h150
-rw-r--r--include/sha1.h141
-rw-r--r--include/simple-object.h204
-rw-r--r--include/som/ChangeLog7
-rw-r--r--include/som/aout.h249
-rw-r--r--include/som/clock.h30
-rw-r--r--include/som/internal.h206
-rw-r--r--include/som/lst.h93
-rw-r--r--include/som/reloc.h79
-rw-r--r--include/sort.h48
-rw-r--r--include/splay-tree.h168
-rw-r--r--include/symcat.h55
-rw-r--r--include/timeval-utils.h40
-rw-r--r--include/vms/ChangeLog70
-rw-r--r--include/vms/dcx.h50
-rw-r--r--include/vms/dmt.h48
-rw-r--r--include/vms/dsc.h129
-rw-r--r--include/vms/dst.h274
-rw-r--r--include/vms/eeom.h62
-rw-r--r--include/vms/egps.h64
-rw-r--r--include/vms/egsd.h60
-rw-r--r--include/vms/egst.h39
-rw-r--r--include/vms/egsy.h54
-rw-r--r--include/vms/eiaf.h80
-rw-r--r--include/vms/eicp.h38
-rw-r--r--include/vms/eidc.h49
-rw-r--r--include/vms/eiha.h54
-rw-r--r--include/vms/eihd.h145
-rw-r--r--include/vms/eihi.h50
-rw-r--r--include/vms/eihs.h62
-rw-r--r--include/vms/eihvn.h58
-rw-r--r--include/vms/eisd.h118
-rw-r--r--include/vms/emh.h79
-rw-r--r--include/vms/eobjrec.h48
-rw-r--r--include/vms/esdf.h41
-rw-r--r--include/vms/esdfm.h49
-rw-r--r--include/vms/esdfv.h49
-rw-r--r--include/vms/esgps.h72
-rw-r--r--include/vms/esrf.h36
-rw-r--r--include/vms/etir.h114
-rw-r--r--include/vms/internal.h63
-rw-r--r--include/vms/lbr.h329
-rw-r--r--include/vms/prt.h43
-rw-r--r--include/vms/shl.h55
-rw-r--r--include/xregex.h29
-rw-r--r--include/xregex2.h565
-rw-r--r--include/xtensa-config.h177
-rw-r--r--include/xtensa-isa-internal.h234
-rw-r--r--include/xtensa-isa.h813
-rw-r--r--texinfo/texinfo.tex9291
312 files changed, 82 insertions, 94429 deletions
diff --git a/COPYING.LIBGLOSS b/COPYING.LIBGLOSS
index 5e7897860..6f68cf2fc 100644
--- a/COPYING.LIBGLOSS
+++ b/COPYING.LIBGLOSS
@@ -285,3 +285,40 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+(16) - GPL with exception (sparc-*leon*, crx-*, cr16-* targets only)
+
+ Copyright (C) 1992 Free Software Foundation, Inc.
+ Written By David Vinayak Henkel-Wallace, June 1992
+
+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, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file with other programs, and to distribute
+those programs without any restriction coming from the use of this
+file. (The General Public License restrictions do apply in other
+respects; for example, they cover modification of the file, and
+distribution when not linked into another program.)
+
+This file 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; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
+
+ As a special exception, if you link this library with files
+ compiled with GCC to produce an executable, this does not cause
+ the resulting executable to be covered by the GNU General Public License.
+ This exception does not however invalidate any other reasons why
+ the executable file might be covered by the GNU General Public License.
+
+
diff --git a/ChangeLog b/ChangeLog
index 27e4379e2..265f82871 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * configure: Regenerate.
+
+2011-12-15 Jeff Johnston <jjohnstn@redhat.com>
+
+ * COPYING.LIBGLOSS: Add GPL with exception license.
+
2011-11-09 Roland McGrath <mcgrathr@google.com>
* configure.ac: Add tool checks for READELF and READELF_FOR_TARGET.
diff --git a/config/ChangeLog b/config/ChangeLog
index ea203bc06..1087ad8ca 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,18 @@
+2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in
+ expr call.
+
+2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
+
+ * warnings.m4 (ACX_PROG_CC_WARNING_OPTS)
+ (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Run the test without the
+ no- prefix.
+
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * acx.m4 (Test for GNAT): Update comment and add quotes in final test.
+
2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove.
diff --git a/config/acx.m4 b/config/acx.m4
index b559c03eb..9ff31eb85 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -356,9 +356,9 @@ m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD]))
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# Test for GNAT.
-# We require the gnatbind program, and a compiler driver that
-# understands Ada. We use the user's CC setting, already found,
-# and possibly add $1 to the command-line parameters.
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
+# that understands Ada. We use the user's CC setting, already found, and
+# possibly add $1 to the command-line parameters.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
# substitutes GNATBIND and GNATMAKE.
@@ -387,7 +387,7 @@ if test x"$errors" = x && test -f conftest.$ac_objext; then
fi
rm -f conftest.*])
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
diff --git a/config/warnings.m4 b/config/warnings.m4
index 3801c856b..b64b594e6 100644
--- a/config/warnings.m4
+++ b/config/warnings.m4
@@ -1,6 +1,6 @@
# Autoconf include file defining macros related to compile-time warnings.
-# Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Copyright 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -28,7 +28,13 @@ AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
save_CFLAGS="$CFLAGS"
-for option in $1; do
+for real_option in $1; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option])
AC_CACHE_CHECK([whether $CC supports $option], acx_Woption,
[CFLAGS="$option"
@@ -37,14 +43,14 @@ for option in $1; do
[AS_VAR_SET(acx_Woption, no)])
])
AS_IF([test AS_VAR_GET(acx_Woption) = yes],
- [acx_Var="$acx_Var${acx_Var:+ }$option"])
+ [acx_Var="$acx_Var${acx_Var:+ }$real_option"])
AS_VAR_POPDEF([acx_Woption])dnl
done
CFLAGS="$save_CFLAGS"
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_OPTS
-# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC)
+# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC])
# Append to VARIABLE "-pedantic" + the argument, if the compiler is GCC
# and accepts all of those options simultaneously, otherwise to nothing.
AC_DEFUN([ACX_PROG_CC_WARNING_ALMOST_PEDANTIC],
@@ -53,11 +59,14 @@ m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl
AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
-AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_$1])dnl
+# Do the check with the no- prefix removed from the warning options
+# since gcc silently accepts any -Wno-* option on purpose
+m4_pushdef([acx_Woptions], [m4_bpatsubst([$1], [-Wno-], [-W])])dnl
+AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_]acx_Woptions)dnl
AS_IF([test "$GCC" = yes],
-[AC_CACHE_CHECK([whether $CC supports -pedantic $1], acx_Pedantic,
+[AC_CACHE_CHECK([whether $CC supports -pedantic ]acx_Woptions, acx_Pedantic,
[save_CFLAGS="$CFLAGS"
-CFLAGS="-pedantic $1"
+CFLAGS="-pedantic acx_Woptions"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
[AS_VAR_SET(acx_Pedantic, yes)],
[AS_VAR_SET(acx_Pedantic, no)])
@@ -66,6 +75,7 @@ AS_IF([test AS_VAR_GET(acx_Pedantic) = yes],
[acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"])
])
AS_VAR_POPDEF([acx_Pedantic])dnl
+m4_popdef([acx_Woptions])dnl
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC
diff --git a/configure b/configure
index 9a0086c99..2579c9f75 100755
--- a/configure
+++ b/configure
@@ -4977,7 +4977,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
diff --git a/djunpack.bat b/djunpack.bat
deleted file mode 100755
index 5c6e9b2e3..000000000
--- a/djunpack.bat
+++ /dev/null
@@ -1,52 +0,0 @@
-@echo off
-Rem
-Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
-Rem format, or else stock DOS/Windows shells will refuse to run it.
-Rem
-Rem This batch file unpacks the GDB distribution while simultaneously
-Rem renaming some of the files whose names are invalid on DOS or conflict
-Rem with other file names after truncation to DOS 8+3 namespace.
-Rem
-Rem Invoke like this:
-Rem
-Rem djunpack gdb-XYZ.tar
-Rem
-Rem where XYZ is the version number. If the argument includes leading
-Rem directories, it MUST use backslashes, not forward slashes.
-Rem
-Rem The following 2 lines need to be changed with each new GDB release, to
-Rem be identical to the name of the top-level directory where the GDB
-Rem distribution unpacks itself.
-set GDBVER=gdb-5.0
-if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
-Rem If their environment space is too small, re-exec with a larger one
-command.com /e:4096 /c %0 %1
-GoTo End
-:EnvOk
-if not exist %1 GoTo NoArchive
-djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
-Rem The following uses a feature of COPY whereby it does not copy
-Rem empty files. We need that because the previous line will create
-Rem an empty fnchange.tmp even if the command failed for some reason.
-copy fnchange.tmp junk.tmp > nul
-if not exist junk.tmp GoTo NoDjTar
-del junk.tmp
-sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst
-Rem See the comment above about the reason for using COPY.
-copy fnchange.lst junk.tmp > nul
-if not exist junk.tmp GoTo NoSed
-del junk.tmp
-djtar -x -n fnchange.lst %1
-GoTo End
-:NoSed
-echo FAIL: Sed is not available.
-GoTo End
-:NoDjTar
-echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
-GoTo End
-:NoArchive
-echo FAIL: the file %1 does not seem to exist.
-echo Remember that %1 cannot use forward slashes, only backslashes.
-GoTo End
-:End
-set GDBVER=
diff --git a/include/COPYING b/include/COPYING
deleted file mode 100644
index 623b6258a..000000000
--- a/include/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/include/COPYING3 b/include/COPYING3
deleted file mode 100644
index 94a9ed024..000000000
--- a/include/COPYING3
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- 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 3 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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/include/ChangeLog b/include/ChangeLog
deleted file mode 100644
index 01854a404..000000000
--- a/include/ChangeLog
+++ /dev/null
@@ -1,1612 +0,0 @@
-2011-11-07 Richard Henderson <rth@redhat.com>
-
- Merged from transactional-memory.
-
- * demangle.h (enum gnu_v3_ctor_kinds): Add gnu_v3_object_ctor_group.
- (enum gnu_v3_dtor_kinds): Add gnu_v3_object_dtor_group.
- (DEMANGLE_COMPONENT_TRANSACTION_CLONE): New.
- (DEMANGLE_COMPONENT_NONTRANSACTION_CLONE): New.
-
-2011-11-01 DJ Delorie <dj@redhat.com>
-
- * dis-asm.h (print_insn_rl78): Declare.
-
-2011-10-25 Joern Rennecke <joern.rennecke@embecosm.com>
-
- * dis-asm.h (print_insn_epiphany): Declare.
-
-2011-10-21 Ulrich Drepper <drepper@gmail.com>
-
- * obstack.h [!GNUC] (obstack_free): Avoid cast to int.
-
-2011-10-21 Marc Glisse <marc.glisse@inria.fr>
-
- * ansidecl.h (ENUM_BITFIELD): Always use enum in C++
-
-2011-10-19 Alan Modra <amodra@gmail.com>
-
- PR ld/13254
- * bfdlink.h (struct bfd_link_info): Add error_textrel.
-
-2011-09-28 Doug Evans <dje@google.com>
-
- * timeval-utils.h: New file.
-
- * libiberty.h (countargv): Declare.
-
-2011-09-26 Cary Coutant <ccoutant@google.com>
-
- gcc PR lto/47247
- * plugin-api.h (enum ld_plugin_symbol_resolution): Add
- LDPR_PREVAILING_DEF_IRONLY_EXP.
- (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.
-
-2011-09-23 Cary Coutant <ccoutant@google.com>
-
- PR 40831
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_CLONE.
-
-2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/12975
- * bfdlink.h (bfd_link_info): Add version_info.
-
-2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * xregex.h (regoff_t): Define.
-
-2011-07-22 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DW_AT_GNU_macros): New.
- (enum dwarf_macro_record_type): New enum. Add DW_MACRO_GNU_*.
-
- PR c++/49756
- * libiberty.h (stack_limit_increase): New prototype.
-
-2011-07-13 Sriraman Tallam <tmsriram@google.com>
-
- * plugin-api.h
- (ld_plugin_section): New struct.
- (ld_plugin_get_section_count): New typedef.
- (ld_plugin_get_section_type): New typedef.
- (ld_plugin_get_section_name): New typedef.
- (ld_plugin_get_section_contents): New typedef.
- (ld_plugin_update_section_order): New typedef.
- (ld_plugin_allow_section_ordering): New typedef.
- (LDPT_GET_SECTION_COUNT): New enum value.
- (LDPT_GET_SECTION_TYPE): New enum value.
- (LDPT_GET_SECTION_NAME): New enum value.
- (LDPT_GET_SECTION_CONTENTS): New enum value.
- (LDPT_UPDATE_SECTION_ORDER): New enum value.
- (LDPT_ALLOW_SECTION_ORDERING): New enum value.
- (tv_get_section_count): New struct members.
- (tv_get_section_type): New struct members.
- (tv_get_section_name): New struct members.
- (tv_get_section_contents): New struct members.
- (tv_update_section_order): New struct members.
- (tv_allow_section_ordering): New struct members.
-
-2011-07-15 Alan Modra <amodra@gmail.com>
-
- * bfdlink.h (struct bfd_link_info): Use ENUM_BITFIELD for strip,
- discard, common_skip_ar_symbols, unresolved_syms_in_objects, and
- unresolved_syms_in_shared_libs fields. Move emit_note_gnu_build_id
- out of bitfields. Reorder bitfields.
-
-2011-07-13 Sriraman Tallam <tmsriram@google.com>
-
- * plugin-api.h (ld_plugin_section): New struct.
- (ld_plugin_get_section_count): New typedef.
- (ld_plugin_get_section_type): New typedef.
- (ld_plugin_get_section_name): New typedef.
- (ld_plugin_get_section_contents): New typedef.
- (ld_plugin_update_section_order): New typedef.
- (ld_plugin_allow_section_ordering): New typedef.
- (LDPT_GET_SECTION_COUNT): New enum value.
- (LDPT_GET_SECTION_TYPE): New enum value.
- (LDPT_GET_SECTION_NAME): New enum value.
- (LDPT_GET_SECTION_CONTENTS): New enum value.
- (LDPT_UPDATE_SECTION_ORDER): New enum value.
- (LDPT_ALLOW_SECTION_ORDERING): New enum value.
- (tv_get_section_count): New struct members.
- (tv_get_section_type): New struct members.
- (tv_get_section_name): New struct members.
- (tv_get_section_contents): New struct members.
- (tv_update_section_order): New struct members.
- (tv_allow_section_ordering): New struct members.
-
-2011-07-11 Catherine Moore <clm@codesourcery.com>
-
- * bfdlink.h (flag_type): New enumeration.
- (flag_info_list): New structure.
- (flag_info): New structure.
-
-2011-07-09 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/12942
- * bfdlink.h (bfd_link_info): Add loading_lto_outputs.
-
-2011-07-01 Joel Brobecker <brobecker@adacore.com>
-
- * filenames.h (HAVE_CASE_INSENSITIVE_FILE_SYSTEM): Define
- on Darwin, as well as on the systems that use a DOS-like
- filesystem.
-
-2011-06-22 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/47858
- * dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
-
-2011-06-22 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
-
-2011-06-20 Jakub Jelinek <jakub@redhat.com>
-
- PR ld/12570
- * bfdlink.h (struct bfd_link_info): Add no_ld_generated_unwind_info
- option.
-
-2011-06-13 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * demangle.h (DMGL_RET_POSTFIX): Extend the comment.
- (DMGL_RET_DROP): New.
-
-2011-06-13 Walter Lee <walt@tilera.com>
-
- * dis-asm.h (print_insn_tilegx): Declare.
- (print_insn_tilepro): Likewise.
-
-2011-05-17 Alan Modra <amodra@gmail.com>
-
- PR ld/12760
- * bfdlink.h (struct bfd_link_callbacks <notice>): Add "flags" and
- "string" param.
-
-2011-05-16 Alan Modra <amodra@gmail.com>
-
- * bfdlink.h (struct bfd_link_hash_entry): Remove u.undef.weak field.
-
-2011-05-09 Paul Brook <paul@codesourcery.com>
-
- * elf/tic6x.h (ELF_STRING_C6000_unwind,
- ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once,
- ELF_STRING_C6000_unwind_info_once): Define.
-
-2011-04-30 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
- DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): New.
-
-2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * bfdlink.h (ENUM_BITFIELD): Remove.
-
-2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h.
-
-2011-04-24 Alan Modra <amodra@gmail.com>
-
- PR ld/12365
- PR ld/12696
- * bfdlink.h (ENUM_BITFIELD): Define.
- (struct bfd_link_hash_entry): Make "type" a bitfield. Add "non_ir_ref".
- (struct bfd_link_callbacks <notice>): Pass bfd_link_hash_entry pointer
- rather than "name".
-
-2011-04-20 Alan Modra <amodra@gmail.com>
-
- PR ld/12365
- * bfdlink.h (struct bfd_link_callbacks): Modify multiple_definition
- and multiple_common parameters to pass in a bfd_link_hash_entry
- pointer rather than name,bfd etc. found in the hash entry.
-
-2011-03-31 Tristan Gingold <gingold@adacore.com>
-
- * dwarf2.h (dwarf_line_number_hp_sfc_ops): New enum.
-
-2011-03-24 Mark Wielaard <mjw@redhat.com>
-
- * dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define.
-
-2010-03-23 Rafael Ãvila de Espíndola <respindola@mozilla.com>
-
- * plugin-api.h (ld_plugin_get_view): New.
- (ld_plugin_tag): Add LDPT_GET_VIEW.
- (ld_plugin_tv): Add tv_get_view.
-
-2011-03-16 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
- DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
- DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
- DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
- DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
- DW_OP_GNU_entry_value): New.
-
-2011-02-28 Kai Tietz <kai.tietz@onevision.com>
-
- * filenames.h (filename_ncmp): New prototype.
-
-2011-02-23 Kai Tietz <kai.tietz@onevision.com>
-
- * dwarf2.h (_ELF_DWARF2_H): Renamed to
- _DWARF2_H.
- (DWARF2_External_LineInfo, DWARF2_Internal_LineInfo,
- DWARF2_External_PubNames, DWARF2_Internal_PubNames,
- DWARF2_External_CompUnit, DWARF2_Internal_CompUnit,
- DWARF2_External_ARange, DWARF2_Internal_ARange): Removed.
-
-2011-02-08 Ulrich Weigand <uweigand@de.ibm.com>
-
- * dwarf2.h (enum dwarf_calling_convention): Add DW_CC_GDB_IBM_OpenCL.
-
-2011-01-12 Iain Sandoe <iains@gcc.gnu.org>
-
- * dwarf2.h: Update value for DW_AT_hi_user.
-
-2010-11-16 Ian Lance Taylor <iant@google.com>
-
- * simple-object.h (simple_object_attributes_merge): Declare,
- replacing simple_object_attributes_compare.
-
-2010-11-04 Ian Lance Taylor <iant@google.com>
-
- * dwarf2.h (enum dwarf_source_language): Add DW_LANG_Go.
-
-2010-11-02 Ian Lance Taylor <iant@google.com>
-
- * simple-object.h: New file.
-
-2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com>
-
- Sync LD plugin patch series (part 1/6) with src/include/.
- * plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
-
-2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
-
- Apply LD plugin patch series (part 6/6).
- * bfdlink.h (struct_bfd_link_callbacks): Document new argument
- to add_archive_element callback used to return a replacement bfd which
- is to be added to the hash table in place of the original element.
-
-2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
-
- Apply LD plugin patch series (part 1/6).
- * plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
-
-2010-10-06 Andi Kleen <ak@linux.intel.com>
-
- * libiberty.h (setproctitle): Add prototype.
-
-2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
-
- * opcode/tic6x-control-registers.h (tscl): Now read_write.
-
-2010-09-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * opcode/s390.h: Add S390_OPCODE_Z196 to enum s390_opcode_cpu_val.
-
-2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (ARM_EXT_V6Z): Remove.
- (ARM_EXT_SEC): New define.
- (ARM_AEXT_V6Z): Use Security Extensions.
- (ARM_AEXT_V6ZK): Likeiwse.
- (ARM_AEXT_V6ZT2): Likewise.
- (ARM_AEXT_V6ZKT2): Likewise.
- (ARM_AEXT_V7_ARM): Base v7 does not have Security Extensions.
- (ARM_ARCH_V7A_SEC): New define.
- (ARM_ARCH_V7A_MP): Rename...
- (ARM_ARCH_V7A_MP_SEC): ...to this and add Security Extensions.
-
-2010-09-09 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DW_OP_GNU_implicit_pointer): New.
-
-2010-07-06 Ken Werner <ken.werner@de.ibm.com>
-
- * floatformat.h (floatformat_ieee_half_big): Add declaration.
- (floatformat_ieee_half_little): Likewise.
-
-2010-06-29 Alan Modra <amodra@gmail.com>
-
- * dis-asm.h: Remove references to maxq.
-
-2010-06-21 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h (ld_plugin_set_extra_library_path): New.
- (ld_plugin_tag): Add LDPT_SET_EXTRA_LIBRARY_PATH.
- (ld_plugin_tv): Add tv_set_extra_library_path.
-
-2010-06-21 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (enum dwarf_type): Add DW_ATE_UTF.
-
-2010-06-18 Rafael Espindola <espindola@google.com>
-
- * plugin.h (ld_plugin_add_input_file, ld_plugin_add_input_library):
- Make argument const.
-
-2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
-
- * splay-tree.h: Update copyright years.
- (splay_tree_s): Document fields.
- (splay_tree_new_typed_alloc): New.
-
- * hashtab.h: Update copyright years.
- (htab_create_typed_alloc): New.
-
-2010-06-10 Tristan Gingold <gingold@adacore.com>
-
- * dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
- DW_TAG_HP_Bliss_field_set.
- (enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
- DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
- DW_AT_HP_definition_points, DW_AT_HP_default_location and
- DW_AT_HP_is_result_param.
- (enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
- DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
- DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
- DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
- (enum dwarf_line_number_x_ops): Add
- DW_LNE_HP_source_file_correlation.
- (enum dwarf_source_language): Add DW_LANG_HP_Bliss,
- DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
- DW_LANG_HP_Assembler.
-
-2010-06-01 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h (ld_plugin_tag): Add LDPT_OUTPUT_NAME.
-
-2010-04-26 Pedro Alves <pedro@codesourcery.com>
-
- * filenames.h (PATH_SEPARATOR): Delete.
-
-2010-04-23 Pedro Alves <pedro@codesourcery.com>
-
- * filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR,
- always define it independently of host, add `dos_based' parameter,
- and handle it.
- (PATH_SEPARATOR): Define.
- (HAS_DRIVE_SPEC_1): Rename from HAS_DRIVE_SPEC, always define it
- independently of host, add `dos_based' parameter, and handle it.
- (IS_ABSOLUTE_PATH_1): Rename from IS_ABSOLUTE_PATH, always define
- it independently of host, add `dos_based' parameter, and handle
- it.
- (IS_DOS_DIR_SEPARATOR, IS_DOS_ABSOLUTE_PATH)
- (IS_UNIX_DIR_SEPARATOR, IS_UNIX_ABSOLUTE_PATH)
- (HAS_DOS_DRIVE_SPEC): New.
- (HAS_DRIVE_SPEC): Reimplement on top of HAS_DRIVE_SPEC_1.
- (IS_DIR_SEPARATOR): Reimplement on top of IS_DIR_SEPARATOR_1.
- (IS_ABSOLUTE_PATH): Reimplement on top of IS_ABSOLUTE_PATH_1.
- * libiberty.h (dos_lbasename, unix_lbasename): Declare.
-
-2009-05-31 Ian Lance Taylor <iant@google.com>
-
- * ansidecl.h: Add extern "C" when compiling with C++. Treat C++
- the way we treat an ISO C compiler. Don't define inline as a
- macro when compiling with C++.
- * dyn-string.h: Add header guard DYN_STRING_H. Add extern "C"
- when compiling with C++.
- * fibheap.h: Add extern "C" when compiling with C++.
-
-2010-04-23 Pedro Alves <pedro@codesourcery.com>
-
- * filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR,
- always define it independently of host, add `dos_based' parameter,
- and handle it.
- (HAS_DRIVE_SPEC_1): Rename from HAS_DRIVE_SPEC, always define it
- independently of host, add `dos_based' parameter, and handle it.
- (IS_ABSOLUTE_PATH_1): Rename from IS_ABSOLUTE_PATH, always define
- it independently of host, add `dos_based' parameter, and handle
- it.
- (IS_DOS_DIR_SEPARATOR, IS_DOS_ABSOLUTE_PATH)
- (IS_UNIX_DIR_SEPARATOR, IS_UNIX_ABSOLUTE_PATH)
- (HAS_DOS_DRIVE_SPEC): New.
- (HAS_DRIVE_SPEC): Reimplement on top of HAS_DRIVE_SPEC_1.
- (IS_DIR_SEPARATOR): Reimplement on top of IS_DIR_SEPARATOR_1.
- (IS_ABSOLUTE_PATH): Reimplement on top of IS_ABSOLUTE_PATH_1.
- * libiberty.h (dos_lbasename, unix_lbasename): Declare.
-
-2010-04-20 Nick Clifton <nickc@redhat.com>
-
- * sha1.h: Update copyright notice to use GPLv3.
-
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * bout.h: Update copyright notice to use GPLv3.
- * hp-symtab.h: Likewise.
- * oasys.h: Likewise.
- * progress.h: Likewise.
- * sha1.h: Likewise.
- * xtensa-isa-internal.h: Likewise.
- * xtensa-isa.h: Likewise.
-
-2010-04-14 Doug Evans <dje@google.com>
-
- * filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.
-
-2010-04-05 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DWARF2_Internal_LineInfo): Add li_max_ops_per_insn
- field.
-
-2010-03-25 Joseph Myers <joseph@codesourcery.com>
-
- * dis-asm.h (print_insn_tic6x): Declare.
-
-2010-03-23 Joseph Myers <joseph@codesourcery.com>
-
- * symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define.
-
-2010-01-13 Joel Brobecker <brobecker@adacore.com>
-
- Add new DW_AT_use_GNAT_descriptive_type CU attribute.
- * dwarf2.h (dwarf_attribute): Add DW_AT_use_GNAT_descriptive_type.
-
-2010-01-11 Tristan Gingold <gingold@adacore.com>
-
- * demangle.h (ada_demangle): Add prototype.
-
-2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- PR bootstrap/41771
- * ansidecl.h: Fix inline test for C99 and Sun Studio cc.
-
-2009-12-29 Joel Brobecker <brobecker@adacore.com>
-
- * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNAT_descriptive_type.
-
-2009-12-14 Doug Kwan <dougkwan@google.com>
-
- * bfdlink.h (struct bfd_link_callbacks): Rename function parameters
- to avoid shadowed variable warnings.
- * dis-asm.h (struct disassemble_info): Ditto.
- (disassemble_init_for_target): Ditto.
- (init_disassemble_info): Ditto.
-
-2009-12-03 David Daney <ddaney@caviumnetworks.com>
- Adam Nemet <adambnemet@gmail.com>
-
- * elf/mips.h (E_MIPS_MACH_OCTEON2): New machine flag.
-
-2009-11-18 Alan Modra <amodra@bigpond.net.au>
-
- * alloca-conf.h: Clarify comment.
-
-2009-11-06 Jonas Maebe <jonas.maebe@elis.ugent.be>
-
- Add DWARF attribute value for the "Borland fastcall" calling
- convention.
- * elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant.
-
-2009-10-23 Kai Tietz <kai.tietz@onevision.com>
-
- * splay-tree.h (libi_uhostptr_t): Add gcc specific
- __extension__ for long long type case to silent cX9.
- (libi_shostptr_t): Likewise.
-
-2009-10-19 Rafael Avila de Espindola <espindola@google.com>
-
- PR40790
- * plugin-api.h: Don't include stdint.h unconditionally.
-
-2009-10-15 Jakub Jelinek <jakub@redhat.com>
-
- * include/dwarf2.h (DW_LANG_Python): Add comment that it is
- a DWARF 4 addition.
-
-2009-10-14 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (enum bfd_link_common_skip_ar_symbols): Rename from
- bfd_link_common_skip_ar_aymbols.
- (struct bfd_link_info): Here too.
-
-2009-10-09 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h (ld_plugin_add_input_library): Change argument name to
- libname.
-
-2008-10-03 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h: New.
- * lto-symtab.h: New.
-
-2009-10-05 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h (ld_plugin_status): Add LDPS_BAD_HANDLE.
- (ld_plugin_get_input_file): New.
- (ld_plugin_release_input_file): New.
- (ld_plugin_add_input_library): New.
- (ld_plugin_message): Mark format const.
- (ld_plugin_level): Add LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE and
- LDPT_ADD_INPUT_LIBRARY.
- (ld_plugin_tv): Add tv_get_input_file, tv_release_input_file and
- tv_add_input_library.
-
-2009-10-04 Jerry Quinn <jlquinn@optonline.net>
-
- * plugin-api.h: Fix compile.
-
-2009-09-29 Jason Merrill <jason@redhat.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_LAMBDA, DEMANGLE_COMPONENT_DEFAULT_ARG,
- DEMANGLE_COMPONENT_UNNAMED_TYPE.
- (struct demangle_component): Add s_unary_num.
-
-2009-09-29 DJ Delorie <dj@redhat.com>
-
- * dis-asm.h: Add prototype for print_insn_rx.
-
-2009-09-25 Dodji Seketeli <dodji@redhat.com>
-
- * dwarf2.h (enum dwarf_tag): Rename DW_TAG_template_parameter_pack and
- DW_TAG_formal_parameter_pack into DW_TAG_GNU_template_parameter_pack
- and DW_TAG_formal_parameter_pack until DWARF 5 is out.
-
-2009-09-25 Cary Coutant <ccoutant@google.com>
-
- Add rest of new values from DWARF Version 4.
- * dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
- New tags.
- (DW_FORM_ref_sig8): New name for DW_FORM_sig8.
- (DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
- DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
- DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
- DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
- DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
- attributes.
- (DW_LANG_Python): New language.
-
-2009-09-24 Cary Coutant <ccoutant@google.com>
-
- * dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
- New tags.
- (DW_FORM_ref_sig8): New name for DW_FORM_sig8.
- (DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
- DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
- DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
- DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
- DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
- attributes.
- (DW_LANG_Python): New language.
-
-2009-09-22 Dodji Seketeli <dodji@redhat.com>
-
- * dwarf2.h (enum dwarf_tag): Add
- DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack.
-
-2009-09-09 Martin Thuresson <martin@mtme.org>
-
- * bfdlink.h (struct bfd_link_hash_common_entry): Move to top
- level.
-
-2009-09-04 Jie Zhang <jie.zhang@analog.com>
-
- * opcode/bfin.h (PseudoDbg_Assert): Add bits_grp and mask_grp.
- (PseudoDbg_Assert_grp_bits, PseudoDbg_Assert_grp_mask): Define.
- (PseudoDbg_Assert_dbgop_bits, PseudoDbg_Assert_dbgop_mask,
- PseudoDbg_Assert_dontcare_bits, PseudoDbg_Assert_dontcare_mask):
- Adjust accordingly.
- (init_PseudoDbg_Assert): Add PseudoDbg_Assert_grp_bits and
- PseudoDbg_Assert_grp_mask.
-
-2009-08-06 Michael Eager <eager@eagercon.com>
-
- * dis-asm.h: Decl print_insn_microblaze().
-
-2009-07-24 Ian Lance Taylor <iant@google.com>
-
- * libiberty.h (crc32): Declare.
-
-2009-07-20 Cary Coutant <ccoutant@google.com>
- Doug Evans <dje@google.com>
-
- Add some dwarf4 values.
- * dwarf2.h (enum dwarf_tag): Add DW_TAG_type_unit.
- (enum dwarf_form): Add DW_FORM_sec_offset, DW_FORM_exprloc,
- DW_FORM_flag_present, DW_FORM_sig8.
- (enum dwarf_attribute): Add DW_AT_signature.
-
-2009-07-17 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * demangle.h
- (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
- (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>):
- New.
-
-2009-07-10 Tom Tromey <tromey@redhat.com>
-
- * dwarf2.h: New file, moved from elf/.
-
-2009-07-09 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
- and DW_OP_stack_value.
-
-2009-07-09 Tom Tromey <tromey@redhat.com>
-
- * elf/dwarf2.h: Remove, renaming to...
- * dwarf2.h: ... this.
-
-2009-06-29 Tom Tromey <tromey@redhat.com>
-
- * elf/dwarf2.h: New file. Merged with gdb.
-
-2009-06-18 Nick Clifton <nickc@redhat.com>
-
- * dis-asm.h (USER_SPECIFIED_MACHINE_TYPE): New value for the flags
- field of struct disassemble_info.
-
-2009-06-09 Ian Lance Taylor <ian@airs.com>
-
- * ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define for C++.
-
-2009-06-15 Nick Clifton <nickc@redhat.com>
-
- * dis-asm.h (DISASSEMBLE_DATA): New value for the flags field of
- struct disassemble_info.
-
-2009-06-02 Ian Lance Taylor <iant@google.com>
-
- * ansidecl.h (EXPORTED_CONST): Define.
-
-2009-05-31 Ian Lance Taylor <iant@google.com>
-
- * ansidecl.h: Add extern "C" when compiling with C++. Treat C++
- the way we treat an ISO C compiler. Don't define inline as a
- macdro when compiling with C++.
- * dyn-string.h: Add header guard DYN_STRING_H. Add extern "C"
- when compiling with C++.
- * fibheap.h: Add extern "C" when compiling with C++.
-
-2009-05-25 Tristan Gingold <gingold@adacore.com>
-
- * fopen-vms.h (FOPEN_RB, FOPEN_WB, FOPEN_AB, FOPEN_RUB, FOPEN_WUB,
- FOPEN_AUB): Use "rfm=udf,rat=none" attribute.
-
-2009-04-22 Taras Glek <tglek@mozilla.com>
-
- * hashtab.h: Update GTY annotations to new syntax.
- * splay-tree.h: Likewise.
-
-2009-04-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_link_info): Add warn_alternate_em.
-
-2009-03-18 Alan Modra <amodra@bigpond.net.au>
-
- * alloca-conf.h: Revise based on autoconf-2.61, autoconf-2.13
- documentation.
-
-2009-03-17 Jason Merrill <jason@redhat.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_FUNCTION_PARAM.
-
-2008-12-01 Cary Coutant <ccoutant@google.com>
-
- * plugin-api.h (LDPS_BAD_HANDLE): New constant.
- (ld_plugin_get_input_file): New typedef.
- (ld_plugin_release_input_file): New typedef.
- (LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE): New constants.
- (struct ld_plugin_tv): Add two new fields.
-
-2008-12-23 Jon Beniston <jon@beniston.com>
-
- * dis-asm.h: Add LM32 disassembler function prototype.
-
-2008-12-10 Jason Merrill <jason@redhat.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_FIXED_TYPE.
-
-2008-12-01 Cary Coutant <ccoutant@google.com>
-
- * plugin-api.h (ld_plugin_message): Change format parameter to const.
-
-2008-12-01 Cary Coutant <ccoutant@google.com>
-
- * plugin-api.h: Fix syntax error when compiling with C++.
-
-2008-11-26 Alan Modra <amodra@bigpond.net.au>
-
- PR 7047
- * bfdlink.h (struct bfd_elf_version_expr): Delete "symbol".
- Add "literal".
-
-2008-11-21 Sterling Augustine <sterling@tensilica.com>
-
- * xtensa-isa-internal.h (XTENSA_STATE_IS_SHARED_OR): New flag.
- * xtensa-isa.h (xtensa_state_is_shared_or): New prototype.
-
-2008-11-19 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32)
- (XCHAL_HAVE_MINMAX, XCHAL_HAVE_SEXT, XCHAL_HAVE_THREADPTR)
- (XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): Change to 1.
- (XCHAL_NUM_AREGS): Change to 32.
- (XCHAL_ICACHE_SIZE, XCHAL_DCACHE_SIZE): Change to 16K.
- (XCHAL_ICACHE_LINESIZE, XCHAL_DCACHE_LINESIZE): Change to 32.
- (XCHAL_ICACHE_LINEWIDTH, XCHAL_DCACHE_LINEWIDTH): Change to 5.
- (XCHAL_DCACHE_IS_WRITEBACK): Change to 1.
- (XCHAL_DEBUGLEVEL): Change to 6.
-
-2008-11-14 Tristan Gingold <gingold@adacore.com>
-
- * fopen-vms.h (FOPEN_RB): Use a single string to match the
- standard prototype.
- (FOPEN_WB): Ditto.
- (FOPEN_AB): Ditto.
- (FOPEN_RUB): Ditto.
- (FOPEN_WUB): Ditto.
- (FOPEN_AUB): Ditto.
-
-2008-10-21 Alan Modra <amodra@bigpond.net.au>
-
- * obstack.h (obstack_finish <!__GNUC__>): Cast result to void *.
-
-2008-10-06 Jason Merrill <jason@redhat.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_PACK_EXPANSION.
-
-2008-09-24 Richard Henderson <rth@redhat.com>
-
- * elf/dwarf2.h (DW_OP_GNU_encoded_addr): New.
-
-2008-09-22 Rafael Espindola <espindola@google.com>
-
- * plugin-api.h (ld_plugin_status): Remove comma from the last item.
- Use C style comment.
- (ld_plugin_api_version, ld_plugin_output_file_type,
- ld_plugin_symbol_kind, ld_plugin_symbol_visibility,
- ld_plugin_symbol_resolution, ld_plugin_level, ld_plugin_tag): Remove
- comma from the last item.
-
-2008-09-18 Cary Coutant <ccoutant@google.com>
-
- Add plugin functionality for link-time optimization (LTO).
- * plugin-api.h: New file.
-
-2008-09-09 Jason Merrill <jason@redhat.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_DECLTYPE.
-
-2008-08-25 Alan Modra <amodra@bigpond.net.au>
-
- * binary-io.h: New file, imported from gnulib, but don't
- #include <fcntl.h> or <stdio.h>.
-
-2008-08-17 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (bfd_generic_link_read_symbols): Declare.
-
-2008-08-08 Anatoly Sokolov <aesok@post.ru>
-
- * elf/avr.h (E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
- E_AVR_MACH_AVR35, E_AVR_MACH_AVR51): Define.
- (EF_AVR_MACH): Redefine to 0x7F.
- * opcode/avr.h (AVR_ISA_TINY3, AVR_ISA_ALL, AVR_ISA_USB162): Remove.
- (AVR_ISA_AVR3): Redefine.
- (AVR_ISA_AVR1, AVR_ISA_AVR2, AVR_ISA_AVR31, AVR_ISA_AVR35,
- AVR_ISA_AVR3_ALL, AVR_ISA_AVR4, AVR_ISA_AVR5, AVR_ISA_AVR51,
- AVR_ISA_AVR6): Define.
-
-2008-07-12 Jie Zhang <jie.zhang@analog.com>
-
- Revert
- 2008-07-12 Jie Zhang <jie.zhang@analog.com>
- * bfdlink.h (struct bfd_link_info): Add sep_code member
- variable.
- * elf/bfin.h (EF_BFIN_CODE_IN_L1): Define.
- (EF_BFIN_DATA_IN_L1): Define.
-
-2008-07-12 Jie Zhang <jie.zhang@analog.com>
-
- * bfdlink.h (struct bfd_link_info): Add sep_code member
- variable.
- * elf/bfin.h (EF_BFIN_CODE_IN_L1): Define.
- (EF_BFIN_DATA_IN_L1): Define.
-
-2008-07-07 Stan Shebs <stan@codesourcery.com>
-
- * dis-asm.h (struct disassemble_info): Add endian_code field.
-
-2008-07-07 Joel Brobecker <brobecker@adacore.com>
-
- * safe-ctype.h: Add #include of ctype.h before redefining
- the ctype.h macros.
-
-2008-07-04 Joel Brobecker <brobecker@adacore.com>
-
- * safe-ctype.h: Remove #error when detecting that ctype.h has been
- included. Redefine the various macros provided by ctype.h as
- undefined variables.
-
-2008-06-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR,
- XDUPVAR, XOBNEWVEC, XOBNEWVAR): New.
-
-2008-06-06 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Add "path_separator".
-
-2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * dis-asm.h (print_s390_disassembler_options):
- Prototype added.
-
-2008-03-24 Ian Lance Taylor <iant@google.com>
-
- * sha1.h: New file, from gnulib.
-
- * md5.h: Add extern "C" when compiled with C++.
-
-2008-03-24 Ian Lance Taylor <iant@google.com>
-
- * md5.h: Add extern "C" when compiled with C++.
-
-2008-03-21 Ian Lance Taylor <iant@google.com>
-
- * filenames.h: Add extern "C" when compiled with C++.
-
-2008-02-15 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_hash_table): Delete creator field.
- (struct bfd_link_info): Add output_bfd.
-
-2008-02-11 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XCHAL_HAVE_THREADPTR): Redefine to zero.
- (XCHAL_NUM_AREGS, XCHAL_MAX_INSTRUCTION_SIZE): New.
-
-2008-01-26 David Daney <ddaney@avtrex.com>
-
- * demangle.h (demangle_component_type): Add
- DEMANGLE_COMPONENT_JAVA_RESOURCE,
- DEMANGLE_COMPONENT_COMPOUND_NAME, and
- DEMANGLE_COMPONENT_CHARACTER as new enum values.
- (demangle_component): Add struct s_character to union u.
-
-2007-11-07 Joseph Myers <joseph@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
-
- * floatformat.h (struct floatformat): Add split_half field.
- (floatformat_ibm_long_double): New.
-
-2007-09-06 Tom Tromey <tromey@redhat.com>
-
- * libiberty.h (pex_free): Document process killing.
-
-2007-08-31 Douglas Gregor <doug.gregor@gmail.com>
-
- * demangle.h (enum demangle_component_type): Add
- DEMANGLE_COMPONENT_RVALUE_REFERENCE.
-
-2007-07-25 Ben Elliston <bje@au.ibm.com>
-
- * ternary.h: Remove.
-
-2007-07-18 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XCHAL_HAVE_THREADPTR): New.
- (XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): New.
-
-2007-07-17 Nick Clifton <nickc@redhat.com>
-
- * COPYING3: New file. Contains version 3 of the GNU General
- Public License.
-
-2007-07-12 Kai Tietz <kai.tietz@onevision.com>
-
- * splay-tree.h (libi_uhostptr_t, libi_shostptr_t): Adjust types
- work-a-round whitespace problem in gcc gengtype.
-
- * splay-tree.h (libi_uhostptr_t, libi_shostptr_t): New types,
- needed for WIN64 when a long is not wide enough for a pointer.
- (splay_tree_key, splay_tree_value): Use the new types.
-
-2007-07-09 Roland McGrath <roland@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add member emit_note_gnu_build_id.
-
-2007-07-06 Nick Clifton <nickc@redhat.com>
-
- * bfdlink.h: Update copyright notice to refer to GPLv3.
-
-2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * dis-asm.h (print_insn_cr16): New prototype.
-
-2007-06-01 Noah Misch <noah@cs.caltech.edu>
- Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Add input_bfds_tail.
-
-2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
-
- * libiberty.h (writeargv): Declare.
-
-2007-04-30 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Add "info" and "minfo".
-
-2007-04-25 Mark Mitchell <mark@codesourcery.com>
-
- * demangle.h: Change license to LGPL + exception.
-
-2007-04-10 Richard Henderson <rth@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add relax_trip.
-
-2007-03-29 Joel Brobecker <brobecker@adacore.com>
-
- * filenames.h (FILENAME_CMP): Adjust define to call filename_cmp
- regardless of the type of file system.
-
-2007-03-06 Jan Hubicka <jh@suse.cz>
-
- * ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New.
-
-2007-02-21 Nick Clifton <nickc@redhat.com>
-
- * bfdlink.h (struct bfd_link_callbacks): Add
- override_segment_assignment field.
-
-2007-02-17 Mark Mitchell <mark@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
- Vladimir Prus <vladimir@codesourcery.com
- Joseph Myers <joseph@codesourcery.com>
-
- * bin-bugs.h: Remove.
-
-2007-02-09 Joseph S. Myers <joseph@codesourcery.com>
-
- * libiberty.h (pex_write_input): Remove prototype.
-
-2007-02-05 Dave Brolley <brolley@redhat.com>
-
- * Contribute the following changes:
- 2001-03-26 Ben Elliston <bje@redhat.com>
-
- * dis-asm.h (print_insn_mep): Declare.
-
-2007-02-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * dis-asm.h (print_i386_disassembler_options): New.
-
-2007-01-31 Vladimir Prus <vladimir@codesourcery.com>
-
- * libiberty.h (PEX_STDERR_TO_PIPE): New define.
- (PEX_BINARY_ERROR): New define.
- (pex_read_err): New function.
-
-2007-01-29 Simon Baldwin <simonb@google.com>
-
- * demangle.h: New cplus_demangle_print_callback,
- cplus_demangle_v3_callback, and java_demangle_v3_callback function
- prototypes, and demangle_callbackref type definition.
-
-2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/3831
- * bfdlink.h (bfd_link_info): Rename dynamic to dynamic_list.
- Add dynamic and dynamic_data.
-
-2006-12-05 Michael Tautschnig <tautschn@model.in.tum.de>
- Nick Clifton <nickc@redhat.com>
-
- * ansidecl.h (ATTRIBUTE_PACKED): Define.
-
-2006-11-30 Andrew Stubbs <andrew.stubbs@st.com>
- J"orn Rennecke <joern.rennecke@st.com>
-
- PR driver/29931
- * libiberty.h (make_relative_prefix_ignore_links): Declare.
-
-2006-11-27 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XSHAL_ABI): New.
- (XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New.
-
-2006-11-27 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-isa.h (STATIC_LIBISA): Delete.
-
-2006-10-30 Paul Brook <paul@codesourcery.com>
-
- * dis-asm.h (disassemble_info): Add symtab, symtab_pos and
- symtab_size.
-
-2006-10-30 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/3111
- * bfdlink.h (bfd_link_info): Add reduce_memory_overheads.
-
-2006-10-25 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
- Yukishige Shibata <shibata@rd.scei.sony.co.jp>
- Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
- Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
- Alan Modra <amodra@bigpond.net.au>
-
- * dis-asm.h (print_insn_spu): Declare.
-
-2006-09-17 Mei Ligang <ligang@sunnorth.com.cn>
-
- * dis-asm.h: Add prototypes for Score disassembler routines.
-
-2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_elf_dynamic_list): New.
- (bfd_link_info): Add a dynamic field.
-
-2006-08-04 Marcelo Tosatti <marcelo@kvack.org>
-
- * bfdlink.h (struct bfd_link_info): New field: print_gc_sections.
-
-2006-07-10 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add emit_hash and
- emit_gnu_hash bitfields.
-
-2006-04-11 Jim Blandy <jimb@codesourcery.com>
-
- * libiberty.h (pex_input_file, pex_input_pipe): New declarations.
-
-2006-04-06 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_link_info): Replace need_relax_finalize with
- relax_pass.
-
-2006-02-17 Shrirang Khisti <shrirangk@kpitcummins.com>
- Anil Paranjape <anilp1@kpitcummins.com>
- Shilin Shakti <shilins@kpitcummins.com>
-
- * dis-asm.h (print_insn_xc16c): New prototype.
-
-2006-01-18 DJ Delorie <dj@redhat.com>
-
- * md5.h: Include ansidecl.h
-
-2006-01-17 Andreas Schwab <schwab@suse.de>
-
- PR binutils/1486
- * dis-asm.h (struct disassemble_info): Add
- disassembler_needs_relocs.
-
-2006-01-09 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define.
-
-2005-12-30 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New.
-
-2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
-
- Second part of ms1 to mt renaming.
- * dis-asm.h (print_insn_mt): Renamed.
-
-2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
-
- PR java/9861
- * demangle.h : Add DMGL_RET_POSTFIX define to enable alternative
- output format for return types
-
-2005-11-03 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_order): Tweak comment.
-
-2005-10-31 Mark Kettenis <kettenis@gnu.org>
-
- * floatformat.h (enum floatformat_byteorders): Add
- floatformat_vax.
- (floatformat_vax_aingle, floatformat_vax_double): Declare.
-
-2005-10-28 Dave Brolley <brolley@redhat.com>
-
- Contribute the following changes:
- 2003-09-29 Dave Brolley <brolley@redhat.com>
-
- * dis-asm.h (disassemble_info): insn_sets now (void *) to allow for
- more exotic underlying types to be used.
-
-2005-10-25 Arnold Metselaar <arnold.metselaar@planet.nl>
-
- disasm.h: Add declaration for print_insn_z80
-
-2005-09-30 Catherine Moore <clm@cm00re.com>
-
- * dis-asm.h (print_insn_bfin): Declare.
-
-2005-09-26 Mark Mitchell <mark@codesourcery.com>
-
- * libiberty.h (expandargv): New function.
-
-2005-08-18 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h: Remove mention of a29k.
- * dis-asm.h: Remove a29k support.
-
-2005-08-17 Mark Kettenis <kettenis@gnu.org>
-
- * floatformat.h (struct floatformat): Change type of large
- argument for is_valid member to `const void *'.
- (floatformat_to_double): Change type of second argument to `const
- void *'.
- (floatformat_from_double): Change type of last argument to `void
- *'.
- (floatformat_is_valid): Change type of last argument to `const
- void *'.
-
-2005-07-14 Jim Blandy <jimb@redhat.com>
-
- * dis-asm.h (print_insn_m32c): New declaration.
-
-2005-07-12 Ben Elliston <bje@au.ibm.com>
-
- * xregex2.h (regexec): Qualify this prototype with __extension__
- when compiling with GNU C.
-
-2005-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * dis-asm.h (fprintf_ftype): Add format attribute.
-
-2005-07-03 Steve Ellcey <sje@cup.hp.com>
-
- PR other/13906
- * ansidecl.h (ATTRIBUTE_ALIGNED_ALIGNOF): New.
- * md5.h (md5_uintptr): New.
- (md5_ctx): Align buffer field.
-
-2005-06-30 Daniel Berlin <dberlin@dberlin.org>
-
- * hashtab.h (HTAB_DELETED_ENTRY): New macro.
- (HTAB_EMPTY_ENTRY): New macro.
-
-2005-06-20 Geoffrey Keating <geoffk@apple.com>
-
- * libiberty.h (strverscmp): Prototype.
-
-2005-06-17 Jakub Jelinek <jakub@redhat.com>
-
- * elf/external.h (GRP_ENTRY_SIZE): Define.
-
-2005-06-08 Zack Weinberg <zack@codesourcery.com>
-
- * dis-asm.h (get_arm_regnames): Update prototype.
-
-2005-06-07 Aldy Hernandez <aldyh@redhat.com>
- Michael Snyder <msnyder@redhat.com>
- Stan Cox <scox@redhat.com>
-
- * dis-asm.h: Externalize print_insn_ms1.
-
-2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
-
- * libiberty.h (XOBFINISH): New.
-
-2005-06-03 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_callbacks): Add einfo.
-
-2005-06-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (vsnprintf): Add format attribute.
-
-2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h: Add ATTRIBUTE_FPTR_PRINTF.
-
-2005-05-28 Eli Zaretskii <eliz@gnu.org>
-
- * libiberty.h: (snprintf) [!HAVE_DECL_SNPRINTF]: Declare if
- needed.
- (vsnprintf) [!HAVE_DECL_VSNPRINTF]: Declare if needed.
-
-2005-05-25 Richard Henderson <rth@redhat.com>
-
- * demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New.
-
-2005-05-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
-
- * libiberty.h (ACONCAT): Properly cast value of alloca().
-
- * ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Don't define if
- __cplusplus.
-
-2005-05-12 Steve Ellcey <sje@cup.hp.com>
-
- libiberty.h: Do not define empty basename prototype.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- COPYING, ansidecl.h, bfdlink.h, bout.h, demangle.h, dis-asm.h,
- dyn-string.h, fibheap.h, filenames.h, floatformat.h,
- fnmatch.h, gdbm.h, getopt.h, hashtab.h, hp-symtab.h, ieee.h,
- libiberty.h, md5.h, oasys.h, objalloc.h, obstack.h, os9k.h,
- partition.h, progress.h, safe-ctype.h, sort.h, splay-tree.h,
- symcat.h, ternary.h, xregex2.h, xtensa-config.h,
- xtensa-isa-internal.h, xtensa-isa.h
-
-2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (unlock_std_streams): New.
-
-2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * hashtab.h, libiberty.h, objalloc.h, splay-tree.h, ternary.h:
- Don't use the PTR macro.
-
- * sort.h: Don't use the PARAMS macro.
-
-2005-04-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (unlock_stream): New.
-
-2005-04-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
- Remove parameter names.
-
-2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
- Provide prototypes for new functions.
-
-2005-03-29 Ian Lance Taylor <ian@airs.com>
-
- * libiberty.h: Fix indentation.
-
-2005-03-28 Ian Lance Taylor <ian@airs.com>
-
- * libiberty.h: Include <stdio.h>.
- (PEX_RECORD_TIMES, PEX_USE_PIPES, PEX_SAVE_TEMPS): Define.
- (PEX_LAST, PEX_SEARCH, PEX_SUFFIX, PEX_STDERR_TO_STDOUT): Define.
- (PEX_BINARY_INPUT, PEX_BINARY_OUTPUT): Define.
- (pex_init, pex_run, pex_read_output): Declare.
- (pex_get_status, pex_get_times, pex_free, pex_one): Declare.
- (struct pex_time): Define.
-
-2005-03-28 Mark Mitchell <mark@codesourcery.com>
-
- * libiberty.h (ffs): Declare, if necessary.
-
-2005-03-27 Gabriel Dos Reis <gdr@integreable-solutions.net>
-
- * ternary.h: Don't use PARAMS anymore.
-
-2005-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
-
- * md5.h: Remove definition and uses of __P.
- * dyn-string.h: Remove uses of PARAMS.
- * fibheap.h: Likewise.
- * floatformat.h: Likewise.
- * hashtab.h: Likewise.
-
-2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
-
- * demangle.h: Remove uses of PARAMS.
-
- * libiberty.h (ANSI_PROTOTYPES): Remove guard since
- ANSI_PROTOTYPES is always assumed.
- Remove uses of PARAMS throughout.
-
-2005-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (xstrndup): Declare.
-
-2005-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (make_relative_prefix): Add ATTRIBUTE_MALLOC.
-
-2005-03-22 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-isa.h: Update a comment and whitespace.
-
-2005-03-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_link_info): Add gc_sections.
-
-2005-03-09 Mark Mitchell <mark@codesourcery.com>
-
- * libiberty.h (gettimeofday): Declare.
-
-2005-03-01 Jan Beulich <jbeulich@novell.com>
-
- * libiberty.h: Declare unlink_if_ordinary.
-
-2005-02-21 Alan Modra <amodra@bigpond.net.au>
-
- * xtensa-isa-internal.h (xtensa_length_decode_fn): Warning fix.
- * xtensa-isa.h (xtensa_insnbuf_to_chars): Likewise.
- (xtensa_insnbuf_from_chars, xtensa_isa_length_from_chars): Likewise.
-
-2005-02-14 Paolo Bonzini <bonzini@gnu.org>
-
- PR bootstrap/19818
- * ansidecl.h (PARAMS): Guard from redefinition.
-
-2005-02-03 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_hash_entry): Add u.undef.weak.
-
-2005-02-01 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (bfd_link_repair_undef_list): Declare.
-
-2005-01-10 Andreas Schwab <schwab@suse.de>
-
- * dis-asm.h (struct disassemble_info): Add skip_zeroes and
- skip_zeroes_at_end.
-
-2004-12-11 Ben Elliston <bje@au.ibm.com>
-
- * fibheap.h (struct fibnode): Only use unsigned long bitfields
- when __GNUC__ is defined and ints are less than 32-bits wide.
-
-2004-11-04 Paul Brook <paul@codesourcery.com>
-
- * bfdlink.h (bfd_link_info): Add default_imported_symver.
-
-2004-11-12 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-isa-internal.h (xtensa_interface_internal): Add class_id.
- * xtensa-isa.h (xtensa_interface_class_id): New prototype.
-
-2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
- Vineet Sharma <vineets@noida.hcltech.com>
-
- * dis-asm.h: Add prototype for print_insn_maxq_little.
-
-2004-10-26 Paul Brook <paul@codesourcery.com>
-
- * bfdlink.h (struct bfd_link_info): Add create_default_symver.
-
-2004-10-21 H.J. Lu <hongjiu.lu@intel.com>
-
- PR 463
- * bfdlink.h (bfd_link_callbacks): Add a pointer to struct
- bfd_link_hash_entry to reloc_overflow.
-
-2004-10-07 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h (XSHAL_USE_ABSOLUTE_LITERALS,
- XCHAL_HAVE_PREDICTED_BRANCHES, XCHAL_INST_FETCH_WIDTH): New.
- (XCHAL_EXTRA_SA_SIZE, XCHAL_EXTRA_SA_ALIGN): Delete.
-
- * xtensa-isa-internal.h (ISA_INTERFACE_VERSION): Delete.
- (config_sturct struct): Delete.
- (XTENSA_OPERAND_IS_REGISTER, XTENSA_OPERAND_IS_PCRELATIVE,
- XTENSA_OPERAND_IS_INVISIBLE, XTENSA_OPERAND_IS_UNKNOWN,
- XTENSA_OPCODE_IS_BRANCH, XTENSA_OPCODE_IS_JUMP,
- XTENSA_OPCODE_IS_LOOP, XTENSA_OPCODE_IS_CALL,
- XTENSA_STATE_IS_EXPORTED, XTENSA_INTERFACE_HAS_SIDE_EFFECT): Define.
- (xtensa_format_encode_fn, xtensa_get_slot_fn, xtensa_set_slot_fn): New.
- (xtensa_insn_decode_fn): Rename to ...
- (xtensa_opcode_decode_fn): ... this.
- (xtensa_immed_decode_fn, xtensa_immed_encode_fn, xtensa_do_reloc_fn,
- xtensa_undo_reloc_fn): Update.
- (xtensa_encoding_template_fn): Delete.
- (xtensa_opcode_encode_fn, xtensa_format_decode_fn,
- xtensa_length_decode_fn): New.
- (xtensa_format_internal, xtensa_slot_internal): New types.
- (xtensa_operand_internal): Delete operand_kind, inout, isPCRelative,
- get_field, and set_field fields. Add name, field_id, regfile,
- num_regs, and flags fields.
- (xtensa_arg_internal): New type.
- (xtensa_iclass_internal): Change operands field to array of
- xtensa_arg_internal. Add num_stateOperands, stateOperands,
- num_interfaceOperands, and interfaceOperands fields.
- (xtensa_opcode_internal): Delete length, template, and iclass fields.
- Add iclass_id, flags, encode_fns, num_funcUnit_uses, and funcUnit_uses.
- (opname_lookup_entry): Delete.
- (xtensa_regfile_internal, xtensa_interface_internal,
- xtensa_funcUnit_internal, xtensa_state_internal,
- xtensa_sysreg_internal, xtensa_lookup_entry): New.
- (xtensa_isa_internal): Replace opcode_table field with opcodes field.
- Change type of opname_lookup_table. Delete num_modules,
- module_opcode_base, module_decode_fn, config, and has_density fields.
- Add num_formats, formats, format_decode_fn, length_decode_fn,
- num_slots, slots, num_fields, num_operands, operands, num_iclasses,
- iclasses, num_regfiles, regfiles, num_states, states,
- state_lookup_table, num_sysregs, sysregs, sysreg_lookup_table,
- max_sysreg_num, sysreg_table, num_interfaces, interfaces,
- interface_lookup_table, num_funcUnits, funcUnits and
- funcUnit_lookup_table fields.
- (xtensa_isa_module, xtensa_isa_modules): Delete.
- (xtensa_isa_name_compare): New prototype.
- (xtisa_errno, xtisa_error_msg): New.
- * xtensa-isa.h (XTENSA_ISA_VERSION): Define.
- (xtensa_isa): Change type.
- (xtensa_operand): Delete.
- (xtensa_format, xtensa_regfile, xtensa_state, xtensa_sysreg,
- xtensa_interface, xtensa_funcUnit, xtensa_isa_status,
- xtensa_funcUnit_use): New types.
- (libisa_module_specifier): Delete.
- (xtensa_isa_errno, xtensa_isa_error_msg): New prototypes.
- (xtensa_insnbuf_free, xtensa_insnbuf_to_chars,
- xtensa_insnbuf_from_chars): Update prototypes.
- (xtensa_load_isa, xtensa_extend_isa, xtensa_default_isa,
- xtensa_insn_maxlength, xtensa_num_opcodes, xtensa_decode_insn,
- xtensa_encode_insn, xtensa_insn_length,
- xtensa_insn_length_from_first_byte, xtensa_num_operands,
- xtensa_operand_kind, xtensa_encode_result,
- xtensa_operand_isPCRelative): Delete.
- (xtensa_isa_init, xtensa_operand_inout, xtensa_operand_get_field,
- xtensa_operand_set_field, xtensa_operand_encode,
- xtensa_operand_decode, xtensa_operand_do_reloc,
- xtensa_operand_undo_reloc): Update prototypes.
- (xtensa_isa_maxlength, xtensa_isa_length_from_chars,
- xtensa_isa_num_pipe_stages, xtensa_isa_num_formats,
- xtensa_isa_num_opcodes, xtensa_isa_num_regfiles, xtensa_isa_num_states,
- xtensa_isa_num_sysregs, xtensa_isa_num_interfaces,
- xtensa_isa_num_funcUnits, xtensa_format_name, xtensa_format_lookup,
- xtensa_format_decode, xtensa_format_encode, xtensa_format_length,
- xtensa_format_num_slots, xtensa_format_slot_nop_opcode,
- xtensa_format_get_slot, xtensa_format_set_slot, xtensa_opcode_decode,
- xtensa_opcode_encode, xtensa_opcode_is_branch, xtensa_opcode_is_jump,
- xtensa_opcode_is_loop, xtensa_opcode_is_call,
- xtensa_opcode_num_operands, xtensa_opcode_num_stateOperands,
- xtensa_opcode_num_interfaceOperands, xtensa_opcode_num_funcUnit_uses,
- xtensa_opcode_funcUnit_use, xtensa_operand_name,
- xtensa_operand_is_visible, xtensa_operand_is_register,
- xtensa_operand_regfile, xtensa_operand_num_regs,
- xtensa_operand_is_known_reg, xtensa_operand_is_PCrelative,
- xtensa_stateOperand_state, xtensa_stateOperand_inout,
- xtensa_interfaceOperand_interface, xtensa_regfile_lookup,
- xtensa_regfile_lookup_shortname, xtensa_regfile_name,
- xtensa_regfile_shortname, xtensa_regfile_view_parent,
- xtensa_regfile_num_bits, xtensa_regfile_num_entries,
- xtensa_state_lookup, xtensa_state_name, xtensa_state_num_bits,
- xtensa_state_is_exported, xtensa_sysreg_lookup,
- xtensa_sysreg_lookup_name, xtensa_sysreg_name, xtensa_sysreg_number,
- xtensa_sysreg_is_user, xtensa_interface_lookup, xtensa_interface_name,
- xtensa_interface_num_bits, xtensa_interface_inout,
- xtensa_interface_has_side_effect, xtensa_funcUnit_lookup,
- xtensa_funcUnit_name, xtensa_funcUnit_num_copies): New prototypes.
-2004-10-07 Jeff Baker <jbaker@qnx.com>
-
- * bfdlink.h (bfd_link_info): Add bitfield: warn_shared_textrel.
-
-2004-09-17 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_hash_entry): Move und_next into elements
- of union.
-
-2004-09-13 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
-
- * libiberty.h (basename): Prototype for __MINGW32__.
-
-2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (ATTRIBUTE_SENTINEL): Define.
- * libiberty.h (concat, reconcat, concat_length, concat_copy,
- concat_copy2): Use ATTRIBUTE_SENTINEL.
-
-2004-08-13 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_callbacks): Remove "error_handler".
- (LD_DEFINITION_IN_DISCARDED_SECTION): Delete.
-
-2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
-
- * libiberty.h (XDELETE, XDELETEVEC, XRESIZEVEC): Remove any
- const-qualification before disposal.
-
-2004-07-24 Bernardo Innocenti <bernie@develer.com>
-
- * ansidecl.h (ARG_UNUSED): New Macro.
-
-2004-07-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * bin-bugs.h (REPORT_BUGS_TO): Set to
- "<URL:http://www.sourceware.org/bugzilla/>".
-
-2004-07-21 Paolo Bonzini <bonzini@gnu.org>
-
- * ansidecl.h (ATTRIBUTE_PURE): New.
-
-2004-07-13 Bernardo Innocenti <bernie@develer.com>
-
- * libiberty.h (XNEW, XCNEW, XNEWVEC, XCNEWVEC, XOBNEW): Move here from
- libcpp/internal.h.
- (XDELETE, XRESIZEVEC, XDELETEVEC, XNEWVAR, XCNEWVAR, XRESIZEVAR): New
- macros.
-
-2004-07-13 Bernardo Innocenti <bernie@develer.com>
-
- * libiberty.h (ASTRDUP): Add casts required for stricter
- type conversion rules of C++.
- * obstack.h (obstack_free): Likewise.
-
-2004-07-07 Tomer Levi <Tomer.Levi@nsc.com>
-
- * dis-asm.h (print_insn_crx): Declare.
-
-2004-06-24 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_order): Update comment.
-
-2004-05-11 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add relro, relro_start and
- relro_end fields.
-
-2004-05-04 Andreas Jaeger <aj@suse.de>
-
- * demangle.h: Do not use C++ reserved keyword typename as
- parameter for cplus_demangle_fill_builtin_type.
-
-2004-04-22 Richard Henderson <rth@redhat.com>
-
- * hashtab.h (struct htab): Add size_prime_index.
-
-2004-04-13 Jeff Law <law@redhat.com>
-
- * hashtab.h (htab_remove_elt_with_hash): Prototype new function.
-
-2004-03-30 Zack Weinberg <zack@codesourcery.com>
-
- * hashtab.h, splay-tree.h: Use new shorter form of GTY markers.
-
-2004-03-25 Stan Shebs <shebs@apple.com>
-
- * mpw/: Remove subdirectory and everything in it.
-
-2004-03-23 Alan Modra <amodra@bigpond.net.au>
-
- PR 51.
- * bfdlink.h (struct bfd_link_info): Add wrap_char.
-
-2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_link_info): Correct comments for the
- unresolved_syms_in_objects field.
-
-2004-02-24 Ian Lance Taylor <ian@wasabisystems.com>
-
- * dyn-string.h: Update copyright date.
-
-2004-02-23 Ian Lance Taylor <ian@wasabisystems.com>
-
- * dyn-string.h: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
- the associated #defines.
-
-2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
-
- * demangle.h: Instead of checking ANSI_PROTOTYPES, just include
- "libiberty.h".
-
- * demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>.
-
- * demangle.h (enum demangle_component_type): Define.
- (struct demangle_operator_info): Declare.
- (struct demangle_builtin_type_info): Declare.
- (struct demangle_component): Define.
- (cplus_demangle_fill_component): Declare.
- (cplus_demangle_fill_name): Declare.
- (cplus_demangle_fill_builtin_type): Declare.
- (cplus_demangle_fill_operator): Declare.
- (cplus_demangle_fill_extended_operator): Declare.
- (cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
- (cplus_demangle_v3_components): Declare.
- (cplus_demangle_print): Declare.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/ChangeLog-9103 b/include/ChangeLog-9103
deleted file mode 100644
index 3eeb77c1b..000000000
--- a/include/ChangeLog-9103
+++ /dev/null
@@ -1,2682 +0,0 @@
-2003-12-19 Andreas Tobler <a.tobler@schweiz.ch>
-
- * include/fibheap.h (fibnode): Use __extension__ for
- bit-fields mark and degree if __GNUC__.
-
-2003-12-18 Kazu Hirata <kazu@cs.umass.edu>
-
- * include/fibheap.h (fibnode): Use unsigned long int for
- bit-fields if __GNUC__ is defined.
-
-2003-12-19 Andreas Tobler <a.tobler@schweiz.ch>
-
- * fibheap.h (fibnode): Use __extension__ for
- bit-fields mark and degree if __GNUC__.
-
-2003-12-18 Kazu Hirata <kazu@cs.umass.edu>
-
- * fibheap.h (fibnode): Use unsigned long int for
- bit-fields if __GNUC__ is defined.
-
-2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_link_info): Change relax_finalizing to
- need_relax_finalize.
-
-2003-12-03 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_hash_entry): Rename "next" to "und_next".
-
-2003-12-02 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Remove mpc860c0 field.
-
-2003-11-14 Nick Clifton <nickc@redhat.com>
-
- * dis-asm.h (struct disassemble_info): Add new field
- 'symbol_is_valid' which is a function which can tell the
- disassembler to skip certain symbols as they should not be
- displayed to the user.
- (arm_symbol_is_valid): New prototype. This is the ARM
- specific function for the symbol_is_valid field.
- (generic_symbol_is_valid): New prototype. This is the default
- function pointed to by the symbol_is_valid field.
-
-2003-11-06 Bruno Rohee <bruno@rohee.com>
-
- * hp-symtab.h: Fix "the the" typo.
-
-2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (bfd_elf_version_expr): Add "symbol" and remove
- "wildcard".
-
-2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
-
- * obstack.h: Merge the following change from gnulib:
- 2003-10-21 Paul Eggert <eggert@twinsun.com>
- * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
- (obstack_ptr_grow_fast, obstack_int_grow_fast):
- Don't use lvalue casts, as GCC plans to remove support for them
- in GCC 3.5. Reported by Joseph S. Myers. This bug
- was also present in the non-GCC version, indicating that this
- code had always been buggy and had never been widely used.
- (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
- Use the fast variant of each macro, rather than copying the
- definiens of the fast variant; that way, we'll be more likely to
- catch future bugs in the fast variants.
-
-2003-10-22 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_elf_version_expr): Remove match field.
- Add wildcard and mask fields.
- (BFD_ELF_VERSION_C_TYPE): Define.
- (BFD_ELF_VERSION_CXX_TYPE): Likewise.
- (BFD_ELF_VERSION_JAVA_TYPE): Likewise.
- (struct bfd_elf_version_expr_head): New.
- (struct bfd_elf_version_tree): Add match field.
- Change type of globals and locals fields
- to struct bfd_elf_version_expr_head.
-
-2003-09-22 Andrew Cagney <cagney@redhat.com>
-
- * floatformat.h (struct floatformat): Add field "is_valid".
-
-2003-09-15 Andrew Cagney <cagney@redhat.com>
-
- * floatformat.h (floatformat_to_double): Make input buffer constant.
- (floatformat_from_double, floatformat_is_valid): Ditto.
-
-2003-09-15 Andrew Cagney <cagney@redhat.com>
-
- * floatformat.h (struct floatformat): Make "exp_bias" signed.
-
-2003-09-15 Daniel Jacobowitz <drow@mvista.com>
-
- * floatformat.h (floatformat_is_valid): Add prototype.
-
-2003-08-27 Andrew Cagney <cagney@redhat.com>
-
- * dis-asm.h (init_disassemble_info): Declare.
- (INIT_DISASSEMBLE_INFO): Redefine as a call to
- init_disassemble_info.
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Ditto.
-
-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
- HOST_CHARSET_UNKNOWN, HOST_CHARSET_ASCII, HOST_CHARSET_EBCDIC
- respectively.
-
-2003-06-21 Zack Weinberg <zack@codesourcery.com>
-
- * safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC, HOST_CHARSET):
- New #defines.
-
-2003-06-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h: Delete HAVE_LONG_DOUBLE GCC bootstrap support.
-
-2003-05-23 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add execstack and noexecstack.
-
-2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New.
-
-2003-05-30 Ulrich Drepper <drepper@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add pie and executable
- bits.
-
-2003-05-21 Nick Clifton <nickc@redhat.com>
-
- * bfdlink.h (struct bfd_link_hash_table): Fix typo in comment.
-
-2003-05-15 Jim Blandy <jimb@redhat.com>
-
- * libiberty.h (hex_value): Make the value an unsigned int, to
- avoid unexpected sign-extension when cast to unsigned types larger
- than int --- like bfd_vma, on some platforms.
- (_hex_value): Update declaration.
-
-2003-05-09 Alan Modra <amodra@bigpond.net.au>
-
- * xtensa-isa-internal.h (xtensa_isa_module_struct): Remove const on
- gen_num_opcodes_fn return type.
-
-2003-05-07 Jason Merrill <jason@redhat.com>
-
- * hashtab.h (iterative_hash): Prototype.
- (iterative_hash_object): New macro.
-
-2003-04-28 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_info): Add relax_finalizing.
-
-2003-04-23 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_callbacks): Add error_handler.
-
-2003-04-02 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa-config.h: Remove comment indicating that this is a
- generated file.
-
-2003-04-01 Bob Wilson <bob.wilson@acm.org>
-
- * dis-asm.h (print_insn_xtensa): Declare.
- * xtensa-config.h: New file.
- * xtensa-isa-internal.h: Likewise.
- * xtensa-isa.h: Likewise.
-
-2003-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (ATTRIBUTE_NONNULL, ATTRIBUTE_NULL_PRINTF,
- ATTRIBUTE_NULL_PRINTF_1, ATTRIBUTE_NULL_PRINTF_2,
- ATTRIBUTE_NULL_PRINTF_3, ATTRIBUTE_NULL_PRINTF_4,
- ATTRIBUTE_NULL_PRINTF_5): New.
- (ATTRIBUTE_PRINTF): Add ATTRIBUTE_NONNULL.
-
-2003-03-17 Jan Hubicka <jh@suse.cz>
-
- * hashtab.h (htab_traverse_noresize): Declare.
-
-2003-02-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h: Document return value of physmem routines.
-
-2003-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (physmem_total, physmem_available): Prototype.
-
-2003-02-20 Daniel Jacobowitz <drow@mvista.com>
-
- * libiberty.h (lrealpath): Add declaration.
-
-2003-01-31 Grant Grundler <grundler@dsl2.external.hp.com>
-
- * hppa.h (ldwa, ldda): Add ordered opcodes.
-
-2003-01-26 Daniel Jacobowitz <drow@mvista.com>
-
- * hashtab.h (htab_alloc_with_arg, htab_free_with_arg): Add new types.
- (struct htab): Add alloc_arg, alloc_with_arg_f, free_with_arg_f.
- (htab_create_alloc_ex): New prototype.
- (htab_set_functions_ex): New prototype.
-
-2002-07-17 Geoffrey Keating <geoffk@redhat.com>
-
- * splay-tree.h (GTY): Define if undefined.
- (splay_tree_allocate_fn): Return PTR for compatibility, not void *.
- (struct splay_tree_node_s): Support gengtype.
- (struct splay_tree_s): Likewise. Make allocate_data a PTR,
- not a void *.
-
-2002-01-02 Ben Elliston <bje@redhat.com>
-
- * dis-asm.h (print_insn_iq2000): Declare.
-
-2002-12-24 Dmitry Diky <diwil@mail.ru>
-
- * dis-asm.h: Add msp430 disassembler prototype.
-
-2002-12-27 Chris Demetriou <cgd@broadcom.com>
-
- * dis-asm.h (print_mips_disassembler_options): Prototype.
-
-2002-12-23 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Add "strip_discarded".
-
-2002-12-20 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_link_info): Replace bfd_boolean fields with
- bit-fields. Rearrange to put all like types together.
-
-2002-11-30 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h: Replace boolean with bfd_boolean. Formatting.
-
-2002-11-23 Simon Burge <simonb@wasabisystems.com>
-
- * libiberty.h (basename): Add NetBSD to the list.
-
-2002-11-22 Daniel Jacobowitz <drow@mvista.com>
-
- * libiberty.h (make_relative_prefix): Add prototype.
-
-2002-11-14 Egor Duda <deo@logos-m.ru>
-
- * bfdlink.h (struct bfd_link_info): Add new boolean
- field pei386_runtime_pseudo_reloc.
-
-2002-10-26 Roger Sayle <roger@eyesopen.com>
-
- * partition.h: Close the extern "C" scope when compiling with C++.
-
-2002-10-26 Roger Sayle <roger@eyesopen.com>
- DJ Delorie <dj@redhat.com>
-
- PR bootstrap/8351
- * getopt.h: Avoid prototyping getopt with no arguments in C++.
-
-2002-10-24 Nathan Tallent <eraxxon@alumni.rice.edu>
-
- * ansidecl.h (__STDC__): Add (__alpha && __cplusplus) to the
- list of platform compilers that may look, smell and act
- like __STDC__ but that may not define it.
-
-2002-10-11 David O'Brien <obrien@FreeBSD.org>
-
- * getopt.h: getopt is in unistd.h (based on SUSv2).
-
-2002-09-26 Andrew Cagney <ac131313@redhat.com>
-
- * regs/: Delete directory.
-
-2002-09-19 Alexandre Oliva <aoliva@redhat.com>
-
- * libiberty.h (asprintf, vasprintf): Don't declare them if the
- corresponding HAVE_DECL_ macro is 1.
-
-2002-09-19 Nathan Tallent <eraxxon@alumni.rice.edu>
-
- * dis-asm.h: Remove (errant) trailing semicolon (;) from the
- extern "C" { } declaration.
-
-2002-09-04 Nick Clifton <nickc@redhat.com>
-
- * dis-asm.h (print_ppc_disassembler_options): Prototype.
-
-2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-
- * dis-asm.h: Add standard disassembler for tic4x.
-
-2002-08-07 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_info): Add allow_undefined_version.
- (bfd_elf_version_expr): Add symver and script.
-
-2002-07-31 Ian Dall <ian@sibyl.beware.dropbear.id.au>
-
- * bfdlink.h (bfd_link_common_skip_ar_symbols): New enum.
- (struct bfd_link_info): Add new field 'common_skip_ar_symbols'.
-
-2002-07-19 Denis Chertykov <denisc@overta.ru>
- Matthew Green <mrg@redhat.com>
-
- * dis-asm.h (print_insn_ip2k): Declare.
-
-2002-07-01 Alan Modra <amodra@bigpond.net.au>
-
- * bfdlink.h (struct bfd_sym_chain): Declare.
- (struct bfd_link_info): Add gc_sym_list. Formatting fixes.
-
-2002-06-25 Alan Modra <amodra@bigpond.net.au>
-
- * demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>.
- * fibheap.h: Likewise.
- * hashtab.h: Likewise.
- * partition.h: Likewise.
- * sort.h: Likewise.
- * splay-tree.h: Likewise.
-
-2002-06-24 Alan Modra <amodra@bigpond.net.au>
-
- * libiberty.h (basename): Don't declare if HAVE_DECL_BASENAME.
- * getopt.h (getopt): Don't declare if HAVE_DECL_GETOPT.
-
-2002-06-18 Dave Brolley <brolley@redhat.com>
-
- From Catherine Moore:
- * dis-asm.h (print_insn_frv): New prototype.
-
-2002-06-09 Andrew Cagney <cagney@redhat.com>
-
- * remote-sim.h: Move to directory gdb/.
- * callback.h: Move to directory gdb/.
-
-2002-06-07 Charles Wilson <cwilson@ece.gatech.edu>
-
- * bfdlink.h (struct bfd_link_info): Change type of
- pei386_auto_import field to int so that -1 can mean enabled by
- default and 1 can mean enabled by command line switch.
-
-2002-06-06 DJ Delorie <dj@redhat.com>
-
- * hashtab.h (htab): Rearrange new members for backward
- compatibility.
- (htab_create): Don't use a macro that requires other headers.
-
-2002-06-05 Geoffrey Keating <geoffk@redhat.com>
-
- * hashtab.h (htab_create): Restore prototype for backward
- compatibility.
- (htab_try_create): Likewise.
-
-2002-05-22 Geoffrey Keating <geoffk@redhat.com>
-
- * hashtab.h (struct htab): Update for change to length specifier.
-
-2002-05-10 Geoffrey Keating <geoffk@redhat.com>
-
- * hashtab.h (GTY): Define if undefined.
- (htab_alloc): New typedef.
- (htab_free): New typedef.
- (struct htab): Support gengtype; allow user-specified memory
- allocation.
- (htab_create_alloc): New.
- (htab_create): Replace with #define.
- (htab_try_create): Delete.
-
-2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net>
-
- * dis-asm.h: Prototype print_insn_dlx.
-
-2002-05-23 Andrew Cagney <ac131313@redhat.com>
-
- * sim-d10v.h: Delete file. Moved to include/gdb/.
-
-2002-05-21 H.J. Lu (hjl@gnu.org)
-
- * bfdlink.h (bfd_link_info): Add allow_multiple_definition.
-
-2002-05-17 J"orn Rennecke <joern.rennecke@superh.com>
-
- * dis-asm.h (print_insn_shl, print_insn_sh64l): Remove prototype.
-
-2002-04-16 David S. Miller <davem@redhat.com>
-
- * xregex2.h (__restrict_arr): Define to __restrict on GCC
- 3.1 and later. Do not redefine.
-
-2002-04-01 Phil Edwards <pme@gcc.gnu.org>
-
- * dyn-string.h: Also allow IN_GLIBCPP_V3 to redefine names.
-
-2002-03-10 Daniel Jacobowitz <drow@mvista.com>
-
- * gdb: New directory.
-
-2002-03-06 Andrew Cagney <ac131313@redhat.com>
-
- * floatformat.h (floatformat_arm_ext): Delete declaration.
-
-2002-02-21 Jim Blandy <jimb@redhat.com>
-
- Allow the user to specify functions for allocating memory for
- splay tree roots and nodes.
- * splay-tree.h (splay_tree_allocate_fn, splay_tree_deallocate_fn):
- New types.
- (splay_tree): New fields: `allocate', `deallocate', and
- `allocate_data'.
- (splay_tree_new_with_allocator): New function declaration.
-
-2002-02-15 Alan Modra <amodra@bigpond.net.au>
-
- Support arbitrary length fill patterns.
- * bfdlink.h (enum bfd_link_order_type): Remove bfd_fill_link_order.
- (struct bfd_link_order): Remove fill. Add data.size.
-
-2002-02-08 Alexandre Oliva <aoliva@redhat.com>
-
- Contribute sh64-elf.
- 2000-11-25 Hans-Peter Nilsson <hpn@cygnus.com>
- * dis-asm.h (print_insn_sh64): New prototype.
- (print_insn_sh64l): New prototype.
- (print_insn_sh64x_media): New prototype.
-
-2002-02-05 Frank Ch. Eigler <fche@redhat.com>
-
- * dis-asm.h (disassemble_info): New field `insn_sets'.
- (INIT_DISASSEMBLE_INFO): Clear it.
-
-2002-02-05 Jason Merrill <jason@redhat.com>
-
- * demangle.h (cplus_demangle_v3): Add "options" parm.
- (cplus_demangle_v3_type): Remove prototype.
- (DMGL_VERBOSE): New macro.
- (DMGL_TYPES): New macro.
-
-2002-02-02 H.J. Lu (hjl@gnu.org)
-
- * demangle.h (cplus_demangle_v3_type): New prototype.
-
-2002-01-31 Ivan Guzvinec <ivang@opencores.org>
-
- * dis-asm.h : Add support for or32 targets
-
-2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (C_alloca): Add ATTRIBUTE_MALLOC.
-
-2002-01-27 David O'Brien <obrien@FreeBSD.org>
-
- * cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
-
-2001-12-14 Nick Clifton <nickc@cambridge.redhat.com>
-
- * dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
- disassembler_options field (to NULL).
-
-2001-12-13 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
-
-2001-12-07 Geoffrey Keating <geoffk@redhat.com>
-
- * dis-asm.h (print_insn_xstormy16): Declare.
-
-2001-12-06 Richard Henderson <rth@redhat.com>
-
- * demangle.h (no_demangling): New.
- (NO_DEMANGLING_STYLE_STRING): New.
-
-2001-11-14 Alan Modra <amodra@bigpond.net.au>
-
- * dis-asm.h (print_insn_i386): Declare.
-
-2001-11-11 Timothy Wall <twall@alum.mit.edu>
-
- * dis-asm.h: Fix comment to refer to octets rather than bytes.
-
-2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
-
- * dis-asm.h (print_insn_mmix): Add prototype.
-
-2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk>
-
- * safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
-
-2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (hex_init): Revert delete.
-
- * libiberty.h (_hex_value): Const-ify.
- (hex_init): Delete.
-
-2001-10-16 Christopher Faylor <cgf@redhat.com>
-
- * filenames.h: Add cygwin to the list of dosish style path systems.
-
-2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * demangle.h (demangler_engine): Const-ify.
- * libiberty.h (buildargv): Likewise.
-
-2001-10-03 Vassili Karpov <malc@pulsesoft.com>
-
- * bfdlink.h (struct bfd_link_info): Add nocopyreloc field.
-
-2001-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (reconcat): New function.
-
-2001-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (concat, concat_length, concat_copy, concat_copy2,
- ACONCAT): Improve comments.
-
-2001-09-18 Alan Modra <amodra@bigpond.net.au>
-
- * objalloc.h (OBJALLOC_ALIGN): Define using offsetof.
-
-2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (concat_length, concat_copy, concat_copy2,
- libiberty_concat_ptr, ACONCAT): New.
-
- * libiberty.h (ASTRDUP): New macro.
- libiberty_optr, libiberty_nptr, libiberty_len): Declare.
-
-2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h: Update comments reflecting previous change.
-
-2001-08-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses.
-
-2001-08-25 Nick Clifton <nickc@cambridge.redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to
- unsigned to remove a compile time warning message.
-
-2001-08-24 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_hash_table_type): New. The linker hash
- table type, bfd_link_generic_hash_table and
- bfd_link_elf_hash_table.
- (bfd_link_hash_table): Add a new field, type, for the linker
- hash table type.
-
-2001-08-23 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (struct bfd_link_info): Add combreloc and
- spare_dynamic_tags fields.
-
-2001-08-23 Lars Brinkhoff <lars@nocrew.org>
-
- * dyn-string.h, fibheap.h, partition.h, sort.h, splay-tree.h:
- replace "GNU CC" with "GCC".
-
-2001-08-21 Richard Henderson <rth@redhat.com>
-
- * fibheap.h: Tidy formatting.
- (fibnode_t): Limit degree to 31 bits to avoid warning.
-
-2001-08-20 Daniel Berlin <dan@cgsoftware.com>
-
- * fibheap.h: New file. Fibonacci heap.
-
-2001-08-20 Andrew Cagney <ac131313@redhat.com>
-
- * floatformat.h (floatformat_arm_ext): Document as deprecated.
- (floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword)
- (floatformat_ia64_spill_little, floatformat_ia64_quad_little)
- (floatformat_ia64_spill_big, floatformat_ia64_quad_big)
- (floatformat_m88110_harris_ext): Declare.
-
-2001-08-18 Zack Weinberg <zackw@panix.com>
-
- * ansidecl.h: Reorganize for readability, remove documentation
- of obsolete macros, document PARAMS and VPARAMS. Add new
- macros VA_OPEN, VA_CLOSE, and VA_FIXEDARG for nicer variadic
- function implementation.
-
-2001-08-16 Richard Henderson <rth@redhat.com>
-
- * hashtab.h (htab_hash_string): Declare.
-
-2001-08-10 Andrew Cagney <ac131313@redhat.com>
-
- * libiberty.h (lbasename): Change function declaration to return a
- const char pointer.
-
-2001-08-02 Mark Kettenis <kettenis@gnu.org>
-
- * xregex.h (_REGEX_RE_COMP): Define.
- (re_comp): Define to xre_comp.
- (re_exec): Define to xre_exec.
-
-2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
-
- * bfdlink.h (struct bfd_link_info): add new boolean
- field pei386_auto_import.
-
-2001-07-18 Andreas Jaeger <aj@suse.de>
-
- * xregex2.h: Place under LGPL version 2.1.
-
-2001-07-10 Jeff Johnston <jjohnstn@redhat.com>
-
- * xregex.h: New file to support libiberty regex.
- * xregex2.h: Ditto.
-
-2001-06-15 Hans-Peter Nilsson <hp@axis.com>
-
- * bfdlink.h (struct bfd_link_info): New member export_dynamic.
-
-2001-05-16 Matt Kraai <kraai@alumni.carnegiemellon.edu>
-
- * partition.h: Fix misspelling of `implementation'.
-
-2001-05-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (NULL_PTR): Delete.
-
-2001-05-07 Zack Weinberg <zackw@stanford.edu>
-
- * demangle.h: Use PARAMS for all prototypes.
- * ternary.h: Use PARAMS for all prototypes. Use PTR, not void *.
- Make arguments constant where possible.
-
-2001-05-07 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (splay_tree_max): New function.
- (splay_tree_min): Likewise.
-
-2001-04-27 Johan Rydberg <jrydberg@opencores.org>
-
- * dis-asm.h (print_insn_openrisc): Add prototype.
-
-2001-04-15 Daniel Berlin <dan@cgsoftware.com>
-
- * ternary.h: New file - Ternary search tree header.
-
-2001-04-13 Jakub Jelinek <jakub@redhat.com>
-
- * bfdlink.h (bfd_link_discard): Add discard_sec_merge.
-
-2001-04-03 Zack Weinberg <zackw@stanford.edu>
-
- * ansidecl.h: All logic from gcc/gansidecl.h moved here.
-
-2001-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (alloca): Handle setting C_ALLOCA.
-
-2001-03-20 Jim Blandy <jimb@redhat.com>
-
- * demangle.h (enum gnu_v3_constructor_kinds,
- is_gnu_v3_mangled_ctor, enum gnu_v3_destructor_kinds,
- is_gnu_v3_mangled_dtor): New declarations.
-
-2001-03-14 Nick Clifton <nickc@redhat.com>
-
- * ansidecl.h: Fix copyright dates.
- * demangle.h: Fix copyright dates.
- * floatformat.h: Fix copyright dates.
- * fnmatch.h: Fix copyright dates.
- * getopt.h: Fix copyright dates.
- * libiberty.h: Add FSF copyright notice.
- * md5.h: Fix copyright dates.
- * obstack.h: Fix copyright dates.
- * splay-tree.h: Fix copyright dates.
-
-2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
- John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * libiberty.h: Add lbasename.
-
-2001-03-06 Zack Weinberg <zackw@stanford.edu>
-
- * libiberty.h: Prototype C_alloca; define alloca to either
- __builtin_alloca or C_alloca as appropriate.
-
-2001-03-01 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * safe-ctype.h (_sch_test): Cast enum bit to unsigned short int for pcc
- compatibility.
-
-2001-02-18 lars brinkhoff <lars@nocrew.org>
-
- * dis-asm.h: Add PDP-11 target.
-
-2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * dis-asm.h: Add linux target for S/390.
-
-2001-01-11 Peter Targett <peter.targett@arccores.com>
-
- * dis-asm.h (arc_get_disassembler): Correct declaration.
-
-2001-01-09 Philip Blundell <philb@gnu.org>
-
- * bin-bugs.h (REPORT_BUGS_TO): Set to `bug-binutils@gnu.org'.
-
-2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
-
- * COPYING: Update to current
- ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
- to 19yy as example year in copyright notice).
-
-2000-12-19 Hans-Peter Nilsson <hp@bitrange.com>
-
- * dis-asm.h (struct disassemble_info): New member "section".
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize private_data member.
- Initialize section member.
-
-2000-12-16 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
-
- * safe-ctype.h: Make code work on all targets and not just on
- targets where a char is 8 bits.
-
-2000-12-10 Fred Fish <fnf@be.com>
-
- * bfdlink.h (struct bfd_link_info): Add new allow_shlib_undefined
- member to struct for systems where it is normal to have undefined
- symbols in shared libraries at runtime and the runtime linker
- takes care of redirecting them.
-
-2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
-
- * safe-ctype.h: New file.
-
-2000-12-06 Rodney Brown <RodneyBrown@mynd.com>
-
- * getopt.h obstack.h: Standarize copyright statement.
-
-2000-12-04 Richard Henderson <rth@redhat.com>
-
- * demangle.h: Change "new_abi" to "v3" everywhere.
-
-2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
-
- * libiberty.h: Move #includes to top. Prototype xmalloc_failed.
-
-2000-11-15 Kenneth Block <kenneth.block@compaq.com>
-
- * demangle.h: Add gnat and java demangle styles.
-
-2000-11-04 Hans-Peter Nilsson <hp@bitrange.com>
-
- * hashtab.h (struct htab): Add member return_allocation_failure.
- (htab_try_create): New prototype. Mention which functions may
- return NULL when this is used.
-
-2000-11-03 Hans-Peter Nilsson <hp@bitrange.com>
-
- * hashtab.h: Change void * to PTR where necessary.
-
-2000-10-11 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (splay_tree_predecessor): Declare.
-
-2000-09-29 Hans-Peter Nilsson <hp@axis.com>
-
- * dis-asm.h: Declare cris_get_disassembler, not print_insn_cris.
- Fix typo in comment.
-
-2000-09-28 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * alloca-conf.h: New file (copied from libiberty).
-
-2000-09-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * md5.h (md5_uint32): Choose via INT_MAX instead of UINT_MAX.
-
-2000-09-04 Alex Samuel <samuel@codesourcery.com>
-
- * dyn-string.h: Adjust formatting.
- (dyn_string_insert_char): New macro. New declaration.
-
-2000-08-28 Jason Merrill <jason@redhat.com>
-
- * md5.h: New file.
-
-2000-08-24 Greg McGary <greg@mcgary.org>
-
- * libiberty.h (ARRAY_SIZE): New macro.
-
-2000-07-29 Nick Clifton <nickc@cygnus.com>
-
- * os9k.h: Add copyright notice.
- Fix formatting.
-
-2000-07-22 Jason Eckhardt <jle@cygnus.com>
-
- * dis-asm.h (print_insn_i860): Add prototype.
-
-2000-07-20 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_info): Add new_dtags.
-
-2000-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- * dis-asm.h (print_insn_cris): Declare.
-
-2000-07-19 H.J. Lu (hjl@gnu.org)
-
- * bfdlink.h (bfd_link_info): Add flags and flags_1.
-
-2000-06-05 DJ Delorie <dj@redhat.com>
-
- * MAINTAINERS: new
-
-2000-06-21 Alex Samuel <samuel@codesourcery.com>
-
- * dyn-string.h (dyn_string_init, dyn_string_new,
- dyn_string_delete, dyn_string_release, dyn_string_resize,
- dyn_string_clear, dyn_string_copy, dyn_string_copy_cstr,
- dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert,
- dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr,
- dyn_string_append_char, dyn_string_substring_dyn_string_eq):
- Define as same name with __cxa_ prepended, if IN_LIBGCC2.
- (dyn_string_init, dyn_string_copy, dyn_string_copy_cstr,
- dyn_string_prepend, dyn_string_prepend_cstr, dyn_string_insert,
- dyn_string_insert_cstr, dyn_string_append, dyn_string_append_cstr,
- dyn_string_append_char, dyn_string_substring): Change return type
- to int.
-
-2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
-
- * dis-asm.h (print_insn_m68hc12): Define.
- (print_insn_m68hc11): Likewise.
-
-2000-06-18 Nick Clifton <nickc@redhat.com>
-
- * os9k.h: Change values of MODSYNC and CRCCON due to bug report
- from Russ Magee <rmagee@home.com>.
-
-2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * demangle.h (demangling_styles): Remove trailing comma in enum.
-
- * dyn-string.h (dyn_string_append_char): Change parameter from
- char to int.
-
-2000-06-04 Alex Samuel <samuel@codesourcery.com>
-
- * dyn-string.h: Move here from gcc/dyn-string.h. Add new functions.
-
- * demangle.h (DMGL_GNU_NEW_ABI): New macro.
- (DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.
- (current_demangling_style): Add gnu_new_abi_demangling.
- (GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro.
- (GNU_NEW_ABI_DEMANGLING): Likewise.
- (cplus_demangle_new_abi): New declaration.
-
-Tue May 30 16:53:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * floatformat.h (struct floatformat): Add field name.
-
-2000-05-26 Eli Zaretskii <eliz@is.elta.co.il>
-
- * filenames.h: New file.
- (HAVE_DOS_BASED_FILE_SYSTEM, IS_DIR_SEPARATOR)
- (IS_ABSOLUTE_PATH, FILENAME_CMP): New macros.
-
-2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * getopt.h (getopt): Also check HAVE_DECL_* when prototyping.
-
- * libiberty.h (basename): Likewise.
-
-2000-05-17 S. Bharadwaj Yadavalli <sby@scrugs.lkg.dec.com>
- Rick Gorton <gorton@scrugs.lkg.dec.com>
-
- * bfdlink.h (struct bfd_link_info): Add emitrelocations flag.
-
-2000-05-08 Alan Modra <alan@linuxcare.com.au>
-
- * dis-asm.h (print_insn_tic54x): Declare.
-
-2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
-
- * ansidecl.h: #define __extension__ to nothing if
- GCC_VERSION < 2008.
-
-2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * demangle.h (demangler_engine): Constify.
-
-Thu May 4 17:15:26 2000 Philippe De Muyter <phdm@macqel.be>
-
- * sort.h (sys/types.h): File included unconditionnaly.
- (stddef.h): File include only #ifdef __STDC__.
-
-2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
-
- * symcat.h: Remove #endif label.
-
-2000-04-28 Kenneth Block <block@zk3.dec.com>
- Jason Merrill <jason@casey.cygnus.com>
-
- * demangle.h (libiberty_demanglers): new table for different styles.
- (cplus_demangle_set_style): New function for setting style.
- (cplus_demangle_name_to_style): New function to translate name.
-
-2000-04-24 Mark Mitchell <mark@codesourcery.com>
-
- * hashtab.h (hash_pointer): Declare.
- (eq_pointer): Likewise.
-
-2000-04-23 Mark Mitchell <mark@codesourcery.com>
-
- * sort.h: New file.
-
-Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
- David Mosberger <davidm@hpl.hp.com>
-
- * dis-asm.h (print_insn_ia64): Declare.
-
-Tue Apr 18 16:22:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
-
- * hashtab.h (enum insert_option): New type.
- (htab_find_slot, htab_find_slot_with_hash): Use it.
-
-2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * symcat.h: Honor autoconf macro HAVE_STRINGIZE. Add
- comments/caveats with regard to traditional C behavior.
-
-2000-04-05 Richard Henderson <rth@cygnus.com>
-
- * splay-tree.h (splay_tree_remove): Declare.
-
-2000-04-04 Alan Modra <alan@linuxcare.com.au>
-
- * bin-bugs.h (REPORT_BUGS_TO): Remove translated part.
-
-2000-04-03 Alan Modra <alan@linuxcare.com.au>
-
- * bin-bugs.h: New file.
-
-2000-03-30 Mark Mitchell <mark@codesourcery.com>
-
- * hashtab.h (hashval_t): New type.
- (htab_find_with_hash): Use it as an argument.
- (htab_find_slot_with_hash): Likewise.
-
-2000-03-27 Denis Chertykov <denisc@overta.ru>
-
- * dis-asm.h (print_insn_avr): Declare.
-
-2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
-
- * hashtab.h (htab_trav): Modify type so that first arg is of type
- void **.
- (htab_find_with_hash, htab_find_slot_with_hash): Declare new
- functions.
-
-2000-03-09 Alex Samuel <samuel@codesourcery.com>
-
- * partition.h: New file.
-
-2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
-
- * hashtab.h (struct htab): Add del_f.
- (htab_del): New type.
- (htab_create): Add fourth argument.
-
-2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
-
- * hashtab.h (hash_table_t): Rename to htab_t.
- (struct hash_table): Rename to struct htab. Shorten element
- names. Reorder elements by size.
- (htab_hash, htab_eq, htab_trav): New typedefs for the callback
- function pointers.
- (hash_table_entry_t): Discard; just use void * for element
- type.
-
-2000-03-01 H.J. Lu <hjl@gnu.org>
-
- * bfdlink.h (bfd_link_callbacks): Add a boolean arg to
- the undefined_symbol callback.
-
-2000-02-23 Linas Vepstas <linas@linas.org>
-
- * dis-asm.h (print_insn_i370): Declare.
-
-Tue Feb 22 15:19:54 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_trace): Document return values.
- (sim_set_trace): Declare. Deprecate.
-
-2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * dis-asm.h (struct disassemble_info): Change `length' param of
- read_memory_func to unsigned. Change type of `buffer_length' and
- `octets_per_byte' to unsigned.
- (buffer_read_memory): Change `length' param to unsigned.
-
-2000-02-16 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h: Add prototypes for ARM register name functions.
-
-Wed Feb 9 18:45:49 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wait.h: Delete. No longer used by GDB.
-
-Tue Feb 8 17:01:13 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_resume): Clarify use of SIGGNAL.
- (sim_stop_reason): Clarify meaning of sim_signalled.
-
-2000-02-03 Timothy Wall <twall@redhat.com>
-
- * dis-asm.h (struct disassemble_info): Added octets_per_byte
- field and initialize it to one (1).
-
-2000-01-27 Nick Clifton <nickc@redhat.com>
-
- * dis-asm.h: Add prototype for disassembler_usage().
- Add prototype for arm_disassembler_options().
- Remove prototype for arm_toggle_regnames().
- Add prototype for parse_arm_disassembler_option().
-
-Sat Jan 1 19:06:52 2000 Hans-Peter Nilsson <hp@bitrange.com>
-
- * symcat.h (STRINGX) [!__STDC__ || ALMOST_STDC]: Change "?" to "s"
- to stringify argument s.
-
-Wed Dec 15 11:22:56 1999 Jeffrey A Law (law@cygnus.com)
-
- * hp-symtab.h (HP_LANGUAGE_FORTRAN): New enumeration constant.
- (HP_LANGUAGE_F77): Define using HP_LANGUAGE_FORTRAN.
-
-1999-12-15 Doug Evans <dje@transmeta.com>
-
- * dis-asm.h: Enclose in extern "C" ifdef __cplusplus.
-
-1999-12-05 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (struct splay_tree_node): Rename to ...
- (struct splay_tree_node_s): ... this.
- (struct splay_tree): Rename to ...
- (struct splay_tree_s): ... this.
-
-1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (ATTRIBUTE_MALLOC): New macro.
-
- * libiberty.h (buildargv, dupargv, concat, choose_temp_base,
- make_temp_file, xmalloc, xcalloc, xstrdup, xmemdup): Add
- ATTRIBUTE_MALLOC.
- (xatexit): Remove __GNUC__ check, add ATTRIBUTE_NORETURN.
-
-1999-11-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h: Include stdarg.h when ANSI_PROTOTYPES is defined.
- (asprintf, vasprintf): Provide declarations.
-
-Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
- Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'.
-
-1999-11-04 Jimmy Guo <guo@cup.hp.com>
-
- * hp-symtab.h (dntt_type_fparam): Add doc_ranges, misc_kind
- fields, change location type to CORE_ADDR from int.
- (dntt_type_const): Name the 5th field location_type.
-
-Sun Oct 24 19:11:32 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-d10v.h (SIM_D10V_TS2_DMAP_REGNUM): Define.
-
-1999-10-23 08:51 -0700 Zack Weinberg <zack@bitmover.com>
-
- * hashtab.h: Give hash_table_t a struct tag. Add prototypes
- for clear_hash_table_slot and traverse_hash_table. Correct
- prototype of all_hash_table_collisions.
-
-Sat Oct 23 19:00:13 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-d10v.h: New file.
-
-Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
-
- * hashtab.h: New file.
-
-1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h (HAVE_GCC_VERSION): New macro. Use it instead of
- explicitly testing __GNUC__ and __GNUC_MINOR__.
-
- (ATTRIBUTE_PRINTF): Use `__format__', not `format'.
-
-1999-09-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (make_temp_file): Add a prototype.
-
-Tue Sep 14 00:35:02 1999 Marc Espie <espie@cvs.openbsd.org>
-
- * libiberty.h (basename): OpenBSD has a correct prototype.
- (xrealloc): Remove outdated comment.
-
-1999-09-07 Jeff Garzik <jgarzik@pobox.com>
-
- * libiberty.h (xmemdup): Add prototype for new function.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * dis-asm.h (print_insn_pj): Declare.
-
-1999-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * obstack.h (obstack_grow, obstack_grow0): Move (char*) casts
- in calls to `_obstack_memcpy' from here ...
-
- (_obstack_memcpy): ... to here, except in the __STDC__ case which
- doesn't need it.
-
-1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h (getpwd): Prototype.
-
-1999-08-01 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (splay_tree_insert): Return the new node.
-
-1999-07-11 Ian Lance Taylor <ian@zembu.com>
-
- * ansidecl.h: Copy attribute support macros from egcs.
-
-1999-06-22 Mark Mitchell <mark@codesourcery.com>
-
- * bfdlink.h (struct bfd_link_hash_entry): Add init_function and
- fini_function.
-
-1999-06-20 Mark Mitchell <mark@codesourcery.com>
-
- * mips.h (Elf32_Internal_Msym): New structure.
- (Elf32_External_Msym): Likewise.
- (ELF32_MS_REL_INDEX): New macro.
- (ELF32_MS_FLAGS): Likewise.
- (ELF32_MS_INFO): Likewise.
-
-1999-06-14 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h (arm_toggle_regnames): New prototype.
- (struct diassemble_info): New field: disassembler_options.
-
-1999-04-11 Richard Henderson <rth@cygnus.com>
-
- * bfdlink.h (bfd_elf_version_expr): Rename `match' to `pattern'.
- Add `match' callback function.
-
-1999-04-10 Richard Henderson <rth@cygnus.com>
-
- * bfdlink.h (bfd_link_info): Add no_undefined.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h: Add prototype for print_insn_mcore.
-
-1999-04-02 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (splay_tree_compare_pointers): Declare.
-
-1999-03-30 Mark Mitchell <mark@codesourcery.com>
-
- * splay-tree.h (splay_tree_compare_ints): Declare.
-
-Wed Mar 24 12:46:29 1999 Andrew Cagney <cagney@amy.cygnus.com>
-
- * libiberty.h (basename): Cygwin{,32} should have the prototype.
-
-1999-02-22 Jim Lemke <jlemke@cygnus.com>
-
- * bfdlink.h (bfd_link_info): add field "mpc860c0".
-
-Mon Feb 1 21:05:46 1999 Catherine Moore <clm@cygnus.com>
-
- * dis-asm.h (print_insn_i386_att): Declare.
- (print_insn_i386_intel): Declare.
-
-1998-12-30 Michael Meissner <meissner@cygnus.com>
-
- * dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Cast STREAM and
- FPRINTF_FUNC to avoid compiler warnings.
-
-Wed Dec 30 16:07:14 1998 David Taylor <taylor@texas.cygnus.com>
-
- * dis-asm.h: change void * to PTR (two places).
-
-Mon Dec 14 09:53:31 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * demangle.h: Don't check IN_GCC anymore.
- * splay-tree.h: Likewise.
-
-Tue Dec 8 00:30:31 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- The following changes were made by Elena Zannoni
- <ezannoni@kwikemart.cygnus.com> and Edith Epstein
- <eepstein@sophia.cygnus.com> as part of a project to merge in
- changes made by HP; HP did not create ChangeLog entries.
-
- * dis-asm.h (struct disassemble_info): change the type of stream
- from FILE* to void*, for use with gdb's new type GDB_FILE.
- (fprintf_ftype): change FILE* parameter type to void*.
-
- * demangle.h: (DMGL_EDG): new macro for Kuck and Associates
- (DMGL_STYLE_MASK): modify to include Kuck and Assoc style
- (demangling_styles): add new edg_demangling style
- (EDG_DEMANGLING_STYLE_STRING): new macro
- (EDG_DEMANGLING): new macro
- (DMGL_HP): new macro, for HP/aCC compiler.
- (DMGL_STYLE_MASK): modify to include new HP's style.
- (demangling_styles): add new hp_demangling value.
- (HP_DEMANGLING_STYLE_STRING): new macro.
- (ARM_DEMANGLING): coerce to int.
- (HP_DEMANGLING): new macro.
-
- * hp-symtab.h: rewritten, from HP.
- (quick_procedure): change type of language field to unsigned int
- (quick_module): change type of language field to unsigned int
- (struct dntt_type_svar): add field thread_specific.
- (hp_language): add languages modcal and dmpascal.
-
-Fri Nov 20 13:14:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * libiberty.h (basename): Add prototype for FreeBSD.
-
-Fri Nov 13 19:19:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * libiberty.h: Prototype xcalloc.
-
-Sun Nov 8 17:42:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * ansidecl.h: Wrap problematic macros with !IN_GCC.
-
- * demangle.h: Never define PARAMS().
- * splay-tree.h: Likewise.
-
-Sat Nov 7 18:30:20 1998 Peter Schauer <peter.schauer@regent.e-technik.tu-muenchen.de>
-
- * dis-asm.h (print_insn_vax): Declare.
-
-Sat Nov 7 16:04:03 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * demangle.h: Don't include gansidecl.h.
- * splay-tree.h: Likewise.
-
-1998-10-26 16:03 Ulrich Drepper <drepper@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Add new field optimize.
-
-Thu Oct 22 19:58:00 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * splay-tree.h: Wrap function pointer parameter declarations in
- PARAMS() macro.
-
-1998-10-21 Mark Mitchell <mark@markmitchell.com>
-
- * splay-tree.h: New file.
-
-Fri Oct 9 00:02:03 1998 Jeffrey A Law (law@cygnus.com)
-
- * Merge devo and egcs include directories.
-
-Sat Sep 5 12:16:33 1998 Jeffrey A Law (law@cygnus.com)
-
- * getopt.h, obstack.h: Updated from gcc.
-
-1998-08-03 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * libiberty.h (xexit): Change decl to use modern GCC attribute
- to indicate exit does not return.
-
-Mon Jun 1 13:48:32 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * obstack.h: Update to latest FSF version.
-
-Tue Feb 24 13:05:02 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * dis-asm.h (disassemble_info): Member `symbol' renamed to `symbols'
- and made an "asymbol **". New member num_symbols.
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Update.
-
-Tue Feb 17 12:32:18 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_fetch_register, sim_store_register): Add
- register length parameter. Functions return actual length of
- register.
-
-Thu Feb 12 16:29:01 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * getopt.h: Update to latest FSF version.
-
-Wed Feb 11 16:56:06 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * symcat.h: New file.
-
-Mon Feb 2 17:13:31 1998 Steve Haworth <steve@pm.cse.rmit.EDU.AU>
-
- * dis-asm.h (print_insn_tic30): Declare.
-
-Thu Jan 22 16:23:59 1998 Fred Fish <fnf@cygnus.com>
-
- * dis-asm.h: Add flag INSN_HAS_RELOC to tell disassembly
- function there is a reloc on this line.
-
-Mon Dec 8 11:22:23 1997 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h: Remove prototype of disasm_symaddr() as this function
- no longer exists.
-
-Tue Dec 2 10:20:53 1997 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h (disasm_symaddr): New prototype.
-
-Mon Dec 1 11:29:35 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * callback.h (CB_SYSCALL): Comment out arg names in prototypes.
-
-Wed Nov 26 16:47:58 1997 Michael Meissner <meissner@cygnus.com>
-
- * callback.h (CB_SYSCALL): Consistantly use names for prototype
- arguments.
-
-Wed Nov 26 11:39:30 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * callback.h (CB_SYSCALL): Change byte count arguments to
- {read,write}_mem to `int'. New member `magic'.
- (CB_SYSCALL_MAGIC,CB_SYSCALL_INIT): New macros.
-
-Tue Nov 25 01:35:52 1997 Doug Evans <devans@seba.cygnus.com>
-
- * callback.h (struct stat): Move forward decl up.
- (host_callback): Pass stat struct pointer to stat,fstat.
- (CB_SYS_nnn): Reorganize.
- (CB_SYSCALL): New members p1,p2.
- (cb_host_to_target_stat): Delete fourth arg.
-
-Sat Nov 22 23:34:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_stop_reason): Clarify sim_signalled SIGRC
- argument.
-
-Mon Nov 17 14:00:51 1997 Doug Evans <devans@seba.cygnus.com>
-
- * callback.h (CB_TARGET_DEFS_MAP): Renamed from target_defs_map.
- (host_callback): Add stat, fstat, syscall_map, errno_map, open_map,
- signal_map, stat_map.
- (errn_map,open_map): Renamed to cb_init_foo_map.
- (cb_host_to_target_errno,cb_target_to_host_open): Renamed from
- host_to_target_errno,target_to_host_open.
- (cb_read_target_syscall_maps): Add prototype.
- (cb_target_to_host_syscall): Likewise.
- (cb_host_to_target_stat): Likewise.
- (cb_syscall): Likewise.
- (CB_SYS_{exit,open,close,read,write,lseek,unlink,getpid,kill,fstat,
- argvlen,argv,chdir,stat,chmod,utime,time}): Define.
- (CB_SYSCALL): New type.
- (CB_RC): New enum.
-
-Fri Nov 7 10:34:09 1997 Rob Savoye <rob@darkstar.cygnus.com>
-
- * libiberty.h: Add extern "C" { so it can be used with C++
- programs.
- * remote-sim.h: Add extern "C" { so it can be used with C++
- programs.
-
-Tue Oct 14 16:07:51 1997 Nick Clifton <nickc@cygnus.com>
-
- * dis-asm.h (struct disassemble_info): New field
- 'symbol_at_address_func'.
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise new field with
- generic_symbol_at_address.
-
-Mon Oct 13 10:17:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h: Clarify sim_read, sim_write MEM argument.
-
-Wed Sep 24 18:03:10 1997 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * remote-sim.h (SIM_RC): Add a bunch of new return codes for
- breakpoint stuff.
- * Add functions to tell the simulator to set/clear/enable/disable
- intrinsic breakpoints.
-
-Thu Aug 28 19:41:42 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * libiberty.h (dupargv): Add prototype.
-
-Tue Aug 26 12:25:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_create_inferior): Add ABFD arg. Document.
-
-Mon Aug 25 10:50:51 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_open): Add ABFD arg. Document.
-
-Fri Aug 8 16:43:56 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * dis-asm.h (arc_get_disassembler): Declare.
-
-Wed Jul 30 11:39:50 1997 Per Bothner <bothner@deneb.cygnus.com>
-
- * demangle.h (DMGL_JAVA): New option to request Java demangling.
-
-Tue Jul 22 17:59:54 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * libiberty.h (PEXECUTE_*): Define.
- (pexecute, pwait): Declare.
-
-Fri Jun 6 13:02:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_kill): Mark as depreciated.
-
-Fri May 23 13:43:41 1997 Fred Fish <fnf@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Add task_link member.
-
-Thu May 22 11:32:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h: Review documentation. Clarify restrictions on
- when functions can be called.
-
-Wed May 21 16:47:53 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_set_profile_size): Add prototype, document as
- depreciated.
-
-Tue May 20 09:32:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_open): Add callback struct.
- (sim_set_callbacks): Drop SIM_DESC argument. Document.
- (sim_size): Remove recently added SIM_DESC argument. Document.
-
-Mon May 19 19:14:44 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h: Pass SD into sim_size.
-
-Thu May 15 01:24:16 1997 Mark Alexander <marka@cygnus.com>
-
- * obstack.h (obstack_specify_allocation_with_arg, obstack_chunkfun,
- obstack_freefun): Eliminate compile warnings in gdb.
-
-Tue Apr 22 10:24:34 1997 Fred Fish <fnf@cygnus.com>
-
- * floatformat.h (floatformat_byteorders): Add comments for previous
- formats and add floatformat_littlebyte_bigword, primarily for ARM.
- Add declaration for floatformat_ieee_double_littlebyte_bigword.
-
-Fri Apr 18 13:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.h (sim_stop): New interface - asynchronous
- notification of a request to stop / suspend the running
- simulation.
-
- * remote-sim.h (enum sim_stop): Add sim_running and sim_polling as
- states for use internal to simulators.
-
- * callback.h (struct host_callback_strut): Put a magic number at
- the end of the struct to allow basic checking.
- (struct host_callback_struct ): Add poll_quit - so
- that the console etc can be polled at regular intervals.
-
-Thu Apr 17 02:17:12 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.h (struct _bfd): Declare.
- (sim_load): Return SIM_RC. New arg `abfd'.
- (sim_create_inferior): Return SIM_RC. Delete arg `start_address'.
-
-Wed Apr 2 17:09:12 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * remote-sim.h (sim_trace, sim_size): Make these global. They
- will go away shortly.
-
-Wed Apr 2 15:23:49 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.h (SIM_OPEN_KIND, SIM_RC): New enums.
- (sim_open): New argument `kind'.
-
-Wed Apr 2 14:45:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * COPYING: Update FSF address.
-
-Fri Mar 28 15:29:54 1997 Mike Meissner <meissner@cygnus.com>
-
- * callback.h (top level): Include stdarg.h or varargs.h if
- va_start is not defined.
- (host_callback_struct): Make {,e}vprintf_filtered take a va_list
- instead of void *, since va_list might be an array or structure
- type.
-
-Fri Mar 28 15:44:41 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * libiberty.h (basename): Add prototype for glibc and linux.
-
-Mon Mar 17 19:22:12 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objalloc.h: New file.
-
-Mon Mar 17 14:57:55 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * remote-sim.h: New file, copied in from gdb/remote-sim.h. One
- day this will be placed in a directory of its own.
-
-Sat Mar 15 19:00:14 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * obstack.h: Update to current FSF version.
-
-Thu Mar 6 15:46:59 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * callback.h (struct host_callback_struct): Add callbacks -
- flush_stdout, write_stderr, flush_stderr, vprintf_filtered,
- evprintf_filtered. Delete redundant callbacks - printf_filtered.
-
-Thu Feb 27 23:18:27 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Remove lprefix and lprefix_len
- fields.
-
-Tue Feb 25 00:10:49 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize
- bytes_per_chunk and display_endian.
-
-Mon Feb 24 17:47:02 1997 Ian Lance Taylor <ian@cygnus.com>
-
- From Eric Youngdale <eric@andante.jic.com>:
- * bfdlink.h (struct bfd_elf_version_expr): Define.
- (struct bfd_elf_version_deps): Define.
- (struct bfd_elf_version_tree): Define.
-
-Thu Feb 6 14:20:01 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * dis-asm.h: (disassemble_info): Add new fields
- bytes_per_chunk and display_endian to control the
- display of raw instructions.
-
-Fri Dec 27 22:17:37 1996 Fred Fish <fnf@cygnus.com>
-
- * dis-asm.h (print_insn_tic80): Declare.
-
-Sun Dec 8 17:11:12 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * callback.h (host_callback): New member `error'.
-
-Wed Nov 20 00:40:23 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * callback.h: New file, moved here from gdb.
-
-Mon Nov 18 16:34:00 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * libiberty.h: Checkin again; last checkin failed due to sticky tag.
-
-Wed Nov 13 08:22:00 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * libiberty.h: Revert last commit due to conflicts with hpux
- system headers.
-
-Tue Nov 12 16:31:00 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * libiberty.h: Move prototypes from argv.c here.
-
-Thu Oct 31 14:56:18 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * ansidecl.h (VPARAMS,VA_START): Define.
-
-Fri Oct 25 12:08:04 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dis-asm.h (disassemble_info): Add bytes_per_line field.
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize bytes_per_line field.
-
-Thu Oct 24 17:10:01 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dis-asm.h (disassemble_info): Add symbol field.
- (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialize symbol field.
-
-Thu Oct 17 11:17:40 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * dis-asm.h (print_insn_m32r): Declare.
-
-Mon Oct 14 23:56:52 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * libiberty.h: Declare parameter types for xmalloc and xrealloc.
-
-Thu Oct 3 13:45:27 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * fnmatch.h: New file.
-
-Thu Oct 3 10:33:14 1996 Jeffrey A Law (law@cygnus.com)
-
- * dis-asm.h (print_insn_mn10x00): Delete declaration.
- (print_insn_mn10200, print_insn_mn10300): Declare.
-
-Wed Oct 2 21:24:43 1996 Jeffrey A Law (law@cygnus.com)
-
- * dis-asm.h (print_insn_mn10x00): Declare.
-
-Mon Sep 30 13:56:11 1996 Fred Fish <fnf@cygnus.com>
-
- * libiberty.h: Remove #ifndef PRIVATE_XMALLOC.
-
-Sat Aug 31 13:27:06 1996 Jeffrey A Law (law@cygnus.com)
-
- * dis-asm.h (print_insn_v850): Declare.
-
-Tue Aug 13 16:10:30 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * obstack.h: Change bcopy to memcpy. Works better on Posix
- systems, which generally lack bcopy.
-
-Mon Aug 12 17:03:18 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * ansidecl.h: Change WIN32 to _WIN32.
-
-Fri Jul 26 13:58:18 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dis-asm.h: Add flavour field.
- (print_insn_alpha): Declare.
- (print_insn_alpha_osf, print_insn_alpha_vms): Don't declare.
- (INIT_DISASSEMBLE_INFO): Initialize flavour field.
-
-Tue Jul 23 17:37:58 1996 Fred Fish <fnf@cygnus.com>
-
- * libiberty.h (PRIVATE_XMALLOC): Enclose xmalloc/xrealloc
- definitions inside #ifndef so that programs that want to
- can define PRIVATE_XMALLOC and then define xmalloc and
- xrealloc anyway they want.
- (basename): Document in source that we can't declare the
- parameter type because it is declared inconsistently across
- different systems.
-
-Mon Jul 22 13:16:13 1996 Richard Henderson <rth@tamu.edu>
-
- * dis-asm.h (print_insn_alpha): Don't declare.
- (print_insn_alpha_osf, print_insn_alpha_vms): Declare.
-
-Wed Jul 17 14:45:12 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * dis-asm.h: (print_insn_d10v): Declare.
-
-Mon Jul 15 16:55:38 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dis-asm.h: Get rid of decls for print_insn_i8086,
- print_insn_sparc64 and print_insn_sparclite.
- * (INIT_DISASSEMBLE_INFO): Split into two pieces. One,
- INIT_DISASSEMBLE_INFO_NO_ARCH inits everything except for endian,
- mach, and arch.
-
-Fri Jul 12 10:19:27 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dis-asm.h (print_insn_i8086): Declare.
-
-Wed Jul 3 16:02:39 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dis-asm.h (print_insn_sparclite): Declare.
-
-Tue Jun 18 16:02:46 1996 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * dis-asm.h (print_insn_h8300s): Declare.
-
-Tue Jun 18 15:11:33 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * fopen-vms.h: New file.
-
-Tue Jun 4 18:58:16 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Add notice_all field.
-
-Fri Apr 26 10:33:12 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * demangle.h (#ifdef IN_GCC): #include "gansidecl.h".
- (PROTO,PTR,const): Delete.
-
-Mon Apr 22 17:27:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Add traditional_format field.
-
-Mon Apr 15 15:16:56 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * libiberty.h (choose_temp_base): Add prototype.
-
-Tue Mar 12 17:29:46 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (bfd_wrapped_link_hash_lookup): Declare.
- (struct bfd_link_info): Add wrap_hash field.
-
-Wed Feb 14 16:49:17 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
-
- * ieee.h (ieee_record_enum_type): Define
- ieee_external_reference_info_enum.
-
-Fri Feb 2 17:09:25 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * dis-asm.h (DISASM_RAW_INSN): Delete.
-
-Tue Jan 23 09:21:47 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * dis-asm.h (INIT_DISASSEMBLE_INFO): Set endian to BFD_ENDIAN_UNKNOWN.
- New argument FPRINTF_FUNC.
-
-Mon Jan 22 16:37:59 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * dis-asm.h (disassemble_info): New members arch, mach, endian.
- (INIT_DISASSEMBLE_INFO): Initialize them.
- (DISASM_RAW_INSN{,FLAG}): Define.
-
-Thu Jan 18 11:32:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * demangle.h (cplus_demangle_opname): Change opname parameter to
- const char *.
- (cplus_mangle_opname): Change return type and opname parameter to
- const char *.
-
-Fri Jan 5 00:01:22 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.h (enum ieee_record): Add ieee_asn_record_enum,
- ieee_at_record_enum, ieee_ty_record_enum, ieee_atn_record_enum,
- ieee_bb_record_enum, and ieee_be_record_enum.
-
-Wed Jan 3 13:12:09 1996 Fred Fish <fnf@cygnus.com>
-
- * obstack.h: Update copyright to 1996.
- (_obstack_memory_used): Declare.
- (obstack_memory_used): Define macro.
-
-Thu Dec 28 11:42:12 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * libiberty.h (xstrdup): Declare.
-
-Thu Dec 21 14:47:17 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * wait.h: Protect all macros with #ifndef.
-
-Tue Oct 24 21:45:40 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Add static_link field.
-
-Tue Sep 12 16:28:04 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_callbacks): Add symbol parameter to
- warning callback.
-
-Fri Sep 1 13:11:51 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_callbacks): Change warning callback
- to take BFD, section, and address arguments.
-
-Thu Aug 31 16:45:12 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Tue Aug 22 03:18:23 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
-
- * libiberty.h: Declare xstrerror. From Pat Rankin.
-
-Mon Aug 21 18:11:36 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Wed Aug 2 08:14:12 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * dis-asm.h (print_insn_sparc64): Declare.
-
-Mon Jul 10 13:26:49 1995 Eric Youngdale <eric@aib.com>
-
- * bfdlink.h (struct bfd_link_info): Add new field symbolic.
-
-Sun Jul 2 17:48:40 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Change type of base_file to
- PTR.
-
-Thu Jun 29 00:02:45 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * bfdlink.h (struct bfd_link_info): Added base_file member.
-
-Tue Jun 20 16:40:04 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * ansidecl.h: win32s is ANSI enough.
-
-Thu May 18 04:25:50 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
-
- Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
-
- * dis-asm.h (print_insn_arm): Delete declaration.
- (print_insn_{little,big}_arm): New declarations.
-
- * floatformat.h (floatformat_arm_ext): Declare.
-
-Sat May 13 10:14:08 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * bfdlink.h (subsytem, stack_heap_parameters): New.
-
-Thu May 4 14:36:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * demangle.h: Don't include ansidecl.h if IN_GCC.
-
-Tue Feb 21 00:37:28 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * hp-symtab.h: Don't use bitfield enumerations, the HP C compiler
- does not handle them correctly.
-
-Thu Feb 9 14:20:27 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * libiberty.h (basename): Don't declare parameter type; some
- systems have this in their header files.
-
-Wed Feb 8 17:35:38 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (struct bfd_link_hash_entry): Change format of common
- symbol information, to remove restrictions on maximum size and
- alignment power, by using a pointer to a structure instead.
-
-Mon Feb 6 14:55:32 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bfdlink.h (enum bfd_link_hash_type): Rename bfd_link_hash_weak
- to bfd_link_hash_undefweak. Add bfd_link_hash_defweak.
-
-Mon Jan 16 21:00:23 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * dis-asm.h (GDB_INIT_DISASSEMBLE_INFO, etc): Remove all
- GDB-specific definitions.
-
-Sun Jan 15 18:39:35 1995 Steve Chamberlain <sac@splat>
-
- * dis-asm.h (print_insn_w65): Declare.
-
-Thu Jan 12 17:51:17 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * libiberty.h (hex_p): Fix sense of test.
-
-Wed Jan 11 22:36:40 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * libiberty.h (_hex_array_size, _hex_bad, _hex_value, hex_init,
- hex_p, hex_value): New macros and declarations, for hex.c.
-
-Fri Jan 6 17:44:14 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * dis-asm.h: Make idempotent.
-
-Wed Dec 14 13:08:43 1994 Stan Shebs <shebs@andros.cygnus.com>
-
- * progress.h: New file, empty definitions for progress macros.
-
-Fri Nov 25 00:14:05 1994 Jeff Law (law@snake.cs.utah.edu)
-
- * hp-symtab.h: New file describing the debug symbols emitted
- by the HP C compilers.
-
-Fri Nov 11 15:48:37 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * bfdlink.h (struct bfd_link_hash_entry): Change u.c.size from 24
- to 26 bits, and change u.c.alignment_power from 8 to 6 bits. 6
- bit in the alignment power is enough for a 64 bit address space.
-
-Mon Oct 31 13:02:51 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * demangle.h (cplus_mangle_opname): Declare.
-
-Tue Oct 25 11:38:02 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * bfdlink.h (struct bfd_link_callbacks): Fix comments for
- multiple_common field.
-
-Sun Sep 04 17:58:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
- * dis-asm.h: Add support for the ARM.
-
-Wed Aug 10 12:51:41 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * libiberty.h (strsignal): Document its existence even if we
- can't declare it.
-
-Tue Aug 2 14:40:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * os9k.h: Remove u_int16, u_int32, and owner_id typedefs and
- expand their uses. Those names conflict with Mach headers.
-
-Fri Jul 22 14:17:12 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * bfdlink.h (struct bfd_link_hash_entry): Change u.c.size into a
- bitfield. Add field u.c.alignment_power.
-
-Sun Jul 10 00:26:39 1994 Ian Dall (dall@hfrd.dsto.gov.au)
-
- * dis-asm.h: Add print_insn_ns32k declaration.
-
-Mon Jun 20 17:13:29 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * bfdlink.h (bfd_link_hash_table): Make creator a const pointer.
-
-Sat Jun 18 16:09:32 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * demangle.h (cplus_demangle_opname): Declare.
-
-Thu Jun 16 15:19:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_info): Add new field shared.
-
-Mon Jun 6 14:39:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_hash_entry): Remove written field:
- not needed for all backends.
-
-Thu Apr 28 19:06:50 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * dis-asm.h (disassembler): Declare.
-
-Fri Apr 1 00:38:17 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu)
-
- * obstack.h: Delete use of IN_GCC to control whether
- stddef.h or gstddef.h is included.
-
-Tue Mar 22 13:06:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (enum bfd_link_order_type): Add bfd_data_link_order.
- (struct bfd_link_order): Add data field to union.
-
-Mon Mar 21 18:45:26 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Change bitsize argument
- to add_to_set to reloc. Remove bitsize argument from constructor.
- Comment that reloc_overflow, reloc_dangerous and unattached_reloc
- must handle NULL pointers for reloc location.
- (enum bfd_link_order_type): Add bfd_section_reloc_link_order and
- bfd_symbol_reloc_link_order.
- (struct bfd_link_order): Add reloc field to union.
- (struct bfd_link_order_reloc): Define.
-
-Mon Mar 14 12:27:50 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * ieee-float.h: Removed; no longer used.
-
-Tue Mar 1 18:10:49 1994 Kung Hsu (kung@mexican.cygnus.com)
-
- * os9k.h: os9000 target specific header file, the header of the
- object file is used now.
-
-Sun Feb 27 21:52:26 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * floatformat.h: New file, intended to replace ieee-float.h.
-
-Sun Feb 20 17:15:42 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
-
- * ansidecl.h (ANSI_PROTOTYPES): Define if using ANSI prototypes.
-
-Wed Feb 16 01:07:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * libiberty.h: Don't declare strsignal, to avoid conflicts with
- Solaris system header files.
-
-Sat Feb 12 22:11:32 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * libiberty.h (xexit): Use __volatile__ to avoid losing if
- compiling with gcc -traditional.
-
-Thu Feb 10 14:05:41 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * libiberty.h: New file. Declares functions provided by
- libiberty.
-
-Tue Feb 8 05:19:52 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- Handle obstack_chunk_alloc returning NULL. This allows
- obstacks to be used by libraries, without forcing them
- to call exit or longjmp.
- * obstack.h (struct obstack): Add alloc_failed flag.
- _obstack_begin, _obstack_begin_1): Declare to return int, not void.
- (obstack_finish): If alloc_failed, return NULL.
- (obstack_base, obstack_next_free, objstack_object_size):
- If alloc_failed, return 0.
- (obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
- obstack_int_grow, obstack_blank): If alloc_failed, do nothing that
- could corrupt the obstack.
-
-Mon Jan 24 15:06:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Add name, reloc_name and
- addend argments to reloc_overflow callback.
-
-Fri Jan 21 19:13:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h (print_insn_big_powerpc, print_insn_little_powerpc,
- print_insn_rs6000): Declare.
-
-Thu Jan 6 14:15:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Add bitsize argument to
- add_to_set field. Add new callback named constructor.
-
-Thu Dec 30 10:44:06 1993 Ian Lance Taylor (ian@rtl.cygnus.com)
-
- * bfdlink.h: New file for new BFD linker backend routines.
-
-Mon Nov 29 10:43:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h (enum dis_insn_tyupe): Remove non-ANSI trailing comma.
-
-Sat Oct 2 20:42:26 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h: Move comment to right place.
-
-Mon Aug 9 19:03:35 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * obstack.h (obstack_chunkfun, obstack_freefun): Add defns from
- previous version. Are these Cygnus local changes?
-
-Fri Aug 6 17:05:47 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * getopt.h, obstack.h: Update to latest FSF version.
-
-Mon Aug 2 14:45:29 1993 John Gilmore (gnu@cygnus.com)
-
- * dis-asm.h: Move enum outside of struct defn to avoid warnings.
-
-Mon Aug 2 08:49:30 1993 Stu Grossman (grossman at cygnus.com)
-
- * wait.h (WEXITSTATUS, WSTOPSIG): Mask down to 8 bits. This is
- for systems that store stuff into the high 16 bits of a wait
- status.
-
-Fri Jul 30 18:38:02 1993 John Gilmore (gnu@cygnus.com)
-
- * dis-asm.h: Add new fields insn_info_valid, branch_delay_insns,
- data_size, insn_type, target, target2. These are used to return
- information from the instruction decoders back to the calling
- program. Add comments, make more readable.
-
-Mon Jul 19 22:14:14 1993 Fred Fish (fnf@deneb.cygnus.com)
-
- * nlm: New directory containing NLM/NetWare includes.
-
-Thu Jul 15 12:10:04 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * dis-asm.h (struct disassemble_info): New field application_data.
-
-Thu Jul 15 12:41:15 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h: Added declaration of print_insn_m88k.
-
-Fri Jul 2 10:31:59 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ansidecl.h: Use ANSI macros if __mips and _SYSTYPE_SVR4 are
- defined, since RISC/OS cc handles ANSI declarations in SVR4 mode
- but does not define __STDC__.
-
-Sun Jun 20 18:27:52 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
-
- * dis-asm.h: Don't need to include ansidecl.h any more.
-
-Fri Jun 18 03:22:10 1993 John Gilmore (gnu@cygnus.com)
-
- * oasys.h: Eliminate "int8_type", "int16_type", "int32_type", and
- their variants. These changes are coordinated with corresponding
- changes in ../bfd/oasys.c.
-
-Wed Jun 16 10:43:08 1993 Fred Fish (fnf@cygnus.com)
-
- * bfd.h: Note that it has been removed.
-
-Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- Support for H8/300-H
- * dis-asm.h (print_insn_h8300, print_insn_h8300h): Declare it.
-
-Tue Jun 1 07:35:03 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * ansidecl.h (const): Don't define it if it's already defined.
-
-Thu May 27 18:19:51 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * dis-asm.h (print_insn_hppa): Declare it.
-
- * bfd.h: Moved to bfd directory. Small stub here includes it
- without requiring "-I../bfd".
-
-Thu Apr 29 12:06:13 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * bfd.h: Updated with BSF_FUNCTION.
-
-Mon Apr 26 18:15:50 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h, dis-asm.h: Updated with Hitachi SH.
-
-Fri Apr 23 18:41:38 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: Updated with alpha changes.
- * dis-asm.h: Added alpha.
-
-Fri Apr 16 17:35:30 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * bfd.h: Update for signed bfd_*get_*.
-
-Thu Apr 15 09:24:21 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * bfd.h: Updated for file_truncated error.
-
-Thu Apr 8 10:53:47 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ansidecl.h: If no ANSI, define const to be empty.
-
-Thu Apr 1 09:00:10 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * dis-asm.h: Declare a29k and i960 print_insn_*.
-
- * dis-asm.h: Add print_address_func and related stuff.
-
- * dis-asm.h (dis_asm_read_memory): Fix prototype.
-
-Wed Mar 31 17:40:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h: Add print_insn_sparc.
-
-Wed Mar 31 17:51:42 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Updated for BFD_RELOC_MIPS_GPREL and bfd_[gs]et_gp_size
- prototypes.
-
-Wed Mar 31 16:35:12 1993 Stu Grossman (grossman@cygnus.com)
-
- * dis-asm.h: (disassemble_info): Fix typo in prototype of
- dis_asm_memory_error().
-
-Tue Mar 30 19:09:23 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h (disassembler_info): Add read_memory_func,
- memory_error_func, buffer, and length.
- ({GDB_,}INIT_DISASSEMBLE_INFO): Set them.
- print_insn_*: Remove second argument.
-
-Tue Mar 30 14:48:55 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: Update for lma field of section.
-
-Tue Mar 30 12:22:55 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * ansidecl.h: Use ANSI versions on AIX regardless of __STDC__.
-
-Fri Mar 19 14:49:49 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * dis-asm.h: Add h8500.
-
-Thu Mar 18 13:49:09 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * ieee-float.h: Moved from ../gdb.
- * dis-asm.h: New file. Interface to dis-assembler.
-
-Thu Mar 11 10:52:57 1993 Fred Fish (fnf@cygnus.com)
-
- * demangle.h (DMGL_NO_OPTS): Add define (set to 0) to use
- in place of bare 0, for readability reasons.
-
-Tue Mar 2 17:50:11 1993 Fred Fish (fnf@cygnus.com)
-
- * demangle.h: Replace all references to cfront with ARM.
-
-Tue Feb 23 12:21:14 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update for new elements in JUMP_TABLE.
-
-Tue Feb 16 00:51:30 1993 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update for BFD_VERSION 2.1.
-
-Tue Jan 26 11:49:20 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update for SEC_IS_COMMON flag.
-
-Tue Jan 19 12:25:12 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfd.h: Update for bfd_asymbol_value bug fix.
-
-Fri Jan 8 16:37:18 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfd.h: Update to include ECOFF tdata and target_flavour.
-
-Sun Dec 27 17:52:30 1992 Fred Fish (fnf@cygnus.com)
-
- * bfd.h: Add declaration for bfd_get_size().
-
-Tue Dec 22 22:42:46 1992 Fred Fish (fnf@cygnus.com)
-
- * demangle.h: Protect file from multiple inclusions with
- #if !defined(DEMANGLE_H)...#define DEMANGLE_H...#endif.
-
-Mon Dec 21 21:25:50 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h: Update to get hppa_core_struct from bfd.c.
-
-Thu Dec 17 00:42:35 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update to get tekhex tdata name change from bfd.
-
-Mon Nov 9 23:55:42 1992 John Gilmore (gnu@cygnus.com)
-
- * ansidecl.h: Update comments to discourage use of EXFUN.
-
-Thu Nov 5 16:35:44 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update to bring in SEC_SHARED_LIBRARY.
-
-Thu Nov 5 03:21:32 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update to match EXFUN, bfd_seclet_struct, and SDEF
- cleanups in bfd.
-
-Wed Nov 4 07:28:05 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * bout.h (N_CALLNAME, N_BALNAME): Define as char-type values, so
- widening works consistently.
-
-Fri Oct 16 03:17:08 1992 John Gilmore (gnu@cygnus.com)
-
- * getopt.h: Update to Revised Standard FSF Version.
-
-Thu Oct 15 21:43:22 1992 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * getopt.h (struct option): use the provided enum for has_arg.
-
- * demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING,
- LUCID_DEMANGLING): ultrix compilers require enums to be
- enums and ints to be ints and casts where they meet. cast some
- enums into ints.
-
-Thu Oct 15 04:35:51 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update after comment changes.
-
-Thu Oct 8 09:03:02 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h (bfd_get_symbol_leading_char): new macro for getting in xvec
-
-Thu Sep 3 09:10:50 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h (struct reloc_howto_struct): size needs to be signed if
- it's going to hold negative values.
-
-Sun Aug 30 17:50:27 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * demangle.h: New file, moved from ../gdb. Made independent
- of gdb. Allow demangling style option to be passed as a
- parameter to cplus_demangle(), but using the
- current_demangling_style global as the default.
-
-Sat Aug 29 10:07:55 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Merge comment change from current FSF version.
-
-Thu Aug 27 12:59:29 1992 Brendan Kehoe (brendan@cygnus.com)
-
- * bfd.h: add we32k
-
-Tue Aug 25 15:07:47 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: new after Z8000 stuff
-
-Mon Aug 17 09:01:23 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * bfd.h: Regenerated after page/segment size changes.
-
-Sat Aug 1 13:46:31 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Merge changes from current FSF version.
-
-Mon Jul 20 21:06:23 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h (area_id, flags): Remove, replace with extra_arg,
- use_extra_arg, and maybe_empty_object.
- * obstack.h (OBSTACK_MAYBE_EMPTY_OBJECT, OBSTACK_MMALLOC_LIKE):
- Remove, replaced by maybe_empty_object and use_extra_arg bitfields.
- * obstack.h (obstack_full_begin, _obstack_begin): Remove area_id
- and flags arguments.
- * obstack.h (obstack_alloc_arg): New macro to set extra_arg.
-
-Thu Jul 16 08:12:44 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: new after adding BFD_IS_RELAXABLE
-
-Sat Jul 4 03:22:23 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Regen after adding BSF_FILE.
-
-Mon Jun 29 14:18:36 1992 Fred Fish (fnf at sunfish)
-
- * obstack.h: Convert bcopy() use to memcpy(), which is more
- portable, more standard, and can take advantage of gcc's builtin
- functions for increased performance.
-
-Thu Jun 25 04:46:08 1992 John Gilmore (gnu at cygnus.com)
-
- * ansidecl.h (PARAMS): Incorporate this macro from gdb's defs.h.
- It's a cleaner way to forward-declare function prototypes.
-
-Fri Jun 19 15:46:32 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h: HPPA merge.
-
-Tue Jun 16 21:30:56 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: gratuitous white space changes merged from other prep
- releases.
-
-Thu Jun 11 01:10:55 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Regen'd from bfd.c after removing elf_core_tdata_struct.
-
-Mon May 18 17:29:03 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: merged changes from make-3.62.11.
-
- * getopt.h: merged changes from grep-1.6 (alpha).
-
-Fri May 8 14:53:32 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: merged changes from bison-1.18.
-
-Sat Mar 14 17:25:20 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Add "area_id" and "flags" members to obstack
- structure. Add obstack_chunkfun() and obstack_freefun() to
- set functions explicitly. Convert maybe_empty_object to
- a bit in "flags".
-
-Thu Feb 27 22:01:02 1992 Per Bothner (bothner@cygnus.com)
-
- * wait.h (WIFSTOPPED): Add IBM rs6000-specific version.
-
-Fri Feb 21 20:49:20 1992 John Gilmore (gnu at cygnus.com)
-
- * obstack.h: Add obstack_full_begin.
- * bfd.h, obstack.h: Protolint.
-
-Thu Jan 30 01:18:42 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Remove comma from enum declaration.
-
-Mon Jan 27 22:01:13 1992 Steve Chamberlain (sac at cygnus.com)
-
- * bfd.h : new target entr, bfd_relax_section
-
-Wed Dec 18 17:19:44 1991 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h, ieee.h: ANSIfy enums.
-
-Thu Dec 12 20:59:56 1991 John Gilmore (gnu at cygnus.com)
-
- * fopen-same.h, fopen-bin.h: New files for configuring
- whether fopen distinguishes binary files or not. For use
- by host-dependent config files.
-
-Sat Nov 30 20:46:43 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * bfd.h: change the documentation format.
-
- * created coff, elf and opcode and aout directories. Moved:
-
- aout64.h ==> aout/aout64.h
- ar.h ==> aout/ar.h
- a.out.encap.h ==> aout/encap.h
- a.out.host.h ==> aout/host.h
- a.out.hp.h ==> aout/hp.h
- a.out.sun4.h ==> aout/sun4.h
- ranlib.h ==> aout/ranlib.h
- reloc.h ==> aout/reloc.h
- stab.def ==> aout/stab.def
- stab.gnu.h ==> aout/stab_gnu.h
-
- coff-a29k.h ==> coff/a29k.h
- coff-h8300.h ==> coff/h8300.h
- coff-i386.h ==> coff/i386.h
- coff-i960.h ==> coff/i960.h
- internalcoff.h ==> coff/internal.h
- coff-m68k.h ==> coff/m68k.h
- coff-m88k.h ==> coff/m88k.h
- coff-mips.h ==> coff/mips.h
- coff-rs6000.h ==> coff/rs6000.h
-
- elf-common.h ==> elf/common.h
- dwarf.h ==> elf/dwarf.h
- elf-external.h ==> elf/external.h
- elf-internal.h ==> elf/internal.h
-
- a29k-opcode.h ==> opcode/a29k.h
- arm-opcode.h ==> opcode/arm.h
- h8300-opcode.h ==> opcode/h8300.h
- i386-opcode.h ==> opcode/i386.h
- i860-opcode.h ==> opcode/i860.h
- i960-opcode.h ==> opcode/i960.h
- m68k-opcode.h ==> opcode/m68k.h
- m88k-opcode.h ==> opcode/m88k.h
- mips-opcode.h ==> opcode/mips.h
- np1-opcode.h ==> opcode/np1.h
- ns32k-opcode.h ==> opcode/ns32k.h
- pn-opcode.h ==> opcode/pn.h
- pyr-opcode.h ==> opcode/pyr.h
- sparc-opcode.h ==> opcode/sparc.h
- tahoe-opcode.h ==> opcode/tahoe.h
- vax-opcode.h ==> opcode/vax.h
-
-
-
-Wed Nov 27 10:38:31 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * internalcoff.h: (internal_scnhdr) took out #def dependency, now
- s_nreloc and s_nlnno are always long. (internal_reloc): allways
- has an offset field now.
-
-Fri Nov 22 08:12:58 1991 John Gilmore (gnu at cygnus.com)
-
- * coff-rs6000.h: Lint; use unsigned chars for external fields.
- * internalcoff.h: Lint; cast storage classes to signed char.
-
-Thu Nov 21 21:01:05 1991 Per Bothner (bothner at cygnus.com)
-
- * stab.def: Remove the GNU extended type codes (e.g. N_SETT).
- * aout64.h: The heuristic for distinguishing between
- sunos-style and bsd-style ZMAGIC files (wrt. where the
- text segment starts) is moved into (the default definition of)
- the macro N_HEADER_IN_TEXT. This definition is only used
- if no other definition is used - e.g. bfd/newsos3.c defines
- N_HEADER_IN_TEXT(x) to be always 0 (as before).
-
-Thu Nov 21 11:53:03 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h (N_TXTADDR, N_TXTOFF, N_TXTSIZE): New definitions
- that should handle all uses. LOGICAL_ versions deleted.
- Eliminate N_HEADER_IN_TEXT, using a_entry to determine which
- kind of zmagic a.out file we are looking at.
- * coff-rs6000.h: Typo.
-
-Tue Nov 19 18:43:37 1991 Per Bothner (bothner at cygnus.com)
-
- (Note: This is a revised entry, as was aout64.h.)
- * aout64.h: Some cleanups of N_TXTADDR and N_TXTOFF:
- Will now work for both old- and new-style ZMAGIC files,
- depending on N_HEADER_IN_TEXT macro.
- Add LOGICAL_TXTADDR, LOICAL_TXTOFF and LOGICAL_TXTSIZE
- that don't count the exec header as part
- of the text segment, to be consistent with bfd.
- * a.out.sun4.h: Simplified/fixed for previous change.
-
-Mon Nov 18 00:02:06 1991 Fred Fish (fnf at cygnus.com)
-
- * dwarf.h: Update to DWARF draft 5 version from gcc2.
-
-Thu Nov 14 19:44:59 1991 Per Bothner (bothner at cygnus.com)
-
- * stab.def: Added defs for extended GNU symbol types,
- such as N_SETT. These are normally ifdef'd out (because
- of conflicts with a.out.gnu.h), but are used by bfb_stab_name().
-
-Thu Nov 14 19:17:03 1991 Fred Fish (fnf at cygnus.com)
-
- * elf-common.h: Add defines to support ELF symbol table code.
-
-Mon Nov 11 19:01:06 1991 Fred Fish (fnf at cygnus.com)
-
- * elf-internal.h, elf-external.h, elf-common.h: Add support for
- note sections, which are used in ELF core files to hold copies
- of various /proc structures.
-
-Thu Nov 7 08:58:26 1991 Steve Chamberlain (sac at cygnus.com)
-
- * internalcoff.h: took out the M88 dependency in the lineno
- struct.
- * coff-m88k.h: defines GET_LINENO_LNNO and PUT_LINENO_LNNO to use
- 32bit linno entries.
- * a29k-opcode.h: fixed encoding of mtacc
-
-Sun Nov 3 11:54:22 1991 Per Bothner (bothner at cygnus.com)
-
- * bfd.h: Updated from ../bfd/bfd-in.h (q.v).
-
-Fri Nov 1 11:13:53 1991 John Gilmore (gnu at cygnus.com)
-
- * internalcoff.h: Add x_csect defines.
-
-Fri Oct 25 03:18:20 1991 John Gilmore (gnu at cygnus.com)
-
- * Rename COFF-related files in `coff-ARCH.h' form.
- coff-a29k.h, coff-i386.h, coff-i960.h, coff-m68k.h, coff-m88k.h,
- coff-mips.h, coff-rs6000.h to be exact.
-
-Thu Oct 24 22:11:11 1991 John Gilmore (gnu at cygnus.com)
-
- RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
- John Gilmore.
-
- * a.out.gnu.h: Update slightly.
- * bfd.h: Add new error code, fix doc, add bfd_arch_rs6000.
- * internalcoff.h: Add more F_ codes for filehdr. Add
- rs/6000-dependent fields to aouthdr. Add storage classes
- to syments. Add 6000-specific auxent. Add r_size in reloc.
- * rs6000coff.c: New file.
-
-Thu Oct 24 04:13:20 1991 Fred Fish (fnf at cygnus.com)
-
- * dwarf.h: New file for dwarf support. Copied from gcc2
- distribution.
-
-Wed Oct 16 13:31:45 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h: Remove PAGE_SIZE defines; they are target-dependent.
- Add N_FN_SEQ for N_FN symbol type used on Sequent machines.
- * stab.def: Include N_FN_SEQ in table.
- * bout.h: External formats of structures use unsigned chars.
-
-Fri Oct 11 12:40:43 1991 Steve Chamberlain (steve at cygnus.com)
-
- * bfd.h:upgrade from bfd.c
- * internalcoff.h: add n_name, n_zeroes and n_offset macros
- * amdcoff.h: Define OMAGIC and AOUTHDRSZ.
-
-Fri Oct 11 10:58:06 1991 Per Bothner (bothner at cygnus.com)
-
- * a.out.host.h: Change SEGMENT_SIZE to 0x1000 for Sony.
- * bfd.h (align_power): Add (actually move) comment.
-
-Tue Oct 8 15:29:32 1991 Per Bothner (bothner at cygnus.com)
-
- * sys/h-rtbsd.h: Define MISSING_VFPRINT (for binutils/bucomm.c).
-
-Sun Oct 6 19:24:39 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h: Move struct internal_exec to ../bfd/libaout.h so
- it can be shared by all `a.out-family' code. Rename
- EXTERNAL_LIST_SIZE to EXTERNAL_NLIST_SIZE. Use basic types
- for nlist members, and make strx integral rather than pointer.
- More commentary on n_type values.
- * bout.h: Provide a struct external_exec rather than an
- internal_exec.
- * m68kcoff.h: Remove `tagentries' which snuck in from the i960
- COFF port.
-
-Fri Oct 4 01:25:59 1991 John Gilmore (gnu at cygnus.com)
-
- * h8300-opcode.h: Remove `_enum' from the typedef for an enum.
- * bfd.h: Update to match bfd changes.
-
- * sys/h-i386mach.h, sysdep.h: Add 386 Mach host support.
-
-Tue Oct 1 04:58:42 1991 John Gilmore (gnu at cygnus.com)
-
- * bfd.h, elf-common.h, elf-external.h, elf-internal.h:
- Add preliminary ELF support, sufficient for GDB, from Fred Fish.
- * sysdep.h, sys/h-amix.h: Support Amiga SVR4.
-
- * sys/h-vaxult.h: Make it work. (David Taylor <taylor@think.com>)
- * a.out.vax.h: Remove unused and confusing file.
-
-Mon Sep 30 12:52:35 1991 Per Bothner (bothner at cygnus.com)
-
- * sysdep.h: Define NEWSOS3_SYS, and use it.
-
-Fri Sep 20 13:38:21 1991 John Gilmore (gnu at cygnus.com)
-
- * a.out.gnu.h (N_FN): Its value *really is* 0x1F.
- Fix it, and add comments warning about or-ing N_EXT with it
- and/or N_WARNING.
- * aout64.h (N_FN): Fix value, add comments about N_EXT.
- * stab.def (table at end): Update to show all the type
- values <0x20, including low order bits. Move N_FN to
- its rightful place.
-
-Tue Sep 17 17:41:37 1991 Stu Grossman (grossman at cygnus.com)
-
- * sys/h-irix3.h: sgi/irix support.
-
-Tue Sep 17 07:52:59 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * stab.def (N_DEFD): Add GNU Modula-2 debug stab, from Andrew
- Beers.
-
-Thu Sep 12 14:12:59 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * internalcoff.h (SYMNMLEN, FILNMLEN, DIMNUM): Define these
- for internalcoff, separately from the various external coff's.
- * amdcoff.h, bcs88kcoff.h, i386coff.h, intel-coff.h, m68kcoff.h,
- m88k-bcs.h: Prefix SYMNMLEN, FILNMLEN, and DIMNUM with E_'s for
- the external struct definitions.
- * ecoff.h: Remove these #define's, kludge no longer needed.
-
- * sys/h-ultra3.h: Add new Ultracomputer host.
- * sysdep.h: Add ULTRA3_SYM1_SYS and use it.
-
-Tue Sep 10 10:11:46 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * i386coff.h (LINESZ): Always 6, not based on sizeof().
- (Fix from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.)
-
-Wed Sep 4 08:58:37 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * a.out.gnu.h, aout64.h: Add N_WARNING. Change N_FN to 0x0E,
- to match SunOS and BSD. Add N_COMM as 0x12 for SunOS shared lib
- support.
- * stab.def: Add N_COMM to table, fix overlap comment.
-
-Tue Sep 3 06:29:20 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- Merge with latest FSF versions of these files.
-
- * stab.gnu.h: Add LAST_UNUSED_STAB_CODE.
- * stab.def: Update to GPL2. Move N_WARNING out, since not a
- debug symbol. Change comments, and reorder table to numeric
- order. Update final table comment.
- (N_DSLINE, N_BSLINE): Renumber from 0x66 and 0x68, to 0x46 and 0x48.
-
- * obstack.h: GPL2. Merge.
-
-Fri Aug 23 01:54:23 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * a.out.gnu.h, a.out.sun4.h: Make SEGMENT_SIZE able to depend
- on the particular a.out being examined.
- * a.out.sun4.h: Define segment sizes for Sun-3's and Sun-4's.
- * FIXME: a.out.gnu.h is almost obsolete.
- * FIXME: a.out.sun4.h should be renamed a.out.sun.h now.
-
-Wed Aug 21 20:32:13 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * Start a ChangeLog for the includes directory.
-
- * a.out.gnu.h (N_FN): Fix value -- was 15, should be 0x1E.
- * stab.def: Update allocation table in comments at end,
- to reflect reality as I know it.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/MAINTAINERS b/include/MAINTAINERS
deleted file mode 100644
index d59a3bd7f..000000000
--- a/include/MAINTAINERS
+++ /dev/null
@@ -1 +0,0 @@
-See ../binutils/MAINTAINERS
diff --git a/include/alloca-conf.h b/include/alloca-conf.h
deleted file mode 100644
index 628a5987e..000000000
--- a/include/alloca-conf.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "config.h"
-
-/* This is a merge of code recommended in the autoconf-2.61 documentation
- with that recommended in the autoconf-2.13 documentation, with added
- tweaks to heed C_ALLOCA. */
-
-#if defined HAVE_ALLOCA_H && !defined C_ALLOCA
-# include <alloca.h>
-#else
-# if defined __GNUC__ && !defined C_ALLOCA
-# if !defined alloca
-# define alloca __builtin_alloca
-# endif
-# else
-# if defined _AIX
-/* Indented so that pre-ansi C compilers will ignore it, rather than
- choke on it. Some versions of AIX require this to be the first
- thing seen by the compiler except for comments and preprocessor
- directives. */
- #pragma alloca
-# else
-# if defined _MSC_VER && !defined C_ALLOCA
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if !defined alloca
-# if defined __STDC__ || defined __hpux
-# if defined HAVE_STDDEF_H
-# include <stddef.h>
-# if defined __cplusplus
-extern "C" void *alloca (size_t);
-# else
-extern void *alloca (size_t);
-# endif
-# else
-extern void *alloca ();
-# endif
-# else
-extern char *alloca ();
-# endif
-# endif
-# endif
-# endif
-# endif
-#endif
diff --git a/include/ansidecl.h b/include/ansidecl.h
deleted file mode 100644
index 23d85bf0e..000000000
--- a/include/ansidecl.h
+++ /dev/null
@@ -1,434 +0,0 @@
-/* ANSI and traditional C compatability macros
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
- Free Software Foundation, Inc.
- This file is part of the GNU C 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* ANSI and traditional C compatibility macros
-
- ANSI C is assumed if __STDC__ is #defined.
-
- Macro ANSI C definition Traditional C definition
- ----- ---- - ---------- ----------- - ----------
- ANSI_PROTOTYPES 1 not defined
- PTR `void *' `char *'
- PTRCONST `void *const' `char *'
- LONG_DOUBLE `long double' `double'
- const not defined `'
- volatile not defined `'
- signed not defined `'
- VA_START(ap, var) va_start(ap, var) va_start(ap)
-
- Note that it is safe to write "void foo();" indicating a function
- with no return value, in all K+R compilers we have been able to test.
-
- For declaring functions with prototypes, we also provide these:
-
- PARAMS ((prototype))
- -- for functions which take a fixed number of arguments. Use this
- when declaring the function. When defining the function, write a
- K+R style argument list. For example:
-
- char *strcpy PARAMS ((char *dest, char *source));
- ...
- char *
- strcpy (dest, source)
- char *dest;
- char *source;
- { ... }
-
-
- VPARAMS ((prototype, ...))
- -- for functions which take a variable number of arguments. Use
- PARAMS to declare the function, VPARAMS to define it. For example:
-
- int printf PARAMS ((const char *format, ...));
- ...
- int
- printf VPARAMS ((const char *format, ...))
- {
- ...
- }
-
- For writing functions which take variable numbers of arguments, we
- also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
- hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
- thoroughly than the simple VA_START() macro mentioned above.
-
- VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
- Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
- corresponding to the list of fixed arguments. Then use va_arg
- normally to get the variable arguments, or pass your va_list object
- around. You do not declare the va_list yourself; VA_OPEN does it
- for you.
-
- Here is a complete example:
-
- int
- printf VPARAMS ((const char *format, ...))
- {
- int result;
-
- VA_OPEN (ap, format);
- VA_FIXEDARG (ap, const char *, format);
-
- result = vfprintf (stdout, format, ap);
- VA_CLOSE (ap);
-
- return result;
- }
-
-
- You can declare variables either before or after the VA_OPEN,
- VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
- and end of a block. They must appear at the same nesting level,
- and any variables declared after VA_OPEN go out of scope at
- VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
- argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
- pairs in a single function in case you need to traverse the
- argument list more than once.
-
- For ease of writing code which uses GCC extensions but needs to be
- portable to other compilers, we provide the GCC_VERSION macro that
- simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
- wrappers around __attribute__. Also, __extension__ will be #defined
- to nothing if it doesn't work. See below.
-
- This header also defines a lot of obsolete macros:
- CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
- AND, DOTS, NOARGS. Don't use them. */
-
-#ifndef _ANSIDECL_H
-#define _ANSIDECL_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Every source file includes this file,
- so they will all get the switch for lint. */
-/* LINTLIBRARY */
-
-/* Using MACRO(x,y) in cpp #if conditionals does not work with some
- older preprocessors. Thus we can't define something like this:
-
-#define HAVE_GCC_VERSION(MAJOR, MINOR) \
- (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
-
-and then test "#if HAVE_GCC_VERSION(2,7)".
-
-So instead we use the macro below and test it against specific values. */
-
-/* This macro simplifies testing whether we are using gcc, and if it
- is of a particular minimum version. (Both major & minor numbers are
- significant.) This macro will evaluate to 0 if we are not using
- gcc at all. */
-#ifndef GCC_VERSION
-#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif /* GCC_VERSION */
-
-#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
-/* All known AIX compilers implement these things (but don't always
- define __STDC__). The RISC/OS MIPS compiler defines these things
- in SVR4 mode, but does not define __STDC__. */
-/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
- C++ compilers, does not define __STDC__, though it acts as if this
- was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
-
-#define ANSI_PROTOTYPES 1
-#define PTR void *
-#define PTRCONST void *const
-#define LONG_DOUBLE long double
-
-/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
- a #ifndef. */
-#ifndef PARAMS
-#define PARAMS(ARGS) ARGS
-#endif
-
-#define VPARAMS(ARGS) ARGS
-#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
-
-/* variadic function helper macros */
-/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
- use without inhibiting further decls and without declaring an
- actual variable. */
-#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
-#define VA_CLOSE(AP) } va_end(AP); }
-#define VA_FIXEDARG(AP, T, N) struct Qdmy
-
-#undef const
-#undef volatile
-#undef signed
-
-/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
- it too, but it's not in C89. */
-#undef inline
-#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) || (defined(__SUNPRO_C) && defined(__C99FEATURES__))
-/* it's a keyword */
-#else
-# if GCC_VERSION >= 2007
-# define inline __inline__ /* __inline__ prevents -pedantic warnings */
-# else
-# define inline /* nothing */
-# endif
-#endif
-
-/* These are obsolete. Do not use. */
-#ifndef IN_GCC
-#define CONST const
-#define VOLATILE volatile
-#define SIGNED signed
-
-#define PROTO(type, name, arglist) type name arglist
-#define EXFUN(name, proto) name proto
-#define DEFUN(name, arglist, args) name(args)
-#define DEFUN_VOID(name) name(void)
-#define AND ,
-#define DOTS , ...
-#define NOARGS void
-#endif /* ! IN_GCC */
-
-#else /* Not ANSI C. */
-
-#undef ANSI_PROTOTYPES
-#define PTR char *
-#define PTRCONST PTR
-#define LONG_DOUBLE double
-
-#define PARAMS(args) ()
-#define VPARAMS(args) (va_alist) va_dcl
-#define VA_START(va_list, var) va_start(va_list)
-
-#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
-#define VA_CLOSE(AP) } va_end(AP); }
-#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
-
-/* some systems define these in header files for non-ansi mode */
-#undef const
-#undef volatile
-#undef signed
-#undef inline
-#define const
-#define volatile
-#define signed
-#define inline
-
-#ifndef IN_GCC
-#define CONST
-#define VOLATILE
-#define SIGNED
-
-#define PROTO(type, name, arglist) type name ()
-#define EXFUN(name, proto) name()
-#define DEFUN(name, arglist, args) name arglist args;
-#define DEFUN_VOID(name) name()
-#define AND ;
-#define DOTS
-#define NOARGS
-#endif /* ! IN_GCC */
-
-#endif /* ANSI C. */
-
-/* Define macros for some gcc attributes. This permits us to use the
- macros freely, and know that they will come into play for the
- version of gcc in which they are supported. */
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
-#ifndef ATTRIBUTE_MALLOC
-# if (GCC_VERSION >= 2096)
-# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-# define ATTRIBUTE_MALLOC
-# endif /* GNUC >= 2.96 */
-#endif /* ATTRIBUTE_MALLOC */
-
-/* Attributes on labels were valid as of gcc 2.93 and g++ 4.5. For
- g++ an attribute on a label must be followed by a semicolon. */
-#ifndef ATTRIBUTE_UNUSED_LABEL
-# ifndef __cplusplus
-# if GCC_VERSION >= 2093
-# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
-# else
-# define ATTRIBUTE_UNUSED_LABEL
-# endif
-# else
-# if GCC_VERSION >= 4005
-# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ;
-# else
-# define ATTRIBUTE_UNUSED_LABEL
-# endif
-# endif
-#endif
-
-#ifndef ATTRIBUTE_UNUSED
-#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#endif /* ATTRIBUTE_UNUSED */
-
-/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
- identifier name. */
-#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
-# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
-#else /* !__cplusplus || GNUC >= 3.4 */
-# define ARG_UNUSED(NAME) NAME
-#endif /* !__cplusplus || GNUC >= 3.4 */
-
-#ifndef ATTRIBUTE_NORETURN
-#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#endif /* ATTRIBUTE_NORETURN */
-
-/* Attribute `nonnull' was valid as of gcc 3.3. */
-#ifndef ATTRIBUTE_NONNULL
-# if (GCC_VERSION >= 3003)
-# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
-# else
-# define ATTRIBUTE_NONNULL(m)
-# endif /* GNUC >= 3.3 */
-#endif /* ATTRIBUTE_NONNULL */
-
-/* Attribute `pure' was valid as of gcc 3.0. */
-#ifndef ATTRIBUTE_PURE
-# if (GCC_VERSION >= 3000)
-# define ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-# define ATTRIBUTE_PURE
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_PURE */
-
-/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
- This was the case for the `printf' format attribute by itself
- before GCC 3.3, but as of 3.3 we need to add the `nonnull'
- attribute to retain this behavior. */
-#ifndef ATTRIBUTE_PRINTF
-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
-#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
-#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
-#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
-#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
-#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
-#endif /* ATTRIBUTE_PRINTF */
-
-/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
- a function pointer. Format attributes were allowed on function
- pointers as of gcc 3.1. */
-#ifndef ATTRIBUTE_FPTR_PRINTF
-# if (GCC_VERSION >= 3001)
-# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
-# else
-# define ATTRIBUTE_FPTR_PRINTF(m, n)
-# endif /* GNUC >= 3.1 */
-# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
-# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
-# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
-# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
-# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
-#endif /* ATTRIBUTE_FPTR_PRINTF */
-
-/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
- NULL format specifier was allowed as of gcc 3.3. */
-#ifndef ATTRIBUTE_NULL_PRINTF
-# if (GCC_VERSION >= 3003)
-# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
-# else
-# define ATTRIBUTE_NULL_PRINTF(m, n)
-# endif /* GNUC >= 3.3 */
-# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
-# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
-# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
-# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
-# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
-#endif /* ATTRIBUTE_NULL_PRINTF */
-
-/* Attribute `sentinel' was valid as of gcc 3.5. */
-#ifndef ATTRIBUTE_SENTINEL
-# if (GCC_VERSION >= 3005)
-# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
-# else
-# define ATTRIBUTE_SENTINEL
-# endif /* GNUC >= 3.5 */
-#endif /* ATTRIBUTE_SENTINEL */
-
-
-#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
-# if (GCC_VERSION >= 3000)
-# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
-# else
-# define ATTRIBUTE_ALIGNED_ALIGNOF(m)
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
-
-/* Useful for structures whose layout must much some binary specification
- regardless of the alignment and padding qualities of the compiler. */
-#ifndef ATTRIBUTE_PACKED
-# define ATTRIBUTE_PACKED __attribute__ ((packed))
-#endif
-
-/* Attribute `hot' and `cold' was valid as of gcc 4.3. */
-#ifndef ATTRIBUTE_COLD
-# if (GCC_VERSION >= 4003)
-# define ATTRIBUTE_COLD __attribute__ ((__cold__))
-# else
-# define ATTRIBUTE_COLD
-# endif /* GNUC >= 4.3 */
-#endif /* ATTRIBUTE_COLD */
-#ifndef ATTRIBUTE_HOT
-# if (GCC_VERSION >= 4003)
-# define ATTRIBUTE_HOT __attribute__ ((__hot__))
-# else
-# define ATTRIBUTE_HOT
-# endif /* GNUC >= 4.3 */
-#endif /* ATTRIBUTE_HOT */
-
-/* We use __extension__ in some places to suppress -pedantic warnings
- about GCC extensions. This feature didn't work properly before
- gcc 2.8. */
-#if GCC_VERSION < 2008
-#define __extension__
-#endif
-
-/* This is used to declare a const variable which should be visible
- outside of the current compilation unit. Use it as
- EXPORTED_CONST int i = 1;
- This is because the semantics of const are different in C and C++.
- "extern const" is permitted in C but it looks strange, and gcc
- warns about it when -Wc++-compat is not used. */
-#ifdef __cplusplus
-#define EXPORTED_CONST extern const
-#else
-#define EXPORTED_CONST const
-#endif
-
-/* Be conservative and only use enum bitfields with C++ or GCC.
- FIXME: provide a complete autoconf test for buggy enum bitfields. */
-
-#ifdef __cplusplus
-#define ENUM_BITFIELD(TYPE) enum TYPE
-#elif (GCC_VERSION > 2000)
-#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
-#else
-#define ENUM_BITFIELD(TYPE) unsigned int
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ansidecl.h */
diff --git a/include/aout/ChangeLog b/include/aout/ChangeLog
deleted file mode 100644
index f3a5b8622..000000000
--- a/include/aout/ChangeLog
+++ /dev/null
@@ -1,253 +0,0 @@
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * adobe.h: Update copyright notice to use GPLv3.
- * aout64.h: Likewise.
- * ar.h: Likewise.
- * dynix3.h: Likewise.
- * encap.h: Likewise.
- * host.h: Likewise.
- * hp.h: Likewise.
- * hp300hpux.h: Likewise.
- * ranlib.h: Likewise.
- * reloc.h: Likewise.
- * stab.def: Likewise.
- * stab_gnu.h: Likewise.
- * sun4.h: Likewise.
-
-2009-10-02 Alan Modra <amodra@bigpond.net.au>
-
- * aout64.h (N_SHARED_LIB): Define as zero if not already defined.
- * sun4.h (N_SHARED_LIB): Define.
- * hp300hpux.h (N_SHARED_LIB): Don't define.
-
-2008-08-28 Tristan Gingold <gingold@adacore.com>
-
- * stab.def: Add BNSYM, ENSYM, OSO for darwin.
-
-2008-03-27 Cary Coutant <ccoutant@google.com>
-
- * ar.h (ARMAGT): New magic string for thin archives.
-
-2005-08-18 Alan Modra <amodra@bigpond.net.au>
-
- * encap.h: Remove a29k support.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- adobe.h, aout64.h, ar.h, dynix3.h, encap.h, host.h, hp.h,
- ranlib.h, reloc.h, stab.def, stab_gnu.h, sun4.h
-
-2004-01-06 Mark Kettenis <kettenis@gnu.org>
-
- * stab.def: Add N_PATCH to DO definition.
-
-2003-03-06 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * aout64.h (BYTES_IN_WORD): Define if necessary.
-
-2001-09-18 Alan Modra <amodra@bigpond.net.au>
-
- * aout64.h: Formatting fixes.
- (N_TXTADDR): Evaluate to a bfd_vma.
- (N_DATADDR): Avoid negative unsigned warning.
- * hp300hpux.h: Formatting fixes.
- (N_DATADDR): Avoid negative unsigned warning.
-
-2000-04-03 Hans-Peter Nilsson <hp@axis.com>
-
- * aout64.h (RELOC_EXT_BITS_EXTERN_BIG): Wrap definition in #ifndef.
- (RELOC_EXT_BITS_EXTERN_LITTLE): Ditto.
- (RELOC_EXT_BITS_TYPE_BIG): Ditto.
- (RELOC_EXT_BITS_TYPE_SH_BIG): Ditto.
- (RELOC_EXT_BITS_TYPE_LITTLE): Ditto.
- (RELOC_EXT_BITS_TYPE_SH_LITTLE): Ditto.
-
-1999-07-12 Ian Lance Taylor <ian@zembu.com>
-
- * aout64.h (N_SHARED_LIB): Define as 0 if TEXT_START_ADDR is
- defined as 0.
-
-1998-06-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * stab.def: Add N_ALIAS from SunPro F77.
-
-1996-03-11 Ian Lance Taylor <ian@cygnus.com>
-
- * stab.def: Use __define_stab_duplicate rather than __define_stab
- for duplicate entries N_BROWS and N_MOD2.
- * stab_gnu.h (__define_stab_duplicate): Define before including
- stab.def.
-
-1995-10-27 Niklas Hallqvist <niklas@appli.se>
-
- * aout64.h, host.h, hp300hpux.h, sun4.h: Changed PAGE_SIZE to
- TARGET_PAGE_SIZE.
-
-1995-09-12 Ian Lance Taylor <ian@cygnus.com>
-
- * sun4.h (struct internal_sun4_dynamic_link): Change all fields
- from long to unsigned long.
-
-1995-07-12 Ken Raeburn <raeburn@kr-pc.cygnus.com>
-
- * sun4.h (PAGE_SIZE): Undefine before defining.
-
-1994-09-04 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
- * aout64.h: Only define QMAGIC if it isn't already defined.
-
-1994-06-16 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * aout64.h (BMAGIC): Define.
-
-1994-06-11 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- Add weak symbols as an extension to a.out.
- * aout64.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): Define.
- * stab.def: Update symbol value table.
-
-1994-06-02 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * sun4.h (EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE): Correct from 28 to
- 24. Fix up ld_got comment.
-
-1994-03-30 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * dynix3.h: Cleanup, adapt to current bfd version.
-
-1994-02-26 Ian Lance Taylor (ian@cygnus.com)
-
- * aout64.h: Add casts to avoid warnings from SVR4 cc.
-
-1994-02-11 Stan Shebs (shebs@andros.cygnus.com)
-
- * ar.h (ARMAG, ARMAGB, ARFMAG): Change '\n' to '\012', for greater
- portability.
-
-1994-01-21 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * sun4.h: Added information about SunOS shared libraries.
-
-1994-01-07 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * aout64.h (N_TXTADDR): Add comment regarding OMAGIC and NMAGIC.
-
-1993-12-25 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * aout64.h (N_DATOFF): Don't pad (revert change of 8 Jul 1993).
-
-1993-11-16 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * aout64.h: New macros ZMAGIC_DISK_BLOCK_SIZE and N_DISK_BLOCK_SIZE
- for Linux ZMAGIC.
- (N_TXTOFF, N_DATOFF): Use them.
-
-1993-11-04 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * aout64.h (RELOC_STD_BITS_RELATIVE_LITTLE): Fixed value to match
- sun3 system; used to overlap other fields.
- (RELOC_STD_BITS_JMPTABLE_LITTLE): Likewise.
-
-1993-11-03 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * aout64.h (RELOC_STD_BITS_BASEREL_LITTLE): Make it 0x10 (Ken's
- suggestion) to avoid conflict with RELOC_STD_BITS_EXTERN_LITTLE.
-
-1993-10-29 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * hp300hpux.h (N_SHARED_LIB): Define to be 0.
-
-1993-09-13 John Gilmore (gnu@cygnus.com)
-
- * ar.h (ARMAP_TIME_OFFSET): Add and describe.
-
-Mon Aug 23 Sean Fagan (sef@cygnus.com)
-
- * aout64.h [ARCH_SIZE != 64]: Allow N_BADMAG to be overridden.
-
-1993-08-16 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * stab_gnu.h: Include aout/stab.def not just stab.def.
-
-1993-07-18 Jim Kingdon (kingdon@rtl.cygnus.com)
-
- * dynix3.h: New, for symmetry running dynix.
-
-1993-07-08 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * aout64.h (N_BADMAG): Recognize QMAGIC.
- N_TXTOFF, N_TXTADDR, N_TXTSIZE: Special code for QMAGIC.
- N_DATOFF: Pad text size if we need to.
-
-1993-06-18 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * stab.def (N_ECOML): Fix comment.
-
-1993-05-31 Jim Kingdon (kingdon@cygnus.com)
-
- * stab.def: Remove Solaris information on N_FUN stabstring grammar;
- I've transferred it to gdb/doc/stabs.texinfo, where it belongs.
-
-1993-05-10 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * hp300hpux.h: Patch from Glenn Engel for linker problem and
- compatibility fix:
- (OMAGIC, NMAGIC): New definitions.
- (SHAREMAGIC): Deleted.
- (HPUX_DOT_O_MAGIC): New macro.
- (_N_BADMAG): Adjusted.
- (N_HEADER_IN_TEXT, N_DATADDR): New macros.
-
-1993-04-29 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * hp300hpux.h: New file from Glenn Engel, glenne@lsid.hp.com.
-
-1993-04-27 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * aout64.h (struct external_exec, *MAGIC, N_BADMAG): Don't define
- if `external_exec' is already defined as a macro.
- (N_DATOFF, N_TRELOFF, N_DRELOFF, N_SYMOFF, N_STROFF): Don't define
- if already defined.
- (struct external_nlist, EXTERNAL_NLIST_SIZE): Don't define if
- `external_nlist' is already defined as a macro.
-
-1992-08-15 John Gilmore (gnu@cygnus.com)
-
- * adobe.h: Add description of a.out.adobe format.
-
-1992-07-03 John Gilmore (gnu at cygnus.com)
-
- * stab.def: Update more Solaris definitions.
- * stab_gnu.h: Add N_SO language types, and Solaris basic float types.
-
-1992-06-14 John Gilmore (gnu at cygnus.com)
-
- * stab.def: Update descriptions of Solaris-2 stabs; add N_UNDF.
-
-1992-06-11 John Gilmore (gnu at cygnus.com)
-
- * stab.def: Add N_OBJ and N_OPT from Solaris-2.
-
-1992-01-30 John Gilmore (gnu at cygnus.com)
-
- * aout64.h: N_TXTSIZE needs some more parentheses.
- I don't trust C precedence.
-
-1991-12-18 Per Bothner (bothner at cygnus.com)
-
- * aout64.h: Move common sunos-specific test
- to recognize shared libraries into new macro N_SHARED_LIB.
- Use it to simplify & reformat N_TXTADDR, N_TXTOFF, N_TXTSIZE.
-
-1991-11-30 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * aout64.h, ar.h, encap.h, host.h, hp.h, ranlib.h, reloc.h,
- stab.def, stab_gnu.h, sun4.h: All moved from the devo/include
- directory.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/aout/adobe.h b/include/aout/adobe.h
deleted file mode 100644
index ce2255277..000000000
--- a/include/aout/adobe.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/* `a.out.adobe' differences from standard a.out files
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef __A_OUT_ADOBE_H__
-#define __A_OUT_ADOBE_H__
-
-#define BYTES_IN_WORD 4
-
-/* Struct external_exec is the same. */
-
-/* This is the layout on disk of the 32-bit or 64-bit exec header. */
-
-struct external_exec
-{
- bfd_byte e_info[4]; /* magic number and stuff */
- bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes */
- bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes */
- bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes */
- bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes */
- bfd_byte e_entry[BYTES_IN_WORD]; /* start address */
- bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info */
- bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info */
-};
-
-#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7)
-
-/* Magic numbers for a.out files */
-
-#undef ZMAGIC
-#define ZMAGIC 0xAD0BE /* Cute, eh? */
-#undef OMAGIC
-#undef NMAGIC
-
-#define N_BADMAG(x) ((x).a_info != ZMAGIC)
-
-/* By default, segment size is constant. But some machines override this
- to be a function of the a.out header (e.g. machine type). */
-#ifndef N_SEGSIZE
-#define N_SEGSIZE(x) SEGMENT_SIZE
-#endif
-#undef N_SEGSIZE /* FIXMEXXXX */
-
-/* Segment information for the a.out.Adobe format is specified after the
- file header. It contains N segment descriptors, followed by one with
- a type of zero.
-
- The actual text of the segments starts at N_TXTOFF in the file,
- regardless of how many or how few segment headers there are. */
-
-struct external_segdesc {
- unsigned char e_type[1];
- unsigned char e_size[3];
- unsigned char e_virtbase[4];
- unsigned char e_filebase[4];
-};
-
-struct internal_segdesc {
- unsigned int a_type:8; /* Segment type N_TEXT, N_DATA, 0 */
- unsigned int a_size:24; /* Segment size */
- bfd_vma a_virtbase; /* Virtual address */
- unsigned int a_filebase; /* Base address in object file */
-};
-
-#define N_TXTADDR(x) \
-
-/* This is documented to be at 1024, but appears to really be at 2048.
- FIXME?! */
-#define N_TXTOFF(x) 2048
-
-#define N_TXTSIZE(x) ((x).a_text)
-
-#define N_DATADDR(x)
-
-#define N_BSSADDR(x)
-
-/* Offsets of the various portions of the file after the text segment. */
-
-#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) )
-#define N_TRELOFF(x) ( N_DATOFF(x) + (x).a_data )
-#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
-#define N_SYMOFF(x) ( N_DRELOFF(x) + (x).a_drsize )
-#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms )
-
-/* Symbols */
-struct external_nlist {
- bfd_byte e_strx[BYTES_IN_WORD]; /* index into string table of name */
- bfd_byte e_type[1]; /* type of symbol */
- bfd_byte e_other[1]; /* misc info (usually empty) */
- bfd_byte e_desc[2]; /* description field */
- bfd_byte e_value[BYTES_IN_WORD]; /* value of symbol */
-};
-
-#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
-
-struct internal_nlist {
- unsigned long n_strx; /* index into string table of name */
- unsigned char n_type; /* type of symbol */
- unsigned char n_other; /* misc info (usually empty) */
- unsigned short n_desc; /* description field */
- bfd_vma n_value; /* value of symbol */
-};
-
-/* The n_type field is the symbol type, containing: */
-
-#define N_UNDF 0 /* Undefined symbol */
-#define N_ABS 2 /* Absolute symbol -- defined at particular addr */
-#define N_TEXT 4 /* Text sym -- defined at offset in text seg */
-#define N_DATA 6 /* Data sym -- defined at offset in data seg */
-#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg */
-#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink) */
-#define N_FN 0x1f /* File name of .o file */
-#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh) */
-/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
- N_DATA, or N_BSS. When the low-order bit of other types is set,
- (e.g. N_WARNING versus N_FN), they are two different types. */
-#define N_EXT 1 /* External symbol (as opposed to local-to-this-file) */
-#define N_TYPE 0x1e
-#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol */
-
-#define N_INDR 0x0a
-
-/* The following symbols refer to set elements.
- All the N_SET[ATDB] symbols with the same name form one set.
- Space is allocated for the set in the text section, and each set
- elements value is stored into one word of the space.
- The first word of the space is the length of the set (number of elements).
-
- The address of the set is made into an N_SETV symbol
- whose name is the same as the name of the set.
- This symbol acts like a N_DATA global symbol
- in that it can satisfy undefined external references. */
-
-/* These appear as input to LD, in a .o file. */
-#define N_SETA 0x14 /* Absolute set element symbol */
-#define N_SETT 0x16 /* Text set element symbol */
-#define N_SETD 0x18 /* Data set element symbol */
-#define N_SETB 0x1A /* Bss set element symbol */
-
-/* This is output from LD. */
-#define N_SETV 0x1C /* Pointer to set vector in data area. */
-
-/* Warning symbol. The text gives a warning message, the next symbol
- in the table will be undefined. When the symbol is referenced, the
- message is printed. */
-
-#define N_WARNING 0x1e
-
-/* Relocations
-
- There are two types of relocation flavours for a.out systems,
- standard and extended. The standard form is used on systems where the
- instruction has room for all the bits of an offset to the operand, whilst
- the extended form is used when an address operand has to be split over n
- instructions. Eg, on the 68k, each move instruction can reference
- the target with a displacement of 16 or 32 bits. On the sparc, move
- instructions use an offset of 14 bits, so the offset is stored in
- the reloc field, and the data in the section is ignored.
-*/
-
-/* This structure describes a single relocation to be performed.
- The text-relocation section of the file is a vector of these structures,
- all of which apply to the text section.
- Likewise, the data-relocation section applies to the data section. */
-
-struct reloc_std_external {
- bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */
- bfd_byte r_index[3]; /* symbol table index of symbol */
- bfd_byte r_type[1]; /* relocation type */
-};
-
-#define RELOC_STD_BITS_PCREL_BIG 0x80
-#define RELOC_STD_BITS_PCREL_LITTLE 0x01
-
-#define RELOC_STD_BITS_LENGTH_BIG 0x60
-#define RELOC_STD_BITS_LENGTH_SH_BIG 5 /* To shift to units place */
-#define RELOC_STD_BITS_LENGTH_LITTLE 0x06
-#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1
-
-#define RELOC_STD_BITS_EXTERN_BIG 0x10
-#define RELOC_STD_BITS_EXTERN_LITTLE 0x08
-
-#define RELOC_STD_BITS_BASEREL_BIG 0x08
-#define RELOC_STD_BITS_BASEREL_LITTLE 0x08
-
-#define RELOC_STD_BITS_JMPTABLE_BIG 0x04
-#define RELOC_STD_BITS_JMPTABLE_LITTLE 0x04
-
-#define RELOC_STD_BITS_RELATIVE_BIG 0x02
-#define RELOC_STD_BITS_RELATIVE_LITTLE 0x02
-
-#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry */
-
-struct reloc_std_internal
-{
- bfd_vma r_address; /* Address (within segment) to be relocated. */
- /* The meaning of r_symbolnum depends on r_extern. */
- unsigned int r_symbolnum:24;
- /* Nonzero means value is a pc-relative offset
- and it should be relocated for changes in its own address
- as well as for changes in the symbol or section specified. */
- unsigned int r_pcrel:1;
- /* Length (as exponent of 2) of the field to be relocated.
- Thus, a value of 2 indicates 1<<2 bytes. */
- unsigned int r_length:2;
- /* 1 => relocate with value of symbol.
- r_symbolnum is the index of the symbol
- in files the symbol table.
- 0 => relocate with the address of a segment.
- r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
- (the N_EXT bit may be set also, but signifies nothing). */
- unsigned int r_extern:1;
- /* The next three bits are for SunOS shared libraries, and seem to
- be undocumented. */
- unsigned int r_baserel:1; /* Linkage table relative */
- unsigned int r_jmptable:1; /* pc-relative to jump table */
- unsigned int r_relative:1; /* "relative relocation" */
- /* unused */
- unsigned int r_pad:1; /* Padding -- set to zero */
-};
-
-
-/* EXTENDED RELOCS */
-
-struct reloc_ext_external {
- bfd_byte r_address[BYTES_IN_WORD]; /* offset of of data to relocate */
- bfd_byte r_index[3]; /* symbol table index of symbol */
- bfd_byte r_type[1]; /* relocation type */
- bfd_byte r_addend[BYTES_IN_WORD]; /* datum addend */
-};
-
-#define RELOC_EXT_BITS_EXTERN_BIG 0x80
-#define RELOC_EXT_BITS_EXTERN_LITTLE 0x01
-
-#define RELOC_EXT_BITS_TYPE_BIG 0x1F
-#define RELOC_EXT_BITS_TYPE_SH_BIG 0
-#define RELOC_EXT_BITS_TYPE_LITTLE 0xF8
-#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3
-
-/* Bytes per relocation entry */
-#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
-
-enum reloc_type
-{
- /* simple relocations */
- RELOC_8, /* data[0:7] = addend + sv */
- RELOC_16, /* data[0:15] = addend + sv */
- RELOC_32, /* data[0:31] = addend + sv */
- /* pc-rel displacement */
- RELOC_DISP8, /* data[0:7] = addend - pc + sv */
- RELOC_DISP16, /* data[0:15] = addend - pc + sv */
- RELOC_DISP32, /* data[0:31] = addend - pc + sv */
- /* Special */
- RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */
- RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */
- RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */
- RELOC_22, /* data[0:21] = (addend + sv) */
- RELOC_13, /* data[0:12] = (addend + sv) */
- RELOC_LO10, /* data[0:9] = (addend + sv) */
- RELOC_SFA_BASE,
- RELOC_SFA_OFF13,
- /* P.I.C. (base-relative) */
- RELOC_BASE10, /* Not sure - maybe we can do this the */
- RELOC_BASE13, /* right way now */
- RELOC_BASE22,
- /* for some sort of pc-rel P.I.C. (?) */
- RELOC_PC10,
- RELOC_PC22,
- /* P.I.C. jump table */
- RELOC_JMP_TBL,
- /* reputedly for shared libraries somehow */
- RELOC_SEGOFF16,
- RELOC_GLOB_DAT,
- RELOC_JMP_SLOT,
- RELOC_RELATIVE,
-
- RELOC_11,
- RELOC_WDISP2_14,
- RELOC_WDISP19,
- RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */
- RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */
-
- /* 29K relocation types */
- RELOC_JUMPTARG,
- RELOC_CONST,
- RELOC_CONSTH,
-
- NO_RELOC
- };
-
-
-struct reloc_internal {
- bfd_vma r_address; /* offset of of data to relocate */
- long r_index; /* symbol table index of symbol */
- enum reloc_type r_type; /* relocation type */
- bfd_vma r_addend; /* datum addend */
-};
-
-#endif /* __A_OUT_ADOBE_H__ */
diff --git a/include/aout/aout64.h b/include/aout/aout64.h
deleted file mode 100644
index 384909e05..000000000
--- a/include/aout/aout64.h
+++ /dev/null
@@ -1,516 +0,0 @@
-/* `a.out' object-file definitions, including extensions to 64-bit fields
-
- Copyright 1999, 2000, 2001, 2003, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef __A_OUT_64_H__
-#define __A_OUT_64_H__
-
-#ifndef BYTES_IN_WORD
-#define BYTES_IN_WORD 4
-#endif
-
-/* This is the layout on disk of the 32-bit or 64-bit exec header. */
-
-#ifndef external_exec
-struct external_exec
-{
- bfd_byte e_info[4]; /* Magic number and stuff. */
- bfd_byte e_text[BYTES_IN_WORD]; /* Length of text section in bytes. */
- bfd_byte e_data[BYTES_IN_WORD]; /* Length of data section in bytes. */
- bfd_byte e_bss[BYTES_IN_WORD]; /* Length of bss area in bytes. */
- bfd_byte e_syms[BYTES_IN_WORD]; /* Length of symbol table in bytes. */
- bfd_byte e_entry[BYTES_IN_WORD]; /* Start address. */
- bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info. */
- bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info. */
-};
-
-#define EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7)
-
-/* Magic numbers for a.out files. */
-
-#if ARCH_SIZE==64
-#define OMAGIC 0x1001 /* Code indicating object file. */
-#define ZMAGIC 0x1002 /* Code indicating demand-paged executable. */
-#define NMAGIC 0x1003 /* Code indicating pure executable. */
-
-/* There is no 64-bit QMAGIC as far as I know. */
-
-#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
- && N_MAGIC(x) != NMAGIC \
- && N_MAGIC(x) != ZMAGIC)
-#else
-#define OMAGIC 0407 /* Object file or impure executable. */
-#define NMAGIC 0410 /* Code indicating pure executable. */
-#define ZMAGIC 0413 /* Code indicating demand-paged executable. */
-#define BMAGIC 0415 /* Used by a b.out object. */
-
-/* This indicates a demand-paged executable with the header in the text.
- It is used by 386BSD (and variants) and Linux, at least. */
-#ifndef QMAGIC
-#define QMAGIC 0314
-#endif
-# ifndef N_BADMAG
-# define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
- && N_MAGIC(x) != NMAGIC \
- && N_MAGIC(x) != ZMAGIC \
- && N_MAGIC(x) != QMAGIC)
-# endif /* N_BADMAG */
-#endif
-
-#endif
-
-#ifdef QMAGIC
-#define N_IS_QMAGIC(x) (N_MAGIC (x) == QMAGIC)
-#else
-#define N_IS_QMAGIC(x) (0)
-#endif
-
-/* The difference between TARGET_PAGE_SIZE and N_SEGSIZE is that TARGET_PAGE_SIZE is
- the finest granularity at which you can page something, thus it
- controls the padding (if any) before the text segment of a ZMAGIC
- file. N_SEGSIZE is the resolution at which things can be marked as
- read-only versus read/write, so it controls the padding between the
- text segment and the data segment (in memory; on disk the padding
- between them is TARGET_PAGE_SIZE). TARGET_PAGE_SIZE and N_SEGSIZE are the same
- for most machines, but different for sun3. */
-
-/* By default, segment size is constant. But some machines override this
- to be a function of the a.out header (e.g. machine type). */
-
-#ifndef N_SEGSIZE
-#define N_SEGSIZE(x) SEGMENT_SIZE
-#endif
-
-/* Virtual memory address of the text section.
- This is getting very complicated. A good reason to discard a.out format
- for something that specifies these fields explicitly. But til then...
-
- * OMAGIC and NMAGIC files:
- (object files: text for "relocatable addr 0" right after the header)
- start at 0, offset is EXEC_BYTES_SIZE, size as stated.
- * The text address, offset, and size of ZMAGIC files depend
- on the entry point of the file:
- * entry point below TEXT_START_ADDR:
- (hack for SunOS shared libraries)
- start at 0, offset is 0, size as stated.
- * If N_HEADER_IN_TEXT(x) is true (which defaults to being the
- case when the entry point is EXEC_BYTES_SIZE or further into a page):
- no padding is needed; text can start after exec header. Sun
- considers the text segment of such files to include the exec header;
- for BFD's purposes, we don't, which makes more work for us.
- start at TEXT_START_ADDR + EXEC_BYTES_SIZE, offset is EXEC_BYTES_SIZE,
- size as stated minus EXEC_BYTES_SIZE.
- * If N_HEADER_IN_TEXT(x) is false (which defaults to being the case when
- the entry point is less than EXEC_BYTES_SIZE into a page (e.g. page
- aligned)): (padding is needed so that text can start at a page boundary)
- start at TEXT_START_ADDR, offset TARGET_PAGE_SIZE, size as stated.
-
- Specific configurations may want to hardwire N_HEADER_IN_TEXT,
- for efficiency or to allow people to play games with the entry point.
- In that case, you would #define N_HEADER_IN_TEXT(x) as 1 for sunos,
- and as 0 for most other hosts (Sony News, Vax Ultrix, etc).
- (Do this in the appropriate bfd target file.)
- (The default is a heuristic that will break if people try changing
- the entry point, perhaps with the ld -e flag.)
-
- * QMAGIC is always like a ZMAGIC for which N_HEADER_IN_TEXT is true,
- and for which the starting address is TARGET_PAGE_SIZE (or should this be
- SEGMENT_SIZE?) (TEXT_START_ADDR only applies to ZMAGIC, not to QMAGIC). */
-
-/* This macro is only relevant for ZMAGIC files; QMAGIC always has the header
- in the text. */
-#ifndef N_HEADER_IN_TEXT
-#define N_HEADER_IN_TEXT(x) \
- (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE)
-#endif
-
-/* Sun shared libraries, not linux. This macro is only relevant for ZMAGIC
- files. */
-#ifndef N_SHARED_LIB
-#define N_SHARED_LIB(x) (0)
-#endif
-
-/* Returning 0 not TEXT_START_ADDR for OMAGIC and NMAGIC is based on
- the assumption that we are dealing with a .o file, not an
- executable. This is necessary for OMAGIC (but means we don't work
- right on the output from ld -N); more questionable for NMAGIC. */
-
-#ifndef N_TXTADDR
-#define N_TXTADDR(x) \
- (/* The address of a QMAGIC file is always one page in, \
- with the header in the text. */ \
- N_IS_QMAGIC (x) \
- ? (bfd_vma) TARGET_PAGE_SIZE + EXEC_BYTES_SIZE \
- : (N_MAGIC (x) != ZMAGIC \
- ? (bfd_vma) 0 /* Object file or NMAGIC. */ \
- : (N_SHARED_LIB (x) \
- ? (bfd_vma) 0 \
- : (N_HEADER_IN_TEXT (x) \
- ? (bfd_vma) TEXT_START_ADDR + EXEC_BYTES_SIZE \
- : (bfd_vma) TEXT_START_ADDR))))
-#endif
-
-/* If N_HEADER_IN_TEXT is not true for ZMAGIC, there is some padding
- to make the text segment start at a certain boundary. For most
- systems, this boundary is TARGET_PAGE_SIZE. But for Linux, in the
- time-honored tradition of crazy ZMAGIC hacks, it is 1024 which is
- not what TARGET_PAGE_SIZE needs to be for QMAGIC. */
-
-#ifndef ZMAGIC_DISK_BLOCK_SIZE
-#define ZMAGIC_DISK_BLOCK_SIZE TARGET_PAGE_SIZE
-#endif
-
-#define N_DISK_BLOCK_SIZE(x) \
- (N_MAGIC(x) == ZMAGIC ? ZMAGIC_DISK_BLOCK_SIZE : TARGET_PAGE_SIZE)
-
-/* Offset in an a.out of the start of the text section. */
-#ifndef N_TXTOFF
-#define N_TXTOFF(x) \
- (/* For {O,N,Q}MAGIC, no padding. */ \
- N_MAGIC (x) != ZMAGIC \
- ? EXEC_BYTES_SIZE \
- : (N_SHARED_LIB (x) \
- ? 0 \
- : (N_HEADER_IN_TEXT (x) \
- ? EXEC_BYTES_SIZE /* No padding. */ \
- : ZMAGIC_DISK_BLOCK_SIZE /* A page of padding. */)))
-#endif
-/* Size of the text section. It's always as stated, except that we
- offset it to `undo' the adjustment to N_TXTADDR and N_TXTOFF
- for ZMAGIC files that nominally include the exec header
- as part of the first page of text. (BFD doesn't consider the
- exec header to be part of the text segment.) */
-#ifndef N_TXTSIZE
-#define N_TXTSIZE(x) \
- (/* For QMAGIC, we don't consider the header part of the text section. */\
- N_IS_QMAGIC (x) \
- ? (x).a_text - EXEC_BYTES_SIZE \
- : ((N_MAGIC (x) != ZMAGIC || N_SHARED_LIB (x)) \
- ? (x).a_text \
- : (N_HEADER_IN_TEXT (x) \
- ? (x).a_text - EXEC_BYTES_SIZE /* No padding. */ \
- : (x).a_text /* A page of padding. */ )))
-#endif
-/* The address of the data segment in virtual memory.
- It is the text segment address, plus text segment size, rounded
- up to a N_SEGSIZE boundary for pure or pageable files. */
-#ifndef N_DATADDR
-#define N_DATADDR(x) \
- (N_MAGIC (x) == OMAGIC \
- ? (N_TXTADDR (x) + N_TXTSIZE (x)) \
- : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
- & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
-#endif
-/* The address of the BSS segment -- immediately after the data segment. */
-
-#define N_BSSADDR(x) (N_DATADDR (x) + (x).a_data)
-
-/* Offsets of the various portions of the file after the text segment. */
-
-/* For {Q,Z}MAGIC, there is padding to make the data segment start on
- a page boundary. Most of the time the a_text field (and thus
- N_TXTSIZE) already contains this padding. It is possible that for
- BSDI and/or 386BSD it sometimes doesn't contain the padding, and
- perhaps we should be adding it here. But this seems kind of
- questionable and probably should be BSDI/386BSD-specific if we do
- do it.
-
- For NMAGIC (at least for hp300 BSD, probably others), there is
- padding in memory only, not on disk, so we must *not* ever pad here
- for NMAGIC. */
-
-#ifndef N_DATOFF
-#define N_DATOFF(x) (N_TXTOFF (x) + N_TXTSIZE (x))
-#endif
-#ifndef N_TRELOFF
-#define N_TRELOFF(x) (N_DATOFF (x) + (x).a_data)
-#endif
-#ifndef N_DRELOFF
-#define N_DRELOFF(x) (N_TRELOFF (x) + (x).a_trsize)
-#endif
-#ifndef N_SYMOFF
-#define N_SYMOFF(x) (N_DRELOFF (x) + (x).a_drsize)
-#endif
-#ifndef N_STROFF
-#define N_STROFF(x) (N_SYMOFF (x) + (x).a_syms)
-#endif
-
-/* Symbols */
-#ifndef external_nlist
-struct external_nlist
-{
- bfd_byte e_strx[BYTES_IN_WORD]; /* Index into string table of name. */
- bfd_byte e_type[1]; /* Type of symbol. */
- bfd_byte e_other[1]; /* Misc info (usually empty). */
- bfd_byte e_desc[2]; /* Description field. */
- bfd_byte e_value[BYTES_IN_WORD]; /* Value of symbol. */
-};
-#define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
-#endif
-
-struct internal_nlist
-{
- unsigned long n_strx; /* Index into string table of name. */
- unsigned char n_type; /* Type of symbol. */
- unsigned char n_other; /* Misc info (usually empty). */
- unsigned short n_desc; /* Description field. */
- bfd_vma n_value; /* Value of symbol. */
-};
-
-/* The n_type field is the symbol type, containing: */
-
-#define N_UNDF 0 /* Undefined symbol. */
-#define N_ABS 2 /* Absolute symbol -- defined at particular addr. */
-#define N_TEXT 4 /* Text sym -- defined at offset in text seg. */
-#define N_DATA 6 /* Data sym -- defined at offset in data seg. */
-#define N_BSS 8 /* BSS sym -- defined at offset in zero'd seg. */
-#define N_COMM 0x12 /* Common symbol (visible after shared lib dynlink). */
-#define N_FN 0x1f /* File name of .o file. */
-#define N_FN_SEQ 0x0C /* N_FN from Sequent compilers (sigh). */
-/* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
- N_DATA, or N_BSS. When the low-order bit of other types is set,
- (e.g. N_WARNING versus N_FN), they are two different types. */
-#define N_EXT 1 /* External symbol (as opposed to local-to-this-file). */
-#define N_TYPE 0x1e
-#define N_STAB 0xe0 /* If any of these bits are on, it's a debug symbol. */
-
-#define N_INDR 0x0a
-
-/* The following symbols refer to set elements.
- All the N_SET[ATDB] symbols with the same name form one set.
- Space is allocated for the set in the text section, and each set
- elements value is stored into one word of the space.
- The first word of the space is the length of the set (number of elements).
-
- The address of the set is made into an N_SETV symbol
- whose name is the same as the name of the set.
- This symbol acts like a N_DATA global symbol
- in that it can satisfy undefined external references. */
-
-/* These appear as input to LD, in a .o file. */
-#define N_SETA 0x14 /* Absolute set element symbol. */
-#define N_SETT 0x16 /* Text set element symbol. */
-#define N_SETD 0x18 /* Data set element symbol. */
-#define N_SETB 0x1A /* Bss set element symbol. */
-
-/* This is output from LD. */
-#define N_SETV 0x1C /* Pointer to set vector in data area. */
-
-/* Warning symbol. The text gives a warning message, the next symbol
- in the table will be undefined. When the symbol is referenced, the
- message is printed. */
-
-#define N_WARNING 0x1e
-
-/* Weak symbols. These are a GNU extension to the a.out format. The
- semantics are those of ELF weak symbols. Weak symbols are always
- externally visible. The N_WEAK? values are squeezed into the
- available slots. The value of a N_WEAKU symbol is 0. The values
- of the other types are the definitions. */
-#define N_WEAKU 0x0d /* Weak undefined symbol. */
-#define N_WEAKA 0x0e /* Weak absolute symbol. */
-#define N_WEAKT 0x0f /* Weak text symbol. */
-#define N_WEAKD 0x10 /* Weak data symbol. */
-#define N_WEAKB 0x11 /* Weak bss symbol. */
-
-/* Relocations
-
- There are two types of relocation flavours for a.out systems,
- standard and extended. The standard form is used on systems where the
- instruction has room for all the bits of an offset to the operand, whilst
- the extended form is used when an address operand has to be split over n
- instructions. Eg, on the 68k, each move instruction can reference
- the target with a displacement of 16 or 32 bits. On the sparc, move
- instructions use an offset of 14 bits, so the offset is stored in
- the reloc field, and the data in the section is ignored. */
-
-/* This structure describes a single relocation to be performed.
- The text-relocation section of the file is a vector of these structures,
- all of which apply to the text section.
- Likewise, the data-relocation section applies to the data section. */
-
-struct reloc_std_external
-{
- bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */
- bfd_byte r_index[3]; /* Symbol table index of symbol. */
- bfd_byte r_type[1]; /* Relocation type. */
-};
-
-#define RELOC_STD_BITS_PCREL_BIG ((unsigned int) 0x80)
-#define RELOC_STD_BITS_PCREL_LITTLE ((unsigned int) 0x01)
-
-#define RELOC_STD_BITS_LENGTH_BIG ((unsigned int) 0x60)
-#define RELOC_STD_BITS_LENGTH_SH_BIG 5
-#define RELOC_STD_BITS_LENGTH_LITTLE ((unsigned int) 0x06)
-#define RELOC_STD_BITS_LENGTH_SH_LITTLE 1
-
-#define RELOC_STD_BITS_EXTERN_BIG ((unsigned int) 0x10)
-#define RELOC_STD_BITS_EXTERN_LITTLE ((unsigned int) 0x08)
-
-#define RELOC_STD_BITS_BASEREL_BIG ((unsigned int) 0x08)
-#define RELOC_STD_BITS_BASEREL_LITTLE ((unsigned int) 0x10)
-
-#define RELOC_STD_BITS_JMPTABLE_BIG ((unsigned int) 0x04)
-#define RELOC_STD_BITS_JMPTABLE_LITTLE ((unsigned int) 0x20)
-
-#define RELOC_STD_BITS_RELATIVE_BIG ((unsigned int) 0x02)
-#define RELOC_STD_BITS_RELATIVE_LITTLE ((unsigned int) 0x40)
-
-#define RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) /* Bytes per relocation entry. */
-
-struct reloc_std_internal
-{
- bfd_vma r_address; /* Address (within segment) to be relocated. */
- /* The meaning of r_symbolnum depends on r_extern. */
- unsigned int r_symbolnum:24;
- /* Nonzero means value is a pc-relative offset
- and it should be relocated for changes in its own address
- as well as for changes in the symbol or section specified. */
- unsigned int r_pcrel:1;
- /* Length (as exponent of 2) of the field to be relocated.
- Thus, a value of 2 indicates 1<<2 bytes. */
- unsigned int r_length:2;
- /* 1 => relocate with value of symbol.
- r_symbolnum is the index of the symbol
- in files the symbol table.
- 0 => relocate with the address of a segment.
- r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
- (the N_EXT bit may be set also, but signifies nothing). */
- unsigned int r_extern:1;
- /* The next three bits are for SunOS shared libraries, and seem to
- be undocumented. */
- unsigned int r_baserel:1; /* Linkage table relative. */
- unsigned int r_jmptable:1; /* pc-relative to jump table. */
- unsigned int r_relative:1; /* "relative relocation". */
- /* unused */
- unsigned int r_pad:1; /* Padding -- set to zero. */
-};
-
-
-/* EXTENDED RELOCS. */
-
-struct reloc_ext_external
-{
- bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */
- bfd_byte r_index[3]; /* Symbol table index of symbol. */
- bfd_byte r_type[1]; /* Relocation type. */
- bfd_byte r_addend[BYTES_IN_WORD]; /* Datum addend. */
-};
-
-#ifndef RELOC_EXT_BITS_EXTERN_BIG
-#define RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80)
-#endif
-
-#ifndef RELOC_EXT_BITS_EXTERN_LITTLE
-#define RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_BIG
-#define RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_SH_BIG
-#define RELOC_EXT_BITS_TYPE_SH_BIG 0
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_LITTLE
-#define RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8)
-#endif
-
-#ifndef RELOC_EXT_BITS_TYPE_SH_LITTLE
-#define RELOC_EXT_BITS_TYPE_SH_LITTLE 3
-#endif
-
-/* Bytes per relocation entry. */
-#define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD)
-
-enum reloc_type
-{
- /* Simple relocations. */
- RELOC_8, /* data[0:7] = addend + sv */
- RELOC_16, /* data[0:15] = addend + sv */
- RELOC_32, /* data[0:31] = addend + sv */
- /* PC-rel displacement. */
- RELOC_DISP8, /* data[0:7] = addend - pc + sv */
- RELOC_DISP16, /* data[0:15] = addend - pc + sv */
- RELOC_DISP32, /* data[0:31] = addend - pc + sv */
- /* Special. */
- RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */
- RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */
- RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */
- RELOC_22, /* data[0:21] = (addend + sv) */
- RELOC_13, /* data[0:12] = (addend + sv) */
- RELOC_LO10, /* data[0:9] = (addend + sv) */
- RELOC_SFA_BASE,
- RELOC_SFA_OFF13,
- /* P.I.C. (base-relative). */
- RELOC_BASE10, /* Not sure - maybe we can do this the */
- RELOC_BASE13, /* right way now */
- RELOC_BASE22,
- /* For some sort of pc-rel P.I.C. (?) */
- RELOC_PC10,
- RELOC_PC22,
- /* P.I.C. jump table. */
- RELOC_JMP_TBL,
- /* Reputedly for shared libraries somehow. */
- RELOC_SEGOFF16,
- RELOC_GLOB_DAT,
- RELOC_JMP_SLOT,
- RELOC_RELATIVE,
-
- RELOC_11,
- RELOC_WDISP2_14,
- RELOC_WDISP19,
- RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */
- RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */
-
- /* 29K relocation types. */
- RELOC_JUMPTARG,
- RELOC_CONST,
- RELOC_CONSTH,
-
- /* All the new ones I can think of, for sparc v9. */
- RELOC_64, /* data[0:63] = addend + sv */
- RELOC_DISP64, /* data[0:63] = addend - pc + sv */
- RELOC_WDISP21, /* data[0:20] = (addend + sv - pc)>>2 */
- RELOC_DISP21, /* data[0:20] = addend - pc + sv */
- RELOC_DISP14, /* data[0:13] = addend - pc + sv */
- /* Q .
- What are the other ones,
- Since this is a clean slate, can we throw away the ones we dont
- understand ? Should we sort the values ? What about using a
- microcode format like the 68k ? */
- NO_RELOC
- };
-
-
-struct reloc_internal
-{
- bfd_vma r_address; /* Offset of of data to relocate. */
- long r_index; /* Symbol table index of symbol. */
- enum reloc_type r_type; /* Relocation type. */
- bfd_vma r_addend; /* Datum addend. */
-};
-
-/* Q.
- Should the length of the string table be 4 bytes or 8 bytes ?
-
- Q.
- What about archive indexes ? */
-
-#endif /* __A_OUT_64_H__ */
diff --git a/include/aout/ar.h b/include/aout/ar.h
deleted file mode 100644
index de0438222..000000000
--- a/include/aout/ar.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* archive file definition for GNU software
-
- Copyright 2001, 2008, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* So far this is correct for BSDish archives. Don't forget that
- files must begin on an even byte boundary. */
-
-#ifndef __GNU_AR_H__
-#define __GNU_AR_H__
-
-/* Note that the usual '\n' in magic strings may translate to different
- characters, as allowed by ANSI. '\012' has a fixed value, and remains
- compatible with existing BSDish archives. */
-
-#define ARMAG "!<arch>\012" /* For COFF and a.out archives. */
-#define ARMAGB "!<bout>\012" /* For b.out archives. */
-#define ARMAGT "!<thin>\012" /* For thin archives. */
-#define SARMAG 8
-#define ARFMAG "`\012"
-
-/* The ar_date field of the armap (__.SYMDEF) member of an archive
- must be greater than the modified date of the entire file, or
- BSD-derived linkers complain. We originally write the ar_date with
- this offset from the real file's mod-time. After finishing the
- file, we rewrite ar_date if it's not still greater than the mod date. */
-
-#define ARMAP_TIME_OFFSET 60
-
-struct ar_hdr
-{
- char ar_name[16]; /* Name of this member. */
- char ar_date[12]; /* File mtime. */
- char ar_uid[6]; /* Owner uid; printed as decimal. */
- char ar_gid[6]; /* Owner gid; printed as decimal. */
- char ar_mode[8]; /* File mode, printed as octal. */
- char ar_size[10]; /* File size, printed as decimal. */
- char ar_fmag[2]; /* Should contain ARFMAG. */
-};
-
-#endif /* __GNU_AR_H__ */
diff --git a/include/aout/dynix3.h b/include/aout/dynix3.h
deleted file mode 100644
index 808e53a76..000000000
--- a/include/aout/dynix3.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* a.out specifics for Sequent Symmetry running Dynix 3.x
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef A_OUT_DYNIX3_H
-#define A_OUT_DYNIX3_H
-
-#define external_exec dynix_external_exec
-
-/* struct exec for Dynix 3
-
- a_gdtbl and a_bootstrap are only for standalone binaries.
- Shared data fields are not supported by the kernel as of Dynix 3.1,
- but are supported by Dynix compiler programs. */
-struct dynix_external_exec
- {
- unsigned char e_info[4];
- unsigned char e_text[4];
- unsigned char e_data[4];
- unsigned char e_bss[4];
- unsigned char e_syms[4];
- unsigned char e_entry[4];
- unsigned char e_trsize[4];
- unsigned char e_drsize[4];
- unsigned char e_g_code[8];
- unsigned char e_g_data[8];
- unsigned char e_g_desc[8];
- unsigned char e_shdata[4];
- unsigned char e_shbss[4];
- unsigned char e_shdrsize[4];
- unsigned char e_bootstrap[44];
- unsigned char e_reserved[12];
- unsigned char e_version[4];
- };
-
-#define EXEC_BYTES_SIZE (128)
-
-/* All executables under Dynix are demand paged with read-only text,
- Thus no NMAGIC.
-
- ZMAGIC has a page of 0s at virtual 0,
- XMAGIC has an invalid page at virtual 0. */
-#define OMAGIC 0x12eb /* .o */
-#define ZMAGIC 0x22eb /* zero @ 0, demand load */
-#define XMAGIC 0x32eb /* invalid @ 0, demand load */
-#define SMAGIC 0x42eb /* standalone, not supported here */
-
-#define N_BADMAG(x) ((OMAGIC != N_MAGIC(x)) && \
- (ZMAGIC != N_MAGIC(x)) && \
- (XMAGIC != N_MAGIC(x)) && \
- (SMAGIC != N_MAGIC(x)))
-
-#define N_ADDRADJ(x) ((ZMAGIC == N_MAGIC(x) || XMAGIC == N_MAGIC(x)) ? 0x1000 : 0)
-
-#define N_TXTOFF(x) (EXEC_BYTES_SIZE)
-#define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
-#define N_SHDATOFF(x) (N_DATOFF(x) + (x).a_data)
-#define N_TRELOFF(x) (N_SHDATOFF(x) + (x).a_shdata)
-#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
-#define N_SHDRELOFF(x) (N_DRELOFF(x) + (x).a_drsize)
-#define N_SYMOFF(x) (N_SHDRELOFF(x) + (x).a_shdrsize)
-#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
-
-#define N_TXTADDR(x) \
- (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? 0 \
- : TEXT_START_ADDR + EXEC_BYTES_SIZE)
-
-#define N_TXTSIZE(x) \
- (((OMAGIC == N_MAGIC(x)) || (SMAGIC == N_MAGIC(x))) ? ((x).a_text) \
- : ((x).a_text - N_ADDRADJ(x) - EXEC_BYTES_SIZE))
-
-#endif /* A_OUT_DYNIX3_H */
diff --git a/include/aout/encap.h b/include/aout/encap.h
deleted file mode 100644
index 7ebec698b..000000000
--- a/include/aout/encap.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Yet Another Try at encapsulating bfd object files in coff.
- Copyright 1988, 1989, 1991, 2010 Free Software Foundation, Inc.
- Written by Pace Willisson 12/9/88
-
- This file is obsolete. It needs to be converted to just define a bunch
- of stuff that BFD can use to do coff-encapsulated files. --gnu@cygnus.com
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/*
- * We only use the coff headers to tell the kernel
- * how to exec the file. Therefore, the only fields that need to
- * be filled in are the scnptr and vaddr for the text and data
- * sections, and the vaddr for the bss. As far as coff is concerned,
- * there is no symbol table, relocation, or line numbers.
- *
- * A normal bsd header (struct exec) is placed after the coff headers,
- * and before the real text. I defined a the new fields 'a_machtype'
- * and a_flags. If a_machtype is M_386, and a_flags & A_ENCAP is
- * true, then the bsd header is preceeded by a coff header. Macros
- * like N_TXTOFF and N_TXTADDR use this field to find the bsd header.
- *
- * The only problem is to track down the bsd exec header. The
- * macros HEADER_OFFSET, etc do this.
- */
-
-#define N_FLAGS_COFF_ENCAPSULATE 0x20 /* coff header precedes bsd header */
-
-/* Describe the COFF header used for encapsulation. */
-
-struct coffheader
-{
- /* filehdr */
- unsigned short f_magic;
- unsigned short f_nscns;
- long f_timdat;
- long f_symptr;
- long f_nsyms;
- unsigned short f_opthdr;
- unsigned short f_flags;
- /* aouthdr */
- short magic;
- short vstamp;
- long tsize;
- long dsize;
- long bsize;
- long entry;
- long text_start;
- long data_start;
- struct coffscn
- {
- char s_name[8];
- long s_paddr;
- long s_vaddr;
- long s_size;
- long s_scnptr;
- long s_relptr;
- long s_lnnoptr;
- unsigned short s_nreloc;
- unsigned short s_nlnno;
- long s_flags;
- } scns[3];
-};
-
-/* Describe some of the parameters of the encapsulation,
- including how to find the encapsulated BSD header. */
-
-/* FIXME, this is dumb. The same tools can't handle a.outs for different
- architectures, just because COFF_MAGIC is different; so you need a
- separate GNU nm for every architecture!!? Unfortunately, it needs to
- be this way, since the COFF_MAGIC value is determined by the kernel
- we're trying to fool here. */
-
-#define COFF_MAGIC_I386 0514 /* I386MAGIC */
-#define COFF_MAGIC_M68K 0520 /* MC68MAGIC */
-
-#ifdef COFF_MAGIC
-short __header_offset_temp;
-#define HEADER_OFFSET(f) \
- (__header_offset_temp = 0, \
- fread ((char *)&__header_offset_temp, sizeof (short), 1, (f)), \
- fseek ((f), -sizeof (short), 1), \
- __header_offset_temp==COFF_MAGIC ? sizeof(struct coffheader) : 0)
-#else
-#define HEADER_OFFSET(f) 0
-#endif
-
-#define HEADER_SEEK(f) (fseek ((f), HEADER_OFFSET((f)), 1))
-
-/* Describe the characteristics of the BSD header
- that appears inside the encapsulation. */
-
-/* Encapsulated coff files that are linked ZMAGIC have a text segment
- offset just past the header (and a matching TXTADDR), excluding
- the headers from the text segment proper but keeping the physical
- layout and the virtual memory layout page-aligned.
-
- Non-encapsulated a.out files that are linked ZMAGIC have a text
- segment that starts at 0 and an N_TXTADR similarly offset to 0.
- They too are page-aligned with each other, but they include the
- a.out header as part of the text.
-
- The _N_HDROFF gets sizeof struct exec added to it, so we have
- to compensate here. See <a.out.gnu.h>. */
-
-#undef _N_HDROFF
-#undef N_TXTADDR
-#undef N_DATADDR
-
-#define _N_HDROFF(x) ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
- sizeof (struct coffheader) : 0)
-
-/* Address of text segment in memory after it is loaded. */
-#define N_TXTADDR(x) \
- ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
- sizeof (struct coffheader) + sizeof (struct exec) : 0)
-#define SEGMENT_SIZE 0x400000
-
-#define N_DATADDR(x) \
- ((N_FLAGS(x) & N_FLAGS_COFF_ENCAPSULATE) ? \
- (SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1))) : \
- (N_TXTADDR(x)+(x).a_text))
diff --git a/include/aout/host.h b/include/aout/host.h
deleted file mode 100644
index 4260cc536..000000000
--- a/include/aout/host.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* host.h - Parameters about the a.out format, based on the host system
- on which the program is compiled.
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Address of data segment in memory after it is loaded.
- It is up to you to define SEGMENT_SIZE on machines not listed here. */
-#ifndef SEGMENT_SIZE
-
-#if defined(hp300) || defined(pyr)
-#define SEGMENT_SIZE page_size
-#endif
-
-#ifdef sony
-#define SEGMENT_SIZE 0x1000
-#endif /* Sony. */
-
-#ifdef is68k
-#define SEGMENT_SIZE 0x20000
-#endif
-
-#if defined(m68k) && defined(PORTAR)
-#define TARGET_PAGE_SIZE 0x400
-#define SEGMENT_SIZE TARGET_PAGE_SIZE
-#endif
-
-#endif /*!defined(SEGMENT_SIZE)*/
-
diff --git a/include/aout/hp.h b/include/aout/hp.h
deleted file mode 100644
index b60741a70..000000000
--- a/include/aout/hp.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Special version of <a.out.h> for use under HP-UX.
- Copyright 1988, 1991, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* THIS FILE IS OBSOLETE. It needs to be revised as a variant "external"
- a.out format for use with BFD. */
-
-/* The `exec' structure and overall layout must be close to HP's when
- we are running on an HP system, otherwise we will not be able to
- execute the resulting file. */
-
-/* Allow this file to be included twice. */
-#ifndef __GNU_EXEC_MACROS__
-
-struct exec
-{
- unsigned short a_machtype; /* machine type */
- unsigned short a_magic; /* magic number */
- unsigned long a_spare1;
- unsigned long a_spare2;
- unsigned long a_text; /* length of text, in bytes */
- unsigned long a_data; /* length of data, in bytes */
- unsigned long a_bss; /* length of uninitialized data area for file, in bytes */
- unsigned long a_trsize; /* length of relocation info for text, in bytes */
- unsigned long a_drsize; /* length of relocation info for data, in bytes */
- unsigned long a_spare3; /* HP = pascal interface size */
- unsigned long a_spare4; /* HP = symbol table size */
- unsigned long a_spare5; /* HP = debug name table size */
- unsigned long a_entry; /* start address */
- unsigned long a_spare6; /* HP = source line table size */
- unsigned long a_spare7; /* HP = value table size */
- unsigned long a_syms; /* length of symbol table data in file, in bytes */
- unsigned long a_spare8;
-};
-
-/* Tell a.out.gnu.h not to define `struct exec'. */
-#define __STRUCT_EXEC_OVERRIDE__
-
-#include "../a.out.gnu.h"
-
-#undef N_MAGIC
-#undef N_MACHTYPE
-#undef N_FLAGS
-#undef N_SET_INFO
-#undef N_SET_MAGIC
-#undef N_SET_MACHTYPE
-#undef N_SET_FLAGS
-
-#define N_MAGIC(exec) ((exec) . a_magic)
-#define N_MACHTYPE(exec) ((exec) . a_machtype)
-#define N_SET_MAGIC(exec, magic) (((exec) . a_magic) = (magic))
-#define N_SET_MACHTYPE(exec, machtype) (((exec) . a_machtype) = (machtype))
-
-#undef N_BADMAG
-#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
-
-#define _N_BADMACH(x) \
-(((N_MACHTYPE (x)) != HP9000S200_ID) && \
- ((N_MACHTYPE (x)) != HP98x6_ID))
-
-#define HP98x6_ID 0x20A
-#define HP9000S200_ID 0x20C
-
-#undef _N_HDROFF
-#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
-
-#define SEGMENT_SIZE 0x1000
-
-#endif /* __GNU_EXEC_MACROS__ */
diff --git a/include/aout/hp300hpux.h b/include/aout/hp300hpux.h
deleted file mode 100644
index 97a3eb58f..000000000
--- a/include/aout/hp300hpux.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Special version of <a.out.h> for use under HP-UX.
- Copyright 1988, 1993, 1995, 2001, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-struct hp300hpux_exec_bytes
-{
- unsigned char e_info[4]; /* a_machtype/a_magic */
- unsigned char e_spare1[4];
- unsigned char e_spare2[4];
- unsigned char e_text[4]; /* length of text, in bytes */
- unsigned char e_data[4]; /* length of data, in bytes */
- unsigned char e_bss[4]; /* length of uninitialized data area , in bytes */
- unsigned char e_trsize[4]; /* length of relocation info for text, in bytes*/
- unsigned char e_drsize[4]; /* length of relocation info for data, in bytes*/
- unsigned char e_passize[4];/* HP = pascal interface size */
- unsigned char e_syms[4]; /* HP = symbol table size */
- unsigned char e_spare5[4]; /* HP = debug name table size */
- unsigned char e_entry[4]; /* start address */
- unsigned char e_spare6[4]; /* HP = source line table size */
- unsigned char e_supsize[4];/* HP = value table size */
- unsigned char e_drelocs[4];
- unsigned char e_extension[4]; /* file offset of extension */
-};
-#define EXEC_BYTES_SIZE 64
-
-struct hp300hpux_nlist_bytes
- {
- unsigned char e_value[4];
- unsigned char e_type[1];
- unsigned char e_length[1]; /* length of ascii symbol name */
- unsigned char e_almod[2]; /* alignment mod */
- unsigned char e_shlib[2]; /* info about dynamic linking */
- };
-#define EXTERNAL_NLIST_SIZE 10
-
-struct hp300hpux_reloc
- {
- unsigned char r_address[4];/* offset of of data to relocate */
- unsigned char r_index[2]; /* symbol table index of symbol */
- unsigned char r_type[1]; /* relocation type */
- unsigned char r_length[1]; /* length of item to reloc */
- };
-
-struct hp300hpux_header_extension
-{
- unsigned char e_syms[4];
- unsigned char unique_headers[12*4];
- unsigned char e_header[2]; /* type of header */
- unsigned char e_version[2]; /* version */
- unsigned char e_size[4]; /* bytes following*/
- unsigned char e_extension[4];/* file offset of next extension */
-};
-#define EXTERNAL_EXTENSION_HEADER_SIZE (16*4)
-
-/* hpux separates object files (0x106) and impure executables (0x107) */
-/* but the bfd code does not distinguish between them. Since we want to*/
-/* read hpux .o files, we add an special define and use it below in */
-/* offset and address calculations. */
-
-#define HPUX_DOT_O_MAGIC 0x106
-#define OMAGIC 0x107 /* object file or impure executable. */
-#define NMAGIC 0x108 /* Code indicating pure executable. */
-#define ZMAGIC 0x10B /* demand-paged executable. */
-
-#define N_HEADER_IN_TEXT(x) 0
-
-#if 0 /* libaout.h only uses the lower 8 bits */
-#define HP98x6_ID 0x20A
-#define HP9000S200_ID 0x20C
-#endif
-#define HP98x6_ID 0x0A
-#define HP9000S200_ID 0x0C
-
-#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
-
-#define N_DATADDR(x) \
- ((N_MAGIC (x) == OMAGIC || N_MAGIC (x) == HPUX_DOT_O_MAGIC) \
- ? (N_TXTADDR (x) + N_TXTSIZE (x)) \
- : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \
- & ~ (bfd_vma) (N_SEGSIZE (x) - 1))))
-
-#define _N_BADMACH(x) \
- (((N_MACHTYPE (x)) != HP9000S200_ID) && ((N_MACHTYPE (x)) != HP98x6_ID))
-
-#define _N_BADMAG(x) (N_MAGIC(x) != HPUX_DOT_O_MAGIC \
- && N_MAGIC(x) != OMAGIC \
- && N_MAGIC(x) != NMAGIC \
- && N_MAGIC(x) != ZMAGIC )
-
-#undef _N_HDROFF
-#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
-
-#undef N_DATOFF
-#undef N_PASOFF
-#undef N_SYMOFF
-#undef N_SUPOFF
-#undef N_TRELOFF
-#undef N_DRELOFF
-#undef N_STROFF
-
-#define N_DATOFF(x) ( N_TXTOFF(x) + N_TXTSIZE(x) )
-#define N_PASOFF(x) ( N_DATOFF(x) + (x).a_data)
-#define N_SYMOFF(x) ( N_PASOFF(x) /* + (x).a_passize*/ )
-#define N_SUPOFF(x) ( N_SYMOFF(x) + (x).a_syms )
-#define N_TRELOFF(x) ( N_SUPOFF(x) /* + 0 (x).a_supsize*/ )
-#define N_DRELOFF(x) ( N_TRELOFF(x) + (x).a_trsize )
-#define N_EXTHOFF(x) ( N_DRELOFF(x) /* + 0 (x).a_drsize */)
-#define N_STROFF(x) ( 0 /* no string table */ )
-
-/* use these when the file has gnu symbol tables */
-#define N_GNU_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
-#define N_GNU_DRELOFF(x) (N_GNU_TRELOFF(x) + (x).a_trsize)
-#define N_GNU_SYMOFF(x) (N_GNU_DRELOFF(x) + (x).a_drsize)
-
-#define TARGET_PAGE_SIZE 0x1000
-#define SEGMENT_SIZE 0x1000
-#define TEXT_START_ADDR 0
diff --git a/include/aout/hppa.h b/include/aout/hppa.h
deleted file mode 100644
index 7e185de76..000000000
--- a/include/aout/hppa.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "filehdr.h"
-#include "aouthdr.h"
-#include "scnhdr.h"
-#include "spacehdr.h"
-#include "syms.h"
-
-
diff --git a/include/aout/ranlib.h b/include/aout/ranlib.h
deleted file mode 100644
index 92bec4689..000000000
--- a/include/aout/ranlib.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ranlib.h -- archive library index member definition for GNU.
- Copyright 1990, 1991, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The Symdef member of an archive contains two things:
- a table that maps symbol-string offsets to file offsets,
- and a symbol-string table. All the symbol names are
- run together (each with trailing null) in the symbol-string
- table. There is a single longword bytecount on the front
- of each of these tables. Thus if we have two symbols,
- "foo" and "_bar", that are in archive members at offsets
- 200 and 900, it would look like this:
- 16 ; byte count of index table
- 0 ; offset of "foo" in string table
- 200 ; offset of foo-module in file
- 4 ; offset of "bar" in string table
- 900 ; offset of bar-module in file
- 9 ; byte count of string table
- "foo\0_bar\0" ; string table */
-
-#define RANLIBMAG "__.SYMDEF" /* Archive file name containing index */
-#define RANLIBSKEW 3 /* Creation time offset */
-
-/* Format of __.SYMDEF:
- First, a longword containing the size of the 'symdef' data that follows.
- Second, zero or more 'symdef' structures.
- Third, a longword containing the length of symbol name strings.
- Fourth, zero or more symbol name strings (each followed by a null). */
-
-struct symdef
- {
- union
- {
- unsigned long string_offset; /* In the file */
- char *name; /* In memory, sometimes */
- } s;
- /* this points to the front of the file header (AKA member header --
- a struct ar_hdr), not to the front of the file or into the file).
- in other words it only tells you which file to read */
- unsigned long file_offset;
- };
-
-/* Compatability with BSD code */
-
-#define ranlib symdef
-#define ran_un s
-#define ran_strx string_offset
-#define ran_name name
-#define ran_off file_offset
diff --git a/include/aout/reloc.h b/include/aout/reloc.h
deleted file mode 100644
index 6f1bc52e4..000000000
--- a/include/aout/reloc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* reloc.h -- Header file for relocation information.
- Copyright 1989, 1990, 1991, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Relocation types for a.out files using reloc_info_extended
- (SPARC and AMD 29000). */
-
-#ifndef _RELOC_H_READ_
-#define _RELOC_H_READ_ 1
-
-enum reloc_type
- {
- RELOC_8, RELOC_16, RELOC_32, /* simple relocations */
- RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, /* pc-rel displacement */
- RELOC_WDISP30, RELOC_WDISP22,
- RELOC_HI22, RELOC_22,
- RELOC_13, RELOC_LO10,
- RELOC_SFA_BASE, RELOC_SFA_OFF13,
- RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, /* P.I.C. (base-relative) */
- RELOC_PC10, RELOC_PC22, /* for some sort of pc-rel P.I.C. (?) */
- RELOC_JMP_TBL, /* P.I.C. jump table */
- RELOC_SEGOFF16, /* reputedly for shared libraries somehow */
- RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE,
- RELOC_11,
- RELOC_WDISP2_14,
- RELOC_WDISP19,
- RELOC_HHI22,
- RELOC_HLO10,
-
- /* 29K relocation types */
- RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH,
-
- RELOC_WDISP14, RELOC_WDISP21,
-
- NO_RELOC
- };
-
-#define RELOC_TYPE_NAMES \
-"8", "16", "32", "DISP8", \
-"DISP16", "DISP32", "WDISP30", "WDISP22", \
-"HI22", "22", "13", "LO10", \
-"SFA_BASE", "SFAOFF13", "BASE10", "BASE13", \
-"BASE22", "PC10", "PC22", "JMP_TBL", \
-"SEGOFF16", "GLOB_DAT", "JMP_SLOT", "RELATIVE", \
-"11", "WDISP2_14", "WDISP19", "HHI22", \
-"HLO10", \
-"JUMPTARG", "CONST", "CONSTH", "WDISP14", \
-"WDISP21", \
-"NO_RELOC"
-
-#endif /* _RELOC_H_READ_ */
-
-/* end of reloc.h */
diff --git a/include/aout/stab.def b/include/aout/stab.def
deleted file mode 100644
index ad1c62ed8..000000000
--- a/include/aout/stab.def
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Table of DBX symbol codes for the GNU system.
- Copyright 1988, 1991, 1992, 1993, 1994, 1996, 1998, 2004, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* New stab from Solaris 2. This uses an n_type of 0, which in a.out files
- overlaps the N_UNDF used for ordinary symbols. In ELF files, the
- debug information is in a different file section, so there is no conflict.
- This symbol's n_value gives the size of the string section associated
- with this file. The symbol's n_strx (relative to the just-updated
- string section start address) gives the name of the source file,
- e.g. "foo.c", without any path information. The symbol's n_desc gives
- the count of upcoming symbols associated with this file (not including
- this one). */
-/* __define_stab (N_UNDF, 0x00, "UNDF") */
-
-/* Global variable. Only the name is significant.
- To find the address, look in the corresponding external symbol. */
-__define_stab (N_GSYM, 0x20, "GSYM")
-
-/* Function name for BSD Fortran. Only the name is significant.
- To find the address, look in the corresponding external symbol. */
-__define_stab (N_FNAME, 0x22, "FNAME")
-
-/* Function name or text-segment variable for C. Value is its address.
- Desc is supposedly starting line number, but GCC doesn't set it
- and DBX seems not to miss it. */
-__define_stab (N_FUN, 0x24, "FUN")
-
-/* Data-segment variable with internal linkage. Value is its address.
- "Static Sym". */
-__define_stab (N_STSYM, 0x26, "STSYM")
-
-/* BSS-segment variable with internal linkage. Value is its address. */
-__define_stab (N_LCSYM, 0x28, "LCSYM")
-
-/* Name of main routine. Only the name is significant. */
-__define_stab (N_MAIN, 0x2a, "MAIN")
-
-/* Solaris2: Read-only data symbols. */
-__define_stab (N_ROSYM, 0x2c, "ROSYM")
-
-/* MacOS X:
- The beginning of a relocatable function block - including stabs. */
-__define_stab (N_BNSYM, 0x2e, "BNSYM")
-
-/* Global symbol in Pascal.
- Supposedly the value is its line number; I'm skeptical. */
-__define_stab (N_PC, 0x30, "PC")
-
-/* Number of symbols: 0, files,,funcs,lines according to Ultrix V4.0. */
-__define_stab (N_NSYMS, 0x32, "NSYMS")
-
-/* "No DST map for sym: name, ,0,type,ignored" according to Ultrix V4.0. */
-__define_stab (N_NOMAP, 0x34, "NOMAP")
-
-/* New stab from Solaris 2. Like N_SO, but for the object file. Two in
- a row provide the build directory and the relative path of the .o from it.
- Solaris2 uses this to avoid putting the stabs info into the linked
- executable; this stab goes into the ".stab.index" section, and the debugger
- reads the real stabs directly from the .o files instead. */
-__define_stab (N_OBJ, 0x38, "OBJ")
-
-/* New stab from Solaris 2. Options for the debugger, related to the
- source language for this module. E.g. whether to use ANSI
- integral promotions or traditional integral promotions. */
-__define_stab (N_OPT, 0x3c, "OPT")
-
-/* Register variable. Value is number of register. */
-__define_stab (N_RSYM, 0x40, "RSYM")
-
-/* Modula-2 compilation unit. Can someone say what info it contains? */
-__define_stab (N_M2C, 0x42, "M2C")
-
-/* Line number in text segment. Desc is the line number;
- value is corresponding address. On Solaris2, the line number is
- relative to the start of the current function. */
-__define_stab (N_SLINE, 0x44, "SLINE")
-
-/* Similar, for data segment. */
-__define_stab (N_DSLINE, 0x46, "DSLINE")
-
-/* Similar, for bss segment. */
-__define_stab (N_BSLINE, 0x48, "BSLINE")
-
-/* Sun's source-code browser stabs. ?? Don't know what the fields are.
- Supposedly the field is "path to associated .cb file". THIS VALUE
- OVERLAPS WITH N_BSLINE! */
-__define_stab_duplicate (N_BROWS, 0x48, "BROWS")
-
-/* GNU Modula-2 definition module dependency. Value is the modification time
- of the definition file. Other is non-zero if it is imported with the
- GNU M2 keyword %INITIALIZE. Perhaps N_M2C can be used if there
- are enough empty fields? */
-__define_stab(N_DEFD, 0x4a, "DEFD")
-
-/* New in Solaris2. Function start/body/end line numbers. */
-__define_stab(N_FLINE, 0x4C, "FLINE")
-
-/* MacOS X: This tells the end of a relocatable function + debugging info. */
-__define_stab(N_ENSYM, 0x4E, "ENSYM")
-
-/* THE FOLLOWING TWO STAB VALUES CONFLICT. Happily, one is for Modula-2
- and one is for C++. Still,... */
-/* GNU C++ exception variable. Name is variable name. */
-__define_stab (N_EHDECL, 0x50, "EHDECL")
-/* Modula2 info "for imc": name,,0,0,0 according to Ultrix V4.0. */
-__define_stab_duplicate (N_MOD2, 0x50, "MOD2")
-
-/* GNU C++ `catch' clause. Value is its address. Desc is nonzero if
- this entry is immediately followed by a CAUGHT stab saying what exception
- was caught. Multiple CAUGHT stabs means that multiple exceptions
- can be caught here. If Desc is 0, it means all exceptions are caught
- here. */
-__define_stab (N_CATCH, 0x54, "CATCH")
-
-/* Structure or union element. Value is offset in the structure. */
-__define_stab (N_SSYM, 0x60, "SSYM")
-
-/* Solaris2: Last stab emitted for module. */
-__define_stab (N_ENDM, 0x62, "ENDM")
-
-/* Name of main source file.
- Value is starting text address of the compilation.
- If multiple N_SO's appear, the first to contain a trailing / is the
- compilation directory. The first to not contain a trailing / is the
- source file name, relative to the compilation directory. Others (perhaps
- resulting from cfront) are ignored.
- On Solaris2, value is undefined, but desc is a source-language code. */
-
-__define_stab (N_SO, 0x64, "SO")
-
-/* Apple: This is the stab that associated the .o file with the
- N_SO stab, in the case where debug info is mostly stored in the .o file. */
-__define_stab (N_OSO, 0x66, "OSO")
-
-/* SunPro F77: Name of alias. */
-__define_stab (N_ALIAS, 0x6c, "ALIAS")
-
-/* Automatic variable in the stack. Value is offset from frame pointer.
- Also used for type descriptions. */
-__define_stab (N_LSYM, 0x80, "LSYM")
-
-/* Beginning of an include file. Only Sun uses this.
- In an object file, only the name is significant.
- The Sun linker puts data into some of the other fields. */
-__define_stab (N_BINCL, 0x82, "BINCL")
-
-/* Name of sub-source file (#include file).
- Value is starting text address of the compilation. */
-__define_stab (N_SOL, 0x84, "SOL")
-
-/* Parameter variable. Value is offset from argument pointer.
- (On most machines the argument pointer is the same as the frame pointer. */
-__define_stab (N_PSYM, 0xa0, "PSYM")
-
-/* End of an include file. No name.
- This and N_BINCL act as brackets around the file's output.
- In an object file, there is no significant data in this entry.
- The Sun linker puts data into some of the fields. */
-__define_stab (N_EINCL, 0xa2, "EINCL")
-
-/* Alternate entry point. Value is its address. */
-__define_stab (N_ENTRY, 0xa4, "ENTRY")
-
-/* Beginning of lexical block.
- The desc is the nesting level in lexical blocks.
- The value is the address of the start of the text for the block.
- The variables declared inside the block *precede* the N_LBRAC symbol.
- On Solaris2, the value is relative to the start of the current function. */
-__define_stab (N_LBRAC, 0xc0, "LBRAC")
-
-/* Place holder for deleted include file. Replaces a N_BINCL and everything
- up to the corresponding N_EINCL. The Sun linker generates these when
- it finds multiple identical copies of the symbols from an include file.
- This appears only in output from the Sun linker. */
-__define_stab (N_EXCL, 0xc2, "EXCL")
-
-/* Modula-2 scope information. Can someone say what info it contains? */
-__define_stab (N_SCOPE, 0xc4, "SCOPE")
-
-/* Solaris2: Patch Run Time Checker. */
-__define_stab (N_PATCH, 0xd0, "PATCH")
-
-/* End of a lexical block. Desc matches the N_LBRAC's desc.
- The value is the address of the end of the text for the block.
- On Solaris2, the value is relative to the start of the current function. */
-__define_stab (N_RBRAC, 0xe0, "RBRAC")
-
-/* Begin named common block. Only the name is significant. */
-__define_stab (N_BCOMM, 0xe2, "BCOMM")
-
-/* End named common block. Only the name is significant
- (and it should match the N_BCOMM). */
-__define_stab (N_ECOMM, 0xe4, "ECOMM")
-
-/* Member of a common block; value is offset within the common block.
- This should occur within a BCOMM/ECOMM pair. */
-__define_stab (N_ECOML, 0xe8, "ECOML")
-
-/* Solaris2: Pascal "with" statement: type,,0,0,offset */
-__define_stab (N_WITH, 0xea, "WITH")
-
-/* These STAB's are used on Gould systems for Non-Base register symbols
- or something like that. FIXME. I have assigned the values at random
- since I don't have a Gould here. Fixups from Gould folk welcome... */
-__define_stab (N_NBTEXT, 0xF0, "NBTEXT")
-__define_stab (N_NBDATA, 0xF2, "NBDATA")
-__define_stab (N_NBBSS, 0xF4, "NBBSS")
-__define_stab (N_NBSTS, 0xF6, "NBSTS")
-__define_stab (N_NBLCS, 0xF8, "NBLCS")
-
-/* Second symbol entry containing a length-value for the preceding entry.
- The value is the length. */
-__define_stab (N_LENG, 0xfe, "LENG")
-
-/* The above information, in matrix format.
-
- STAB MATRIX
- _________________________________________________
- | 00 - 1F are not dbx stab symbols |
- | In most cases, the low bit is the EXTernal bit|
-
- | 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA |
- | 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT |
-
- | 08 BSS | 0A INDR | 0C FN_SEQ | 0E WEAKA |
- | 09 |EXT | 0B | 0D WEAKU | 0F WEAKT |
-
- | 10 WEAKD | 12 COMM | 14 SETA | 16 SETT |
- | 11 WEAKB | 13 | 15 | 17 |
-
- | 18 SETD | 1A SETB | 1C SETV | 1E WARNING|
- | 19 | 1B | 1D | 1F FN |
-
- |_______________________________________________|
- | Debug entries with bit 01 set are unused. |
- | 20 GSYM | 22 FNAME | 24 FUN | 26 STSYM |
- | 28 LCSYM | 2A MAIN | 2C ROSYM | 2E |
- | 30 PC | 32 NSYMS | 34 NOMAP | 36 |
- | 38 OBJ | 3A | 3C OPT | 3E |
- | 40 RSYM | 42 M2C | 44 SLINE | 46 DSLINE |
- | 48 BSLINE*| 4A DEFD | 4C FLINE | 4E |
- | 50 EHDECL*| 52 | 54 CATCH | 56 |
- | 58 | 5A | 5C | 5E |
- | 60 SSYM | 62 ENDM | 64 SO | 66 |
- | 68 | 6A | 6C ALIAS | 6E |
- | 70 | 72 | 74 | 76 |
- | 78 | 7A | 7C | 7E |
- | 80 LSYM | 82 BINCL | 84 SOL | 86 |
- | 88 | 8A | 8C | 8E |
- | 90 | 92 | 94 | 96 |
- | 98 | 9A | 9C | 9E |
- | A0 PSYM | A2 EINCL | A4 ENTRY | A6 |
- | A8 | AA | AC | AE |
- | B0 | B2 | B4 | B6 |
- | B8 | BA | BC | BE |
- | C0 LBRAC | C2 EXCL | C4 SCOPE | C6 |
- | C8 | CA | CC | CE |
- | D0 PATCH | D2 | D4 | D6 |
- | D8 | DA | DC | DE |
- | E0 RBRAC | E2 BCOMM | E4 ECOMM | E6 |
- | E8 ECOML | EA WITH | EC | EE |
- | F0 | F2 | F4 | F6 |
- | F8 | FA | FC | FE LENG |
- +-----------------------------------------------+
- * 50 EHDECL is also MOD2.
- * 48 BSLINE is also BROWS.
- */
diff --git a/include/aout/stab_gnu.h b/include/aout/stab_gnu.h
deleted file mode 100644
index 60b5272c5..000000000
--- a/include/aout/stab_gnu.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* gnu_stab.h Definitions for GNU extensions to STABS
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-#ifndef __GNU_STAB__
-
-/* Indicate the GNU stab.h is in use. */
-
-#define __GNU_STAB__
-
-#define __define_stab(NAME, CODE, STRING) NAME=CODE,
-#define __define_stab_duplicate(NAME, CODE, STRING) NAME=CODE,
-
-enum __stab_debug_code
-{
-#include "aout/stab.def"
-LAST_UNUSED_STAB_CODE
-};
-
-#undef __define_stab
-
-/* Definitions of "desc" field for N_SO stabs in Solaris2. */
-
-#define N_SO_AS 1
-#define N_SO_C 2
-#define N_SO_ANSI_C 3
-#define N_SO_CC 4 /* C++ */
-#define N_SO_FORTRAN 5
-#define N_SO_PASCAL 6
-
-/* Solaris2: Floating point type values in basic types. */
-
-#define NF_NONE 0
-#define NF_SINGLE 1 /* IEEE 32-bit */
-#define NF_DOUBLE 2 /* IEEE 64-bit */
-#define NF_COMPLEX 3 /* Fortran complex */
-#define NF_COMPLEX16 4 /* Fortran double complex */
-#define NF_COMPLEX32 5 /* Fortran complex*16 */
-#define NF_LDOUBLE 6 /* Long double (whatever that is) */
-
-#endif /* __GNU_STAB_ */
diff --git a/include/aout/sun4.h b/include/aout/sun4.h
deleted file mode 100644
index 06f7584cf..000000000
--- a/include/aout/sun4.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/* SPARC-specific values for a.out files
-
- Copyright 2001, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Some systems, e.g., AIX, may have defined this in header files already
- included. */
-#undef TARGET_PAGE_SIZE
-#define TARGET_PAGE_SIZE 0x2000 /* 8K. aka NBPG in <sys/param.h> */
-/* Note that some SPARCs have 4K pages, some 8K, some others. */
-
-#define SEG_SIZE_SPARC TARGET_PAGE_SIZE
-#define SEG_SIZE_SUN3 0x20000 /* Resolution of r/w protection hw */
-
-#define TEXT_START_ADDR TARGET_PAGE_SIZE /* Location 0 is not accessible */
-#define N_HEADER_IN_TEXT(x) 1
-
-/* Non-default definitions of the accessor macros... */
-
-/* Segment size varies on Sun-3 versus Sun-4. */
-
-#define N_SEGSIZE(x) (N_MACHTYPE(x) == M_SPARC? SEG_SIZE_SPARC: \
- N_MACHTYPE(x) == M_68020? SEG_SIZE_SUN3: \
- /* Guess? */ TARGET_PAGE_SIZE)
-
-/* Virtual Address of text segment from the a.out file. For OMAGIC,
- (almost always "unlinked .o's" these days), should be zero.
- Sun added a kludge so that shared libraries linked ZMAGIC get
- an address of zero if a_entry (!!!) is lower than the otherwise
- expected text address. These kludges have gotta go!
- For linked files, should reflect reality if we know it. */
-
-#define N_SHARED_LIB(x) ((x).a_entry < TEXT_START_ADDR \
- && (x).a_text >= EXEC_BYTES_SIZE)
-
-/* This differs from the version in aout64.h (which we override by defining
- it here) only for NMAGIC (we return TEXT_START_ADDR+EXEC_BYTES_SIZE;
- they return 0). */
-
-#define N_TXTADDR(x) \
- (N_MAGIC(x)==OMAGIC? 0 \
- : (N_MAGIC(x) == ZMAGIC && (x).a_entry < TEXT_START_ADDR)? 0 \
- : TEXT_START_ADDR+EXEC_BYTES_SIZE)
-
-/* When a file is linked against a shared library on SunOS 4, the
- dynamic bit in the exec header is set, and the first symbol in the
- symbol table is __DYNAMIC. Its value is the address of the
- following structure. */
-
-struct external_sun4_dynamic
-{
- /* The version number of the structure. SunOS 4.1.x creates files
- with version number 3, which is what this structure is based on.
- According to gdb, version 2 is similar. I believe that version 2
- used a different type of procedure linkage table, and there may
- have been other differences. */
- bfd_byte ld_version[4];
- /* The virtual address of a 28 byte structure used in debugging.
- The contents are filled in at run time by ld.so. */
- bfd_byte ldd[4];
- /* The virtual address of another structure with information about
- how to relocate the executable at run time. */
- bfd_byte ld[4];
-};
-
-/* The size of the debugging structure pointed to by the debugger
- field of __DYNAMIC. */
-#define EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE (24)
-
-/* The structure pointed to by the linker field of __DYNAMIC. As far
- as I can tell, most of the addresses in this structure are offsets
- within the file, but some are actually virtual addresses. */
-
-struct internal_sun4_dynamic_link
-{
- /* Linked list of loaded objects. This is filled in at runtime by
- ld.so and probably by dlopen. */
- unsigned long ld_loaded;
-
- /* The address of the list of names of shared objects which must be
- included at runtime. Each entry in the list is 16 bytes: the 4
- byte address of the string naming the object (e.g., for -lc this
- is "c"); 4 bytes of flags--the high bit is whether to search for
- the object using the library path; the 2 byte major version
- number; the 2 byte minor version number; the 4 byte address of
- the next entry in the list (zero if this is the last entry). The
- version numbers seem to only be non-zero when doing library
- searching. */
- unsigned long ld_need;
-
- /* The address of the path to search for the shared objects which
- must be included. This points to a string in PATH format which
- is generated from the -L arguments to the linker. According to
- the man page, ld.so implicitly adds ${LD_LIBRARY_PATH} to the
- beginning of this string and /lib:/usr/lib:/usr/local/lib to the
- end. The string is terminated by a null byte. This field is
- zero if there is no additional path. */
- unsigned long ld_rules;
-
- /* The address of the global offset table. This appears to be a
- virtual address, not a file offset. The first entry in the
- global offset table seems to be the virtual address of the
- sun4_dynamic structure (the same value as the __DYNAMIC symbol).
- The global offset table is used for PIC code to hold the
- addresses of variables. A dynamically linked file which does not
- itself contain PIC code has a four byte global offset table. */
- unsigned long ld_got;
-
- /* The address of the procedure linkage table. This appears to be a
- virtual address, not a file offset.
-
- On a SPARC, the table is composed of 12 byte entries, each of
- which consists of three instructions. The first entry is
- sethi %hi(0),%g1
- jmp %g1
- nop
- These instructions are changed by ld.so into a jump directly into
- ld.so itself. Each subsequent entry is
- save %sp, -96, %sp
- call <address of first entry in procedure linkage table>
- <reloc_number | 0x01000000>
- The reloc_number is the number of the reloc to use to resolve
- this entry. The reloc will be a JMP_SLOT reloc against some
- symbol that is not defined in this object file but should be
- defined in a shared object (if it is not, ld.so will report a
- runtime error and exit). The constant 0x010000000 turns the
- reloc number into a sethi of %g0, which does nothing since %g0 is
- hardwired to zero.
-
- When one of these entries is executed, it winds up calling into
- ld.so. ld.so looks at the reloc number, available via the return
- address, to determine which entry this is. It then looks at the
- reloc and patches up the entry in the table into a sethi and jmp
- to the real address followed by a nop. This means that the reloc
- lookup only has to happen once, and it also means that the
- relocation only needs to be done if the function is actually
- called. The relocation is expensive because ld.so must look up
- the symbol by name.
-
- The size of the procedure linkage table is given by the ld_plt_sz
- field. */
- unsigned long ld_plt;
-
- /* The address of the relocs. These are in the same format as
- ordinary relocs. Symbol index numbers refer to the symbols
- pointed to by ld_stab. I think the only way to determine the
- number of relocs is to assume that all the bytes from ld_rel to
- ld_hash contain reloc entries. */
- unsigned long ld_rel;
-
- /* The address of a hash table of symbols. The hash table has
- roughly the same number of entries as there are dynamic symbols;
- I think the only way to get the exact size is to assume that
- every byte from ld_hash to ld_stab is devoted to the hash table.
-
- Each entry in the hash table is eight bytes. The first four
- bytes are a symbol index into the dynamic symbols. The second
- four bytes are the index of the next hash table entry in the
- bucket. The ld_buckets field gives the number of buckets, say B.
- The first B entries in the hash table each start a bucket which
- is chained through the second four bytes of each entry. A value
- of zero ends the chain.
-
- The hash function is simply
- h = 0;
- while (*string != '\0')
- h = (h << 1) + *string++;
- h &= 0x7fffffff;
-
- To look up a symbol, compute the hash value of the name. Take
- the modulos of hash value and the number of buckets. Start at
- that entry in the hash table. See if the symbol (from the first
- four bytes of the hash table entry) has the name you are looking
- for. If not, use the chain field (the second four bytes of the
- hash table entry) to move on to the next entry in this bucket.
- If the chain field is zero you have reached the end of the
- bucket, and the symbol is not in the hash table. */
- unsigned long ld_hash;
-
- /* The address of the symbol table. This is a list of
- external_nlist structures. The string indices are relative to
- the ld_symbols field. I think the only way to determine the
- number of symbols is to assume that all the bytes between ld_stab
- and ld_symbols are external_nlist structures. */
- unsigned long ld_stab;
-
- /* I don't know what this is for. It seems to always be zero. */
- unsigned long ld_stab_hash;
-
- /* The number of buckets in the hash table. */
- unsigned long ld_buckets;
-
- /* The address of the symbol string table. The first string in this
- string table need not be the empty string. */
- unsigned long ld_symbols;
-
- /* The size in bytes of the symbol string table. */
- unsigned long ld_symb_size;
-
- /* The size in bytes of the text segment. */
- unsigned long ld_text;
-
- /* The size in bytes of the procedure linkage table. */
- unsigned long ld_plt_sz;
-};
-
-/* The external form of the structure. */
-
-struct external_sun4_dynamic_link
-{
- bfd_byte ld_loaded[4];
- bfd_byte ld_need[4];
- bfd_byte ld_rules[4];
- bfd_byte ld_got[4];
- bfd_byte ld_plt[4];
- bfd_byte ld_rel[4];
- bfd_byte ld_hash[4];
- bfd_byte ld_stab[4];
- bfd_byte ld_stab_hash[4];
- bfd_byte ld_buckets[4];
- bfd_byte ld_symbols[4];
- bfd_byte ld_symb_size[4];
- bfd_byte ld_text[4];
- bfd_byte ld_plt_sz[4];
-};
diff --git a/include/bfdlink.h b/include/bfdlink.h
deleted file mode 100644
index be853295a..000000000
--- a/include/bfdlink.h
+++ /dev/null
@@ -1,816 +0,0 @@
-/* bfdlink.h -- header file for BFD link routines
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
- Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef BFDLINK_H
-#define BFDLINK_H
-
-/* Which symbols to strip during a link. */
-enum bfd_link_strip
-{
- strip_none, /* Don't strip any symbols. */
- strip_debugger, /* Strip debugging symbols. */
- strip_some, /* keep_hash is the list of symbols to keep. */
- strip_all /* Strip all symbols. */
-};
-
-/* Which local symbols to discard during a link. This is irrelevant
- if strip_all is used. */
-enum bfd_link_discard
-{
- discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE
- sections. */
- discard_none, /* Don't discard any locals. */
- discard_l, /* Discard local temporary symbols. */
- discard_all /* Discard all locals. */
-};
-
-/* Describes the type of hash table entry structure being used.
- Different hash table structure have different fields and so
- support different linking features. */
-enum bfd_link_hash_table_type
- {
- bfd_link_generic_hash_table,
- bfd_link_elf_hash_table
- };
-
-/* These are the possible types of an entry in the BFD link hash
- table. */
-
-enum bfd_link_hash_type
-{
- bfd_link_hash_new, /* Symbol is new. */
- bfd_link_hash_undefined, /* Symbol seen before, but undefined. */
- bfd_link_hash_undefweak, /* Symbol is weak and undefined. */
- bfd_link_hash_defined, /* Symbol is defined. */
- bfd_link_hash_defweak, /* Symbol is weak and defined. */
- bfd_link_hash_common, /* Symbol is common. */
- bfd_link_hash_indirect, /* Symbol is an indirect link. */
- bfd_link_hash_warning /* Like indirect, but warn if referenced. */
-};
-
-enum bfd_link_common_skip_ar_symbols
-{
- bfd_link_common_skip_none,
- bfd_link_common_skip_text,
- bfd_link_common_skip_data,
- bfd_link_common_skip_all
-};
-
-struct bfd_link_hash_common_entry
- {
- unsigned int alignment_power; /* Alignment. */
- asection *section; /* Symbol section. */
- };
-
-/* The linking routines use a hash table which uses this structure for
- its elements. */
-
-struct bfd_link_hash_entry
-{
- /* Base hash table entry structure. */
- struct bfd_hash_entry root;
-
- /* Type of this entry. */
- ENUM_BITFIELD (bfd_link_hash_type) type : 8;
-
- unsigned int non_ir_ref : 1;
-
- /* A union of information depending upon the type. */
- union
- {
- /* Nothing is kept for bfd_hash_new. */
- /* bfd_link_hash_undefined, bfd_link_hash_undefweak. */
- struct
- {
- /* Undefined and common symbols are kept in a linked list through
- this field. This field is present in all of the union element
- so that we don't need to remove entries from the list when we
- change their type. Removing entries would either require the
- list to be doubly linked, which would waste more memory, or
- require a traversal. When an undefined or common symbol is
- created, it should be added to this list, the head of which is in
- the link hash table itself. As symbols are defined, they need
- not be removed from the list; anything which reads the list must
- doublecheck the symbol type.
-
- Weak symbols are not kept on this list.
-
- Defined and defweak symbols use this field as a reference marker.
- If the field is not NULL, or this structure is the tail of the
- undefined symbol list, the symbol has been referenced. If the
- symbol is undefined and becomes defined, this field will
- automatically be non-NULL since the symbol will have been on the
- undefined symbol list. */
- struct bfd_link_hash_entry *next;
- bfd *abfd; /* BFD symbol was found in. */
- } undef;
- /* bfd_link_hash_defined, bfd_link_hash_defweak. */
- struct
- {
- struct bfd_link_hash_entry *next;
- asection *section; /* Symbol section. */
- bfd_vma value; /* Symbol value. */
- } def;
- /* bfd_link_hash_indirect, bfd_link_hash_warning. */
- struct
- {
- struct bfd_link_hash_entry *next;
- struct bfd_link_hash_entry *link; /* Real symbol. */
- const char *warning; /* Warning (bfd_link_hash_warning only). */
- } i;
- /* bfd_link_hash_common. */
- struct
- {
- struct bfd_link_hash_entry *next;
- /* The linker needs to know three things about common
- symbols: the size, the alignment, and the section in
- which the symbol should be placed. We store the size
- here, and we allocate a small structure to hold the
- section and the alignment. The alignment is stored as a
- power of two. We don't store all the information
- directly because we don't want to increase the size of
- the union; this structure is a major space user in the
- linker. */
- struct bfd_link_hash_common_entry *p;
- bfd_size_type size; /* Common symbol size. */
- } c;
- } u;
-};
-
-/* This is the link hash table. It is a derived class of
- bfd_hash_table. */
-
-struct bfd_link_hash_table
-{
- /* The hash table itself. */
- struct bfd_hash_table table;
- /* A linked list of undefined and common symbols, linked through the
- next field in the bfd_link_hash_entry structure. */
- struct bfd_link_hash_entry *undefs;
- /* Entries are added to the tail of the undefs list. */
- struct bfd_link_hash_entry *undefs_tail;
- /* The type of the link hash table. */
- enum bfd_link_hash_table_type type;
-};
-
-/* Look up an entry in a link hash table. If FOLLOW is TRUE, this
- 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
- (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
- (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
- bfd_boolean, bfd_boolean);
-
-/* Traverse a link hash table. */
-extern void bfd_link_hash_traverse
- (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
- (struct bfd_link_hash_table *, struct bfd_link_hash_entry *);
-
-/* Remove symbols from the undefs list that don't belong there. */
-extern void bfd_link_repair_undef_list
- (struct bfd_link_hash_table *table);
-
-/* Read symbols and cache symbol pointer array in outsymbols. */
-extern bfd_boolean bfd_generic_link_read_symbols (bfd *);
-
-struct bfd_sym_chain
-{
- struct bfd_sym_chain *next;
- 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
-};
-
-typedef enum {with_flags, without_flags} flag_type;
-
-/* A section flag list. */
-struct flag_info_list
-{
- flag_type with;
- const char *name;
- bfd_boolean valid;
- struct flag_info_list *next;
-};
-
-/* Section flag info. */
-struct flag_info
-{
- flagword only_with_flags;
- flagword not_with_flags;
- struct flag_info_list *flag_list;
- bfd_boolean flags_initialized;
-};
-
-struct bfd_elf_dynamic_list;
-struct bfd_elf_version_tree;
-
-/* 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 shared object (or a pie). */
- unsigned int shared: 1;
-
- /* TRUE if generating an executable, position independent or not. */
- unsigned int executable : 1;
-
- /* TRUE if generating a position independent executable. */
- unsigned int pie: 1;
-
- /* TRUE if BFD should generate a relocatable object file. */
- unsigned int relocatable: 1;
-
- /* TRUE if BFD should pre-bind symbols in a shared object. */
- unsigned int symbolic: 1;
-
- /* TRUE if executable should not contain copy relocs.
- Setting this true may result in a non-sharable text segment. */
- unsigned int nocopyreloc: 1;
-
- /* TRUE if BFD should export all symbols in the dynamic symbol table
- of an executable, rather than only those used. */
- unsigned int export_dynamic: 1;
-
- /* TRUE if a default symbol version should be created and used for
- exported symbols. */
- unsigned int create_default_symver: 1;
-
- /* TRUE if unreferenced sections should be removed. */
- unsigned int gc_sections: 1;
-
- /* TRUE if every symbol should be reported back via the notice
- callback. */
- unsigned int notice_all: 1;
-
- /* TRUE if we are loading LTO outputs. */
- unsigned int loading_lto_outputs: 1;
-
- /* TRUE if global symbols in discarded sections should be stripped. */
- unsigned int strip_discarded: 1;
-
- /* TRUE if all data symbols should be dynamic. */
- unsigned int dynamic_data: 1;
-
- /* Which symbols to strip. */
- ENUM_BITFIELD (bfd_link_strip) strip : 2;
-
- /* Which local symbols to discard. */
- ENUM_BITFIELD (bfd_link_discard) discard : 2;
-
- /* Criteria for skipping symbols when determining
- whether to include an object from an archive. */
- ENUM_BITFIELD (bfd_link_common_skip_ar_symbols) common_skip_ar_symbols : 2;
-
- /* What to do with unresolved symbols in an object file.
- When producing executables the default is GENERATE_ERROR.
- When producing shared libraries the default is IGNORE. The
- assumption with shared libraries is that the reference will be
- resolved at load/execution time. */
- ENUM_BITFIELD (report_method) unresolved_syms_in_objects : 2;
-
- /* What to do with unresolved symbols in a shared library.
- The same defaults apply. */
- ENUM_BITFIELD (report_method) unresolved_syms_in_shared_libs : 2;
-
- /* TRUE if shared objects should be linked directly, not shared. */
- unsigned int static_link: 1;
-
- /* TRUE if symbols should be retained in memory, FALSE if they
- should be freed and reread. */
- unsigned int keep_memory: 1;
-
- /* TRUE if BFD should generate relocation information in the final
- executable. */
- unsigned int emitrelocations: 1;
-
- /* TRUE if PT_GNU_RELRO segment should be created. */
- unsigned int relro: 1;
-
- /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
- should be created. */
- unsigned int eh_frame_hdr: 1;
-
- /* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
- unsigned int warn_shared_textrel: 1;
-
- /* TRUE if we should error when adding a DT_TEXTREL. */
- unsigned int error_textrel: 1;
-
- /* TRUE if .hash section should be created. */
- unsigned int emit_hash: 1;
-
- /* TRUE if .gnu.hash section should be created. */
- unsigned int emit_gnu_hash: 1;
-
- /* If TRUE reduce memory overheads, at the expense of speed. This will
- cause map file generation to use an O(N^2) algorithm and disable
- caching ELF symbol buffer. */
- unsigned int reduce_memory_overheads: 1;
-
- /* TRUE if the output file should be in a traditional format. This
- is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
- on the output file, but may be checked when reading the input
- files. */
- unsigned int traditional_format: 1;
-
- /* TRUE if non-PLT relocs should be merged into one reloc section
- and sorted so that relocs against the same symbol come together. */
- unsigned int combreloc: 1;
-
- /* TRUE if a default symbol version should be created and used for
- imported symbols. */
- unsigned int default_imported_symver: 1;
-
- /* TRUE if the new ELF dynamic tags are enabled. */
- unsigned int new_dtags: 1;
-
- /* FALSE if .eh_frame unwind info should be generated for PLT and other
- linker created sections, TRUE if it should be omitted. */
- unsigned int no_ld_generated_unwind_info: 1;
-
- /* TRUE if BFD should generate a "task linked" object file,
- similar to relocatable but also with globals converted to
- statics. */
- unsigned int task_link: 1;
-
- /* TRUE if ok to have multiple definition. */
- unsigned int allow_multiple_definition: 1;
-
- /* TRUE if ok to have version with no definition. */
- unsigned int allow_undefined_version: 1;
-
- /* TRUE if some symbols have to be dynamic, controlled by
- --dynamic-list command line options. */
- unsigned int dynamic: 1;
-
- /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
- flags. */
- unsigned int execstack: 1;
-
- /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
- flags. */
- unsigned int noexecstack: 1;
-
- /* TRUE if we want to produced optimized output files. This might
- need much more time and therefore must be explicitly selected. */
- unsigned int optimize: 1;
-
- /* TRUE if user should be informed of removed unreferenced sections. */
- unsigned int print_gc_sections: 1;
-
- /* TRUE if we should warn alternate ELF machine code. */
- unsigned int warn_alternate_em: 1;
-
- /* Char that may appear as the first char of a symbol, but should be
- skipped (like symbol_leading_char) when looking up symbols in
- wrap_hash. Used by PowerPC Linux for 'dot' symbols. */
- char wrap_char;
-
- /* Separator between archive and filename in linker script filespecs. */
- char path_separator;
-
- /* Function callbacks. */
- const struct bfd_link_callbacks *callbacks;
-
- /* Hash table handled by BFD. */
- struct bfd_link_hash_table *hash;
-
- /* Hash table of symbols to keep. This is NULL unless strip is
- strip_some. */
- struct bfd_hash_table *keep_hash;
-
- /* Hash table of symbols to report back via the notice callback. If
- this is NULL, and notice_all is FALSE, then no symbols are
- reported back. */
- struct bfd_hash_table *notice_hash;
-
- /* Hash table of symbols which are being wrapped (the --wrap linker
- option). If this is NULL, no symbols are being wrapped. */
- struct bfd_hash_table *wrap_hash;
-
- /* The output BFD. */
- bfd *output_bfd;
-
- /* The list of input BFD's involved in the link. These are chained
- together via the link_next field. */
- bfd *input_bfds;
- bfd **input_bfds_tail;
-
- /* Non-NULL if .note.gnu.build-id section should be created. */
- char *emit_note_gnu_build_id;
-
- /* If a symbol should be created for each input BFD, this is section
- where those symbols should be placed. It must be a section in
- the output BFD. It may be NULL, in which case no such symbols
- will be created. This is to support CREATE_OBJECT_SYMBOLS in the
- linker command language. */
- asection *create_object_symbols_section;
-
- /* List of global symbol names that are starting points for marking
- sections against garbage collection. */
- struct bfd_sym_chain *gc_sym_list;
-
- /* If a base output file is wanted, then this points to it */
- void *base_file;
-
- /* The function to call when the executable or shared object is
- loaded. */
- const char *init_function;
-
- /* The function to call when the executable or shared object is
- unloaded. */
- const char *fini_function;
-
- /* Number of relaxation passes. Usually only one relaxation pass
- is needed. But a backend can have as many relaxation passes as
- necessary. During bfd_relax_section call, it is set to the
- current pass, starting from 0. */
- int relax_pass;
-
- /* Number of relaxation trips. This number is incremented every
- time the relaxation pass is restarted due to a previous
- relaxation returning true in *AGAIN. */
- int relax_trip;
-
- /* Non-zero if auto-import thunks for DATA items in pei386 DLLs
- should be generated/linked against. Set to 1 if this feature
- is explicitly requested by the user, -1 if enabled by default. */
- int pei386_auto_import;
-
- /* Non-zero if runtime relocs for DATA items with non-zero addends
- in pei386 DLLs should be generated. Set to 1 if this feature
- is explicitly requested by the user, -1 if enabled by default. */
- int pei386_runtime_pseudo_reloc;
-
- /* How many spare .dynamic DT_NULL entries should be added? */
- unsigned int spare_dynamic_tags;
-
- /* May be used to set DT_FLAGS for ELF. */
- bfd_vma flags;
-
- /* May be used to set DT_FLAGS_1 for ELF. */
- bfd_vma flags_1;
-
- /* Start and end of RELRO region. */
- bfd_vma relro_start, relro_end;
-
- /* List of symbols should be dynamic. */
- struct bfd_elf_dynamic_list *dynamic_list;
-
- /* The version information. */
- struct bfd_elf_version_tree *version_info;
-};
-
-/* This structures holds a set of callback functions. These are called
- by the BFD linker routines. Except for the info functions, the first
- argument to each callback function is the bfd_link_info structure
- being used and each function returns a boolean value. If the
- function returns FALSE, then the BFD function which called it should
- return with a failure indication. */
-
-struct bfd_link_callbacks
-{
- /* A function which is called when an object is added from an
- archive. ABFD is the archive element being added. NAME is the
- name of the symbol which caused the archive element to be pulled
- in. This function may set *SUBSBFD to point to an alternative
- BFD from which symbols should in fact be added in place of the
- original BFD's symbols. */
- bfd_boolean (*add_archive_element)
- (struct bfd_link_info *, bfd *abfd, const char *name, bfd **subsbfd);
- /* A function which is called when a symbol is found with multiple
- definitions. H is the symbol which is defined multiple times.
- NBFD is the new BFD, NSEC is the new section, and NVAL is the new
- value. NSEC may be bfd_com_section or bfd_ind_section. */
- bfd_boolean (*multiple_definition)
- (struct bfd_link_info *, struct bfd_link_hash_entry *h,
- bfd *nbfd, asection *nsec, bfd_vma nval);
- /* A function which is called when a common symbol is defined
- multiple times. H is the symbol appearing multiple times.
- NBFD is the BFD of the new symbol. NTYPE is the type of the new
- symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or
- bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE
- is the size of the new symbol. */
- bfd_boolean (*multiple_common)
- (struct bfd_link_info *, struct bfd_link_hash_entry *h,
- 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 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)
- (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
- relocatable file. NAME is the name of the symbol found. ABFD,
- SECTION and VALUE are the value of the symbol. */
- bfd_boolean (*constructor)
- (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
- of the symbol which triggered the warning; it may be NULL if
- there is none. ABFD, SECTION and ADDRESS identify the location
- which trigerred the warning; either ABFD or SECTION or both may
- be NULL if the location is not known. */
- bfd_boolean (*warning)
- (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. IS_FATAL indicates whether an undefined symbol is
- a fatal error or not. In some cases SECTION may be NULL. */
- bfd_boolean (*undefined_symbol)
- (struct bfd_link_info *, const char *name, bfd *abfd,
- asection *section, bfd_vma address, bfd_boolean is_fatal);
- /* A function which is called when a reloc overflow occurs. ENTRY is
- the link hash table entry for the symbol the reloc is against.
- NAME is the name of the local symbol or section the reloc is
- against, RELOC_NAME is the name of the relocation, and ADDEND is
- any addend that is used. ABFD, SECTION and ADDRESS identify the
- location at which the overflow occurs; if this is the result of a
- bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
- ABFD will be NULL. */
- bfd_boolean (*reloc_overflow)
- (struct bfd_link_info *, struct bfd_link_hash_entry *entry,
- 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.
- MESSAGE is an appropriate message.
- ABFD, SECTION and ADDRESS identify the location at which the
- problem occurred; if this is the result of a
- bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
- ABFD will be NULL. */
- bfd_boolean (*reloc_dangerous)
- (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
- the reloc; if this is the result of a
- bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
- ABFD will be NULL. */
- bfd_boolean (*unattached_reloc)
- (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. H is the symbol. ABFD, SECTION and
- ADDRESS are the (new) value of the symbol. If SECTION is
- bfd_und_section, this is a reference. FLAGS are the symbol
- BSF_* flags. STRING is the name of the symbol to indirect to if
- the sym is indirect, or the warning string if a warning sym. */
- bfd_boolean (*notice)
- (struct bfd_link_info *, struct bfd_link_hash_entry *h,
- bfd *abfd, asection *section, bfd_vma address, flagword flags,
- const char *string);
- /* Error or warning link info message. */
- void (*einfo)
- (const char *fmt, ...);
- /* General link info message. */
- void (*info)
- (const char *fmt, ...);
- /* Message to be printed in linker map file. */
- void (*minfo)
- (const char *fmt, ...);
- /* This callback provides a chance for users of the BFD library to
- override its decision about whether to place two adjacent sections
- into the same segment. */
- bfd_boolean (*override_segment_assignment)
- (struct bfd_link_info *, bfd * abfd,
- asection * current_section, asection * previous_section,
- bfd_boolean new_segment);
-};
-
-/* The linker builds link_order structures which tell the code how to
- include input data in the output file. */
-
-/* These are the types of link_order structures. */
-
-enum bfd_link_order_type
-{
- bfd_undefined_link_order, /* Undefined. */
- bfd_indirect_link_order, /* Built from a section. */
- bfd_data_link_order, /* Set to explicit data. */
- bfd_section_reloc_link_order, /* Relocate against a section. */
- bfd_symbol_reloc_link_order /* Relocate against a symbol. */
-};
-
-/* This is the link_order structure itself. These form a chain
- attached to the output section whose contents they are describing. */
-
-struct bfd_link_order
-{
- /* Next link_order in chain. */
- struct bfd_link_order *next;
- /* Type of link_order. */
- enum bfd_link_order_type type;
- /* Offset within output section. */
- bfd_vma offset;
- /* Size within output section. */
- bfd_size_type size;
- /* Type specific information. */
- union
- {
- struct
- {
- /* Section to include. If this is used, then
- section->output_section must be the section the
- link_order is attached to, section->output_offset must
- equal the link_order offset field, and section->size
- must equal the link_order size field. Maybe these
- restrictions should be relaxed someday. */
- asection *section;
- } indirect;
- struct
- {
- /* Size of contents, or zero when contents size == size
- within output section.
- A non-zero value allows filling of the output section
- with an arbitrary repeated pattern. */
- unsigned int size;
- /* Data to put into file. */
- bfd_byte *contents;
- } data;
- struct
- {
- /* Description of reloc to generate. Used for
- bfd_section_reloc_link_order and
- bfd_symbol_reloc_link_order. */
- struct bfd_link_order_reloc *p;
- } reloc;
- } u;
-};
-
-/* A linker order of type bfd_section_reloc_link_order or
- bfd_symbol_reloc_link_order means to create a reloc against a
- section or symbol, respectively. This is used to implement -Ur to
- generate relocs for the constructor tables. The
- bfd_link_order_reloc structure describes the reloc that BFD should
- create. It is similar to a arelent, but I didn't use arelent
- because the linker does not know anything about most symbols, and
- any asymbol structure it creates will be partially meaningless.
- This information could logically be in the bfd_link_order struct,
- but I didn't want to waste the space since these types of relocs
- are relatively rare. */
-
-struct bfd_link_order_reloc
-{
- /* Reloc type. */
- bfd_reloc_code_real_type reloc;
-
- union
- {
- /* For type bfd_section_reloc_link_order, this is the section
- the reloc should be against. This must be a section in the
- output BFD, not any of the input BFDs. */
- asection *section;
- /* For type bfd_symbol_reloc_link_order, this is the name of the
- symbol the reloc should be against. */
- const char *name;
- } u;
-
- /* Addend to use. The object file should contain zero. The BFD
- backend is responsible for filling in the contents of the object
- file correctly. For some object file formats (e.g., COFF) the
- addend must be stored into in the object file, and for some
- (e.g., SPARC a.out) it is kept in the reloc. */
- bfd_vma addend;
-};
-
-/* Allocate a new link_order for a section. */
-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
- BFD, but it would be a pain. Instead, the regular linker sets up
- these structures, and then passes them into BFD. */
-
-/* Glob pattern for a version. */
-
-struct bfd_elf_version_expr
-{
- /* Next glob pattern for this version. */
- struct bfd_elf_version_expr *next;
- /* Glob pattern. */
- const char *pattern;
- /* Set if pattern is not a glob. */
- unsigned int literal : 1;
- /* Defined by ".symver". */
- unsigned int symver : 1;
- /* Defined by version script. */
- unsigned int script : 1;
- /* Pattern type. */
-#define BFD_ELF_VERSION_C_TYPE 1
-#define BFD_ELF_VERSION_CXX_TYPE 2
-#define BFD_ELF_VERSION_JAVA_TYPE 4
- unsigned int mask : 3;
-};
-
-struct bfd_elf_version_expr_head
-{
- /* List of all patterns, both wildcards and non-wildcards. */
- struct bfd_elf_version_expr *list;
- /* Hash table for non-wildcards. */
- void *htab;
- /* Remaining patterns. */
- struct bfd_elf_version_expr *remaining;
- /* What kind of pattern types are present in list (bitmask). */
- unsigned int mask;
-};
-
-/* Version dependencies. */
-
-struct bfd_elf_version_deps
-{
- /* Next dependency for this version. */
- struct bfd_elf_version_deps *next;
- /* The version which this version depends upon. */
- struct bfd_elf_version_tree *version_needed;
-};
-
-/* A node in the version tree. */
-
-struct bfd_elf_version_tree
-{
- /* Next version. */
- struct bfd_elf_version_tree *next;
- /* Name of this version. */
- const char *name;
- /* Version number. */
- unsigned int vernum;
- /* Regular expressions for global symbols in this version. */
- struct bfd_elf_version_expr_head globals;
- /* Regular expressions for local symbols in this version. */
- struct bfd_elf_version_expr_head locals;
- /* List of versions which this version depends upon. */
- struct bfd_elf_version_deps *deps;
- /* Index of the version name. This is used within BFD. */
- unsigned int name_indx;
- /* Whether this version tree was used. This is used within BFD. */
- int used;
- /* Matching hook. */
- struct bfd_elf_version_expr *(*match)
- (struct bfd_elf_version_expr_head *head,
- struct bfd_elf_version_expr *prev, const char *sym);
-};
-
-struct bfd_elf_dynamic_list
-{
- struct bfd_elf_version_expr_head head;
- struct bfd_elf_version_expr *(*match)
- (struct bfd_elf_version_expr_head *head,
- struct bfd_elf_version_expr *prev, const char *sym);
-};
-
-#endif
diff --git a/include/binary-io.h b/include/binary-io.h
deleted file mode 100644
index 2984271f7..000000000
--- a/include/binary-io.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Binary mode I/O.
- Copyright (C) 2001, 2003, 2005, 2008 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef _BINARY_H
-#define _BINARY_H
-
-/* Include this header after <fcntl.h> and <stdio.h>, because
- systems that distinguish between text and binary I/O usually
- define O_BINARY in <fcntl.h>, and the MSVC7 <stdio.h> doesn't
- like to be included after '#define fileno ...'
-
- We don't include <fcntl.h> here because not all systems have
- that header. */
-
-#if !defined O_BINARY && defined _O_BINARY
- /* For MSC-compatible compilers. */
-# define O_BINARY _O_BINARY
-# define O_TEXT _O_TEXT
-#endif
-#ifdef __BEOS__
- /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
-# undef O_BINARY
-# undef O_TEXT
-#endif
-#if O_BINARY
-# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__
-# include <io.h> /* declares setmode() */
-# else
-# define setmode _setmode
-# undef fileno
-# define fileno _fileno
-# endif
-# ifdef __DJGPP__
-# include <unistd.h> /* declares isatty() */
-# /* Avoid putting stdin/stdout in binary mode if it is connected to the
-# console, because that would make it impossible for the user to
-# interrupt the program through Ctrl-C or Ctrl-Break. */
-# define SET_BINARY(fd) (!isatty (fd) ? (setmode (fd, O_BINARY), 0) : 0)
-# else
-# define SET_BINARY(fd) setmode (fd, O_BINARY)
-# endif
-#else
- /* On reasonable systems, binary I/O is the default. */
-# undef O_BINARY
-# define O_BINARY 0
-# define SET_BINARY(fd) /* nothing */
-#endif
-
-#endif /* _BINARY_H */
diff --git a/include/bout.h b/include/bout.h
deleted file mode 100644
index 4a302283c..000000000
--- a/include/bout.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* This file is a modified version of 'a.out.h'. It is to be used in all
- GNU tools modified to support the i80960 (or tools that operate on
- object files created by such tools).
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* All i80960 development is done in a CROSS-DEVELOPMENT environment. I.e.,
- object code is generated on, and executed under the direction of a symbolic
- debugger running on, a host system. We do not want to be subject to the
- vagaries of which host it is or whether it supports COFF or a.out format,
- or anything else. We DO want to:
-
- o always generate the same format object files, regardless of host.
-
- o have an 'a.out' header that we can modify for our own purposes
- (the 80960 is typically an embedded processor and may require
- enhanced linker support that the normal a.out.h header can't
- accommodate).
-
- As for byte-ordering, the following rules apply:
-
- o Text and data that is actually downloaded to the target is always
- in i80960 (little-endian) order.
-
- o All other numbers (in the header, symbols, relocation directives)
- are in host byte-order: object files CANNOT be lifted from a
- little-end host and used on a big-endian (or vice versa) without
- modification.
- ==> THIS IS NO LONGER TRUE USING BFD. WE CAN GENERATE ANY BYTE ORDER
- FOR THE HEADER, AND READ ANY BYTE ORDER. PREFERENCE WOULD BE TO
- USE LITTLE-ENDIAN BYTE ORDER THROUGHOUT, REGARDLESS OF HOST. <==
-
- o The downloader ('comm960') takes care to generate a pseudo-header
- with correct (i80960) byte-ordering before shipping text and data
- off to the NINDY monitor in the target systems. Symbols and
- relocation info are never sent to the target. */
-
-#define BMAGIC 0415
-/* We don't accept the following (see N_BADMAG macro).
- They're just here so GNU code will compile. */
-#define OMAGIC 0407 /* old impure format */
-#define NMAGIC 0410 /* read-only text */
-#define ZMAGIC 0413 /* demand load format */
-
-/* FILE HEADER
- All 'lengths' are given as a number of bytes.
- All 'alignments' are for relinkable files only; an alignment of
- 'n' indicates the corresponding segment must begin at an
- address that is a multiple of (2**n). */
-struct external_exec
- {
- /* Standard stuff */
- unsigned char e_info[4]; /* Identifies this as a b.out file */
- unsigned char e_text[4]; /* Length of text */
- unsigned char e_data[4]; /* Length of data */
- unsigned char e_bss[4]; /* Length of uninitialized data area */
- unsigned char e_syms[4]; /* Length of symbol table */
- unsigned char e_entry[4]; /* Runtime start address */
- unsigned char e_trsize[4]; /* Length of text relocation info */
- unsigned char e_drsize[4]; /* Length of data relocation info */
-
- /* Added for i960 */
- unsigned char e_tload[4]; /* Text runtime load address */
- unsigned char e_dload[4]; /* Data runtime load address */
- unsigned char e_talign[1]; /* Alignment of text segment */
- unsigned char e_dalign[1]; /* Alignment of data segment */
- unsigned char e_balign[1]; /* Alignment of bss segment */
- unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */
- };
-
-#define EXEC_BYTES_SIZE (sizeof (struct external_exec))
-
-/* These macros use the a_xxx field names, since they operate on the exec
- structure after it's been byte-swapped and realigned on the host machine. */
-#define N_BADMAG(x) (((x).a_info)!=BMAGIC)
-#define N_TXTOFF(x) EXEC_BYTES_SIZE
-#define N_DATOFF(x) ( N_TXTOFF(x) + (x).a_text )
-#define N_TROFF(x) ( N_DATOFF(x) + (x).a_data )
-#define N_TRELOFF N_TROFF
-#define N_DROFF(x) ( N_TROFF(x) + (x).a_trsize )
-#define N_DRELOFF N_DROFF
-#define N_SYMOFF(x) ( N_DROFF(x) + (x).a_drsize )
-#define N_STROFF(x) ( N_SYMOFF(x) + (x).a_syms )
-#define N_DATADDR(x) ( (x).a_dload )
-
-/* Address of text segment in memory after it is loaded. */
-#if !defined (N_TXTADDR)
-#define N_TXTADDR(x) 0
-#endif
-
-/* A single entry in the symbol table. */
-struct nlist
- {
- union
- {
- char* n_name;
- struct nlist * n_next;
- long n_strx; /* Index into string table */
- } n_un;
-
- unsigned char n_type; /* See below */
- char n_other; /* Used in i80960 support -- see below */
- short n_desc;
- unsigned long n_value;
- };
-
-
-/* Legal values of n_type. */
-#define N_UNDF 0 /* Undefined symbol */
-#define N_ABS 2 /* Absolute symbol */
-#define N_TEXT 4 /* Text symbol */
-#define N_DATA 6 /* Data symbol */
-#define N_BSS 8 /* BSS symbol */
-#define N_FN 31 /* Filename symbol */
-
-#define N_EXT 1 /* External symbol (OR'd in with one of above) */
-#define N_TYPE 036 /* Mask for all the type bits */
-#define N_STAB 0340 /* Mask for all bits used for SDB entries */
-
-/* MEANING OF 'n_other'
-
- If non-zero, the 'n_other' fields indicates either a leaf procedure or
- a system procedure, as follows:
-
- 1 <= n_other <= 32 :
- The symbol is the entry point to a system procedure.
- 'n_value' is the address of the entry, as for any other
- procedure. The system procedure number (which can be used in
- a 'calls' instruction) is (n_other-1). These entries come from
- '.sysproc' directives.
-
- n_other == N_CALLNAME
- the symbol is the 'call' entry point to a leaf procedure.
- The *next* symbol in the symbol table must be the corresponding
- 'bal' entry point to the procedure (see following). These
- entries come from '.leafproc' directives in which two different
- symbols are specified (the first one is represented here).
-
-
- n_other == N_BALNAME
- the symbol is the 'bal' entry point to a leaf procedure.
- These entries result from '.leafproc' directives in which only
- one symbol is specified, or in which the same symbol is
- specified twice.
-
- Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
- but not every N_BALNAME entry must have an N_CALLNAME entry. */
-#define N_CALLNAME ((char)-1)
-#define N_BALNAME ((char)-2)
-#define IS_CALLNAME(x) (N_CALLNAME == (x))
-#define IS_BALNAME(x) (N_BALNAME == (x))
-#define IS_OTHER(x) ((x)>0 && (x) <=32)
-
-#define b_out_relocation_info relocation_info
-struct relocation_info
- {
- int r_address; /* File address of item to be relocated. */
- unsigned
-#define r_index r_symbolnum
- r_symbolnum:24, /* Index of symbol on which relocation is based,
- if r_extern is set. Otherwise set to
- either N_TEXT, N_DATA, or N_BSS to
- indicate section on which relocation is
- based. */
- r_pcrel:1, /* 1 => relocate PC-relative; else absolute
- On i960, pc-relative implies 24-bit
- address, absolute implies 32-bit. */
- r_length:2, /* Number of bytes to relocate:
- 0 => 1 byte
- 1 => 2 bytes -- used for 13 bit pcrel
- 2 => 4 bytes. */
- r_extern:1,
- r_bsr:1, /* Something for the GNU NS32K assembler. */
- r_disp:1, /* Something for the GNU NS32K assembler. */
- r_callj:1, /* 1 if relocation target is an i960 'callj'. */
- r_relaxable:1; /* 1 if enough info is left to relax the data. */
-};
diff --git a/include/cgen/ChangeLog b/include/cgen/ChangeLog
deleted file mode 100644
index a8d5df9e6..000000000
--- a/include/cgen/ChangeLog
+++ /dev/null
@@ -1,10 +0,0 @@
-2010-01-05 Doug Evans <dje@sebabeach.org>
-
- * basic-modes.h (MAKEDI): New macro.
-
-2009-10-23 Doug Evans <dje@sebabeach.org>
-
- * basic-modes.h: New file. Moved here from opcodes/cgen-types.h.
- * basic-ops.h: New file. Moved here from opcodes/cgen-ops.h.
- * bitset.h: New file. Moved here from ../opcode/cgen-bitset.h.
- Update license to GPL v3.
diff --git a/include/cgen/basic-modes.h b/include/cgen/basic-modes.h
deleted file mode 100644
index bd87f3acb..000000000
--- a/include/cgen/basic-modes.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Basic CGEN modes.
- Copyright 2005, 2007, 2009 Free Software Foundation, Inc.
- Contributed by Red Hat.
-
- This file is part of the GNU opcodes library.
-
- This library 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 3, or (at your option)
- any later version.
-
- It 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 library; see the file COPYING3. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef CGEN_BASIC_MODES_H
-#define CGEN_BASIC_MODES_H
-
-/* This file doesn't contain all modes,
- just the basic/portable ones.
- It also provides access to stdint.h (*1) so the includer doesn't have
- to deal with the portability issues.
- (*1): To the extent that bfd_stdint.h does for now. */
-
-/* IWBN to avoid unnecessary dependencies on bfd-anything. */
-#include "bfd_stdint.h"
-
-typedef int8_t QI;
-typedef uint8_t UQI;
-
-typedef int16_t HI;
-typedef uint16_t UHI;
-
-typedef int32_t SI;
-typedef uint32_t USI;
-
-typedef int64_t DI;
-typedef uint64_t UDI;
-
-typedef int INT;
-typedef unsigned int UINT;
-
-/* Cover macro to create a 64-bit integer. */
-#define MAKEDI(hi, lo) ((((DI) (SI) (hi)) << 32) | ((UDI) (USI) (lo)))
-
-#endif /* CGEN_BASIC_MODES_H */
diff --git a/include/cgen/basic-ops.h b/include/cgen/basic-ops.h
deleted file mode 100644
index 324f0b15e..000000000
--- a/include/cgen/basic-ops.h
+++ /dev/null
@@ -1,347 +0,0 @@
-/* Basic semantics ops support for CGEN.
- Copyright 2005, 2007, 2009 Free Software Foundation, Inc.
- Contributed by Red Hat.
-
- This file is part of the GNU opcodes library.
-
- This library 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 3, or (at your option)
- any later version.
-
- It 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 library; see the file COPYING3. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef CGEN_BASIC_OPS_H
-#define CGEN_BASIC_OPS_H
-
-#include <assert.h>
-
-#if defined (__GNUC__) && ! defined (SEMOPS_DEFINE_INLINE)
-#define SEMOPS_DEFINE_INLINE
-#define SEMOPS_INLINE extern inline
-#else
-#define SEMOPS_INLINE
-#endif
-
-/* These don't really have a mode. */
-#define ANDIF(x, y) ((x) && (y))
-#define ORIF(x, y) ((x) || (y))
-
-#define SUBBI(x, y) ((x) - (y))
-#define ANDBI(x, y) ((x) & (y))
-#define ORBI(x, y) ((x) | (y))
-#define XORBI(x, y) ((x) ^ (y))
-#define NEGBI(x) (- (x))
-#define NOTBI(x) (! (BI) (x))
-#define INVBI(x) (~ (x))
-#define EQBI(x, y) ((BI) (x) == (BI) (y))
-#define NEBI(x, y) ((BI) (x) != (BI) (y))
-#define LTBI(x, y) ((BI) (x) < (BI) (y))
-#define LEBI(x, y) ((BI) (x) <= (BI) (y))
-#define GTBI(x, y) ((BI) (x) > (BI) (y))
-#define GEBI(x, y) ((BI) (x) >= (BI) (y))
-#define LTUBI(x, y) ((BI) (x) < (BI) (y))
-#define LEUBI(x, y) ((BI) (x) <= (BI) (y))
-#define GTUBI(x, y) ((BI) (x) > (BI) (y))
-#define GEUBI(x, y) ((BI) (x) >= (BI) (y))
-
-#define ADDQI(x, y) ((x) + (y))
-#define SUBQI(x, y) ((x) - (y))
-#define MULQI(x, y) ((x) * (y))
-#define DIVQI(x, y) ((QI) (x) / (QI) (y))
-#define UDIVQI(x, y) ((UQI) (x) / (UQI) (y))
-#define MODQI(x, y) ((QI) (x) % (QI) (y))
-#define UMODQI(x, y) ((UQI) (x) % (UQI) (y))
-#define SRAQI(x, y) ((QI) (x) >> (y))
-#define SRLQI(x, y) ((UQI) (x) >> (y))
-#define SLLQI(x, y) ((UQI) (x) << (y))
-extern QI RORQI (QI, int);
-extern QI ROLQI (QI, int);
-#define ANDQI(x, y) ((x) & (y))
-#define ORQI(x, y) ((x) | (y))
-#define XORQI(x, y) ((x) ^ (y))
-#define NEGQI(x) (- (x))
-#define NOTQI(x) (! (QI) (x))
-#define INVQI(x) (~ (x))
-#define ABSQI(x) ((x) < 0 ? -(x) : (x))
-#define EQQI(x, y) ((QI) (x) == (QI) (y))
-#define NEQI(x, y) ((QI) (x) != (QI) (y))
-#define LTQI(x, y) ((QI) (x) < (QI) (y))
-#define LEQI(x, y) ((QI) (x) <= (QI) (y))
-#define GTQI(x, y) ((QI) (x) > (QI) (y))
-#define GEQI(x, y) ((QI) (x) >= (QI) (y))
-#define LTUQI(x, y) ((UQI) (x) < (UQI) (y))
-#define LEUQI(x, y) ((UQI) (x) <= (UQI) (y))
-#define GTUQI(x, y) ((UQI) (x) > (UQI) (y))
-#define GEUQI(x, y) ((UQI) (x) >= (UQI) (y))
-
-#define ADDHI(x, y) ((x) + (y))
-#define SUBHI(x, y) ((x) - (y))
-#define MULHI(x, y) ((x) * (y))
-#define DIVHI(x, y) ((HI) (x) / (HI) (y))
-#define UDIVHI(x, y) ((UHI) (x) / (UHI) (y))
-#define MODHI(x, y) ((HI) (x) % (HI) (y))
-#define UMODHI(x, y) ((UHI) (x) % (UHI) (y))
-#define SRAHI(x, y) ((HI) (x) >> (y))
-#define SRLHI(x, y) ((UHI) (x) >> (y))
-#define SLLHI(x, y) ((UHI) (x) << (y))
-extern HI RORHI (HI, int);
-extern HI ROLHI (HI, int);
-#define ANDHI(x, y) ((x) & (y))
-#define ORHI(x, y) ((x) | (y))
-#define XORHI(x, y) ((x) ^ (y))
-#define NEGHI(x) (- (x))
-#define NOTHI(x) (! (HI) (x))
-#define INVHI(x) (~ (x))
-#define ABSHI(x) ((x) < 0 ? -(x) : (x))
-#define EQHI(x, y) ((HI) (x) == (HI) (y))
-#define NEHI(x, y) ((HI) (x) != (HI) (y))
-#define LTHI(x, y) ((HI) (x) < (HI) (y))
-#define LEHI(x, y) ((HI) (x) <= (HI) (y))
-#define GTHI(x, y) ((HI) (x) > (HI) (y))
-#define GEHI(x, y) ((HI) (x) >= (HI) (y))
-#define LTUHI(x, y) ((UHI) (x) < (UHI) (y))
-#define LEUHI(x, y) ((UHI) (x) <= (UHI) (y))
-#define GTUHI(x, y) ((UHI) (x) > (UHI) (y))
-#define GEUHI(x, y) ((UHI) (x) >= (UHI) (y))
-
-#define ADDSI(x, y) ((x) + (y))
-#define SUBSI(x, y) ((x) - (y))
-#define MULSI(x, y) ((x) * (y))
-#define DIVSI(x, y) ((SI) (x) / (SI) (y))
-#define UDIVSI(x, y) ((USI) (x) / (USI) (y))
-#define MODSI(x, y) ((SI) (x) % (SI) (y))
-#define UMODSI(x, y) ((USI) (x) % (USI) (y))
-#define SRASI(x, y) ((SI) (x) >> (y))
-#define SRLSI(x, y) ((USI) (x) >> (y))
-#define SLLSI(x, y) ((USI) (x) << (y))
-extern SI RORSI (SI, int);
-extern SI ROLSI (SI, int);
-#define ANDSI(x, y) ((x) & (y))
-#define ORSI(x, y) ((x) | (y))
-#define XORSI(x, y) ((x) ^ (y))
-#define NEGSI(x) (- (x))
-#define NOTSI(x) (! (SI) (x))
-#define INVSI(x) (~ (x))
-#define ABSSI(x) ((x) < 0 ? -(x) : (x))
-#define EQSI(x, y) ((SI) (x) == (SI) (y))
-#define NESI(x, y) ((SI) (x) != (SI) (y))
-#define LTSI(x, y) ((SI) (x) < (SI) (y))
-#define LESI(x, y) ((SI) (x) <= (SI) (y))
-#define GTSI(x, y) ((SI) (x) > (SI) (y))
-#define GESI(x, y) ((SI) (x) >= (SI) (y))
-#define LTUSI(x, y) ((USI) (x) < (USI) (y))
-#define LEUSI(x, y) ((USI) (x) <= (USI) (y))
-#define GTUSI(x, y) ((USI) (x) > (USI) (y))
-#define GEUSI(x, y) ((USI) (x) >= (USI) (y))
-
-#ifdef DI_FN_SUPPORT
-extern DI ADDDI (DI, DI);
-extern DI SUBDI (DI, DI);
-extern DI MULDI (DI, DI);
-extern DI DIVDI (DI, DI);
-extern DI UDIVDI (DI, DI);
-extern DI MODDI (DI, DI);
-extern DI UMODDI (DI, DI);
-extern DI SRADI (DI, int);
-extern UDI SRLDI (UDI, int);
-extern UDI SLLDI (UDI, int);
-extern DI RORDI (DI, int);
-extern DI ROLDI (DI, int);
-extern DI ANDDI (DI, DI);
-extern DI ORDI (DI, DI);
-extern DI XORDI (DI, DI);
-extern DI NEGDI (DI);
-extern int NOTDI (DI);
-extern DI INVDI (DI);
-extern int EQDI (DI, DI);
-extern int NEDI (DI, DI);
-extern int LTDI (DI, DI);
-extern int LEDI (DI, DI);
-extern int GTDI (DI, DI);
-extern int GEDI (DI, DI);
-extern int LTUDI (UDI, UDI);
-extern int LEUDI (UDI, UDI);
-extern int GTUDI (UDI, UDI);
-extern int GEUDI (UDI, UDI);
-#else /* ! DI_FN_SUPPORT */
-#define ADDDI(x, y) ((x) + (y))
-#define SUBDI(x, y) ((x) - (y))
-#define MULDI(x, y) ((x) * (y))
-#define DIVDI(x, y) ((DI) (x) / (DI) (y))
-#define UDIVDI(x, y) ((UDI) (x) / (UDI) (y))
-#define MODDI(x, y) ((DI) (x) % (DI) (y))
-#define UMODDI(x, y) ((UDI) (x) % (UDI) (y))
-#define SRADI(x, y) ((DI) (x) >> (y))
-#define SRLDI(x, y) ((UDI) (x) >> (y))
-#define SLLDI(x, y) ((UDI) (x) << (y))
-extern DI RORDI (DI, int);
-extern DI ROLDI (DI, int);
-#define ANDDI(x, y) ((x) & (y))
-#define ORDI(x, y) ((x) | (y))
-#define XORDI(x, y) ((x) ^ (y))
-#define NEGDI(x) (- (x))
-#define NOTDI(x) (! (DI) (x))
-#define INVDI(x) (~ (x))
-#define ABSDI(x) ((x) < 0 ? -(x) : (x))
-#define EQDI(x, y) ((DI) (x) == (DI) (y))
-#define NEDI(x, y) ((DI) (x) != (DI) (y))
-#define LTDI(x, y) ((DI) (x) < (DI) (y))
-#define LEDI(x, y) ((DI) (x) <= (DI) (y))
-#define GTDI(x, y) ((DI) (x) > (DI) (y))
-#define GEDI(x, y) ((DI) (x) >= (DI) (y))
-#define LTUDI(x, y) ((UDI) (x) < (UDI) (y))
-#define LEUDI(x, y) ((UDI) (x) <= (UDI) (y))
-#define GTUDI(x, y) ((UDI) (x) > (UDI) (y))
-#define GEUDI(x, y) ((UDI) (x) >= (UDI) (y))
-#endif /* DI_FN_SUPPORT */
-
-#define EXTBIQI(x) ((QI) (BI) (x))
-#define EXTBIHI(x) ((HI) (BI) (x))
-#define EXTBISI(x) ((SI) (BI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI EXTBIDI (BI);
-#else
-#define EXTBIDI(x) ((DI) (BI) (x))
-#endif
-#define EXTQIHI(x) ((HI) (QI) (x))
-#define EXTQISI(x) ((SI) (QI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI EXTQIDI (QI);
-#else
-#define EXTQIDI(x) ((DI) (QI) (x))
-#endif
-#define EXTHIHI(x) ((HI) (HI) (x))
-#define EXTHISI(x) ((SI) (HI) (x))
-#define EXTSISI(x) ((SI) (SI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI EXTHIDI (HI);
-#else
-#define EXTHIDI(x) ((DI) (HI) (x))
-#endif
-#if defined (DI_FN_SUPPORT)
-extern DI EXTSIDI (SI);
-#else
-#define EXTSIDI(x) ((DI) (SI) (x))
-#endif
-
-#define ZEXTBIQI(x) ((QI) (BI) (x))
-#define ZEXTBIHI(x) ((HI) (BI) (x))
-#define ZEXTBISI(x) ((SI) (BI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI ZEXTBIDI (BI);
-#else
-#define ZEXTBIDI(x) ((DI) (BI) (x))
-#endif
-#define ZEXTQIHI(x) ((HI) (UQI) (x))
-#define ZEXTQISI(x) ((SI) (UQI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI ZEXTQIDI (QI);
-#else
-#define ZEXTQIDI(x) ((DI) (UQI) (x))
-#endif
-#define ZEXTHISI(x) ((SI) (UHI) (x))
-#define ZEXTHIHI(x) ((HI) (UHI) (x))
-#define ZEXTSISI(x) ((SI) (USI) (x))
-#if defined (DI_FN_SUPPORT)
-extern DI ZEXTHIDI (HI);
-#else
-#define ZEXTHIDI(x) ((DI) (UHI) (x))
-#endif
-#if defined (DI_FN_SUPPORT)
-extern DI ZEXTSIDI (SI);
-#else
-#define ZEXTSIDI(x) ((DI) (USI) (x))
-#endif
-
-#define TRUNCQIBI(x) ((BI) (QI) (x))
-#define TRUNCHIBI(x) ((BI) (HI) (x))
-#define TRUNCHIQI(x) ((QI) (HI) (x))
-#define TRUNCSIBI(x) ((BI) (SI) (x))
-#define TRUNCSIQI(x) ((QI) (SI) (x))
-#define TRUNCSIHI(x) ((HI) (SI) (x))
-#define TRUNCSISI(x) ((SI) (SI) (x))
-#if defined (DI_FN_SUPPORT)
-extern BI TRUNCDIBI (DI);
-#else
-#define TRUNCDIBI(x) ((BI) (DI) (x))
-#endif
-#if defined (DI_FN_SUPPORT)
-extern QI TRUNCDIQI (DI);
-#else
-#define TRUNCDIQI(x) ((QI) (DI) (x))
-#endif
-#if defined (DI_FN_SUPPORT)
-extern HI TRUNCDIHI (DI);
-#else
-#define TRUNCDIHI(x) ((HI) (DI) (x))
-#endif
-#if defined (DI_FN_SUPPORT)
-extern SI TRUNCDISI (DI);
-#else
-#define TRUNCDISI(x) ((SI) (DI) (x))
-#endif
-
-/* Composing/decomposing the various types.
- Word ordering is endian-independent. Words are specified most to least
- significant and word number 0 is the most significant word.
- ??? May also wish an endian-dependent version. Later. */
-
-QI SUBWORDSIQI (SI, int);
-HI SUBWORDSIHI (SI, int);
-QI SUBWORDDIQI (DI, int);
-HI SUBWORDDIHI (DI, int);
-SI SUBWORDDISI (DI, int);
-
-#ifdef SEMOPS_DEFINE_INLINE
-
-SEMOPS_INLINE QI
-SUBWORDSIQI (SI in, int byte)
-{
- assert (byte >= 0 && byte <= 3);
- return (UQI) (in >> (8 * (3 - byte))) & 0xFF;
-}
-
-SEMOPS_INLINE HI
-SUBWORDSIHI (SI in, int word)
-{
- if (word == 0)
- return (USI) in >> 16;
- else
- return in;
-}
-
-SEMOPS_INLINE QI
-SUBWORDDIQI (DI in, int byte)
-{
- assert (byte >= 0 && byte <= 7);
- return (UQI) (in >> (8 * (7 - byte))) & 0xFF;
-}
-
-SEMOPS_INLINE HI
-SUBWORDDIHI (DI in, int word)
-{
- assert (word >= 0 && word <= 3);
- return (UHI) (in >> (16 * (3 - word))) & 0xFFFF;
-}
-
-SEMOPS_INLINE SI
-SUBWORDDISI (DI in, int word)
-{
- if (word == 0)
- return (UDI) in >> 32;
- else
- return in;
-}
-
-#endif /* SUBWORD,JOIN */
-
-#endif /* CGEN_BASIC_OPS_H */
diff --git a/include/cgen/bitset.h b/include/cgen/bitset.h
deleted file mode 100644
index 7a6a99304..000000000
--- a/include/cgen/bitset.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Header file the type CGEN_BITSET.
- Copyright 2002, 2005, 2009 Free Software Foundation, Inc.
-
- This file is part of the GNU opcodes library.
-
- This library 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 3, or (at your option)
- any later version.
-
- It 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 library; see the file COPYING3. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef CGEN_BITSET_H
-#define CGEN_BITSET_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A bitmask represented as a string.
- Each member of the set is represented as a bit
- in the string. Bytes are indexed from left to right in the string and
- bits from most significant to least within each byte.
-
- For example, the bit representing member number 6 is (set->bits[0] & 0x02).
-*/
-typedef struct cgen_bitset
-{
- unsigned length;
- char *bits;
-} CGEN_BITSET;
-
-extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned));
-extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned));
-extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *));
-extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned));
-extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned));
-extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
-extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *));
-extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *));
-extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned));
-extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *));
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif
diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog
deleted file mode 100644
index 4b0a70a91..000000000
--- a/include/coff/ChangeLog
+++ /dev/null
@@ -1,348 +0,0 @@
-2011-06-02 Nick Clifton <nickc@redhat.com>
-
- * i860.h: Fix spelling mistake in comment.
-
-2011-05-04 Tristan Gingold <gingold@adacore.com>
-
- * rs6000.h (union external_auxent): Add x_ftype field.
- * rs6k64.h: (struct external_auxent): Remap x_file field.
-
-2011-05-04 Tristan Gingold <gingold@adacore.com>
-
- * rs6000.h (struct external_exceptab): New struct.
- (EXCEPTSZ): New macro.
- * rs6k64.h: (struct external_exceptab): New struct.
- (EXCEPTSZ): New macro.
-
-2011-05-03 Tristan Gingold <gingold@adacore.com>
-
- * rs6000.h (struct external_ldsym): Use E_SYMNMLEN instead of
- SYMNMLEN.
-
-2011-04-27 Tristan Gingold <gingold@adacore.com>
-
- * xcoff.h (F_FDPR_PROF, F_FDPR_OPTI, F_DSA, F_VARPG)
- (STYP_DWARF, SSUBTYP_DWINFO)
- (SSUBTYP_DWLINE, SSUBTYP_DWPBNMS, SSUBTYP_DWPBTYP)
- (SSUBTYP_DWARNGE, SSUBTYP_DWABREV, SSUBTYP_DWSTR)
- (SSUBTYP_DWRNGES, STYP_TDATA, STYP_TBSS, R_TLS, R_TLS_IE)
- (R_TLS_LD, R_TLS_LE, R_TLSM, R_TLSML, R_TOCU, R_TOCL, C_DWARF):
- New macros.
-
-2011-03-31 Tristan Gingold <gingold@adacore.com>
-
- * internal.h (C_NULL_VALUE): Define.
-
-2010-06-29 Alan Modra <amodra@gmail.com>
-
- * maxq.h: Delete file.
-
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * alpha.h: Update copyright notice to use GPLv3.
- * apollo.h: Likewise.
- * arm.h: Likewise.
- * aux-coff.h: Likewise.
- * ecoff.h: Likewise.
- * external.h: Likewise.
- * go32exe.h: Likewise.
- * h8300.h: Likewise.
- * h8500.h: Likewise.
- * i386.h: Likewise.
- * i860.h: Likewise.
- * i960.h: Likewise.
- * ia64.h: Likewise.
- * internal.h: Likewise.
- * m68k.h: Likewise.
- * m88k.h: Likewise.
- * maxq.h: Likewise.
- * mcore.h: Likewise.
- * mips.h: Likewise.
- * mipspe.h: Likewise.
- * or32.h: Likewise.
- * pe.h: Likewise.
- * powerpc.h: Likewise.
- * rs6000.h: Likewise.
- * rs6k64.h: Likewise.
- * sh.h: Likewise.
- * sparc.h: Likewise.
- * ti.h: Likewise.
- * tic30.h: Likewise.
- * tic4x.h: Likewise.
- * tic54x.h: Likewise.
- * tic80.h: Likewise.
- * w65.h: Likewise.
- * we32k.h: Likewise.
- * x86_64.h: Likewise.
- * xcoff.h: Likewise.
- * z80.h: Likewise.
- * z8k.h: Likewise.
-
-2009-12-02 Jerker Bäck <jerker.back@gmail.com>
-
- PR binutils/11017
- * i386lh (COFF_PAGE_SIZE): Define.
- * x86_64.h (COFF_PAGE_SIZE): Define.
-
-2009-10-17 Arnold Metselaar <arnold.metselaar@planet.nl>
-
- * z80.h: Store alignment requirement in section header, to allow
- ld to preserve alignment. Some code was copied from ti.h.
-
-2009-09-05 Martin Thuresson <martin@mtme.org>
-
- * ti.h (GET_LNSZ_SIZE, PUT_LNSZ_SIZE): Updated name of class
- variable to in_class to match changes in function that use this
- macro.
-
-2009-08-10 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- Fix references past allocated memory for i386-*-go32.
- * ti.h (COFF_ADJUST_FILEHDR_IN_POST, COFF_ADJUST_FILEHDR_OUT_POST):
- Reference F_TARGET_ID only when !COFF0_P.
-
-2009-08-10 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- Stop using bfd_usrdata in libbfd.
- * go32exe.h (struct external_filehdr_go32_exe <stub>, FILHSZ): Replace
- STUBSIZE by GO32_STUBSIZE.
- (STUBSIZE): Move the definition ...
- * internal.h (GO32_STUBSIZE): ... here and rename it.
- (struct internal_filehdr <go32stub>, F_GO32STUB): New.
-
-2009-06-03 Ulrich Weigand <uweigand@de.ibm.com>
-
- * symconst.h (btLong64, btULong64, btLongLong64, btULongLong64,
- btAdr64, btInt64, btUInt64): New defines.
-
-2009-04-21 Kai Tietz <kai.tietz@onevision.com>
-
- * pe.h (pex64_runtime_function): New structure.
- (external_pex64_runtime_function): Likewise.
- (pex64_unwind_code): Likewise.
- (external_pex64_unwind_code): Likewise.
- (pex64_unwind_info): Likewise.
- (external_pex64_unwind_info): Likewise.
- (external_pex64_scope): Likewise.
- (pex64_scope): Likewise.
- (pex64_scope_entry): Likewise.
- (external_pex64_scope_entry): Likewise.
- (PEX64_IS_RUNTIME_FUNCTION_CHAINED): New macro.
- (PEX64_GET_UNWINDDATA_UNIFIED_RVA): Likewise.
- (PEX64_UNWCODE_CODE): Likewise.
- (PEX64_UNWCODE_INFO): Likewise.
- (UWOP_...): Add defines for unwind code.
- (UNW_FLAG_...): Add defined for unwind info flags.
- (PEX64_SCOPE_ENTRY_SIZE): New macro.
- (PEX64_UWI_VERSION): Likewise.
- (PEX64_UWI_FLAGS): Likewise.
- (PEX64_UWI_FRAMEREG): Likewise.
- (PEX64_UWI_FRAMEOFF): Likewise.
- (PEX64_UWI_SIZEOF_UWCODE_ARRAY): Likewise.
- (PEX64_OFFSET_TO_UNWIND_CODE): Likewise.
- (PEX64_OFFSET_TO_HANDLER_RVA): Likewise.
- (PEX64_OFFSET_TO_SCOPE_COUNT): Likewise.
- (PEX64_SCOPE_ENTRY): Likewise.
-
-2009-04-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * pe.h (IMAGE_SUBSYSTEM_EFI_ROM): Renamed to ...
- (IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER): This.
-
-2009-04-01 Richard Sandiford <r.sandiford@uk.ibm.com>
-
- * xcoff.h (xcoff_link_hash_table): Move to bfd/xcofflink.c.
-
-2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
-
- * xcoff.h (XCOFF_EXPALL, XCOFF_EXPFULL): New flags.
- (xcoff_loader_info): Add auto_export_flags.
-
-2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
-
- * internal.h (C_AIX_WEAKEXT): New macro.
- (C_WEAKEXT): Use the GNU definition in the generic part of the file,
- and conditionally reset it to C_AIX_WEAKEXT in the XCOFF part of
- the file.
- (CSECT_SYM_P): New macro.
- * xcoff.h (L_WEAK): Define.
- (EXTERN_SYM_P): New macro.
-
-2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
-
- * xcoff.h (XCOFF_ALLOCATED): New flag.
-
-2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
-
- * xcoff.h (XCOFF_CALLED, XCOFF_IMPORT): Update comments.
- (XCOFF_WAS_UNDEFINED): New flag.
- (xcoff_link_hash_table): Add an "rtld" field.
-
-2009-03-14 Dave Korn <dave.korn.cygwin@gmail.com>
-
- * internal.h (struct internal_extra_pe_aouthdr): Correct type
- of DllCharacteristics flags field to unsigned.
- * pe.h (IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE,
- IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE,
- IMAGE_DLL_CHARACTERISTICS_NX_COMPAT,
- IMAGE_DLLCHARACTERISTICS_NO_ISOLATION,
- IMAGE_DLLCHARACTERISTICS_NO_SEH,
- IMAGE_DLLCHARACTERISTICS_NO_BIND,
- IMAGE_DLLCHARACTERISTICS_WDM_DRIVER,
- IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE): New macros to
- define flag bit values for DllCharacteristics field of PEAOUTHDR,
- PEPAOUTHDR.
-
-2008-12-23 Johan Olmutz Nielsen <jnielsen@ddci.com>
-
- * ti.h (COFF_ADJUST_SCNHDR_OUT_PRE): Define.
-
-2008-06-17 Nick Clifton <nickc@redhat.com>
-
- * ti.h (GET_SCNHDR_NLNNO): Provide an alternative version of this
- macro which does not trigger an array bounds warning in gcc.
- (PUT_SCNHDR_NLNNO): Likewise.
- (GET_SCNHDR_FLAGS): Likewise.
- (PUT_SCNHDR_FLAGS): Likewise.
- (GET_SCNHDR_PAGE): Likewise.
- (PUT_SCNHDR_PAGE): Likewise.
-
-2007-11-05 Danny Smith <dannysmith@users.sourceforge.net>
-
- * pe.h (COFF_ENCODE_ALIGNMENT) Define.
-
-2007-08-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * pe.h (IMAGE_SCN_ALIGN_POWER_BIT_POS): New.
- (IMAGE_SCN_ALIGN_POWER_BIT_MASK): Likewise.
- (IMAGE_SCN_ALIGN_POWER_NUM): Likewise.
- (IMAGE_SCN_ALIGN_POWER_CONST): Likewise.
- (IMAGE_SCN_ALIGN_128BYTES): Likewise.
- (IMAGE_SCN_ALIGN_256BYTES): Likewise.
- (IMAGE_SCN_ALIGN_512BYTES): Likewise.
- (IMAGE_SCN_ALIGN_1024BYTES): Likewise.
- (IMAGE_SCN_ALIGN_2048BYTES): Likewise.
- (IMAGE_SCN_ALIGN_4096BYTES): Likewise.
- (IMAGE_SCN_ALIGN_8192BYTES): Likewise.
- (IMAGE_SCN_ALIGN_1BYTES): Redefined with
- IMAGE_SCN_ALIGN_POWER_CONST.
- (IMAGE_SCN_ALIGN_2BYTES): Likewise.
- (IMAGE_SCN_ALIGN_4BYTES): Likewise.
- (IMAGE_SCN_ALIGN_8BYTES): Likewise.
- (IMAGE_SCN_ALIGN_16BYTES): Likewise.
- (IMAGE_SCN_ALIGN_32BYTES): Likewise.
- (IMAGE_SCN_ALIGN_64BYTES): Likewise.
-
-2007-07-12 Kai Tietz <kai.tietz@onevision.com>
-
- * internal.h (struct internal_syment): Use bfd_hostptr_t for
- _n_zeroes and _n_offset fields.
-
-2007-04-27 Alan Modra <amodra@bigpond.net.au>
-
- * rs6000.h: Write Mimi's name in ASCII.
-
-2007-03-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * internal.h (internal_extra_pe_aouthdr): Add Magic,
- MajorLinkerVersion, MinorLinkerVersion, SizeOfCode,
- SizeOfInitializedData, SizeOfUninitializedData,
- AddressOfEntryPoint, BaseOfCode and BaseOfData.
-
-2006-12-05 Michael Tautschnig <tautschn@model.in.tum.de>
- Nick Clifton <nickc@redhat.com>
-
- * external.h (struct external_aouthdr): Add ATTRIBUTE_PACKED.
- (struct external_syment): Likewise.
- (union external_auxent): Likewise.
-
-2006-11-14 Phil Lello <phil.lello@homecall.co.uk>
-
- * pe.h: Added defines for IMAGE_SUBSYSTEM_EFI_ROM and
- IMAGE_SUBSYSTEM_XBOX.
- * internal.h: Added defines for PE directory entry types.
- NB: in internal.h because IMAGE_NUMBEROF_DIRECTORY_ENTRYIES is in
- pe.h
-
-2006-09-20 Kai Tietz <Kai.Tietz@onevision.com>
-
- * external.h: Add proper external_aouthdr64 structure (without
- data_start member).
- (AOUTHDRSZ64): Set according structure size.
- (AOUTHDR64): As typedef of external_aouthdr64 structure.
- * internal.h: Add relocation identifiers for coff.
- * pe.h: Add define IMAGE_FILE_MACHINE_AMD64 the coff signature.
- (PEPAOUTHDR): Adjust structure to have proper size (using AOUTHDR64).
- (PEPAOUTSZ): Calculated size of 240.
- * x86_64.h: Coff information for x86_64 (AMD64).
-
-2006-02-05 Arnold Metselaar <arnold.metselaar@planet.nl>
-
- * internal.h: Add relocation number R_IMM24 for Z80.
-
-2005-10-25 Arnold Metselaar <arnold.metselaar@planet.nl>
-
- * internal.h: Add relocation number for Z80
- * z80.h: New file.
-
-2005-08-18 Alan Modra <amodra@bigpond.net.au>
-
- * a29k.h: Delete.
-
-2005-07-14 Daniel Marques <marques@cs.cornell.edu>
-
- * alpha.h (ALPHA_ECOFF_COMPRESSEDMAG): Define.
- * ecoff.h (ALPHA_MAGIC_COMPRESSED): Define.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- a29k.h, alpha.h, apollo.h, arm.h, aux-coff.h, ecoff.h, external.h,
- go32exe.h, h8300.h, h8500.h, i386.h, i860.h, i960.h, ia64.h,
- internal.h, m68k.h, m88k.h, maxq.h, mcore.h, mips.h, mipspe.h,
- or32.h, pe.h, powerpc.h, rs6k64.h, sh.h, sparc.h, ti.h, tic30.h,
- tic4x.h, tic54x.h, tic80.h, w65.h, we32k.h, xcoff.h, z8k.h
-
-2005-02-21 Alan Modra <amodra@bigpond.net.au>
-
- * xcoff.h (struct xcoff_loader_info): Warning fix.
-
-2005-01-10 Inderpreet Singh <inderpreetb@noida.hcltech.com>
-
- * maxq.h (F_MAXQ10, F_MAXQ20): Define.
-
-2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
- Vineet Sharma <vineets@noida.hcltech.com>
-
- * maxq.h: New file: Defintions for the maxq port.
-
-2004-11-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * pe.h (IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY): Define.
- (IMAGE_WEAK_EXTERN_SEARCH_LIBRARY): Same.
- (IMAGE_WEAK_EXTERN_SEARCH_ALIAS): Same.
-
-2004-08-13 Mark Kettenis <kettenis@gnu.org>
-
- * symconst.h (langMax): Fix typo in comment.
-
-2004-04-23 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove
- (MIPS_R_PCREL16): Update comment.
- * ecoff.h (struct ecoff_value_adjust): Remove structure.
- (struct ecoff_debug_info): Remove 'adjust' member.
-
-2004-04-20 DJ Delorie <dj@redhat.com>
-
- * internal.h (R_SECREL32): Add.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/coff/ChangeLog-9103 b/include/coff/ChangeLog-9103
deleted file mode 100644
index 98a778456..000000000
--- a/include/coff/ChangeLog-9103
+++ /dev/null
@@ -1,1177 +0,0 @@
-2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
-
- Moved from ../ChangeLog
-
- 2003-04-04 Svein E. Seldal <Svein.Seldal@solidas.com>
- * tic4x.h: Namespace cleanup. Replace s/c4x/tic4x
- and s/c3x/tic3x/
-
- 2003-01-20 Svein E. Seldal <Svein.Seldal@solidas.com>
- * tic4x.h (TICOFF_TARGET_MACHINE_GET): Fixed define bug
- * ti.h (TICOFF_TARGET_MACHINE_GET): Added macros
-
- 2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
- * internal.h: Add new relocation types.
- * ti.h: Add file-header flags for tic4x code.
- * tic4x.h: New file
-
-2003-12-02 Graham Reed <grahamr@algorithmics.com>
-
- * internal.h (C_WEAKEXT): Add alternative value for AIX 5.2
- based targets.
-
-2003-08-23 Jason Eckhardt <jle@rice.edu>
-
- * coff/i860.h (COFF860_R_PAIR, COFF860_R_LOW0, COFF860_R_LOW1,
- COFF860_R_LOW2, COFF860_R_LOW3, COFF860_R_LOW4, COFF860_R_SPLIT0,
- COFF860_R_SPLIT1, COFF860_R_SPLIT2, COFF860_R_HIGHADJ,
- COFF860_R_BRADDR): Define new relocation constants and document.
- Minor formatting adjustments.
-
-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.
-
-2003-04-15 Rohit Kumar Srivastava <rohits@kpitcummins.com>
-
- * sh.h: Replace occurrances of 'Hitachi' with 'Renesas'.
- * h8300.h: Likewise.
- * h8500.h: Likewise.
-
-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.
-
-2002-11-30 Alan Modra <amodra@bigpond.net.au>
-
- * ecoff.h: Replace boolean with bfd_boolean.
- * xcoff.h: Likewise.
-
-2002-03-18 Tom Rix <trix@redhat.com>
-
- * rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number.
-
-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
- format.
- (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.
-
-2001-12-16 Tom Rix <trix@redhat.com>
-
- * xcoff.h : Clean up formatting.
-
-2002-01-15 Richard Earnshaw <rearnsha@arm.com>
-
- * arm.h (F_VFP_FLOAT): Define.
-
-2001-11-11 Timothy Wall <twall@alum.mit.edu>
-
- * ti.h: Move arch-specific stuff from here...
- (COFF_ADJUST_SYM_IN/OUT): Optionally put page flag into symbol
- 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.
- (PUT_LINENO_LNNO): Likewise with H_PUT_32/16.
-
-2001-09-21 Nick Clifton <nickc@cambridge.redhat.com>
-
- * ti.h (GET_SCNHDR_PAGE): Fix compile time warning.
-
-2001-09-18 Alan Modra <amodra@bigpond.net.au>
-
- * external.h (GET_LINENO_LNNO): Use H_GET_32/16.
- (PUT_LINENO_LNNO): Use H_PUT_32/16.
- * m88k.h (GET_LNSZ_SIZE, GET_LNSZ_LNNO, GET_SCN_NRELOC,
- GET_SCN_NLINNO): Use H_GET_32.
- (PUT_LNSZ_LNNO, PUT_LNSZ_SIZE, PUT_SCN_NRELOC, PUT_SCN_NLINNO):
- Use H_PUT_32.
- * ti.h: Formatting fixes. Make use of H_GET_* and H_PUT_* throughout.
- * xcoff.h: White space changes.
-
-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.
-
-Fri Aug 24 01:18:51 2001 J"orn Rennecke <amylaar@redhat.com>
-
- * internal.h (R_JMP2, R_JMPL2, R_MOVL2): Comment spelling fix.
-
-2001-04-05 Tom Rix <trix@redhat.com>
-
- * 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.
- * external.h: Fix compile time warning.
- * m88k.h: Fix compile time warning.
-
-2001-03-13 Nick Clifton <nickc@redhat.com>
-
- * external.h: New file. Common structure definitions found in
- other COFF header files.
-
- * a29k.h: Use external.h.
- * apollo.h: Use external.h.
- * arm.h: Use external.h.
- * h8300.h: Use external.h.
- * h8500.h: Use external.h.
- * i386.h: Use external.h.
- * i860.h: Use external.h.
- * ia64.h: Use external.h.
- * m68k.h: Use external.h.
- * m88k.h: Use external.h.
- * mcore.h: Use external.h.
- * mips.h: Use external.h.
- * mipspe.h: Use external.h.
- * powerpc.h: Use external.h.
- * rs6000.h: Use external.h.
- * rs6k64.h: Use external.h.
- * sh.h: Use external.h.
- * sparc.h: Use external.h.
- * tic30.h: Use external.h.
- * tic80.h: Use external.h.
- * w65.h: Use external.h.
- * we32k.h: Use external.h.
- * z8k.h: Use external.h.
-
-2001-02-09 David Mosberger <davidm@hpl.hp.com>
-
- * pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ.
- Rename from PEPAOUTHDR.
-
-2001-01-23 H.J. Lu <hjl@gnu.org>
-
- * pe.h (struct external_PEI_DOS_hdr): New.
- (struct external_PEI_IMAGE_hdr): New.
-
-2000-12-11 Alan Modra <alan@linuxcare.com.au>
-
- * ti.h (OCTETS_PER_BYTE_POWER): Change #warning to #error.
-
-2000-12-08 Alan Modra <alan@linuxcare.com.au>
-
- * ti.h (OCTETS_PER_BYTE_POWER): Change #warn to #warning.
-
-2000-06-30 DJ Delorie <dj@cygnus.com>
-
- * pe.h: Clarify a comment.
-
-2000-05-05 Clinton Popetz <cpopetz@cygnus.com>
-
- * rs6k64.h (U802TOC64MAGIC): Change to U803XTOCMAGIC.
-
-2000-04-24 Clinton Popetz <cpopetz@cygnus.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+.
- (PEP64AOUTSZ): New macro.
- (IMAGE_SUBSYSTEM_UNKNOWN): New macro.
- (IMAGE_SUBSYSTEM_NATIVE): Ditto.
- (IMAGE_SUBSYSTEM_WINDOWS_GUI): Ditto.
- (IMAGE_SUBSYSTEM_WINDOWS_CUI): Ditto.
- (IMAGE_SUBSYSTEM_POSIX_CUI): Ditto.
- (IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): Ditto.
- (IMAGE_SUBSYSTEM_EFI_APPLICATION): Ditto.
- (IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER): Ditto.
- (IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER): Ditto.
- * internal.h (PE_DEF_FILE_ALIGNMENT): Define only if not defined
- already.
- * ia64.h: New file.
-
-2000-04-13 Alan Modra <alan@linuxcare.com.au>
-
- * ti.h (ADDR_MASK): Don't use ul suffix on constants.
- (PG_MASK): Ditto.
-
-2000-04-11 Timothy Wall <twall@cygnus.com>
-
- * ti.h: Remove load page references until load pages are
- 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.
-
-2000-03-15 Kazu Hirata <kazu@hxi.com>
-
- * internal.h: Fix a typo in the comment for R_MOVL2.
-
-2000-02-28 Nick Clifton <nickc@cygnus.com>
-
- * mipspe.h (MIPS_PE_MAGIC): Define.
- * sh.h (SH_PE_MAGIC): Define.
-
-2000-02-22 Nick Clifton <nickc@cygnus.com> DJ Delorie <dj@cygnus.com>
-
- * sh.h: Add Windows CE definitions.
- * 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.
- (IMAGE_FILE_AGGRESSIVE_WS_TRIM): Define.
- (IMAGE_FILE_LARGE_ADDRESS_AWARE): Define.
- (IMAGE_FILE_16BIT_MACHINE): Define.
- (IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP): Define.
- (IMAGE_FILE_UP_SYSTEM_ONLY): Define.
- (IMAGE_FILE_MACHINE_UNKNOWN): Define.
- (IMAGE_FILE_MACHINE_ALPHA): Define.
- (IMAGE_FILE_MACHINE_ALPHA64): Define.
- (IMAGE_FILE_MACHINE_I386): Define.
- (IMAGE_FILE_MACHINE_IA64): Define.
- (IMAGE_FILE_MACHINE_M68K): Define.
- (IMAGE_FILE_MACHINE_MIPS16): Define.
- (IMAGE_FILE_MACHINE_MIPSFPU): Define.
- (IMAGE_FILE_MACHINE_MIPSFPU16): Define.
- (IMAGE_FILE_MACHINE_POWERPC): Define.
- (IMAGE_FILE_MACHINE_R3000): Define.
- (IMAGE_FILE_MACHINE_R4000): Define.
- (IMAGE_FILE_MACHINE_R10000): Define.
- (IMAGE_FILE_MACHINE_SH3): Define.
- (IMAGE_FILE_MACHINE_SH4): Define.
- (IMAGE_FILE_MACHINE_THUMB): Define.
-
-1999-09-20 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * internal.h: Delete bogus R_PCLONG, duplicate R_RELBYTE and
- R_RELWORD, and rewrite some R_* as decimal.
-
-1999-09-06 Donn Terry <donn@interix.com>
-
- * internal.h (DTYPE): Define.
- * pe.h (struct external_PEI_filehdr): Rename from
- external_PE_filehdr. Define even if COFF_IMAGE_WITH_PE is not
- defined.
-
-1999-07-17 Nick Clifton <nickc@cygnus.com>
-
- * arm.h (F_SOFT_FLOAT): Rename from F_SOFTFLOAT.
-
-1999-06-21 Philip Blundell <pb@nexus.co.uk>
-
- * arm.h (F_SOFTFLOAT): Define.
-
-1999-07-05 Nick Clifton <nickc@cygnus.com>
-
- * arm.h (F_ARM_5): Define.
-
-Wed Jun 2 18:08:18 1999 Richard Henderson <rth@cygnus.com>
-
- * internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New.
-
-Mon May 17 13:35:35 1999 Stan Cox <scox@cygnus.com>
-
- * arm.h (F_PIC, F_ARM_2, F_ARM_2a, F_ARM_3, F_ARM_3M,
- F_ARM_4, F_ARM_4T, F_APCS26): Changed values to distinguish
- F_ARM_2a, F_ARM_3M, F_ARM_4T.
-
-1999-05-15 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h (IMAGE_REL_MCORE_RVA): Define.
-
-1999-04-21 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h (GET_LINENO_LNNO): New macro.
- (PUT_LINENO_LNNO): New macro.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h: New header file. Defines for Motorola's MCore
- processor.
-
-Sun Dec 6 21:36:37 1998 Mark Elbrecht <snowball3@usa.net>
-
- * internal.h (C_WEAKEXT): Define.
-
-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.
-
-Fri Mar 27 17:16:57 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (ISPTR, ISFCN, ISARY): Add casts to unsigned long.
-
-Mon Feb 2 17:10:38 1998 Steve Haworth <steve@pm.cse.rmit.EDU.AU>
-
- * tic30.h: New file.
-
-Fri Dec 12 11:49:07 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (R_MPPCR15W): New relocation type, for 15 bit PC relative
- offsets.
-
-Tue Dec 2 10:21:40 1997 Nick Clifton <nickc@cygnus.com>
-
- * arm.h (COFFARM): New define.
-
-Mon Dec 1 20:24:18 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * sh.h (R_SH_SWITCH8): New.
-
-Sat Nov 22 15:10:14 1997 Nick Clifton <nickc@cygnus.com>
-
- * internal.h (C_THUMBEXTFUNC, C_THUMBSTATFUNC): Constants to
- define static and external functions.
-
- * arm.h: Add bits to support PIC and APCS-FLOAT type binaries,
- when implemented.
-
-Fri Oct 3 14:25:17 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (R_PPL16B): Make constant uppercase for consistency.
-
-Tue Jul 22 18:18:58 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
-
- * go32exe.h: New file.
-
-Tue Jul 8 12:23:55 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_TARGET_ID): Add define.
- * internal.h (struct internal_filehdr): Add f_target_id field.
-
-Tue Jun 3 16:44:18 1997 Nick Clifton <nickc@cygnus.com>
-
- * internal.h: Add storage classes for Thumb symbols
-
-Mon May 26 14:07:55 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * tic80.h (R_PPL16B): Correct value.
-
-Tue May 13 10:21:14 1997 Nick Clifton <nickc@cygnus.com>
-
- * arm.h (constants): Added new flag bits F_APCS_26 and
- F_APCS_SET for the f_flags field of the filehdr structure. Added new
- flags: F_APCS26, F_ARM_2, F_ARM_3, F_ARM_7, F_ARM_7T to store
- information in the flags field of the internal_f structure used by BFD
- routines.
-
-Sat May 3 08:24:59 1997 Fred Fish <fnf@cygnus.com>
-
- * internal.h (C_UEXT, C_STATLAB, C_EXTLAB, C_SYSTEM):
- New storage classes for TIc80.
-
-Fri Apr 18 11:52:55 1997 Niklas Hallqvist <niklas@appli.se>
-
- * alpha.h (ALPHA_ECOFF_BADMAG): Recognize *BSD/alpha magic too.
- (ALPHA_R_LITERALSLEAZY): Define.
- * ecoff.h (ALPHA_MAGIC_BSD): Define.
-
-Wed Jan 29 11:31:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i960.h (R_IPR13, R_ALIGN): Define.
-
-Mon Jan 27 13:34:30 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): Move definitions
- from here...
- * i960.h (R_IPRMED, R_OPTCALL, R_OPTCALLX): ...to here.
-
-Wed Jan 22 20:10:47 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80MAGIC): Renamed to TIC80_AOUTHDR_MAGIC.
-
-Fri Dec 27 22:05:45 1996 Fred Fish <fnf@cygnus.com>
-
- * tic80.h: New file for TIc80 support.
-
-Thu Dec 19 16:18:11 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * arm.h (_LIT): Define.
-
-Fri Jun 28 12:54:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * pe.h (FILHSZ): Define.
-
-Wed Jun 26 16:24:26 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * All files: Define FILHSZ, AOUTSZ, AOUTHDRSZ, SCNHSZ, SYMESZ,
- AUXESZ, LINESZ, RELSZ as numeric constants rather than uses of
- sizeof. Define AOUTHDRSZ in all files.
- * pe.h (AOUTSZ): Define by adding to AOUTHDRSZ.
-
-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.
-
-Tue Jun 18 16:04:29 1996 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * h8300.h (H8300SMAGIC): Define.
- (H8300SBADMAG): Define.
-
-Mon Jun 10 11:53:28 1996 Jeffrey A Law (law@cygnus.com)
-
- * internal.h (R_BCC_INV, R_JMP_DEL): New relocations for
- relaxing in the H8/300 series.
-
-Thu May 16 15:49:22 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * sh.h (R_SH_CODE, R_SH_DATA, R_SH_LABEL): Define.
-
-Tue May 7 00:36:39 1996 Jeffrey A Law (law@cygnus.com)
-
- * internal.h (R_JMPL2): Renamed from R_JMPL_B8 to be
- consistent with other similar relocs.
-
- * internal.h (H8/300 specific relocs): Add comments better
- explaining what each reloc is used for.
- (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
- linker.
-
-Wed May 1 19:21:03 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (SCNNMLEN): Define.
- (struct internal_scnhdr): Use SCNNMLEN for s_name field.
-
-Fri Mar 29 13:41:25 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * pe.h: Define IMAGE_COMDAT codes.
-
-Wed Mar 27 17:29:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * arm.h (union external_auxent): Add x_checksum, x_associated, and
- x_comdat fields to x_scn struct.
- * i386.h (union external_auxent): Likewise.
- * powerpc.h (union external_auxent): Likewise.
- * internal.h (union internal_auxent): Likewise.
-
-Thu Mar 21 16:25:57 1996 David Mosberger-Tang <davidm@azstarnet.com>
-
- * ecoff.h (struct ecoff_find_line): Add caching fields.
-
-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
- systems which think that aux is a com port.
-
-Mon Feb 5 18:35:00 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * i960.h (F_I960HX): Define.
-
-Wed Jan 31 13:11:54 1996 Richard Henderson <rth@tamu.edu>
-
- * aux.h: New file.
- * internal.h, m68k.h: Protect against multiple inclusion.
-
-Wed Nov 22 13:48:39 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * ecoff.h (_RCONST, STYP_RCONST, RELOC_SECTION_RCONST): Define.
- (NUM_RELOC_SECTIONS): Update.
- * symconst.h (scRConst): Define.
-
-Tue Nov 14 18:54:29 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (C_NT_WEAK): Define.
-
-Thu Nov 9 14:08:30 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * rs6000.h (STYP_OVRFLO): Define.
-
-Tue Nov 7 14:38:45 1995 Kim Knuttila <krk@cygnus.com>
-
- * powerpc.h (IMAGE_NT_OPTIONAL_HDR_MAGIC): Added define.
- * pe.h: Added defines for file level flags
-
-Mon Nov 6 17:28:01 1995 Harry Dolan <dolan@ssd.intel.com>
-
- * i860.h: New file, based on i386.h.
-
-Wed Nov 1 15:25:18 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
-
- * m68k.h (PAGEMAGICEXECSWAPPED): Define.
- (PAGEMAGICPEXECSWAPPED): Define.
- (PAGEMAGICPEXECTSHLIB): Define.
- (PAGEMAGICPEXECPAGED): Define.
- (_COMMENT): DEFINE.
- * m88k.h (_COMMENT): Define.
-
-Wed Oct 18 18:36:19 1995 Geoffrey Noer <noer@cygnus.com>
-
- * 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>
-
- * rs6000.h (SMALL_AOUTSZ): Define.
-
- * internal.h (XMC_TD): Define.
-
-Tue Oct 10 18:41:03 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (struct internal_aouthdr): Add o_cputype field.
- * rs6000.h (AOUTHDR): Rename o_resv1 to o_cputype.
-
-Mon Oct 9 14:45:46 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * rs6000.h (AOUTHDR): Add o_maxdata field. Add comments.
- (_PAD, _LOADER): Define.
- (STYP_LOADER): Define.
- * internal.h (struct internal_aouthdr): Add o_maxdata field.
-
-Thu Oct 5 10:02:57 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * ecoff.h: Define section name macros and STYP macros for various
- Alpha sections: .got, .hash, .dynsym, .dynstr, .rel.dyn, .conflic,
- .comment, .liblist, .dynamic.
-
-Wed Oct 4 10:56:35 1995 Kim Knuttila <krk@cygnus.com>
-
- * pe.h: Moved DOSMAGIC and NT_SIGNATURE defines here
- * powerpc.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
- Also removed other unused defines (various MAGIC ones)
- * i386.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
- * arm.h: removed DOSMAGIC, NT_SIGNATURE, and DEFAULT_* defines
- * apollo.h: removed unused DEFAULT_* defines
- * alpha.h: removed unused DEFAULT_* defines
- * h8500.h: removed unused DEFAULT_* defines
- * h8300.h: removed unused DEFAULT_* defines
- * i960.h: removed unused DEFAULT_* defines
- * m88k.h: removed unused DEFAULT_* defines
- * we32k.h: removed unused DEFAULT_* defines
- * rs6000.h: removed unused DEFAULT_* defines
- * mips.h: removed unused DEFAULT_* defines
- * m68k.h: removed unused DEFAULT_* defines
- * z8k.h: removed unused DEFAULT_* defines
- * w65.h: removed unused DEFAULT_* defines
- * sparc.h: removed unused DEFAULT_* defines
- * sh.h: removed unused DEFAULT_* defines
-
-Fri Sep 29 08:40:08 1995 Kim Knuttila <krk@cygnus.com>
-
- * powerpc.h: Reformatted to GNU coding conventions.
-
-Wed Sep 27 06:50:50 1995 Kim Knuttila <krk@nellie>
-
- * pe.h: added defines for more section characteristics
- * powerpc.h (new file): base coff definitions for ppc PE
-
-Tue Sep 12 12:08:20 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (struct internal_syment): Change n_numaux field from
- char to unsigned char.
-
-Fri Sep 1 15:39:36 1995 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>
-
- * mips.h (struct rpdr_ext): Define.
-
-Thu Aug 31 16:51:50 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * internal.h (internal_aouthdr, internal_filehdr):
- don't indirect the pe stuff.
-
-Tue Aug 29 14:16:07 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * i386.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Make the same
- as 'the other' compiler.
- * internal.h (NT_IMAGE_BASE): Deleted.
- (NT_EXE_IMAGE_BASE, NT_DLL_IMAGE_BASE): New.
- (PE_DEF_SECTION_ALIGNMENT, PE_DEF_FILE_ALIGNMENT): New.
- (R_IMAGEBASE): New.
-
-Mon Aug 21 18:12:19 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * internal.h: (internal_filehdr): Moved PE stuff into
- internal_extra_pe_filehdr.
- (internal_aouthdr): Moved PE stuff into
- interanl_extra_pe_aouthdr.
-
-Mon Jul 24 14:05:39 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h: Move R_SH_* relocs from here...
- * sh.h: ...to here.
- (R_SH_SWITCH16, R_SH_SWITCH32): Define.
- (R_SH_USES, R_SH_COUNT, R_SH_ALIGN): Define.
-
-Thu Jun 29 00:04:25 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * internal.h (NT_DEF_RESERVE, NT_DEF_COMMIT): Increase a lot.
-
-Tue May 16 15:08:20 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * internal.h (NT_subsystem, NT_stack_heap): Delete
-
-Tue May 16 15:08:20 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * internal.h (NT_subsystem, NT_stack_heap): Now extern.
-
-Sat May 13 10:14:08 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * pe.h: New file.
- * i386.h (NT_SECTION_ALIGNMENT, NT_FILE_ALIGNMENT,
- NT_DEF_RESERVE, NT_DEF_COMMIT): New.
- * internal.h (internal_filehdr): New fields for PE.
- (IMAGE_DATA_DIRECTORY): New.
- (internal_aouthdr): New fields for PE.
-
-Tue Feb 14 17:59:37 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * ecoff.h (struct ecoff_fdrtab_entry): Define.
- (struct ecoff_find_line): Define.
-
-Sat Feb 4 14:38:03 1995 David Mosberger-Tang <davidm@piston.cs.arizona.edu>
-
- * sym.h (struct pdr): field "prof" added.
-
- * alpha.h (PDR_BITS1_PROF_*): added, macros for PDR_BITS*_RESERVED_*
- updated accordingly.
-
-Sun Jan 15 18:38:33 1995 Steve Chamberlain <sac@splat>
-
- * w65.h: New file.
-
-Wed Nov 23 22:43:38 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * sh.h (SH_ARCH_MAGIC_BIG, SH_ARCH_MAGIC_LITTLE): New.
- (SHBADMAG): Changed to suit.
-
-Tue Jul 26 17:46:08 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i960.h (F_I960JX): New macro.
-
-Wed Jul 6 00:48:57 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * alpha.h: Add definitions for alpha file header flags, encoding
- the object type of the file.
-
-Mon Jun 20 13:47:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * ecoff.h (ecoff_swap_tir_in): Remove declaration.
- (ecoff_swap_tir_out): Likewise.
- (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise.
- (struct ecoff_debug_swap): Add new fields: swap_tir_in,
- swap_rndx_in, swap_tir_out, swap_rndx_out, read_debug_info.
-
-Sun Jun 12 03:51:52 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * symconst.h: Pick up SGI define for stIndirect.
-
-Fri Apr 22 13:05:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (REGINFO): Don't define.
- (struct ecoff_reginfo): Don't define.
-
- * sh.h (SH_ARCH_MAGIC): Rename from SHMAGIC. SHMAGIC is used by
- several targets to mean a shared library.
- (SHBADMAG): Corresponding change.
-
-Thu Apr 14 13:00:53 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (RELOC_BITS3_TYPE_BIG): Changed from 0x1e to 0x3e.
- (RELOC_BITS3_TYPEHI_LITTLE): Define.
- (RELOC_BITS3_TYPEHI_SH_LITTLE): Define.
- (MIPS_R_PCREL16): Change value from 8 to 12 to match Irix 4.
- (MIPS_R_RELHI): Define.
- (MIPS_R_RELLO): Define.
- (MIPS_R_SWITCH): Change value from 9 to 22.
-
-Thu Apr 7 14:19:35 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (MIPS_R_SWITCH): Define.
-
-Thu Mar 31 19:28:33 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * internal.h (internal_aouthdr): Added comments for Apollo fields.
-
-Thu Mar 31 16:28:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (STYP_ECOFF_LIB): Define as used on Irix 4.
-
-Fri Mar 25 17:16:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (struct ecoff_debug_info): Add adjust field.
- (struct ecoff_value_adjust): Define.
-
-Tue Mar 22 13:22:47 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (MIPS_R_PCREL16): Define.
-
-Sat Feb 26 10:26:38 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * ecoff.h: Add casts to avoid warnings from SVR4 cc.
-
-Mon Feb 21 09:48:46 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
-
- * sym.h (struct runtime_pdr): Make field adr bfd_vma, not unsigned
- long.
- (SYMR): Make field value bfd_vma, not long.
-
-Fri Feb 4 23:35:53 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * rs6000.h (STYP_DEBUG): Define.
-
-Wed Feb 2 14:31:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h (union internal_auxent): Change x_csect.x_scnlen into
- a union of a long and a pointer to a symbol. XCOFF sometimes uses
- this field as a symbol index.
-
-Mon Jan 10 23:54:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (ecoff_debug_info): Remove fields line_end,
- external_dnr_end, external_pdr_end, external_sym_end,
- external_opt_end, external_aux_end, ss_end, external_fdr_end.
- Replace ifdbase with ifdmap.
-
-Wed Jan 5 17:05:36 1994 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * ecoff.h (STYP_EXTENDESC, STYP_COMMENT, STYP_XDATA, STYP_PDATA):
- Define.
-
-Wed Jan 5 16:58:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (NUM_RELOC_SECTIONS): Define.
-
-Tue Dec 21 09:24:56 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * sparc.h (struct external_reloc): Rename field r_addend to
- r_offset.
-
-Sat Dec 11 16:12:32 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h (R_DISP7, R_SH_IMM16): New reloc types.
-
-Tue Nov 23 14:23:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (struct ecoff_debug_swap): Added *_end fields for all
- the symbolic information pointers.
-
- * sym.h: Named the EXTR structure ecoff_extr.
-
-Fri Nov 19 08:21:18 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * sparc.h (RELSZ): Use correct size.
-
-Wed Nov 17 17:18:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (struct ecoff_debug_info): Define.
-
-Tue Nov 2 17:56:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (struct ecoff_debug_swap): Define.
-
-Thu Oct 28 17:07:50 1993 Stan Shebs (shebs@rtl.cygnus.com)
-
- * i386.h (I386LYNXMAGIC): Rename to LYNXCOFFMAGIC.
- * m68k.h (LYNXCOFFMAGIC): Define.
- * sparc.h: New file.
-
-Tue Oct 19 15:34:50 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * alpha.h (external_aouthdr): Split four byte padding field into
- two byte bldrev field and two byte padding field.
-
- * ecoff.h (_LITA, _PDATA, _XDATA, STYP_LITA): Defined.
-
-Wed Oct 13 15:52:34 1993 Ken Raeburn (raeburn@cygnus.com)
-
- Sun Oct 10 17:27:10 1993 Troy Rollo (troy@cbme.unsw.edu.au)
-
- * internal.h: Added o_sri, o_inlib and o_vid for Apollos as well
- as R_DIR16.
-
- * apollo.h: New file
-
-Mon Oct 11 17:16:48 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (REGINFO, struct ecoff_reginfo): Define.
-
-Tue Oct 5 10:52:53 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * rs6000.h: Change non-ASCII characters in comment to octal
- escapes.
-
-Tue Sep 28 03:27:04 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * ecoff.h (_FINI, STYP_ECOFF_FINI): Add to support .fini section.
-
-Fri Sep 24 11:53:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.
- * ecoff.h: Define MIPS_MAGIC_LITTLE3 and MIPS_MAGIC_BIG3.
-
-Thu Sep 23 21:07:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * mips.h (BADMAG): Recognize MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.
- * ecoff.h: Define MIPS_MAGIC_LITTLE2 and MIPS_MAGIC_BIG2.
-
-Thu Sep 16 20:27:21 1993 Jim Kingdon (kingdon@cirdan.cygnus.com)
-
- * sym.h, symconst.h: Add comment stating these files are not part
- of GDB, GAS, etc. In 1991, when we asked rms whether we could
- include these files in GDB (although they are copyrighted by
- someone besides the FSF), he said it was OK if they were not
- considered part of GDB.
-
-Fri Sep 10 17:40:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (AUX_PUT_ANY): Cast val argument to bfd_vma.
-
- * alpha.c (external_aouthdr): Need four bytes of padding between
- vstamp and tsize.
-
-Tue Sep 7 14:20:43 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff.h (AUX_GET_ANY, AUX_PUT_ANY): Changed to reflect further
- change in bfd swapping routine names.
-
-Tue Sep 7 10:15:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * ecoff.h (AUX_GET_ANY): Change name of _do_getb32 to reflect bfd
- changes.
-
-Fri Aug 13 14:30:32 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ecoff.h (RELOC_SECTION_NONE): Define.
-
-Thu Aug 12 11:24:42 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * alpha.h (struct external_reloc): Add r_symndx field.
- (RELSZ): Correct.
- (RELOC_BITS*): Correct.
- (ALPHA_R_*): Define.
- * ecoff.h (RELOC_SECTION_{XDATA,PDATA,FINI,LITA,ABS}): Define.
- (r_extern): Undefine.
- * internal.h (struct internal_reloc): Make r_vaddr bfd_vma rather
- than long. Add r_extern field.
-
- * alpha.h (PDR_BITS*): Define.
- * sym.h (PDR): Give correct names to new fields.
-
- * ecoff.h: Moved MIPS reloc definitions from here...
- * mips.h: to here.
-
-Mon Aug 2 16:37:14 1993 Stu Grossman (grossman at cygnus.com)
-
- * i386.h: Add Lynx magic number.
-
-Tue Aug 3 11:17:53 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * alpha.h: Corrected external symbolic debugging structures to
- match actual usage.
- * internal.h (internal_filehdr, internal_aouthdr,
- internal_scnhdr): Changed type of some fields to bfd_vma so they
- can hold 64 bits.
- * sym.h (HDRR, FDR, PDR, EXTR): Likewise.
- (PDR): Added new fields found on Alpha.
- * symconst.h (magicSym2): Define; new value found on Alpha.
-
- * ecoff.h: New file.
- * alpha.h, mips.h: Moved common information into ecoff.h. Moved
- external structure definitions in from ecoff-ext.h.
- * ecoff-ext.h: Removed; information now in alpha.h and mips.h.
-
-Sun Jul 18 21:43:59 1993 Jim Kingdon (kingdon@rtl.cygnus.com)
-
- * i386.h: Recognize I386PTXMAGIC.
-
-Fri Jul 16 09:54:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h (MIPS_AOUT_{OZ}MAGIC): Renamed from {OZ}MAGIC.
-
-Thu Jul 15 12:23:55 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * m88k.h (union external_auxent): Move x_fcn back inside x_fcnary.
- ({GET,PUT}_FCN_{LNNOPTR,ENDNDX}): Adjust accordingly.
-
-Sun Jul 11 18:00:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * m68k.h: Define MC68KBCSMAGIC.
-
-Thu Jun 10 11:46:28 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h (_INIT, STYP_MIPS_INIT): Define (used on Irix4).
- (STYP_OTHER_LOAD): Define as STYP_MIPS_INIT.
-
-Wed Jun 9 15:09:09 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h (OMAGIC): Define.
-
-Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- Support for H8/300-H
- * h8300.h: New magic number.
- * internal.h: New relocations.
-
-Mon Apr 26 18:04:47 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h, sh.h: Support for SH.
-
-Sat Apr 24 21:34:59 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * a29k.h: Define _LIT.
-
-Fri Apr 23 18:41:23 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * alpha.h: New file.
-
-Thu Apr 8 12:36:34 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * internal.h (C_SHADOW, C_VERSION): Copied in from m88k.h.
- * m88k.h, i386.h, we32k.h: Don't define all the storage classes;
- they're already in internal.h.
-
-Wed Apr 7 11:51:24 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * internal.h: Change n_sclass to unsigned char.
- Change C_EFCN to 0xff, change RS/6000 dbx symbols
- to no longer be signed.
-
-Fri Mar 19 14:52:56 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h: Add H8/500 reloc types.
-
-Wed Mar 17 09:46:03 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ecoff-ext.h (AUX_PUT_ANY): Don't use void values in branches of
- conditional expression.
-
-Thu Mar 4 14:12:06 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ecoff-ext.h (AUX_GET_*): Rewrote to use new macro AUX_GET_ANY.
- (AUX_PUT_*): New macros corresponding to the AUX_GET macros.
- (ecoff_swap_tir_out): Added prototype.
-
- * mips.h (N_BTMASK, N_TMASK, N_BTSHFT, N_TSHIFT): Define; these
- are needed to interpret gcc debugging output.
-
-Tue Feb 9 07:43:27 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * we32k.h (BTYPE, ISPTR, ISFCN, ISARY, DECREF): Removed
- more definitions duplicated in internal.h.
-
-Wed Feb 3 09:18:24 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h (RELOC_BITS3_TYPE_*): Correct for big endian machines.
-
-Mon Jan 25 11:35:51 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * internal.h (internal_aouthdr): Added additional fields used only
- by MIPS ECOFF.
-
-Thu Jan 21 10:28:38 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h (AOUTHDR): Added additional fields used by ECOFF.
-
-Tue Jan 19 12:21:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * i386.h, we32k.h (N_*, T_*, DT_*): Removed still more definitions
- duplicated in internal.h.
-
- * mips.h (RELOC_SECTION_*, ECOFF_R_*): Defined constants for ECOFF
- relocs.
-
-Fri Jan 15 18:17:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff-ext.h: Added prototypes for new ECOFF swapping functions.
- (opt_ext): New structure.
- * mips.h (ZMAGIC): Defined to be 0413.
- (_LIB): Defined to be ".lib"
- (external_reloc): MIPS ECOFF relocs are only 8 bytes. Added
- macros to aid in swapping.
-
-Fri Jan 8 16:19:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ecoff-ext.h: Added prototypes for ECOFF swapping functions.
- * internal.h (internal_scnhdr): Always provide s_align field, not
- just on i960.
- (internal_reloc): Always provide r_size field, not just on
- RS/6000.
- * mips.h (_RDATA, _SDATA, _SBSS, _LIT4, _LIT8, STYP_RDATA,
- STYP_SDATA, STYP_SBSS, STYP_LIT4, STYP_LIT8): Defined.
- (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB,
- STABS_SYMBOL): Moved in from gdb/mipsread.c.
-
-Wed Jan 6 14:01:46 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * i386.h, we32k.h: removed STYP_* defines, since they duplicated
- those in internal.h.
-
-Tue Dec 29 15:40:07 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * i386.h: define I386AIXMAGIC for Danbury AIX PS/2 compiler.
-
-Sat Dec 12 16:07:57 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * i386.h: don't define BTYPE, ISPTR, ISFCN, ISARY, DECREF: they
- are defined in internal.h.
-
-Thu Nov 12 09:52:01 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h: (internal_reloc): r_offset is now a long.
- * z8k.h: slight comment enhancement
-
-Wed Sep 30 07:46:08 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h: changed z8k reloc types
-
-Fri Aug 28 10:16:31 1992 Brendan Kehoe (brendan@cygnus.com)
-
- * we32k.h: new file
-
-Thu Aug 27 13:00:01 1992 Brendan Kehoe (brendan@cygnus.com)
-
- * symconst.h: comment out cruft at the end of #endif
-
-Tue Aug 25 15:06:49 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h: added #define for STYP_LIT, removed from a29k and
- h8300.
-
- * z8k.h: added z8000 support
-
-Thu Jul 16 16:32:00 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * internal.h: added R_RELLONG_NEG reloc type
-
-Fri Jun 12 20:11:04 1992 John Gilmore (gnu at cygnus.com)
-
- * symconst.h: Fix unterminated comment.
-
-Wed Jun 10 07:57:49 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * i386.h: a.out magic numbers from
- mohring@informatik.tu-muenchen.de
-
-Mon Jun 8 20:13:33 1992 John Gilmore (gnu at cygnus.com)
-
- * ecoff-ext.h, mips.h: Use unsigned chars everywhere.
- (Suggested by Antti Miettinen.)
-
-Tue Apr 14 15:18:44 1992 John Gilmore (gnu at cygnus.com)
-
- * sym.h: Add comments.
- * symconst.h: Merge with Fred's changes.
-
-Tue Apr 14 14:30:05 1992 Fred Fish (fnf@cygnus.com)
-
- * symconst.h: Pick up SGI defines for stStruct, stUnion, stEnum,
- langCplusplus, and langCplusplusV2.
-
-Thu Apr 2 19:47:43 1992 John Gilmore (gnu at cygnus.com)
-
- * sym.h, symconst.h: MIPS has provided redistributable versions
- of these files. Thanks!
- * ecoff-ext.h: Add weakext bit to match new sym.h.
-
-Fri Mar 6 00:10:46 1992 John Gilmore (gnu at cygnus.com)
-
- * ecoff-ext.h: Add relative file descriptors.
-
-Thu Feb 27 11:53:04 1992 John Gilmore (gnu at cygnus.com)
-
- * ecoff-ext.h: New file for external (in-file) form of ecoff
- symbol structures.
-
-Thu Feb 6 11:33:32 1992 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * h8300.h: made the external_lineno l_lnno field 4 bytes wide.
- andded GET/PUT_LINENO_LNNO macros
-
-Sat Nov 30 20:38:35 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * a29k.h, h8300.h, i386.h, i960.h, internal.h, m68k.h, m88k.h,
- mips.h, rs6000.h: Move from above coff-<foo>.h.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/coff/alpha.h b/include/coff/alpha.h
deleted file mode 100644
index 81516892a..000000000
--- a/include/coff/alpha.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* ECOFF support on Alpha machines.
- coff/ecoff.h must be included before this file.
-
- Copyright 2001, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
- unsigned char f_magic[2]; /* magic number */
- unsigned char f_nscns[2]; /* number of sections */
- unsigned char f_timdat[4]; /* time & date stamp */
- unsigned char f_symptr[8]; /* file pointer to symtab */
- unsigned char f_nsyms[4]; /* number of symtab entries */
- unsigned char f_opthdr[2]; /* sizeof(optional hdr) */
- unsigned char f_flags[2]; /* flags */
-};
-
-/* Magic numbers are defined in coff/ecoff.h. */
-#define ALPHA_ECOFF_BADMAG(x) \
- ((x).f_magic != ALPHA_MAGIC && (x).f_magic != ALPHA_MAGIC_BSD)
-
-#define ALPHA_ECOFF_COMPRESSEDMAG(x) \
- ((x).f_magic == ALPHA_MAGIC_COMPRESSED)
-
-/* The object type is encoded in the f_flags. */
-#define F_ALPHA_OBJECT_TYPE_MASK 0x3000
-#define F_ALPHA_NO_SHARED 0x1000
-#define F_ALPHA_SHARABLE 0x2000
-#define F_ALPHA_CALL_SHARED 0x3000
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 24
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
-{
- unsigned char magic[2]; /* type of file */
- unsigned char vstamp[2]; /* version stamp */
- unsigned char bldrev[2]; /* ?? */
- unsigned char padding[2]; /* pad to quadword boundary */
- unsigned char tsize[8]; /* text size in bytes */
- unsigned char dsize[8]; /* initialized data " " */
- unsigned char bsize[8]; /* uninitialized data " " */
- unsigned char entry[8]; /* entry pt. */
- unsigned char text_start[8]; /* base of text used for this file */
- unsigned char data_start[8]; /* base of data used for this file */
- unsigned char bss_start[8]; /* base of bss used for this file */
- unsigned char gprmask[4]; /* bitmask of general registers used */
- unsigned char fprmask[4]; /* bitmask of floating point registers used */
- unsigned char gp_value[8]; /* value for gp register */
-} AOUTHDR;
-
-/* compute size of a header */
-
-#define AOUTSZ 80
-#define AOUTHDRSZ 80
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
- unsigned char s_name[8]; /* section name */
- unsigned char s_paddr[8]; /* physical address, aliased s_nlib */
- unsigned char s_vaddr[8]; /* virtual address */
- unsigned char s_size[8]; /* section size */
- unsigned char s_scnptr[8]; /* file ptr to raw data for section */
- unsigned char s_relptr[8]; /* file ptr to relocation */
- unsigned char s_lnnoptr[8]; /* file ptr to line numbers */
- unsigned char s_nreloc[2]; /* number of relocation entries */
- unsigned char s_nlnno[2]; /* number of line number entries*/
- unsigned char s_flags[4]; /* flags */
-};
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 64
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- unsigned char r_vaddr[8];
- unsigned char r_symndx[4];
- unsigned char r_bits[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-/* Constants to unpack the r_bits field. The Alpha seems to always be
- little endian, so I haven't bothered to define big endian variants
- of these. */
-
-#define RELOC_BITS0_TYPE_LITTLE 0xff
-#define RELOC_BITS0_TYPE_SH_LITTLE 0
-
-#define RELOC_BITS1_EXTERN_LITTLE 0x01
-
-#define RELOC_BITS1_OFFSET_LITTLE 0x7e
-#define RELOC_BITS1_OFFSET_SH_LITTLE 1
-
-#define RELOC_BITS1_RESERVED_LITTLE 0x80
-#define RELOC_BITS1_RESERVED_SH_LITTLE 7
-#define RELOC_BITS2_RESERVED_LITTLE 0xff
-#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE 1
-#define RELOC_BITS3_RESERVED_LITTLE 0x03
-#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE 9
-
-#define RELOC_BITS3_SIZE_LITTLE 0xfc
-#define RELOC_BITS3_SIZE_SH_LITTLE 2
-
-/* The r_type field in a reloc is one of the following values. */
-#define ALPHA_R_IGNORE 0
-#define ALPHA_R_REFLONG 1
-#define ALPHA_R_REFQUAD 2
-#define ALPHA_R_GPREL32 3
-#define ALPHA_R_LITERAL 4
-#define ALPHA_R_LITUSE 5
-#define ALPHA_R_GPDISP 6
-#define ALPHA_R_BRADDR 7
-#define ALPHA_R_HINT 8
-#define ALPHA_R_SREL16 9
-#define ALPHA_R_SREL32 10
-#define ALPHA_R_SREL64 11
-#define ALPHA_R_OP_PUSH 12
-#define ALPHA_R_OP_STORE 13
-#define ALPHA_R_OP_PSUB 14
-#define ALPHA_R_OP_PRSHIFT 15
-#define ALPHA_R_GPVALUE 16
-#define ALPHA_R_GPRELHIGH 17
-#define ALPHA_R_GPRELLOW 18
-#define ALPHA_R_IMMED 19
-
-/* Overloaded reloc value used by Net- and OpenBSD. */
-#define ALPHA_R_LITERALSLEAZY 17
-
-/* With ALPHA_R_LITUSE, the r_size field is one of the following values. */
-#define ALPHA_R_LU_BASE 1
-#define ALPHA_R_LU_BYTOFF 2
-#define ALPHA_R_LU_JSR 3
-
-/* With ALPHA_R_IMMED, the r_size field is one of the following values. */
-#define ALPHA_R_IMMED_GP_16 1
-#define ALPHA_R_IMMED_GP_HI32 2
-#define ALPHA_R_IMMED_SCN_HI32 3
-#define ALPHA_R_IMMED_BR_HI32 4
-#define ALPHA_R_IMMED_LO32 5
-
-/********************** SYMBOLIC INFORMATION **********************/
-
-/* Written by John Gilmore. */
-
-/* ECOFF uses COFF-like section structures, but its own symbol format.
- This file defines the symbol format in fields whose size and alignment
- will not vary on different host systems. */
-
-/* File header as a set of bytes */
-
-struct hdr_ext
-{
- unsigned char h_magic[2];
- unsigned char h_vstamp[2];
- unsigned char h_ilineMax[4];
- unsigned char h_idnMax[4];
- unsigned char h_ipdMax[4];
- unsigned char h_isymMax[4];
- unsigned char h_ioptMax[4];
- unsigned char h_iauxMax[4];
- unsigned char h_issMax[4];
- unsigned char h_issExtMax[4];
- unsigned char h_ifdMax[4];
- unsigned char h_crfd[4];
- unsigned char h_iextMax[4];
- unsigned char h_cbLine[8];
- unsigned char h_cbLineOffset[8];
- unsigned char h_cbDnOffset[8];
- unsigned char h_cbPdOffset[8];
- unsigned char h_cbSymOffset[8];
- unsigned char h_cbOptOffset[8];
- unsigned char h_cbAuxOffset[8];
- unsigned char h_cbSsOffset[8];
- unsigned char h_cbSsExtOffset[8];
- unsigned char h_cbFdOffset[8];
- unsigned char h_cbRfdOffset[8];
- unsigned char h_cbExtOffset[8];
-};
-
-/* File descriptor external record */
-
-struct fdr_ext
-{
- unsigned char f_adr[8];
- unsigned char f_cbLineOffset[8];
- unsigned char f_cbLine[8];
- unsigned char f_cbSs[8];
- unsigned char f_rss[4];
- unsigned char f_issBase[4];
- unsigned char f_isymBase[4];
- unsigned char f_csym[4];
- unsigned char f_ilineBase[4];
- unsigned char f_cline[4];
- unsigned char f_ioptBase[4];
- unsigned char f_copt[4];
- unsigned char f_ipdFirst[4];
- unsigned char f_cpd[4];
- unsigned char f_iauxBase[4];
- unsigned char f_caux[4];
- unsigned char f_rfdBase[4];
- unsigned char f_crfd[4];
- unsigned char f_bits1[1];
- unsigned char f_bits2[3];
- unsigned char f_padding[4];
-};
-
-#define FDR_BITS1_LANG_BIG 0xF8
-#define FDR_BITS1_LANG_SH_BIG 3
-#define FDR_BITS1_LANG_LITTLE 0x1F
-#define FDR_BITS1_LANG_SH_LITTLE 0
-
-#define FDR_BITS1_FMERGE_BIG 0x04
-#define FDR_BITS1_FMERGE_LITTLE 0x20
-
-#define FDR_BITS1_FREADIN_BIG 0x02
-#define FDR_BITS1_FREADIN_LITTLE 0x40
-
-#define FDR_BITS1_FBIGENDIAN_BIG 0x01
-#define FDR_BITS1_FBIGENDIAN_LITTLE 0x80
-
-#define FDR_BITS2_GLEVEL_BIG 0xC0
-#define FDR_BITS2_GLEVEL_SH_BIG 6
-#define FDR_BITS2_GLEVEL_LITTLE 0x03
-#define FDR_BITS2_GLEVEL_SH_LITTLE 0
-
-/* We ignore the `reserved' field in bits2. */
-
-/* Procedure descriptor external record */
-
-struct pdr_ext {
- unsigned char p_adr[8];
- unsigned char p_cbLineOffset[8];
- unsigned char p_isym[4];
- unsigned char p_iline[4];
- unsigned char p_regmask[4];
- unsigned char p_regoffset[4];
- unsigned char p_iopt[4];
- unsigned char p_fregmask[4];
- unsigned char p_fregoffset[4];
- unsigned char p_frameoffset[4];
- unsigned char p_lnLow[4];
- unsigned char p_lnHigh[4];
- unsigned char p_gp_prologue[1];
- unsigned char p_bits1[1];
- unsigned char p_bits2[1];
- unsigned char p_localoff[1];
- unsigned char p_framereg[2];
- unsigned char p_pcreg[2];
-};
-
-#define PDR_BITS1_GP_USED_BIG 0x80
-#define PDR_BITS1_REG_FRAME_BIG 0x40
-#define PDR_BITS1_PROF_BIG 0x20
-#define PDR_BITS1_RESERVED_BIG 0x1f
-#define PDR_BITS1_RESERVED_SH_LEFT_BIG 8
-#define PDR_BITS2_RESERVED_BIG 0xff
-#define PDR_BITS2_RESERVED_SH_BIG 0
-
-#define PDR_BITS1_GP_USED_LITTLE 0x01
-#define PDR_BITS1_REG_FRAME_LITTLE 0x02
-#define PDR_BITS1_PROF_LITTLE 0x04
-#define PDR_BITS1_RESERVED_LITTLE 0xf8
-#define PDR_BITS1_RESERVED_SH_LITTLE 3
-#define PDR_BITS2_RESERVED_LITTLE 0xff
-#define PDR_BITS2_RESERVED_SH_LEFT_LITTLE 5
-
-/* Line numbers */
-
-struct line_ext {
- unsigned char l_line[4];
-};
-
-/* Symbol external record */
-
-struct sym_ext {
- unsigned char s_value[8];
- unsigned char s_iss[4];
- unsigned char s_bits1[1];
- unsigned char s_bits2[1];
- unsigned char s_bits3[1];
- unsigned char s_bits4[1];
-};
-
-#define SYM_BITS1_ST_BIG 0xFC
-#define SYM_BITS1_ST_SH_BIG 2
-#define SYM_BITS1_ST_LITTLE 0x3F
-#define SYM_BITS1_ST_SH_LITTLE 0
-
-#define SYM_BITS1_SC_BIG 0x03
-#define SYM_BITS1_SC_SH_LEFT_BIG 3
-#define SYM_BITS1_SC_LITTLE 0xC0
-#define SYM_BITS1_SC_SH_LITTLE 6
-
-#define SYM_BITS2_SC_BIG 0xE0
-#define SYM_BITS2_SC_SH_BIG 5
-#define SYM_BITS2_SC_LITTLE 0x07
-#define SYM_BITS2_SC_SH_LEFT_LITTLE 2
-
-#define SYM_BITS2_RESERVED_BIG 0x10
-#define SYM_BITS2_RESERVED_LITTLE 0x08
-
-#define SYM_BITS2_INDEX_BIG 0x0F
-#define SYM_BITS2_INDEX_SH_LEFT_BIG 16
-#define SYM_BITS2_INDEX_LITTLE 0xF0
-#define SYM_BITS2_INDEX_SH_LITTLE 4
-
-#define SYM_BITS3_INDEX_SH_LEFT_BIG 8
-#define SYM_BITS3_INDEX_SH_LEFT_LITTLE 4
-
-#define SYM_BITS4_INDEX_SH_LEFT_BIG 0
-#define SYM_BITS4_INDEX_SH_LEFT_LITTLE 12
-
-/* External symbol external record */
-
-struct ext_ext {
- struct sym_ext es_asym;
- unsigned char es_bits1[1];
- unsigned char es_bits2[3];
- unsigned char es_ifd[4];
-};
-
-#define EXT_BITS1_JMPTBL_BIG 0x80
-#define EXT_BITS1_JMPTBL_LITTLE 0x01
-
-#define EXT_BITS1_COBOL_MAIN_BIG 0x40
-#define EXT_BITS1_COBOL_MAIN_LITTLE 0x02
-
-#define EXT_BITS1_WEAKEXT_BIG 0x20
-#define EXT_BITS1_WEAKEXT_LITTLE 0x04
-
-/* Dense numbers external record */
-
-struct dnr_ext {
- unsigned char d_rfd[4];
- unsigned char d_index[4];
-};
-
-/* Relative file descriptor */
-
-struct rfd_ext {
- unsigned char rfd[4];
-};
-
-/* Optimizer symbol external record */
-
-struct opt_ext {
- unsigned char o_bits1[1];
- unsigned char o_bits2[1];
- unsigned char o_bits3[1];
- unsigned char o_bits4[1];
- struct rndx_ext o_rndx;
- unsigned char o_offset[4];
-};
-
-#define OPT_BITS2_VALUE_SH_LEFT_BIG 16
-#define OPT_BITS2_VALUE_SH_LEFT_LITTLE 0
-
-#define OPT_BITS3_VALUE_SH_LEFT_BIG 8
-#define OPT_BITS3_VALUE_SH_LEFT_LITTLE 8
-
-#define OPT_BITS4_VALUE_SH_LEFT_BIG 0
-#define OPT_BITS4_VALUE_SH_LEFT_LITTLE 16
diff --git a/include/coff/apollo.h b/include/coff/apollo.h
deleted file mode 100644
index 1d4802f11..000000000
--- a/include/coff/apollo.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* coff information for Apollo M68K
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Motorola 68000/68008/68010/68020 */
-#define MC68MAGIC 0520
-#define MC68KWRMAGIC 0520 /* writeable text segments */
-#define MC68TVMAGIC 0521
-#define MC68KROMAGIC 0521 /* readonly shareable text segments */
-#define MC68KPGMAGIC 0522 /* demand paged text segments */
-#define M68MAGIC 0210
-#define M68TVMAGIC 0211
-
-/* Apollo 68000-based machines have a different magic number. This comes
- * from /usr/include/apollo/filehdr.h
- */
-#define APOLLOM68KMAGIC 0627
-
-#define OMAGIC M68MAGIC
-#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
- ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) && \
- ((x).f_magic!=APOLLOM68KMAGIC) )
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct
-{
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
- char o_sri[4]; /* Apollo specific - .sri data pointer */
- char o_inlib[4]; /* Apollo specific - .inlib data pointer */
- char vid[8]; /* Apollo specific - 64 bit version ID */
-}
-AOUTHDR;
-
-#define APOLLO_COFF_VERSION_NUMBER 1 /* the value of the aouthdr magic */
-#define AOUTHDRSZ 44
-#define AOUTSZ 44
-
-/* Apollo allowa for larger section names by allowing
- them to be in the string table. */
-
-/* If s_zeores is all zeroes, s_offset gives the real
- location of the name in the string table. */
-
-#define s_zeroes section_name.s_name
-#define s_offset (section_name.s_name+4)
-
-/* More names of "special" sections. */
-#define _TV ".tv"
-#define _INIT ".init"
-#define _FINI ".fini"
-#define _LINES ".lines"
-#define _BLOCKS ".blocks"
-#define _SRI ".sri" /* Static Resource Information (systype,
- et al.) */
-#define _MIR ".mir" /* Module Information Records */
-#define _APTV ".aptv" /* Apollo-style transfer vectors. */
-#define _INLIB ".inlib" /* Shared Library information */
-#define _RWDI ".rwdi" /* Read/write data initialization directives for
- compressed sections */
-#define _UNWIND ".unwind" /* Stack unwind information */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-#ifdef M68K_COFF_OFFSET
- char r_offset[4];
-#endif
-
-};
-
-#define RELOC struct external_reloc
-
-#ifdef M68K_COFF_OFFSET
-#define RELSZ 14
-#else
-#define RELSZ 10
-#endif
-
-/* Apollo specific STYP flags */
-
-#define STYP_RELOCATED_NOT_LOADED 0x00010000 /* Section is relocated normally during linking, but need
- not be loaded during program execution */
-#define STYP_DEBUG 0x00020000 /* debug section */
-#define STYP_OVERLAY 0x00040000 /* Section is overlayed */
-#define STYP_INSTRUCTION 0x00200000 /* Section contains executable code */
-
-#define STYP_ZERO 0x00800000 /* Section is initialized to zero */
-#define STYP_INSTALLED 0x02000000 /* Section should be installable in KGT */
-#define STYP_LOOK_INSTALLED 0x04000000 /* Look for section in KGT */
-#define STYP_SECALIGN1 0x08000000 /* Specially aligned section */
-#define STYP_SECALIGN2 0x10000000 /* " " " */
-#define STYP_COMPRESSED 0x20000000 /* No section data per se (s_scnptr = 0), but there are
- initialization directives for it in .rwdi section
- (used in conjunction with STYP_BSS) */
diff --git a/include/coff/arm.h b/include/coff/arm.h
deleted file mode 100644
index 9c3400539..000000000
--- a/include/coff/arm.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* ARM COFF support for BFD.
- Copyright 1998, 1999, 2000, 2002, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define COFFARM 1
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_INTERWORK file supports switching between ARM and Thumb instruction sets
- F_INTERWORK_SET the F_INTERWORK bit is valid
- F_APCS_FLOAT code passes float arguments in float registers
- F_PIC code is reentrant/position-independent
- F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
- F_APCS_26 file uses 26 bit ARM Procedure Calling Standard
- F_APCS_SET the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
- F_SOFT_FLOAT code does not use floating point instructions. */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-#define F_INTERWORK (0x0010)
-#define F_INTERWORK_SET (0x0020)
-#define F_APCS_FLOAT (0x0040)
-#undef F_AR16WR
-#define F_PIC (0x0080)
-#define F_AR32WR (0x0100)
-#define F_APCS_26 (0x0400)
-#define F_APCS_SET (0x0800)
-#define F_SOFT_FLOAT (0x2000)
-#define F_VFP_FLOAT (0x4000)
-
-/* Bits stored in flags field of the internal_f structure */
-
-#define F_INTERWORK (0x0010)
-#define F_APCS_FLOAT (0x0040)
-#define F_PIC (0x0080)
-#define F_APCS26 (0x1000)
-#define F_ARM_ARCHITECTURE_MASK (0x4000+0x0800+0x0400)
-#define F_ARM_2 (0x0400)
-#define F_ARM_2a (0x0800)
-#define F_ARM_3 (0x0c00)
-#define F_ARM_3M (0x4000)
-#define F_ARM_4 (0x4400)
-#define F_ARM_4T (0x4800)
-#define F_ARM_5 (0x4c00)
-
-/*
- ARMMAGIC ought to encoded the procesor type,
- but it is too late to change it now, instead
- the flags field of the internal_f structure
- is used as shown above.
-
- XXX - NC 5/6/97. */
-
-#define ARMMAGIC 0xa00 /* I just made this up */
-
-#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC))
-
-#define ARMPEMAGIC 0x1c0
-#define THUMBPEMAGIC 0x1c2
-
-#undef ARMBADMAG
-#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC))
-
-#define OMAGIC 0404 /* object files, eg as output */
-#define ZMAGIC 0413 /* demand load format, eg normal ld output */
-#define STMAGIC 0401 /* target shlib */
-#define SHMAGIC 0443 /* host shlib */
-
-/* define some NT default values */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/* We use the .rdata section to hold read only data. */
-#define _LIT ".rdata"
-
-/********************** RELOCATION DIRECTIVES **********************/
-#ifdef ARM_WINCE
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-#else
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
- char r_offset[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-#endif
-
-#define ARM_NOTE_SECTION ".note"
diff --git a/include/coff/aux-coff.h b/include/coff/aux-coff.h
deleted file mode 100644
index de7979a6a..000000000
--- a/include/coff/aux-coff.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Modifications of internal.h and m68k.h needed by A/UX
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- Suggested by Ian Lance Taylor <ian@cygnus.com> */
-
-#ifndef GNU_COFF_AUX_H
-#define GNU_COFF_AUX_H 1
-
-#include "coff/internal.h"
-#include "coff/m68k.h"
-
-/* Section contains 64-byte padded pathnames of shared libraries */
-#undef STYP_LIB
-#define STYP_LIB 0x200
-
-/* Section contains shared library initialization code */
-#undef STYP_INIT
-#define STYP_INIT 0x400
-
-/* Section contains .ident information */
-#undef STYP_IDENT
-#define STYP_IDENT 0x800
-
-/* Section types used by bfd and gas not defined (directly) by A/UX */
-#undef STYP_OVER
-#define STYP_OVER 0
-#undef STYP_INFO
-#define STYP_INFO STYP_IDENT
-
-/* Traditional name of the section tagged with STYP_LIB */
-#define _LIB ".lib"
-
-#endif /* GNU_COFF_AUX_H */
diff --git a/include/coff/ecoff.h b/include/coff/ecoff.h
deleted file mode 100644
index a7991a998..000000000
--- a/include/coff/ecoff.h
+++ /dev/null
@@ -1,411 +0,0 @@
-/* Generic ECOFF support.
- This does not include symbol information, found in sym.h and
- symconst.h.
-
- Copyright 2001, 2002, 2003, 2004, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef ECOFF_H
-#define ECOFF_H
-
-/* Mips magic numbers used in filehdr. MIPS_MAGIC_LITTLE is used on
- little endian machines. MIPS_MAGIC_BIG is used on big endian
- machines. Where is MIPS_MAGIC_1 from? */
-#define MIPS_MAGIC_1 0x0180
-#define MIPS_MAGIC_LITTLE 0x0162
-#define MIPS_MAGIC_BIG 0x0160
-
-/* These are the magic numbers used for MIPS code compiled at ISA
- level 2. */
-#define MIPS_MAGIC_LITTLE2 0x0166
-#define MIPS_MAGIC_BIG2 0x0163
-
-/* These are the magic numbers used for MIPS code compiled at ISA
- level 3. */
-#define MIPS_MAGIC_LITTLE3 0x142
-#define MIPS_MAGIC_BIG3 0x140
-
-/* Alpha magic numbers used in filehdr. */
-#define ALPHA_MAGIC 0x183
-#define ALPHA_MAGIC_BSD 0x185
-/* A compressed version of an ALPHA_MAGIC file created by DEC's tools. */
-#define ALPHA_MAGIC_COMPRESSED 0x188
-
-/* Magic numbers used in a.out header. */
-#define ECOFF_AOUT_OMAGIC 0407 /* not demand paged (ld -N). */
-#define ECOFF_AOUT_ZMAGIC 0413 /* demand load format, eg normal ld output */
-
-/* Names of special sections. */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _RDATA ".rdata"
-#define _SDATA ".sdata"
-#define _SBSS ".sbss"
-#define _LITA ".lita"
-#define _LIT4 ".lit4"
-#define _LIT8 ".lit8"
-#define _LIB ".lib"
-#define _INIT ".init"
-#define _FINI ".fini"
-#define _PDATA ".pdata"
-#define _XDATA ".xdata"
-#define _GOT ".got"
-#define _HASH ".hash"
-#define _DYNSYM ".dynsym"
-#define _DYNSTR ".dynstr"
-#define _RELDYN ".rel.dyn"
-#define _CONFLIC ".conflic"
-#define _COMMENT ".comment"
-#define _LIBLIST ".liblist"
-#define _DYNAMIC ".dynamic"
-#define _RCONST ".rconst"
-
-/* ECOFF uses some additional section flags. */
-#define STYP_RDATA 0x100
-#define STYP_SDATA 0x200
-#define STYP_SBSS 0x400
-#define STYP_GOT 0x1000
-#define STYP_DYNAMIC 0x2000
-#define STYP_DYNSYM 0x4000
-#define STYP_RELDYN 0x8000
-#define STYP_DYNSTR 0x10000
-#define STYP_HASH 0x20000
-#define STYP_LIBLIST 0x40000
-#define STYP_CONFLIC 0x100000
-#define STYP_ECOFF_FINI 0x1000000
-#define STYP_EXTENDESC 0x2000000 /* 0x02FFF000 bits => scn type, rest clr */
-#define STYP_LITA 0x4000000
-#define STYP_LIT8 0x8000000
-#define STYP_LIT4 0x10000000
-#define STYP_ECOFF_LIB 0x40000000
-#define STYP_ECOFF_INIT 0x80000000
-#define STYP_OTHER_LOAD (STYP_ECOFF_INIT | STYP_ECOFF_FINI)
-
-/* extended section types */
-#define STYP_COMMENT 0x2100000
-#define STYP_RCONST 0x2200000
-#define STYP_XDATA 0x2400000
-#define STYP_PDATA 0x2800000
-
-/* The linker needs a section to hold small common variables while
- linking. There is no convenient way to create it when the linker
- needs it, so we always create one for each BFD. We then avoid
- writing it out. */
-#define SCOMMON ".scommon"
-
-/* If the extern bit in a reloc is 1, then r_symndx is an index into
- the external symbol table. If the extern bit is 0, then r_symndx
- indicates a section, and is one of the following values. */
-#define RELOC_SECTION_NONE 0
-#define RELOC_SECTION_TEXT 1
-#define RELOC_SECTION_RDATA 2
-#define RELOC_SECTION_DATA 3
-#define RELOC_SECTION_SDATA 4
-#define RELOC_SECTION_SBSS 5
-#define RELOC_SECTION_BSS 6
-#define RELOC_SECTION_INIT 7
-#define RELOC_SECTION_LIT8 8
-#define RELOC_SECTION_LIT4 9
-#define RELOC_SECTION_XDATA 10
-#define RELOC_SECTION_PDATA 11
-#define RELOC_SECTION_FINI 12
-#define RELOC_SECTION_LITA 13
-#define RELOC_SECTION_ABS 14
-#define RELOC_SECTION_RCONST 15
-
-#define NUM_RELOC_SECTIONS 16
-
-/********************** STABS **********************/
-
-/* gcc uses mips-tfile to output type information in special stabs
- entries. These must match the corresponding definition in
- gcc/config/mips.h. At some point, these should probably go into a
- shared include file, but currently gcc and gdb do not share any
- directories. */
-#define CODE_MASK 0x8F300
-#define ECOFF_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK)
-#define ECOFF_MARK_STAB(code) ((code)+CODE_MASK)
-#define ECOFF_UNMARK_STAB(code) ((code)-CODE_MASK)
-#define STABS_SYMBOL "@stabs"
-
-/********************** COFF **********************/
-
-/* gcc also uses mips-tfile to output COFF debugging information.
- These are the values it uses when outputting the .type directive.
- These should also be in a shared include file. */
-#define N_BTMASK (017)
-#define N_TMASK (060)
-#define N_BTSHFT (4)
-#define N_TSHIFT (2)
-
-/********************** AUX **********************/
-
-/* The auxiliary type information is the same on all known ECOFF
- targets. I can't see any reason that it would ever change, so I am
- going to gamble and define the external structures here, in the
- target independent ECOFF header file. The internal forms are
- defined in coff/sym.h, which was originally donated by MIPS
- Computer Systems. */
-
-/* Type information external record */
-
-struct tir_ext {
- unsigned char t_bits1[1];
- unsigned char t_tq45[1];
- unsigned char t_tq01[1];
- unsigned char t_tq23[1];
-};
-
-#define TIR_BITS1_FBITFIELD_BIG ((unsigned int) 0x80)
-#define TIR_BITS1_FBITFIELD_LITTLE ((unsigned int) 0x01)
-
-#define TIR_BITS1_CONTINUED_BIG ((unsigned int) 0x40)
-#define TIR_BITS1_CONTINUED_LITTLE ((unsigned int) 0x02)
-
-#define TIR_BITS1_BT_BIG ((unsigned int) 0x3F)
-#define TIR_BITS1_BT_SH_BIG 0
-#define TIR_BITS1_BT_LITTLE ((unsigned int) 0xFC)
-#define TIR_BITS1_BT_SH_LITTLE 2
-
-#define TIR_BITS_TQ4_BIG ((unsigned int) 0xF0)
-#define TIR_BITS_TQ4_SH_BIG 4
-#define TIR_BITS_TQ5_BIG ((unsigned int) 0x0F)
-#define TIR_BITS_TQ5_SH_BIG 0
-#define TIR_BITS_TQ4_LITTLE ((unsigned int) 0x0F)
-#define TIR_BITS_TQ4_SH_LITTLE 0
-#define TIR_BITS_TQ5_LITTLE ((unsigned int) 0xF0)
-#define TIR_BITS_TQ5_SH_LITTLE 4
-
-#define TIR_BITS_TQ0_BIG ((unsigned int) 0xF0)
-#define TIR_BITS_TQ0_SH_BIG 4
-#define TIR_BITS_TQ1_BIG ((unsigned int) 0x0F)
-#define TIR_BITS_TQ1_SH_BIG 0
-#define TIR_BITS_TQ0_LITTLE ((unsigned int) 0x0F)
-#define TIR_BITS_TQ0_SH_LITTLE 0
-#define TIR_BITS_TQ1_LITTLE ((unsigned int) 0xF0)
-#define TIR_BITS_TQ1_SH_LITTLE 4
-
-#define TIR_BITS_TQ2_BIG ((unsigned int) 0xF0)
-#define TIR_BITS_TQ2_SH_BIG 4
-#define TIR_BITS_TQ3_BIG ((unsigned int) 0x0F)
-#define TIR_BITS_TQ3_SH_BIG 0
-#define TIR_BITS_TQ2_LITTLE ((unsigned int) 0x0F)
-#define TIR_BITS_TQ2_SH_LITTLE 0
-#define TIR_BITS_TQ3_LITTLE ((unsigned int) 0xF0)
-#define TIR_BITS_TQ3_SH_LITTLE 4
-
-/* Relative symbol external record */
-
-struct rndx_ext {
- unsigned char r_bits[4];
-};
-
-#define RNDX_BITS0_RFD_SH_LEFT_BIG 4
-#define RNDX_BITS1_RFD_BIG ((unsigned int) 0xF0)
-#define RNDX_BITS1_RFD_SH_BIG 4
-
-#define RNDX_BITS0_RFD_SH_LEFT_LITTLE 0
-#define RNDX_BITS1_RFD_LITTLE ((unsigned int) 0x0F)
-#define RNDX_BITS1_RFD_SH_LEFT_LITTLE 8
-
-#define RNDX_BITS1_INDEX_BIG ((unsigned int) 0x0F)
-#define RNDX_BITS1_INDEX_SH_LEFT_BIG 16
-#define RNDX_BITS2_INDEX_SH_LEFT_BIG 8
-#define RNDX_BITS3_INDEX_SH_LEFT_BIG 0
-
-#define RNDX_BITS1_INDEX_LITTLE ((unsigned int) 0xF0)
-#define RNDX_BITS1_INDEX_SH_LITTLE 4
-#define RNDX_BITS2_INDEX_SH_LEFT_LITTLE 4
-#define RNDX_BITS3_INDEX_SH_LEFT_LITTLE 12
-
-/* Auxiliary symbol information external record */
-
-union aux_ext {
- struct tir_ext a_ti;
- struct rndx_ext a_rndx;
- unsigned char a_dnLow[4];
- unsigned char a_dnHigh[4];
- unsigned char a_isym[4];
- unsigned char a_iss[4];
- unsigned char a_width[4];
- unsigned char a_count[4];
-};
-
-#define AUX_GET_ANY(bigend, ax, field) \
- ((bigend) ? bfd_getb32 ((ax)->field) : bfd_getl32 ((ax)->field))
-
-#define AUX_GET_DNLOW(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnLow)
-#define AUX_GET_DNHIGH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_dnHigh)
-#define AUX_GET_ISYM(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_isym)
-#define AUX_GET_ISS(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_iss)
-#define AUX_GET_WIDTH(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_width)
-#define AUX_GET_COUNT(bigend, ax) AUX_GET_ANY ((bigend), (ax), a_count)
-
-#define AUX_PUT_ANY(bigend, val, ax, field) \
- ((bigend) \
- ? (bfd_putb32 ((bfd_vma) (val), (ax)->field), 0) \
- : (bfd_putl32 ((bfd_vma) (val), (ax)->field), 0))
-
-#define AUX_PUT_DNLOW(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_dnLow)
-#define AUX_PUT_DNHIGH(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_dnHigh)
-#define AUX_PUT_ISYM(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_isym)
-#define AUX_PUT_ISS(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_iss)
-#define AUX_PUT_WIDTH(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_width)
-#define AUX_PUT_COUNT(bigend, val, ax) \
- AUX_PUT_ANY ((bigend), (val), (ax), a_count)
-
-/********************** SYMBOLS **********************/
-
-/* For efficiency, gdb deals directly with the unswapped symbolic
- information (that way it only takes the time to swap information
- that it really needs to read). gdb originally retrieved the
- information directly from the BFD backend information, but that
- strategy, besides being sort of ugly, does not work for MIPS ELF,
- which also uses ECOFF debugging information. This structure holds
- pointers to the (mostly) unswapped symbolic information. */
-
-struct ecoff_debug_info
-{
- /* The swapped ECOFF symbolic header. */
- HDRR symbolic_header;
-
- /* Pointers to the unswapped symbolic information. Note that the
- pointers to external structures point to different sorts of
- information on different ECOFF targets. The ecoff_debug_swap
- structure provides the sizes of the structures and the functions
- needed to swap the information in and out. These pointers are
- all pointers to arrays, not single structures. They will be NULL
- if there are no instances of the relevant structure. These
- fields are also used by the assembler to output ECOFF debugging
- information. */
- unsigned char *line;
- 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;
- 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;
- 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
- external symbols. It is NULL if no mapping is required. */
- RFDT *ifdmap;
-
- /* The swapped FDR information. Currently this is never NULL, but
- code using this structure should probably double-check in case
- this changes in the future. This is a pointer to an array, not a
- single structure. */
- FDR *fdr;
-};
-
-/* These structures are used by the ECOFF find_nearest_line function. */
-
-struct ecoff_fdrtab_entry
-{
- /* Base address in .text of this FDR. */
- bfd_vma base_addr;
- FDR *fdr;
-};
-
-struct ecoff_find_line
-{
- /* Allocated memory to hold function and file names. */
- char *find_buffer;
-
- /* FDR table, sorted by address: */
- long fdrtab_len;
- struct ecoff_fdrtab_entry *fdrtab;
-
- /* Cache entry for most recently found line information. The sect
- field is NULL if this cache does not contain valid information. */
- struct
- {
- asection *sect;
- bfd_vma start;
- bfd_vma stop;
- const char *filename;
- const char *functionname;
- unsigned int line_num;
- } cache;
-};
-
-/********************** SWAPPING **********************/
-
-/* The generic ECOFF code needs to be able to swap debugging
- information in and out in the specific format used by a particular
- ECOFF implementation. This structure provides the information
- needed to do this. */
-
-struct ecoff_debug_swap
-{
- /* Symbol table magic number. */
- int sym_magic;
- /* Alignment of debugging information. E.g., 4. */
- bfd_size_type debug_align;
- /* Sizes of external symbolic information. */
- bfd_size_type external_hdr_size;
- bfd_size_type external_dnr_size;
- bfd_size_type external_pdr_size;
- bfd_size_type external_sym_size;
- bfd_size_type external_opt_size;
- bfd_size_type external_fdr_size;
- bfd_size_type external_rfd_size;
- bfd_size_type external_ext_size;
- /* Functions to swap in external symbolic data. */
- 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) (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) (bfd *, asection *, struct ecoff_debug_info *);
-};
-
-#endif /* ! defined (ECOFF_H) */
diff --git a/include/coff/external.h b/include/coff/external.h
deleted file mode 100644
index 4bf594d3d..000000000
--- a/include/coff/external.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/* external.h -- External COFF structures
-
- Copyright 2001, 2006, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef COFF_EXTERNAL_H
-#define COFF_EXTERNAL_H
-
-#ifndef DO_NOT_DEFINE_FILHDR
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
- {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- };
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 20
-#endif
-
-#ifndef DO_NOT_DEFINE_AOUTHDR
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
- {
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
- } ATTRIBUTE_PACKED
-AOUTHDR;
-
-#define AOUTHDRSZ 28
-#define AOUTSZ 28
-
-typedef struct external_aouthdr64
-{
- char magic[2]; /* Type of file. */
- char vstamp[2]; /* Version stamp. */
- char tsize[4]; /* Text size in bytes, padded to FW bdry*/
- char dsize[4]; /* Initialized data " ". */
- char bsize[4]; /* Uninitialized data " ". */
- char entry[4]; /* Entry pt. */
- char text_start[4]; /* Base of text used for this file. */
-}
-AOUTHDR64;
-#define AOUTHDRSZ64 24
-
-#endif /* not DO_NOT_DEFINE_AOUTHDR */
-
-#ifndef DO_NOT_DEFINE_SCNHDR
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
- {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries */
- char s_flags[4]; /* flags */
- };
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 40
-
-/* Names of "special" sections. */
-
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _COMMENT ".comment"
-#define _LIB ".lib"
-#endif /* not DO_NOT_DEFINE_SCNHDR */
-
-#ifndef DO_NOT_DEFINE_LINENO
-
-/********************** LINE NUMBERS **********************/
-
-#ifndef L_LNNO_SIZE
-#error L_LNNO_SIZE needs to be defined
-#endif
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- Line numbers are grouped on a per function basis; first entry in a function
- grouping will have l_lnno = 0 and in place of physical address will be the
- symbol table index of the function name. */
-struct external_lineno
-{
- union
- {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- } l_addr;
-
- char l_lnno[L_LNNO_SIZE]; /* line number */
-};
-
-#define LINENO struct external_lineno
-#define LINESZ (4 + L_LNNO_SIZE)
-
-#if L_LNNO_SIZE == 4
-#define GET_LINENO_LNNO(abfd, ext) H_GET_32 (abfd, (ext->l_lnno))
-#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno))
-#endif
-#if L_LNNO_SIZE == 2
-#define GET_LINENO_LNNO(abfd, ext) H_GET_16 (abfd, (ext->l_lnno))
-#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_16 (abfd, val, (ext->l_lnno))
-#endif
-
-#endif /* not DO_NOT_DEFINE_LINENO */
-
-#ifndef DO_NOT_DEFINE_SYMENT
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#ifndef E_FILNMLEN
-#define E_FILNMLEN 14
-#endif
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union
- {
- char e_name[E_SYMNMLEN];
-
- struct
- {
- char e_zeroes[4];
- char e_offset[4];
- } e;
- } e;
-
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
-} ATTRIBUTE_PACKED ;
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
-
-#ifndef N_BTMASK
-#define N_BTMASK 0xf
-#endif
-
-#ifndef N_TMASK
-#define N_TMASK 0x30
-#endif
-
-#ifndef N_BTSHFT
-#define N_BTSHFT 4
-#endif
-
-#ifndef N_TSHIFT
-#define N_TSHIFT 2
-#endif
-
-#endif /* not DO_NOT_DEFINE_SYMENT */
-
-#ifndef DO_NOT_DEFINE_AUXENT
-
-union external_auxent
-{
- struct
- {
- char x_tagndx[4]; /* str, un, or enum tag indx */
-
- union
- {
- struct
- {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
-
- char x_fsize[4]; /* size of function */
-
- } x_misc;
-
- union
- {
- struct /* if ISFCN, tag, or .bb */
- {
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
-
- struct /* if ISARY, up to 4 dimen. */
- {
- char x_dimen[E_DIMNUM][2];
- } x_ary;
-
- } x_fcnary;
-
- char x_tvndx[2]; /* tv index */
-
- } x_sym;
-
- union
- {
- char x_fname[E_FILNMLEN];
-
- struct
- {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
-
- } x_file;
-
- struct
- {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
-#ifdef INCLUDE_COMDAT_FIELDS_IN_AUXENT
- char x_checksum[4]; /* section COMDAT checksum */
- char x_associated[2]; /* COMDAT associated section index */
- char x_comdat[1]; /* COMDAT selection number */
-#endif
- } x_scn;
-
- struct
- {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-} ATTRIBUTE_PACKED ;
-
-#define AUXENT union external_auxent
-#define AUXESZ 18
-
-#define _ETEXT "etext"
-
-#endif /* not DO_NOT_DEFINE_AUXENT */
-
-#endif /* COFF_EXTERNAL_H */
diff --git a/include/coff/go32exe.h b/include/coff/go32exe.h
deleted file mode 100644
index a2ca6cd7e..000000000
--- a/include/coff/go32exe.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* COFF information for PC running go32.
-
- Copyright 2001, 2005, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-struct external_filehdr_go32_exe
- {
- char stub[GO32_STUBSIZE]; /* the stub to load the image */
- /* the standard COFF header */
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- };
-
-#undef FILHDR
-#define FILHDR struct external_filehdr_go32_exe
-#undef FILHSZ
-#define FILHSZ GO32_STUBSIZE+20
diff --git a/include/coff/h8300.h b/include/coff/h8300.h
deleted file mode 100644
index 4de6602ee..000000000
--- a/include/coff/h8300.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* coff information for Renesas H8/300 and H8/300-H
-
- Copyright 2001, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define H8300MAGIC 0x8300
-#define H8300HMAGIC 0x8301
-#define H8300SMAGIC 0x8302
-#define H8300HNMAGIC 0x8303
-#define H8300SNMAGIC 0x8304
-
-#define H8300BADMAG(x) (((x).f_magic != H8300MAGIC))
-#define H8300HBADMAG(x) (((x).f_magic != H8300HMAGIC))
-#define H8300SBADMAG(x) (((x).f_magic != H8300SMAGIC))
-#define H8300HNBADMAG(x) (((x).f_magic != H8300HNMAGIC))
-#define H8300SNBADMAG(x) (((x).f_magic != H8300SNMAGIC))
-
-/* Relocation directives. */
-
-/* The external reloc has an offset field, because some of the reloc
- types on the h8 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/h8500.h b/include/coff/h8500.h
deleted file mode 100644
index 56097f86e..000000000
--- a/include/coff/h8500.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* coff information for Renesas H8/500
-
- Copyright 2001, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define H8500MAGIC 0x8500
-
-#define H8500BADMAG(x) ((0xffff && ((x).f_magic) != H8500MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the h8 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/i386.h b/include/coff/i386.h
deleted file mode 100644
index 61e723ab7..000000000
--- a/include/coff/i386.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* coff information for Intel 386/486.
-
- Copyright 2001, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define COFF_PAGE_SIZE 0x1000
-
-/* Bits for f_flags:
- F_RELFLG Relocation info stripped from file
- F_EXEC File is executable (no unresolved external references)
- F_LNNO Line numbers stripped from file
- F_LSYMS Local symbols stripped from file
- F_AR32WR File has byte ordering of an AR32WR machine (e.g. vax). */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-
-#define I386MAGIC 0x14c
-#define I386PTXMAGIC 0x154
-#define I386AIXMAGIC 0x175
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC 0415
-
-#define I386BADMAG(x) ( ((x).f_magic != I386MAGIC) \
- && (x).f_magic != I386AIXMAGIC \
- && (x).f_magic != I386PTXMAGIC \
- && (x).f_magic != LYNXCOFFMAGIC)
-
-#define OMAGIC 0404 /* Object files, eg as output. */
-#define ZMAGIC 0413 /* Demand load format, eg normal ld output. */
-#define STMAGIC 0401 /* Target shlib. */
-#define SHMAGIC 0443 /* Host shlib. */
-
-/* Define some NT default values. */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/* Relocation directives. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/i860.h b/include/coff/i860.h
deleted file mode 100644
index 0767de4fe..000000000
--- a/include/coff/i860.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* COFF information for the Intel i860.
-
- Copyright 2001, 2003, 2010, 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file was hacked from i386.h [dolan@ssd.intel.com] */
-
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-
-#define I860MAGIC 0x14d
-
-#define I860BADMAG(x) ((x).f_magic != I860MAGIC)
-
-#undef AOUTSZ
-#define AOUTSZ 36
-
-/* FIXME: What are the a.out magic numbers? */
-
-#define _ETEXT "etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-/* The relocation directory entry types.
- PAIR : The low half that follows relates to the preceding HIGH[ADJ].
- HIGH : The high half of a 32-bit constant.
- LOWn : The low half, insn bits 15..(n-1), 2^n-byte aligned.
- SPLITn : The low half, insn bits 20..16 and 10..(n-1), 2^n-byte aligned.
- HIGHADJ: Similar to HIGH, but with adjustment.
- BRADDR : 26-bit branch displacement.
-
- Note: The Intel assembler manual lists LOW4 as one of the
- relocation types, but it appears to be useless for the i860.
- We will recognize it anyway, just in case it actually appears in
- any object files. */
-
-enum {
- COFF860_R_PAIR = 0x1c,
- COFF860_R_HIGH = 0x1e,
- COFF860_R_LOW0 = 0x1f,
- COFF860_R_LOW1 = 0x20,
- COFF860_R_LOW2 = 0x21,
- COFF860_R_LOW3 = 0x22,
- COFF860_R_LOW4 = 0x23,
- COFF860_R_SPLIT0 = 0x24,
- COFF860_R_SPLIT1 = 0x25,
- COFF860_R_SPLIT2 = 0x26,
- COFF860_R_HIGHADJ = 0x27,
- COFF860_R_BRADDR = 0x28
-};
-
diff --git a/include/coff/i960.h b/include/coff/i960.h
deleted file mode 100644
index 2bf42adcf..000000000
--- a/include/coff/i960.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/* coff information for 80960. Origins: Intel corp, natch.
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* NOTE: Tagentries (cf TAGBITS) are no longer used by the 960 */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
-};
-
-#define OMAGIC (0407) /* old impure format. data immediately
- follows text. both sections are rw. */
-#define NMAGIC (0410) /* split i&d, read-only text */
-
-/*
-* Intel 80960 (I960) processor flags.
-* F_I960TYPE == mask for processor type field.
-*/
-
-#define F_I960TYPE (0xf000)
-#define F_I960CORE (0x1000)
-#define F_I960KB (0x2000)
-#define F_I960SB (0x2000)
-#define F_I960MC (0x3000)
-#define F_I960XA (0x4000)
-#define F_I960CA (0x5000)
-#define F_I960KA (0x6000)
-#define F_I960SA (0x6000)
-#define F_I960JX (0x7000)
-#define F_I960HX (0x8000)
-
-
-/** i80960 Magic Numbers
-*/
-
-#define I960ROMAGIC (0x160) /* read-only text segments */
-#define I960RWMAGIC (0x161) /* read-write text segments */
-
-#define I960BADMAG(x) (((x).f_magic!=I960ROMAGIC) && ((x).f_magic!=I960RWMAGIC))
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 20
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct
-{
- unsigned long phys_addr;
- unsigned long bitarray;
-} TAGBITS;
-
-typedef struct
-{
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
- char tagentries[4]; /* number of tag entries to follow */
-}
-AOUTHDR;
-
-/* return a pointer to the tag bits array */
-
-#define TAGPTR(aout) ((TAGBITS *) (&(aout.tagentries)+1))
-
-/* compute size of a header */
-
-/*#define AOUTSZ(aout) (sizeof(AOUTHDR)+(aout.tagentries*sizeof(TAGBITS)))*/
-#define AOUTSZ 32
-#define AOUTHDRSZ 32
-
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries*/
- char s_flags[4]; /* flags */
- char s_align[4]; /* section alignment */
-};
-
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 44
-
-/*
- * names of "special" sections
- */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno
-{
- union
- {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- } l_addr;
-
- char l_lnno[2]; /* line number */
- char padding[2]; /* force alignment */
-};
-
-
-#define LINENO struct external_lineno
-#define LINESZ 8
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union
- {
- char e_name[E_SYMNMLEN];
-
- struct
- {
- char e_zeroes[4];
- char e_offset[4];
- } e;
- } e;
-
- char e_value[4];
- char e_scnum[2];
- char e_flags[2];
- char e_type[4];
- char e_sclass[1];
- char e_numaux[1];
- char pad2[2];
-};
-
-#define N_BTMASK (0x1f)
-#define N_TMASK (0x60)
-#define N_BTSHFT (5)
-#define N_TSHIFT (2)
-
-union external_auxent
-{
- struct
- {
- char x_tagndx[4]; /* str, un, or enum tag indx */
-
- union
- {
- struct
- {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
-
- char x_fsize[4]; /* size of function */
-
- } x_misc;
-
- union
- {
- struct /* if ISFCN, tag, or .bb */
- {
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
-
- struct /* if ISARY, up to 4 dimen. */
- {
- char x_dimen[E_DIMNUM][2];
- } x_ary;
-
- } x_fcnary;
-
- char x_tvndx[2]; /* tv index */
-
- } x_sym;
-
- union
- {
- char x_fname[E_FILNMLEN];
-
- struct
- {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
-
- } x_file;
-
- struct
- {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
-
- } x_scn;
-
- struct
- {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
-
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-
- /******************************************
- * I960-specific *2nd* aux. entry formats
- ******************************************/
- struct
- {
- /* This is a very old typo that keeps getting propagated. */
-#define x_stdindx x_stindx
- char x_stindx[4]; /* sys. table entry */
- } x_sc; /* system call entry */
-
- struct
- {
- char x_balntry[4]; /* BAL entry point */
- } x_bal; /* BAL-callable function */
-
- struct
- {
- char x_timestamp[4]; /* time stamp */
- char x_idstring[20]; /* producer identity string */
-
- } x_ident; /* Producer ident info */
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 24
-#define AUXENT union external_auxent
-#define AUXESZ 24
-
-# define _ETEXT "_etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
- char pad[2];
-};
-
-/* r_type values for the i960. */
-
-/* The i960 uses R_RELLONG, which is defined in internal.h as 0x11.
- It is an absolute 32 bit relocation. */
-
-#define R_IPRMED (0x19) /* 24-bit ip-relative relocation */
-#define R_OPTCALL (0x1b) /* 32-bit optimizable call (leafproc/sysproc) */
-#define R_OPTCALLX (0x1c) /* 64-bit optimizable call (leafproc/sysproc) */
-
-/* The following relocation types are defined use by relaxing linkers,
- which convert 32 bit calls (which require a 64 bit instruction)
- into 24 bit calls (which require a 32 bit instruction) when
- possible. It will be possible whenever the target of the call is
- within a 24 bit range of the call instruction.
-
- It is always safe to ignore these relocations. They only serve to
- mark points which the relaxing linker will have to consider. The
- assembler must ensure that the correct code is generated even if
- the relocations are ignored. In particular, this means that the
- R_IPR13 relocation may not appear with an external symbol. */
-
-#define R_IPR13 (0x1d) /* 13 bit ip-relative branch */
-#define R_ALIGN (0x1e) /* alignment marker. This has no
- associated symbol. Instead, the
- r_symndx field indicates the
- require alignment at this point in
- the file. It must be a power of 2. */
-
-#define RELOC struct external_reloc
-#define RELSZ 12
-
diff --git a/include/coff/ia64.h b/include/coff/ia64.h
deleted file mode 100644
index 2ee626863..000000000
--- a/include/coff/ia64.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* coff information for HP/Intel IA-64.
-
- Copyright 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define IA64MAGIC 0x200
-
-#define IA64BADMAG(x) (((x).f_magic != IA64MAGIC))
-
-/* Bits for f_flags:
- * F_RELFLG relocation info stripped from file
- * F_EXEC file is executable (no unresolved external references)
- * F_LNNO line numbers stripped from file
- * F_LSYMS local symbols stripped from file
- * F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
- */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-typedef struct
-{
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
-#ifndef BFD64
- char data_start[4]; /* base of data used for this file */
-#endif
-}
-AOUTHDR;
-
-#define PE32MAGIC 0x10b /* 32-bit image */
-#define PE32PMAGIC 0x20b /* 32-bit image inside 64-bit address space */
-
-#define PE32PBADMAG(x) (((x).f_magic != PE32PMAGIC))
-
-#define AOUTSZ 108
-#define AOUTHDRSZ 108
-
-#define OMAGIC 0404 /* object files, eg as output */
-#define ZMAGIC 0413 /* demand load format, eg normal ld output */
-#define STMAGIC 0401 /* target shlib */
-#define SHMAGIC 0443 /* host shlib */
-
-/* define some NT default values */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/internal.h b/include/coff/internal.h
deleted file mode 100644
index f52bfbb7b..000000000
--- a/include/coff/internal.h
+++ /dev/null
@@ -1,828 +0,0 @@
-/* Internal format of COFF object file data structures, for GNU BFD.
- This file is part of BFD, the Binary File Descriptor library.
-
- Copyright 1999, 2000, 2001, 2002, 2003, 2004. 2005, 2006, 2007, 2009,
- 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef GNU_COFF_INTERNAL_H
-#define GNU_COFF_INTERNAL_H 1
-
-/* First, make "signed char" work, even on old compilers. */
-#ifndef signed
-#ifndef __STDC__
-#define signed /**/
-#endif
-#endif
-
-/********************** FILE HEADER **********************/
-
-/* extra stuff in a PE header. */
-
-struct internal_extra_pe_filehdr
-{
- /* DOS header data follows for PE stuff */
- unsigned short e_magic; /* Magic number, 0x5a4d */
- unsigned short e_cblp; /* Bytes on last page of file, 0x90 */
- unsigned short e_cp; /* Pages in file, 0x3 */
- unsigned short e_crlc; /* Relocations, 0x0 */
- unsigned short e_cparhdr; /* Size of header in paragraphs, 0x4 */
- unsigned short e_minalloc; /* Minimum extra paragraphs needed, 0x0 */
- unsigned short e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */
- unsigned short e_ss; /* Initial (relative) SS value, 0x0 */
- unsigned short e_sp; /* Initial SP value, 0xb8 */
- unsigned short e_csum; /* Checksum, 0x0 */
- unsigned short e_ip; /* Initial IP value, 0x0 */
- unsigned short e_cs; /* Initial (relative) CS value, 0x0 */
- unsigned short e_lfarlc; /* File address of relocation table, 0x40 */
- unsigned short e_ovno; /* Overlay number, 0x0 */
- unsigned short e_res[4]; /* Reserved words, all 0x0 */
- unsigned short e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */
- unsigned short e_oeminfo; /* OEM information; e_oemid specific, 0x0 */
- unsigned short e_res2[10]; /* Reserved words, all 0x0 */
- bfd_vma e_lfanew; /* File address of new exe header, 0x80 */
- unsigned long dos_message[16]; /* text which always follows dos header */
- bfd_vma nt_signature; /* required NT signature, 0x4550 */
-};
-
-#define GO32_STUBSIZE 2048
-
-struct internal_filehdr
-{
- struct internal_extra_pe_filehdr pe;
-
- /* coff-stgo32 EXE stub header before BFD tdata has been allocated.
- Its data is kept in INTERNAL_FILEHDR.GO32STUB afterwards.
-
- F_GO32STUB is set iff go32stub contains a valid data. Artifical headers
- created in BFD have no pre-set go32stub. */
- char go32stub[GO32_STUBSIZE];
-
- /* Standard coff internal info. */
- unsigned short f_magic; /* magic number */
- unsigned short f_nscns; /* number of sections */
- long f_timdat; /* time & date stamp */
- bfd_vma f_symptr; /* file pointer to symtab */
- long f_nsyms; /* number of symtab entries */
- unsigned short f_opthdr; /* sizeof(optional hdr) */
- unsigned short f_flags; /* flags */
- unsigned short f_target_id; /* (TI COFF specific) */
-};
-
-
-/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_AR16WR file is 16-bit little-endian
- F_AR32WR file is 32-bit little-endian
- F_AR32W file is 32-bit big-endian
- F_DYNLOAD rs/6000 aix: dynamically loadable w/imports & exports
- F_SHROBJ rs/6000 aix: file is a shared object
- F_DLL PE format DLL
- F_GO32STUB Field go32stub contains valid data. */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-#define F_AR16WR (0x0080)
-#define F_AR32WR (0x0100)
-#define F_AR32W (0x0200)
-#define F_DYNLOAD (0x1000)
-#define F_SHROBJ (0x2000)
-#define F_DLL (0x2000)
-#define F_GO32STUB (0x4000)
-
-/* Extra structure which is used in the optional header. */
-typedef struct _IMAGE_DATA_DIRECTORY
-{
- bfd_vma VirtualAddress;
- long Size;
-} IMAGE_DATA_DIRECTORY;
-#define PE_EXPORT_TABLE 0
-#define PE_IMPORT_TABLE 1
-#define PE_RESOURCE_TABLE 2
-#define PE_EXCEPTION_TABLE 3
-#define PE_CERTIFICATE_TABLE 4
-#define PE_BASE_RELOCATION_TABLE 5
-#define PE_DEBUG_DATA 6
-#define PE_ARCHITECTURE 7
-#define PE_GLOBAL_PTR 8
-#define PE_TLS_TABLE 9
-#define PE_LOAD_CONFIG_TABLE 10
-#define PE_BOUND_IMPORT_TABLE 11
-#define PE_IMPORT_ADDRESS_TABLE 12
-#define PE_DELAY_IMPORT_DESCRIPTOR 13
-#define PE_CLR_RUNTIME_HEADER 14
-/* DataDirectory[15] is currently reserved, so no define. */
-#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
-
-/* Default image base for NT. */
-#define NT_EXE_IMAGE_BASE 0x400000
-#define NT_DLL_IMAGE_BASE 0x10000000
-
-/* Default image base for BeOS. */
-#define BEOS_EXE_IMAGE_BASE 0x80000000
-#define BEOS_DLL_IMAGE_BASE 0x10000000
-
-/* Extra stuff in a PE aouthdr */
-
-#define PE_DEF_SECTION_ALIGNMENT 0x1000
-#ifndef PE_DEF_FILE_ALIGNMENT
-# define PE_DEF_FILE_ALIGNMENT 0x200
-#endif
-
-struct internal_extra_pe_aouthdr
-{
- /* FIXME: The following entries are in AOUTHDR. But they aren't
- available internally in bfd. We add them here so that objdump
- can dump them. */
- /* The state of the image file */
- short Magic;
- /* Linker major version number */
- char MajorLinkerVersion;
- /* Linker minor version number */
- char MinorLinkerVersion;
- /* Total size of all code sections */
- long SizeOfCode;
- /* Total size of all initialized data sections */
- long SizeOfInitializedData;
- /* Total size of all uninitialized data sections */
- long SizeOfUninitializedData;
- /* Address of entry point relative to image base. */
- bfd_vma AddressOfEntryPoint;
- /* Address of the first code section relative to image base. */
- bfd_vma BaseOfCode;
- /* Address of the first data section relative to image base. */
- bfd_vma BaseOfData;
-
- /* PE stuff */
- bfd_vma ImageBase; /* address of specific location in memory that
- file is located, NT default 0x10000 */
-
- bfd_vma SectionAlignment; /* section alignment default 0x1000 */
- bfd_vma FileAlignment; /* file alignment default 0x200 */
- short MajorOperatingSystemVersion; /* minimum version of the operating */
- short MinorOperatingSystemVersion; /* system req'd for exe, default to 1*/
- short MajorImageVersion; /* user defineable field to store version of */
- short MinorImageVersion; /* exe or dll being created, default to 0 */
- short MajorSubsystemVersion; /* minimum subsystem version required to */
- short MinorSubsystemVersion; /* run exe; default to 3.1 */
- long Reserved1; /* seems to be 0 */
- long SizeOfImage; /* size of memory to allocate for prog */
- long SizeOfHeaders; /* size of PE header and section table */
- long CheckSum; /* set to 0 */
- short Subsystem;
-
- /* type of subsystem exe uses for user interface,
- possible values:
- 1 - NATIVE Doesn't require a subsystem
- 2 - WINDOWS_GUI runs in Windows GUI subsystem
- 3 - WINDOWS_CUI runs in Windows char sub. (console app)
- 5 - OS2_CUI runs in OS/2 character subsystem
- 7 - POSIX_CUI runs in Posix character subsystem */
- unsigned short DllCharacteristics; /* flags for DLL init */
- bfd_vma SizeOfStackReserve; /* amount of memory to reserve */
- bfd_vma SizeOfStackCommit; /* amount of memory initially committed for
- initial thread's stack, default is 0x1000 */
- bfd_vma SizeOfHeapReserve; /* amount of virtual memory to reserve and */
- bfd_vma SizeOfHeapCommit; /* commit, don't know what to defaut it to */
- long LoaderFlags; /* can probably set to 0 */
- long NumberOfRvaAndSizes; /* number of entries in next entry, 16 */
- IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
-};
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-struct internal_aouthdr
-{
- short magic; /* type of file */
- short vstamp; /* version stamp */
- bfd_vma tsize; /* text size in bytes, padded to FW bdry*/
- bfd_vma dsize; /* initialized data " " */
- bfd_vma bsize; /* uninitialized data " " */
- bfd_vma entry; /* entry pt. */
- bfd_vma text_start; /* base of text used for this file */
- bfd_vma data_start; /* base of data used for this file */
-
- /* i960 stuff */
- unsigned long tagentries; /* number of tag entries to follow */
-
- /* RS/6000 stuff */
- bfd_vma o_toc; /* address of TOC */
- short o_snentry; /* section number for entry point */
- short o_sntext; /* section number for text */
- short o_sndata; /* section number for data */
- short o_sntoc; /* section number for toc */
- short o_snloader; /* section number for loader section */
- short o_snbss; /* section number for bss */
- short o_algntext; /* max alignment for text */
- short o_algndata; /* max alignment for data */
- short o_modtype; /* Module type field, 1R,RE,RO */
- short o_cputype; /* Encoded CPU type */
- bfd_vma o_maxstack; /* max stack size allowed. */
- bfd_vma o_maxdata; /* max data size allowed. */
-
- /* ECOFF stuff */
- bfd_vma bss_start; /* Base of bss section. */
- bfd_vma gp_value; /* GP register value. */
- unsigned long gprmask; /* General registers used. */
- unsigned long cprmask[4]; /* Coprocessor registers used. */
- unsigned long fprmask; /* Floating pointer registers used. */
-
- /* Apollo stuff */
- long o_inlib; /* inlib data */
- long o_sri; /* Static Resource Information */
- long vid[2]; /* Version id */
-
- struct internal_extra_pe_aouthdr pe;
-};
-
-/********************** STORAGE CLASSES **********************/
-
-/* This used to be defined as -1, but now n_sclass is unsigned. */
-#define C_EFCN 0xff /* physical end of function */
-#define C_NULL 0
-#define C_AUTO 1 /* automatic variable */
-#define C_EXT 2 /* external symbol */
-#define C_STAT 3 /* static */
-#define C_REG 4 /* register variable */
-#define C_EXTDEF 5 /* external definition */
-#define C_LABEL 6 /* label */
-#define C_ULABEL 7 /* undefined label */
-#define C_MOS 8 /* member of structure */
-#define C_ARG 9 /* function argument */
-#define C_STRTAG 10 /* structure tag */
-#define C_MOU 11 /* member of union */
-#define C_UNTAG 12 /* union tag */
-#define C_TPDEF 13 /* type definition */
-#define C_USTATIC 14 /* undefined static */
-#define C_ENTAG 15 /* enumeration tag */
-#define C_MOE 16 /* member of enumeration */
-#define C_REGPARM 17 /* register parameter */
-#define C_FIELD 18 /* bit field */
-#define C_AUTOARG 19 /* auto argument */
-#define C_LASTENT 20 /* dummy entry (end of block) */
-#define C_BLOCK 100 /* ".bb" or ".eb" */
-#define C_FCN 101 /* ".bf" or ".ef" */
-#define C_EOS 102 /* end of structure */
-#define C_FILE 103 /* file name */
-#define C_LINE 104 /* line # reformatted as symbol table entry */
-#define C_ALIAS 105 /* duplicate tag */
-#define C_HIDDEN 106 /* ext symbol in dmert public lib */
-#define C_WEAKEXT 127 /* weak symbol -- GNU extension. */
-
-/* New storage classes for TI COFF */
-#define C_UEXT 19 /* Tentative external definition */
-#define C_STATLAB 20 /* Static load time label */
-#define C_EXTLAB 21 /* External load time label */
-#define C_SYSTEM 23 /* System Wide variable */
-
-/* New storage classes for WINDOWS_NT */
-#define C_SECTION 104 /* section name */
-#define C_NT_WEAK 105 /* weak external */
-
- /* New storage classes for 80960 */
-
-/* C_LEAFPROC is obsolete. Use C_LEAFEXT or C_LEAFSTAT */
-#define C_LEAFPROC 108 /* Leaf procedure, "call" via BAL */
-
-#define C_SCALL 107 /* Procedure reachable via system call */
-#define C_LEAFEXT 108 /* External leaf */
-#define C_LEAFSTAT 113 /* Static leaf */
-#define C_OPTVAR 109 /* Optimized variable */
-#define C_DEFINE 110 /* Preprocessor #define */
-#define C_PRAGMA 111 /* Advice to compiler or linker */
-#define C_SEGMENT 112 /* 80960 segment name */
-
- /* Storage classes for m88k */
-#define C_SHADOW 107 /* shadow symbol */
-#define C_VERSION 108 /* coff version symbol */
-
- /* New storage classes for RS/6000 */
-#define C_HIDEXT 107 /* Un-named external symbol */
-#define C_BINCL 108 /* Marks beginning of include file */
-#define C_EINCL 109 /* Marks ending of include file */
-#define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */
-
-#define C_NULL_VALUE 0x00de1e00 /* Value for a C_NULL deleted entry. */
-
-#if defined _AIX52 || defined AIX_WEAK_SUPPORT
-#undef C_WEAKEXT
-#define C_WEAKEXT C_AIX_WEAKEXT
-#endif
-
- /* storage classes for stab symbols for RS/6000 */
-#define C_GSYM (0x80)
-#define C_LSYM (0x81)
-#define C_PSYM (0x82)
-#define C_RSYM (0x83)
-#define C_RPSYM (0x84)
-#define C_STSYM (0x85)
-#define C_TCSYM (0x86)
-#define C_BCOMM (0x87)
-#define C_ECOML (0x88)
-#define C_ECOMM (0x89)
-#define C_DECL (0x8c)
-#define C_ENTRY (0x8d)
-#define C_FUN (0x8e)
-#define C_BSTAT (0x8f)
-#define C_ESTAT (0x90)
-
-/* Storage classes for Thumb symbols */
-#define C_THUMBEXT (128 + C_EXT) /* 130 */
-#define C_THUMBSTAT (128 + C_STAT) /* 131 */
-#define C_THUMBLABEL (128 + C_LABEL) /* 134 */
-#define C_THUMBEXTFUNC (C_THUMBEXT + 20) /* 150 */
-#define C_THUMBSTATFUNC (C_THUMBSTAT + 20) /* 151 */
-
-/* True if XCOFF symbols of class CLASS have auxillary csect information. */
-#define CSECT_SYM_P(CLASS) \
- ((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT || (CLASS) == C_HIDEXT)
-
-/********************** SECTION HEADER **********************/
-
-#define SCNNMLEN (8)
-
-struct internal_scnhdr
-{
- char s_name[SCNNMLEN]; /* section name */
-
- /* Physical address, aliased s_nlib.
- In the pei format, this field is the virtual section size
- (the size of the section after being loaded int memory),
- NOT the physical address. */
- bfd_vma s_paddr;
-
- bfd_vma s_vaddr; /* virtual address */
- bfd_vma s_size; /* section size */
- bfd_vma s_scnptr; /* file ptr to raw data for section */
- bfd_vma s_relptr; /* file ptr to relocation */
- bfd_vma s_lnnoptr; /* file ptr to line numbers */
- unsigned long s_nreloc; /* number of relocation entries */
- unsigned long s_nlnno; /* number of line number entries*/
- long s_flags; /* flags */
- long s_align; /* used on I960 */
- unsigned char s_page; /* TI COFF load page */
-};
-
-/* s_flags "type". */
-#define STYP_REG (0x0000) /* "regular": allocated, relocated, loaded */
-#define STYP_DSECT (0x0001) /* "dummy": relocated only*/
-#define STYP_NOLOAD (0x0002) /* "noload": allocated, relocated, not loaded */
-#define STYP_GROUP (0x0004) /* "grouped": formed of input sections */
-#define STYP_PAD (0x0008) /* "padding": not allocated, not relocated, loaded */
-#define STYP_COPY (0x0010) /* "copy": for decision function used by field update; not allocated, not relocated,
- loaded; reloc & lineno entries processed normally */
-#define STYP_TEXT (0x0020) /* section contains text only */
-#define S_SHRSEG (0x0020) /* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile
- will have the S_SHRSEG flag set by ogen, to inform dufr that updating 1 copy of the proc. will
- update all process invocations. */
-#define STYP_DATA (0x0040) /* section contains data only */
-#define STYP_BSS (0x0080) /* section contains bss only */
-#define S_NEWFCN (0x0100) /* In a minimal file or an update file, a new function (as compared with a replaced function) */
-#define STYP_INFO (0x0200) /* comment: not allocated not relocated, not loaded */
-#define STYP_OVER (0x0400) /* overlay: relocated not allocated or loaded */
-#define STYP_LIB (0x0800) /* for .lib: same as INFO */
-#define STYP_MERGE (0x2000) /* merge section -- combines with text, data or bss sections only */
-#define STYP_REVERSE_PAD (0x4000) /* section will be padded with no-op instructions
- wherever padding is necessary and there is a
- word of contiguous bytes beginning on a word
- boundary. */
-
-#define STYP_LIT 0x8020 /* Literal data (like STYP_TEXT) */
-
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- Line numbers are grouped on a per function basis; first entry in a function
- grouping will have l_lnno = 0 and in place of physical address will be the
- symbol table index of the function name. */
-
-struct internal_lineno
-{
- union
- {
- bfd_signed_vma l_symndx; /* function name symbol index, iff l_lnno == 0*/
- bfd_signed_vma l_paddr; /* (physical) address of line number */
- } l_addr;
- unsigned long l_lnno; /* line number */
-};
-
-/********************** SYMBOLS **********************/
-
-#define SYMNMLEN 8 /* # characters in a symbol name */
-#define FILNMLEN 14 /* # characters in a file name */
-#define DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct internal_syment
-{
- union
- {
- char _n_name[SYMNMLEN]; /* old COFF version */
- struct
- {
- bfd_hostptr_t _n_zeroes; /* new == 0 */
- bfd_hostptr_t _n_offset; /* offset into string table */
- } _n_n;
- char *_n_nptr[2]; /* allows for overlaying */
- } _n;
- bfd_vma n_value; /* value of symbol */
- short n_scnum; /* section number */
- unsigned short n_flags; /* copy of flags from filhdr */
- unsigned short n_type; /* type and derived type */
- unsigned char n_sclass; /* storage class */
- unsigned char n_numaux; /* number of aux. entries */
-};
-
-#define n_name _n._n_name
-#define n_zeroes _n._n_n._n_zeroes
-#define n_offset _n._n_n._n_offset
-
-/* Relocatable symbols have number of the section in which they are defined,
- or one of the following: */
-
-#define N_UNDEF ((short)0) /* undefined symbol */
-#define N_ABS ((short)-1) /* value of symbol is absolute */
-#define N_DEBUG ((short)-2) /* debugging symbol -- value is meaningless */
-#define N_TV ((short)-3) /* indicates symbol needs preload transfer vector */
-#define P_TV ((short)-4) /* indicates symbol needs postload transfer vector*/
-
-/* Type of a symbol, in low N bits of the word. */
-
-#define T_NULL 0
-#define T_VOID 1 /* function argument (only used by compiler) */
-#define T_CHAR 2 /* character */
-#define T_SHORT 3 /* short integer */
-#define T_INT 4 /* integer */
-#define T_LONG 5 /* long integer */
-#define T_FLOAT 6 /* floating point */
-#define T_DOUBLE 7 /* double word */
-#define T_STRUCT 8 /* structure */
-#define T_UNION 9 /* union */
-#define T_ENUM 10 /* enumeration */
-#define T_MOE 11 /* member of enumeration*/
-#define T_UCHAR 12 /* unsigned character */
-#define T_USHORT 13 /* unsigned short */
-#define T_UINT 14 /* unsigned integer */
-#define T_ULONG 15 /* unsigned long */
-#define T_LNGDBL 16 /* long double */
-
-/* Derived types, in n_type. */
-
-#define DT_NON (0) /* no derived type */
-#define DT_PTR (1) /* pointer */
-#define DT_FCN (2) /* function */
-#define DT_ARY (3) /* array */
-
-#define BTYPE(x) ((x) & N_BTMASK)
-#define DTYPE(x) (((x) & N_TMASK) >> N_BTSHFT)
-
-#define ISPTR(x) \
- (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_PTR << N_BTSHFT))
-#define ISFCN(x) \
- (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_FCN << N_BTSHFT))
-#define ISARY(x) \
- (((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_ARY << N_BTSHFT))
-#define ISTAG(x) \
- ((x) == C_STRTAG || (x) == C_UNTAG || (x) == C_ENTAG)
-#define DECREF(x) \
- ((((x) >> N_TSHIFT) & ~ N_BTMASK) | ((x) & N_BTMASK))
-
-union internal_auxent
-{
- struct
- {
-
- union
- {
- long l; /* str, un, or enum tag indx */
- struct coff_ptr_struct *p;
- } x_tagndx;
-
- union
- {
- struct
- {
- unsigned short x_lnno; /* declaration line number */
- unsigned short x_size; /* str/union/array size */
- } x_lnsz;
- long x_fsize; /* size of function */
- } x_misc;
-
- union
- {
- struct
- { /* if ISFCN, tag, or .bb */
- bfd_signed_vma x_lnnoptr; /* ptr to fcn line # */
- union
- { /* entry ndx past block end */
- long l;
- struct coff_ptr_struct *p;
- } x_endndx;
- } x_fcn;
-
- struct
- { /* if ISARY, up to 4 dimen. */
- unsigned short x_dimen[DIMNUM];
- } x_ary;
- } x_fcnary;
-
- unsigned short x_tvndx; /* tv index */
- } x_sym;
-
- union
- {
- char x_fname[FILNMLEN];
- struct
- {
- long x_zeroes;
- long x_offset;
- } x_n;
- } x_file;
-
- struct
- {
- long x_scnlen; /* section length */
- unsigned short x_nreloc; /* # relocation entries */
- unsigned short x_nlinno; /* # line numbers */
- unsigned long x_checksum; /* section COMDAT checksum for PE */
- unsigned short x_associated; /* COMDAT associated section index for PE */
- unsigned char x_comdat; /* COMDAT selection number for PE */
- } x_scn;
-
- struct
- {
- long x_tvfill; /* tv fill value */
- unsigned short x_tvlen; /* length of .tv */
- unsigned short x_tvran[2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-
- /******************************************
- * RS/6000-specific auxent - last auxent for every external symbol
- ******************************************/
- struct
- {
- union
- { /* csect length or enclosing csect */
- bfd_signed_vma l;
- struct coff_ptr_struct *p;
- } x_scnlen;
- long x_parmhash; /* parm type hash index */
- unsigned short x_snhash; /* sect num with parm hash */
- unsigned char x_smtyp; /* symbol align and type */
- /* 0-4 - Log 2 of alignment */
- /* 5-7 - symbol type */
- unsigned char x_smclas; /* storage mapping class */
- long x_stab; /* dbx stab info index */
- unsigned short x_snstab; /* sect num with dbx stab */
- } x_csect; /* csect definition information */
-
-/* x_smtyp values: */
-
-#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */
-#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */
-/* Symbol type values: */
-#define XTY_ER 0 /* External reference */
-#define XTY_SD 1 /* Csect definition */
-#define XTY_LD 2 /* Label definition */
-#define XTY_CM 3 /* .BSS */
-#define XTY_EM 4 /* Error message */
-#define XTY_US 5 /* "Reserved for internal use" */
-
-/* x_smclas values: */
-
-#define XMC_PR 0 /* Read-only program code */
-#define XMC_RO 1 /* Read-only constant */
-#define XMC_DB 2 /* Read-only debug dictionary table */
-#define XMC_TC 3 /* Read-write general TOC entry */
-#define XMC_UA 4 /* Read-write unclassified */
-#define XMC_RW 5 /* Read-write data */
-#define XMC_GL 6 /* Read-only global linkage */
-#define XMC_XO 7 /* Read-only extended operation */
-#define XMC_SV 8 /* Read-only supervisor call */
-#define XMC_BS 9 /* Read-write BSS */
-#define XMC_DS 10 /* Read-write descriptor csect */
-#define XMC_UC 11 /* Read-write unnamed Fortran common */
-#define XMC_TI 12 /* Read-only traceback index csect */
-#define XMC_TB 13 /* Read-only traceback table csect */
-/* 14 ??? */
-#define XMC_TC0 15 /* Read-write TOC anchor */
-#define XMC_TD 16 /* Read-write data in TOC */
-
- /******************************************
- * I960-specific *2nd* aux. entry formats
- ******************************************/
- struct
- {
- /* This is a very old typo that keeps getting propagated. */
-#define x_stdindx x_stindx
- long x_stindx; /* sys. table entry */
- } x_sc; /* system call entry */
-
- struct
- {
- unsigned long x_balntry; /* BAL entry point */
- } x_bal; /* BAL-callable function */
-
- struct
- {
- unsigned long x_timestamp; /* time stamp */
- char x_idstring[20]; /* producer identity string */
- } x_ident; /* Producer ident info */
-
-};
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct internal_reloc
-{
- bfd_vma r_vaddr; /* Virtual address of reference */
- long r_symndx; /* Index into symbol table */
- unsigned short r_type; /* Relocation type */
- unsigned char r_size; /* Used by RS/6000 and ECOFF */
- unsigned char r_extern; /* Used by ECOFF */
- unsigned long r_offset; /* Used by Alpha ECOFF, SPARC, others */
-};
-
-/* X86-64 relocations. */
-#define R_AMD64_ABS 0 /* Reference is absolute, no relocation is necessary. */
-#define R_AMD64_DIR64 1 /* 64-bit address (VA). */
-#define R_AMD64_DIR32 2 /* 32-bit address (VA) R_DIR32. */
-#define R_AMD64_IMAGEBASE 3 /* 32-bit absolute ref w/o base R_IMAGEBASE. */
-#define R_AMD64_PCRLONG 4 /* 32-bit relative address from byte following reloc R_PCRLONG. */
-#define R_AMD64_PCRLONG_1 5 /* 32-bit relative address from byte distance 1 from reloc. */
-#define R_AMD64_PCRLONG_2 6 /* 32-bit relative address from byte distance 2 from reloc. */
-#define R_AMD64_PCRLONG_3 7 /* 32-bit relative address from byte distance 3 from reloc. */
-#define R_AMD64_PCRLONG_4 8 /* 32-bit relative address from byte distance 4 from reloc. */
-#define R_AMD64_PCRLONG_5 9 /* 32-bit relative address from byte distance 5 from reloc. */
-#define R_AMD64_SECTION 10 /* Section index. */
-#define R_AMD64_SECREL 11 /* 32 bit offset from base of section containing target R_SECREL. */
-#define R_AMD64_SECREL7 12 /* 7 bit unsigned offset from base of section containing target. */
-#define R_AMD64_TOKEN 13 /* 32 bit metadata token. */
-#define R_AMD64_PCRQUAD 14 /* Pseude PC64 relocation - Note: not specified by MS/AMD but need for gas pc-relative 64bit wide relocation generated by ELF. */
-
-/* i386 Relocations. */
-
-#define R_DIR16 1
-#define R_REL24 5
-#define R_DIR32 6
-#define R_IMAGEBASE 7
-#define R_SECREL32 11
-#define R_RELBYTE 15
-#define R_RELWORD 16
-#define R_RELLONG 17
-#define R_PCRBYTE 18
-#define R_PCRWORD 19
-#define R_PCRLONG 20
-#define R_PCR24 21
-#define R_IPRSHORT 24
-#define R_IPRLONG 26
-#define R_GETSEG 29
-#define R_GETPA 30
-#define R_TAGWORD 31
-#define R_JUMPTARG 32 /* strange 29k 00xx00xx reloc */
-#define R_PARTLS16 32
-#define R_PARTMS8 33
-
-#define R_PCR16L 128
-#define R_PCR26L 129
-#define R_VRT16 130
-#define R_HVRT16 131
-#define R_LVRT16 132
-#define R_VRT32 133
-
-
-/* This reloc identifies mov.b instructions with a 16bit absolute
- address. The linker tries to turn insns with this reloc into
- an absolute 8-bit address. */
-#define R_MOV16B1 0x41
-
-/* This reloc identifies mov.b instructions which had a 16bit
- absolute address which have been shortened into a 8-bit
- absolute address. */
-#define R_MOV16B2 0x42
-
-/* This reloc identifies jmp insns with a 16bit target address;
- the linker tries to turn these insns into bra insns with
- an 8bit pc-relative target. */
-#define R_JMP1 0x43
-
-/* This reloc identifies a bra with an 8-bit pc-relative
- target that was formerly a jmp insn with a 16bit target. */
-#define R_JMP2 0x44
-
-/* ??? */
-#define R_RELLONG_NEG 0x45
-
-/* This reloc identifies jmp insns with a 24bit target address;
- the linker tries to turn these insns into bra insns with
- an 8bit pc-relative target. */
-#define R_JMPL1 0x46
-
-/* This reloc identifies a bra with an 8-bit pc-relative
- target that was formerly a jmp insn with a 24bit target. */
-#define R_JMPL2 0x47
-
-/* This reloc identifies mov.b instructions with a 24bit absolute
- address. The linker tries to turn insns with this reloc into
- an absolute 8-bit address. */
-
-#define R_MOV24B1 0x48
-
-/* This reloc identifies mov.b instructions which had a 24bit
- absolute address which have been shortened into a 8-bit
- absolute address. */
-#define R_MOV24B2 0x49
-
-/* An h8300 memory indirect jump/call. Forces the address of the jump/call
- target into the function vector (in page zero), and the address of the
- vector entry to be placed in the jump/call instruction. */
-#define R_MEM_INDIRECT 0x4a
-
-/* This reloc identifies a 16bit pc-relative branch target which was
- shortened into an 8bit pc-relative branch target. */
-#define R_PCRWORD_B 0x4b
-
-/* This reloc identifies mov.[wl] instructions with a 32/24 bit
- absolute address; the linker may turn this into a mov.[wl]
- insn with a 16bit absolute address. */
-#define R_MOVL1 0x4c
-
-/* This reloc identifies mov.[wl] insns which formerly had
- a 32/24bit absolute address and now have a 16bit absolute address. */
-#define R_MOVL2 0x4d
-
-/* This reloc identifies a bCC:8 which will have it's condition
- inverted and its target redirected to the target of the branch
- in the following insn. */
-#define R_BCC_INV 0x4e
-
-/* This reloc identifies a jmp instruction that has been deleted. */
-#define R_JMP_DEL 0x4f
-
-/* Z8k modes */
-#define R_IMM16 0x01 /* 16 bit abs */
-#define R_JR 0x02 /* jr 8 bit disp */
-#define R_IMM4L 0x23 /* low nibble */
-#define R_IMM8 0x22 /* 8 bit abs */
-#define R_IMM32 R_RELLONG /* 32 bit abs */
-#define R_CALL R_DA /* Absolute address which could be a callr */
-#define R_JP R_DA /* Absolute address which could be a jp */
-#define R_REL16 0x04 /* 16 bit PC rel */
-#define R_CALLR 0x05 /* callr 12 bit disp */
-#define R_SEG 0x10 /* set if in segmented mode */
-#define R_IMM4H 0x24 /* high nibble */
-#define R_DISP7 0x25 /* djnz displacement */
-
-/* Z80 modes */
-#define R_OFF8 0x32 /* 8 bit signed abs, for (i[xy]+d) */
-#define R_IMM24 0x33 /* 24 bit abs */
-/* R_JR, R_IMM8, R_IMM16, R_IMM32 - as for Z8k */
-
-/* H8500 modes */
-
-#define R_H8500_IMM8 1 /* 8 bit immediate */
-#define R_H8500_IMM16 2 /* 16 bit immediate */
-#define R_H8500_PCREL8 3 /* 8 bit pcrel */
-#define R_H8500_PCREL16 4 /* 16 bit pcrel */
-#define R_H8500_HIGH8 5 /* high 8 bits of 24 bit address */
-#define R_H8500_LOW16 7 /* low 16 bits of 24 bit immediate */
-#define R_H8500_IMM24 6 /* 24 bit immediate */
-#define R_H8500_IMM32 8 /* 32 bit immediate */
-#define R_H8500_HIGH16 9 /* high 16 bits of 32 bit immediate */
-
-/* W65 modes */
-
-#define R_W65_ABS8 1 /* addr & 0xff */
-#define R_W65_ABS16 2 /* addr & 0xffff */
-#define R_W65_ABS24 3 /* addr & 0xffffff */
-
-#define R_W65_ABS8S8 4 /* (addr >> 8) & 0xff */
-#define R_W65_ABS8S16 5 /* (addr >> 16) & 0xff */
-
-#define R_W65_ABS16S8 6 /* (addr >> 8) & 0ffff */
-#define R_W65_ABS16S16 7 /* (addr >> 16) & 0ffff */
-
-#define R_W65_PCR8 8
-#define R_W65_PCR16 9
-
-#define R_W65_DP 10 /* direct page 8 bits only */
-
-#endif /* GNU_COFF_INTERNAL_H */
diff --git a/include/coff/m68k.h b/include/coff/m68k.h
deleted file mode 100644
index c00c5a941..000000000
--- a/include/coff/m68k.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* coff information for M68K
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef GNU_COFF_M68K_H
-#define GNU_COFF_M68K_H 1
-
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Motorola 68000/68008/68010/68020 */
-#define MC68MAGIC 0520
-#define MC68KWRMAGIC 0520 /* writeable text segments */
-#define MC68TVMAGIC 0521
-#define MC68KROMAGIC 0521 /* readonly shareable text segments */
-#define MC68KPGMAGIC 0522 /* demand paged text segments */
-#define M68MAGIC 0210
-#define M68TVMAGIC 0211
-
-/* This is the magic of the Bull dpx/2 */
-#define MC68KBCSMAGIC 0526
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC 0415
-
-#define OMAGIC M68MAGIC
-
-/* This intentionally does not include MC68KBCSMAGIC; it only includes
- magic numbers which imply that names do not have underscores. */
-#define M68KBADMAG(x) (((x).f_magic != MC68MAGIC) \
- && ((x).f_magic != MC68KWRMAGIC) \
- && ((x).f_magic != MC68TVMAGIC) \
- && ((x).f_magic != MC68KROMAGIC) \
- && ((x).f_magic != MC68KPGMAGIC) \
- && ((x).f_magic != M68MAGIC) \
- && ((x).f_magic != M68TVMAGIC) \
- && ((x).f_magic != LYNXCOFFMAGIC))
-
-/* Magic numbers for the a.out header. */
-
-#define PAGEMAGICEXECSWAPPED 0407 /* executable (swapped) */
-#define PAGEMAGICPEXECSWAPPED 0410 /* pure executable (swapped) */
-#define PAGEMAGICPEXECTSHLIB 0443 /* pure executable (target shared library) */
-#define PAGEMAGICPEXECPAGED 0413 /* pure executable (paged) */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-#ifdef M68K_COFF_OFFSET
- char r_offset[4];
-#endif
-};
-
-#define RELOC struct external_reloc
-
-#ifdef M68K_COFF_OFFSET
-#define RELSZ 14
-#else
-#define RELSZ 10
-#endif
-
-#endif /* GNU_COFF_M68K_H */
diff --git a/include/coff/m88k.h b/include/coff/m88k.h
deleted file mode 100644
index 8e1b3c930..000000000
--- a/include/coff/m88k.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* coff information for 88k bcs
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define DO_NOT_DEFINE_SCNHDR
-#define L_LNNO_SIZE 4
-#define DO_NOT_DEFINE_SYMENT
-#define DO_NOT_DEFINE_AUXENT
-#include "coff/external.h"
-
-#define MC88MAGIC 0540 /* 88k BCS executable */
-#define MC88DMAGIC 0541 /* DG/UX executable */
-#define MC88OMAGIC 0555 /* Object file */
-
-#define MC88BADMAG(x) (((x).f_magic != MC88MAGIC) \
- && ((x).f_magic != MC88DMAGIC) \
- && ((x).f_magic != MC88OMAGIC))
-
-#define PAGEMAGIC3 0414 /* Split i&d, zero mapped */
-#define PAGEMAGICBCS 0413
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[4]; /* number of relocation entries */
- char s_nlnno[4]; /* number of line number entries*/
- char s_flags[4]; /* flags */
-};
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 44
-
-/* Names of "special" sections. */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _COMMENT ".comment"
-
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union
- {
- char e_name[E_SYMNMLEN];
-
- struct
- {
- char e_zeroes[4];
- char e_offset[4];
- } e;
-
- } e;
-
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
- char pad2[2];
-};
-
-#define N_BTMASK 017
-#define N_TMASK 060
-#define N_BTSHFT 4
-#define N_TSHIFT 2
-
-/* Note that this isn't the same shape as other coffs */
-union external_auxent
-{
- struct
- {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- /* 4 */
-
- union
- {
- char x_fsize[4]; /* size of function */
-
- struct
- {
- char x_lnno[4]; /* declaration line number */
- char x_size[4]; /* str/union/array size */
- } x_lnsz;
-
- } x_misc;
-
- /* 12 */
- union
- {
- struct /* if ISFCN, tag, or .bb */
- {
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
-
- struct /* if ISARY, up to 4 dimen. */
- {
- char x_dimen[E_DIMNUM][2];
- } x_ary;
-
- } x_fcnary;
- /* 20 */
-
- } x_sym;
-
- union
- {
- char x_fname[E_FILNMLEN];
-
- struct
- {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
-
- } x_file;
-
- struct
- {
- char x_scnlen[4]; /* section length */
- char x_nreloc[4]; /* # relocation entries */
- char x_nlinno[4]; /* # line numbers */
- } x_scn;
-
- struct
- {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-};
-
-#define GET_LNSZ_SIZE(abfd, ext) \
- H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_size)
-#define GET_LNSZ_LNNO(abfd, ext) \
- H_GET_32 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno)
-#define PUT_LNSZ_LNNO(abfd, in, ext) \
- H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno)
-#define PUT_LNSZ_SIZE(abfd, in, ext) \
- H_PUT_32 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size)
-#define GET_SCN_NRELOC(abfd, ext) \
- H_GET_32 (abfd, ext->x_scn.x_nreloc)
-#define GET_SCN_NLINNO(abfd, ext) \
- H_GET_32 (abfd, ext->x_scn.x_nlinno)
-#define PUT_SCN_NRELOC(abfd, in, ext) \
- H_PUT_32 (abfd, in, ext->x_scn.x_nreloc)
-#define PUT_SCN_NLINNO(abfd, in, ext) \
- H_PUT_32 (abfd,in, ext->x_scn.x_nlinno)
-
-#define SYMENT struct external_syment
-#define SYMESZ 20
-#define AUXENT union external_auxent
-#define AUXESZ 20
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
- char r_offset[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 12
-
-#define NO_TVNDX
diff --git a/include/coff/mcore.h b/include/coff/mcore.h
deleted file mode 100644
index 60dbfb272..000000000
--- a/include/coff/mcore.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Motorola MCore support for BFD.
- Copyright 1999, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MCore COFF/PE ABI. */
-
-#ifndef _COFF_MORE_H
-#define _COFF_MORE_H
-
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-#define MCOREMAGIC 0xb00 /* I just made this up */
-
-#define MCOREBADMAG(x) (((x).f_magic != MCOREMAGIC))
-
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-#define IMAGE_REL_MCORE_ABSOLUTE 0x0000
-#define IMAGE_REL_MCORE_ADDR32 0x0001
-#define IMAGE_REL_MCORE_PCREL_IMM8BY4 0x0002
-#define IMAGE_REL_MCORE_PCREL_IMM11BY2 0x0003
-#define IMAGE_REL_MCORE_PCREL_IMM4BY2 0x0004
-#define IMAGE_REL_MCORE_PCREL_32 0x0005
-#define IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2 0x0006
-#define IMAGE_REL_MCORE_RVA 0x0007
-
-#define PEMCORE
-
-#define OMAGIC 0404 /* object files, eg as output */
-#define ZMAGIC 0413 /* demand load format, eg normal ld output */
-#define STMAGIC 0401 /* target shlib */
-#define SHMAGIC 0443 /* host shlib */
-
-/* From winnt.h */
-#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
-
-/* Define some NT default values. */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-struct external_reloc
-{
- char r_vaddr [4];
- char r_symndx [4];
- char r_type [2];
- char r_offset [4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-
-#endif /* __COFF_MCORE_H */
diff --git a/include/coff/mips.h b/include/coff/mips.h
deleted file mode 100644
index f1c243b6d..000000000
--- a/include/coff/mips.h
+++ /dev/null
@@ -1,344 +0,0 @@
-/* ECOFF support on MIPS machines.
- coff/ecoff.h must be included before this file.
-
- Copyright 1999, 2004, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define DO_NOT_DEFINE_AOUTHDR
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* Magic numbers are defined in coff/ecoff.h. */
-#define MIPS_ECOFF_BADMAG(x) (((x).f_magic!=MIPS_MAGIC_1) && \
- ((x).f_magic!=MIPS_MAGIC_LITTLE) &&\
- ((x).f_magic!=MIPS_MAGIC_BIG) && \
- ((x).f_magic!=MIPS_MAGIC_LITTLE2) && \
- ((x).f_magic!=MIPS_MAGIC_BIG2) && \
- ((x).f_magic!=MIPS_MAGIC_LITTLE3) && \
- ((x).f_magic!=MIPS_MAGIC_BIG3))
-
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct external_aouthdr
-{
- unsigned char magic[2]; /* type of file */
- unsigned char vstamp[2]; /* version stamp */
- unsigned char tsize[4]; /* text size in bytes, padded to FW bdry*/
- unsigned char dsize[4]; /* initialized data " " */
- unsigned char bsize[4]; /* uninitialized data " " */
- unsigned char entry[4]; /* entry pt. */
- unsigned char text_start[4]; /* base of text used for this file */
- unsigned char data_start[4]; /* base of data used for this file */
- unsigned char bss_start[4]; /* base of bss used for this file */
- unsigned char gprmask[4]; /* ?? */
- unsigned char cprmask[4][4]; /* ?? */
- unsigned char gp_value[4]; /* value for gp register */
-} AOUTHDR;
-
-/* compute size of a header */
-
-#define AOUTSZ 56
-#define AOUTHDRSZ 56
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
- {
- unsigned char r_vaddr[4];
- unsigned char r_bits[4];
- };
-
-#define RELOC struct external_reloc
-#define RELSZ 8
-
-/* MIPS ECOFF uses a packed 8 byte format for relocs. These constants
- are used to unpack the r_bits field. */
-
-#define RELOC_BITS0_SYMNDX_SH_LEFT_BIG 16
-#define RELOC_BITS0_SYMNDX_SH_LEFT_LITTLE 0
-
-#define RELOC_BITS1_SYMNDX_SH_LEFT_BIG 8
-#define RELOC_BITS1_SYMNDX_SH_LEFT_LITTLE 8
-
-#define RELOC_BITS2_SYMNDX_SH_LEFT_BIG 0
-#define RELOC_BITS2_SYMNDX_SH_LEFT_LITTLE 16
-
-/* Originally, ECOFF used four bits for the reloc type and had three
- reserved bits. Irix 4 added another bit for the reloc type, which
- was easy because it was big endian and one of the spare bits became
- the new most significant bit. To make this also work for little
- endian ECOFF, we need to wrap one of the reserved bits around to
- become the most significant bit of the reloc type. */
-#define RELOC_BITS3_TYPE_BIG 0x3E
-#define RELOC_BITS3_TYPE_SH_BIG 1
-#define RELOC_BITS3_TYPE_LITTLE 0x78
-#define RELOC_BITS3_TYPE_SH_LITTLE 3
-#define RELOC_BITS3_TYPEHI_LITTLE 0x04
-#define RELOC_BITS3_TYPEHI_SH_LITTLE 2
-
-#define RELOC_BITS3_EXTERN_BIG 0x01
-#define RELOC_BITS3_EXTERN_LITTLE 0x80
-
-/* The r_type field in a reloc is one of the following values. I
- don't know if any other values can appear. These seem to be all
- that occur in the Ultrix 4.2 libraries. */
-#define MIPS_R_IGNORE 0
-#define MIPS_R_REFHALF 1
-#define MIPS_R_REFWORD 2
-#define MIPS_R_JMPADDR 3
-#define MIPS_R_REFHI 4
-#define MIPS_R_REFLO 5
-#define MIPS_R_GPREL 6
-#define MIPS_R_LITERAL 7
-
-/* FIXME: This relocation is used (internally only) to represent branches
- when assembling. It should never appear in output files, and
- be removed. (It used to be used for embedded-PIC support.) */
-#define MIPS_R_PCREL16 12
-
-/********************** STABS **********************/
-
-#define MIPS_IS_STAB ECOFF_IS_STAB
-#define MIPS_MARK_STAB ECOFF_MARK_STAB
-#define MIPS_UNMARK_STAB ECOFF_UNMARK_STAB
-
-/********************** SYMBOLIC INFORMATION **********************/
-
-/* Written by John Gilmore. */
-
-/* ECOFF uses COFF-like section structures, but its own symbol format.
- This file defines the symbol format in fields whose size and alignment
- will not vary on different host systems. */
-
-/* File header as a set of bytes */
-
-struct hdr_ext
-{
- unsigned char h_magic[2];
- unsigned char h_vstamp[2];
- unsigned char h_ilineMax[4];
- unsigned char h_cbLine[4];
- unsigned char h_cbLineOffset[4];
- unsigned char h_idnMax[4];
- unsigned char h_cbDnOffset[4];
- unsigned char h_ipdMax[4];
- unsigned char h_cbPdOffset[4];
- unsigned char h_isymMax[4];
- unsigned char h_cbSymOffset[4];
- unsigned char h_ioptMax[4];
- unsigned char h_cbOptOffset[4];
- unsigned char h_iauxMax[4];
- unsigned char h_cbAuxOffset[4];
- unsigned char h_issMax[4];
- unsigned char h_cbSsOffset[4];
- unsigned char h_issExtMax[4];
- unsigned char h_cbSsExtOffset[4];
- unsigned char h_ifdMax[4];
- unsigned char h_cbFdOffset[4];
- unsigned char h_crfd[4];
- unsigned char h_cbRfdOffset[4];
- unsigned char h_iextMax[4];
- unsigned char h_cbExtOffset[4];
-};
-
-/* File descriptor external record */
-
-struct fdr_ext
-{
- unsigned char f_adr[4];
- unsigned char f_rss[4];
- unsigned char f_issBase[4];
- unsigned char f_cbSs[4];
- unsigned char f_isymBase[4];
- unsigned char f_csym[4];
- unsigned char f_ilineBase[4];
- unsigned char f_cline[4];
- unsigned char f_ioptBase[4];
- unsigned char f_copt[4];
- unsigned char f_ipdFirst[2];
- unsigned char f_cpd[2];
- unsigned char f_iauxBase[4];
- unsigned char f_caux[4];
- unsigned char f_rfdBase[4];
- unsigned char f_crfd[4];
- unsigned char f_bits1[1];
- unsigned char f_bits2[3];
- unsigned char f_cbLineOffset[4];
- unsigned char f_cbLine[4];
-};
-
-#define FDR_BITS1_LANG_BIG 0xF8
-#define FDR_BITS1_LANG_SH_BIG 3
-#define FDR_BITS1_LANG_LITTLE 0x1F
-#define FDR_BITS1_LANG_SH_LITTLE 0
-
-#define FDR_BITS1_FMERGE_BIG 0x04
-#define FDR_BITS1_FMERGE_LITTLE 0x20
-
-#define FDR_BITS1_FREADIN_BIG 0x02
-#define FDR_BITS1_FREADIN_LITTLE 0x40
-
-#define FDR_BITS1_FBIGENDIAN_BIG 0x01
-#define FDR_BITS1_FBIGENDIAN_LITTLE 0x80
-
-#define FDR_BITS2_GLEVEL_BIG 0xC0
-#define FDR_BITS2_GLEVEL_SH_BIG 6
-#define FDR_BITS2_GLEVEL_LITTLE 0x03
-#define FDR_BITS2_GLEVEL_SH_LITTLE 0
-
-/* We ignore the `reserved' field in bits2. */
-
-/* Procedure descriptor external record */
-
-struct pdr_ext
-{
- unsigned char p_adr[4];
- unsigned char p_isym[4];
- unsigned char p_iline[4];
- unsigned char p_regmask[4];
- unsigned char p_regoffset[4];
- unsigned char p_iopt[4];
- unsigned char p_fregmask[4];
- unsigned char p_fregoffset[4];
- unsigned char p_frameoffset[4];
- unsigned char p_framereg[2];
- unsigned char p_pcreg[2];
- unsigned char p_lnLow[4];
- unsigned char p_lnHigh[4];
- unsigned char p_cbLineOffset[4];
-};
-
-/* Runtime procedure table */
-
-struct rpdr_ext
-{
- unsigned char p_adr[4];
- unsigned char p_regmask[4];
- unsigned char p_regoffset[4];
- unsigned char p_fregmask[4];
- unsigned char p_fregoffset[4];
- unsigned char p_frameoffset[4];
- unsigned char p_framereg[2];
- unsigned char p_pcreg[2];
- unsigned char p_irpss[4];
- unsigned char p_reserved[4];
- unsigned char p_exception_info[4];
-};
-
-/* Line numbers */
-
-struct line_ext
-{
- unsigned char l_line[4];
-};
-
-/* Symbol external record */
-
-struct sym_ext
-{
- unsigned char s_iss[4];
- unsigned char s_value[4];
- unsigned char s_bits1[1];
- unsigned char s_bits2[1];
- unsigned char s_bits3[1];
- unsigned char s_bits4[1];
-};
-
-#define SYM_BITS1_ST_BIG 0xFC
-#define SYM_BITS1_ST_SH_BIG 2
-#define SYM_BITS1_ST_LITTLE 0x3F
-#define SYM_BITS1_ST_SH_LITTLE 0
-
-#define SYM_BITS1_SC_BIG 0x03
-#define SYM_BITS1_SC_SH_LEFT_BIG 3
-#define SYM_BITS1_SC_LITTLE 0xC0
-#define SYM_BITS1_SC_SH_LITTLE 6
-
-#define SYM_BITS2_SC_BIG 0xE0
-#define SYM_BITS2_SC_SH_BIG 5
-#define SYM_BITS2_SC_LITTLE 0x07
-#define SYM_BITS2_SC_SH_LEFT_LITTLE 2
-
-#define SYM_BITS2_RESERVED_BIG 0x10
-#define SYM_BITS2_RESERVED_LITTLE 0x08
-
-#define SYM_BITS2_INDEX_BIG 0x0F
-#define SYM_BITS2_INDEX_SH_LEFT_BIG 16
-#define SYM_BITS2_INDEX_LITTLE 0xF0
-#define SYM_BITS2_INDEX_SH_LITTLE 4
-
-#define SYM_BITS3_INDEX_SH_LEFT_BIG 8
-#define SYM_BITS3_INDEX_SH_LEFT_LITTLE 4
-
-#define SYM_BITS4_INDEX_SH_LEFT_BIG 0
-#define SYM_BITS4_INDEX_SH_LEFT_LITTLE 12
-
-/* External symbol external record */
-
-struct ext_ext
-{
- unsigned char es_bits1[1];
- unsigned char es_bits2[1];
- unsigned char es_ifd[2];
- struct sym_ext es_asym;
-};
-
-#define EXT_BITS1_JMPTBL_BIG 0x80
-#define EXT_BITS1_JMPTBL_LITTLE 0x01
-
-#define EXT_BITS1_COBOL_MAIN_BIG 0x40
-#define EXT_BITS1_COBOL_MAIN_LITTLE 0x02
-
-#define EXT_BITS1_WEAKEXT_BIG 0x20
-#define EXT_BITS1_WEAKEXT_LITTLE 0x04
-
-/* Dense numbers external record */
-
-struct dnr_ext
-{
- unsigned char d_rfd[4];
- unsigned char d_index[4];
-};
-
-/* Relative file descriptor */
-
-struct rfd_ext
-{
- unsigned char rfd[4];
-};
-
-/* Optimizer symbol external record */
-
-struct opt_ext
-{
- unsigned char o_bits1[1];
- unsigned char o_bits2[1];
- unsigned char o_bits3[1];
- unsigned char o_bits4[1];
- struct rndx_ext o_rndx;
- unsigned char o_offset[4];
-};
-
-#define OPT_BITS2_VALUE_SH_LEFT_BIG 16
-#define OPT_BITS2_VALUE_SH_LEFT_LITTLE 0
-
-#define OPT_BITS3_VALUE_SH_LEFT_BIG 8
-#define OPT_BITS3_VALUE_SH_LEFT_LITTLE 8
-
-#define OPT_BITS4_VALUE_SH_LEFT_BIG 0
-#define OPT_BITS4_VALUE_SH_LEFT_LITTLE 16
diff --git a/include/coff/mipspe.h b/include/coff/mipspe.h
deleted file mode 100644
index f1a0d439f..000000000
--- a/include/coff/mipspe.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* coff information for Windows CE with MIPS VR4111
-
- Copyright 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define MIPS_ARCH_MAGIC_WINCE 0x0166 /* Windows CE - little endian */
-#define MIPS_PE_MAGIC 0x010b
-
-#define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE)
-
-/* define some NT default values */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the h8 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-/* MIPS PE relocation types. */
-
-#define MIPS_R_ABSOLUTE 0 /* ignored */
-#define MIPS_R_REFHALF 1
-#define MIPS_R_REFWORD 2
-#define MIPS_R_JMPADDR 3
-#define MIPS_R_REFHI 4 /* PAIR follows */
-#define MIPS_R_REFLO 5
-#define MIPS_R_GPREL 6
-#define MIPS_R_LITERAL 7 /* same as GPREL */
-#define MIPS_R_SECTION 10
-#define MIPS_R_SECREL 11
-#define MIPS_R_SECRELLO 12
-#define MIPS_R_SECRELHI 13 /* PAIR follows */
-#define MIPS_R_RVA 34 /* 0x22 */
-#define MIPS_R_PAIR 37 /* 0x25 - symndx is really a signed 16-bit addend */
diff --git a/include/coff/or32.h b/include/coff/or32.h
deleted file mode 100644
index 9be7887ad..000000000
--- a/include/coff/or32.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* COFF specification for OpenRISC 1000.
- Copyright (C) 1993-2000, 2002, 2010 Free Software Foundation, Inc.
- Contributed by David Wood @ New York University.
- Modified by Johan Rydberg, <johan.rydberg@netinsight.se>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef OR32
-# define OR32
-#endif
-
-/* File Header and related definitions. */
-struct external_filehdr
-{
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
-};
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 20
-
-/* Magic numbers for OpenRISC 1000. As it is know we use the
- numbers for Am29000.
-
- (AT&T will assign the "real" magic number). */
-#define SIPFBOMAGIC 0572 /* Am29000 (Byte 0 is MSB). */
-#define SIPRBOMAGIC 0573 /* Am29000 (Byte 0 is LSB). */
-
-#define OR32_MAGIC_BIG SIPFBOMAGIC
-#define OR32_MAGIC_LITTLE SIPRBOMAGIC
-#define OR32BADMAG(x) (((x).f_magic!=OR32_MAGIC_BIG) && \
- ((x).f_magic!=OR32_MAGIC_LITTLE))
-
-#define OMAGIC OR32_MAGIC_BIG
-
-/* Optional (a.out) header. */
-typedef struct external_aouthdr
-{
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry */
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
-} AOUTHDR;
-
-#define AOUTSZ 28
-#define AOUTHDRSZ 28
-
-/* aouthdr magic numbers. */
-#define NMAGIC 0410 /* separate i/d executable. */
-#define SHMAGIC 0406 /* NYU/Ultra3 shared data executable
- (writable text). */
-
-#define _ETEXT "_etext"
-
-/* Section header and related definitions. */
-struct external_scnhdr
-{
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries */
- char s_flags[4]; /* flags */
-};
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 40
-
-/* Names of "special" sections: */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _LIT ".lit"
-
-/* Section types - with additional section type for global
- registers which will be relocatable for the OpenRISC 1000.
-
- In instances where it is necessary for a linker to produce an
- output file which contains text or data not based at virtual
- address 0, e.g. for a ROM, then the linker should accept
- address base information as command input and use PAD sections
- to skip over unused addresses. */
-#define STYP_BSSREG 0x1200 /* Global register area (like STYP_INFO) */
-#define STYP_ENVIR 0x2200 /* Environment (like STYP_INFO) */
-#define STYP_ABS 0x4000 /* Absolute (allocated, not reloc, loaded) */
-
-/* Relocation information declaration and related definitions: */
-struct external_reloc
-{
- char r_vaddr[4]; /* (virtual) address of reference */
- char r_symndx[4]; /* index into symbol table */
- char r_type[2]; /* relocation type */
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10 /* sizeof (RELOC) */
-
-/* Relocation types for the OpenRISC 1000: */
-
-#define R_ABS 0 /* reference is absolute */
-#define R_IREL 030 /* instruction relative (jmp/call) */
-#define R_IABS 031 /* instruction absolute (jmp/call) */
-#define R_ILOHALF 032 /* instruction low half (const) */
-#define R_IHIHALF 033 /* instruction high half (consth) part 1 */
-#define R_IHCONST 034 /* instruction high half (consth) part 2 */
- /* constant offset of R_IHIHALF relocation */
-#define R_BYTE 035 /* relocatable byte value */
-#define R_HWORD 036 /* relocatable halfword value */
-#define R_WORD 037 /* relocatable word value */
-
-#define R_IGLBLRC 040 /* instruction global register RC */
-#define R_IGLBLRA 041 /* instruction global register RA */
-#define R_IGLBLRB 042 /* instruction global register RB */
-
-/*
- NOTE:
- All the "I" forms refer to 29000 instruction formats. The linker is
- expected to know how the numeric information is split and/or aligned
- within the instruction word(s). R_BYTE works for instructions, too.
-
- If the parameter to a CONSTH instruction is a relocatable type, two
- relocation records are written. The first has an r_type of R_IHIHALF
- (33 octal) and a normal r_vaddr and r_symndx. The second relocation
- record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which
- is redundant), and an r_symndx containing the 32-bit constant offset
- to the relocation instead of the actual symbol table index. This
- second record is always written, even if the constant offset is zero.
- The constant fields of the instruction are set to zero. */
-
-/* Line number entry declaration and related definitions: */
-struct external_lineno
-{
- union
- {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- }
- l_addr;
-
- char l_lnno[2]; /* line number */
-};
-
-#define LINENO struct external_lineno
-#define LINESZ 6 /* sizeof (LINENO) */
-
-/* Symbol entry declaration and related definitions: */
-#define E_SYMNMLEN 8 /* Number of characters in a symbol name */
-
-struct external_syment
-{
- union
- {
- char e_name[E_SYMNMLEN];
- struct
- {
- char e_zeroes[4];
- char e_offset[4];
- }
- e;
- }
- e;
-
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
-
-/* Storage class definitions - new classes for global registers: */
-#define C_GLBLREG 19 /* global register */
-#define C_EXTREG 20 /* external global register */
-#define C_DEFREG 21 /* ext. def. of global register */
-
-/* Derived symbol mask/shifts: */
-#define N_BTMASK (0xf)
-#define N_BTSHFT (4)
-#define N_TMASK (0x30)
-#define N_TSHIFT (2)
-
-/* Auxiliary symbol table entry declaration and related
- definitions. */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-union external_auxent
-{
- struct
- {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- union
- {
- struct
- {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- }
- x_lnsz;
-
- char x_fsize[4]; /* size of function */
- }
- x_misc;
-
- union
- {
- struct /* if ISFCN, tag, or .bb */
- {
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- }
- x_fcn;
-
- struct /* if ISARY, up to 4 dimen. */
- {
- char x_dimen[E_DIMNUM][2];
- }
- x_ary;
- }
- x_fcnary;
-
- char x_tvndx[2]; /* tv index */
- }
- x_sym;
-
- union
- {
- char x_fname[E_FILNMLEN];
-
- struct
- {
- char x_zeroes[4];
- char x_offset[4];
- }
- x_n;
- }
- x_file;
-
- struct
- {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
- }
- x_scn;
-
- struct
- {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- }
- x_tv; /* info about .tv section
- (in auxent of symbol .tv)) */
-};
-
-#define AUXENT union external_auxent
-#define AUXESZ 18
diff --git a/include/coff/pe.h b/include/coff/pe.h
deleted file mode 100644
index 601a68e8f..000000000
--- a/include/coff/pe.h
+++ /dev/null
@@ -1,512 +0,0 @@
-/* pe.h - PE COFF header information
-
- Copyright 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-#ifndef _PE_H
-#define _PE_H
-
-/* NT specific file attributes. */
-#define IMAGE_FILE_RELOCS_STRIPPED 0x0001
-#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002
-#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004
-#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008
-#define IMAGE_FILE_AGGRESSIVE_WS_TRIM 0x0010
-#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020
-#define IMAGE_FILE_16BIT_MACHINE 0x0040
-#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080
-#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
-#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000
-
-/* DllCharacteristics flag bits. The inconsistent naming may seem
- odd, but that is how they are defined in the PE specification. */
-#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE 0x0040
-#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY 0x0080
-#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT 0x0100
-#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200
-#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400
-#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800
-#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000
-#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
-
-/* Additional flags to be set for section headers to allow the NT loader to
- read and write to the section data (to replace the addresses of data in
- dlls for one thing); also to execute the section in .text's case. */
-#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
-#define IMAGE_SCN_MEM_EXECUTE 0x20000000
-#define IMAGE_SCN_MEM_READ 0x40000000
-#define IMAGE_SCN_MEM_WRITE 0x80000000
-
-/* Section characteristics added for ppc-nt. */
-
-#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 /* Reserved. */
-
-#define IMAGE_SCN_CNT_CODE 0x00000020 /* Section contains code. */
-#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 /* Section contains initialized data. */
-#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 /* Section contains uninitialized data. */
-
-#define IMAGE_SCN_LNK_OTHER 0x00000100 /* Reserved. */
-#define IMAGE_SCN_LNK_INFO 0x00000200 /* Section contains comments or some other type of information. */
-#define IMAGE_SCN_LNK_REMOVE 0x00000800 /* Section contents will not become part of image. */
-#define IMAGE_SCN_LNK_COMDAT 0x00001000 /* Section contents comdat. */
-
-#define IMAGE_SCN_MEM_FARDATA 0x00008000
-
-#define IMAGE_SCN_MEM_PURGEABLE 0x00020000
-#define IMAGE_SCN_MEM_16BIT 0x00020000
-#define IMAGE_SCN_MEM_LOCKED 0x00040000
-#define IMAGE_SCN_MEM_PRELOAD 0x00080000
-
-/* Bit position in the s_flags field where the alignment values start. */
-#define IMAGE_SCN_ALIGN_POWER_BIT_POS 20
-#define IMAGE_SCN_ALIGN_POWER_BIT_MASK 0x00f00000
-#define IMAGE_SCN_ALIGN_POWER_NUM(val) \
- (((val) >> IMAGE_SCN_ALIGN_POWER_BIT_POS) - 1)
-#define IMAGE_SCN_ALIGN_POWER_CONST(val) \
- (((val) + 1) << IMAGE_SCN_ALIGN_POWER_BIT_POS)
-
-#define IMAGE_SCN_ALIGN_1BYTES IMAGE_SCN_ALIGN_POWER_CONST (0)
-#define IMAGE_SCN_ALIGN_2BYTES IMAGE_SCN_ALIGN_POWER_CONST (1)
-#define IMAGE_SCN_ALIGN_4BYTES IMAGE_SCN_ALIGN_POWER_CONST (2)
-#define IMAGE_SCN_ALIGN_8BYTES IMAGE_SCN_ALIGN_POWER_CONST (3)
-/* Default alignment if no others are specified. */
-#define IMAGE_SCN_ALIGN_16BYTES IMAGE_SCN_ALIGN_POWER_CONST (4)
-#define IMAGE_SCN_ALIGN_32BYTES IMAGE_SCN_ALIGN_POWER_CONST (5)
-#define IMAGE_SCN_ALIGN_64BYTES IMAGE_SCN_ALIGN_POWER_CONST (6)
-#define IMAGE_SCN_ALIGN_128BYTES IMAGE_SCN_ALIGN_POWER_CONST (7)
-#define IMAGE_SCN_ALIGN_256BYTES IMAGE_SCN_ALIGN_POWER_CONST (8)
-#define IMAGE_SCN_ALIGN_512BYTES IMAGE_SCN_ALIGN_POWER_CONST (9)
-#define IMAGE_SCN_ALIGN_1024BYTES IMAGE_SCN_ALIGN_POWER_CONST (10)
-#define IMAGE_SCN_ALIGN_2048BYTES IMAGE_SCN_ALIGN_POWER_CONST (11)
-#define IMAGE_SCN_ALIGN_4096BYTES IMAGE_SCN_ALIGN_POWER_CONST (12)
-#define IMAGE_SCN_ALIGN_8192BYTES IMAGE_SCN_ALIGN_POWER_CONST (13)
-
-/* Encode alignment power into IMAGE_SCN_ALIGN bits of s_flags */
-#define COFF_ENCODE_ALIGNMENT(SECTION, ALIGNMENT_POWER) \
- ((SECTION).s_flags |= IMAGE_SCN_ALIGN_POWER_CONST ((ALIGNMENT_POWER)))
-
-#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 /* Section contains extended relocations. */
-#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 /* Section is not cachable. */
-#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 /* Section is not pageable. */
-#define IMAGE_SCN_MEM_SHARED 0x10000000 /* Section is shareable. */
-
-/* COMDAT selection codes. */
-
-#define IMAGE_COMDAT_SELECT_NODUPLICATES (1) /* Warn if duplicates. */
-#define IMAGE_COMDAT_SELECT_ANY (2) /* No warning. */
-#define IMAGE_COMDAT_SELECT_SAME_SIZE (3) /* Warn if different size. */
-#define IMAGE_COMDAT_SELECT_EXACT_MATCH (4) /* Warn if different. */
-#define IMAGE_COMDAT_SELECT_ASSOCIATIVE (5) /* Base on other section. */
-
-/* Machine numbers. */
-
-#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_FILE_MACHINE_AMD64 0x8664
-
-#define IMAGE_SUBSYSTEM_UNKNOWN 0
-#define IMAGE_SUBSYSTEM_NATIVE 1
-#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
-#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
-#define IMAGE_SUBSYSTEM_POSIX_CUI 7
-#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
-#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10
-#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
-#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
-#define IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13
-#define IMAGE_SUBSYSTEM_XBOX 14
-
-/* Magic values that are true for all dos/nt implementations. */
-#define DOSMAGIC 0x5a4d
-#define NT_SIGNATURE 0x00004550
-
-/* NT allows long filenames, we want to accommodate this.
- This may break some of the bfd functions. */
-#undef FILNMLEN
-#define FILNMLEN 18 /* # characters in a file name. */
-
-struct external_PEI_DOS_hdr
-{
- /* DOS header fields - always at offset zero in the EXE file. */
- char e_magic[2]; /* Magic number, 0x5a4d. */
- char e_cblp[2]; /* Bytes on last page of file, 0x90. */
- char e_cp[2]; /* Pages in file, 0x3. */
- char e_crlc[2]; /* Relocations, 0x0. */
- char e_cparhdr[2]; /* Size of header in paragraphs, 0x4. */
- char e_minalloc[2]; /* Minimum extra paragraphs needed, 0x0. */
- char e_maxalloc[2]; /* Maximum extra paragraphs needed, 0xFFFF. */
- char e_ss[2]; /* Initial (relative) SS value, 0x0. */
- char e_sp[2]; /* Initial SP value, 0xb8. */
- char e_csum[2]; /* Checksum, 0x0. */
- char e_ip[2]; /* Initial IP value, 0x0. */
- char e_cs[2]; /* Initial (relative) CS value, 0x0. */
- char e_lfarlc[2]; /* File address of relocation table, 0x40. */
- char e_ovno[2]; /* Overlay number, 0x0. */
- char e_res[4][2]; /* Reserved words, all 0x0. */
- char e_oemid[2]; /* OEM identifier (for e_oeminfo), 0x0. */
- char e_oeminfo[2]; /* OEM information; e_oemid specific, 0x0. */
- char e_res2[10][2]; /* Reserved words, all 0x0. */
- char e_lfanew[4]; /* File address of new exe header, usually 0x80. */
- char dos_message[16][4]; /* Other stuff, always follow DOS header. */
-};
-
-struct external_PEI_IMAGE_hdr
-{
- char nt_signature[4]; /* required NT signature, 0x4550. */
-
- /* From standard header. */
- char f_magic[2]; /* Magic number. */
- char f_nscns[2]; /* Number of sections. */
- char f_timdat[4]; /* Time & date stamp. */
- char f_symptr[4]; /* File pointer to symtab. */
- char f_nsyms[4]; /* Number of symtab entries. */
- char f_opthdr[2]; /* Sizeof(optional hdr). */
- char f_flags[2]; /* Flags. */
-};
-
-struct external_PEI_filehdr
-{
- /* DOS header fields - always at offset zero in the EXE file. */
- char e_magic[2]; /* Magic number, 0x5a4d. */
- char e_cblp[2]; /* Bytes on last page of file, 0x90. */
- char e_cp[2]; /* Pages in file, 0x3. */
- char e_crlc[2]; /* Relocations, 0x0. */
- char e_cparhdr[2]; /* Size of header in paragraphs, 0x4. */
- char e_minalloc[2]; /* Minimum extra paragraphs needed, 0x0. */
- char e_maxalloc[2]; /* Maximum extra paragraphs needed, 0xFFFF. */
- char e_ss[2]; /* Initial (relative) SS value, 0x0. */
- char e_sp[2]; /* Initial SP value, 0xb8. */
- char e_csum[2]; /* Checksum, 0x0. */
- char e_ip[2]; /* Initial IP value, 0x0. */
- char e_cs[2]; /* Initial (relative) CS value, 0x0. */
- char e_lfarlc[2]; /* File address of relocation table, 0x40. */
- char e_ovno[2]; /* Overlay number, 0x0. */
- char e_res[4][2]; /* Reserved words, all 0x0. */
- char e_oemid[2]; /* OEM identifier (for e_oeminfo), 0x0. */
- char e_oeminfo[2]; /* OEM information; e_oemid specific, 0x0. */
- char e_res2[10][2]; /* Reserved words, all 0x0. */
- char e_lfanew[4]; /* File address of new exe header, usually 0x80. */
- char dos_message[16][4]; /* Other stuff, always follow DOS header. */
-
- /* Note: additional bytes may be inserted before the signature. Use
- the e_lfanew field to find the actual location of the NT signature. */
-
- char nt_signature[4]; /* required NT signature, 0x4550. */
-
- /* From standard header. */
- char f_magic[2]; /* Magic number. */
- char f_nscns[2]; /* Number of sections. */
- char f_timdat[4]; /* Time & date stamp. */
- char f_symptr[4]; /* File pointer to symtab. */
- char f_nsyms[4]; /* Number of symtab entries. */
- char f_opthdr[2]; /* Sizeof(optional hdr). */
- char f_flags[2]; /* Flags. */
-};
-
-#ifdef COFF_IMAGE_WITH_PE
-
-/* The filehdr is only weird in images. */
-
-#undef FILHDR
-#define FILHDR struct external_PEI_filehdr
-#undef FILHSZ
-#define FILHSZ 152
-
-#endif /* COFF_IMAGE_WITH_PE */
-
-/* 32-bit PE a.out header: */
-
-typedef struct
-{
- AOUTHDR standard;
-
- /* NT extra fields; see internal.h for descriptions. */
- char ImageBase[4];
- char SectionAlignment[4];
- char FileAlignment[4];
- char MajorOperatingSystemVersion[2];
- char MinorOperatingSystemVersion[2];
- char MajorImageVersion[2];
- char MinorImageVersion[2];
- char MajorSubsystemVersion[2];
- char MinorSubsystemVersion[2];
- char Reserved1[4];
- char SizeOfImage[4];
- char SizeOfHeaders[4];
- char CheckSum[4];
- char Subsystem[2];
- char DllCharacteristics[2];
- char SizeOfStackReserve[4];
- char SizeOfStackCommit[4];
- char SizeOfHeapReserve[4];
- char SizeOfHeapCommit[4];
- char LoaderFlags[4];
- char NumberOfRvaAndSizes[4];
- /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
- char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars. */
-} PEAOUTHDR;
-
-#undef AOUTSZ
-#define AOUTSZ (AOUTHDRSZ + 196)
-
-/* Like PEAOUTHDR, except that the "standard" member has no BaseOfData
- (aka data_start) member and that some of the members are 8 instead
- of just 4 bytes long. */
-typedef struct
-{
-#ifdef AOUTHDRSZ64
- AOUTHDR64 standard;
-#else
- AOUTHDR standard;
-#endif
- /* NT extra fields; see internal.h for descriptions. */
- char ImageBase[8];
- char SectionAlignment[4];
- char FileAlignment[4];
- char MajorOperatingSystemVersion[2];
- char MinorOperatingSystemVersion[2];
- char MajorImageVersion[2];
- char MinorImageVersion[2];
- char MajorSubsystemVersion[2];
- char MinorSubsystemVersion[2];
- char Reserved1[4];
- char SizeOfImage[4];
- char SizeOfHeaders[4];
- char CheckSum[4];
- char Subsystem[2];
- char DllCharacteristics[2];
- char SizeOfStackReserve[8];
- char SizeOfStackCommit[8];
- char SizeOfHeapReserve[8];
- char SizeOfHeapCommit[8];
- char LoaderFlags[4];
- char NumberOfRvaAndSizes[4];
- /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
- char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars. */
-} PEPAOUTHDR;
-
-#ifdef AOUTHDRSZ64
-#define PEPAOUTSZ (AOUTHDRSZ64 + 196 + 5 * 4) /* = 240 */
-#else
-#define PEPAOUTSZ 240
-#endif
-
-#undef E_FILNMLEN
-#define E_FILNMLEN 18 /* # characters in a file name. */
-
-/* Import Tyoes fot ILF format object files.. */
-#define IMPORT_CODE 0
-#define IMPORT_DATA 1
-#define IMPORT_CONST 2
-
-/* Import Name Tyoes for ILF format object files. */
-#define IMPORT_ORDINAL 0
-#define IMPORT_NAME 1
-#define IMPORT_NAME_NOPREFIX 2
-#define IMPORT_NAME_UNDECORATE 3
-
-/* Weak external characteristics. */
-#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
-#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
-#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
-
-/* .pdata/.xdata defines and structures for x64 PE+ for exception handling. */
-
-/* .pdata in exception directory. */
-
-struct pex64_runtime_function
-{
- bfd_vma rva_BeginAddress;
- bfd_vma rva_EndAddress;
- bfd_vma rva_UnwindData;
- unsigned int isChained : 1;
-};
-
-struct external_pex64_runtime_function
-{
- bfd_byte rva_BeginAddress[4];
- bfd_byte rva_EndAddress[4];
- bfd_byte rva_UnwindData[4];
-};
-
-/* If the lowest significant bit is set for rva_UnwindData RVA, it
- means that the unified RVA points to another pex64_runtime_function
- that this entry shares the unwind_info block with. */
-#define PEX64_IS_RUNTIME_FUNCTION_CHAINED(PTR_RTF) \
- (((PTR_RTF)->rva_UnwindData & 1) != 0)
-#define PEX64_GET_UNWINDDATA_UNIFIED_RVA(PTR_RTF) \
- ((PTR_RTF)->rva_UnwindData & ~1)
-
-/* The unwind codes. */
-#define UWOP_PUSH_NONVOL 0
-#define UWOP_ALLOC_LARGE 1
-#define UWOP_ALLOC_SMALL 2
-#define UWOP_SET_FPREG 3
-#define UWOP_SAVE_NONVOL 4
-#define UWOP_SAVE_NONVOL_FAR 5
-#define UWOP_SAVE_XMM 6
-#define UWOP_SAVE_XMM_FAR 7
-#define UWOP_SAVE_XMM128 8
-#define UWOP_SAVE_XMM128_FAR 9
-#define UWOP_PUSH_MACHFRAME 10
-
-struct pex64_unwind_code
-{
- bfd_vma prologue_offset;
- /* Contains Frame offset, or frame allocation size. */
- bfd_vma frame_addr;
- unsigned int uwop_code : 4;
- /* xmm, mm, or standard register from 0 - 15. */
- unsigned int reg : 4;
- /* Used for UWOP_PUSH_MACHFRAME to indicate optional errorcode stack
- argument. */
- unsigned int has_errorcode : 1;
-};
-
-struct external_pex64_unwind_code
-{
- bfd_byte dta[2];
-};
-
-#define PEX64_UNWCODE_CODE(VAL) ((VAL) & 0xf)
-#define PEX64_UNWCODE_INFO(VAL) (((VAL) >> 4) & 0xf)
-
-/* The unwind info. */
-#define UNW_FLAG_NHANDLER 0
-#define UNW_FLAG_EHANDLER 1
-#define UNW_FLAG_UHANDLER 2
-#define UNW_FLAG_FHANDLER 3
-#define UNW_FLAG_CHAININFO 4
-
-#define UNW_FLAG_MASK 0x1f
-
-struct pex64_unwind_info
-{
- bfd_vma SizeOfBlock;
- bfd_byte Version; /* Values from 0 up to 7 are possible. */
- bfd_byte Flags; /* Values from 0 up to 31 are possible. */
- bfd_vma SizeOfPrologue;
- bfd_vma CountOfCodes; /* Amount of pex64_unwind_code elements. */
- /* 0 = CFA, 1..15 are index of integer registers. */
- unsigned int FrameRegister : 4;
- bfd_vma FrameOffset;
- bfd_vma sizeofUnwindCodes;
- bfd_byte *rawUnwindCodes;
- /* Valid for UNW_FLAG_EHANDLER and UNW_FLAG_UHANDLER. */
- bfd_vma CountOfScopes;
- bfd_byte *rawScopeEntries;
- bfd_vma rva_ExceptionHandler; /* UNW_EHANDLER. */
- bfd_vma rva_TerminationHandler; /* UNW_FLAG_UHANDLER. */
- bfd_vma rva_FrameHandler; /* UNW_FLAG_FHANDLER. */
- bfd_vma FrameHandlerArgument; /* UNW_FLAG_FHANDLER. */
- bfd_vma rva_FunctionEntry; /* UNW_FLAG_CHAININFO. */
-};
-
-struct external_pex64_unwind_info
-{
- bfd_byte Version_Flags;
- bfd_byte SizeOfPrologue;
- bfd_byte CountOfCodes;
- bfd_byte FrameRegisterOffset;
- /* external_pex64_unwind_code array. */
- /* bfd_byte handler[4]; */
- /* Optional language specific data. */
-};
-
-struct external_pex64_scope
-{
- bfd_vma Count;
-};
-
-struct pex64_scope
-{
- bfd_byte Count[4];
-};
-
-struct pex64_scope_entry
-{
- bfd_vma rva_BeginAddress;
- bfd_vma rva_EndAddress;
- bfd_vma rva_HandlerAddress;
- bfd_vma rva_JumpAddress;
-};
-#define PEX64_SCOPE_ENTRY_SIZE 16
-
-struct external_pex64_scope_entry
-{
- bfd_byte rva_BeginAddress[4];
- bfd_byte rva_EndAddress[4];
- bfd_byte rva_HandlerAddress[4];
- bfd_byte rva_JumpAddress[4];
-};
-
-#define PEX64_UWI_VERSION(VAL) ((VAL) & 7)
-#define PEX64_UWI_FLAGS(VAL) (((VAL) >> 3) & 0x1f)
-#define PEX64_UWI_FRAMEREG(VAL) ((VAL) & 0xf)
-#define PEX64_UWI_FRAMEOFF(VAL) (((VAL) >> 4) & 0xf)
-#define PEX64_UWI_SIZEOF_UWCODE_ARRAY(VAL) \
- ((((VAL) + 1) & ~1) * 2)
-
-#define PEX64_OFFSET_TO_UNWIND_CODE 0x4
-
-#define PEX64_OFFSET_TO_HANDLER_RVA (COUNTOFUNWINDCODES) \
- (PEX64_OFFSET_TO_UNWIND_CODE + \
- PEX64_UWI_SIZEOF_UWCODE_ARRAY(COUNTOFUNWINDCODES))
-
-#define PEX64_OFFSET_TO_SCOPE_COUNT(COUNTOFUNWINDCODES) \
- (PEX64_OFFSET_TO_HANDLER_RVA(COUNTOFUNWINDCODES) + 4)
-
-#define PEX64_SCOPE_ENTRY(COUNTOFUNWINDCODES, IDX) \
- (PEX64_OFFSET_TO_SCOPE_COUNT(COUNTOFUNWINDCODES) + \
- PEX64_SCOPE_ENTRY_SIZE * (IDX))
-
-#endif /* _PE_H */
diff --git a/include/coff/powerpc.h b/include/coff/powerpc.h
deleted file mode 100644
index eba473091..000000000
--- a/include/coff/powerpc.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Basic coff information for the PowerPC
- Based on coff/rs6000.h, coff/i386.h and others.
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- Initial release: Kim Knuttila (krk@cygnus.com) */
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-
-/* extra NT defines */
-#define PPCMAGIC 0760 /* peeked on aa PowerPC Windows NT box */
-#define DOSMAGIC 0x5a4d /* from arm.h, i386.h */
-#define NT_SIGNATURE 0x00004550 /* from arm.h, i386.h */
-
-/* from winnt.h */
-#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
-
-#define PPCBADMAG(x) ((x).f_magic != PPCMAGIC)
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/rs6000.h b/include/coff/rs6000.h
deleted file mode 100644
index d5b2af24a..000000000
--- a/include/coff/rs6000.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* IBM RS/6000 "XCOFF" file definitions for BFD.
- Copyright (C) 1990, 1991, 2001, 2010 Free Software Foundation, Inc.
- Written by Mimi Phuong-Thao Vo of IBM
- and John Gilmore of Cygnus Support.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
-};
-
- /* IBM RS/6000 */
-#define U802WRMAGIC 0730 /* writeable text segments **chh** */
-#define U802ROMAGIC 0735 /* readonly sharable text segments */
-#define U802TOCMAGIC 0737 /* readonly text segments and TOC */
-
-#define BADMAG(x) \
- ((x).f_magic != U802ROMAGIC && (x).f_magic != U802WRMAGIC && \
- (x).f_magic != U802TOCMAGIC)
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 20
-
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-
-typedef struct
-{
- unsigned char magic[2]; /* type of file */
- unsigned char vstamp[2]; /* version stamp */
- unsigned char tsize[4]; /* text size in bytes, padded to FW bdry */
- unsigned char dsize[4]; /* initialized data " " */
- unsigned char bsize[4]; /* uninitialized data " " */
- unsigned char entry[4]; /* entry pt. */
- unsigned char text_start[4]; /* base of text used for this file */
- unsigned char data_start[4]; /* base of data used for this file */
- unsigned char o_toc[4]; /* address of TOC */
- unsigned char o_snentry[2]; /* section number of entry point */
- unsigned char o_sntext[2]; /* section number of .text section */
- unsigned char o_sndata[2]; /* section number of .data section */
- unsigned char o_sntoc[2]; /* section number of TOC */
- unsigned char o_snloader[2]; /* section number of .loader section */
- unsigned char o_snbss[2]; /* section number of .bss section */
- unsigned char o_algntext[2]; /* .text alignment */
- unsigned char o_algndata[2]; /* .data alignment */
- unsigned char o_modtype[2]; /* module type (??) */
- unsigned char o_cputype[2]; /* cpu type */
- unsigned char o_maxstack[4]; /* max stack size (??) */
- unsigned char o_maxdata[4]; /* max data size (??) */
- unsigned char o_resv2[12]; /* reserved */
-}
-AOUTHDR;
-
-#define AOUTSZ 72
-#define SMALL_AOUTSZ (28)
-#define AOUTHDRSZ 72
-
-/********************** SECTION HEADER **********************/
-
-
-struct external_scnhdr {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries*/
- char s_flags[4]; /* flags */
-};
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 40
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno {
- union {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- } l_addr;
- char l_lnno[2]; /* line number */
-};
-
-
-#define LINENO struct external_lineno
-#define LINESZ 6
-
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union {
- char e_name[E_SYMNMLEN];
- struct {
- char e_zeroes[4];
- char e_offset[4];
- } e;
- } e;
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
-};
-
-
-
-#define N_BTMASK (017)
-#define N_TMASK (060)
-#define N_BTSHFT (4)
-#define N_TSHIFT (2)
-
-
-union external_auxent {
- struct {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- union {
- struct {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
- char x_fsize[4]; /* size of function */
- } x_misc;
- union {
- struct { /* if ISFCN, tag, or .bb */
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
- struct { /* if ISARY, up to 4 dimen. */
- char x_dimen[E_DIMNUM][2];
- } x_ary;
- } x_fcnary;
- char x_tvndx[2]; /* tv index */
- } x_sym;
-
- struct {
- union {
- char x_fname[E_FILNMLEN];
- struct {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
- } x_n;
- char x_ftype[1];
- } x_file;
-
- struct {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
- } x_scn;
-
- struct {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-
- struct {
- unsigned char x_scnlen[4];
- unsigned char x_parmhash[4];
- unsigned char x_snhash[2];
- unsigned char x_smtyp[1];
- unsigned char x_smclas[1];
- unsigned char x_stab[4];
- unsigned char x_snstab[2];
- } x_csect;
-
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
-#define AUXENT union external_auxent
-#define AUXESZ 18
-#define DBXMASK 0x80 /* for dbx storage mask */
-#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
-
-
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-
-struct external_reloc {
- char r_vaddr[4];
- char r_symndx[4];
- char r_size[1];
- char r_type[1];
-};
-
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
-#define DEFAULT_DATA_SECTION_ALIGNMENT 4
-#define DEFAULT_BSS_SECTION_ALIGNMENT 4
-#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
-/* For new sections we havn't heard of before */
-#define DEFAULT_SECTION_ALIGNMENT 4
-
-/* The ldhdr structure. This appears at the start of the .loader
- section. */
-
-struct external_ldhdr
-{
- bfd_byte l_version[4];
- bfd_byte l_nsyms[4];
- bfd_byte l_nreloc[4];
- bfd_byte l_istlen[4];
- bfd_byte l_nimpid[4];
- bfd_byte l_impoff[4];
- bfd_byte l_stlen[4];
- bfd_byte l_stoff[4];
-};
-
-#define LDHDRSZ (8 * 4)
-
-struct external_ldsym
-{
- union
- {
- bfd_byte _l_name[E_SYMNMLEN];
- struct
- {
- bfd_byte _l_zeroes[4];
- bfd_byte _l_offset[4];
- } _l_l;
- } _l;
- bfd_byte l_value[4];
- bfd_byte l_scnum[2];
- bfd_byte l_smtype[1];
- bfd_byte l_smclas[1];
- bfd_byte l_ifile[4];
- bfd_byte l_parm[4];
-};
-
-#define LDSYMSZ (8 + 3 * 4 + 2 + 2)
-
-struct external_ldrel
-{
- bfd_byte l_vaddr[4];
- bfd_byte l_symndx[4];
- bfd_byte l_rtype[2];
- bfd_byte l_rsecnm[2];
-};
-
-#define LDRELSZ (2 * 4 + 2 * 2)
-
-struct external_exceptab
-{
- union {
- bfd_byte e_symndx[4];
- bfd_byte e_paddr[4];
- } e_addr;
- bfd_byte e_lang[1];
- bfd_byte e_reason[1];
-};
-
-#define EXCEPTSZ (4 + 2)
diff --git a/include/coff/rs6k64.h b/include/coff/rs6k64.h
deleted file mode 100644
index 453198a56..000000000
--- a/include/coff/rs6k64.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/* IBM RS/6000 "XCOFF64" file definitions for BFD.
- Copyright (C) 2000, 2001, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
-{
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[8]; /* file pointer to symtab */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- char f_nsyms[4]; /* number of symtab entries */
-};
-
-/* IBM RS/6000. */
-#define U803XTOCMAGIC 0757 /* Aix 4.3 64-bit XCOFF */
-#define U64_TOCMAGIC 0767 /* AIX 5+ 64-bit XCOFF */
-#define BADMAG(x) ((x).f_magic != U803XTOCMAGIC && (x).f_magic != U64_TOCMAGIC)
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 24
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-typedef struct
-{
- unsigned char magic[2]; /* type of file */
- unsigned char vstamp[2]; /* version stamp */
- unsigned char o_debugger[4]; /* reserved */
- unsigned char text_start[8]; /* base of text used for this file */
- unsigned char data_start[8]; /* base of data used for this file */
- unsigned char o_toc[8]; /* address of TOC */
- unsigned char o_snentry[2]; /* section number of entry point */
- unsigned char o_sntext[2]; /* section number of .text section */
- unsigned char o_sndata[2]; /* section number of .data section */
- unsigned char o_sntoc[2]; /* section number of TOC */
- unsigned char o_snloader[2]; /* section number of .loader section */
- unsigned char o_snbss[2]; /* section number of .bss section */
- unsigned char o_algntext[2]; /* .text alignment */
- unsigned char o_algndata[2]; /* .data alignment */
- unsigned char o_modtype[2]; /* module type (??) */
- unsigned char o_cputype[2]; /* cpu type */
- unsigned char o_resv2[4]; /* reserved */
- unsigned char tsize[8]; /* text size bytes, padded to FW bdry */
- unsigned char dsize[8]; /* initialized data " " */
- unsigned char bsize[8]; /* uninitialized data " " */
- unsigned char entry[8]; /* entry pt. */
- unsigned char o_maxstack[8]; /* max stack size (??) */
- unsigned char o_maxdata[8]; /* max data size (??) */
- unsigned char o_resv3[16]; /* reserved */
-}
-AOUTHDR;
-
-#define AOUTSZ 120
-#define SMALL_AOUTSZ (0)
-#define AOUTHDRSZ 72
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
- char s_name[8]; /* section name */
- char s_paddr[8]; /* physical address, aliased s_nlib */
- char s_vaddr[8]; /* virtual address */
- char s_size[8]; /* section size */
- char s_scnptr[8]; /* file ptr to raw data for section */
- char s_relptr[8]; /* file ptr to relocation */
- char s_lnnoptr[8]; /* file ptr to line numbers */
- char s_nreloc[4]; /* number of relocation entries */
- char s_nlnno[4]; /* number of line number entries*/
- char s_flags[4]; /* flags */
- char s_pad[4]; /* padding */
-};
-
-#define SCNHDR struct external_scnhdr
-
-#define SCNHSZ 72
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- Line numbers are grouped on a per function basis; first entry in a function
- grouping will have l_lnno = 0 and in place of physical address will be the
- symbol table index of the function name. */
-
-struct external_lineno
-{
- union
- {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[8]; /* (physical) address of line number */
- } l_addr;
-
- char l_lnno[4]; /* line number */
-};
-
-#define LINENO struct external_lineno
-
-#define LINESZ 12
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- char e_value[8];
- char e_offset[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
-};
-
-#define N_BTMASK (017)
-#define N_TMASK (060)
-#define N_BTSHFT (4)
-#define N_TSHIFT (2)
-
-union external_auxent
-{
- struct {
- union {
- struct {
- char x_lnno[4]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
- struct {
- char x_lnnoptr[8];/* ptr to fcn line */
- char x_fsize[4]; /* size of function */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
- } x_fcnary;
- } x_sym;
-
- struct {
- union {
- char x_fname[E_FILNMLEN];
- struct {
- char x_zeroes[4];
- char x_offset[4];
- char x_pad[6];
- } x_n;
- } x_n;
- unsigned char x_ftype[1];
- unsigned char x_resv[2];
- } x_file;
-
- struct {
- char x_exptr[8];
- char x_fsize[4];
- char x_endndx[4];
- char x_pad[1];
- } x_except;
-
- struct {
- unsigned char x_scnlen_lo[4];
- unsigned char x_parmhash[4];
- unsigned char x_snhash[2];
- unsigned char x_smtyp[1];
- unsigned char x_smclas[1];
- unsigned char x_scnlen_hi[4];
- unsigned char x_pad[1];
- } x_csect;
-
- struct {
- char x_pad[17];
- char x_auxtype[1];
- } x_auxtype;
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
-#define AUXENT union external_auxent
-#define AUXESZ 18
-#define DBXMASK 0x80 /* for dbx storage mask */
-#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
-
-/* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h. */
-#define _AUX_EXCEPT 255
-#define _AUX_FCN 254
-#define _AUX_SYM 253
-#define _AUX_FILE 252
-#define _AUX_CSECT 251
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[8];
- char r_symndx[4];
- char r_size[1];
- char r_type[1];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 14
-
-#define DEFAULT_DATA_SECTION_ALIGNMENT 4
-#define DEFAULT_BSS_SECTION_ALIGNMENT 4
-#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
-/* For new sections we havn't heard of before */
-#define DEFAULT_SECTION_ALIGNMENT 4
-
-/* The ldhdr structure. This appears at the start of the .loader
- section. */
-
-struct external_ldhdr
-{
- bfd_byte l_version[4];
- bfd_byte l_nsyms[4];
- bfd_byte l_nreloc[4];
- bfd_byte l_istlen[4];
- bfd_byte l_nimpid[4];
- bfd_byte l_stlen[4];
- bfd_byte l_impoff[8];
- bfd_byte l_stoff[8];
- bfd_byte l_symoff[8];
- bfd_byte l_rldoff[8];
-};
-#define LDHDRSZ (56)
-
-struct external_ldsym
-{
- bfd_byte l_value[8];
- bfd_byte l_offset[4];
- bfd_byte l_scnum[2];
- bfd_byte l_smtype[1];
- bfd_byte l_smclas[1];
- bfd_byte l_ifile[4];
- bfd_byte l_parm[4];
-};
-
-#define LDSYMSZ (24)
-
-struct external_ldrel
-{
- bfd_byte l_vaddr[8];
- bfd_byte l_rtype[2];
- bfd_byte l_rsecnm[2];
- bfd_byte l_symndx[4];
-};
-
-#define LDRELSZ (16)
-
-struct external_exceptab
-{
- union {
- bfd_byte e_symndx[4];
- bfd_byte e_paddr[8];
- } e_addr;
- bfd_byte e_lang[1];
- bfd_byte e_reason[1];
-};
-
-#define EXCEPTSZ (10)
diff --git a/include/coff/sh.h b/include/coff/sh.h
deleted file mode 100644
index bf1310469..000000000
--- a/include/coff/sh.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* coff information for Renesas SH
-
- Copyright 2000, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifdef COFF_WITH_PE
-#define L_LNNO_SIZE 2
-#else
-#define L_LNNO_SIZE 4
-#endif
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-#include "coff/external.h"
-
-#define SH_ARCH_MAGIC_BIG 0x0500
-#define SH_ARCH_MAGIC_LITTLE 0x0550 /* Little endian SH */
-#define SH_ARCH_MAGIC_WINCE 0x01a2 /* Windows CE - little endian */
-#define SH_PE_MAGIC 0x010b
-
-#define SHBADMAG(x) \
- (((x).f_magic != SH_ARCH_MAGIC_BIG) && \
- ((x).f_magic != SH_ARCH_MAGIC_WINCE) && \
- ((x).f_magic != SH_ARCH_MAGIC_LITTLE))
-
-/* Define some NT default values. */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the h8 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes. */
-
-#ifndef COFF_WITH_PE
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-#else
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-#endif
-
-#define RELOC struct external_reloc
-#ifdef COFF_WITH_PE
-#define RELSZ 10
-#else
-#define RELSZ 16
-#endif
-
-/* SH relocation types. Not all of these are actually used. */
-
-#define R_SH_UNUSED 0 /* only used internally */
-#define R_SH_IMM32CE 2 /* 32 bit immediate for WinCE */
-#define R_SH_PCREL8 3 /* 8 bit pcrel */
-#define R_SH_PCREL16 4 /* 16 bit pcrel */
-#define R_SH_HIGH8 5 /* high 8 bits of 24 bit address */
-#define R_SH_LOW16 7 /* low 16 bits of 24 bit immediate */
-#define R_SH_IMM24 6 /* 24 bit immediate */
-#define R_SH_PCDISP8BY4 9 /* PC rel 8 bits *4 +ve */
-#define R_SH_PCDISP8BY2 10 /* PC rel 8 bits *2 +ve */
-#define R_SH_PCDISP8 11 /* 8 bit branch */
-#define R_SH_PCDISP 12 /* 12 bit branch */
-#define R_SH_IMM32 14 /* 32 bit immediate */
-#define R_SH_IMM8 16 /* 8 bit immediate */
-#define R_SH_IMAGEBASE 16 /* Windows CE */
-#define R_SH_IMM8BY2 17 /* 8 bit immediate *2 */
-#define R_SH_IMM8BY4 18 /* 8 bit immediate *4 */
-#define R_SH_IMM4 19 /* 4 bit immediate */
-#define R_SH_IMM4BY2 20 /* 4 bit immediate *2 */
-#define R_SH_IMM4BY4 21 /* 4 bit immediate *4 */
-#define R_SH_PCRELIMM8BY2 22 /* PC rel 8 bits *2 unsigned */
-#define R_SH_PCRELIMM8BY4 23 /* PC rel 8 bits *4 unsigned */
-#define R_SH_IMM16 24 /* 16 bit immediate */
-
-/* The switch table reloc types are used for relaxing. They are
- generated for expressions such as
- .word L1 - L2
- The r_offset field holds the difference between the reloc address
- and L2. */
-#define R_SH_SWITCH8 33 /* 8 bit switch table entry */
-#define R_SH_SWITCH16 25 /* 16 bit switch table entry */
-#define R_SH_SWITCH32 26 /* 32 bit switch table entry */
-
-/* The USES reloc type is used for relaxing. The compiler will
- generate .uses pseudo-ops when it finds a function call which it
- can relax. The r_offset field of the USES reloc holds the PC
- relative offset to the instruction which loads the register used in
- the function call. */
-#define R_SH_USES 27 /* .uses pseudo-op */
-
-/* The COUNT reloc type is used for relaxing. The assembler will
- generate COUNT relocs for addresses referred to by the register
- loads associated with USES relocs. The r_offset field of the COUNT
- reloc holds the number of times the address is referenced in the
- object file. */
-#define R_SH_COUNT 28 /* Count of constant pool uses */
-
-/* The ALIGN reloc type is used for relaxing. The r_offset field is
- the power of two to which subsequent portions of the object file
- must be aligned. */
-#define R_SH_ALIGN 29 /* .align pseudo-op */
-
-/* The CODE and DATA reloc types are used for aligning load and store
- instructions. The assembler will generate a CODE reloc before a
- block of instructions. It will generate a DATA reloc before data.
- A section should be processed assuming it contains data, unless a
- CODE reloc is seen. The only relevant pieces of information in the
- CODE and DATA relocs are the section and the address. The symbol
- and offset are meaningless. */
-#define R_SH_CODE 30 /* start of code */
-#define R_SH_DATA 31 /* start of data */
-
-/* The LABEL reloc type is used for aligning load and store
- instructions. The assembler will generate a LABEL reloc for each
- label within a block of instructions. This permits the linker to
- avoid swapping instructions which are the targets of branches. */
-#define R_SH_LABEL 32 /* label */
-
-/* NB: R_SH_SWITCH8 is 33 */
-
-#define R_SH_LOOP_START 34
-#define R_SH_LOOP_END 35
diff --git a/include/coff/sparc.h b/include/coff/sparc.h
deleted file mode 100644
index fa94c5f79..000000000
--- a/include/coff/sparc.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* coff information for Sparc.
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is an amalgamation of several standard include files that
- define coff format, such as filehdr.h, aouthdr.h, and so forth. In
- addition, all datatypes have been translated into character arrays of
- (presumed) equivalent size. This is necessary so that this file can
- be used with different systems while still yielding the same results. */
-
-#define L_LNNO_SIZE 2
-#define DO_NOT_DEFINE_SYMENT
-#define DO_NOT_DEFINE_AUXENT
-#include "coff/external.h"
-
-#define F_RELFLG (0x0001) /* relocation info stripped */
-#define F_EXEC (0x0002) /* file is executable */
-#define F_LNNO (0x0004) /* line numbers stripped */
-#define F_LSYMS (0x0008) /* local symbols stripped */
-
-#define SPARCMAGIC (0540)
-
-/* This is Lynx's all-platform magic number for executables. */
-
-#define LYNXCOFFMAGIC (0415)
-
-#define OMAGIC 0404 /* object files, eg as output */
-#define ZMAGIC 0413 /* demand load format, eg normal ld output */
-#define STMAGIC 0401 /* target shlib */
-#define SHMAGIC 0443 /* host shlib */
-
-/* More names of "special" sections. */
-
-#define _TV ".tv"
-#define _INIT ".init"
-#define _FINI ".fini"
-
-/********************** SYMBOLS **********************/
-
-#define E_SYMNMLEN (8) /* # characters in a symbol name */
-#define E_FILNMLEN (14) /* # characters in a file name */
-#define E_DIMNUM (4) /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union {
- char e_name[E_SYMNMLEN];
- struct {
- char e_zeroes[4];
- char e_offset[4];
- } e;
-#if 0 /* of doubtful value */
- char e_nptr[2][4];
- struct {
- char e_leading_zero[1];
- char e_dbx_type[1];
- char e_dbx_desc[2];
- } e_dbx;
-#endif
- } e;
-
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
- char padding[2];
-};
-
-#define N_BTMASK (0xf)
-#define N_TMASK (0x30)
-#define N_BTSHFT (4)
-#define N_TSHIFT (2)
-
-union external_auxent
-{
- struct {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- union {
- struct {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
- char x_fsize[4]; /* size of function */
- } x_misc;
- union {
- struct { /* if ISFCN, tag, or .bb */
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
- struct { /* if ISARY, up to 4 dimen. */
- char x_dimen[E_DIMNUM][2];
- } x_ary;
- } x_fcnary;
- char x_tvndx[2]; /* tv index */
- } x_sym;
-
- union {
- char x_fname[E_FILNMLEN];
- struct {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
- } x_file;
-
- struct {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
- } x_scn;
-
- struct {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* .tv section info (in auxent of sym .tv)) */
-
- char x_fill[20]; /* forces to 20-byte size */
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 20
-#define AUXENT union external_auxent
-#define AUXESZ 20
-
-#define _ETEXT "etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
- char r_spare[2];
- char r_offset[4];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
diff --git a/include/coff/sym.h b/include/coff/sym.h
deleted file mode 100644
index 76204af59..000000000
--- a/include/coff/sym.h
+++ /dev/null
@@ -1,484 +0,0 @@
-/* Declarations of internal format of MIPS ECOFF symbols.
- Originally contributed by MIPS Computer Systems and Third Eye Software.
- Changes contributed by Cygnus Support are in the public domain.
-
- This file is just aggregated with the files that make up the GNU
- release; it is not considered part of GAS, GDB, or other GNU
- programs. */
-
-/*
- * |-----------------------------------------------------------|
- * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
- * | MIPS Computer Systems, Inc. grants reproduction and use |
- * | rights to all parties, PROVIDED that this comment is |
- * | maintained in the copy. |
- * |-----------------------------------------------------------|
- */
-#ifndef _SYM_H
-#define _SYM_H
-
-/* (C) Copyright 1984 by Third Eye Software, Inc.
- *
- * Third Eye Software, Inc. grants reproduction and use rights to
- * all parties, PROVIDED that this comment is maintained in the copy.
- *
- * Third Eye makes no claims about the applicability of this
- * symbol table to a particular use.
- */
-
-/*
- * This file contains the definition of the Third Eye Symbol Table.
- *
- * Symbols are assumed to be in 'encounter order' - i.e. the order that
- * the things they represent were encountered by the compiler/assembler/loader.
- * EXCEPT for globals! These are assumed to be bunched together,
- * probably right after the last 'normal' symbol. Globals ARE sorted
- * in ascending order.
- *
- * -----------------------------------------------------------------------
- * A brief word about Third Eye naming/use conventions:
- *
- * All arrays and index's are 0 based.
- * All "ifooMax" values are the highest legal value PLUS ONE. This makes
- * them good for allocating arrays, etc. All checks are "ifoo < ifooMax".
- *
- * "isym" Index into the SYMbol table.
- * "ipd" Index into the Procedure Descriptor array.
- * "ifd" Index into the File Descriptor array.
- * "iss" Index into String Space.
- * "cb" Count of Bytes.
- * "rgPd" array whose domain is "0..ipdMax-1" and RanGe is PDR.
- * "rgFd" array whose domain is "0..ifdMax-1" and RanGe is FDR.
- */
-
-
-/*
- * Symbolic Header (HDR) structure.
- * As long as all the pointers are set correctly,
- * we don't care WHAT order the various sections come out in!
- *
- * A file produced solely for the use of CDB will probably NOT have
- * any instructions or data areas in it, as these are available
- * in the original.
- */
-
-typedef struct {
- short magic; /* to verify validity of the table */
- short vstamp; /* version stamp */
- long ilineMax; /* number of line number entries */
- bfd_vma cbLine; /* number of bytes for line number entries */
- bfd_vma cbLineOffset; /* offset to start of line number entries*/
- long idnMax; /* max index into dense number table */
- bfd_vma cbDnOffset; /* offset to start dense number table */
- long ipdMax; /* number of procedures */
- bfd_vma cbPdOffset; /* offset to procedure descriptor table */
- long isymMax; /* number of local symbols */
- bfd_vma cbSymOffset; /* offset to start of local symbols*/
- long ioptMax; /* max index into optimization symbol entries */
- bfd_vma cbOptOffset; /* offset to optimization symbol entries */
- long iauxMax; /* number of auxillary symbol entries */
- bfd_vma cbAuxOffset; /* offset to start of auxillary symbol entries*/
- long issMax; /* max index into local strings */
- bfd_vma cbSsOffset; /* offset to start of local strings */
- long issExtMax; /* max index into external strings */
- bfd_vma cbSsExtOffset; /* offset to start of external strings */
- long ifdMax; /* number of file descriptor entries */
- bfd_vma cbFdOffset; /* offset to file descriptor table */
- long crfd; /* number of relative file descriptor entries */
- bfd_vma cbRfdOffset; /* offset to relative file descriptor table */
- long iextMax; /* max index into external symbols */
- bfd_vma cbExtOffset; /* offset to start of external symbol entries*/
- /* If you add machine dependent fields, add them here */
- } HDRR, *pHDRR;
-#define cbHDRR sizeof(HDRR)
-#define hdrNil ((pHDRR)0)
-
-/*
- * The FDR and PDR structures speed mapping of address <-> name.
- * They are sorted in ascending memory order and are kept in
- * memory by CDB at runtime.
- */
-
-/*
- * File Descriptor
- *
- * There is one of these for EVERY FILE, whether compiled with
- * full debugging symbols or not. The name of a file should be
- * the path name given to the compiler. This allows the user
- * to simply specify the names of the directories where the COMPILES
- * were done, and we will be able to find their files.
- * A field whose comment starts with "R - " indicates that it will be
- * setup at runtime.
- */
-typedef struct fdr {
- bfd_vma adr; /* memory address of beginning of file */
- long rss; /* file name (of source, if known) */
- long issBase; /* file's string space */
- bfd_vma cbSs; /* number of bytes in the ss */
- long isymBase; /* beginning of symbols */
- long csym; /* count file's of symbols */
- long ilineBase; /* file's line symbols */
- long cline; /* count of file's line symbols */
- long ioptBase; /* file's optimization entries */
- long copt; /* count of file's optimization entries */
- unsigned short ipdFirst;/* start of procedures for this file */
- short cpd; /* count of procedures for this file */
- long iauxBase; /* file's auxiliary entries */
- long caux; /* count of file's auxiliary entries */
- long rfdBase; /* index into the file indirect table */
- long crfd; /* count file indirect entries */
- unsigned lang: 5; /* language for this file */
- unsigned fMerge : 1; /* whether this file can be merged */
- unsigned fReadin : 1; /* true if it was read in (not just created) */
- unsigned fBigendian : 1;/* if set, was compiled on big endian machine */
- /* aux's will be in compile host's sex */
- unsigned glevel : 2; /* level this file was compiled with */
- unsigned reserved : 22; /* reserved for future use */
- bfd_vma cbLineOffset; /* byte offset from header for this file ln's */
- bfd_vma cbLine; /* size of lines for this file */
- } FDR, *pFDR;
-#define cbFDR sizeof(FDR)
-#define fdNil ((pFDR)0)
-#define ifdNil -1
-#define ifdTemp 0
-#define ilnNil -1
-
-
-/*
- * Procedure Descriptor
- *
- * There is one of these for EVERY TEXT LABEL.
- * If a procedure is in a file with full symbols, then isym
- * will point to the PROC symbols, else it will point to the
- * global symbol for the label.
- */
-
-typedef struct pdr {
- bfd_vma adr; /* memory address of start of procedure */
- long isym; /* start of local symbol entries */
- long iline; /* start of line number entries*/
- long regmask; /* save register mask */
- long regoffset; /* save register offset */
- long iopt; /* start of optimization symbol entries*/
- long fregmask; /* save floating point register mask */
- long fregoffset; /* save floating point register offset */
- long frameoffset; /* frame size */
- short framereg; /* frame pointer register */
- short pcreg; /* offset or reg of return pc */
- long lnLow; /* lowest line in the procedure */
- long lnHigh; /* highest line in the procedure */
- bfd_vma cbLineOffset; /* byte offset for this procedure from the fd base */
- /* These fields are new for 64 bit ECOFF. */
- unsigned gp_prologue : 8; /* byte size of GP prologue */
- unsigned gp_used : 1; /* true if the procedure uses GP */
- unsigned reg_frame : 1; /* true if register frame procedure */
- unsigned prof : 1; /* true if compiled with -pg */
- unsigned reserved : 13; /* reserved: must be zero */
- unsigned localoff : 8; /* offset of local variables from vfp */
- } PDR, *pPDR;
-#define cbPDR sizeof(PDR)
-#define pdNil ((pPDR) 0)
-#define ipdNil -1
-
-/*
- * The structure of the runtime procedure descriptor created by the loader
- * for use by the static exception system.
- */
-/*
- * If 0'd out because exception_info chokes Visual C++ and because there
- * don't seem to be any references to this structure elsewhere in gdb.
- */
-#if 0
-typedef struct runtime_pdr {
- bfd_vma adr; /* memory address of start of procedure */
- long regmask; /* save register mask */
- long regoffset; /* save register offset */
- long fregmask; /* save floating point register mask */
- long fregoffset; /* save floating point register offset */
- long frameoffset; /* frame size */
- short framereg; /* frame pointer register */
- short pcreg; /* offset or reg of return pc */
- long irpss; /* index into the runtime string table */
- long reserved;
- struct exception_info *exception_info;/* pointer to exception array */
-} RPDR, *pRPDR;
-#define cbRPDR sizeof(RPDR)
-#define rpdNil ((pRPDR) 0)
-#endif
-
-/*
- * Line Numbers
- *
- * Line Numbers are segregated from the normal symbols because they
- * are [1] smaller , [2] are of no interest to your
- * average loader, and [3] are never needed in the middle of normal
- * scanning and therefore slow things down.
- *
- * By definition, the first LINER for any given procedure will have
- * the first line of a procedure and represent the first address.
- */
-
-typedef long LINER, *pLINER;
-#define lineNil ((pLINER)0)
-#define cbLINER sizeof(LINER)
-#define ilineNil -1
-
-
-
-/*
- * The Symbol Structure (GFW, to those who Know!)
- */
-
-typedef struct {
- long iss; /* index into String Space of name */
- bfd_vma value; /* value of symbol */
- unsigned st : 6; /* symbol type */
- unsigned sc : 5; /* storage class - text, data, etc */
- unsigned reserved : 1; /* reserved */
- unsigned index : 20; /* index into sym/aux table */
- } SYMR, *pSYMR;
-#define symNil ((pSYMR)0)
-#define cbSYMR sizeof(SYMR)
-#define isymNil -1
-#define indexNil 0xfffff
-#define issNil -1
-#define issNull 0
-
-
-/* The following converts a memory resident string to an iss.
- * This hack is recognized in SbFIss, in sym.c of the debugger.
- */
-#define IssFSb(sb) (0x80000000 | ((unsigned long)(sb)))
-
-/* E X T E R N A L S Y M B O L R E C O R D
- *
- * Same as the SYMR except it contains file context to determine where
- * the index is.
- */
-typedef struct ecoff_extr {
- unsigned jmptbl:1; /* symbol is a jump table entry for shlibs */
- unsigned cobol_main:1; /* symbol is a cobol main procedure */
- unsigned weakext:1; /* symbol is weak external */
- unsigned reserved:13; /* reserved for future use */
- int ifd; /* where the iss and index fields point into */
- SYMR asym; /* symbol for the external */
- } EXTR, *pEXTR;
-#define extNil ((pEXTR)0)
-#define cbEXTR sizeof(EXTR)
-
-
-/* A U X I L L A R Y T Y P E I N F O R M A T I O N */
-
-/*
- * Type Information Record
- */
-typedef struct {
- unsigned fBitfield : 1; /* set if bit width is specified */
- unsigned continued : 1; /* indicates additional TQ info in next AUX */
- unsigned bt : 6; /* basic type */
- unsigned tq4 : 4;
- unsigned tq5 : 4;
- /* ---- 16 bit boundary ---- */
- unsigned tq0 : 4;
- unsigned tq1 : 4; /* 6 type qualifiers - tqPtr, etc. */
- unsigned tq2 : 4;
- unsigned tq3 : 4;
- } TIR, *pTIR;
-#define cbTIR sizeof(TIR)
-#define tiNil ((pTIR)0)
-#define itqMax 6
-
-/*
- * Relative symbol record
- *
- * If the rfd field is 4095, the index field indexes into the global symbol
- * table.
- */
-
-typedef struct {
- unsigned rfd : 12; /* index into the file indirect table */
- unsigned index : 20; /* index int sym/aux/iss tables */
- } RNDXR, *pRNDXR;
-#define cbRNDXR sizeof(RNDXR)
-#define rndxNil ((pRNDXR)0)
-
-/* dense numbers or sometimes called block numbers are stored in this type,
- * a rfd of 0xffffffff is an index into the global table.
- */
-typedef struct {
- unsigned long rfd; /* index into the file table */
- unsigned long index; /* index int sym/aux/iss tables */
- } DNR, *pDNR;
-#define cbDNR sizeof(DNR)
-#define dnNil ((pDNR)0)
-
-
-
-/*
- * Auxillary information occurs only if needed.
- * It ALWAYS occurs in this order when present.
-
- isymMac used by stProc only
- TIR type info
- TIR additional TQ info (if first TIR was not enough)
- rndx if (bt == btStruct,btUnion,btEnum,btSet,btRange,
- btTypedef):
- rsym.index == iaux for btSet or btRange
- else rsym.index == isym
- dimLow btRange, btSet
- dimMac btRange, btSet
- rndx0 As many as there are tq arrays
- dimLow0
- dimHigh0
- ...
- rndxMax-1
- dimLowMax-1
- dimHighMax-1
- width in bits if (bit field), width in bits.
- */
-#define cAuxMax (6 + (idimMax*3))
-
-/* a union of all possible info in the AUX universe */
-typedef union {
- TIR ti; /* type information record */
- RNDXR rndx; /* relative index into symbol table */
- long dnLow; /* low dimension */
- long dnHigh; /* high dimension */
- long isym; /* symbol table index (end of proc) */
- long iss; /* index into string space (not used) */
- long width; /* width for non-default sized struc fields */
- long count; /* count of ranges for variant arm */
- } AUXU, *pAUXU;
-#define cbAUXU sizeof(AUXU)
-#define auxNil ((pAUXU)0)
-#define iauxNil -1
-
-
-/*
- * Optimization symbols
- *
- * Optimization symbols contain some overlap information with the normal
- * symbol table. In particular, the proc information
- * is somewhat redundant but necessary to easily find the other information
- * present.
- *
- * All of the offsets are relative to the beginning of the last otProc
- */
-
-typedef struct {
- unsigned ot: 8; /* optimization type */
- unsigned value: 24; /* address where we are moving it to */
- RNDXR rndx; /* points to a symbol or opt entry */
- unsigned long offset; /* relative offset this occured */
- } OPTR, *pOPTR;
-#define optNil ((pOPTR) 0)
-#define cbOPTR sizeof(OPTR)
-#define ioptNil -1
-
-/*
- * File Indirect
- *
- * When a symbol is referenced across files the following procedure is used:
- * 1) use the file index to get the File indirect entry.
- * 2) use the file indirect entry to get the File descriptor.
- * 3) add the sym index to the base of that file's sym table
- *
- */
-
-typedef long RFDT, *pRFDT;
-#define cbRFDT sizeof(RFDT)
-#define rfdNil -1
-
-/*
- * The file indirect table in the mips loader is known as an array of FITs.
- * This is done to keep the code in the loader readable in the area where
- * these tables are merged. Note this is only a name change.
- */
-typedef long FIT, *pFIT;
-#define cbFIT sizeof(FIT)
-#define ifiNil -1
-#define fiNil ((pFIT) 0)
-
-#ifdef _LANGUAGE_PASCAL
-#define ifdNil -1
-#define ilnNil -1
-#define ipdNil -1
-#define ilineNil -1
-#define isymNil -1
-#define indexNil 16#fffff
-#define issNil -1
-#define issNull 0
-#define itqMax 6
-#define iauxNil -1
-#define ioptNil -1
-#define rfdNil -1
-#define ifiNil -1
-#endif /* _LANGUAGE_PASCAL */
-
-
-/* Dense numbers
- *
- * Rather than use file index, symbol index pairs to represent symbols
- * and globals, we use dense number so that they can be easily embeded
- * in intermediate code and the programs that process them can
- * use direct access tabls instead of hash table (which would be
- * necesary otherwise because of the sparse name space caused by
- * file index, symbol index pairs. Dense number are represented
- * by RNDXRs.
- */
-
-/*
- * The following table defines the meaning of each SYM field as
- * a function of the "st". (scD/B == scData OR scBss)
- *
- * Note: the value "isymMac" is used by symbols that have the concept
- * of enclosing a block of related information. This value is the
- * isym of the first symbol AFTER the end associated with the primary
- * symbol. For example if a procedure was at isym==90 and had an
- * isymMac==155, the associated end would be at isym==154, and the
- * symbol at 155 would probably (although not necessarily) be the
- * symbol for the next procedure. This allows rapid skipping over
- * internal information of various sorts. "stEnd"s ALWAYS have the
- * isym of the primary symbol that started the block.
- *
-
-ST SC VALUE INDEX
--------- ------ -------- ------
-stFile scText address isymMac
-stLabel scText address ---
-stGlobal scD/B address iaux
-stStatic scD/B address iaux
-stParam scAbs offset iaux
-stLocal scAbs offset iaux
-stProc scText address iaux (isymMac is first AUX)
-stStaticProc scText address iaux (isymMac is first AUX)
-
-stMember scNil ordinal --- (if member of enum)
- (mipsread thinks the case below has a bit, not byte, offset.)
-stMember scNil byte offset iaux (if member of struct/union)
-stMember scBits bit offset iaux (bit field spec)
-
-stBlock scText address isymMac (text block)
- (the code seems to think that rather than scNil, we see scInfo for
- the two cases below.)
-stBlock scNil cb isymMac (struct/union member define)
-stBlock scNil cMembers isymMac (enum member define)
-
- (New types added by SGI to simplify things:)
-stStruct scInfo cb isymMac (struct type define)
-stUnion scInfo cb isymMac (union type define)
-stEnum scInfo cMembers isymMac (enum type define)
-
-stEnd scText address isymStart
-stEnd scNil ------- isymStart (struct/union/enum)
-
-stTypedef scNil ------- iaux
-stRegReloc sc??? value old register number
-stForward sc??? new address isym to original symbol
-
-stConstant scInfo value --- (scalar)
-stConstant scInfo iss --- (complex, e.g. string)
-
- *
- */
-#endif
diff --git a/include/coff/symconst.h b/include/coff/symconst.h
deleted file mode 100644
index ac62ba222..000000000
--- a/include/coff/symconst.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Declarations of constants for internal format of MIPS ECOFF symbols.
- Originally contributed by MIPS Computer Systems and Third Eye Software.
- Changes contributed by Cygnus Support are in the public domain.
-
- This file is just aggregated with the files that make up the GNU
- release; it is not considered part of GAS, GDB, or other GNU
- programs. */
-
-/*
- * |-----------------------------------------------------------|
- * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
- * | MIPS Computer Systems, Inc. grants reproduction and use |
- * | rights to all parties, PROVIDED that this comment is |
- * | maintained in the copy. |
- * |-----------------------------------------------------------|
- */
-
-/* (C) Copyright 1984 by Third Eye Software, Inc.
- *
- * Third Eye Software, Inc. grants reproduction and use rights to
- * all parties, PROVIDED that this comment is maintained in the copy.
- *
- * Third Eye makes no claims about the applicability of this
- * symbol table to a particular use.
- */
-
-/* glevels for field in FDR */
-#define GLEVEL_0 2
-#define GLEVEL_1 1
-#define GLEVEL_2 0 /* for upward compat reasons. */
-#define GLEVEL_3 3
-
-/* magic number fo symheader */
-#define magicSym 0x7009
-/* The Alpha uses this value instead, for some reason. */
-#define magicSym2 0x1992
-
-/* Language codes */
-#define langC 0
-#define langPascal 1
-#define langFortran 2
-#define langAssembler 3 /* one Assembley inst might map to many mach */
-#define langMachine 4
-#define langNil 5
-#define langAda 6
-#define langPl1 7
-#define langCobol 8
-#define langStdc 9 /* FIXME: Collides with SGI langCplusplus */
-#define langCplusplus 9 /* FIXME: Collides with langStdc */
-#define langCplusplusV2 10 /* SGI addition */
-#define langMax 11 /* maximum allowed 32 -- 5 bits */
-
-/* The following are value definitions for the fields in the SYMR */
-
-/*
- * Storage Classes
- */
-
-#define scNil 0
-#define scText 1 /* text symbol */
-#define scData 2 /* initialized data symbol */
-#define scBss 3 /* un-initialized data symbol */
-#define scRegister 4 /* value of symbol is register number */
-#define scAbs 5 /* value of symbol is absolute */
-#define scUndefined 6 /* who knows? */
-#define scCdbLocal 7 /* variable's value is IN se->va.?? */
-#define scBits 8 /* this is a bit field */
-#define scCdbSystem 9 /* variable's value is IN CDB's address space */
-#define scDbx 9 /* overlap dbx internal use */
-#define scRegImage 10 /* register value saved on stack */
-#define scInfo 11 /* symbol contains debugger information */
-#define scUserStruct 12 /* address in struct user for current process */
-#define scSData 13 /* load time only small data */
-#define scSBss 14 /* load time only small common */
-#define scRData 15 /* load time only read only data */
-#define scVar 16 /* Var parameter (fortran,pascal) */
-#define scCommon 17 /* common variable */
-#define scSCommon 18 /* small common */
-#define scVarRegister 19 /* Var parameter in a register */
-#define scVariant 20 /* Variant record */
-#define scSUndefined 21 /* small undefined(external) data */
-#define scInit 22 /* .init section symbol */
-#define scBasedVar 23 /* Fortran or PL/1 ptr based var */
-#define scXData 24 /* exception handling data */
-#define scPData 25 /* Procedure section */
-#define scFini 26 /* .fini section */
-#define scRConst 27 /* .rconst section */
-#define scMax 32
-
-
-/*
- * Symbol Types
- */
-
-#define stNil 0 /* Nuthin' special */
-#define stGlobal 1 /* external symbol */
-#define stStatic 2 /* static */
-#define stParam 3 /* procedure argument */
-#define stLocal 4 /* local variable */
-#define stLabel 5 /* label */
-#define stProc 6 /* " " Procedure */
-#define stBlock 7 /* beginnning of block */
-#define stEnd 8 /* end (of anything) */
-#define stMember 9 /* member (of anything - struct/union/enum */
-#define stTypedef 10 /* type definition */
-#define stFile 11 /* file name */
-#define stRegReloc 12 /* register relocation */
-#define stForward 13 /* forwarding address */
-#define stStaticProc 14 /* load time only static procs */
-#define stConstant 15 /* const */
-#define stStaParam 16 /* Fortran static parameters */
- /* These new symbol types have been recently added to SGI machines. */
-#define stStruct 26 /* Beginning of block defining a struct type */
-#define stUnion 27 /* Beginning of block defining a union type */
-#define stEnum 28 /* Beginning of block defining an enum type */
-#define stIndirect 34 /* Indirect type specification */
- /* Pseudo-symbols - internal to debugger */
-#define stStr 60 /* string */
-#define stNumber 61 /* pure number (ie. 4 NOR 2+2) */
-#define stExpr 62 /* 2+2 vs. 4 */
-#define stType 63 /* post-coersion SER */
-#define stMax 64
-
-/* definitions for fields in TIR */
-
-/* type qualifiers for ti.tq0 -> ti.(itqMax-1) */
-#define tqNil 0 /* bt is what you see */
-#define tqPtr 1 /* pointer */
-#define tqProc 2 /* procedure */
-#define tqArray 3 /* duh */
-#define tqFar 4 /* longer addressing - 8086/8 land */
-#define tqVol 5 /* volatile */
-#define tqConst 6 /* const */
-#define tqMax 8
-
-/* basic types as seen in ti.bt */
-#define btNil 0 /* undefined (also, enum members) */
-#define btAdr 1 /* address - integer same size as pointer */
-#define btChar 2 /* character */
-#define btUChar 3 /* unsigned character */
-#define btShort 4 /* short */
-#define btUShort 5 /* unsigned short */
-#define btInt 6 /* int */
-#define btUInt 7 /* unsigned int */
-#define btLong 8 /* long */
-#define btULong 9 /* unsigned long */
-#define btFloat 10 /* float (real) */
-#define btDouble 11 /* Double (real) */
-#define btStruct 12 /* Structure (Record) */
-#define btUnion 13 /* Union (variant) */
-#define btEnum 14 /* Enumerated */
-#define btTypedef 15 /* defined via a typedef, isymRef points */
-#define btRange 16 /* subrange of int */
-#define btSet 17 /* pascal sets */
-#define btComplex 18 /* fortran complex */
-#define btDComplex 19 /* fortran double complex */
-#define btIndirect 20 /* forward or unnamed typedef */
-#define btFixedDec 21 /* Fixed Decimal */
-#define btFloatDec 22 /* Float Decimal */
-#define btString 23 /* Varying Length Character String */
-#define btBit 24 /* Aligned Bit String */
-#define btPicture 25 /* Picture */
-#define btVoid 26 /* void */
-#define btLongLong 27 /* long long */
-#define btULongLong 28 /* unsigned long long */
-#define btLong64 30 /* long (64-bit) */
-#define btULong64 31 /* unsigned long (64-bit) */
-#define btLongLong64 32 /* long long (64-bit) */
-#define btULongLong64 33 /* unsigned long long (64-bit) */
-#define btAdr64 34 /* address (64-bit) */
-#define btInt64 35 /* int (64-bit) */
-#define btUInt64 36 /* unsigned int (64-bit) */
-#define btMax 64
-
-#if (_MFG == _MIPS)
-/* optimization type codes */
-#define otNil 0
-#define otReg 1 /* move var to reg */
-#define otBlock 2 /* begin basic block */
-#define otProc 3 /* procedure */
-#define otInline 4 /* inline procedure */
-#define otEnd 5 /* whatever you started */
-#define otMax 6 /* KEEP UP TO DATE */
-#endif /* (_MFG == _MIPS) */
diff --git a/include/coff/ti.h b/include/coff/ti.h
deleted file mode 100644
index 61010a210..000000000
--- a/include/coff/ti.h
+++ /dev/null
@@ -1,558 +0,0 @@
-/* COFF information for TI COFF support. Definitions in this file should be
- customized in a target-specific file, and then this file included (see
- tic54x.h for an example).
-
- Copyright 2000, 2001, 2002, 2003, 2005, 2008, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef COFF_TI_H
-#define COFF_TI_H
-
-/* Note "coff/external.h is not used because TI adds extra fields to the structures. */
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
- {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- char f_target_id[2]; /* magic no. (TI COFF-specific) */
- };
-
-/* COFF0 has magic number in f_magic, and omits f_target_id from the file
- header; for later versions, f_magic is 0xC1 for COFF1 and 0xC2 for COFF2
- and the target-specific magic number is found in f_target_id */
-
-#define TICOFF0MAGIC TI_TARGET_ID
-#define TICOFF1MAGIC 0x00C1
-#define TICOFF2MAGIC 0x00C2
-#define TICOFF_AOUT_MAGIC 0x0108 /* magic number in optional header */
-#define TICOFF 1 /* customize coffcode.h */
-
-/* The target_id field changes depending on the particular CPU target */
-/* for COFF0, the target id appeared in f_magic, where COFFX magic is now */
-#ifndef TI_TARGET_ID
-#error "TI_TARGET_ID needs to be defined for your CPU"
-#endif
-
-/* Which bfd_arch to use... */
-#ifndef TICOFF_TARGET_ARCH
-#error "TICOFF_TARGET_ARCH needs to be defined for your CPU"
-#endif
-
-#ifndef TICOFF_TARGET_MACHINE_GET
-#define TICOFF_TARGET_MACHINE_GET(FLAGS) 0
-#endif
-
-#ifndef TICOFF_TARGET_MACHINE_SET
-#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE)
-#endif
-
-/* Default to COFF2 for file output */
-#ifndef TICOFF_DEFAULT_MAGIC
-#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC
-#endif
-
-/* This value is made available in the rare case where a bfd is unavailable */
-#ifndef OCTETS_PER_BYTE_POWER
-#error "OCTETS_PER_BYTE_POWER not defined for this CPU"
-#else
-#define OCTETS_PER_BYTE (1<<OCTETS_PER_BYTE_POWER)
-#endif
-
-/* default alignment is on a byte (not octet!) boundary */
-#ifndef COFF_DEFAULT_SECTION_ALIGNMENT_POWER
-#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER 0
-#endif
-
-/* TI COFF encodes the section alignment in the section header flags */
-#define COFF_ALIGN_IN_SECTION_HEADER 1
-#define COFF_ALIGN_IN_S_FLAGS 1
-/* requires a power-of-two argument */
-#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8))
-/* result is a power of two */
-#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF)
-
-#define COFF0_P(ABFD) (bfd_coff_filhsz(ABFD) == FILHSZ_V0)
-#define COFF2_P(ABFD) (bfd_coff_scnhsz(ABFD) != SCNHSZ_V01)
-
-#define COFF0_BADMAG(x) ((x).f_magic != TICOFF0MAGIC)
-#define COFF1_BADMAG(x) ((x).f_magic != TICOFF1MAGIC || (x).f_target_id != TI_TARGET_ID)
-#define COFF2_BADMAG(x) ((x).f_magic != TICOFF2MAGIC || (x).f_target_id != TI_TARGET_ID)
-
-/* we need to read/write an extra field in the coff file header */
-#ifndef COFF_ADJUST_FILEHDR_IN_POST
-#define COFF_ADJUST_FILEHDR_IN_POST(abfd, src, dst) \
- do \
- { \
- if (!COFF0_P (abfd)) \
- ((struct internal_filehdr *)(dst))->f_target_id = \
- H_GET_16 (abfd, ((FILHDR *)(src))->f_target_id); \
- } \
- while (0)
-#endif
-
-#ifndef COFF_ADJUST_FILEHDR_OUT_POST
-#define COFF_ADJUST_FILEHDR_OUT_POST(abfd, src, dst) \
- do \
- { \
- if (!COFF0_P (abfd)) \
- H_PUT_16 (abfd, ((struct internal_filehdr *)(src))->f_target_id, \
- ((FILHDR *)(dst))->f_target_id); \
- } \
- while (0)
-#endif
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 22
-#define FILHSZ_V0 20 /* COFF0 omits target_id field */
-
-/* File header flags */
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_VERS (0x0010) /* TMS320C4x code */
-/* F_LSYMS needs to be redefined in your source file */
-#define F_LSYMS_TICOFF (0x0010) /* normal COFF is 0x8 */
-
-#define F_10 0x00 /* file built for TMS320C1x devices */
-#define F_20 0x10 /* file built for TMS320C2x devices */
-#define F_25 0x20 /* file built for TMS320C2x/C5x devices */
-#define F_LENDIAN 0x0100 /* 16 bits/word, LSB first */
-#define F_SYMMERGE 0x1000 /* duplicate symbols were removed */
-
-/********************** OPTIONAL HEADER **********************/
-
-
-typedef struct
-{
- char magic[2]; /* type of file (0x108) */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
-}
-AOUTHDR;
-
-
-#define AOUTHDRSZ 28
-#define AOUTSZ 28
-
-
-/********************** SECTION HEADER **********************/
-/* COFF0, COFF1 */
-struct external_scnhdr_v01 {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size (in WORDS) */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries*/
- char s_flags[2]; /* flags */
- char s_reserved[1]; /* reserved */
- char s_page[1]; /* section page number (LOAD) */
-};
-
-/* COFF2 */
-struct external_scnhdr {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size (in WORDS) */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[4]; /* number of relocation entries */
- char s_nlnno[4]; /* number of line number entries*/
- char s_flags[4]; /* flags */
- char s_reserved[2]; /* reserved */
- char s_page[2]; /* section page number (LOAD) */
-};
-
-/*
- * Special section flags
- */
-
-/* TI COFF defines these flags;
- STYP_CLINK: the section should be excluded from the final
- linker output if there are no references found to any symbol in the section
- STYP_BLOCK: the section should be blocked, i.e. if the section would cross
- a page boundary, it is started at a page boundary instead.
- TI COFF puts the section alignment power of two in the section flags
- e.g. 2**N is alignment, flags |= (N & 0xF) << 8
-*/
-#define STYP_CLINK (0x4000)
-#define STYP_BLOCK (0x1000)
-#define STYP_ALIGN (0x0F00) /* TI COFF stores section alignment here */
-
-#define SCNHDR_V01 struct external_scnhdr_v01
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ_V01 40 /* for v0 and v1 */
-#define SCNHSZ 48
-
-/* COFF2 changes the offsets and sizes of these fields
- Assume we're dealing with the COFF2 scnhdr structure, and adjust
- accordingly. Note: The GNU C versions of some of these macros
- are necessary in order to avoid compile time warnings triggered
- gcc's array bounds checking. The PUT_SCNHDR_PAGE macro also has
- the advantage on not evaluating LOC twice. */
-
-#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))
-#ifdef __GNUC__
-#define GET_SCNHDR_NLNNO(ABFD, LOC) \
- ({ \
- int nlnno; \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- nlnno = H_GET_32 (ABFD, ptr); \
- else \
- nlnno = H_GET_16 (ABFD, ptr - 2); \
- nlnno; \
- })
-#define PUT_SCNHDR_NLNNO(ABFD, VAL, LOC) \
- do \
- { \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- H_PUT_32 (ABFD, VAL, ptr); \
- else \
- H_PUT_16 (ABFD, VAL, ptr - 2); \
- } \
- while (0)
-#define GET_SCNHDR_FLAGS(ABFD, LOC) \
- ({ \
- int flags; \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- flags = H_GET_32 (ABFD, ptr); \
- else \
- flags = H_GET_16 (ABFD, ptr - 4); \
- flags; \
- })
-#define PUT_SCNHDR_FLAGS(ABFD, VAL, LOC) \
- do \
- { \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- H_PUT_32 (ABFD, VAL, ptr); \
- else \
- H_PUT_16 (ABFD, VAL, ptr - 4); \
- } \
- while (0)
-#define GET_SCNHDR_PAGE(ABFD, LOC) \
- ({ \
- unsigned page; \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- page = H_GET_16 (ABFD, ptr); \
- else \
- page = (unsigned) H_GET_8 (ABFD, ptr - 7); \
- page; \
- })
-/* On output, make sure that the "reserved" field is zero. */
-#define PUT_SCNHDR_PAGE(ABFD, VAL, LOC) \
- do \
- { \
- char * ptr = (LOC); \
- if (COFF2_P (ABFD)) \
- H_PUT_16 (ABFD, VAL, ptr); \
- else \
- { \
- H_PUT_8 (ABFD, VAL, ptr - 7); \
- H_PUT_8 (ABFD, 0, ptr - 8); \
- } \
- } \
- while (0)
-#else
-#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, LOC) \
- (COFF2_P (ABFD) \
- ? H_PUT_16 (ABFD, VAL, LOC) \
- : H_PUT_8 (ABFD, VAL, (LOC) - 7), H_PUT_8 (ABFD, 0, (LOC) - 8))
-#endif
-
-
-/* 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 */
-#define GET_SCNHDR_SIZE(ABFD, SZP) \
- (H_GET_32 (ABFD, SZP) * bfd_octets_per_byte (ABFD))
-#define PUT_SCNHDR_SIZE(ABFD, SZ, SZP) \
- H_PUT_32 (ABFD, (SZ) / bfd_octets_per_byte (ABFD), SZP)
-
-#define COFF_ADJUST_SCNHDR_IN_POST(ABFD, EXT, INT) \
- do \
- { \
- ((struct internal_scnhdr *)(INT))->s_page = \
- GET_SCNHDR_PAGE (ABFD, ((SCNHDR *)(EXT))->s_page); \
- } \
- while (0)
-
-/* The entire scnhdr may not be assigned.
- Ensure that everything is initialized. */
-#define COFF_ADJUST_SCNHDR_OUT_PRE(ABFD, INT, EXT) \
- do \
- { \
- memset((EXT), 0, sizeof (SCNHDR)); \
- } \
- while (0)
-
-/* The line number and reloc overflow checking in coff_swap_scnhdr_out in
- coffswap.h doesn't use PUT_X for s_nlnno and s_nreloc.
- Due to different sized v0/v1/v2 section headers, we have to re-write these
- fields.
- */
-#define COFF_ADJUST_SCNHDR_OUT_POST(ABFD, INT, EXT) \
- do \
- { \
- PUT_SCNHDR_NLNNO (ABFD, ((struct internal_scnhdr *)(INT))->s_nlnno, \
- ((SCNHDR *)(EXT))->s_nlnno); \
- PUT_SCNHDR_NRELOC (ABFD, ((struct internal_scnhdr *)(INT))->s_nreloc,\
- ((SCNHDR *)(EXT))->s_nreloc); \
- PUT_SCNHDR_FLAGS (ABFD, ((struct internal_scnhdr *)(INT))->s_flags, \
- ((SCNHDR *)(EXT))->s_flags); \
- PUT_SCNHDR_PAGE (ABFD, ((struct internal_scnhdr *)(INT))->s_page, \
- ((SCNHDR *)(EXT))->s_page); \
- } \
- while (0)
-
-/*
- * names of "special" sections
- */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _CINIT ".cinit" /* initialized C data */
-#define _SCONST ".const" /* constants */
-#define _SWITCH ".switch" /* switch tables */
-#define _STACK ".stack" /* C stack */
-#define _SYSMEM ".sysmem" /* used for malloc et al. syscalls */
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-struct external_lineno {
- union {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- } l_addr;
- char l_lnno[2]; /* line number */
-};
-
-#define LINENO struct external_lineno
-#define LINESZ 6
-
-
-/********************** SYMBOLS **********************/
-
-/* NOTE: this is what a local label looks like in assembly source; what it
- looks like in COFF output is undefined */
-#define TICOFF_LOCAL_LABEL_P(NAME) \
-((NAME[0] == '$' && NAME[1] >= '0' && NAME[1] <= '9' && NAME[2] == '\0') \
- || NAME[strlen(NAME)-1] == '?')
-
-#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#define E_FILNMLEN 14 /* # characters in a file name */
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-struct external_syment
-{
- union {
- char e_name[E_SYMNMLEN];
- struct {
- char e_zeroes[4];
- char e_offset[4];
- } e;
- } e;
- char e_value[4];
- char e_scnum[2];
- char e_type[2];
- char e_sclass[1];
- char e_numaux[1];
-};
-
-
-#define N_BTMASK (017)
-#define N_TMASK (060)
-#define N_BTSHFT (4)
-#define N_TSHIFT (2)
-
-
-union external_auxent {
- struct {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- union {
- struct {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
- char x_fsize[4]; /* size of function */
- } x_misc;
- union {
- struct { /* if ISFCN, tag, or .bb */
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
- struct { /* if ISARY, up to 4 dimen. */
- char x_dimen[E_DIMNUM][2];
- } x_ary;
- } x_fcnary;
- char x_tvndx[2]; /* tv index */
- } x_sym;
-
- union {
- char x_fname[E_FILNMLEN];
- struct {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
- } x_file;
-
- struct {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
- } x_scn;
-
- struct {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-
-
-};
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
-#define AUXENT union external_auxent
-#define AUXESZ 18
-
-/* section lengths are in target bytes (not host bytes) */
-#define GET_SCN_SCNLEN(ABFD, EXT) \
- (H_GET_32 (ABFD, (EXT)->x_scn.x_scnlen) * bfd_octets_per_byte (ABFD))
-#define PUT_SCN_SCNLEN(ABFD, INT, EXT) \
- H_PUT_32 (ABFD, (INT) / bfd_octets_per_byte (ABFD), (EXT)->x_scn.x_scnlen)
-
-/* lnsz size is in bits in COFF file, in bytes in BFD */
-#define GET_LNSZ_SIZE(abfd, ext) \
- (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (in_class != C_FIELD ? 8 : 1))
-
-#define PUT_LNSZ_SIZE(abfd, in, ext) \
- H_PUT_16 (abfd, ((in_class != C_FIELD) ? (in) * 8 : (in)), \
- ext->x_sym.x_misc.x_lnsz.x_size)
-
-/* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes
- Also put the load page flag of the section into the symbol value if it's an
- address. */
-#ifndef NEEDS_PAGE
-#define NEEDS_PAGE(X) 0
-#define PAGE_MASK 0
-#endif
-#define COFF_ADJUST_SYM_IN_POST(ABFD, EXT, INT) \
- do \
- { \
- struct internal_syment *dst = (struct internal_syment *)(INT); \
- if (dst->n_sclass == C_MOS || dst->n_sclass == C_MOU) \
- dst->n_value /= 8; \
- else if (NEEDS_PAGE (dst->n_sclass)) { \
- asection *scn = coff_section_from_bfd_index (abfd, dst->n_scnum); \
- dst->n_value |= (scn->lma & PAGE_MASK); \
- } \
- } \
- while (0)
-
-#define COFF_ADJUST_SYM_OUT_POST(ABFD, INT, EXT) \
- do \
- { \
- struct internal_syment *src = (struct internal_syment *)(INT); \
- SYMENT *dst = (SYMENT *)(EXT); \
- if (src->n_sclass == C_MOU || src->n_sclass == C_MOS) \
- H_PUT_32 (abfd, src->n_value * 8, dst->e_value); \
- else if (NEEDS_PAGE (src->n_sclass)) { \
- H_PUT_32 (abfd, src->n_value &= ~PAGE_MASK, dst->e_value); \
- } \
- } \
- while (0)
-
-/* Detect section-relative absolute symbols so they get flagged with a sym
- index of -1.
-*/
-#define SECTION_RELATIVE_ABSOLUTE_SYMBOL_P(RELOC, SECT) \
- ((*(RELOC)->sym_ptr_ptr)->section->output_section == (SECT) \
- && (RELOC)->howto->name[0] == 'A')
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc_v0
-{
- char r_vaddr[4];
- char r_symndx[2];
- char r_reserved[2];
- char r_type[2];
-};
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_reserved[2]; /* extended pmad byte for COFF2 */
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ_V0 10 /* FIXME -- coffcode.h needs fixing */
-#define RELSZ 12 /* for COFF1/2 */
-
-/* various relocation types. */
-#define R_ABS 0x0000 /* no relocation */
-#define R_REL13 0x002A /* 13-bit direct reference (???) */
-#define R_PARTLS7 0x0028 /* 7 LSBs of an address */
-#define R_PARTMS9 0x0029 /* 9MSBs of an address */
-#define R_EXTWORD 0x002B /* 23-bit direct reference */
-#define R_EXTWORD16 0x002C /* 16-bit direct reference to 23-bit addr*/
-#define R_EXTWORDMS7 0x002D /* upper 7 bits of 23-bit address */
-
-#endif /* COFF_TI_H */
diff --git a/include/coff/tic30.h b/include/coff/tic30.h
deleted file mode 100644
index 4f7776a43..000000000
--- a/include/coff/tic30.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* coff information for Texas Instruments TMS320C3X
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define TIC30MAGIC 0xC000
-
-#define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the z8k don't have room in the instruction for the entire
- offset - eg with segments */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-/* TMS320C30 relocation types. */
-
-#define R_TIC30_ABS16 0x100 /* 16 bit absolute. */
-#define R_TIC30_ABS24 0x101 /* 24 bit absolute. */
-#define R_TIC30_ABS32 0x102 /* 32 bit absolute. */
-#define R_TIC30_LDP 0x103 /* LDP bits 23-16 to 7-0. */
-#define R_TIC30_PC16 0x104 /* 16 bit pc relative. */
diff --git a/include/coff/tic4x.h b/include/coff/tic4x.h
deleted file mode 100644
index 1eb3e26bf..000000000
--- a/include/coff/tic4x.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* TI COFF information for Texas Instruments TMS320C4X/C3X.
- This file customizes the settings in coff/ti.h.
-
- Copyright 2002, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef COFF_TIC4X_H
-#define COFF_TIC4X_H
-
-#define TIC4X_TARGET_ID 0x0093
-/* Octets per byte, as a power of two. */
-#define TI_TARGET_ID TIC4X_TARGET_ID
-#define OCTETS_PER_BYTE_POWER 2
-/* Add to howto to get absolute/sect-relative version. */
-#define HOWTO_BANK 6
-#define TICOFF_TARGET_ARCH bfd_arch_tic4x
-/* We use COFF2. */
-#define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC
-
-#define TICOFF_TARGET_MACHINE_GET(FLAGS) \
- (((FLAGS) & F_VERS) ? bfd_mach_tic4x : bfd_mach_tic3x)
-
-#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE) \
- do \
- { \
- if ((MACHINE) == bfd_mach_tic4x) \
- *(FLAGSP) |= F_VERS; \
- } \
- while (0)
-
-#include "coff/ti.h"
-
-#endif /* COFF_TIC4X_H */
diff --git a/include/coff/tic54x.h b/include/coff/tic54x.h
deleted file mode 100644
index c61f1f20d..000000000
--- a/include/coff/tic54x.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* TI COFF information for Texas Instruments TMS320C54X.
- This file customizes the settings in coff/ti.h.
-
- Copyright 2000, 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef COFF_TIC54X_H
-#define COFF_TIC54X_H
-
-#define TIC54X_TARGET_ID 0x98
-#define TIC54XALGMAGIC 0x009B /* c54x algebraic assembler output */
-#define TIC5X_TARGET_ID 0x92
-#define TI_TARGET_ID TIC54X_TARGET_ID
-#define OCTETS_PER_BYTE_POWER 1 /* octets per byte, as a power of two */
-#define HOWTO_BANK 6 /* add to howto to get absolute/sect-relative version */
-#define TICOFF_TARGET_ARCH bfd_arch_tic54x
-#define TICOFF_DEFAULT_MAGIC TICOFF1MAGIC /* we use COFF1 for compatibility */
-
-/* Page macros
-
- The first GDB port requires flags in its remote memory access commands to
- distinguish between data/prog space. Hopefully we can make this go away
- eventually. Stuff the page in the upper bits of a 32-bit address, since
- the c5x family only uses 16 or 23 bits.
-
- c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
- 23-bit program addresses. Make sure the page flags don't interfere.
- These flags are used by GDB to identify the destination page for
- addresses.
-*/
-
-/* Recognized load pages (by common convention). */
-#define PG_PROG 0x0 /* PROG page */
-#define PG_DATA 0x1 /* DATA page */
-#define PG_IO 0x2 /* I/O page */
-
-/** Indicate whether the given storage class requires a page flag. */
-#define NEEDS_PAGE(X) ((X)==C_EXT)
-#define PAGE_MASK 0xFF000000
-#define ADDR_MASK 0x00FFFFFF
-#define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24)
-#define FLAG_TO_PG(f) (((f) >> 24) & 0xFF)
-
-#include "coff/ti.h"
-
-#endif /* COFF_TIC54X_H */
diff --git a/include/coff/tic80.h b/include/coff/tic80.h
deleted file mode 100644
index 44f873ef3..000000000
--- a/include/coff/tic80.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* coff information for TI TMS320C80 (MVP)
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define DO_NOT_DEFINE_FILHDR
-#define DO_NOT_DEFINE_SCNHDR
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/********************** FILE HEADER **********************/
-
-struct external_filehdr
- {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- char f_target_id[2];/* target id (TIc80 specific) */
-};
-
-#define TIC80_ARCH_MAGIC 0x0C1 /* Goes in the file header magic number field */
-#define TIC80_TARGET_ID 0x95 /* Goes in the target id field */
-
-#define TIC80BADMAG(x) ((x).f_magic != TIC80_ARCH_MAGIC)
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 22
-
-#define TIC80_AOUTHDR_MAGIC 0x108 /* Goes in the optional file header magic number field */
-
-/********************** SECTION HEADER **********************/
-
-struct external_scnhdr
-{
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries*/
- char s_flags[2]; /* flags */
- char s_reserved[1]; /* reserved (TIc80 specific) */
- char s_mempage[1]; /* memory page number (TIc80) */
-};
-
-/* Names of "special" sections. */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _CINIT ".cinit"
-#define _CONST ".const"
-#define _SWITCH ".switch"
-#define _STACK ".stack"
-#define _SYSMEM ".sysmem"
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 40
-
-/* FIXME - need to correlate external_auxent with
- TIc80 Code Generation Tools User's Guide, CG:A-25 */
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the h8 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_reserved[2];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 12
-
-/* TIc80 relocation types. */
-
-#define R_ABS 0x00 /* Absolute address - no relocation */
-#define R_RELLONGX 0x11 /* PP: 32 bits, direct */
-#define R_PPBASE 0x34 /* PP: Global base address type */
-#define R_PPLBASE 0x35 /* PP: Local base address type */
-#define R_PP15 0x38 /* PP: Global 15 bit offset */
-#define R_PP15W 0x39 /* PP: Global 15 bit offset divided by 4 */
-#define R_PP15H 0x3A /* PP: Global 15 bit offset divided by 2 */
-#define R_PP16B 0x3B /* PP: Global 16 bit offset for bytes */
-#define R_PPL15 0x3C /* PP: Local 15 bit offset */
-#define R_PPL15W 0x3D /* PP: Local 15 bit offset divided by 4 */
-#define R_PPL15H 0x3E /* PP: Local 15 bit offset divided by 2 */
-#define R_PPL16B 0x3F /* PP: Local 16 bit offset for bytes */
-#define R_PPN15 0x40 /* PP: Global 15 bit negative offset */
-#define R_PPN15W 0x41 /* PP: Global 15 bit negative offset divided by 4 */
-#define R_PPN15H 0x42 /* PP: Global 15 bit negative offset divided by 2 */
-#define R_PPN16B 0x43 /* PP: Global 16 bit negative byte offset */
-#define R_PPLN15 0x44 /* PP: Local 15 bit negative offset */
-#define R_PPLN15W 0x45 /* PP: Local 15 bit negative offset divided by 4 */
-#define R_PPLN15H 0x46 /* PP: Local 15 bit negative offset divided by 2 */
-#define R_PPLN16B 0x47 /* PP: Local 16 bit negative byte offset */
-#define R_MPPCR15W 0x4E /* MP: 15 bit PC-relative divided by 4 */
-#define R_MPPCR 0x4F /* MP: 32 bit PC-relative divided by 4 */
diff --git a/include/coff/w65.h b/include/coff/w65.h
deleted file mode 100644
index 31d960930..000000000
--- a/include/coff/w65.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* coff information for WDC 65816
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define W65MAGIC 0x6500
-
-#define W65BADMAG(x) (((x).f_magic != W65MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the w65 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/include/coff/we32k.h b/include/coff/we32k.h
deleted file mode 100644
index 3787dd27b..000000000
--- a/include/coff/we32k.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* coff information for we32k
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 2
-#include "coff/external.h"
-
-/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax). */
-
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-#define F_BM32B (0020000)
-#define F_BM32MAU (0040000)
-
-#define WE32KMAGIC 0x170 /* we32k sans transfer vector */
-#define FBOMAGIC 0x170 /* we32k sans transfer vector */
-#define MTVMAGIC 0x171 /* we32k with transfer vector */
-#define RBOMAGIC 0x172 /* reserved */
-#define WE32KBADMAG(x) ( ((x).f_magic != WE32KMAGIC) \
- && ((x).f_magic != FBOMAGIC) \
- && ((x).f_magic != RBOMAGIC) \
- && ((x).f_magic != MTVMAGIC))
-
-/* More names of "special" sections. */
-#define _TV ".tv"
-#define _INIT ".init"
-#define _FINI ".fini"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
-
diff --git a/include/coff/x86_64.h b/include/coff/x86_64.h
deleted file mode 100644
index fcd44c8e8..000000000
--- a/include/coff/x86_64.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* COFF information for AMD 64.
- Copyright 2006, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- Written by Kai Tietz, OneVision Software GmbH&CoKg. */
-
-#define L_LNNO_SIZE 2
-#define INCLUDE_COMDAT_FIELDS_IN_AUXENT
-
-#include "coff/external.h"
-
-#define COFF_PAGE_SIZE 0x1000
-
-#define AMD64MAGIC 0x8664
-
-#define AMD64BADMAG(x) ((x).f_magic != AMD64MAGIC)
-#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
-
-#define OMAGIC 0404 /* Object files, eg as output. */
-#define ZMAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC /* Demand load format, eg normal ld output 0x10b. */
-#define STMAGIC 0401 /* Target shlib. */
-#define SHMAGIC 0443 /* Host shlib. */
-
-/* Define some NT default values. */
-/* #define NT_IMAGE_BASE 0x400000 moved to internal.h. */
-#define NT_SECTION_ALIGNMENT 0x1000
-#define NT_FILE_ALIGNMENT 0x200
-#define NT_DEF_RESERVE 0x100000
-#define NT_DEF_COMMIT 0x1000
-
-/* Relocation directives. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_type[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 10
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
deleted file mode 100644
index 31b5071e4..000000000
--- a/include/coff/xcoff.h
+++ /dev/null
@@ -1,643 +0,0 @@
-/* Internal format of XCOFF object file data structures for BFD.
-
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
- 2009, 2010 Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _INTERNAL_XCOFF_H
-#define _INTERNAL_XCOFF_H
-
-/* XCOFF specific f_flags. */
-
-/* File was profiled with fdpr. */
-#define F_FDPR_PROF 0x0010
-
-/* File was reordered with fdpr. */
-#define F_FDPR_OPTI 0x0020
-
-/* File use very large program support. */
-#define F_DSA 0x0040
-
-/* One aux header specifying medium page sizes is non-zero. */
-#define F_VARPG 0x0100
-
-/* Read/write sections are non-executable. */
-#define F_NONEXEC 0x8000
-
-/* Linker */
-
-/* Names of "special" sections. */
-#define _TEXT ".text"
-#define _DATA ".data"
-#define _BSS ".bss"
-#define _PAD ".pad"
-#define _LOADER ".loader"
-#define _EXCEPT ".except"
-#define _TYPCHK ".typchk"
-
-/* XCOFF uses special .dwXXX sections with the type STYP_DWARF. */
-#define STYP_DWARF 0x0010
-
-/* High-order 16-bits dwarf subtypes. */
-#define SSUBTYP_DWINFO 0x10000
-#define SSUBTYP_DWLINE 0x20000
-#define SSUBTYP_DWPBNMS 0x30000
-#define SSUBTYP_DWPBTYP 0x40000
-#define SSUBTYP_DWARNGE 0x50000
-#define SSUBTYP_DWABREV 0x60000
-#define SSUBTYP_DWSTR 0x70000
-#define SSUBTYP_DWRNGES 0x80000
-
-/* XCOFF uses a special .loader section with type STYP_LOADER. */
-#define STYP_LOADER 0x1000
-
-/* Specifies an exception section. A section of this type provides
- information to identify the reason that a trap or ececptin occured within
- and executable object program */
-#define STYP_EXCEPT 0x0100
-
-/* Specifies an initialized thread-local data section. */
-#define STYP_TDATA 0x0400
-
-/* Specifies an uninitialized thread-local data section. */
-#define STYP_TBSS 0x0800
-
-/* XCOFF uses a special .debug section with type STYP_DEBUG. */
-#define STYP_DEBUG 0x2000
-
-/* Specifies a type check section. A section of this type contains parameter
- argument type check strings used by the AIX binder. */
-#define STYP_TYPCHK 0x4000
-
-/* XCOFF handles line number or relocation overflow by creating
- another section header with STYP_OVRFLO set. */
-#define STYP_OVRFLO 0x8000
-
-#define RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */
-#define RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */
-#define RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned */
-
-/* XCOFF relocation types.
- The relocations are described in the function
- xcoff[64]_ppc_relocate_section in coff64-rs6000.c and coff-rs6000.c */
-
-#define R_POS (0x00)
-#define R_NEG (0x01)
-#define R_REL (0x02)
-#define R_TOC (0x03)
-#define R_RTB (0x04)
-#define R_GL (0x05)
-#define R_TCL (0x06)
-#define R_BA (0x08)
-#define R_BR (0x0a)
-#define R_RL (0x0c)
-#define R_RLA (0x0d)
-#define R_REF (0x0f)
-#define R_TRL (0x12)
-#define R_TRLA (0x13)
-#define R_RRTBI (0x14)
-#define R_RRTBA (0x15)
-#define R_CAI (0x16)
-#define R_CREL (0x17)
-#define R_RBA (0x18)
-#define R_RBAC (0x19)
-#define R_RBR (0x1a)
-#define R_RBRC (0x1b)
-#define R_TLS (0x20)
-#define R_TLS_IE (0x21)
-#define R_TLS_LD (0x22)
-#define R_TLS_LE (0x23)
-#define R_TLSM (0x24)
-#define R_TLSML (0x25)
-#define R_TOCU (0x30)
-#define R_TOCL (0x31)
-
-/* Storage class #defines, from /usr/include/storclass.h that are not already
- defined in internal.h */
-
-/* Comment string in .info section */
-#define C_INFO 110
-
-/* Dwarf symbol. */
-#define C_DWARF 112
-
-/* Auxillary Symbol Entries */
-
-/* x_smtyp values: */
-#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */
-#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */
-/* Symbol type values: */
-#define XTY_ER 0 /* External reference */
-#define XTY_SD 1 /* Csect definition */
-#define XTY_LD 2 /* Label definition */
-#define XTY_CM 3 /* .BSS */
-#define XTY_EM 4 /* Error message */
-#define XTY_US 5 /* "Reserved for internal use" */
-
-/* x_smclas values: */
-#define XMC_PR 0 /* Read-only program code */
-#define XMC_RO 1 /* Read-only constant */
-#define XMC_DB 2 /* Read-only debug dictionary table */
-#define XMC_TC 3 /* Read-write general TOC entry */
-#define XMC_UA 4 /* Read-write unclassified */
-#define XMC_RW 5 /* Read-write data */
-#define XMC_GL 6 /* Read-only global linkage */
-#define XMC_XO 7 /* Read-only extended operation */
-#define XMC_SV 8 /* Read-only supervisor call */
-#define XMC_BS 9 /* Read-write BSS */
-#define XMC_DS 10 /* Read-write descriptor csect */
-#define XMC_UC 11 /* Read-write unnamed Fortran common */
-#define XMC_TI 12 /* Read-only traceback index csect */
-#define XMC_TB 13 /* Read-only traceback table csect */
-/* 14 ??? */
-#define XMC_TC0 15 /* Read-write TOC anchor */
-#define XMC_TD 16 /* Read-write data in TOC */
-#define XMC_SV64 17 /* Read-only 64 bit supervisor call */
-#define XMC_SV3264 18 /* Read-only 32 or 64 bit supervisor call */
-
-/* The ldhdr structure. This appears at the start of the .loader
- section. */
-
-struct internal_ldhdr
-{
- /* The version number:
- 1 : 32 bit
- 2 : 64 bit */
- unsigned long l_version;
-
- /* The number of symbol table entries. */
- bfd_size_type l_nsyms;
-
- /* The number of relocation table entries. */
- bfd_size_type l_nreloc;
-
- /* The length of the import file string table. */
- bfd_size_type l_istlen;
-
- /* The number of import files. */
- bfd_size_type l_nimpid;
-
- /* The offset from the start of the .loader section to the first
- entry in the import file table. */
- bfd_size_type l_impoff;
-
- /* The length of the string table. */
- bfd_size_type l_stlen;
-
- /* The offset from the start of the .loader section to the first
- entry in the string table. */
- bfd_size_type l_stoff;
-
- /* The offset to start of the symbol table, only in XCOFF64 */
- bfd_vma l_symoff;
-
- /* The offset to the start of the relocation table, only in XCOFF64 */
- bfd_vma l_rldoff;
-};
-
-/* The ldsym structure. This is used to represent a symbol in the
- .loader section. */
-
-struct internal_ldsym
-{
- union
- {
- /* The symbol name if <= SYMNMLEN characters. */
- char _l_name[SYMNMLEN];
- struct
- {
- /* Zero if the symbol name is more than SYMNMLEN characters. */
- long _l_zeroes;
-
- /* The offset in the string table if the symbol name is more
- than SYMNMLEN characters. */
- long _l_offset;
- }
- _l_l;
- }
- _l;
-
- /* The symbol value. */
- bfd_vma l_value;
-
- /* The symbol section number. */
- short l_scnum;
-
- /* The symbol type and flags. */
- char l_smtype;
-
- /* The symbol storage class. */
- char l_smclas;
-
- /* The import file ID. */
- bfd_size_type l_ifile;
-
- /* Offset to the parameter type check string. */
- bfd_size_type l_parm;
-};
-
-/* These flags are for the l_smtype field (the lower three bits are an
- XTY_* value). */
-
-/* Imported symbol. */
-#define L_IMPORT (0x40)
-/* Entry point. */
-#define L_ENTRY (0x20)
-/* Exported symbol. */
-#define L_EXPORT (0x10)
-/* Weak symbol. */
-#define L_WEAK (0x08)
-
-/* The ldrel structure. This is used to represent a reloc in the
- .loader section. */
-
-struct internal_ldrel
-{
- /* The reloc address. */
- bfd_vma l_vaddr;
-
- /* The symbol table index in the .loader section symbol table. */
- bfd_size_type l_symndx;
-
- /* The relocation type and size. */
- short l_rtype;
-
- /* The section number this relocation applies to. */
- short l_rsecnm;
-};
-
-/* An entry in the XCOFF linker hash table. */
-struct xcoff_link_hash_entry
-{
- struct bfd_link_hash_entry root;
-
- /* Symbol index in output file. Set to -1 initially. Set to -2 if
- there is a reloc against this symbol. */
- long indx;
-
- /* If we have created a TOC entry for this symbol, this is the .tc
- section which holds it. */
- asection *toc_section;
-
- union
- {
- /* If we have created a TOC entry (the XCOFF_SET_TOC flag is
- set), this is the offset in toc_section. */
- bfd_vma toc_offset;
-
- /* If the TOC entry comes from an input file, this is set to the
- symbol index of the C_HIDEXT XMC_TC or XMC_TD symbol. */
- long toc_indx;
- }
- u;
-
- /* If this symbol is a function entry point which is called, this
- field holds a pointer to the function descriptor. If this symbol
- is a function descriptor, this field holds a pointer to the
- function entry point. */
- struct xcoff_link_hash_entry *descriptor;
-
- /* The .loader symbol table entry, if there is one. */
- struct internal_ldsym *ldsym;
-
- /* If XCOFF_BUILT_LDSYM is set, this is the .loader symbol table
- index. If XCOFF_BUILD_LDSYM is clear, and XCOFF_IMPORT is set,
- this is the l_ifile value. */
- long ldindx;
-
- /* Some linker flags. */
- unsigned long flags;
-
- /* The storage mapping class. */
- unsigned char smclas;
-};
-
-/* Flags for xcoff_link_hash_entry. */
-
-/* Symbol is referenced by a regular object. */
-#define XCOFF_REF_REGULAR 0x00000001
-/* Symbol is defined by a regular object. */
-#define XCOFF_DEF_REGULAR 0x00000002
-/* Symbol is defined by a dynamic object. */
-#define XCOFF_DEF_DYNAMIC 0x00000004
-/* Symbol is used in a reloc being copied into the .loader section. */
-#define XCOFF_LDREL 0x00000008
-/* Symbol is the entry point. */
-#define XCOFF_ENTRY 0x00000010
-/* Symbol is for a function and is the target of a relocation.
- The relocation may or may not be a branch-type relocation. */
-#define XCOFF_CALLED 0x00000020
-/* Symbol needs the TOC entry filled in. */
-#define XCOFF_SET_TOC 0x00000040
-/* Symbol is implicitly or explicitly imported. */
-#define XCOFF_IMPORT 0x00000080
-/* Symbol is explicitly exported. */
-#define XCOFF_EXPORT 0x00000100
-/* Symbol has been processed by xcoff_build_ldsyms. */
-#define XCOFF_BUILT_LDSYM 0x00000200
-/* Symbol is mentioned by a section which was not garbage collected. */
-#define XCOFF_MARK 0x00000400
-/* Symbol size is recorded in size_list list from hash table. */
-#define XCOFF_HAS_SIZE 0x00000800
-/* Symbol is a function descriptor. */
-#define XCOFF_DESCRIPTOR 0x00001000
-/* Multiple definitions have been for the symbol. */
-#define XCOFF_MULTIPLY_DEFINED 0x00002000
-/* Symbol is the __rtinit symbol. */
-#define XCOFF_RTINIT 0x00004000
-/* Symbol is an imported 32 bit syscall. */
-#define XCOFF_SYSCALL32 0x00008000
-/* Symbol is an imported 64 bit syscall. */
-#define XCOFF_SYSCALL64 0x00010000
-/* Symbol was not explicitly defined by the time it was marked. */
-#define XCOFF_WAS_UNDEFINED 0x00020000
-/* We have assigned an output XCOFF entry to this symbol. */
-#define XCOFF_ALLOCATED 0x00040000
-
-/* The XCOFF linker hash table. */
-
-#define XCOFF_NUMBER_OF_SPECIAL_SECTIONS 6
-#define XCOFF_SPECIAL_SECTION_TEXT 0
-#define XCOFF_SPECIAL_SECTION_ETEXT 1
-#define XCOFF_SPECIAL_SECTION_DATA 2
-#define XCOFF_SPECIAL_SECTION_EDATA 3
-#define XCOFF_SPECIAL_SECTION_END 4
-#define XCOFF_SPECIAL_SECTION_END2 5
-
-/* These flags indicate which of -bexpall and -bexpfull are in effect. */
-#define XCOFF_EXPALL 1
-#define XCOFF_EXPFULL 2
-
-/* This structure is used to pass information through
- xcoff_link_hash_traverse. */
-
-struct xcoff_loader_info
-{
- /* Set if a problem occurred. */
- bfd_boolean failed;
-
- /* Output BFD. */
- bfd *output_bfd;
-
- /* Link information structure. */
- struct bfd_link_info *info;
-
- /* A mask of XCOFF_EXPALL and XCOFF_EXPFULL flags. */
- unsigned int auto_export_flags;
-
- /* Number of ldsym structures. */
- size_t ldsym_count;
-
- /* Size of string table. */
- size_t string_size;
-
- /* String table. */
- char *strings;
-
- /* Allocated size of string table. */
- size_t string_alc;
-};
-
-/* In case we're on a 32-bit machine, construct a 64-bit "-1" value
- from smaller values. Start with zero, widen, *then* decrement. */
-#define MINUS_ONE (((bfd_vma) 0) - 1)
-
-/* __rtinit, from /usr/include/rtinit.h. */
-struct __rtinit
-{
- /* Pointer to runtime linker.
- XXX: Is the parameter really void? */
- int (*rtl) (void);
-
- /* Offset to array of init functions, 0 if none. */
- int init_offset;
-
- /* Offset to array of fini functions, 0 if none. */
- int fini_offset;
-
- /* Size of __RTINIT_DESCRIPTOR. This value should be used instead of
- sizeof(__RTINIT_DESCRIPTOR). */
- int __rtinit_descriptor_size;
-};
-
-#define RTINIT_DESCRIPTOR_SIZE (12)
-
-struct __rtinit_descriptor
-{
- /* Init/fini function. */
- int f;
-
- /* Offset, relative to the start of the __rtinit symbol, to name of the
- function. */
-
- int name_offset;
-
- /* Flags */
- unsigned char flags;
-};
-
-/* Archive */
-
-#define XCOFFARMAG "<aiaff>\012"
-#define XCOFFARMAGBIG "<bigaf>\012"
-#define SXCOFFARMAG 8
-
-/* The size of the ascii archive elements */
-#define XCOFFARMAG_ELEMENT_SIZE 12
-#define XCOFFARMAGBIG_ELEMENT_SIZE 20
-
-/* This terminates an XCOFF archive member name. */
-
-#define XCOFFARFMAG "`\012"
-#define SXCOFFARFMAG 2
-
-/* XCOFF archives start with this (printable) structure. */
-
-struct xcoff_ar_file_hdr
-{
- /* Magic string. */
- char magic[SXCOFFARMAG];
-
- /* Offset of the member table (decimal ASCII string). */
- char memoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* Offset of the global symbol table (decimal ASCII string). */
- char symoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* Offset of the first member in the archive (decimal ASCII string). */
- char firstmemoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* Offset of the last member in the archive (decimal ASCII string). */
- char lastmemoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* Offset of the first member on the free list (decimal ASCII
- string). */
- char freeoff[XCOFFARMAG_ELEMENT_SIZE];
-};
-
-#define SIZEOF_AR_FILE_HDR (SXCOFFARMAG + 5 * XCOFFARMAG_ELEMENT_SIZE)
-
-/* This is the equivalent data structure for the big archive format. */
-
-struct xcoff_ar_file_hdr_big
-{
- /* Magic string. */
- char magic[SXCOFFARMAG];
-
- /* Offset of the member table (decimal ASCII string). */
- char memoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* Offset of the global symbol table for 32-bit objects (decimal ASCII
- string). */
- char symoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* Offset of the global symbol table for 64-bit objects (decimal ASCII
- string). */
- char symoff64[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* Offset of the first member in the archive (decimal ASCII string). */
- char firstmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* Offset of the last member in the archive (decimal ASCII string). */
- char lastmemoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* Offset of the first member on the free list (decimal ASCII
- string). */
- char freeoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-};
-
-#define SIZEOF_AR_FILE_HDR_BIG (SXCOFFARMAG + 6 * XCOFFARMAGBIG_ELEMENT_SIZE)
-
-/* Each XCOFF archive member starts with this (printable) structure. */
-
-struct xcoff_ar_hdr
-{
- /* File size not including the header (decimal ASCII string). */
- char size[XCOFFARMAG_ELEMENT_SIZE];
-
- /* File offset of next archive member (decimal ASCII string). */
- char nextoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* File offset of previous archive member (decimal ASCII string). */
- char prevoff[XCOFFARMAG_ELEMENT_SIZE];
-
- /* File mtime (decimal ASCII string). */
- char date[12];
-
- /* File UID (decimal ASCII string). */
- char uid[12];
-
- /* File GID (decimal ASCII string). */
- char gid[12];
-
- /* File mode (octal ASCII string). */
- char mode[12];
-
- /* Length of file name (decimal ASCII string). */
- char namlen[4];
-
- /* This structure is followed by the file name. The length of the
- name is given in the namlen field. If the length of the name is
- odd, the name is followed by a null byte. The name and optional
- null byte are followed by XCOFFARFMAG, which is not included in
- namlen. The contents of the archive member follow; the number of
- bytes is given in the size field. */
-};
-
-#define SIZEOF_AR_HDR (3 * XCOFFARMAG_ELEMENT_SIZE + 4 * 12 + 4)
-
-/* The equivalent for the big archive format. */
-
-struct xcoff_ar_hdr_big
-{
- /* File size not including the header (decimal ASCII string). */
- char size[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* File offset of next archive member (decimal ASCII string). */
- char nextoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* File offset of previous archive member (decimal ASCII string). */
- char prevoff[XCOFFARMAGBIG_ELEMENT_SIZE];
-
- /* File mtime (decimal ASCII string). */
- char date[12];
-
- /* File UID (decimal ASCII string). */
- char uid[12];
-
- /* File GID (decimal ASCII string). */
- char gid[12];
-
- /* File mode (octal ASCII string). */
- char mode[12];
-
- /* Length of file name (decimal ASCII string). */
- char namlen[4];
-
- /* This structure is followed by the file name. The length of the
- name is given in the namlen field. If the length of the name is
- odd, the name is followed by a null byte. The name and optional
- null byte are followed by XCOFFARFMAG, which is not included in
- namlen. The contents of the archive member follow; the number of
- bytes is given in the size field. */
-};
-
-#define SIZEOF_AR_HDR_BIG (3 * XCOFFARMAGBIG_ELEMENT_SIZE + 4 * 12 + 4)
-
-/* We often have to distinguish between the old and big file format.
- Make it a bit cleaner. We can use `xcoff_ardata' here because the
- `hdr' member has the same size and position in both formats.
- <bigaf> is the default format, return TRUE even when xcoff_ardata is
- NULL. */
-#ifndef SMALL_ARCHIVE
-/* Creates big archives by default */
-#define xcoff_big_format_p(abfd) \
- ((NULL != bfd_ardata (abfd) && NULL == xcoff_ardata (abfd)) || \
- ((NULL != bfd_ardata (abfd)) && \
- (NULL != xcoff_ardata (abfd)) && \
- (xcoff_ardata (abfd)->magic[1] == 'b')))
-#else
-/* Creates small archives by default. */
-#define xcoff_big_format_p(abfd) \
- (((NULL != bfd_ardata (abfd)) && \
- (NULL != xcoff_ardata (abfd)) && \
- (xcoff_ardata (abfd)->magic[1] == 'b')))
-#endif
-
-/* We store a copy of the xcoff_ar_file_hdr in the tdata field of the
- artdata structure. Similar for the big archive. */
-#define xcoff_ardata(abfd) \
- ((struct xcoff_ar_file_hdr *) bfd_ardata (abfd)->tdata)
-#define xcoff_ardata_big(abfd) \
- ((struct xcoff_ar_file_hdr_big *) bfd_ardata (abfd)->tdata)
-
-/* We store a copy of the xcoff_ar_hdr in the arelt_data field of an
- archive element. Similar for the big archive. */
-#define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data))
-#define arch_xhdr(bfd) \
- ((struct xcoff_ar_hdr *) arch_eltdata (bfd)->arch_header)
-#define arch_xhdr_big(bfd) \
- ((struct xcoff_ar_hdr_big *) arch_eltdata (bfd)->arch_header)
-
-/* True if symbols of class CLASS are external. */
-#define EXTERN_SYM_P(CLASS) \
- ((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT)
-
-#endif /* _INTERNAL_XCOFF_H */
diff --git a/include/coff/z80.h b/include/coff/z80.h
deleted file mode 100644
index 712af0541..000000000
--- a/include/coff/z80.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* coff information for Zilog Z80
- Copyright 2005, 2010 Free Software Foundation, Inc.
- Contributed by Arnold Metselaar <arnold_m@operamail.com>
-
- 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 3 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* z80 backend does not use dots in section names. */
-#undef _TEXT
-#define _TEXT "text"
-#undef _DATA
-#define _DATA "data"
-#undef _BSS
-#define _BSS "bss"
-
-/* Type of cpu is stored in flags. */
-#define F_MACHMASK 0xF000
-
-/* Z80 COFF encodes the section alignment in the section header flags */
-#define COFF_ALIGN_IN_SECTION_HEADER 1
-#define COFF_ALIGN_IN_S_FLAGS 1
-#define F_ALGNMASK 0x0F00
-/* requires a power-of-two argument */
-#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X)&0xF)<<8))
-/* result is a power of two */
-#define COFF_DECODE_ALIGNMENT(X) (((X)>>8)&0xF)
-
-#define Z80MAGIC 0x805A
-
-#define Z80BADMAG(x) (((x).f_magic != Z80MAGIC))
-
-/* Relocation directives. */
-
-/* This format actually has more bits than we need. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
diff --git a/include/coff/z8k.h b/include/coff/z8k.h
deleted file mode 100644
index 5eef86d4f..000000000
--- a/include/coff/z8k.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* coff information for Zilog Z800N
-
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-/* Type of cpu is stored in flags */
-#define F_Z8001 0x1000
-#define F_Z8002 0x2000
-#define F_MACHMASK 0xf000
-
-#define Z8KMAGIC 0x8000
-
-#define Z8KBADMAG(x) (((x).f_magic != Z8KMAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the z8k don't have room in the instruction for the entire
- offset - eg with segments. */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
diff --git a/include/demangle.h b/include/demangle.h
deleted file mode 100644
index 98b11d796..000000000
--- a/include/demangle.h
+++ /dev/null
@@ -1,655 +0,0 @@
-/* Defs for interface to demanglers.
- Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
- 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- In addition to the permissions in the GNU Library General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file into
- combinations with other programs, and to distribute those
- combinations without any restriction coming from the use of this
- file. (The Library Public License restrictions do apply in other
- respects; for example, they cover modification of the file, and
- distribution when not linked into a combined executable.)
-
- 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-
-#if !defined (DEMANGLE_H)
-#define DEMANGLE_H
-
-#include "libiberty.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Options passed to cplus_demangle (in 2nd parameter). */
-
-#define DMGL_NO_OPTS 0 /* For readability... */
-#define DMGL_PARAMS (1 << 0) /* Include function args */
-#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
-#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
-#define DMGL_VERBOSE (1 << 3) /* Include implementation details. */
-#define DMGL_TYPES (1 << 4) /* Also try to demangle type encodings. */
-#define DMGL_RET_POSTFIX (1 << 5) /* Print function return types (when
- present) after function signature.
- It applies only to the toplevel
- function type. */
-#define DMGL_RET_DROP (1 << 6) /* Suppress printing function return
- types, even if present. It applies
- only to the toplevel function type.
- */
-
-#define DMGL_AUTO (1 << 8)
-#define DMGL_GNU (1 << 9)
-#define DMGL_LUCID (1 << 10)
-#define DMGL_ARM (1 << 11)
-#define DMGL_HP (1 << 12) /* For the HP aCC compiler;
- same as ARM except for
- template arguments, etc. */
-#define DMGL_EDG (1 << 13)
-#define DMGL_GNU_V3 (1 << 14)
-#define DMGL_GNAT (1 << 15)
-
-/* If none of these are set, use 'current_demangling_style' as the default. */
-#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT)
-
-/* Enumeration of possible demangling styles.
-
- Lucid and ARM styles are still kept logically distinct, even though
- they now both behave identically. The resulting style is actual the
- union of both. I.E. either style recognizes both "__pt__" and "__rf__"
- for operator "->", even though the first is lucid style and the second
- is ARM style. (FIXME?) */
-
-extern enum demangling_styles
-{
- no_demangling = -1,
- unknown_demangling = 0,
- auto_demangling = DMGL_AUTO,
- gnu_demangling = DMGL_GNU,
- lucid_demangling = DMGL_LUCID,
- arm_demangling = DMGL_ARM,
- hp_demangling = DMGL_HP,
- edg_demangling = DMGL_EDG,
- gnu_v3_demangling = DMGL_GNU_V3,
- java_demangling = DMGL_JAVA,
- gnat_demangling = DMGL_GNAT
-} current_demangling_style;
-
-/* Define string names for the various demangling styles. */
-
-#define NO_DEMANGLING_STYLE_STRING "none"
-#define AUTO_DEMANGLING_STYLE_STRING "auto"
-#define GNU_DEMANGLING_STYLE_STRING "gnu"
-#define LUCID_DEMANGLING_STYLE_STRING "lucid"
-#define ARM_DEMANGLING_STYLE_STRING "arm"
-#define HP_DEMANGLING_STYLE_STRING "hp"
-#define EDG_DEMANGLING_STYLE_STRING "edg"
-#define GNU_V3_DEMANGLING_STYLE_STRING "gnu-v3"
-#define JAVA_DEMANGLING_STYLE_STRING "java"
-#define GNAT_DEMANGLING_STYLE_STRING "gnat"
-
-/* Some macros to test what demangling style is active. */
-
-#define CURRENT_DEMANGLING_STYLE current_demangling_style
-#define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO)
-#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU)
-#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID)
-#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
-#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP)
-#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
-#define GNU_V3_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3)
-#define JAVA_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_JAVA)
-#define GNAT_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNAT)
-
-/* Provide information about the available demangle styles. This code is
- pulled from gdb into libiberty because it is useful to binutils also. */
-
-extern const struct demangler_engine
-{
- const char *const demangling_style_name;
- const enum demangling_styles demangling_style;
- const char *const demangling_style_doc;
-} libiberty_demanglers[];
-
-extern char *
-cplus_demangle (const char *mangled, int options);
-
-extern int
-cplus_demangle_opname (const char *opname, char *result, int options);
-
-extern const char *
-cplus_mangle_opname (const char *opname, int options);
-
-/* Note: This sets global state. FIXME if you care about multi-threading. */
-
-extern void
-set_cplus_marker_for_demangling (int ch);
-
-extern enum demangling_styles
-cplus_demangle_set_style (enum demangling_styles style);
-
-extern enum demangling_styles
-cplus_demangle_name_to_style (const char *name);
-
-/* Callback typedef for allocation-less demangler interfaces. */
-typedef void (*demangle_callbackref) (const char *, size_t, void *);
-
-/* V3 ABI demangling entry points, defined in cp-demangle.c. Callback
- variants return non-zero on success, zero on error. char* variants
- return a string allocated by malloc on success, NULL on error. */
-extern int
-cplus_demangle_v3_callback (const char *mangled, int options,
- demangle_callbackref callback, void *opaque);
-
-extern char*
-cplus_demangle_v3 (const char *mangled, int options);
-
-extern int
-java_demangle_v3_callback (const char *mangled,
- demangle_callbackref callback, void *opaque);
-
-extern char*
-java_demangle_v3 (const char *mangled);
-
-char *
-ada_demangle (const char *mangled, int options);
-
-enum gnu_v3_ctor_kinds {
- gnu_v3_complete_object_ctor = 1,
- gnu_v3_base_object_ctor,
- gnu_v3_complete_object_allocating_ctor,
- gnu_v3_object_ctor_group
-};
-
-/* Return non-zero iff NAME is the mangled form of a constructor name
- in the G++ V3 ABI demangling style. Specifically, return an `enum
- gnu_v3_ctor_kinds' value indicating what kind of constructor
- it is. */
-extern enum gnu_v3_ctor_kinds
- is_gnu_v3_mangled_ctor (const char *name);
-
-
-enum gnu_v3_dtor_kinds {
- gnu_v3_deleting_dtor = 1,
- gnu_v3_complete_object_dtor,
- gnu_v3_base_object_dtor,
- gnu_v3_object_dtor_group
-};
-
-/* Return non-zero iff NAME is the mangled form of a destructor name
- in the G++ V3 ABI demangling style. Specifically, return an `enum
- gnu_v3_dtor_kinds' value, indicating what kind of destructor
- it is. */
-extern enum gnu_v3_dtor_kinds
- is_gnu_v3_mangled_dtor (const char *name);
-
-/* The V3 demangler works in two passes. The first pass builds a tree
- representation of the mangled name, and the second pass turns the
- tree representation into a demangled string. Here we define an
- interface to permit a caller to build their own tree
- representation, which they can pass to the demangler to get a
- demangled string. This can be used to canonicalize user input into
- something which the demangler might output. It could also be used
- by other demanglers in the future. */
-
-/* These are the component types which may be found in the tree. Many
- component types have one or two subtrees, referred to as left and
- right (a component type with only one subtree puts it in the left
- subtree). */
-
-enum demangle_component_type
-{
- /* A name, with a length and a pointer to a string. */
- DEMANGLE_COMPONENT_NAME,
- /* A qualified name. The left subtree is a class or namespace or
- some such thing, and the right subtree is a name qualified by
- that class. */
- DEMANGLE_COMPONENT_QUAL_NAME,
- /* A local name. The left subtree describes a function, and the
- right subtree is a name which is local to that function. */
- DEMANGLE_COMPONENT_LOCAL_NAME,
- /* A typed name. The left subtree is a name, and the right subtree
- describes that name as a function. */
- DEMANGLE_COMPONENT_TYPED_NAME,
- /* A template. The left subtree is a template name, and the right
- subtree is a template argument list. */
- DEMANGLE_COMPONENT_TEMPLATE,
- /* A template parameter. This holds a number, which is the template
- parameter index. */
- DEMANGLE_COMPONENT_TEMPLATE_PARAM,
- /* A function parameter. This holds a number, which is the index. */
- DEMANGLE_COMPONENT_FUNCTION_PARAM,
- /* A constructor. This holds a name and the kind of
- constructor. */
- DEMANGLE_COMPONENT_CTOR,
- /* A destructor. This holds a name and the kind of destructor. */
- DEMANGLE_COMPONENT_DTOR,
- /* A vtable. This has one subtree, the type for which this is a
- vtable. */
- DEMANGLE_COMPONENT_VTABLE,
- /* A VTT structure. This has one subtree, the type for which this
- is a VTT. */
- DEMANGLE_COMPONENT_VTT,
- /* A construction vtable. The left subtree is the type for which
- this is a vtable, and the right subtree is the derived type for
- which this vtable is built. */
- DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE,
- /* A typeinfo structure. This has one subtree, the type for which
- this is the tpeinfo structure. */
- DEMANGLE_COMPONENT_TYPEINFO,
- /* A typeinfo name. This has one subtree, the type for which this
- is the typeinfo name. */
- DEMANGLE_COMPONENT_TYPEINFO_NAME,
- /* A typeinfo function. This has one subtree, the type for which
- this is the tpyeinfo function. */
- DEMANGLE_COMPONENT_TYPEINFO_FN,
- /* A thunk. This has one subtree, the name for which this is a
- thunk. */
- DEMANGLE_COMPONENT_THUNK,
- /* A virtual thunk. This has one subtree, the name for which this
- is a virtual thunk. */
- DEMANGLE_COMPONENT_VIRTUAL_THUNK,
- /* A covariant thunk. This has one subtree, the name for which this
- is a covariant thunk. */
- DEMANGLE_COMPONENT_COVARIANT_THUNK,
- /* A Java class. This has one subtree, the type. */
- DEMANGLE_COMPONENT_JAVA_CLASS,
- /* A guard variable. This has one subtree, the name for which this
- is a guard variable. */
- DEMANGLE_COMPONENT_GUARD,
- /* A reference temporary. This has one subtree, the name for which
- this is a temporary. */
- DEMANGLE_COMPONENT_REFTEMP,
- /* A hidden alias. This has one subtree, the encoding for which it
- is providing alternative linkage. */
- DEMANGLE_COMPONENT_HIDDEN_ALIAS,
- /* A standard substitution. This holds the name of the
- substitution. */
- DEMANGLE_COMPONENT_SUB_STD,
- /* The restrict qualifier. The one subtree is the type which is
- being qualified. */
- DEMANGLE_COMPONENT_RESTRICT,
- /* The volatile qualifier. The one subtree is the type which is
- being qualified. */
- DEMANGLE_COMPONENT_VOLATILE,
- /* The const qualifier. The one subtree is the type which is being
- qualified. */
- DEMANGLE_COMPONENT_CONST,
- /* The restrict qualifier modifying a member function. The one
- subtree is the type which is being qualified. */
- DEMANGLE_COMPONENT_RESTRICT_THIS,
- /* The volatile qualifier modifying a member function. The one
- subtree is the type which is being qualified. */
- DEMANGLE_COMPONENT_VOLATILE_THIS,
- /* The const qualifier modifying a member function. The one subtree
- is the type which is being qualified. */
- DEMANGLE_COMPONENT_CONST_THIS,
- /* A vendor qualifier. The left subtree is the type which is being
- qualified, and the right subtree is the name of the
- qualifier. */
- DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL,
- /* A pointer. The one subtree is the type which is being pointed
- to. */
- DEMANGLE_COMPONENT_POINTER,
- /* A reference. The one subtree is the type which is being
- referenced. */
- DEMANGLE_COMPONENT_REFERENCE,
- /* C++0x: An rvalue reference. The one subtree is the type which is
- being referenced. */
- DEMANGLE_COMPONENT_RVALUE_REFERENCE,
- /* A complex type. The one subtree is the base type. */
- DEMANGLE_COMPONENT_COMPLEX,
- /* An imaginary type. The one subtree is the base type. */
- DEMANGLE_COMPONENT_IMAGINARY,
- /* A builtin type. This holds the builtin type information. */
- DEMANGLE_COMPONENT_BUILTIN_TYPE,
- /* A vendor's builtin type. This holds the name of the type. */
- DEMANGLE_COMPONENT_VENDOR_TYPE,
- /* A function type. The left subtree is the return type. The right
- subtree is a list of ARGLIST nodes. Either or both may be
- NULL. */
- DEMANGLE_COMPONENT_FUNCTION_TYPE,
- /* An array type. The left subtree is the dimension, which may be
- NULL, or a string (represented as DEMANGLE_COMPONENT_NAME), or an
- expression. The right subtree is the element type. */
- DEMANGLE_COMPONENT_ARRAY_TYPE,
- /* A pointer to member type. The left subtree is the class type,
- and the right subtree is the member type. CV-qualifiers appear
- on the latter. */
- DEMANGLE_COMPONENT_PTRMEM_TYPE,
- /* A fixed-point type. */
- DEMANGLE_COMPONENT_FIXED_TYPE,
- /* A vector type. The left subtree is the number of elements,
- the right subtree is the element type. */
- DEMANGLE_COMPONENT_VECTOR_TYPE,
- /* An argument list. The left subtree is the current argument, and
- the right subtree is either NULL or another ARGLIST node. */
- DEMANGLE_COMPONENT_ARGLIST,
- /* A template argument list. The left subtree is the current
- template argument, and the right subtree is either NULL or
- another TEMPLATE_ARGLIST node. */
- DEMANGLE_COMPONENT_TEMPLATE_ARGLIST,
- /* An operator. This holds information about a standard
- operator. */
- DEMANGLE_COMPONENT_OPERATOR,
- /* An extended operator. This holds the number of arguments, and
- the name of the extended operator. */
- DEMANGLE_COMPONENT_EXTENDED_OPERATOR,
- /* A typecast, represented as a unary operator. The one subtree is
- the type to which the argument should be cast. */
- DEMANGLE_COMPONENT_CAST,
- /* A unary expression. The left subtree is the operator, and the
- right subtree is the single argument. */
- DEMANGLE_COMPONENT_UNARY,
- /* A binary expression. The left subtree is the operator, and the
- right subtree is a BINARY_ARGS. */
- DEMANGLE_COMPONENT_BINARY,
- /* Arguments to a binary expression. The left subtree is the first
- argument, and the right subtree is the second argument. */
- DEMANGLE_COMPONENT_BINARY_ARGS,
- /* A trinary expression. The left subtree is the operator, and the
- right subtree is a TRINARY_ARG1. */
- DEMANGLE_COMPONENT_TRINARY,
- /* Arguments to a trinary expression. The left subtree is the first
- argument, and the right subtree is a TRINARY_ARG2. */
- DEMANGLE_COMPONENT_TRINARY_ARG1,
- /* More arguments to a trinary expression. The left subtree is the
- second argument, and the right subtree is the third argument. */
- DEMANGLE_COMPONENT_TRINARY_ARG2,
- /* A literal. The left subtree is the type, and the right subtree
- is the value, represented as a DEMANGLE_COMPONENT_NAME. */
- DEMANGLE_COMPONENT_LITERAL,
- /* A negative literal. Like LITERAL, but the value is negated.
- This is a minor hack: the NAME used for LITERAL points directly
- to the mangled string, but since negative numbers are mangled
- using 'n' instead of '-', we want a way to indicate a negative
- number which involves neither modifying the mangled string nor
- allocating a new copy of the literal in memory. */
- DEMANGLE_COMPONENT_LITERAL_NEG,
- /* A libgcj compiled resource. The left subtree is the name of the
- resource. */
- DEMANGLE_COMPONENT_JAVA_RESOURCE,
- /* A name formed by the concatenation of two parts. The left
- subtree is the first part and the right subtree the second. */
- DEMANGLE_COMPONENT_COMPOUND_NAME,
- /* A name formed by a single character. */
- DEMANGLE_COMPONENT_CHARACTER,
- /* A number. */
- DEMANGLE_COMPONENT_NUMBER,
- /* A decltype type. */
- DEMANGLE_COMPONENT_DECLTYPE,
- /* Global constructors keyed to name. */
- DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS,
- /* Global destructors keyed to name. */
- DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS,
- /* A lambda closure type. */
- DEMANGLE_COMPONENT_LAMBDA,
- /* A default argument scope. */
- DEMANGLE_COMPONENT_DEFAULT_ARG,
- /* An unnamed type. */
- DEMANGLE_COMPONENT_UNNAMED_TYPE,
- /* A transactional clone. This has one subtree, the encoding for
- which it is providing alternative linkage. */
- DEMANGLE_COMPONENT_TRANSACTION_CLONE,
- /* A non-transactional clone entry point. In the i386/x86_64 abi,
- the unmangled symbol of a tm_callable becomes a thunk and the
- non-transactional function version is mangled thus. */
- DEMANGLE_COMPONENT_NONTRANSACTION_CLONE,
- /* A pack expansion. */
- DEMANGLE_COMPONENT_PACK_EXPANSION,
- /* A cloned function. */
- DEMANGLE_COMPONENT_CLONE
-};
-
-/* Types which are only used internally. */
-
-struct demangle_operator_info;
-struct demangle_builtin_type_info;
-
-/* A node in the tree representation is an instance of a struct
- demangle_component. Note that the field names of the struct are
- not well protected against macros defined by the file including
- this one. We can fix this if it ever becomes a problem. */
-
-struct demangle_component
-{
- /* The type of this component. */
- enum demangle_component_type type;
-
- union
- {
- /* For DEMANGLE_COMPONENT_NAME. */
- struct
- {
- /* A pointer to the name (which need not NULL terminated) and
- its length. */
- const char *s;
- int len;
- } s_name;
-
- /* For DEMANGLE_COMPONENT_OPERATOR. */
- struct
- {
- /* Operator. */
- const struct demangle_operator_info *op;
- } s_operator;
-
- /* For DEMANGLE_COMPONENT_EXTENDED_OPERATOR. */
- struct
- {
- /* Number of arguments. */
- int args;
- /* Name. */
- struct demangle_component *name;
- } s_extended_operator;
-
- /* For DEMANGLE_COMPONENT_FIXED_TYPE. */
- struct
- {
- /* The length, indicated by a C integer type name. */
- struct demangle_component *length;
- /* _Accum or _Fract? */
- short accum;
- /* Saturating or not? */
- short sat;
- } s_fixed;
-
- /* For DEMANGLE_COMPONENT_CTOR. */
- struct
- {
- /* Kind of constructor. */
- enum gnu_v3_ctor_kinds kind;
- /* Name. */
- struct demangle_component *name;
- } s_ctor;
-
- /* For DEMANGLE_COMPONENT_DTOR. */
- struct
- {
- /* Kind of destructor. */
- enum gnu_v3_dtor_kinds kind;
- /* Name. */
- struct demangle_component *name;
- } s_dtor;
-
- /* For DEMANGLE_COMPONENT_BUILTIN_TYPE. */
- struct
- {
- /* Builtin type. */
- const struct demangle_builtin_type_info *type;
- } s_builtin;
-
- /* For DEMANGLE_COMPONENT_SUB_STD. */
- struct
- {
- /* Standard substitution string. */
- const char* string;
- /* Length of string. */
- int len;
- } s_string;
-
- /* For DEMANGLE_COMPONENT_*_PARAM. */
- struct
- {
- /* Parameter index. */
- long number;
- } s_number;
-
- /* For DEMANGLE_COMPONENT_CHARACTER. */
- struct
- {
- int character;
- } s_character;
-
- /* For other types. */
- struct
- {
- /* Left (or only) subtree. */
- struct demangle_component *left;
- /* Right subtree. */
- struct demangle_component *right;
- } s_binary;
-
- struct
- {
- /* subtree, same place as d_left. */
- struct demangle_component *sub;
- /* integer. */
- int num;
- } s_unary_num;
-
- } u;
-};
-
-/* People building mangled trees are expected to allocate instances of
- struct demangle_component themselves. They can then call one of
- the following functions to fill them in. */
-
-/* Fill in most component types with a left subtree and a right
- subtree. Returns non-zero on success, zero on failure, such as an
- unrecognized or inappropriate component type. */
-
-extern int
-cplus_demangle_fill_component (struct demangle_component *fill,
- enum demangle_component_type,
- struct demangle_component *left,
- struct demangle_component *right);
-
-/* Fill in a DEMANGLE_COMPONENT_NAME. Returns non-zero on success,
- zero for bad arguments. */
-
-extern int
-cplus_demangle_fill_name (struct demangle_component *fill,
- const char *, int);
-
-/* Fill in a DEMANGLE_COMPONENT_BUILTIN_TYPE, using the name of the
- builtin type (e.g., "int", etc.). Returns non-zero on success,
- zero if the type is not recognized. */
-
-extern int
-cplus_demangle_fill_builtin_type (struct demangle_component *fill,
- const char *type_name);
-
-/* Fill in a DEMANGLE_COMPONENT_OPERATOR, using the name of the
- operator and the number of arguments which it takes (the latter is
- used to disambiguate operators which can be both binary and unary,
- such as '-'). Returns non-zero on success, zero if the operator is
- not recognized. */
-
-extern int
-cplus_demangle_fill_operator (struct demangle_component *fill,
- const char *opname, int args);
-
-/* Fill in a DEMANGLE_COMPONENT_EXTENDED_OPERATOR, providing the
- number of arguments and the name. Returns non-zero on success,
- zero for bad arguments. */
-
-extern int
-cplus_demangle_fill_extended_operator (struct demangle_component *fill,
- int numargs,
- struct demangle_component *nm);
-
-/* Fill in a DEMANGLE_COMPONENT_CTOR. Returns non-zero on success,
- zero for bad arguments. */
-
-extern int
-cplus_demangle_fill_ctor (struct demangle_component *fill,
- enum gnu_v3_ctor_kinds kind,
- struct demangle_component *name);
-
-/* Fill in a DEMANGLE_COMPONENT_DTOR. Returns non-zero on success,
- zero for bad arguments. */
-
-extern int
-cplus_demangle_fill_dtor (struct demangle_component *fill,
- enum gnu_v3_dtor_kinds kind,
- struct demangle_component *name);
-
-/* This function translates a mangled name into a struct
- demangle_component tree. The first argument is the mangled name.
- The second argument is DMGL_* options. This returns a pointer to a
- tree on success, or NULL on failure. On success, the third
- argument is set to a block of memory allocated by malloc. This
- block should be passed to free when the tree is no longer
- needed. */
-
-extern struct demangle_component *
-cplus_demangle_v3_components (const char *mangled, int options, void **mem);
-
-/* This function takes a struct demangle_component tree and returns
- the corresponding demangled string. The first argument is DMGL_*
- options. The second is the tree to demangle. The third is a guess
- at the length of the demangled string, used to initially allocate
- the return buffer. The fourth is a pointer to a size_t. On
- success, this function returns a buffer allocated by malloc(), and
- sets the size_t pointed to by the fourth argument to the size of
- the allocated buffer (not the length of the returned string). On
- failure, this function returns NULL, and sets the size_t pointed to
- by the fourth argument to 0 for an invalid tree, or to 1 for a
- memory allocation error. */
-
-extern char *
-cplus_demangle_print (int options,
- const struct demangle_component *tree,
- int estimated_length,
- size_t *p_allocated_size);
-
-/* This function takes a struct demangle_component tree and passes back
- a demangled string in one or more calls to a callback function.
- The first argument is DMGL_* options. The second is the tree to
- demangle. The third is a pointer to a callback function; on each call
- this receives an element of the demangled string, its length, and an
- opaque value. The fourth is the opaque value passed to the callback.
- The callback is called once or more to return the full demangled
- string. The demangled element string is always nul-terminated, though
- its length is also provided for convenience. In contrast to
- cplus_demangle_print(), this function does not allocate heap memory
- to grow output strings (except perhaps where alloca() is implemented
- by malloc()), and so is normally safe for use where the heap has been
- corrupted. On success, this function returns 1; on failure, 0. */
-
-extern int
-cplus_demangle_print_callback (int options,
- const struct demangle_component *tree,
- demangle_callbackref callback, void *opaque);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* DEMANGLE_H */
diff --git a/include/dis-asm.h b/include/dis-asm.h
deleted file mode 100644
index d2334c63c..000000000
--- a/include/dis-asm.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/* Interface between the opcode library and its callers.
-
- Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010,
- 2011 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 3, 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., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- Written by Cygnus Support, 1993.
-
- The opcode library (libopcodes.a) provides instruction decoders for
- a large variety of instruction sets, callable with an identical
- interface, for making instruction-processing programs more independent
- of the instruction set being processed. */
-
-#ifndef DIS_ASM_H
-#define DIS_ASM_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#include "bfd.h"
-
- typedef int (*fprintf_ftype) (void *, const char*, ...) /*ATTRIBUTE_FPTR_PRINTF_2*/;
-
-enum dis_insn_type
-{
- dis_noninsn, /* Not a valid instruction. */
- dis_nonbranch, /* Not a branch instruction. */
- dis_branch, /* Unconditional branch. */
- dis_condbranch, /* Conditional branch. */
- dis_jsr, /* Jump to subroutine. */
- dis_condjsr, /* Conditional jump to subroutine. */
- dis_dref, /* Data reference instruction. */
- dis_dref2 /* Two data references in instruction. */
-};
-
-/* This struct is passed into the instruction decoding routine,
- and is passed back out into each callback. The various fields are used
- for conveying information from your main routine into your callbacks,
- for passing information into the instruction decoders (such as the
- addresses of the callback functions), or for passing information
- back from the instruction decoders to their callers.
-
- It must be initialized before it is first passed; this can be done
- by hand, or using one of the initialization macros below. */
-
-typedef struct disassemble_info
-{
- fprintf_ftype fprintf_func;
- 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
- so to avoid introducing one we record these explicitly. */
- /* The bfd_flavour. This can be bfd_target_unknown_flavour. */
- enum bfd_flavour flavour;
- /* The bfd_arch value. */
- enum bfd_architecture arch;
- /* The bfd_mach value. */
- unsigned long mach;
- /* Endianness (for bi-endian cpus). Mono-endian cpus can ignore this. */
- enum bfd_endian endian;
- /* Endianness of code, for mixed-endian situations such as ARM BE8. */
- enum bfd_endian endian_code;
- /* An arch/mach-specific bitmask of selected instruction subsets, mainly
- for processors with run-time-switchable instruction sets. The default,
- zero, means that there is no constraint. CGEN-based opcodes ports
- may use ISA_foo masks. */
- void *insn_sets;
-
- /* Some targets need information about the current section to accurately
- display insns. If this is NULL, the target disassembler function
- will have to make its best guess. */
- asection *section;
-
- /* An array of pointers to symbols either at the location being disassembled
- or at the start of the function being disassembled. The array is sorted
- so that the first symbol is intended to be the one used. The others are
- present for any misc. purposes. This is not set reliably, but if it is
- not NULL, it is correct. */
- asymbol **symbols;
- /* Number of symbols in array. */
- int num_symbols;
-
- /* Symbol table provided for targets that want to look at it. This is
- used on Arm to find mapping symbols and determine Arm/Thumb code. */
- asymbol **symtab;
- int symtab_pos;
- int symtab_size;
-
- /* For use by the disassembler.
- The top 16 bits are reserved for public use (and are documented here).
- The bottom 16 bits are for the internal use of the disassembler. */
- unsigned long flags;
- /* Set if the disassembler has determined that there are one or more
- relocations associated with the instruction being disassembled. */
-#define INSN_HAS_RELOC (1 << 31)
- /* Set if the user has requested the disassembly of data as well as code. */
-#define DISASSEMBLE_DATA (1 << 30)
- /* Set if the user has specifically set the machine type encoded in the
- mach field of this structure. */
-#define USER_SPECIFIED_MACHINE_TYPE (1 << 29)
-
- /* Use internally by the target specific disassembly code. */
- 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
- put the bytes in, and LENGTH is the number of bytes to read.
- INFO is a pointer to this struct.
- Returns an errno value or 0 for success. */
- int (*read_memory_func)
- (bfd_vma memaddr, bfd_byte *myaddr, unsigned int length,
- struct disassemble_info *dinfo);
-
- /* 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)
- (int status, bfd_vma memaddr, struct disassemble_info *dinfo);
-
- /* Function called to print ADDR. */
- void (*print_address_func)
- (bfd_vma addr, struct disassemble_info *dinfo);
-
- /* Function called to determine if there is a symbol at the given ADDR.
- If there is, the function returns 1, otherwise it returns 0.
- This is used by ports which support an overlay manager where
- the overlay number is held in the top part of an address. In
- some circumstances we want to include the overlay number in the
- 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)
- (bfd_vma addr, struct disassemble_info *dinfo);
-
- /* Function called to check if a SYMBOL is can be displayed to the user.
- This is used by some ports that want to hide special symbols when
- displaying debugging outout. */
- bfd_boolean (* symbol_is_valid)
- (asymbol *, struct disassemble_info *dinfo);
-
- /* These are for buffer_read_memory. */
- bfd_byte *buffer;
- bfd_vma buffer_vma;
- unsigned int buffer_length;
-
- /* This variable may be set by the instruction decoder. It suggests
- the number of bytes objdump should display on a single line. If
- the instruction decoder sets this, it should always set it to
- the same value in order to get reasonable looking output. */
- int bytes_per_line;
-
- /* The next two variables control the way objdump displays the raw data. */
- /* For example, if bytes_per_line is 8 and bytes_per_chunk is 4, the */
- /* output will look like this:
- 00: 00000000 00000000
- with the chunks displayed according to "display_endian". */
- int bytes_per_chunk;
- enum bfd_endian display_endian;
-
- /* Number of octets per incremented target address
- Normally one, but some DSPs have byte sizes of 16 or 32 bits. */
- unsigned int octets_per_byte;
-
- /* The number of zeroes we want to see at the end of a section before we
- start skipping them. */
- unsigned int skip_zeroes;
-
- /* The number of zeroes to skip at the end of a section. If the number
- of zeroes at the end is between SKIP_ZEROES_AT_END and SKIP_ZEROES,
- they will be disassembled. If there are fewer than
- SKIP_ZEROES_AT_END, they will be skipped. This is a heuristic
- attempt to avoid disassembling zeroes inserted by section
- alignment. */
- unsigned int skip_zeroes_at_end;
-
- /* Whether the disassembler always needs the relocations. */
- bfd_boolean disassembler_needs_relocs;
-
- /* Results from instruction decoders. Not all decoders yet support
- this information. This info is set each time an instruction is
- decoded, and is only valid for the last such instruction.
-
- To determine whether this decoder supports this information, set
- insn_info_valid to 0, decode an instruction, then check it. */
-
- char insn_info_valid; /* Branch info has been set. */
- char branch_delay_insns; /* How many sequential insn's will run before
- a branch takes effect. (0 = normal) */
- char data_size; /* Size of data reference in insn, in bytes */
- enum dis_insn_type insn_type; /* Type of instruction */
- bfd_vma target; /* Target address of branch or dref, if known;
- zero if unknown. */
- bfd_vma target2; /* Second target address for dref2 */
-
- /* Command line options specific to the target disassembler. */
- char * disassembler_options;
-
-} disassemble_info;
-
-
-/* Standard disassemblers. Disassemble one instruction at the given
- target address. Return number of octets processed. */
-typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
-
-extern int print_insn_alpha (bfd_vma, disassemble_info *);
-extern int print_insn_avr (bfd_vma, disassemble_info *);
-extern int print_insn_bfin (bfd_vma, disassemble_info *);
-extern int print_insn_big_arm (bfd_vma, disassemble_info *);
-extern int print_insn_big_mips (bfd_vma, disassemble_info *);
-extern int print_insn_big_or32 (bfd_vma, disassemble_info *);
-extern int print_insn_big_powerpc (bfd_vma, disassemble_info *);
-extern int print_insn_big_score (bfd_vma, disassemble_info *);
-extern int print_insn_cr16 (bfd_vma, disassemble_info *);
-extern int print_insn_crx (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_epiphany (bfd_vma, disassemble_info *);
-extern int print_insn_fr30 (bfd_vma, disassemble_info *);
-extern int print_insn_frv (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_hppa (bfd_vma, disassemble_info *);
-extern int print_insn_i370 (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_i860 (bfd_vma, disassemble_info *);
-extern int print_insn_i960 (bfd_vma, disassemble_info *);
-extern int print_insn_ia64 (bfd_vma, disassemble_info *);
-extern int print_insn_ip2k (bfd_vma, disassemble_info *);
-extern int print_insn_iq2000 (bfd_vma, disassemble_info *);
-extern int print_insn_little_arm (bfd_vma, disassemble_info *);
-extern int print_insn_little_mips (bfd_vma, disassemble_info *);
-extern int print_insn_little_or32 (bfd_vma, disassemble_info *);
-extern int print_insn_little_powerpc (bfd_vma, disassemble_info *);
-extern int print_insn_little_score (bfd_vma, disassemble_info *);
-extern int print_insn_lm32 (bfd_vma, disassemble_info *);
-extern int print_insn_m32c (bfd_vma, disassemble_info *);
-extern int print_insn_m32r (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_m88k (bfd_vma, disassemble_info *);
-extern int print_insn_mcore (bfd_vma, disassemble_info *);
-extern int print_insn_mep (bfd_vma, disassemble_info *);
-extern int print_insn_microblaze (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_moxie (bfd_vma, disassemble_info *);
-extern int print_insn_msp430 (bfd_vma, disassemble_info *);
-extern int print_insn_mt (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_pdp11 (bfd_vma, disassemble_info *);
-extern int print_insn_pj (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_sh64 (bfd_vma, disassemble_info *);
-extern int print_insn_sh64x_media (bfd_vma, disassemble_info *);
-extern int print_insn_sparc (bfd_vma, disassemble_info *);
-extern int print_insn_spu (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_tic6x (bfd_vma, disassemble_info *);
-extern int print_insn_tic80 (bfd_vma, disassemble_info *);
-extern int print_insn_tilegx (bfd_vma, disassemble_info *);
-extern int print_insn_tilepro (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_xc16x (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_z80 (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_rx (bfd_vma, disassemble_info *);
-extern int print_insn_rl78 (bfd_vma, disassemble_info *);
-
-extern disassembler_ftype arc_get_disassembler (void *);
-extern disassembler_ftype cris_get_disassembler (bfd *);
-
-extern void print_i386_disassembler_options (FILE *);
-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 void print_s390_disassembler_options (FILE *);
-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 *const **);
-extern bfd_boolean arm_symbol_is_valid (asymbol *, struct disassemble_info *);
-
-/* Fetch the disassembler for a given BFD, if that support is available. */
-extern disassembler_ftype disassembler (bfd *);
-
-/* Amend the disassemble_info structure as necessary for the target architecture.
- Should only be called after initialising the info->arch field. */
-extern void disassemble_init_for_target (struct disassemble_info * dinfo);
-
-/* Document any target specific options available from the disassembler. */
-extern void disassembler_usage (FILE *);
-
-
-/* This block of definitions is for particular callers who read instructions
- into a buffer before calling the instruction decoder. */
-
-/* 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
- (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 (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
- (bfd_vma, struct disassemble_info *);
-
-/* Always true. */
-extern int generic_symbol_at_address
- (bfd_vma, struct disassemble_info *);
-
-/* Also always true. */
-extern bfd_boolean generic_symbol_is_valid
- (asymbol *, struct disassemble_info *);
-
-/* Method to initialize a disassemble_info struct. This should be
- called by all applications creating such a struct. */
-extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream,
- fprintf_ftype fprintf_func);
-
-/* For compatibility with existing code. */
-#define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \
- init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
- init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! defined (DIS_ASM_H) */
diff --git a/include/dwarf2.h b/include/dwarf2.h
deleted file mode 100644
index 37cb83f4b..000000000
--- a/include/dwarf2.h
+++ /dev/null
@@ -1,922 +0,0 @@
-/* Declarations and definitions of codes relating to the DWARF2 and
- DWARF3 symbolic debugging information formats.
- Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
-
- Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
- Office (AJPO), Florida State University and Silicon Graphics Inc.
- provided support for this effort -- June 21, 1995.
-
- Derived from the DWARF 1 implementation written by Ron Guilmette
- (rfg@netcom.com), November 1990.
-
- This file is part of GCC.
-
- GCC 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 3, or (at your option) any later
- version.
-
- GCC 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This file is derived from the DWARF specification (a public document)
- Revision 2.0.0 (July 27, 1993) developed by the UNIX International
- Programming Languages Special Interest Group (UI/PLSIG) and distributed
- by UNIX International. Copies of this specification are available from
- UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
-
- This file also now contains definitions from the DWARF 3 specification
- published Dec 20, 2005, available from: http://dwarf.freestandards.org. */
-
-/* This file is shared between GCC and GDB, and should not contain
- prototypes. */
-
-#ifndef _DWARF2_H
-#define _DWARF2_H
-
-/* Tag names and codes. */
-enum dwarf_tag
- {
- DW_TAG_padding = 0x00,
- DW_TAG_array_type = 0x01,
- DW_TAG_class_type = 0x02,
- DW_TAG_entry_point = 0x03,
- DW_TAG_enumeration_type = 0x04,
- DW_TAG_formal_parameter = 0x05,
- DW_TAG_imported_declaration = 0x08,
- DW_TAG_label = 0x0a,
- DW_TAG_lexical_block = 0x0b,
- DW_TAG_member = 0x0d,
- DW_TAG_pointer_type = 0x0f,
- DW_TAG_reference_type = 0x10,
- DW_TAG_compile_unit = 0x11,
- DW_TAG_string_type = 0x12,
- DW_TAG_structure_type = 0x13,
- DW_TAG_subroutine_type = 0x15,
- DW_TAG_typedef = 0x16,
- DW_TAG_union_type = 0x17,
- DW_TAG_unspecified_parameters = 0x18,
- DW_TAG_variant = 0x19,
- DW_TAG_common_block = 0x1a,
- DW_TAG_common_inclusion = 0x1b,
- DW_TAG_inheritance = 0x1c,
- DW_TAG_inlined_subroutine = 0x1d,
- DW_TAG_module = 0x1e,
- DW_TAG_ptr_to_member_type = 0x1f,
- DW_TAG_set_type = 0x20,
- DW_TAG_subrange_type = 0x21,
- DW_TAG_with_stmt = 0x22,
- DW_TAG_access_declaration = 0x23,
- DW_TAG_base_type = 0x24,
- DW_TAG_catch_block = 0x25,
- DW_TAG_const_type = 0x26,
- DW_TAG_constant = 0x27,
- DW_TAG_enumerator = 0x28,
- DW_TAG_file_type = 0x29,
- DW_TAG_friend = 0x2a,
- DW_TAG_namelist = 0x2b,
- DW_TAG_namelist_item = 0x2c,
- DW_TAG_packed_type = 0x2d,
- DW_TAG_subprogram = 0x2e,
- DW_TAG_template_type_param = 0x2f,
- DW_TAG_template_value_param = 0x30,
- DW_TAG_thrown_type = 0x31,
- DW_TAG_try_block = 0x32,
- DW_TAG_variant_part = 0x33,
- DW_TAG_variable = 0x34,
- DW_TAG_volatile_type = 0x35,
- /* DWARF 3. */
- DW_TAG_dwarf_procedure = 0x36,
- DW_TAG_restrict_type = 0x37,
- DW_TAG_interface_type = 0x38,
- DW_TAG_namespace = 0x39,
- DW_TAG_imported_module = 0x3a,
- DW_TAG_unspecified_type = 0x3b,
- DW_TAG_partial_unit = 0x3c,
- DW_TAG_imported_unit = 0x3d,
- DW_TAG_condition = 0x3f,
- DW_TAG_shared_type = 0x40,
- /* DWARF 4. */
- DW_TAG_type_unit = 0x41,
- DW_TAG_rvalue_reference_type = 0x42,
- DW_TAG_template_alias = 0x43,
-
- DW_TAG_lo_user = 0x4080,
- DW_TAG_hi_user = 0xffff,
-
- /* SGI/MIPS Extensions. */
- DW_TAG_MIPS_loop = 0x4081,
-
- /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
- DW_TAG_HP_array_descriptor = 0x4090,
- DW_TAG_HP_Bliss_field = 0x4091,
- DW_TAG_HP_Bliss_field_set = 0x4092,
-
- /* GNU extensions. */
- DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
- DW_TAG_function_template = 0x4102, /* For C++. */
- DW_TAG_class_template = 0x4103, /* For C++. */
- DW_TAG_GNU_BINCL = 0x4104,
- DW_TAG_GNU_EINCL = 0x4105,
- /* Template template parameter.
- See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
- DW_TAG_GNU_template_template_param = 0x4106,
-
- /* Template parameter pack extension, specified at
- http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
- The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
- are properly part of DWARF 5. */
- DW_TAG_GNU_template_parameter_pack = 0x4107,
- DW_TAG_GNU_formal_parameter_pack = 0x4108,
- /* The GNU call site extension, specified at
- http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
- The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
- are properly part of DWARF 5. */
- DW_TAG_GNU_call_site = 0x4109,
- DW_TAG_GNU_call_site_parameter = 0x410a,
- /* 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,
- /* PGI (STMicroelectronics) extensions. No documentation available. */
- DW_TAG_PGI_kanji_type = 0xA000,
- DW_TAG_PGI_interface_block = 0xA020
- };
-
-/* Flag that tells whether entry has a child or not. */
-#define DW_children_no 0
-#define DW_children_yes 1
-
-/* Form names and codes. */
-enum dwarf_form
- {
- DW_FORM_addr = 0x01,
- DW_FORM_block2 = 0x03,
- DW_FORM_block4 = 0x04,
- DW_FORM_data2 = 0x05,
- DW_FORM_data4 = 0x06,
- DW_FORM_data8 = 0x07,
- DW_FORM_string = 0x08,
- DW_FORM_block = 0x09,
- DW_FORM_block1 = 0x0a,
- DW_FORM_data1 = 0x0b,
- DW_FORM_flag = 0x0c,
- DW_FORM_sdata = 0x0d,
- DW_FORM_strp = 0x0e,
- DW_FORM_udata = 0x0f,
- DW_FORM_ref_addr = 0x10,
- DW_FORM_ref1 = 0x11,
- DW_FORM_ref2 = 0x12,
- DW_FORM_ref4 = 0x13,
- DW_FORM_ref8 = 0x14,
- DW_FORM_ref_udata = 0x15,
- DW_FORM_indirect = 0x16,
- /* DWARF 4. */
- DW_FORM_sec_offset = 0x17,
- DW_FORM_exprloc = 0x18,
- DW_FORM_flag_present = 0x19,
- DW_FORM_ref_sig8 = 0x20
- };
-
-/* Attribute names and codes. */
-enum dwarf_attribute
- {
- DW_AT_sibling = 0x01,
- DW_AT_location = 0x02,
- DW_AT_name = 0x03,
- DW_AT_ordering = 0x09,
- DW_AT_subscr_data = 0x0a,
- DW_AT_byte_size = 0x0b,
- DW_AT_bit_offset = 0x0c,
- DW_AT_bit_size = 0x0d,
- DW_AT_element_list = 0x0f,
- DW_AT_stmt_list = 0x10,
- DW_AT_low_pc = 0x11,
- DW_AT_high_pc = 0x12,
- DW_AT_language = 0x13,
- DW_AT_member = 0x14,
- DW_AT_discr = 0x15,
- DW_AT_discr_value = 0x16,
- DW_AT_visibility = 0x17,
- DW_AT_import = 0x18,
- DW_AT_string_length = 0x19,
- DW_AT_common_reference = 0x1a,
- DW_AT_comp_dir = 0x1b,
- DW_AT_const_value = 0x1c,
- DW_AT_containing_type = 0x1d,
- DW_AT_default_value = 0x1e,
- DW_AT_inline = 0x20,
- DW_AT_is_optional = 0x21,
- DW_AT_lower_bound = 0x22,
- DW_AT_producer = 0x25,
- DW_AT_prototyped = 0x27,
- DW_AT_return_addr = 0x2a,
- DW_AT_start_scope = 0x2c,
- DW_AT_bit_stride = 0x2e,
-#define DW_AT_stride_size DW_AT_bit_stride /* Note: The use of DW_AT_stride_size is deprecated. */
- DW_AT_upper_bound = 0x2f,
- DW_AT_abstract_origin = 0x31,
- DW_AT_accessibility = 0x32,
- DW_AT_address_class = 0x33,
- DW_AT_artificial = 0x34,
- DW_AT_base_types = 0x35,
- DW_AT_calling_convention = 0x36,
- DW_AT_count = 0x37,
- DW_AT_data_member_location = 0x38,
- DW_AT_decl_column = 0x39,
- DW_AT_decl_file = 0x3a,
- DW_AT_decl_line = 0x3b,
- DW_AT_declaration = 0x3c,
- DW_AT_discr_list = 0x3d,
- DW_AT_encoding = 0x3e,
- DW_AT_external = 0x3f,
- DW_AT_frame_base = 0x40,
- DW_AT_friend = 0x41,
- DW_AT_identifier_case = 0x42,
- DW_AT_macro_info = 0x43,
- DW_AT_namelist_items = 0x44,
- DW_AT_priority = 0x45,
- DW_AT_segment = 0x46,
- DW_AT_specification = 0x47,
- DW_AT_static_link = 0x48,
- DW_AT_type = 0x49,
- DW_AT_use_location = 0x4a,
- DW_AT_variable_parameter = 0x4b,
- DW_AT_virtuality = 0x4c,
- DW_AT_vtable_elem_location = 0x4d,
- /* DWARF 3 values. */
- DW_AT_allocated = 0x4e,
- DW_AT_associated = 0x4f,
- DW_AT_data_location = 0x50,
- DW_AT_byte_stride = 0x51,
-#define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */
- DW_AT_entry_pc = 0x52,
- DW_AT_use_UTF8 = 0x53,
- DW_AT_extension = 0x54,
- DW_AT_ranges = 0x55,
- DW_AT_trampoline = 0x56,
- DW_AT_call_column = 0x57,
- DW_AT_call_file = 0x58,
- DW_AT_call_line = 0x59,
- DW_AT_description = 0x5a,
- DW_AT_binary_scale = 0x5b,
- DW_AT_decimal_scale = 0x5c,
- DW_AT_small = 0x5d,
- DW_AT_decimal_sign = 0x5e,
- DW_AT_digit_count = 0x5f,
- DW_AT_picture_string = 0x60,
- DW_AT_mutable = 0x61,
- DW_AT_threads_scaled = 0x62,
- DW_AT_explicit = 0x63,
- DW_AT_object_pointer = 0x64,
- DW_AT_endianity = 0x65,
- DW_AT_elemental = 0x66,
- DW_AT_pure = 0x67,
- DW_AT_recursive = 0x68,
- /* DWARF 4. */
- DW_AT_signature = 0x69,
- DW_AT_main_subprogram = 0x6a,
- DW_AT_data_bit_offset = 0x6b,
- DW_AT_const_expr = 0x6c,
- DW_AT_enum_class = 0x6d,
- DW_AT_linkage_name = 0x6e,
-
- DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */
- DW_AT_hi_user = 0x3fff, /* Implementation-defined range end. */
-
- /* SGI/MIPS extensions. */
- DW_AT_MIPS_fde = 0x2001,
- DW_AT_MIPS_loop_begin = 0x2002,
- DW_AT_MIPS_tail_loop_begin = 0x2003,
- DW_AT_MIPS_epilog_begin = 0x2004,
- DW_AT_MIPS_loop_unroll_factor = 0x2005,
- DW_AT_MIPS_software_pipeline_depth = 0x2006,
- DW_AT_MIPS_linkage_name = 0x2007,
- DW_AT_MIPS_stride = 0x2008,
- DW_AT_MIPS_abstract_name = 0x2009,
- DW_AT_MIPS_clone_origin = 0x200a,
- DW_AT_MIPS_has_inlines = 0x200b,
- /* HP extensions. */
- DW_AT_HP_block_index = 0x2000,
- DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */
- DW_AT_HP_prologue = 0x2005, /* Same as DW_AT_MIPS_loop_unroll. */
- DW_AT_HP_epilogue = 0x2008, /* Same as DW_AT_MIPS_stride. */
- DW_AT_HP_actuals_stmt_list = 0x2010,
- DW_AT_HP_proc_per_section = 0x2011,
- DW_AT_HP_raw_data_ptr = 0x2012,
- DW_AT_HP_pass_by_reference = 0x2013,
- DW_AT_HP_opt_level = 0x2014,
- DW_AT_HP_prof_version_id = 0x2015,
- DW_AT_HP_opt_flags = 0x2016,
- DW_AT_HP_cold_region_low_pc = 0x2017,
- DW_AT_HP_cold_region_high_pc = 0x2018,
- DW_AT_HP_all_variables_modifiable = 0x2019,
- DW_AT_HP_linkage_name = 0x201a,
- DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */
- DW_AT_HP_unit_name = 0x201f,
- DW_AT_HP_unit_size = 0x2020,
- DW_AT_HP_widened_byte_size = 0x2021,
- DW_AT_HP_definition_points = 0x2022,
- DW_AT_HP_default_location = 0x2023,
- DW_AT_HP_is_result_param = 0x2029,
-
- /* GNU extensions. */
- DW_AT_sf_names = 0x2101,
- DW_AT_src_info = 0x2102,
- DW_AT_mac_info = 0x2103,
- DW_AT_src_coords = 0x2104,
- DW_AT_body_begin = 0x2105,
- DW_AT_body_end = 0x2106,
- DW_AT_GNU_vector = 0x2107,
- /* Thread-safety annotations.
- See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
- DW_AT_GNU_guarded_by = 0x2108,
- DW_AT_GNU_pt_guarded_by = 0x2109,
- DW_AT_GNU_guarded = 0x210a,
- DW_AT_GNU_pt_guarded = 0x210b,
- DW_AT_GNU_locks_excluded = 0x210c,
- DW_AT_GNU_exclusive_locks_required = 0x210d,
- DW_AT_GNU_shared_locks_required = 0x210e,
- /* One-definition rule violation detection.
- See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
- DW_AT_GNU_odr_signature = 0x210f,
- /* Template template argument name.
- See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
- DW_AT_GNU_template_name = 0x2110,
- /* The GNU call site extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
- DW_AT_GNU_call_site_value = 0x2111,
- DW_AT_GNU_call_site_data_value = 0x2112,
- DW_AT_GNU_call_site_target = 0x2113,
- DW_AT_GNU_call_site_target_clobbered = 0x2114,
- DW_AT_GNU_tail_call = 0x2115,
- DW_AT_GNU_all_tail_call_sites = 0x2116,
- DW_AT_GNU_all_call_sites = 0x2117,
- DW_AT_GNU_all_source_call_sites = 0x2118,
- /* Section offset into .debug_macro section. */
- DW_AT_GNU_macros = 0x2119,
- /* VMS extensions. */
- DW_AT_VMS_rtnbeg_pd_address = 0x2201,
- /* GNAT extensions. */
- /* GNAT descriptive type.
- See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
- DW_AT_use_GNAT_descriptive_type = 0x2301,
- DW_AT_GNAT_descriptive_type = 0x2302,
- /* UPC extension. */
- DW_AT_upc_threads_scaled = 0x3210,
- /* PGI (STMicroelectronics) extensions. */
- DW_AT_PGI_lbase = 0x3a00,
- DW_AT_PGI_soffset = 0x3a01,
- DW_AT_PGI_lstride = 0x3a02
- };
-
-/* Location atom names and codes. */
-enum dwarf_location_atom
- {
- DW_OP_addr = 0x03,
- DW_OP_deref = 0x06,
- DW_OP_const1u = 0x08,
- DW_OP_const1s = 0x09,
- DW_OP_const2u = 0x0a,
- DW_OP_const2s = 0x0b,
- DW_OP_const4u = 0x0c,
- DW_OP_const4s = 0x0d,
- DW_OP_const8u = 0x0e,
- DW_OP_const8s = 0x0f,
- DW_OP_constu = 0x10,
- DW_OP_consts = 0x11,
- DW_OP_dup = 0x12,
- DW_OP_drop = 0x13,
- DW_OP_over = 0x14,
- DW_OP_pick = 0x15,
- DW_OP_swap = 0x16,
- DW_OP_rot = 0x17,
- DW_OP_xderef = 0x18,
- DW_OP_abs = 0x19,
- DW_OP_and = 0x1a,
- DW_OP_div = 0x1b,
- DW_OP_minus = 0x1c,
- DW_OP_mod = 0x1d,
- DW_OP_mul = 0x1e,
- DW_OP_neg = 0x1f,
- DW_OP_not = 0x20,
- DW_OP_or = 0x21,
- DW_OP_plus = 0x22,
- DW_OP_plus_uconst = 0x23,
- DW_OP_shl = 0x24,
- DW_OP_shr = 0x25,
- DW_OP_shra = 0x26,
- DW_OP_xor = 0x27,
- DW_OP_bra = 0x28,
- DW_OP_eq = 0x29,
- DW_OP_ge = 0x2a,
- DW_OP_gt = 0x2b,
- DW_OP_le = 0x2c,
- DW_OP_lt = 0x2d,
- DW_OP_ne = 0x2e,
- DW_OP_skip = 0x2f,
- DW_OP_lit0 = 0x30,
- DW_OP_lit1 = 0x31,
- DW_OP_lit2 = 0x32,
- DW_OP_lit3 = 0x33,
- DW_OP_lit4 = 0x34,
- DW_OP_lit5 = 0x35,
- DW_OP_lit6 = 0x36,
- DW_OP_lit7 = 0x37,
- DW_OP_lit8 = 0x38,
- DW_OP_lit9 = 0x39,
- DW_OP_lit10 = 0x3a,
- DW_OP_lit11 = 0x3b,
- DW_OP_lit12 = 0x3c,
- DW_OP_lit13 = 0x3d,
- DW_OP_lit14 = 0x3e,
- DW_OP_lit15 = 0x3f,
- DW_OP_lit16 = 0x40,
- DW_OP_lit17 = 0x41,
- DW_OP_lit18 = 0x42,
- DW_OP_lit19 = 0x43,
- DW_OP_lit20 = 0x44,
- DW_OP_lit21 = 0x45,
- DW_OP_lit22 = 0x46,
- DW_OP_lit23 = 0x47,
- DW_OP_lit24 = 0x48,
- DW_OP_lit25 = 0x49,
- DW_OP_lit26 = 0x4a,
- DW_OP_lit27 = 0x4b,
- DW_OP_lit28 = 0x4c,
- DW_OP_lit29 = 0x4d,
- DW_OP_lit30 = 0x4e,
- DW_OP_lit31 = 0x4f,
- DW_OP_reg0 = 0x50,
- DW_OP_reg1 = 0x51,
- DW_OP_reg2 = 0x52,
- DW_OP_reg3 = 0x53,
- DW_OP_reg4 = 0x54,
- DW_OP_reg5 = 0x55,
- DW_OP_reg6 = 0x56,
- DW_OP_reg7 = 0x57,
- DW_OP_reg8 = 0x58,
- DW_OP_reg9 = 0x59,
- DW_OP_reg10 = 0x5a,
- DW_OP_reg11 = 0x5b,
- DW_OP_reg12 = 0x5c,
- DW_OP_reg13 = 0x5d,
- DW_OP_reg14 = 0x5e,
- DW_OP_reg15 = 0x5f,
- DW_OP_reg16 = 0x60,
- DW_OP_reg17 = 0x61,
- DW_OP_reg18 = 0x62,
- DW_OP_reg19 = 0x63,
- DW_OP_reg20 = 0x64,
- DW_OP_reg21 = 0x65,
- DW_OP_reg22 = 0x66,
- DW_OP_reg23 = 0x67,
- DW_OP_reg24 = 0x68,
- DW_OP_reg25 = 0x69,
- DW_OP_reg26 = 0x6a,
- DW_OP_reg27 = 0x6b,
- DW_OP_reg28 = 0x6c,
- DW_OP_reg29 = 0x6d,
- DW_OP_reg30 = 0x6e,
- DW_OP_reg31 = 0x6f,
- DW_OP_breg0 = 0x70,
- DW_OP_breg1 = 0x71,
- DW_OP_breg2 = 0x72,
- DW_OP_breg3 = 0x73,
- DW_OP_breg4 = 0x74,
- DW_OP_breg5 = 0x75,
- DW_OP_breg6 = 0x76,
- DW_OP_breg7 = 0x77,
- DW_OP_breg8 = 0x78,
- DW_OP_breg9 = 0x79,
- DW_OP_breg10 = 0x7a,
- DW_OP_breg11 = 0x7b,
- DW_OP_breg12 = 0x7c,
- DW_OP_breg13 = 0x7d,
- DW_OP_breg14 = 0x7e,
- DW_OP_breg15 = 0x7f,
- DW_OP_breg16 = 0x80,
- DW_OP_breg17 = 0x81,
- DW_OP_breg18 = 0x82,
- DW_OP_breg19 = 0x83,
- DW_OP_breg20 = 0x84,
- DW_OP_breg21 = 0x85,
- DW_OP_breg22 = 0x86,
- DW_OP_breg23 = 0x87,
- DW_OP_breg24 = 0x88,
- DW_OP_breg25 = 0x89,
- DW_OP_breg26 = 0x8a,
- DW_OP_breg27 = 0x8b,
- DW_OP_breg28 = 0x8c,
- DW_OP_breg29 = 0x8d,
- DW_OP_breg30 = 0x8e,
- DW_OP_breg31 = 0x8f,
- DW_OP_regx = 0x90,
- DW_OP_fbreg = 0x91,
- DW_OP_bregx = 0x92,
- DW_OP_piece = 0x93,
- DW_OP_deref_size = 0x94,
- DW_OP_xderef_size = 0x95,
- DW_OP_nop = 0x96,
- /* DWARF 3 extensions. */
- DW_OP_push_object_address = 0x97,
- DW_OP_call2 = 0x98,
- DW_OP_call4 = 0x99,
- DW_OP_call_ref = 0x9a,
- DW_OP_form_tls_address = 0x9b,
- DW_OP_call_frame_cfa = 0x9c,
- DW_OP_bit_piece = 0x9d,
-
- /* DWARF 4 extensions. */
- DW_OP_implicit_value = 0x9e,
- DW_OP_stack_value = 0x9f,
-
- DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */
- DW_OP_hi_user = 0xff, /* Implementation-defined range end. */
-
- /* GNU extensions. */
- DW_OP_GNU_push_tls_address = 0xe0,
- /* The following is for marking variables that are uninitialized. */
- DW_OP_GNU_uninit = 0xf0,
- DW_OP_GNU_encoded_addr = 0xf1,
- /* The GNU implicit pointer extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
- DW_OP_GNU_implicit_pointer = 0xf2,
- /* The GNU entry value extension.
- See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
- DW_OP_GNU_entry_value = 0xf3,
- /* The GNU typed stack extension.
- See http://www.dwarfstd.org/doc/040408.1.html . */
- DW_OP_GNU_const_type = 0xf4,
- DW_OP_GNU_regval_type = 0xf5,
- DW_OP_GNU_deref_type = 0xf6,
- DW_OP_GNU_convert = 0xf7,
- DW_OP_GNU_reinterpret = 0xf9,
- /* The GNU parameter ref extension. */
- DW_OP_GNU_parameter_ref = 0xfa,
- /* HP extensions. */
- DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
- DW_OP_HP_is_value = 0xe1,
- DW_OP_HP_fltconst4 = 0xe2,
- DW_OP_HP_fltconst8 = 0xe3,
- DW_OP_HP_mod_range = 0xe4,
- DW_OP_HP_unmod_range = 0xe5,
- DW_OP_HP_tls = 0xe6,
- /* PGI (STMicroelectronics) extensions. */
- DW_OP_PGI_omp_thread_num = 0xf8
- };
-
-/* Type encodings. */
-enum dwarf_type
- {
- DW_ATE_void = 0x0,
- DW_ATE_address = 0x1,
- DW_ATE_boolean = 0x2,
- DW_ATE_complex_float = 0x3,
- DW_ATE_float = 0x4,
- DW_ATE_signed = 0x5,
- DW_ATE_signed_char = 0x6,
- DW_ATE_unsigned = 0x7,
- DW_ATE_unsigned_char = 0x8,
- /* DWARF 3. */
- DW_ATE_imaginary_float = 0x9,
- DW_ATE_packed_decimal = 0xa,
- DW_ATE_numeric_string = 0xb,
- DW_ATE_edited = 0xc,
- DW_ATE_signed_fixed = 0xd,
- DW_ATE_unsigned_fixed = 0xe,
- DW_ATE_decimal_float = 0xf,
- /* DWARF 4. */
- DW_ATE_UTF = 0x10,
-
- DW_ATE_lo_user = 0x80,
- DW_ATE_hi_user = 0xff,
-
- /* HP extensions. */
- DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
- DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
- DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */
- DW_ATE_HP_complex_float128 = 0x83, /* Complex fp (128 bit). */
- DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */
- DW_ATE_HP_imaginary_float80 = 0x85,
- DW_ATE_HP_imaginary_float128 = 0x86,
- DW_ATE_HP_VAX_float = 0x88, /* F or G floating. */
- DW_ATE_HP_VAX_float_d = 0x89, /* D floating. */
- DW_ATE_HP_packed_decimal = 0x8a, /* Cobol. */
- DW_ATE_HP_zoned_decimal = 0x8b, /* Cobol. */
- DW_ATE_HP_edited = 0x8c, /* Cobol. */
- DW_ATE_HP_signed_fixed = 0x8d, /* Cobol. */
- DW_ATE_HP_unsigned_fixed = 0x8e, /* Cobol. */
- DW_ATE_HP_VAX_complex_float = 0x8f, /* F or G floating complex. */
- DW_ATE_HP_VAX_complex_float_d = 0x90 /* D floating complex. */
- };
-
-/* Decimal sign encodings. */
-enum dwarf_decimal_sign_encoding
- {
- /* DWARF 3. */
- DW_DS_unsigned = 0x01,
- DW_DS_leading_overpunch = 0x02,
- DW_DS_trailing_overpunch = 0x03,
- DW_DS_leading_separate = 0x04,
- DW_DS_trailing_separate = 0x05
- };
-
-/* Endianity encodings. */
-enum dwarf_endianity_encoding
- {
- /* DWARF 3. */
- DW_END_default = 0x00,
- DW_END_big = 0x01,
- DW_END_little = 0x02,
-
- DW_END_lo_user = 0x40,
- DW_END_hi_user = 0xff
- };
-
-/* Array ordering names and codes. */
-enum dwarf_array_dim_ordering
- {
- DW_ORD_row_major = 0,
- DW_ORD_col_major = 1
- };
-
-/* Access attribute. */
-enum dwarf_access_attribute
- {
- DW_ACCESS_public = 1,
- DW_ACCESS_protected = 2,
- DW_ACCESS_private = 3
- };
-
-/* Visibility. */
-enum dwarf_visibility_attribute
- {
- DW_VIS_local = 1,
- DW_VIS_exported = 2,
- DW_VIS_qualified = 3
- };
-
-/* Virtuality. */
-enum dwarf_virtuality_attribute
- {
- DW_VIRTUALITY_none = 0,
- DW_VIRTUALITY_virtual = 1,
- DW_VIRTUALITY_pure_virtual = 2
- };
-
-/* Case sensitivity. */
-enum dwarf_id_case
- {
- DW_ID_case_sensitive = 0,
- DW_ID_up_case = 1,
- DW_ID_down_case = 2,
- DW_ID_case_insensitive = 3
- };
-
-/* Calling convention. */
-enum dwarf_calling_convention
- {
- DW_CC_normal = 0x1,
- DW_CC_program = 0x2,
- DW_CC_nocall = 0x3,
-
- DW_CC_lo_user = 0x40,
- DW_CC_hi_user = 0xff,
-
- DW_CC_GNU_renesas_sh = 0x40,
- DW_CC_GNU_borland_fastcall_i386 = 0x41,
-
- /* This DW_CC_ value is not currently generated by any toolchain. It is
- used internally to GDB to indicate OpenCL C functions that have been
- compiled with the IBM XL C for OpenCL compiler and use a non-platform
- calling convention for passing OpenCL C vector types. This value may
- be changed freely as long as it does not conflict with any other DW_CC_
- value defined here. */
- DW_CC_GDB_IBM_OpenCL = 0xff
- };
-
-/* Inline attribute. */
-enum dwarf_inline_attribute
- {
- DW_INL_not_inlined = 0,
- DW_INL_inlined = 1,
- DW_INL_declared_not_inlined = 2,
- DW_INL_declared_inlined = 3
- };
-
-/* Discriminant lists. */
-enum dwarf_discrim_list
- {
- DW_DSC_label = 0,
- DW_DSC_range = 1
- };
-
-/* Line number opcodes. */
-enum dwarf_line_number_ops
- {
- DW_LNS_extended_op = 0,
- DW_LNS_copy = 1,
- DW_LNS_advance_pc = 2,
- DW_LNS_advance_line = 3,
- DW_LNS_set_file = 4,
- DW_LNS_set_column = 5,
- DW_LNS_negate_stmt = 6,
- DW_LNS_set_basic_block = 7,
- DW_LNS_const_add_pc = 8,
- DW_LNS_fixed_advance_pc = 9,
- /* DWARF 3. */
- DW_LNS_set_prologue_end = 10,
- DW_LNS_set_epilogue_begin = 11,
- DW_LNS_set_isa = 12
- };
-
-/* Line number extended opcodes. */
-enum dwarf_line_number_x_ops
- {
- DW_LNE_end_sequence = 1,
- DW_LNE_set_address = 2,
- DW_LNE_define_file = 3,
- DW_LNE_set_discriminator = 4,
- /* HP extensions. */
- DW_LNE_HP_negate_is_UV_update = 0x11,
- DW_LNE_HP_push_context = 0x12,
- DW_LNE_HP_pop_context = 0x13,
- DW_LNE_HP_set_file_line_column = 0x14,
- DW_LNE_HP_set_routine_name = 0x15,
- DW_LNE_HP_set_sequence = 0x16,
- DW_LNE_HP_negate_post_semantics = 0x17,
- DW_LNE_HP_negate_function_exit = 0x18,
- DW_LNE_HP_negate_front_end_logical = 0x19,
- DW_LNE_HP_define_proc = 0x20,
- DW_LNE_HP_source_file_correlation = 0x80,
-
- DW_LNE_lo_user = 0x80,
- DW_LNE_hi_user = 0xff
- };
-
-/* Sub-opcodes for DW_LNE_HP_source_file_correlation. */
-enum dwarf_line_number_hp_sfc_ops
- {
- DW_LNE_HP_SFC_formfeed = 1,
- DW_LNE_HP_SFC_set_listing_line = 2,
- DW_LNE_HP_SFC_associate = 3
- };
-
-/* Call frame information. */
-enum dwarf_call_frame_info
- {
- DW_CFA_advance_loc = 0x40,
- DW_CFA_offset = 0x80,
- DW_CFA_restore = 0xc0,
- DW_CFA_nop = 0x00,
- DW_CFA_set_loc = 0x01,
- DW_CFA_advance_loc1 = 0x02,
- DW_CFA_advance_loc2 = 0x03,
- DW_CFA_advance_loc4 = 0x04,
- DW_CFA_offset_extended = 0x05,
- DW_CFA_restore_extended = 0x06,
- DW_CFA_undefined = 0x07,
- DW_CFA_same_value = 0x08,
- DW_CFA_register = 0x09,
- DW_CFA_remember_state = 0x0a,
- DW_CFA_restore_state = 0x0b,
- DW_CFA_def_cfa = 0x0c,
- DW_CFA_def_cfa_register = 0x0d,
- DW_CFA_def_cfa_offset = 0x0e,
- /* DWARF 3. */
- DW_CFA_def_cfa_expression = 0x0f,
- DW_CFA_expression = 0x10,
- DW_CFA_offset_extended_sf = 0x11,
- DW_CFA_def_cfa_sf = 0x12,
- DW_CFA_def_cfa_offset_sf = 0x13,
- DW_CFA_val_offset = 0x14,
- DW_CFA_val_offset_sf = 0x15,
- DW_CFA_val_expression = 0x16,
-
- DW_CFA_lo_user = 0x1c,
- DW_CFA_hi_user = 0x3f,
-
- /* SGI/MIPS specific. */
- DW_CFA_MIPS_advance_loc8 = 0x1d,
- /* GNU extensions. */
- DW_CFA_GNU_window_save = 0x2d,
- DW_CFA_GNU_args_size = 0x2e,
- DW_CFA_GNU_negative_offset_extended = 0x2f
- };
-
-#define DW_CIE_ID 0xffffffff
-#define DW64_CIE_ID 0xffffffffffffffffULL
-#define DW_CIE_VERSION 1
-
-#define DW_CFA_extended 0
-
-#define DW_CHILDREN_no 0x00
-#define DW_CHILDREN_yes 0x01
-
-#define DW_ADDR_none 0
-
-/* Source language names and codes. */
-enum dwarf_source_language
- {
- DW_LANG_C89 = 0x0001,
- DW_LANG_C = 0x0002,
- DW_LANG_Ada83 = 0x0003,
- DW_LANG_C_plus_plus = 0x0004,
- DW_LANG_Cobol74 = 0x0005,
- DW_LANG_Cobol85 = 0x0006,
- DW_LANG_Fortran77 = 0x0007,
- DW_LANG_Fortran90 = 0x0008,
- DW_LANG_Pascal83 = 0x0009,
- DW_LANG_Modula2 = 0x000a,
- /* DWARF 3. */
- DW_LANG_Java = 0x000b,
- DW_LANG_C99 = 0x000c,
- DW_LANG_Ada95 = 0x000d,
- DW_LANG_Fortran95 = 0x000e,
- DW_LANG_PLI = 0x000f,
- DW_LANG_ObjC = 0x0010,
- DW_LANG_ObjC_plus_plus = 0x0011,
- DW_LANG_UPC = 0x0012,
- DW_LANG_D = 0x0013,
- /* DWARF 4. */
- DW_LANG_Python = 0x0014,
- /* DWARF 5. */
- DW_LANG_Go = 0x0016,
-
- DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */
- DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */
-
- /* MIPS. */
- DW_LANG_Mips_Assembler = 0x8001,
- /* UPC. */
- DW_LANG_Upc = 0x8765,
- /* HP extensions. */
- DW_LANG_HP_Bliss = 0x8003,
- DW_LANG_HP_Basic91 = 0x8004,
- DW_LANG_HP_Pascal91 = 0x8005,
- DW_LANG_HP_IMacro = 0x8006,
- DW_LANG_HP_Assembler = 0x8007
- };
-
-/* Names and codes for macro information. */
-enum dwarf_macinfo_record_type
- {
- DW_MACINFO_define = 1,
- DW_MACINFO_undef = 2,
- DW_MACINFO_start_file = 3,
- DW_MACINFO_end_file = 4,
- DW_MACINFO_vendor_ext = 255
- };
-
-/* Names and codes for new style macro information. */
-enum dwarf_macro_record_type
- {
- DW_MACRO_GNU_define = 1,
- DW_MACRO_GNU_undef = 2,
- DW_MACRO_GNU_start_file = 3,
- DW_MACRO_GNU_end_file = 4,
- DW_MACRO_GNU_define_indirect = 5,
- DW_MACRO_GNU_undef_indirect = 6,
- DW_MACRO_GNU_transparent_include = 7,
- DW_MACRO_GNU_lo_user = 0xe0,
- DW_MACRO_GNU_hi_user = 0xff
- };
-
-/* @@@ For use with GNU frame unwind information. */
-
-#define DW_EH_PE_absptr 0x00
-#define DW_EH_PE_omit 0xff
-
-#define DW_EH_PE_uleb128 0x01
-#define DW_EH_PE_udata2 0x02
-#define DW_EH_PE_udata4 0x03
-#define DW_EH_PE_udata8 0x04
-#define DW_EH_PE_sleb128 0x09
-#define DW_EH_PE_sdata2 0x0A
-#define DW_EH_PE_sdata4 0x0B
-#define DW_EH_PE_sdata8 0x0C
-#define DW_EH_PE_signed 0x08
-
-#define DW_EH_PE_pcrel 0x10
-#define DW_EH_PE_textrel 0x20
-#define DW_EH_PE_datarel 0x30
-#define DW_EH_PE_funcrel 0x40
-#define DW_EH_PE_aligned 0x50
-
-#define DW_EH_PE_indirect 0x80
-
-#endif /* _DWARF2_H */
diff --git a/include/dyn-string.h b/include/dyn-string.h
deleted file mode 100644
index 2b147271e..000000000
--- a/include/dyn-string.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* An abstract string datatype.
- Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005, 2009
- Free Software Foundation, Inc.
- Contributed by Mark Mitchell (mark@markmitchell.com).
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GCC 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 GCC; see the file COPYING. If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef DYN_STRING_H
-#define DYN_STRING_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct dyn_string
-{
- int allocated; /* The amount of space allocated for the string. */
- int length; /* The actual length of the string. */
- char *s; /* The string itself, NUL-terminated. */
-}* dyn_string_t;
-
-/* The length STR, in bytes, not including the terminating NUL. */
-#define dyn_string_length(STR) \
- ((STR)->length)
-
-/* The NTBS in which the contents of STR are stored. */
-#define dyn_string_buf(STR) \
- ((STR)->s)
-
-/* Compare DS1 to DS2 with strcmp. */
-#define dyn_string_compare(DS1, DS2) \
- (strcmp ((DS1)->s, (DS2)->s))
-
-
-extern int dyn_string_init (struct dyn_string *, int);
-extern dyn_string_t dyn_string_new (int);
-extern void dyn_string_delete (dyn_string_t);
-extern char *dyn_string_release (dyn_string_t);
-extern dyn_string_t dyn_string_resize (dyn_string_t, int);
-extern void dyn_string_clear (dyn_string_t);
-extern int dyn_string_copy (dyn_string_t, dyn_string_t);
-extern int dyn_string_copy_cstr (dyn_string_t, const char *);
-extern int dyn_string_prepend (dyn_string_t, dyn_string_t);
-extern int dyn_string_prepend_cstr (dyn_string_t, const char *);
-extern int dyn_string_insert (dyn_string_t, int, dyn_string_t);
-extern int dyn_string_insert_cstr (dyn_string_t, int, const char *);
-extern int dyn_string_insert_char (dyn_string_t, int, int);
-extern int dyn_string_append (dyn_string_t, dyn_string_t);
-extern int dyn_string_append_cstr (dyn_string_t, const char *);
-extern int dyn_string_append_char (dyn_string_t, int);
-extern int dyn_string_substring (dyn_string_t, dyn_string_t, int, int);
-extern int dyn_string_eq (dyn_string_t, dyn_string_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined (DYN_STRING_H) */
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
deleted file mode 100644
index 4da18207d..000000000
--- a/include/elf/ChangeLog
+++ /dev/null
@@ -1,1547 +0,0 @@
-2011-12-06 Ulrich Weigand <uweigand@de.ibm.com>
-
- * common.h (NT_S390_LAST_BREAK): Define.
- (NT_S390_SYSTEM_CALL): Likewise.
-
-2011-11-01 DJ Delorie <dj@redhat.com>
-
- * common.h (EM_RL78, EM_78K0R): New.
- * rl78.h: New.
-
-2011-10-25 Joern Rennecke <joern.rennecke@embecosm.com>
-
- * epiphany.h: New file.
- * common.h (EM_ADAPTEVA_EPIPHANY): Define.
-
-2011-10-10 Alan Modra <amodra@gmail.com>
-
- * ppc64.h (R_PPC64_TOCSAVE): Add.
-
-2011-10-05 DJ Delorie <dj@redhat.com>
-
- * rx.h (E_FLAG_RX_PID): New.
-
-2011-09-21 David S. Miller <davem@davemloft.net>
-
- * sparc.h (Tag_GNU_Sparc_HWCAPS): New object attribute.
- (ELF_SPARC_HWCAP_*): New HWCAPS bitmask values.
-
-2011-08-12 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/13082
- * x86-64.h (R_X86_64_RELATIVE64): New.
-
-2011-07-24 Chao-ying Fu <fu@mips.com>
- Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (R_MICROMIPS_min): New relocations.
- (R_MICROMIPS_26_S1): Likewise.
- (R_MICROMIPS_HI16, R_MICROMIPS_LO16): Likewise.
- (R_MICROMIPS_GPREL16, R_MICROMIPS_LITERAL): Likewise.
- (R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1): Likewise.
- (R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1): Likewise.
- (R_MICROMIPS_CALL16, R_MICROMIPS_GOT_DISP): Likewise.
- (R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST): Likewise.
- (R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16): Likewise.
- (R_MICROMIPS_SUB, R_MICROMIPS_HIGHER): Likewise.
- (R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16): Likewise.
- (R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP): Likewise.
- (R_MICROMIPS_JALR, R_MICROMIPS_HI0_LO16): Likewise.
- (R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM): Likewise.
- (R_MICROMIPS_TLS_DTPREL_HI, R_MICROMIPS_TLS_DTPREL_LO): Likewise.
- (R_MICROMIPS_TLS_GOTTPREL): Likewise.
- (R_MICROMIPS_TLS_TPREL_HI16): Likewise.
- (R_MICROMIPS_TLS_TPREL_LO16): Likewise.
- (R_MICROMIPS_GPREL7_S2, R_MICROMIPS_PC23_S2): Likewise.
- (R_MICROMIPS_max): Likewise.
- (EF_MIPS_ARCH_ASE_MICROMIPS): New macro.
- (STO_MIPS_ISA, STO_MIPS_FLAGS): Likewise.
- (ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT): Likewise.
- (STO_MICROMIPS): Likewise.
- (ELF_ST_IS_MICROMIPS, ELF_ST_SET_MICROMIPS): Likewise.
- (ELF_ST_IS_COMPRESSED): Likewise.
- (STO_MIPS_PLT, STO_MIPS_PIC): Rework.
- (ELF_ST_IS_MIPS_PIC, ELF_ST_SET_MIPS_PIC): Likewise.
- (STO_MIPS16, ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): Likewise.
-
-2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (EM_K1OM): New.
-
-2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
- Thomas Schwinge <thomas@schwinge.name>
-
- PR binutils/12913
- * common.h (ELFOSABI_GNU): Define, replaces...
- (ELFOSABI_LINUX): ... this, kept as an alias.
- (ELFOSABI_HURD): Remove.
-
-2011-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
-
- * common.h (NT_ARM_VFP): Define.
-
-2011-06-13 Walter Lee <walt@tilera.com>
-
- * common.h: Add EM_TILEGX.
- * tilegx.h: New file.
- * tilepro.h: New file.
-
-2011-06-09 Tristan Gingold <gingold@adacore.com>
-
- * ia64.h (Elf64_External_VMS_ORIG_DYN_Note): New struct.
-
-2011-06-02 Nick Clifton <nickc@redhat.com>
-
- * common.h: Fix spelling mistake in comment.
- * reloc-macros.h: Likewise.
-
-2011-05-31 Paul Brook <paul@codesourcery.com>
-
- * arm.h (arm_st_branch_type): Add ST_BRANCH_UNKNOWN.
-
-2011-04-15 Sergio Durigan Junior <sergiodj@redhat.com>
-
- * common.h (NT_STAPSDT): New define.
-
-2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
-
- * tic6x.h (R_C6000_JUMP_SPLOT, R_C6000_EHTYPE,
- R_C6000_PCR_H16, R_C6000_PCR_L16): New relocs.
- (SHN_TIC6X_SCOMMON): Define.
-
-2011-03-31 Tristan Gingold <gingold@adacore.com>
-
- * ia64.h (Elf64_External_VMS_Note): New struct.
- (NT_VMS_MHD, NT_VMS_LNM, NT_VMS_SRC, NT_VMS_TITLE, NT_VMS_EIDC)
- (NT_VMS_FPMODE, NT_VMS_LINKTIME, NT_VMS_IMGNAM, NT_VMS_IMGID)
- (NT_VMS_LINKID, NT_VMS_IMGBID, NT_VMS_GSTNAM, NT_VMS_ORIG_DYN)
- (NT_VMS_PATCHTIME) New macros.
-
-2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
-
- * arm.h (R_ARM_IRELATIVE): New relocation.
-
-2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
-
- * internal.h (elf_internal_sym): Add st_target_internal.
- * arm.h (arm_st_branch_type): New enum.
- (ARM_SYM_BRANCH_TYPE): New macro.
-
-2011-03-10 Nick Clifton <nickc@redhat.com>
-
- * common.h (EM_V850): V850s now supplied by Renesas.
-
-2011-02-25 Alan Modra <amodra@gmail.com>
-
- PR 12516
- * internal.h (ELF_SECTION_IN_SEGMENT_1): Don't match zero size
- sections at start or end of PT_DYNAMIC.
-
-2011-01-10 Nathan Sidwell <nathan@codesourcery.com>
- Glauber de Oliveira Costa <glommer@gmail.com>
-
- * arm.h (R_ARM_TLS_DESC, R_ARM_TLS_GOTDESC, R_ARM_TLS_CALL,
- R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New
- relocations.
-
-2010-11-16 Jie Zhang <jie.zhang@analog.com>
-
- * bfin.h (EF_BFIN_CODE_IN_L1): Define.
- (EF_BFIN_DATA_IN_L1): Define.
-
-2010-11-11 Mingming Sun <mingm.sun@gmail.com>
-
- * mips.h (E_MIPS_MACH_LS3A): Defined.
-
-2010-11-02 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-attrs.h (Tag_ABI_wchar_t, Tag_ABI_stack_align_needed,
- Tag_ABI_stack_align_preserved, Tag_ABI_PID, Tag_ABI_PIC,
- Tag_ABI_array_object_alignment,
- Tag_ABI_array_object_align_expected, Tag_ABI_conformance): Define.
-
-2010-10-29 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-attrs.h (Tag_ABI_compatibility): Define.
-
-2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-attrs.h (Tag_ABI_DSBT): New.
-
-2010-10-21 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-attrs.h (Tag_C6XABI_Tag_CPU_arch): Change to Tag_ISA,
- value 4.
- * tic6x.h (Values for Tag_C6XABI_Tag_CPU_arch): Rename for
- attribute renaming.
-
-2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
- Ina Pandit <ina.pandit@kpitcummins.com>
-
- * v850.h: Add support for V850E2 and V850E2V3.
- (v850_reloc_type): Update the newly added relocations
-
-2010-07-20 Alan Modra <amodra@gmail.com>
-
- * internal.h (ELF_TBSS_SPECIAL): New macro, extracted from..
- (ELF_SECTION_SIZE): ..here.
- (ELF_SECTION_IN_SEGMENT_1): Add "strict" arg.
- (ELF_SECTION_IN_SEGMENT_STRICT): New macro.
-
-2010-06-25 Alan Modra <amodra@gmail.com>
-
- * ppc64.h (R_PPC64_LO_DS_OPT): Define.
-
-2010-06-15 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-attrs.h: New.
- * tic6x.h: Include elf/tic6x-attrs.h for attribute table.
- (C6XABI_Tag_CPU_arch_none, C6XABI_Tag_CPU_arch_C62X,
- C6XABI_Tag_CPU_arch_C67X, C6XABI_Tag_CPU_arch_C67XP,
- C6XABI_Tag_CPU_arch_C64X, C6XABI_Tag_CPU_arch_C64XP,
- C6XABI_Tag_CPU_arch_C674X): Define.
-
-2010-06-11 Tristan Gingold <gingold@adacore.com>
-
- * ia64.h (EF_IA_64_VMS_COMCOD, EF_IA_64_VMS_COMCOD_SUCCESS)
- (EF_IA_64_VMS_COMCOD_WARNING, EF_IA_64_VMS_COMCOD_ERROR)
- (EF_IA_64_VMS_COMCOD_ABORT, EF_IA_64_VMS_LINKAGES): Define.
- (VMS_LF_CALL_DEBUG, VMS_LF_NOP0BUFS, VMS_LF_P0IMAGE)
- (VMS_LF_MKTHREADS, VMS_LF_UPCALLS, VMS_LF_IMGSTA)
- (VMS_LF_INITIALIZE, VMS_LF_MAIN, VMS_LF_EXE_INIT)
- (VMS_LF_TBK_IN_IMG, VMS_LF_DBG_IN_IMG, VMS_LF_TBK_IN_DSF)
- (VMS_LF_DBG_IN_DSF, VMS_LF_SIGNATURES, VMS_LF_REL_SEG_OFF): Define.
- (VMS_STO_VISIBILITY, VMS_ST_VISIBILITY, VMS_STO_FUNC_TYPE)
- (VMS_ST_FUNC_TYPE, VMS_SFT_CODE_ADDR, VMS_SFT_SYMV_IDX)
- (VMS_SFT_FD, VMS_SFT_RESERVE, VMS_STO_LINKAGE, VMS_ST_LINKAGE)
- (VMS_STL_IGNORE, VMS_STL_RESERVE, VMS_STL_STD, VMS_STL_LNK): Define.
- (Elf64_External_VMS_IMAGE_FIXUP): New declaration.
- (Elf64_External_VMS_IMAGE_RELA): Ditto.
- (R_IA64_VMS_DIR8, R_IA64_VMS_DIR16LSB, R_IA64_VMS_CALL_SIGNATURE)
- (R_IA64_VMS_EXECLET_FUNC, R_IA64_VMS_EXECLET_DATA, R_IA64_VMS_FIX8)
- (R_IA64_VMS_FIX16, R_IA64_VMS_FIX32, R_IA64_VMS_FIX64)
- (R_IA64_VMS_FIXFD, R_IA64_VMS_ACC_LOAD, R_IA64_VMS_ACC_ADD)
- (R_IA64_VMS_ACC_SUB, R_IA64_VMS_ACC_MUL, R_IA64_VMS_ACC_DIV)
- (R_IA64_VMS_ACC_AND, R_IA64_VMS_ACC_IOR, R_IA64_VMS_ACC_EOR)
- (R_IA64_VMS_ACC_ASH, R_IA64_VMS_ACC_STO8, R_IA64_VMS_ACC_STO16LSH)
- (R_IA64_VMS_ACC_STO32LSH, R_IA64_VMS_ACC_STO64LSH): New.
-
-2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
- Andrew Stubbs <ams@codesourcery.com>
-
- * sh.h (EF_SH_PIC, EF_SH_FDPIC): Define.
- (R_SH_FIRST_INVALID_RELOC_6, R_SH_LAST_INVALID_RELOC_6): New. Adjust
- other invalid ranges.
- (R_SH_GOT20, R_SH_GOTOFF20, R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20)
- (R_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC20, R_SH_FUNCDESC)
- (R_SH_FUNCDESC_VALUE): New.
-
-2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
-
- PR gas/11600
- * common.h (SHF_EXCLUDE): New.
-
- * i370.h (SHF_EXCLUDE): Removed.
- * or32.h (SHF_EXCLUDE): Likewise.
- * ppc.h (SHF_EXCLUDE): Likewise.
- * sparc.h (SHF_EXCLUDE): Likewise.
-
-2010-04-23 Alan Modra <amodra@gmail.com>
-
- * internal.h (ELF_SECTION_SIZE): Protect macro args with parentheses.
- Invert logic to clarify test for .tbss.
- (ELF_IS_SECTION_IN_SEGMENT): Rename to..
- (ELF_SECTION_IN_SEGMENT_1): ..this. Add check_vma param. Protect
- macro args with parentheses.
- (ELF_SECTION_IN_SEGMENT): Define.
- (ELF_IS_SECTION_IN_SEGMENT_FILE): Delete.
- (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Delete.
-
-2010-04-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
- Tag_FP_HP_extension): Add new ABI attribute tags.
-
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * alpha.h: Update copyright notice to use GPLv3.
- * arc.h: Likewise.
- * arm.h: Likewise.
- * avr.h: Likewise.
- * bfin.h: Likewise.
- * common.h: Likewise.
- * cr16.h: Likewise.
- * cr16c.h: Likewise.
- * cris.h: Likewise.
- * crx.h: Likewise.
- * d10v.h: Likewise.
- * d30v.h: Likewise.
- * dlx.h: Likewise.
- * dwarf.h: Likewise.
- * external.h: Likewise.
- * fr30.h: Likewise.
- * frv.h: Likewise.
- * h8.h: Likewise.
- * hppa.h: Likewise.
- * i370.h: Likewise.
- * i386.h: Likewise.
- * i860.h: Likewise.
- * i960.h: Likewise.
- * ia64.h: Likewise.
- * internal.h: Likewise.
- * ip2k.h: Likewise.
- * iq2000.h: Likewise.
- * lm32.h: Likewise.
- * m32c.h: Likewise.
- * m32r.h: Likewise.
- * m68hc11.h: Likewise.
- * m68k.h: Likewise.
- * mcore.h: Likewise.
- * mep.h: Likewise.
- * microblaze.h: Likewise.
- * mips.h: Likewise.
- * mmix.h: Likewise.
- * mn10200.h: Likewise.
- * moxie.h: Likewise.
- * msp430.h: Likewise.
- * mt.h: Likewise.
- * openrisc.h: Likewise.
- * or32.h: Likewise.
- * pj.h: Likewise.
- * ppc.h: Likewise.
- * ppc64.h: Likewise.
- * reloc-macros.h: Likewise.
- * rx.h: Likewise.
- * s390.h: Likewise.
- * sh.h: Likewise.
- * sparc.h: Likewise.
- * spu.h: Likewise.
- * v850.h: Likewise.
- * vax.h: Likewise.
- * vxworks.h: Likewise.
- * x86-64.h: Likewise.
- * xc16x.h: Likewise.
- * xstormy16.h: Likewise.
- * xtensa.h: Likewise.
-
-2010-04-08 David Stubbs <stubbs@icerasemi.com>
-
- * internal.h (ELF_IS_SECTION_IN_SEGMENT): PT_PHDR program headers
- cannot contain any sections.
-
-2010-03-25 Joseph Myers <joseph@codesourcery.com>
-
- * common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define.
- * tic6x.h: New.
-
-2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * common.h (VER_FLG_*): Document.
- (VER_FLG_INFO): Define.
-
-2010-02-23 Andrew Zabolotny <anpaza@mail.ru>
-
- PR binutils/11297
- * avr.h: (R_AVR_8): New relocation number.
-
-2010-02-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (Tag_MPextension_use): Renumber.
- (Tag_DIV_use): Add.
- (Tag_MPextension_use_legacy): Likewise.
-
-2010-02-09 Michael Holzheu <holzheu@de.ibm.com>
-
- * common.h (NT_S390_TIMER, NT_S390_TODCMP, NT_S390_TODPREG,
- NT_S390_CTRS and NT_S390_PREFIX): Define.
-
-2010-02-08 David S. Miller <davem@davemloft.net>
-
- * sparc.h (R_SPARC_JMP_IREL, R_SPARC_IRELATIVE): Define.
-
-2010-02-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (NT_386_XSTATE): New.
-
-2010-01-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * s390.h (EF_S390_HIGH_GPRS): Added macro definition.
-
-2010-01-19 Daisuke Hatayama <d.hatayama@jp.fujitsu.com>
-
- * common.h (PN_XNUM): Define.
-
-2009-12-18 Ulrich Weigand <uweigand@de.ibm.com>
-
- * common.h (NT_S390_HIGH_GPRS): Define.
-
-2009-12-17 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
- R_PPC_RELAX32PC_PLT): Delete.
- (R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
-
-2009-11-28 Joseph Myers <joseph@codesourcery.com>
-
- * common.h (ELFOSABI_FENIXOS, EM_TI_C6000, EM_TI_C2000,
- EM_TI_C5500, EM_CUDA): Define.
- (EM_res140, EM_res141, EM_res142): Remove.
-
-2009-11-17 Paul Brook <paul@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
-
- * arm.h (TAG_CPU_ARCH_V7E_M): Define.
-
-2009-09-29 DJ Delorie <dj@redhat.com>
-
- * rx.h: New file.
-
-2009-09-21 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (DT_PPC_TLSOPT): Define.
- * ppc64.h (DT_PPC64_TLSOPT): Define.
-
-2009-08-10 Daniel Gutson <dgutson@codesourcery.com>
-
- * arm.h: (SHT_ARM_DEBUGOVERLAY): New define.
- (SHT_ARM_OVERLAYSECTION): New define.
-
-2006-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
-
- From Mike Frysinger <michael.frysinger@analog.com>
- * bfin.h (R_BFIN_UNUSED, R_BFIN_PCREL5M2, R_BFIN_UNUSED1,
- R_BFIN_PCREL10, R_BFIN_PCREL12_JUMP, R_BFIN_RIMM16,
- R_BFIN_LUIMM16, R_BFIN_HUIMM16, R_BFIN_PCREL12_JUMP_S,
- R_BFIN_PCREL24_JUMP_X, R_BFIN_PCREL24, R_BFIN_UNUSEDB,
- R_BFIN_UNUSEDC, R_BFIN_PCREL24_JUMP_L, R_BFIN_PCREL24_CALL_X,
- R_BFIN_VAR_EQ_SYMB, R_BFIN_BYTE_DATA, R_BFIN_BYTE2_DATA,
- R_BFIN_BYTE4_DATA, R_BFIN_PCREL11, R_BFIN_PUSH, R_BFIN_CONST,
- R_BFIN_ADD, R_BFIN_SUB, R_BFIN_MULT, R_BFIN_DIV, R_BFIN_MOD,
- R_BFIN_LSHIFT, R_BFIN_RSHIFT, R_BFIN_AND, R_BFIN_OR, R_BFIN_XOR,
- R_BFIN_LAND, R_BFIN_LOR, R_BFIN_LEN, R_BFIN_NEG, R_BFIN_COMP,
- R_BFIN_PAGE, R_BFIN_HWPAGE, R_BFIN_ADDR, R_BFIN_PLTPLC,
- R_BFIN_GOT, R_BFIN_MAX): Renamed from R_unused0, R_pcrel5ms,
- R_unused1, R_pcrel10, R_pcrel12_jump, R_rimm16, R_luimm16,
- R_huimm16, R_pcrel12_jump_s, R_pcrel24_jump_x, R_pcrel24,
- R_unusedb, R_unusedc, R_pcrel24_jump_l, R_pcrel24_call_x,
- R_var_eq_symb, R_byte_data, R_byte2_data, R_byte4_data, R_pcrel11,
- R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift,
- R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp,
- R_page, R_hwpage, R_addr, R_pltpc, R_got.
-
-2009-08-09 Michael Eager <eager@eagercon.com>
-
- * elf/common.h: Define EM_resnnn reserved values. Add EM_AVR32,
- EM_STM8, EM_TILE64, EM_TILEPRO. Change EM_MICROBLAZE.
-
-2009-08-06 Michael Eager <eager@eagercon.com>
-
- * elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD.
- * elf/microblaze.h: New reloc definitions.
-
-2009-07-30 Alan Modra <amodra@bigpond.net.au>
-
- * ppc64.h: Add R_PPC64_JMP_IREL, R_PPC64_REL16, R_PPC64_REL16_LO,
- R_PPC64_REL16_HI, R_PPC64_REL16_HA.
-
-2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (EM_L1OM): New.
-
-2009-07-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
- Alan Modra <amodra@bigpond.net.au>
-
- * spu.h (R_SPU_ADD_PIC): New.
-
-2009-07-23 Ulrich Drepper <drepper@redhat.com>
-
- * common.h (STB_GNU_UNIQUE): Define.
-
-2009-07-10 Tom Tromey <tromey@redhat.com>
-
- * dwarf2.h: Move to `..'.
-
-2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * dwarf2.h: Just include ../dwarf2.h.
-
-2009-07-10 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_IRELATIVE): Add.
- (R_PPC_RELAX32, R_PPC_RELAX32PC,
- R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber.
- * ppc64.h (R_PPC64_IRELATIVE): Add.
-
-2009-07-03 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
- and DW_OP_stack_value.
-
-2009-06-22 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_RELAX*): Define as enum.
-
-2009-06-11 Anthony Green <green@moxielogic.org>
-
- * moxie.h (R_MOXIE_PCREL10): New.
-
-2009-06-01 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/10205
- * i386.h (R_386_IRELATIVE): New.
- * x86-64.h (R_X86_64_IRELATIVE): Likewise.
-
-2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h: Update comments for dynamic tag ranges.
-
-2009-04-30 DJ Delorie <dj@redhat.com>
-
- * mep.h (EF_MEP_COP_*): New.
- (EF_MEP_ALL_FLAGS): Add them.
-
-2009-04-30 Nick Clifton <nickc@redhat.com>
-
- * common.h (STT_GNU_IFUNC): Define.
-
-2009-04-24 Cary Coutant <ccoutant@google.com>
-
- * dwarf2.h (DW_LNE_set_discriminator): New enum value.
-
-2009-04-15 Anthony Green <green@moxielogic.com>
-
- * common.h (EM_MOXIE): Define.
- * moxie.h: New file.
-
-2009-04-07 DJ Delorie <dj@redhat.com>
-
- * mep.h (EF_MEP_CPU_C5): New.
-
-2009-04-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (EM_INTEL178): Removed.
- (EM_INTEL179): Likewise.
- (EM_ETPU): New.
- (EM_SLE9X): Likewise.
- (EM_INTEL181): Likewise.
- (EM_INTEL182): Likewise.
-
-2009-03-31 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (EM_INTEL178): New.
- (EM_INTEL179): Likewise.
- (EM_INTEL180): Likewise.
-
-2009-03-20 Mikolaj Zalewski <mikolajz@google.com>
-
- * common.h (SHT_GNU_INCREMENTAL_INPUTS): Define.
-
-2009-03-14 Mark Kettenis <kettenis@gnu.org>
-
- * common.h (NT_OPENBSD_PROCINFO, NT_OPENBSD_AUXV)
- (NT_OPENBSD_REGS, NT_OPENBSD_FPREGS, NT_OPENBSD_XFPREGS)
- (NT_OPENBSD_WCOOKIE): New defines.
-
-2009-03-16 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * common.h (AT_RANDOM): Define.
-
-2009-03-04 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_TLSGD, R_PPC_TLSLD): Add new relocs.
- * ppc64.h (R_PPC64_TLSGD, R_PPC64_TLSLD): Add new relocs.
-
-2009-03-02 Qinwei <qinwei@sunnorth.com.cn>
-
- * score.h (RELOC_NUMBER): Add R_SCORE_IMM32.
- * common.h (EM_SCORE_OLD): Define.
-
-2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (STB_LOPROC): Replace Application-specific with
- Processor-specific in comments.
- (STB_HIPROC): Likewise.
- (STT_LOPROC): Likewise.
- (STT_HIPROC): Likewise.
-
-2009-02-03 Sandip Matte <sandip@rmicorp.com>
-
- * mips.h (E_MIPS_MACH_XLR): Define.
-
-2009-02-03 Maxim Kuvyrkov <maxim@codesourcery.com>
-
- * m68k.h: Map TLS relocations to numbers.
-
-2009-01-15 Andrew Stubbs <ams@codesourcery.com>
- Julian Brown <julian@codesourcery.com>
-
- * arm.h (TAG_CPU_ARCH_V6_M, TAG_CPU_ARCH_V6S_M): New defines.
- (MAX_TAG_CPU_ARCH, TAG_CPU_ARCH_V4T_PLUS_V6_M): New defines.
- (Tag_NEON_arch): Rename to Tag_Advanced_SIMD_arch to match ARM ABI
- version 2.07.
- (Tag_undefined39, Tag_nodefaults): New enum values.
- (Tag_also_compatible_with, Tag_T2EE_use): Likewise.
- (Tag_conformance, Tag_Virtualization_use): Likewise.
- (Tag_undefined69, Tag_MPextension_use): Likewise.
-
-2009-01-15 Douglas B Rupp <rupp@gnat.com>
-
- * ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1):
- New macros. Minor reformatting.
-
-2008-12-23 Jon Beniston <jon@beniston.com>
-
- * lm32.h: New file.
-
-2008-12-23 Nick Clifton <nickc@redhat.com>
-
- * commmon.h (STT_IFUNC): Delete.
-
-2008-12-20 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (R_CRIS_32_IE): New relocation.
-
-2008-12-03 Nick Clifton <nickc@redhat.com>
-
- * common.h (STT_IFUNC): Define.
-
-2008-11-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * cr16.h (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
- R_CR16_GLOB_DAT): New relocations.
-
-2008-11-25 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (R_CRIS_32_TPREL): Correct comment.
- (R_CRIS_DTPMOD): Open up for use elsewhere than the fourth GOT entry.
-
-2008-11-18 Catherine Moore <clm@codesourcery.com>
-
- * arm.h (Tag_ABI_FP_16bit_format): Define.
-
-2008-11-14 Nathan Sidwell <nathan@codesourcery.com>
-
- * internal.h (struct elf_segment_map): Add header_size field.
-
-2008-10-13 Ulrich Weigand <uweigand@de.ibm.com>
-
- * common.h (AT_BASE_PLATFORM, AT_EXECFN): Define.
-
-2008-10-10 Nathan Froyd <froydnj@codesourcery.com>
-
- * ppc.h: Add Tag_GNU_Power_ABI_Struct_Return.
-
-2008-10-04 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD)
- (R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD)
- (R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL)
- (R_CRIS_16_TPREL): New relocations.
-
-2008-08-20 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
- (R_XTENSA_TLS_DTPOFF, R_XTENSA_TLS_TPOFF, R_XTENSA_TLS_FUNC)
- (R_XTENSA_TLS_ARG, R_XTENSA_TLS_CALL): New.
-
-2008-08-08 Richard Sandiford <rdsandiford@googlemail.com>
- Daniel Jacobowitz <dan@codesourcery.com>
- Catherine Moore <clm@codesourcery.com>
- Mark Shinwell <shinwell@codesourcery.com>
-
- * mips.h (STO_MIPS_PLT, ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT)
- (STO_MIPS_PIC, DT_MIPS_PLTGOT, DT_MIPS_RWPLT): New macros.
-
-2008-08-04 Markus Weiss <weissms@aros.org>
-
- * common.h (ELFOSABI_AROS): Update comment.
-
-2008-07-26 Michael Eager <eager@eagercon.com>
-
- * ppc.h: Add description of single-precision.
-
-2008-07-21 Luis Machado <luisgpm@br.ibm.com>
-
- * common.h: Define NT_PPC_VSX.
-
-2008-07-10 Richard Sandiford <rdsandiford@googlemail.com>
-
- * mips.h (ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): New macros.
-
-2008-06-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * common.h (EM_CR16): Correct value.
- (EM_CR16): Rename to EM_CR16_OLD.
-
-2008-06-12 DJ Delorie <dj@redhat.com>
-
- * common.h (EM_M32C_NEW): Rename to EM_M32C.
- (EM_M32C): Rename to EM_M32C_OLD.
-
-2008-06-12 Joseph Myers <joseph@codesourcery.com>
-
- * common.h: Update e_machine table.
-
-2008-06-09 Takashi Yoshii <yoshii.takashi@renesas.com>
-
- * sh.h (EF_SH_BFD_TABLE): Set bfd_mach_sh for EF_SH_UNKNOWN.
-
-2008-06-09 Joseph Myers <joseph@codesourcery.com>
-
- * common.h: Change registry@caldera.com to registry@sco.com.
-
-2008-05-21 Nick Clifton <nickc@redhat.com>
-
- * reloc-macros.h: Add a comment about the use of the
- END_RELOC_NUMBERS symbol as a sentinel value.
-
-2008-05-15 Christophe Lyon <christophe.lyon@st.com>
-
- * arm.h (END_RELOC_NUMBERS): Provide a maximum value.
-
-2008-04-16 David S. Miller <davem@davemloft.net>
-
- * elf/sparc.h (R_SPARC_GOTDATA_HIX22,
- R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22,
- R_SPARC_GOTDATA_OP_LOX10, R_SPARC_GOTDATA_OP,
- R_SPARC_H34, R_SPARC_SIZE32, R_SPARC_SIZE64): New relocs.
-
-2008-03-24 Ian Lance Taylor <iant@google.com>
-
- * common.h (NT_GNU_GOLD_VERSION): Define.
-
-2008-03-13 Alan Modra <amodra@bigpond.net.au>
-
- * internal.h (Elf_Internal_Shdr): Change sh_link and sh_info from
- unsigned long to unsigned int. Change sh_addralign to bfd_vma.
- Order struct as for external version.
-
-2008-03-12 Alan Modra <amodra@bigpond.net.au>
-
- PR 5900
- * common.h (SHN_BAD): Delete.
- (SHN_LORESERVE .. SHN_HIRESERVE): Move to..
- * external.h: ..here.
- * internal.h (SHN_LORESERVE, SHN_HIRESERVE): Define.
- (SHN_LOPROC, SHN_HIPROC, SHN_LOOS, SHN_HIOS): Define.
- (SHN_ABS, SHN_COMMON, SHN_XINDEX, SHN_BAD): Define.
-
-2008-03-12 Alan Modra <amodra@bigpond.net.au>
-
- * cr16c.h (SHN_CR16C_FCOMMON): Define using SHN_LORESERVE.
- (SHN_CR16C_NCOMMON): Likewise.
- * hppa.h (SHN_PARISC_ANSI_COMMON): Likewise.
- (SHN_PARISC_HUGE_COMMON): Likewise.
- * ia64.h (SHN_IA_64_ANSI_COMMON): Likewise.
- (SHN_IA_64_VMS_SYMVEC): Define using SHN_LOOS.
- * m32r.h (SHN_M32R_SCOMMON): Define using SHN_LORESERVE.
- * mips.h (SHN_MIPS_ACOMMON, SHN_MIPS_TEXT): Likewise.
- (SHN_MIPS_DATA, SHN_MIPS_SCOMMON, SHN_MIPS_SUNDEFINED): Likewise.
- * score.h (SHN_SCORE_TEXT, SHN_SCORE_DATA): Likewise.
- (SHN_SCORE_SCOMMON): Likewise.
- * sparc.h (SHN_BEFORE, SHN_AFTER): Likewise.
- * v850.h (SHN_V850_SCOMMON, SHN_V850_TCOMMON): Likewise.
- (SHN_V850_ZCOMMON): Likewise.
- * x86-64.h (SHN_X86_64_LCOMMON): Likewise.
-
-2008-03-03 Pallavi Tambay <pallavi.tambay@amd.com>
-
- * dwarf2.h: (enum dwarf_location_atom): Add new DW_OP:
- DW_OP_PGI_omp_thread_num.
-
-2008-02-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * mips.h: Update copyright.
- (E_MIPS_MACH_OCTEON): New macro.
-
-2008-01-30 Tristan Gingold <gingold@adacore.com>
-
- Add OpenVMS extensions.
- * ia64.h (SHF_IA_64_VMS_GLOBAL, SHF_IA_64_VMS_OVERLAID)
- (SHF_IA_64_VMS_SHARED, SHF_IA_64_VMS_VECTOR)
- (SHF_IA_64_VMS_ALLOC_64BIT, SHF_IA_64_VMS_PROTECTED)
- (SHT_IA_64_VMS_TRACE, SHT_IA_64_VMS_TIE_SIGNATURES)
- (SHT_IA_64_VMS_DEBUG, SHT_IA_64_VMS_DEBUG_STR)
- (SHT_IA_64_VMS_LINKAGES, SHT_IA_64_VMS_SYMBOL_VECTOR)
- (SHT_IA_64_VMS_FIXUP, DT_IA_64_VMS_SUBTYPE)
- (DT_IA_64_VMS_IMGIOCNT, DT_IA_64_VMS_LNKFLAGS)
- (DT_IA_64_VMS_VIR_MEM_BLK_SIZ, DT_IA_64_VMS_IDENT)
- (DT_IA_64_VMS_NEEDED_IDENT, DT_IA_64_VMS_IMG_RELA_CNT)
- (DT_IA_64_VMS_SEG_RELA_CNT, DT_IA_64_VMS_FIXUP_RELA_CNT)
- (DT_IA_64_VMS_FIXUP_NEEDED, DT_IA_64_VMS_SYMVEC_CNT)
- (DT_IA_64_VMS_XLATED, DT_IA_64_VMS_STACKSIZE)
- (DT_IA_64_VMS_UNWINDSZ, DT_IA_64_VMS_UNWIND_CODSEG)
- (DT_IA_64_VMS_UNWIND_INFOSEG, DT_IA_64_VMS_LINKTIME)
- (DT_IA_64_VMS_SEG_NO, DT_IA_64_VMS_SYMVEC_OFFSET)
- (DT_IA_64_VMS_SYMVEC_SEG, DT_IA_64_VMS_UNWIND_OFFSET)
- (DT_IA_64_VMS_UNWIND_SEG, DT_IA_64_VMS_STRTAB_OFFSET)
- (DT_IA_64_VMS_SYSVER_OFFSET, DT_IA_64_VMS_IMG_RELA_OFF)
- (DT_IA_64_VMS_SEG_RELA_OFF, DT_IA_64_VMS_FIXUP_RELA_OFF)
- (DT_IA_64_VMS_PLTGOT_OFFSET, DT_IA_64_VMS_PLTGOT_SEG)
- (DT_IA_64_VMS_FPMODE, SHN_IA_64_VMS_SYMVEC): Define
-
-2008-01-16 Mark Kettenis <kettenis@gnu.org>
-
- * common.h (AT_SUN_AUXFLAGS): Define.
-
-2007-12-11 Daniel Jacobowitz <dan@codesourcery.com>
-
- * dwarf2.h (DW_AT_hi_user): Correct value.
-
-2007-12-07 Bob Wilson <bob.wilson@acm.org>
-
- * xtensa.h (R_XTENSA_32_PCREL): New.
-
-2007-11-29 Mark Shinwell <shinwell@codesourcery.com>
-
- * mips.h (E_MIPS_MACH_LS2E): New.
- (E_MIPS_MACH_LS2F): New.
-
-2007-11-28 Nathan Sidwell <nathan@codesourcery.com>
-
- * internal.h (ELF_IS_SECTION_IN_SEGMENT): Adjust to cope with
- segments at the end of memory.
-
-2007-11-17 Thiemo Seufer <ths@mips.com>
-
- * mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant
- in comment.
-
-2007-11-16 Nick Clifton <nickc@redhat.com>
-
- * dwarf2.h: Mention the location of the DWARF3 spec on the web.
- (DW_AT_stride_size): Rename to DW_AT_bit_stride.
- (DW_AT_stride): Rename to DW_AT_byte_stride.
-
-2007-11-08 Nathan Sidwell <nathan@codesourcery.com>
-
- * vxworks.h: New.
-
-2007-10-30 Nick Clifton <nickc@redhat.com>
-
- * mn10300.h (R_MN10300_ALIGN): Define.
-
-2007-10-25 Daniel Jacobowitz <dan@codesourcery.com>
-
- * ppc.h (Tag_GNU_Power_ABI_Vector): New.
-
-2007-10-19 Nick Clifton <nickc@redhat.com>
-
- * mn10300.h: Add R_MN10300_SYM_DIFF reloc.
-
-2007-10-18 Roland McGrath <roland@redhat.com>
-
- * common.h (NT_PPC_VMX): New macro.
-
-2007-10-01 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * cr16.h: Updated with new relocaction macros.
-
-2007-09-17 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/3281
- PR binutils/5037
- * internal.h (elf_segment_map): Add p_size and p_size_valid.
- (ELF_IS_SECTION_IN_SEGMENT): Allow SHF_TLS sections in
- PT_GNU_RELRO segments.
-
-2007-09-11 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (EF_M68K_CF_ISA_C_NODIV): New.
-
-2007-08-25 Ulrich Weigand <uweigand@de.ibm.com>
-
- * common.h (NT_SPU): Define.
-
-2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h: Revert last change.
-
-2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * common.h (PT_GNU_STACK): Renamed to ...
- (PT_GNU_ATTR): This.
- (PT_GNU_STACK): New. Make an alias of PT_GNU_ATTR.
-
-2007-07-09 Roland McGrath <roland@redhat.com>
-
- * common.h (NT_GNU_HWCAP, NT_GNU_BUILD_ID): New macros.
-
-2007-06-29 Joseph Myers <joseph@codesourcery.com>
-
- * ppc.h (Tag_GNU_Power_ABI_FP): Define.
-
-2007-06-29 Joseph Myers <joseph@codesourcery.com>
-
- * mips.h (Tag_GNU_MIPS_ABI_FP): Define.
-
-2007-06-29 Joseph Myers <joseph@codesourcery.com>
-
- * arm.h (elf32_arm_add_eabi_attr_int,
- elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
- elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents,
- elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section,
- Tag_Symbol, Tag_compatibility): Remove.
- * common.h (SHT_GNU_ATTRIBUTES): Define.
-
-2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * common.h (EM_CR16): New entry for CR16 cpu.
- * cr16.h: New file.
-
-2007-06-11 Sterling Augustine <sterling@tensilica.com>
- Bob Wilson <bob.wilson@acm.org>
-
- * xtensa.h (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to...
- (XTENSA_PROP_NO_TRANSFORM): ...this.
-
-2007-05-18 Caroline Tice <ctice@apple.com>
-
- * dwarf2.h: (enum dwarf_location_atom): Add new DW_OP,
- DW_OP_GNU_uninit.
-
-2007-05-12 Alan Modra <amodra@bigpond.net.au>
-
- * spu.h (R_SPU_ADDR16X): Define.
- (R_SPU_PPU32, R_SPU_PPU64): Renumber.
-
-2007-05-11 Alan Modra <amodra@bigpond.net.au>
-
- * spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.
-
-2007-05-02 Alan Modra <amodra@bigpond.net.au>
-
- * internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset
- and vma for appropriate sections.
-
-2007-04-26 Jan Beulich <jbeulich@novell.com>
-
- * common.h (DT_ENCODING): Correct value (back to spec mandated
- value).
-
-2007-03-08 Alan Modra <amodra@bigpond.net.au>
-
- * v850.h (V850_OTHER_TDA_BYTE): Delete.
- (V850_OTHER_SDA, V850_OTHER_ZDA, V850_OTHER_TDA): Assign bits
- that don't clash with visibility bits.
-
-2007-03-07 Alan Modra <amodra@bigpond.net.au>
-
- * common.h (ELF_ST_VISIBILITY): Comment typo fix.
-
-2007-02-05 Dave Brolley <brolley@redhat.com>
- Richard Sandiford <rsandifo@redhat.com>
- Richard Henderson <rth@redhat.com>
- DJ Delorie <dj@redhat.com>
- Ben Elliston <bje@redhat.com>
-
- * mep.h: New file.
- * common.h (EM_CYGNUS_MEP): Define.
-
-2007-02-15 Dave Brolley <brolley@redhat.com>
-
- From Graydon Hoare <graydon@redhat.com>:
- * common.h (STT_RELC, STT_SRELC, R_RELC): New macros.
-
-2007-01-08 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (EF_M68K_FIDO): New.
- (EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
- (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.
-
-2006-12-25 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New.
-
-2006-12-19 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (EF_M68K_ARCH_MASK): New.
-
-2006-12-19 Nathan Sidwell <nathan@codesourcery.com>
-
- * internal.h (struct elf_segment_map): Add p_vaddr_offset field.
-
-2006-12-07 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A_NODIV,
- EF_M68K_ISA_A, EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B_NOUSP,
- EF_M68K_ISA_B, EF_M68K_ISA_C, EF_M68K_MAC_MASK, EF_M68K_MAC,
- EF_M68K_EMAC, EF_M68K_EMAC_B, EF_M68K_FLOAT): Rename to
- EF_M68K_CF_ISA_MASK, EF_M68K_CF_ISA_A_NODIV, EF_M68K_CF_ISA_A,
- EF_M68K_CF_ISA_A_PLUS, EF_M68K_CF_ISA_B_NOUSP,
- EF_M68K_CF_ISA_B, EF_M68K_CF_ISA_C, EF_M68K_CF_MAC_MASK,
- EF_M68K_CF_MAC, EF_M68K_CF_EMAC, EF_M68K_CF_EMAC_B,
- EF_M68K_CF_FLOAT, respectively.
-
-2006-12-05 Michael Tautschnig <tautschn@model.in.tum.de>
- Nick Clifton <nickc@redhat.com>
-
- * external.h (struct Elf_External_Versym): Use ATTRIBUTE_PACKED.
-
-2006-10-28 Richard Sandiford <richard@codesourcery.com>
-
- * mips.h (R_MIPS_GLOB_DAT): Define
- (R_MIPS_max): Bump by 1.
-
-2006-10-25 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
- Yukishige Shibata <shibata@rd.scei.sony.co.jp>
- Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
- Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
- Alan Modra <amodra@bigpond.net.au>
-
- * common.h (EM_SPU): Define.
- * spu.h: New file.
-
-2006-10-19 Mei Ligang <ligang@sunnorth.com.cn>
-
- * score.h (EF_SCORE_PIC): Redefine EF_SCORE_PIC as 0x80000000.
- (EF_SCORE_FIXDEP): Redefine EF_SCORE_FIXDEP as 0x40000000.
- (EF_SCORE_HASENTRY): Delete.
-
-2006-10-17 Mark Shinwell <shinwell@codesourcery.com>
-
- * arm.h: Define TAG_CPU_ARCH_* constants.
-
-2006-09-17 Mei Ligang <ligang@sunnorth.com.cn>
-
- * score.h: New file.
- * common.h: Add Score machine number.
-
-2006-07-10 Jakub Jelinek <jakub@redhat.com>
-
- * common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.
-
-2006-05-31 H.J. Lu <hongjiu.lu@intel.com>
-
- * internal.h (ELF_SECTION_SIZE): New.
- (ELF_IS_SECTION_IN_SEGMENT): Likewise.
- (ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
- (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
-
-2006-05-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * internal.h (struct elf_segment_map): Add p_align and p_align_valid.
-
-2006-05-24 Carlos O'Donell <carlos@systemhalted.org>
- Randolph Chung <randolph@tausq.org>
- * hppa.h (R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL,
- R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL,
- R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32,
- R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64):
- New TLS relocs.
- (R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L,
- R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64):
- Define TLS relocs using existing equivalents.
-
-2006-05-24 Bjoern Haase <bjoern.m.haase@web.de>
-
- * avr.h: Add E_AVR_MACH_AVR6, R_AVR_LO8_LDI_GS and R_AVR_HI8_LDI_GS.
-
-2006-03-25 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO,
- R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4, R_BFIN_FUNCDESC_GOTHI,
- R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE,
- R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI,
- R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI,
- R_BFIN_GOTOFFLO): New relocs.
- (EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros.
-
-2006-03-23 Michael Matz <matz@suse.de>
-
- * x86-64.h: Add the new relocations with their official
- numbers.
-
-2006-03-22 Richard Sandiford <richard@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
- Phil Edwards <phil@codesourcery.com>
- Zack Weinberg <zack@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
-
- * mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs.
-
-2006-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (SHF_HP_TLS, SHF_HP_NEAR_SHARED, SHF_HP_FAR_SHARED,
- SHF_HP_COMDAT, SHF_HP_CONST, SHN_TLS_COMMON, SHN_NS_COMMON,
- SHN_NS_UNDEF, SHN_FS_UNDEF, SHN_HP_EXTERN, SHN_HP_EXTHINT,
- SHN_HP_UNDEF_BIND_IMM, SHT_HP_OVLBITS, SHT_HP_DLKM, SHT_HP_COMDAT,
- SHT_HP_OBJDICT, SHT_HP_ANNOT, STB_HP_ALIAS): Define.
-
-2006-03-10 Paul Brook <paul@codesourcery.com>
-
- * arm.h (EF_ARM_EABI_VER5): Define.
-
-2006-03-06 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A,
- EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust.
- (EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New.
- (EF_M68K_HW_DIV, EF_M68K_USP): Remove.
- (EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust.
- (EF_M68K_EMAC_B): New.
-
-2006-03-03 Bjoern Haase <bjoern.m.haase@web.de>
-
- * avr.h (R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG): Add.
- (EF_AVR_LINKRELAX_PREPARED): Add.
-
-2006-03-02 Ben Elliston <bje@au.ibm.com>
-
- Import from the GCC tree:
- 2006-03-01 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
- from DWARF 3.
- (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
- DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
- DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
- DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
- DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
- (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
- (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
- DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
- (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
- DW_DS_leading_separate, DW_DS_trailing_separate): New.
- (DW_END_default, DW_END_big, DW_END_little): New.
- (DW_END_lo_user, DW_END_hi_user): Define.
- (DW_LNE_lo_user, DW_LNE_hi_user): Define.
- (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
- (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
- DW_LANG_D): New.
-
-2006-02-06 Steve Ellcey <sje@cup.hp.com>
-
- * ia64.h (SHF_IA_64_HP_TLS): New.
-
-2006-02-24 DJ Delorie <dj@redhat.com>
-
- * m32c.h: Add relax relocs.
-
-2006-02-17 Shrirang Khisti <shrirangk@kpitcummins.com>
- Anil Paranjape <anilp1@kpitcummins.com>
- Shilin Shakti <shilins@kpitcummins.com>
-
- * common.h (EM_XC16X): New entry for xc16x cpu.
- Sort other EM_* numbers into numerical order.
- * xc16x.h: New file.
-
-2006-02-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/2258
- * internal.h (ELF_IS_SECTION_IN_SEGMENT_FILE): New.
- (ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
-
-2006-02-07 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ...
- (EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here.
- (EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS,
- EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC,
- EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New.
-
-2006-02-06 Steve Ellcey <sje@cup.hp.com>
-
- * ia64.h (SHF_IA_64_HP_TLS): New.
-
-2006-01-18 Alexandre Oliva <aoliva@redhat.com>
-
- Introduce TLS descriptors for i386 and x86_64.
- * common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
- * i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
- New.
- * x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
- R_X86_64_TLSDESC): New.
-
-2006-01-09 Mike Frysinger <vapier@gentoo.org>:
-
- * common.h (EM_ALTERA_NIOS2, EM_NIOS32) Define.
-
-2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
-
- Second part of ms1 to mt renaming.
- * common.h (EM_MT): Renamed.
- * mt.h: Rename relocs, cpu & other defines.
-
-2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
-
- * mt.h: Renamed from ms1.h
-
-2005-12-12 Paul Brook <paul@codesourcery.com>
-
- * arm.h (elf32_arm_get_eabi_attr_int): Add prototype.
-
-2005-11-11 Nick Clifton <nickc@redhat.com>
-
- PR 1150
- * mips.h (STO_OPTIONAL): Define.
- (ELF_MIPS_IS_OPTIONAL): Define.
-
-2005-11-07 Nathan Sidwell <nathan@codesourcery.com>
-
- Add ms2.
- * ms1.h (EF_MS1_CPU_MS2): New.
-
-2005-11-06 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
-
- * hppa.h (R_PARISC_DIR64WR, R_PARISC_DIR64DR): Remove relocs.
-
-2005-09-30 Catherine Moore <clm@cm00re.com>
-
- * bfin.h: New file.
- * common.h (EM_BLACKFIN): Define.
-
-2005-10-08 Paul Brook <paul@codesourcery.com>
-
- * arm.h: Add prototypes for BFD object attribute routines.
-
-2005-09-09 Richard Earnshaw <richard.earnshaw@arm.com>
-
- * arm.h (SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES): New defines.
-
-2005-08-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (SHT_PARISC_DLKM, SHF_PARISC_WEAKORDER, PT_PARISC_WEAKORDER):
- New defines.
-
-2005-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (PF_HP_CODE, PF_HP_MODIFY, PF_HP_LAZYSWAP): Revise defines.
- (PF_HP_CODE_DEPR, PF_HP_MODIFY_DEPR, PF_HP_LAZYSWAP_DEPR): New
- deprecated defines.
- (DT_HP_EPLTREL, DT_HP_EPLTRELSZ, DT_HP_FILTERED, DT_HP_FILTER_TLS,
- DT_HP_COMPAT_FILTERED, DT_HP_LAZYLOAD, DT_HP_BIND_NOW_COUNT, DT_PLT,
- DT_PLT_SIZE, DT_DLT, DT_DLT_SIZE, DT_HP_BIND_DEPTH_FIRST, DT_HP_GST,
- DT_HP_SHLIB_FIXED, DT_HP_MERGE_SHLIB_SEG, DT_HP_NODELETE, DT_HP_GROUP,
- DT_HP_PROTECT_LINKAGE_TABLE, PT_HP_OPT_ANNOT, PT_HP_HSL_ANNOT,
- PT_HP_STACK, PT_HP_CORE_UTSNAME, NT_HP_COMPILER, NT_HP_COPYRIGHT,
- NT_HP_VERSION, NT_HP_SRCFILE_INFO, NT_HP_LINKER, NT_HP_INSTRUMENTED,
- NT_HP_UX_OPTIONS): Define.
-
-2005-07-25 DJ Delorie <dj@redhat.com>
-
- * m32c.h: Add R_M32C_8, R_M32C_LO16, R_M32C_HI8, and R_M32C_HI16.
-
-2005-07-25 Jan Hubicka <jh@suse.cz>
-
- * x86-64.h (SHN_X86_64_LCOMMON): New.
- (SHF_X86_64_LARGE): New.
-
-2005-07-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * m32r.h (R_M32R_REL32): Added.
-
-2005-07-18 Ben Elliston <bje@au.ibm.com>
-
- * dwarf2.h (enum dwarf_type): Remove DW_AT_GNU_decimal_float.
- Replace with DW_ATE_decimal_float (now in DWARF 3).
-
-2005-07-14 Jim Blandy <jimb@redhat.com>
-
- Add support for Renesas M32C and M16C.
- * common.h (EM_M32C): New machine number.
- * m32c.h: New file.
-
-2005-06-17 Jakub Jelinek <jakub@redhat.com>
-
- * external.h (GRP_ENTRY_SIZE): Define.
-
-2005-06-17 Jan Beulich <jbeulich@novell.com>
-
- * x86-64.h (elf_x86_64_reloc_type): Adjust comment for
- R_X86_64_GOTPCREL. Add R_X86_64_PC64, R_X86_64_GOTOFF64, and
- R_X86_64_GOTPC32.
-
-2005-06-07 Aldy Hernandez <aldyh@redhat.com>
- Michael Snyder <msnyder@redhat.com>
- Stan Cox <scox@redhat.com>
-
- * common.h (EM_MS1): Define.
-
- * ms1.h: New file.
-
-2005-05-31 Richard Henderson <rth@redhat.com>
-
- * alpha.h (LITUSE_ALPHA_JSRDIRECT): New.
-
-2005-05-29 Richard Henderson <rth@redhat.com>
-
- * alpha.h (DT_ALPHA_PLTRO): New.
-
-2005-05-19 Ben Elliston <bje@au.ibm.com>
-
- * dwarf2.h (enum dwarf_type): Assign DW_ATE_GNU_decimal_float from
- the user-defined encoding space pending inclusion in the standard.
-
-2005-05-18 Zack Weinberg <zack@codesourcery.com>
-
- * arm.h: Make all #ifndef OLD_ARM_ABI blocks
- unconditional, delete all #ifdef OLD_ARM_ABI blocks.
-
-2005-05-17 Zack Weinberg <zack@codesourcery.com>
-
- * arm.h: Import complete list of official relocation names
- and numbers from AAELF. Define FAKE_RELOCs for old names.
- Remove a few old names no longer used anywhere.
-
-2005-05-14 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (DT_PPC_GOT): Rename from DT_PPC_GLINK.
-
-2005-05-11 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
- R_PPC_RELAX32PC_PLT) Adjust.
- (R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define.
- (DT_PPC_GLINK): Define.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
- d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h,
- frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h,
- internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h,
- mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h,
- or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h,
- sparc.h, v850.h, vax.h, x86-64.h, xstormy16.h, xtensa.h
-
-2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
-
- Moved from ../ChangeLog
-
- 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
- * arm.h: Add R_ARM_CALL and R_ARM_JUMP32.
-
- 2004-10-12 Paul Brook <paul@codesourcery.com>
- * arm.h (EF_ARM_EABI_VER4): Define.
-
- 2004-10-08 Daniel Jacobowitz <dan@debian.org>
-
- * common.h (PT_SUNW_EH_FRAME): Define.
- * x86-64.h (SHT_X86_64_UNWIND): Define.
-
- 2004-10-07 Bob Wilson <bob.wilson@acm.org>
- * xtensa.h (R_XTENSA_DIFF8, R_XTENSA_DIFF16, R_XTENSA_DIFF32,
- R_XTENSA_SLOT*_OP, R_XTENSA_SLOT*_ALT): New relocations.
- (XTENSA_PROP_SEC_NAME): Define.
- (property_table_entry): Add flags field.
- (XTENSA_PROP_*, GET_XTENSA_PROP_*, SET_XTENSA_PROP_*): Define.
-
- 2004-09-17 Paul Brook <paul@codesourcery.com>
- * arm.h: Remove R_ARM_STKCHK and R_ARM_THM_STKCHK.
- Add R_ARM_TARGET2, R_ARM_PREL31, R_ARM_GOT_ABS, R_ARM_GOT_PREL,
- R_ARM_GOT_BREL12, R_ARM_GOTOFF12 and R_ARM_GOTRELAX.
-
- 2004-09-13 Paul Brook <paul@codesourcery.com>
- * arm.h: Rename RELABS to TARGET1.
-
- 2004-05-11 Jakub Jelinek <jakub@redhat.com>
- * common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
- (PT_GNU_RELRO): Define.
-
-2005-03-29 Daniel Jacobowitz <dan@codesourcery.com>
- Phil Blundell <philb@gnu.org>
-
- * arm.h: Add TLS relocations.
-
-2005-03-23 Ben Elliston <bje@au.ibm.com>
-
- * dwarf.h: Merge with GCC's dwarf.h.
-
-2005-03-18 C Jaipraash <cjaiprakash@noida.hcltech.com>
-
- * m68k.h (EF_CFV4E): Define.
-
-2005-03-17 Paul Brook <paul@codesourcery.com>
- Dan Jacobowitz <dan@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
-
- * arm.h (PT_ARM_EXIDX): Define.
-
-2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
-
- * mips.h: Define MIPS TLS relocations.
-
-2005-02-15 Nigel Stephens <nigel@mips.com>
- Maciej W. Rozycki <macro@mips.com>
-
- * mips.h (R_MIPS16_GOT16): New reloc code.
- (R_MIPS16_CALL16): Likewise.
- (R_MIPS16_HI16): Likewise.
- (R_MIPS16_LO16): Likewise.
- (R_MIPS16_min): New fake reloc code.
- (R_MIPS16_max): Likewise.
-
-2005-02-11 Maciej W. Rozycki <macro@mips.com>
-
- * mips.h (R_MIPS_max): Use FAKE_RELOC to define.
-
-2005-01-25 Alexandre Oliva <aoliva@redhat.com>
-
- 2004-12-10 Alexandre Oliva <aoliva@redhat.com>
- * frv.h: Add R_FRV_TLSMOFF.
- 2004-11-10 Alexandre Oliva <aoliva@redhat.com>
- * frv.h: Add TLS relocations.
-
-2005-01-17 Nick Clifton <nickc@redhat.com>
-
- * sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4,
- EF_SH2A_SH3E): New flags.
- (EF_SH_BFD_TABLE): Add these new flags to the table.
-
-2005-01-12 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Define.
- (R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value.
-
-2004-12-22 Klaus Rudolph <lts-rudolph@gmx.de>
-
- * avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs.
-
-2004-12-16 Richard Sandiford <rsandifo@redhat.com>
-
- * v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc.
-
-2004-12-09 Ian Lance Taylor <ian@wasabisystems.com>
-
- * mips.h (E_MIPS_MACH_9000): Define.
-
-2004-11-04 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (EF_CRIS_VARIANT_MASK, EF_CRIS_VARIANT_ANY_V0_V10)
- (EF_CRIS_VARIANT_V32, EF_CRIS_VARIANT_COMMON_V10_V32): New
- macros.
-
-2004-10-06 Eric Christopher <echristo@redhat.com>
-
- * dwarf2.h: Sync with gcc dwarf2.h. Fix typo.
-
-2004-10-01 Paul Brook <paul@codesourcery.com>
-
- * arm.h (SHT_ARM_EXIDX): Define.
- (ELF_STRING_ARM_unwind, ELF_STRING_ARM_unwind,
- ELF_STRING_ARM_unwind_once, ELF_STRING_ARM_unwind_info_once):
- Define.
-
-2004-08-25 Dmitry Diky <diwil@spec.ru>
-
- * msp430.h: Add new relocs.
-
-2004-08-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (R_386_USED_BY_INTEL_200): New.
-
-2004-07-29 Alexandre Oliva <aoliva@redhat.com>
-
- Introduce SH2a support.
- 2004-02-18 Corinna Vinschen <vinschen@redhat.com>
- * sh.h (EF_SH2A_NOFPU): New.
- 2003-12-01 Michael Snyder <msnyder@redhat.com>
- * sh.h (EF_SH2A): New.
-
-2004-07-27 Tomer Levi <Tomer.Levi@nsc.com>
-
- * crx.h: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16,
- BFD_RELOC_CRX_SWITCH32.
-
-2004-07-06 Tomer Levi <Tomer.Levi@nsc.com>
-
- * common.h (EM_CRX): Define.
- * crx.h: New file.
-
-2004-06-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * m32r.h: Add defintions of R_M32R_GOTOFF_HI_ULO,
- R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.
-
-2004-06-19 Alan Modra <amodra@bigpond.net.au>
-
- * common.h (ELF64_R_INFO): Warning fix.
-
-2004-06-14 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
- with an updated comment.
-
-2004-05-28 Andrew Stubbs <andrew.stubbs@superh.com>
-
- * sh.h (EF_SH_HAS_DSP): Remove.
- (EF_SH_HAS_FP): Remove.
- (EF_SH_MERGE_MACH): Remove.
- (EF_SH4_NOFPU): Convert to decimal.
- (EF_SH4A_NOFPU): Likewise.
- (EF_SH4_NOMMU_NOFPU): Likewise.
- (EF_SH3_NOMMU): Add new macro.
- (EF_SH_BFD_TABLE): Likewise.
- (sh_find_elf_flags): Add prototype.
- (sh_elf_get_flags_from_mach): Likewise.
-
-2004-04-24 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
- (R_MIPS_GNU_REL_HI16): Remove.
- (R_MIPS_GNU_REL16_S2): Update comment.
-
-2004-30-30 Galit Heller <Galit.Heller@nsc.com>
- Tomer Levi <Tomer.Levi@nsc.com>
-
- * common.h (EM_CR): Define.
- * cr16c.h: New file.
-
-2004-03-23 Paul Brook <paul@codesourcery.com>
-
- * arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add.
-
-2003-03-03 Andrew Stubbs <andrew.stubbs@superh.com>
-
- * sh.h: Add EF_SH4_NOMMU_NOFPU.
-
-2004-03-01 Richard Sandiford <rsandifo@redhat.com>
-
- * frv.h (EF_FRV_CPU_FR405, EF_FRV_CPU_FR450): Define.
-
-2004-01-28 Roland McGrath <roland@redhat.com>
-
- * common.h (AT_SECURE): New macro.
-
-2004-01-21 Roland McGrath <roland@redhat.com>
-
- * common.h (AT_SUN_UID, AT_SUN_RUID, AT_SUN_GID): New macros.
- (AT_SUN_RGID, AT_SUN_LDELF, AT_SUN_LDSHDR, AT_SUN_LDNAME,
- AT_SUN_LPAGESZ, AT_SUN_PLATFORM, AT_SUN_HWCAP, AT_SUN_IFLUSH,
- AT_SUN_CPU, AT_SUN_EMUL_ENTRY, AT_SUN_EMUL_EXECFD,
- AT_SUN_EXECNAME) AT_SUN_MMU, AT_SUN_LDDATA): Likewise.
-
-2004-01-17 Mark Kettenis <kettenis@gnu.org>
-
- * common.h (NT_OPENBSD_IDENT): Define.
-
-2004-01-06 Alexandre Oliva <aoliva@redhat.com>
-
- 2003-09-18 Alexandre Oliva <aoliva@redhat.com>
- * frv.h (EF_FRV_FDPIC): New macro.
- (EF_FRV_PIC_FLAGS): Adjust.
- 2003-08-08 Alexandre Oliva <aoliva@redhat.com>
- * frv.h (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
- R_FRV_FUNCDESC_GOTOFFLO, R_FRV_FUNCDESC_GOTOFFHI, R_FRV_GOTOFF12,
- R_FRV_GOTOFFLO, R_FRV_GOTOFFHI): New.
- 2003-08-04 Alexandre Oliva <aoliva@redhat.com>
- * frv.h (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, R_FRV_FUNCDESC,
- R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, R_FRV_FUNCDESC_GOTLO):
- New.
-
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/elf/ChangeLog-9103 b/include/elf/ChangeLog-9103
deleted file mode 100644
index 93632ef80..000000000
--- a/include/elf/ChangeLog-9103
+++ /dev/null
@@ -1,1948 +0,0 @@
-2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
-
- Moved from ../ChangeLog
-
- 2003-10-14 Bob Wilson <bob.wilson@acm.org>
- * xtensa.h: Formatting. Fix comments about property section
- names for linkonce sections.
-
- 2003-05-23 Jakub Jelinek <jakub@redhat.com>
- * common.h (PT_GNU_STACK): Define.
-
- 2003-01-25 Jakub Jelinek <jakub@redhat.com>
- * sparc.h: Add TLS relocs. Move R_SPARC_REV32 to 252.
-
- 2002-09-26 Jakub Jelinek <jakub@redhat.com>
- * x86-64.h: Add TLS relocs.
-
- 2002-09-19 Jakub Jelinek <jakub@redhat.com>
- * i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE):
- Define.
-
- 2002-07-10 Jakub Jelinek <jakub@redhat.com>
- * common.h (SHT_GNU_LIBLIST, DT_GNU_PRELINKED,
- DT_GNU_CONFLICT*, DT_GNU_LIBLIST*): Define.
-
- 2002-05-31 Michal Ludvig <mludvig@suse.cz>
- * dwarf2.h (DW_CFA_low_user, DW_CFA_high_user): Renamed
- to DW_CFA_lo_user, DW_CFA_hi_user respectively.
-
- 2002-05-23 Jakub Jelinek <jakub@redhat.com>
- * common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
- * ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
- * i386.h: Add TLS relocs.
-
-2003-12-19 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * m32r.h : Added m32r-linux and PIC support. Add new ABI that
- uses RELA.
- (R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
- R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA,
- R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA,
- R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA,
- R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT,
- R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24,
- R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT,
- R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF,
- R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO,
- R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO,
- R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO,
- R_M32R_GOTPC_LO): New relocs.
-
-2003-12-06 Alan Modra <amodra@bigpond.net.au>
-
- From Jan Beulich <JBeulich@novell.com>
- * common.h (DT_HIOS): Correct value.
-
-2003-12-03 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * m32r.h: Add new machine type m32r2 and instruction modes.
-
-2003-11-06 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (R_PPC_RELAX32PC): Define.
-
-2003-10-22 Alexandre Oliva <aoliva@redhat.com>,
- Michael Snyder <msnyder@redhat.com>
-
- * sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New.
- (EF_SH_MERGE_MACH): Combine them.
-
-2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
-
- * mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number.
- (_bfd_mmix_before_linker_allocation): Rename from
- _bfd_mmix_prepare_linker_allocated_gregs.
- (_bfd_mmix_after_linker_allocation): Rename from
- _bfd_mmix_finalize_linker_allocated_gregs.
-
-2003-10-06 Dave Brolley <brolley@redhat.com>
-
- * frv.h (EF_FRV_CPU_FR550): New macro.
-
-2003-09-30 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (E_MIPS_ARCH_64R2): New define.
-
-2003-09-23 DJ Delorie <dj@redhat.com>
-
- * sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
- R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces.
- (R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
- R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
- R_SH_PSHA, R_SH_PSHL): New.
-
-2003-09-11 James Cownie <jcownie@etnus.com>
-
- * dwarf2.h: Add HP dwarf extensions from their hacked gdb
- header files (ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz).
-
-2003-09-04 Nick Clifton <nickc@redhat.com>
-
- * v850.h (E_V850E1_ARCH): Define.
-
-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.
- (GNU_ABI_TAG_FREEBSD): New tag.
-
-2003-06-10 Richard Sandiford <rsandifo@redhat.com>
-
- * h8.h (E_H8_MACH_H8300SXN): New flag.
-
-2003-06-03 Nick Clifton <nickc@redhat.com>
-
- * v850.h (R_V850_32): Rename to R_V850_ABS32.
- Add R_V850_REL32.
-
-2003-05-15 Roland McGrath <roland@redhat.com>
-
- * common.h (NT_AUXV, AT_*): New macros.
- * external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types.
- * internal.h (Elf_Internal_Auxv): New type.
-
-2003-05-14 Michael Snyder <msnyder@redhat.com>
- From Bernd Schmidt <bernds@redhat.com>
- * h8.h (E_H8_MACH_H8300SX): New.
-
-2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
-
- * h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New
-
-2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
-
- * common.h (EM_SH): Amend comment to refer to SuperH.
-
-2003-04-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * common.h: Replace references to Mitsubishi M32R with
- references to Renesas M32R.
-
-2003-04-15 Rohit Kumar Srivastava <rohits@kpitcummins.com>
-
- * common.h: Replace occurrances of 'Hitachi' with 'Renesas'.
-
-2003-04-01 Bob Wilson <bob.wilson@acm.org>
-
- * common.h (EM_XTENSA_OLD): Define.
- * xtensa.h: New file.
-
-2003-04-01 Nick Clifton <nickc@redhat.com>
-
- * arm.h (ARM_NOTE_SECTION): Include .gnu in the string.
-
-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.
-
-2003-03-03 J"orn Rennecke <joern.rennecke@superh.com>
-
- * sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
- and SH2E & SH4 merge to SH4, not SH2E.
-
-2003-02-21 Ian Wienand <ianw@gelato.unsw.edu.au>
-
- * ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG,
- SHT_IA_64_PRIORITY_INIT): Define.
-
-2003-02-18 Alan Modra <amodra@bigpond.net.au>
-
- * ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.
-
- * ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
- (IS_PPC_TLS_RELOC): Define.
-
-2003-02-10 Nick Clifton <nickc@redhat.com>
-
- * arm.h (EF_ARM_MAVERICK_FLOAT): Define.
-
-2003-02-05 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h: Add TLS relocs. Format.
- * ppc64.h: Likewise.
-
-2003-01-27 Alexandre Oliva <aoliva@redhat.com>
-
- * mips.h (EF_MIPS_XGOT): Define.
-
-2003-01-24 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * s390.h: Add s390 TLS relocations.
-
-2003-01-23 Nick Clifton <nickc@redhat.com>
-
- * Add sh2e support:
-
- 2002-04-02 Alexandre Oliva <aoliva@redhat.com>
-
- * sh.h (EF_SH_MERGE_MACH): Handle SH2E.
-
- 2002-04-02 Elena Zannoni <ezannoni@redhat.com>
-
- * sh.h (EF_SH2E): New.
-
-2003-01-23 Alan Modra <amodra@bigpond.net.au>
-
- * sh.h: Split out various bits to bfd/elf32-sh64.h.
-
-2003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff,
- gotplt and pltoff relocations.
-
-2003-01-17 Alan Modra <amodra@bigpond.net.au>
-
- * common.h: Formatting, typo fixes.
- (DT_ENCODING): Correct value.
-
-2003-01-17 Fabio Alemagna <falemagn@aros.org>
-
- * common.h (ELFOSABI_AROS): Define.
- (ELFOSABI_OPENVMS): Likewise.
- (ELFOSABI_NSK): Likewise.
-
-2003-01-16 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h: Split out ppc64 definitions to..
- * pcc64.h: ..here. New file.
- (R_PPC64_REL30): Rename from R_PPC64_ADDR30.
-
-2003-01-13 Dmitry Diky <diwil@mail.ru>
-
- * elf/common.h (EM_MSP430): Change e_machine value to officially
- assigned.
-
-2003-01-02 Ben Elliston <bje@redhat.com>
-
- * common.h (EM_IQ2000): Define.
- * iq2000.h: New file.
-
-2002-12-30 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (E_MIPS_ARCH_32R2): New define.
-
-2002-12-24 Dmitry Diky <diwil@mail.ru>
-
- * common.h: Define msp430 machine numbers.
- * msp430.h: New file. Define msp430 relocs.
-
-2002-12-20 DJ Delorie <dj@redhat.com>
-
- * xstormy16.h: Add XSTORMY16_12.
-
-2002-12-16 Andrew MacLeod <amacleod@redhat.com>
-
- * xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers
- for R_XSTORMY16_LO16 and R_XSTORMY16_HI16.
-
-2002-12-10 James Cownie <jcownie@etnus.com>
-
- * dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
- DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
- Define.
-
-2002-12-01 Stephane Carrez <stcarrez@nerim.fr>
-
- * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
- (EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
- (EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
-
-2002-11-30 Alan Modra <amodra@bigpond.net.au>
-
- * mmix.h: Replace boolean with bfd_boolean.
- * sh.h: Likewise.
-
-2002-11-28 Alan Modra <amodra@bigpond.net.au>
-
- * internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr,
- elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr,
- Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr,
- elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr,
- Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym,
- Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note,
- elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel,
- elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela,
- elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela,
- elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn,
- Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef,
- elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed,
- elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux,
- elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef,
- Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux,
- Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux,
- Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym,
- Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete.
- (Elf_Internal_Rel): Delete.
-
-2002-10-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-
- * sh.h: Add SH TLS relocs.
-
-2002-09-30 Gavin Romig-Koch <gavin@redhat.com>
- Ken Raeburn <raeburn@cygnus.com>
- Aldy Hernandez <aldyh@redhat.com>
- Eric Christopher <echristo@redhat.com>
- Richard Sandiford <rsandifo@redhat.com>
-
- * mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.
-
-2002-09-12 Roland McGrath <roland@redhat.com>
-
- * dwarf2.h: Updates from GCC version of thie file:
- (enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref.
- Add DW_OP_GNU_push_tls_address.
- (DW_OP_lo_user): Change to 0xe0.
-
-2002-08-28 Catherine Moore <clm@redhat.com>
-
- * v850.h (R_V850_LONGCALL, R_V850_ALIGN,
- R_V850_LONGJUMP): New relocations.
-
-2002-08-15 Alan Modra <amodra@bigpond.net.au>
-
- * i370.h: Define relocs using reloc-macros.h.
-
-2002-08-13 Stephane Carrez <stcarrez@nerim.fr>
-
- * m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64,
- EF_M68HC11_ABI): Define for ABI specification.
- (STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for
- linker and debugger.
- (R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs.
- (R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker
- relaxation.
-
-2002-07-15 Denis Chertykov <denisc@overta.ru>
- Frank Ch. Eigler <fche@redhat.com>
- Ben Elliston <bje@redhat.com>
- Alan Lehotsky <alehotsky@cygnus.com>
- John Healy <jhealy@redhat.com>
- Graham Stott <grahams@redhat.com>
- Jeff Johnston <jjohnstn@redhat.com>
-
- * common.h (EM_IP2K): New macro.
- (EM_IP2K_OLD): New macro.
- * ip2k.h: New file.
-
-2002-07-01 Matt Thomas <matt@3am-software.com>
-
- * vax.h: Rename EF_* to EF_VAX_*.
-
-2002-06-18 Dave Brolley <brolley@redhat.com>
-
- From Catherine Moore, Michael Meissner, Dave Brolley:
- * common.h (EM_CYGNUS_FRV): New macro.
- * frv.h: New file.
-
-2002-06-06 Lars Brinkhoff <lars@nocrew.org>
-
- * common.h: Change registry@sco.com to registry@caldera.com.
- (EM_PDP10, EM_PDP11): Define.
-
-2002-06-04 Jason Thorpe <thorpej@wasabisystems.com>
-
- * sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl)
- (_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New
- prototypes.
-
-2002-06-01 Richard Henderson <rth@redhat.com>
-
- * alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF,
- LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New.
-
-2002-05-30 Richard Henderson <rth@redhat.com>
-
- * alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
- R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
- R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
- R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.
-
-2002-05-29 Matt Thomas <matt@3am-software.com>
-
- * vax.h: New file
-
-2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net>
-
- * common.h (EM_DLX): Define.
- * dlx.h: New file.
-
-2002-05-08 Jason Thorpe <thorpej@wasabisystems.com>
-
- * common.h (NT_GNU_ABI_TAG): Define.
- (GNU_ABI_TAG_LINUX): Define.
- (GNU_ABI_TAG_HURD): Define.
- (GNU_ABI_TAG_SOLARIS): Define.
- (NT_NETBSD_IDENT): Define.
- (NT_FREEBSD_ABI_TAG): Define.
-
-2002-04-24 Elena Zannoni <ezannoni@redhat.com>
-
- * dwarf2.h: Add DW_AT_GNU_vector.
-
-2002-02-13 Matt Fredette <fredette@netbsd.org>
-
- * m68k.h (EF_M68000): Define.
-
-2002-02-12 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.
-
-2002-02-09 Richard Henderson <rth@redhat.com>
-
- * alpha.h (R_ALPHA_BRSGP): New.
-
-2002-02-08 Alexandre Oliva <aoliva@redhat.com>
-
- Contribute sh64-elf.
- 2002-01-23 Alexandre Oliva <aoliva@redhat.com>
- * sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
- R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
- R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
- R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
- R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
- R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
- R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
- R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
- R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
- R_SH_RELATIVE64): New relocs.
- (R_SH_FIRST_INVALID_RELOC_4): Adjust.
- 2001-05-16 Alexandre Oliva <aoliva@redhat.com>
- * sh.h: Renumbered and renamed some SH5 relocations to match
- official numbers and names; moved unmaching ones to the range
- 0xf2-0xff.
- 2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (sh64_get_contents_type): Declare.
- (sh64_address_is_shmedia): Likewise.
- 2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (sh64_elf_crange): New type.
- (struct sh64_section_data): New.
- (sh64_elf_section_data): New macro.
- (EF_SH5): Rename back from EF_SH64.
- 2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
- SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
- SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
- SH64_CRANGE_CR_TYPE_OFFSET): New macros.
- 2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (EF_SH64): Don't define EF_SH64_ABI64.
- 2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
- (EF_SH64_ABI64): New.
- 2000-11-23 Hans-Peter Nilsson <hpn@cygnus.com>
- * sh.h (EF_SH64): Rename from EF_SH5.
- (EF_SH64_32BIT_ABI): New.
- (EF_SH64_64BIT_ABI): New.
- (R_SH_PT_16, R_SH_SHMEDIA_CODE
- R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
- R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
- R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
- R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
- R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
- relocs.
- 2000-09-01 Ben Elliston <bje@redhat.com>
- * sh.h (EF_SH5): Define.
-
-2002-02-01 Hans-Peter Nilsson <hp@bitrange.com>
-
- * mmix.h: Tweak comments.
- (MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
- [BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
- _bfd_mmix_finalize_linker_allocated_gregs,
- _bfd_mmix_check_all_relocs): Provide prototypes.
-
-2002-01-31 Ivan Guzvinec <ivang@opencores.org>
-
- * or32.h: New file.
- * common.h: Add support for or32 targets.
-
-2002-01-28 Jason Merrill <jason@redhat.com>
-
- * dwarf2.h: Sync with gcc version.
-
-2002-01-16 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (DT_PPC64_GLINK): Define.
-
-2002-01-15 Richard Earnshaw <rearnsha@arm.com>
-
- * arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
-
-2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
-
- * common.h: Update copyright years.
- (NT_NETBSDCORE_PROCINFO): Define.
- (NT_NETBSDCORE_FIRSTMACH): Define.
-
-2002-01-06 Steve Ellcey <sje@cup.hp.com>
-
- * ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
- (SHT_IA_64_HP_OPT_ANOT): Ditto
- (PT_IA_64_HP_OPT_ANOT): Ditto
- (PT_IA_64_HP_HSL_ANOT): Ditto
- (PT_IA_64_HP_STACK): Ditto
- (SHN_IA_64_ANSI_COMMON): Ditto
-
-2001-12-17 Alan Modra <amodra@bigpond.net.au>
-
- * external.h (Elf_External_Sym_Shndx): Declare.
- * internal.h (struct elf_internal_sym <st_shndx>): Make it an
- unsigned int.
- * common.h (SHN_BAD): Define.
-
-2001-12-13 Jakub Jelinek <jakub@redhat.com>
-
- * common.h (PT_GNU_EH_FRAME): Define.
-
-2001-12-11 Alan Modra <amodra@bigpond.net.au>
-
- * common.h (SHN_XINDEX): Comment typo fix.
- * internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
- size, count and index fields to "unsigned int".
-
-2001-12-07 Geoffrey Keating <geoffk@redhat.com>
- Richard Henderson <rth@redhat.com>
-
- * common.h (EM_XSTORMY16): Define.
- * xstormy16.h: New file.
-
-2001-11-15 Alan Modra <amodra@bigpond.net.au>
-
- * common.h (NT_ARCH): Define. Remove incorrect comment.
-
-2001-11-11 Geoffrey Keating <geoffk@redhat.com>
-
- * dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.
-
-2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
-
- * mmix.h: New file.
-
-2001-10-23 Alan Modra <amodra@bigpond.net.au>
-
- * internal.h: White space changes to keep lines under 80 chars.
-
-2001-10-16 Jeff Holcomb <jeffh@redhat.com>
-
- * internal.h (elf_internal_shdr): Make contents a unsigned char *.
-
-2001-09-18 Alan Modra <amodra@bigpond.net.au>
-
- * internal.h (elf_internal_rela): Make r_addend a bfd_vma.
-
-2001-09-13 Alexandre Oliva <aoliva@redhat.com>
-
- * common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.
-
-2001-09-12 Alexandre Oliva <aoliva@redhat.com>
-
- * common.h (EM_AVR_OLD): Renamed from...
- (EM_AVR): this, redefined as in the current ELF standard.
- (EM_PJ_OLD): Renamed from...
- (EM_PJ): this, redefined as in the current ELF standard.
- (EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
- EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
- the current ELF standard.
- (EM_CYGNUS_ARC): Removed, unused for a long time.
-
-2001-09-04 Richard Henderson <rth@redhat.com>
-
- * alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
- (R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.
-
-2001-08-30 Eric Christopher <echristo@redhat.com>
-
- * mips.h: Remove E_MIPS_MACH_MIPS32_4K.
-
-2001-08-29 Jeff Law <law@redhat.com>
-
- * h8.h (EF_H8_MACH): New mask for encoded machine type.
- (E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
- machine types.
-
-2001-08-26 J"orn Rennecke <amylaar@redhat.com>
-
- * h8.h: New file.
-
-2001-08-27 Staffan Ulfberg <staffanu@swox.se>
-
- * ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.
-
-2001-06-30 Daniel Berlin <dan@cgsoftware.com>
-
- * dwarf2.h: Remerge with gcc version,
- including all new DWARF 2.1 extensions.
-
-2001-06-29 James Cownie <jcownie@etnus.com>
-
- * dwarf2.h: Add DWARF 2.1 attribues.
-
-2001-06-15 Per Bothner <per@bothner.com>
-
- * dwarf2.h: Partial merge with gcc version.
- (enum dwarf_descrim_list): Fix typo -> dwarf_discrim_list.
- (DW_LANG_Java): Use value from dwarf 2.1 draft (also used in gcc).
-
-2001-05-15 Ralf Baechle <ralf@gnu.org>
-
- * common.h: Remove definition of EM_MIPS_RS4_BE. The constant was
- never in active use and is used otherwise by the ABI.
-
-2001-05-11 Jakub Jelinek <jakub@redhat.com>
-
- * ia64.h (ELF_STRING_ia64_unwind_once): Define.
- (ELF_STRING_ia64_unwind_info_once): Define.
-
-2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * external.h: Fix typo.
- * mips.h: Add/Extend many comments with reference to the MIPS ELF64
- spec v. 2.4, available at e.g.
- ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps.
- (EF_MIPS_UCODE): Define.
- (EF_MIPS_OPTIONS_FIRST): Define.
- (EF_MIPS_ARCH_ASE): Define.
- (EF_MIPS_ARCH_ASE_MDMX): Define.
- (EF_MIPS_ARCH_ASE_M16): Define.
- (SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32.
- (SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64.
- (SHF_MIPS_NODUPES): Define.
- (ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro.
- (ELF64_MIPS_R_TYPE3): Likewise.
- (ELF64_MIPS_R_TYPE2): Likewise.
- (ELF64_MIPS_R_TYPE): Likewise.
- (OHW_R10KLDL): Define.
-
-2001-04-24 Todd Fries <todd@fries.net>
-
- * sparc.h: Fix typo.
-
-2001-04-20 Johan Rydberg <jrydberg@opencores.org>
-
- * openrisc.h: New file.
- * common.h (EM_OPENRISC): New constant.
-
-2001-04-23 Bo Thorsen <bo@suse.de>
-
- * x86-64.h: Add vtable support.
-
-2001-03-23 Nick Clifton <nickc@redhat.com>
-
- * mips.h: Remove extraneous whitespace.
-
-2001-03-22 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h: Add leading comment about PC-relative location.
- (R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE,
- R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT,
- R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL):
- New relocs.
-
-2001-02-27 Philip Blundell <pb@futuretv.com>
-
- * arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
- (EF_PIC, et al.): Rename to EF_ARM_xx.
-
-2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * common.h: Add linux target for S/390.
- * s390.h: New file.
-
-2001-01-11 Peter Targett <peter.targett@arccores.com>
-
- * arc.h (E_ARC_MACH_ARC5, E_ARC_MACH_ARC6, E_ARC_MACH_ARC7,
- E_ARC_MACH_ARC8): New definitions for cpu types.
-
- * common.h (EM_ARC): Change comment.
-
-2000-12-12 Nick Clifton <nickc@redhat.com>
-
- * mips.h: Fix formatting.
-
-2000-12-11 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS for hpux
- compatibility.
-
-2000-10-16 Chris Demetriou <cgd@sibyte.com>
-
- * mips.h (E_MIPS_ARCH_32): New constant.
- (E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
- former with the latter.
-
- * mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
-
- * mips.h (E_MIPS_MACH_SB1): New constant.
-
-2000-11-30 Jan Hubicka <jh@suse.cz>
-
- * common.h (EM_X86_64): New macro.
- * x86-64.h: New file.
-
-2000-11-27 Hans-Peter Nilsson <hp@axis.com>
-
- * common.h (e_machine numbers): Clarify comments to describe how
- EM_* constants are assigned. Move EM_PJ from official section to
- ad-hoc section.
- (EM_CRIS): Correct comment to match official description.
- (EM_MMIX): Ditto.
-
-2000-11-22 Nick Clifton <nickc@redhat.com>
-
- * common.h (EM_JAVELIN): New machine number.
- (EM_FIREPATH): New machine number.
- (EM_ZSP): New machine number.
- (EM_MMIX): New machine number.
- (EM_HUANY): New machine number.
- (EM_PRISM): New machine number.
- (SHT_GROUP): New section type.
- (SHT_SYMTAB_SHNDX): New section type.
- (SHF_GROUP): New section flag.
- (SHN_XINDEX): New section index.
- (GRP_COMDAT): New section group flag.
-
-2000-11-20 H.J. Lu <hjl@gnu.org>
-
- * common.h (ELFOSABI_MONTEREY): Renamed to ...
- (ELFOSABI_AIX): This.
-
-2000-11-16 Richard Henderson <rth@redhat.com>
-
- Update relocations per August psABI docs.
- * ia64.h (R_IA64_SEGBASE): Remove.
- (R_IA64_LTV*): Renumber to 0x74 to 0x77.
- (R_IA64_EPLTMSB, R_IA64_EPLTLSB): Remove.
- (R_IA64_TPREL14, R_IA64_TPREL64I): New.
- (R_IA64_DTPMOD*): New.
- (R_IA64_DTPREL*): New.
-
-2000-09-29 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (EF_CRIS_UNDERSCORE): New.
-
-2000-09-27 Alan Modra <alan@linuxcare.com.au>
-
- * hppa.h (R_PARISC_DIR14F): Add.
-
-2000-09-14 Alexandre Oliva <aoliva@redhat.com>
-
- * sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
- R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Change
- numbers to the range from 160 to 167.
- (R_SH_FIRST_INVALID_RELOC): Adjust.
- (R_SH_FIRST_INVALID_RELOC_2, R_SH_LAST_INVALID_RELOC_2):
- New relocs to fill in the gap.
-
-2000-09-13 Anders Norlander <anorland@acc.umu.se>
-
- * mips.h (E_MIPS_MACH_4K): New define.
-
-2000-09-05 Alan Modra <alan@linuxcare.com.au>
-
- * hppa.h: Fix a comment.
- (R_PARISC_PCREL12F): Define.
- (R_PARISC_GNU_VTENTRY): Define.
- (R_PARISC_GNU_VTINHERIT): Define.
-
-2000-09-01 Alexandre Oliva <aoliva@redhat.com>
-
- * sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
- R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New relocs.
- (R_SH_FIRST_INVALID_RELOC): Adjust.
-
-2000-08-14 Jim Wilson <wilson@cygnus.com>
-
- * ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP,
- EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.
-
-2000-08-07 Nick Clifton <nickc@cygnus.com>
-
- * ppc.h: Remove spurious CYGNUS LOCAL comments.
- * v850.h: Likewise.
-
-2000-07-22 Jason Eckhardt <jle@cygnus.com>
-
- * i860.h: New file.
- (elf_i860_reloc_type): Defined ELF32 i860 relocations.
-
-2000-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- common.h (EM_CRIS): New machine number.
- cris.h: New file.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * common.h (DT_CHECKSUM): Set to 0x6ffffdf8.
- (DTF_1_CONFEXP): It is 0x00000002 as suspected.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * common.h (DT_FEATURE): Renamed from DT_FEATURE_1.
- (DT_CONFIG): New. From Solaris 8.
- (DT_DEPAUDIT): Likewise.
- (DT_AUDIT): Likewise.
- (DT_PLTPAD): Likewise.
- (DT_MOVETAB): Likewise.
- (DF_1_NODEPLIB): Likewise.
- (DF_1_NODUMP): Likewise.
- (DF_1_CONLFAT): Likewise.
- (DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8.
- (DTF_1_CONFEXP): Likewise.
-
-2000-07-18 H.J. Lu <hjl@gnu.org>
-
- * common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS.
-
-2000-07-12 Alan Modra <alan@linuxcare.com.au>
-
- * internal.h (struct elf_internal_sym): Update comment for st_other.
-
-2000-07-10 Alan Modra <alan@linuxcare.com.au>
-
- * hppa.h: Add comments to all the relocs.
-
-2000-06-26 Marek Michalkiewicz <marekm@linux.org.pl>
-
- * avr.h (E_AVR_MACH_AVR5): Define.
-
-2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
-
- * m68hc11.h: New file, definitions for the Motorola 68hc11.
-
-2000-06-06 Alan Modra <alan@linuxcare.com.au>
-
- * reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
- -1 valued enum.
- (RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than
- prepend comma.
- (END_RELOC_NUMBERS): Give macro an arg to define as last enum.
-
- * alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than
- with EMPTY_RELOC.
- * arc.h (R_ARC_max): Likewise.
- * avr.h (R_AVR_max): Likewise.
- * fr30.h (R_FR30_max): Likewise.
- * hppa.h (R_PARISC_UNIMPLEMENTED): Likewise.
- * i960.h (R_960_max): Likewise.
- * m32r.h (R_M32R_max): Likewise.
- * m68k.h (R_68K_max): Likewise.
- * mcore.h (R_MCORE_max): Likewise.
- * mn10300.h (R_MN10300_MAX): Likewise.
- * pj.h (R_PJ_max): Likewise.
- * ppc.h (R_PPC_max): Likewise.
- * sh.h (R_SH_max): Likewise.
- * sparc.h (R_SPARC_max): Likewise.
- * v850.h (R_V850_max): Likewise.
-
- * arm.h (R_ARM_max): Define via END_RELOC_NUMBERS.
- * d10v.h (R_D10V_max): Likewise.
- * d30v.h (R_D30V_max): Likewise.
- * ia64.h (R_IA64_max): Likewise.
- * mips.h (R_MIPS_maxext): Likewise.
- * mn10200.h (R_MN10200_max): Likewise.
-
- * i386.h (R_386_max): Remove old RELOC_NUMBER definition, and
- define via END_RELOC_NUMBERS.
-
-2000-06-03 Alan Modra <alan@linuxcare.com.au>
-
- * reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
- !__STDC__ case.
- (RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined.
-
-2000-05-22 Richard Henderson <rth@cygnus.com>
-
- * ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New.
- (R_IA64_PCREL22, R_IA64_PCREL64I): New.
-
-2000-05-02 H.J. Lu <hjl@gnu.org>
-
- * common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.
- (ELFOSABI_MODESTO): Defined.
- (ELFOSABI_OPENBSD): Likewise.
-
-2000-04-21 Richard Henderson <rth@cygnus.com>
- David Mosberger <davidm@hpl.hp.com>
-
- * ia64.h: New file.
-
-2000-04-14 H.J. Lu <hjl@gnu.org>
-
- * common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64.
-
-2000-04-14 H.J. Lu <hjl@gnu.org>
-
- * common.h (ELFOSABI_NETBSD): Defined.
- (ELFOSABI_HURD): Likewise.
- (ELFOSABI_SOLARIS): Likewise.
- (ELFOSABI_MONTEREY): Likewise.
- (ELFOSABI_IRIX): Likewise.
- (ELFOSABI_FREEBSD): Likewise.
- (ELFOSABI_TRUE64): Likewise.
-
-2000-04-07 Nick Clifton <nickc@cygnus.com>
-
- * arm-oabi.h: Delete.
- * arm.h: Merge in definitions of old reloc numbers from
- arm-oabi.h.
-
-2000-04-06 Nick Clifton <nickc@cygnus.com>
-
- * arm.h (EF_ARM_SYMSARESORTED): Define.
- (EF_ARM_EABIMASK): Define.
- (EF_ARM_EABI_VERSION): Define.
- (EF_ARM_EABI_UNKNOWN): Define.
- (EF_ARM_EABI_VER1): Define.
- (PF_ARM_PI): Define.
- (PF_ARM_ABS): Define.
-
-2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
-
-2000-03-27 Denis Chertykov <denisc@overta.ru>
-
- * avr.h: New file. AVR ELF support for BFD.
- * common.h: Add AVR magic number.
-
-2000-03-10 Geoffrey Keating <geoffk@cygnus.com>
-
- * mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
- R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
- numbers.
-
-2000-02-23 Linas Vepstas <linas@linas.org>
-
- * i370.h: New file.
-
-2000-02-22 Nick Clifton <nickc@cygnus.com>
-
- * common.h (ELF_ST_OTHER): Remove definition.
- (ELF32_ST_OTHER): Remove definition.
- (ELF64_ST_OTHER): Remove definition.
-
-2000-02-22 H.J. Lu <hjl@gnu.org>
-
- * common.h (ELFOSABI_LINUX): Define.
-
-2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
- (EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
- (EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise.
-
-2000-02-03 H.J. Lu <hjl@gnu.org>
-
- * arm-oabi.h: Duplicate changes made to arm.h on Jan. 27,
- 2000 by Thomas de Lellis <tdel@windriver.com>.
-
-2000-01-27 Thomas de Lellis <tdel@windriver.com>
-
- * arm.h (STT_ARM_TFUNC): Define in terms of STT_LOPROC.
- (STT_ARM_16BIT): New flag. Denotes a label that was defined in
- Thumb block but was does not identify a function.
-
-2000-01-20 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_MCORE): Fix spelling of Motorola.
- * mcore.h (EM_MCORE): Fix spelling of Motorola.
-
-2000-01-13 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_S370): Change comment - this is now the IBM
- System/370.
- (EM_IA_64): Change comment - this is now the IA-64.
-
-2000-01-11 Nick Clifton <nickc@cygnus.com>
-
- * common.h (DT_ENCODING): Fix definition of this value.
- (DT_LOOS): Fix definition of this value.
- (DT_HIOS): Fix definition of this value.
- (OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft
- of ELF spec changed it.
- (OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft
- of ELF spec changed it.
-
-2000-01-10 Egor Duda <deo@logos-m.ru>
-
- * common.h (NT_WIN32PSTATUS): Define. (cygwin elf core dumps).
-
-1999-12-28 Nick Clifton <nickc@cygnus.com>
-
- * mips.h (STO_*): Redefine in terms of STV_* values now in
- common.h.
-
-1999-12-27 Nick Clifton <nickc@cygnus.com>
-
- * common.h: Upgrade to match Oct4, 1999 Draft ELF ABI Spec.
- (EM_MIPS_RS3_LE): New machine number.
- (EM_RCE): New machine number.
- (EM_MMA): New machine number.
- (EM_PCP): New machine number.
- (EM_NCPU): New machine number.
- (EM_NDR1): New machine number.
- (EM_STARCORE): New machine number.
- (EM_ME16): New machine number.
- (EM_ST100): New machine number.
- (EM_TINYJ): New machine number.
- (EM_FX66): New machine number.
- (EM_ST9PLUS): New machine number.
- (EM_ST7): New machine number.
- (EM_68HC16): New machine number.
- (EM_68HC11): New machine number.
- (EM_68HC08): New machine number.
- (EM_68HC05): New machine number.
- (EM_SVX): New machine number.
- (EM_VAX): New machine number.
- (PF_MASKOS): Change value.
- (SHT_INIT_ARRAY): New value for sh_type field.
- (SHT_FINI_ARRAY): New value for sh_type field.
- (SHT_PREINIT_ARRAY): New value for sh_type field.
- (SHT_HIUSER): Change value.
- (SHF_MERGE): New valye for sh_flags field.
- (SHF_STRINGS): New valye for sh_flags field.
- (SHF_INFO_LINK): New valye for sh_flags field.
- (SHF_OS_NONCONFORMING): New valye for sh_flags field.
- (SHF_MASKOS): Change value.
- (ELF_ST_VISIBILITY): New macro.
- (ELF_ST_OTHER): New macro.
- (STT_COMMON): New symbol type.
- (STV_DEFAULT): Value for symbol visibility.
- (STV_INTERNAL): Value for symbol visibility.
- (STV_HIDDEN): Value for symbol visibility.
- (STV_PROTECTED): Value for symbol visibility.
- (DT_RUNPATH): New dynamic section tag.
- (DT_FLAGS): New dynamic section tag.
- (DT_ENCODING): New dynamic section tag.
- (DT_PREINIT_ARRAY): New dynamic section tag.
- (DT_PREINIT_ARRAYSZ): New dynamic section tag.
- (DT_LOPROC): New dynamic section tag index.
- (DT_HIPROC): New dynamic section tag index.
- (DF_ORIGIN): Value for dynamic section flag.
- (DF_SYMBOLIC): Value for dynamic section flag.
- (DF_TEXTREL): Value for dynamic section flag.
- (DF_BIND_NOW): Value for dynamic section flag.
-
-1999-12-09 Fred Fish <fnf@cygnus.com>
-
- * i960.h (reloc-macros.h): Include using relative dir elf/.
- * i386.h (reloc-macros.h): Include using relative dir elf/.
- * hppa.h (reloc-macros.h): Include using relative dir elf/.
-
-1999-12-07 Jim Blandy <jimb@cygnus.com>
-
- * common.h (NT_PRXFPREG): New definition.
-
-Wed Dec 1 03:02:15 1999 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (E_MN10300_MACH_AM33): Define.
-
-Mon Oct 11 22:42:37 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (PF_HP_PAGE_SIZE): Define.
- (PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise.
- (PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise.
-
-Mon Oct 4 17:42:38 1999 Doug Evans <devans@canuck.cygnus.com>
-
- * m32r.h (E_M32RX_ARCH): Define.
-
-1999-09-15 Ulrich Drepper <drepper@cygnus.com>
-
- * hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * pj.h: New file.
- * common.h (EM_PJ): Define.
-
-1999-09-02 Ulrich Drepper <drepper@cygnus.com>
-
- * hppa.h: Add HPUX specific symbol type definitions.
-
- * hppa.h: Add HPUX specific dynamic and program header table
- specific definitions.
-
-1999-08-31 Scott Bambrough <scottb@netwinder.org>
-
- * common.h (NT_TASKSTRUCT): Define.
-
-1999-07-16 Jakub Jelinek <jj@ultra.linux.cz>
-
- * sparc.h (EF_SPARC_SUN_US3): Define in Cheetah extensions
- flag (as per SCD2.4.1).
-
-1999-07-16 Jakub Jelinek <jj@ultra.linux.cz>
-
- * sparc.h (ELF64_R_TYPE_DATA): Only use ELF64_R_TYPE bits, not
- ELF64_R_SYM bits.
-
-1999-06-21 Philip Blundell <pb@nexus.co.uk>
-
- * arm.h (EF_SOFT_FLOAT, F_SOFT_FLOAT): Define.
-
-1999-07-13 Andreas Schwab <schwab@suse.de>
-
- * m68k.h (EF_CPU32): Move definition inside multiple inclusion
- guard.
-
-1999-07-08 Richard Henderson <rth@cygnus.com>
-
- * sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
- (ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
- (DT_SPARC_PLTFMT): Delete.
- Based on a patch from Jakub Jelinek.
-
-Mon Jun 21 16:36:02 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
-
-1999-06-10 Jakub Jelinek <jj@ultra.linux.cz>
-
- * sparc.h (R_SPARC_max_std): Define.
-
-Wed Jun 9 15:16:34 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h: Update with various changes from newest PA ELF
- specifications.
-
-1999-06-03 Ian Lance Taylor <ian@zembu.com>
-
- * common.h (EM_PPC64): Define.
-
-1999-06-02 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * dwarf.h: Add LANG_JAVA.
- * dwarf2.h: Add DW_LANG_Java.
-
-1999-05-29 Nick Clifton <nickc@cygnus.com>
-
- * common.h (ELFOSABI_ARM): Define.
-
-1999-05-28 Nick Clifton <nickc@cygnus.com>
-
- * reloc-macros.h: Update comment.
-
-1999-05-28 Ian Lance Taylor <ian@zembu.com>
-
- * i960.h: New file.
-
-1999-05-16 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h (R_MCORE_COPY): Define.
- (R_MCORE_GLOB_DAT): Define.
- (R_MCORE_JUMP_SLOT): Define.
-
-1999-05-15 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h (R_MCORE_RELATIVE): Define.
-
-1999-05-05 Catherine Moore <clm@cygnus.com>
-
- * m68k.h (EF_CPU32): Define.
-
-1999-04-21 Nick Clifton <nickc@cygnus.com>
-
- * reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to
- fake reloc entry name (if possible), in order to avoid conflicts
- with typedefs of the same name.
-
-1999-04-16 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (EF_MIPS_32BITMODE): New.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * mcore.h: New header file. Defines for Motorola's MCore
- processor.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * common.h: Add new constants defined in: "System V Application
- Binary Interface - DRAFT - April 29, 1998" found at the web site:
- http://www.sco.com/developer/gabi/contents.html
-
- (EM_MMA): Removed. Replaced with EM_MCORE as Motorolla own this
- value.
-
-1999-03-31 Nick Clifton <nickc@cygnus.com>
-
- * reloc-macros.h: Fixed to not generate an enum with a trailing
- comma.
-
-1999-03-16 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (E_MIPS_MACH_5000): New.
-
-1999-03-10 Ulrich Drepper <drepper@cygnus.com>
-
- * common.h: Add definitions for a few more Solaris ELF extensions.
-
-Thu Feb 18 18:58:26 1999 Ian Lance Taylor <ian@cygnus.com>
-
- * external.h: Only use attribute if __GNUC__ is defined.
-
-1999-02-17 Nick Clifton <nickc@cygnus.com>
-
- Patch submitted by: Scott Bambrough <scottb@corelcomputer.com>
-
- * external.h: struct Elf_External_Versym must be packed on
- ARM. Code uses sizeof(Elf_External_Versym) and assumes it is
- equal to sizeof(char[2]). Reported by Jim Pick <jim@jimpick.com>
-
-1999-02-02 Nick Clifton <nickc@cygnus.com>
-
- * dwarf2.h (DWARF2_External_ARange): New structure.
- (DWARF2_Internal_ARange): New structure.
-
-Mon Feb 1 11:33:56 1999 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Renumber relocs to conform to standard.
- (EF_NEW_ABI): Define.
- (EF_OLD_ABI): Define.
- * arm-oabi.h: New file.
-
-1999-01-28 Nick Clifton <nickc@cygnus.com>
-
- * fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs.
-
-1999-01-27 Nick Clifton <nickc@cygnus.com>
-
- * dwarf2.h: Add typedefs for structures found in dwarf2 sections.
-
-1998-12-16 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (E_MIPS_MACH_4111): New.
-
-1998-12-15 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64,
- E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64):
-
-1998-12-03 Nick Clifton <nickc@cygnus.com>
-
- * fr30.h: Add R_FR30_48 reloc.
-
-1998-12-02 Ulrich Drepper <drepper@cygnus.com>
-
- * mips.h: Add external data type for conflict section.
-
- * mips.h: Add more LL_* options from Irix 6.5.
-
- * mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately.
-
-Mon Nov 30 15:25:58 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * sh.h (elf_sh_reloc_type): Add R_SH_FIRST_INVALID_RELOC,
- R_SH_LAST_INVALID_RELOC, R_SH_SWITCH8 and R_SH_max.
-
-Tue Nov 10 15:12:28 1998 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value.
-
-Tue Nov 10 15:17:28 1998 Catherine Moore <clm@cygnus.com>
-
- * d10v.h: Add vtable relocs.
-
-Wed Nov 4 15:56:50 1998 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_CYGNUS_FR30): New machine number.
-
- * fr30.h: New file: Definitions for the FR30.
-
-Fri Oct 30 11:54:15 1998 Catherine Moore <clm@cygnus.com>
-
- From Philip Blundell <pb@nexus.co.uk>:
- * arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC.
- (EF_ALIGN8): New flag.
-
-Tue Oct 20 11:19:50 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * common.h (NT_LWPSTATUS): Close comment accidentally left open.
-
-Mon Oct 19 20:24:11 1998 Catherine Moore <clm@cygnus.com>
-
- * sh.h: Add vtable relocs.
-
-Mon Oct 19 01:44:42 1998 Felix Lee <flee@cygnus.com>
-
- * common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO,
- NT_LWPSTATUS,NT_LWPSINFO): added.
- * internal.h (Elf_Internal_Note): new structure members.
-
-Fri Oct 16 14:11:25 1998 Catherine Moore <clm@cygnus.com>
-
- * m32r.h: Add vtable relocs.
-
-Tue Oct 6 09:22:22 1998 Catherine Moore <clm@cygnus.com>
-
- * sparc.h: Add vtable relocs.
-
-Mon Oct 5 09:39:22 1998 Catherine Moore <clm@cygnus.com>
-
- * v850.h: Add vtable relocs.
-
-Sun Oct 4 21:17:51 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h (R_386_max): Change from 252 to 24.
-
-Mon Sep 21 12:24:44 1998 Catherine Moore <clm@cygnus.com>
-
- * i386.h: Change vtable reloc numbers.
-
-Sun Sep 20 00:54:22 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * m68k.h: Add vtable relocs and R_68K_max.
-
-Tue Sep 15 09:56:49 CDT 1998 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Add vtable relocs.
-
-Mon Aug 31 11:25:27 1998 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Define STT_ARM_TFUNC. Remove ST_THUMB_xxxx
- definitions.
-
-Sat Aug 29 22:25:51 1998 Richard Henderson <rth@cygnus.com>
-
- * i386.h: Add vtable relocs.
-
-1998-08-25 16:42 Ulrich Drepper <drepper@cygnus.com>
-
- * common.h: Add SYMINFO_* macros to access Elf*_Syminfo information.
-
- * external.h: Add Elf_External_Syminfo definition.
-
- * internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo,
- and Elf64_Syminfo definitions.
-
-Sun Aug 9 20:26:49 CDT 1998 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Add ST_THUMB definitions.
-
-Wed Aug 5 15:52:35 1998 Nick Clifton <nickc@cygnus.com>
-
- * arm.h: Add ELF header flags to specify compile time optins:
- EF_INTERWORK: New flag.
- EF_APCS_26: New flag.
- EF_APCS_FLOAT: New flag.
- EF_PIC: New flag.
-
-1998-07-31 21:28 Ulrich Drepper <drepper@cygnus.com>
-
- * mips.h: Add missing RHF_* constants.
-
-Fri Jul 31 10:01:40 1998 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Add R_ARM_THM_PC9 relocation.
-
-1998-07-30 16:25 Ulrich Drepper <drepper@cygnus.com>
-
- * common.h: Add new DT_* entries and there flag macros from Solaris.
-
-Tue Jul 28 18:14:07 1998 Stan Cox <scox@equinox.cygnus.com>
-
- * sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x.
-
-Fri Jul 24 11:22:06 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h: Add R_MN10300_24 relocation.
-
-1998-07-24 Ulrich Drepper <drepper@cygnus.com>
-
- * mips.h: Add MIPS64 relocation names and values.
-
-Wed Jul 22 19:29:00 Catherine Moore <clm@cygnus.com>
-
- * arm.h: Rename relocations.
-
-1998-07-22 Ulrich Drepper <drepper@cygnus.com>
-
- * ppc.h: Define enum as elf_ppc_reloc_type.
-
-Wed Jul 22 16:22:11 1998 Nick Clifton <nickc@cygnus.com>
-
- * reloc-macros.h: New file. Provides relocation macros:
- START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and
- END_RELOC_NUMBERS used by other elf header files.
-
- * alpha.h: Use reloc-macros.h.
- * arc.h: Use reloc-macros.h.
- * arm.h: Use reloc-macros.h.
- * d10v.h: Use reloc-macros.h.
- * d30v.h: Use reloc-macros.h.
- * hppa.h: Use reloc-macros.h.
- * i386.h: Use reloc-macros.h.
- * m32r.h: Use reloc-macros.h.
- * m68k.h: Use reloc-macros.h.
- * mips.h: Use reloc-macros.h.
- * mn10200.h: Use reloc-macros.h.
- * mn10300.h: Use reloc-macros.h.
- * ppc.h: Use reloc-macros.h.
- * sh.h: Use reloc-macros.h.
- * sparc.h: Use reloc-macros.h.
- * v850.h: Use reloc-macros.h.
-
-1998-07-22 13:07 Ulrich Drepper <drepper@cygnus.com>
-
- * mn10300.h: Rewrite relocation definition using macros.
- * mips.h: Likewise.
- * ppc.h: Likewise.
- * alpha.h: Likewise.
- * arm.h: Likewise.
- * d10v.h: Likewise.
- * d30v.h: Likewise.
- * m32r.h: Likewise.
- * m68k.h: Likewise.
- * mn10200.h: Likewise.
- * sh.h: Likewise.
- * sparc.h: Likewise.
-
-1998-07-21 13:07 Ulrich Drepper <drepper@cygnus.com>
-
- * arm.h: New file.
- * d10v.h: New file.
- * d30v.h: New file.
- * i386.h: New file.
- * m68k.h: New file.
- * mn10200.h: New file.
- * sh.h: New file.
-
- * mips.h: Add R_MIPS_* and SHT_MIPS_* entries.
-
- * mn10300.h: Add R_MN10300_* entries.
-
- * ppc.h: Add R_PPC_* entries.
-
-1998-07-20 07:11 Ulrich Drepper <drepper@cygnus.com>
-
- * mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants.
- Define Elf32_External_Lib.
-
-1998-07-19 15:24 Ulrich Drepper <drepper@cygnus.com>
-
- * mips.h (PT_MIPS_OPTIONS): New symbol.
- Add lots of DT_MIPS_* symbols.
-
-Fri Jun 26 10:46:35 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h: New file.
-
-Thu Jun 18 19:27:56 1998 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA,
- EM_OLD_ALPHA): Add these constants.
-
-Thu Jun 11 17:59:01 1998 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_486, EM_S370): Add these constants.
-
-Tue Jun 9 09:35:29 1998 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_ARM): Add this constant.
-
-Wed May 6 09:45:30 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added.
-
-Sat Apr 25 18:35:06 1998 Richard Henderson <rth@cygnus.com>
-
- * alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New.
-
-Wed Apr 15 15:42:45 1998 Richard Henderson <rth@cygnus.com>
-
- * common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9.
- (EM_SPARCV9): New. This is the official ABI name and number.
-
-Sat Feb 28 17:04:41 1998 Richard Henderson <rth@cygnus.com>
-
- * alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New.
-
-Mon Dec 15 15:07:49 1997 Nick Clifton <nickc@cygnus.com>
-
- * m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to
- specify machine architecture.
-
-Fri Dec 5 11:20:08 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON,
- SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON,
- SHT_V850_ZCOMMON to handle v850 common sections.
- enum reloc_type renamed to v850_reloc_type to avoid name
- conflict.
-
-Thu Oct 23 13:55:24 1997 Richard Henderson <rth@cygnus.com>
-
- * sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16.
-
-Thu Oct 23 00:42:04 1997 Richard Henderson <rth@dot.cygnus.com>
-
- * sparc.h (DT_SPARC_REGISTER): New macro.
- (DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will
- go away soon.
-
-Tue Sep 30 13:26:58 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros.
- (EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros.
- (SHN_BEFORE,SHN_AFTER): New macros.
- (SHF_EXCLUDE,SHF_ORDERED): New macros.
- (STT_REGISTER): New macro.
- (R_SPARC_GLOB_JMP): Deleted, but slot reserved.
- (R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations.
- (R_SPARC_{H44,M44,L44,REGISTER}): New relocations.
- (ELF64_R_TYPE_{DATA,ID,INFO}): New macros.
-
-Wed Sep 17 16:41:42 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET.
-
-Tue Sep 16 14:16:17 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET.
-
-Wed Sep 3 15:11:14 1997 Richard Henderson <rth@cygnus.com>
-
- * mips.h: Correct typo in comment.
-
-Wed Sep 3 11:25:57 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (reloc_type): Remove R_V850_16_PCREL.
-
-Tue Sep 2 17:41:05 1997 Nick Clifton <nickc@cygnus.com>
-
- * common.h: Remove magic number for V850E.
- * common.h: Remove magic number for V850EA.
- * v850.h: Add new flags for e_flags field in elf header.
-
-Mon Aug 25 16:06:47 1997 Nick Clifton <nickc@cygnus.com>
-
- * common.h (EM_CYGNUS_V850E): backend magic number for v850e.
- * common.h (EM_CYGNUS_V850EA): backend magic number for v850ea.
-
-Mon Aug 18 11:05:23 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (reloc_type): Add 16 bit PC relative relocation.
-
-Fri Aug 15 05:10:09 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * arc.h (enum reloc): Move here from elf32-arc.c.
-
-Fri Aug 8 17:05:29 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * arc.h: New file.
- * common.h (EM_CYGNUS_ARC): Define.
-
-Mon Jun 16 14:46:12 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from
- bfd_signed_vma to bfd_size_type, as they are not signed.
-
-Wed Mar 5 15:35:26 1997 Doug Evans <dje@seba.cygnus.com>
-
- * m32r.h (SHF_M32R_CAN_RELAX): Define.
-
-Mon Feb 24 17:49:01 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * external.h: Dump the 32/64 bit specific forms of the version
- structures, and just define them as size independent.
-
- * common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define.
-
-Fri Feb 21 13:00:34 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * m32r.h (enum reloc_type): Add R_M32R_SDA16.
- (SHN_M32R_SCOMMON): Define.
-
-Wed Feb 19 15:35:31 1997 Ian Lance Taylor <ian@cygnus.com>
-
- From Eric Youngdale <eric@andante.jic.com>:
- * external.h, internal.h, common.h: Added new structures and
- definitions for ELF versions.
-
-Tue Feb 18 17:40:36 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * common.h (EM_CYGNUS_D30V): Define.
-
-Mon Jan 27 11:54:44 1997 Doug Evans <dje@seba.cygnus.com>
-
- * m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16.
-
-Fri Jan 3 11:32:51 1997 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other
- field.
- (SHN_V850_*): Remove v850 specific section indexes, which are not
- needed.
- (enum reloc_type): Move the v850 relocations here from
- elf32-v850.c
-
-Thu Jan 2 19:30:23 1997 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * v850.h: New file, provide V850 specific definitions.
-
-Tue Dec 31 14:44:32 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * common.h (DT_AUXILIARY): Define.
- (DT_FILTER): Define.
-
-Wed Dec 4 05:03:37 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * dwarf2.h: Update.
-
-Tue Nov 26 10:44:47 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (STO_MIPS16): Define.
-
-Tue Nov 12 15:45:42 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h: Remove empty file.
-
-Tue Oct 8 11:31:24 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (EF_MIPS_ABI2): Define.
-
-Thu Oct 3 10:01:40 1996 Jeffrey A Law (law@cygnus.com)
-
- * common.h: Break mn10x00 support into mn10200 and mn10300.
-
-Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com)
-
- * common.h (EM_CYGNUS_MN10x00): Define.
-
-Mon Sep 23 09:18:04 1996 Doug Evans <dje@seba.cygnus.com>
-
- * m32r.h: New file.
-
-Fri Aug 30 17:06:21 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * common.h (EM_SH): Define.
-
-Tue Aug 20 14:47:54 1996 J.T. Conklin <jtc@hippo.cygnus.com>
-
- * common.h (EM_CYGNUS_V850): Define.
-
-Mon Aug 19 10:59:10 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * common.h (EM_CYGNUS_M32R): Define.
-
-Mon Jul 22 18:59:55 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define.
- (SHT_MIPS_SYMBOL_LIB): Define.
- (SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define.
- (SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define.
-
-Thu Jul 18 19:12:15 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * dwarf2.h: New file.
-
-Jul 18 13:20:39 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * common.h (EM_CYGNUS_D10V): Define.
- * d10v.h: New file.
-
-Fri Jun 21 12:33:24 1996 Richard Henderson <rth@tamu.edu>
-
- * alpha.h: New file.
- * common.h (EM_ALPHA): Define.
-
-Fri May 31 17:28:05 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (Elf_External_Options, Elf_Internal_Options): Define.
- (bfd_mips_elf_swap_options_in): Declare.
- (bfd_mips_elf_swap_options_out): Declare.
- (ODK_*): Define.
- (Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define.
- (bfd_mips_elf64_swap_reginfo_in): Declare.
- (bfd_mips_elf64_swap_reginfo_out): Declare.
-
-Thu May 30 12:35:57 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (E_MIPS_ARCH_4): Define.
-
-Wed May 29 15:35:33 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (Elf64_Mips_External_Rel): Define.
- (Elf64_Mips_Internal_Rel): Define.
- (Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define.
- (RSS_*): Define.
-
-Mon Apr 22 18:26:30 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (R_SPARC_[56]): Always define.
-
-Mon Feb 19 01:55:56 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22,
- PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS.
-
-Tue Feb 6 11:33:58 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (enum sparc_elf_reloc_type): Define.
-
-Wed Jan 17 09:09:16 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * common.h: Define EM_SPARC32PLUS.
- * sparc.h: New file.
-
-Thu Jan 11 16:27:34 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi.
-
-Thu Nov 30 16:47:18 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (struct elf_segment_map): Add includes_filehdr and
- includes_phdrs fields.
-
-Tue Nov 28 16:58:10 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * internal.h (struct elf_segment_map): Define.
-
-Tue Oct 31 15:19:36 1995 Fred Fish <fnf@cygnus.com>
-
- * common.h, dwarf.h, external.h, hppa.h, internal.h,
- mips.h, ppc.h: Protect against multiple inclusions.
-
-Thu Sep 21 13:51:58 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit.
-
-Fri Sep 1 15:32:17 1995 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>
-
- * mips.h: Add some definitions used on Irix 5.
-
-Tue Jun 20 10:18:28 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * hppa.h (CPU_PA_RISC1_0): Protect from redefinitions.
- (CPU_PA_RISC1_1): Likewise.
-
-Wed Mar 8 18:14:37 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * ppc.h: New file for PowerPC support.
-
-Tue Feb 14 13:59:13 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * common.h (EM_PPC): Use offical value of 20, not 17.
- (EM_PPC_OLD): Define this to be the old value of EM_PPC.
-
-Tue Jan 24 09:40:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * common.h (EM_PPC): New macro, PowerPC machine id.
-
-Tue Jan 17 10:51:38 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define.
-
-Mon Oct 17 13:43:59 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * internal.h (Elf_Internal_Shdr): Remove rawdata and size fields.
- Add bfd_section field.
-
-Tue May 24 16:11:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (Elf32_External_gptab): Define.
-
-Mon May 16 13:22:04 1994 Jeff Law (law@snake.cs.utah.edu)
-
- * common.h (EM_HPPA): Delete.
- (EM_PARISC): Add.
- * hppa.h: New file.
-
-Mon May 9 13:27:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * common.h (SHN_LORESERVE): Rename from SHN_LORESERV.
- (ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char.
- (ELF64_R_TYPE): Don't rely on size of unsigned long.
-
-Mon Apr 25 15:53:09 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h (Elf_Internal_Shdr): Use PTR, not void *.
-
-Fri Mar 11 00:34:59 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA): Define.
-
-Sat Mar 5 14:08:54 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * internal.h: Remove Elf32_*, Elf64_* typedefs. These names
- cause conflicts with system headers, e.g. link.h in gdb/solib.c.
- Combine 32- and 64-bit versions of *_Internal_Dyn.
- * common.h: Replace uses of Elf64_Word, Elf64_Xword typedefs
- by their expansion.
- * mips.h: Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr
- typedefs by their expansion. Add DT_MIPS_RLD_MAP definition.
-
-Fri Feb 18 10:39:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * common.h (EM_CYGNUS_POWERPC): Define. This may be temporary,
- depending upon how quickly I can find a real PowerPC ABI.
-
-Mon Feb 7 08:27:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.
-
-Wed Feb 2 14:12:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * common.h: Add comments regarding value of EM_HPPA and how to
- pick an unofficial value.
-
-Wed Nov 17 17:14:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (SHT_MIPS_OPTIONS): Define.
-
-Mon Nov 8 17:57:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h: Added some more MIPS ABI macro definitions.
-
-Wed Nov 3 22:07:17 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * common.h (EM_MIPS_RS4_BE): New macro.
-
-Tue Oct 12 07:28:18 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h: New file. MIPS ABI specific information.
-
-Mon Jun 21 13:13:43 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
-
- * internal.h: Combined 32- and 64-bit versions of all structures
- except *_Internal_Dyn. This will simply the assembler interface,
- and some bfd code.
-
-Tue May 25 02:00:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * external.h, internal.h, common.h: Added 64-bit versions of some
- structures and macros. Renamed old versions to put "32" in the
- name. Some are unchanged.
-
-Thu Apr 29 12:12:20 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros.
- * external.h (Elf_External_Dyn): New type.
-
- * internal.h (Elf_Intenral_Shdr): New field `size'.
- (Elf_Internal_Dyn): New type.
-
-Tue Apr 20 16:03:45 1993 Fred Fish (fnf@cygnus.com)
-
- * dwarf.h (LANG_CHILL): Change value to one randomly picked in
- the user defined range, to reduce probability of collisions.
-
-Sun Nov 15 09:34:02 1992 Fred Fish (fnf@cygnus.com)
-
- * dwarf.h (AT_src_coords): Whitespace change only.
- * dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2):
- Add from latest gcc.
- * dwarf.h (LANG_CHILL): Add as GNU extension.
-
-Sat Aug 1 13:46:53 1992 Fred Fish (fnf@cygnus.com)
-
- * dwarf.h: Replace with current version from gcc distribution.
-
-Fri Jun 19 19:05:09 1992 John Gilmore (gnu at cygnus.com)
-
- * internal.h: Add real struct tags to all the Type_Defs, so they
- can be used in prototypes where the Type_Defs are not known.
-
-Fri Apr 3 20:58:58 1992 Mark Eichin (eichin at cygnus.com)
-
- * common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation
- info
- added EM_MIPS, and corrected value of EM_860 based on System V ABI
- manual.
-
- * external.h: added Elf_External_{Rel,Rela}.
-
- * internal.h: added Elf_Internal_{Rel,Rela}.
- added rawdata to Elf_Internal_Shdr.
-
-Sat Nov 30 20:43:59 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from
- ../elf-<foo>
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/elf/alpha.h b/include/elf/alpha.h
deleted file mode 100644
index f4fe566b0..000000000
--- a/include/elf/alpha.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ALPHA ELF support for BFD.
- Copyright 1996, 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
-
- By Eric Youngdale, <eric@aib.com>. No processor supplement available
- for this platform.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the ALPHA ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_ALPHA_H
-#define _ELF_ALPHA_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* All addresses must be below 2GB. */
-#define EF_ALPHA_32BIT 0x00000001
-
-/* All relocations needed for relaxation with code movement are present. */
-#define EF_ALPHA_CANRELAX 0x00000002
-
-/* Processor specific section flags. */
-
-/* This section must be in the global data area. */
-#define SHF_ALPHA_GPREL 0x10000000
-
-/* Section contains some sort of debugging information. The exact
- format is unspecified. It's probably ECOFF symbols. */
-#define SHT_ALPHA_DEBUG 0x70000001
-
-/* Section contains register usage information. */
-#define SHT_ALPHA_REGINFO 0x70000002
-
-/* A section of type SHT_MIPS_REGINFO contains the following
- structure. */
-typedef struct
-{
- /* Mask of general purpose registers used. */
- unsigned long ri_gprmask;
- /* Mask of co-processor registers used. */
- unsigned long ri_cprmask[4];
- /* GP register value for this object file. */
- long ri_gp_value;
-} Elf64_RegInfo;
-
-/* Special values for the st_other field in the symbol table. */
-
-#define STO_ALPHA_NOPV 0x80
-#define STO_ALPHA_STD_GPLOAD 0x88
-
-/* Special values for Elf64_Dyn tag. */
-#define DT_ALPHA_PLTRO DT_LOPROC
-
-#include "elf/reloc-macros.h"
-
-/* Alpha relocs. */
-START_RELOC_NUMBERS (elf_alpha_reloc_type)
- RELOC_NUMBER (R_ALPHA_NONE, 0) /* No reloc */
- RELOC_NUMBER (R_ALPHA_REFLONG, 1) /* Direct 32 bit */
- RELOC_NUMBER (R_ALPHA_REFQUAD, 2) /* Direct 64 bit */
- RELOC_NUMBER (R_ALPHA_GPREL32, 3) /* GP relative 32 bit */
- RELOC_NUMBER (R_ALPHA_LITERAL, 4) /* GP relative 16 bit w/optimization */
- RELOC_NUMBER (R_ALPHA_LITUSE, 5) /* Optimization hint for LITERAL */
- RELOC_NUMBER (R_ALPHA_GPDISP, 6) /* Add displacement to GP */
- RELOC_NUMBER (R_ALPHA_BRADDR, 7) /* PC+4 relative 23 bit shifted */
- RELOC_NUMBER (R_ALPHA_HINT, 8) /* PC+4 relative 16 bit shifted */
- RELOC_NUMBER (R_ALPHA_SREL16, 9) /* PC relative 16 bit */
- RELOC_NUMBER (R_ALPHA_SREL32, 10) /* PC relative 32 bit */
- RELOC_NUMBER (R_ALPHA_SREL64, 11) /* PC relative 64 bit */
-
- /* Skip 12 - 16; deprecated ECOFF relocs. */
-
- RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) /* GP relative 32 bit, high 16 bits */
- RELOC_NUMBER (R_ALPHA_GPRELLOW, 18) /* GP relative 32 bit, low 16 bits */
- RELOC_NUMBER (R_ALPHA_GPREL16, 19) /* GP relative 16 bit */
-
- /* Skip 20 - 23; deprecated ECOFF relocs. */
-
- /* These relocations are specific to shared libraries. */
- RELOC_NUMBER (R_ALPHA_COPY, 24) /* Copy symbol at runtime */
- RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25) /* Create GOT entry */
- RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */
- RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */
-
- /* Like BRADDR, but assert that the source and target object file
- share the same GP value, and adjust the target address for
- STO_ALPHA_STD_GPLOAD. */
- RELOC_NUMBER (R_ALPHA_BRSGP, 28)
-
- /* Thread-Local Storage. */
- RELOC_NUMBER (R_ALPHA_TLSGD, 29)
- RELOC_NUMBER (R_ALPHA_TLSLDM, 30)
- RELOC_NUMBER (R_ALPHA_DTPMOD64, 31)
- RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32)
- RELOC_NUMBER (R_ALPHA_DTPREL64, 33)
- RELOC_NUMBER (R_ALPHA_DTPRELHI, 34)
- RELOC_NUMBER (R_ALPHA_DTPRELLO, 35)
- RELOC_NUMBER (R_ALPHA_DTPREL16, 36)
- RELOC_NUMBER (R_ALPHA_GOTTPREL, 37)
- RELOC_NUMBER (R_ALPHA_TPREL64, 38)
- RELOC_NUMBER (R_ALPHA_TPRELHI, 39)
- RELOC_NUMBER (R_ALPHA_TPRELLO, 40)
- RELOC_NUMBER (R_ALPHA_TPREL16, 41)
-
-END_RELOC_NUMBERS (R_ALPHA_max)
-
-#define LITUSE_ALPHA_ADDR 0
-#define LITUSE_ALPHA_BASE 1
-#define LITUSE_ALPHA_BYTOFF 2
-#define LITUSE_ALPHA_JSR 3
-#define LITUSE_ALPHA_TLSGD 4
-#define LITUSE_ALPHA_TLSLDM 5
-#define LITUSE_ALPHA_JSRDIRECT 6
-
-#endif /* _ELF_ALPHA_H */
diff --git a/include/elf/arc.h b/include/elf/arc.h
deleted file mode 100644
index a07ed2e3a..000000000
--- a/include/elf/arc.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ARC ELF support for BFD.
- Copyright 1995, 1997, 1998, 2000, 2001, 2010 Free Software Foundation, Inc.
- Contributed by Doug Evans, (dje@cygnus.com)
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the ARC ELF ABI. */
-
-#ifndef _ELF_ARC_H
-#define _ELF_ARC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-
-START_RELOC_NUMBERS (elf_arc_reloc_type)
- RELOC_NUMBER (R_ARC_NONE, 0)
- RELOC_NUMBER (R_ARC_32, 1)
- RELOC_NUMBER (R_ARC_B26, 2)
- RELOC_NUMBER (R_ARC_B22_PCREL, 3)
-END_RELOC_NUMBERS (R_ARC_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* Four bit ARC machine type field. */
-
-#define EF_ARC_MACH 0x0000000f
-
-/* Various CPU types. */
-
-#define E_ARC_MACH_ARC5 0
-#define E_ARC_MACH_ARC6 1
-#define E_ARC_MACH_ARC7 2
-#define E_ARC_MACH_ARC8 3
-
-/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. */
-
-/* File contains position independent code. */
-
-#define EF_ARC_PIC 0x00000100
-
-#endif /* _ELF_ARC_H */
diff --git a/include/elf/arm.h b/include/elf/arm.h
deleted file mode 100644
index 860fdf77a..000000000
--- a/include/elf/arm.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/* ARM ELF support for BFD.
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_ARM_H
-#define _ELF_ARM_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_ARM_RELEXEC 0x01
-#define EF_ARM_HASENTRY 0x02
-#define EF_ARM_INTERWORK 0x04
-#define EF_ARM_APCS_26 0x08
-#define EF_ARM_APCS_FLOAT 0x10
-#define EF_ARM_PIC 0x20
-#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use. */
-#define EF_ARM_NEW_ABI 0x80
-#define EF_ARM_OLD_ABI 0x100
-#define EF_ARM_SOFT_FLOAT 0x200
-#define EF_ARM_VFP_FLOAT 0x400
-#define EF_ARM_MAVERICK_FLOAT 0x800
-
-/* Frame unwind information */
-#define PT_ARM_EXIDX (PT_LOPROC + 1)
-
-/* Other constants defined in the ARM ELF spec. version B-01. */
-#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK. */
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08 /* NB conflicts with EF_APCS26. */
-#define EF_ARM_MAPSYMSFIRST 0x10 /* NB conflicts with EF_APCS_FLOAT. */
-#define EF_ARM_EABIMASK 0xFF000000
-
-/* Constants defined in AAELF. */
-#define EF_ARM_BE8 0x00800000
-#define EF_ARM_LE8 0x00400000
-
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN 0x00000000
-#define EF_ARM_EABI_VER1 0x01000000
-#define EF_ARM_EABI_VER2 0x02000000
-#define EF_ARM_EABI_VER3 0x03000000
-#define EF_ARM_EABI_VER4 0x04000000
-#define EF_ARM_EABI_VER5 0x05000000
-
-/* Local aliases for some flags to match names used by COFF port. */
-#define F_INTERWORK EF_ARM_INTERWORK
-#define F_APCS26 EF_ARM_APCS_26
-#define F_APCS_FLOAT EF_ARM_APCS_FLOAT
-#define F_PIC EF_ARM_PIC
-#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT
-#define F_VFP_FLOAT EF_ARM_VFP_FLOAT
-
-/* Additional symbol types for Thumb. */
-#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
-#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
-
-/* Additional section types. */
-#define SHT_ARM_EXIDX 0x70000001 /* Section holds ARM unwind info. */
-#define SHT_ARM_PREEMPTMAP 0x70000002 /* Section pre-emption details. */
-#define SHT_ARM_ATTRIBUTES 0x70000003 /* Section holds attributes. */
-#define SHT_ARM_DEBUGOVERLAY 0x70000004 /* Section holds overlay debug info. */
-#define SHT_ARM_OVERLAYSECTION 0x70000005 /* Section holds GDB and overlay integration info. */
-
-/* ARM-specific values for sh_flags. */
-#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */
-#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */
-
-/* ARM-specific program header flags. */
-#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */
-#define PF_ARM_PI 0x20000000 /* Segment is position-independent. */
-#define PF_ARM_ABS 0x40000000 /* Segment must be loaded at its base address. */
-
-/* Values for the Tag_CPU_arch EABI attribute. */
-#define TAG_CPU_ARCH_PRE_V4 0
-#define TAG_CPU_ARCH_V4 1
-#define TAG_CPU_ARCH_V4T 2
-#define TAG_CPU_ARCH_V5T 3
-#define TAG_CPU_ARCH_V5TE 4
-#define TAG_CPU_ARCH_V5TEJ 5
-#define TAG_CPU_ARCH_V6 6
-#define TAG_CPU_ARCH_V6KZ 7
-#define TAG_CPU_ARCH_V6T2 8
-#define TAG_CPU_ARCH_V6K 9
-#define TAG_CPU_ARCH_V7 10
-#define TAG_CPU_ARCH_V6_M 11
-#define TAG_CPU_ARCH_V6S_M 12
-#define TAG_CPU_ARCH_V7E_M 13
-#define MAX_TAG_CPU_ARCH 13
-/* Pseudo-architecture to allow objects to be compatible with the subset of
- armv4t and armv6-m. This value should never be stored in object files. */
-#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1)
-
-/* Relocation types. */
-
-START_RELOC_NUMBERS (elf_arm_reloc_type)
-/* AAELF official names and numbers. */
- RELOC_NUMBER (R_ARM_NONE, 0)
- RELOC_NUMBER (R_ARM_PC24, 1) /* deprecated */
- RELOC_NUMBER (R_ARM_ABS32, 2)
- RELOC_NUMBER (R_ARM_REL32, 3)
- RELOC_NUMBER (R_ARM_LDR_PC_G0, 4)
- RELOC_NUMBER (R_ARM_ABS16, 5)
- RELOC_NUMBER (R_ARM_ABS12, 6)
- RELOC_NUMBER (R_ARM_THM_ABS5, 7)
- RELOC_NUMBER (R_ARM_ABS8, 8)
- RELOC_NUMBER (R_ARM_SBREL32, 9)
- RELOC_NUMBER (R_ARM_THM_CALL, 10)
- RELOC_NUMBER (R_ARM_THM_PC8, 11)
- RELOC_NUMBER (R_ARM_BREL_ADJ, 12)
- RELOC_NUMBER (R_ARM_TLS_DESC, 13)
- RELOC_NUMBER (R_ARM_THM_SWI8, 14) /* obsolete */
- RELOC_NUMBER (R_ARM_XPC25, 15) /* obsolete */
- RELOC_NUMBER (R_ARM_THM_XPC22, 16) /* obsolete */
- RELOC_NUMBER (R_ARM_TLS_DTPMOD32, 17)
- RELOC_NUMBER (R_ARM_TLS_DTPOFF32, 18)
- RELOC_NUMBER (R_ARM_TLS_TPOFF32, 19)
- RELOC_NUMBER (R_ARM_COPY, 20) /* Copy symbol at runtime. */
- RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* Create GOT entry. */
- RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* Create PLT entry. */
- RELOC_NUMBER (R_ARM_RELATIVE, 23) /* Adjust by program base. */
- RELOC_NUMBER (R_ARM_GOTOFF32, 24) /* 32 bit offset to GOT. */
- RELOC_NUMBER (R_ARM_BASE_PREL, 25) /* 32 bit PC relative offset to GOT. */
- RELOC_NUMBER (R_ARM_GOT_BREL, 26) /* 32 bit GOT entry. */
- RELOC_NUMBER (R_ARM_PLT32, 27) /* deprecated - 32 bit PLT address. */
- RELOC_NUMBER (R_ARM_CALL, 28)
- RELOC_NUMBER (R_ARM_JUMP24, 29)
- RELOC_NUMBER (R_ARM_THM_JUMP24, 30)
- RELOC_NUMBER (R_ARM_BASE_ABS, 31)
- RELOC_NUMBER (R_ARM_ALU_PCREL7_0, 32) /* obsolete */
- RELOC_NUMBER (R_ARM_ALU_PCREL15_8, 33) /* obsolete */
- RELOC_NUMBER (R_ARM_ALU_PCREL23_15, 34) /* obsolete */
- RELOC_NUMBER (R_ARM_LDR_SBREL_11_0, 35) /* deprecated, should have _NC suffix */
- RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 36) /* deprecated, should have _NC suffix */
- RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 37) /* deprecated, should have _CK suffix */
- RELOC_NUMBER (R_ARM_TARGET1, 38)
- RELOC_NUMBER (R_ARM_SBREL31, 39) /* deprecated */
- RELOC_NUMBER (R_ARM_V4BX, 40)
- RELOC_NUMBER (R_ARM_TARGET2, 41)
- RELOC_NUMBER (R_ARM_PREL31, 42)
- RELOC_NUMBER (R_ARM_MOVW_ABS_NC, 43)
- RELOC_NUMBER (R_ARM_MOVT_ABS, 44)
- RELOC_NUMBER (R_ARM_MOVW_PREL_NC, 45)
- RELOC_NUMBER (R_ARM_MOVT_PREL, 46)
- RELOC_NUMBER (R_ARM_THM_MOVW_ABS_NC, 47)
- RELOC_NUMBER (R_ARM_THM_MOVT_ABS, 48)
- RELOC_NUMBER (R_ARM_THM_MOVW_PREL_NC, 49)
- RELOC_NUMBER (R_ARM_THM_MOVT_PREL, 50)
- RELOC_NUMBER (R_ARM_THM_JUMP19, 51)
- RELOC_NUMBER (R_ARM_THM_JUMP6, 52)
- RELOC_NUMBER (R_ARM_THM_ALU_PREL_11_0, 53)
- RELOC_NUMBER (R_ARM_THM_PC12, 54)
- RELOC_NUMBER (R_ARM_ABS32_NOI, 55)
- RELOC_NUMBER (R_ARM_REL32_NOI, 56)
- RELOC_NUMBER (R_ARM_ALU_PC_G0_NC, 57)
- RELOC_NUMBER (R_ARM_ALU_PC_G0, 58)
- RELOC_NUMBER (R_ARM_ALU_PC_G1_NC, 59)
- RELOC_NUMBER (R_ARM_ALU_PC_G1, 60)
- RELOC_NUMBER (R_ARM_ALU_PC_G2, 61)
- RELOC_NUMBER (R_ARM_LDR_PC_G1, 62)
- RELOC_NUMBER (R_ARM_LDR_PC_G2, 63)
- RELOC_NUMBER (R_ARM_LDRS_PC_G0, 64)
- RELOC_NUMBER (R_ARM_LDRS_PC_G1, 65)
- RELOC_NUMBER (R_ARM_LDRS_PC_G2, 66)
- RELOC_NUMBER (R_ARM_LDC_PC_G0, 67)
- RELOC_NUMBER (R_ARM_LDC_PC_G1, 68)
- RELOC_NUMBER (R_ARM_LDC_PC_G2, 69)
- RELOC_NUMBER (R_ARM_ALU_SB_G0_NC, 70)
- RELOC_NUMBER (R_ARM_ALU_SB_G0, 71)
- RELOC_NUMBER (R_ARM_ALU_SB_G1_NC, 72)
- RELOC_NUMBER (R_ARM_ALU_SB_G1, 73)
- RELOC_NUMBER (R_ARM_ALU_SB_G2, 74)
- RELOC_NUMBER (R_ARM_LDR_SB_G0, 75)
- RELOC_NUMBER (R_ARM_LDR_SB_G1, 76)
- RELOC_NUMBER (R_ARM_LDR_SB_G2, 77)
- RELOC_NUMBER (R_ARM_LDRS_SB_G0, 78)
- RELOC_NUMBER (R_ARM_LDRS_SB_G1, 79)
- RELOC_NUMBER (R_ARM_LDRS_SB_G2, 80)
- RELOC_NUMBER (R_ARM_LDC_SB_G0, 81)
- RELOC_NUMBER (R_ARM_LDC_SB_G1, 82)
- RELOC_NUMBER (R_ARM_LDC_SB_G2, 83)
- RELOC_NUMBER (R_ARM_MOVW_BREL_NC, 84)
- RELOC_NUMBER (R_ARM_MOVT_BREL, 85)
- RELOC_NUMBER (R_ARM_MOVW_BREL, 86)
- RELOC_NUMBER (R_ARM_THM_MOVW_BREL_NC, 87)
- RELOC_NUMBER (R_ARM_THM_MOVT_BREL, 88)
- RELOC_NUMBER (R_ARM_THM_MOVW_BREL, 89)
- RELOC_NUMBER (R_ARM_TLS_GOTDESC, 90)
- RELOC_NUMBER (R_ARM_TLS_CALL, 91)
- RELOC_NUMBER (R_ARM_TLS_DESCSEQ, 92)
- RELOC_NUMBER (R_ARM_THM_TLS_CALL, 93)
- RELOC_NUMBER (R_ARM_PLT32_ABS, 94)
- RELOC_NUMBER (R_ARM_GOT_ABS, 95)
- RELOC_NUMBER (R_ARM_GOT_PREL, 96)
- RELOC_NUMBER (R_ARM_GOT_BREL12, 97)
- RELOC_NUMBER (R_ARM_GOTOFF12, 98)
- RELOC_NUMBER (R_ARM_GOTRELAX, 99)
- RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) /* deprecated - old C++ abi */
- RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) /* deprecated - old C++ abi */
- RELOC_NUMBER (R_ARM_THM_JUMP11, 102)
- RELOC_NUMBER (R_ARM_THM_JUMP8, 103)
- RELOC_NUMBER (R_ARM_TLS_GD32, 104)
- RELOC_NUMBER (R_ARM_TLS_LDM32, 105)
- RELOC_NUMBER (R_ARM_TLS_LDO32, 106)
- RELOC_NUMBER (R_ARM_TLS_IE32, 107)
- RELOC_NUMBER (R_ARM_TLS_LE32, 108)
- RELOC_NUMBER (R_ARM_TLS_LDO12, 109)
- RELOC_NUMBER (R_ARM_TLS_LE12, 110)
- RELOC_NUMBER (R_ARM_TLS_IE12GP, 111)
- /* 112 - 127 private range */
- RELOC_NUMBER (R_ARM_ME_TOO, 128) /* obsolete */
- RELOC_NUMBER (R_ARM_THM_TLS_DESCSEQ ,129)
-
- RELOC_NUMBER (R_ARM_IRELATIVE, 160)
-
- /* Extensions? R=read-only? */
- RELOC_NUMBER (R_ARM_RXPC25, 249)
- RELOC_NUMBER (R_ARM_RSBREL32, 250)
- RELOC_NUMBER (R_ARM_THM_RPC22, 251)
- RELOC_NUMBER (R_ARM_RREL32, 252)
- RELOC_NUMBER (R_ARM_RABS32, 253)
- RELOC_NUMBER (R_ARM_RPC24, 254)
- RELOC_NUMBER (R_ARM_RBASE, 255)
-
- /* Unofficial names for some of the relocs. */
- FAKE_RELOC (R_ARM_GOTOFF, R_ARM_GOTOFF32) /* 32 bit offset to GOT. */
- FAKE_RELOC (R_ARM_THM_PC22, R_ARM_THM_CALL)
- FAKE_RELOC (R_ARM_THM_PC11, R_ARM_THM_JUMP11)
- FAKE_RELOC (R_ARM_THM_PC9, R_ARM_THM_JUMP8)
-
- /* Relocs with both a different name, and (apparently) different meaning in
- GNU usage. */
- FAKE_RELOC (R_ARM_GOTPC, R_ARM_BASE_PREL) /* 32 bit PC relative offset to GOT. */
- FAKE_RELOC (R_ARM_GOT32, R_ARM_GOT_BREL) /* 32 bit GOT entry. */
- FAKE_RELOC (R_ARM_ROSEGREL32, R_ARM_SBREL31) /* ??? */
- FAKE_RELOC (R_ARM_AMP_VCALL9, R_ARM_BREL_ADJ) /* Thumb-something. Not used. */
-
-END_RELOC_NUMBERS (R_ARM_max = 256)
-
-#ifdef BFD_ARCH_SIZE
-/* EABI object attributes. */
-
-enum
-{
- /* 0-3 are generic. */
- Tag_CPU_raw_name = 4,
- Tag_CPU_name,
- Tag_CPU_arch,
- Tag_CPU_arch_profile,
- Tag_ARM_ISA_use,
- Tag_THUMB_ISA_use,
- Tag_FP_arch,
- Tag_WMMX_arch,
- Tag_Advanced_SIMD_arch,
- Tag_PCS_config,
- Tag_ABI_PCS_R9_use,
- Tag_ABI_PCS_RW_data,
- Tag_ABI_PCS_RO_data,
- Tag_ABI_PCS_GOT_use,
- Tag_ABI_PCS_wchar_t,
- Tag_ABI_FP_rounding,
- Tag_ABI_FP_denormal,
- Tag_ABI_FP_exceptions,
- Tag_ABI_FP_user_exceptions,
- Tag_ABI_FP_number_model,
- Tag_ABI_align_needed,
- Tag_ABI_align_preserved,
- Tag_ABI_enum_size,
- Tag_ABI_HardFP_use,
- Tag_ABI_VFP_args,
- Tag_ABI_WMMX_args,
- Tag_ABI_optimization_goals,
- Tag_ABI_FP_optimization_goals,
- /* 32 is generic (Tag_compatibility). */
- Tag_undefined33 = 33,
- Tag_CPU_unaligned_access,
- Tag_undefined35,
- Tag_FP_HP_extension,
- Tag_undefined37,
- Tag_ABI_FP_16bit_format,
- Tag_undefined39,
- Tag_undefined40,
- Tag_undefined41,
- Tag_MPextension_use,
- Tag_undefined_43,
- Tag_DIV_use,
- Tag_nodefaults = 64,
- Tag_also_compatible_with,
- Tag_T2EE_use,
- Tag_conformance,
- Tag_Virtualization_use,
- Tag_undefined69,
- Tag_MPextension_use_legacy,
-
- /* The following tags are legacy names for other tags. */
- Tag_VFP_arch = Tag_FP_arch,
- Tag_ABI_align8_needed = Tag_ABI_align_needed,
- Tag_ABI_align8_preserved = Tag_ABI_align_preserved,
- Tag_VFP_HP_extension = Tag_FP_HP_extension
-};
-
-#endif
-
-/* The name of the note section used to identify arm variants. */
-#define ARM_NOTE_SECTION ".note.gnu.arm.ident"
-
-/* Special section names. */
-#define ELF_STRING_ARM_unwind ".ARM.exidx"
-#define ELF_STRING_ARM_unwind_info ".ARM.extab"
-#define ELF_STRING_ARM_unwind_once ".gnu.linkonce.armexidx."
-#define ELF_STRING_ARM_unwind_info_once ".gnu.linkonce.armextab."
-
-enum arm_st_branch_type {
- ST_BRANCH_TO_ARM,
- ST_BRANCH_TO_THUMB,
- ST_BRANCH_LONG,
- ST_BRANCH_UNKNOWN
-};
-
-#define ARM_SYM_BRANCH_TYPE(SYM) \
- ((enum arm_st_branch_type) (SYM)->st_target_internal)
-
-#endif /* _ELF_ARM_H */
diff --git a/include/elf/avr.h b/include/elf/avr.h
deleted file mode 100644
index 11d43f966..000000000
--- a/include/elf/avr.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* AVR ELF support for BFD.
- Copyright 1999, 2000, 2004, 2006, 2010 Free Software Foundation, Inc.
- Contributed by Denis Chertykov <denisc@overta.ru>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_AVR_H
-#define _ELF_AVR_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_AVR_MACH 0x7F
-
-/* If bit #7 is set, it is assumed that the elf file uses local symbols
- as reference for the relocations so that linker relaxation is possible. */
-#define EF_AVR_LINKRELAX_PREPARED 0x80
-
-#define E_AVR_MACH_AVR1 1
-#define E_AVR_MACH_AVR2 2
-#define E_AVR_MACH_AVR25 25
-#define E_AVR_MACH_AVR3 3
-#define E_AVR_MACH_AVR31 31
-#define E_AVR_MACH_AVR35 35
-#define E_AVR_MACH_AVR4 4
-#define E_AVR_MACH_AVR5 5
-#define E_AVR_MACH_AVR51 51
-#define E_AVR_MACH_AVR6 6
-#define E_AVR_MACH_XMEGA1 101
-#define E_AVR_MACH_XMEGA2 102
-#define E_AVR_MACH_XMEGA3 103
-#define E_AVR_MACH_XMEGA4 104
-#define E_AVR_MACH_XMEGA5 105
-#define E_AVR_MACH_XMEGA6 106
-#define E_AVR_MACH_XMEGA7 107
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_avr_reloc_type)
- RELOC_NUMBER (R_AVR_NONE, 0)
- RELOC_NUMBER (R_AVR_32, 1)
- RELOC_NUMBER (R_AVR_7_PCREL, 2)
- RELOC_NUMBER (R_AVR_13_PCREL, 3)
- RELOC_NUMBER (R_AVR_16, 4)
- RELOC_NUMBER (R_AVR_16_PM, 5)
- RELOC_NUMBER (R_AVR_LO8_LDI, 6)
- RELOC_NUMBER (R_AVR_HI8_LDI, 7)
- RELOC_NUMBER (R_AVR_HH8_LDI, 8)
- RELOC_NUMBER (R_AVR_LO8_LDI_NEG, 9)
- RELOC_NUMBER (R_AVR_HI8_LDI_NEG, 10)
- RELOC_NUMBER (R_AVR_HH8_LDI_NEG, 11)
- RELOC_NUMBER (R_AVR_LO8_LDI_PM, 12)
- RELOC_NUMBER (R_AVR_HI8_LDI_PM, 13)
- RELOC_NUMBER (R_AVR_HH8_LDI_PM, 14)
- RELOC_NUMBER (R_AVR_LO8_LDI_PM_NEG, 15)
- RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16)
- RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17)
- RELOC_NUMBER (R_AVR_CALL, 18)
- RELOC_NUMBER (R_AVR_LDI, 19)
- RELOC_NUMBER (R_AVR_6, 20)
- RELOC_NUMBER (R_AVR_6_ADIW, 21)
- RELOC_NUMBER (R_AVR_MS8_LDI, 22)
- RELOC_NUMBER (R_AVR_MS8_LDI_NEG, 23)
- RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24)
- RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25)
- RELOC_NUMBER (R_AVR_8, 26)
-END_RELOC_NUMBERS (R_AVR_max)
-
-#endif /* _ELF_AVR_H */
diff --git a/include/elf/bfin.h b/include/elf/bfin.h
deleted file mode 100644
index 8d92906aa..000000000
--- a/include/elf/bfin.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Blackfin ELF support for BFD.
- Copyright (C) 2005, 2006, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_BFIN_H
-#define _ELF_BFIN_H
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_bfin_reloc_type)
- RELOC_NUMBER (R_BFIN_UNUSED0, 0x00) /* relocation type 0 is not defined */
- RELOC_NUMBER (R_BFIN_PCREL5M2, 0x01) /* LSETUP part a */
- RELOC_NUMBER (R_BFIN_UNUSED1, 0x02) /* relocation type 2 is not defined */
- RELOC_NUMBER (R_BFIN_PCREL10, 0x03) /* type 3, 0x00) if cc jump <target> */
- RELOC_NUMBER (R_BFIN_PCREL12_JUMP, 0x04) /* type 4, 0x00) jump <target> */
- RELOC_NUMBER (R_BFIN_RIMM16, 0x05) /* type 0x5, 0x00) rN = <target> */
- RELOC_NUMBER (R_BFIN_LUIMM16, 0x06) /* # 0x6, 0x00) preg.l=<target> Load imm 16 to lower half */
- RELOC_NUMBER (R_BFIN_HUIMM16, 0x07) /* # 0x7, 0x00) preg.h=<target> Load imm 16 to upper half */
- RELOC_NUMBER (R_BFIN_PCREL12_JUMP_S, 0x08) /* # 0x8 jump.s <target> */
- RELOC_NUMBER (R_BFIN_PCREL24_JUMP_X, 0x09) /* # 0x9 jump.x <target> */
- RELOC_NUMBER (R_BFIN_PCREL24, 0x0a) /* # 0xa call <target> , 0x00) not expandable */
- RELOC_NUMBER (R_BFIN_UNUSEDB, 0x0b) /* # 0xb not generated */
- RELOC_NUMBER (R_BFIN_UNUSEDC, 0x0c) /* # 0xc not used */
- RELOC_NUMBER (R_BFIN_PCREL24_JUMP_L, 0x0d) /* 0xd jump.l <target> */
- RELOC_NUMBER (R_BFIN_PCREL24_CALL_X, 0x0e) /* 0xE, 0x00) call.x <target> if <target> is above 24 bit limit call through P1 */
- RELOC_NUMBER (R_BFIN_VAR_EQ_SYMB, 0x0f) /* 0xf, 0x00) linker should treat it same as 0x12 */
- RELOC_NUMBER (R_BFIN_BYTE_DATA, 0x10) /* 0x10, 0x00) .byte var = symbol */
- RELOC_NUMBER (R_BFIN_BYTE2_DATA, 0x11) /* 0x11, 0x00) .byte2 var = symbol */
- RELOC_NUMBER (R_BFIN_BYTE4_DATA, 0x12) /* 0x12, 0x00) .byte4 var = symbol and .var var=symbol */
- RELOC_NUMBER (R_BFIN_PCREL11, 0x13) /* 0x13, 0x00) lsetup part b */
- RELOC_NUMBER (R_BFIN_GOT17M4, 0x14)
- RELOC_NUMBER (R_BFIN_GOTHI, 0x15)
- RELOC_NUMBER (R_BFIN_GOTLO, 0x16)
- RELOC_NUMBER (R_BFIN_FUNCDESC, 0x17)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOT17M4, 0x18)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOTHI, 0x19)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOTLO, 0x1a)
- RELOC_NUMBER (R_BFIN_FUNCDESC_VALUE, 0x1b)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFF17M4, 0x1c)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFHI, 0x1d)
- RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFLO, 0x1e)
- RELOC_NUMBER (R_BFIN_GOTOFF17M4, 0x1f)
- RELOC_NUMBER (R_BFIN_GOTOFFHI, 0x20)
- RELOC_NUMBER (R_BFIN_GOTOFFLO, 0x21)
-
- RELOC_NUMBER (R_BFIN_PUSH, 0xE0)
- RELOC_NUMBER (R_BFIN_CONST, 0xE1)
- RELOC_NUMBER (R_BFIN_ADD, 0xE2)
- RELOC_NUMBER (R_BFIN_SUB, 0xE3)
- RELOC_NUMBER (R_BFIN_MULT, 0xE4)
- RELOC_NUMBER (R_BFIN_DIV, 0xE5)
- RELOC_NUMBER (R_BFIN_MOD, 0xE6)
- RELOC_NUMBER (R_BFIN_LSHIFT, 0xE7)
- RELOC_NUMBER (R_BFIN_RSHIFT, 0xE8)
- RELOC_NUMBER (R_BFIN_AND, 0xE9)
- RELOC_NUMBER (R_BFIN_OR, 0xEA)
- RELOC_NUMBER (R_BFIN_XOR, 0xEB)
- RELOC_NUMBER (R_BFIN_LAND, 0xEC)
- RELOC_NUMBER (R_BFIN_LOR, 0xED)
- RELOC_NUMBER (R_BFIN_LEN, 0xEE)
- RELOC_NUMBER (R_BFIN_NEG, 0xEF)
- RELOC_NUMBER (R_BFIN_COMP, 0xF0)
- RELOC_NUMBER (R_BFIN_PAGE, 0xF1)
- RELOC_NUMBER (R_BFIN_HWPAGE, 0xF2)
- RELOC_NUMBER (R_BFIN_ADDR, 0xF3)
- RELOC_NUMBER (R_BFIN_PLTPC, 0x40) /* PLT gnu only relocation */
- RELOC_NUMBER (R_BFIN_GOT, 0x41) /* GOT gnu only relocation */
- RELOC_NUMBER (R_BFIN_GNU_VTINHERIT, 0x42) /* C++, gnu only */
- RELOC_NUMBER (R_BFIN_GNU_VTENTRY, 0x43) /* C++, gnu only */
-END_RELOC_NUMBERS (R_BFIN_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_BFIN_PIC 0x00000001 /* -fpic */
-#define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */
-
-#define EF_BFIN_CODE_IN_L1 0x00000010 /* --code-in-l1 */
-#define EF_BFIN_DATA_IN_L1 0x00000020 /* --data-in-l1 */
-
-#define EF_BFIN_PIC_FLAGS (EF_BFIN_PIC | EF_BFIN_FDPIC)
-#endif /* _ELF_BFIN_H */
diff --git a/include/elf/common.h b/include/elf/common.h
deleted file mode 100644
index 5cddc0bef..000000000
--- a/include/elf/common.h
+++ /dev/null
@@ -1,959 +0,0 @@
-/* ELF support for BFD.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support, from information published
- in "UNIX System V Release 4, Programmers Guide: ANSI C and
- Programming Support Tools".
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of ELF support for BFD, and contains the portions
- that are common to both the internal and external representations.
- For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory)
- and external (in-file) representations. */
-
-#ifndef _ELF_COMMON_H
-#define _ELF_COMMON_H
-
-/* Fields in e_ident[]. */
-
-#define EI_MAG0 0 /* File identification byte 0 index */
-#define ELFMAG0 0x7F /* Magic number byte 0 */
-
-#define EI_MAG1 1 /* File identification byte 1 index */
-#define ELFMAG1 'E' /* Magic number byte 1 */
-
-#define EI_MAG2 2 /* File identification byte 2 index */
-#define ELFMAG2 'L' /* Magic number byte 2 */
-
-#define EI_MAG3 3 /* File identification byte 3 index */
-#define ELFMAG3 'F' /* Magic number byte 3 */
-
-#define EI_CLASS 4 /* File class */
-#define ELFCLASSNONE 0 /* Invalid class */
-#define ELFCLASS32 1 /* 32-bit objects */
-#define ELFCLASS64 2 /* 64-bit objects */
-
-#define EI_DATA 5 /* Data encoding */
-#define ELFDATANONE 0 /* Invalid data encoding */
-#define ELFDATA2LSB 1 /* 2's complement, little endian */
-#define ELFDATA2MSB 2 /* 2's complement, big endian */
-
-#define EI_VERSION 6 /* File version */
-
-#define EI_OSABI 7 /* Operating System/ABI indication */
-#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-#define ELFOSABI_HPUX 1 /* HP-UX operating system */
-#define ELFOSABI_NETBSD 2 /* NetBSD */
-#define ELFOSABI_GNU 3 /* GNU */
-#define ELFOSABI_LINUX 3 /* Alias for ELFOSABI_GNU */
-#define ELFOSABI_SOLARIS 6 /* Solaris */
-#define ELFOSABI_AIX 7 /* AIX */
-#define ELFOSABI_IRIX 8 /* IRIX */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD */
-#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD */
-#define ELFOSABI_OPENVMS 13 /* OpenVMS */
-#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
-#define ELFOSABI_AROS 15 /* AROS */
-#define ELFOSABI_FENIXOS 16 /* FenixOS */
-#define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
-#define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define EI_ABIVERSION 8 /* ABI version */
-
-#define EI_PAD 9 /* Start of padding bytes */
-
-
-/* Values for e_type, which identifies the object file type. */
-
-#define ET_NONE 0 /* No file type */
-#define ET_REL 1 /* Relocatable file */
-#define ET_EXEC 2 /* Executable file */
-#define ET_DYN 3 /* Shared object file */
-#define ET_CORE 4 /* Core file */
-#define ET_LOOS 0xFE00 /* Operating system-specific */
-#define ET_HIOS 0xFEFF /* Operating system-specific */
-#define ET_LOPROC 0xFF00 /* Processor-specific */
-#define ET_HIPROC 0xFFFF /* Processor-specific */
-
-/* Values for e_machine, which identifies the architecture. These numbers
- are officially assigned by registry@sco.com. See below for a list of
- ad-hoc numbers used during initial development. */
-
-#define EM_NONE 0 /* No machine */
-#define EM_M32 1 /* AT&T WE 32100 */
-#define EM_SPARC 2 /* SUN SPARC */
-#define EM_386 3 /* Intel 80386 */
-#define EM_68K 4 /* Motorola m68k family */
-#define EM_88K 5 /* Motorola m88k family */
-#define EM_486 6 /* Intel 80486 *//* Reserved for future use */
-#define EM_860 7 /* Intel 80860 */
-#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */
-#define EM_S370 9 /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */
-#define EM_res011 11 /* Reserved */
-#define EM_res012 12 /* Reserved */
-#define EM_res013 13 /* Reserved */
-#define EM_res014 14 /* Reserved */
-#define EM_PARISC 15 /* HPPA */
-#define EM_res016 16 /* Reserved */
-#define EM_VPP550 17 /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-#define EM_960 19 /* Intel 80960 */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* 64-bit PowerPC */
-#define EM_S390 22 /* IBM S/390 */
-#define EM_SPU 23 /* Sony/Toshiba/IBM SPU */
-#define EM_res024 24 /* Reserved */
-#define EM_res025 25 /* Reserved */
-#define EM_res026 26 /* Reserved */
-#define EM_res027 27 /* Reserved */
-#define EM_res028 28 /* Reserved */
-#define EM_res029 29 /* Reserved */
-#define EM_res030 30 /* Reserved */
-#define EM_res031 31 /* Reserved */
-#define EM_res032 32 /* Reserved */
-#define EM_res033 33 /* Reserved */
-#define EM_res034 34 /* Reserved */
-#define EM_res035 35 /* Reserved */
-#define EM_V800 36 /* NEC V800 series */
-#define EM_FR20 37 /* Fujitsu FR20 */
-#define EM_RH32 38 /* TRW RH32 */
-#define EM_MCORE 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */
-#define EM_RCE 39 /* Old name for MCore */
-#define EM_ARM 40 /* ARM */
-#define EM_OLD_ALPHA 41 /* Digital Alpha */
-#define EM_SH 42 /* Renesas (formerly Hitachi) / SuperH SH */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-#define EM_TRICORE 44 /* Siemens Tricore embedded processor */
-#define EM_ARC 45 /* ARC Cores */
-#define EM_H8_300 46 /* Renesas (formerly Hitachi) H8/300 */
-#define EM_H8_300H 47 /* Renesas (formerly Hitachi) H8/300H */
-#define EM_H8S 48 /* Renesas (formerly Hitachi) H8S */
-#define EM_H8_500 49 /* Renesas (formerly Hitachi) H8/500 */
-#define EM_IA_64 50 /* Intel IA-64 Processor */
-#define EM_MIPS_X 51 /* Stanford MIPS-X */
-#define EM_COLDFIRE 52 /* Motorola Coldfire */
-#define EM_68HC12 53 /* Motorola M68HC12 */
-#define EM_MMA 54 /* Fujitsu Multimedia Accelerator */
-#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-#define EM_STARCORE 58 /* Motorola Star*Core processor */
-#define EM_ME16 59 /* Toyota ME16 processor */
-#define EM_ST100 60 /* STMicroelectronics ST100 processor */
-#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor */
-#define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */
-#define EM_PDSP 63 /* Sony DSP Processor */
-#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
-#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
-#define EM_FX66 66 /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */
-#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */
-#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */
-#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */
-#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */
-#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */
-#define EM_SVX 73 /* Silicon Graphics SVx */
-#define EM_ST19 74 /* STMicroelectronics ST19 8-bit cpu */
-#define EM_VAX 75 /* Digital VAX */
-#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */
-#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
-#define EM_HUANY 81 /* Harvard's machine-independent format */
-#define EM_PRISM 82 /* SiTera Prism */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30 84 /* Fujitsu FR30 */
-#define EM_D10V 85 /* Mitsubishi D10V */
-#define EM_D30V 86 /* Mitsubishi D30V */
-#define EM_V850 87 /* Renesas V850 (formerly NEC V850) */
-#define EM_M32R 88 /* Renesas M32R (formerly Mitsubishi M32R) */
-#define EM_MN10300 89 /* Matsushita MN10300 */
-#define EM_MN10200 90 /* Matsushita MN10200 */
-#define EM_PJ 91 /* picoJava */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
-#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */
-#define EM_NS32K 97 /* National Semiconductor 32000 series */
-#define EM_TPC 98 /* Tenor Network TPC processor */
-#define EM_SNP1K 99 /* Trebia SNP 1000 processor */
-#define EM_ST200 100 /* STMicroelectronics ST200 microcontroller */
-#define EM_IP2K 101 /* Ubicom IP2022 micro controller */
-#define EM_MAX 102 /* MAX Processor */
-#define EM_CR 103 /* National Semiconductor CompactRISC */
-#define EM_F2MC16 104 /* Fujitsu F2MC16 */
-#define EM_MSP430 105 /* TI msp430 micro controller */
-#define EM_BLACKFIN 106 /* ADI Blackfin */
-#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */
-#define EM_SEP 108 /* Sharp embedded microprocessor */
-#define EM_ARCA 109 /* Arca RISC Microprocessor */
-#define EM_UNICORE 110 /* Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University */
-#define EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */
-#define EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */
-#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
-#define EM_CRX 114 /* National Semiconductor CRX */
-#define EM_XGATE 115 /* Motorola XGATE embedded processor */
-#define EM_C166 116 /* Infineon C16x/XC16x processor */
-#define EM_M16C 117 /* Renesas M16C series microprocessors */
-#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F Digital Signal Controller */
-#define EM_CE 119 /* Freescale Communication Engine RISC core */
-#define EM_M32C 120 /* Renesas M32C series microprocessors */
-#define EM_res121 121 /* Reserved */
-#define EM_res122 122 /* Reserved */
-#define EM_res123 123 /* Reserved */
-#define EM_res124 124 /* Reserved */
-#define EM_res125 125 /* Reserved */
-#define EM_res126 126 /* Reserved */
-#define EM_res127 127 /* Reserved */
-#define EM_res128 128 /* Reserved */
-#define EM_res129 129 /* Reserved */
-#define EM_res130 130 /* Reserved */
-#define EM_TSK3000 131 /* Altium TSK3000 core */
-#define EM_RS08 132 /* Freescale RS08 embedded processor */
-#define EM_res133 133 /* Reserved */
-#define EM_ECOG2 134 /* Cyan Technology eCOG2 microprocessor */
-#define EM_SCORE 135 /* Sunplus Score */
-#define EM_SCORE7 135 /* Sunplus S+core7 RISC processor */
-#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP Processor */
-#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III processor */
-#define EM_LATTICEMICO32 138 /* RISC processor for Lattice FPGA architecture */
-#define EM_SE_C17 139 /* Seiko Epson C17 family */
-#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP family */
-#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP family */
-#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP family */
-#define EM_res143 143 /* Reserved */
-#define EM_res144 144 /* Reserved */
-#define EM_res145 145 /* Reserved */
-#define EM_res146 146 /* Reserved */
-#define EM_res147 147 /* Reserved */
-#define EM_res148 148 /* Reserved */
-#define EM_res149 149 /* Reserved */
-#define EM_res150 150 /* Reserved */
-#define EM_res151 151 /* Reserved */
-#define EM_res152 152 /* Reserved */
-#define EM_res153 153 /* Reserved */
-#define EM_res154 154 /* Reserved */
-#define EM_res155 155 /* Reserved */
-#define EM_res156 156 /* Reserved */
-#define EM_res157 157 /* Reserved */
-#define EM_res158 158 /* Reserved */
-#define EM_res159 159 /* Reserved */
-#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW Data Signal Processor */
-#define EM_CYPRESS_M8C 161 /* Cypress M8C microprocessor */
-#define EM_R32C 162 /* Renesas R32C series microprocessors */
-#define EM_TRIMEDIA 163 /* NXP Semiconductors TriMedia architecture family */
-#define EM_QDSP6 164 /* QUALCOMM DSP6 Processor */
-#define EM_8051 165 /* Intel 8051 and variants */
-#define EM_STXP7X 166 /* STMicroelectronics STxP7x family */
-#define EM_NDS32 167 /* Andes Technology compact code size embedded RISC processor family */
-#define EM_ECOG1 168 /* Cyan Technology eCOG1X family */
-#define EM_ECOG1X 168 /* Cyan Technology eCOG1X family */
-#define EM_MAXQ30 169 /* Dallas Semiconductor MAXQ30 Core Micro-controllers */
-#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP Processor */
-#define EM_MANIK 171 /* M2000 Reconfigurable RISC Microprocessor */
-#define EM_CRAYNV2 172 /* Cray Inc. NV2 vector architecture */
-#define EM_RX 173 /* Renesas RX family */
-#define EM_METAG 174 /* Imagination Technologies META processor architecture */
-#define EM_MCST_ELBRUS 175 /* MCST Elbrus general purpose hardware architecture */
-#define EM_ECOG16 176 /* Cyan Technology eCOG16 family */
-#define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */
-#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */
-#define EM_SLE9X 179 /* Infineon Technologies SLE9X core */
-#define EM_L1OM 180 /* Intel L1OM */
-#define EM_K1OM 181 /* Intel K1OM */
-#define EM_INTEL182 182 /* Reserved by Intel */
-#define EM_res183 183 /* Reserved by ARM */
-#define EM_res184 184 /* Reserved by ARM */
-#define EM_AVR32 185 /* Atmel Corporation 32-bit microprocessor family */
-#define EM_STM8 186 /* STMicroeletronics STM8 8-bit microcontroller */
-#define EM_TILE64 187 /* Tilera TILE64 multicore architecture family */
-#define EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */
-#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
-#define EM_CUDA 190 /* NVIDIA CUDA architecture */
-#define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */
-#define EM_RL78 197 /* Renesas RL78 family. */
-#define EM_78K0R 199 /* Renesas 78K0R. */
-
-/* If it is necessary to assign new unofficial EM_* values, please pick large
- random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
- with official or non-GNU unofficial values.
-
- NOTE: Do not just increment the most recent number by one.
- Somebody else somewhere will do exactly the same thing, and you
- will have a collision. Instead, pick a random number.
-
- Normally, each entity or maintainer responsible for a machine with an
- unofficial e_machine number should eventually ask registry@sco.com for
- an officially blessed number to be added to the list above. */
-
-/* Old version of Sparc v9, from before the ABI;
- This should be removed shortly. */
-#define EM_OLD_SPARCV9 11
-
-/* Old version of PowerPC, this should be removed shortly. */
-#define EM_PPC_OLD 17
-
-/* picoJava */
-#define EM_PJ_OLD 99
-
-/* Old, unofficial value for National Semiconductor CompactRISC - CR16 */
-#define EM_CR16_OLD 115
-
-/* AVR magic number. Written in the absense of an ABI. */
-#define EM_AVR_OLD 0x1057
-
-/* MSP430 magic number. Written in the absense of everything. */
-#define EM_MSP430_OLD 0x1059
-
-/* Morpho MT. Written in the absense of an ABI. */
-#define EM_MT 0x2530
-
-/* FR30 magic number - no EABI available. */
-#define EM_CYGNUS_FR30 0x3330
-
-/* OpenRISC magic number. Written in the absense of an ABI. */
-#define EM_OPENRISC_OLD 0x3426
-
-/* DLX magic number. Written in the absense of an ABI. */
-#define EM_DLX 0x5aa5
-
-/* FRV magic number - no EABI available??. */
-#define EM_CYGNUS_FRV 0x5441
-
-/* Infineon Technologies 16-bit microcontroller with C166-V2 core. */
-#define EM_XC16X 0x4688
-
-/* D10V backend magic number. Written in the absence of an ABI. */
-#define EM_CYGNUS_D10V 0x7650
-
-/* D30V backend magic number. Written in the absence of an ABI. */
-#define EM_CYGNUS_D30V 0x7676
-
-/* Ubicom IP2xxx; Written in the absense of an ABI. */
-#define EM_IP2K_OLD 0x8217
-
-/* (Deprecated) Temporary number for the OpenRISC processor. */
-#define EM_OR32 0x8472
-
-/* Cygnus PowerPC ELF backend. Written in the absence of an ABI. */
-#define EM_CYGNUS_POWERPC 0x9025
-
-/* Alpha backend magic number. Written in the absence of an ABI. */
-#define EM_ALPHA 0x9026
-
-/* Cygnus M32R ELF backend. Written in the absence of an ABI. */
-#define EM_CYGNUS_M32R 0x9041
-
-/* V850 backend magic number. Written in the absense of an ABI. */
-#define EM_CYGNUS_V850 0x9080
-
-/* old S/390 backend magic number. Written in the absence of an ABI. */
-#define EM_S390_OLD 0xa390
-
-/* Old, unofficial value for Xtensa. */
-#define EM_XTENSA_OLD 0xabc7
-
-#define EM_XSTORMY16 0xad45
-
-/* mn10200 and mn10300 backend magic numbers.
- Written in the absense of an ABI. */
-#define EM_CYGNUS_MN10300 0xbeef
-#define EM_CYGNUS_MN10200 0xdead
-
-/* Renesas M32C and M16C. */
-#define EM_M32C_OLD 0xFEB0
-
-/* Vitesse IQ2000. */
-#define EM_IQ2000 0xFEBA
-
-/* NIOS magic number - no EABI available. */
-#define EM_NIOS32 0xFEBB
-
-#define EM_CYGNUS_MEP 0xF00D /* Toshiba MeP */
-
-#define EM_MOXIE 0xFEED /* Moxie */
-
-/* Old Sunplus S+core7 backend magic number. Written in the absence of an ABI. */
-#define EM_SCORE_OLD 95
-
-#define EM_MICROBLAZE_OLD 0xbaab /* Old MicroBlaze */
-
-#define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */
-
-/* See the above comment before you add a new EM_* value here. */
-
-/* Values for e_version. */
-
-#define EV_NONE 0 /* Invalid ELF version */
-#define EV_CURRENT 1 /* Current version */
-
-/* Value for e_phnum. */
-#define PN_XNUM 0xffff /* Extended numbering */
-
-/* Values for program header, p_type field. */
-
-#define PT_NULL 0 /* Program header table entry unused */
-#define PT_LOAD 1 /* Loadable program segment */
-#define PT_DYNAMIC 2 /* Dynamic linking information */
-#define PT_INTERP 3 /* Program interpreter */
-#define PT_NOTE 4 /* Auxiliary information */
-#define PT_SHLIB 5 /* Reserved, unspecified semantics */
-#define PT_PHDR 6 /* Entry for header table itself */
-#define PT_TLS 7 /* Thread local storage segment */
-#define PT_LOOS 0x60000000 /* OS-specific */
-#define PT_HIOS 0x6fffffff /* OS-specific */
-#define PT_LOPROC 0x70000000 /* Processor-specific */
-#define PT_HIPROC 0x7FFFFFFF /* Processor-specific */
-
-#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550) /* Frame unwind information */
-#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
-#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
-#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
-
-/* Program segment permissions, in program header p_flags field. */
-
-#define PF_X (1 << 0) /* Segment is executable */
-#define PF_W (1 << 1) /* Segment is writable */
-#define PF_R (1 << 2) /* Segment is readable */
-/* #define PF_MASKOS 0x0F000000 *//* OS-specific reserved bits */
-#define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
-#define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
-
-/* Values for section header, sh_type field. */
-
-#define SHT_NULL 0 /* Section header table entry unused */
-#define SHT_PROGBITS 1 /* Program specific (private) data */
-#define SHT_SYMTAB 2 /* Link editing symbol table */
-#define SHT_STRTAB 3 /* A string table */
-#define SHT_RELA 4 /* Relocation entries with addends */
-#define SHT_HASH 5 /* A symbol hash table */
-#define SHT_DYNAMIC 6 /* Information for dynamic linking */
-#define SHT_NOTE 7 /* Information that marks file */
-#define SHT_NOBITS 8 /* Section occupies no space in file */
-#define SHT_REL 9 /* Relocation entries, no addends */
-#define SHT_SHLIB 10 /* Reserved, unspecified semantics */
-#define SHT_DYNSYM 11 /* Dynamic linking symbol table */
-
-#define SHT_INIT_ARRAY 14 /* Array of ptrs to init functions */
-#define SHT_FINI_ARRAY 15 /* Array of ptrs to finish functions */
-#define SHT_PREINIT_ARRAY 16 /* Array of ptrs to pre-init funcs */
-#define SHT_GROUP 17 /* Section contains a section group */
-#define SHT_SYMTAB_SHNDX 18 /* Indicies for SHN_XINDEX entries */
-
-#define SHT_LOOS 0x60000000 /* First of OS specific semantics */
-#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */
-
-#define SHT_GNU_INCREMENTAL_INPUTS 0x6fff4700 /* incremental build data */
-#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes */
-#define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */
-#define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */
-
-/* The next three section types are defined by Solaris, and are named
- SHT_SUNW*. We use them in GNU code, so we also define SHT_GNU*
- versions. */
-#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */
-#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */
-#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */
-
-#define SHT_GNU_verdef SHT_SUNW_verdef
-#define SHT_GNU_verneed SHT_SUNW_verneed
-#define SHT_GNU_versym SHT_SUNW_versym
-
-#define SHT_LOPROC 0x70000000 /* Processor-specific semantics, lo */
-#define SHT_HIPROC 0x7FFFFFFF /* Processor-specific semantics, hi */
-#define SHT_LOUSER 0x80000000 /* Application-specific semantics */
-/* #define SHT_HIUSER 0x8FFFFFFF *//* Application-specific semantics */
-#define SHT_HIUSER 0xFFFFFFFF /* New value, defined in Oct 4, 1999 Draft */
-
-/* Values for section header, sh_flags field. */
-
-#define SHF_WRITE (1 << 0) /* Writable data during execution */
-#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
-#define SHF_EXECINSTR (1 << 2) /* Executable machine instructions */
-#define SHF_MERGE (1 << 4) /* Data in this section can be merged */
-#define SHF_STRINGS (1 << 5) /* Contains null terminated character strings */
-#define SHF_INFO_LINK (1 << 6) /* sh_info holds section header table index */
-#define SHF_LINK_ORDER (1 << 7) /* Preserve section ordering when linking */
-#define SHF_OS_NONCONFORMING (1 << 8) /* OS specific processing required */
-#define SHF_GROUP (1 << 9) /* Member of a section group */
-#define SHF_TLS (1 << 10) /* Thread local storage section */
-
-/* #define SHF_MASKOS 0x0F000000 *//* OS-specific semantics */
-#define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
-#define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */
-
-/* This used to be implemented as a processor specific section flag.
- We just make it generic. */
-#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude
- this section from executable
- and shared library that it
- builds when those objects
- are not to be further
- relocated. */
-
-/* Values of note segment descriptor types for core files. */
-
-#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
-#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
-#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
-#define NT_TASKSTRUCT 4 /* Contains copy of task struct */
-#define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */
-#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */
- /* note name must be "LINUX". */
-#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
- /* note name must be "LINUX". */
-#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
- /* note name must be "LINUX". */
-#define NT_X86_XSTATE 0x202 /* x86 XSAVE extended state */
- /* note name must be "LINUX". */
-#define NT_S390_HIGH_GPRS 0x300 /* S/390 upper halves of GPRs */
- /* note name must be "LINUX". */
-#define NT_S390_TIMER 0x301 /* S390 timer */
- /* note name must be "LINUX". */
-#define NT_S390_TODCMP 0x302 /* S390 TOD clock comparator */
- /* note name must be "LINUX". */
-#define NT_S390_TODPREG 0x303 /* S390 TOD programmable register */
- /* note name must be "LINUX". */
-#define NT_S390_CTRS 0x304 /* S390 control registers */
- /* note name must be "LINUX". */
-#define NT_S390_PREFIX 0x305 /* S390 prefix register */
- /* note name must be "LINUX". */
-#define NT_S390_LAST_BREAK 0x306 /* S390 breaking event address */
- /* note name must be "LINUX". */
-#define NT_S390_SYSTEM_CALL 0x307 /* S390 system call restart data */
- /* note name must be "LINUX". */
-#define NT_ARM_VFP 0x400 /* ARM VFP registers */
- /* note name must be "LINUX". */
-
-/* Note segments for core files on dir-style procfs systems. */
-
-#define NT_PSTATUS 10 /* Has a struct pstatus */
-#define NT_FPREGS 12 /* Has a struct fpregset */
-#define NT_PSINFO 13 /* Has a struct psinfo */
-#define NT_LWPSTATUS 16 /* Has a struct lwpstatus_t */
-#define NT_LWPSINFO 17 /* Has a struct lwpsinfo_t */
-#define NT_WIN32PSTATUS 18 /* Has a struct win32_pstatus */
-
-/* Note segment for SystemTap probes. */
-#define NT_STAPSDT 3
-
-/* Note segments for core files on NetBSD systems. Note name
- must start with "NetBSD-CORE". */
-
-#define NT_NETBSDCORE_PROCINFO 1 /* Has a struct procinfo */
-#define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */
-
-
-/* Note segments for core files on OpenBSD systems. Note name is
- "OpenBSD". */
-
-#define NT_OPENBSD_PROCINFO 10
-#define NT_OPENBSD_AUXV 11
-#define NT_OPENBSD_REGS 20
-#define NT_OPENBSD_FPREGS 21
-#define NT_OPENBSD_XFPREGS 22
-#define NT_OPENBSD_WCOOKIE 23
-
-
-/* Note segments for core files on SPU systems. Note name
- must start with "SPU/". */
-
-#define NT_SPU 1
-
-/* Values of note segment descriptor types for object files. */
-
-#define NT_VERSION 1 /* Contains a version string. */
-#define NT_ARCH 2 /* Contains an architecture string. */
-
-/* Values for notes in non-core files using name "GNU". */
-
-#define NT_GNU_ABI_TAG 1
-#define NT_GNU_HWCAP 2 /* Used by ld.so and kernel vDSO. */
-#define NT_GNU_BUILD_ID 3 /* Generated by ld --build-id. */
-#define NT_GNU_GOLD_VERSION 4 /* Generated by gold. */
-
-/* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */
-#define GNU_ABI_TAG_LINUX 0
-#define GNU_ABI_TAG_HURD 1
-#define GNU_ABI_TAG_SOLARIS 2
-#define GNU_ABI_TAG_FREEBSD 3
-#define GNU_ABI_TAG_NETBSD 4
-
-/* Values for NetBSD .note.netbsd.ident notes. Note name is "NetBSD". */
-
-#define NT_NETBSD_IDENT 1
-
-/* Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD". */
-
-#define NT_OPENBSD_IDENT 1
-
-/* Values for FreeBSD .note.ABI-tag notes. Note name is "FreeBSD". */
-
-#define NT_FREEBSD_ABI_TAG 1
-
-/* These three macros disassemble and assemble a symbol table st_info field,
- which contains the symbol binding and symbol type. The STB_ and STT_
- defines identify the binding and type. */
-
-#define ELF_ST_BIND(val) (((unsigned int)(val)) >> 4)
-#define ELF_ST_TYPE(val) ((val) & 0xF)
-#define ELF_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xF))
-
-/* The 64bit and 32bit versions of these macros are identical, but
- the ELF spec defines them, so here they are. */
-#define ELF32_ST_BIND ELF_ST_BIND
-#define ELF32_ST_TYPE ELF_ST_TYPE
-#define ELF32_ST_INFO ELF_ST_INFO
-#define ELF64_ST_BIND ELF_ST_BIND
-#define ELF64_ST_TYPE ELF_ST_TYPE
-#define ELF64_ST_INFO ELF_ST_INFO
-
-/* This macro disassembles and assembles a symbol's visibility into
- the st_other field. The STV_ defines specify the actual visibility. */
-
-#define ELF_ST_VISIBILITY(v) ((v) & 0x3)
-/* The remaining bits in the st_other field are not currently used.
- They should be set to zero. */
-
-#define ELF32_ST_VISIBILITY ELF_ST_VISIBILITY
-#define ELF64_ST_VISIBILITY ELF_ST_VISIBILITY
-
-
-#define STN_UNDEF 0 /* Undefined symbol index */
-
-#define STB_LOCAL 0 /* Symbol not visible outside obj */
-#define STB_GLOBAL 1 /* Symbol visible outside obj */
-#define STB_WEAK 2 /* Like globals, lower precedence */
-#define STB_LOOS 10 /* OS-specific semantics */
-#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */
-#define STB_HIOS 12 /* OS-specific semantics */
-#define STB_LOPROC 13 /* Processor-specific semantics */
-#define STB_HIPROC 15 /* Processor-specific semantics */
-
-#define STT_NOTYPE 0 /* Symbol type is unspecified */
-#define STT_OBJECT 1 /* Symbol is a data object */
-#define STT_FUNC 2 /* Symbol is a code object */
-#define STT_SECTION 3 /* Symbol associated with a section */
-#define STT_FILE 4 /* Symbol gives a file name */
-#define STT_COMMON 5 /* An uninitialised common block */
-#define STT_TLS 6 /* Thread local data object */
-#define STT_RELC 8 /* Complex relocation expression */
-#define STT_SRELC 9 /* Signed Complex relocation expression */
-#define STT_LOOS 10 /* OS-specific semantics */
-#define STT_GNU_IFUNC 10 /* Symbol is an indirect code object */
-#define STT_HIOS 12 /* OS-specific semantics */
-#define STT_LOPROC 13 /* Processor-specific semantics */
-#define STT_HIPROC 15 /* Processor-specific semantics */
-
-/* The following constants control how a symbol may be accessed once it has
- become part of an executable or shared library. */
-
-#define STV_DEFAULT 0 /* Visibility is specified by binding type */
-#define STV_INTERNAL 1 /* OS specific version of STV_HIDDEN */
-#define STV_HIDDEN 2 /* Can only be seen inside currect component */
-#define STV_PROTECTED 3 /* Treat as STB_LOCAL inside current component */
-
-/* Relocation info handling macros. */
-
-#define ELF32_R_SYM(i) ((i) >> 8)
-#define ELF32_R_TYPE(i) ((i) & 0xff)
-#define ELF32_R_INFO(s,t) (((s) << 8) + ((t) & 0xff))
-
-#define ELF64_R_SYM(i) ((i) >> 32)
-#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-#define ELF64_R_INFO(s,t) (((bfd_vma) (s) << 31 << 1) + (bfd_vma) (t))
-
-/* Dynamic section tags. */
-
-#define DT_NULL 0
-#define DT_NEEDED 1
-#define DT_PLTRELSZ 2
-#define DT_PLTGOT 3
-#define DT_HASH 4
-#define DT_STRTAB 5
-#define DT_SYMTAB 6
-#define DT_RELA 7
-#define DT_RELASZ 8
-#define DT_RELAENT 9
-#define DT_STRSZ 10
-#define DT_SYMENT 11
-#define DT_INIT 12
-#define DT_FINI 13
-#define DT_SONAME 14
-#define DT_RPATH 15
-#define DT_SYMBOLIC 16
-#define DT_REL 17
-#define DT_RELSZ 18
-#define DT_RELENT 19
-#define DT_PLTREL 20
-#define DT_DEBUG 21
-#define DT_TEXTREL 22
-#define DT_JMPREL 23
-#define DT_BIND_NOW 24
-#define DT_INIT_ARRAY 25
-#define DT_FINI_ARRAY 26
-#define DT_INIT_ARRAYSZ 27
-#define DT_FINI_ARRAYSZ 28
-#define DT_RUNPATH 29
-#define DT_FLAGS 30
-#define DT_ENCODING 32
-#define DT_PREINIT_ARRAY 32
-#define DT_PREINIT_ARRAYSZ 33
-
-/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
- for DT_LOOS and DT_HIOS. Some implementations however, use
- values outside of the new range (see below). */
-#define OLD_DT_LOOS 0x60000000
-#define DT_LOOS 0x6000000d
-#define DT_HIOS 0x6ffff000
-#define OLD_DT_HIOS 0x6fffffff
-
-#define DT_LOPROC 0x70000000
-#define DT_HIPROC 0x7fffffff
-
-/* The next 2 dynamic tag ranges, integer value range (DT_VALRNGLO to
- DT_VALRNGHI) and virtual address range (DT_ADDRRNGLO to DT_ADDRRNGHI),
- are used on Solaris. We support them everywhere. Note these values
- lie outside of the (new) range for OS specific values. This is a
- deliberate special case and we maintain it for backwards compatability.
- */
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_GNU_PRELINKED 0x6ffffdf5
-#define DT_GNU_CONFLICTSZ 0x6ffffdf6
-#define DT_GNU_LIBLISTSZ 0x6ffffdf7
-#define DT_CHECKSUM 0x6ffffdf8
-#define DT_PLTPADSZ 0x6ffffdf9
-#define DT_MOVEENT 0x6ffffdfa
-#define DT_MOVESZ 0x6ffffdfb
-#define DT_FEATURE 0x6ffffdfc
-#define DT_POSFLAG_1 0x6ffffdfd
-#define DT_SYMINSZ 0x6ffffdfe
-#define DT_SYMINENT 0x6ffffdff
-#define DT_VALRNGHI 0x6ffffdff
-
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_GNU_HASH 0x6ffffef5
-#define DT_TLSDESC_PLT 0x6ffffef6
-#define DT_TLSDESC_GOT 0x6ffffef7
-#define DT_GNU_CONFLICT 0x6ffffef8
-#define DT_GNU_LIBLIST 0x6ffffef9
-#define DT_CONFIG 0x6ffffefa
-#define DT_DEPAUDIT 0x6ffffefb
-#define DT_AUDIT 0x6ffffefc
-#define DT_PLTPAD 0x6ffffefd
-#define DT_MOVETAB 0x6ffffefe
-#define DT_SYMINFO 0x6ffffeff
-#define DT_ADDRRNGHI 0x6ffffeff
-
-#define DT_RELACOUNT 0x6ffffff9
-#define DT_RELCOUNT 0x6ffffffa
-#define DT_FLAGS_1 0x6ffffffb
-#define DT_VERDEF 0x6ffffffc
-#define DT_VERDEFNUM 0x6ffffffd
-#define DT_VERNEED 0x6ffffffe
-#define DT_VERNEEDNUM 0x6fffffff
-
-/* This tag is a GNU extension to the Solaris version scheme. */
-#define DT_VERSYM 0x6ffffff0
-
-#define DT_LOPROC 0x70000000
-#define DT_HIPROC 0x7fffffff
-
-/* These section tags are used on Solaris. We support them
- everywhere, and hope they do not conflict. */
-
-#define DT_AUXILIARY 0x7ffffffd
-#define DT_USED 0x7ffffffe
-#define DT_FILTER 0x7fffffff
-
-
-/* Values used in DT_FEATURE .dynamic entry. */
-#define DTF_1_PARINIT 0x00000001
-/* From
-
- http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1
-
- DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value
- defined here is the same as the one in <sys/link.h> on Solaris 8. */
-#define DTF_1_CONFEXP 0x00000002
-
-/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */
-#define DF_P1_LAZYLOAD 0x00000001
-#define DF_P1_GROUPPERM 0x00000002
-
-/* Flag value in in the DT_FLAGS_1 .dynamic entry. */
-#define DF_1_NOW 0x00000001
-#define DF_1_GLOBAL 0x00000002
-#define DF_1_GROUP 0x00000004
-#define DF_1_NODELETE 0x00000008
-#define DF_1_LOADFLTR 0x00000010
-#define DF_1_INITFIRST 0x00000020
-#define DF_1_NOOPEN 0x00000040
-#define DF_1_ORIGIN 0x00000080
-#define DF_1_DIRECT 0x00000100
-#define DF_1_TRANS 0x00000200
-#define DF_1_INTERPOSE 0x00000400
-#define DF_1_NODEFLIB 0x00000800
-#define DF_1_NODUMP 0x00001000
-#define DF_1_CONLFAT 0x00002000
-
-/* Flag values for the DT_FLAGS entry. */
-#define DF_ORIGIN (1 << 0)
-#define DF_SYMBOLIC (1 << 1)
-#define DF_TEXTREL (1 << 2)
-#define DF_BIND_NOW (1 << 3)
-#define DF_STATIC_TLS (1 << 4)
-
-/* These constants are used for the version number of a Elf32_Verdef
- structure. */
-
-#define VER_DEF_NONE 0
-#define VER_DEF_CURRENT 1
-
-/* These constants appear in the vd_flags field of a Elf32_Verdef
- structure.
-
- Cf. the Solaris Linker and Libraries Guide, Ch. 7, Object File Format,
- Versioning Sections, for a description:
-
- http://docs.sun.com/app/docs/doc/819-0690/chapter6-93046?l=en&a=view */
-
-#define VER_FLG_BASE 0x1
-#define VER_FLG_WEAK 0x2
-#define VER_FLG_INFO 0x4
-
-/* These special constants can be found in an Elf32_Versym field. */
-
-#define VER_NDX_LOCAL 0
-#define VER_NDX_GLOBAL 1
-
-/* These constants are used for the version number of a Elf32_Verneed
- structure. */
-
-#define VER_NEED_NONE 0
-#define VER_NEED_CURRENT 1
-
-/* This flag appears in a Versym structure. It means that the symbol
- is hidden, and is only visible with an explicit version number.
- This is a GNU extension. */
-
-#define VERSYM_HIDDEN 0x8000
-
-/* This is the mask for the rest of the Versym information. */
-
-#define VERSYM_VERSION 0x7fff
-
-/* This is a special token which appears as part of a symbol name. It
- indictes that the rest of the name is actually the name of a
- version node, and is not part of the actual name. This is a GNU
- extension. For example, the symbol name `stat@ver2' is taken to
- mean the symbol `stat' in version `ver2'. */
-
-#define ELF_VER_CHR '@'
-
-/* Possible values for si_boundto. */
-
-#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */
-#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */
-#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */
-
-/* Possible bitmasks for si_flags. */
-
-#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
-#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy loaded */
-
-/* Syminfo version values. */
-
-#define SYMINFO_NONE 0
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-/* Section Group Flags. */
-
-#define GRP_COMDAT 0x1 /* A COMDAT group */
-
-/* Auxv a_type values. */
-
-#define AT_NULL 0 /* End of vector */
-#define AT_IGNORE 1 /* Entry should be ignored */
-#define AT_EXECFD 2 /* File descriptor of program */
-#define AT_PHDR 3 /* Program headers for program */
-#define AT_PHENT 4 /* Size of program header entry */
-#define AT_PHNUM 5 /* Number of program headers */
-#define AT_PAGESZ 6 /* System page size */
-#define AT_BASE 7 /* Base address of interpreter */
-#define AT_FLAGS 8 /* Flags */
-#define AT_ENTRY 9 /* Entry point of program */
-#define AT_NOTELF 10 /* Program is not ELF */
-#define AT_UID 11 /* Real uid */
-#define AT_EUID 12 /* Effective uid */
-#define AT_GID 13 /* Real gid */
-#define AT_EGID 14 /* Effective gid */
-#define AT_CLKTCK 17 /* Frequency of times() */
-#define AT_PLATFORM 15 /* String identifying platform. */
-#define AT_HWCAP 16 /* Machine dependent hints about
- processor capabilities. */
-#define AT_FPUCW 18 /* Used FPU control word. */
-#define AT_DCACHEBSIZE 19 /* Data cache block size. */
-#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
-#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
-#define AT_IGNOREPPC 22 /* Entry should be ignored */
-#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
-#define AT_BASE_PLATFORM 24 /* String identifying real platform,
- may differ from AT_PLATFORM. */
-#define AT_RANDOM 25 /* Address of 16 random bytes. */
-#define AT_EXECFN 31 /* Filename of executable. */
-/* Pointer to the global system page used for system calls and other
- nice things. */
-#define AT_SYSINFO 32
-#define AT_SYSINFO_EHDR 33 /* Pointer to ELF header of system-supplied DSO. */
-
-#define AT_SUN_UID 2000 /* Effective user ID. */
-#define AT_SUN_RUID 2001 /* Real user ID. */
-#define AT_SUN_GID 2002 /* Effective group ID. */
-#define AT_SUN_RGID 2003 /* Real group ID. */
-#define AT_SUN_LDELF 2004 /* Dynamic linker's ELF header. */
-#define AT_SUN_LDSHDR 2005 /* Dynamic linker's section headers. */
-#define AT_SUN_LDNAME 2006 /* String giving name of dynamic linker. */
-#define AT_SUN_LPAGESZ 2007 /* Large pagesize. */
-#define AT_SUN_PLATFORM 2008 /* Platform name string. */
-#define AT_SUN_HWCAP 2009 /* Machine dependent hints about
- processor capabilities. */
-#define AT_SUN_IFLUSH 2010 /* Should flush icache? */
-#define AT_SUN_CPU 2011 /* CPU name string. */
-#define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */
-#define AT_SUN_EMUL_EXECFD 2013 /* COFF executable file descriptor. */
-#define AT_SUN_EXECNAME 2014 /* Canonicalized file name given to execve. */
-#define AT_SUN_MMU 2015 /* String for name of MMU module. */
-#define AT_SUN_LDDATA 2016 /* Dynamic linker's data segment address. */
-#define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */
-
-
-#endif /* _ELF_COMMON_H */
diff --git a/include/elf/cr16.h b/include/elf/cr16.h
deleted file mode 100644
index 327847486..000000000
--- a/include/elf/cr16.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* CR16 ELF support for BFD.
- Copyright 2007, 2010 Free Software Foundation, Inc.
- Contributed by M R Swami Reddy.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_CR16_H
-#define _ELF_CR16_H
-
-#include "elf/reloc-macros.h"
-
-/* Creating indices for reloc_map_index array. */
-START_RELOC_NUMBERS(elf_cr16_reloc_type)
- RELOC_NUMBER (R_CR16_NONE, 0)
- RELOC_NUMBER (R_CR16_NUM8, 1)
- RELOC_NUMBER (R_CR16_NUM16, 2)
- RELOC_NUMBER (R_CR16_NUM32, 3)
- RELOC_NUMBER (R_CR16_NUM32a, 4)
- RELOC_NUMBER (R_CR16_REGREL4, 5)
- RELOC_NUMBER (R_CR16_REGREL4a, 6)
- RELOC_NUMBER (R_CR16_REGREL14, 7)
- RELOC_NUMBER (R_CR16_REGREL14a, 8)
- RELOC_NUMBER (R_CR16_REGREL16, 9)
- RELOC_NUMBER (R_CR16_REGREL20, 10)
- RELOC_NUMBER (R_CR16_REGREL20a, 11)
- RELOC_NUMBER (R_CR16_ABS20, 12)
- RELOC_NUMBER (R_CR16_ABS24, 13)
- RELOC_NUMBER (R_CR16_IMM4, 14)
- RELOC_NUMBER (R_CR16_IMM8, 15)
- RELOC_NUMBER (R_CR16_IMM16, 16)
- RELOC_NUMBER (R_CR16_IMM20, 17)
- RELOC_NUMBER (R_CR16_IMM24, 18)
- RELOC_NUMBER (R_CR16_IMM32, 19)
- RELOC_NUMBER (R_CR16_IMM32a, 20)
- RELOC_NUMBER (R_CR16_DISP4, 21)
- RELOC_NUMBER (R_CR16_DISP8, 22)
- RELOC_NUMBER (R_CR16_DISP16, 23)
- RELOC_NUMBER (R_CR16_DISP24, 24)
- RELOC_NUMBER (R_CR16_DISP24a, 25)
- RELOC_NUMBER (R_CR16_SWITCH8, 26)
- RELOC_NUMBER (R_CR16_SWITCH16, 27)
- RELOC_NUMBER (R_CR16_SWITCH32, 28)
- RELOC_NUMBER (R_CR16_GOT_REGREL20, 29)
- RELOC_NUMBER (R_CR16_GOTC_REGREL20, 30)
- RELOC_NUMBER (R_CR16_GLOB_DAT, 31)
-END_RELOC_NUMBERS(R_CR16_MAX)
-
-#endif /* _ELF_CR16_H */
diff --git a/include/elf/cr16c.h b/include/elf/cr16c.h
deleted file mode 100644
index dbefb0ab6..000000000
--- a/include/elf/cr16c.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* CR16C ELF support for BFD.
- Copyright 2004, 2008, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_CR16C_H
-#define _ELF_CR16C_H
-
-#include "bfd.h"
-#include "elf/reloc-macros.h"
-
-/* Creating indices for reloc_map_index array. */
-START_RELOC_NUMBERS (elf_cr16c_reloc_type)
- RELOC_NUMBER (RINDEX_16C_NUM08, 0)
- RELOC_NUMBER (RINDEX_16C_NUM08_C, 1)
- RELOC_NUMBER (RINDEX_16C_NUM16, 2)
- RELOC_NUMBER (RINDEX_16C_NUM16_C, 3)
- RELOC_NUMBER (RINDEX_16C_NUM32, 4)
- RELOC_NUMBER (RINDEX_16C_NUM32_C, 5)
- RELOC_NUMBER (RINDEX_16C_DISP04, 6)
- RELOC_NUMBER (RINDEX_16C_DISP04_C, 7)
- RELOC_NUMBER (RINDEX_16C_DISP08, 8)
- RELOC_NUMBER (RINDEX_16C_DISP08_C, 9)
- RELOC_NUMBER (RINDEX_16C_DISP16, 10)
- RELOC_NUMBER (RINDEX_16C_DISP16_C, 11)
- RELOC_NUMBER (RINDEX_16C_DISP24, 12)
- RELOC_NUMBER (RINDEX_16C_DISP24_C, 13)
- RELOC_NUMBER (RINDEX_16C_DISP24a, 14)
- RELOC_NUMBER (RINDEX_16C_DISP24a_C, 15)
- RELOC_NUMBER (RINDEX_16C_REG04, 16)
- RELOC_NUMBER (RINDEX_16C_REG04_C, 17)
- RELOC_NUMBER (RINDEX_16C_REG04a, 18)
- RELOC_NUMBER (RINDEX_16C_REG04a_C, 19)
- RELOC_NUMBER (RINDEX_16C_REG14, 20)
- RELOC_NUMBER (RINDEX_16C_REG14_C, 21)
- RELOC_NUMBER (RINDEX_16C_REG16, 22)
- RELOC_NUMBER (RINDEX_16C_REG16_C, 23)
- RELOC_NUMBER (RINDEX_16C_REG20, 24)
- RELOC_NUMBER (RINDEX_16C_REG20_C, 25)
- RELOC_NUMBER (RINDEX_16C_ABS20, 26)
- RELOC_NUMBER (RINDEX_16C_ABS20_C, 27)
- RELOC_NUMBER (RINDEX_16C_ABS24, 28)
- RELOC_NUMBER (RINDEX_16C_ABS24_C, 29)
- RELOC_NUMBER (RINDEX_16C_IMM04, 30)
- RELOC_NUMBER (RINDEX_16C_IMM04_C, 31)
- RELOC_NUMBER (RINDEX_16C_IMM16, 32)
- RELOC_NUMBER (RINDEX_16C_IMM16_C, 33)
- RELOC_NUMBER (RINDEX_16C_IMM20, 34)
- RELOC_NUMBER (RINDEX_16C_IMM20_C, 35)
- RELOC_NUMBER (RINDEX_16C_IMM24, 36)
- RELOC_NUMBER (RINDEX_16C_IMM24_C, 37)
- RELOC_NUMBER (RINDEX_16C_IMM32, 38)
- RELOC_NUMBER (RINDEX_16C_IMM32_C, 39)
-END_RELOC_NUMBERS (RINDEX_16C_MAX)
-
-/* CR16C Relocation Types ('cr_reloc_type' entry in the reloc_map structure).
- The relocation constant name is determined as follows :
-
- R_16C_<format><size>[_C]
-
- Where :
-
- <format> is one of the following:
- NUM - R_NUMBER mnemonic,
- DISP - R_16C_DISPL mnemonic,
- REG - R_16C_REGREL mnemonic,
- ABS - R_16C_ABS mnemonic,
- IMM - R_16C_IMMED mnemonic,
- <size> stands for R_S_16C_<size>
- _C means 'code label' and is only added when R_ADDRTYPE subfield
- is of type R_CODE_ADDR. */
-
-/* The table below shows what the hex digits in the definition of the
- relocation type constants correspond to.
- ------------------------------------------------------------------
- R_SIZESP R_FORMAT R_RELTO R_ADDRTYPE
- ------------------------------------------------------------------ */
-/* R_S_16C_08 R_NUMBER R_ABS R_ADDRESS */
-#define R_16C_NUM08 0X0001
-
-/* R_S_16C_08 R_NUMBER R_ABS R_CODE_ADDR */
-#define R_16C_NUM08_C 0X0006
-
-/* R_S_16C_16 R_NUMBER R_ABS R_ADDRESS */
-#define R_16C_NUM16 0X1001
-
-/* R_S_16C_16 R_NUMBER R_ABS R_CODE_ADDR */
-#define R_16C_NUM16_C 0X1006
-
-/* R_S_16C_32 R_NUMBER R_ABS R_ADDRESS */
-#define R_16C_NUM32 0X2001
-
-/* R_S_16C_32 R_NUMBER R_ABS R_CODE_ADDR */
-#define R_16C_NUM32_C 0X2006
-
-/* R_S_16C_04 R_16C_DISPL R_PCREL R_ADDRESS */
-#define R_16C_DISP04 0X5411
-
-/* R_S_16C_04 R_16C_DISPL R_PCREL R_CODE_ADDR */
-#define R_16C_DISP04_C 0X5416
-
-/* R_S_16C_08 R_16C_DISPL R_PCREL R_ADDRESS */
-#define R_16C_DISP08 0X0411
-
-/* R_S_16C_08 R_16C_DISPL R_PCREL R_CODE_ADDR */
-#define R_16C_DISP08_C 0X0416
-
-/* R_S_16C_16 R_16C_DISPL R_PCREL R_ADDRESS */
-#define R_16C_DISP16 0X1411
-
-/* R_S_16C_16 R_16C_DISPL R_PCREL R_CODE_ADDR */
-#define R_16C_DISP16_C 0X1416
-
-/* R_S_16C_24 R_16C_DISPL R_PCREL R_ADDRESS */
-#define R_16C_DISP24 0X7411
-
-/* R_S_16C_24 R_16C_DISPL R_PCREL R_CODE_ADDR */
-#define R_16C_DISP24_C 0X7416
-
-/* R_S_16C_24a R_16C_DISPL R_PCREL R_ADDRESS */
-#define R_16C_DISP24a 0X6411
-
-/* R_S_16C_24a R_16C_DISPL R_PCREL R_CODE_ADDR */
-#define R_16C_DISP24a_C 0X6416
-
-/* R_S_16C_04 R_16C_REGREL R_ABS R_ADDRESS */
-#define R_16C_REG04 0X5201
-
-/* R_S_16C_04 R_16C_REGREL R_ABS R_CODE_ADDR */
-#define R_16C_REG04_C 0X5206
-
-/* R_S_16C_04_a R_16C_REGREL R_ABS R_ADDRESS */
-#define R_16C_REG04a 0X4201
-
-/* R_S_16C_04_a R_16C_REGREL R_ABS R_CODE_ADDR */
-#define R_16C_REG04a_C 0X4206
-
-/* R_S_16C_14 R_16C_REGREL R_ABS R_ADDRESS */
-#define R_16C_REG14 0X3201
-
-/* R_S_16C_14 R_16C_REGREL R_ABS R_CODE_ADDR */
-#define R_16C_REG14_C 0X3206
-
-/* R_S_16C_16 R_16C_REGREL R_ABS R_ADDRESS */
-#define R_16C_REG16 0X1201
-
-/* R_S_16C_16 R_16C_REGREL R_ABS R_CODE_ADDR */
-#define R_16C_REG16_C 0X1206
-
-/* R_S_16C_20 R_16C_REGREL R_ABS R_ADDRESS */
-#define R_16C_REG20 0X8201
-
-/* R_S_16C_20 R_16C_REGREL R_ABS R_CODE_ADDR */
-#define R_16C_REG20_C 0X8206
-
-/* R_S_16C_20 R_16C_ABS R_ABS R_ADDRESS */
-#define R_16C_ABS20 0X8101
-
-/* R_S_16C_20 R_16C_ABS R_ABS R_CODE_ADDR */
-#define R_16C_ABS20_C 0X8106
-
-/* R_S_16C_24 R_16C_ABS R_ABS R_ADDRESS */
-#define R_16C_ABS24 0X7101
-
-/* R_S_16C_24 R_16C_ABS R_ABS R_CODE_ADDR */
-#define R_16C_ABS24_C 0X7106
-
-/* R_S_16C_04 R_16C_IMMED R_ABS R_ADDRESS */
-#define R_16C_IMM04 0X5301
-
-/* R_S_16C_04 R_16C_IMMED R_ABS R_CODE_ADDR */
-#define R_16C_IMM04_C 0X5306
-
-/* R_S_16C_16 R_16C_IMMED R_ABS R_ADDRESS */
-#define R_16C_IMM16 0X1301
-
-/* R_S_16C_16 R_16C_IMMED R_ABS R_CODE_ADDR */
-#define R_16C_IMM16_C 0X1306
-
-/* R_S_16C_20 R_16C_IMMED R_ABS R_ADDRESS */
-#define R_16C_IMM20 0X8301
-
-/* R_S_16C_20 R_16C_IMMED R_ABS R_CODE_ADDR */
-#define R_16C_IMM20_C 0X8306
-
-/* R_S_16C_24 R_16C_IMMED R_ABS R_ADDRESS */
-#define R_16C_IMM24 0X7301
-
-/* R_S_16C_24 R_16C_IMMED R_ABS R_CODE_ADDR */
-#define R_16C_IMM24_C 0X7306
-
-/* R_S_16C_32 R_16C_IMMED R_ABS R_ADDRESS */
-#define R_16C_IMM32 0X2301
-
-/* R_S_16C_32 R_16C_IMMED R_ABS R_CODE_ADDR */
-#define R_16C_IMM32_C 0X2306
-
-
-/* Relocation item type. */
-#define R_ADDRTYPE 0x000f
-#define R_ADDRESS 0x0001 /* Take address of symbol. */
-#define R_CODE_ADDR 0x0006 /* Take address of symbol divided by 2. */
-
-/* Relocation action. */
-#define R_RELTO 0x00f0
-#define R_ABS 0x0000 /* Keep symbol's address as such. */
-#define R_PCREL 0x0010 /* Subtract the pc address of hole. */
-
-/* Relocation item data format. */
-#define R_FORMAT 0x0f00
-#define R_NUMBER 0x0000 /* Retain as two's complement value. */
-#define R_16C_DISPL 0x0400 /* CR16C displacement type. */
-#define R_16C_ABS 0x0100 /* CR16C absolute type. */
-#define R_16C_REGREL 0x0200 /* CR16C register-relative type. */
-#define R_16C_IMMED 0x0300 /* CR16C immediate type. */
-
-/* Relocation item size. */
-#define R_SIZESP 0xf000
-#define R_S_16C_04 0x5000
-#define R_S_16C_04_a 0x4000
-#define R_S_16C_08 0x0000
-#define R_S_16C_14 0x3000
-#define R_S_16C_16 0x1000
-#define R_S_16C_20 0x8000
-#define R_S_16C_24_a 0x6000
-#define R_S_16C_24 0x7000
-#define R_S_16C_32 0x2000
-
-
-/* Processor specific section indices. These sections do not actually
- exist. Symbols with a st_shndx field corresponding to one of these
- values have a special meaning. */
-
-/* Far common symbol. */
-#define SHN_CR16C_FCOMMON SHN_LORESERVE
-#define SHN_CR16C_NCOMMON (SHN_LORESERVE + 1)
-
-typedef struct reloc_map
-{
- unsigned short cr_reloc_type; /* CR relocation type. */
- bfd_reloc_code_real_type bfd_reloc_enum; /* BFD relocation enum. */
-} RELOC_MAP;
-
-#endif /* _ELF_CR16C_H */
diff --git a/include/elf/cris.h b/include/elf/cris.h
deleted file mode 100644
index 5889a90d0..000000000
--- a/include/elf/cris.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/* CRIS ELF support for BFD.
- Copyright 2000, 2001, 2004, 2010 Free Software Foundation, Inc.
- Contributed by Axis Communications AB, Lund, Sweden.
- Written by Hans-Peter Nilsson.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_CRIS_H
-#define _ELF_CRIS_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_cris_reloc_type)
- RELOC_NUMBER (R_CRIS_NONE, 0)
- RELOC_NUMBER (R_CRIS_8, 1)
- RELOC_NUMBER (R_CRIS_16, 2)
- RELOC_NUMBER (R_CRIS_32, 3)
-
- /* The "PC" position is the location right after the relocation. */
- RELOC_NUMBER (R_CRIS_8_PCREL, 4)
- RELOC_NUMBER (R_CRIS_16_PCREL, 5)
- RELOC_NUMBER (R_CRIS_32_PCREL, 6)
-
- RELOC_NUMBER (R_CRIS_GNU_VTINHERIT, 7)
- RELOC_NUMBER (R_CRIS_GNU_VTENTRY, 8)
-
- /* Copy contents at dynlinking. Generated by the linker.
- The BFD equivalent is BFD_RELOC_CRIS_COPY. */
- RELOC_NUMBER (R_CRIS_COPY, 9)
-
- /* Create GOT entry. Generated by the linker.
- The BFD equivalent is BFD_RELOC_CRIS_GLOB_DAT. */
- RELOC_NUMBER (R_CRIS_GLOB_DAT, 10)
-
- /* Create PLT entry. Generated by the linker.
- The BFD equivalent is BFD_RELOC_CRIS_JUMP_SLOT. */
- RELOC_NUMBER (R_CRIS_JUMP_SLOT, 11)
-
- /* Adjust by program base. Generated by the linker.
- The BFD equivalent is BFD_RELOC_CRIS_RELATIVE. */
- RELOC_NUMBER (R_CRIS_RELATIVE, 12)
-
- /* A 16-bit offset to entry in GOT and request to create GOT entry for
- that symbol.
- The BFD equivalent is BFD_RELOC_CRIS_16_GOT. */
- RELOC_NUMBER (R_CRIS_16_GOT, 13)
-
- /* A 32-bit offset to entry in GOT and request to create GOT entry for
- that symbol.
- The BFD equivalent is BFD_RELOC_CRIS_32_GOT. */
- RELOC_NUMBER (R_CRIS_32_GOT, 14)
-
- /* A 16-bit offset to entry in PLT part of GOT and request to create PLT
- entry for that symbol.
- The BFD equivalent is BFD_RELOC_CRIS_16_GOTPLT. */
- RELOC_NUMBER (R_CRIS_16_GOTPLT, 15)
-
- /* A 32-bit offset to entry in PLT part of GOT and request to create PLT
- entry for that symbol.
- The BFD equivalent is BFD_RELOC_CRIS_32_GOTPLT. */
- RELOC_NUMBER (R_CRIS_32_GOTPLT, 16)
-
- /* A 32-bit offset from GOT to (local) symbol: no GOT entry should be
- necessary.
- The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */
- RELOC_NUMBER (R_CRIS_32_GOTREL, 17)
-
- /* A 32-bit offset from GOT to entry for this symbol in PLT and request
- to create PLT entry for symbol.
- The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */
- RELOC_NUMBER (R_CRIS_32_PLT_GOTREL, 18)
-
- /* A 32-bit offset from location after this relocation (addend specifies
- offset) to entry for this symbol in PLT and request to create PLT
- entry for symbol.
- The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL. */
- RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19)
-
- /* An assembler-generated-only relocation, instructing the linker to
- reserve two GOT slots, carrying the R_CRIS_DTP relocation for the
- symbol (pointing to the first slot, the relocation fills in
- both). The value is a 32-bit-value, relative to the start of the
- GOT. Assembly syntax: "sym:GDGOTREL". */
- RELOC_NUMBER (R_CRIS_32_GOT_GD, 20)
-
- /* Similar to R_CRIS_32_GOT_GD, but the value is a 16-bit unsigned
- number, limiting access to 65536/4 global symbols per module (or
- 65536/8 thread variables; loosely speaking G*4+T*8 < 65536, where
- T is the number of thread variables and G is the number of other
- external global variables and functions). Assembly syntax:
- "sym:GDGOTREL16". */
- RELOC_NUMBER (R_CRIS_16_GOT_GD, 21)
-
- /* Similar to R_CRIS_32_GOT_GD, but the value is the absolute
- address of the GOT entry. Disallowed in DSOs created with
- -shared. Assembly syntax: "sym:GD". */
- RELOC_NUMBER (R_CRIS_32_GD, 22)
-
- /* A linker-generated-only relocation, instructing the dynamic
- linker to fill in the module ID and module-relative-TLS-block
- offset of the symbol in question, used for GOT entries. Note
- that this relocation instructs to fill in two 32-bit values. */
- RELOC_NUMBER (R_CRIS_DTP, 23)
-
- /* An assembler-generated-only relocation, instructing the linker to
- reserve the first two GOT slots, and attach the R_CRIS_DTPMOD
- relocation(*) for the module to the first slot, the second
- containing zero. The value is 32 bits, the offset from the start
- of the TLS block of the module to the thread-local symbol
- mentioned in the relocation. This relocation must only be applied
- to module-local symbols. Assembly syntax: "expr:DTPREL". */
- RELOC_NUMBER (R_CRIS_32_DTPREL, 24)
-
- /* Similar to R_CRIS_32_DTPREL, but the value is a 16-bit signed
- number, limiting the size of thread-variables of the DSO to 32768
- bytes. (Note: matches both model 1 and 2 and allows use of addo.w
- as the instruction where this relocation is used.) Assembly
- syntax: "expr:DTPREL16". */
- RELOC_NUMBER (R_CRIS_16_DTPREL, 25)
-
- /* An assembler-generated-only relocation, instructing the linker to
- reserve a GOT slot and attach the R_CRIS_32_TPREL relocation for
- the symbol in question. The value is 32 bits, which is the
- GOT-relative offset of the slot. Assembly syntax:
- "sym:TPOFFGOT". */
- RELOC_NUMBER (R_CRIS_32_GOT_TPREL, 26)
-
- /* Similar to R_CRIS_32_TPREL, but the value is a 16-bit positive
- number, limiting the number of thread- and global variables of
- the DSO to 32768/4. Assembly syntax: "sym:TPOFFGOT16". */
- RELOC_NUMBER (R_CRIS_16_GOT_TPREL, 27)
-
- /* An assembler- and linker-generated relocation, instructing to
- resolve the symbol in question yielding the TLS offset of the
- thread variable, relative to the global TLS block. Not allowed
- as input when generating a DSO. Assembly syntax:
- "expr:TPOFF". */
- RELOC_NUMBER (R_CRIS_32_TPREL, 28)
-
- /* Similar to R_CRIS_32_TPREL, but only applicable to executables
- compiled with -msmall-tls. Not allowed in a DSO. The value is a
- 16-bit signed number, limiting the size of thread-variables of
- the executable to 32768 bytes. (Note: being signed makes it match
- both model 1 and 2 and allows use of addo.w as the instruction
- where this relocation is applied.) Assembly syntax:
- "expr:TPOFF16". */
- RELOC_NUMBER (R_CRIS_16_TPREL, 29)
-
- /* A linker-generated-only relocation, instructing the dynamic
- linker to fill in the current module ID, used for GOT entries
- (usually the fourth one). */
- RELOC_NUMBER (R_CRIS_DTPMOD, 30)
-
- /* Similar to R_CRIS_32_GOT_TPREL, but the value is the absolute
- address of the GOT entry. Disallowed in DSOs created with
- -shared. Assembly syntax: "sym:IE". */
- RELOC_NUMBER (R_CRIS_32_IE, 31)
-
- /* No other relocs must be visible outside the assembler. */
-
-END_RELOC_NUMBERS (R_CRIS_max)
-
-/* User symbols in this file have a leading underscore. */
-#define EF_CRIS_UNDERSCORE 0x00000001
-
-/* This is a mask for different incompatible machine variants. */
-#define EF_CRIS_VARIANT_MASK 0x0000000e
-
-/* Variant 0; may contain v0..10 object. */
-#define EF_CRIS_VARIANT_ANY_V0_V10 0x00000000
-
-/* Variant 1; contains v32 object. */
-#define EF_CRIS_VARIANT_V32 0x00000002
-
-/* Variant 2; contains object compatible with v32 and v10. */
-#define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004
-
-#endif /* _ELF_CRIS_H */
diff --git a/include/elf/crx.h b/include/elf/crx.h
deleted file mode 100644
index 38428f297..000000000
--- a/include/elf/crx.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* CRX ELF support for BFD.
- Copyright 2004, 2010 Free Software Foundation, Inc.
- Contributed by Tomer Levi, NSC, Israel.
- Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
- Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_CRX_H
-#define _ELF_CRX_H
-
-#include "elf/reloc-macros.h"
-
-/* Creating indices for reloc_map_index array. */
-START_RELOC_NUMBERS(elf_crx_reloc_type)
- RELOC_NUMBER (R_CRX_NONE, 0)
- RELOC_NUMBER (R_CRX_REL4, 1)
- RELOC_NUMBER (R_CRX_REL8, 2)
- RELOC_NUMBER (R_CRX_REL8_CMP, 3)
- RELOC_NUMBER (R_CRX_REL16, 4)
- RELOC_NUMBER (R_CRX_REL24, 5)
- RELOC_NUMBER (R_CRX_REL32, 6)
- RELOC_NUMBER (R_CRX_REGREL12, 7)
- RELOC_NUMBER (R_CRX_REGREL22, 8)
- RELOC_NUMBER (R_CRX_REGREL28, 9)
- RELOC_NUMBER (R_CRX_REGREL32, 10)
- RELOC_NUMBER (R_CRX_ABS16, 11)
- RELOC_NUMBER (R_CRX_ABS32, 12)
- RELOC_NUMBER (R_CRX_NUM8, 13)
- RELOC_NUMBER (R_CRX_NUM16, 14)
- RELOC_NUMBER (R_CRX_NUM32, 15)
- RELOC_NUMBER (R_CRX_IMM16, 16)
- RELOC_NUMBER (R_CRX_IMM32, 17)
- RELOC_NUMBER (R_CRX_SWITCH8, 18)
- RELOC_NUMBER (R_CRX_SWITCH16, 19)
- RELOC_NUMBER (R_CRX_SWITCH32, 20)
-END_RELOC_NUMBERS(R_CRX_MAX)
-
-#endif /* _ELF_CRX_H */
diff --git a/include/elf/d10v.h b/include/elf/d10v.h
deleted file mode 100644
index 5850b3740..000000000
--- a/include/elf/d10v.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* d10v ELF support for BFD.
- Copyright 1998, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_D10V_H
-#define _ELF_D10V_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_d10v_reloc_type)
- RELOC_NUMBER (R_D10V_NONE, 0)
- RELOC_NUMBER (R_D10V_10_PCREL_R, 1)
- RELOC_NUMBER (R_D10V_10_PCREL_L, 2)
- RELOC_NUMBER (R_D10V_16, 3)
- RELOC_NUMBER (R_D10V_18, 4)
- RELOC_NUMBER (R_D10V_18_PCREL, 5)
- RELOC_NUMBER (R_D10V_32, 6)
- RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7)
- RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8)
-END_RELOC_NUMBERS (R_D10V_max)
-
-#endif
diff --git a/include/elf/d30v.h b/include/elf/d30v.h
deleted file mode 100644
index 8174a40e0..000000000
--- a/include/elf/d30v.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* d30v ELF support for BFD.
- Copyright 1998, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_D30V_H
-#define _ELF_D30V_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_d30v_reloc_type)
- RELOC_NUMBER (R_D30V_NONE, 0)
- RELOC_NUMBER (R_D30V_6, 1)
- RELOC_NUMBER (R_D30V_9_PCREL, 2)
- RELOC_NUMBER (R_D30V_9_PCREL_R, 3)
- RELOC_NUMBER (R_D30V_15, 4)
- RELOC_NUMBER (R_D30V_15_PCREL, 5)
- RELOC_NUMBER (R_D30V_15_PCREL_R, 6)
- RELOC_NUMBER (R_D30V_21, 7)
- RELOC_NUMBER (R_D30V_21_PCREL, 8)
- RELOC_NUMBER (R_D30V_21_PCREL_R, 9)
- RELOC_NUMBER (R_D30V_32, 10)
- RELOC_NUMBER (R_D30V_32_PCREL, 11)
- RELOC_NUMBER (R_D30V_32_NORMAL, 12)
-END_RELOC_NUMBERS (R_D30V_max)
-
-#endif
diff --git a/include/elf/dlx.h b/include/elf/dlx.h
deleted file mode 100644
index 7d61633c2..000000000
--- a/include/elf/dlx.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* DLX support for BFD.
- Copyright 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_DLX_H
-#define _ELF_DLX_H
-
-#include "elf/reloc-macros.h"
-
-#if 0
-START_RELOC_NUMBERS (elf_dlx_reloc_type)
- RELOC_NUMBER (R_DLX_NONE, 0)
- RELOC_NUMBER (R_DLX_RELOC_16, 1)
- RELOC_NUMBER (R_DLX_RELOC_26, 2)
- RELOC_NUMBER (R_DLX_RELOC_32, 3)
- RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4)
- RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5)
- RELOC_NUMBER (R_DLX_RELOC_16_HI, 6)
- RELOC_NUMBER (R_DLX_RELOC_16_LO, 7)
- RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8)
- RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9)
-END_RELOC_NUMBERS (R_DLX_max)
-#else
-START_RELOC_NUMBERS (elf_dlx_reloc_type)
- RELOC_NUMBER (R_DLX_NONE, 0)
- RELOC_NUMBER (R_DLX_RELOC_8, 1)
- RELOC_NUMBER (R_DLX_RELOC_16, 2)
- RELOC_NUMBER (R_DLX_RELOC_32, 3)
- RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4)
- RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5)
- RELOC_NUMBER (R_DLX_RELOC_16_HI, 6)
- RELOC_NUMBER (R_DLX_RELOC_16_LO, 7)
- RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8)
- RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9)
-END_RELOC_NUMBERS (R_DLX_max)
-#endif /* 0 */
-
-#endif /* _ELF_DLX_H */
diff --git a/include/elf/dwarf.h b/include/elf/dwarf.h
deleted file mode 100644
index c2e6a67e8..000000000
--- a/include/elf/dwarf.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/* Declarations and definitions of codes relating to the DWARF symbolic
- debugging information format.
-
- Written by Ron Guilmette (rfg@netcom.com)
-
- Copyright 1992, 1993, 1995, 1999, 2005, 2010 Free Software Foundation, Inc.
-
- This file is part of both GCC and the BFD 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 3 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 GCC; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file is derived from the DWARF specification (a public document)
- Revision 1.0.1 (April 8, 1992) developed by the UNIX International
- Programming Languages Special Interest Group (UI/PLSIG) and distributed
- by UNIX International. Copies of this specification are available from
- UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */
-
-#ifndef _ELF_DWARF_H
-#define _ELF_DWARF_H
-
-/* Tag names and codes. */
-
-enum dwarf_tag {
- TAG_padding = 0x0000,
- TAG_array_type = 0x0001,
- TAG_class_type = 0x0002,
- TAG_entry_point = 0x0003,
- TAG_enumeration_type = 0x0004,
- TAG_formal_parameter = 0x0005,
- TAG_global_subroutine = 0x0006,
- TAG_global_variable = 0x0007,
- /* 0x0008 -- reserved */
- /* 0x0009 -- reserved */
- TAG_label = 0x000a,
- TAG_lexical_block = 0x000b,
- TAG_local_variable = 0x000c,
- TAG_member = 0x000d,
- /* 0x000e -- reserved */
- TAG_pointer_type = 0x000f,
- TAG_reference_type = 0x0010,
- TAG_compile_unit = 0x0011,
- TAG_string_type = 0x0012,
- TAG_structure_type = 0x0013,
- TAG_subroutine = 0x0014,
- TAG_subroutine_type = 0x0015,
- TAG_typedef = 0x0016,
- TAG_union_type = 0x0017,
- TAG_unspecified_parameters = 0x0018,
- TAG_variant = 0x0019,
- TAG_common_block = 0x001a,
- TAG_common_inclusion = 0x001b,
- TAG_inheritance = 0x001c,
- TAG_inlined_subroutine = 0x001d,
- TAG_module = 0x001e,
- TAG_ptr_to_member_type = 0x001f,
- TAG_set_type = 0x0020,
- TAG_subrange_type = 0x0021,
- TAG_with_stmt = 0x0022,
-
- /* GNU extensions */
-
- TAG_format_label = 0x8000, /* for FORTRAN 77 and Fortran 90 */
- TAG_namelist = 0x8001, /* For Fortran 90 */
- TAG_function_template = 0x8002, /* for C++ */
- TAG_class_template = 0x8003 /* for C++ */
-};
-
-#define TAG_lo_user 0x8000 /* implementation-defined range start */
-#define TAG_hi_user 0xffff /* implementation-defined range end */
-#define TAG_source_file TAG_compile_unit /* for backward compatibility */
-
-/* Form names and codes. */
-
-enum dwarf_form {
- FORM_ADDR = 0x1,
- FORM_REF = 0x2,
- FORM_BLOCK2 = 0x3,
- FORM_BLOCK4 = 0x4,
- FORM_DATA2 = 0x5,
- FORM_DATA4 = 0x6,
- FORM_DATA8 = 0x7,
- FORM_STRING = 0x8
-};
-
-/* Attribute names and codes. */
-
-enum dwarf_attribute {
- AT_sibling = (0x0010|FORM_REF),
- AT_location = (0x0020|FORM_BLOCK2),
- AT_name = (0x0030|FORM_STRING),
- AT_fund_type = (0x0050|FORM_DATA2),
- AT_mod_fund_type = (0x0060|FORM_BLOCK2),
- AT_user_def_type = (0x0070|FORM_REF),
- AT_mod_u_d_type = (0x0080|FORM_BLOCK2),
- AT_ordering = (0x0090|FORM_DATA2),
- AT_subscr_data = (0x00a0|FORM_BLOCK2),
- AT_byte_size = (0x00b0|FORM_DATA4),
- AT_bit_offset = (0x00c0|FORM_DATA2),
- AT_bit_size = (0x00d0|FORM_DATA4),
- /* (0x00e0|FORM_xxxx) -- reserved */
- AT_element_list = (0x00f0|FORM_BLOCK4),
- AT_stmt_list = (0x0100|FORM_DATA4),
- AT_low_pc = (0x0110|FORM_ADDR),
- AT_high_pc = (0x0120|FORM_ADDR),
- AT_language = (0x0130|FORM_DATA4),
- AT_member = (0x0140|FORM_REF),
- AT_discr = (0x0150|FORM_REF),
- AT_discr_value = (0x0160|FORM_BLOCK2),
- /* (0x0170|FORM_xxxx) -- reserved */
- /* (0x0180|FORM_xxxx) -- reserved */
- AT_string_length = (0x0190|FORM_BLOCK2),
- AT_common_reference = (0x01a0|FORM_REF),
- AT_comp_dir = (0x01b0|FORM_STRING),
- AT_const_value_string = (0x01c0|FORM_STRING),
- AT_const_value_data2 = (0x01c0|FORM_DATA2),
- AT_const_value_data4 = (0x01c0|FORM_DATA4),
- AT_const_value_data8 = (0x01c0|FORM_DATA8),
- AT_const_value_block2 = (0x01c0|FORM_BLOCK2),
- AT_const_value_block4 = (0x01c0|FORM_BLOCK4),
- AT_containing_type = (0x01d0|FORM_REF),
- AT_default_value_addr = (0x01e0|FORM_ADDR),
- AT_default_value_data2 = (0x01e0|FORM_DATA2),
- AT_default_value_data4 = (0x01e0|FORM_DATA4),
- AT_default_value_data8 = (0x01e0|FORM_DATA8),
- AT_default_value_string = (0x01e0|FORM_STRING),
- AT_friends = (0x01f0|FORM_BLOCK2),
- AT_inline = (0x0200|FORM_STRING),
- AT_is_optional = (0x0210|FORM_STRING),
- AT_lower_bound_ref = (0x0220|FORM_REF),
- AT_lower_bound_data2 = (0x0220|FORM_DATA2),
- AT_lower_bound_data4 = (0x0220|FORM_DATA4),
- AT_lower_bound_data8 = (0x0220|FORM_DATA8),
- AT_private = (0x0240|FORM_STRING),
- AT_producer = (0x0250|FORM_STRING),
- AT_program = (0x0230|FORM_STRING),
- AT_protected = (0x0260|FORM_STRING),
- AT_prototyped = (0x0270|FORM_STRING),
- AT_public = (0x0280|FORM_STRING),
- AT_pure_virtual = (0x0290|FORM_STRING),
- AT_return_addr = (0x02a0|FORM_BLOCK2),
- AT_abstract_origin = (0x02b0|FORM_REF),
- AT_start_scope = (0x02c0|FORM_DATA4),
- AT_stride_size = (0x02e0|FORM_DATA4),
- AT_upper_bound_ref = (0x02f0|FORM_REF),
- AT_upper_bound_data2 = (0x02f0|FORM_DATA2),
- AT_upper_bound_data4 = (0x02f0|FORM_DATA4),
- AT_upper_bound_data8 = (0x02f0|FORM_DATA8),
- AT_virtual = (0x0300|FORM_STRING),
-
- /* GNU extensions. */
-
- AT_sf_names = (0x8000|FORM_DATA4),
- AT_src_info = (0x8010|FORM_DATA4),
- AT_mac_info = (0x8020|FORM_DATA4),
- AT_src_coords = (0x8030|FORM_DATA4),
- AT_body_begin = (0x8040|FORM_ADDR),
- AT_body_end = (0x8050|FORM_ADDR)
-};
-
-#define AT_lo_user 0x2000 /* implementation-defined range start */
-#define AT_hi_user 0x3ff0 /* implementation-defined range end */
-
-/* Location atom names and codes. */
-
-enum dwarf_location_atom {
- OP_REG = 0x01,
- OP_BASEREG = 0x02,
- OP_ADDR = 0x03,
- OP_CONST = 0x04,
- OP_DEREF2 = 0x05,
- OP_DEREF4 = 0x06,
- OP_ADD = 0x07,
-
- /* GNU extensions. */
-
- OP_MULT = 0x80
-};
-
-#define OP_LO_USER 0x80 /* implementation-defined range start */
-#define OP_HI_USER 0xff /* implementation-defined range end */
-
-/* Fundamental type names and codes. */
-
-enum dwarf_fundamental_type {
- FT_char = 0x0001,
- FT_signed_char = 0x0002,
- FT_unsigned_char = 0x0003,
- FT_short = 0x0004,
- FT_signed_short = 0x0005,
- FT_unsigned_short = 0x0006,
- FT_integer = 0x0007,
- FT_signed_integer = 0x0008,
- FT_unsigned_integer = 0x0009,
- FT_long = 0x000a,
- FT_signed_long = 0x000b,
- FT_unsigned_long = 0x000c,
- FT_pointer = 0x000d, /* an alias for (void *) */
- FT_float = 0x000e,
- FT_dbl_prec_float = 0x000f,
- FT_ext_prec_float = 0x0010, /* breaks "classic" svr4 SDB */
- FT_complex = 0x0011, /* breaks "classic" svr4 SDB */
- FT_dbl_prec_complex = 0x0012, /* breaks "classic" svr4 SDB */
- /* 0x0013 -- reserved */
- FT_void = 0x0014,
- FT_boolean = 0x0015, /* breaks "classic" svr4 SDB */
- FT_ext_prec_complex = 0x0016, /* breaks "classic" svr4 SDB */
- FT_label = 0x0017,
-
- /* GNU extensions
- The low order byte must indicate the size (in bytes) for the type.
- All of these types will probably break "classic" svr4 SDB. */
-
- FT_long_long = 0x8008,
- FT_signed_long_long = 0x8108,
- FT_unsigned_long_long = 0x8208,
-
- FT_int8 = 0x9001,
- FT_signed_int8 = 0x9101,
- FT_unsigned_int8 = 0x9201,
- FT_int16 = 0x9302,
- FT_signed_int16 = 0x9402,
- FT_unsigned_int16 = 0x9502,
- FT_int32 = 0x9604,
- FT_signed_int32 = 0x9704,
- FT_unsigned_int32 = 0x9804,
- FT_int64 = 0x9908,
- FT_signed_int64 = 0x9a08,
- FT_unsigned_int64 = 0x9b08,
- FT_int128 = 0x9c10,
- FT_signed_int128 = 0x9d10,
- FT_unsigned_int128 = 0x9e10,
-
- FT_real32 = 0xa004,
- FT_real64 = 0xa108,
- FT_real96 = 0xa20c,
- FT_real128 = 0xa310
-};
-
-#define FT_lo_user 0x8000 /* implementation-defined range start */
-#define FT_hi_user 0xffff /* implementation defined range end */
-
-/* Type modifier names and codes. */
-
-enum dwarf_type_modifier {
- MOD_pointer_to = 0x01,
- MOD_reference_to = 0x02,
- MOD_const = 0x03,
- MOD_volatile = 0x04
-};
-
-#define MOD_lo_user 0x80 /* implementation-defined range start */
-#define MOD_hi_user 0xff /* implementation-defined range end */
-
-/* Array ordering names and codes. */
-
-enum dwarf_array_dim_ordering {
- ORD_row_major = 0,
- ORD_col_major = 1
-};
-
-/* Array subscript format names and codes. */
-
-enum dwarf_subscr_data_formats {
- FMT_FT_C_C = 0x0,
- FMT_FT_C_X = 0x1,
- FMT_FT_X_C = 0x2,
- FMT_FT_X_X = 0x3,
- FMT_UT_C_C = 0x4,
- FMT_UT_C_X = 0x5,
- FMT_UT_X_C = 0x6,
- FMT_UT_X_X = 0x7,
- FMT_ET = 0x8
-};
-
-/* Derived from above for ease of use. */
-
-#define FMT_CODE(_FUNDAMENTAL_TYPE_P, _LB_CONST_P, _UB_CONST_P) \
- (((_FUNDAMENTAL_TYPE_P) ? 0 : 4) \
- | ((_LB_CONST_P) ? 0 : 2) \
- | ((_UB_CONST_P) ? 0 : 1))
-
-/* Source language names and codes. */
-
-enum dwarf_source_language {
- LANG_C89 = 0x00000001,
- LANG_C = 0x00000002,
- LANG_ADA83 = 0x00000003,
- LANG_C_PLUS_PLUS = 0x00000004,
- LANG_COBOL74 = 0x00000005,
- LANG_COBOL85 = 0x00000006,
- LANG_FORTRAN77 = 0x00000007,
- LANG_FORTRAN90 = 0x00000008,
- LANG_PASCAL83 = 0x00000009,
- LANG_MODULA2 = 0x0000000a,
- LANG_JAVA = 0x0000000b
-};
-
-#define LANG_lo_user 0x00008000 /* implementation-defined range start */
-#define LANG_hi_user 0x0000ffff /* implementation-defined range end */
-
-/* Names and codes for GNU "macinfo" extension. */
-
-enum dwarf_macinfo_record_type {
- MACINFO_start = 's',
- MACINFO_resume = 'r',
- MACINFO_define = 'd',
- MACINFO_undef = 'u'
-};
-
-#endif /* _ELF_DWARF_H */
diff --git a/include/elf/epiphany.h b/include/elf/epiphany.h
deleted file mode 100755
index bb2dcffee..000000000
--- a/include/elf/epiphany.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Adapteva EPIPHANY ELF support for BFD.
- Copyright (C) 2009, 2011 Free Software Foundation, Inc.
- Contributed by Embecosm on behalf of Adapteva, 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_EPIPHANY_H
-#define _ELF_EPIPHANY_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_epiphany_reloc_type)
- RELOC_NUMBER (R_EPIPHANY_NONE, 0)
-
- /* Absolute address relocations. */
- RELOC_NUMBER (R_EPIPHANY_8, 1)
- RELOC_NUMBER (R_EPIPHANY_16, 2)
- RELOC_NUMBER (R_EPIPHANY_32, 3)
-
- /* PC-relative relocations. */
- RELOC_NUMBER (R_EPIPHANY_8_PCREL, 4)
- RELOC_NUMBER (R_EPIPHANY_16_PCREL,5)
- RELOC_NUMBER (R_EPIPHANY_32_PCREL,6)
-
- /* special forms for 8/24 bit branch displacements. */
- RELOC_NUMBER (R_EPIPHANY_SIMM8, 7)
- RELOC_NUMBER (R_EPIPHANY_SIMM24, 8)
-
- /* HIGH and LOW relocations taking part of a 32 bit address and
- depositing it into the IMM16 field of a destination. */
- RELOC_NUMBER (R_EPIPHANY_HIGH, 9)
- RELOC_NUMBER (R_EPIPHANY_LOW,10)
-
- /* 11 bit signed immediate value. */
- RELOC_NUMBER (R_EPIPHANY_SIMM11, 11)
- /* 11 bit magnitude addressing displacement. */
- RELOC_NUMBER (R_EPIPHANY_IMM11, 12)
-
- /* 8 bit immediate for MOV.S R,IMM8. */
- RELOC_NUMBER (R_EPIPHANY_IMM8, 13)
-
-END_RELOC_NUMBERS(R_EPIPHANY_max)
-
-#endif /* _ELF_EPIPHANY_H */
diff --git a/include/elf/external.h b/include/elf/external.h
deleted file mode 100644
index ef7724e94..000000000
--- a/include/elf/external.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* ELF support for BFD.
- Copyright 1991, 1992, 1993, 1995, 1997, 1998, 1999, 2001, 2003, 2005,
- 2008, 2010 Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support, from information published
- in "UNIX System V Release 4, Programmers Guide: ANSI C and
- Programming Support Tools".
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of ELF support for BFD, and contains the portions
- that describe how ELF is represented externally by the BFD library.
- I.E. it describes the in-file representation of ELF. It requires
- the elf/common.h file which contains the portions that are common to
- both the internal and external representations. */
-
-/* The 64-bit stuff is kind of random. Perhaps someone will publish a
- spec someday. */
-
-#ifndef _ELF_EXTERNAL_H
-#define _ELF_EXTERNAL_H
-
-/* Special section indices, which may show up in st_shndx fields, among
- other places. */
-
-#define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */
-#define SHN_LOPROC 0xFF00 /* Begin range of appl-specific */
-#define SHN_HIPROC 0xFF1F /* End range of appl-specific */
-#define SHN_LOOS 0xFF20 /* OS specific semantics, lo */
-#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */
-#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */
-#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */
-#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */
-#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */
-
-/* ELF Header (32-bit implementations) */
-
-typedef struct {
- unsigned char e_ident[16]; /* ELF "magic number" */
- unsigned char e_type[2]; /* Identifies object file type */
- unsigned char e_machine[2]; /* Specifies required architecture */
- unsigned char e_version[4]; /* Identifies object file version */
- unsigned char e_entry[4]; /* Entry point virtual address */
- unsigned char e_phoff[4]; /* Program header table file offset */
- unsigned char e_shoff[4]; /* Section header table file offset */
- unsigned char e_flags[4]; /* Processor-specific flags */
- unsigned char e_ehsize[2]; /* ELF header size in bytes */
- unsigned char e_phentsize[2]; /* Program header table entry size */
- unsigned char e_phnum[2]; /* Program header table entry count */
- unsigned char e_shentsize[2]; /* Section header table entry size */
- unsigned char e_shnum[2]; /* Section header table entry count */
- unsigned char e_shstrndx[2]; /* Section header string table index */
-} Elf32_External_Ehdr;
-
-typedef struct {
- unsigned char e_ident[16]; /* ELF "magic number" */
- unsigned char e_type[2]; /* Identifies object file type */
- unsigned char e_machine[2]; /* Specifies required architecture */
- unsigned char e_version[4]; /* Identifies object file version */
- unsigned char e_entry[8]; /* Entry point virtual address */
- unsigned char e_phoff[8]; /* Program header table file offset */
- unsigned char e_shoff[8]; /* Section header table file offset */
- unsigned char e_flags[4]; /* Processor-specific flags */
- unsigned char e_ehsize[2]; /* ELF header size in bytes */
- unsigned char e_phentsize[2]; /* Program header table entry size */
- unsigned char e_phnum[2]; /* Program header table entry count */
- unsigned char e_shentsize[2]; /* Section header table entry size */
- unsigned char e_shnum[2]; /* Section header table entry count */
- unsigned char e_shstrndx[2]; /* Section header string table index */
-} Elf64_External_Ehdr;
-
-/* Program header */
-
-typedef struct {
- unsigned char p_type[4]; /* Identifies program segment type */
- unsigned char p_offset[4]; /* Segment file offset */
- unsigned char p_vaddr[4]; /* Segment virtual address */
- unsigned char p_paddr[4]; /* Segment physical address */
- unsigned char p_filesz[4]; /* Segment size in file */
- unsigned char p_memsz[4]; /* Segment size in memory */
- unsigned char p_flags[4]; /* Segment flags */
- unsigned char p_align[4]; /* Segment alignment, file & memory */
-} Elf32_External_Phdr;
-
-typedef struct {
- unsigned char p_type[4]; /* Identifies program segment type */
- unsigned char p_flags[4]; /* Segment flags */
- unsigned char p_offset[8]; /* Segment file offset */
- unsigned char p_vaddr[8]; /* Segment virtual address */
- unsigned char p_paddr[8]; /* Segment physical address */
- unsigned char p_filesz[8]; /* Segment size in file */
- unsigned char p_memsz[8]; /* Segment size in memory */
- unsigned char p_align[8]; /* Segment alignment, file & memory */
-} Elf64_External_Phdr;
-
-/* Section header */
-
-typedef struct {
- unsigned char sh_name[4]; /* Section name, index in string tbl */
- unsigned char sh_type[4]; /* Type of section */
- unsigned char sh_flags[4]; /* Miscellaneous section attributes */
- unsigned char sh_addr[4]; /* Section virtual addr at execution */
- unsigned char sh_offset[4]; /* Section file offset */
- unsigned char sh_size[4]; /* Size of section in bytes */
- unsigned char sh_link[4]; /* Index of another section */
- unsigned char sh_info[4]; /* Additional section information */
- unsigned char sh_addralign[4]; /* Section alignment */
- unsigned char sh_entsize[4]; /* Entry size if section holds table */
-} Elf32_External_Shdr;
-
-typedef struct {
- unsigned char sh_name[4]; /* Section name, index in string tbl */
- unsigned char sh_type[4]; /* Type of section */
- unsigned char sh_flags[8]; /* Miscellaneous section attributes */
- unsigned char sh_addr[8]; /* Section virtual addr at execution */
- unsigned char sh_offset[8]; /* Section file offset */
- unsigned char sh_size[8]; /* Size of section in bytes */
- unsigned char sh_link[4]; /* Index of another section */
- unsigned char sh_info[4]; /* Additional section information */
- unsigned char sh_addralign[8]; /* Section alignment */
- unsigned char sh_entsize[8]; /* Entry size if section holds table */
-} Elf64_External_Shdr;
-
-/* Symbol table entry */
-
-typedef struct {
- unsigned char st_name[4]; /* Symbol name, index in string tbl */
- unsigned char st_value[4]; /* Value of the symbol */
- unsigned char st_size[4]; /* Associated symbol size */
- unsigned char st_info[1]; /* Type and binding attributes */
- unsigned char st_other[1]; /* No defined meaning, 0 */
- unsigned char st_shndx[2]; /* Associated section index */
-} Elf32_External_Sym;
-
-typedef struct {
- unsigned char st_name[4]; /* Symbol name, index in string tbl */
- unsigned char st_info[1]; /* Type and binding attributes */
- unsigned char st_other[1]; /* No defined meaning, 0 */
- unsigned char st_shndx[2]; /* Associated section index */
- unsigned char st_value[8]; /* Value of the symbol */
- unsigned char st_size[8]; /* Associated symbol size */
-} Elf64_External_Sym;
-
-typedef struct {
- unsigned char est_shndx[4]; /* Section index */
-} Elf_External_Sym_Shndx;
-
-/* Note segments */
-
-typedef struct {
- unsigned char namesz[4]; /* Size of entry's owner string */
- unsigned char descsz[4]; /* Size of the note descriptor */
- unsigned char type[4]; /* Interpretation of the descriptor */
- char name[1]; /* Start of the name+desc data */
-} Elf_External_Note;
-
-/* Relocation Entries */
-typedef struct {
- unsigned char r_offset[4]; /* Location at which to apply the action */
- unsigned char r_info[4]; /* index and type of relocation */
-} Elf32_External_Rel;
-
-typedef struct {
- unsigned char r_offset[4]; /* Location at which to apply the action */
- unsigned char r_info[4]; /* index and type of relocation */
- unsigned char r_addend[4]; /* Constant addend used to compute value */
-} Elf32_External_Rela;
-
-typedef struct {
- unsigned char r_offset[8]; /* Location at which to apply the action */
- unsigned char r_info[8]; /* index and type of relocation */
-} Elf64_External_Rel;
-
-typedef struct {
- unsigned char r_offset[8]; /* Location at which to apply the action */
- unsigned char r_info[8]; /* index and type of relocation */
- unsigned char r_addend[8]; /* Constant addend used to compute value */
-} Elf64_External_Rela;
-
-/* dynamic section structure */
-
-typedef struct {
- unsigned char d_tag[4]; /* entry tag value */
- union {
- unsigned char d_val[4];
- unsigned char d_ptr[4];
- } d_un;
-} Elf32_External_Dyn;
-
-typedef struct {
- unsigned char d_tag[8]; /* entry tag value */
- union {
- unsigned char d_val[8];
- unsigned char d_ptr[8];
- } d_un;
-} Elf64_External_Dyn;
-
-/* The version structures are currently size independent. They are
- named without a 32 or 64. If that ever changes, these structures
- will need to be renamed. */
-
-/* This structure appears in a SHT_GNU_verdef section. */
-
-typedef struct {
- unsigned char vd_version[2];
- unsigned char vd_flags[2];
- unsigned char vd_ndx[2];
- unsigned char vd_cnt[2];
- unsigned char vd_hash[4];
- unsigned char vd_aux[4];
- unsigned char vd_next[4];
-} Elf_External_Verdef;
-
-/* This structure appears in a SHT_GNU_verdef section. */
-
-typedef struct {
- unsigned char vda_name[4];
- unsigned char vda_next[4];
-} Elf_External_Verdaux;
-
-/* This structure appears in a SHT_GNU_verneed section. */
-
-typedef struct {
- unsigned char vn_version[2];
- unsigned char vn_cnt[2];
- unsigned char vn_file[4];
- unsigned char vn_aux[4];
- unsigned char vn_next[4];
-} Elf_External_Verneed;
-
-/* This structure appears in a SHT_GNU_verneed section. */
-
-typedef struct {
- unsigned char vna_hash[4];
- unsigned char vna_flags[2];
- unsigned char vna_other[2];
- unsigned char vna_name[4];
- unsigned char vna_next[4];
-} Elf_External_Vernaux;
-
-/* This structure appears in a SHT_GNU_versym section. This is not a
- standard ELF structure; ELF just uses Elf32_Half. */
-
-typedef struct {
- unsigned char vs_vers[2];
-} ATTRIBUTE_PACKED Elf_External_Versym;
-
-/* Structure for syminfo section. */
-typedef struct
-{
- unsigned char si_boundto[2];
- unsigned char si_flags[2];
-} Elf_External_Syminfo;
-
-
-/* This structure appears on the stack and in NT_AUXV core file notes. */
-typedef struct
-{
- unsigned char a_type[4];
- unsigned char a_val[4];
-} Elf32_External_Auxv;
-
-typedef struct
-{
- unsigned char a_type[8];
- unsigned char a_val[8];
-} Elf64_External_Auxv;
-
-/* Size of SHT_GROUP section entry. */
-
-#define GRP_ENTRY_SIZE 4
-
-#endif /* _ELF_EXTERNAL_H */
diff --git a/include/elf/fr30.h b/include/elf/fr30.h
deleted file mode 100644
index 918ac977f..000000000
--- a/include/elf/fr30.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* FR30 ELF support for BFD.
- Copyright 1998, 1999, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_FR30_H
-#define _ELF_FR30_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_fr30_reloc_type)
- RELOC_NUMBER (R_FR30_NONE, 0)
- RELOC_NUMBER (R_FR30_8, 1)
- RELOC_NUMBER (R_FR30_20, 2)
- RELOC_NUMBER (R_FR30_32, 3)
- RELOC_NUMBER (R_FR30_48, 4)
- RELOC_NUMBER (R_FR30_6_IN_4, 5)
- RELOC_NUMBER (R_FR30_8_IN_8, 6)
- RELOC_NUMBER (R_FR30_9_IN_8, 7)
- RELOC_NUMBER (R_FR30_10_IN_8, 8)
- RELOC_NUMBER (R_FR30_9_PCREL, 9)
- RELOC_NUMBER (R_FR30_12_PCREL, 10)
- RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11)
- RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12)
-END_RELOC_NUMBERS (R_FR30_max)
-
-#endif /* _ELF_FR30_H */
diff --git a/include/elf/frv.h b/include/elf/frv.h
deleted file mode 100644
index b79e51d06..000000000
--- a/include/elf/frv.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* FRV ELF support for BFD.
- Copyright (C) 2002, 2003, 2004, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_FRV_H
-#define _ELF_FRV_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_frv_reloc_type)
- RELOC_NUMBER (R_FRV_NONE, 0)
- RELOC_NUMBER (R_FRV_32, 1)
- RELOC_NUMBER (R_FRV_LABEL16, 2)
- RELOC_NUMBER (R_FRV_LABEL24, 3)
- RELOC_NUMBER (R_FRV_LO16, 4)
- RELOC_NUMBER (R_FRV_HI16, 5)
- RELOC_NUMBER (R_FRV_GPREL12, 6)
- RELOC_NUMBER (R_FRV_GPRELU12, 7)
- RELOC_NUMBER (R_FRV_GPREL32, 8)
- RELOC_NUMBER (R_FRV_GPRELHI, 9)
- RELOC_NUMBER (R_FRV_GPRELLO, 10)
- RELOC_NUMBER (R_FRV_GOT12, 11)
- RELOC_NUMBER (R_FRV_GOTHI, 12)
- RELOC_NUMBER (R_FRV_GOTLO, 13)
- RELOC_NUMBER (R_FRV_FUNCDESC, 14)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOT12, 15)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOTHI, 16)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOTLO, 17)
- RELOC_NUMBER (R_FRV_FUNCDESC_VALUE, 18)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFF12, 19)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFHI, 20)
- RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFLO, 21)
- RELOC_NUMBER (R_FRV_GOTOFF12, 22)
- RELOC_NUMBER (R_FRV_GOTOFFHI, 23)
- RELOC_NUMBER (R_FRV_GOTOFFLO, 24)
- RELOC_NUMBER (R_FRV_GETTLSOFF, 25)
- RELOC_NUMBER (R_FRV_TLSDESC_VALUE, 26)
- RELOC_NUMBER (R_FRV_GOTTLSDESC12, 27)
- RELOC_NUMBER (R_FRV_GOTTLSDESCHI, 28)
- RELOC_NUMBER (R_FRV_GOTTLSDESCLO, 29)
- RELOC_NUMBER (R_FRV_TLSMOFF12, 30)
- RELOC_NUMBER (R_FRV_TLSMOFFHI, 31)
- RELOC_NUMBER (R_FRV_TLSMOFFLO, 32)
- RELOC_NUMBER (R_FRV_GOTTLSOFF12, 33)
- RELOC_NUMBER (R_FRV_GOTTLSOFFHI, 34)
- RELOC_NUMBER (R_FRV_GOTTLSOFFLO, 35)
- RELOC_NUMBER (R_FRV_TLSOFF, 36)
- RELOC_NUMBER (R_FRV_TLSDESC_RELAX, 37)
- RELOC_NUMBER (R_FRV_GETTLSOFF_RELAX, 38)
- RELOC_NUMBER (R_FRV_TLSOFF_RELAX, 39)
- RELOC_NUMBER (R_FRV_TLSMOFF, 40)
- RELOC_NUMBER (R_FRV_GNU_VTINHERIT, 200)
- RELOC_NUMBER (R_FRV_GNU_VTENTRY, 201)
-END_RELOC_NUMBERS(R_FRV_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
- /* gpr support */
-#define EF_FRV_GPR_MASK 0x00000003 /* mask for # of gprs */
-#define EF_FRV_GPR_32 0x00000001 /* -mgpr-32 */
-#define EF_FRV_GPR_64 0x00000002 /* -mgpr-64 */
-
- /* fpr support */
-#define EF_FRV_FPR_MASK 0x0000000c /* mask for # of fprs */
-#define EF_FRV_FPR_32 0x00000004 /* -mfpr-32 */
-#define EF_FRV_FPR_64 0x00000008 /* -mfpr-64 */
-#define EF_FRV_FPR_NONE 0x0000000c /* -msoft-float */
-
- /* double word support */
-#define EF_FRV_DWORD_MASK 0x00000030 /* mask for dword support */
-#define EF_FRV_DWORD_YES 0x00000010 /* use double word insns */
-#define EF_FRV_DWORD_NO 0x00000020 /* don't use double word insn*/
-
-#define EF_FRV_DOUBLE 0x00000040 /* -mdouble */
-#define EF_FRV_MEDIA 0x00000080 /* -mmedia */
-
-#define EF_FRV_PIC 0x00000100 /* -fpic */
-#define EF_FRV_NON_PIC_RELOCS 0x00000200 /* used non pic safe relocs */
-
-#define EF_FRV_MULADD 0x00000400 /* -mmuladd */
-#define EF_FRV_BIGPIC 0x00000800 /* -fPIC */
-#define EF_FRV_LIBPIC 0x00001000 /* -mlibrary-pic */
-#define EF_FRV_G0 0x00002000 /* -G 0, no small data ptr */
-#define EF_FRV_NOPACK 0x00004000 /* -mnopack */
-#define EF_FRV_FDPIC 0x00008000 /* -mfdpic */
-
-#define EF_FRV_CPU_MASK 0xff000000 /* specific cpu bits */
-#define EF_FRV_CPU_GENERIC 0x00000000 /* generic FRV */
-#define EF_FRV_CPU_FR500 0x01000000 /* FRV500 */
-#define EF_FRV_CPU_FR300 0x02000000 /* FRV300 */
-#define EF_FRV_CPU_SIMPLE 0x03000000 /* SIMPLE */
-#define EF_FRV_CPU_TOMCAT 0x04000000 /* Tomcat, FR500 prototype */
-#define EF_FRV_CPU_FR400 0x05000000 /* FRV400 */
-#define EF_FRV_CPU_FR550 0x06000000 /* FRV550 */
-#define EF_FRV_CPU_FR405 0x07000000
-#define EF_FRV_CPU_FR450 0x08000000
-
- /* Mask of PIC related bits */
-#define EF_FRV_PIC_FLAGS (EF_FRV_PIC | EF_FRV_LIBPIC | EF_FRV_BIGPIC \
- | EF_FRV_FDPIC)
-
- /* Mask of all flags */
-#define EF_FRV_ALL_FLAGS (EF_FRV_GPR_MASK | \
- EF_FRV_FPR_MASK | \
- EF_FRV_DWORD_MASK | \
- EF_FRV_DOUBLE | \
- EF_FRV_MEDIA | \
- EF_FRV_PIC_FLAGS | \
- EF_FRV_NON_PIC_RELOCS | \
- EF_FRV_MULADD | \
- EF_FRV_G0 | \
- EF_FRV_NOPACK | \
- EF_FRV_CPU_MASK)
-
-#endif /* _ELF_FRV_H */
diff --git a/include/elf/h8.h b/include/elf/h8.h
deleted file mode 100644
index 36aef6a25..000000000
--- a/include/elf/h8.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* H8300/h8500 ELF support for BFD.
- Copyright 2001, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_H8_H
-#define _ELF_H8_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-/* Relocations 59..63 are GNU extensions. */
-START_RELOC_NUMBERS (elf_h8_reloc_type)
- RELOC_NUMBER (R_H8_NONE, 0)
- RELOC_NUMBER (R_H8_DIR32, 1)
- RELOC_NUMBER (R_H8_DIR32_28, 2)
- RELOC_NUMBER (R_H8_DIR32_24, 3)
- RELOC_NUMBER (R_H8_DIR32_16, 4)
- RELOC_NUMBER (R_H8_DIR32U, 6)
- RELOC_NUMBER (R_H8_DIR32U_28, 7)
- RELOC_NUMBER (R_H8_DIR32U_24, 8)
- RELOC_NUMBER (R_H8_DIR32U_20, 9)
- RELOC_NUMBER (R_H8_DIR32U_16, 10)
- RELOC_NUMBER (R_H8_DIR24, 11)
- RELOC_NUMBER (R_H8_DIR24_20, 12)
- RELOC_NUMBER (R_H8_DIR24_16, 13)
- RELOC_NUMBER (R_H8_DIR24U, 14)
- RELOC_NUMBER (R_H8_DIR24U_20, 15)
- RELOC_NUMBER (R_H8_DIR24U_16, 16)
- RELOC_NUMBER (R_H8_DIR16, 17)
- RELOC_NUMBER (R_H8_DIR16U, 18)
- RELOC_NUMBER (R_H8_DIR16S_32, 19)
- RELOC_NUMBER (R_H8_DIR16S_28, 20)
- RELOC_NUMBER (R_H8_DIR16S_24, 21)
- RELOC_NUMBER (R_H8_DIR16S_20, 22)
- RELOC_NUMBER (R_H8_DIR16S, 23)
- RELOC_NUMBER (R_H8_DIR8, 24)
- RELOC_NUMBER (R_H8_DIR8U, 25)
- RELOC_NUMBER (R_H8_DIR8Z_32, 26)
- RELOC_NUMBER (R_H8_DIR8Z_28, 27)
- RELOC_NUMBER (R_H8_DIR8Z_24, 28)
- RELOC_NUMBER (R_H8_DIR8Z_20, 29)
- RELOC_NUMBER (R_H8_DIR8Z_16, 30)
- RELOC_NUMBER (R_H8_PCREL16, 31)
- RELOC_NUMBER (R_H8_PCREL8, 32)
- RELOC_NUMBER (R_H8_BPOS, 33)
- FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
- FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
- RELOC_NUMBER (R_H8_DIR16A8, 59)
- RELOC_NUMBER (R_H8_DIR16R8, 60)
- RELOC_NUMBER (R_H8_DIR24A8, 61)
- RELOC_NUMBER (R_H8_DIR24R8, 62)
- RELOC_NUMBER (R_H8_DIR32A16, 63)
- RELOC_NUMBER (R_H8_ABS32, 65)
- RELOC_NUMBER (R_H8_ABS32A16, 127)
- RELOC_NUMBER (R_H8_SYM, 128)
- RELOC_NUMBER (R_H8_OPneg, 129)
- RELOC_NUMBER (R_H8_OPadd, 130)
- RELOC_NUMBER (R_H8_OPsub, 131)
- RELOC_NUMBER (R_H8_OPmul, 132)
- RELOC_NUMBER (R_H8_OPdiv, 133)
- RELOC_NUMBER (R_H8_OPshla, 134)
- RELOC_NUMBER (R_H8_OPshra, 135)
- RELOC_NUMBER (R_H8_OPsctsize, 136)
- RELOC_NUMBER (R_H8_OPhword, 137)
- RELOC_NUMBER (R_H8_OPlword, 138)
- RELOC_NUMBER (R_H8_OPhigh, 139)
- RELOC_NUMBER (R_H8_OPlow, 140)
- RELOC_NUMBER (R_H8_OPscttop, 141)
-END_RELOC_NUMBERS (R_H8_max)
-
-/* Machine variant if we know it. This field was invented at Cygnus,
- but it is hoped that other vendors will adopt it. If some standard
- is developed, this code should be changed to follow it. */
-
-#define EF_H8_MACH 0x00FF0000
-
-#define E_H8_MACH_H8300 0x00800000
-#define E_H8_MACH_H8300H 0x00810000
-#define E_H8_MACH_H8300S 0x00820000
-#define E_H8_MACH_H8300HN 0x00830000
-#define E_H8_MACH_H8300SN 0x00840000
-#define E_H8_MACH_H8300SX 0x00850000
-#define E_H8_MACH_H8300SXN 0x00860000
-
-#endif
diff --git a/include/elf/hppa.h b/include/elf/hppa.h
deleted file mode 100644
index 8d3ea45f4..000000000
--- a/include/elf/hppa.h
+++ /dev/null
@@ -1,635 +0,0 @@
-/* HPPA ELF support for BFD.
- Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2005, 2006, 2008, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the HPPA ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_HPPA_H
-#define _ELF_HPPA_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* Trap null address dereferences. */
-#define EF_PARISC_TRAPNIL 0x00010000
-
-/* .PARISC.archext section is present. */
-#define EF_PARISC_EXT 0x00020000
-
-/* Program expects little-endian mode. */
-#define EF_PARISC_LSB 0x00040000
-
-/* Program expects wide mode. */
-#define EF_PARISC_WIDE 0x00080000
-
-/* Do not allow kernel-assisted branch prediction. */
-#define EF_PARISC_NO_KABP 0x00100000
-
-/* Allow lazy swap for dynamically allocated program segments. */
-#define EF_PARISC_LAZYSWAP 0x00400000
-
-/* Architecture version */
-#define EF_PARISC_ARCH 0x0000ffff
-
-#define EFA_PARISC_1_0 0x020b
-#define EFA_PARISC_1_1 0x0210
-#define EFA_PARISC_2_0 0x0214
-
-/* Special section indices. */
-/* A symbol that has been declared as a tentative definition in an ANSI C
- compilation. */
-#define SHN_PARISC_ANSI_COMMON SHN_LORESERVE
-
-/* A symbol that has been declared as a common block using the
- huge memory model. */
-#define SHN_PARISC_HUGE_COMMON (SHN_LORESERVE + 1)
-
-/* Processor specific section types. */
-
-/* Section contains product specific extension bits. */
-#define SHT_PARISC_EXT 0x70000000
-
-/* Section contains unwind table entries. */
-#define SHT_PARISC_UNWIND 0x70000001
-
-/* Section contains debug information for optimized code. */
-#define SHT_PARISC_DOC 0x70000002
-
-/* Section contains code annotations. */
-#define SHT_PARISC_ANNOT 0x70000003
-
-/* DLKM special section. */
-#define SHT_PARISC_DLKM 0x70000004
-
-/* These are strictly for compatibility with the older elf32-hppa
- implementation. Hopefully we can eliminate them in the future. */
-/* Optional section holding argument location/relocation info. */
-#define SHT_PARISC_SYMEXTN SHT_LOPROC + 8
-
-/* Option section for linker stubs. */
-#define SHT_PARISC_STUBS SHT_LOPROC + 9
-
-/* Processor specific section flags. */
-
-/* Section contains code compiled for static branch prediction. */
-#define SHF_PARISC_SBP 0x80000000
-
-/* Section should be allocated from from GP. */
-#define SHF_PARISC_HUGE 0x40000000
-
-/* Section should go near GP. */
-#define SHF_PARISC_SHORT 0x20000000
-
-/* Section is weak ordered. */
-#define SHF_PARISC_WEAKORDER 0x10000000
-
-/* Identifies the entry point of a millicode routine. */
-#define STT_PARISC_MILLI 13
-
-/* ELF/HPPA relocation types */
-
-/* Note: PA-ELF is defined to use only RELA relocations. */
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_hppa_reloc_type)
-RELOC_NUMBER (R_PARISC_NONE, 0) /* No reloc */
-
-/* Data / Inst. Format Relocation Expression */
-
-RELOC_NUMBER (R_PARISC_DIR32, 1)
-/* 32-bit word symbol + addend */
-
-RELOC_NUMBER (R_PARISC_DIR21L, 2)
-/* long immediate (7) LR(symbol, addend) */
-
-RELOC_NUMBER (R_PARISC_DIR17R, 3)
-/* branch external (19) RR(symbol, addend) */
-
-RELOC_NUMBER (R_PARISC_DIR17F, 4)
-/* branch external (19) symbol + addend */
-
-RELOC_NUMBER (R_PARISC_DIR14R, 6)
-/* load/store (1) RR(symbol, addend) */
-
-RELOC_NUMBER (R_PARISC_DIR14F, 7)
-/* load/store (1) symbol, addend */
-
-/* PC-relative relocation types
- Typically used for calls.
- Note PCREL17C and PCREL17F differ only in overflow handling.
- PCREL17C never reports a relocation error.
-
- When supporting argument relocations, function calls must be
- accompanied by parameter relocation information. This information is
- carried in the ten high-order bits of the addend field. The remaining
- 22 bits of of the addend field are sign-extended to form the Addend.
-
- Note the code to build argument relocations depends on the
- addend being zero. A consequence of this limitation is GAS
- can not perform relocation reductions for function symbols. */
-
-RELOC_NUMBER (R_PARISC_PCREL12F, 8)
-/* op & branch (17) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL32, 9)
-/* 32-bit word symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL21L, 10)
-/* long immediate (7) L(symbol - PC - 8 + addend) */
-
-RELOC_NUMBER (R_PARISC_PCREL17R, 11)
-/* branch external (19) R(symbol - PC - 8 + addend) */
-
-RELOC_NUMBER (R_PARISC_PCREL17F, 12)
-/* branch (20) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL17C, 13)
-/* branch (20) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL14R, 14)
-/* load/store (1) R(symbol - PC - 8 + addend) */
-
-RELOC_NUMBER (R_PARISC_PCREL14F, 15)
-/* load/store (1) symbol - PC - 8 + addend */
-
-
-/* DP-relative relocation types. */
-RELOC_NUMBER (R_PARISC_DPREL21L, 18)
-/* long immediate (7) LR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DPREL14WR, 19)
-/* load/store mod. comp. (2) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DPREL14DR, 20)
-/* load/store doubleword (3) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DPREL14R, 22)
-/* load/store (1) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DPREL14F, 23)
-/* load/store (1) symbol - GP + addend */
-
-
-/* Data linkage table (DLT) relocation types
-
- SOM DLT_REL fixup requests are used to for static data references
- from position-independent code within shared libraries. They are
- similar to the GOT relocation types in some SVR4 implementations. */
-
-RELOC_NUMBER (R_PARISC_DLTREL21L, 26)
-/* long immediate (7) LR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DLTREL14R, 30)
-/* load/store (1) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DLTREL14F, 31)
-/* load/store (1) symbol - GP + addend */
-
-
-/* DLT indirect relocation types */
-RELOC_NUMBER (R_PARISC_DLTIND21L, 34)
-/* long immediate (7) L(ltoff(symbol + addend)) */
-
-RELOC_NUMBER (R_PARISC_DLTIND14R, 38)
-/* load/store (1) R(ltoff(symbol + addend)) */
-
-RELOC_NUMBER (R_PARISC_DLTIND14F, 39)
-/* load/store (1) ltoff(symbol + addend) */
-
-
-/* Base relative relocation types. Ugh. These imply lots of state */
-RELOC_NUMBER (R_PARISC_SETBASE, 40)
-/* none no reloc; base := sym */
-
-RELOC_NUMBER (R_PARISC_SECREL32, 41)
-/* 32-bit word symbol - SECT + addend */
-
-RELOC_NUMBER (R_PARISC_BASEREL21L, 42)
-/* long immediate (7) LR(symbol - base, addend) */
-
-RELOC_NUMBER (R_PARISC_BASEREL17R, 43)
-/* branch external (19) RR(symbol - base, addend) */
-
-RELOC_NUMBER (R_PARISC_BASEREL17F, 44)
-/* branch external (19) symbol - base + addend */
-
-RELOC_NUMBER (R_PARISC_BASEREL14R, 46)
-/* load/store (1) RR(symbol - base, addend) */
-
-RELOC_NUMBER (R_PARISC_BASEREL14F, 47)
-/* load/store (1) symbol - base, addend */
-
-
-/* Segment relative relocation types. */
-RELOC_NUMBER (R_PARISC_SEGBASE, 48)
-/* none no relocation; SB := sym */
-
-RELOC_NUMBER (R_PARISC_SEGREL32, 49)
-/* 32-bit word symbol - SB + addend */
-
-
-/* Offsets from the PLT. */
-RELOC_NUMBER (R_PARISC_PLTOFF21L, 50)
-/* long immediate (7) LR(pltoff(symbol), addend) */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14R, 54)
-/* load/store (1) RR(pltoff(symbol), addend) */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14F, 55)
-/* load/store (1) pltoff(symbol) + addend */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR32, 57)
-/* 32-bit word ltoff(fptr(symbol+addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L, 58)
-/* long immediate (7) L(ltoff(fptr(symbol+addend))) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R, 62)
-/* load/store (1) R(ltoff(fptr(symbol+addend))) */
-
-
-RELOC_NUMBER (R_PARISC_FPTR64, 64)
-/* 64-bit doubleword fptr(symbol+addend) */
-
-
-/* Plabel relocation types. */
-RELOC_NUMBER (R_PARISC_PLABEL32, 65)
-/* 32-bit word fptr(symbol) */
-
-RELOC_NUMBER (R_PARISC_PLABEL21L, 66)
-/* long immediate (7) L(fptr(symbol)) */
-
-RELOC_NUMBER (R_PARISC_PLABEL14R, 70)
-/* load/store (1) R(fptr(symbol)) */
-
-
-/* PCREL relocations. */
-RELOC_NUMBER (R_PARISC_PCREL64, 72)
-/* 64-bit doubleword symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL22C, 73)
-/* branch & link (21) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL22F, 74)
-/* branch & link (21) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL14WR, 75)
-/* load/store mod. comp. (2) R(symbol - PC - 8 + addend) */
-
-RELOC_NUMBER (R_PARISC_PCREL14DR, 76)
-/* load/store doubleword (3) R(symbol - PC - 8 + addend) */
-
-RELOC_NUMBER (R_PARISC_PCREL16F, 77)
-/* load/store (1) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL16WF, 78)
-/* load/store mod. comp. (2) symbol - PC - 8 + addend */
-
-RELOC_NUMBER (R_PARISC_PCREL16DF, 79)
-/* load/store doubleword (3) symbol - PC - 8 + addend */
-
-
-RELOC_NUMBER (R_PARISC_DIR64, 80)
-/* 64-bit doubleword symbol + addend */
-
-RELOC_NUMBER (R_PARISC_DIR14WR, 83)
-/* load/store mod. comp. (2) RR(symbol, addend) */
-
-RELOC_NUMBER (R_PARISC_DIR14DR, 84)
-/* load/store doubleword (3) RR(symbol, addend) */
-
-RELOC_NUMBER (R_PARISC_DIR16F, 85)
-/* load/store (1) symbol + addend */
-
-RELOC_NUMBER (R_PARISC_DIR16WF, 86)
-/* load/store mod. comp. (2) symbol + addend */
-
-RELOC_NUMBER (R_PARISC_DIR16DF, 87)
-/* load/store doubleword (3) symbol + addend */
-
-RELOC_NUMBER (R_PARISC_GPREL64, 88)
-/* 64-bit doubleword symbol - GP + addend */
-
-RELOC_NUMBER (R_PARISC_DLTREL14WR, 91)
-/* load/store mod. comp. (2) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_DLTREL14DR, 92)
-/* load/store doubleword (3) RR(symbol - GP, addend) */
-
-RELOC_NUMBER (R_PARISC_GPREL16F, 93)
-/* load/store (1) symbol - GP + addend */
-
-RELOC_NUMBER (R_PARISC_GPREL16WF, 94)
-/* load/store mod. comp. (2) symbol - GP + addend */
-
-RELOC_NUMBER (R_PARISC_GPREL16DF, 95)
-/* load/store doubleword (3) symbol - GP + addend */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF64, 96)
-/* 64-bit doubleword ltoff(symbol + addend) */
-
-RELOC_NUMBER (R_PARISC_DLTIND14WR, 99)
-/* load/store mod. comp. (2) R(ltoff(symbol + addend)) */
-
-RELOC_NUMBER (R_PARISC_DLTIND14DR, 100)
-/* load/store doubleword (3) R(ltoff(symbol + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF16F, 101)
-/* load/store (1) ltoff(symbol + addend) */
-
-RELOC_NUMBER (R_PARISC_LTOFF16WF, 102)
-/* load/store mod. comp. (2) ltoff(symbol + addend) */
-
-RELOC_NUMBER (R_PARISC_LTOFF16DF, 103)
-/* load/store doubleword (3) ltoff(symbol + addend) */
-
-
-RELOC_NUMBER (R_PARISC_SECREL64, 104)
-/* 64-bit doubleword symbol - SECT + addend */
-
-RELOC_NUMBER (R_PARISC_BASEREL14WR, 107)
-/* load/store mod. comp. (2) RR(symbol - base, addend) */
-
-RELOC_NUMBER (R_PARISC_BASEREL14DR, 108)
-/* load/store doubleword (3) RR(symbol - base, addend) */
-
-
-RELOC_NUMBER (R_PARISC_SEGREL64, 112)
-/* 64-bit doubleword symbol - SB + addend */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14WR, 115)
-/* load/store mod. comp. (2) RR(pltoff(symbol), addend) */
-
-RELOC_NUMBER (R_PARISC_PLTOFF14DR, 116)
-/* load/store doubleword (3) RR(pltoff(symbol), addend) */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16F, 117)
-/* load/store (1) pltoff(symbol) + addend */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16WF, 118)
-/* load/store mod. comp. (2) pltoff(symbol) + addend */
-
-RELOC_NUMBER (R_PARISC_PLTOFF16DF, 119)
-/* load/store doubleword (3) pltoff(symbol) + addend */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR64, 120)
-/* 64-bit doubleword ltoff(fptr(symbol+addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123)
-/* load/store mod. comp. (2) R(ltoff(fptr(symbol+addend))) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124)
-/* load/store doubleword (3) R(ltoff(fptr(symbol+addend))) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F, 125)
-/* load/store (1) ltoff(fptr(symbol+addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126)
-/* load/store mod. comp. (2) ltoff(fptr(symbol+addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127)
-/* load/store doubleword (3) ltoff(fptr(symbol+addend)) */
-
-
-RELOC_NUMBER (R_PARISC_COPY, 128)
-/* data Dynamic relocations only */
-
-RELOC_NUMBER (R_PARISC_IPLT, 129)
-/* plt */
-
-RELOC_NUMBER (R_PARISC_EPLT, 130)
-/* plt */
-
-
-RELOC_NUMBER (R_PARISC_TPREL32, 153)
-/* 32-bit word symbol - TP + addend */
-
-RELOC_NUMBER (R_PARISC_TPREL21L, 154)
-/* long immediate (7) LR(symbol - TP, addend) */
-
-RELOC_NUMBER (R_PARISC_TPREL14R, 158)
-/* load/store (1) RR(symbol - TP, addend) */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP21L, 162)
-/* long immediate (7) L(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14R, 166)
-/* load/store (1) R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14F, 167)
-/* load/store (1) ltoff(symbol - TP + addend) */
-
-
-RELOC_NUMBER (R_PARISC_TPREL64, 216)
-/* 64-bit word symbol - TP + addend */
-
-RELOC_NUMBER (R_PARISC_TPREL14WR, 219)
-/* load/store mod. comp. (2) RR(symbol - TP, addend) */
-
-RELOC_NUMBER (R_PARISC_TPREL14DR, 220)
-/* load/store doubleword (3) RR(symbol - TP, addend) */
-
-RELOC_NUMBER (R_PARISC_TPREL16F, 221)
-/* load/store (1) symbol - TP + addend */
-
-RELOC_NUMBER (R_PARISC_TPREL16WF, 222)
-/* load/store mod. comp. (2) symbol - TP + addend */
-
-RELOC_NUMBER (R_PARISC_TPREL16DF, 223)
-/* load/store doubleword (3) symbol - TP + addend */
-
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP64, 224)
-/* 64-bit doubleword ltoff(symbol - TP + addend) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14WR, 227)
-/* load/store mod. comp. (2) R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP14DR, 228)
-/* load/store doubleword (3) R(ltoff(symbol - TP + addend)) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229)
-/* load/store (1) ltoff(symbol - TP + addend) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230)
-/* load/store mod. comp. (2) ltoff(symbol - TP + addend) */
-
-RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231)
-/* load/store doubleword (3) ltoff(symbol - TP + addend) */
-
-RELOC_NUMBER (R_PARISC_GNU_VTENTRY, 232)
-RELOC_NUMBER (R_PARISC_GNU_VTINHERIT, 233)
-
-RELOC_NUMBER (R_PARISC_TLS_GD21L, 234)
-RELOC_NUMBER (R_PARISC_TLS_GD14R, 235)
-RELOC_NUMBER (R_PARISC_TLS_GDCALL, 236)
-RELOC_NUMBER (R_PARISC_TLS_LDM21L, 237)
-RELOC_NUMBER (R_PARISC_TLS_LDM14R, 238)
-RELOC_NUMBER (R_PARISC_TLS_LDMCALL, 239)
-RELOC_NUMBER (R_PARISC_TLS_LDO21L, 240)
-RELOC_NUMBER (R_PARISC_TLS_LDO14R, 241)
-RELOC_NUMBER (R_PARISC_TLS_DTPMOD32, 242)
-RELOC_NUMBER (R_PARISC_TLS_DTPMOD64, 243)
-RELOC_NUMBER (R_PARISC_TLS_DTPOFF32, 244)
-RELOC_NUMBER (R_PARISC_TLS_DTPOFF64, 245)
-
-END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
-
-#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
-#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
-#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
-#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
-#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
-#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
-
-#ifndef RELOC_MACROS_GEN_FUNC
-typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
-#endif
-
-#define PT_PARISC_ARCHEXT 0x70000000
-#define PT_PARISC_UNWIND 0x70000001
-#define PT_PARISC_WEAKORDER 0x70000002
-
-/* Flag bits in sh_flags of ElfXX_Shdr. */
-#define SHF_HP_TLS 0x01000000
-#define SHF_HP_NEAR_SHARED 0x02000000
-#define SHF_HP_FAR_SHARED 0x04000000
-#define SHF_HP_COMDAT 0x08000000
-#define SHF_HP_CONST 0x00800000
-
-/* Reserved section header indices. */
-#define SHN_TLS_COMMON (SHN_LOOS + 0x0)
-#define SHN_NS_COMMON (SHN_LOOS + 0x1)
-#define SHN_FS_COMMON (SHN_LOOS + 0x2)
-#define SHN_NS_UNDEF (SHN_LOOS + 0x3)
-#define SHN_FS_UNDEF (SHN_LOOS + 0x4)
-#define SHN_HP_EXTERN (SHN_LOOS + 0x5)
-#define SHN_HP_EXTHINT (SHN_LOOS + 0x6)
-#define SHN_HP_UNDEF_BIND_IMM (SHN_LOOS + 0x7)
-
-/* Values of sh_type in ElfXX_Shdr. */
-#define SHT_HP_OVLBITS (SHT_LOOS + 0x0)
-#define SHT_HP_DLKM (SHT_LOOS + 0x1)
-#define SHT_HP_COMDAT (SHT_LOOS + 0x2)
-#define SHT_HP_OBJDICT (SHT_LOOS + 0x3)
-#define SHT_HP_ANNOT (SHT_LOOS + 0x4)
-
-/* Flag bits in p_flags of ElfXX_Phdr. */
-#define PF_HP_CODE 0x00040000
-#define PF_HP_MODIFY 0x00080000
-#define PF_HP_PAGE_SIZE 0x00100000
-#define PF_HP_FAR_SHARED 0x00200000
-#define PF_HP_NEAR_SHARED 0x00400000
-#define PF_HP_LAZYSWAP 0x00800000
-#define PF_HP_CODE_DEPR 0x01000000
-#define PF_HP_MODIFY_DEPR 0x02000000
-#define PF_HP_LAZYSWAP_DEPR 0x04000000
-#define PF_PARISC_SBP 0x08000000
-#define PF_HP_SBP 0x08000000
-
-
-/* Processor specific dynamic array tags. */
-
-/* Arggh. HP's tools define these symbols based on the
- old value of DT_LOOS. So we must do the same to be
- compatible. */
-#define DT_HP_LOAD_MAP (OLD_DT_LOOS + 0x0)
-#define DT_HP_DLD_FLAGS (OLD_DT_LOOS + 0x1)
-#define DT_HP_DLD_HOOK (OLD_DT_LOOS + 0x2)
-#define DT_HP_UX10_INIT (OLD_DT_LOOS + 0x3)
-#define DT_HP_UX10_INITSZ (OLD_DT_LOOS + 0x4)
-#define DT_HP_PREINIT (OLD_DT_LOOS + 0x5)
-#define DT_HP_PREINITSZ (OLD_DT_LOOS + 0x6)
-#define DT_HP_NEEDED (OLD_DT_LOOS + 0x7)
-#define DT_HP_TIME_STAMP (OLD_DT_LOOS + 0x8)
-#define DT_HP_CHECKSUM (OLD_DT_LOOS + 0x9)
-#define DT_HP_GST_SIZE (OLD_DT_LOOS + 0xa)
-#define DT_HP_GST_VERSION (OLD_DT_LOOS + 0xb)
-#define DT_HP_GST_HASHVAL (OLD_DT_LOOS + 0xc)
-#define DT_HP_EPLTREL (OLD_DT_LOOS + 0xd)
-#define DT_HP_EPLTRELSZ (OLD_DT_LOOS + 0xe)
-#define DT_HP_FILTERED (OLD_DT_LOOS + 0xf)
-#define DT_HP_FILTER_TLS (OLD_DT_LOOS + 0x10)
-#define DT_HP_COMPAT_FILTERED (OLD_DT_LOOS + 0x11)
-#define DT_HP_LAZYLOAD (OLD_DT_LOOS + 0x12)
-#define DT_HP_BIND_NOW_COUNT (OLD_DT_LOOS + 0x13)
-#define DT_PLT (OLD_DT_LOOS + 0x14)
-#define DT_PLT_SIZE (OLD_DT_LOOS + 0x15)
-#define DT_DLT (OLD_DT_LOOS + 0x16)
-#define DT_DLT_SIZE (OLD_DT_LOOS + 0x17)
-
-/* Values for DT_HP_DLD_FLAGS. */
-#define DT_HP_DEBUG_PRIVATE 0x00001 /* Map text private */
-#define DT_HP_DEBUG_CALLBACK 0x00002 /* Callback */
-#define DT_HP_DEBUG_CALLBACK_BOR 0x00004 /* BOR callback */
-#define DT_HP_NO_ENVVAR 0x00008 /* No env var */
-#define DT_HP_BIND_NOW 0x00010 /* Bind now */
-#define DT_HP_BIND_NONFATAL 0x00020 /* Bind non-fatal */
-#define DT_HP_BIND_VERBOSE 0x00040 /* Bind verbose */
-#define DT_HP_BIND_RESTRICTED 0x00080 /* Bind restricted */
-#define DT_HP_BIND_SYMBOLIC 0x00100 /* Bind symbolic */
-#define DT_HP_RPATH_FIRST 0x00200 /* RPATH first */
-#define DT_HP_BIND_DEPTH_FIRST 0x00400 /* Bind depth-first */
-#define DT_HP_GST 0x00800 /* Dld global sym table */
-#define DT_HP_SHLIB_FIXED 0x01000 /* shared vtable support */
-#define DT_HP_MERGE_SHLIB_SEG 0x02000 /* merge shlib data segs */
-#define DT_HP_NODELETE 0x04000 /* never unload */
-#define DT_HP_GROUP 0x08000 /* bind only within group */
-#define DT_HP_PROTECT_LINKAGE_TABLE 0x10000 /* protected linkage table */
-
-/* Program header extensions. */
-#define PT_HP_TLS (PT_LOOS + 0x0)
-#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
-#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
-#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
-#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
-#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
-#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
-#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
-#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
-#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
-#define PT_HP_PARALLEL (PT_LOOS + 0x10)
-#define PT_HP_FASTBIND (PT_LOOS + 0x11)
-#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
-#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
-#define PT_HP_STACK (PT_LOOS + 0x14)
-#define PT_HP_CORE_UTSNAME (PT_LOOS + 0x15)
-
-/* Binding information. */
-#define STB_HP_ALIAS (STB_LOOS + 0x0)
-
-/* Additional symbol types. */
-#define STT_HP_OPAQUE (STT_LOOS + 0x1)
-#define STT_HP_STUB (STT_LOOS + 0x2)
-
-/* Note types. */
-#define NT_HP_COMPILER 1
-#define NT_HP_COPYRIGHT 2
-#define NT_HP_VERSION 3
-#define NT_HP_SRCFILE_INFO 4
-#define NT_HP_LINKER 5
-#define NT_HP_INSTRUMENTED 6
-#define NT_HP_UX_OPTIONS 7
-
-#endif /* _ELF_HPPA_H */
diff --git a/include/elf/i370.h b/include/elf/i370.h
deleted file mode 100644
index 7b451ff9d..000000000
--- a/include/elf/i370.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* i370 ELF support for BFD.
- Copyright 2000, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the i370 ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_I370_H
-#define _ELF_I370_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific section headers, sh_type field */
-
-#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
- entries in this section \
- based on the address \
- specified in the associated \
- symbol table entry. */
-
-#define EF_I370_RELOCATABLE 0x00010000 /* i370 -mrelocatable flag */
-#define EF_I370_RELOCATABLE_LIB 0x00008000 /* i370 -mrelocatable-lib flag */
-
-/* i370 relocations
- Note that there is really just one relocation that we currently
- support (and only one that we seem to need, at the moment), and
- that is the 31-bit address relocation. Note that the 370/390
- only supports a 31-bit (2GB) address space. */
-
-START_RELOC_NUMBERS (i370_reloc_type)
- RELOC_NUMBER (R_I370_NONE, 0)
- RELOC_NUMBER (R_I370_ADDR31, 1)
- RELOC_NUMBER (R_I370_ADDR32, 2)
- RELOC_NUMBER (R_I370_ADDR16, 3)
- RELOC_NUMBER (R_I370_REL31, 4)
- RELOC_NUMBER (R_I370_REL32, 5)
- RELOC_NUMBER (R_I370_ADDR12, 6)
- RELOC_NUMBER (R_I370_REL12, 7)
- RELOC_NUMBER (R_I370_ADDR8, 8)
- RELOC_NUMBER (R_I370_REL8, 9)
- RELOC_NUMBER (R_I370_COPY, 10)
- RELOC_NUMBER (R_I370_RELATIVE, 11)
-END_RELOC_NUMBERS (R_I370_max)
-
-#endif /* _ELF_I370_H */
diff --git a/include/elf/i386.h b/include/elf/i386.h
deleted file mode 100644
index a12225faa..000000000
--- a/include/elf/i386.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ix86 ELF support for BFD.
- Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_I386_H
-#define _ELF_I386_H
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_i386_reloc_type)
- RELOC_NUMBER (R_386_NONE, 0) /* No reloc */
- RELOC_NUMBER (R_386_32, 1) /* Direct 32 bit */
- RELOC_NUMBER (R_386_PC32, 2) /* PC relative 32 bit */
- RELOC_NUMBER (R_386_GOT32, 3) /* 32 bit GOT entry */
- RELOC_NUMBER (R_386_PLT32, 4) /* 32 bit PLT address */
- RELOC_NUMBER (R_386_COPY, 5) /* Copy symbol at runtime */
- RELOC_NUMBER (R_386_GLOB_DAT, 6) /* Create GOT entry */
- RELOC_NUMBER (R_386_JUMP_SLOT, 7) /* Create PLT entry */
- RELOC_NUMBER (R_386_RELATIVE, 8) /* Adjust by program base */
- RELOC_NUMBER (R_386_GOTOFF, 9) /* 32 bit offset to GOT */
- RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */
- RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */
- FAKE_RELOC (FIRST_INVALID_RELOC, 12)
- FAKE_RELOC (LAST_INVALID_RELOC, 13)
- RELOC_NUMBER (R_386_TLS_TPOFF,14)
- RELOC_NUMBER (R_386_TLS_IE, 15)
- RELOC_NUMBER (R_386_TLS_GOTIE,16)
- RELOC_NUMBER (R_386_TLS_LE, 17)
- RELOC_NUMBER (R_386_TLS_GD, 18)
- RELOC_NUMBER (R_386_TLS_LDM, 19)
- RELOC_NUMBER (R_386_16, 20)
- RELOC_NUMBER (R_386_PC16, 21)
- RELOC_NUMBER (R_386_8, 22)
- RELOC_NUMBER (R_386_PC8, 23)
- RELOC_NUMBER (R_386_TLS_GD_32, 24)
- RELOC_NUMBER (R_386_TLS_GD_PUSH, 25)
- RELOC_NUMBER (R_386_TLS_GD_CALL, 26)
- RELOC_NUMBER (R_386_TLS_GD_POP, 27)
- RELOC_NUMBER (R_386_TLS_LDM_32, 28)
- RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29)
- RELOC_NUMBER (R_386_TLS_LDM_CALL, 30)
- RELOC_NUMBER (R_386_TLS_LDM_POP, 31)
- RELOC_NUMBER (R_386_TLS_LDO_32, 32)
- RELOC_NUMBER (R_386_TLS_IE_32, 33)
- RELOC_NUMBER (R_386_TLS_LE_32, 34)
- RELOC_NUMBER (R_386_TLS_DTPMOD32, 35)
- RELOC_NUMBER (R_386_TLS_DTPOFF32, 36)
- RELOC_NUMBER (R_386_TLS_TPOFF32, 37)
-/* 38 */
- RELOC_NUMBER (R_386_TLS_GOTDESC, 39)
- RELOC_NUMBER (R_386_TLS_DESC_CALL,40)
- RELOC_NUMBER (R_386_TLS_DESC, 41)
- RELOC_NUMBER (R_386_IRELATIVE, 42) /* Adjust indirectly by program base */
-
- /* Used by Intel. */
- RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200)
-
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
- RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
-END_RELOC_NUMBERS (R_386_max)
-
-#endif
diff --git a/include/elf/i860.h b/include/elf/i860.h
deleted file mode 100644
index 834c77660..000000000
--- a/include/elf/i860.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* i860 ELF support for BFD.
- Copyright 2000, 2010 Free Software Foundation, Inc.
-
- Contributed by Jason Eckhardt <jle@cygnus.com>.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_I860_H
-#define _ELF_I860_H
-
-/* Note: i860 ELF is defined to use only RELA relocations. */
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_i860_reloc_type)
- RELOC_NUMBER (R_860_NONE, 0x00) /* No reloc */
- RELOC_NUMBER (R_860_32, 0x01) /* S+A */
- RELOC_NUMBER (R_860_COPY, 0x02) /* No calculation */
- RELOC_NUMBER (R_860_GLOB_DAT, 0x03) /* S, Create GOT entry */
- RELOC_NUMBER (R_860_JUMP_SLOT, 0x04) /* S+A, Create PLT entry */
- RELOC_NUMBER (R_860_RELATIVE, 0x05) /* B+A, Adj by program base */
- RELOC_NUMBER (R_860_PC26, 0x30) /* (S+A-P) >> 2 */
- RELOC_NUMBER (R_860_PLT26, 0x31) /* (L+A-P) >> 2 */
- RELOC_NUMBER (R_860_PC16, 0x32) /* (S+A-P) >> 2 */
- RELOC_NUMBER (R_860_LOW0, 0x40) /* S+A */
- RELOC_NUMBER (R_860_SPLIT0, 0x42) /* S+A */
- RELOC_NUMBER (R_860_LOW1, 0x44) /* S+A */
- RELOC_NUMBER (R_860_SPLIT1, 0x46) /* S+A */
- RELOC_NUMBER (R_860_LOW2, 0x48) /* S+A */
- RELOC_NUMBER (R_860_SPLIT2, 0x4A) /* S+A */
- RELOC_NUMBER (R_860_LOW3, 0x4C) /* S+A */
- RELOC_NUMBER (R_860_LOGOT0, 0x50) /* G */
- RELOC_NUMBER (R_860_SPGOT0, 0x52) /* G */
- RELOC_NUMBER (R_860_LOGOT1, 0x54) /* G */
- RELOC_NUMBER (R_860_SPGOT1, 0x56) /* G */
- RELOC_NUMBER (R_860_LOGOTOFF0, 0x60) /* O */
- RELOC_NUMBER (R_860_SPGOTOFF0, 0x62) /* O */
- RELOC_NUMBER (R_860_LOGOTOFF1, 0x64) /* O */
- RELOC_NUMBER (R_860_SPGOTOFF1, 0x66) /* O */
- RELOC_NUMBER (R_860_LOGOTOFF2, 0x68) /* O */
- RELOC_NUMBER (R_860_LOGOTOFF3, 0x6C) /* O */
- RELOC_NUMBER (R_860_LOPC, 0x70) /* (S+A-P) >> 2 */
- RELOC_NUMBER (R_860_HIGHADJ, 0x80) /* hiadj(S+A) */
- RELOC_NUMBER (R_860_HAGOT, 0x90) /* hiadj(G) */
- RELOC_NUMBER (R_860_HAGOTOFF, 0xA0) /* hiadj(O) */
- RELOC_NUMBER (R_860_HAPC, 0xB0) /* hiadj((S+A-P) >> 2) */
- RELOC_NUMBER (R_860_HIGH, 0xC0) /* (S+A) >> 16 */
- RELOC_NUMBER (R_860_HIGOT, 0xD0) /* G >> 16 */
- RELOC_NUMBER (R_860_HIGOTOFF, 0xE0) /* O */
-END_RELOC_NUMBERS (R_860_max)
-
-#endif
diff --git a/include/elf/i960.h b/include/elf/i960.h
deleted file mode 100644
index c319b3226..000000000
--- a/include/elf/i960.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Intel 960 ELF support for BFD.
- Copyright 1999, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_I960_H
-#define _ELF_I960_H
-
-#include "elf/reloc-macros.h"
-
-
-START_RELOC_NUMBERS (elf_i960_reloc_type)
- RELOC_NUMBER (R_960_NONE, 0)
- RELOC_NUMBER (R_960_12, 1)
- RELOC_NUMBER (R_960_32, 2)
- RELOC_NUMBER (R_960_IP24, 3)
- RELOC_NUMBER (R_960_SUB, 4)
- RELOC_NUMBER (R_960_OPTCALL, 5)
- RELOC_NUMBER (R_960_OPTCALLX, 6)
- RELOC_NUMBER (R_960_OPTCALLXA, 7)
-END_RELOC_NUMBERS (R_960_max)
-
-#endif /* _ELF_I960_H */
diff --git a/include/elf/ia64.h b/include/elf/ia64.h
deleted file mode 100644
index d8f6f5015..000000000
--- a/include/elf/ia64.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/* IA-64 ELF support for BFD.
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2008, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_IA64_H
-#define _ELF_IA64_H
-
-/* Bits in the e_flags field of the Elf64_Ehdr: */
-
-#define EF_IA_64_MASKOS 0x0000000f /* OS-specific flags. */
-#define EF_IA_64_ARCH 0xff000000 /* Arch. version mask. */
-#define EF_IA_64_ARCHVER_1 (1 << 24) /* Arch. version level 1 compat. */
-
-/* ??? These four definitions are not part of the SVR4 ABI.
- They were present in David's initial code drop, so it is probable
- that they are used by HP/UX. */
-#define EF_IA_64_TRAPNIL (1 << 0) /* Trap NIL pointer dereferences. */
-#define EF_IA_64_EXT (1 << 2) /* Program uses arch. extensions. */
-#define EF_IA_64_BE (1 << 3) /* PSR BE bit set (big-endian). */
-#define EFA_IA_64_EAS2_3 0x23000000 /* IA64 EAS 2.3. */
-
-#define EF_IA_64_ABI64 (1 << 4) /* 64-bit ABI. */
-/* Not used yet. */
-#define EF_IA_64_REDUCEDFP (1 << 5) /* Only FP6-FP11 used. */
-#define EF_IA_64_CONS_GP (1 << 6) /* gp as program wide constant. */
-#define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors. */
-/* Not used yet. */
-#define EF_IA_64_ABSOLUTE (1 << 8) /* Load at absolute addresses. */
-
-/* OpenVMS speficic. */
-#define EF_IA_64_VMS_COMCOD 0x03 /* Completion code. */
-#define EF_IA_64_VMS_COMCOD_SUCCESS 0
-#define EF_IA_64_VMS_COMCOD_WARNING 1
-#define EF_IA_64_VMS_COMCOD_ERROR 2
-#define EF_IA_64_VMS_COMCOD_ABORT 3
-#define EF_IA_64_VMS_LINKAGES 0x04 /* Contains VMS linkages info. */
-
-#define ELF_STRING_ia64_archext ".IA_64.archext"
-#define ELF_STRING_ia64_pltoff ".IA_64.pltoff"
-#define ELF_STRING_ia64_unwind ".IA_64.unwind"
-#define ELF_STRING_ia64_unwind_info ".IA_64.unwind_info"
-#define ELF_STRING_ia64_unwind_once ".gnu.linkonce.ia64unw."
-#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi."
-/* .IA_64.unwind_hdr is only used by HP-UX. */
-#define ELF_STRING_ia64_unwind_hdr ".IA_64.unwind_hdr"
-
-/* Bits in the sh_flags field of Elf64_Shdr: */
-
-#define SHF_IA_64_SHORT 0x10000000 /* Section near gp. */
-#define SHF_IA_64_NORECOV 0x20000000 /* Spec insns w/o recovery. */
-
-#define SHF_IA_64_HP_TLS 0x01000000 /* HP specific TLS flag. */
-
-#define SHF_IA_64_VMS_GLOBAL 0x0100000000ULL /* Global for clustering. */
-#define SHF_IA_64_VMS_OVERLAID 0x0200000000ULL /* To be overlaid. */
-#define SHF_IA_64_VMS_SHARED 0x0400000000ULL /* Shared btw processes. */
-#define SHF_IA_64_VMS_VECTOR 0x0800000000ULL /* Priv change mode vect. */
-#define SHF_IA_64_VMS_ALLOC_64BIT 0x1000000000ULL /* Allocate beyond 2GB. */
-#define SHF_IA_64_VMS_PROTECTED 0x2000000000ULL /* Export from sharable. */
-
-/* Possible values for sh_type in Elf64_Shdr: */
-
-#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* Extension bits. */
-#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* Unwind bits. */
-#define SHT_IA_64_LOPSREG (SHT_LOPROC + 0x8000000)
-/* ABI says (SHT_LOPROC + 0xfffffff) but I think it's a typo -- this makes sense. */
-#define SHT_IA_64_HIPSREG (SHT_LOPROC + 0x8ffffff)
-#define SHT_IA_64_PRIORITY_INIT (SHT_LOPROC + 0x9000000)
-
-/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its
- optimization annotation section. GCC does not generate it but we
- want readelf to know what they are. Do not use two capital Ns in
- annotate or sed will turn it into 32 or 64 during the build. */
-#define SHT_IA_64_HP_OPT_ANOT 0x60000004
-
-/* OpenVMS section types. */
-/* The section contains PC-to-source correlation information for use by the
- VMS RTL's traceback facility. */
-#define SHT_IA_64_VMS_TRACE 0x60000000
-/* The section contains routine signature information for use by the
- translated image executive. */
-#define SHT_IA_64_VMS_TIE_SIGNATURES 0x60000001
-/* The section contains dwarf-3 information. */
-#define SHT_IA_64_VMS_DEBUG 0x60000002
-/* The section contains the dwarf-3 string table. */
-#define SHT_IA_64_VMS_DEBUG_STR 0x60000003
-/* The section contains linkage information to perform consistency checking
- accross object modules. */
-#define SHT_IA_64_VMS_LINKAGES 0x60000004
-/* The section allows the symbol vector in an image to be location through
- the section table. */
-#define SHT_IA_64_VMS_SYMBOL_VECTOR 0x60000005
-/* The section contains inter-image fixups. */
-#define SHT_IA_64_VMS_FIXUP 0x60000006
-/* The section contains unmangled name info. */
-#define SHT_IA_64_VMS_DISPLAY_NAME_INFO 0x60000007
-
-/* Bits in the p_flags field of Elf64_Phdr: */
-
-#define PF_IA_64_NORECOV 0x80000000
-
-/* Possible values for p_type in Elf64_Phdr: */
-
-#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* Arch extension bits, */
-#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* IA64 unwind bits. */
-
-/* HP-UX specific values for p_type in Elf64_Phdr.
- These values are currently just used to make
- readelf more usable on HP-UX. */
-
-#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
-#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
-#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
-
-/* Possible values for d_tag in Elf64_Dyn: */
-
-#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
-
-/* VMS specific values for d_tag in Elf64_Dyn: */
-
-#define DT_IA_64_VMS_SUBTYPE (DT_LOOS + 0)
-#define DT_IA_64_VMS_IMGIOCNT (DT_LOOS + 2)
-#define DT_IA_64_VMS_LNKFLAGS (DT_LOOS + 8)
-#define DT_IA_64_VMS_VIR_MEM_BLK_SIZ (DT_LOOS + 10)
-#define DT_IA_64_VMS_IDENT (DT_LOOS + 12)
-#define DT_IA_64_VMS_NEEDED_IDENT (DT_LOOS + 16)
-#define DT_IA_64_VMS_IMG_RELA_CNT (DT_LOOS + 18)
-#define DT_IA_64_VMS_SEG_RELA_CNT (DT_LOOS + 20)
-#define DT_IA_64_VMS_FIXUP_RELA_CNT (DT_LOOS + 22)
-#define DT_IA_64_VMS_FIXUP_NEEDED (DT_LOOS + 24)
-#define DT_IA_64_VMS_SYMVEC_CNT (DT_LOOS + 26)
-#define DT_IA_64_VMS_XLATED (DT_LOOS + 30)
-#define DT_IA_64_VMS_STACKSIZE (DT_LOOS + 32)
-#define DT_IA_64_VMS_UNWINDSZ (DT_LOOS + 34)
-#define DT_IA_64_VMS_UNWIND_CODSEG (DT_LOOS + 36)
-#define DT_IA_64_VMS_UNWIND_INFOSEG (DT_LOOS + 38)
-#define DT_IA_64_VMS_LINKTIME (DT_LOOS + 40)
-#define DT_IA_64_VMS_SEG_NO (DT_LOOS + 42)
-#define DT_IA_64_VMS_SYMVEC_OFFSET (DT_LOOS + 44)
-#define DT_IA_64_VMS_SYMVEC_SEG (DT_LOOS + 46)
-#define DT_IA_64_VMS_UNWIND_OFFSET (DT_LOOS + 48)
-#define DT_IA_64_VMS_UNWIND_SEG (DT_LOOS + 50)
-#define DT_IA_64_VMS_STRTAB_OFFSET (DT_LOOS + 52)
-#define DT_IA_64_VMS_SYSVER_OFFSET (DT_LOOS + 54)
-#define DT_IA_64_VMS_IMG_RELA_OFF (DT_LOOS + 56)
-#define DT_IA_64_VMS_SEG_RELA_OFF (DT_LOOS + 58)
-#define DT_IA_64_VMS_FIXUP_RELA_OFF (DT_LOOS + 60)
-#define DT_IA_64_VMS_PLTGOT_OFFSET (DT_LOOS + 62)
-#define DT_IA_64_VMS_PLTGOT_SEG (DT_LOOS + 64)
-#define DT_IA_64_VMS_FPMODE (DT_LOOS + 66)
-
-/* Values for DT_IA_64_LNKFLAGS. */
-#define VMS_LF_CALL_DEBUG 0x0001 /* Activate and call the debugger. */
-#define VMS_LF_NOP0BUFS 0x0002 /* RMS use of P0 for i/o disabled. */
-#define VMS_LF_P0IMAGE 0x0004 /* Image in P0 space only. */
-#define VMS_LF_MKTHREADS 0x0008 /* Multiple kernel threads enabled. */
-#define VMS_LF_UPCALLS 0x0010 /* Upcalls enabled. */
-#define VMS_LF_IMGSTA 0x0020 /* Use SYS$IMGSTA. */
-#define VMS_LF_INITIALIZE 0x0040 /* Image uses tfradr2. */
-#define VMS_LF_MAIN 0x0080 /* Image uses tfradr3. */
-#define VMS_LF_EXE_INIT 0x0200 /* Image uses tfradr4. */
-#define VMS_LF_TBK_IN_IMG 0x0400 /* Traceback records in image. */
-#define VMS_LF_DBG_IN_IMG 0x0800 /* Debug records in image. */
-#define VMS_LF_TBK_IN_DSF 0x1000 /* Traceback records in DSF. */
-#define VMS_LF_DBG_IN_DSF 0x2000 /* Debug records in DSF. */
-#define VMS_LF_SIGNATURES 0x4000 /* Signatures present. */
-#define VMS_LF_REL_SEG_OFF 0x8000 /* Maintain relative pos of seg. */
-
-/* This section only used by HP-UX, The HP linker gives weak symbols
- precedence over regular common symbols. We want common to override
- weak. Using this common instead of SHN_COMMON does that. */
-#define SHN_IA_64_ANSI_COMMON SHN_LORESERVE
-
-/* This section is only used by OpenVMS. Symbol is defined in the symbol
- vector (only possible for image files). */
-#define SHN_IA_64_VMS_SYMVEC SHN_LOOS
-
-/* OpenVMS IA64-specific symbol attributes. */
-#define VMS_STO_VISIBILITY 3 /* Alias of the standard field. */
-#define VMS_ST_VISIBILITY(o) ((o) & VMS_STO_VISIBILITY)
-#define VMS_STO_FUNC_TYPE 0x30 /* Function type. */
-#define VMS_ST_FUNC_TYPE(o) (((o) & VMS_STO_FUNC_TYPE) >> 4)
-# define VMS_SFT_CODE_ADDR 0 /* Symbol value is a code address. */
-# define VMS_SFT_SYMV_IDX 1 /* Symbol value is a symbol vector index. */
-# define VMS_SFT_FD 2 /* Symbol value is a function descriptor. */
-# define VMS_SFT_RESERVE 3 /* Reserved. */
-#define VMS_STO_LINKAGE 0xc0
-#define VMS_ST_LINKAGE(o) (((o) & VMS_STO_LINKAGE) >> 6)
-# define VMS_STL_IGNORE 0 /* No associated linkage. */
-# define VMS_STL_RESERVE 1
-# define VMS_STL_STD 2 /* Standard linkage with return value. */
-# define VMS_STL_LNK 3 /* Explicit represented in .vms_linkages. */
-
-/* OpenVMS specific fixup and relocation structures. */
-
-typedef struct
-{
- unsigned char fixup_offset[8];
- unsigned char type[4];
- unsigned char fixup_seg[4];
- unsigned char addend[8];
- unsigned char symvec_index[4];
- unsigned char data_type[4];
-} Elf64_External_VMS_IMAGE_FIXUP;
-
-typedef struct
-{
- unsigned char rela_offset[8];
- unsigned char type[4];
- unsigned char rela_seg[4];
- unsigned char addend[8];
- unsigned char sym_offset[8];
- unsigned char sym_seg[4];
- unsigned char fill_1[4];
-} Elf64_External_VMS_IMAGE_RELA;
-
-/* Note segments. VMS is special as it uses 64-bit entries. */
-
-typedef struct {
- unsigned char namesz[8]; /* Size of entry's owner string */
- unsigned char descsz[8]; /* Size of the note descriptor */
- unsigned char type[8]; /* Interpretation of the descriptor */
- char name[1]; /* Start of the name+desc data */
-} Elf64_External_VMS_Note;
-
-#define NT_VMS_MHD 1 /* Object module name, version, and date/time. */
-#define NT_VMS_LNM 2 /* Language processor name. */
-#define NT_VMS_SRC 3 /* Source files. */
-#define NT_VMS_TITLE 4 /* Title text. */
-#define NT_VMS_EIDC 5 /* Entity ident consistency check. */
-#define NT_VMS_FPMODE 6 /* Whole program floating-point mode. */
-#define NT_VMS_LINKTIME 101 /* Date/time image was linked. */
-#define NT_VMS_IMGNAM 102 /* Image name string. */
-#define NT_VMS_IMGID 103 /* Image ident string. */
-#define NT_VMS_LINKID 104 /* Linker ident string. */
-#define NT_VMS_IMGBID 105 /* Image build ident string. */
-#define NT_VMS_GSTNAM 106 /* Global Symbol Table Name. */
-#define NT_VMS_ORIG_DYN 107 /* Original setting of dynamic data. */
-#define NT_VMS_PATCHTIME 108 /* Date/time of last patch. */
-
-/* Corresponding data for NT_VMS_ORIG_DYM. */
-
-typedef struct {
- unsigned char major_id[4]; /* Should be 1. */
- unsigned char minor_id[4]; /* Should be 3. */
- unsigned char manipulation_date[8]; /* Original NT_VMS_LNKTIME. */
- unsigned char link_flags[8]; /* Original NT_VMS_LNKFLAGS. */
- unsigned char elf_flags[4]; /* Original ehdr flags. */
- unsigned char _pad[4];
- unsigned char imgid[1]; /* Original NT_VMS_IMGID. */
-} Elf64_External_VMS_ORIG_DYN_Note;
-
-/* IA64-specific relocation types: */
-
-/* Relocs apply to specific instructions within a bundle. The least
- significant 2 bits of the address indicate which instruction in the
- bundle the reloc refers to (0=first slot, 1=second slow, 2=third
- slot, 3=undefined) and the remaining bits give the address of the
- bundle (16 byte aligned).
-
- The top 5 bits of the reloc code specifies the expression type, the
- low 3 bits the format of the data word being relocated. */
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_ia64_reloc_type)
- RELOC_NUMBER (R_IA64_NONE, 0x00) /* none */
-
- RELOC_NUMBER (R_IA64_IMM14, 0x21) /* symbol + addend, add imm14 */
- RELOC_NUMBER (R_IA64_IMM22, 0x22) /* symbol + addend, add imm22 */
- RELOC_NUMBER (R_IA64_IMM64, 0x23) /* symbol + addend, mov imm64 */
- RELOC_NUMBER (R_IA64_DIR32MSB, 0x24) /* symbol + addend, data4 MSB */
- RELOC_NUMBER (R_IA64_DIR32LSB, 0x25) /* symbol + addend, data4 LSB */
- RELOC_NUMBER (R_IA64_DIR64MSB, 0x26) /* symbol + addend, data8 MSB */
- RELOC_NUMBER (R_IA64_DIR64LSB, 0x27) /* symbol + addend, data8 LSB */
-
- RELOC_NUMBER (R_IA64_GPREL22, 0x2a) /* @gprel(sym+add), add imm22 */
- RELOC_NUMBER (R_IA64_GPREL64I, 0x2b) /* @gprel(sym+add), mov imm64 */
- RELOC_NUMBER (R_IA64_GPREL32MSB, 0x2c) /* @gprel(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_GPREL32LSB, 0x2d) /* @gprel(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_GPREL64MSB, 0x2e) /* @gprel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_GPREL64LSB, 0x2f) /* @gprel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_LTOFF22, 0x32) /* @ltoff(sym+add), add imm22 */
- RELOC_NUMBER (R_IA64_LTOFF64I, 0x33) /* @ltoff(sym+add), mov imm64 */
-
- RELOC_NUMBER (R_IA64_PLTOFF22, 0x3a) /* @pltoff(sym+add), add imm22 */
- RELOC_NUMBER (R_IA64_PLTOFF64I, 0x3b) /* @pltoff(sym+add), mov imm64 */
- RELOC_NUMBER (R_IA64_PLTOFF64MSB, 0x3e) /* @pltoff(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_PLTOFF64LSB, 0x3f) /* @pltoff(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_FPTR64I, 0x43) /* @fptr(sym+add), mov imm64 */
- RELOC_NUMBER (R_IA64_FPTR32MSB, 0x44) /* @fptr(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_FPTR32LSB, 0x45) /* @fptr(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_FPTR64MSB, 0x46) /* @fptr(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_FPTR64LSB, 0x47) /* @fptr(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_PCREL60B, 0x48) /* @pcrel(sym+add), brl */
- RELOC_NUMBER (R_IA64_PCREL21B, 0x49) /* @pcrel(sym+add), ptb, call */
- RELOC_NUMBER (R_IA64_PCREL21M, 0x4a) /* @pcrel(sym+add), chk.s */
- RELOC_NUMBER (R_IA64_PCREL21F, 0x4b) /* @pcrel(sym+add), fchkf */
- RELOC_NUMBER (R_IA64_PCREL32MSB, 0x4c) /* @pcrel(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_PCREL32LSB, 0x4d) /* @pcrel(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_PCREL64MSB, 0x4e) /* @pcrel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_PCREL64LSB, 0x4f) /* @pcrel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_LTOFF_FPTR22, 0x52) /* @ltoff(@fptr(s+a)), imm22 */
- RELOC_NUMBER (R_IA64_LTOFF_FPTR64I, 0x53) /* @ltoff(@fptr(s+a)), imm64 */
- RELOC_NUMBER (R_IA64_LTOFF_FPTR32MSB, 0x54) /* @ltoff(@fptr(s+a)), 4 MSB */
- RELOC_NUMBER (R_IA64_LTOFF_FPTR32LSB, 0x55) /* @ltoff(@fptr(s+a)), 4 LSB */
- RELOC_NUMBER (R_IA64_LTOFF_FPTR64MSB, 0x56) /* @ltoff(@fptr(s+a)), 8 MSB */
- RELOC_NUMBER (R_IA64_LTOFF_FPTR64LSB, 0x57) /* @ltoff(@fptr(s+a)), 8 LSB */
-
- RELOC_NUMBER (R_IA64_SEGREL32MSB, 0x5c) /* @segrel(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_SEGREL32LSB, 0x5d) /* @segrel(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_SEGREL64MSB, 0x5e) /* @segrel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_SEGREL64LSB, 0x5f) /* @segrel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_SECREL32MSB, 0x64) /* @secrel(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_SECREL32LSB, 0x65) /* @secrel(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_SECREL64MSB, 0x66) /* @secrel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_SECREL64LSB, 0x67) /* @secrel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_REL32MSB, 0x6c) /* data 4 + REL */
- RELOC_NUMBER (R_IA64_REL32LSB, 0x6d) /* data 4 + REL */
- RELOC_NUMBER (R_IA64_REL64MSB, 0x6e) /* data 8 + REL */
- RELOC_NUMBER (R_IA64_REL64LSB, 0x6f) /* data 8 + REL */
-
- RELOC_NUMBER (R_IA64_LTV32MSB, 0x74) /* symbol + addend, data4 MSB */
- RELOC_NUMBER (R_IA64_LTV32LSB, 0x75) /* symbol + addend, data4 LSB */
- RELOC_NUMBER (R_IA64_LTV64MSB, 0x76) /* symbol + addend, data8 MSB */
- RELOC_NUMBER (R_IA64_LTV64LSB, 0x77) /* symbol + addend, data8 LSB */
-
- RELOC_NUMBER (R_IA64_PCREL21BI, 0x79) /* @pcrel(sym+add), ptb, call */
- RELOC_NUMBER (R_IA64_PCREL22, 0x7a) /* @pcrel(sym+add), imm22 */
- RELOC_NUMBER (R_IA64_PCREL64I, 0x7b) /* @pcrel(sym+add), imm64 */
-
- RELOC_NUMBER (R_IA64_IPLTMSB, 0x80) /* dynamic reloc, imported PLT, MSB */
- RELOC_NUMBER (R_IA64_IPLTLSB, 0x81) /* dynamic reloc, imported PLT, LSB */
- RELOC_NUMBER (R_IA64_COPY, 0x84) /* dynamic reloc, data copy */
- RELOC_NUMBER (R_IA64_LTOFF22X, 0x86) /* LTOFF22, relaxable. */
- RELOC_NUMBER (R_IA64_LDXMOV, 0x87) /* Use of LTOFF22X. */
-
- RELOC_NUMBER (R_IA64_TPREL14, 0x91) /* @tprel(sym+add), add imm14 */
- RELOC_NUMBER (R_IA64_TPREL22, 0x92) /* @tprel(sym+add), add imm22 */
- RELOC_NUMBER (R_IA64_TPREL64I, 0x93) /* @tprel(sym+add), add imm64 */
- RELOC_NUMBER (R_IA64_TPREL64MSB, 0x96) /* @tprel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* @tprel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_LTOFF_TPREL22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */
-
- RELOC_NUMBER (R_IA64_DTPMOD64MSB, 0xa6) /* @dtpmod(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_DTPMOD64LSB, 0xa7) /* @dtpmod(sym+add), data8 LSB */
- RELOC_NUMBER (R_IA64_LTOFF_DTPMOD22, 0xaa) /* @ltoff(@dtpmod(s+a)), imm22 */
-
- RELOC_NUMBER (R_IA64_DTPREL14, 0xb1) /* @dtprel(sym+add), imm14 */
- RELOC_NUMBER (R_IA64_DTPREL22, 0xb2) /* @dtprel(sym+add), imm22 */
- RELOC_NUMBER (R_IA64_DTPREL64I, 0xb3) /* @dtprel(sym+add), imm64 */
- RELOC_NUMBER (R_IA64_DTPREL32MSB, 0xb4) /* @dtprel(sym+add), data4 MSB */
- RELOC_NUMBER (R_IA64_DTPREL32LSB, 0xb5) /* @dtprel(sym+add), data4 LSB */
- RELOC_NUMBER (R_IA64_DTPREL64MSB, 0xb6) /* @dtprel(sym+add), data8 MSB */
- RELOC_NUMBER (R_IA64_DTPREL64LSB, 0xb7) /* @dtprel(sym+add), data8 LSB */
-
- RELOC_NUMBER (R_IA64_LTOFF_DTPREL22, 0xba) /* @ltoff(@dtprel(s+a)), imm22 */
-
- FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0xba)
-
- /* OpenVMS specific relocs. */
- RELOC_NUMBER (R_IA64_VMS_DIR8, 0x70000000) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_DIR16LSB, 0x70000001) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_CALL_SIGNATURE, 0x70000002)
- RELOC_NUMBER (R_IA64_VMS_EXECLET_FUNC, 0x70000003)
- RELOC_NUMBER (R_IA64_VMS_EXECLET_DATA, 0x70000004)
- RELOC_NUMBER (R_IA64_VMS_FIX8, 0x70000005) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_FIX16, 0x70000006) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_FIX32, 0x70000007) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_FIX64, 0x70000008) /* S + A */
- RELOC_NUMBER (R_IA64_VMS_FIXFD, 0x70000009)
- RELOC_NUMBER (R_IA64_VMS_ACC_LOAD, 0x7000000a) /* ACC = S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_ADD, 0x7000000b) /* ACC += S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_SUB, 0x7000000c) /* ACC -= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_MUL, 0x7000000d) /* ACC *= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_DIV, 0x7000000e) /* ACC /= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_AND, 0x7000000f) /* ACC &= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_IOR, 0x70000010) /* ACC |= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_EOR, 0x70000011) /* ACC ^= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_ASH, 0x70000012) /* ACC >>= S + A */
- RELOC_NUMBER (R_IA64_VMS_ACC_STO8, 0x70000014) /* ACC */
- RELOC_NUMBER (R_IA64_VMS_ACC_STO16LSH, 0x70000015) /* ACC */
- RELOC_NUMBER (R_IA64_VMS_ACC_STO32LSH, 0x70000016) /* ACC */
- RELOC_NUMBER (R_IA64_VMS_ACC_STO64LSH, 0x70000017) /* ACC */
-END_RELOC_NUMBERS (R_IA64_max)
-
-#endif /* _ELF_IA64_H */
diff --git a/include/elf/internal.h b/include/elf/internal.h
deleted file mode 100644
index 461503783..000000000
--- a/include/elf/internal.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/* ELF support for BFD.
- Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
- 2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support, from information published
- in "UNIX System V Release 4, Programmers Guide: ANSI C and
- Programming Support Tools".
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of ELF support for BFD, and contains the portions
- that describe how ELF is represented internally in the BFD library.
- I.E. it describes the in-memory representation of ELF. It requires
- the elf-common.h file which contains the portions that are common to
- both the internal and external representations. */
-
-/* NOTE that these structures are not kept in the same order as they appear
- in the object file. In some cases they've been reordered for more optimal
- packing under various circumstances. */
-
-#ifndef _ELF_INTERNAL_H
-#define _ELF_INTERNAL_H
-
-/* Special section indices, which may show up in st_shndx fields, among
- other places. */
-
-#undef SHN_UNDEF
-#undef SHN_LORESERVE
-#undef SHN_LOPROC
-#undef SHN_HIPROC
-#undef SHN_LOOS
-#undef SHN_HIOS
-#undef SHN_ABS
-#undef SHN_COMMON
-#undef SHN_XINDEX
-#undef SHN_HIRESERVE
-#define SHN_UNDEF 0 /* Undefined section reference */
-#define SHN_LORESERVE (-0x100u) /* Begin range of reserved indices */
-#define SHN_LOPROC (-0x100u) /* Begin range of appl-specific */
-#define SHN_HIPROC (-0xE1u) /* End range of appl-specific */
-#define SHN_LOOS (-0xE0u) /* OS specific semantics, lo */
-#define SHN_HIOS (-0xC1u) /* OS specific semantics, hi */
-#define SHN_ABS (-0xFu) /* Associated symbol is absolute */
-#define SHN_COMMON (-0xEu) /* Associated symbol is in common */
-#define SHN_XINDEX (-0x1u) /* Section index is held elsewhere */
-#define SHN_HIRESERVE (-0x1u) /* End range of reserved indices */
-#define SHN_BAD (-0x101u) /* Used internally by bfd */
-
-/* ELF Header */
-
-#define EI_NIDENT 16 /* Size of e_ident[] */
-
-typedef struct elf_internal_ehdr {
- unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
- bfd_vma e_entry; /* Entry point virtual address */
- bfd_size_type e_phoff; /* Program header table file offset */
- bfd_size_type e_shoff; /* Section header table file offset */
- unsigned long e_version; /* Identifies object file version */
- unsigned long e_flags; /* Processor-specific flags */
- unsigned short e_type; /* Identifies object file type */
- unsigned short e_machine; /* Specifies required architecture */
- unsigned int e_ehsize; /* ELF header size in bytes */
- unsigned int e_phentsize; /* Program header table entry size */
- unsigned int e_phnum; /* Program header table entry count */
- unsigned int e_shentsize; /* Section header table entry size */
- unsigned int e_shnum; /* Section header table entry count */
- unsigned int e_shstrndx; /* Section header string table index */
-} Elf_Internal_Ehdr;
-
-/* Program header */
-
-struct elf_internal_phdr {
- unsigned long p_type; /* Identifies program segment type */
- unsigned long p_flags; /* Segment flags */
- bfd_vma p_offset; /* Segment file offset */
- bfd_vma p_vaddr; /* Segment virtual address */
- bfd_vma p_paddr; /* Segment physical address */
- bfd_vma p_filesz; /* Segment size in file */
- bfd_vma p_memsz; /* Segment size in memory */
- bfd_vma p_align; /* Segment alignment, file & memory */
-};
-
-typedef struct elf_internal_phdr Elf_Internal_Phdr;
-
-/* Section header */
-
-typedef struct elf_internal_shdr {
- unsigned int sh_name; /* Section name, index in string tbl */
- unsigned int sh_type; /* Type of section */
- bfd_vma sh_flags; /* Miscellaneous section attributes */
- bfd_vma sh_addr; /* Section virtual addr at execution */
- file_ptr sh_offset; /* Section file offset */
- bfd_size_type sh_size; /* Size of section in bytes */
- unsigned int sh_link; /* Index of another section */
- unsigned int sh_info; /* Additional section information */
- bfd_vma sh_addralign; /* Section alignment */
- bfd_size_type sh_entsize; /* Entry size if section holds table */
-
- /* The internal rep also has some cached info associated with it. */
- asection * bfd_section; /* Associated BFD section. */
- unsigned char *contents; /* Section contents. */
-} Elf_Internal_Shdr;
-
-/* Symbol table entry */
-
-struct elf_internal_sym {
- bfd_vma st_value; /* Value of the symbol */
- bfd_vma st_size; /* Associated symbol size */
- unsigned long st_name; /* Symbol name, index in string tbl */
- unsigned char st_info; /* Type and binding attributes */
- unsigned char st_other; /* Visibilty, and target specific */
- unsigned char st_target_internal; /* Internal-only information */
- unsigned int st_shndx; /* Associated section index */
-};
-
-typedef struct elf_internal_sym Elf_Internal_Sym;
-
-/* Note segments */
-
-typedef struct elf_internal_note {
- unsigned long namesz; /* Size of entry's owner string */
- unsigned long descsz; /* Size of the note descriptor */
- unsigned long type; /* Interpretation of the descriptor */
- char * namedata; /* Start of the name+desc data */
- char * descdata; /* Start of the desc data */
- bfd_vma descpos; /* File offset of the descdata */
-} Elf_Internal_Note;
-
-/* Relocation Entries */
-
-typedef struct elf_internal_rela {
- bfd_vma r_offset; /* Location at which to apply the action */
- bfd_vma r_info; /* Index and Type of relocation */
- bfd_vma r_addend; /* Constant addend used to compute value */
-} Elf_Internal_Rela;
-
-/* dynamic section structure */
-
-typedef struct elf_internal_dyn {
- /* This needs to support 64-bit values in elf64. */
- bfd_vma d_tag; /* entry tag value */
- union {
- /* This needs to support 64-bit values in elf64. */
- bfd_vma d_val;
- bfd_vma d_ptr;
- } d_un;
-} Elf_Internal_Dyn;
-
-/* This structure appears in a SHT_GNU_verdef section. */
-
-typedef struct elf_internal_verdef {
- unsigned short vd_version; /* Version number of structure. */
- unsigned short vd_flags; /* Flags (VER_FLG_*). */
- unsigned short vd_ndx; /* Version index. */
- unsigned short vd_cnt; /* Number of verdaux entries. */
- unsigned long vd_hash; /* Hash of name. */
- unsigned long vd_aux; /* Offset to verdaux entries. */
- unsigned long vd_next; /* Offset to next verdef. */
-
- /* These fields are set up when BFD reads in the structure. FIXME:
- It would be cleaner to store these in a different structure. */
- bfd *vd_bfd; /* BFD. */
- const char *vd_nodename; /* Version name. */
- struct elf_internal_verdef *vd_nextdef; /* vd_next as pointer. */
- struct elf_internal_verdaux *vd_auxptr; /* vd_aux as pointer. */
- unsigned int vd_exp_refno; /* Used by the linker. */
-} Elf_Internal_Verdef;
-
-/* This structure appears in a SHT_GNU_verdef section. */
-
-typedef struct elf_internal_verdaux {
- unsigned long vda_name; /* String table offset of name. */
- unsigned long vda_next; /* Offset to next verdaux. */
-
- /* These fields are set up when BFD reads in the structure. FIXME:
- It would be cleaner to store these in a different structure. */
- const char *vda_nodename; /* vda_name as pointer. */
- struct elf_internal_verdaux *vda_nextptr; /* vda_next as pointer. */
-} Elf_Internal_Verdaux;
-
-/* This structure appears in a SHT_GNU_verneed section. */
-
-typedef struct elf_internal_verneed {
- unsigned short vn_version; /* Version number of structure. */
- unsigned short vn_cnt; /* Number of vernaux entries. */
- unsigned long vn_file; /* String table offset of library name. */
- unsigned long vn_aux; /* Offset to vernaux entries. */
- unsigned long vn_next; /* Offset to next verneed. */
-
- /* These fields are set up when BFD reads in the structure. FIXME:
- It would be cleaner to store these in a different structure. */
- bfd *vn_bfd; /* BFD. */
- const char *vn_filename; /* vn_file as pointer. */
- struct elf_internal_vernaux *vn_auxptr; /* vn_aux as pointer. */
- struct elf_internal_verneed *vn_nextref; /* vn_nextref as pointer. */
-} Elf_Internal_Verneed;
-
-/* This structure appears in a SHT_GNU_verneed section. */
-
-typedef struct elf_internal_vernaux {
- unsigned long vna_hash; /* Hash of dependency name. */
- unsigned short vna_flags; /* Flags (VER_FLG_*). */
- unsigned short vna_other; /* Unused. */
- unsigned long vna_name; /* String table offset to version name. */
- unsigned long vna_next; /* Offset to next vernaux. */
-
- /* These fields are set up when BFD reads in the structure. FIXME:
- It would be cleaner to store these in a different structure. */
- const char *vna_nodename; /* vna_name as pointer. */
- struct elf_internal_vernaux *vna_nextptr; /* vna_next as pointer. */
-} Elf_Internal_Vernaux;
-
-/* This structure appears in a SHT_GNU_versym section. This is not a
- standard ELF structure; ELF just uses Elf32_Half. */
-
-typedef struct elf_internal_versym {
- unsigned short vs_vers;
-} Elf_Internal_Versym;
-
-/* Structure for syminfo section. */
-typedef struct
-{
- unsigned short int si_boundto;
- unsigned short int si_flags;
-} Elf_Internal_Syminfo;
-
-/* This structure appears on the stack and in NT_AUXV core file notes. */
-typedef struct
-{
- bfd_vma a_type;
- bfd_vma a_val;
-} Elf_Internal_Auxv;
-
-
-/* This structure is used to describe how sections should be assigned
- to program segments. */
-
-struct elf_segment_map
-{
- /* Next program segment. */
- struct elf_segment_map *next;
- /* Program segment type. */
- unsigned long p_type;
- /* Program segment flags. */
- unsigned long p_flags;
- /* Program segment physical address. */
- bfd_vma p_paddr;
- /* Program segment virtual address offset from section vma. */
- bfd_vma p_vaddr_offset;
- /* Program segment alignment. */
- bfd_vma p_align;
- /* Segment size in file and memory */
- bfd_vma p_size;
- /* Required size of filehdr + phdrs, if non-zero */
- bfd_vma header_size;
- /* Whether the p_flags field is valid; if not, the flags are based
- on the section flags. */
- unsigned int p_flags_valid : 1;
- /* Whether the p_paddr field is valid; if not, the physical address
- is based on the section lma values. */
- unsigned int p_paddr_valid : 1;
- /* Whether the p_align field is valid; if not, PT_LOAD segment
- alignment is based on the default maximum page size. */
- unsigned int p_align_valid : 1;
- /* Whether the p_size field is valid; if not, the size are based
- on the section sizes. */
- unsigned int p_size_valid : 1;
- /* Whether this segment includes the file header. */
- unsigned int includes_filehdr : 1;
- /* Whether this segment includes the program headers. */
- unsigned int includes_phdrs : 1;
- /* Number of sections (may be 0). */
- unsigned int count;
- /* Sections. Actual number of elements is in count field. */
- asection *sections[1];
-};
-
-/* .tbss is special. It doesn't contribute memory space to normal
- segments and it doesn't take file space in normal segments. */
-#define ELF_TBSS_SPECIAL(sec_hdr, segment) \
- (((sec_hdr)->sh_flags & SHF_TLS) != 0 \
- && (sec_hdr)->sh_type == SHT_NOBITS \
- && (segment)->p_type != PT_TLS)
-
-#define ELF_SECTION_SIZE(sec_hdr, segment) \
- (ELF_TBSS_SPECIAL(sec_hdr, segment) ? 0 : (sec_hdr)->sh_size)
-
-/* Decide if the section SEC_HDR is in SEGMENT. If CHECK_VMA, then
- VMAs are checked for alloc sections. If STRICT, then a zero size
- section won't match at the end of a segment, unless the segment
- is also zero size. Regardless of STRICT and CHECK_VMA, zero size
- sections won't match at the start or end of PT_DYNAMIC, unless
- PT_DYNAMIC is itself zero sized. */
-#define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma, strict) \
- ((/* Only PT_LOAD, PT_GNU_RELRO and PT_TLS segments can contain \
- SHF_TLS sections. */ \
- ((((sec_hdr)->sh_flags & SHF_TLS) != 0) \
- && ((segment)->p_type == PT_TLS \
- || (segment)->p_type == PT_GNU_RELRO \
- || (segment)->p_type == PT_LOAD)) \
- /* PT_TLS segment contains only SHF_TLS sections, PT_PHDR no \
- sections at all. */ \
- || (((sec_hdr)->sh_flags & SHF_TLS) == 0 \
- && (segment)->p_type != PT_TLS \
- && (segment)->p_type != PT_PHDR)) \
- /* Any section besides one of type SHT_NOBITS must have file \
- offsets within the segment. */ \
- && ((sec_hdr)->sh_type == SHT_NOBITS \
- || ((bfd_vma) (sec_hdr)->sh_offset >= (segment)->p_offset \
- && (!(strict) \
- || ((sec_hdr)->sh_offset - (segment)->p_offset \
- <= (segment)->p_filesz - 1)) \
- && (((sec_hdr)->sh_offset - (segment)->p_offset \
- + ELF_SECTION_SIZE(sec_hdr, segment)) \
- <= (segment)->p_filesz))) \
- /* SHF_ALLOC sections must have VMAs within the segment. */ \
- && (!(check_vma) \
- || ((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
- || ((sec_hdr)->sh_addr >= (segment)->p_vaddr \
- && (!(strict) \
- || ((sec_hdr)->sh_addr - (segment)->p_vaddr \
- <= (segment)->p_memsz - 1)) \
- && (((sec_hdr)->sh_addr - (segment)->p_vaddr \
- + ELF_SECTION_SIZE(sec_hdr, segment)) \
- <= (segment)->p_memsz))) \
- /* No zero size sections at start or end of PT_DYNAMIC. */ \
- && ((segment)->p_type != PT_DYNAMIC \
- || (sec_hdr)->sh_size != 0 \
- || (segment)->p_memsz == 0 \
- || (((sec_hdr)->sh_type == SHT_NOBITS \
- || ((bfd_vma) (sec_hdr)->sh_offset > (segment)->p_offset \
- && ((sec_hdr)->sh_offset - (segment)->p_offset \
- < (segment)->p_filesz))) \
- && (((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
- || ((sec_hdr)->sh_addr > (segment)->p_vaddr \
- && ((sec_hdr)->sh_addr - (segment)->p_vaddr \
- < (segment)->p_memsz))))))
-
-#define ELF_SECTION_IN_SEGMENT(sec_hdr, segment) \
- (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 0))
-
-#define ELF_SECTION_IN_SEGMENT_STRICT(sec_hdr, segment) \
- (ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 1))
-
-#endif /* _ELF_INTERNAL_H */
diff --git a/include/elf/ip2k.h b/include/elf/ip2k.h
deleted file mode 100644
index 8b4f36ef3..000000000
--- a/include/elf/ip2k.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* IP2xxx ELF support for BFD.
- Copyright (C) 2000, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_IP2K_H
-#define _ELF_IP2K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_ip2k_reloc_type)
- RELOC_NUMBER (R_IP2K_NONE, 0)
- RELOC_NUMBER (R_IP2K_16, 1)
- RELOC_NUMBER (R_IP2K_32, 2)
- RELOC_NUMBER (R_IP2K_FR9, 3)
- RELOC_NUMBER (R_IP2K_BANK, 4)
- RELOC_NUMBER (R_IP2K_ADDR16CJP, 5)
- RELOC_NUMBER (R_IP2K_PAGE3, 6)
- RELOC_NUMBER (R_IP2K_LO8DATA, 7)
- RELOC_NUMBER (R_IP2K_HI8DATA, 8)
- RELOC_NUMBER (R_IP2K_LO8INSN, 9)
- RELOC_NUMBER (R_IP2K_HI8INSN, 10)
- RELOC_NUMBER (R_IP2K_PC_SKIP, 11)
- RELOC_NUMBER (R_IP2K_TEXT, 12)
- RELOC_NUMBER (R_IP2K_FR_OFFSET, 13)
- RELOC_NUMBER (R_IP2K_EX8DATA, 14)
-END_RELOC_NUMBERS(R_IP2K_max)
-
-
-/* Define the data & instruction memory discriminator. In a linked
- executable, an symbol should be deemed to point to an instruction
- if ((address & IP2K_INSN_MASK) == IP2K_INSN_VALUE), and similarly
- for the data space. See also `ld/emulparams/elf32ip2k.sh'. */
-/* ??? Consider extending the _MASK values to include all the
- intermediate bits that must be zero due to the limited physical
- memory size on the IP2K. */
-
-#define IP2K_DATA_MASK 0xff000000
-#define IP2K_DATA_VALUE 0x01000000
-#define IP2K_INSN_MASK 0xff000000
-#define IP2K_INSN_VALUE 0x02000000
-
-/* The location of the memory mapped hardware stack. */
-#define IP2K_STACK_VALUE 0x0f000000
-#define IP2K_STACK_SIZE 0x20
-
-#endif /* _ELF_IP2K_H */
diff --git a/include/elf/iq2000.h b/include/elf/iq2000.h
deleted file mode 100644
index 0f8e69714..000000000
--- a/include/elf/iq2000.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* IQ2000 ELF support for BFD.
- Copyright (C) 2002, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_IQ2000_H
-#define _ELF_IQ2000_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_iq2000_reloc_type)
- RELOC_NUMBER (R_IQ2000_NONE, 0)
- RELOC_NUMBER (R_IQ2000_16, 1)
- RELOC_NUMBER (R_IQ2000_32, 2)
- RELOC_NUMBER (R_IQ2000_26, 3)
- RELOC_NUMBER (R_IQ2000_PC16, 4)
- RELOC_NUMBER (R_IQ2000_HI16, 5)
- RELOC_NUMBER (R_IQ2000_LO16, 6)
- RELOC_NUMBER (R_IQ2000_OFFSET_16, 7)
- RELOC_NUMBER (R_IQ2000_OFFSET_21, 8)
- RELOC_NUMBER (R_IQ2000_UHI16, 9)
- RELOC_NUMBER (R_IQ2000_32_DEBUG, 10)
- RELOC_NUMBER (R_IQ2000_GNU_VTINHERIT, 200)
- RELOC_NUMBER (R_IQ2000_GNU_VTENTRY, 201)
-END_RELOC_NUMBERS(R_IQ2000_max)
-
-#define EF_IQ2000_CPU_IQ2000 0x00000001 /* default */
-#define EF_IQ2000_CPU_IQ10 0x00000002 /* IQ10 */
-#define EF_IQ2000_CPU_MASK 0x00000003 /* specific cpu bits */
-#define EF_IQ2000_ALL_FLAGS (EF_IQ2000_CPU_MASK)
-
-/* Define the data & instruction memory discriminator. In a linked
- executable, an symbol should be deemed to point to an instruction
- if ((address & IQ2000_INSN_MASK) == IQ2000_INSN_VALUE), and similarly
- for the data space. */
-
-#define IQ2000_DATA_MASK 0x80000000
-#define IQ2000_DATA_VALUE 0x00000000
-#define IQ2000_INSN_MASK 0x80000000
-#define IQ2000_INSN_VALUE 0x80000000
-
-
-#endif /* _ELF_IQ2000_H */
diff --git a/include/elf/lm32.h b/include/elf/lm32.h
deleted file mode 100644
index 6ed34ec49..000000000
--- a/include/elf/lm32.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Lattice Mico32 ELF support for BFD.
- Copyright 2008, 2010 Free Software Foundation, Inc.
- Contributed by Jon Beniston <jon@beniston.com>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_LM32_H
-#define _ELF_LM32_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_lm32_reloc_type)
- RELOC_NUMBER (R_LM32_NONE, 0)
- RELOC_NUMBER (R_LM32_8, 1)
- RELOC_NUMBER (R_LM32_16, 2)
- RELOC_NUMBER (R_LM32_32, 3)
- RELOC_NUMBER (R_LM32_HI16, 4)
- RELOC_NUMBER (R_LM32_LO16, 5)
- RELOC_NUMBER (R_LM32_GPREL16, 6)
- RELOC_NUMBER (R_LM32_CALL, 7)
- RELOC_NUMBER (R_LM32_BRANCH, 8)
- RELOC_NUMBER (R_LM32_GNU_VTINHERIT, 9)
- RELOC_NUMBER (R_LM32_GNU_VTENTRY, 10)
- RELOC_NUMBER (R_LM32_16_GOT, 11)
- RELOC_NUMBER (R_LM32_GOTOFF_HI16, 12)
- RELOC_NUMBER (R_LM32_GOTOFF_LO16, 13)
- RELOC_NUMBER (R_LM32_COPY, 14)
- RELOC_NUMBER (R_LM32_GLOB_DAT, 15)
- RELOC_NUMBER (R_LM32_JMP_SLOT, 16)
- RELOC_NUMBER (R_LM32_RELATIVE, 17)
-END_RELOC_NUMBERS (R_LM32_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-#define EF_LM32_MACH 0x00000001
-
-/* Various CPU types. */
-
-#define E_LM32_MACH 0x1
-
-#endif /* _ELF_LM32_H */
diff --git a/include/elf/m32c.h b/include/elf/m32c.h
deleted file mode 100644
index 29b80a679..000000000
--- a/include/elf/m32c.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* M32C ELF support for BFD.
- Copyright (C) 2004, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_M32C_H
-#define _ELF_M32C_H
-
-#include "elf/reloc-macros.h"
-
- /* Relocations. */
- START_RELOC_NUMBERS (elf_m32c_reloc_type)
- RELOC_NUMBER (R_M32C_NONE, 0)
- RELOC_NUMBER (R_M32C_16, 1)
- RELOC_NUMBER (R_M32C_24, 2)
- RELOC_NUMBER (R_M32C_32, 3)
- RELOC_NUMBER (R_M32C_8_PCREL, 4)
- RELOC_NUMBER (R_M32C_16_PCREL, 5)
-
- /* 8 bit unsigned address, used for dsp8[a0] etc */
- RELOC_NUMBER (R_M32C_8, 6)
- /* Bits 0..15 of an address, for SMOVF's A0, A1A0, etc. */
- RELOC_NUMBER (R_M32C_LO16, 7)
- /* Bits 16..23 of an address, for SMOVF's R1H etc. */
- RELOC_NUMBER (R_M32C_HI8, 8)
- /* Bits 16..31 of an address, for LDE's A1A0 etc. */
- RELOC_NUMBER (R_M32C_HI16, 9)
-
- /* These are relocs we need when relaxing. */
- /* Marks various jump opcodes. */
- RELOC_NUMBER (R_M32C_RL_JUMP, 10)
- /* Marks standard one-address form. */
- RELOC_NUMBER (R_M32C_RL_1ADDR, 11)
- /* Marks standard two-address form. */
- RELOC_NUMBER (R_M32C_RL_2ADDR, 12)
-
- END_RELOC_NUMBERS (R_M32C_max)
-
-#define EF_M32C_CPU_M16C 0x00000075 /* default */
-#define EF_M32C_CPU_M32C 0x00000078 /* m32c */
-#define EF_M32C_CPU_MASK 0x0000007F /* specific cpu bits */
-#define EF_M32C_ALL_FLAGS (EF_M32C_CPU_MASK)
-
-/* Define the data & instruction memory discriminator. In a linked
- executable, an symbol should be deemed to point to an instruction
- if ((address & M16C_INSN_MASK) == M16C_INSN_VALUE), and similarly
- for the data space. See also `ld/emulparams/elf32m32c.sh'. */
-#define M32C_DATA_MASK 0xffc00000
-#define M32C_DATA_VALUE 0x00000000
-#define M32C_INSN_MASK 0xffc00000
-#define M32C_INSN_VALUE 0x00400000
-
-#endif /* _ELF_M32C_H */
diff --git a/include/elf/m32r.h b/include/elf/m32r.h
deleted file mode 100644
index 7e06e3f31..000000000
--- a/include/elf/m32r.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* M32R ELF support for BFD.
- Copyright 1996, 1997, 1998, 1999, 2000, 2003, 2004, 2008, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_M32R_H
-#define _ELF_M32R_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_m32r_reloc_type)
- RELOC_NUMBER (R_M32R_NONE, 0)
- /* REL relocations */
- RELOC_NUMBER (R_M32R_16, 1) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_32, 2) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_24, 3) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_10_PCREL, 4) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_18_PCREL, 5) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_26_PCREL, 6) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_HI16_ULO, 7) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_HI16_SLO, 8) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_LO16, 9) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_SDA16, 10) /* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)/* For backwards compatibility. */
- RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12) /* For backwards compatibility. */
-
- /* RELA relocations */
- RELOC_NUMBER (R_M32R_16_RELA, 33)
- RELOC_NUMBER (R_M32R_32_RELA, 34)
- RELOC_NUMBER (R_M32R_24_RELA, 35)
- RELOC_NUMBER (R_M32R_10_PCREL_RELA, 36)
- RELOC_NUMBER (R_M32R_18_PCREL_RELA, 37)
- RELOC_NUMBER (R_M32R_26_PCREL_RELA, 38)
- RELOC_NUMBER (R_M32R_HI16_ULO_RELA, 39)
- RELOC_NUMBER (R_M32R_HI16_SLO_RELA, 40)
- RELOC_NUMBER (R_M32R_LO16_RELA, 41)
- RELOC_NUMBER (R_M32R_SDA16_RELA, 42)
- RELOC_NUMBER (R_M32R_RELA_GNU_VTINHERIT, 43)
- RELOC_NUMBER (R_M32R_RELA_GNU_VTENTRY, 44)
-
- RELOC_NUMBER (R_M32R_REL32, 45)
-
- RELOC_NUMBER (R_M32R_GOT24, 48)
- RELOC_NUMBER (R_M32R_26_PLTREL, 49)
- RELOC_NUMBER (R_M32R_COPY, 50)
- RELOC_NUMBER (R_M32R_GLOB_DAT, 51)
- RELOC_NUMBER (R_M32R_JMP_SLOT, 52)
- RELOC_NUMBER (R_M32R_RELATIVE, 53)
- RELOC_NUMBER (R_M32R_GOTOFF, 54)
- RELOC_NUMBER (R_M32R_GOTPC24, 55)
- RELOC_NUMBER (R_M32R_GOT16_HI_ULO, 56)
- RELOC_NUMBER (R_M32R_GOT16_HI_SLO, 57)
- RELOC_NUMBER (R_M32R_GOT16_LO, 58)
- RELOC_NUMBER (R_M32R_GOTPC_HI_ULO, 59)
- RELOC_NUMBER (R_M32R_GOTPC_HI_SLO, 60)
- RELOC_NUMBER (R_M32R_GOTPC_LO, 61)
- RELOC_NUMBER (R_M32R_GOTOFF_HI_ULO, 62)
- RELOC_NUMBER (R_M32R_GOTOFF_HI_SLO, 63)
- RELOC_NUMBER (R_M32R_GOTOFF_LO, 64)
-
-END_RELOC_NUMBERS (R_M32R_max)
-
-/* Processor specific section indices. These sections do not actually
- exist. Symbols with a st_shndx field corresponding to one of these
- values have a special meaning. */
-
-/* Small common symbol. */
-#define SHN_M32R_SCOMMON SHN_LORESERVE
-
-/* Processor specific section flags. */
-
-/* This section contains sufficient relocs to be relaxed.
- When relaxing, even relocs of branch instructions the assembler could
- complete must be present because relaxing may cause the branch target to
- move. */
-#define SHF_M32R_CAN_RELAX 0x10000000
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* Two bit m32r architecture field. */
-#define EF_M32R_ARCH 0x30000000
-
-/* m32r code. */
-#define E_M32R_ARCH 0x00000000
-/* m32rx code. */
-#define E_M32RX_ARCH 0x10000000
-/* m32r2 code. */
-#define E_M32R2_ARCH 0x20000000
-
-/* 12 bit m32r new instructions field. */
-#define EF_M32R_INST 0x0FFF0000
-/* Parallel instructions. */
-#define E_M32R_HAS_PARALLEL 0x00010000
-/* Hidden instructions for m32rx:
- jc, jnc, macwhi-a, macwlo-a, mulwhi-a, mulwlo-a, sth+, shb+, sat, pcmpbz,
- sc, snc. */
-#define E_M32R_HAS_HIDDEN_INST 0x00020000
-/* New bit instructions:
- clrpsw, setpsw, bset, bclr, btst. */
-#define E_M32R_HAS_BIT_INST 0x00040000
-/* Floating point instructions. */
-#define E_M32R_HAS_FLOAT_INST 0x00080000
-
-/* 4 bit m32r ignore to check field. */
-#define EF_M32R_IGNORE 0x0000000F
-
-#endif
diff --git a/include/elf/m68hc11.h b/include/elf/m68hc11.h
deleted file mode 100644
index ca325d981..000000000
--- a/include/elf/m68hc11.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* m68hc11 & m68hc12 ELF support for BFD.
- Copyright 1999, 2000, 2001, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_M68HC11_H
-#define _ELF_M68HC11_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
- RELOC_NUMBER (R_M68HC11_NONE, 0)
- RELOC_NUMBER (R_M68HC11_8, 1)
- RELOC_NUMBER (R_M68HC11_HI8, 2)
- RELOC_NUMBER (R_M68HC11_LO8, 3)
- RELOC_NUMBER (R_M68HC11_PCREL_8, 4)
- RELOC_NUMBER (R_M68HC11_16, 5)
- RELOC_NUMBER (R_M68HC11_32, 6)
- RELOC_NUMBER (R_M68HC11_3B, 7)
- RELOC_NUMBER (R_M68HC11_PCREL_16, 8)
-
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9)
- RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10)
-
- RELOC_NUMBER (R_M68HC11_24, 11)
- RELOC_NUMBER (R_M68HC11_LO16, 12)
- RELOC_NUMBER (R_M68HC11_PAGE, 13)
-
- /* GNU extension for linker relaxation.
- Mark beginning of a jump instruction (any form). */
- RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
-
- /* Mark beginning of Gcc relaxation group instruction. */
- RELOC_NUMBER (R_M68HC11_RL_GROUP, 21)
-END_RELOC_NUMBERS (R_M68HC11_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* ABI identification. */
-#define EF_M68HC11_ABI 0x00000000F
-
-/* Integers are 32-bit long. */
-#define E_M68HC11_I32 0x000000001
-
-/* Doubles are 64-bit long. */
-#define E_M68HC11_F64 0x000000002
-
-/* Uses 68HC12 memory banks. */
-#define E_M68HC12_BANKS 0x000000004
-
-#define EF_M68HC11_MACH_MASK 0xF0
-#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */
-#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */
-#define EF_M68HCS12_MACH 0x20 /* 68HCS12 microcontroller. */
-#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK)
-
-/* True if we can merge machines. A generic HC12 can work on any proc
- but once we have specific code, merge is not possible. */
-#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \
- ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
- || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \
- || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC))
-
-#define EF_M68HC11_MERGE_MACH(mach1, mach2) \
- (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
- || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \
- EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1))
-
-
-/* Special values for the st_other field in the symbol table. These
- are used for 68HC12 to identify far functions (must be called with
- 'call' and returns with 'rtc'). */
-#define STO_M68HC12_FAR 0x80
-
-/* Identify interrupt handlers. This is used by the debugger to
- correctly compute the stack frame. */
-#define STO_M68HC12_INTERRUPT 0x40
-
-#endif
diff --git a/include/elf/m68k.h b/include/elf/m68k.h
deleted file mode 100644
index f6f37ccf4..000000000
--- a/include/elf/m68k.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* MC68k ELF support for BFD.
- Copyright 1998, 1999, 2000, 2002, 2005, 2006, 2007, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_M68K_H
-#define _ELF_M68K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_m68k_reloc_type)
- RELOC_NUMBER (R_68K_NONE, 0) /* No reloc */
- RELOC_NUMBER (R_68K_32, 1) /* Direct 32 bit */
- RELOC_NUMBER (R_68K_16, 2) /* Direct 16 bit */
- RELOC_NUMBER (R_68K_8, 3) /* Direct 8 bit */
- RELOC_NUMBER (R_68K_PC32, 4) /* PC relative 32 bit */
- RELOC_NUMBER (R_68K_PC16, 5) /* PC relative 16 bit */
- RELOC_NUMBER (R_68K_PC8, 6) /* PC relative 8 bit */
- RELOC_NUMBER (R_68K_GOT32, 7) /* 32 bit PC relative GOT entry */
- RELOC_NUMBER (R_68K_GOT16, 8) /* 16 bit PC relative GOT entry */
- RELOC_NUMBER (R_68K_GOT8, 9) /* 8 bit PC relative GOT entry */
- RELOC_NUMBER (R_68K_GOT32O, 10) /* 32 bit GOT offset */
- RELOC_NUMBER (R_68K_GOT16O, 11) /* 16 bit GOT offset */
- RELOC_NUMBER (R_68K_GOT8O, 12) /* 8 bit GOT offset */
- RELOC_NUMBER (R_68K_PLT32, 13) /* 32 bit PC relative PLT address */
- RELOC_NUMBER (R_68K_PLT16, 14) /* 16 bit PC relative PLT address */
- RELOC_NUMBER (R_68K_PLT8, 15) /* 8 bit PC relative PLT address */
- RELOC_NUMBER (R_68K_PLT32O, 16) /* 32 bit PLT offset */
- RELOC_NUMBER (R_68K_PLT16O, 17) /* 16 bit PLT offset */
- RELOC_NUMBER (R_68K_PLT8O, 18) /* 8 bit PLT offset */
- RELOC_NUMBER (R_68K_COPY, 19) /* Copy symbol at runtime */
- RELOC_NUMBER (R_68K_GLOB_DAT, 20) /* Create GOT entry */
- RELOC_NUMBER (R_68K_JMP_SLOT, 21) /* Create PLT entry */
- RELOC_NUMBER (R_68K_RELATIVE, 22) /* Adjust by program base */
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23)
- RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
- /* TLS static relocations. */
- RELOC_NUMBER (R_68K_TLS_GD32, 25)
- RELOC_NUMBER (R_68K_TLS_GD16, 26)
- RELOC_NUMBER (R_68K_TLS_GD8, 27)
- RELOC_NUMBER (R_68K_TLS_LDM32, 28)
- RELOC_NUMBER (R_68K_TLS_LDM16, 29)
- RELOC_NUMBER (R_68K_TLS_LDM8, 30)
- RELOC_NUMBER (R_68K_TLS_LDO32, 31)
- RELOC_NUMBER (R_68K_TLS_LDO16, 32)
- RELOC_NUMBER (R_68K_TLS_LDO8, 33)
- RELOC_NUMBER (R_68K_TLS_IE32, 34)
- RELOC_NUMBER (R_68K_TLS_IE16, 35)
- RELOC_NUMBER (R_68K_TLS_IE8, 36)
- RELOC_NUMBER (R_68K_TLS_LE32, 37)
- RELOC_NUMBER (R_68K_TLS_LE16, 38)
- RELOC_NUMBER (R_68K_TLS_LE8, 39)
- RELOC_NUMBER (R_68K_TLS_DTPMOD32, 40)
- RELOC_NUMBER (R_68K_TLS_DTPREL32, 41)
- RELOC_NUMBER (R_68K_TLS_TPREL32, 42)
-END_RELOC_NUMBERS (R_68K_max)
-
-/* We use the top 24 bits to encode information about the
- architecture variant. */
-#define EF_M68K_CPU32 0x00810000
-#define EF_M68K_M68000 0x01000000
-#define EF_M68K_CFV4E 0x00008000
-#define EF_M68K_FIDO 0x02000000
-#define EF_M68K_ARCH_MASK \
- (EF_M68K_M68000 | EF_M68K_CPU32 | EF_M68K_CFV4E | EF_M68K_FIDO)
-
-/* We use the bottom 8 bits to encode information about the
- coldfire variant. If we use any of these bits, the top 24 bits are
- either 0 or EF_M68K_CFV4E. */
-#define EF_M68K_CF_ISA_MASK 0x0F /* Which ISA */
-#define EF_M68K_CF_ISA_A_NODIV 0x01 /* ISA A except for div */
-#define EF_M68K_CF_ISA_A 0x02
-#define EF_M68K_CF_ISA_A_PLUS 0x03
-#define EF_M68K_CF_ISA_B_NOUSP 0x04 /* ISA_B except for USP */
-#define EF_M68K_CF_ISA_B 0x05
-#define EF_M68K_CF_ISA_C 0x06
-#define EF_M68K_CF_ISA_C_NODIV 0x07 /* ISA C except for div */
-#define EF_M68K_CF_MAC_MASK 0x30
-#define EF_M68K_CF_MAC 0x10 /* MAC */
-#define EF_M68K_CF_EMAC 0x20 /* EMAC */
-#define EF_M68K_CF_EMAC_B 0x30 /* EMAC_B */
-#define EF_M68K_CF_FLOAT 0x40 /* Has float insns */
-#define EF_M68K_CF_MASK 0xFF
-
-#endif
diff --git a/include/elf/mcore.h b/include/elf/mcore.h
deleted file mode 100644
index 2745feebd..000000000
--- a/include/elf/mcore.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Motorola MCore support for BFD.
- Copyright 1995, 1999, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MCore ELF ABI. */
-#ifndef _ELF_MORE_H
-#define _ELF_MORE_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_mcore_reloc_type)
- RELOC_NUMBER (R_MCORE_NONE, 0)
- RELOC_NUMBER (R_MCORE_ADDR32, 1)
- RELOC_NUMBER (R_MCORE_PCRELIMM8BY4, 2)
- RELOC_NUMBER (R_MCORE_PCRELIMM11BY2, 3)
- RELOC_NUMBER (R_MCORE_PCRELIMM4BY2, 4)
- RELOC_NUMBER (R_MCORE_PCREL32, 5)
- RELOC_NUMBER (R_MCORE_PCRELJSR_IMM11BY2, 6)
- RELOC_NUMBER (R_MCORE_GNU_VTINHERIT, 7)
- RELOC_NUMBER (R_MCORE_GNU_VTENTRY, 8)
- RELOC_NUMBER (R_MCORE_RELATIVE, 9)
- RELOC_NUMBER (R_MCORE_COPY, 10)
- RELOC_NUMBER (R_MCORE_GLOB_DAT, 11)
- RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12)
-END_RELOC_NUMBERS (R_MCORE_max)
-
-/* Section Attributes. */
-#define SHF_MCORE_NOREAD 0x80000000
-
-#endif /* _ELF_MCORE_H */
diff --git a/include/elf/mep.h b/include/elf/mep.h
deleted file mode 100644
index b0e42adc3..000000000
--- a/include/elf/mep.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Toshiba MeP ELF support for BFD.
- Copyright (C) 2001, 2004, 2005, 2007, 2009, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_MEP_H
-#define _ELF_MEP_H
-
-/* Bits in the sh_flags field of Elf32_Shdr: */
-
-#define SHF_MEP_VLIW 0x10000000 /* contains vliw code */
-
-/* This bit is reserved by BFD for processor specific stuff. Name
- it properly so that we can easily stay consistent elsewhere. */
-#define SEC_MEP_VLIW SEC_TIC54X_BLOCK
-
-#include "elf/reloc-macros.h"
-
-/* Note: The comments in this file are used by bfd/mep-relocs.pl to
- build parts of bfd/elf32-mep.c. */
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_mep_reloc_type)
-
- /* These two must appear first so that they are not processed by bfd/mep-relocs.pl. */
- RELOC_NUMBER (R_MEP_NONE, 0)
- RELOC_NUMBER (R_RELC, 1)
-
- RELOC_NUMBER (R_MEP_8, 2) /* 7654 3210 U */
- RELOC_NUMBER (R_MEP_16, 3) /* fedc ba98 7654 3210 U */
- RELOC_NUMBER (R_MEP_32, 4) /* vuts rqpo nmlk jihg fedc ba98 7654 3210 U */
-
- RELOC_NUMBER (R_MEP_PCREL8A2, 5) /* ---- ---- 7654 321- S PC-REL */
- RELOC_NUMBER (R_MEP_PCREL12A2, 6) /* ---- ba98 7654 321- S PC-REL */
- RELOC_NUMBER (R_MEP_PCREL17A2, 7) /* ---- ---- ---- ---- gfed cba9 8765 4321 S PC-REL */
- RELOC_NUMBER (R_MEP_PCREL24A2, 8) /* ---- -765 4321 ---- nmlk jihg fedc ba98 S PC-REL */
- RELOC_NUMBER (R_MEP_PCABS24A2, 9) /* ---- -765 4321 ---- nmlk jihg fedc ba98 U */
-
- RELOC_NUMBER (R_MEP_LOW16, 10) /* ---- ---- ---- ---- fedc ba98 7654 3210 U no-overflow */
- RELOC_NUMBER (R_MEP_HI16U, 11) /* ---- ---- ---- ---- vuts rqpo nmlk jihg U no-overflow */
- RELOC_NUMBER (R_MEP_HI16S, 12) /* ---- ---- ---- ---- vuts rqpo nmlk jihg S no-overflow */
- RELOC_NUMBER (R_MEP_GPREL, 13) /* ---- ---- ---- ---- fedc ba98 7654 3210 S GP-REL*/
- RELOC_NUMBER (R_MEP_TPREL, 14) /* ---- ---- ---- ---- fedc ba98 7654 3210 S TP-REL*/
-
- RELOC_NUMBER (R_MEP_TPREL7, 15) /* ---- ---- -654 3210 U TP-REL */
- RELOC_NUMBER (R_MEP_TPREL7A2, 16) /* ---- ---- -654 321- U TP-REL */
- RELOC_NUMBER (R_MEP_TPREL7A4, 17) /* ---- ---- -654 32-- U TP-REL */
-
- RELOC_NUMBER (R_MEP_UIMM24, 18) /* ---- ---- 7654 3210 nmlk jihg fedc ba98 U */
- RELOC_NUMBER (R_MEP_ADDR24A4, 19) /* ---- ---- 7654 32-- nmlk jihg fedc ba98 U */
-
- RELOC_NUMBER (R_MEP_GNU_VTINHERIT, 20) /* ---- ---- ---- ---- U no-overflow */
- RELOC_NUMBER (R_MEP_GNU_VTENTRY, 21) /* ---- ---- ---- ---- U no-overflow */
-
-END_RELOC_NUMBERS(R_MEP_max)
-
-#define EF_MEP_CPU_MASK 0xff000000 /* specific cpu bits */
-#define EF_MEP_CPU_MEP 0x00000000 /* generic MEP */
-#define EF_MEP_CPU_C2 0x01000000 /* MEP c2 */
-#define EF_MEP_CPU_C3 0x02000000 /* MEP c3 */
-#define EF_MEP_CPU_C4 0x04000000 /* MEP c4 */
-/* 5..7 are reseved */
-#define EF_MEP_CPU_C5 0x08000000 /* MEP c5 */
-#define EF_MEP_CPU_H1 0x10000000 /* MEP h1 */
-
-#define EF_MEP_COP_MASK 0x00ff0000
-#define EF_MEP_COP_NONE 0x00000000
-#define EF_MEP_COP_AVC 0x00010000
-#define EF_MEP_COP_AVC2 0x00020000
-#define EF_MEP_COP_FMAX 0x00030000
-/* 4..5 are reserved. */
-#define EF_MEP_COP_IVC2 0x00060000
-
-#define EF_MEP_LIBRARY 0x00000100 /* Built as a library */
-
-#define EF_MEP_INDEX_MASK 0x000000ff /* Configuration index */
-
-#define EF_MEP_ALL_FLAGS 0xffff01ff
-
-#endif /* _ELF_MEP_H */
diff --git a/include/elf/microblaze.h b/include/elf/microblaze.h
deleted file mode 100644
index d39223122..000000000
--- a/include/elf/microblaze.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Xilinx MicroBlaze support for BFD.
-
- Copyright 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file holds definitions specific to the MICROBLAZE ELF ABI. */
-
-#ifndef _ELF_MICROBLAZE_H
-#define _ELF_MICROBLAZE_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_microblaze_reloc_type)
- RELOC_NUMBER (R_MICROBLAZE_NONE, 0)
- RELOC_NUMBER (R_MICROBLAZE_32, 1)
- RELOC_NUMBER (R_MICROBLAZE_32_PCREL, 2)
- RELOC_NUMBER (R_MICROBLAZE_64_PCREL, 3)
- RELOC_NUMBER (R_MICROBLAZE_32_PCREL_LO, 4)
- RELOC_NUMBER (R_MICROBLAZE_64, 5)
- RELOC_NUMBER (R_MICROBLAZE_32_LO, 6)
- RELOC_NUMBER (R_MICROBLAZE_SRO32, 7)
- RELOC_NUMBER (R_MICROBLAZE_SRW32, 8)
- RELOC_NUMBER (R_MICROBLAZE_64_NONE, 9)
- RELOC_NUMBER (R_MICROBLAZE_32_SYM_OP_SYM, 10)
- RELOC_NUMBER (R_MICROBLAZE_GNU_VTINHERIT, 11)
- RELOC_NUMBER (R_MICROBLAZE_GNU_VTENTRY, 12)
- RELOC_NUMBER (R_MICROBLAZE_GOTPC_64, 13) /* PC-relative GOT offset. */
- RELOC_NUMBER (R_MICROBLAZE_GOT_64, 14) /* GOT entry offset. */
- RELOC_NUMBER (R_MICROBLAZE_PLT_64, 15) /* PLT offset (PC-relative). */
- RELOC_NUMBER (R_MICROBLAZE_REL, 16) /* Adjust by program base. */
- RELOC_NUMBER (R_MICROBLAZE_JUMP_SLOT, 17) /* Create PLT entry. */
- RELOC_NUMBER (R_MICROBLAZE_GLOB_DAT, 18) /* Create GOT entry. */
- RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */
- RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */
- RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */
-
-END_RELOC_NUMBERS (R_MICROBLAZE_max)
-
-/* Global base address names. */
-#define RO_SDA_ANCHOR_NAME "_SDA2_BASE_"
-#define RW_SDA_ANCHOR_NAME "_SDA_BASE_"
-
-/* Section Attributes. */
-#define SHF_MICROBLAZE_NOREAD 0x80000000
-
-#endif /* _ELF_MICROBLAZE_H */
diff --git a/include/elf/mips.h b/include/elf/mips.h
deleted file mode 100644
index db5fa5414..000000000
--- a/include/elf/mips.h
+++ /dev/null
@@ -1,1119 +0,0 @@
-/* MIPS ELF support for BFD.
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2008, 2009, 2010
- Free Software Foundation, Inc.
-
- By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
- information in the System V Application Binary Interface, MIPS
- Processor Supplement.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MIPS ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_MIPS_H
-#define _ELF_MIPS_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_mips_reloc_type)
- RELOC_NUMBER (R_MIPS_NONE, 0)
- RELOC_NUMBER (R_MIPS_16, 1)
- RELOC_NUMBER (R_MIPS_32, 2) /* In Elf 64: alias R_MIPS_ADD */
- RELOC_NUMBER (R_MIPS_REL32, 3) /* In Elf 64: alias R_MIPS_REL */
- RELOC_NUMBER (R_MIPS_26, 4)
- RELOC_NUMBER (R_MIPS_HI16, 5)
- RELOC_NUMBER (R_MIPS_LO16, 6)
- RELOC_NUMBER (R_MIPS_GPREL16, 7) /* In Elf 64: alias R_MIPS_GPREL */
- RELOC_NUMBER (R_MIPS_LITERAL, 8)
- RELOC_NUMBER (R_MIPS_GOT16, 9) /* In Elf 64: alias R_MIPS_GOT */
- RELOC_NUMBER (R_MIPS_PC16, 10)
- RELOC_NUMBER (R_MIPS_CALL16, 11) /* In Elf 64: alias R_MIPS_CALL */
- RELOC_NUMBER (R_MIPS_GPREL32, 12)
- /* The remaining relocs are defined on Irix, although they are not
- in the MIPS ELF ABI. */
- RELOC_NUMBER (R_MIPS_UNUSED1, 13)
- RELOC_NUMBER (R_MIPS_UNUSED2, 14)
- RELOC_NUMBER (R_MIPS_UNUSED3, 15)
- RELOC_NUMBER (R_MIPS_SHIFT5, 16)
- RELOC_NUMBER (R_MIPS_SHIFT6, 17)
- RELOC_NUMBER (R_MIPS_64, 18)
- RELOC_NUMBER (R_MIPS_GOT_DISP, 19)
- RELOC_NUMBER (R_MIPS_GOT_PAGE, 20)
- RELOC_NUMBER (R_MIPS_GOT_OFST, 21)
- RELOC_NUMBER (R_MIPS_GOT_HI16, 22)
- RELOC_NUMBER (R_MIPS_GOT_LO16, 23)
- RELOC_NUMBER (R_MIPS_SUB, 24)
- RELOC_NUMBER (R_MIPS_INSERT_A, 25)
- RELOC_NUMBER (R_MIPS_INSERT_B, 26)
- RELOC_NUMBER (R_MIPS_DELETE, 27)
- RELOC_NUMBER (R_MIPS_HIGHER, 28)
- RELOC_NUMBER (R_MIPS_HIGHEST, 29)
- RELOC_NUMBER (R_MIPS_CALL_HI16, 30)
- RELOC_NUMBER (R_MIPS_CALL_LO16, 31)
- RELOC_NUMBER (R_MIPS_SCN_DISP, 32)
- RELOC_NUMBER (R_MIPS_REL16, 33)
- RELOC_NUMBER (R_MIPS_ADD_IMMEDIATE, 34)
- RELOC_NUMBER (R_MIPS_PJUMP, 35)
- RELOC_NUMBER (R_MIPS_RELGOT, 36)
- RELOC_NUMBER (R_MIPS_JALR, 37)
- /* TLS relocations. */
- RELOC_NUMBER (R_MIPS_TLS_DTPMOD32, 38)
- RELOC_NUMBER (R_MIPS_TLS_DTPREL32, 39)
- RELOC_NUMBER (R_MIPS_TLS_DTPMOD64, 40)
- RELOC_NUMBER (R_MIPS_TLS_DTPREL64, 41)
- RELOC_NUMBER (R_MIPS_TLS_GD, 42)
- RELOC_NUMBER (R_MIPS_TLS_LDM, 43)
- RELOC_NUMBER (R_MIPS_TLS_DTPREL_HI16, 44)
- RELOC_NUMBER (R_MIPS_TLS_DTPREL_LO16, 45)
- RELOC_NUMBER (R_MIPS_TLS_GOTTPREL, 46)
- RELOC_NUMBER (R_MIPS_TLS_TPREL32, 47)
- RELOC_NUMBER (R_MIPS_TLS_TPREL64, 48)
- RELOC_NUMBER (R_MIPS_TLS_TPREL_HI16, 49)
- RELOC_NUMBER (R_MIPS_TLS_TPREL_LO16, 50)
- RELOC_NUMBER (R_MIPS_GLOB_DAT, 51)
- FAKE_RELOC (R_MIPS_max, 52)
- /* These relocs are used for the mips16. */
- FAKE_RELOC (R_MIPS16_min, 100)
- RELOC_NUMBER (R_MIPS16_26, 100)
- RELOC_NUMBER (R_MIPS16_GPREL, 101)
- RELOC_NUMBER (R_MIPS16_GOT16, 102)
- RELOC_NUMBER (R_MIPS16_CALL16, 103)
- RELOC_NUMBER (R_MIPS16_HI16, 104)
- RELOC_NUMBER (R_MIPS16_LO16, 105)
- FAKE_RELOC (R_MIPS16_max, 106)
- /* These relocations are specific to VxWorks. */
- RELOC_NUMBER (R_MIPS_COPY, 126)
- RELOC_NUMBER (R_MIPS_JUMP_SLOT, 127)
-
- /* These relocations are specific to microMIPS. */
- FAKE_RELOC (R_MICROMIPS_min, 130)
- RELOC_NUMBER (R_MICROMIPS_26_S1, 133)
- RELOC_NUMBER (R_MICROMIPS_HI16, 134)
- RELOC_NUMBER (R_MICROMIPS_LO16, 135)
- RELOC_NUMBER (R_MICROMIPS_GPREL16, 136) /* In Elf 64:
- alias R_MICROMIPS_GPREL */
- RELOC_NUMBER (R_MICROMIPS_LITERAL, 137)
- RELOC_NUMBER (R_MICROMIPS_GOT16, 138) /* In Elf 64:
- alias R_MICROMIPS_GOT */
- RELOC_NUMBER (R_MICROMIPS_PC7_S1, 139)
- RELOC_NUMBER (R_MICROMIPS_PC10_S1, 140)
- RELOC_NUMBER (R_MICROMIPS_PC16_S1, 141)
- RELOC_NUMBER (R_MICROMIPS_CALL16, 142) /* In Elf 64:
- alias R_MICROMIPS_CALL */
- RELOC_NUMBER (R_MICROMIPS_GOT_DISP, 145)
- RELOC_NUMBER (R_MICROMIPS_GOT_PAGE, 146)
- RELOC_NUMBER (R_MICROMIPS_GOT_OFST, 147)
- RELOC_NUMBER (R_MICROMIPS_GOT_HI16, 148)
- RELOC_NUMBER (R_MICROMIPS_GOT_LO16, 149)
- RELOC_NUMBER (R_MICROMIPS_SUB, 150)
- RELOC_NUMBER (R_MICROMIPS_HIGHER, 151)
- RELOC_NUMBER (R_MICROMIPS_HIGHEST, 152)
- RELOC_NUMBER (R_MICROMIPS_CALL_HI16, 153)
- RELOC_NUMBER (R_MICROMIPS_CALL_LO16, 154)
- RELOC_NUMBER (R_MICROMIPS_SCN_DISP, 155)
- RELOC_NUMBER (R_MICROMIPS_JALR, 156)
- RELOC_NUMBER (R_MICROMIPS_HI0_LO16, 157)
- /* TLS relocations. */
- RELOC_NUMBER (R_MICROMIPS_TLS_GD, 162)
- RELOC_NUMBER (R_MICROMIPS_TLS_LDM, 163)
- RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_HI16, 164)
- RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_LO16, 165)
- RELOC_NUMBER (R_MICROMIPS_TLS_GOTTPREL, 166)
- RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_HI16, 169)
- RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_LO16, 170)
- /* microMIPS GP- and PC-relative relocations. */
- RELOC_NUMBER (R_MICROMIPS_GPREL7_S2, 172)
- RELOC_NUMBER (R_MICROMIPS_PC23_S2, 173)
- FAKE_RELOC (R_MICROMIPS_max, 174)
-
- /* This was a GNU extension used by embedded-PIC. It was co-opted by
- mips-linux for exception-handling data. It is no longer used, but
- should continue to be supported by the linker for backward
- compatibility. (GCC stopped using it in May, 2004.) */
- RELOC_NUMBER (R_MIPS_PC32, 248)
- /* FIXME: this relocation is used internally by gas. */
- RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
- RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254)
-END_RELOC_NUMBERS (R_MIPS_maxext)
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* At least one .noreorder directive appears in the source. */
-#define EF_MIPS_NOREORDER 0x00000001
-
-/* File contains position independent code. */
-#define EF_MIPS_PIC 0x00000002
-
-/* Code in file uses the standard calling sequence for calling
- position independent code. */
-#define EF_MIPS_CPIC 0x00000004
-
-/* ??? Unknown flag, set in IRIX 6's BSDdup2.o in libbsd.a. */
-#define EF_MIPS_XGOT 0x00000008
-
-/* Code in file uses UCODE (obsolete) */
-#define EF_MIPS_UCODE 0x00000010
-
-/* Code in file uses new ABI (-n32 on Irix 6). */
-#define EF_MIPS_ABI2 0x00000020
-
-/* Process the .MIPS.options section first by ld */
-#define EF_MIPS_OPTIONS_FIRST 0x00000080
-
-/* Architectural Extensions used by this file */
-#define EF_MIPS_ARCH_ASE 0x0f000000
-
-/* Use MDMX multimedia extensions */
-#define EF_MIPS_ARCH_ASE_MDMX 0x08000000
-
-/* Use MIPS-16 ISA extensions */
-#define EF_MIPS_ARCH_ASE_M16 0x04000000
-
-/* Use MICROMIPS ISA extensions. */
-#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000
-
-/* Indicates code compiled for a 64-bit machine in 32-bit mode.
- (regs are 32-bits wide.) */
-#define EF_MIPS_32BITMODE 0x00000100
-
-/* Four bit MIPS architecture field. */
-#define EF_MIPS_ARCH 0xf0000000
-
-/* -mips1 code. */
-#define E_MIPS_ARCH_1 0x00000000
-
-/* -mips2 code. */
-#define E_MIPS_ARCH_2 0x10000000
-
-/* -mips3 code. */
-#define E_MIPS_ARCH_3 0x20000000
-
-/* -mips4 code. */
-#define E_MIPS_ARCH_4 0x30000000
-
-/* -mips5 code. */
-#define E_MIPS_ARCH_5 0x40000000
-
-/* -mips32 code. */
-#define E_MIPS_ARCH_32 0x50000000
-
-/* -mips64 code. */
-#define E_MIPS_ARCH_64 0x60000000
-
-/* -mips32r2 code. */
-#define E_MIPS_ARCH_32R2 0x70000000
-
-/* -mips64r2 code. */
-#define E_MIPS_ARCH_64R2 0x80000000
-
-/* The ABI of the file. Also see EF_MIPS_ABI2 above. */
-#define EF_MIPS_ABI 0x0000F000
-
-/* The original o32 abi. */
-#define E_MIPS_ABI_O32 0x00001000
-
-/* O32 extended to work on 64 bit architectures */
-#define E_MIPS_ABI_O64 0x00002000
-
-/* EABI in 32 bit mode */
-#define E_MIPS_ABI_EABI32 0x00003000
-
-/* EABI in 64 bit mode */
-#define E_MIPS_ABI_EABI64 0x00004000
-
-
-/* Machine variant if we know it. This field was invented at Cygnus,
- but it is hoped that other vendors will adopt it. If some standard
- is developed, this code should be changed to follow it. */
-
-#define EF_MIPS_MACH 0x00FF0000
-
-/* Cygnus is choosing values between 80 and 9F;
- 00 - 7F should be left for a future standard;
- the rest are open. */
-
-#define E_MIPS_MACH_3900 0x00810000
-#define E_MIPS_MACH_4010 0x00820000
-#define E_MIPS_MACH_4100 0x00830000
-#define E_MIPS_MACH_4650 0x00850000
-#define E_MIPS_MACH_4120 0x00870000
-#define E_MIPS_MACH_4111 0x00880000
-#define E_MIPS_MACH_SB1 0x008a0000
-#define E_MIPS_MACH_OCTEON 0x008b0000
-#define E_MIPS_MACH_XLR 0x008c0000
-#define E_MIPS_MACH_OCTEON2 0x008d0000
-#define E_MIPS_MACH_5400 0x00910000
-#define E_MIPS_MACH_5500 0x00980000
-#define E_MIPS_MACH_9000 0x00990000
-#define E_MIPS_MACH_LS2E 0x00A00000
-#define E_MIPS_MACH_LS2F 0x00A10000
-#define E_MIPS_MACH_LS3A 0x00A20000
-
-/* Processor specific section indices. These sections do not actually
- exist. Symbols with a st_shndx field corresponding to one of these
- values have a special meaning. */
-
-/* Defined and allocated common symbol. Value is virtual address. If
- relocated, alignment must be preserved. */
-#define SHN_MIPS_ACOMMON SHN_LORESERVE
-
-/* Defined and allocated text symbol. Value is virtual address.
- Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */
-#define SHN_MIPS_TEXT (SHN_LORESERVE + 1)
-
-/* Defined and allocated data symbol. Value is virtual address.
- Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */
-#define SHN_MIPS_DATA (SHN_LORESERVE + 2)
-
-/* Small common symbol. */
-#define SHN_MIPS_SCOMMON (SHN_LORESERVE + 3)
-
-/* Small undefined symbol. */
-#define SHN_MIPS_SUNDEFINED (SHN_LORESERVE + 4)
-
-/* Processor specific section types. */
-
-/* Section contains the set of dynamic shared objects used when
- statically linking. */
-#define SHT_MIPS_LIBLIST 0x70000000
-
-/* I'm not sure what this is, but it's used on Irix 5. */
-#define SHT_MIPS_MSYM 0x70000001
-
-/* Section contains list of symbols whose definitions conflict with
- symbols defined in shared objects. */
-#define SHT_MIPS_CONFLICT 0x70000002
-
-/* Section contains the global pointer table. */
-#define SHT_MIPS_GPTAB 0x70000003
-
-/* Section contains microcode information. The exact format is
- unspecified. */
-#define SHT_MIPS_UCODE 0x70000004
-
-/* Section contains some sort of debugging information. The exact
- format is unspecified. It's probably ECOFF symbols. */
-#define SHT_MIPS_DEBUG 0x70000005
-
-/* Section contains register usage information. */
-#define SHT_MIPS_REGINFO 0x70000006
-
-/* ??? */
-#define SHT_MIPS_PACKAGE 0x70000007
-
-/* ??? */
-#define SHT_MIPS_PACKSYM 0x70000008
-
-/* ??? */
-#define SHT_MIPS_RELD 0x70000009
-
-/* Section contains interface information. */
-#define SHT_MIPS_IFACE 0x7000000b
-
-/* Section contains description of contents of another section. */
-#define SHT_MIPS_CONTENT 0x7000000c
-
-/* Section contains miscellaneous options. */
-#define SHT_MIPS_OPTIONS 0x7000000d
-
-/* ??? */
-#define SHT_MIPS_SHDR 0x70000010
-
-/* ??? */
-#define SHT_MIPS_FDESC 0x70000011
-
-/* ??? */
-#define SHT_MIPS_EXTSYM 0x70000012
-
-/* ??? */
-#define SHT_MIPS_DENSE 0x70000013
-
-/* ??? */
-#define SHT_MIPS_PDESC 0x70000014
-
-/* ??? */
-#define SHT_MIPS_LOCSYM 0x70000015
-
-/* ??? */
-#define SHT_MIPS_AUXSYM 0x70000016
-
-/* ??? */
-#define SHT_MIPS_OPTSYM 0x70000017
-
-/* ??? */
-#define SHT_MIPS_LOCSTR 0x70000018
-
-/* ??? */
-#define SHT_MIPS_LINE 0x70000019
-
-/* ??? */
-#define SHT_MIPS_RFDESC 0x7000001a
-
-/* Delta C++: symbol table */
-#define SHT_MIPS_DELTASYM 0x7000001b
-
-/* Delta C++: instance table */
-#define SHT_MIPS_DELTAINST 0x7000001c
-
-/* Delta C++: class table */
-#define SHT_MIPS_DELTACLASS 0x7000001d
-
-/* DWARF debugging section. */
-#define SHT_MIPS_DWARF 0x7000001e
-
-/* Delta C++: declarations */
-#define SHT_MIPS_DELTADECL 0x7000001f
-
-/* List of libraries the binary depends on. Includes a time stamp, version
- number. */
-#define SHT_MIPS_SYMBOL_LIB 0x70000020
-
-/* Events section. */
-#define SHT_MIPS_EVENTS 0x70000021
-
-/* ??? */
-#define SHT_MIPS_TRANSLATE 0x70000022
-
-/* Special pixie sections */
-#define SHT_MIPS_PIXIE 0x70000023
-
-/* Address translation table (for debug info) */
-#define SHT_MIPS_XLATE 0x70000024
-
-/* SGI internal address translation table (for debug info) */
-#define SHT_MIPS_XLATE_DEBUG 0x70000025
-
-/* Intermediate code */
-#define SHT_MIPS_WHIRL 0x70000026
-
-/* C++ exception handling region info */
-#define SHT_MIPS_EH_REGION 0x70000027
-
-/* Obsolete address translation table (for debug info) */
-#define SHT_MIPS_XLATE_OLD 0x70000028
-
-/* Runtime procedure descriptor table exception information (ucode) ??? */
-#define SHT_MIPS_PDR_EXCEPTION 0x70000029
-
-
-/* A section of type SHT_MIPS_LIBLIST contains an array of the
- following structure. The sh_link field is the section index of the
- string table. The sh_info field is the number of entries in the
- section. */
-typedef struct
-{
- /* String table index for name of shared object. */
- unsigned long l_name;
- /* Time stamp. */
- unsigned long l_time_stamp;
- /* Checksum of symbol names and common sizes. */
- unsigned long l_checksum;
- /* String table index for version. */
- unsigned long l_version;
- /* Flags. */
- unsigned long l_flags;
-} Elf32_Lib;
-
-/* The external version of Elf32_Lib. */
-typedef struct
-{
- unsigned char l_name[4];
- unsigned char l_time_stamp[4];
- unsigned char l_checksum[4];
- unsigned char l_version[4];
- unsigned char l_flags[4];
-} Elf32_External_Lib;
-
-/* The l_flags field of an Elf32_Lib structure may contain the
- following flags. */
-
-/* Require an exact match at runtime. */
-#define LL_EXACT_MATCH 0x00000001
-
-/* Ignore version incompatibilities at runtime. */
-#define LL_IGNORE_INT_VER 0x00000002
-
-/* Require matching minor version number. */
-#define LL_REQUIRE_MINOR 0x00000004
-
-/* ??? */
-#define LL_EXPORTS 0x00000008
-
-/* Delay loading of this library until really needed. */
-#define LL_DELAY_LOAD 0x00000010
-
-/* ??? Delta C++ stuff ??? */
-#define LL_DELTA 0x00000020
-
-
-/* A section of type SHT_MIPS_CONFLICT is an array of indices into the
- .dynsym section. Each element has the following type. */
-typedef unsigned long Elf32_Conflict;
-typedef unsigned char Elf32_External_Conflict[4];
-
-typedef unsigned long Elf64_Conflict;
-typedef unsigned char Elf64_External_Conflict[8];
-
-/* A section of type SHT_MIPS_GPTAB contains information about how
- much GP space would be required for different -G arguments. This
- information is only used so that the linker can provide informative
- suggestions as to the best -G value to use. The sh_info field is
- the index of the section for which this information applies. The
- contents of the section are an array of the following union. The
- first element uses the gt_header field. The remaining elements use
- the gt_entry field. */
-typedef union
-{
- struct
- {
- /* -G value actually used for this object file. */
- unsigned long gt_current_g_value;
- /* Unused. */
- unsigned long gt_unused;
- } gt_header;
- struct
- {
- /* If this -G argument has been used... */
- unsigned long gt_g_value;
- /* ...this many GP section bytes would be required. */
- unsigned long gt_bytes;
- } gt_entry;
-} Elf32_gptab;
-
-/* The external version of Elf32_gptab. */
-
-typedef union
-{
- struct
- {
- unsigned char gt_current_g_value[4];
- unsigned char gt_unused[4];
- } gt_header;
- struct
- {
- unsigned char gt_g_value[4];
- unsigned char gt_bytes[4];
- } gt_entry;
-} Elf32_External_gptab;
-
-/* A section of type SHT_MIPS_REGINFO contains the following
- structure. */
-typedef struct
-{
- /* Mask of general purpose registers used. */
- unsigned long ri_gprmask;
- /* Mask of co-processor registers used. */
- unsigned long ri_cprmask[4];
- /* GP register value for this object file. */
- long ri_gp_value;
-} Elf32_RegInfo;
-
-/* The external version of the Elf_RegInfo structure. */
-typedef struct
-{
- unsigned char ri_gprmask[4];
- unsigned char ri_cprmask[4][4];
- unsigned char ri_gp_value[4];
-} Elf32_External_RegInfo;
-
-/* MIPS ELF .reginfo swapping routines. */
-extern void bfd_mips_elf32_swap_reginfo_in
- (bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *);
-extern void bfd_mips_elf32_swap_reginfo_out
- (bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *);
-
-/* Processor specific section flags. */
-
-/* This section must be in the global data area. */
-#define SHF_MIPS_GPREL 0x10000000
-
-/* This section should be merged. */
-#define SHF_MIPS_MERGE 0x20000000
-
-/* This section contains address data of size implied by section
- element size. */
-#define SHF_MIPS_ADDR 0x40000000
-
-/* This section contains string data. */
-#define SHF_MIPS_STRING 0x80000000
-
-/* This section may not be stripped. */
-#define SHF_MIPS_NOSTRIP 0x08000000
-
-/* This section is local to threads. */
-#define SHF_MIPS_LOCAL 0x04000000
-
-/* Linker should generate implicit weak names for this section. */
-#define SHF_MIPS_NAMES 0x02000000
-
-/* Section contais text/data which may be replicated in other sections.
- Linker should retain only one copy. */
-#define SHF_MIPS_NODUPES 0x01000000
-
-/* Processor specific program header types. */
-
-/* Register usage information. Identifies one .reginfo section. */
-#define PT_MIPS_REGINFO 0x70000000
-
-/* Runtime procedure table. */
-#define PT_MIPS_RTPROC 0x70000001
-
-/* .MIPS.options section. */
-#define PT_MIPS_OPTIONS 0x70000002
-
-/* Processor specific dynamic array tags. */
-
-/* 32 bit version number for runtime linker interface. */
-#define DT_MIPS_RLD_VERSION 0x70000001
-
-/* Time stamp. */
-#define DT_MIPS_TIME_STAMP 0x70000002
-
-/* Checksum of external strings and common sizes. */
-#define DT_MIPS_ICHECKSUM 0x70000003
-
-/* Index of version string in string table. */
-#define DT_MIPS_IVERSION 0x70000004
-
-/* 32 bits of flags. */
-#define DT_MIPS_FLAGS 0x70000005
-
-/* Base address of the segment. */
-#define DT_MIPS_BASE_ADDRESS 0x70000006
-
-/* ??? */
-#define DT_MIPS_MSYM 0x70000007
-
-/* Address of .conflict section. */
-#define DT_MIPS_CONFLICT 0x70000008
-
-/* Address of .liblist section. */
-#define DT_MIPS_LIBLIST 0x70000009
-
-/* Number of local global offset table entries. */
-#define DT_MIPS_LOCAL_GOTNO 0x7000000a
-
-/* Number of entries in the .conflict section. */
-#define DT_MIPS_CONFLICTNO 0x7000000b
-
-/* Number of entries in the .liblist section. */
-#define DT_MIPS_LIBLISTNO 0x70000010
-
-/* Number of entries in the .dynsym section. */
-#define DT_MIPS_SYMTABNO 0x70000011
-
-/* Index of first external dynamic symbol not referenced locally. */
-#define DT_MIPS_UNREFEXTNO 0x70000012
-
-/* Index of first dynamic symbol in global offset table. */
-#define DT_MIPS_GOTSYM 0x70000013
-
-/* Number of page table entries in global offset table. */
-#define DT_MIPS_HIPAGENO 0x70000014
-
-/* Address of run time loader map, used for debugging. */
-#define DT_MIPS_RLD_MAP 0x70000016
-
-/* Delta C++ class definition. */
-#define DT_MIPS_DELTA_CLASS 0x70000017
-
-/* Number of entries in DT_MIPS_DELTA_CLASS. */
-#define DT_MIPS_DELTA_CLASS_NO 0x70000018
-
-/* Delta C++ class instances. */
-#define DT_MIPS_DELTA_INSTANCE 0x70000019
-
-/* Number of entries in DT_MIPS_DELTA_INSTANCE. */
-#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
-
-/* Delta relocations. */
-#define DT_MIPS_DELTA_RELOC 0x7000001b
-
-/* Number of entries in DT_MIPS_DELTA_RELOC. */
-#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
-
-/* Delta symbols that Delta relocations refer to. */
-#define DT_MIPS_DELTA_SYM 0x7000001d
-
-/* Number of entries in DT_MIPS_DELTA_SYM. */
-#define DT_MIPS_DELTA_SYM_NO 0x7000001e
-
-/* Delta symbols that hold class declarations. */
-#define DT_MIPS_DELTA_CLASSSYM 0x70000020
-
-/* Number of entries in DT_MIPS_DELTA_CLASSSYM. */
-#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
-
-/* Flags indicating information about C++ flavor. */
-#define DT_MIPS_CXX_FLAGS 0x70000022
-
-/* Pixie information (???). */
-#define DT_MIPS_PIXIE_INIT 0x70000023
-
-/* Address of .MIPS.symlib */
-#define DT_MIPS_SYMBOL_LIB 0x70000024
-
-/* The GOT index of the first PTE for a segment */
-#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
-
-/* The GOT index of the first PTE for a local symbol */
-#define DT_MIPS_LOCAL_GOTIDX 0x70000026
-
-/* The GOT index of the first PTE for a hidden symbol */
-#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
-
-/* The GOT index of the first PTE for a protected symbol */
-#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
-
-/* Address of `.MIPS.options'. */
-#define DT_MIPS_OPTIONS 0x70000029
-
-/* Address of `.interface'. */
-#define DT_MIPS_INTERFACE 0x7000002a
-
-/* ??? */
-#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
-
-/* Size of the .interface section. */
-#define DT_MIPS_INTERFACE_SIZE 0x7000002c
-
-/* Size of rld_text_resolve function stored in the GOT. */
-#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
-
-/* Default suffix of DSO to be added by rld on dlopen() calls. */
-#define DT_MIPS_PERF_SUFFIX 0x7000002e
-
-/* Size of compact relocation section (O32). */
-#define DT_MIPS_COMPACT_SIZE 0x7000002f
-
-/* GP value for auxiliary GOTs. */
-#define DT_MIPS_GP_VALUE 0x70000030
-
-/* Address of auxiliary .dynamic. */
-#define DT_MIPS_AUX_DYNAMIC 0x70000031
-
-/* Address of the base of the PLTGOT. */
-#define DT_MIPS_PLTGOT 0x70000032
-
-/* Points to the base of a writable PLT. */
-#define DT_MIPS_RWPLT 0x70000034
-
-/* Flags which may appear in a DT_MIPS_FLAGS entry. */
-
-/* No flags. */
-#define RHF_NONE 0x00000000
-
-/* Uses shortcut pointers. */
-#define RHF_QUICKSTART 0x00000001
-
-/* Hash size is not a power of two. */
-#define RHF_NOTPOT 0x00000002
-
-/* Ignore LD_LIBRARY_PATH. */
-#define RHS_NO_LIBRARY_REPLACEMENT 0x00000004
-
-/* DSO address may not be relocated. */
-#define RHF_NO_MOVE 0x00000008
-
-/* SGI specific features. */
-#define RHF_SGI_ONLY 0x00000010
-
-/* Guarantee that .init will finish executing before any non-init
- code in DSO is called. */
-#define RHF_GUARANTEE_INIT 0x00000020
-
-/* Contains Delta C++ code. */
-#define RHF_DELTA_C_PLUS_PLUS 0x00000040
-
-/* Guarantee that .init will start executing before any non-init
- code in DSO is called. */
-#define RHF_GUARANTEE_START_INIT 0x00000080
-
-/* Generated by pixie. */
-#define RHF_PIXIE 0x00000100
-
-/* Delay-load DSO by default. */
-#define RHF_DEFAULT_DELAY_LOAD 0x00000200
-
-/* Object may be requickstarted */
-#define RHF_REQUICKSTART 0x00000400
-
-/* Object has been requickstarted */
-#define RHF_REQUICKSTARTED 0x00000800
-
-/* Generated by cord. */
-#define RHF_CORD 0x00001000
-
-/* Object contains no unresolved undef symbols. */
-#define RHF_NO_UNRES_UNDEF 0x00002000
-
-/* Symbol table is in a safe order. */
-#define RHF_RLD_ORDER_SAFE 0x00004000
-
-/* Special values for the st_other field in the symbol table. These
- are used in an Irix 5 dynamic symbol table. */
-
-#define STO_DEFAULT STV_DEFAULT
-#define STO_INTERNAL STV_INTERNAL
-#define STO_HIDDEN STV_HIDDEN
-#define STO_PROTECTED STV_PROTECTED
-
-/* Two topmost bits denote the MIPS ISA for .text symbols:
- + 00 -- standard MIPS code,
- + 10 -- microMIPS code,
- + 11 -- MIPS16 code; requires the following two bits to be set too.
- Note that one of the MIPS16 bits overlaps with STO_MIPS_PIC. See below
- for details. */
-#define STO_MIPS_ISA (3 << 6)
-
-/* The mask spanning the rest of MIPS psABI flags. At most one is expected
- to be set except for STO_MIPS16. */
-#define STO_MIPS_FLAGS (~(STO_MIPS_ISA | ELF_ST_VISIBILITY (-1)))
-
-/* The MIPS psABI was updated in 2008 with support for PLTs and copy
- relocs. There are therefore two types of nonzero SHN_UNDEF functions:
- PLT entries and traditional MIPS lazy binding stubs. We mark the former
- with STO_MIPS_PLT to distinguish them from the latter. */
-#define STO_MIPS_PLT 0x8
-#define ELF_ST_IS_MIPS_PLT(other) (((other) & STO_MIPS_FLAGS) == STO_MIPS_PLT)
-#define ELF_ST_SET_MIPS_PLT(other) (((other) & ~STO_MIPS_FLAGS) | STO_MIPS_PLT)
-
-/* This value is used to mark PIC functions in an object that mixes
- PIC and non-PIC. Note that this bit overlaps with STO_MIPS16,
- although MIPS16 symbols are never considered to be MIPS_PIC. */
-#define STO_MIPS_PIC 0x20
-#define ELF_ST_IS_MIPS_PIC(other) (((other) & STO_MIPS_FLAGS) == STO_MIPS_PIC)
-#define ELF_ST_SET_MIPS_PIC(other) (((other) & ~STO_MIPS_FLAGS) | STO_MIPS_PIC)
-
-/* This value is used for a mips16 .text symbol. */
-#define STO_MIPS16 0xf0
-#define ELF_ST_IS_MIPS16(other) (((other) & STO_MIPS16) == STO_MIPS16)
-#define ELF_ST_SET_MIPS16(other) ((other) | STO_MIPS16)
-
-/* This value is used for a microMIPS .text symbol. To distinguish from
- STO_MIPS16, we set top two bits to be 10 to denote STO_MICROMIPS. The
- mask is STO_MIPS_ISA. */
-#define STO_MICROMIPS (2 << 6)
-#define ELF_ST_IS_MICROMIPS(other) (((other) & STO_MIPS_ISA) == STO_MICROMIPS)
-#define ELF_ST_SET_MICROMIPS(other) (((other) & ~STO_MIPS_ISA) | STO_MICROMIPS)
-
-/* Whether code compression (either of the MIPS16 or the microMIPS ASEs)
- has been indicated for a .text symbol. */
-#define ELF_ST_IS_COMPRESSED(other) \
- (ELF_ST_IS_MIPS16 (other) || ELF_ST_IS_MICROMIPS (other))
-
-/* This bit is used on Irix to indicate a symbol whose definition
- is optional - if, at final link time, it cannot be found, no
- error message should be produced. */
-#define STO_OPTIONAL (1 << 2)
-/* A macro to examine the STO_OPTIONAL bit. */
-#define ELF_MIPS_IS_OPTIONAL(other) ((other) & STO_OPTIONAL)
-
-/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each
- relocation entry specifies up to three actual relocations, all at
- the same address. The first relocation which required a symbol
- uses the symbol in the r_sym field. The second relocation which
- requires a symbol uses the symbol in the r_ssym field. If all
- three relocations require a symbol, the third one uses a zero
- value. */
-
-/* An entry in a 64 bit SHT_REL section. */
-
-typedef struct
-{
- /* Address of relocation. */
- unsigned char r_offset[8];
- /* Symbol index. */
- unsigned char r_sym[4];
- /* Special symbol. */
- unsigned char r_ssym[1];
- /* Third relocation. */
- unsigned char r_type3[1];
- /* Second relocation. */
- unsigned char r_type2[1];
- /* First relocation. */
- unsigned char r_type[1];
-} Elf64_Mips_External_Rel;
-
-typedef struct
-{
- /* Address of relocation. */
- bfd_vma r_offset;
- /* Symbol index. */
- unsigned long r_sym;
- /* Special symbol. */
- unsigned char r_ssym;
- /* Third relocation. */
- unsigned char r_type3;
- /* Second relocation. */
- unsigned char r_type2;
- /* First relocation. */
- unsigned char r_type;
-} Elf64_Mips_Internal_Rel;
-
-/* An entry in a 64 bit SHT_RELA section. */
-
-typedef struct
-{
- /* Address of relocation. */
- unsigned char r_offset[8];
- /* Symbol index. */
- unsigned char r_sym[4];
- /* Special symbol. */
- unsigned char r_ssym[1];
- /* Third relocation. */
- unsigned char r_type3[1];
- /* Second relocation. */
- unsigned char r_type2[1];
- /* First relocation. */
- unsigned char r_type[1];
- /* Addend. */
- unsigned char r_addend[8];
-} Elf64_Mips_External_Rela;
-
-typedef struct
-{
- /* Address of relocation. */
- bfd_vma r_offset;
- /* Symbol index. */
- unsigned long r_sym;
- /* Special symbol. */
- unsigned char r_ssym;
- /* Third relocation. */
- unsigned char r_type3;
- /* Second relocation. */
- unsigned char r_type2;
- /* First relocation. */
- unsigned char r_type;
- /* Addend. */
- bfd_signed_vma r_addend;
-} Elf64_Mips_Internal_Rela;
-
-/* MIPS ELF 64 relocation info access macros. */
-#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff)
-#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff)
-#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff)
-#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff)
-
-/* Values found in the r_ssym field of a relocation entry. */
-
-/* No relocation. */
-#define RSS_UNDEF 0
-
-/* Value of GP. */
-#define RSS_GP 1
-
-/* Value of GP in object being relocated. */
-#define RSS_GP0 2
-
-/* Address of location being relocated. */
-#define RSS_LOC 3
-
-/* A SHT_MIPS_OPTIONS section contains a series of options, each of
- which starts with this header. */
-
-typedef struct
-{
- /* Type of option. */
- unsigned char kind[1];
- /* Size of option descriptor, including header. */
- unsigned char size[1];
- /* Section index of affected section, or 0 for global option. */
- unsigned char section[2];
- /* Information specific to this kind of option. */
- unsigned char info[4];
-} Elf_External_Options;
-
-typedef struct
-{
- /* Type of option. */
- unsigned char kind;
- /* Size of option descriptor, including header. */
- unsigned char size;
- /* Section index of affected section, or 0 for global option. */
- unsigned short section;
- /* Information specific to this kind of option. */
- unsigned long info;
-} Elf_Internal_Options;
-
-/* MIPS ELF option header swapping routines. */
-extern void bfd_mips_elf_swap_options_in
- (bfd *, const Elf_External_Options *, Elf_Internal_Options *);
-extern void bfd_mips_elf_swap_options_out
- (bfd *, const Elf_Internal_Options *, Elf_External_Options *);
-
-/* Values which may appear in the kind field of an Elf_Options
- structure. */
-
-/* Undefined. */
-#define ODK_NULL 0
-
-/* Register usage and GP value. */
-#define ODK_REGINFO 1
-
-/* Exception processing information. */
-#define ODK_EXCEPTIONS 2
-
-/* Section padding information. */
-#define ODK_PAD 3
-
-/* Hardware workarounds performed. */
-#define ODK_HWPATCH 4
-
-/* Fill value used by the linker. */
-#define ODK_FILL 5
-
-/* Reserved space for desktop tools. */
-#define ODK_TAGS 6
-
-/* Hardware workarounds, AND bits when merging. */
-#define ODK_HWAND 7
-
-/* Hardware workarounds, OR bits when merging. */
-#define ODK_HWOR 8
-
-/* GP group to use for text/data sections. */
-#define ODK_GP_GROUP 9
-
-/* ID information. */
-#define ODK_IDENT 10
-
-/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_RegInfo
- structure. In the 64 bit ABI, it is the following structure. The
- info field of the options header is not used. */
-
-typedef struct
-{
- /* Mask of general purpose registers used. */
- unsigned char ri_gprmask[4];
- /* Padding. */
- unsigned char ri_pad[4];
- /* Mask of co-processor registers used. */
- unsigned char ri_cprmask[4][4];
- /* GP register value for this object file. */
- unsigned char ri_gp_value[8];
-} Elf64_External_RegInfo;
-
-typedef struct
-{
- /* Mask of general purpose registers used. */
- unsigned long ri_gprmask;
- /* Padding. */
- unsigned long ri_pad;
- /* Mask of co-processor registers used. */
- unsigned long ri_cprmask[4];
- /* GP register value for this object file. */
- bfd_vma ri_gp_value;
-} Elf64_Internal_RegInfo;
-
-typedef struct
-{
- /* The hash value computed from the name of the corresponding
- dynamic symbol. */
- unsigned char ms_hash_value[4];
- /* Contains both the dynamic relocation index and the symbol flags
- field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
- to access the individual values. The dynamic relocation index
- identifies the first entry in the .rel.dyn section that
- references the dynamic symbol corresponding to this msym entry.
- If the index is 0, no dynamic relocations are associated with the
- symbol. The symbol flags field is reserved for future use. */
- unsigned char ms_info[4];
-} Elf32_External_Msym;
-
-typedef struct
-{
- /* The hash value computed from the name of the corresponding
- dynamic symbol. */
- unsigned long ms_hash_value;
- /* Contains both the dynamic relocation index and the symbol flags
- field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
- to access the individual values. The dynamic relocation index
- identifies the first entry in the .rel.dyn section that
- references the dynamic symbol corresponding to this msym entry.
- If the index is 0, no dynamic relocations are associated with the
- symbol. The symbol flags field is reserved for future use. */
- unsigned long ms_info;
-} Elf32_Internal_Msym;
-
-#define ELF32_MS_REL_INDEX(i) ((i) >> 8)
-#define ELF32_MS_FLAGS(i) (i) & 0xff)
-#define ELF32_MS_INFO(r, f) (((r) << 8) + ((f) & 0xff))
-
-/* MIPS ELF reginfo swapping routines. */
-extern void bfd_mips_elf64_swap_reginfo_in
- (bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *);
-extern void bfd_mips_elf64_swap_reginfo_out
- (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. */
-#define OEX_FPU_MAX 0x1f00 /* FPEs which may be enabled. */
-#define OEX_PAGE0 0x10000 /* Page zero must be mapped. */
-#define OEX_SMM 0x20000 /* Force sequential memory mode. */
-#define OEX_FPDBUG 0x40000 /* Force precise floating-point
- exceptions (debug mode). */
-#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults. */
-
-/* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX. */
-#define OEX_FPU_INVAL 0x10 /* Invalid operation exception. */
-#define OEX_FPU_DIV0 0x08 /* Division by zero exception. */
-#define OEX_FPU_OFLO 0x04 /* Overflow exception. */
-#define OEX_FPU_UFLO 0x02 /* Underflow exception. */
-#define OEX_FPU_INEX 0x01 /* Inexact exception. */
-
-/* Masks for the info word of an ODK_PAD descriptor. */
-#define OPAD_PREFIX 0x01
-#define OPAD_POSTFIX 0x02
-#define OPAD_SYMBOL 0x04
-
-/* Masks for the info word of an ODK_HWPATCH descriptor. */
-#define OHW_R4KEOP 0x00000001 /* R4000 end-of-page patch. */
-#define OHW_R8KPFETCH 0x00000002 /* May need R8000 prefetch patch. */
-#define OHW_R5KEOP 0x00000004 /* R5000 end-of-page patch. */
-#define OHW_R5KCVTL 0x00000008 /* R5000 cvt.[ds].l bug
- (clean == 1). */
-#define OHW_R10KLDL 0x00000010 /* Needs R10K misaligned
- load patch. */
-
-/* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor. */
-#define OGP_GROUP 0x0000ffff /* GP group number. */
-#define OGP_SELF 0xffff0000 /* Self-contained GP groups. */
-
-/* Masks for the info word of an ODK_HWAND/ODK_HWOR descriptor. */
-#define OHWA0_R4KEOP_CHECKED 0x00000001
-#define OHWA0_R4KEOP_CLEAN 0x00000002
-
-
-/* Object attribute tags. */
-enum
-{
- /* 0-3 are generic. */
- Tag_GNU_MIPS_ABI_FP = 4, /* Value 1 for hard-float -mdouble-float, 2
- for hard-float -msingle-float, 3 for
- soft-float, 4 for -mips32r2 -mfp64; 0 for
- not tagged or not using any ABIs affected
- by the differences. */
-};
-
-#endif /* _ELF_MIPS_H */
diff --git a/include/elf/mmix.h b/include/elf/mmix.h
deleted file mode 100644
index 6d15f7ae4..000000000
--- a/include/elf/mmix.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/* MMIX support for BFD.
- Copyright 2001, 2002, 2003, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MMIX ELF ABI. */
-
-#ifndef ELF_MMIX_H
-#define ELF_MMIX_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. See the reloc table in bfd/elf64-mmix.c for details. */
-START_RELOC_NUMBERS (elf_mmix_reloc_type)
- RELOC_NUMBER (R_MMIX_NONE, 0)
-
- /* Standard absolute relocations. */
- RELOC_NUMBER (R_MMIX_8, 1)
- RELOC_NUMBER (R_MMIX_16, 2)
- RELOC_NUMBER (R_MMIX_24, 3)
- RELOC_NUMBER (R_MMIX_32, 4)
- RELOC_NUMBER (R_MMIX_64, 5)
-
- /* Standard relative relocations. */
- RELOC_NUMBER (R_MMIX_PC_8, 6)
- RELOC_NUMBER (R_MMIX_PC_16, 7)
- RELOC_NUMBER (R_MMIX_PC_24, 8)
- RELOC_NUMBER (R_MMIX_PC_32, 9)
- RELOC_NUMBER (R_MMIX_PC_64, 10)
-
- /* GNU extensions for C++ vtables. */
- RELOC_NUMBER (R_MMIX_GNU_VTINHERIT, 11)
- RELOC_NUMBER (R_MMIX_GNU_VTENTRY, 12)
-
- /* A GETA instruction. */
- RELOC_NUMBER (R_MMIX_GETA, 13)
- RELOC_NUMBER (R_MMIX_GETA_1, 14)
- RELOC_NUMBER (R_MMIX_GETA_2, 15)
- RELOC_NUMBER (R_MMIX_GETA_3, 16)
-
- /* A conditional branch instruction. */
- RELOC_NUMBER (R_MMIX_CBRANCH, 17)
- RELOC_NUMBER (R_MMIX_CBRANCH_J, 18)
- RELOC_NUMBER (R_MMIX_CBRANCH_1, 19)
- RELOC_NUMBER (R_MMIX_CBRANCH_2, 20)
- RELOC_NUMBER (R_MMIX_CBRANCH_3, 21)
-
- /* A PUSHJ instruction. */
- RELOC_NUMBER (R_MMIX_PUSHJ, 22)
- RELOC_NUMBER (R_MMIX_PUSHJ_1, 23)
- RELOC_NUMBER (R_MMIX_PUSHJ_2, 24)
- RELOC_NUMBER (R_MMIX_PUSHJ_3, 25)
-
- /* A JMP instruction. */
- RELOC_NUMBER (R_MMIX_JMP, 26)
- RELOC_NUMBER (R_MMIX_JMP_1, 27)
- RELOC_NUMBER (R_MMIX_JMP_2, 28)
- RELOC_NUMBER (R_MMIX_JMP_3, 29)
-
- /* A relative address such as in a GETA or a branch. */
- RELOC_NUMBER (R_MMIX_ADDR19, 30)
-
- /* A relative address such as in a JMP (only). */
- RELOC_NUMBER (R_MMIX_ADDR27, 31)
-
- /* A general register or a number 0..255. */
- RELOC_NUMBER (R_MMIX_REG_OR_BYTE, 32)
-
- /* A general register. */
- RELOC_NUMBER (R_MMIX_REG, 33)
-
- /* A global register and an offset, the global register (allocated at
- link time) contents plus the offset made equivalent to the relocation
- expression at link time. The relocation must point at the Y field of
- an instruction. */
- RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
-
- /* A LOCAL assertion. */
- RELOC_NUMBER (R_MMIX_LOCAL, 35)
-
- /* A PUSHJ instruction, generating a stub if it does not reach. */
- RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36)
-END_RELOC_NUMBERS (R_MMIX_max)
-
-
-/* Section Attributes. */
-/* A section containing necessary information for relaxation. */
-#define SHF_MMIX_CANRELAX 0x80000000
-
-/* Symbol attributes. */
-/* A symbol with this section-index is a register. */
-#define SHN_REGISTER SHN_LOPROC
-
-/* This section holds contents for each initialized register, at VMA
- regno*8. A symbol relative to this section will be transformed to an
- absolute symbol with the value corresponding to the register number at
- final link time. A symbol with a value outside the inclusive range
- 32*8 .. 254*8 is an error. It is highly recommended to only use an
- upper bound of 253*8 or lower as specified in the (currently
- unspecified) ABI. */
-#define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
-
-/* At link time, a section by this name is created, expected to be
- included in MMIX_REG_CONTENTS_SECTION_NAME in the output. */
-#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
- ".MMIX.reg_contents.linker_allocated"
-
-/* This is a faked section holding symbols with SHN_REGISTER. Don't
- confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
- contents, just values. It is an error for a value in this section to
- be outside the range 32..255 and it must never become an actual section
- in an object file. */
-#define MMIX_REG_SECTION_NAME "*REG*"
-
-/* Appended with a number N=0..65535, this is a representation of the
- mmixal "BSPEC N" ... "ESPEC" directive pair; the contents go into an
- ELF section by name ".MMIX.spec_data.N". */
-#define MMIX_OTHER_SPEC_SECTION_PREFIX ".MMIX.spec_data."
-
-/* A section SECNAME is noted to start at "__.MMIX.start.SECNAME" by the
- presence of this symbol. Currently only implemented for ".text"
- through the symbol "__.MMIX.start..text". */
-#define MMIX_LOC_SECTION_START_SYMBOL_PREFIX "__.MMIX.start."
-
-/* This symbol is always a function. */
-#define MMIX_START_SYMBOL_NAME "Main"
-
-
-/* We smuggle in a few MMO specifics here. We don't make a specific MMO
- file, since we can't reasonably support MMO without ELF; we have to
- include this file anyway. */
-
-#define MMO_TEXT_SECTION_NAME ".text"
-#define MMO_DATA_SECTION_NAME ".data"
-
-/* A definition for the flags we put in spec data in files. A copy of our
- own of some flags to keep immune to BFD flag changes. See section.c of
- 2001-07-18 for flag documentation. */
-#define MMO_SEC_ALLOC 0x001
-#define MMO_SEC_LOAD 0x002
-#define MMO_SEC_RELOC 0x004
-#define MMO_SEC_READONLY 0x010
-#define MMO_SEC_CODE 0x020
-#define MMO_SEC_DATA 0x040
-#define MMO_SEC_NEVER_LOAD 0x400
-#define MMO_SEC_IS_COMMON 0x8000
-#define MMO_SEC_DEBUGGING 0x10000
-
-#ifdef BFD_ARCH_SIZE
-extern bfd_boolean _bfd_mmix_before_linker_allocation
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_mmix_after_linker_allocation
- (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_mmix_check_all_relocs
- (bfd *, struct bfd_link_info *);
-#endif
-
-#endif /* ELF_MMIX_H */
diff --git a/include/elf/mn10200.h b/include/elf/mn10200.h
deleted file mode 100644
index 24972b689..000000000
--- a/include/elf/mn10200.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* MN10200 ELF support for BFD.
- Copyright 1998, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MN10200 ELF ABI. */
-
-#ifndef _ELF_MN10200_H
-#define _ELF_MN10200_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_mn10200_reloc_type)
- RELOC_NUMBER (R_MN10200_NONE, 0)
- RELOC_NUMBER (R_MN10200_32, 1)
- RELOC_NUMBER (R_MN10200_16, 2)
- RELOC_NUMBER (R_MN10200_8, 3)
- RELOC_NUMBER (R_MN10200_24, 4)
- RELOC_NUMBER (R_MN10200_PCREL8, 5)
- RELOC_NUMBER (R_MN10200_PCREL16, 6)
- RELOC_NUMBER (R_MN10200_PCREL24, 7)
-END_RELOC_NUMBERS (R_MN10200_max)
-
-#endif /* _ELF_MN10200_H */
diff --git a/include/elf/mn10300.h b/include/elf/mn10300.h
deleted file mode 100644
index 444787b5f..000000000
--- a/include/elf/mn10300.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* MN10300 ELF support for BFD.
- Copyright 1998, 1999, 2000, 2003, 2007 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MN10300 ELF ABI. */
-
-#ifndef _ELF_MN10300_H
-#define _ELF_MN10300_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_mn10300_reloc_type)
- RELOC_NUMBER (R_MN10300_NONE, 0)
- RELOC_NUMBER (R_MN10300_32, 1)
- RELOC_NUMBER (R_MN10300_16, 2)
- RELOC_NUMBER (R_MN10300_8, 3)
- RELOC_NUMBER (R_MN10300_PCREL32, 4)
- RELOC_NUMBER (R_MN10300_PCREL16, 5)
- RELOC_NUMBER (R_MN10300_PCREL8, 6)
- 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)
- RELOC_NUMBER (R_MN10300_SYM_DIFF, 33)
- RELOC_NUMBER (R_MN10300_ALIGN, 34)
-END_RELOC_NUMBERS (R_MN10300_MAX)
-
-/* Machine variant if we know it. This field was invented at Cygnus,
- but it is hoped that other vendors will adopt it. If some standard
- is developed, this code should be changed to follow it. */
-
-#define EF_MN10300_MACH 0x00FF0000
-
-/* Cygnus is choosing values between 80 and 9F;
- 00 - 7F should be left for a future standard;
- the rest are open. */
-
-#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/moxie.h b/include/elf/moxie.h
deleted file mode 100644
index 0b3eb3810..000000000
--- a/include/elf/moxie.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* moxie ELF support for BFD.
- Copyright 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_MOXIE_H
-#define _ELF_MOXIE_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_moxie_reloc_type)
- RELOC_NUMBER (R_MOXIE_NONE, 0)
- RELOC_NUMBER (R_MOXIE_32, 1)
- RELOC_NUMBER (R_MOXIE_PCREL10, 2)
-END_RELOC_NUMBERS (R_MOXIE_max)
-
-#endif /* _ELF_MOXIE_H */
diff --git a/include/elf/msp430.h b/include/elf/msp430.h
deleted file mode 100644
index 44f5c51a7..000000000
--- a/include/elf/msp430.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* MSP430 ELF support for BFD.
- Copyright (C) 2002, 2003, 2004, 2010 Free Software Foundation, Inc.
- Contributed by Dmitry Diky <diwil@mail.ru>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_MSP430_H
-#define _ELF_MSP430_H
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_MSP430_MACH 0xff
-
-#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
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_msp430_reloc_type)
- RELOC_NUMBER (R_MSP430_NONE, 0)
- RELOC_NUMBER (R_MSP430_32, 1)
- RELOC_NUMBER (R_MSP430_10_PCREL, 2)
- RELOC_NUMBER (R_MSP430_16, 3)
- RELOC_NUMBER (R_MSP430_16_PCREL, 4)
- RELOC_NUMBER (R_MSP430_16_BYTE, 5)
- RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 6)
- RELOC_NUMBER (R_MSP430_2X_PCREL, 7)
- RELOC_NUMBER (R_MSP430_RL_PCREL, 8)
-
-END_RELOC_NUMBERS (R_MSP430_max)
-
-#endif /* _ELF_MSP430_H */
diff --git a/include/elf/mt.h b/include/elf/mt.h
deleted file mode 100644
index 2bc09f42d..000000000
--- a/include/elf/mt.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* MS1 ELF support for BFD.
- Copyright (C) 2000, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_MT_H
-#define _ELF_MT_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_mt_reloc_type)
- RELOC_NUMBER (R_MT_NONE, 0)
- RELOC_NUMBER (R_MT_16, 1)
- RELOC_NUMBER (R_MT_32, 2)
- RELOC_NUMBER (R_MT_32_PCREL, 3)
- RELOC_NUMBER (R_MT_PC16, 4)
- RELOC_NUMBER (R_MT_HI16, 5)
- RELOC_NUMBER (R_MT_LO16, 6)
-END_RELOC_NUMBERS(R_MT_max)
-
-#define EF_MT_CPU_MRISC 0x00000001 /* default */
-#define EF_MT_CPU_MRISC2 0x00000002 /* MRISC2 */
-#define EF_MT_CPU_MS2 0x00000003 /* MS2 */
-#define EF_MT_CPU_MASK 0x00000003 /* specific cpu bits */
-#define EF_MT_ALL_FLAGS (EF_MT_CPU_MASK)
-
-/* The location of the memory mapped hardware stack. */
-#define MT_STACK_VALUE 0x0f000000
-#define MT_STACK_SIZE 0x20
-
-#endif /* _ELF_MT_H */
diff --git a/include/elf/openrisc.h b/include/elf/openrisc.h
deleted file mode 100644
index 87969e8b8..000000000
--- a/include/elf/openrisc.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* OpenRISC ELF support for BFD.
- Copyright 2001, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_OPENRISC_H
-#define _ELF_OPENRISC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_openrisc_reloc_type)
- RELOC_NUMBER (R_OPENRISC_NONE, 0)
- RELOC_NUMBER (R_OPENRISC_INSN_REL_26, 1)
- RELOC_NUMBER (R_OPENRISC_INSN_ABS_26, 2)
- RELOC_NUMBER (R_OPENRISC_LO_16_IN_INSN, 3)
- RELOC_NUMBER (R_OPENRISC_HI_16_IN_INSN, 4)
- RELOC_NUMBER (R_OPENRISC_8, 5)
- RELOC_NUMBER (R_OPENRISC_16, 6)
- RELOC_NUMBER (R_OPENRISC_32, 7)
- RELOC_NUMBER (R_OPENRISC_GNU_VTINHERIT, 8)
- RELOC_NUMBER (R_OPENRISC_GNU_VTENTRY, 9)
-END_RELOC_NUMBERS (R_OPENRISC_max)
-
-#endif /* _ELF_OPENRISC_H */
diff --git a/include/elf/or32.h b/include/elf/or32.h
deleted file mode 100644
index 9f1c2f3f7..000000000
--- a/include/elf/or32.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* OR1K ELF support for BFD. Derived from ppc.h.
- Copyright (C) 2002, 2010 Free Software Foundation, Inc.
- Contributed by Ivan Guzvinec <ivang@opencores.org>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_OR1K_H
-#define _ELF_OR1K_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_or32_reloc_type)
- RELOC_NUMBER (R_OR32_NONE, 0)
- RELOC_NUMBER (R_OR32_32, 1)
- RELOC_NUMBER (R_OR32_16, 2)
- RELOC_NUMBER (R_OR32_8, 3)
- RELOC_NUMBER (R_OR32_CONST, 4)
- RELOC_NUMBER (R_OR32_CONSTH, 5)
- RELOC_NUMBER (R_OR32_JUMPTARG, 6)
- RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7)
- RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8)
-END_RELOC_NUMBERS (R_OR32_max)
-
-/* Four bit OR32 machine type field. */
-#define EF_OR32_MACH 0x0000000f
-
-/* Various CPU types. */
-#define E_OR32_MACH_BASE 0x00000000
-#define E_OR32_MACH_UNUSED1 0x00000001
-#define E_OR32_MACH_UNUSED2 0x00000002
-#define E_OR32_MACH_UNUSED4 0x00000003
-
-/* Processor specific section headers, sh_type field */
-#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
- entries in this section \
- based on the address \
- specified in the associated \
- symbol table entry. */
-
-#endif /* _ELF_OR1K_H */
diff --git a/include/elf/pj.h b/include/elf/pj.h
deleted file mode 100644
index afd19e8dc..000000000
--- a/include/elf/pj.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* picoJava ELF support for BFD.
- Copyright 1999, 2000, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_PJ_H
-#define _ELF_PJ_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-
-START_RELOC_NUMBERS (elf_pj_reloc_type)
- RELOC_NUMBER (R_PJ_NONE, 0)
- RELOC_NUMBER (R_PJ_DATA_DIR32, 1)
- RELOC_NUMBER (R_PJ_CODE_REL32, 2)
- RELOC_NUMBER (R_PJ_CODE_REL16, 3)
- RELOC_NUMBER (R_PJ_CODE_DIR32, 6)
- RELOC_NUMBER (R_PJ_CODE_DIR16, 7)
- RELOC_NUMBER (R_PJ_CODE_LO16, 13)
- RELOC_NUMBER (R_PJ_CODE_HI16, 14)
- RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15)
- RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16)
-END_RELOC_NUMBERS (R_PJ_max)
-
-#define EF_PICOJAVA_ARCH 0x0000000f
-#define EF_PICOJAVA_NEWCALLS 0x00000010
-#define EF_PICOJAVA_GNUCALLS 0x00000020 /* The (currently) non standard GNU calling convention */
-
-#endif
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
deleted file mode 100644
index 8e27855be..000000000
--- a/include/elf/ppc.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* PPC ELF support for BFD.
- Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008,
- 2009, 2010 Free Software Foundation, Inc.
-
- By Michael Meissner, Cygnus Support, <meissner@cygnus.com>,
- from information in the System V Application Binary Interface,
- PowerPC Processor Supplement and the PowerPC Embedded Application
- Binary Interface (eabi).
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the PPC ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_PPC_H
-#define _ELF_PPC_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_ppc_reloc_type)
- RELOC_NUMBER (R_PPC_NONE, 0)
- RELOC_NUMBER (R_PPC_ADDR32, 1)
- RELOC_NUMBER (R_PPC_ADDR24, 2)
- RELOC_NUMBER (R_PPC_ADDR16, 3)
- RELOC_NUMBER (R_PPC_ADDR16_LO, 4)
- RELOC_NUMBER (R_PPC_ADDR16_HI, 5)
- RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
- RELOC_NUMBER (R_PPC_ADDR14, 7)
- RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8)
- RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9)
- RELOC_NUMBER (R_PPC_REL24, 10)
- RELOC_NUMBER (R_PPC_REL14, 11)
- RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12)
- RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13)
- RELOC_NUMBER (R_PPC_GOT16, 14)
- RELOC_NUMBER (R_PPC_GOT16_LO, 15)
- RELOC_NUMBER (R_PPC_GOT16_HI, 16)
- RELOC_NUMBER (R_PPC_GOT16_HA, 17)
- RELOC_NUMBER (R_PPC_PLTREL24, 18)
- RELOC_NUMBER (R_PPC_COPY, 19)
- RELOC_NUMBER (R_PPC_GLOB_DAT, 20)
- RELOC_NUMBER (R_PPC_JMP_SLOT, 21)
- RELOC_NUMBER (R_PPC_RELATIVE, 22)
- RELOC_NUMBER (R_PPC_LOCAL24PC, 23)
- RELOC_NUMBER (R_PPC_UADDR32, 24)
- RELOC_NUMBER (R_PPC_UADDR16, 25)
- RELOC_NUMBER (R_PPC_REL32, 26)
- RELOC_NUMBER (R_PPC_PLT32, 27)
- RELOC_NUMBER (R_PPC_PLTREL32, 28)
- RELOC_NUMBER (R_PPC_PLT16_LO, 29)
- RELOC_NUMBER (R_PPC_PLT16_HI, 30)
- RELOC_NUMBER (R_PPC_PLT16_HA, 31)
- RELOC_NUMBER (R_PPC_SDAREL16, 32)
- RELOC_NUMBER (R_PPC_SECTOFF, 33)
- RELOC_NUMBER (R_PPC_SECTOFF_LO, 34)
- RELOC_NUMBER (R_PPC_SECTOFF_HI, 35)
- RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
- RELOC_NUMBER (R_PPC_ADDR30, 37)
-
-#ifndef RELOC_MACROS_GEN_FUNC
-/* Fake relocations for branch stubs, only used internally by ld. */
- RELOC_NUMBER (R_PPC_RELAX, 48)
- RELOC_NUMBER (R_PPC_RELAX_PLT, 49)
- RELOC_NUMBER (R_PPC_RELAX_PLTREL24, 50)
-#endif
-
- /* Relocs added to support TLS. */
- RELOC_NUMBER (R_PPC_TLS, 67)
- RELOC_NUMBER (R_PPC_DTPMOD32, 68)
- RELOC_NUMBER (R_PPC_TPREL16, 69)
- RELOC_NUMBER (R_PPC_TPREL16_LO, 70)
- RELOC_NUMBER (R_PPC_TPREL16_HI, 71)
- RELOC_NUMBER (R_PPC_TPREL16_HA, 72)
- RELOC_NUMBER (R_PPC_TPREL32, 73)
- RELOC_NUMBER (R_PPC_DTPREL16, 74)
- RELOC_NUMBER (R_PPC_DTPREL16_LO, 75)
- RELOC_NUMBER (R_PPC_DTPREL16_HI, 76)
- RELOC_NUMBER (R_PPC_DTPREL16_HA, 77)
- RELOC_NUMBER (R_PPC_DTPREL32, 78)
- RELOC_NUMBER (R_PPC_GOT_TLSGD16, 79)
- RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO, 80)
- RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI, 81)
- RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA, 82)
- RELOC_NUMBER (R_PPC_GOT_TLSLD16, 83)
- RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO, 84)
- RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI, 85)
- RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA, 86)
- RELOC_NUMBER (R_PPC_GOT_TPREL16, 87)
- RELOC_NUMBER (R_PPC_GOT_TPREL16_LO, 88)
- RELOC_NUMBER (R_PPC_GOT_TPREL16_HI, 89)
- RELOC_NUMBER (R_PPC_GOT_TPREL16_HA, 90)
- RELOC_NUMBER (R_PPC_GOT_DTPREL16, 91)
- RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO, 92)
- RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI, 93)
- RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA, 94)
- RELOC_NUMBER (R_PPC_TLSGD, 95)
- RELOC_NUMBER (R_PPC_TLSLD, 96)
-
-/* The remaining relocs are from the Embedded ELF ABI, and are not
- in the SVR4 ELF ABI. */
- RELOC_NUMBER (R_PPC_EMB_NADDR32, 101)
- RELOC_NUMBER (R_PPC_EMB_NADDR16, 102)
- RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103)
- RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104)
- RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105)
- RELOC_NUMBER (R_PPC_EMB_SDAI16, 106)
- RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107)
- RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108)
- RELOC_NUMBER (R_PPC_EMB_SDA21, 109)
- RELOC_NUMBER (R_PPC_EMB_MRKREF, 110)
- RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111)
- RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112)
- RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113)
- RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114)
- RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
- RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
-
-/* Support STT_GNU_IFUNC plt calls. */
- RELOC_NUMBER (R_PPC_IRELATIVE, 248)
-
-/* These are GNU extensions used in PIC code sequences. */
- RELOC_NUMBER (R_PPC_REL16, 249)
- RELOC_NUMBER (R_PPC_REL16_LO, 250)
- RELOC_NUMBER (R_PPC_REL16_HI, 251)
- RELOC_NUMBER (R_PPC_REL16_HA, 252)
-
-/* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253)
- RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254)
-
-/* This is a phony reloc to handle any old fashioned TOC16 references
- that may still be in object files. */
- RELOC_NUMBER (R_PPC_TOC16, 255)
-
-END_RELOC_NUMBERS (R_PPC_max)
-
-#define IS_PPC_TLS_RELOC(R) \
- ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA)
-
-/* Specify the value of _GLOBAL_OFFSET_TABLE_. */
-#define DT_PPC_GOT (DT_LOPROC)
-
-/* Specify that tls descriptors should be optimized. */
-#define DT_PPC_TLSOPT (DT_LOPROC + 1)
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag. */
-
-#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag. */
-#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib flag. */
-
-/* This bit is reserved by BFD for processor specific stuff. Name
- it properly so that we can easily stay consistent elsewhere. */
-#define SEC_PPC_VLE SEC_TIC54X_BLOCK
-
-/* Processor specific section headers, sh_type field. */
-
-#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
- entries in this section \
- based on the address \
- specified in the associated \
- symbol table entry. */
-
-/* Object attribute tags. */
-enum
-{
- /* 0-3 are generic. */
- Tag_GNU_Power_ABI_FP = 4, /* Value 1 for hard-float, 2 for
- soft-float, 3 for single=precision
- hard-float; 0 for not tagged or not
- using any ABIs affected by the
- differences. */
-
- /* Value 1 for general purpose registers only, 2 for AltiVec
- registers, 3 for SPE registers; 0 for not tagged or not using any
- ABIs affected by the differences. */
- Tag_GNU_Power_ABI_Vector = 8,
-
- /* Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes,
- 2 for ABIs using memory; 0 for not tagged or not using any ABIs
- affected by the differences. */
- Tag_GNU_Power_ABI_Struct_Return = 12
-};
-
-#endif /* _ELF_PPC_H */
diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h
deleted file mode 100644
index f1c80f188..000000000
--- a/include/elf/ppc64.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* PPC64 ELF support for BFD.
- Copyright 2003, 2005, 2009, 2010, 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_PPC64_H
-#define _ELF_PPC64_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_ppc64_reloc_type)
- RELOC_NUMBER (R_PPC64_NONE, 0)
- RELOC_NUMBER (R_PPC64_ADDR32, 1)
- RELOC_NUMBER (R_PPC64_ADDR24, 2)
- RELOC_NUMBER (R_PPC64_ADDR16, 3)
- RELOC_NUMBER (R_PPC64_ADDR16_LO, 4)
- RELOC_NUMBER (R_PPC64_ADDR16_HI, 5)
- RELOC_NUMBER (R_PPC64_ADDR16_HA, 6)
- RELOC_NUMBER (R_PPC64_ADDR14, 7)
- RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN, 8)
- RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN, 9)
- RELOC_NUMBER (R_PPC64_REL24, 10)
- RELOC_NUMBER (R_PPC64_REL14, 11)
- RELOC_NUMBER (R_PPC64_REL14_BRTAKEN, 12)
- RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN, 13)
- RELOC_NUMBER (R_PPC64_GOT16, 14)
- RELOC_NUMBER (R_PPC64_GOT16_LO, 15)
- RELOC_NUMBER (R_PPC64_GOT16_HI, 16)
- RELOC_NUMBER (R_PPC64_GOT16_HA, 17)
- /* 18 unused. 32-bit reloc is R_PPC_PLTREL24. */
- RELOC_NUMBER (R_PPC64_COPY, 19)
- RELOC_NUMBER (R_PPC64_GLOB_DAT, 20)
- RELOC_NUMBER (R_PPC64_JMP_SLOT, 21)
- RELOC_NUMBER (R_PPC64_RELATIVE, 22)
- /* 23 unused. 32-bit reloc is R_PPC_LOCAL24PC. */
- RELOC_NUMBER (R_PPC64_UADDR32, 24)
- RELOC_NUMBER (R_PPC64_UADDR16, 25)
- RELOC_NUMBER (R_PPC64_REL32, 26)
- RELOC_NUMBER (R_PPC64_PLT32, 27)
- RELOC_NUMBER (R_PPC64_PLTREL32, 28)
- RELOC_NUMBER (R_PPC64_PLT16_LO, 29)
- RELOC_NUMBER (R_PPC64_PLT16_HI, 30)
- RELOC_NUMBER (R_PPC64_PLT16_HA, 31)
- /* 32 unused. 32-bit reloc is R_PPC_SDAREL16. */
- RELOC_NUMBER (R_PPC64_SECTOFF, 33)
- RELOC_NUMBER (R_PPC64_SECTOFF_LO, 34)
- RELOC_NUMBER (R_PPC64_SECTOFF_HI, 35)
- RELOC_NUMBER (R_PPC64_SECTOFF_HA, 36)
- RELOC_NUMBER (R_PPC64_REL30, 37)
- RELOC_NUMBER (R_PPC64_ADDR64, 38)
- RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39)
- RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40)
- RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41)
- RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42)
- RELOC_NUMBER (R_PPC64_UADDR64, 43)
- RELOC_NUMBER (R_PPC64_REL64, 44)
- RELOC_NUMBER (R_PPC64_PLT64, 45)
- RELOC_NUMBER (R_PPC64_PLTREL64, 46)
- RELOC_NUMBER (R_PPC64_TOC16, 47)
- RELOC_NUMBER (R_PPC64_TOC16_LO, 48)
- RELOC_NUMBER (R_PPC64_TOC16_HI, 49)
- RELOC_NUMBER (R_PPC64_TOC16_HA, 50)
- RELOC_NUMBER (R_PPC64_TOC, 51)
- RELOC_NUMBER (R_PPC64_PLTGOT16, 52)
- RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53)
- RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54)
- RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55)
-
- /* The following relocs were added in the 64-bit PowerPC ELF ABI
- revision 1.2. */
- RELOC_NUMBER (R_PPC64_ADDR16_DS, 56)
- RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57)
- RELOC_NUMBER (R_PPC64_GOT16_DS, 58)
- RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59)
- RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60)
- RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61)
- RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62)
- RELOC_NUMBER (R_PPC64_TOC16_DS, 63)
- RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64)
- RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65)
- RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66)
-
- /* Relocs added to support TLS. PowerPC64 ELF ABI revision 1.5. */
- RELOC_NUMBER (R_PPC64_TLS, 67)
- RELOC_NUMBER (R_PPC64_DTPMOD64, 68)
- RELOC_NUMBER (R_PPC64_TPREL16, 69)
- RELOC_NUMBER (R_PPC64_TPREL16_LO, 70)
- RELOC_NUMBER (R_PPC64_TPREL16_HI, 71)
- RELOC_NUMBER (R_PPC64_TPREL16_HA, 72)
- RELOC_NUMBER (R_PPC64_TPREL64, 73)
- RELOC_NUMBER (R_PPC64_DTPREL16, 74)
- RELOC_NUMBER (R_PPC64_DTPREL16_LO, 75)
- RELOC_NUMBER (R_PPC64_DTPREL16_HI, 76)
- RELOC_NUMBER (R_PPC64_DTPREL16_HA, 77)
- RELOC_NUMBER (R_PPC64_DTPREL64, 78)
- RELOC_NUMBER (R_PPC64_GOT_TLSGD16, 79)
- RELOC_NUMBER (R_PPC64_GOT_TLSGD16_LO, 80)
- RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HI, 81)
- RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HA, 82)
- RELOC_NUMBER (R_PPC64_GOT_TLSLD16, 83)
- RELOC_NUMBER (R_PPC64_GOT_TLSLD16_LO, 84)
- RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HI, 85)
- RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HA, 86)
- RELOC_NUMBER (R_PPC64_GOT_TPREL16_DS, 87)
- RELOC_NUMBER (R_PPC64_GOT_TPREL16_LO_DS, 88)
- RELOC_NUMBER (R_PPC64_GOT_TPREL16_HI, 89)
- RELOC_NUMBER (R_PPC64_GOT_TPREL16_HA, 90)
- RELOC_NUMBER (R_PPC64_GOT_DTPREL16_DS, 91)
- RELOC_NUMBER (R_PPC64_GOT_DTPREL16_LO_DS, 92)
- RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HI, 93)
- RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HA, 94)
- RELOC_NUMBER (R_PPC64_TPREL16_DS, 95)
- RELOC_NUMBER (R_PPC64_TPREL16_LO_DS, 96)
- RELOC_NUMBER (R_PPC64_TPREL16_HIGHER, 97)
- RELOC_NUMBER (R_PPC64_TPREL16_HIGHERA, 98)
- RELOC_NUMBER (R_PPC64_TPREL16_HIGHEST, 99)
- RELOC_NUMBER (R_PPC64_TPREL16_HIGHESTA, 100)
- RELOC_NUMBER (R_PPC64_DTPREL16_DS, 101)
- RELOC_NUMBER (R_PPC64_DTPREL16_LO_DS, 102)
- RELOC_NUMBER (R_PPC64_DTPREL16_HIGHER, 103)
- RELOC_NUMBER (R_PPC64_DTPREL16_HIGHERA, 104)
- RELOC_NUMBER (R_PPC64_DTPREL16_HIGHEST, 105)
- RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106)
- RELOC_NUMBER (R_PPC64_TLSGD, 107)
- RELOC_NUMBER (R_PPC64_TLSLD, 108)
- RELOC_NUMBER (R_PPC64_TOCSAVE, 109)
-
-#ifndef RELOC_MACROS_GEN_FUNC
-/* Fake relocation only used internally by ld. */
- RELOC_NUMBER (R_PPC64_LO_DS_OPT, 128)
-#endif
-/* Support STT_GNU_IFUNC plt calls. */
- RELOC_NUMBER (R_PPC64_JMP_IREL, 247)
- RELOC_NUMBER (R_PPC64_IRELATIVE, 248)
-
-/* These are GNU extensions used in PIC code sequences. */
- RELOC_NUMBER (R_PPC64_REL16, 249)
- RELOC_NUMBER (R_PPC64_REL16_LO, 250)
- RELOC_NUMBER (R_PPC64_REL16_HI, 251)
- RELOC_NUMBER (R_PPC64_REL16_HA, 252)
-
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253)
- RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254)
-
-END_RELOC_NUMBERS (R_PPC64_max)
-
-#define IS_PPC64_TLS_RELOC(R) \
- ((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA)
-
-/* Specify the start of the .glink section. */
-#define DT_PPC64_GLINK DT_LOPROC
-
-/* Specify the start and size of the .opd section. */
-#define DT_PPC64_OPD (DT_LOPROC + 1)
-#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
-
-/* Specify that tls descriptors should be optimized. */
-#define DT_PPC64_TLSOPT (DT_LOPROC + 3)
-
-#endif /* _ELF_PPC64_H */
diff --git a/include/elf/reloc-macros.h b/include/elf/reloc-macros.h
deleted file mode 100644
index 92fc9c145..000000000
--- a/include/elf/reloc-macros.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Generic relocation support for BFD.
- Copyright 1998, 1999, 2000, 2003, 2010, 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* These macros are used by the various *.h target specific header
- files to either generate an enum containing all the known relocations
- for that target, or if RELOC_MACROS_GEN_FUNC is defined, a recognition
- function is generated instead. (This is used by binutils/readelf.c)
-
- Given a header file like this:
-
- START_RELOC_NUMBERS (foo)
- RELOC_NUMBER (R_foo_NONE, 0)
- RELOC_NUMBER (R_foo_32, 1)
- EMPTY_RELOC (R_foo_good)
- FAKE_RELOC (R_foo_illegal, 9)
- END_RELOC_NUMBERS (R_foo_count)
-
- Then the following will be produced by default (ie if
- RELOC_MACROS_GEN_FUNC is *not* defined).
-
- enum foo
- {
- R_foo_NONE = 0,
- R_foo_32 = 1,
- R_foo_good,
- R_foo_illegal = 9,
- R_foo_count
- };
-
- Note: The value of the symbol defined in the END_RELOC_NUMBERS
- macro (R_foo_count in the case of the example above) will be
- set to the value of the whichever *_RELOC macro precedes it plus
- one. Therefore if you intend to use the symbol as a sentinel for
- the highest valid macro value you should make sure that the
- preceding *_RELOC macro is the highest valid number. ie a
- declaration like this:
-
- START_RELOC_NUMBERS (foo)
- RELOC_NUMBER (R_foo_NONE, 0)
- RELOC_NUMBER (R_foo_32, 1)
- FAKE_RELOC (R_foo_illegal, 9)
- FAKE_RELOC (R_foo_synonym, 0)
- END_RELOC_NUMBERS (R_foo_count)
-
- will result in R_foo_count having a value of 1 (R_foo_synonym + 1)
- rather than 10 or 2 as might be expected.
-
- Alternatively you can assign a value to END_RELOC_NUMBERS symbol
- explicitly, like this:
-
- START_RELOC_NUMBERS (foo)
- RELOC_NUMBER (R_foo_NONE, 0)
- RELOC_NUMBER (R_foo_32, 1)
- FAKE_RELOC (R_foo_illegal, 9)
- FAKE_RELOC (R_foo_synonym, 0)
- END_RELOC_NUMBERS (R_foo_count = 2)
-
- If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
- following function will be generated:
-
- static const char *foo (unsigned long rtype);
- static const char *
- foo (unsigned long rtype)
- {
- switch (rtype)
- {
- case 0: return "R_foo_NONE";
- case 1: return "R_foo_32";
- default: return NULL;
- }
- }
- */
-
-#ifndef _RELOC_MACROS_H
-#define _RELOC_MACROS_H
-
-#ifdef RELOC_MACROS_GEN_FUNC
-
-/* This function takes the relocation number and returns the
- string version name of the name of that relocation. If
- the relocation is not recognised, NULL is returned. */
-
-#define START_RELOC_NUMBERS(name) \
-static const char *name (unsigned long rtype); \
-static const char * \
-name (unsigned long rtype) \
-{ \
- switch (rtype) \
- {
-
-#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; \
- } \
-}
-
-
-#else /* Default to generating enum. */
-
-#define START_RELOC_NUMBERS(name) enum name {
-#define RELOC_NUMBER(name, number) name = number,
-#define FAKE_RELOC(name, number) name = number,
-#define EMPTY_RELOC(name) name,
-#define END_RELOC_NUMBERS(name) name };
-
-#endif
-
-#endif /* _RELOC_MACROS_H */
diff --git a/include/elf/rl78.h b/include/elf/rl78.h
deleted file mode 100644
index 4f29850ee..000000000
--- a/include/elf/rl78.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* RL78 ELF support for BFD.
- Copyright (C) 2008, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_RL78_H
-#define _ELF_RL78_H
-
-#include "elf/reloc-macros.h"
-
-/* Note that there are a few internal relocation types used by the
- linker to do link-time relaxation. If you update this file, please
- check elf32-rl78.c to see if any of the internal relocations need to
- be, er, relocated. */
-
-/* Preliminary relocations. */
-START_RELOC_NUMBERS (elf_rl78_reloc_type)
-
- RELOC_NUMBER (R_RL78_NONE, 0x00)
- /* These are for data, and are bi-endian. */
- RELOC_NUMBER (R_RL78_DIR32, 0x01) /* Was: R_RL78_32. */
- RELOC_NUMBER (R_RL78_DIR24S, 0x02) /* Was: R_RL78_24. */
- RELOC_NUMBER (R_RL78_DIR16, 0x03)
- RELOC_NUMBER (R_RL78_DIR16U, 0x04) /* Was: R_RL78_16_UNS. */
- RELOC_NUMBER (R_RL78_DIR16S, 0x05) /* Was: R_RL78_16. */
- RELOC_NUMBER (R_RL78_DIR8, 0x06)
- RELOC_NUMBER (R_RL78_DIR8U, 0x07) /* Was: R_RL78_8_UNS. */
- RELOC_NUMBER (R_RL78_DIR8S, 0x08) /* Was: R_RL78_8. */
-
- /* Signed pc-relative values. */
- RELOC_NUMBER (R_RL78_DIR24S_PCREL, 0x09) /* Was: R_RL78_24_PCREL. */
- RELOC_NUMBER (R_RL78_DIR16S_PCREL, 0x0a) /* Was: R_RL78_16_PCREL. */
- RELOC_NUMBER (R_RL78_DIR8S_PCREL, 0x0b) /* Was: R_RL78_8_PCREL. */
-
- /* These are for fields in the instructions. */
- RELOC_NUMBER (R_RL78_DIR16UL, 0x0c)
- RELOC_NUMBER (R_RL78_DIR16UW, 0x0d)
- RELOC_NUMBER (R_RL78_DIR8UL, 0x0e)
- RELOC_NUMBER (R_RL78_DIR8UW, 0x0f)
- RELOC_NUMBER (R_RL78_DIR32_REV, 0x10)
- RELOC_NUMBER (R_RL78_DIR16_REV, 0x11)
- RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12)
-
- /* These are for complex relocs. */
- RELOC_NUMBER (R_RL78_ABS32, 0x41)
- RELOC_NUMBER (R_RL78_ABS24S, 0x42)
- RELOC_NUMBER (R_RL78_ABS16, 0x43)
- RELOC_NUMBER (R_RL78_ABS16U, 0x44)
- RELOC_NUMBER (R_RL78_ABS16S, 0x45)
- RELOC_NUMBER (R_RL78_ABS8, 0x46)
- RELOC_NUMBER (R_RL78_ABS8U, 0x47)
- RELOC_NUMBER (R_RL78_ABS8S, 0x48)
- RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49)
- RELOC_NUMBER (R_RL78_ABS16S_PCREL, 0x4a)
- RELOC_NUMBER (R_RL78_ABS8S_PCREL, 0x4b)
- RELOC_NUMBER (R_RL78_ABS16UL, 0x4c)
- RELOC_NUMBER (R_RL78_ABS16UW, 0x4d)
- RELOC_NUMBER (R_RL78_ABS8UL, 0x4e)
- RELOC_NUMBER (R_RL78_ABS8UW, 0x4f)
- RELOC_NUMBER (R_RL78_ABS32_REV, 0x50)
- RELOC_NUMBER (R_RL78_ABS16_REV, 0x51)
-
- RELOC_NUMBER (R_RL78_SYM, 0x80)
- RELOC_NUMBER (R_RL78_OPneg, 0x81)
- RELOC_NUMBER (R_RL78_OPadd, 0x82)
- RELOC_NUMBER (R_RL78_OPsub, 0x83)
- RELOC_NUMBER (R_RL78_OPmul, 0x84)
- RELOC_NUMBER (R_RL78_OPdiv, 0x85)
- RELOC_NUMBER (R_RL78_OPshla, 0x86)
- RELOC_NUMBER (R_RL78_OPshra, 0x87)
- RELOC_NUMBER (R_RL78_OPsctsize, 0x88)
- RELOC_NUMBER (R_RL78_OPscttop, 0x8d)
- RELOC_NUMBER (R_RL78_OPand, 0x90)
- RELOC_NUMBER (R_RL78_OPor, 0x91)
- RELOC_NUMBER (R_RL78_OPxor, 0x92)
- RELOC_NUMBER (R_RL78_OPnot, 0x93)
- RELOC_NUMBER (R_RL78_OPmod, 0x94)
- RELOC_NUMBER (R_RL78_OPromtop, 0x95)
- RELOC_NUMBER (R_RL78_OPramtop, 0x96)
-
-END_RELOC_NUMBERS (R_RL78_max)
-
-#define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */
-#define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */
-#define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK)
-
-/* Values for the e_flags field in the ELF header. */
-#define E_FLAG_RL78_64BIT_DOUBLES (1 << 0)
-#define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Object file specification, but not explained. */
-
-/* These define the addend field of R_RL78_RH_RELAX relocations. */
-#define RL78_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */
-#define RL78_RELAXA_IMM12 0x00000020 /* Imm8/16/24/32 at bit offset 12. */
-#define RL78_RELAXA_DSP4 0x00000040 /* Dsp0/8/16 at bit offset 4. */
-#define RL78_RELAXA_DSP6 0x00000080 /* Dsp0/8/16 at bit offset 6. */
-#define RL78_RELAXA_DSP14 0x00000100 /* Dsp0/8/16 at bit offset 14. */
-#define RL78_RELAXA_BRA 0x00000200 /* Any type of branch (must be decoded). */
-#define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */
-/* These mark the place where alignment is requested, and the place where the filler bytes end. */
-#define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */
-#define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */
-#define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */
-
-#endif /* _ELF_RL78_H */
diff --git a/include/elf/rx.h b/include/elf/rx.h
deleted file mode 100644
index baaa1aa9e..000000000
--- a/include/elf/rx.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* RX ELF support for BFD.
- Copyright (C) 2008, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_RX_H
-#define _ELF_RX_H
-
-#include "elf/reloc-macros.h"
-
-/* Note that there are a few internal relocation types used by the
- linker to do link-time relaxation. If you update this file, please
- check elf32-rx.c to see if any of the internal relocations need to
- be, er, relocated. */
-
-/* Preliminary relocations. */
-START_RELOC_NUMBERS (elf_rx_reloc_type)
-
- RELOC_NUMBER (R_RX_NONE, 0x00)
- /* These are for data, and are bi-endian. */
- RELOC_NUMBER (R_RX_DIR32, 0x01) /* Was: R_RX_32. */
- RELOC_NUMBER (R_RX_DIR24S, 0x02) /* Was: R_RX_24. */
- RELOC_NUMBER (R_RX_DIR16, 0x03)
- RELOC_NUMBER (R_RX_DIR16U, 0x04) /* Was: R_RX_16_UNS. */
- RELOC_NUMBER (R_RX_DIR16S, 0x05) /* Was: R_RX_16. */
- RELOC_NUMBER (R_RX_DIR8, 0x06)
- RELOC_NUMBER (R_RX_DIR8U, 0x07) /* Was: R_RX_8_UNS. */
- RELOC_NUMBER (R_RX_DIR8S, 0x08) /* Was: R_RX_8. */
-
- /* Signed pc-relative values. */
- RELOC_NUMBER (R_RX_DIR24S_PCREL, 0x09) /* Was: R_RX_24_PCREL. */
- RELOC_NUMBER (R_RX_DIR16S_PCREL, 0x0a) /* Was: R_RX_16_PCREL. */
- RELOC_NUMBER (R_RX_DIR8S_PCREL, 0x0b) /* Was: R_RX_8_PCREL. */
-
- /* These are for fields in the instructions. */
- RELOC_NUMBER (R_RX_DIR16UL, 0x0c)
- RELOC_NUMBER (R_RX_DIR16UW, 0x0d)
- RELOC_NUMBER (R_RX_DIR8UL, 0x0e)
- RELOC_NUMBER (R_RX_DIR8UW, 0x0f)
- RELOC_NUMBER (R_RX_DIR32_REV, 0x10)
- RELOC_NUMBER (R_RX_DIR16_REV, 0x11)
- RELOC_NUMBER (R_RX_DIR3U_PCREL, 0x12)
-
- /* These are extensions added by Red Hat. */
- RELOC_NUMBER (R_RX_RH_3_PCREL, 0x20) /* Like R_RX_DIR8S_PCREL but only 3-bits. */
- RELOC_NUMBER (R_RX_RH_16_OP, 0x21) /* Like R_RX_DIR16 but for opcodes - always big endian. */
- RELOC_NUMBER (R_RX_RH_24_OP, 0x22) /* Like R_RX_DIR24S but for opcodes - always big endian. */
- RELOC_NUMBER (R_RX_RH_32_OP, 0x23) /* Like R_RX_DIR32 but for opcodes - always big endian. */
- RELOC_NUMBER (R_RX_RH_24_UNS, 0x24) /* Like R_RX_DIR24S but for unsigned values. */
- RELOC_NUMBER (R_RX_RH_8_NEG, 0x25) /* Like R_RX_DIR8 but -x is stored. */
- RELOC_NUMBER (R_RX_RH_16_NEG, 0x26) /* Like R_RX_DIR16 but -x is stored. */
- RELOC_NUMBER (R_RX_RH_24_NEG, 0x27) /* Like R_RX_DIR24S but -x is stored. */
- RELOC_NUMBER (R_RX_RH_32_NEG, 0x28) /* Like R_RX_DIR32 but -x is stored. */
- RELOC_NUMBER (R_RX_RH_DIFF, 0x29) /* Subtract from a previous relocation. */
- RELOC_NUMBER (R_RX_RH_GPRELB, 0x2a) /* Byte value, relative to __gp. */
- RELOC_NUMBER (R_RX_RH_GPRELW, 0x2b) /* Word value, relative to __gp. */
- RELOC_NUMBER (R_RX_RH_GPRELL, 0x2c) /* Long value, relative to __gp. */
- RELOC_NUMBER (R_RX_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */
-
- /* These are for complex relocs. */
- RELOC_NUMBER (R_RX_ABS32, 0x41)
- RELOC_NUMBER (R_RX_ABS24S, 0x42)
- RELOC_NUMBER (R_RX_ABS16, 0x43)
- RELOC_NUMBER (R_RX_ABS16U, 0x44)
- RELOC_NUMBER (R_RX_ABS16S, 0x45)
- RELOC_NUMBER (R_RX_ABS8, 0x46)
- RELOC_NUMBER (R_RX_ABS8U, 0x47)
- RELOC_NUMBER (R_RX_ABS8S, 0x48)
- RELOC_NUMBER (R_RX_ABS24S_PCREL, 0x49)
- RELOC_NUMBER (R_RX_ABS16S_PCREL, 0x4a)
- RELOC_NUMBER (R_RX_ABS8S_PCREL, 0x4b)
- RELOC_NUMBER (R_RX_ABS16UL, 0x4c)
- RELOC_NUMBER (R_RX_ABS16UW, 0x4d)
- RELOC_NUMBER (R_RX_ABS8UL, 0x4e)
- RELOC_NUMBER (R_RX_ABS8UW, 0x4f)
- RELOC_NUMBER (R_RX_ABS32_REV, 0x50)
- RELOC_NUMBER (R_RX_ABS16_REV, 0x51)
-
- RELOC_NUMBER (R_RX_SYM, 0x80)
- RELOC_NUMBER (R_RX_OPneg, 0x81)
- RELOC_NUMBER (R_RX_OPadd, 0x82)
- RELOC_NUMBER (R_RX_OPsub, 0x83)
- RELOC_NUMBER (R_RX_OPmul, 0x84)
- RELOC_NUMBER (R_RX_OPdiv, 0x85)
- RELOC_NUMBER (R_RX_OPshla, 0x86)
- RELOC_NUMBER (R_RX_OPshra, 0x87)
- RELOC_NUMBER (R_RX_OPsctsize, 0x88)
- RELOC_NUMBER (R_RX_OPscttop, 0x8d)
- RELOC_NUMBER (R_RX_OPand, 0x90)
- RELOC_NUMBER (R_RX_OPor, 0x91)
- RELOC_NUMBER (R_RX_OPxor, 0x92)
- RELOC_NUMBER (R_RX_OPnot, 0x93)
- RELOC_NUMBER (R_RX_OPmod, 0x94)
- RELOC_NUMBER (R_RX_OPromtop, 0x95)
- RELOC_NUMBER (R_RX_OPramtop, 0x96)
-
-END_RELOC_NUMBERS (R_RX_max)
-
-#define EF_RX_CPU_RX 0x00000079 /* FIXME: correct value? */
-#define EF_RX_CPU_MASK 0x0000007F /* specific cpu bits. */
-#define EF_RX_ALL_FLAGS (EF_RX_CPU_MASK)
-
-/* Values for the e_flags field in the ELF header. */
-#define E_FLAG_RX_64BIT_DOUBLES (1 << 0)
-#define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */
-#define E_FLAG_RX_PID (1 << 2) /* Unofficial - DJ */
-
-/* These define the addend field of R_RX_RH_RELAX relocations. */
-#define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */
-#define RX_RELAXA_IMM12 0x00000020 /* Imm8/16/24/32 at bit offset 12. */
-#define RX_RELAXA_DSP4 0x00000040 /* Dsp0/8/16 at bit offset 4. */
-#define RX_RELAXA_DSP6 0x00000080 /* Dsp0/8/16 at bit offset 6. */
-#define RX_RELAXA_DSP14 0x00000100 /* Dsp0/8/16 at bit offset 14. */
-#define RX_RELAXA_BRA 0x00000200 /* Any type of branch (must be decoded). */
-#define RX_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */
-/* These mark the place where alignment is requested, and the place where the filler bytes end. */
-#define RX_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */
-#define RX_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */
-#define RX_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */
-
-#endif /* _ELF_RX_H */
diff --git a/include/elf/s390.h b/include/elf/s390.h
deleted file mode 100644
index 807b7e8e0..000000000
--- a/include/elf/s390.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* 390 ELF support for BFD.
- Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc.
- Contributed by Carl B. Pedersen and Martin Schwidefsky.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef _ELF_390_H
-#define _ELF_390_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* Symbol types. */
-
-#define STACK_REG 15 /* Global Stack reg */
-#define BACKL_REG 14 /* Global Backlink reg */
-#define BASE_REG 13 /* Global Base reg */
-#define GOT_REG 12 /* Holds addr of GOT */
-
-#include "elf/reloc-macros.h"
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-#define EF_S390_HIGH_GPRS 0x00000001
-
-/* Relocation types. */
-
-START_RELOC_NUMBERS (elf_s390_reloc_type)
- RELOC_NUMBER (R_390_NONE, 0) /* No reloc. */
- RELOC_NUMBER (R_390_8, 1) /* Direct 8 bit. */
- RELOC_NUMBER (R_390_12, 2) /* Direct 12 bit. */
- RELOC_NUMBER (R_390_16, 3) /* Direct 16 bit. */
- RELOC_NUMBER (R_390_32, 4) /* Direct 32 bit. */
- RELOC_NUMBER (R_390_PC32, 5) /* PC relative 32 bit. */
- RELOC_NUMBER (R_390_GOT12, 6) /* 12 bit GOT offset. */
- RELOC_NUMBER (R_390_GOT32, 7) /* 32 bit GOT offset. */
- RELOC_NUMBER (R_390_PLT32, 8) /* 32 bit PC relative PLT address. */
- RELOC_NUMBER (R_390_COPY, 9) /* Copy symbol at runtime. */
- RELOC_NUMBER (R_390_GLOB_DAT, 10) /* Create GOT entry. */
- RELOC_NUMBER (R_390_JMP_SLOT, 11) /* Create PLT entry. */
- RELOC_NUMBER (R_390_RELATIVE, 12) /* Adjust by program base. */
- RELOC_NUMBER (R_390_GOTOFF32, 13) /* 32 bit offset to GOT. */
- RELOC_NUMBER (R_390_GOTPC, 14) /* 32 bit PC relative offset to GOT. */
- RELOC_NUMBER (R_390_GOT16, 15) /* 16 bit GOT offset. */
- RELOC_NUMBER (R_390_PC16, 16) /* PC relative 16 bit. */
- RELOC_NUMBER (R_390_PC16DBL, 17) /* PC relative 16 bit shifted by 1. */
- RELOC_NUMBER (R_390_PLT16DBL, 18) /* 16 bit PC rel. PLT shifted by 1. */
- RELOC_NUMBER (R_390_PC32DBL, 19) /* PC relative 32 bit shifted by 1. */
- RELOC_NUMBER (R_390_PLT32DBL, 20) /* 32 bit PC rel. PLT shifted by 1. */
- RELOC_NUMBER (R_390_GOTPCDBL, 21) /* 32 bit PC rel. GOT shifted by 1. */
- RELOC_NUMBER (R_390_64, 22) /* Direct 64 bit. */
- RELOC_NUMBER (R_390_PC64, 23) /* PC relative 64 bit. */
- RELOC_NUMBER (R_390_GOT64, 24) /* 64 bit GOT offset. */
- RELOC_NUMBER (R_390_PLT64, 25) /* 64 bit PC relative PLT address. */
- RELOC_NUMBER (R_390_GOTENT, 26) /* 32 bit PC rel. to GOT entry >> 1. */
- RELOC_NUMBER (R_390_GOTOFF16, 27) /* 16 bit offset to GOT. */
- RELOC_NUMBER (R_390_GOTOFF64, 28) /* 64 bit offset to GOT. */
- RELOC_NUMBER (R_390_GOTPLT12, 29) /* 12 bit offset to jump slot. */
- RELOC_NUMBER (R_390_GOTPLT16, 30) /* 16 bit offset to jump slot. */
- RELOC_NUMBER (R_390_GOTPLT32, 31) /* 32 bit offset to jump slot. */
- RELOC_NUMBER (R_390_GOTPLT64, 32) /* 64 bit offset to jump slot. */
- RELOC_NUMBER (R_390_GOTPLTENT, 33) /* 32 bit rel. offset to jump slot. */
- RELOC_NUMBER (R_390_PLTOFF16, 34) /* 16 bit offset from GOT to PLT. */
- RELOC_NUMBER (R_390_PLTOFF32, 35) /* 32 bit offset from GOT to PLT. */
- RELOC_NUMBER (R_390_PLTOFF64, 36) /* 16 bit offset from GOT to PLT. */
- RELOC_NUMBER (R_390_TLS_LOAD, 37) /* Tag for load insn in TLS code. */
- RELOC_NUMBER (R_390_TLS_GDCALL, 38) /* Tag for function call in general
- dynamic TLS code. */
- RELOC_NUMBER (R_390_TLS_LDCALL, 39) /* Tag for function call in local
- dynamic TLS code. */
- RELOC_NUMBER (R_390_TLS_GD32, 40) /* Direct 32 bit for general dynamic
- thread local data. */
- RELOC_NUMBER (R_390_TLS_GD64, 41) /* Direct 64 bit for general dynamic
- thread local data. */
- RELOC_NUMBER (R_390_TLS_GOTIE12, 42)/* 12 bit GOT offset for static TLS
- block offset. */
- RELOC_NUMBER (R_390_TLS_GOTIE32, 43)/* 32 bit GOT offset for static TLS
- block offset. */
- RELOC_NUMBER (R_390_TLS_GOTIE64, 44)/* 64 bit GOT offset for static TLS
- block offset. */
- RELOC_NUMBER (R_390_TLS_LDM32, 45) /* Direct 32 bit for local dynamic
- thread local data in LD code. */
- RELOC_NUMBER (R_390_TLS_LDM64, 46) /* Direct 64 bit for local dynamic
- thread local data in LD code. */
- RELOC_NUMBER (R_390_TLS_IE32, 47) /* 32 bit address of GOT entry for
- negated static TLS block offset. */
- RELOC_NUMBER (R_390_TLS_IE64, 48) /* 64 bit address of GOT entry for
- negated static TLS block offset. */
- RELOC_NUMBER (R_390_TLS_IEENT, 49) /* 32 bit rel. offset to GOT entry for
- negated static TLS block offset. */
- RELOC_NUMBER (R_390_TLS_LE32, 50) /* 32 bit negated offset relative to
- static TLS block. */
- RELOC_NUMBER (R_390_TLS_LE64, 51) /* 64 bit negated offset relative to
- static TLS block. */
- RELOC_NUMBER (R_390_TLS_LDO32, 52) /* 32 bit offset relative to TLS
- block. */
- RELOC_NUMBER (R_390_TLS_LDO64, 53) /* 64 bit offset relative to TLS
- block. */
- RELOC_NUMBER (R_390_TLS_DTPMOD, 54) /* ID of module containing symbol. */
- 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)
-END_RELOC_NUMBERS (R_390_max)
-
-#endif /* _ELF_390_H */
-
-
diff --git a/include/elf/score.h b/include/elf/score.h
deleted file mode 100644
index 8d9c026bb..000000000
--- a/include/elf/score.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Score ELF support for BFD.
- Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
- Contributed by
- Brain.lin (brain.lin@sunplusct.com)
- Mei Ligang (ligang@sunnorth.com.cn)
- Pei-Lin Tsai (pltsai@sunplus.com)
-
- 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 3 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,
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_SCORE_H
-#define _ELF_SCORE_H
-
-#include "elf/reloc-macros.h"
-
-#define SCORE_SIMULATOR_ACTIVE 1
-#define OPC_PTMASK 0xc0000000 /* Parity-bit Mask. */
-#define OPC16_PTMASK 0x00008000
-/* The parity-bit denotes. */
-#define OPC_32 0xc0000000 /* Denotes 32b instruction, (default). */
-#define OPC_16 0x00000000 /* Denotes 16b instruction. */
-#define OPC_PE 0x8000 /* Denotes parallel-execution instructions. */
-#define GP_DISP_LABEL "_gp_disp"
-
-/* Processor specific flags for the ELF header e_flags field: */
-#define EF_SCORE_MACH 0xffff0000
-#define EF_OMIT_PIC_FIXDD 0x0fff0000
-#define E_SCORE_MACH_SCORE3 0x00030000
-#define E_SCORE_MACH_SCORE7 0x00070000
-
-/* File contains position independent code. */
-#define EF_SCORE_PIC 0x80000000
-
-/* Fix data dependency. */
-#define EF_SCORE_FIXDEP 0x40000000
-
-/* Defined and allocated common symbol. Value is virtual address. If
- relocated, alignment must be preserved. */
-#define SHN_SCORE_TEXT (SHN_LORESERVE + 1)
-#define SHN_SCORE_DATA (SHN_LORESERVE + 2)
-/* Small common symbol. */
-#define SHN_SCORE_SCOMMON (SHN_LORESERVE + 3)
-
-/* Processor specific section flags. */
-
-/* This section must be in the global data area. */
-#define SHF_SCORE_GPREL 0x10000000
-
-/* This section should be merged. */
-#define SHF_SCORE_MERGE 0x20000000
-
-/* This section contains address data of size implied by section
- element size. */
-#define SHF_SCORE_ADDR 0x40000000
-
-/* This section contains string data. */
-#define SHF_SCORE_STRING 0x80000000
-
-/* This section may not be stripped. */
-#define SHF_SCORE_NOSTRIP 0x08000000
-
-/* This section is local to threads. */
-#define SHF_SCORE_LOCAL 0x04000000
-
-/* Linker should generate implicit weak names for this section. */
-#define SHF_SCORE_NAMES 0x02000000
-
-/* Section contais text/data which may be replicated in other sections.
- Linker should retain only one copy. */
-#define SHF_SCORE_NODUPES 0x01000000
-
-/* Processor specific dynamic array tags. */
-
-/* Base address of the segment. */
-#define DT_SCORE_BASE_ADDRESS 0x70000001
-/* Number of local global offset table entries. */
-#define DT_SCORE_LOCAL_GOTNO 0x70000002
-/* Number of entries in the .dynsym section. */
-#define DT_SCORE_SYMTABNO 0x70000003
-/* Index of first dynamic symbol in global offset table. */
-#define DT_SCORE_GOTSYM 0x70000004
-/* Index of first external dynamic symbol not referenced locally. */
-#define DT_SCORE_UNREFEXTNO 0x70000005
-/* Number of page table entries in global offset table. */
-#define DT_SCORE_HIPAGENO 0x70000006
-
-
-/* Processor specific section types. */
-
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_score_reloc_type)
- RELOC_NUMBER (R_SCORE_NONE, 0)
- RELOC_NUMBER (R_SCORE_HI16, 1)
- RELOC_NUMBER (R_SCORE_LO16, 2)
- RELOC_NUMBER (R_SCORE_BCMP, 3)
- RELOC_NUMBER (R_SCORE_24, 4)
- RELOC_NUMBER (R_SCORE_PC19, 5)
- RELOC_NUMBER (R_SCORE16_11, 6)
- RELOC_NUMBER (R_SCORE16_PC8, 7)
- RELOC_NUMBER (R_SCORE_ABS32, 8)
- RELOC_NUMBER (R_SCORE_ABS16, 9)
- RELOC_NUMBER (R_SCORE_DUMMY2, 10)
- RELOC_NUMBER (R_SCORE_GP15, 11)
- RELOC_NUMBER (R_SCORE_GNU_VTINHERIT, 12)
- RELOC_NUMBER (R_SCORE_GNU_VTENTRY, 13)
- RELOC_NUMBER (R_SCORE_GOT15, 14)
- RELOC_NUMBER (R_SCORE_GOT_LO16, 15)
- RELOC_NUMBER (R_SCORE_CALL15, 16)
- RELOC_NUMBER (R_SCORE_GPREL32, 17)
- RELOC_NUMBER (R_SCORE_REL32, 18)
- RELOC_NUMBER (R_SCORE_DUMMY_HI16, 19)
- RELOC_NUMBER (R_SCORE_IMM30, 20)
- RELOC_NUMBER (R_SCORE_IMM32, 21)
-END_RELOC_NUMBERS (R_SCORE_max)
-
-#endif /* _ELF_SCORE_H */
diff --git a/include/elf/sh.h b/include/elf/sh.h
deleted file mode 100644
index c2bd50d2a..000000000
--- a/include/elf/sh.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/* SH ELF support for BFD.
- Copyright 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_SH_H
-#define _ELF_SH_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-#define EF_SH_MACH_MASK 0x1f
-#define EF_SH_UNKNOWN 0 /* For backwards compatibility. */
-#define EF_SH1 1
-#define EF_SH2 2
-#define EF_SH3 3
-#define EF_SH_DSP 4
-#define EF_SH3_DSP 5
-#define EF_SH4AL_DSP 6
-#define EF_SH3E 8
-#define EF_SH4 9
-#define EF_SH2E 11
-#define EF_SH4A 12
-#define EF_SH2A 13
-
-#define EF_SH4_NOFPU 16
-#define EF_SH4A_NOFPU 17
-#define EF_SH4_NOMMU_NOFPU 18
-#define EF_SH2A_NOFPU 19
-#define EF_SH3_NOMMU 20
-
-#define EF_SH2A_SH4_NOFPU 21
-#define EF_SH2A_SH3_NOFPU 22
-#define EF_SH2A_SH4 23
-#define EF_SH2A_SH3E 24
-
-/* This one can only mix in objects from other EF_SH5 objects. */
-#define EF_SH5 10
-
-/* Define the mapping from ELF to bfd mach numbers.
- bfd_mach_* are defined in bfd_in2.h (generated from
- archures.c). */
-#define EF_SH_BFD_TABLE \
-/* EF_SH_UNKNOWN */ bfd_mach_sh , \
-/* EF_SH1 */ bfd_mach_sh , \
-/* EF_SH2 */ bfd_mach_sh2 , \
-/* EF_SH3 */ bfd_mach_sh3 , \
-/* EF_SH_DSP */ bfd_mach_sh_dsp , \
-/* EF_SH3_DSP */ bfd_mach_sh3_dsp , \
-/* EF_SHAL_DSP */ bfd_mach_sh4al_dsp , \
-/* 7 */ 0, \
-/* EF_SH3E */ bfd_mach_sh3e , \
-/* EF_SH4 */ bfd_mach_sh4 , \
-/* EF_SH5 */ 0, \
-/* EF_SH2E */ bfd_mach_sh2e , \
-/* EF_SH4A */ bfd_mach_sh4a , \
-/* EF_SH2A */ bfd_mach_sh2a , \
-/* 14, 15 */ 0, 0, \
-/* EF_SH4_NOFPU */ bfd_mach_sh4_nofpu , \
-/* EF_SH4A_NOFPU */ bfd_mach_sh4a_nofpu , \
-/* EF_SH4_NOMMU_NOFPU */ bfd_mach_sh4_nommu_nofpu, \
-/* EF_SH2A_NOFPU */ bfd_mach_sh2a_nofpu , \
-/* EF_SH3_NOMMU */ bfd_mach_sh3_nommu , \
-/* EF_SH2A_SH4_NOFPU */ bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, \
-/* EF_SH2A_SH3_NOFPU */ bfd_mach_sh2a_nofpu_or_sh3_nommu, \
-/* EF_SH2A_SH4 */ bfd_mach_sh2a_or_sh4 , \
-/* EF_SH2A_SH3E */ bfd_mach_sh2a_or_sh3e
-
-/* Convert arch_sh* into EF_SH*. */
-int sh_find_elf_flags (unsigned int arch_set);
-
-/* Convert bfd_mach_* into EF_SH*. */
-int sh_elf_get_flags_from_mach (unsigned long mach);
-
-/* Other e_flags bits. */
-
-#define EF_SH_PIC 0x100 /* Segments of an FDPIC binary may
- be relocated independently. */
-#define EF_SH_FDPIC 0x8000 /* Uses the FDPIC ABI. */
-
-/* Flags for the st_other symbol field.
- Keep away from the STV_ visibility flags (bit 0..1). */
-
-/* A reference to this symbol should by default add 1. */
-#define STO_SH5_ISA32 (1 << 2)
-
-/* Section contains only SHmedia code (no SHcompact code). */
-#define SHF_SH5_ISA32 0x40000000
-
-/* Section contains both SHmedia and SHcompact code, and possibly also
- constants. */
-#define SHF_SH5_ISA32_MIXED 0x20000000
-
-/* If applied to a .cranges section, marks that the section is sorted by
- increasing cr_addr values. */
-#define SHT_SH5_CR_SORTED 0x80000001
-
-/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF
- symbols). */
-#define STT_DATALABEL STT_LOPROC
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-/* Relocations 10-32 and 128-255 are GNU extensions.
- 25..32 and 10 are used for relaxation. */
-START_RELOC_NUMBERS (elf_sh_reloc_type)
- RELOC_NUMBER (R_SH_NONE, 0)
- RELOC_NUMBER (R_SH_DIR32, 1)
- RELOC_NUMBER (R_SH_REL32, 2)
- RELOC_NUMBER (R_SH_DIR8WPN, 3)
- RELOC_NUMBER (R_SH_IND12W, 4)
- RELOC_NUMBER (R_SH_DIR8WPL, 5)
- RELOC_NUMBER (R_SH_DIR8WPZ, 6)
- RELOC_NUMBER (R_SH_DIR8BP, 7)
- RELOC_NUMBER (R_SH_DIR8W, 8)
- RELOC_NUMBER (R_SH_DIR8L, 9)
-
- RELOC_NUMBER (R_SH_LOOP_START, 10)
- RELOC_NUMBER (R_SH_LOOP_END, 11)
-
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC, 12)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC, 21)
-
- RELOC_NUMBER (R_SH_GNU_VTINHERIT, 22)
- RELOC_NUMBER (R_SH_GNU_VTENTRY, 23)
- RELOC_NUMBER (R_SH_SWITCH8, 24)
- RELOC_NUMBER (R_SH_SWITCH16, 25)
- RELOC_NUMBER (R_SH_SWITCH32, 26)
- RELOC_NUMBER (R_SH_USES, 27)
- RELOC_NUMBER (R_SH_COUNT, 28)
- RELOC_NUMBER (R_SH_ALIGN, 29)
- RELOC_NUMBER (R_SH_CODE, 30)
- RELOC_NUMBER (R_SH_DATA, 31)
- RELOC_NUMBER (R_SH_LABEL, 32)
-
- RELOC_NUMBER (R_SH_DIR16, 33)
- RELOC_NUMBER (R_SH_DIR8, 34)
- RELOC_NUMBER (R_SH_DIR8UL, 35)
- RELOC_NUMBER (R_SH_DIR8UW, 36)
- RELOC_NUMBER (R_SH_DIR8U, 37)
- RELOC_NUMBER (R_SH_DIR8SW, 38)
- RELOC_NUMBER (R_SH_DIR8S, 39)
- RELOC_NUMBER (R_SH_DIR4UL, 40)
- RELOC_NUMBER (R_SH_DIR4UW, 41)
- RELOC_NUMBER (R_SH_DIR4U, 42)
- RELOC_NUMBER (R_SH_PSHA, 43)
- RELOC_NUMBER (R_SH_PSHL, 44)
- RELOC_NUMBER (R_SH_DIR5U, 45)
- RELOC_NUMBER (R_SH_DIR6U, 46)
- RELOC_NUMBER (R_SH_DIR6S, 47)
- RELOC_NUMBER (R_SH_DIR10S, 48)
- RELOC_NUMBER (R_SH_DIR10SW, 49)
- RELOC_NUMBER (R_SH_DIR10SL, 50)
- RELOC_NUMBER (R_SH_DIR10SQ, 51)
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 52)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 52)
- RELOC_NUMBER (R_SH_DIR16S, 53)
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 54)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 143)
- RELOC_NUMBER (R_SH_TLS_GD_32, 144)
- RELOC_NUMBER (R_SH_TLS_LD_32, 145)
- RELOC_NUMBER (R_SH_TLS_LDO_32, 146)
- RELOC_NUMBER (R_SH_TLS_IE_32, 147)
- RELOC_NUMBER (R_SH_TLS_LE_32, 148)
- RELOC_NUMBER (R_SH_TLS_DTPMOD32, 149)
- RELOC_NUMBER (R_SH_TLS_DTPOFF32, 150)
- RELOC_NUMBER (R_SH_TLS_TPOFF32, 151)
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 152)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 159)
- RELOC_NUMBER (R_SH_GOT32, 160)
- RELOC_NUMBER (R_SH_PLT32, 161)
- RELOC_NUMBER (R_SH_COPY, 162)
- RELOC_NUMBER (R_SH_GLOB_DAT, 163)
- RELOC_NUMBER (R_SH_JMP_SLOT, 164)
- RELOC_NUMBER (R_SH_RELATIVE, 165)
- RELOC_NUMBER (R_SH_GOTOFF, 166)
- RELOC_NUMBER (R_SH_GOTPC, 167)
- RELOC_NUMBER (R_SH_GOTPLT32, 168)
- RELOC_NUMBER (R_SH_GOT_LOW16, 169)
- RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170)
- RELOC_NUMBER (R_SH_GOT_MEDHI16, 171)
- RELOC_NUMBER (R_SH_GOT_HI16, 172)
- RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173)
- RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174)
- RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175)
- RELOC_NUMBER (R_SH_GOTPLT_HI16, 176)
- RELOC_NUMBER (R_SH_PLT_LOW16, 177)
- RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178)
- RELOC_NUMBER (R_SH_PLT_MEDHI16, 179)
- RELOC_NUMBER (R_SH_PLT_HI16, 180)
- RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181)
- RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182)
- RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183)
- RELOC_NUMBER (R_SH_GOTOFF_HI16, 184)
- RELOC_NUMBER (R_SH_GOTPC_LOW16, 185)
- RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186)
- RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187)
- RELOC_NUMBER (R_SH_GOTPC_HI16, 188)
- RELOC_NUMBER (R_SH_GOT10BY4, 189)
- RELOC_NUMBER (R_SH_GOTPLT10BY4, 190)
- RELOC_NUMBER (R_SH_GOT10BY8, 191)
- RELOC_NUMBER (R_SH_GOTPLT10BY8, 192)
- RELOC_NUMBER (R_SH_COPY64, 193)
- RELOC_NUMBER (R_SH_GLOB_DAT64, 194)
- RELOC_NUMBER (R_SH_JMP_SLOT64, 195)
- RELOC_NUMBER (R_SH_RELATIVE64, 196)
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_5, 197)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC_5, 200)
- RELOC_NUMBER (R_SH_GOT20, 201)
- RELOC_NUMBER (R_SH_GOTOFF20, 202)
- RELOC_NUMBER (R_SH_GOTFUNCDESC, 203)
- RELOC_NUMBER (R_SH_GOTFUNCDESC20, 204)
- RELOC_NUMBER (R_SH_GOTOFFFUNCDESC, 205)
- RELOC_NUMBER (R_SH_GOTOFFFUNCDESC20, 206)
- RELOC_NUMBER (R_SH_FUNCDESC, 207)
- RELOC_NUMBER (R_SH_FUNCDESC_VALUE, 208)
- FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_6, 209)
- FAKE_RELOC (R_SH_LAST_INVALID_RELOC_6, 241)
- RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242)
- RELOC_NUMBER (R_SH_PT_16, 243)
- RELOC_NUMBER (R_SH_IMMS16, 244)
- RELOC_NUMBER (R_SH_IMMU16, 245)
- RELOC_NUMBER (R_SH_IMM_LOW16, 246)
- RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247)
- RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248)
- RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249)
- RELOC_NUMBER (R_SH_IMM_MEDHI16, 250)
- RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251)
- RELOC_NUMBER (R_SH_IMM_HI16, 252)
- RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253)
- RELOC_NUMBER (R_SH_64, 254)
- RELOC_NUMBER (R_SH_64_PCREL, 255)
-END_RELOC_NUMBERS (R_SH_max)
-
-#endif
diff --git a/include/elf/sparc.h b/include/elf/sparc.h
deleted file mode 100644
index fc8a765a6..000000000
--- a/include/elf/sparc.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/* SPARC ELF support for BFD.
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2008, 2010,
- 2011
- Free Software Foundation, Inc.
- By Doug Evans, Cygnus Support, <dje@cygnus.com>.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_SPARC_H
-#define _ELF_SPARC_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* These are defined by Sun. */
-
-#define EF_SPARC_32PLUS_MASK 0xffff00 /* bits indicating V8+ type */
-#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
-#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
-#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
-#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
-
-#define EF_SPARC_LEDATA 0x800000 /* little endian data */
-
-/* This name is used in the V9 ABI. */
-#define EF_SPARC_EXT_MASK 0xffff00 /* reserved for vendor extensions */
-
-/* V9 memory models */
-#define EF_SPARCV9_MM 0x3 /* memory model mask */
-#define EF_SPARCV9_TSO 0x0 /* total store ordering */
-#define EF_SPARCV9_PSO 0x1 /* partial store ordering */
-#define EF_SPARCV9_RMO 0x2 /* relaxed store ordering */
-
-/* Section indices. */
-
-#define SHN_BEFORE SHN_LORESERVE /* Used with SHF_ORDERED and... */
-#define SHN_AFTER (SHN_LORESERVE + 1) /* SHF_LINK_ORDER section flags. */
-
-/* Section flags. */
-
-#define SHF_ORDERED 0x40000000 /* treat sh_link,sh_info specially */
-
-/* Symbol types. */
-
-#define STT_REGISTER 13 /* global reg reserved to app. */
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_sparc_reloc_type)
- RELOC_NUMBER (R_SPARC_NONE, 0)
- RELOC_NUMBER (R_SPARC_8, 1)
- RELOC_NUMBER (R_SPARC_16, 2)
- RELOC_NUMBER (R_SPARC_32, 3)
- RELOC_NUMBER (R_SPARC_DISP8, 4)
- RELOC_NUMBER (R_SPARC_DISP16, 5)
- RELOC_NUMBER (R_SPARC_DISP32, 6)
- RELOC_NUMBER (R_SPARC_WDISP30, 7)
- RELOC_NUMBER (R_SPARC_WDISP22, 8)
- RELOC_NUMBER (R_SPARC_HI22, 9)
- RELOC_NUMBER (R_SPARC_22, 10)
- RELOC_NUMBER (R_SPARC_13, 11)
- RELOC_NUMBER (R_SPARC_LO10, 12)
- RELOC_NUMBER (R_SPARC_GOT10, 13)
- RELOC_NUMBER (R_SPARC_GOT13, 14)
- RELOC_NUMBER (R_SPARC_GOT22, 15)
- RELOC_NUMBER (R_SPARC_PC10, 16)
- RELOC_NUMBER (R_SPARC_PC22, 17)
- RELOC_NUMBER (R_SPARC_WPLT30, 18)
- RELOC_NUMBER (R_SPARC_COPY, 19)
- RELOC_NUMBER (R_SPARC_GLOB_DAT, 20)
- RELOC_NUMBER (R_SPARC_JMP_SLOT, 21)
- RELOC_NUMBER (R_SPARC_RELATIVE, 22)
- RELOC_NUMBER (R_SPARC_UA32, 23)
-
- /* ??? These 6 relocs are new but not currently used. For binary
- compatibility in the sparc64-elf toolchain, we leave them out.
- A non-binary upward compatible change is expected for sparc64-elf. */
-#ifndef SPARC64_OLD_RELOCS
- /* ??? New relocs on the UltraSPARC. Not sure what they're for yet. */
- RELOC_NUMBER (R_SPARC_PLT32, 24)
- RELOC_NUMBER (R_SPARC_HIPLT22, 25)
- RELOC_NUMBER (R_SPARC_LOPLT10, 26)
- RELOC_NUMBER (R_SPARC_PCPLT32, 27)
- RELOC_NUMBER (R_SPARC_PCPLT22, 28)
- RELOC_NUMBER (R_SPARC_PCPLT10, 29)
-#endif
-
- /* v9 relocs */
- RELOC_NUMBER (R_SPARC_10, 30)
- RELOC_NUMBER (R_SPARC_11, 31)
- RELOC_NUMBER (R_SPARC_64, 32)
- RELOC_NUMBER (R_SPARC_OLO10, 33)
- RELOC_NUMBER (R_SPARC_HH22, 34)
- RELOC_NUMBER (R_SPARC_HM10, 35)
- RELOC_NUMBER (R_SPARC_LM22, 36)
- RELOC_NUMBER (R_SPARC_PC_HH22, 37)
- RELOC_NUMBER (R_SPARC_PC_HM10, 38)
- RELOC_NUMBER (R_SPARC_PC_LM22, 39)
- RELOC_NUMBER (R_SPARC_WDISP16, 40)
- RELOC_NUMBER (R_SPARC_WDISP19, 41)
- RELOC_NUMBER (R_SPARC_UNUSED_42, 42)
- RELOC_NUMBER (R_SPARC_7, 43)
- RELOC_NUMBER (R_SPARC_5, 44)
- RELOC_NUMBER (R_SPARC_6, 45)
- RELOC_NUMBER (R_SPARC_DISP64, 46)
- RELOC_NUMBER (R_SPARC_PLT64, 47)
- RELOC_NUMBER (R_SPARC_HIX22, 48)
- RELOC_NUMBER (R_SPARC_LOX10, 49)
- RELOC_NUMBER (R_SPARC_H44, 50)
- RELOC_NUMBER (R_SPARC_M44, 51)
- RELOC_NUMBER (R_SPARC_L44, 52)
- RELOC_NUMBER (R_SPARC_REGISTER, 53)
- RELOC_NUMBER (R_SPARC_UA64, 54)
- RELOC_NUMBER (R_SPARC_UA16, 55)
-
- RELOC_NUMBER (R_SPARC_TLS_GD_HI22, 56)
- RELOC_NUMBER (R_SPARC_TLS_GD_LO10, 57)
- RELOC_NUMBER (R_SPARC_TLS_GD_ADD, 58)
- RELOC_NUMBER (R_SPARC_TLS_GD_CALL, 59)
- RELOC_NUMBER (R_SPARC_TLS_LDM_HI22, 60)
- RELOC_NUMBER (R_SPARC_TLS_LDM_LO10, 61)
- RELOC_NUMBER (R_SPARC_TLS_LDM_ADD, 62)
- RELOC_NUMBER (R_SPARC_TLS_LDM_CALL, 63)
- RELOC_NUMBER (R_SPARC_TLS_LDO_HIX22, 64)
- RELOC_NUMBER (R_SPARC_TLS_LDO_LOX10, 65)
- RELOC_NUMBER (R_SPARC_TLS_LDO_ADD, 66)
- RELOC_NUMBER (R_SPARC_TLS_IE_HI22, 67)
- RELOC_NUMBER (R_SPARC_TLS_IE_LO10, 68)
- RELOC_NUMBER (R_SPARC_TLS_IE_LD, 69)
- RELOC_NUMBER (R_SPARC_TLS_IE_LDX, 70)
- RELOC_NUMBER (R_SPARC_TLS_IE_ADD, 71)
- RELOC_NUMBER (R_SPARC_TLS_LE_HIX22, 72)
- RELOC_NUMBER (R_SPARC_TLS_LE_LOX10, 73)
- RELOC_NUMBER (R_SPARC_TLS_DTPMOD32, 74)
- RELOC_NUMBER (R_SPARC_TLS_DTPMOD64, 75)
- RELOC_NUMBER (R_SPARC_TLS_DTPOFF32, 76)
- RELOC_NUMBER (R_SPARC_TLS_DTPOFF64, 77)
- RELOC_NUMBER (R_SPARC_TLS_TPOFF32, 78)
- RELOC_NUMBER (R_SPARC_TLS_TPOFF64, 79)
-
- RELOC_NUMBER (R_SPARC_GOTDATA_HIX22, 80)
- RELOC_NUMBER (R_SPARC_GOTDATA_LOX10, 81)
- RELOC_NUMBER (R_SPARC_GOTDATA_OP_HIX22, 82)
- RELOC_NUMBER (R_SPARC_GOTDATA_OP_LOX10, 83)
- RELOC_NUMBER (R_SPARC_GOTDATA_OP, 84)
-
- RELOC_NUMBER (R_SPARC_H34, 85)
- RELOC_NUMBER (R_SPARC_SIZE32, 86)
- RELOC_NUMBER (R_SPARC_SIZE64, 87)
-
- EMPTY_RELOC (R_SPARC_max_std)
-
- RELOC_NUMBER (R_SPARC_JMP_IREL, 248)
- RELOC_NUMBER (R_SPARC_IRELATIVE, 249)
- RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
- RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
- RELOC_NUMBER (R_SPARC_REV32, 252)
-
-END_RELOC_NUMBERS (R_SPARC_max)
-
-/* Relocation macros. */
-
-#define ELF64_R_TYPE_DATA(info) \
- (((bfd_signed_vma)(ELF64_R_TYPE(info) >> 8) ^ 0x800000) - 0x800000)
-#define ELF64_R_TYPE_ID(info) \
- ((info) & 0xff)
-#define ELF64_R_TYPE_INFO(data, type) \
- (((bfd_vma) ((data) & 0xffffff) << 8) | (bfd_vma) (type))
-
-/* Values for Elf64_Dyn.d_tag. */
-
-#define DT_SPARC_REGISTER 0x70000001
-
-/* Object attribute tags. */
-enum
-{
- /* 0-3 are generic. */
- Tag_GNU_Sparc_HWCAPS = 4,
-};
-
-/* These values match the AV_SPARC_* hwcap bits defined under Solaris. */
-#define ELF_SPARC_HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */
-#define ELF_SPARC_HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */
-#define ELF_SPARC_HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */
-#define ELF_SPARC_HWCAP_V8PLUS 0x00000008 /* v9 insns available to 32bit */
-#define ELF_SPARC_HWCAP_POPC 0x00000010 /* 'popc' insn */
-#define ELF_SPARC_HWCAP_VIS 0x00000020 /* VIS insns */
-#define ELF_SPARC_HWCAP_VIS2 0x00000040 /* VIS2 insns */
-#define ELF_SPARC_HWCAP_ASI_BLK_INIT \
- 0x00000080 /* block init ASIs */
-#define ELF_SPARC_HWCAP_FMAF 0x00000100 /* fused multiply-add */
-#define ELF_SPARC_HWCAP_VIS3 0x00000400 /* VIS3 insns */
-#define ELF_SPARC_HWCAP_HPC 0x00000800 /* HPC insns */
-#define ELF_SPARC_HWCAP_RANDOM 0x00001000 /* 'random' insn */
-#define ELF_SPARC_HWCAP_TRANS 0x00002000 /* transaction insns */
-#define ELF_SPARC_HWCAP_FJFMAU 0x00004000 /* unfused multiply-add */
-#define ELF_SPARC_HWCAP_IMA 0x00008000 /* integer multiply-add */
-#define ELF_SPARC_HWCAP_ASI_CACHE_SPARING \
- 0x00010000 /* cache sparing ASIs */
-
-#endif /* _ELF_SPARC_H */
diff --git a/include/elf/spu.h b/include/elf/spu.h
deleted file mode 100644
index 0618ec8fc..000000000
--- a/include/elf/spu.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* SPU ELF support for BFD.
-
- Copyright 2006, 2007, 2009, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_SPU_H
-#define _ELF_SPU_H
-
-#include "elf/reloc-macros.h"
-
-/* elf32-spu.c depends on these being consecutive. */
-START_RELOC_NUMBERS (elf_spu_reloc_type)
- RELOC_NUMBER (R_SPU_NONE, 0)
- RELOC_NUMBER (R_SPU_ADDR10, 1)
- RELOC_NUMBER (R_SPU_ADDR16, 2)
- RELOC_NUMBER (R_SPU_ADDR16_HI, 3)
- RELOC_NUMBER (R_SPU_ADDR16_LO, 4)
- RELOC_NUMBER (R_SPU_ADDR18, 5)
- RELOC_NUMBER (R_SPU_ADDR32, 6)
- RELOC_NUMBER (R_SPU_REL16, 7)
- RELOC_NUMBER (R_SPU_ADDR7, 8)
- RELOC_NUMBER (R_SPU_REL9, 9)
- RELOC_NUMBER (R_SPU_REL9I, 10)
- RELOC_NUMBER (R_SPU_ADDR10I, 11)
- RELOC_NUMBER (R_SPU_ADDR16I, 12)
- RELOC_NUMBER (R_SPU_REL32, 13)
- RELOC_NUMBER (R_SPU_ADDR16X, 14)
- RELOC_NUMBER (R_SPU_PPU32, 15)
- RELOC_NUMBER (R_SPU_PPU64, 16)
- RELOC_NUMBER (R_SPU_ADD_PIC, 17)
-END_RELOC_NUMBERS (R_SPU_max)
-
-/* Program header extensions */
-
-/* Mark a PT_LOAD segment as containing an overlay which should not
- initially be loaded. */
-#define PF_OVERLAY (1 << 27)
-
-/* SPU Dynamic Object Information. */
-#define PT_SPU_INFO 0x70000000
-
-/* SPU plugin information */
-#define SPU_PLUGIN_NAME "SPUNAME"
-#define SPU_PTNOTE_SPUNAME ".note.spu_name"
-
-#endif /* _ELF_SPU_H */
diff --git a/include/elf/tic6x-attrs.h b/include/elf/tic6x-attrs.h
deleted file mode 100644
index 21ce1e4f5..000000000
--- a/include/elf/tic6x-attrs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* TI C6X ELF attributes.
- Copyright 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Define the TAG macro before including this file; it takes a tag
- name and value. */
-
-TAG(Tag_ISA, 4)
-TAG(Tag_ABI_wchar_t, 6)
-TAG(Tag_ABI_stack_align_needed, 8)
-TAG(Tag_ABI_stack_align_preserved, 10)
-TAG(Tag_ABI_DSBT, 12)
-TAG(Tag_ABI_PID, 14)
-TAG(Tag_ABI_PIC, 16)
-TAG(Tag_ABI_array_object_alignment, 18)
-TAG(Tag_ABI_array_object_align_expected, 20)
-TAG(Tag_ABI_compatibility, 32)
-TAG(Tag_ABI_conformance, 67)
diff --git a/include/elf/tic6x.h b/include/elf/tic6x.h
deleted file mode 100644
index e686cc3a5..000000000
--- a/include/elf/tic6x.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* TI C6X ELF support for BFD.
- Copyright 2010, 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_TIC6X_H
-#define _ELF_TIC6X_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_tic6x_reloc_type)
- RELOC_NUMBER (R_C6000_NONE, 0)
- RELOC_NUMBER (R_C6000_ABS32, 1)
- RELOC_NUMBER (R_C6000_ABS16, 2)
- RELOC_NUMBER (R_C6000_ABS8, 3)
- RELOC_NUMBER (R_C6000_PCR_S21, 4)
- RELOC_NUMBER (R_C6000_PCR_S12, 5)
- RELOC_NUMBER (R_C6000_PCR_S10, 6)
- RELOC_NUMBER (R_C6000_PCR_S7, 7)
- RELOC_NUMBER (R_C6000_ABS_S16, 8)
- RELOC_NUMBER (R_C6000_ABS_L16, 9)
- RELOC_NUMBER (R_C6000_ABS_H16, 10)
- RELOC_NUMBER (R_C6000_SBR_U15_B, 11)
- RELOC_NUMBER (R_C6000_SBR_U15_H, 12)
- RELOC_NUMBER (R_C6000_SBR_U15_W, 13)
- RELOC_NUMBER (R_C6000_SBR_S16, 14)
- RELOC_NUMBER (R_C6000_SBR_L16_B, 15)
- RELOC_NUMBER (R_C6000_SBR_L16_H, 16)
- RELOC_NUMBER (R_C6000_SBR_L16_W, 17)
- RELOC_NUMBER (R_C6000_SBR_H16_B, 18)
- RELOC_NUMBER (R_C6000_SBR_H16_H, 19)
- RELOC_NUMBER (R_C6000_SBR_H16_W, 20)
- RELOC_NUMBER (R_C6000_SBR_GOT_U15_W, 21)
- RELOC_NUMBER (R_C6000_SBR_GOT_L16_W, 22)
- RELOC_NUMBER (R_C6000_SBR_GOT_H16_W, 23)
- RELOC_NUMBER (R_C6000_DSBT_INDEX, 24)
- RELOC_NUMBER (R_C6000_PREL31, 25)
- RELOC_NUMBER (R_C6000_COPY, 26)
- RELOC_NUMBER (R_C6000_JUMP_SLOT, 27)
- RELOC_NUMBER (R_C6000_EHTYPE, 28)
- RELOC_NUMBER (R_C6000_PCR_H16, 29)
- RELOC_NUMBER (R_C6000_PCR_L16, 30)
- RELOC_NUMBER (R_C6000_ALIGN, 253)
- RELOC_NUMBER (R_C6000_FPHEAD, 254)
- RELOC_NUMBER (R_C6000_NOCMP, 255)
-END_RELOC_NUMBERS (R_TIC6X_max)
-
-/* Processor-specific flags. */
-
-/* File contains static relocation information. */
-#define EF_C6000_REL 0x1
-
-/* Processor-specific section types. */
-
-/* Unwind function table for stack unwinding. */
-#define SHT_C6000_UNWIND 0x70000001
-
-/* DLL dynamic linking pre-emption map. */
-#define SHT_C6000_PREEMPTMAP 0x70000002
-
-/* Object file compatibility attributes. */
-#define SHT_C6000_ATTRIBUTES 0x70000003
-
-/* Intermediate code for link-time optimization. */
-#define SHT_TI_ICODE 0x7F000000
-
-/* Symbolic cross reference information. */
-#define SHT_TI_XREF 0x7F000001
-
-/* Reserved. */
-#define SHT_TI_HANDLER 0x7F000002
-
-/* Compressed data for initializing C variables. */
-#define SHT_TI_INITINFO 0x7F000003
-
-/* Extended program header attributes. */
-#define SHT_TI_PHATTRS 0x7F000004
-
-/* Processor specific section indices. These sections do not actually
- exist. Symbols with a st_shndx field corresponding to one of these
- values have a special meaning. */
-
-/* Small data area common symbol. */
-#define SHN_TIC6X_SCOMMON SHN_LORESERVE
-
-/* Processor-specific segment types. */
-
-/* Extended Segment Attributes. */
-#define PT_C6000_PHATTR 0x70000000
-
-/* Processor-specific dynamic tags. */
-
-/* Undocumented. */
-#define DT_C6000_GSYM_OFFSET 0x6000000D
-
-/* Undocumented. */
-#define DT_C6000_GSTR_OFFSET 0x6000000F
-
-/* Statically linked base address of data segment. */
-#define DT_C6000_DSBT_BASE 0x70000000
-
-/* Number of entries in this module's DSBT. */
-#define DT_C6000_DSBT_SIZE 0x70000001
-
-/* Undocumented. */
-#define DT_C6000_PREEMPTMAP 0x70000002
-
-/* The hard-coded DSBT index for this module, if any. */
-#define DT_C6000_DSBT_INDEX 0x70000003
-
-/* Extended program header attributes. */
-
-/* Terminate a segment. */
-#define PHA_NULL 0x0
-
-/* Segment's address bound to the final address. */
-#define PHA_BOUND 0x1
-
-/* Segment cannot be further relocated. */
-#define PHA_READONLY 0x2
-
-/* Build attributes. */
-enum
- {
-#define TAG(tag, value) tag = value,
-#include "elf/tic6x-attrs.h"
-#undef TAG
- Tag_C6XABI_last
- };
-
-/* Values for Tag_ISA. GNU-specific names; the ABI does not specify
- names for these values. */
-enum
- {
- C6XABI_Tag_ISA_none = 0,
- C6XABI_Tag_ISA_C62X = 1,
- C6XABI_Tag_ISA_C67X = 3,
- C6XABI_Tag_ISA_C67XP = 4,
- C6XABI_Tag_ISA_C64X = 6,
- C6XABI_Tag_ISA_C64XP = 7,
- C6XABI_Tag_ISA_C674X = 8
- };
-
-/* Special section names. */
-#define ELF_STRING_C6000_unwind ".c6xabi.exidx"
-#define ELF_STRING_C6000_unwind_info ".c6xabi.extab"
-#define ELF_STRING_C6000_unwind_once ".gnu.linkonce.c6xabi.exidx."
-#define ELF_STRING_C6000_unwind_info_once ".gnu.linkonce.c6xabi.extab."
-
-#endif /* _ELF_TIC6X_H */
diff --git a/include/elf/tilegx.h b/include/elf/tilegx.h
deleted file mode 100644
index d276f2e5f..000000000
--- a/include/elf/tilegx.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* TILE-Gx ELF support for BFD.
- Copyright 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_TILEGX_H
-#define _ELF_TILEGX_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_tilegx_reloc_type)
- RELOC_NUMBER (R_TILEGX_NONE, 0)
-
- /* Standard relocations */
- RELOC_NUMBER (R_TILEGX_64, 1)
- RELOC_NUMBER (R_TILEGX_32, 2)
- RELOC_NUMBER (R_TILEGX_16, 3)
- RELOC_NUMBER (R_TILEGX_8, 4)
- RELOC_NUMBER (R_TILEGX_64_PCREL, 5)
- RELOC_NUMBER (R_TILEGX_32_PCREL, 6)
- RELOC_NUMBER (R_TILEGX_16_PCREL, 7)
- RELOC_NUMBER (R_TILEGX_8_PCREL, 8)
-
- /* Custom relocations */
-
- RELOC_NUMBER (R_TILEGX_HW0, 9)
- RELOC_NUMBER (R_TILEGX_HW1, 10)
- RELOC_NUMBER (R_TILEGX_HW2, 11)
- RELOC_NUMBER (R_TILEGX_HW3, 12)
- RELOC_NUMBER (R_TILEGX_HW0_LAST, 13)
- RELOC_NUMBER (R_TILEGX_HW1_LAST, 14)
- RELOC_NUMBER (R_TILEGX_HW2_LAST, 15)
-
- RELOC_NUMBER (R_TILEGX_COPY, 16)
- RELOC_NUMBER (R_TILEGX_GLOB_DAT, 17)
- RELOC_NUMBER (R_TILEGX_JMP_SLOT, 18)
- RELOC_NUMBER (R_TILEGX_RELATIVE, 19)
-
- /* Branch/jump offsets */
- RELOC_NUMBER (R_TILEGX_BROFF_X1, 20)
- RELOC_NUMBER (R_TILEGX_JUMPOFF_X1, 21)
- RELOC_NUMBER (R_TILEGX_JUMPOFF_X1_PLT, 22)
-
- /* Immediate operands. */
- RELOC_NUMBER (R_TILEGX_IMM8_X0, 23)
- RELOC_NUMBER (R_TILEGX_IMM8_Y0, 24)
- RELOC_NUMBER (R_TILEGX_IMM8_X1, 25)
- RELOC_NUMBER (R_TILEGX_IMM8_Y1, 26)
- RELOC_NUMBER (R_TILEGX_DEST_IMM8_X1, 27)
- RELOC_NUMBER (R_TILEGX_MT_IMM14_X1, 28)
- RELOC_NUMBER (R_TILEGX_MF_IMM14_X1, 29)
- RELOC_NUMBER (R_TILEGX_MMSTART_X0, 30)
- RELOC_NUMBER (R_TILEGX_MMEND_X0, 31)
- RELOC_NUMBER (R_TILEGX_SHAMT_X0, 32)
- RELOC_NUMBER (R_TILEGX_SHAMT_X1, 33)
- RELOC_NUMBER (R_TILEGX_SHAMT_Y0, 34)
- RELOC_NUMBER (R_TILEGX_SHAMT_Y1, 35)
-
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0, 36)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0, 37)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1, 38)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1, 39)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2, 40)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2, 41)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3, 42)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3, 43)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST, 44)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST, 45)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST, 46)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST, 47)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST, 48)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST, 49)
-
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PCREL, 50)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PCREL, 51)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PCREL, 52)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PCREL, 53)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PCREL, 54)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PCREL, 55)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PCREL, 56)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PCREL, 57)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PCREL, 58)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PCREL, 59)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PCREL, 60)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PCREL, 61)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PCREL, 62)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PCREL, 63)
-
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_GOT, 66)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_GOT, 67)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_GOT, 68)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_GOT, 69)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_GOT, 70)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_GOT, 71)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_GOT, 76)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_GOT, 77)
-
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_GD, 80)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_GD, 81)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_GD, 82)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_GD, 83)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_GD, 84)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_GD, 85)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD, 90)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD, 91)
-
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_TLS_IE, 94)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_TLS_IE, 95)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_TLS_IE, 96)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_TLS_IE, 97)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_TLS_IE, 98)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_TLS_IE, 99)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103)
- RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE, 104)
- RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE, 105)
-
- RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106)
- RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107)
- RELOC_NUMBER (R_TILEGX_TLS_TPOFF64, 108)
- RELOC_NUMBER (R_TILEGX_TLS_DTPMOD32, 109)
- RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110)
- RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111)
-
-/* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128)
- RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129)
-END_RELOC_NUMBERS (R_TILEGX_max)
-
-#endif /* _ELF_TILEGX_H */
diff --git a/include/elf/tilepro.h b/include/elf/tilepro.h
deleted file mode 100644
index 899697f60..000000000
--- a/include/elf/tilepro.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* TILEPro ELF support for BFD.
- Copyright 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_TILEPRO_H
-#define _ELF_TILEPRO_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_tilepro_reloc_type)
- RELOC_NUMBER (R_TILEPRO_NONE, 0)
-
- /* Standard relocations */
- RELOC_NUMBER (R_TILEPRO_32, 1)
- RELOC_NUMBER (R_TILEPRO_16, 2)
- RELOC_NUMBER (R_TILEPRO_8, 3)
- RELOC_NUMBER (R_TILEPRO_32_PCREL, 4)
- RELOC_NUMBER (R_TILEPRO_16_PCREL, 5)
- RELOC_NUMBER (R_TILEPRO_8_PCREL, 6)
-
- RELOC_NUMBER (R_TILEPRO_LO16, 7)
- RELOC_NUMBER (R_TILEPRO_HI16, 8)
- RELOC_NUMBER (R_TILEPRO_HA16, 9)
-
- RELOC_NUMBER (R_TILEPRO_COPY, 10)
- RELOC_NUMBER (R_TILEPRO_GLOB_DAT, 11)
- RELOC_NUMBER (R_TILEPRO_JMP_SLOT, 12)
- RELOC_NUMBER (R_TILEPRO_RELATIVE, 13)
-
- /* Branch/jump offsets */
- RELOC_NUMBER (R_TILEPRO_BROFF_X1, 14)
- RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1, 15)
- RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT, 16)
-
- /* Immediate operands. */
- RELOC_NUMBER (R_TILEPRO_IMM8_X0, 17)
- RELOC_NUMBER (R_TILEPRO_IMM8_Y0, 18)
- RELOC_NUMBER (R_TILEPRO_IMM8_X1, 19)
- RELOC_NUMBER (R_TILEPRO_IMM8_Y1, 20)
- RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1, 21)
- RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1, 22)
-
- RELOC_NUMBER (R_TILEPRO_IMM16_X0, 23)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1, 24)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO, 25)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO, 26)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI, 27)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI, 28)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA, 29)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA, 30)
-
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL, 31)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL, 32)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL, 33)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL, 34)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL, 35)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL, 36)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL, 37)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL, 38)
-
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT, 39)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT, 40)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO, 41)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO, 42)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI, 43)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI, 44)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA, 45)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA, 46)
-
- RELOC_NUMBER (R_TILEPRO_MMSTART_X0, 47)
- RELOC_NUMBER (R_TILEPRO_MMEND_X0, 48)
- RELOC_NUMBER (R_TILEPRO_MMSTART_X1, 49)
- RELOC_NUMBER (R_TILEPRO_MMEND_X1, 50)
-
- RELOC_NUMBER (R_TILEPRO_SHAMT_X0, 51)
- RELOC_NUMBER (R_TILEPRO_SHAMT_X1, 52)
- RELOC_NUMBER (R_TILEPRO_SHAMT_Y0, 53)
- RELOC_NUMBER (R_TILEPRO_SHAMT_Y1, 54)
-
- RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55)
-
- /* Relocs 56-65 are currently not defined. */
-
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73)
-
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE, 74)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE, 75)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79)
- RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80)
- RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81)
-
- RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32, 82)
- RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83)
- RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84)
-
-/* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
- RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
-END_RELOC_NUMBERS (R_TILEPRO_max)
-
-#endif /* _ELF_TILEPRO_H */
diff --git a/include/elf/v850.h b/include/elf/v850.h
deleted file mode 100644
index 2a0e03ef8..000000000
--- a/include/elf/v850.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* V850 ELF support for BFD.
- Copyright 1997, 1998, 2000, 2002, 2003, 2004, 2007, 2008, 2010
- Free Software Foundation, Inc.
- Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file holds definitions specific to the MIPS ELF ABI. Note
- that most of this is not actually implemented by BFD. */
-
-#ifndef _ELF_V850_H
-#define _ELF_V850_H
-
-/* Processor specific flags for the ELF header e_flags field. */
-
-/* Four bit V850 architecture field. */
-#define EF_V850_ARCH 0xf0000000
-
-/* v850 code. */
-#define E_V850_ARCH 0x00000000
-
-/* v850e code. */
-#define E_V850E_ARCH 0x10000000
-
-/* v850e1 code. */
-#define E_V850E1_ARCH 0x20000000
-
-/* v850e2 code. */
-#define E_V850E2_ARCH 0x30000000
-
-/* v850e2v3 code. */
-#define E_V850E2V3_ARCH 0x40000000
-
-/* Flags for the st_other field. */
-#define V850_OTHER_SDA 0x10 /* Symbol had SDA relocations. */
-#define V850_OTHER_ZDA 0x20 /* Symbol had ZDA relocations. */
-#define V850_OTHER_TDA 0x40 /* Symbol had TDA relocations. */
-#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */
-
-/* V850 relocations. */
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (v850_reloc_type)
- RELOC_NUMBER (R_V850_NONE, 0)
- RELOC_NUMBER (R_V850_9_PCREL, 1)
- RELOC_NUMBER (R_V850_22_PCREL, 2)
- RELOC_NUMBER (R_V850_HI16_S, 3)
- RELOC_NUMBER (R_V850_HI16, 4)
- RELOC_NUMBER (R_V850_LO16, 5)
- RELOC_NUMBER (R_V850_ABS32, 6)
- RELOC_NUMBER (R_V850_16, 7)
- RELOC_NUMBER (R_V850_8, 8)
- RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
- RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10) /* For ld.w, ld.h, ld.hu, st.w, st.h */
- RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
- RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12) /* For ld.w, ld.h, ld.hu, st.w, st.h */
- RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13) /* For sst.w, sld.w */
- RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14) /* For sst.h, sld.h */
- RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15) /* For sst.b, sld.b */
- RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16) /* For set1, clr1, not1, tst1, movea, movhi */
- RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17) /* For sld.hu */
- RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18) /* For sld.bu */
- RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19) /* For ld.bu */
- RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20) /* For ld.bu */
- RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21) /* For callt */
- RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */
- RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
- RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
- RELOC_NUMBER (R_V850_LONGCALL, 25)
- RELOC_NUMBER (R_V850_LONGJUMP, 26)
- RELOC_NUMBER (R_V850_ALIGN, 27)
- RELOC_NUMBER (R_V850_REL32, 28)
- RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */
- RELOC_NUMBER (R_V850_16_PCREL, 30) /* For loop */
- RELOC_NUMBER (R_V850_17_PCREL, 31) /* For br */
- RELOC_NUMBER (R_V850_23, 32) /* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */
- RELOC_NUMBER (R_V850_32_PCREL, 33) /* For jr32, jarl32 */
- RELOC_NUMBER (R_V850_32_ABS, 34) /* For jmp32 */
- RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35) /* For ld.bu */
- RELOC_NUMBER (R_V850_16_S1, 36) /* For ld.w, ld.h st.w st.h */
- RELOC_NUMBER (R_V850_LO16_S1, 37) /* For ld.w, ld.h st.w st.h */
- RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38) /* For ld.w, ld.h, ld.hu, st.w, st.h */
- RELOC_NUMBER (R_V850_32_GOTPCREL, 39) /* GLOBAL_OFFSET_TABLE from pc */
- RELOC_NUMBER (R_V850_16_GOT, 40) /* GOT ENTRY from gp */
- RELOC_NUMBER (R_V850_32_GOT, 41)
- RELOC_NUMBER (R_V850_22_PLT, 42) /* For jr */
- RELOC_NUMBER (R_V850_32_PLT, 43) /* For jr32 */
- RELOC_NUMBER (R_V850_COPY, 44)
- RELOC_NUMBER (R_V850_GLOB_DAT, 45)
- RELOC_NUMBER (R_V850_JMP_SLOT, 46)
- RELOC_NUMBER (R_V850_RELATIVE, 47)
- RELOC_NUMBER (R_V850_16_GOTOFF, 48) /* From gp */
- RELOC_NUMBER (R_V850_32_GOTOFF, 49)
- RELOC_NUMBER (R_V850_CODE, 50)
- RELOC_NUMBER (R_V850_DATA, 51) /* For loop */
-
-END_RELOC_NUMBERS (R_V850_max)
-
-
-/* Processor specific section indices. These sections do not actually
- exist. Symbols with a st_shndx field corresponding to one of these
- values have a special meaning. */
-
-/* Small data area common symbol. */
-#define SHN_V850_SCOMMON SHN_LORESERVE
-
-/* Tiny data area common symbol. */
-#define SHN_V850_TCOMMON (SHN_LORESERVE + 1)
-
-/* Zero data area common symbol. */
-#define SHN_V850_ZCOMMON (SHN_LORESERVE + 2)
-
-
-/* Processor specific section types. */
-
-/* Section contains the .scommon data. */
-#define SHT_V850_SCOMMON 0x70000000
-
-/* Section contains the .scommon data. */
-#define SHT_V850_TCOMMON 0x70000001
-
-/* 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/elf/vax.h b/include/elf/vax.h
deleted file mode 100644
index e44c48e7b..000000000
--- a/include/elf/vax.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* VAX ELF support for BFD.
- Copyright (C) 2002, 2010 Free Software Foundation, Inc.
- Contributed by Matt Thomas <matt@3am-software.com>.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_VAX_H
-#define _ELF_VAX_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocation types. */
-START_RELOC_NUMBERS (elf_vax_reloc_type)
- RELOC_NUMBER (R_VAX_NONE, 0) /* No reloc */
- RELOC_NUMBER (R_VAX_32, 1) /* Direct 32 bit */
- RELOC_NUMBER (R_VAX_16, 2) /* Direct 16 bit */
- RELOC_NUMBER (R_VAX_8, 3) /* Direct 8 bit */
- RELOC_NUMBER (R_VAX_PC32, 4) /* PC relative 32 bit */
- RELOC_NUMBER (R_VAX_PC16, 5) /* PC relative 16 bit */
- RELOC_NUMBER (R_VAX_PC8, 6) /* PC relative 8 bit */
- RELOC_NUMBER (R_VAX_GOT32, 7) /* 32 bit PC relative GOT entry */
- RELOC_NUMBER (R_VAX_PLT32, 13) /* 32 bit PC relative PLT address */
- RELOC_NUMBER (R_VAX_COPY, 19) /* Copy symbol at runtime */
- RELOC_NUMBER (R_VAX_GLOB_DAT, 20) /* Create GOT entry */
- RELOC_NUMBER (R_VAX_JMP_SLOT, 21) /* Create PLT entry */
- RELOC_NUMBER (R_VAX_RELATIVE, 22) /* Adjust by program base */
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_VAX_GNU_VTINHERIT, 23)
- RELOC_NUMBER (R_VAX_GNU_VTENTRY, 24)
-END_RELOC_NUMBERS (R_VAX_max)
-
-/* Processor specific flags for the ELF header e_flags field. */
-#define EF_VAX_NONPIC 0x0001 /* Object contains non-PIC code */
-#define EF_VAX_DFLOAT 0x0100 /* Object contains D-Float insn. */
-#define EF_VAX_GFLOAT 0x0200 /* Object contains G-Float insn. */
-
-#endif
diff --git a/include/elf/vxworks.h b/include/elf/vxworks.h
deleted file mode 100644
index f25f01295..000000000
--- a/include/elf/vxworks.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* VxWorks ELF support for BFD.
- Copyright 2007, 2010
- Free Software Foundation, Inc.
-
- Contributed by Nathan Sidwell <nathan@codesourcery.com>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _ELF_VXWORKS_H
-#define _ELF_VXWORKS_H
-
-#define DT_VX_WRS_TLS_DATA_START 0x60000010
-#define DT_VX_WRS_TLS_DATA_SIZE 0x60000011
-#define DT_VX_WRS_TLS_DATA_ALIGN 0x60000015
-#define DT_VX_WRS_TLS_VARS_START 0x60000012
-#define DT_VX_WRS_TLS_VARS_SIZE 0x60000013
-
-#endif /* _ELF_VXWORKS_H */
diff --git a/include/elf/x86-64.h b/include/elf/x86-64.h
deleted file mode 100644
index 9022f8482..000000000
--- a/include/elf/x86-64.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* x86_64 ELF support for BFD.
- Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2008, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by Jan Hubicka <jh@suse.cz>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_X86_64_H
-#define _ELF_X86_64_H
-
-#include "elf/reloc-macros.h"
-
-START_RELOC_NUMBERS (elf_x86_64_reloc_type)
- RELOC_NUMBER (R_X86_64_NONE, 0) /* No reloc */
- RELOC_NUMBER (R_X86_64_64, 1) /* Direct 64 bit */
- RELOC_NUMBER (R_X86_64_PC32, 2) /* PC relative 32 bit signed */
- RELOC_NUMBER (R_X86_64_GOT32, 3) /* 32 bit GOT entry */
- RELOC_NUMBER (R_X86_64_PLT32, 4) /* 32 bit PLT address */
- RELOC_NUMBER (R_X86_64_COPY, 5) /* Copy symbol at runtime */
- RELOC_NUMBER (R_X86_64_GLOB_DAT, 6) /* Create GOT entry */
- RELOC_NUMBER (R_X86_64_JUMP_SLOT,7) /* Create PLT entry */
- RELOC_NUMBER (R_X86_64_RELATIVE, 8) /* Adjust by program base */
- RELOC_NUMBER (R_X86_64_GOTPCREL, 9) /* 32 bit signed pc relative
- offset to GOT entry */
- RELOC_NUMBER (R_X86_64_32, 10) /* Direct 32 bit zero extended */
- RELOC_NUMBER (R_X86_64_32S, 11) /* Direct 32 bit sign extended */
- RELOC_NUMBER (R_X86_64_16, 12) /* Direct 16 bit zero extended */
- RELOC_NUMBER (R_X86_64_PC16, 13) /* 16 bit sign extended pc relative*/
- RELOC_NUMBER (R_X86_64_8, 14) /* Direct 8 bit sign extended */
- RELOC_NUMBER (R_X86_64_PC8, 15) /* 8 bit sign extended pc relative*/
- RELOC_NUMBER (R_X86_64_DTPMOD64, 16) /* ID of module containing symbol */
- RELOC_NUMBER (R_X86_64_DTPOFF64, 17) /* Offset in TLS block */
- RELOC_NUMBER (R_X86_64_TPOFF64, 18) /* Offset in initial TLS block */
- RELOC_NUMBER (R_X86_64_TLSGD, 19) /* PC relative offset to GD GOT block */
- RELOC_NUMBER (R_X86_64_TLSLD, 20) /* PC relative offset to LD GOT block */
- RELOC_NUMBER (R_X86_64_DTPOFF32, 21) /* Offset in TLS block */
- RELOC_NUMBER (R_X86_64_GOTTPOFF, 22) /* PC relative offset to IE GOT entry */
- RELOC_NUMBER (R_X86_64_TPOFF32, 23) /* Offset in initial TLS block */
- RELOC_NUMBER (R_X86_64_PC64, 24) /* PC relative 64 bit */
- RELOC_NUMBER (R_X86_64_GOTOFF64, 25) /* 64 bit offset to GOT */
- RELOC_NUMBER (R_X86_64_GOTPC32, 26) /* 32 bit signed pc relative
- offset to GOT */
- RELOC_NUMBER (R_X86_64_GOT64, 27) /* 64 bit GOT entry offset */
- RELOC_NUMBER (R_X86_64_GOTPCREL64, 28) /* 64 bit signed pc relative
- offset to GOT entry */
- RELOC_NUMBER (R_X86_64_GOTPC64, 29) /* 64 bit signed pc relative
- offset to GOT */
- RELOC_NUMBER (R_X86_64_GOTPLT64, 30) /* like GOT64, but indicates
- that PLT entry is needed */
- RELOC_NUMBER (R_X86_64_PLTOFF64, 31) /* 64 bit GOT relative offset
- to PLT entry */
- /* 32 .. 33 */
- RELOC_NUMBER (R_X86_64_GOTPC32_TLSDESC, 34)
- /* 32 bit signed pc relative
- offset to TLS descriptor
- in the GOT. */
- RELOC_NUMBER (R_X86_64_TLSDESC_CALL, 35) /* Relaxable call through TLS
- descriptor. */
- RELOC_NUMBER (R_X86_64_TLSDESC, 36) /* 2x64-bit TLS descriptor. */
- RELOC_NUMBER (R_X86_64_IRELATIVE, 37) /* Adjust indirectly by program base */
- RELOC_NUMBER (R_X86_64_RELATIVE64, 38) /* 64bit adjust by program base */
- RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */
- RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */
-END_RELOC_NUMBERS (R_X86_64_max)
-
-/* Processor specific section types. */
-
-#define SHT_X86_64_UNWIND 0x70000001 /* unwind information */
-
-/* Like SHN_COMMON but the symbol will be allocated in the .lbss
- section. */
-#define SHN_X86_64_LCOMMON (SHN_LORESERVE + 2)
-
-#define SHF_X86_64_LARGE 0x10000000
-#endif
diff --git a/include/elf/xc16x.h b/include/elf/xc16x.h
deleted file mode 100644
index b46d90352..000000000
--- a/include/elf/xc16x.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Infineon XC16X ELF support for BFD.
- Copyright 2006, 2010 Free Software Foundation, Inc.
- Contributed by KPIT Cummins Infosystems
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_XC16X_H
-#define _ELF_XC16X_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_xc16x_reloc_type)
- RELOC_NUMBER (R_XC16X_NONE, 0)
- RELOC_NUMBER (R_XC16X_ABS_8, 1)
- RELOC_NUMBER (R_XC16X_ABS_16, 2)
- RELOC_NUMBER (R_XC16X_ABS_32, 3)
- RELOC_NUMBER (R_XC16X_8_PCREL, 4)
- RELOC_NUMBER (R_XC16X_PAG, 5)
- RELOC_NUMBER (R_XC16X_POF, 6)
- RELOC_NUMBER (R_XC16X_SEG, 7)
- RELOC_NUMBER (R_XC16X_SOF, 8)
-
-END_RELOC_NUMBERS (R_XC16X_max)
-
-#endif /* _ELF_XC16X_H */
diff --git a/include/elf/xstormy16.h b/include/elf/xstormy16.h
deleted file mode 100644
index 0ae0def86..000000000
--- a/include/elf/xstormy16.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* XSTORMY16 ELF support for BFD.
- Copyright (C) 2001, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _ELF_XSTORMY16_H
-#define _ELF_XSTORMY16_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_xstormy16_reloc_type)
- RELOC_NUMBER (R_XSTORMY16_NONE, 0)
-
- RELOC_NUMBER (R_XSTORMY16_32, 1)
- RELOC_NUMBER (R_XSTORMY16_16, 2)
- RELOC_NUMBER (R_XSTORMY16_8, 3)
- RELOC_NUMBER (R_XSTORMY16_PC32, 4)
- RELOC_NUMBER (R_XSTORMY16_PC16, 5)
- RELOC_NUMBER (R_XSTORMY16_PC8, 6)
-
- RELOC_NUMBER (R_XSTORMY16_REL_12, 7)
- RELOC_NUMBER (R_XSTORMY16_24, 8)
- RELOC_NUMBER (R_XSTORMY16_FPTR16, 9)
-
- RELOC_NUMBER (R_XSTORMY16_LO16, 10)
- RELOC_NUMBER (R_XSTORMY16_HI16, 11)
- RELOC_NUMBER (R_XSTORMY16_12, 12)
-
- RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128)
- RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129)
-END_RELOC_NUMBERS (R_XSTORMY16_max)
-
-/* Define the data & instruction memory discriminator. In a linked
- executable, an symbol should be deemed to point to an instruction
- if ((address & XSTORMY16_INSN_MASK) == XSTORMY16_INSN_VALUE), and similarly
- for the data space. See also `ld/emulparams/elf32xstormy16.sh'. */
-#define XSTORMY16_DATA_MASK 0xffc00000
-#define XSTORMY16_DATA_VALUE 0x00000000
-#define XSTORMY16_INSN_MASK 0xffc00000
-#define XSTORMY16_INSN_VALUE 0x00400000
-
-#endif /* _ELF_XSTORMY16_H */
diff --git a/include/elf/xtensa.h b/include/elf/xtensa.h
deleted file mode 100644
index 0d35f7abc..000000000
--- a/include/elf/xtensa.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Xtensa ELF support for BFD.
- Copyright 2003, 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
- Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
- USA. */
-
-/* This file holds definitions specific to the Xtensa ELF ABI. */
-
-#ifndef _ELF_XTENSA_H
-#define _ELF_XTENSA_H
-
-#include "elf/reloc-macros.h"
-
-/* Relocations. */
-START_RELOC_NUMBERS (elf_xtensa_reloc_type)
- RELOC_NUMBER (R_XTENSA_NONE, 0)
- RELOC_NUMBER (R_XTENSA_32, 1)
- RELOC_NUMBER (R_XTENSA_RTLD, 2)
- RELOC_NUMBER (R_XTENSA_GLOB_DAT, 3)
- RELOC_NUMBER (R_XTENSA_JMP_SLOT, 4)
- RELOC_NUMBER (R_XTENSA_RELATIVE, 5)
- RELOC_NUMBER (R_XTENSA_PLT, 6)
- RELOC_NUMBER (R_XTENSA_OP0, 8)
- RELOC_NUMBER (R_XTENSA_OP1, 9)
- RELOC_NUMBER (R_XTENSA_OP2, 10)
- RELOC_NUMBER (R_XTENSA_ASM_EXPAND, 11)
- RELOC_NUMBER (R_XTENSA_ASM_SIMPLIFY, 12)
- RELOC_NUMBER (R_XTENSA_32_PCREL, 14)
- RELOC_NUMBER (R_XTENSA_GNU_VTINHERIT, 15)
- RELOC_NUMBER (R_XTENSA_GNU_VTENTRY, 16)
- RELOC_NUMBER (R_XTENSA_DIFF8, 17)
- RELOC_NUMBER (R_XTENSA_DIFF16, 18)
- RELOC_NUMBER (R_XTENSA_DIFF32, 19)
- RELOC_NUMBER (R_XTENSA_SLOT0_OP, 20)
- RELOC_NUMBER (R_XTENSA_SLOT1_OP, 21)
- RELOC_NUMBER (R_XTENSA_SLOT2_OP, 22)
- RELOC_NUMBER (R_XTENSA_SLOT3_OP, 23)
- RELOC_NUMBER (R_XTENSA_SLOT4_OP, 24)
- RELOC_NUMBER (R_XTENSA_SLOT5_OP, 25)
- RELOC_NUMBER (R_XTENSA_SLOT6_OP, 26)
- RELOC_NUMBER (R_XTENSA_SLOT7_OP, 27)
- RELOC_NUMBER (R_XTENSA_SLOT8_OP, 28)
- RELOC_NUMBER (R_XTENSA_SLOT9_OP, 29)
- RELOC_NUMBER (R_XTENSA_SLOT10_OP, 30)
- RELOC_NUMBER (R_XTENSA_SLOT11_OP, 31)
- RELOC_NUMBER (R_XTENSA_SLOT12_OP, 32)
- RELOC_NUMBER (R_XTENSA_SLOT13_OP, 33)
- RELOC_NUMBER (R_XTENSA_SLOT14_OP, 34)
- RELOC_NUMBER (R_XTENSA_SLOT0_ALT, 35)
- RELOC_NUMBER (R_XTENSA_SLOT1_ALT, 36)
- RELOC_NUMBER (R_XTENSA_SLOT2_ALT, 37)
- RELOC_NUMBER (R_XTENSA_SLOT3_ALT, 38)
- RELOC_NUMBER (R_XTENSA_SLOT4_ALT, 39)
- RELOC_NUMBER (R_XTENSA_SLOT5_ALT, 40)
- RELOC_NUMBER (R_XTENSA_SLOT6_ALT, 41)
- RELOC_NUMBER (R_XTENSA_SLOT7_ALT, 42)
- RELOC_NUMBER (R_XTENSA_SLOT8_ALT, 43)
- RELOC_NUMBER (R_XTENSA_SLOT9_ALT, 44)
- RELOC_NUMBER (R_XTENSA_SLOT10_ALT, 45)
- RELOC_NUMBER (R_XTENSA_SLOT11_ALT, 46)
- RELOC_NUMBER (R_XTENSA_SLOT12_ALT, 47)
- RELOC_NUMBER (R_XTENSA_SLOT13_ALT, 48)
- RELOC_NUMBER (R_XTENSA_SLOT14_ALT, 49)
- RELOC_NUMBER (R_XTENSA_TLSDESC_FN, 50)
- RELOC_NUMBER (R_XTENSA_TLSDESC_ARG, 51)
- RELOC_NUMBER (R_XTENSA_TLS_DTPOFF, 52)
- RELOC_NUMBER (R_XTENSA_TLS_TPOFF, 53)
- RELOC_NUMBER (R_XTENSA_TLS_FUNC, 54)
- RELOC_NUMBER (R_XTENSA_TLS_ARG, 55)
- RELOC_NUMBER (R_XTENSA_TLS_CALL, 56)
-END_RELOC_NUMBERS (R_XTENSA_max)
-
-/* Processor-specific flags for the ELF header e_flags field. */
-
-/* Four-bit Xtensa machine type field. */
-#define EF_XTENSA_MACH 0x0000000f
-
-/* Various CPU types. */
-#define E_XTENSA_MACH 0x00000000
-
-/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types.
- Highly unlikely, but what the heck. */
-
-#define EF_XTENSA_XT_INSN 0x00000100
-#define EF_XTENSA_XT_LIT 0x00000200
-
-
-/* Processor-specific dynamic array tags. */
-
-/* Offset of the table that records the GOT location(s). */
-#define DT_XTENSA_GOT_LOC_OFF 0x70000000
-
-/* Number of entries in the GOT location table. */
-#define DT_XTENSA_GOT_LOC_SZ 0x70000001
-
-
-/* Definitions for instruction and literal property tables. The
- tables for ".gnu.linkonce.*" sections are placed in the following
- sections:
-
- instruction tables: .gnu.linkonce.x.*
- literal tables: .gnu.linkonce.p.*
-*/
-
-#define XTENSA_INSN_SEC_NAME ".xt.insn"
-#define XTENSA_LIT_SEC_NAME ".xt.lit"
-#define XTENSA_PROP_SEC_NAME ".xt.prop"
-
-typedef struct property_table_entry_t
-{
- bfd_vma address;
- bfd_vma size;
- flagword flags;
-} property_table_entry;
-
-/* Flags in the property tables to specify whether blocks of memory are
- literals, instructions, data, or unreachable. For instructions,
- blocks that begin loop targets and branch targets are designated.
- Blocks that do not allow density instructions, instruction reordering
- or transformation are also specified. Finally, for branch targets,
- branch target alignment priority is included. Alignment of the next
- block is specified in the current block and the size of the current
- block does not include any fill required to align to the next
- block. */
-
-#define XTENSA_PROP_LITERAL 0x00000001
-#define XTENSA_PROP_INSN 0x00000002
-#define XTENSA_PROP_DATA 0x00000004
-#define XTENSA_PROP_UNREACHABLE 0x00000008
-/* Instruction-only properties at beginning of code. */
-#define XTENSA_PROP_INSN_LOOP_TARGET 0x00000010
-#define XTENSA_PROP_INSN_BRANCH_TARGET 0x00000020
-/* Instruction-only properties about code. */
-#define XTENSA_PROP_INSN_NO_DENSITY 0x00000040
-#define XTENSA_PROP_INSN_NO_REORDER 0x00000080
-/* Historically, NO_TRANSFORM was a property of instructions,
- but it should apply to literals under certain circumstances. */
-#define XTENSA_PROP_NO_TRANSFORM 0x00000100
-
-/* Branch target alignment information. This transmits information
- to the linker optimization about the priority of aligning a
- particular block for branch target alignment: None, low priority,
- high priority, or required. These only need to be checked in
- instruction blocks marked as XTENSA_PROP_INSN_BRANCH_TARGET.
- Common usage is:
-
- switch (GET_XTENSA_PROP_BT_ALIGN(flags))
- case XTENSA_PROP_BT_ALIGN_NONE:
- case XTENSA_PROP_BT_ALIGN_LOW:
- case XTENSA_PROP_BT_ALIGN_HIGH:
- case XTENSA_PROP_BT_ALIGN_REQUIRE:
-*/
-#define XTENSA_PROP_BT_ALIGN_MASK 0x00000600
-
-/* No branch target alignment. */
-#define XTENSA_PROP_BT_ALIGN_NONE 0x0
-/* Low priority branch target alignment. */
-#define XTENSA_PROP_BT_ALIGN_LOW 0x1
-/* High priority branch target alignment. */
-#define XTENSA_PROP_BT_ALIGN_HIGH 0x2
-/* Required branch target alignment. */
-#define XTENSA_PROP_BT_ALIGN_REQUIRE 0x3
-
-#define GET_XTENSA_PROP_BT_ALIGN(flag) \
- (((unsigned)((flag) & (XTENSA_PROP_BT_ALIGN_MASK))) >> 9)
-#define SET_XTENSA_PROP_BT_ALIGN(flag, align) \
- (((flag) & (~XTENSA_PROP_BT_ALIGN_MASK)) | \
- (((align) << 9) & XTENSA_PROP_BT_ALIGN_MASK))
-
-/* Alignment is specified in the block BEFORE the one that needs
- alignment. Up to 5 bits. Use GET_XTENSA_PROP_ALIGNMENT(flags) to
- get the required alignment specified as a power of 2. Use
- SET_XTENSA_PROP_ALIGNMENT(flags, pow2) to set the required
- alignment. Be careful of side effects since the SET will evaluate
- flags twice. Also, note that the SIZE of a block in the property
- table does not include the alignment size, so the alignment fill
- must be calculated to determine if two blocks are contiguous.
- TEXT_ALIGN is not currently implemented but is a placeholder for a
- possible future implementation. */
-
-#define XTENSA_PROP_ALIGN 0x00000800
-
-#define XTENSA_PROP_ALIGNMENT_MASK 0x0001f000
-
-#define GET_XTENSA_PROP_ALIGNMENT(flag) \
- (((unsigned)((flag) & (XTENSA_PROP_ALIGNMENT_MASK))) >> 12)
-#define SET_XTENSA_PROP_ALIGNMENT(flag, align) \
- (((flag) & (~XTENSA_PROP_ALIGNMENT_MASK)) | \
- (((align) << 12) & XTENSA_PROP_ALIGNMENT_MASK))
-
-#define XTENSA_PROP_INSN_ABSLIT 0x00020000
-
-#endif /* _ELF_XTENSA_H */
diff --git a/include/fibheap.h b/include/fibheap.h
deleted file mode 100644
index a3d09dd9d..000000000
--- a/include/fibheap.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* A Fibonacci heap datatype.
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009
- Free Software Foundation, Inc.
- Contributed by Daniel Berlin (dan@cgsoftware.com).
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GCC 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 GCC; see the file COPYING. If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-/* Fibonacci heaps are somewhat complex, but, there's an article in
- DDJ that explains them pretty well:
-
- http://www.ddj.com/articles/1997/9701/9701o/9701o.htm?topic=algoritms
-
- Introduction to algorithms by Corman and Rivest also goes over them.
-
- The original paper that introduced them is "Fibonacci heaps and their
- uses in improved network optimization algorithms" by Tarjan and
- Fredman (JACM 34(3), July 1987).
-
- Amortized and real worst case time for operations:
-
- ExtractMin: O(lg n) amortized. O(n) worst case.
- DecreaseKey: O(1) amortized. O(lg n) worst case.
- Insert: O(2) amortized. O(1) actual.
- Union: O(1) amortized. O(1) actual. */
-
-#ifndef _FIBHEAP_H_
-#define _FIBHEAP_H_
-
-#include "ansidecl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef long fibheapkey_t;
-
-typedef struct fibheap
-{
- size_t nodes;
- struct fibnode *min;
- struct fibnode *root;
-} *fibheap_t;
-
-typedef struct fibnode
-{
- struct fibnode *parent;
- struct fibnode *child;
- struct fibnode *left;
- struct fibnode *right;
- fibheapkey_t key;
- void *data;
-#if defined (__GNUC__) && (!defined (SIZEOF_INT) || SIZEOF_INT < 4)
- __extension__ unsigned long int degree : 31;
- __extension__ unsigned long int mark : 1;
-#else
- unsigned int degree : 31;
- unsigned int mark : 1;
-#endif
-} *fibnode_t;
-
-extern fibheap_t fibheap_new (void);
-extern fibnode_t fibheap_insert (fibheap_t, fibheapkey_t, void *);
-extern int fibheap_empty (fibheap_t);
-extern fibheapkey_t fibheap_min_key (fibheap_t);
-extern fibheapkey_t fibheap_replace_key (fibheap_t, fibnode_t,
- fibheapkey_t);
-extern void *fibheap_replace_key_data (fibheap_t, fibnode_t,
- fibheapkey_t, void *);
-extern void *fibheap_extract_min (fibheap_t);
-extern void *fibheap_min (fibheap_t);
-extern void *fibheap_replace_data (fibheap_t, fibnode_t, void *);
-extern void *fibheap_delete_node (fibheap_t, fibnode_t);
-extern void fibheap_delete (fibheap_t);
-extern fibheap_t fibheap_union (fibheap_t, fibheap_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _FIBHEAP_H_ */
diff --git a/include/filenames.h b/include/filenames.h
deleted file mode 100644
index 75ec3302d..000000000
--- a/include/filenames.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Macros for taking apart, interpreting and processing file names.
-
- These are here because some non-Posix (a.k.a. DOSish) systems have
- drive letter brain-damage at the beginning of an absolute file name,
- use forward- and back-slash in path names interchangeably, and
- some of them have case-insensitive file names.
-
- Copyright 2000, 2001, 2007, 2010 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef FILENAMES_H
-#define FILENAMES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
-# ifndef HAVE_DOS_BASED_FILE_SYSTEM
-# define HAVE_DOS_BASED_FILE_SYSTEM 1
-# endif
-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
-# endif
-# define HAS_DRIVE_SPEC(f) HAS_DOS_DRIVE_SPEC (f)
-# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
-# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
-#else /* not DOSish */
-# if defined(__APPLE__)
-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
-# endif
-# endif /* __APPLE__ */
-# define HAS_DRIVE_SPEC(f) (0)
-# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
-# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
-#endif
-
-#define IS_DIR_SEPARATOR_1(dos_based, c) \
- (((c) == '/') \
- || (((c) == '\\') && (dos_based)))
-
-#define HAS_DRIVE_SPEC_1(dos_based, f) \
- ((f)[0] && ((f)[1] == ':') && (dos_based))
-
-/* Remove the drive spec from F, assuming HAS_DRIVE_SPEC (f).
- The result is a pointer to the remainder of F. */
-#define STRIP_DRIVE_SPEC(f) ((f) + 2)
-
-#define IS_DOS_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (1, c)
-#define IS_DOS_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (1, f)
-#define HAS_DOS_DRIVE_SPEC(f) HAS_DRIVE_SPEC_1 (1, f)
-
-#define IS_UNIX_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (0, c)
-#define IS_UNIX_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (0, f)
-
-/* Note that when DOS_BASED is true, IS_ABSOLUTE_PATH accepts d:foo as
- well, although it is only semi-absolute. This is because the users
- of IS_ABSOLUTE_PATH want to know whether to prepend the current
- working directory to a file name, which should not be done with a
- name like d:foo. */
-#define IS_ABSOLUTE_PATH_1(dos_based, f) \
- (IS_DIR_SEPARATOR_1 (dos_based, (f)[0]) \
- || HAS_DRIVE_SPEC_1 (dos_based, f))
-
-extern int filename_cmp (const char *s1, const char *s2);
-#define FILENAME_CMP(s1, s2) filename_cmp(s1, s2)
-
-extern int filename_ncmp (const char *s1, const char *s2,
- size_t n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FILENAMES_H */
diff --git a/include/floatformat.h b/include/floatformat.h
deleted file mode 100644
index b5951644e..000000000
--- a/include/floatformat.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* IEEE floating point support declarations, for GDB, the GNU Debugger.
- Copyright 1991, 1994, 1995, 1997, 2000, 2003, 2005, 2010
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#if !defined (FLOATFORMAT_H)
-#define FLOATFORMAT_H 1
-
-#include "ansidecl.h"
-
-/* A floatformat consists of a sign bit, an exponent and a mantissa. Once the
- bytes are concatenated according to the byteorder flag, then each of those
- fields is contiguous. We number the bits with 0 being the most significant
- (i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field
- contains with the *_start and *_len fields. */
-
-/* What is the order of the bytes? */
-
-enum floatformat_byteorders {
- /* Standard little endian byte order.
- EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */
- floatformat_little,
-
- /* Standard big endian byte order.
- EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */
- floatformat_big,
-
- /* Little endian byte order but big endian word order.
- EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */
- floatformat_littlebyte_bigword,
-
- /* VAX byte order. Little endian byte order with 16-bit words. The
- following example is an illustration of the byte order only; VAX
- doesn't have a fully IEEE compliant floating-point format.
- EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */
- floatformat_vax
-};
-
-enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no };
-
-struct floatformat
-{
- enum floatformat_byteorders byteorder;
- unsigned int totalsize; /* Total size of number in bits */
-
- /* Sign bit is always one bit long. 1 means negative, 0 means positive. */
- unsigned int sign_start;
-
- unsigned int exp_start;
- unsigned int exp_len;
- /* Bias added to a "true" exponent to form the biased exponent. It
- is intentionally signed as, otherwize, -exp_bias can turn into a
- very large number (e.g., given the exp_bias of 0x3fff and a 64
- bit long, the equation (long)(1 - exp_bias) evaluates to
- 4294950914) instead of -16382). */
- int exp_bias;
- /* Exponent value which indicates NaN. This is the actual value stored in
- the float, not adjusted by the exp_bias. This usually consists of all
- one bits. */
- unsigned int exp_nan;
-
- unsigned int man_start;
- unsigned int man_len;
-
- /* Is the integer bit explicit or implicit? */
- enum floatformat_intbit intbit;
-
- /* Internal name for debugging. */
- const char *name;
-
- /* Validator method. */
- int (*is_valid) (const struct floatformat *fmt, const void *from);
-
- /* Is the format actually the sum of two smaller floating point
- formats (IBM long double, as described in
- gcc/config/rs6000/darwin-ldouble-format)? If so, this is the
- smaller format in question, and the fields sign_start through
- intbit describe the first half. If not, this is NULL. */
- const struct floatformat *split_half;
-};
-
-/* floatformats for IEEE single and double, big and little endian. */
-
-extern const struct floatformat floatformat_ieee_half_big;
-extern const struct floatformat floatformat_ieee_half_little;
-extern const struct floatformat floatformat_ieee_single_big;
-extern const struct floatformat floatformat_ieee_single_little;
-extern const struct floatformat floatformat_ieee_double_big;
-extern const struct floatformat floatformat_ieee_double_little;
-
-/* floatformat for ARM IEEE double, little endian bytes and big endian words */
-
-extern const struct floatformat floatformat_ieee_double_littlebyte_bigword;
-
-/* floatformats for VAX. */
-
-extern const struct floatformat floatformat_vax_f;
-extern const struct floatformat floatformat_vax_d;
-extern const struct floatformat floatformat_vax_g;
-
-/* floatformats for various extendeds. */
-
-extern const struct floatformat floatformat_i387_ext;
-extern const struct floatformat floatformat_m68881_ext;
-extern const struct floatformat floatformat_i960_ext;
-extern const struct floatformat floatformat_m88110_ext;
-extern const struct floatformat floatformat_m88110_harris_ext;
-extern const struct floatformat floatformat_arm_ext_big;
-extern const struct floatformat floatformat_arm_ext_littlebyte_bigword;
-/* IA-64 Floating Point register spilt into memory. */
-extern const struct floatformat floatformat_ia64_spill_big;
-extern const struct floatformat floatformat_ia64_spill_little;
-extern const struct floatformat floatformat_ia64_quad_big;
-extern const struct floatformat floatformat_ia64_quad_little;
-/* IBM long double (double+double). */
-extern const struct floatformat floatformat_ibm_long_double;
-
-/* Convert from FMT to a double.
- FROM is the address of the extended float.
- Store the double in *TO. */
-
-extern void
-floatformat_to_double (const struct floatformat *, const void *, double *);
-
-/* The converse: convert the double *FROM to FMT
- and store where TO points. */
-
-extern void
-floatformat_from_double (const struct floatformat *, const double *, void *);
-
-/* Return non-zero iff the data at FROM is a valid number in format FMT. */
-
-extern int
-floatformat_is_valid (const struct floatformat *fmt, const void *from);
-
-#endif /* defined (FLOATFORMAT_H) */
diff --git a/include/fnmatch.h b/include/fnmatch.h
deleted file mode 100644
index 5b9953ca3..000000000
--- a/include/fnmatch.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
-
-NOTE: The canonical source of this file is maintained with the GNU C Library.
-Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef _FNMATCH_H
-
-#define _FNMATCH_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
-#undef __P
-#define __P(args) args
-#else /* Not C++ or ANSI C. */
-#undef __P
-#define __P(args) ()
-/* We can get away without defining `const' here only because in this file
- it is used only inside the prototype for `fnmatch', which is elided in
- non-ANSI C where `const' is problematical. */
-#endif /* C++ or ANSI C. */
-
-
-/* We #undef these before defining them because some losing systems
- (HP-UX A.08.07 for example) define these in <unistd.h>. */
-#undef FNM_PATHNAME
-#undef FNM_NOESCAPE
-#undef FNM_PERIOD
-
-/* Bits set in the FLAGS argument to `fnmatch'. */
-#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
-#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
-#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
-
-#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE)
-#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
-#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
-#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
-#endif
-
-/* Value returned by `fnmatch' if STRING does not match PATTERN. */
-#define FNM_NOMATCH 1
-
-/* Match STRING against the filename pattern PATTERN,
- returning zero if it matches, FNM_NOMATCH if not. */
-extern int fnmatch __P ((const char *__pattern, const char *__string,
- int __flags));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* fnmatch.h */
diff --git a/include/fopen-bin.h b/include/fopen-bin.h
deleted file mode 100644
index b868f63d4..000000000
--- a/include/fopen-bin.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen.
-
- <Read|Write>[Update]<Binary file|text file>
-
- This version is for "binary" systems, where text and binary files are
- different. An example is Mess-Dose. Many Unix systems could also
- cope with a "b" in the string, indicating binary files, but some reject this
- (and thereby don't conform to ANSI C, but what else is new?).
-
- This file is designed for inclusion by host-dependent .h files. No
- user application should include it directly, since that would make
- the application unable to be configured for both "same" and "binary"
- variant systems. */
-
-#define FOPEN_RB "rb"
-#define FOPEN_WB "wb"
-#define FOPEN_AB "ab"
-#define FOPEN_RUB "r+b"
-#define FOPEN_WUB "w+b"
-#define FOPEN_AUB "a+b"
-
-#define FOPEN_RT "r"
-#define FOPEN_WT "w"
-#define FOPEN_AT "a"
-#define FOPEN_RUT "r+"
-#define FOPEN_WUT "w+"
-#define FOPEN_AUT "a+"
diff --git a/include/fopen-same.h b/include/fopen-same.h
deleted file mode 100644
index 0f37529d3..000000000
--- a/include/fopen-same.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen.
-
- <Read|Write>[Update]<Binary file|text file>
-
- This version is for "same" systems, where text and binary files are
- the same. An example is Unix. Many Unix systems could also add a
- "b" to the string, indicating binary files, but some reject this
- (and thereby don't conform to ANSI C, but what else is new?).
-
- This file is designed for inclusion by host-dependent .h files. No
- user application should include it directly, since that would make
- the application unable to be configured for both "same" and "binary"
- variant systems. */
-
-#define FOPEN_RB "r"
-#define FOPEN_WB "w"
-#define FOPEN_AB "a"
-#define FOPEN_RUB "r+"
-#define FOPEN_WUB "w+"
-#define FOPEN_AUB "a+"
-
-#define FOPEN_RT "r"
-#define FOPEN_WT "w"
-#define FOPEN_AT "a"
-#define FOPEN_RUT "r+"
-#define FOPEN_WUT "w+"
-#define FOPEN_AUT "a+"
diff --git a/include/fopen-vms.h b/include/fopen-vms.h
deleted file mode 100644
index 453a13b17..000000000
--- a/include/fopen-vms.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Macros for the 'type' part of an fopen, freopen or fdopen.
-
- <Read|Write>[Update]<Binary file|text file>
-
- This version is for VMS systems, where text and binary files are
- different.
- This file is designed for inclusion by host-dependent .h files. No
- user application should include it directly, since that would make
- the application unable to be configured for both "same" and "binary"
- variant systems. */
-
-#define FOPEN_RB "rb,rfm=udf,rat=none"
-#define FOPEN_WB "wb,rfm=udf,rat=none"
-#define FOPEN_AB "ab,rfm=udf,rat=none"
-#define FOPEN_RUB "r+b,rfm=udf,rat=none"
-#define FOPEN_WUB "w+b,rfm=udf,rat=none"
-#define FOPEN_AUB "a+b,rfm=udf,rat=none"
-
-#define FOPEN_RT "r"
-#define FOPEN_WT "w"
-#define FOPEN_AT "a"
-#define FOPEN_RUT "r+"
-#define FOPEN_WUT "w+"
-#define FOPEN_AUT "a+"
diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog
deleted file mode 100644
index 9ce3db914..000000000
--- a/include/gdb/ChangeLog
+++ /dev/null
@@ -1,234 +0,0 @@
-2011-12-03 Mike Frysinger <vapier@gentoo.org>
-
- * callback.h (cb_get_string): New prototype.
-
-2011-04-14 Mike Frysinger <vapier@gentoo.org>
-
- * remote-sim.h (sim_complete_command): New prototype.
-
-2011-03-05 Mike Frysinger <vapier@gentoo.org>
-
- * sim-bfin.h: New file.
-
-2011-01-11 Andrew Burgess <aburgess@broadcom.com>
-
- * remote-sim.h (sim_store_register): Update the API
- documentation for this function.
-
-2010-09-06 Pedro Alves <pedro@codesourcery.com>
-
- * signals.def: Replace all ANY uses by SET with specific numbers.
- * signals.h (ANY): Remove.
-
-2010-07-31 Jan Kratochvil <jan.kratochvil@redhat.com>
-
- * signals.h (enum target_signal): Move the content to signals.def.
- Include it.
- * signals.def: New file.
-
-2010-06-24 Kevin Buettner <kevinb@redhat.com>
-
- * sim-rx.h (sim_rx_regnum): Add sim_rx_acc_regnum. Adjust
- register order.
-
-2010-04-13 Mike Frysinger <vapier@gentoo.org>
-
- * callback.h: Strip PARAMS from prototypes.
- * remote-sim.h: Likewise.
-
-2010-04-13 Mike Frysinger <vapier@gentoo.org>
-
- * remote-sim.h (sim_write): Add const to buf arg.
-
-2009-11-24 DJ Delorie <dj@redhat.com>
-
- * sim-rx.h: New.
-
-2009-05-18 Jon Beniston <jon@beniston.com>
-
- * sim-lm32.h: New file.
-
-2009-01-07 Hans-Peter Nilsson <hp@axis.com>
-
- * callback.h (struct host_callback_struct): Mark member error as
- pointing to a noreturn function.
-
-2008-02-12 M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * sim-cr16.h: New file.
-
-2008-01-01 Daniel Jacobowitz <dan@codesourcery.com>
-
- Updated copyright notices for most files.
-
-2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
-
- * sim-ppc.h (sim_spr_register_name): New prototype.
-
-2007-10-11 Jesper Nilsson <jesper.nilsson@axis.com>
-
- * callback.h (cb_is_stdin, cb_is_stdout, cb_is_stderr): Add prototypes.
-
-2007-08-23 Joel Brobecker <brobecker@adacore.com>
-
- Switch the license of all .h files to GPLv3.
-
-2007-01-09 Daniel Jacobowitz <dan@codesourcery.com>
-
- Updated copyright notices for most files.
-
-2005-07-08 Ben Elliston <bje@au.ibm.com>
-
- * callback.h: Remove ANSI_PROTOTYPES conditional code.
-
-2005-01-28 Hans-Peter Nilsson <hp@axis.com>
-
- * callback.h (struct host_callback_struct): New members pipe,
- pipe_empty, pipe_nonempty, ispipe, pipe_buffer and
- target_sizeof_int.
- (CB_SYS_pipe): New macro.
-
- * callback.h: Include "bfd.h".
- (struct host_callback_struct): New member target_endian.
- (cb_store_target_endian): Declare.
-
-2004-12-15 Hans-Peter Nilsson <hp@axis.com>
-
- * callback.h (CB_SYS_truncate, CB_SYS_ftruncate): New macros.
-
-2004-12-13 Hans-Peter Nilsson <hp@axis.com>
-
- * callback.h (struct host_callback_struct): New member lstat.
- (CB_SYS_lstat): New macro.
- (CB_SYS_rename): New macro.
-
-2004-09-08 Michael Snyder <msnyder@redhat.com>
-
- Commited by Corinna Vinschen <vinschen@redhat.com>
- * sim-sh.h: Add new sh2a banked registers.
-
-2004-08-04 Andrew Cagney <cagney@gnu.org>
-
- * sim-ppc.h: Add extern "C" wrapper.
- (enum sim_ppc_regnum): Add full list of SPRs.
-
-2004-08-04 Jim Blandy <jimb@redhat.com>
-
- * sim-ppc.h: New file.
-
-2004-06-25 J"orn Rennecke <joern.rennecke@superh.com>
-
- * callback.h (host_callback_struct): Replace members fdopen and
- alwaysopen with fd_buddy.
- [sim/common: * callback.c: Changed all users. ]
-
-2003-10-31 Kevin Buettner <kevin@redhat.com>
-
- * sim-frv.h: New file.
-
-2003-10-15 J"orn Rennecke <joern.rennecke@superh.com>
-
- * callback.h (struct host_callback_struct): New members ftruncate
- and truncate.
-
-2003-06-10 Corinna Vinschen <vinschen@redhat.com>
-
- * gdb/fileio.h: New file.
-
-2003-05-07 Andrew Cagney <cagney@redhat.com>
-
- * sim-d10v.h (sim_d10v_translate_addr): Add regcache parameter.
- (sim_d10v_translate_imap_addr): Add regcache parameter.
- (sim_d10v_translate_dmap_addr): Ditto.
-
-2003-03-27 Nick Clifton <nickc@redhat.com>
-
- * sim-arm.h (sim_arm_regs): Add iWMMXt registers.
-
-2003-03-20 Nick Clifton <nickc@redhat.com>
-
- * sim-arm.h (sim_arm_regs): Add Maverick co-processor
- registers.
-
-2003-02-27 Andrew Cagney <cagney@redhat.com>
-
- * remote-sim.h (sim_open, sim_load, sim_create_inferior): Rename
- _bfd to bfd.
-
-2003-02-20 Andrew Cagney <ac131313@redhat.com>
-
- * remote-sim.h (SIM_RC): Delete unused SIM_RC_UNKNOWN_BREAKPOINT,
- SIM_RC_INSUFFICIENT_RESOURCES and SIM_RC_DUPLICATE_BREAKPOINT.
- (sim_set_breakpoint, sim_clear_breakpoint): Delete declarations.
- (sim_clear_all_breakpoints, sim_enable_breakpoint): Ditto.
- (sim_enable_all_breakpoints, sim_disable_breakpoint): Ditto.
- (sim_disable_all_breakpoints): Ditto.
-
-2002-12-26 Kazu Hirata <kazu@cs.umass.edu>
-
- * sim-h8300.h: Remove ^M.
-
-2002-07-29 Andrey Volkov <avolkov@transas.com>
-
- * sim-h8300.h: Rename all enums from H8300_ to SIM_H8300_
- prefix.
-
-2002-07-23 Andrey Volkov <avolkov@transas.com>
-
- * sim-h8300.h: New file.
-
-2002-07-17 Andrew Cagney <cagney@redhat.com>
-
- * remote-sim.h: Update copyright.
- (sim_set_callbacks, sim_size, sim_trace)
- (sim_set_trace, sim_set_profile_size, sim_kill): Delete. Moved to
- "sim/common/run-sim.h".
-
-Wed Jul 17 19:36:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
-
- * sim-sh.h: Add enum constants for sh[1-4], sh3e, sh3?-dsp,
- renumbering the sh-dsp registers to use distinct numbers.
-
-2002-06-15 Andrew Cagney <ac131313@redhat.com>
-
- * sim-arm.h (enum sim_arm_regs): Rename sim_arm_regnum.
-
-2002-06-12 Andrew Cagney <ac131313@redhat.com>
-
- * sim-arm.h: New file.
-
-2002-06-08 Andrew Cagney <cagney@redhat.com>
-
- * callback.h: Copy to here from directory above.
- * remote-sim.h: Copy to here from directory above.
-
-2002-06-01 Andrew Cagney <ac131313@redhat.com>
-
- * sim-d10v.h (sim_d10v_regs): Expand to include all registers.
- Update copyright.
-
-2002-05-23 Andrew Cagney <ac131313@redhat.com>
-
- * sim-d10v.h: New file. Moved from include/sim-d10v.h.
-
-2002-05-10 Elena Zannoni <ezannoni@redhat.com>
-
- * sim-sh.h: New file, for sh gdb<->sim interface.
-
-2002-05-09 Daniel Jacobowitz <drow@mvista.com>
-
- * signals.h: Update comments.
- (enum target_signal): Remove conditional compilation around
- Mach-specific signals. Move them to after TARGET_SIGNAL_DEFAULT.
-
-2002-03-10 Daniel Jacobowitz <drow@mvista.com>
-
- * signals.h: New file, from gdb/defs.h.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/gdb/callback.h b/include/gdb/callback.h
deleted file mode 100644
index bbc5bb348..000000000
--- a/include/gdb/callback.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/* Remote target system call callback support.
- Copyright 1997, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
- Contributed by Cygnus Solutions.
-
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-/* This interface isn't intended to be specific to any particular kind
- of remote (hardware, simulator, whatever). As such, support for it
- (e.g. sim/common/callback.c) should *not* live in the simulator source
- tree, nor should it live in the gdb source tree. */
-
-/* There are various ways to handle system calls:
-
- 1) Have a simulator intercept the appropriate trap instruction and
- directly perform the system call on behalf of the target program.
- This is the typical way of handling system calls for embedded targets.
- [Handling system calls for embedded targets isn't that much of an
- oxymoron as running compiler testsuites make use of the capability.]
-
- This method of system call handling is done when STATE_ENVIRONMENT
- is ENVIRONMENT_USER.
-
- 2) Have a simulator emulate the hardware as much as possible.
- If the program running on the real hardware communicates with some sort
- of target manager, one would want to be able to run this program on the
- simulator as well.
-
- This method of system call handling is done when STATE_ENVIRONMENT
- is ENVIRONMENT_OPERATING.
-*/
-
-#ifndef CALLBACK_H
-#define CALLBACK_H
-
-/* ??? The reason why we check for va_start here should be documented. */
-
-#ifndef va_start
-#include <ansidecl.h>
-#include <stdarg.h>
-#endif
-/* Needed for enum bfd_endian. */
-#include "bfd.h"
-
-/* Mapping of host/target values. */
-/* ??? For debugging purposes, one might want to add a string of the
- name of the symbol. */
-
-typedef struct {
- int host_val;
- int target_val;
-} CB_TARGET_DEFS_MAP;
-
-#define MAX_CALLBACK_FDS 10
-
-/* Forward decl for stat/fstat. */
-struct stat;
-
-typedef struct host_callback_struct host_callback;
-
-struct host_callback_struct
-{
- int (*close) (host_callback *,int);
- int (*get_errno) (host_callback *);
- int (*isatty) (host_callback *, int);
- int (*lseek) (host_callback *, int, long , int);
- int (*open) (host_callback *, const char*, int mode);
- int (*read) (host_callback *,int, char *, int);
- int (*read_stdin) ( host_callback *, char *, int);
- int (*rename) (host_callback *, const char *, const char *);
- int (*system) (host_callback *, const char *);
- long (*time) (host_callback *, long *);
- int (*unlink) (host_callback *, const char *);
- int (*write) (host_callback *,int, const char *, int);
- int (*write_stdout) (host_callback *, const char *, int);
- void (*flush_stdout) (host_callback *);
- int (*write_stderr) (host_callback *, const char *, int);
- void (*flush_stderr) (host_callback *);
- int (*stat) (host_callback *, const char *, struct stat *);
- int (*fstat) (host_callback *, int, struct stat *);
- int (*lstat) (host_callback *, const char *, struct stat *);
- int (*ftruncate) (host_callback *, int, long);
- int (*truncate) (host_callback *, const char *, long);
- int (*pipe) (host_callback *, int *);
-
- /* Called by the framework when a read call has emptied a pipe buffer. */
- void (*pipe_empty) (host_callback *, int read_fd, int write_fd);
-
- /* Called by the framework when a write call makes a pipe buffer
- non-empty. */
- void (*pipe_nonempty) (host_callback *, int read_fd, int write_fd);
-
- /* When present, call to the client to give it the oportunity to
- poll any io devices for a request to quit (indicated by a nonzero
- return value). */
- int (*poll_quit) (host_callback *);
-
- /* Used when the target has gone away, so we can close open
- handles and free memory etc etc. */
- int (*shutdown) (host_callback *);
- int (*init) (host_callback *);
-
- /* depreciated, use vprintf_filtered - Talk to the user on a console. */
- void (*printf_filtered) (host_callback *, const char *, ...);
-
- /* Talk to the user on a console. */
- void (*vprintf_filtered) (host_callback *, const char *, va_list);
-
- /* Same as vprintf_filtered but to stderr. */
- void (*evprintf_filtered) (host_callback *, const char *, va_list);
-
- /* Print an error message and "exit".
- In the case of gdb "exiting" means doing a longjmp back to the main
- command loop. */
- void (*error) (host_callback *, const char *, ...)
-#ifdef __GNUC__
- __attribute__ ((__noreturn__))
-#endif
- ;
-
- int last_errno; /* host format */
-
- int fdmap[MAX_CALLBACK_FDS];
- /* fd_buddy is used to contruct circular lists of target fds that point to
- the same host fd. A uniquely mapped fd points to itself; for a closed
- one, fd_buddy has the value -1. The host file descriptors for stdin /
- stdout / stderr are never closed by the simulators, so they are put
- in a special fd_buddy circular list which also has MAX_CALLBACK_FDS
- as a member. */
- /* ??? We don't have a callback entry for dup, although it is trival to
- implement now. */
- short fd_buddy[MAX_CALLBACK_FDS+1];
-
- /* 0 = none, >0 = reader (index of writer),
- <0 = writer (negative index of reader).
- If abs (ispipe[N]) == N, then N is an end of a pipe whose other
- end is closed. */
- short ispipe[MAX_CALLBACK_FDS];
-
- /* A writer stores the buffer at its index. Consecutive writes
- realloc the buffer and add to the size. The reader indicates the
- read part in its .size, until it has consumed it all, at which
- point it deallocates the buffer and zeroes out both sizes. */
- struct pipe_write_buffer
- {
- int size;
- char *buffer;
- } pipe_buffer[MAX_CALLBACK_FDS];
-
- /* System call numbers. */
- CB_TARGET_DEFS_MAP *syscall_map;
- /* Errno values. */
- CB_TARGET_DEFS_MAP *errno_map;
- /* Flags to the open system call. */
- CB_TARGET_DEFS_MAP *open_map;
- /* Signal numbers. */
- CB_TARGET_DEFS_MAP *signal_map;
- /* Layout of `stat' struct.
- The format is a series of "name,length" pairs separated by colons.
- Empty space is indicated with a `name' of "space".
- All padding must be explicitly mentioned.
- Lengths are in bytes. If this needs to be extended to bits,
- use "name.bits".
- Example: "st_dev,4:st_ino,4:st_mode,4:..." */
- const char *stat_map;
-
- enum bfd_endian target_endian;
-
- /* Size of an "int" on the target (for syscalls whose ABI uses "int").
- This must include padding, and only padding-at-higher-address is
- supported. For example, a 64-bit target with 32-bit int:s which
- are padded to 64 bits when in an array, should supposedly set this
- to 8. The default is 4 which matches ILP32 targets and 64-bit
- targets with 32-bit ints and no padding. */
- int target_sizeof_int;
-
- /* Marker for those wanting to do sanity checks.
- This should remain the last member of this struct to help catch
- miscompilation errors. */
-#define HOST_CALLBACK_MAGIC 4705 /* teds constant */
- int magic;
-};
-
-extern host_callback default_callback;
-
-/* Canonical versions of system call numbers.
- It's not intended to willy-nilly throw every system call ever heard
- of in here. Only include those that have an important use.
- ??? One can certainly start a discussion over the ones that are currently
- here, but that will always be true. */
-
-/* These are used by the ANSI C support of libc. */
-#define CB_SYS_exit 1
-#define CB_SYS_open 2
-#define CB_SYS_close 3
-#define CB_SYS_read 4
-#define CB_SYS_write 5
-#define CB_SYS_lseek 6
-#define CB_SYS_unlink 7
-#define CB_SYS_getpid 8
-#define CB_SYS_kill 9
-#define CB_SYS_fstat 10
-/*#define CB_SYS_sbrk 11 - not currently a system call, but reserved. */
-
-/* ARGV support. */
-#define CB_SYS_argvlen 12
-#define CB_SYS_argv 13
-
-/* These are extras added for one reason or another. */
-#define CB_SYS_chdir 14
-#define CB_SYS_stat 15
-#define CB_SYS_chmod 16
-#define CB_SYS_utime 17
-#define CB_SYS_time 18
-
-/* More standard syscalls. */
-#define CB_SYS_lstat 19
-#define CB_SYS_rename 20
-#define CB_SYS_truncate 21
-#define CB_SYS_ftruncate 22
-#define CB_SYS_pipe 23
-
-/* Struct use to pass and return information necessary to perform a
- system call. */
-/* FIXME: Need to consider target word size. */
-
-typedef struct cb_syscall {
- /* The target's value of what system call to perform. */
- int func;
- /* The arguments to the syscall. */
- long arg1, arg2, arg3, arg4;
-
- /* The result. */
- long result;
- /* Some system calls have two results. */
- long result2;
- /* The target's errno value, or 0 if success.
- This is converted to the target's value with host_to_target_errno. */
- int errcode;
-
- /* Working space to be used by memory read/write callbacks. */
- PTR p1;
- PTR p2;
- long x1,x2;
-
- /* Callbacks for reading/writing memory (e.g. for read/write syscalls).
- ??? long or unsigned long might be better to use for the `count'
- argument here. We mimic sim_{read,write} for now. Be careful to
- test any changes with -Wall -Werror, mixed signed comparisons
- will get you. */
- int (*read_mem) (host_callback * /*cb*/, struct cb_syscall * /*sc*/,
- unsigned long /*taddr*/, char * /*buf*/,
- int /*bytes*/);
- int (*write_mem) (host_callback * /*cb*/, struct cb_syscall * /*sc*/,
- unsigned long /*taddr*/, const char * /*buf*/,
- int /*bytes*/);
-
- /* For sanity checking, should be last entry. */
- int magic;
-} CB_SYSCALL;
-
-/* Magic number sanity checker. */
-#define CB_SYSCALL_MAGIC 0x12344321
-
-/* Macro to initialize CB_SYSCALL. Called first, before filling in
- any fields. */
-#define CB_SYSCALL_INIT(sc) \
-do { \
- memset ((sc), 0, sizeof (*(sc))); \
- (sc)->magic = CB_SYSCALL_MAGIC; \
-} while (0)
-
-/* Return codes for various interface routines. */
-
-typedef enum {
- CB_RC_OK = 0,
- /* generic error */
- CB_RC_ERR,
- /* either file not found or no read access */
- CB_RC_ACCESS,
- CB_RC_NO_MEM
-} CB_RC;
-
-/* Read in target values for system call numbers, errno values, signals. */
-CB_RC cb_read_target_syscall_maps (host_callback *, const char *);
-
-/* Translate target to host syscall function numbers. */
-int cb_target_to_host_syscall (host_callback *, int);
-
-/* Translate host to target errno value. */
-int cb_host_to_target_errno (host_callback *, int);
-
-/* Translate target to host open flags. */
-int cb_target_to_host_open (host_callback *, int);
-
-/* Translate target signal number to host. */
-int cb_target_to_host_signal (host_callback *, int);
-
-/* Translate host signal number to target. */
-int cb_host_to_target_signal (host_callback *, int);
-
-/* Translate host stat struct to target.
- If stat struct ptr is NULL, just compute target stat struct size.
- Result is size of target stat struct or 0 if error. */
-int cb_host_to_target_stat (host_callback *, const struct stat *, PTR);
-
-/* Translate a value to target endian. */
-void cb_store_target_endian (host_callback *, char *, int, long);
-
-/* Tests for special fds. */
-int cb_is_stdin (host_callback *, int);
-int cb_is_stdout (host_callback *, int);
-int cb_is_stderr (host_callback *, int);
-
-/* Read a string out of the target. */
-int cb_get_string (host_callback *, CB_SYSCALL *, char *, int, unsigned long);
-
-/* Perform a system call. */
-CB_RC cb_syscall (host_callback *, CB_SYSCALL *);
-
-#endif
diff --git a/include/gdb/fileio.h b/include/gdb/fileio.h
deleted file mode 100644
index fc4476014..000000000
--- a/include/gdb/fileio.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Hosted File I/O interface definitions, for GDB, the GNU Debugger.
-
- Copyright 2003, 2007, 2008, 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef GDB_FILEIO_H_
-#define GDB_FILEIO_H_
-
-/* The following flags are defined to be independent of the host
- as well as the target side implementation of these constants.
- All constants are defined with a leading FILEIO_ in the name
- to allow the usage of these constants together with the
- corresponding implementation dependent constants in one module. */
-
-/* open(2) flags */
-#define FILEIO_O_RDONLY 0x0
-#define FILEIO_O_WRONLY 0x1
-#define FILEIO_O_RDWR 0x2
-#define FILEIO_O_APPEND 0x8
-#define FILEIO_O_CREAT 0x200
-#define FILEIO_O_TRUNC 0x400
-#define FILEIO_O_EXCL 0x800
-#define FILEIO_O_SUPPORTED (FILEIO_O_RDONLY | FILEIO_O_WRONLY| \
- FILEIO_O_RDWR | FILEIO_O_APPEND| \
- FILEIO_O_CREAT | FILEIO_O_TRUNC| \
- FILEIO_O_EXCL)
-
-/* mode_t bits */
-#define FILEIO_S_IFREG 0100000
-#define FILEIO_S_IFDIR 040000
-#define FILEIO_S_IFCHR 020000
-#define FILEIO_S_IRUSR 0400
-#define FILEIO_S_IWUSR 0200
-#define FILEIO_S_IXUSR 0100
-#define FILEIO_S_IRWXU 0700
-#define FILEIO_S_IRGRP 040
-#define FILEIO_S_IWGRP 020
-#define FILEIO_S_IXGRP 010
-#define FILEIO_S_IRWXG 070
-#define FILEIO_S_IROTH 04
-#define FILEIO_S_IWOTH 02
-#define FILEIO_S_IXOTH 01
-#define FILEIO_S_IRWXO 07
-#define FILEIO_S_SUPPORTED (FILEIO_S_IFREG|FILEIO_S_IFDIR| \
- FILEIO_S_IRWXU|FILEIO_S_IRWXG| \
- FILEIO_S_IRWXO)
-
-/* lseek(2) flags */
-#define FILEIO_SEEK_SET 0
-#define FILEIO_SEEK_CUR 1
-#define FILEIO_SEEK_END 2
-
-/* errno values */
-#define FILEIO_EPERM 1
-#define FILEIO_ENOENT 2
-#define FILEIO_EINTR 4
-#define FILEIO_EIO 5
-#define FILEIO_EBADF 9
-#define FILEIO_EACCES 13
-#define FILEIO_EFAULT 14
-#define FILEIO_EBUSY 16
-#define FILEIO_EEXIST 17
-#define FILEIO_ENODEV 19
-#define FILEIO_ENOTDIR 20
-#define FILEIO_EISDIR 21
-#define FILEIO_EINVAL 22
-#define FILEIO_ENFILE 23
-#define FILEIO_EMFILE 24
-#define FILEIO_EFBIG 27
-#define FILEIO_ENOSPC 28
-#define FILEIO_ESPIPE 29
-#define FILEIO_EROFS 30
-#define FILEIO_ENOSYS 88
-#define FILEIO_ENAMETOOLONG 91
-#define FILEIO_EUNKNOWN 9999
-
-/* limits */
-#define FILEIO_INT_MIN -2147483648L
-#define FILEIO_INT_MAX 2147483647L
-#define FILEIO_UINT_MAX 4294967295UL
-#define FILEIO_LONG_MIN -9223372036854775808LL
-#define FILEIO_LONG_MAX 9223372036854775807LL
-#define FILEIO_ULONG_MAX 18446744073709551615ULL
-
-/* Integral types as used in protocol. */
-#if 0
-typedef __int32_t fio_int_t;
-typedef __uint32_t fio_uint_t, fio_mode_t, fio_time_t;
-typedef __int64_t fio_long_t;
-typedef __uint64_t fio_ulong_t;
-#endif
-
-#define FIO_INT_LEN 4
-#define FIO_UINT_LEN 4
-#define FIO_MODE_LEN 4
-#define FIO_TIME_LEN 4
-#define FIO_LONG_LEN 8
-#define FIO_ULONG_LEN 8
-
-typedef char fio_int_t[FIO_INT_LEN];
-typedef char fio_uint_t[FIO_UINT_LEN];
-typedef char fio_mode_t[FIO_MODE_LEN];
-typedef char fio_time_t[FIO_TIME_LEN];
-typedef char fio_long_t[FIO_LONG_LEN];
-typedef char fio_ulong_t[FIO_ULONG_LEN];
-
-/* Struct stat as used in protocol. For complete independence
- of host/target systems, it's defined as an array with offsets
- to the members. */
-
-struct fio_stat {
- fio_uint_t fst_dev;
- fio_uint_t fst_ino;
- fio_mode_t fst_mode;
- fio_uint_t fst_nlink;
- fio_uint_t fst_uid;
- fio_uint_t fst_gid;
- fio_uint_t fst_rdev;
- fio_ulong_t fst_size;
- fio_ulong_t fst_blksize;
- fio_ulong_t fst_blocks;
- fio_time_t fst_atime;
- fio_time_t fst_mtime;
- fio_time_t fst_ctime;
-};
-
-struct fio_timeval {
- fio_time_t ftv_sec;
- fio_long_t ftv_usec;
-};
-
-#endif /* GDB_FILEIO_H_ */
diff --git a/include/gdb/remote-sim.h b/include/gdb/remote-sim.h
deleted file mode 100644
index 14a86a866..000000000
--- a/include/gdb/remote-sim.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* This file defines the interface between the simulator and gdb.
-
- Copyright 1993, 1994, 1996, 1997, 1998, 2000, 2002, 2007, 2008, 2009, 2010,
- 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (REMOTE_SIM_H)
-#define REMOTE_SIM_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* This file is used when building stand-alone simulators, so isolate this
- file from gdb. */
-
-/* Pick up CORE_ADDR_TYPE if defined (from gdb), otherwise use same value as
- gdb does (unsigned int - from defs.h). */
-
-#ifndef CORE_ADDR_TYPE
-typedef unsigned int SIM_ADDR;
-#else
-typedef CORE_ADDR_TYPE SIM_ADDR;
-#endif
-
-
-/* Semi-opaque type used as result of sim_open and passed back to all
- other routines. "desc" is short for "descriptor".
- It is up to each simulator to define `sim_state'. */
-
-typedef struct sim_state *SIM_DESC;
-
-
-/* Values for `kind' arg to sim_open. */
-
-typedef enum {
- SIM_OPEN_STANDALONE, /* simulator used standalone (run.c) */
- SIM_OPEN_DEBUG /* simulator used by debugger (gdb) */
-} SIM_OPEN_KIND;
-
-
-/* Return codes from various functions. */
-
-typedef enum {
- SIM_RC_FAIL = 0,
- SIM_RC_OK = 1
-} SIM_RC;
-
-
-/* The bfd struct, as an opaque type. */
-
-struct bfd;
-
-
-/* Main simulator entry points. */
-
-
-/* Create a fully initialized simulator instance.
-
- (This function is called when the simulator is selected from the
- gdb command line.)
-
- KIND specifies how the simulator shall be used. Currently there
- are only two kinds: stand-alone and debug.
-
- CALLBACK specifies a standard host callback (defined in callback.h).
-
- ABFD, when non NULL, designates a target program. The program is
- not loaded.
-
- ARGV is a standard ARGV pointer such as that passed from the
- command line. The syntax of the argument list is is assumed to be
- ``SIM-PROG { SIM-OPTION } [ TARGET-PROGRAM { TARGET-OPTION } ]''.
- The trailing TARGET-PROGRAM and args are only valid for a
- stand-alone simulator.
-
- On success, the result is a non NULL descriptor that shall be
- passed to the other sim_foo functions. While the simulator
- configuration can be parameterized by (in decreasing precedence)
- ARGV's SIM-OPTION, ARGV's TARGET-PROGRAM and the ABFD argument, the
- successful creation of the simulator shall not dependent on the
- presence of any of these arguments/options.
-
- Hardware simulator: The created simulator shall be sufficiently
- initialized to handle, with out restrictions any client requests
- (including memory reads/writes, register fetch/stores and a
- resume).
-
- Process simulator: that process is not created until a call to
- sim_create_inferior. FIXME: What should the state of the simulator
- be? */
-
-SIM_DESC sim_open (SIM_OPEN_KIND kind, struct host_callback_struct *callback, struct bfd *abfd, char **argv);
-
-
-/* Destory a simulator instance.
-
- QUITTING is non-zero if we cannot hang on errors.
-
- This may involve freeing target memory and closing any open files
- and mmap'd areas. You cannot assume sim_kill has already been
- called. */
-
-void sim_close (SIM_DESC sd, int quitting);
-
-
-/* Load program PROG into the simulators memory.
-
- If ABFD is non-NULL, the bfd for the file has already been opened.
- The result is a return code indicating success.
-
- Hardware simulator: Normally, each program section is written into
- memory according to that sections LMA using physical (direct)
- addressing. The exception being systems, such as PPC/CHRP, which
- support more complicated program loaders. A call to this function
- should not effect the state of the processor registers. Multiple
- calls to this function are permitted and have an accumulative
- effect.
-
- Process simulator: Calls to this function may be ignored.
-
- FIXME: Most hardware simulators load the image at the VMA using
- virtual addressing.
-
- FIXME: For some hardware targets, before a loaded program can be
- executed, it requires the manipulation of VM registers and tables.
- Such manipulation should probably (?) occure in
- sim_create_inferior. */
-
-SIM_RC sim_load (SIM_DESC sd, char *prog, struct bfd *abfd, int from_tty);
-
-
-/* Prepare to run the simulated program.
-
- ABFD, if not NULL, provides initial processor state information.
- ARGV and ENV, if non NULL, are NULL terminated lists of pointers.
-
- Hardware simulator: This function shall initialize the processor
- registers to a known value. The program counter and possibly stack
- pointer shall be set using information obtained from ABFD (or
- hardware reset defaults). ARGV and ENV, dependant on the target
- ABI, may be written to memory.
-
- Process simulator: After a call to this function, a new process
- instance shall exist. The TEXT, DATA, BSS and stack regions shall
- all be initialized, ARGV and ENV shall be written to process
- address space (according to the applicable ABI) and the program
- counter and stack pointer set accordingly. */
-
-SIM_RC sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char **argv, char **env);
-
-
-/* Fetch LENGTH bytes of the simulated program's memory. Start fetch
- at virtual address MEM and store in BUF. Result is number of bytes
- read, or zero if error. */
-
-int sim_read (SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length);
-
-
-/* Store LENGTH bytes from BUF into the simulated program's
- memory. Store bytes starting at virtual address MEM. Result is
- number of bytes write, or zero if error. */
-
-int sim_write (SIM_DESC sd, SIM_ADDR mem, const unsigned char *buf, int length);
-
-
-/* Fetch register REGNO storing its raw (target endian) value in the
- LENGTH byte buffer BUF. Return the actual size of the register or
- zero if REGNO is not applicable.
-
- Legacy implementations ignore LENGTH and always return -1.
-
- If LENGTH does not match the size of REGNO no data is transfered
- (the actual register size is still returned). */
-
-int sim_fetch_register (SIM_DESC sd, int regno, unsigned char *buf, int length);
-
-
-/* Store register REGNO from the raw (target endian) value in BUF.
-
- Return the actual size of the register, any size not equal to
- LENGTH indicates the register was not updated correctly.
-
- Return a LENGTH of -1 to indicate the register was not updated
- and an error has occurred.
-
- Return a LENGTH of 0 to indicate the register was not updated
- but no error has occurred. */
-
-int sim_store_register (SIM_DESC sd, int regno, unsigned char *buf, int length);
-
-
-/* Print whatever statistics the simulator has collected.
-
- VERBOSE is currently unused and must always be zero. */
-
-void sim_info (SIM_DESC sd, int verbose);
-
-
-/* Run (or resume) the simulated program.
-
- STEP, when non-zero indicates that only a single simulator cycle
- should be emulated.
-
- SIGGNAL, if non-zero is a (HOST) SIGRC value indicating the type of
- event (hardware interrupt, signal) to be delivered to the simulated
- program.
-
- Hardware simulator: If the SIGRC value returned by
- sim_stop_reason() is passed back to the simulator via SIGGNAL then
- the hardware simulator shall correctly deliver the hardware event
- indicated by that signal. If a value of zero is passed in then the
- simulation will continue as if there were no outstanding signal.
- The effect of any other SIGGNAL value is is implementation
- dependant.
-
- Process simulator: If SIGRC is non-zero then the corresponding
- signal is delivered to the simulated program and execution is then
- continued. A zero SIGRC value indicates that the program should
- continue as normal. */
-
-void sim_resume (SIM_DESC sd, int step, int siggnal);
-
-
-/* Asynchronous request to stop the simulation.
- A nonzero return indicates that the simulator is able to handle
- the request */
-
-int sim_stop (SIM_DESC sd);
-
-
-/* Fetch the REASON why the program stopped.
-
- SIM_EXITED: The program has terminated. SIGRC indicates the target
- dependant exit status.
-
- SIM_STOPPED: The program has stopped. SIGRC uses the host's signal
- numbering as a way of identifying the reaon: program interrupted by
- user via a sim_stop request (SIGINT); a breakpoint instruction
- (SIGTRAP); a completed single step (SIGTRAP); an internal error
- condition (SIGABRT); an illegal instruction (SIGILL); Access to an
- undefined memory region (SIGSEGV); Mis-aligned memory access
- (SIGBUS). For some signals information in addition to the signal
- number may be retained by the simulator (e.g. offending address),
- that information is not directly accessable via this interface.
-
- SIM_SIGNALLED: The program has been terminated by a signal. The
- simulator has encountered target code that causes the the program
- to exit with signal SIGRC.
-
- SIM_RUNNING, SIM_POLLING: The return of one of these values
- indicates a problem internal to the simulator. */
-
-enum sim_stop { sim_running, sim_polling, sim_exited, sim_stopped, sim_signalled };
-
-void sim_stop_reason (SIM_DESC sd, enum sim_stop *reason, int *sigrc);
-
-
-/* Passthru for other commands that the simulator might support.
- Simulators should be prepared to deal with any combination of NULL
- or empty CMD. */
-
-void sim_do_command (SIM_DESC sd, char *cmd);
-
-/* Complete a command based on the available sim commands. Returns an
- array of possible matches. */
-
-char **sim_complete_command (SIM_DESC sd, char *text, char *word);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined (REMOTE_SIM_H) */
diff --git a/include/gdb/signals.def b/include/gdb/signals.def
deleted file mode 100644
index 7e08c9045..000000000
--- a/include/gdb/signals.def
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Target signal numbers for GDB and the GDB remote protocol.
- Copyright 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-/* Used some places (e.g. stop_signal) to record the concept that
- there is no signal. */
-SET (TARGET_SIGNAL_0, 0, "0", "Signal 0")
-#define TARGET_SIGNAL_FIRST TARGET_SIGNAL_0
-SET (TARGET_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
-SET (TARGET_SIGNAL_INT, 2, "SIGINT", "Interrupt")
-SET (TARGET_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
-SET (TARGET_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
-SET (TARGET_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
-SET (TARGET_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
-SET (TARGET_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
-SET (TARGET_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
-SET (TARGET_SIGNAL_KILL, 9, "SIGKILL", "Killed")
-SET (TARGET_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
-SET (TARGET_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
-SET (TARGET_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
-SET (TARGET_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
-SET (TARGET_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
-SET (TARGET_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
-SET (TARGET_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
-SET (TARGET_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
-SET (TARGET_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
-SET (TARGET_SIGNAL_CONT, 19, "SIGCONT", "Continued")
-SET (TARGET_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
-SET (TARGET_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
-SET (TARGET_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
-SET (TARGET_SIGNAL_IO, 23, "SIGIO", "I/O possible")
-SET (TARGET_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
-SET (TARGET_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
-SET (TARGET_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
-SET (TARGET_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
-SET (TARGET_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
-SET (TARGET_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
-SET (TARGET_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
-SET (TARGET_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
-SET (TARGET_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
-/* Similar to SIGIO. Perhaps they should have the same number. */
-SET (TARGET_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
-SET (TARGET_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
-SET (TARGET_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
-SET (TARGET_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
-SET (TARGET_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
-SET (TARGET_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
-SET (TARGET_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
-SET (TARGET_SIGNAL_RETRACT, 40, "SIGRETRACT",
- "Need to relinquish monitor mode")
-SET (TARGET_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
-SET (TARGET_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
-SET (TARGET_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
-SET (TARGET_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
-SET (TARGET_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
-SET (TARGET_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
-SET (TARGET_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
-SET (TARGET_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
-SET (TARGET_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
-SET (TARGET_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
-SET (TARGET_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
-SET (TARGET_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
-SET (TARGET_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
-SET (TARGET_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
-SET (TARGET_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
-SET (TARGET_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
-SET (TARGET_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
-SET (TARGET_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
-SET (TARGET_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
-SET (TARGET_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
-SET (TARGET_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
-SET (TARGET_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
-SET (TARGET_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
-SET (TARGET_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
-SET (TARGET_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
-SET (TARGET_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
-SET (TARGET_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
-SET (TARGET_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
-SET (TARGET_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
-SET (TARGET_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
-SET (TARGET_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
-SET (TARGET_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
-SET (TARGET_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
-SET (TARGET_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
-SET (TARGET_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
-
-/* Used internally by Solaris threads. See signal(5) on Solaris. */
-SET (TARGET_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
-
-/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
- GNU/Linux does, and we can't disturb the numbering, since it's
- part of the remote protocol. Note that in some GDB's
- TARGET_SIGNAL_REALTIME_32 is number 76. */
-SET (TARGET_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32")
-/* Yet another pain, IRIX 6 has SIG64. */
-SET (TARGET_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64")
-/* Yet another pain, GNU/Linux MIPS might go up to 128. */
-SET (TARGET_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65")
-SET (TARGET_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66")
-SET (TARGET_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67")
-SET (TARGET_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68")
-SET (TARGET_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69")
-SET (TARGET_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70")
-SET (TARGET_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71")
-SET (TARGET_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72")
-SET (TARGET_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73")
-SET (TARGET_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74")
-SET (TARGET_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75")
-SET (TARGET_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76")
-SET (TARGET_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77")
-SET (TARGET_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78")
-SET (TARGET_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79")
-SET (TARGET_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80")
-SET (TARGET_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81")
-SET (TARGET_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82")
-SET (TARGET_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83")
-SET (TARGET_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84")
-SET (TARGET_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85")
-SET (TARGET_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86")
-SET (TARGET_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87")
-SET (TARGET_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88")
-SET (TARGET_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89")
-SET (TARGET_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90")
-SET (TARGET_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91")
-SET (TARGET_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92")
-SET (TARGET_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93")
-SET (TARGET_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94")
-SET (TARGET_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95")
-SET (TARGET_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96")
-SET (TARGET_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97")
-SET (TARGET_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98")
-SET (TARGET_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99")
-SET (TARGET_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100")
-SET (TARGET_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101")
-SET (TARGET_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102")
-SET (TARGET_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103")
-SET (TARGET_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104")
-SET (TARGET_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105")
-SET (TARGET_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106")
-SET (TARGET_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107")
-SET (TARGET_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108")
-SET (TARGET_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109")
-SET (TARGET_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110")
-SET (TARGET_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111")
-SET (TARGET_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112")
-SET (TARGET_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113")
-SET (TARGET_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114")
-SET (TARGET_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115")
-SET (TARGET_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116")
-SET (TARGET_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117")
-SET (TARGET_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118")
-SET (TARGET_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119")
-SET (TARGET_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120")
-SET (TARGET_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121")
-SET (TARGET_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122")
-SET (TARGET_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123")
-SET (TARGET_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124")
-SET (TARGET_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125")
-SET (TARGET_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126")
-SET (TARGET_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127")
-
-SET (TARGET_SIGNAL_INFO, 142, "SIGINFO", "Information request")
-
-/* Some signal we don't know about. */
-SET (TARGET_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal")
-
-/* Use whatever signal we use when one is not specifically specified
- (for passing to proceed and so on). */
-SET (TARGET_SIGNAL_DEFAULT, 144, NULL,
- "Internal error: printing TARGET_SIGNAL_DEFAULT")
-
-/* Mach exceptions. In versions of GDB before 5.2, these were just before
- TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
- otherwise). */
-SET (TARGET_EXC_BAD_ACCESS, 145, "EXC_BAD_ACCESS", "Could not access memory")
-SET (TARGET_EXC_BAD_INSTRUCTION, 146, "EXC_BAD_INSTRUCTION",
- "Illegal instruction/operand")
-SET (TARGET_EXC_ARITHMETIC, 147, "EXC_ARITHMETIC", "Arithmetic exception")
-SET (TARGET_EXC_EMULATION, 148, "EXC_EMULATION", "Emulation instruction")
-SET (TARGET_EXC_SOFTWARE, 149, "EXC_SOFTWARE", "Software generated exception")
-SET (TARGET_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
-
-/* If you are adding a new signal, add it just above this comment. */
-
-/* Last and unused enum value, for sizing arrays, etc. */
-SET (TARGET_SIGNAL_LAST, 151, NULL, "TARGET_SIGNAL_MAGIC")
diff --git a/include/gdb/signals.h b/include/gdb/signals.h
deleted file mode 100644
index 73643974c..000000000
--- a/include/gdb/signals.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Target signal numbers for GDB and the GDB remote protocol.
- Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef GDB_SIGNALS_H
-#define GDB_SIGNALS_H
-
-/* The numbering of these signals is chosen to match traditional unix
- signals (insofar as various unices use the same numbers, anyway).
- It is also the numbering of the GDB remote protocol. Other remote
- protocols, if they use a different numbering, should make sure to
- translate appropriately.
-
- Since these numbers have actually made it out into other software
- (stubs, etc.), you mustn't disturb the assigned numbering. If you
- need to add new signals here, add them to the end of the explicitly
- numbered signals, at the comment marker. Add them unconditionally,
- not within any #if or #ifdef.
-
- This is based strongly on Unix/POSIX signals for several reasons:
- (1) This set of signals represents a widely-accepted attempt to
- represent events of this sort in a portable fashion, (2) we want a
- signal to make it from wait to child_wait to the user intact, (3) many
- remote protocols use a similar encoding. However, it is
- recognized that this set of signals has limitations (such as not
- distinguishing between various kinds of SIGSEGV, or not
- distinguishing hitting a breakpoint from finishing a single step).
- So in the future we may get around this either by adding additional
- signals for breakpoint, single-step, etc., or by adding signal
- codes; the latter seems more in the spirit of what BSD, System V,
- etc. are doing to address these issues. */
-
-/* For an explanation of what each signal means, see
- target_signal_to_string. */
-
-enum target_signal
- {
-#define SET(symbol, constant, name, string) \
- symbol = constant,
-#include "gdb/signals.def"
-#undef SET
- };
-
-#endif /* #ifndef GDB_SIGNALS_H */
diff --git a/include/gdb/sim-arm.h b/include/gdb/sim-arm.h
deleted file mode 100644
index 3004d8c42..000000000
--- a/include/gdb/sim-arm.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* This file defines the interface between the Arm simulator and GDB.
-
- Copyright 2002, 2003, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_ARM_H)
-#define SIM_ARM_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum sim_arm_regs
-{
- SIM_ARM_R0_REGNUM,
- SIM_ARM_R1_REGNUM,
- SIM_ARM_R2_REGNUM,
- SIM_ARM_R3_REGNUM,
- SIM_ARM_R4_REGNUM,
- SIM_ARM_R5_REGNUM,
- SIM_ARM_R6_REGNUM,
- SIM_ARM_R7_REGNUM,
- SIM_ARM_R8_REGNUM,
- SIM_ARM_R9_REGNUM,
- SIM_ARM_R10_REGNUM,
- SIM_ARM_R11_REGNUM,
- SIM_ARM_R12_REGNUM,
- SIM_ARM_R13_REGNUM,
- SIM_ARM_R14_REGNUM,
- SIM_ARM_R15_REGNUM, /* PC */
- SIM_ARM_FP0_REGNUM,
- SIM_ARM_FP1_REGNUM,
- SIM_ARM_FP2_REGNUM,
- SIM_ARM_FP3_REGNUM,
- SIM_ARM_FP4_REGNUM,
- SIM_ARM_FP5_REGNUM,
- SIM_ARM_FP6_REGNUM,
- SIM_ARM_FP7_REGNUM,
- SIM_ARM_FPS_REGNUM,
- SIM_ARM_PS_REGNUM,
- SIM_ARM_MAVERIC_COP0R0_REGNUM,
- SIM_ARM_MAVERIC_COP0R1_REGNUM,
- SIM_ARM_MAVERIC_COP0R2_REGNUM,
- SIM_ARM_MAVERIC_COP0R3_REGNUM,
- SIM_ARM_MAVERIC_COP0R4_REGNUM,
- SIM_ARM_MAVERIC_COP0R5_REGNUM,
- SIM_ARM_MAVERIC_COP0R6_REGNUM,
- SIM_ARM_MAVERIC_COP0R7_REGNUM,
- SIM_ARM_MAVERIC_COP0R8_REGNUM,
- SIM_ARM_MAVERIC_COP0R9_REGNUM,
- SIM_ARM_MAVERIC_COP0R10_REGNUM,
- SIM_ARM_MAVERIC_COP0R11_REGNUM,
- SIM_ARM_MAVERIC_COP0R12_REGNUM,
- SIM_ARM_MAVERIC_COP0R13_REGNUM,
- SIM_ARM_MAVERIC_COP0R14_REGNUM,
- SIM_ARM_MAVERIC_COP0R15_REGNUM,
- SIM_ARM_MAVERIC_DSPSC_REGNUM,
- SIM_ARM_IWMMXT_COP0R0_REGNUM,
- SIM_ARM_IWMMXT_COP0R1_REGNUM,
- SIM_ARM_IWMMXT_COP0R2_REGNUM,
- SIM_ARM_IWMMXT_COP0R3_REGNUM,
- SIM_ARM_IWMMXT_COP0R4_REGNUM,
- SIM_ARM_IWMMXT_COP0R5_REGNUM,
- SIM_ARM_IWMMXT_COP0R6_REGNUM,
- SIM_ARM_IWMMXT_COP0R7_REGNUM,
- SIM_ARM_IWMMXT_COP0R8_REGNUM,
- SIM_ARM_IWMMXT_COP0R9_REGNUM,
- SIM_ARM_IWMMXT_COP0R10_REGNUM,
- SIM_ARM_IWMMXT_COP0R11_REGNUM,
- SIM_ARM_IWMMXT_COP0R12_REGNUM,
- SIM_ARM_IWMMXT_COP0R13_REGNUM,
- SIM_ARM_IWMMXT_COP0R14_REGNUM,
- SIM_ARM_IWMMXT_COP0R15_REGNUM,
- SIM_ARM_IWMMXT_COP1R0_REGNUM,
- SIM_ARM_IWMMXT_COP1R1_REGNUM,
- SIM_ARM_IWMMXT_COP1R2_REGNUM,
- SIM_ARM_IWMMXT_COP1R3_REGNUM,
- SIM_ARM_IWMMXT_COP1R4_REGNUM,
- SIM_ARM_IWMMXT_COP1R5_REGNUM,
- SIM_ARM_IWMMXT_COP1R6_REGNUM,
- SIM_ARM_IWMMXT_COP1R7_REGNUM,
- SIM_ARM_IWMMXT_COP1R8_REGNUM,
- SIM_ARM_IWMMXT_COP1R9_REGNUM,
- SIM_ARM_IWMMXT_COP1R10_REGNUM,
- SIM_ARM_IWMMXT_COP1R11_REGNUM,
- SIM_ARM_IWMMXT_COP1R12_REGNUM,
- SIM_ARM_IWMMXT_COP1R13_REGNUM,
- SIM_ARM_IWMMXT_COP1R14_REGNUM,
- SIM_ARM_IWMMXT_COP1R15_REGNUM
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-bfin.h b/include/gdb/sim-bfin.h
deleted file mode 100644
index 3a006b882..000000000
--- a/include/gdb/sim-bfin.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* This file defines the interface between the Blackfin simulator and GDB.
-
- Copyright (C) 2005-2011 Free Software Foundation, Inc.
- Contributed by Analog Devices.
-
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-enum sim_bfin_regnum {
- SIM_BFIN_R0_REGNUM = 0,
- SIM_BFIN_R1_REGNUM,
- SIM_BFIN_R2_REGNUM,
- SIM_BFIN_R3_REGNUM,
- SIM_BFIN_R4_REGNUM,
- SIM_BFIN_R5_REGNUM,
- SIM_BFIN_R6_REGNUM,
- SIM_BFIN_R7_REGNUM,
- SIM_BFIN_P0_REGNUM,
- SIM_BFIN_P1_REGNUM,
- SIM_BFIN_P2_REGNUM,
- SIM_BFIN_P3_REGNUM,
- SIM_BFIN_P4_REGNUM,
- SIM_BFIN_P5_REGNUM,
- SIM_BFIN_SP_REGNUM,
- SIM_BFIN_FP_REGNUM,
- SIM_BFIN_I0_REGNUM,
- SIM_BFIN_I1_REGNUM,
- SIM_BFIN_I2_REGNUM,
- SIM_BFIN_I3_REGNUM,
- SIM_BFIN_M0_REGNUM,
- SIM_BFIN_M1_REGNUM,
- SIM_BFIN_M2_REGNUM,
- SIM_BFIN_M3_REGNUM,
- SIM_BFIN_B0_REGNUM,
- SIM_BFIN_B1_REGNUM,
- SIM_BFIN_B2_REGNUM,
- SIM_BFIN_B3_REGNUM,
- SIM_BFIN_L0_REGNUM,
- SIM_BFIN_L1_REGNUM,
- SIM_BFIN_L2_REGNUM,
- SIM_BFIN_L3_REGNUM,
- SIM_BFIN_A0_DOT_X_REGNUM,
- SIM_BFIN_A0_DOT_W_REGNUM,
- SIM_BFIN_A1_DOT_X_REGNUM,
- SIM_BFIN_A1_DOT_W_REGNUM,
- SIM_BFIN_ASTAT_REGNUM,
- SIM_BFIN_RETS_REGNUM,
- SIM_BFIN_LC0_REGNUM,
- SIM_BFIN_LT0_REGNUM,
- SIM_BFIN_LB0_REGNUM,
- SIM_BFIN_LC1_REGNUM,
- SIM_BFIN_LT1_REGNUM,
- SIM_BFIN_LB1_REGNUM,
- SIM_BFIN_CYCLES_REGNUM,
- SIM_BFIN_CYCLES2_REGNUM,
- SIM_BFIN_USP_REGNUM,
- SIM_BFIN_SEQSTAT_REGNUM,
- SIM_BFIN_SYSCFG_REGNUM,
- SIM_BFIN_RETI_REGNUM,
- SIM_BFIN_RETX_REGNUM,
- SIM_BFIN_RETN_REGNUM,
- SIM_BFIN_RETE_REGNUM,
- SIM_BFIN_PC_REGNUM,
- SIM_BFIN_CC_REGNUM,
- SIM_BFIN_TEXT_ADDR,
- SIM_BFIN_TEXT_END_ADDR,
- SIM_BFIN_DATA_ADDR,
- SIM_BFIN_IPEND_REGNUM
-};
-
diff --git a/include/gdb/sim-cr16.h b/include/gdb/sim-cr16.h
deleted file mode 100644
index 1e1c0dd0b..000000000
--- a/include/gdb/sim-cr16.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* This file defines the interface between the cr16 simulator and gdb.
-
- Copyright 2008, 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_CR16_H)
-#define SIM_CR16_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum
- {
- SIM_CR16_MEMORY_UNIFIED = 0x00000000,
- SIM_CR16_MEMORY_INSN = 0x10000000,
- SIM_CR16_MEMORY_DATA = 0x10000000,
- SIM_CR16_MEMORY_DMAP = 0x10000000,
- SIM_CR16_MEMORY_IMAP = 0x10000000
- };
-
-extern unsigned long sim_cr16_translate_dmap_addr
- (unsigned long offset,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*dmap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_cr16_translate_imap_addr
- (unsigned long offset,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_cr16_translate_addr
- (unsigned long vaddr,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*dmap_register) (void *regcache, int reg_nr),
- unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-
-/* The simulator makes use of the following register information. */
-
-enum sim_cr16_regs
-{
- SIM_CR16_R0_REGNUM,
- SIM_CR16_R1_REGNUM,
- SIM_CR16_R2_REGNUM,
- SIM_CR16_R3_REGNUM,
- SIM_CR16_R4_REGNUM,
- SIM_CR16_R5_REGNUM,
- SIM_CR16_R6_REGNUM,
- SIM_CR16_R7_REGNUM,
- SIM_CR16_R8_REGNUM,
- SIM_CR16_R9_REGNUM,
- SIM_CR16_R10_REGNUM,
- SIM_CR16_R11_REGNUM,
- SIM_CR16_R12_REGNUM,
- SIM_CR16_R13_REGNUM,
- SIM_CR16_R14_REGNUM,
- SIM_CR16_R15_REGNUM,
-
- SIM_CR16_PC_REGNUM,
- SIM_CR16_ISP_REGNUM,
- SIM_CR16_USP_REGNUM,
- SIM_CR16_INTBASE_REGNUM,
- SIM_CR16_PSR_REGNUM,
- SIM_CR16_CFG_REGNUM,
- SIM_CR16_DBS_REGNUM,
- SIM_CR16_DCR_REGNUM,
- SIM_CR16_DSR_REGNUM,
- SIM_CR16_CAR0_REGNUM,
- SIM_CR16_CAR1_REGNUM
-};
-
-enum
-{
- SIM_CR16_NR_R_REGS = 16,
- SIM_CR16_NR_A_REGS = 2,
- SIM_CR16_NR_IMAP_REGS = 2,
- SIM_CR16_NR_DMAP_REGS = 4,
- SIM_CR16_NR_CR_REGS = 11
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-d10v.h b/include/gdb/sim-d10v.h
deleted file mode 100644
index 9f65191b0..000000000
--- a/include/gdb/sim-d10v.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* This file defines the interface between the d10v simulator and gdb.
-
- Copyright 1999, 2002, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_D10V_H)
-#define SIM_D10V_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-/* GDB interprets addresses as:
-
- 0x00xxxxxx: Physical unified memory segment (Unified memory)
- 0x01xxxxxx: Physical instruction memory segment (On-chip insn memory)
- 0x02xxxxxx: Physical data memory segment (On-chip data memory)
- 0x10xxxxxx: Logical data address segment (DMAP translated memory)
- 0x11xxxxxx: Logical instruction address segment (IMAP translated memory)
-
- The remote d10v board interprets addresses as:
-
- 0x00xxxxxx: Physical unified memory segment (Unified memory)
- 0x01xxxxxx: Physical instruction memory segment (On-chip insn memory)
- 0x02xxxxxx: Physical data memory segment (On-chip data memory)
-
- The following translate a virtual DMAP/IMAP offset into a physical
- memory segment assigning the translated address to PHYS. Since a
- memory access may cross a page boundrary the number of bytes for
- which the translation is applicable (or 0 for an invalid virtual
- offset) is returned. */
-
-enum
- {
- SIM_D10V_MEMORY_UNIFIED = 0x00000000,
- SIM_D10V_MEMORY_INSN = 0x01000000,
- SIM_D10V_MEMORY_DATA = 0x02000000,
- SIM_D10V_MEMORY_DMAP = 0x10000000,
- SIM_D10V_MEMORY_IMAP = 0x11000000
- };
-
-extern unsigned long sim_d10v_translate_dmap_addr
- (unsigned long offset,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*dmap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_d10v_translate_imap_addr
- (unsigned long offset,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-extern unsigned long sim_d10v_translate_addr
- (unsigned long vaddr,
- int nr_bytes,
- unsigned long *phys,
- void *regcache,
- unsigned long (*dmap_register) (void *regcache, int reg_nr),
- unsigned long (*imap_register) (void *regcache, int reg_nr));
-
-
-/* The simulator makes use of the following register information. */
-
-enum sim_d10v_regs
-{
- SIM_D10V_R0_REGNUM,
- SIM_D10V_R1_REGNUM,
- SIM_D10V_R2_REGNUM,
- SIM_D10V_R3_REGNUM,
- SIM_D10V_R4_REGNUM,
- SIM_D10V_R5_REGNUM,
- SIM_D10V_R6_REGNUM,
- SIM_D10V_R7_REGNUM,
- SIM_D10V_R8_REGNUM,
- SIM_D10V_R9_REGNUM,
- SIM_D10V_R10_REGNUM,
- SIM_D10V_R11_REGNUM,
- SIM_D10V_R12_REGNUM,
- SIM_D10V_R13_REGNUM,
- SIM_D10V_R14_REGNUM,
- SIM_D10V_R15_REGNUM,
- SIM_D10V_CR0_REGNUM,
- SIM_D10V_CR1_REGNUM,
- SIM_D10V_CR2_REGNUM,
- SIM_D10V_CR3_REGNUM,
- SIM_D10V_CR4_REGNUM,
- SIM_D10V_CR5_REGNUM,
- SIM_D10V_CR6_REGNUM,
- SIM_D10V_CR7_REGNUM,
- SIM_D10V_CR8_REGNUM,
- SIM_D10V_CR9_REGNUM,
- SIM_D10V_CR10_REGNUM,
- SIM_D10V_CR11_REGNUM,
- SIM_D10V_CR12_REGNUM,
- SIM_D10V_CR13_REGNUM,
- SIM_D10V_CR14_REGNUM,
- SIM_D10V_CR15_REGNUM,
- SIM_D10V_A0_REGNUM,
- SIM_D10V_A1_REGNUM,
- SIM_D10V_SPI_REGNUM,
- SIM_D10V_SPU_REGNUM,
- SIM_D10V_IMAP0_REGNUM,
- SIM_D10V_IMAP1_REGNUM,
- SIM_D10V_DMAP0_REGNUM,
- SIM_D10V_DMAP1_REGNUM,
- SIM_D10V_DMAP2_REGNUM,
- SIM_D10V_DMAP3_REGNUM,
- SIM_D10V_TS2_DMAP_REGNUM
-};
-
-enum
-{
- SIM_D10V_NR_R_REGS = 16,
- SIM_D10V_NR_A_REGS = 2,
- SIM_D10V_NR_IMAP_REGS = 2,
- SIM_D10V_NR_DMAP_REGS = 4,
- SIM_D10V_NR_CR_REGS = 16
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-frv.h b/include/gdb/sim-frv.h
deleted file mode 100644
index fe206b2b0..000000000
--- a/include/gdb/sim-frv.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* This file defines the interface between the FR-V simulator and GDB.
-
- Copyright 2003, 2007, 2008, 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_FRV_H)
-#define SIM_FRV_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum sim_frv_regs
-{
- SIM_FRV_GR0_REGNUM = 0,
- SIM_FRV_GR63_REGNUM = 63,
- SIM_FRV_FR0_REGNUM = 64,
- SIM_FRV_FR63_REGNUM = 127,
- SIM_FRV_PC_REGNUM = 128,
-
- /* An FR-V architecture may have up to 4096 special purpose registers
- (SPRs). In order to determine a specific constant used to access
- a particular SPR, one of the H_SPR_ prefixed offsets defined in
- opcodes/frv-desc.h should be added to SIM_FRV_SPR0_REGNUM. So,
- for example, the number that GDB uses to fetch the link register
- from the simulator is (SIM_FRV_SPR0_REGNUM + H_SPR_LR). */
- SIM_FRV_SPR0_REGNUM = 129,
- SIM_FRV_SPR4095_REGNUM = SIM_FRV_SPR0_REGNUM + 4095
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-h8300.h b/include/gdb/sim-h8300.h
deleted file mode 100644
index bc1ab7b2e..000000000
--- a/include/gdb/sim-h8300.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* This file defines the interface between the h8300 simulator and gdb.
- Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_H8300_H)
-#define SIM_H8300_H
-
-#ifdef __cplusplus
-extern "C" { //}
-#endif
-
-/* The simulator makes use of the following register information. */
-
- enum sim_h8300_regs
- {
- /* Registers common to all the H8 variants. */
- /* Start here: */
- SIM_H8300_R0_REGNUM,
- SIM_H8300_R1_REGNUM,
- SIM_H8300_R2_REGNUM,
- SIM_H8300_R3_REGNUM,
- SIM_H8300_R4_REGNUM,
- SIM_H8300_R5_REGNUM,
- SIM_H8300_R6_REGNUM,
- SIM_H8300_R7_REGNUM,
-
- SIM_H8300_CCR_REGNUM, /* Contains processor status */
- SIM_H8300_PC_REGNUM, /* Contains program counter */
- /* End here */
-
- SIM_H8300_EXR_REGNUM, /* Contains extended processor status
- H8S and higher */
- SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/
- SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */
-
- SIM_H8300_CYCLE_REGNUM,
- SIM_H8300_INST_REGNUM,
- SIM_H8300_TICK_REGNUM
- };
-
- enum
- {
- SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg
- may be passed */
- SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg
- may be passed */
- SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing
- stack frame */
- SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM /* Contains address of top of stack */
- };
-
- enum
- {
- SIM_H8300_NUM_COMMON_REGS = 10,
- SIM_H8300_S_NUM_REGS = 13,
- SIM_H8300_NUM_REGS = 16
- };
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SIM_H8300_H */
diff --git a/include/gdb/sim-lm32.h b/include/gdb/sim-lm32.h
deleted file mode 100644
index ad94a9f35..000000000
--- a/include/gdb/sim-lm32.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file defines the interface between the LM32 simulator and GDB.
- Contributed by Jon Beniston <jon@beniston.com>
-
- Copyright (C) 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef SIM_LM32_H
-#define SIM_LM32_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-enum sim_lm32_regs
-{
- SIM_LM32_R0_REGNUM,
- SIM_LM32_R1_REGNUM,
- SIM_LM32_R2_REGNUM,
- SIM_LM32_R3_REGNUM,
- SIM_LM32_R4_REGNUM,
- SIM_LM32_R5_REGNUM,
- SIM_LM32_R6_REGNUM,
- SIM_LM32_R7_REGNUM,
- SIM_LM32_R8_REGNUM,
- SIM_LM32_R9_REGNUM,
- SIM_LM32_R10_REGNUM,
- SIM_LM32_R11_REGNUM,
- SIM_LM32_R12_REGNUM,
- SIM_LM32_R13_REGNUM,
- SIM_LM32_R14_REGNUM,
- SIM_LM32_R15_REGNUM,
- SIM_LM32_R16_REGNUM,
- SIM_LM32_R17_REGNUM,
- SIM_LM32_R18_REGNUM,
- SIM_LM32_R19_REGNUM,
- SIM_LM32_R20_REGNUM,
- SIM_LM32_R21_REGNUM,
- SIM_LM32_R22_REGNUM,
- SIM_LM32_R23_REGNUM,
- SIM_LM32_R24_REGNUM,
- SIM_LM32_R25_REGNUM,
- SIM_LM32_GP_REGNUM,
- SIM_LM32_FP_REGNUM,
- SIM_LM32_SP_REGNUM,
- SIM_LM32_RA_REGNUM,
- SIM_LM32_BA_REGNUM,
- SIM_LM32_EA_REGNUM,
- SIM_LM32_PC_REGNUM,
- SIM_LM32_EID_REGNUM,
- SIM_LM32_EBA_REGNUM,
- SIM_LM32_DEBA_REGNUM,
- SIM_LM32_IE_REGNUM,
- SIM_LM32_IM_REGNUM,
- SIM_LM32_IP_REGNUM,
- SIM_LM32_NUM_REGS
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdb/sim-m32c.h b/include/gdb/sim-m32c.h
deleted file mode 100644
index 2d742f496..000000000
--- a/include/gdb/sim-m32c.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* This file defines the interface between the m32c simulator and gdb.
- Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef SIM_M32C_H
-#define SIM_M32C_H
-
-enum m32c_sim_reg {
- m32c_sim_reg_r0_bank0,
- m32c_sim_reg_r1_bank0,
- m32c_sim_reg_r2_bank0,
- m32c_sim_reg_r3_bank0,
- m32c_sim_reg_a0_bank0,
- m32c_sim_reg_a1_bank0,
- m32c_sim_reg_fb_bank0,
- m32c_sim_reg_sb_bank0,
- m32c_sim_reg_r0_bank1,
- m32c_sim_reg_r1_bank1,
- m32c_sim_reg_r2_bank1,
- m32c_sim_reg_r3_bank1,
- m32c_sim_reg_a0_bank1,
- m32c_sim_reg_a1_bank1,
- m32c_sim_reg_fb_bank1,
- m32c_sim_reg_sb_bank1,
- m32c_sim_reg_usp,
- m32c_sim_reg_isp,
- m32c_sim_reg_pc,
- m32c_sim_reg_intb,
- m32c_sim_reg_flg,
- m32c_sim_reg_svf,
- m32c_sim_reg_svp,
- m32c_sim_reg_vct,
- m32c_sim_reg_dmd0,
- m32c_sim_reg_dmd1,
- m32c_sim_reg_dct0,
- m32c_sim_reg_dct1,
- m32c_sim_reg_drc0,
- m32c_sim_reg_drc1,
- m32c_sim_reg_dma0,
- m32c_sim_reg_dma1,
- m32c_sim_reg_dsa0,
- m32c_sim_reg_dsa1,
- m32c_sim_reg_dra0,
- m32c_sim_reg_dra1,
- m32c_sim_reg_num_regs
-};
-
-#endif /* SIM_M32C_H */
diff --git a/include/gdb/sim-ppc.h b/include/gdb/sim-ppc.h
deleted file mode 100644
index 3b61a5d94..000000000
--- a/include/gdb/sim-ppc.h
+++ /dev/null
@@ -1,773 +0,0 @@
-/* sim-ppc.h --- interface between PowerPC simulator and GDB.
-
- Copyright 2004, 2007, 2008, 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_PPC_H)
-#define SIM_PPC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The register access functions, sim_fetch_register and
- sim_store_register, use the following numbering for PowerPC
- registers. */
-
-enum sim_ppc_regnum
- {
- /* General-purpose registers, r0 -- r31. */
- sim_ppc_r0_regnum,
- sim_ppc_r1_regnum,
- sim_ppc_r2_regnum,
- sim_ppc_r3_regnum,
- sim_ppc_r4_regnum,
- sim_ppc_r5_regnum,
- sim_ppc_r6_regnum,
- sim_ppc_r7_regnum,
- sim_ppc_r8_regnum,
- sim_ppc_r9_regnum,
- sim_ppc_r10_regnum,
- sim_ppc_r11_regnum,
- sim_ppc_r12_regnum,
- sim_ppc_r13_regnum,
- sim_ppc_r14_regnum,
- sim_ppc_r15_regnum,
- sim_ppc_r16_regnum,
- sim_ppc_r17_regnum,
- sim_ppc_r18_regnum,
- sim_ppc_r19_regnum,
- sim_ppc_r20_regnum,
- sim_ppc_r21_regnum,
- sim_ppc_r22_regnum,
- sim_ppc_r23_regnum,
- sim_ppc_r24_regnum,
- sim_ppc_r25_regnum,
- sim_ppc_r26_regnum,
- sim_ppc_r27_regnum,
- sim_ppc_r28_regnum,
- sim_ppc_r29_regnum,
- sim_ppc_r30_regnum,
- sim_ppc_r31_regnum,
-
- /* Floating-point registers, f0 -- f31. */
- sim_ppc_f0_regnum,
- sim_ppc_f1_regnum,
- sim_ppc_f2_regnum,
- sim_ppc_f3_regnum,
- sim_ppc_f4_regnum,
- sim_ppc_f5_regnum,
- sim_ppc_f6_regnum,
- sim_ppc_f7_regnum,
- sim_ppc_f8_regnum,
- sim_ppc_f9_regnum,
- sim_ppc_f10_regnum,
- sim_ppc_f11_regnum,
- sim_ppc_f12_regnum,
- sim_ppc_f13_regnum,
- sim_ppc_f14_regnum,
- sim_ppc_f15_regnum,
- sim_ppc_f16_regnum,
- sim_ppc_f17_regnum,
- sim_ppc_f18_regnum,
- sim_ppc_f19_regnum,
- sim_ppc_f20_regnum,
- sim_ppc_f21_regnum,
- sim_ppc_f22_regnum,
- sim_ppc_f23_regnum,
- sim_ppc_f24_regnum,
- sim_ppc_f25_regnum,
- sim_ppc_f26_regnum,
- sim_ppc_f27_regnum,
- sim_ppc_f28_regnum,
- sim_ppc_f29_regnum,
- sim_ppc_f30_regnum,
- sim_ppc_f31_regnum,
-
- /* Altivec vector registers, vr0 -- vr31. */
- sim_ppc_vr0_regnum,
- sim_ppc_vr1_regnum,
- sim_ppc_vr2_regnum,
- sim_ppc_vr3_regnum,
- sim_ppc_vr4_regnum,
- sim_ppc_vr5_regnum,
- sim_ppc_vr6_regnum,
- sim_ppc_vr7_regnum,
- sim_ppc_vr8_regnum,
- sim_ppc_vr9_regnum,
- sim_ppc_vr10_regnum,
- sim_ppc_vr11_regnum,
- sim_ppc_vr12_regnum,
- sim_ppc_vr13_regnum,
- sim_ppc_vr14_regnum,
- sim_ppc_vr15_regnum,
- sim_ppc_vr16_regnum,
- sim_ppc_vr17_regnum,
- sim_ppc_vr18_regnum,
- sim_ppc_vr19_regnum,
- sim_ppc_vr20_regnum,
- sim_ppc_vr21_regnum,
- sim_ppc_vr22_regnum,
- sim_ppc_vr23_regnum,
- sim_ppc_vr24_regnum,
- sim_ppc_vr25_regnum,
- sim_ppc_vr26_regnum,
- sim_ppc_vr27_regnum,
- sim_ppc_vr28_regnum,
- sim_ppc_vr29_regnum,
- sim_ppc_vr30_regnum,
- sim_ppc_vr31_regnum,
-
- /* SPE APU GPR upper halves. These are the upper 32 bits of the
- gprs; there is one upper-half register for each gpr, so it is
- appropriate to use sim_ppc_num_gprs for iterating through
- these. */
- sim_ppc_rh0_regnum,
- sim_ppc_rh1_regnum,
- sim_ppc_rh2_regnum,
- sim_ppc_rh3_regnum,
- sim_ppc_rh4_regnum,
- sim_ppc_rh5_regnum,
- sim_ppc_rh6_regnum,
- sim_ppc_rh7_regnum,
- sim_ppc_rh8_regnum,
- sim_ppc_rh9_regnum,
- sim_ppc_rh10_regnum,
- sim_ppc_rh11_regnum,
- sim_ppc_rh12_regnum,
- sim_ppc_rh13_regnum,
- sim_ppc_rh14_regnum,
- sim_ppc_rh15_regnum,
- sim_ppc_rh16_regnum,
- sim_ppc_rh17_regnum,
- sim_ppc_rh18_regnum,
- sim_ppc_rh19_regnum,
- sim_ppc_rh20_regnum,
- sim_ppc_rh21_regnum,
- sim_ppc_rh22_regnum,
- sim_ppc_rh23_regnum,
- sim_ppc_rh24_regnum,
- sim_ppc_rh25_regnum,
- sim_ppc_rh26_regnum,
- sim_ppc_rh27_regnum,
- sim_ppc_rh28_regnum,
- sim_ppc_rh29_regnum,
- sim_ppc_rh30_regnum,
- sim_ppc_rh31_regnum,
-
- /* SPE APU GPR full registers. Each of these registers is the
- 64-bit concatenation of a 32-bit GPR (providing the lower bits)
- and a 32-bit upper-half register (providing the higher bits).
- As for the upper-half registers, it is appropriate to use
- sim_ppc_num_gprs with these. */
- sim_ppc_ev0_regnum,
- sim_ppc_ev1_regnum,
- sim_ppc_ev2_regnum,
- sim_ppc_ev3_regnum,
- sim_ppc_ev4_regnum,
- sim_ppc_ev5_regnum,
- sim_ppc_ev6_regnum,
- sim_ppc_ev7_regnum,
- sim_ppc_ev8_regnum,
- sim_ppc_ev9_regnum,
- sim_ppc_ev10_regnum,
- sim_ppc_ev11_regnum,
- sim_ppc_ev12_regnum,
- sim_ppc_ev13_regnum,
- sim_ppc_ev14_regnum,
- sim_ppc_ev15_regnum,
- sim_ppc_ev16_regnum,
- sim_ppc_ev17_regnum,
- sim_ppc_ev18_regnum,
- sim_ppc_ev19_regnum,
- sim_ppc_ev20_regnum,
- sim_ppc_ev21_regnum,
- sim_ppc_ev22_regnum,
- sim_ppc_ev23_regnum,
- sim_ppc_ev24_regnum,
- sim_ppc_ev25_regnum,
- sim_ppc_ev26_regnum,
- sim_ppc_ev27_regnum,
- sim_ppc_ev28_regnum,
- sim_ppc_ev29_regnum,
- sim_ppc_ev30_regnum,
- sim_ppc_ev31_regnum,
-
- /* Segment registers, sr0 -- sr15. */
- sim_ppc_sr0_regnum,
- sim_ppc_sr1_regnum,
- sim_ppc_sr2_regnum,
- sim_ppc_sr3_regnum,
- sim_ppc_sr4_regnum,
- sim_ppc_sr5_regnum,
- sim_ppc_sr6_regnum,
- sim_ppc_sr7_regnum,
- sim_ppc_sr8_regnum,
- sim_ppc_sr9_regnum,
- sim_ppc_sr10_regnum,
- sim_ppc_sr11_regnum,
- sim_ppc_sr12_regnum,
- sim_ppc_sr13_regnum,
- sim_ppc_sr14_regnum,
- sim_ppc_sr15_regnum,
-
- /* Miscellaneous --- but non-SPR --- registers. */
- sim_ppc_pc_regnum,
- sim_ppc_ps_regnum,
- sim_ppc_cr_regnum,
- sim_ppc_fpscr_regnum,
- sim_ppc_acc_regnum,
- sim_ppc_vscr_regnum,
-
- /* Special-purpose registers. */
- sim_ppc_spr0_regnum, sim_ppc_spr1_regnum,
- sim_ppc_spr2_regnum, sim_ppc_spr3_regnum,
- sim_ppc_spr4_regnum, sim_ppc_spr5_regnum,
- sim_ppc_spr6_regnum, sim_ppc_spr7_regnum,
- sim_ppc_spr8_regnum, sim_ppc_spr9_regnum,
- sim_ppc_spr10_regnum, sim_ppc_spr11_regnum,
- sim_ppc_spr12_regnum, sim_ppc_spr13_regnum,
- sim_ppc_spr14_regnum, sim_ppc_spr15_regnum,
- sim_ppc_spr16_regnum, sim_ppc_spr17_regnum,
- sim_ppc_spr18_regnum, sim_ppc_spr19_regnum,
- sim_ppc_spr20_regnum, sim_ppc_spr21_regnum,
- sim_ppc_spr22_regnum, sim_ppc_spr23_regnum,
- sim_ppc_spr24_regnum, sim_ppc_spr25_regnum,
- sim_ppc_spr26_regnum, sim_ppc_spr27_regnum,
- sim_ppc_spr28_regnum, sim_ppc_spr29_regnum,
- sim_ppc_spr30_regnum, sim_ppc_spr31_regnum,
- sim_ppc_spr32_regnum, sim_ppc_spr33_regnum,
- sim_ppc_spr34_regnum, sim_ppc_spr35_regnum,
- sim_ppc_spr36_regnum, sim_ppc_spr37_regnum,
- sim_ppc_spr38_regnum, sim_ppc_spr39_regnum,
- sim_ppc_spr40_regnum, sim_ppc_spr41_regnum,
- sim_ppc_spr42_regnum, sim_ppc_spr43_regnum,
- sim_ppc_spr44_regnum, sim_ppc_spr45_regnum,
- sim_ppc_spr46_regnum, sim_ppc_spr47_regnum,
- sim_ppc_spr48_regnum, sim_ppc_spr49_regnum,
- sim_ppc_spr50_regnum, sim_ppc_spr51_regnum,
- sim_ppc_spr52_regnum, sim_ppc_spr53_regnum,
- sim_ppc_spr54_regnum, sim_ppc_spr55_regnum,
- sim_ppc_spr56_regnum, sim_ppc_spr57_regnum,
- sim_ppc_spr58_regnum, sim_ppc_spr59_regnum,
- sim_ppc_spr60_regnum, sim_ppc_spr61_regnum,
- sim_ppc_spr62_regnum, sim_ppc_spr63_regnum,
- sim_ppc_spr64_regnum, sim_ppc_spr65_regnum,
- sim_ppc_spr66_regnum, sim_ppc_spr67_regnum,
- sim_ppc_spr68_regnum, sim_ppc_spr69_regnum,
- sim_ppc_spr70_regnum, sim_ppc_spr71_regnum,
- sim_ppc_spr72_regnum, sim_ppc_spr73_regnum,
- sim_ppc_spr74_regnum, sim_ppc_spr75_regnum,
- sim_ppc_spr76_regnum, sim_ppc_spr77_regnum,
- sim_ppc_spr78_regnum, sim_ppc_spr79_regnum,
- sim_ppc_spr80_regnum, sim_ppc_spr81_regnum,
- sim_ppc_spr82_regnum, sim_ppc_spr83_regnum,
- sim_ppc_spr84_regnum, sim_ppc_spr85_regnum,
- sim_ppc_spr86_regnum, sim_ppc_spr87_regnum,
- sim_ppc_spr88_regnum, sim_ppc_spr89_regnum,
- sim_ppc_spr90_regnum, sim_ppc_spr91_regnum,
- sim_ppc_spr92_regnum, sim_ppc_spr93_regnum,
- sim_ppc_spr94_regnum, sim_ppc_spr95_regnum,
- sim_ppc_spr96_regnum, sim_ppc_spr97_regnum,
- sim_ppc_spr98_regnum, sim_ppc_spr99_regnum,
- sim_ppc_spr100_regnum, sim_ppc_spr101_regnum,
- sim_ppc_spr102_regnum, sim_ppc_spr103_regnum,
- sim_ppc_spr104_regnum, sim_ppc_spr105_regnum,
- sim_ppc_spr106_regnum, sim_ppc_spr107_regnum,
- sim_ppc_spr108_regnum, sim_ppc_spr109_regnum,
- sim_ppc_spr110_regnum, sim_ppc_spr111_regnum,
- sim_ppc_spr112_regnum, sim_ppc_spr113_regnum,
- sim_ppc_spr114_regnum, sim_ppc_spr115_regnum,
- sim_ppc_spr116_regnum, sim_ppc_spr117_regnum,
- sim_ppc_spr118_regnum, sim_ppc_spr119_regnum,
- sim_ppc_spr120_regnum, sim_ppc_spr121_regnum,
- sim_ppc_spr122_regnum, sim_ppc_spr123_regnum,
- sim_ppc_spr124_regnum, sim_ppc_spr125_regnum,
- sim_ppc_spr126_regnum, sim_ppc_spr127_regnum,
- sim_ppc_spr128_regnum, sim_ppc_spr129_regnum,
- sim_ppc_spr130_regnum, sim_ppc_spr131_regnum,
- sim_ppc_spr132_regnum, sim_ppc_spr133_regnum,
- sim_ppc_spr134_regnum, sim_ppc_spr135_regnum,
- sim_ppc_spr136_regnum, sim_ppc_spr137_regnum,
- sim_ppc_spr138_regnum, sim_ppc_spr139_regnum,
- sim_ppc_spr140_regnum, sim_ppc_spr141_regnum,
- sim_ppc_spr142_regnum, sim_ppc_spr143_regnum,
- sim_ppc_spr144_regnum, sim_ppc_spr145_regnum,
- sim_ppc_spr146_regnum, sim_ppc_spr147_regnum,
- sim_ppc_spr148_regnum, sim_ppc_spr149_regnum,
- sim_ppc_spr150_regnum, sim_ppc_spr151_regnum,
- sim_ppc_spr152_regnum, sim_ppc_spr153_regnum,
- sim_ppc_spr154_regnum, sim_ppc_spr155_regnum,
- sim_ppc_spr156_regnum, sim_ppc_spr157_regnum,
- sim_ppc_spr158_regnum, sim_ppc_spr159_regnum,
- sim_ppc_spr160_regnum, sim_ppc_spr161_regnum,
- sim_ppc_spr162_regnum, sim_ppc_spr163_regnum,
- sim_ppc_spr164_regnum, sim_ppc_spr165_regnum,
- sim_ppc_spr166_regnum, sim_ppc_spr167_regnum,
- sim_ppc_spr168_regnum, sim_ppc_spr169_regnum,
- sim_ppc_spr170_regnum, sim_ppc_spr171_regnum,
- sim_ppc_spr172_regnum, sim_ppc_spr173_regnum,
- sim_ppc_spr174_regnum, sim_ppc_spr175_regnum,
- sim_ppc_spr176_regnum, sim_ppc_spr177_regnum,
- sim_ppc_spr178_regnum, sim_ppc_spr179_regnum,
- sim_ppc_spr180_regnum, sim_ppc_spr181_regnum,
- sim_ppc_spr182_regnum, sim_ppc_spr183_regnum,
- sim_ppc_spr184_regnum, sim_ppc_spr185_regnum,
- sim_ppc_spr186_regnum, sim_ppc_spr187_regnum,
- sim_ppc_spr188_regnum, sim_ppc_spr189_regnum,
- sim_ppc_spr190_regnum, sim_ppc_spr191_regnum,
- sim_ppc_spr192_regnum, sim_ppc_spr193_regnum,
- sim_ppc_spr194_regnum, sim_ppc_spr195_regnum,
- sim_ppc_spr196_regnum, sim_ppc_spr197_regnum,
- sim_ppc_spr198_regnum, sim_ppc_spr199_regnum,
- sim_ppc_spr200_regnum, sim_ppc_spr201_regnum,
- sim_ppc_spr202_regnum, sim_ppc_spr203_regnum,
- sim_ppc_spr204_regnum, sim_ppc_spr205_regnum,
- sim_ppc_spr206_regnum, sim_ppc_spr207_regnum,
- sim_ppc_spr208_regnum, sim_ppc_spr209_regnum,
- sim_ppc_spr210_regnum, sim_ppc_spr211_regnum,
- sim_ppc_spr212_regnum, sim_ppc_spr213_regnum,
- sim_ppc_spr214_regnum, sim_ppc_spr215_regnum,
- sim_ppc_spr216_regnum, sim_ppc_spr217_regnum,
- sim_ppc_spr218_regnum, sim_ppc_spr219_regnum,
- sim_ppc_spr220_regnum, sim_ppc_spr221_regnum,
- sim_ppc_spr222_regnum, sim_ppc_spr223_regnum,
- sim_ppc_spr224_regnum, sim_ppc_spr225_regnum,
- sim_ppc_spr226_regnum, sim_ppc_spr227_regnum,
- sim_ppc_spr228_regnum, sim_ppc_spr229_regnum,
- sim_ppc_spr230_regnum, sim_ppc_spr231_regnum,
- sim_ppc_spr232_regnum, sim_ppc_spr233_regnum,
- sim_ppc_spr234_regnum, sim_ppc_spr235_regnum,
- sim_ppc_spr236_regnum, sim_ppc_spr237_regnum,
- sim_ppc_spr238_regnum, sim_ppc_spr239_regnum,
- sim_ppc_spr240_regnum, sim_ppc_spr241_regnum,
- sim_ppc_spr242_regnum, sim_ppc_spr243_regnum,
- sim_ppc_spr244_regnum, sim_ppc_spr245_regnum,
- sim_ppc_spr246_regnum, sim_ppc_spr247_regnum,
- sim_ppc_spr248_regnum, sim_ppc_spr249_regnum,
- sim_ppc_spr250_regnum, sim_ppc_spr251_regnum,
- sim_ppc_spr252_regnum, sim_ppc_spr253_regnum,
- sim_ppc_spr254_regnum, sim_ppc_spr255_regnum,
- sim_ppc_spr256_regnum, sim_ppc_spr257_regnum,
- sim_ppc_spr258_regnum, sim_ppc_spr259_regnum,
- sim_ppc_spr260_regnum, sim_ppc_spr261_regnum,
- sim_ppc_spr262_regnum, sim_ppc_spr263_regnum,
- sim_ppc_spr264_regnum, sim_ppc_spr265_regnum,
- sim_ppc_spr266_regnum, sim_ppc_spr267_regnum,
- sim_ppc_spr268_regnum, sim_ppc_spr269_regnum,
- sim_ppc_spr270_regnum, sim_ppc_spr271_regnum,
- sim_ppc_spr272_regnum, sim_ppc_spr273_regnum,
- sim_ppc_spr274_regnum, sim_ppc_spr275_regnum,
- sim_ppc_spr276_regnum, sim_ppc_spr277_regnum,
- sim_ppc_spr278_regnum, sim_ppc_spr279_regnum,
- sim_ppc_spr280_regnum, sim_ppc_spr281_regnum,
- sim_ppc_spr282_regnum, sim_ppc_spr283_regnum,
- sim_ppc_spr284_regnum, sim_ppc_spr285_regnum,
- sim_ppc_spr286_regnum, sim_ppc_spr287_regnum,
- sim_ppc_spr288_regnum, sim_ppc_spr289_regnum,
- sim_ppc_spr290_regnum, sim_ppc_spr291_regnum,
- sim_ppc_spr292_regnum, sim_ppc_spr293_regnum,
- sim_ppc_spr294_regnum, sim_ppc_spr295_regnum,
- sim_ppc_spr296_regnum, sim_ppc_spr297_regnum,
- sim_ppc_spr298_regnum, sim_ppc_spr299_regnum,
- sim_ppc_spr300_regnum, sim_ppc_spr301_regnum,
- sim_ppc_spr302_regnum, sim_ppc_spr303_regnum,
- sim_ppc_spr304_regnum, sim_ppc_spr305_regnum,
- sim_ppc_spr306_regnum, sim_ppc_spr307_regnum,
- sim_ppc_spr308_regnum, sim_ppc_spr309_regnum,
- sim_ppc_spr310_regnum, sim_ppc_spr311_regnum,
- sim_ppc_spr312_regnum, sim_ppc_spr313_regnum,
- sim_ppc_spr314_regnum, sim_ppc_spr315_regnum,
- sim_ppc_spr316_regnum, sim_ppc_spr317_regnum,
- sim_ppc_spr318_regnum, sim_ppc_spr319_regnum,
- sim_ppc_spr320_regnum, sim_ppc_spr321_regnum,
- sim_ppc_spr322_regnum, sim_ppc_spr323_regnum,
- sim_ppc_spr324_regnum, sim_ppc_spr325_regnum,
- sim_ppc_spr326_regnum, sim_ppc_spr327_regnum,
- sim_ppc_spr328_regnum, sim_ppc_spr329_regnum,
- sim_ppc_spr330_regnum, sim_ppc_spr331_regnum,
- sim_ppc_spr332_regnum, sim_ppc_spr333_regnum,
- sim_ppc_spr334_regnum, sim_ppc_spr335_regnum,
- sim_ppc_spr336_regnum, sim_ppc_spr337_regnum,
- sim_ppc_spr338_regnum, sim_ppc_spr339_regnum,
- sim_ppc_spr340_regnum, sim_ppc_spr341_regnum,
- sim_ppc_spr342_regnum, sim_ppc_spr343_regnum,
- sim_ppc_spr344_regnum, sim_ppc_spr345_regnum,
- sim_ppc_spr346_regnum, sim_ppc_spr347_regnum,
- sim_ppc_spr348_regnum, sim_ppc_spr349_regnum,
- sim_ppc_spr350_regnum, sim_ppc_spr351_regnum,
- sim_ppc_spr352_regnum, sim_ppc_spr353_regnum,
- sim_ppc_spr354_regnum, sim_ppc_spr355_regnum,
- sim_ppc_spr356_regnum, sim_ppc_spr357_regnum,
- sim_ppc_spr358_regnum, sim_ppc_spr359_regnum,
- sim_ppc_spr360_regnum, sim_ppc_spr361_regnum,
- sim_ppc_spr362_regnum, sim_ppc_spr363_regnum,
- sim_ppc_spr364_regnum, sim_ppc_spr365_regnum,
- sim_ppc_spr366_regnum, sim_ppc_spr367_regnum,
- sim_ppc_spr368_regnum, sim_ppc_spr369_regnum,
- sim_ppc_spr370_regnum, sim_ppc_spr371_regnum,
- sim_ppc_spr372_regnum, sim_ppc_spr373_regnum,
- sim_ppc_spr374_regnum, sim_ppc_spr375_regnum,
- sim_ppc_spr376_regnum, sim_ppc_spr377_regnum,
- sim_ppc_spr378_regnum, sim_ppc_spr379_regnum,
- sim_ppc_spr380_regnum, sim_ppc_spr381_regnum,
- sim_ppc_spr382_regnum, sim_ppc_spr383_regnum,
- sim_ppc_spr384_regnum, sim_ppc_spr385_regnum,
- sim_ppc_spr386_regnum, sim_ppc_spr387_regnum,
- sim_ppc_spr388_regnum, sim_ppc_spr389_regnum,
- sim_ppc_spr390_regnum, sim_ppc_spr391_regnum,
- sim_ppc_spr392_regnum, sim_ppc_spr393_regnum,
- sim_ppc_spr394_regnum, sim_ppc_spr395_regnum,
- sim_ppc_spr396_regnum, sim_ppc_spr397_regnum,
- sim_ppc_spr398_regnum, sim_ppc_spr399_regnum,
- sim_ppc_spr400_regnum, sim_ppc_spr401_regnum,
- sim_ppc_spr402_regnum, sim_ppc_spr403_regnum,
- sim_ppc_spr404_regnum, sim_ppc_spr405_regnum,
- sim_ppc_spr406_regnum, sim_ppc_spr407_regnum,
- sim_ppc_spr408_regnum, sim_ppc_spr409_regnum,
- sim_ppc_spr410_regnum, sim_ppc_spr411_regnum,
- sim_ppc_spr412_regnum, sim_ppc_spr413_regnum,
- sim_ppc_spr414_regnum, sim_ppc_spr415_regnum,
- sim_ppc_spr416_regnum, sim_ppc_spr417_regnum,
- sim_ppc_spr418_regnum, sim_ppc_spr419_regnum,
- sim_ppc_spr420_regnum, sim_ppc_spr421_regnum,
- sim_ppc_spr422_regnum, sim_ppc_spr423_regnum,
- sim_ppc_spr424_regnum, sim_ppc_spr425_regnum,
- sim_ppc_spr426_regnum, sim_ppc_spr427_regnum,
- sim_ppc_spr428_regnum, sim_ppc_spr429_regnum,
- sim_ppc_spr430_regnum, sim_ppc_spr431_regnum,
- sim_ppc_spr432_regnum, sim_ppc_spr433_regnum,
- sim_ppc_spr434_regnum, sim_ppc_spr435_regnum,
- sim_ppc_spr436_regnum, sim_ppc_spr437_regnum,
- sim_ppc_spr438_regnum, sim_ppc_spr439_regnum,
- sim_ppc_spr440_regnum, sim_ppc_spr441_regnum,
- sim_ppc_spr442_regnum, sim_ppc_spr443_regnum,
- sim_ppc_spr444_regnum, sim_ppc_spr445_regnum,
- sim_ppc_spr446_regnum, sim_ppc_spr447_regnum,
- sim_ppc_spr448_regnum, sim_ppc_spr449_regnum,
- sim_ppc_spr450_regnum, sim_ppc_spr451_regnum,
- sim_ppc_spr452_regnum, sim_ppc_spr453_regnum,
- sim_ppc_spr454_regnum, sim_ppc_spr455_regnum,
- sim_ppc_spr456_regnum, sim_ppc_spr457_regnum,
- sim_ppc_spr458_regnum, sim_ppc_spr459_regnum,
- sim_ppc_spr460_regnum, sim_ppc_spr461_regnum,
- sim_ppc_spr462_regnum, sim_ppc_spr463_regnum,
- sim_ppc_spr464_regnum, sim_ppc_spr465_regnum,
- sim_ppc_spr466_regnum, sim_ppc_spr467_regnum,
- sim_ppc_spr468_regnum, sim_ppc_spr469_regnum,
- sim_ppc_spr470_regnum, sim_ppc_spr471_regnum,
- sim_ppc_spr472_regnum, sim_ppc_spr473_regnum,
- sim_ppc_spr474_regnum, sim_ppc_spr475_regnum,
- sim_ppc_spr476_regnum, sim_ppc_spr477_regnum,
- sim_ppc_spr478_regnum, sim_ppc_spr479_regnum,
- sim_ppc_spr480_regnum, sim_ppc_spr481_regnum,
- sim_ppc_spr482_regnum, sim_ppc_spr483_regnum,
- sim_ppc_spr484_regnum, sim_ppc_spr485_regnum,
- sim_ppc_spr486_regnum, sim_ppc_spr487_regnum,
- sim_ppc_spr488_regnum, sim_ppc_spr489_regnum,
- sim_ppc_spr490_regnum, sim_ppc_spr491_regnum,
- sim_ppc_spr492_regnum, sim_ppc_spr493_regnum,
- sim_ppc_spr494_regnum, sim_ppc_spr495_regnum,
- sim_ppc_spr496_regnum, sim_ppc_spr497_regnum,
- sim_ppc_spr498_regnum, sim_ppc_spr499_regnum,
- sim_ppc_spr500_regnum, sim_ppc_spr501_regnum,
- sim_ppc_spr502_regnum, sim_ppc_spr503_regnum,
- sim_ppc_spr504_regnum, sim_ppc_spr505_regnum,
- sim_ppc_spr506_regnum, sim_ppc_spr507_regnum,
- sim_ppc_spr508_regnum, sim_ppc_spr509_regnum,
- sim_ppc_spr510_regnum, sim_ppc_spr511_regnum,
- sim_ppc_spr512_regnum, sim_ppc_spr513_regnum,
- sim_ppc_spr514_regnum, sim_ppc_spr515_regnum,
- sim_ppc_spr516_regnum, sim_ppc_spr517_regnum,
- sim_ppc_spr518_regnum, sim_ppc_spr519_regnum,
- sim_ppc_spr520_regnum, sim_ppc_spr521_regnum,
- sim_ppc_spr522_regnum, sim_ppc_spr523_regnum,
- sim_ppc_spr524_regnum, sim_ppc_spr525_regnum,
- sim_ppc_spr526_regnum, sim_ppc_spr527_regnum,
- sim_ppc_spr528_regnum, sim_ppc_spr529_regnum,
- sim_ppc_spr530_regnum, sim_ppc_spr531_regnum,
- sim_ppc_spr532_regnum, sim_ppc_spr533_regnum,
- sim_ppc_spr534_regnum, sim_ppc_spr535_regnum,
- sim_ppc_spr536_regnum, sim_ppc_spr537_regnum,
- sim_ppc_spr538_regnum, sim_ppc_spr539_regnum,
- sim_ppc_spr540_regnum, sim_ppc_spr541_regnum,
- sim_ppc_spr542_regnum, sim_ppc_spr543_regnum,
- sim_ppc_spr544_regnum, sim_ppc_spr545_regnum,
- sim_ppc_spr546_regnum, sim_ppc_spr547_regnum,
- sim_ppc_spr548_regnum, sim_ppc_spr549_regnum,
- sim_ppc_spr550_regnum, sim_ppc_spr551_regnum,
- sim_ppc_spr552_regnum, sim_ppc_spr553_regnum,
- sim_ppc_spr554_regnum, sim_ppc_spr555_regnum,
- sim_ppc_spr556_regnum, sim_ppc_spr557_regnum,
- sim_ppc_spr558_regnum, sim_ppc_spr559_regnum,
- sim_ppc_spr560_regnum, sim_ppc_spr561_regnum,
- sim_ppc_spr562_regnum, sim_ppc_spr563_regnum,
- sim_ppc_spr564_regnum, sim_ppc_spr565_regnum,
- sim_ppc_spr566_regnum, sim_ppc_spr567_regnum,
- sim_ppc_spr568_regnum, sim_ppc_spr569_regnum,
- sim_ppc_spr570_regnum, sim_ppc_spr571_regnum,
- sim_ppc_spr572_regnum, sim_ppc_spr573_regnum,
- sim_ppc_spr574_regnum, sim_ppc_spr575_regnum,
- sim_ppc_spr576_regnum, sim_ppc_spr577_regnum,
- sim_ppc_spr578_regnum, sim_ppc_spr579_regnum,
- sim_ppc_spr580_regnum, sim_ppc_spr581_regnum,
- sim_ppc_spr582_regnum, sim_ppc_spr583_regnum,
- sim_ppc_spr584_regnum, sim_ppc_spr585_regnum,
- sim_ppc_spr586_regnum, sim_ppc_spr587_regnum,
- sim_ppc_spr588_regnum, sim_ppc_spr589_regnum,
- sim_ppc_spr590_regnum, sim_ppc_spr591_regnum,
- sim_ppc_spr592_regnum, sim_ppc_spr593_regnum,
- sim_ppc_spr594_regnum, sim_ppc_spr595_regnum,
- sim_ppc_spr596_regnum, sim_ppc_spr597_regnum,
- sim_ppc_spr598_regnum, sim_ppc_spr599_regnum,
- sim_ppc_spr600_regnum, sim_ppc_spr601_regnum,
- sim_ppc_spr602_regnum, sim_ppc_spr603_regnum,
- sim_ppc_spr604_regnum, sim_ppc_spr605_regnum,
- sim_ppc_spr606_regnum, sim_ppc_spr607_regnum,
- sim_ppc_spr608_regnum, sim_ppc_spr609_regnum,
- sim_ppc_spr610_regnum, sim_ppc_spr611_regnum,
- sim_ppc_spr612_regnum, sim_ppc_spr613_regnum,
- sim_ppc_spr614_regnum, sim_ppc_spr615_regnum,
- sim_ppc_spr616_regnum, sim_ppc_spr617_regnum,
- sim_ppc_spr618_regnum, sim_ppc_spr619_regnum,
- sim_ppc_spr620_regnum, sim_ppc_spr621_regnum,
- sim_ppc_spr622_regnum, sim_ppc_spr623_regnum,
- sim_ppc_spr624_regnum, sim_ppc_spr625_regnum,
- sim_ppc_spr626_regnum, sim_ppc_spr627_regnum,
- sim_ppc_spr628_regnum, sim_ppc_spr629_regnum,
- sim_ppc_spr630_regnum, sim_ppc_spr631_regnum,
- sim_ppc_spr632_regnum, sim_ppc_spr633_regnum,
- sim_ppc_spr634_regnum, sim_ppc_spr635_regnum,
- sim_ppc_spr636_regnum, sim_ppc_spr637_regnum,
- sim_ppc_spr638_regnum, sim_ppc_spr639_regnum,
- sim_ppc_spr640_regnum, sim_ppc_spr641_regnum,
- sim_ppc_spr642_regnum, sim_ppc_spr643_regnum,
- sim_ppc_spr644_regnum, sim_ppc_spr645_regnum,
- sim_ppc_spr646_regnum, sim_ppc_spr647_regnum,
- sim_ppc_spr648_regnum, sim_ppc_spr649_regnum,
- sim_ppc_spr650_regnum, sim_ppc_spr651_regnum,
- sim_ppc_spr652_regnum, sim_ppc_spr653_regnum,
- sim_ppc_spr654_regnum, sim_ppc_spr655_regnum,
- sim_ppc_spr656_regnum, sim_ppc_spr657_regnum,
- sim_ppc_spr658_regnum, sim_ppc_spr659_regnum,
- sim_ppc_spr660_regnum, sim_ppc_spr661_regnum,
- sim_ppc_spr662_regnum, sim_ppc_spr663_regnum,
- sim_ppc_spr664_regnum, sim_ppc_spr665_regnum,
- sim_ppc_spr666_regnum, sim_ppc_spr667_regnum,
- sim_ppc_spr668_regnum, sim_ppc_spr669_regnum,
- sim_ppc_spr670_regnum, sim_ppc_spr671_regnum,
- sim_ppc_spr672_regnum, sim_ppc_spr673_regnum,
- sim_ppc_spr674_regnum, sim_ppc_spr675_regnum,
- sim_ppc_spr676_regnum, sim_ppc_spr677_regnum,
- sim_ppc_spr678_regnum, sim_ppc_spr679_regnum,
- sim_ppc_spr680_regnum, sim_ppc_spr681_regnum,
- sim_ppc_spr682_regnum, sim_ppc_spr683_regnum,
- sim_ppc_spr684_regnum, sim_ppc_spr685_regnum,
- sim_ppc_spr686_regnum, sim_ppc_spr687_regnum,
- sim_ppc_spr688_regnum, sim_ppc_spr689_regnum,
- sim_ppc_spr690_regnum, sim_ppc_spr691_regnum,
- sim_ppc_spr692_regnum, sim_ppc_spr693_regnum,
- sim_ppc_spr694_regnum, sim_ppc_spr695_regnum,
- sim_ppc_spr696_regnum, sim_ppc_spr697_regnum,
- sim_ppc_spr698_regnum, sim_ppc_spr699_regnum,
- sim_ppc_spr700_regnum, sim_ppc_spr701_regnum,
- sim_ppc_spr702_regnum, sim_ppc_spr703_regnum,
- sim_ppc_spr704_regnum, sim_ppc_spr705_regnum,
- sim_ppc_spr706_regnum, sim_ppc_spr707_regnum,
- sim_ppc_spr708_regnum, sim_ppc_spr709_regnum,
- sim_ppc_spr710_regnum, sim_ppc_spr711_regnum,
- sim_ppc_spr712_regnum, sim_ppc_spr713_regnum,
- sim_ppc_spr714_regnum, sim_ppc_spr715_regnum,
- sim_ppc_spr716_regnum, sim_ppc_spr717_regnum,
- sim_ppc_spr718_regnum, sim_ppc_spr719_regnum,
- sim_ppc_spr720_regnum, sim_ppc_spr721_regnum,
- sim_ppc_spr722_regnum, sim_ppc_spr723_regnum,
- sim_ppc_spr724_regnum, sim_ppc_spr725_regnum,
- sim_ppc_spr726_regnum, sim_ppc_spr727_regnum,
- sim_ppc_spr728_regnum, sim_ppc_spr729_regnum,
- sim_ppc_spr730_regnum, sim_ppc_spr731_regnum,
- sim_ppc_spr732_regnum, sim_ppc_spr733_regnum,
- sim_ppc_spr734_regnum, sim_ppc_spr735_regnum,
- sim_ppc_spr736_regnum, sim_ppc_spr737_regnum,
- sim_ppc_spr738_regnum, sim_ppc_spr739_regnum,
- sim_ppc_spr740_regnum, sim_ppc_spr741_regnum,
- sim_ppc_spr742_regnum, sim_ppc_spr743_regnum,
- sim_ppc_spr744_regnum, sim_ppc_spr745_regnum,
- sim_ppc_spr746_regnum, sim_ppc_spr747_regnum,
- sim_ppc_spr748_regnum, sim_ppc_spr749_regnum,
- sim_ppc_spr750_regnum, sim_ppc_spr751_regnum,
- sim_ppc_spr752_regnum, sim_ppc_spr753_regnum,
- sim_ppc_spr754_regnum, sim_ppc_spr755_regnum,
- sim_ppc_spr756_regnum, sim_ppc_spr757_regnum,
- sim_ppc_spr758_regnum, sim_ppc_spr759_regnum,
- sim_ppc_spr760_regnum, sim_ppc_spr761_regnum,
- sim_ppc_spr762_regnum, sim_ppc_spr763_regnum,
- sim_ppc_spr764_regnum, sim_ppc_spr765_regnum,
- sim_ppc_spr766_regnum, sim_ppc_spr767_regnum,
- sim_ppc_spr768_regnum, sim_ppc_spr769_regnum,
- sim_ppc_spr770_regnum, sim_ppc_spr771_regnum,
- sim_ppc_spr772_regnum, sim_ppc_spr773_regnum,
- sim_ppc_spr774_regnum, sim_ppc_spr775_regnum,
- sim_ppc_spr776_regnum, sim_ppc_spr777_regnum,
- sim_ppc_spr778_regnum, sim_ppc_spr779_regnum,
- sim_ppc_spr780_regnum, sim_ppc_spr781_regnum,
- sim_ppc_spr782_regnum, sim_ppc_spr783_regnum,
- sim_ppc_spr784_regnum, sim_ppc_spr785_regnum,
- sim_ppc_spr786_regnum, sim_ppc_spr787_regnum,
- sim_ppc_spr788_regnum, sim_ppc_spr789_regnum,
- sim_ppc_spr790_regnum, sim_ppc_spr791_regnum,
- sim_ppc_spr792_regnum, sim_ppc_spr793_regnum,
- sim_ppc_spr794_regnum, sim_ppc_spr795_regnum,
- sim_ppc_spr796_regnum, sim_ppc_spr797_regnum,
- sim_ppc_spr798_regnum, sim_ppc_spr799_regnum,
- sim_ppc_spr800_regnum, sim_ppc_spr801_regnum,
- sim_ppc_spr802_regnum, sim_ppc_spr803_regnum,
- sim_ppc_spr804_regnum, sim_ppc_spr805_regnum,
- sim_ppc_spr806_regnum, sim_ppc_spr807_regnum,
- sim_ppc_spr808_regnum, sim_ppc_spr809_regnum,
- sim_ppc_spr810_regnum, sim_ppc_spr811_regnum,
- sim_ppc_spr812_regnum, sim_ppc_spr813_regnum,
- sim_ppc_spr814_regnum, sim_ppc_spr815_regnum,
- sim_ppc_spr816_regnum, sim_ppc_spr817_regnum,
- sim_ppc_spr818_regnum, sim_ppc_spr819_regnum,
- sim_ppc_spr820_regnum, sim_ppc_spr821_regnum,
- sim_ppc_spr822_regnum, sim_ppc_spr823_regnum,
- sim_ppc_spr824_regnum, sim_ppc_spr825_regnum,
- sim_ppc_spr826_regnum, sim_ppc_spr827_regnum,
- sim_ppc_spr828_regnum, sim_ppc_spr829_regnum,
- sim_ppc_spr830_regnum, sim_ppc_spr831_regnum,
- sim_ppc_spr832_regnum, sim_ppc_spr833_regnum,
- sim_ppc_spr834_regnum, sim_ppc_spr835_regnum,
- sim_ppc_spr836_regnum, sim_ppc_spr837_regnum,
- sim_ppc_spr838_regnum, sim_ppc_spr839_regnum,
- sim_ppc_spr840_regnum, sim_ppc_spr841_regnum,
- sim_ppc_spr842_regnum, sim_ppc_spr843_regnum,
- sim_ppc_spr844_regnum, sim_ppc_spr845_regnum,
- sim_ppc_spr846_regnum, sim_ppc_spr847_regnum,
- sim_ppc_spr848_regnum, sim_ppc_spr849_regnum,
- sim_ppc_spr850_regnum, sim_ppc_spr851_regnum,
- sim_ppc_spr852_regnum, sim_ppc_spr853_regnum,
- sim_ppc_spr854_regnum, sim_ppc_spr855_regnum,
- sim_ppc_spr856_regnum, sim_ppc_spr857_regnum,
- sim_ppc_spr858_regnum, sim_ppc_spr859_regnum,
- sim_ppc_spr860_regnum, sim_ppc_spr861_regnum,
- sim_ppc_spr862_regnum, sim_ppc_spr863_regnum,
- sim_ppc_spr864_regnum, sim_ppc_spr865_regnum,
- sim_ppc_spr866_regnum, sim_ppc_spr867_regnum,
- sim_ppc_spr868_regnum, sim_ppc_spr869_regnum,
- sim_ppc_spr870_regnum, sim_ppc_spr871_regnum,
- sim_ppc_spr872_regnum, sim_ppc_spr873_regnum,
- sim_ppc_spr874_regnum, sim_ppc_spr875_regnum,
- sim_ppc_spr876_regnum, sim_ppc_spr877_regnum,
- sim_ppc_spr878_regnum, sim_ppc_spr879_regnum,
- sim_ppc_spr880_regnum, sim_ppc_spr881_regnum,
- sim_ppc_spr882_regnum, sim_ppc_spr883_regnum,
- sim_ppc_spr884_regnum, sim_ppc_spr885_regnum,
- sim_ppc_spr886_regnum, sim_ppc_spr887_regnum,
- sim_ppc_spr888_regnum, sim_ppc_spr889_regnum,
- sim_ppc_spr890_regnum, sim_ppc_spr891_regnum,
- sim_ppc_spr892_regnum, sim_ppc_spr893_regnum,
- sim_ppc_spr894_regnum, sim_ppc_spr895_regnum,
- sim_ppc_spr896_regnum, sim_ppc_spr897_regnum,
- sim_ppc_spr898_regnum, sim_ppc_spr899_regnum,
- sim_ppc_spr900_regnum, sim_ppc_spr901_regnum,
- sim_ppc_spr902_regnum, sim_ppc_spr903_regnum,
- sim_ppc_spr904_regnum, sim_ppc_spr905_regnum,
- sim_ppc_spr906_regnum, sim_ppc_spr907_regnum,
- sim_ppc_spr908_regnum, sim_ppc_spr909_regnum,
- sim_ppc_spr910_regnum, sim_ppc_spr911_regnum,
- sim_ppc_spr912_regnum, sim_ppc_spr913_regnum,
- sim_ppc_spr914_regnum, sim_ppc_spr915_regnum,
- sim_ppc_spr916_regnum, sim_ppc_spr917_regnum,
- sim_ppc_spr918_regnum, sim_ppc_spr919_regnum,
- sim_ppc_spr920_regnum, sim_ppc_spr921_regnum,
- sim_ppc_spr922_regnum, sim_ppc_spr923_regnum,
- sim_ppc_spr924_regnum, sim_ppc_spr925_regnum,
- sim_ppc_spr926_regnum, sim_ppc_spr927_regnum,
- sim_ppc_spr928_regnum, sim_ppc_spr929_regnum,
- sim_ppc_spr930_regnum, sim_ppc_spr931_regnum,
- sim_ppc_spr932_regnum, sim_ppc_spr933_regnum,
- sim_ppc_spr934_regnum, sim_ppc_spr935_regnum,
- sim_ppc_spr936_regnum, sim_ppc_spr937_regnum,
- sim_ppc_spr938_regnum, sim_ppc_spr939_regnum,
- sim_ppc_spr940_regnum, sim_ppc_spr941_regnum,
- sim_ppc_spr942_regnum, sim_ppc_spr943_regnum,
- sim_ppc_spr944_regnum, sim_ppc_spr945_regnum,
- sim_ppc_spr946_regnum, sim_ppc_spr947_regnum,
- sim_ppc_spr948_regnum, sim_ppc_spr949_regnum,
- sim_ppc_spr950_regnum, sim_ppc_spr951_regnum,
- sim_ppc_spr952_regnum, sim_ppc_spr953_regnum,
- sim_ppc_spr954_regnum, sim_ppc_spr955_regnum,
- sim_ppc_spr956_regnum, sim_ppc_spr957_regnum,
- sim_ppc_spr958_regnum, sim_ppc_spr959_regnum,
- sim_ppc_spr960_regnum, sim_ppc_spr961_regnum,
- sim_ppc_spr962_regnum, sim_ppc_spr963_regnum,
- sim_ppc_spr964_regnum, sim_ppc_spr965_regnum,
- sim_ppc_spr966_regnum, sim_ppc_spr967_regnum,
- sim_ppc_spr968_regnum, sim_ppc_spr969_regnum,
- sim_ppc_spr970_regnum, sim_ppc_spr971_regnum,
- sim_ppc_spr972_regnum, sim_ppc_spr973_regnum,
- sim_ppc_spr974_regnum, sim_ppc_spr975_regnum,
- sim_ppc_spr976_regnum, sim_ppc_spr977_regnum,
- sim_ppc_spr978_regnum, sim_ppc_spr979_regnum,
- sim_ppc_spr980_regnum, sim_ppc_spr981_regnum,
- sim_ppc_spr982_regnum, sim_ppc_spr983_regnum,
- sim_ppc_spr984_regnum, sim_ppc_spr985_regnum,
- sim_ppc_spr986_regnum, sim_ppc_spr987_regnum,
- sim_ppc_spr988_regnum, sim_ppc_spr989_regnum,
- sim_ppc_spr990_regnum, sim_ppc_spr991_regnum,
- sim_ppc_spr992_regnum, sim_ppc_spr993_regnum,
- sim_ppc_spr994_regnum, sim_ppc_spr995_regnum,
- sim_ppc_spr996_regnum, sim_ppc_spr997_regnum,
- sim_ppc_spr998_regnum, sim_ppc_spr999_regnum,
- sim_ppc_spr1000_regnum, sim_ppc_spr1001_regnum,
- sim_ppc_spr1002_regnum, sim_ppc_spr1003_regnum,
- sim_ppc_spr1004_regnum, sim_ppc_spr1005_regnum,
- sim_ppc_spr1006_regnum, sim_ppc_spr1007_regnum,
- sim_ppc_spr1008_regnum, sim_ppc_spr1009_regnum,
- sim_ppc_spr1010_regnum, sim_ppc_spr1011_regnum,
- sim_ppc_spr1012_regnum, sim_ppc_spr1013_regnum,
- sim_ppc_spr1014_regnum, sim_ppc_spr1015_regnum,
- sim_ppc_spr1016_regnum, sim_ppc_spr1017_regnum,
- sim_ppc_spr1018_regnum, sim_ppc_spr1019_regnum,
- sim_ppc_spr1020_regnum, sim_ppc_spr1021_regnum,
- sim_ppc_spr1022_regnum, sim_ppc_spr1023_regnum
- };
-
-
-/* Sizes of various register sets. */
-enum
- {
- sim_ppc_num_gprs = 32,
- sim_ppc_num_fprs = 32,
- sim_ppc_num_vrs = 32,
- sim_ppc_num_srs = 16,
- sim_ppc_num_sprs = 1024,
- };
-
-
-/* Return the register name for the supplied SPR number if any, or
- NULL if none. */
-extern const char *sim_spr_register_name (int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SIM_PPC_H */
diff --git a/include/gdb/sim-rx.h b/include/gdb/sim-rx.h
deleted file mode 100644
index ac3ffe96d..000000000
--- a/include/gdb/sim-rx.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* sim-rx.h --- interface between RX simulator and GDB.
-
- Copyright 2008, 2009, 2010, 2011 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_RX_H)
-#define SIM_RX_H
-
-enum sim_rx_regnum
- {
- sim_rx_r0_regnum,
- sim_rx_r1_regnum,
- sim_rx_r2_regnum,
- sim_rx_r3_regnum,
- sim_rx_r4_regnum,
- sim_rx_r5_regnum,
- sim_rx_r6_regnum,
- sim_rx_r7_regnum,
- sim_rx_r8_regnum,
- sim_rx_r9_regnum,
- sim_rx_r10_regnum,
- sim_rx_r11_regnum,
- sim_rx_r12_regnum,
- sim_rx_r13_regnum,
- sim_rx_r14_regnum,
- sim_rx_r15_regnum,
- sim_rx_usp_regnum,
- sim_rx_isp_regnum,
- sim_rx_ps_regnum,
- sim_rx_pc_regnum,
- sim_rx_intb_regnum,
- sim_rx_bpsw_regnum,
- sim_rx_bpc_regnum,
- sim_rx_fintv_regnum,
- sim_rx_fpsw_regnum,
- sim_rx_acc_regnum,
- sim_rx_num_regs
- };
-
-#endif /* SIM_RX_H */
diff --git a/include/gdb/sim-sh.h b/include/gdb/sim-sh.h
deleted file mode 100644
index 6c08d2d23..000000000
--- a/include/gdb/sim-sh.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* This file defines the interface between the sh simulator and gdb.
- Copyright (C) 2000, 2002, 2004, 2007, 2008, 2009, 2010, 2011
- 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 3 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, see <http://www.gnu.org/licenses/>. */
-
-#if !defined (SIM_SH_H)
-#define SIM_SH_H
-
-#ifdef __cplusplus
-extern "C" { // }
-#endif
-
-/* The simulator makes use of the following register information. */
-
-enum
-{
- SIM_SH_R0_REGNUM = 0,
- SIM_SH_R1_REGNUM,
- SIM_SH_R2_REGNUM,
- SIM_SH_R3_REGNUM,
- SIM_SH_R4_REGNUM,
- SIM_SH_R5_REGNUM,
- SIM_SH_R6_REGNUM,
- SIM_SH_R7_REGNUM,
- SIM_SH_R8_REGNUM,
- SIM_SH_R9_REGNUM,
- SIM_SH_R10_REGNUM,
- SIM_SH_R11_REGNUM,
- SIM_SH_R12_REGNUM,
- SIM_SH_R13_REGNUM,
- SIM_SH_R14_REGNUM,
- SIM_SH_R15_REGNUM,
- SIM_SH_PC_REGNUM,
- SIM_SH_PR_REGNUM,
- SIM_SH_GBR_REGNUM,
- SIM_SH_VBR_REGNUM,
- SIM_SH_MACH_REGNUM,
- SIM_SH_MACL_REGNUM,
- SIM_SH_SR_REGNUM,
- SIM_SH_FPUL_REGNUM,
- SIM_SH_FPSCR_REGNUM,
- SIM_SH_FR0_REGNUM, /* FRn registers: sh3e / sh4 */
- SIM_SH_FR1_REGNUM,
- SIM_SH_FR2_REGNUM,
- SIM_SH_FR3_REGNUM,
- SIM_SH_FR4_REGNUM,
- SIM_SH_FR5_REGNUM,
- SIM_SH_FR6_REGNUM,
- SIM_SH_FR7_REGNUM,
- SIM_SH_FR8_REGNUM,
- SIM_SH_FR9_REGNUM,
- SIM_SH_FR10_REGNUM,
- SIM_SH_FR11_REGNUM,
- SIM_SH_FR12_REGNUM,
- SIM_SH_FR13_REGNUM,
- SIM_SH_FR14_REGNUM,
- SIM_SH_FR15_REGNUM,
- SIM_SH_SSR_REGNUM, /* sh3{,e,-dsp}, sh4 */
- SIM_SH_SPC_REGNUM, /* sh3{,e,-dsp}, sh4 */
- SIM_SH_R0_BANK0_REGNUM, /* SIM_SH_Rn_BANKm_REGNUM: sh3[e] / sh4 */
- SIM_SH_R1_BANK0_REGNUM,
- SIM_SH_R2_BANK0_REGNUM,
- SIM_SH_R3_BANK0_REGNUM,
- SIM_SH_R4_BANK0_REGNUM,
- SIM_SH_R5_BANK0_REGNUM,
- SIM_SH_R6_BANK0_REGNUM,
- SIM_SH_R7_BANK0_REGNUM,
- SIM_SH_R0_BANK1_REGNUM,
- SIM_SH_R1_BANK1_REGNUM,
- SIM_SH_R2_BANK1_REGNUM,
- SIM_SH_R3_BANK1_REGNUM,
- SIM_SH_R4_BANK1_REGNUM,
- SIM_SH_R5_BANK1_REGNUM,
- SIM_SH_R6_BANK1_REGNUM,
- SIM_SH_R7_BANK1_REGNUM,
- SIM_SH_XF0_REGNUM,
- SIM_SH_XF1_REGNUM,
- SIM_SH_XF2_REGNUM,
- SIM_SH_XF3_REGNUM,
- SIM_SH_XF4_REGNUM,
- SIM_SH_XF5_REGNUM,
- SIM_SH_XF6_REGNUM,
- SIM_SH_XF7_REGNUM,
- SIM_SH_XF8_REGNUM,
- SIM_SH_XF9_REGNUM,
- SIM_SH_XF10_REGNUM,
- SIM_SH_XF11_REGNUM,
- SIM_SH_XF12_REGNUM,
- SIM_SH_XF13_REGNUM,
- SIM_SH_XF14_REGNUM,
- SIM_SH_XF15_REGNUM,
- SIM_SH_SGR_REGNUM,
- SIM_SH_DBR_REGNUM,
- SIM_SH4_NUM_REGS, /* 77 */
-
- /* sh[3]-dsp */
- SIM_SH_DSR_REGNUM,
- SIM_SH_A0G_REGNUM,
- SIM_SH_A0_REGNUM,
- SIM_SH_A1G_REGNUM,
- SIM_SH_A1_REGNUM,
- SIM_SH_M0_REGNUM,
- SIM_SH_M1_REGNUM,
- SIM_SH_X0_REGNUM,
- SIM_SH_X1_REGNUM,
- SIM_SH_Y0_REGNUM,
- SIM_SH_Y1_REGNUM,
- SIM_SH_MOD_REGNUM,
- SIM_SH_RS_REGNUM,
- SIM_SH_RE_REGNUM,
- SIM_SH_R0_BANK_REGNUM,
- SIM_SH_R1_BANK_REGNUM,
- SIM_SH_R2_BANK_REGNUM,
- SIM_SH_R3_BANK_REGNUM,
- SIM_SH_R4_BANK_REGNUM,
- SIM_SH_R5_BANK_REGNUM,
- SIM_SH_R6_BANK_REGNUM,
- SIM_SH_R7_BANK_REGNUM,
- /* 109..127: room for expansion. */
- SIM_SH_TBR_REGNUM,
- SIM_SH_IBNR_REGNUM,
- SIM_SH_IBCR_REGNUM,
- SIM_SH_BANK_REGNUM,
- SIM_SH_BANK_MACL_REGNUM,
- SIM_SH_BANK_GBR_REGNUM,
- SIM_SH_BANK_PR_REGNUM,
- SIM_SH_BANK_IVN_REGNUM,
- SIM_SH_BANK_MACH_REGNUM
-};
-
-enum
-{
- SIM_SH64_R0_REGNUM = 0,
- SIM_SH64_SP_REGNUM = 15,
- SIM_SH64_PC_REGNUM = 64,
- SIM_SH64_SR_REGNUM = 65,
- SIM_SH64_SSR_REGNUM = 66,
- SIM_SH64_SPC_REGNUM = 67,
- SIM_SH64_TR0_REGNUM = 68,
- SIM_SH64_FPCSR_REGNUM = 76,
- SIM_SH64_FR0_REGNUM = 77
-};
-
-enum
-{
- SIM_SH64_NR_REGS = 141, /* total number of architectural registers */
- SIM_SH64_NR_R_REGS = 64, /* number of general registers */
- SIM_SH64_NR_TR_REGS = 8, /* number of target registers */
- SIM_SH64_NR_FP_REGS = 64 /* number of floating point registers */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/gdbm.h b/include/gdbm.h
deleted file mode 100644
index d2a600639..000000000
--- a/include/gdbm.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* GNU DBM - DataBase Manager include file
- Copyright 1989, 1991 Free Software Foundation, Inc.
- Written by Philip A. Nelson.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* You may contact the author by:
- e-mail: phil@wwu.edu
- us-mail: Philip A. Nelson
- Computer Science Department
- Western Washington University
- Bellingham, WA 98226
- phone: (206) 676-3035
-
-*************************************************************************/
-
-/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
- can create the database. */
-#define GDBM_READER 0
-#define GDBM_WRITER 1
-#define GDBM_WRCREAT 2
-#define GDBM_NEWDB 3
-
-/* Parameters to gdbm_store for simple insertion or replacement. */
-#define GDBM_INSERT 0
-#define GDBM_REPLACE 1
-
-
-/* The data and key structure. This structure is defined for compatibility. */
-typedef struct {
- char *dptr;
- int dsize;
- } datum;
-
-
-/* The file information header. This is good enough for most applications. */
-typedef struct {int dummy[10];} *GDBM_FILE;
-
-
-/* These are the routines! */
-
-extern GDBM_FILE gdbm_open ();
-
-extern void gdbm_close ();
-
-extern datum gdbm_fetch ();
-
-extern int gdbm_store ();
-
-extern int gdbm_delete ();
-
-extern datum gdbm_firstkey ();
-
-extern datum gdbm_nextkey ();
-
-extern int gdbm_reorganize ();
-
-
-/* gdbm sends back the following error codes in the variable gdbm_errno. */
-typedef enum { NO_ERROR,
- MALLOC_ERROR,
- BLOCK_SIZE_ERROR,
- FILE_OPEN_ERROR,
- FILE_WRITE_ERROR,
- FILE_SEEK_ERROR,
- FILE_READ_ERROR,
- BAD_MAGIC_NUMBER,
- EMPTY_DATABASE,
- CANT_BE_READER,
- CANT_BE_WRITER,
- READER_CANT_RECOVER,
- READER_CANT_DELETE,
- READER_CANT_STORE,
- READER_CANT_REORGANIZE,
- UNKNOWN_UPDATE,
- ITEM_NOT_FOUND,
- REORGANIZE_FAILED,
- CANNOT_REPLACE}
- gdbm_error;
diff --git a/include/getopt.h b/include/getopt.h
deleted file mode 100644
index 5421cabed..000000000
--- a/include/getopt.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Declarations for getopt.
- Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000,
- 2002 Free Software Foundation, Inc.
-
- NOTE: The canonical source of this file is maintained with the GNU C Library.
- Bugs can be reported to bug-glibc@gnu.org.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
- USA. */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of `struct option' terminated by an element containing a name which is
- zero.
-
- The field `has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field `flag' is not NULL, it points to a variable that is set
- to the value given in the field `val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an `int' to
- a compiled-in constant, such as set a value from `optarg', set the
- option's `flag' field to zero and its `val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero `flag' field, `getopt'
- returns the contents of the `val' field. */
-
-struct option
-{
-#if defined (__STDC__) && __STDC__
- const char *name;
-#else
- char *name;
-#endif
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'. */
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-#if defined (__STDC__) && __STDC__
-/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is
- undefined, we haven't run the autoconf check so provide the
- declaration without arguments. If it is 0, we checked and failed
- to find the declaration so provide a fully prototyped one. If it
- is 1, we found it so don't provide any declaration at all. */
-#if !HAVE_DECL_GETOPT
-#if defined (__GNU_LIBRARY__) || defined (HAVE_DECL_GETOPT)
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in unistd.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else
-#ifndef __cplusplus
-extern int getopt ();
-#endif /* __cplusplus */
-#endif
-#endif /* !HAVE_DECL_GETOPT */
-
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind);
-
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind,
- int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* getopt.h */
diff --git a/include/hashtab.h b/include/hashtab.h
deleted file mode 100644
index 4bb65d6c7..000000000
--- a/include/hashtab.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* An expandable hash tables datatype.
- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by Vladimir Makarov (vmakarov@cygnus.com).
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* This package implements basic hash table functionality. It is possible
- to search for an entry, create an entry and destroy an entry.
-
- Elements in the table are generic pointers.
-
- The size of the table is not fixed; if the occupancy of the table
- grows too high the hash table will be expanded.
-
- The abstract data implementation is based on generalized Algorithm D
- from Knuth's book "The art of computer programming". Hash table is
- expanded by creation of new hash table and transferring elements from
- the old table to the new table. */
-
-#ifndef __HASHTAB_H__
-#define __HASHTAB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-#ifndef GTY
-#define GTY(X)
-#endif
-
-/* The type for a hash code. */
-typedef unsigned int hashval_t;
-
-/* Callback function pointer types. */
-
-/* Calculate hash of a table entry. */
-typedef hashval_t (*htab_hash) (const void *);
-
-/* Compare a table entry with a possible entry. The entry already in
- the table always comes first, so the second element can be of a
- different type (but in this case htab_find and htab_find_slot
- cannot be used; instead the variants that accept a hash value
- must be used). */
-typedef int (*htab_eq) (const void *, const void *);
-
-/* Cleanup function called whenever a live element is removed from
- the hash table. */
-typedef void (*htab_del) (void *);
-
-/* Function called by htab_traverse for each live element. The first
- arg is the slot of the element (which can be passed to htab_clear_slot
- if desired), the second arg is the auxiliary pointer handed to
- htab_traverse. Return 1 to continue scan, 0 to stop. */
-typedef int (*htab_trav) (void **, void *);
-
-/* Memory-allocation function, with the same functionality as calloc().
- Iff it returns NULL, the hash table implementation will pass an error
- code back to the user, so if your code doesn't handle errors,
- best if you use xcalloc instead. */
-typedef void *(*htab_alloc) (size_t, size_t);
-
-/* We also need a free() routine. */
-typedef void (*htab_free) (void *);
-
-/* Memory allocation and deallocation; variants which take an extra
- argument. */
-typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t);
-typedef void (*htab_free_with_arg) (void *, void *);
-
-/* This macro defines reserved value for empty table entry. */
-
-#define HTAB_EMPTY_ENTRY ((PTR) 0)
-
-/* This macro defines reserved value for table entry which contained
- a deleted element. */
-
-#define HTAB_DELETED_ENTRY ((PTR) 1)
-
-/* Hash tables are of the following type. The structure
- (implementation) of this type is not needed for using the hash
- tables. All work with hash table should be executed only through
- functions mentioned below. The size of this structure is subject to
- change. */
-
-struct GTY(()) htab {
- /* Pointer to hash function. */
- htab_hash hash_f;
-
- /* Pointer to comparison function. */
- htab_eq eq_f;
-
- /* Pointer to cleanup function. */
- htab_del del_f;
-
- /* Table itself. */
- void ** GTY ((use_param, length ("%h.size"))) entries;
-
- /* Current size (in entries) of the hash table. */
- size_t size;
-
- /* Current number of elements including also deleted elements. */
- size_t n_elements;
-
- /* Current number of deleted elements in the table. */
- size_t n_deleted;
-
- /* The following member is used for debugging. Its value is number
- of all calls of `htab_find_slot' for the hash table. */
- unsigned int searches;
-
- /* The following member is used for debugging. Its value is number
- of collisions fixed for time of work with the hash table. */
- unsigned int collisions;
-
- /* Pointers to allocate/free functions. */
- htab_alloc alloc_f;
- htab_free free_f;
-
- /* Alternate allocate/free functions, which take an extra argument. */
- void * GTY((skip)) alloc_arg;
- htab_alloc_with_arg alloc_with_arg_f;
- htab_free_with_arg free_with_arg_f;
-
- /* Current size (in entries) of the hash table, as an index into the
- table of primes. */
- unsigned int size_prime_index;
-};
-
-typedef struct htab *htab_t;
-
-/* An enum saying whether we insert into the hash table or not. */
-enum insert_option {NO_INSERT, INSERT};
-
-/* The prototypes of the package functions. */
-
-extern htab_t htab_create_alloc (size_t, htab_hash,
- htab_eq, htab_del,
- htab_alloc, htab_free);
-
-extern htab_t htab_create_alloc_ex (size_t, htab_hash,
- htab_eq, htab_del,
- void *, htab_alloc_with_arg,
- htab_free_with_arg);
-
-extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del,
- htab_alloc, htab_alloc, htab_free);
-
-/* Backward-compatibility functions. */
-extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del);
-extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del);
-
-extern void htab_set_functions_ex (htab_t, htab_hash,
- htab_eq, htab_del,
- void *, htab_alloc_with_arg,
- htab_free_with_arg);
-
-extern void htab_delete (htab_t);
-extern void htab_empty (htab_t);
-
-extern void * htab_find (htab_t, const void *);
-extern void ** htab_find_slot (htab_t, const void *, enum insert_option);
-extern void * htab_find_with_hash (htab_t, const void *, hashval_t);
-extern void ** htab_find_slot_with_hash (htab_t, const void *,
- hashval_t, enum insert_option);
-extern void htab_clear_slot (htab_t, void **);
-extern void htab_remove_elt (htab_t, void *);
-extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t);
-
-extern void htab_traverse (htab_t, htab_trav, void *);
-extern void htab_traverse_noresize (htab_t, htab_trav, void *);
-
-extern size_t htab_size (htab_t);
-extern size_t htab_elements (htab_t);
-extern double htab_collisions (htab_t);
-
-/* A hash function for pointers. */
-extern htab_hash htab_hash_pointer;
-
-/* An equality function for pointers. */
-extern htab_eq htab_eq_pointer;
-
-/* A hash function for null-terminated strings. */
-extern hashval_t htab_hash_string (const void *);
-
-/* An iterative hash function for arbitrary data. */
-extern hashval_t iterative_hash (const void *, size_t, hashval_t);
-/* Shorthand for hashing something with an intrinsic size. */
-#define iterative_hash_object(OB,INIT) iterative_hash (&OB, sizeof (OB), INIT)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __HASHTAB_H */
diff --git a/include/hp-symtab.h b/include/hp-symtab.h
deleted file mode 100644
index e944e9091..000000000
--- a/include/hp-symtab.h
+++ /dev/null
@@ -1,1867 +0,0 @@
-/* Definitions and structures for reading debug symbols from the
- native HP C compiler.
-
- Written by the Center for Software Science at the University of Utah
- and by Cygnus Support.
-
- Copyright 1994, 1995, 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
- the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef HP_SYMTAB_INCLUDED
-#define HP_SYMTAB_INCLUDED
-
-/* General information:
-
- This header file defines and describes only the data structures
- necessary to read debug symbols produced by the HP C compiler,
- HP ANSI C++ compiler, and HP FORTRAN 90 compiler using the
- SOM object file format.
- (For a full description of the debug format, ftp hpux-symtab.h from
- jaguar.cs.utah.edu:/dist).
-
- Additional notes (Rich Title)
- This file is a reverse-engineered version of a file called
- "symtab.h" which exists internal to HP's Computer Languages Organization
- in /CLO/Components/DDE/obj/som/symtab.h. Because HP's version of
- the file is copyrighted and not distributed, it is necessary for
- GDB to use the reverse-engineered version that follows.
- Work was done by Cygnus to reverse-engineer the C subset of symtab.h.
- The WDB project has extended this to also contain the C++
- symbol definitions, the F90 symbol definitions,
- and the DOC (debugging-optimized-code) symbol definitions.
- In some cases (the C++ symbol definitions)
- I have added internal documentation here that
- goes beyond what is supplied in HP's symtab.h. If we someday
- unify these files again, the extra comments should be merged back
- into HP's symtab.h.
-
- -------------------------------------------------------------------
-
- Debug symbols are contained entirely within an unloadable space called
- $DEBUG$. $DEBUG$ contains several subspaces which group related
- debug symbols.
-
- $GNTT$ contains information for global variables, types and contants.
-
- $LNTT$ contains information for procedures (including nesting), scoping
- information, local variables, types, and constants.
-
- $SLT$ contains source line information so that code addresses may be
- mapped to source lines.
-
- $VT$ contains various strings and constants for named objects (variables,
- typedefs, functions, etc). Strings are stored as null-terminated character
- lists. Constants always begin on word boundaries. The first byte of
- the VT must be zero (a null string).
-
- $XT$ is not currently used by GDB.
-
- Many structures within the subspaces point to other structures within
- the same subspace, or to structures within a different subspace. These
- pointers are represented as a structure index from the beginning of
- the appropriate subspace. */
-
-/* Used to describe where a constant is stored. */
-enum location_type
-{
- LOCATION_IMMEDIATE,
- LOCATION_PTR,
- LOCATION_VT,
-};
-
-/* Languages supported by this debug format. Within the data structures
- this type is limited to 4 bits for a maximum of 16 languages. */
-enum hp_language
-{
- HP_LANGUAGE_UNKNOWN,
- HP_LANGUAGE_C,
- HP_LANGUAGE_FORTRAN,
- HP_LANGUAGE_F77 = HP_LANGUAGE_FORTRAN,
- HP_LANGUAGE_PASCAL,
- HP_LANGUAGE_MODCAL,
- HP_LANGUAGE_COBOL,
- HP_LANGUAGE_BASIC,
- HP_LANGUAGE_ADA,
- HP_LANGUAGE_CPLUSPLUS,
- HP_LANGUAGE_DMPASCAL
-};
-
-
-/* Basic data types available in this debug format. Within the data
- structures this type is limited to 5 bits for a maximum of 32 basic
- data types. */
-enum hp_type
-{
- HP_TYPE_UNDEFINED, /* 0 */
- HP_TYPE_BOOLEAN, /* 1 */
- HP_TYPE_CHAR, /* 2 */
- HP_TYPE_INT, /* 3 */
- HP_TYPE_UNSIGNED_INT, /* 4 */
- HP_TYPE_REAL, /* 5 */
- HP_TYPE_COMPLEX, /* 6 */
- HP_TYPE_STRING200, /* 7 */
- HP_TYPE_LONGSTRING200, /* 8 */
- HP_TYPE_TEXT, /* 9 */
- HP_TYPE_FLABEL, /* 10 */
- HP_TYPE_FTN_STRING_SPEC, /* 11 */
- HP_TYPE_MOD_STRING_SPEC, /* 12 */
- HP_TYPE_PACKED_DECIMAL, /* 13 */
- HP_TYPE_REAL_3000, /* 14 */
- HP_TYPE_MOD_STRING_3000, /* 15 */
- HP_TYPE_ANYPOINTER, /* 16 */
- HP_TYPE_GLOBAL_ANYPOINTER, /* 17 */
- HP_TYPE_LOCAL_ANYPOINTER, /* 18 */
- HP_TYPE_COMPLEXS3000, /* 19 */
- HP_TYPE_FTN_STRING_S300_COMPAT, /* 20 */
- HP_TYPE_FTN_STRING_VAX_COMPAT, /* 21 */
- HP_TYPE_BOOLEAN_S300_COMPAT, /* 22 */
- HP_TYPE_BOOLEAN_VAX_COMPAT, /* 23 */
- HP_TYPE_WIDE_CHAR, /* 24 */
- HP_TYPE_LONG, /* 25 */
- HP_TYPE_UNSIGNED_LONG, /* 26 */
- HP_TYPE_DOUBLE, /* 27 */
- HP_TYPE_TEMPLATE_ARG, /* 28 */
- HP_TYPE_VOID /* 29 */
-};
-
-/* An immediate name and type table entry.
-
- extension and immediate will always be one.
- global will always be zero.
- hp_type is the basic type this entry describes.
- bitlength is the length in bits for the basic type. */
-struct dnttp_immediate
-{
- unsigned int extension: 1;
- unsigned int immediate: 1;
- unsigned int global: 1;
- unsigned int type: 5;
- unsigned int bitlength: 24;
-};
-
-/* A nonimmediate name and type table entry.
-
- extension will always be one.
- immediate will always be zero.
- if global is zero, this entry points into the LNTT
- if global is one, this entry points into the GNTT
- index is the index within the GNTT or LNTT for this entry. */
-struct dnttp_nonimmediate
-{
- unsigned int extension: 1;
- unsigned int immediate: 1;
- unsigned int global: 1;
- unsigned int index: 29;
-};
-
-/* A pointer to an entry in the GNTT and LNTT tables. It has two
- forms depending on the type being described.
-
- The immediate form is used for simple entries and is one
- word.
-
- The nonimmediate form is used for complex entries and contains
- an index into the LNTT or GNTT which describes the entire type.
-
- If a dnttpointer is -1, then it is a NIL entry. */
-
-#define DNTTNIL (-1)
-typedef union dnttpointer
-{
- struct dnttp_immediate dntti;
- struct dnttp_nonimmediate dnttp;
- int word;
-} dnttpointer;
-
-/* An index into the source line table. As with dnttpointers, a sltpointer
- of -1 indicates a NIL entry. */
-#define SLTNIL (-1)
-typedef int sltpointer;
-
-/* Index into DOC (= "Debugging Optimized Code") line table. */
-#define LTNIL (-1)
-typedef int ltpointer;
-
-/* Index into context table. */
-#define CTXTNIL (-1)
-typedef int ctxtpointer;
-
-/* Unsigned byte offset into the VT. */
-typedef unsigned int vtpointer;
-
-/* A DNTT entry (used within the GNTT and LNTT).
-
- DNTT entries are variable sized objects, but are always a multiple
- of 3 words (we call each group of 3 words a "block").
-
- The first bit in each block is an extension bit. This bit is zero
- for the first block of a DNTT entry. If the entry requires more
- than one block, then this bit is set to one in all blocks after
- the first one. */
-
-/* Each DNTT entry describes a particular debug symbol (beginning of
- a source file, a function, variables, structures, etc.
-
- The type of the DNTT entry is stored in the "kind" field within the
- DNTT entry itself. */
-
-enum dntt_entry_type
-{
- DNTT_TYPE_NIL = -1,
- DNTT_TYPE_SRCFILE,
- DNTT_TYPE_MODULE,
- DNTT_TYPE_FUNCTION,
- DNTT_TYPE_ENTRY,
- DNTT_TYPE_BEGIN,
- DNTT_TYPE_END,
- DNTT_TYPE_IMPORT,
- DNTT_TYPE_LABEL,
- DNTT_TYPE_FPARAM,
- DNTT_TYPE_SVAR,
- DNTT_TYPE_DVAR,
- DNTT_TYPE_HOLE1,
- DNTT_TYPE_CONST,
- DNTT_TYPE_TYPEDEF,
- DNTT_TYPE_TAGDEF,
- DNTT_TYPE_POINTER,
- DNTT_TYPE_ENUM,
- DNTT_TYPE_MEMENUM,
- DNTT_TYPE_SET,
- DNTT_TYPE_SUBRANGE,
- DNTT_TYPE_ARRAY,
- DNTT_TYPE_STRUCT,
- DNTT_TYPE_UNION,
- DNTT_TYPE_FIELD,
- DNTT_TYPE_VARIANT,
- DNTT_TYPE_FILE,
- DNTT_TYPE_FUNCTYPE,
- DNTT_TYPE_WITH,
- DNTT_TYPE_COMMON,
- DNTT_TYPE_COBSTRUCT,
- DNTT_TYPE_XREF,
- DNTT_TYPE_SA,
- DNTT_TYPE_MACRO,
- DNTT_TYPE_BLOCKDATA,
- DNTT_TYPE_CLASS_SCOPE,
- DNTT_TYPE_REFERENCE,
- DNTT_TYPE_PTRMEM,
- DNTT_TYPE_PTRMEMFUNC,
- DNTT_TYPE_CLASS,
- DNTT_TYPE_GENFIELD,
- DNTT_TYPE_VFUNC,
- DNTT_TYPE_MEMACCESS,
- DNTT_TYPE_INHERITANCE,
- DNTT_TYPE_FRIEND_CLASS,
- DNTT_TYPE_FRIEND_FUNC,
- DNTT_TYPE_MODIFIER,
- DNTT_TYPE_OBJECT_ID,
- DNTT_TYPE_MEMFUNC,
- DNTT_TYPE_TEMPLATE,
- DNTT_TYPE_TEMPLATE_ARG,
- DNTT_TYPE_FUNC_TEMPLATE,
- DNTT_TYPE_LINK,
- DNTT_TYPE_DYN_ARRAY_DESC,
- DNTT_TYPE_DESC_SUBRANGE,
- DNTT_TYPE_BEGIN_EXT,
- DNTT_TYPE_INLN,
- DNTT_TYPE_INLN_LIST,
- DNTT_TYPE_ALIAS,
- DNTT_TYPE_DOC_FUNCTION,
- DNTT_TYPE_DOC_MEMFUNC,
- DNTT_TYPE_MAX
-};
-
-/* DNTT_TYPE_SRCFILE:
-
- One DNTT_TYPE_SRCFILE symbol is output for the start of each source
- file and at the begin and end of an included file. A DNTT_TYPE_SRCFILE
- entry is also output before each DNTT_TYPE_FUNC symbol so that debuggers
- can determine what file a function was defined in.
-
- LANGUAGE describes the source file's language.
-
- NAME points to an VT entry providing the source file's name.
-
- Note the name used for DNTT_TYPE_SRCFILE entries are exactly as seen
- by the compiler (ie they may be relative or absolute). C include files
- via <> inclusion must use absolute paths.
-
- ADDRESS points to an SLT entry from which line number and code locations
- may be determined. */
-
-struct dntt_type_srcfile
-{
- unsigned int extension: 1;
- unsigned int kind: 10; /* DNTT_TYPE_SRCFILE */
- unsigned int language: 4;
- unsigned int unused: 17;
- vtpointer name;
- sltpointer address;
-};
-
-/* DNTT_TYPE_MODULE:
-
- A DNTT_TYPE_MODULE symbol is emitted for the start of a pascal
- module or C source file. A module indicates a compilation unit
- for name-scoping purposes; in that regard there should be
- a 1-1 correspondence between GDB "symtab"'s and MODULE symbol records.
-
- Each DNTT_TYPE_MODULE must have an associated DNTT_TYPE_END symbol.
-
- NAME points to a VT entry providing the module's name. Note C
- source files are considered nameless modules.
-
- ALIAS point to a VT entry providing a secondary name.
-
- ADDRESS points to an SLT entry from which line number and code locations
- may be determined. */
-
-struct dntt_type_module
-{
- unsigned int extension: 1;
- unsigned int kind: 10; /* DNTT_TYPE_MODULE */
- unsigned int unused: 21;
- vtpointer name;
- vtpointer alias;
- dnttpointer unused2;
- sltpointer address;
-};
-
-/* DNTT_TYPE_FUNCTION,
- DNTT_TYPE_ENTRY,
- DNTT_TYPE_BLOCKDATA,
- DNTT_TYPE_MEMFUNC:
-
- A DNTT_TYPE_FUNCTION symbol is emitted for each function definition;
- a DNTT_TYPE_ENTRY symbols is used for secondary entry points. Both
- symbols used the dntt_type_function structure.
- A DNTT_TYPE_BLOCKDATA symbol is emitted ...?
- A DNTT_TYPE_MEMFUNC symbol is emitted for inlined member functions (C++).
-
- Each of DNTT_TYPE_FUNCTION must have a matching DNTT_TYPE_END.
-
- GLOBAL is nonzero if the function has global scope.
-
- LANGUAGE describes the function's source language.
-
- OPT_LEVEL describes the optimization level the function was compiled
- with.
-
- VARARGS is nonzero if the function uses varargs.
-
- NAME points to a VT entry providing the function's name.
-
- ALIAS points to a VT entry providing a secondary name for the function.
-
- FIRSTPARAM points to a LNTT entry which describes the parameter list.
-
- ADDRESS points to an SLT entry from which line number and code locations
- may be determined.
-
- ENTRYADDR is the memory address corresponding the function's entry point
-
- RETVAL points to a LNTT entry describing the function's return value.
-
- LOWADDR is the lowest memory address associated with this function.
-
- HIADDR is the highest memory address associated with this function. */
-
-struct dntt_type_function
-{
- unsigned int extension: 1;
- unsigned int kind: 10; /* DNTT_TYPE_FUNCTION,
- DNTT_TYPE_ENTRY,
- DNTT_TYPE_BLOCKDATA
- or DNTT_TYPE_MEMFUNC */
- unsigned int global: 1;
- unsigned int language: 4;
- unsigned int nest_level: 5;
- unsigned int opt_level: 2;
- unsigned int varargs: 1;
- unsigned int lang_info: 4;
- unsigned int inlined: 1;
- unsigned int localalloc: 1;
- unsigned int expansion: 1;
- unsigned int unused: 1;
- vtpointer name;
- vtpointer alias;
- dnttpointer firstparam;
- sltpointer address;
- CORE_ADDR entryaddr;
- dnttpointer retval;
- CORE_ADDR lowaddr;
- CORE_ADDR hiaddr;
-};
-
-/* DNTT_TYPE_BEGIN:
-
- A DNTT_TYPE_BEGIN symbol is emitted to begin a new nested scope.
- Every DNTT_TYPE_BEGIN symbol must have a matching DNTT_TYPE_END symbol.
-
- CLASSFLAG is nonzero if this is the beginning of a c++ class definition.
-
- ADDRESS points to an SLT entry from which line number and code locations
- may be determined. */
-
-struct dntt_type_begin
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int classflag: 1;
- unsigned int unused: 20;
- sltpointer address;
-};
-
-/* DNTT_TYPE_END:
-
- A DNTT_TYPE_END symbol is emitted when closing a scope started by
- a DNTT_TYPE_MODULE, DNTT_TYPE_FUNCTION, DNTT_TYPE_WITH,
- DNTT_TYPE_COMMON, DNTT_TYPE_BEGIN, and DNTT_TYPE_CLASS_SCOPE symbols.
-
- ENDKIND describes what type of scope the DNTT_TYPE_END is closing
- (one of the above 6 kinds).
-
- CLASSFLAG is nonzero if this is the end of a c++ class definition.
-
- ADDRESS points to an SLT entry from which line number and code locations
- may be determined.
-
- BEGINSCOPE points to the LNTT entry which opened the scope. */
-
-struct dntt_type_end
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int endkind: 10;
- unsigned int classflag: 1;
- unsigned int unused: 10;
- sltpointer address;
- dnttpointer beginscope;
-};
-
-/* DNTT_TYPE_IMPORT is unused by GDB. */
-/* DNTT_TYPE_LABEL is unused by GDB. */
-
-/* DNTT_TYPE_FPARAM:
-
- A DNTT_TYPE_FPARAM symbol is emitted for a function argument. When
- chained together the symbols represent an argument list for a function.
-
- REGPARAM is nonzero if this parameter was passed in a register.
-
- INDIRECT is nonzero if this parameter is a pointer to the parameter
- (pass by reference or pass by value for large items).
-
- LONGADDR is nonzero if the parameter is a 64bit pointer.
-
- NAME is a pointer into the VT for the parameter's name.
-
- LOCATION describes where the parameter is stored. Depending on the
- parameter type LOCATION could be a register number, or an offset
- from the stack pointer.
-
- TYPE points to a NTT entry describing the type of this parameter.
-
- NEXTPARAM points to the LNTT entry describing the next parameter. */
-
-struct dntt_type_fparam
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int regparam: 1;
- unsigned int indirect: 1;
- unsigned int longaddr: 1;
- unsigned int copyparam: 1;
- unsigned int dflt: 1;
- unsigned int doc_ranges: 1;
- unsigned int misc_kind: 1;
- unsigned int unused: 14;
- vtpointer name;
- CORE_ADDR location;
- dnttpointer type;
- dnttpointer nextparam;
- int misc;
-};
-
-/* DNTT_TYPE_SVAR:
-
- A DNTT_TYPE_SVAR is emitted to describe a variable in static storage.
-
- GLOBAL is nonzero if the variable has global scope.
-
- INDIRECT is nonzero if the variable is a pointer to an object.
-
- LONGADDR is nonzero if the variable is in long pointer space.
-
- STATICMEM is nonzero if the variable is a member of a class.
-
- A_UNION is nonzero if the variable is an anonymous union member.
-
- NAME is a pointer into the VT for the variable's name.
-
- LOCATION provides the memory address for the variable.
-
- TYPE is a pointer into either the GNTT or LNTT which describes
- the type of this variable. */
-
-struct dntt_type_svar
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int global: 1;
- unsigned int indirect: 1;
- unsigned int longaddr: 1;
- unsigned int staticmem: 1;
- unsigned int a_union: 1;
- unsigned int unused1: 1;
- unsigned int thread_specific: 1;
- unsigned int unused2: 14;
- vtpointer name;
- CORE_ADDR location;
- dnttpointer type;
- unsigned int offset;
- unsigned int displacement;
-};
-
-/* DNTT_TYPE_DVAR:
-
- A DNTT_TYPE_DVAR is emitted to describe automatic variables and variables
- held in registers.
-
- GLOBAL is nonzero if the variable has global scope.
-
- INDIRECT is nonzero if the variable is a pointer to an object.
-
- REGVAR is nonzero if the variable is in a register.
-
- A_UNION is nonzero if the variable is an anonymous union member.
-
- NAME is a pointer into the VT for the variable's name.
-
- LOCATION provides the memory address or register number for the variable.
-
- TYPE is a pointer into either the GNTT or LNTT which describes
- the type of this variable. */
-
-struct dntt_type_dvar
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int global: 1;
- unsigned int indirect: 1;
- unsigned int regvar: 1;
- unsigned int a_union: 1;
- unsigned int unused: 17;
- vtpointer name;
- int location;
- dnttpointer type;
- unsigned int offset;
-};
-
-/* DNTT_TYPE_CONST:
-
- A DNTT_TYPE_CONST symbol is emitted for program constants.
-
- GLOBAL is nonzero if the constant has global scope.
-
- INDIRECT is nonzero if the constant is a pointer to an object.
-
- LOCATION_TYPE describes where to find the constant's value
- (in the VT, memory, or embedded in an instruction).
-
- CLASSMEM is nonzero if the constant is a member of a class.
-
- NAME is a pointer into the VT for the constant's name.
-
- LOCATION provides the memory address, register number or pointer
- into the VT for the constant's value.
-
- TYPE is a pointer into either the GNTT or LNTT which describes
- the type of this variable. */
-
-struct dntt_type_const
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int global: 1;
- unsigned int indirect: 1;
- unsigned int location_type: 3;
- unsigned int classmem: 1;
- unsigned int unused: 15;
- vtpointer name;
- CORE_ADDR location;
- dnttpointer type;
- unsigned int offset;
- unsigned int displacement;
-};
-
-/* DNTT_TYPE_TYPEDEF and DNTT_TYPE_TAGDEF:
-
- The same structure is used to describe typedefs and tagdefs.
-
- DNTT_TYPE_TYPEDEFS are associated with C "typedefs".
-
- DNTT_TYPE_TAGDEFs are associated with C "struct", "union", and "enum"
- tags, which may have the same name as a typedef in the same scope.
- Also they are associated with C++ "class" tags, which implicitly have
- the same name as the class type.
-
- GLOBAL is nonzero if the typedef/tagdef has global scope.
-
- TYPEINFO is used to determine if full type information is available
- for a tag. (usually 1, but can be zero for opaque types in C).
-
- NAME is a pointer into the VT for the constant's name.
-
- TYPE points to the underlying type for the typedef/tagdef in the
- GNTT or LNTT. */
-
-struct dntt_type_type
-{
- unsigned int extension: 1;
- unsigned int kind: 10; /* DNTT_TYPE_TYPEDEF or
- DNTT_TYPE_TAGDEF. */
- unsigned int global: 1;
- unsigned int typeinfo: 1;
- unsigned int unused: 19;
- vtpointer name;
- dnttpointer type; /* Underlying type, which for TAGDEF's may be
- DNTT_TYPE_STRUCT, DNTT_TYPE_UNION,
- DNTT_TYPE_ENUM, or DNTT_TYPE_CLASS.
- For TYPEDEF's other underlying types
- are also possible. */
-};
-
-/* DNTT_TYPE_POINTER:
-
- Used to describe a pointer to an underlying type.
-
- POINTSTO is a pointer into the GNTT or LNTT for the type which this
- pointer points to.
-
- BITLENGTH is the length of the pointer (not the underlying type). */
-
-struct dntt_type_pointer
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int unused: 21;
- dnttpointer pointsto;
- unsigned int bitlength;
-};
-
-
-/* DNTT_TYPE_ENUM:
-
- Used to describe enumerated types.
-
- FIRSTMEM is a pointer to a DNTT_TYPE_MEMENUM in the GNTT/LNTT which
- describes the first member (and contains a pointer to the chain of
- members).
-
- BITLENGTH is the number of bits used to hold the values of the enum's
- members. */
-
-struct dntt_type_enum
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int unused: 21;
- dnttpointer firstmem;
- unsigned int bitlength;
-};
-
-/* DNTT_TYPE_MEMENUM
-
- Used to describe members of an enumerated type.
-
- CLASSMEM is nonzero if this member is part of a class.
-
- NAME points into the VT for the name of this member.
-
- VALUE is the value of this enumeration member.
-
- NEXTMEM points to the next DNTT_TYPE_MEMENUM in the chain. */
-
-struct dntt_type_memenum
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int classmem: 1;
- unsigned int unused: 20;
- vtpointer name;
- unsigned int value;
- dnttpointer nextmem;
-};
-
-/* DNTT_TYPE_SET
-
- Used to describe PASCAL "set" type.
-
- DECLARATION describes the bitpacking of the set.
-
- SUBTYPE points to a DNTT entry describing the type of the members.
-
- BITLENGTH is the size of the set. */
-
-struct dntt_type_set
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int declaration: 2;
- unsigned int unused: 19;
- dnttpointer subtype;
- unsigned int bitlength;
-};
-
-/* DNTT_TYPE_SUBRANGE
-
- Used to describe subrange type.
-
- DYN_LOW describes the lower bound of the subrange:
-
- 00 for a constant lower bound (found in LOWBOUND).
-
- 01 for a dynamic lower bound with the lower bound found in the
- memory address pointed to by LOWBOUND.
-
- 10 for a dynamic lower bound described by an variable found in the
- DNTT/LNTT (LOWBOUND would be a pointer into the DNTT/LNTT).
-
- DYN_HIGH is similar to DYN_LOW, except it describes the upper bound.
-
- SUBTYPE points to the type of the subrange.
-
- BITLENGTH is the length in bits needed to describe the subrange's
- values. */
-
-struct dntt_type_subrange
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int dyn_low: 2;
- unsigned int dyn_high: 2;
- unsigned int unused: 17;
- int lowbound;
- int highbound;
- dnttpointer subtype;
- unsigned int bitlength;
-};
-
-/* DNTT_TYPE_ARRAY
-
- Used to describe an array type.
-
- DECLARATION describes the bit packing used in the array.
-
- ARRAYISBYTES is nonzero if the field in arraylength describes the
- length in bytes rather than in bits. A value of zero is used to
- describe an array with size 2**32.
-
- ELEMISBYTES is nonzero if the length if each element in the array
- is describes in bytes rather than bits. A value of zero is used
- to an element with size 2**32.
-
- ELEMORDER is nonzero if the elements are indexed in increasing order.
-
- JUSTIFIED if the elements are left justified to index zero.
-
- ARRAYLENGTH is the length of the array.
-
- INDEXTYPE is a DNTT pointer to the type used to index the array.
-
- ELEMTYPE is a DNTT pointer to the type for the array elements.
-
- ELEMLENGTH is the length of each element in the array (including
- any padding).
-
- Multi-dimensional arrays are represented by ELEMTYPE pointing to
- another DNTT_TYPE_ARRAY. */
-
-struct dntt_type_array
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int declaration: 2;
- unsigned int dyn_low: 2;
- unsigned int dyn_high: 2;
- unsigned int arrayisbytes: 1;
- unsigned int elemisbytes: 1;
- unsigned int elemorder: 1;
- unsigned int justified: 1;
- unsigned int unused: 11;
- unsigned int arraylength;
- dnttpointer indextype;
- dnttpointer elemtype;
- unsigned int elemlength;
-};
-
-/* DNTT_TYPE_STRUCT
-
- DNTT_TYPE_STRUCT is used to describe a C structure.
-
- DECLARATION describes the bitpacking used.
-
- FIRSTFIELD is a DNTT pointer to the first field of the structure
- (each field contains a pointer to the next field, walk the list
- to access all fields of the structure).
-
- VARTAGFIELD and VARLIST are used for Pascal variant records.
-
- BITLENGTH is the size of the structure in bits. */
-
-struct dntt_type_struct
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int declaration: 2;
- unsigned int unused: 19;
- dnttpointer firstfield;
- dnttpointer vartagfield;
- dnttpointer varlist;
- unsigned int bitlength;
-};
-
-/* DNTT_TYPE_UNION
-
- DNTT_TYPE_UNION is used to describe a C union.
-
- FIRSTFIELD is a DNTT pointer to the beginning of the field chain.
-
- BITLENGTH is the size of the union in bits. */
-
-struct dntt_type_union
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int unused: 21;
- dnttpointer firstfield;
- unsigned int bitlength;
-};
-
-/* DNTT_TYPE_FIELD
-
- DNTT_TYPE_FIELD describes one field in a structure or union
- or C++ class.
-
- VISIBILITY is used to describe the visibility of the field
- (for c++. public = 0, protected = 1, private = 2).
-
- A_UNION is nonzero if this field is a member of an anonymous union.
-
- STATICMEM is nonzero if this field is a static member of a template.
-
- NAME is a pointer into the VT for the name of the field.
-
- BITOFFSET gives the offset of this field in bits from the beginning
- of the structure or union this field is a member of.
-
- TYPE is a DNTT pointer to the type describing this field.
-
- BITLENGTH is the size of the entry in bits.
-
- NEXTFIELD is a DNTT pointer to the next field in the chain. */
-
-struct dntt_type_field
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int visibility: 2;
- unsigned int a_union: 1;
- unsigned int staticmem: 1;
- unsigned int unused: 17;
- vtpointer name;
- unsigned int bitoffset;
- dnttpointer type;
- unsigned int bitlength;
- dnttpointer nextfield;
-};
-
-/* DNTT_TYPE_VARIANT is unused by GDB. */
-/* DNTT_TYPE_FILE is unused by GDB. */
-
-/* DNTT_TYPE_FUNCTYPE
-
- I think this is used to describe a function type (e.g., would
- be emitted as part of a function-pointer description).
-
- VARARGS is nonzero if this function uses varargs.
-
- FIRSTPARAM is a DNTT pointer to the first entry in the parameter
- chain.
-
- RETVAL is a DNTT pointer to the type of the return value. */
-
-struct dntt_type_functype
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int varargs: 1;
- unsigned int info: 4;
- unsigned int unused: 16;
- unsigned int bitlength;
- dnttpointer firstparam;
- dnttpointer retval;
-};
-
-/* DNTT_TYPE_WITH is emitted by C++ to indicate "with" scoping semantics.
- (Probably also emitted by PASCAL to support "with"...).
-
- C++ example: Say "memfunc" is a method of class "c", and say
- "m" is a data member of class "c". Then from within "memfunc",
- it is legal to reference "m" directly (e.g. you don't have to
- say "this->m". The symbol table indicates
- this by emitting a DNTT_TYPE_WITH symbol within the function "memfunc",
- pointing to the type symbol for class "c".
-
- In GDB, this symbol record is unnecessary,
- because GDB's symbol lookup algorithm
- infers the "with" semantics when it sees a "this" argument to the member
- function. So GDB can safely ignore the DNTT_TYPE_WITH record.
-
- A DNTT_TYPE_WITH has a matching DNTT_TYPE_END symbol. */
-
-struct dntt_type_with
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_WITH */
- unsigned int addrtype: 2; /* 0 => STATTYPE */
- /* 1 => DYNTYPE */
- /* 2 => REGTYPE */
- unsigned int indirect: 1; /* 1 => pointer to object */
- unsigned int longaddr: 1; /* 1 => in long pointer space */
- unsigned int nestlevel: 6; /* # of nesting levels back */
- unsigned int doc_ranges: 1; /* 1 => location is range list */
- unsigned int unused: 10;
- long location; /* where stored (allocated) */
- sltpointer address;
- dnttpointer type; /* type of with expression */
- vtpointer name; /* name of with expression */
- unsigned long offset; /* byte offset from location */
-};
-
-/* DNTT_TYPE_COMMON is unsupported by GDB. */
-/* A DNTT_TYPE_COMMON symbol must have a matching DNTT_TYPE_END symbol */
-
-/* DNTT_TYPE_COBSTRUCT is unsupported by GDB. */
-/* DNTT_TYPE_XREF is unsupported by GDB. */
-/* DNTT_TYPE_SA is unsupported by GDB. */
-/* DNTT_TYPE_MACRO is unsupported by GDB */
-
-/* DNTT_TYPE_BLOCKDATA has the same structure as DNTT_TYPE_FUNCTION */
-
-/* The following are the C++ specific SOM records */
-
-/* The purpose of the DNTT_TYPE_CLASS_SCOPE is to bracket C++ methods
- and indicate the method name belongs in the "class scope" rather
- than in the module they are being defined in. For example:
-
- class c {
- ...
- void memfunc(); // member function
- };
-
- void c::memfunc() // definition of class c's "memfunc"
- {
- ...
- }
-
- main()
- {
- ...
- }
-
- In the above, the name "memfunc" is not directly visible from "main".
- I.e., you have to say "break c::memfunc".
- If it were a normal function (not a method), it would be visible
- via the simple "break memfunc". Since "memfunc" otherwise looks
- like a normal FUNCTION in the symbol table, the bracketing
- CLASS_SCOPE is what is used to indicate it is really a method.
-
-
- A DNTT_TYPE_CLASS_SCOPE symbol must have a matching DNTT_TYPE_END symbol. */
-
-struct dntt_type_class_scope
-{
- unsigned int extension: 1; /* Always zero. */
- unsigned int kind: 10; /* Always DNTT_TYPE_CLASS_SCOPE. */
- unsigned int unused: 21;
- sltpointer address ; /* Pointer to SLT entry. */
- dnttpointer type ; /* Pointer to class type DNTT. */
-};
-
-/* C++ reference parameter.
- The structure of this record is the same as DNTT_TYPE_POINTER -
- refer to struct dntt_type_pointer. */
-
-/* The next two describe C++ pointer-to-data-member type, and
- pointer-to-member-function type, respectively.
- DNTT_TYPE_PTRMEM and DNTT_TYPE_PTRMEMFUNC have the same structure. */
-
-struct dntt_type_ptrmem
-{
- unsigned int extension: 1; /* Always zero. */
- unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEM. */
- unsigned int unused: 21;
- dnttpointer pointsto ; /* Pointer to class DNTT. */
- dnttpointer memtype ; /* Type of member. */
-};
-
-struct dntt_type_ptrmemfunc
-{
- unsigned int extension: 1; /* Always zero. */
- unsigned int kind: 10; /* Always DNTT_TYPE_PTRMEMFUNC. */
- unsigned int unused: 21;
- dnttpointer pointsto ; /* Pointer to class DNTT. */
- dnttpointer memtype ; /* Type of member. */
-};
-
-/* The DNTT_TYPE_CLASS symbol is emitted to describe a class type.
- "memberlist" points to a chained list of FIELD or GENFIELD records
- indicating the class members. "parentlist" points to a chained list
- of INHERITANCE records indicating classes from which we inherit
- fields. */
-
-struct dntt_type_class
-{
- unsigned int extension: 1; /* Always zero. */
- unsigned int kind: 10; /* Always DNTT_TYPE_CLASS. */
- unsigned int abstract: 1; /* Is this an abstract class? */
- unsigned int class_decl: 2; /* 0=class,1=union,2=struct. */
- unsigned int expansion: 1; /* 1=template expansion. */
- unsigned int unused: 17;
- dnttpointer memberlist ; /* Ptr to chain of [GEN]FIELDs. */
- unsigned long vtbl_loc ; /* Offset in obj of ptr to vtbl. */
- dnttpointer parentlist ; /* Ptr to K_INHERITANCE list. */
- unsigned long bitlength ; /* Total at this level. */
- dnttpointer identlist ; /* Ptr to chain of class ident's. */
- dnttpointer friendlist ; /* Ptr to K_FRIEND list. */
- dnttpointer templateptr ; /* Ptr to template. */
- dnttpointer nextexp ; /* Ptr to next expansion. */
-};
-
-/* Class members are indicated via either the FIELD record (for
- data members, same as for C struct fields), or by the GENFIELD record
- (for member functions). */
-
-struct dntt_type_genfield
-{
- unsigned int extension: 1; /* Always zero. */
- unsigned int kind: 10; /* Always DNTT_TYPE_GENFIELD. */
- unsigned int visibility: 2; /* Pub = 0, prot = 1, priv = 2. */
- unsigned int a_union: 1; /* 1 => anonymous union member. */
- unsigned int unused: 18;
- dnttpointer field ; /* Pointer to field or qualifier. */
- dnttpointer nextfield ; /* Pointer to next field. */
-};
-
-/* C++ virtual functions. */
-
-struct dntt_type_vfunc
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_VFUNC */
- unsigned int pure: 1; /* pure virtual function ? */
- unsigned int unused: 20;
- dnttpointer funcptr ; /* points to FUNCTION symbol */
- unsigned long vtbl_offset ; /* offset into vtbl for virtual */
-};
-
-/* Not precisely sure what this is intended for - DDE ignores it. */
-
-struct dntt_type_memaccess
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_MEMACCESS */
- unsigned int unused: 21;
- dnttpointer classptr ; /* pointer to base class */
- dnttpointer field ; /* pointer field */
-};
-
-/* The DNTT_TYPE_INHERITANCE record describes derived classes.
- In particular, the "parentlist" field of the CLASS record points
- to a list of INHERITANCE records for classes from which we
- inherit members. */
-
-struct dntt_type_inheritance
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_INHERITANCE */
- unsigned int Virtual: 1; /* virtual base class ? */
- unsigned int visibility: 2; /* pub = 0, prot = 1, priv = 2 */
- unsigned int unused: 18;
- dnttpointer classname ; /* first parent class, if any */
- unsigned long offset ; /* offset to start of base class */
- dnttpointer next ; /* pointer to next K_INHERITANCE */
- unsigned long future[2] ; /* padding to 3-word block end */
-};
-
-/* C++ "friend" classes ... */
-
-struct dntt_type_friend_class
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_CLASS */
- unsigned int unused: 21;
- dnttpointer classptr ; /* pointer to class DNTT */
- dnttpointer next ; /* next DNTT_FRIEND */
-};
-
-struct dntt_type_friend_func
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_FRIEND_FUNC */
- unsigned int unused: 21;
- dnttpointer funcptr ; /* pointer to function */
- dnttpointer classptr ; /* pointer to class DNTT */
- dnttpointer next ; /* next DNTT_FRIEND */
- unsigned long future[2] ; /* padding to 3-word block end */
-};
-
-/* DDE appears to ignore the DNTT_TYPE_MODIFIER record.
- It could perhaps be used to give better "ptype" output in GDB;
- otherwise it is probably safe for GDB to ignore it also. */
-
-struct dntt_type_modifier
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_MODIFIER */
- unsigned int m_const: 1; /* const */
- unsigned int m_static: 1; /* static */
- unsigned int m_void: 1; /* void */
- unsigned int m_volatile: 1; /* volatile */
- unsigned int m_duplicate: 1; /* duplicate */
- unsigned int unused: 16;
- dnttpointer type ; /* subtype */
- unsigned long future ; /* padding to 3-word block end */
-};
-
-/* I'm not sure what this was intended for - DDE ignores it. */
-
-struct dntt_type_object_id
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_OBJECT_ID */
- unsigned int indirect: 1; /* Is object_ident addr of addr? */
- unsigned int unused: 20;
- unsigned long object_ident ; /* object identifier */
- unsigned long offset ; /* offset to start of base class */
- dnttpointer next ; /* pointer to next K_OBJECT_ID */
- unsigned long segoffset ; /* for linker fixup */
- unsigned long future ; /* padding to 3-word block end */
-};
-
-/* No separate dntt_type_memfunc; same as dntt_type_func */
-
-/* Symbol records to support templates. These only get used
- in DDE's "describe" output (like GDB's "ptype"). */
-
-/* The TEMPLATE record is the header for a template-class.
- Like the CLASS record, a TEMPLATE record has a memberlist that
- points to a list of template members. It also has an arglist
- pointing to a list of TEMPLATE_ARG records. */
-
-struct dntt_type_template
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_TEMPLATE */
- unsigned int abstract: 1; /* is this an abstract class? */
- unsigned int class_decl: 2; /* 0=class,1=union,2=struct */
- unsigned int unused: 18;
- dnttpointer memberlist ; /* ptr to chain of K_[GEN]FIELDs */
- long unused2 ; /* offset in obj of ptr to vtbl */
- dnttpointer parentlist ; /* ptr to K_INHERITANCE list */
- unsigned long bitlength ; /* total at this level */
- dnttpointer identlist ; /* ptr to chain of class ident's */
- dnttpointer friendlist ; /* ptr to K_FRIEND list */
- dnttpointer arglist ; /* ptr to argument list */
- dnttpointer expansions ; /* ptr to expansion list */
-};
-
-/* Template-class arguments are a list of TEMPL_ARG records
- chained together. The "name" field is the name of the formal.
- E.g.:
-
- template <class T> class q { ... };
-
- Then "T" is the name of the formal argument. */
-
-struct dntt_type_templ_arg
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_TEMPL_ARG */
- unsigned int usagetype: 1; /* 0 type-name 1 expression */
- unsigned int unused: 20;
- vtpointer name ; /* name of argument */
- dnttpointer type ; /* for non type arguments */
- dnttpointer nextarg ; /* Next argument if any */
- long future[2] ; /* padding to 3-word block end */
-};
-
-/* FUNC_TEMPLATE records are sort of like FUNCTION, but are emitted
- for template member functions. E.g.,
-
- template <class T> class q
- {
- ...
- void f();
- ...
- };
-
- Within the list of FIELDs/GENFIELDs defining the member list
- of the template "q", "f" would appear as a FUNC_TEMPLATE.
- We'll also see instances of FUNCTION "f" records for each
- instantiation of the template. */
-
-struct dntt_type_func_template
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_FUNC_TEMPLATE */
- unsigned int public: 1; /* 1 => globally visible */
- unsigned int language: 4; /* type of language */
- unsigned int level: 5; /* nesting level (top level = 0)*/
- unsigned int optimize: 2; /* level of optimization */
- unsigned int varargs: 1; /* ellipses. Pascal/800 later */
- unsigned int info: 4; /* lang-specific stuff; F_xxxx */
- unsigned int inlined: 1;
- unsigned int localloc: 1; /* 0 at top, 1 at end of block */
- unsigned int unused: 2;
- vtpointer name ; /* name of function */
- vtpointer alias ; /* alternate name, if any */
- dnttpointer firstparam ; /* first FPARAM, if any */
- dnttpointer retval ; /* return type, if any */
- dnttpointer arglist ; /* ptr to argument list */
-};
-
-/* LINK is apparently intended to link together function template
- definitions with their instantiations. However, it is not clear
- why this would be needed, except to provide the information on
- a "ptype" command. And as far as I can tell, aCC does not
- generate this record. */
-
-struct dntt_type_link
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* always DNTT_TYPE_LINK */
- unsigned int linkKind: 4; /* always LINK_UNKNOWN */
- unsigned int unused: 17;
- long future1 ; /* expansion */
- dnttpointer ptr1 ; /* link from template */
- dnttpointer ptr2 ; /* to expansion */
- long future[2] ; /* padding to 3-word block end */
-};
-
-/* end of C++ specific SOM's. */
-
-/* DNTT_TYPE_DYN_ARRAY_DESC is unused by GDB */
-/* DNTT_TYPE_DESC_SUBRANGE is unused by GDB */
-/* DNTT_TYPE_BEGIN_EXT is unused by GDB */
-/* DNTT_TYPE_INLN is unused by GDB */
-/* DNTT_TYPE_INLN_LIST is unused by GDB */
-/* DNTT_TYPE_ALIAS is unused by GDB */
-
-struct dntt_type_doc_function
-{
- unsigned int extension: 1; /* always zero */
- unsigned int kind: 10; /* K_DOC_FUNCTION or */
- /* K_DOC_MEMFUNC */
- unsigned int global: 1; /* 1 => globally visible */
- unsigned int language: 4; /* type of language */
- unsigned int level: 5; /* nesting level (top level = 0)*/
- unsigned int optimize: 2; /* level of optimization */
- unsigned int varargs: 1; /* ellipses. Pascal/800 later */
- unsigned int info: 4; /* lang-specific stuff; F_xxxx */
- unsigned int inlined: 1;
- unsigned int localloc: 1; /* 0 at top, 1 at end of block */
- unsigned int expansion: 1; /* 1 = function expansion */
- unsigned int doc_clone: 1;
- vtpointer name; /* name of function */
- vtpointer alias; /* alternate name, if any */
- dnttpointer firstparam; /* first FPARAM, if any */
- sltpointer address; /* code and text locations */
- CORE_ADDR entryaddr; /* address of entry point */
- dnttpointer retval; /* return type, if any */
- CORE_ADDR lowaddr; /* lowest address of function */
- CORE_ADDR hiaddr; /* highest address of function */
- dnttpointer inline_list; /* pointer to first inline */
- ltpointer lt_offset; /* start of frag/cp line table */
- ctxtpointer ctxt_offset; /* start of context table for this routine */
-};
-
-/* DNTT_TYPE_DOC_MEMFUNC is unused by GDB */
-
-/* DNTT_TYPE_GENERIC and DNTT_TYPE_BLOCK are convience structures
- so we can examine a DNTT entry in a generic fashion. */
-struct dntt_type_generic
-{
- unsigned int word[9];
-};
-
-struct dntt_type_block
-{
- unsigned int extension: 1;
- unsigned int kind: 10;
- unsigned int unused: 21;
- unsigned int word[2];
-};
-
-/* One entry in a DNTT (either the LNTT or GNTT).
- This is a union of the above 60 or so structure definitions. */
-
-union dnttentry
-{
- struct dntt_type_srcfile dsfile;
- struct dntt_type_module dmodule;
- struct dntt_type_function dfunc;
- struct dntt_type_function dentry;
- struct dntt_type_begin dbegin;
- struct dntt_type_end dend;
- struct dntt_type_fparam dfparam;
- struct dntt_type_svar dsvar;
- struct dntt_type_dvar ddvar;
- struct dntt_type_const dconst;
- struct dntt_type_type dtype;
- struct dntt_type_type dtag;
- struct dntt_type_pointer dptr;
- struct dntt_type_enum denum;
- struct dntt_type_memenum dmember;
- struct dntt_type_set dset;
- struct dntt_type_subrange dsubr;
- struct dntt_type_array darray;
- struct dntt_type_struct dstruct;
- struct dntt_type_union dunion;
- struct dntt_type_field dfield;
- struct dntt_type_functype dfunctype;
- struct dntt_type_with dwith;
- struct dntt_type_function dblockdata;
- struct dntt_type_class_scope dclass_scope;
- struct dntt_type_pointer dreference;
- struct dntt_type_ptrmem dptrmem;
- struct dntt_type_ptrmemfunc dptrmemfunc;
- struct dntt_type_class dclass;
- struct dntt_type_genfield dgenfield;
- struct dntt_type_vfunc dvfunc;
- struct dntt_type_memaccess dmemaccess;
- struct dntt_type_inheritance dinheritance;
- struct dntt_type_friend_class dfriend_class;
- struct dntt_type_friend_func dfriend_func;
- struct dntt_type_modifier dmodifier;
- struct dntt_type_object_id dobject_id;
- struct dntt_type_template dtemplate;
- struct dntt_type_templ_arg dtempl_arg;
- struct dntt_type_func_template dfunc_template;
- struct dntt_type_link dlink;
- struct dntt_type_doc_function ddocfunc;
- struct dntt_type_generic dgeneric;
- struct dntt_type_block dblock;
-};
-
-/* Source line entry types. */
-enum slttype
-{
- SLT_NORMAL,
- SLT_SRCFILE,
- SLT_MODULE,
- SLT_FUNCTION,
- SLT_ENTRY,
- SLT_BEGIN,
- SLT_END,
- SLT_WITH,
- SLT_EXIT,
- SLT_ASSIST,
- SLT_MARKER,
- SLT_CLASS_SCOPE,
- SLT_INLN,
- SLT_NORMAL_OFFSET,
-};
-
-/* A normal source line entry. Simply provides a mapping of a source
- line number to a code address.
-
- SLTDESC will always be SLT_NORMAL or SLT_EXIT. */
-
-struct slt_normal
-{
- unsigned int sltdesc: 4;
- unsigned int line: 28;
- CORE_ADDR address;
-};
-
-struct slt_normal_off
-{
- unsigned int sltdesc: 4;
- unsigned int offset: 6;
- unsigned int line: 22;
- CORE_ADDR address;
-};
-
-/* A special source line entry. Provides a mapping of a declaration
- to a line number. These entries point back into the DNTT which
- references them. */
-
-struct slt_special
-{
- unsigned int sltdesc: 4;
- unsigned int line: 28;
- dnttpointer backptr;
-};
-
-/* Used to describe nesting.
-
- For nested languages, an slt_assist entry must follow each SLT_FUNC
- entry in the SLT. The address field will point forward to the
- first slt_normal entry within the function's scope. */
-
-struct slt_assist
-{
- unsigned int sltdesc: 4;
- unsigned int unused: 28;
- sltpointer address;
-};
-
-struct slt_generic
-{
- unsigned int word[2];
-};
-
-union sltentry
-{
- struct slt_normal snorm;
- struct slt_normal_off snormoff;
- struct slt_special sspec;
- struct slt_assist sasst;
- struct slt_generic sgeneric;
-};
-
-/* $LINES$ declarations
- This is the line table used for optimized code, which is only present
- in the new $PROGRAM_INFO$ debug space. */
-
-#define DST_LN_ESCAPE_FLAG1 15
-#define DST_LN_ESCAPE_FLAG2 14
-#define DST_LN_CTX_SPEC1 13
-#define DST_LN_CTX_SPEC2 12
-
-/* Escape function codes: */
-
-typedef enum
-{
- dst_ln_pad, /* pad byte */
- dst_ln_escape_1, /* reserved */
- dst_ln_dpc1_dln1, /* 1 byte line delta, 1 byte pc delta */
- dst_ln_dpc2_dln2, /* 2 bytes line delta, 2 bytes pc delta */
- dst_ln_pc4_ln4, /* 4 bytes ABSOLUTE line number, 4 bytes ABSOLUTE pc */
- dst_ln_dpc0_dln1, /* 1 byte line delta, pc delta = 0 */
- dst_ln_ln_off_1, /* statement escape, stmt # = 1 (2nd stmt on line) */
- dst_ln_ln_off, /* statement escape, stmt # = next byte */
- dst_ln_entry, /* entry escape, next byte is entry number */
- dst_ln_exit, /* exit escape */
- dst_ln_stmt_end, /* gap escape, 4 bytes pc delta */
- dst_ln_stmt_cp, /* current stmt is a critical point */
- dst_ln_escape_12, /* reserved */
- dst_ln_escape_13, /* this is an exception site record */
- dst_ln_nxt_byte, /* next byte contains the real escape code */
- dst_ln_end, /* end escape, final entry follows */
- dst_ln_escape1_END_OF_ENUM
-}
-dst_ln_escape1_t;
-
-typedef enum
-{
- dst_ln_ctx_1, /* next byte describes context switch with 5-bit */
- /* index into the image table and 3-bit run length. */
- /* If run length is 0, end with another cxt specifier or ctx_end */
- dst_ln_ctx_2, /* next 2 bytes switch context: 13 bit index, 3 bit run length */
- dst_ln_ctx_4, /* next 4 bytes switch context: 29 bit index, 3 bit run length */
- dst_ln_ctx_end, /* end current context */
- dst_ln_col_run_1, /* next byte is column position of start of next statement, */
- /* following byte is length of statement */
- dst_ln_col_run_2, /* next 2 bytes is column position of start of next statement, */
- /* following 2 bytes is length of statement */
- dst_ln_init_base1, /* next 4 bytes are absolute PC, followed by 1 byte of line number */
- dst_ln_init_base2, /* next 4 bytes are absolute PC, followed by 2 bytes of line number */
- dst_ln_init_base3, /* next 4 bytes are absolute PC, followed by 3 bytes of line number */
- dst_ln_escape2_END_OF_ENUM
-}
-dst_ln_escape2_t;
-
-typedef union
-{
- struct
- {
- unsigned int pc_delta : 4; /* 4 bit pc delta */
- int ln_delta : 4; /* 4 bit line number delta */
- }
- delta;
-
- struct
- {
- unsigned int esc_flag : 4; /* alias for pc_delta */
- unsigned int esc_code : 4; /* escape function code (dst_ln_escape1_t, or ...2_t */
- }
- esc;
-
- struct
- {
- unsigned int esc_flag : 4; /* dst_ln_ctx_spec1, or dst_ln_ctx_spec2 */
- unsigned int run_length : 2;
- unsigned int ctx_index : 2; /* ...spec2 contains index; ...spec1, index - 4 */
- }
- ctx_spec;
-
- char sdata; /* signed data byte */
- unsigned char udata; /* unsigned data byte */
-}
-dst_ln_entry_t,
- * dst_ln_entry_ptr_t;
-
-/* Warning: although the above union occupies only 1 byte the compiler treats
- it as having size 2 (the minimum size of a struct). Therefore a sequence of
- dst_ln_entry_t's cannot be described as an array, and walking through such a
- sequence requires convoluted code such as
- ln_ptr = (dst_ln_entry_ptr_t) (char*) ln_ptr + 1
- We regret the inconvenience. */
-
-/* Structure for interpreting the byte following a dst_ln_ctx1 entry. */
-typedef struct
-{
- unsigned int ctx1_index : 5; /* 5 bit index into context table */
- unsigned int ctx1_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx1_t,
- *dst_ln_ctx1_ptr_t;
-
-/* Structure for interpreting the bytes following a dst_ln_ctx2 entry. */
-typedef struct
-{
- unsigned int ctx2_index : 13; /* 13 bit index into context table */
- unsigned int ctx2_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx2_t,
- *dst_ln_ctx2_ptr_t;
-
-/* Structure for interpreting the bytes following a dst_ln_ctx4 entry. */
-typedef struct
-{
- unsigned int ctx4_index : 29; /* 29 bit index into context table */
- unsigned int ctx4_run_length : 3; /* 3 bit run length */
-} dst_ln_ctx4_t,
- *dst_ln_ctx4_ptr_t;
-
-
-/* PXDB definitions.
-
- PXDB is a post-processor which takes the executable file
- and massages the debug information so that the debugger may
- start up and run more efficiently. Some of the tasks
- performed by PXDB are:
-
- o Remove duplicate global type and variable information
- from the GNTT,
-
- o Append the GNTT onto the end of the LNTT and place both
- back in the LNTT section,
-
- o Build quick look-up tables (description follows) for
- files, procedures, modules, and paragraphs (for Cobol),
- placing these in the GNTT section,
-
- o Reconstruct the header appearing in the header section
- to access this information.
-
- The "quick look-up" tables are in the $GNTT$ sub-space, in
- the following order:
-
- Procedures -sorted by address
- Source files -sorted by address (of the
- generated code from routines)
- Modules -sorted by address
- Classes -<unsorted?>
- Address Alias -sorted by index <?>
- Object IDs -sorted by object identifier
-
- Most quick entries have (0-based) indices into the LNTT tables to
- the full entries for the item it describes.
-
- The post-PXDB header is in the $HEADER$ sub-space. Alas, it
- occurs in different forms, depending on the optimization level
- in the compilation step and whether PXDB was run or not. The
- worst part is the forms aren't self-describing, so we'll have
- to grovel in the bits to figure out what kind we're looking at
- (see hp_get_header in hp-psymtab-read.c). */
-
-/* PXDB versions. */
-
-#define PXDB_VERSION_CPLUSPLUS 1
-#define PXDB_VERSION_7_4 2
-#define PXDB_VERSION_CPP_30 3
-#define PXDB_VERSION_DDE_3_2A 4
-#define PXDB_VERSION_DDE_3_2 5
-#define PXDB_VERSION_DDE_4_0 6
-
-#define PXDB_VERSION_2_1 1
-
-/* Header version for the case that there is no DOC info
- but the executable has been processed by pxdb (the easy
- case, from "cc -g"). */
-
-typedef struct PXDB_struct
-{
- int pd_entries; /* # of entries in function look-up table */
- int fd_entries; /* # of entries in file look-up table */
- int md_entries; /* # of entries in module look-up table */
- unsigned int pxdbed : 1; /* 1 => file has been preprocessed */
- unsigned int bighdr : 1; /* 1 => this header contains 'time' word */
- unsigned int sa_header : 1;/* 1 => created by SA version of pxdb */
- /* used for version check in xdb */
- unsigned int inlined: 1; /* one or more functions have been inlined */
- unsigned int spare:12;
- short version; /* pxdb header version */
- int globals; /* index into the DNTT where GNTT begins */
- unsigned int time; /* modify time of file before being pxdbed */
- int pg_entries; /* # of entries in label look-up table */
- int functions; /* actual number of functions */
- int files; /* actual number of files */
- int cd_entries; /* # of entries in class look-up table */
- int aa_entries; /* # of entries in addr alias look-up table */
- int oi_entries; /* # of entries in object id look-up table */
-} PXDB_header, *PXDB_header_ptr;
-
-/* Header version for the case that there is no DOC info and the
- executable has NOT been processed by pxdb. */
-
-typedef struct XDB_header_struct
-{
- long gntt_length;
- long lntt_length;
- long slt_length;
- long vt_length;
- long xt_length;
-} XDB_header;
-
-/* Header version for the case that there is DOC info and the
- executable has been processed by pxdb. */
-
-typedef struct DOC_info_PXDB_header_struct
-{
- unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */
- unsigned int doc_header: 1; /* bit set if this is doc-style header */
- unsigned int version: 8; /* version of pxdb see defines
- PXDB_VERSION_* in this file. */
- unsigned int reserved_for_flags: 16;/* for future use; -- must be
- set to zero. */
- unsigned int has_aux_pd_table: 1; /* $GNTT$ has aux PD table */
- unsigned int has_expr_table: 1; /* space has $EXPR$ */
- unsigned int has_range_table: 1; /* space has $RANGE$ */
- unsigned int has_context_table: 1; /* space has $SRC_CTXT$ */
- unsigned int has_lines_table: 1; /* space contains a $LINES$
- subspace for line tables. */
- unsigned int has_lt_offset_map: 1; /* space contains an lt_offset
- subspace for line table mapping. */
- /* The following fields are the same as those in the PXDB_header in $DEBUG$ */
- int pd_entries; /* # of entries in function look-up table */
- int fd_entries; /* # of entries in file look-up table */
- int md_entries; /* # of entries in module look-up table */
- unsigned int pxdbed : 1; /* 1 => file has been preprocessed */
- unsigned int bighdr : 1; /* 1 => this header contains 'time' word */
- unsigned int sa_header : 1;/* 1 => created by SA version of pxdb */
- /* used for version check in xdb */
- unsigned int inlined: 1; /* one or more functions have been inlined */
- unsigned int spare : 28;
- int globals; /* index into the DNTT where GNTT begins */
- unsigned int time; /* modify time of file before being pxdbed */
- int pg_entries; /* # of entries in label look-up table */
- int functions; /* actual number of functions */
- int files; /* actual number of files */
- int cd_entries; /* # of entries in class look-up table */
- int aa_entries; /* # of entries in addr alias look-up table */
- int oi_entries; /* # of entries in object id look-up table */
-} DOC_info_PXDB_header;
-
-/* Header version for the case that there is DOC info and the
- executable has NOT been processed by pxdb. */
-
-typedef struct DOC_info_header_struct
-{
- unsigned int xdb_header: 1; /* bit set if this is post-3.1 xdb */
- unsigned int doc_header: 1; /* bit set if this is doc-style header*/
- unsigned int version: 8; /* version of debug/header
- format. For 10.0 the value
- will be 1. For "Davis" the value is 2. */
- unsigned int reserved_for_flags: 18; /* for future use; -- must be set to zero. */
- unsigned int has_range_table: 1; /* space contains a $RANGE$ subspace for variable ranges. */
- unsigned int has_context_table: 1; /* space contains a $CTXT$ subspace for context/inline table. */
- unsigned int has_lines_table: 1; /* space contains a $LINES$ subspace for line tables. */
- unsigned int has_lt_offset_map: 1; /* space contains an lt_offset subspace for line table mapping. */
-
- long gntt_length; /* same as old header */
- long lntt_length; /* same as old header */
- long slt_length; /* same as old header */
- long vt_length; /* same as old header */
- long xt_length; /* same as old header */
- long ctxt_length; /* present only if version >= 2 */
- long range_length; /* present only if version >= 2 */
- long expr_length; /* present only if version >= 2 */
-
-} DOC_info_header;
-
-typedef union GenericDebugHeader_union
-{
- PXDB_header no_doc;
- DOC_info_PXDB_header doc;
- XDB_header no_pxdb_no_doc;
- DOC_info_header no_pxdb_doc;
-} GenericDebugHeader;
-
-
-/* Procedure Descriptor:
- An element of the procedure quick look-up table. */
-
-typedef struct quick_procedure
-{
- long isym; /* 0-based index of first symbol
- for procedure in $LNTT$,
- i.e. the procedure itself. */
- CORE_ADDR adrStart; /* memory adr of start of proc */
- CORE_ADDR adrEnd; /* memory adr of end of proc */
- char *sbAlias; /* alias name of procedure */
- char *sbProc; /* real name of procedure */
- CORE_ADDR adrBp; /* address of entry breakpoint */
- CORE_ADDR adrExitBp; /* address of exit breakpoint */
- int icd; /* member of this class (index) */
- unsigned int ipd; /* index of template for this */
- /* function (index) */
- unsigned int unused: 5;
- unsigned int no_lt_offset: 1;/* no entry in lt_offset table */
- unsigned int fTemplate: 1; /* function template */
- unsigned int fExpansion: 1; /* function expansion */
- unsigned int linked : 1; /* linked with other expansions */
- unsigned int duplicate: 1; /* clone of another procedure */
- unsigned int overloaded:1; /* overloaded function */
- unsigned int member: 1; /* class member function */
- unsigned int constructor:1; /* constructor function */
- unsigned int destructor:1; /* destructor function */
- unsigned int Static: 1; /* static function */
- unsigned int Virtual: 1; /* virtual function */
- unsigned int constant: 1; /* constant function */
- unsigned int pure: 1; /* pure (virtual) function */
- unsigned int language: 4; /* procedure's language */
- unsigned int inlined: 1; /* function has been inlined */
- unsigned int Operator: 1; /* operator function */
- unsigned int stub: 1; /* bodyless function */
- unsigned int optimize: 2; /* optimization level */
- unsigned int level: 5; /* nesting level (top=0) */
-} quick_procedure_entry, *quick_procedure_entry_ptr;
-
-/* Source File Descriptor:
- An element of the source file quick look-up table. */
-
-typedef struct quick_source
-{
- long isym; /* 0-based index in $LNTT$ of
- first symbol for this file. */
- CORE_ADDR adrStart; /* mem adr of start of file's code */
- CORE_ADDR adrEnd; /* mem adr of end of file's code */
- char *sbFile; /* name of source file */
- unsigned int fHasDecl: 1; /* do we have a .d file? */
- unsigned int fWarned: 1; /* have warned about age problems? */
- unsigned int fSrcfile: 1; /* 0 => include 1=> source */
- unsigned short ilnMac; /* lines in file (0 if don't know) */
- int ipd; /* 0-based index of first procedure
- in this file, in the quick
- look-up table of procedures. */
- unsigned int *rgLn; /* line pointer array, if any */
-} quick_file_entry, *quick_file_entry_ptr;
-
-/* Module Descriptor:
- An element of the module quick reference table. */
-
-typedef struct quick_module
-{
- long isym; /* 0-based index of first
- symbol for module. */
- CORE_ADDR adrStart; /* adr of start of mod. */
- CORE_ADDR adrEnd; /* adr of end of mod. */
- char *sbAlias; /* alias name of module */
- char *sbMod; /* real name of module */
- unsigned int imports: 1; /* module have any imports? */
- unsigned int vars_in_front: 1; /* module globals in front? */
- unsigned int vars_in_gaps: 1; /* module globals in gaps? */
- unsigned int language: 4; /* type of language */
- unsigned int unused : 25;
- unsigned int unused2; /* space for future stuff */
-} quick_module_entry, *quick_module_entry_ptr;
-
-/* Auxiliary Procedure Descriptor:
- An element of the auxiliary procedure quick look-up table. */
-
-typedef struct quick_aux_procedure
-{
- long isym_inln; /* start on inline list for proc */
- long spare;
-} quick_aux_procedure_entry, *quick_aux_procedure_entry_ptr;
-
-/* Paragraph Descriptor:
- An element of the paragraph quick look-up table. */
-
-typedef struct quick_paragraph
-{
- long isym; /* first symbol for label (index) */
- CORE_ADDR adrStart; /* memory adr of start of label */
- CORE_ADDR adrEnd; /* memory adr of end of label */
- char *sbLab; /* name of label */
- unsigned int inst; /* Used in xdb to store inst @ bp */
- unsigned int sect: 1; /* true = section, false = parag. */
- unsigned int unused: 31; /* future use */
-} quick_paragraph_entry, *quick_paragraph_entry_ptr;
-
-/* Class Descriptor:
- An element of the class quick look-up table. */
-
-typedef struct quick_class
-{
- char *sbClass; /* name of class */
- long isym; /* class symbol (tag) */
- unsigned int type : 2; /* 0=class, 1=union, 2=struct */
- unsigned int fTemplate : 1;/* class template */
- unsigned int expansion : 1;/* template expansion */
- unsigned int unused :28;
- sltpointer lowscope; /* beginning of defined scope */
- sltpointer hiscope; /* end of defined scope */
-} quick_class_entry, *quick_class_entry_ptr;
-
-/* Address Alias Entry
- An element of the address alias quick look-up table. */
-
-typedef struct quick_alias
-{
- CORE_ADDR low;
- CORE_ADDR high;
- int index;
- unsigned int unused : 31;
- unsigned int alternate : 1; /* alternate unnamed aliases? */
-} quick_alias_entry, *quick_alias_entry_ptr;
-
-/* Object Identification Entry
- An element of the object identification quick look-up table. */
-
-typedef struct quick_obj_ID
-{
- CORE_ADDR obj_ident; /* class identifier */
- long isym; /* class symbol */
- long offset; /* offset to object start */
-} quick_obj_ID_entry, *quick_obj_ID_entry_ptr;
-
-#endif /* HP_SYMTAB_INCLUDED */
diff --git a/include/ieee.h b/include/ieee.h
deleted file mode 100644
index 72fcad420..000000000
--- a/include/ieee.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* IEEE Standard 695-1980 "Universal Format for Object Modules" header file
-
- Copyright 2001 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, 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., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- Contributed by Cygnus Support. */
-
-#define N_W_VARIABLES 8
-#define Module_Beginning 0xe0
-
-typedef struct ieee_module
- {
- char *processor;
- char *module_name;
- }
-ieee_module_begin_type;
-
-#define Address_Descriptor 0xec
-typedef struct ieee_address
- {
- bfd_vma number_of_bits_mau;
- bfd_vma number_of_maus_in_address;
-
- unsigned char byte_order;
-#define IEEE_LITTLE 0xcc
-#define IEEE_BIG 0xcd
- }
-ieee_address_descriptor_type;
-
-typedef union ieee_w_variable
- {
- file_ptr offset[N_W_VARIABLES];
-
- struct
- {
- file_ptr extension_record;
- file_ptr environmental_record;
- file_ptr section_part;
- file_ptr external_part;
- file_ptr debug_information_part;
- file_ptr data_part;
- file_ptr trailer_part;
- file_ptr me_record;
- }
- r;
- }
-ieee_w_variable_type;
-
-typedef enum ieee_record
- {
- ieee_number_start_enum = 0x00,
- ieee_number_end_enum=0x7f,
- ieee_number_repeat_start_enum = 0x80,
- ieee_number_repeat_end_enum = 0x88,
- ieee_number_repeat_4_enum = 0x84,
- ieee_number_repeat_3_enum = 0x83,
- ieee_number_repeat_2_enum = 0x82,
- ieee_number_repeat_1_enum = 0x81,
- ieee_module_beginning_enum = 0xe0,
- ieee_module_end_enum = 0xe1,
- ieee_extension_length_1_enum = 0xde,
- ieee_extension_length_2_enum = 0xdf,
- ieee_section_type_enum = 0xe6,
- ieee_section_alignment_enum = 0xe7,
- ieee_external_symbol_enum = 0xe8,
- ieee_comma = 0x90,
- ieee_external_reference_enum = 0xe9,
- ieee_set_current_section_enum = 0xe5,
- ieee_address_descriptor_enum = 0xec,
- ieee_load_constant_bytes_enum = 0xed,
- ieee_load_with_relocation_enum = 0xe4,
-
- ieee_variable_A_enum = 0xc1,
- ieee_variable_B_enum = 0xc2,
- ieee_variable_C_enum = 0xc3,
- ieee_variable_D_enum = 0xc4,
- ieee_variable_E_enum = 0xc5,
- ieee_variable_F_enum = 0xc6,
- ieee_variable_G_enum = 0xc7,
- ieee_variable_H_enum = 0xc8,
- ieee_variable_I_enum = 0xc9,
- ieee_variable_J_enum = 0xca,
- ieee_variable_K_enum = 0xcb,
- ieee_variable_L_enum = 0xcc,
- ieee_variable_M_enum = 0xcd,
- ieee_variable_N_enum = 0xce,
- ieee_variable_O_enum = 0xcf,
- ieee_variable_P_enum = 0xd0,
- ieee_variable_Q_enum = 0xd1,
- ieee_variable_R_enum = 0xd2,
- ieee_variable_S_enum = 0xd3,
- ieee_variable_T_enum = 0xd4,
- ieee_variable_U_enum = 0xd5,
- ieee_variable_V_enum = 0xd6,
- ieee_variable_W_enum = 0xd7,
- ieee_variable_X_enum = 0xd8,
- ieee_variable_Y_enum = 0xd9,
- ieee_variable_Z_enum = 0xda,
- ieee_function_plus_enum = 0xa5,
- ieee_function_minus_enum = 0xa6,
- ieee_function_signed_open_b_enum = 0xba,
- ieee_function_signed_close_b_enum = 0xbb,
-
- ieee_function_unsigned_open_b_enum = 0xbc,
- ieee_function_unsigned_close_b_enum = 0xbd,
-
- ieee_function_either_open_b_enum = 0xbe,
- ieee_function_either_close_b_enum = 0xbf,
- ieee_record_seperator_enum = 0xdb,
-
- ieee_e2_first_byte_enum = 0xe2,
- ieee_section_size_enum = 0xe2d3,
- ieee_physical_region_size_enum = 0xe2c1,
- ieee_region_base_address_enum = 0xe2c2,
- ieee_mau_size_enum = 0xe2c6,
- ieee_m_value_enum = 0xe2cd,
- ieee_section_base_address_enum = 0xe2cc,
- ieee_asn_record_enum = 0xe2ce,
- ieee_section_offset_enum = 0xe2d2,
- ieee_value_starting_address_enum = 0xe2c7,
- ieee_assign_value_to_variable_enum = 0xe2d7,
- ieee_set_current_pc_enum = 0xe2d0,
- ieee_value_record_enum = 0xe2c9,
- ieee_nn_record = 0xf0,
- ieee_at_record_enum = 0xf1,
- ieee_ty_record_enum = 0xf2,
- ieee_attribute_record_enum = 0xf1c9,
- ieee_atn_record_enum = 0xf1ce,
- ieee_external_reference_info_record_enum = 0xf1d8,
- ieee_weak_external_reference_enum= 0xf4,
- ieee_repeat_data_enum = 0xf7,
- ieee_bb_record_enum = 0xf8,
- ieee_be_record_enum = 0xf9
- }
-ieee_record_enum_type;
-
-typedef struct ieee_section
- {
- unsigned int section_index;
- unsigned int section_type;
- char * section_name;
- unsigned int parent_section_index;
- unsigned int sibling_section_index;
- unsigned int context_index;
- }
-ieee_section_type;
-
-#define IEEE_REFERENCE_BASE 11
-#define IEEE_PUBLIC_BASE 32
-#define IEEE_SECTION_NUMBER_BASE 1
-
diff --git a/include/libiberty.h b/include/libiberty.h
deleted file mode 100644
index cacde800e..000000000
--- a/include/libiberty.h
+++ /dev/null
@@ -1,686 +0,0 @@
-/* Function declarations for libiberty.
-
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-
- Note - certain prototypes declared in this header file are for
- functions whoes implementation copyright does not belong to the
- FSF. Those prototypes are present in this file for reference
- purposes only and their presence in this file should not construed
- as an indication of ownership by the FSF of the implementation of
- those functions in any way or form whatsoever.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- Written by Cygnus Support, 1994.
-
- The libiberty library provides a number of functions which are
- missing on some operating systems. We do not declare those here,
- to avoid conflicts with the system header files on operating
- systems that do support those functions. In this file we only
- declare those functions which are specific to libiberty. */
-
-#ifndef LIBIBERTY_H
-#define LIBIBERTY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "ansidecl.h"
-
-/* Get a definition for size_t. */
-#include <stddef.h>
-/* Get a definition for va_list. */
-#include <stdarg.h>
-
-#include <stdio.h>
-
-/* If the OS supports it, ensure that the supplied stream is setup to
- avoid any multi-threaded locking. Otherwise leave the FILE pointer
- unchanged. If the stream is NULL do nothing. */
-
-extern void unlock_stream (FILE *);
-
-/* If the OS supports it, ensure that the standard I/O streams, stdin,
- stdout and stderr are setup to avoid any multi-threaded locking.
- Otherwise do nothing. */
-
-extern void unlock_std_streams (void);
-
-/* Open and return a FILE pointer. If the OS supports it, ensure that
- the stream is setup to avoid any multi-threaded locking. Otherwise
- return the FILE pointer unchanged. */
-
-extern FILE *fopen_unlocked (const char *, const char *);
-extern FILE *fdopen_unlocked (int, const char *);
-extern FILE *freopen_unlocked (const char *, const char *, FILE *);
-
-/* Build an argument vector from a string. Allocates memory using
- malloc. Use freeargv to free the vector. */
-
-extern char **buildargv (const char *) ATTRIBUTE_MALLOC;
-
-/* Free a vector returned by buildargv. */
-
-extern void freeargv (char **);
-
-/* Duplicate an argument vector. Allocates memory using malloc. Use
- freeargv to free the vector. */
-
-extern char **dupargv (char **) ATTRIBUTE_MALLOC;
-
-/* Expand "@file" arguments in argv. */
-
-extern void expandargv PARAMS ((int *, char ***));
-
-/* Write argv to an @-file, inserting necessary quoting. */
-
-extern int writeargv PARAMS ((char **, FILE *));
-
-/* Return the number of elements in argv. */
-
-extern int countargv (char**);
-
-/* Return the last component of a path name. Note that we can't use a
- prototype here because the parameter is declared inconsistently
- across different systems, sometimes as "char *" and sometimes as
- "const char *" */
-
-/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is
- undefined, we haven't run the autoconf check so provide the
- declaration without arguments. If it is 0, we checked and failed
- to find the declaration so provide a fully prototyped one. If it
- is 1, we found it so don't provide any declaration at all. */
-#if !HAVE_DECL_BASENAME
-#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
-extern char *basename (const char *);
-#else
-/* Do not allow basename to be used if there is no prototype seen. We
- either need to use the above prototype or have one from
- autoconf which would result in HAVE_DECL_BASENAME being set. */
-#define basename basename_cannot_be_used_without_a_prototype
-#endif
-#endif
-
-/* A well-defined basename () that is always compiled in. */
-
-extern const char *lbasename (const char *);
-
-/* Same, but assumes DOS semantics (drive name, backslash is also a
- dir separator) regardless of host. */
-
-extern const char *dos_lbasename (const char *);
-
-/* Same, but assumes Unix semantics (absolute paths always start with
- a slash, only forward slash is accepted as dir separator)
- regardless of host. */
-
-extern const char *unix_lbasename (const char *);
-
-/* A well-defined realpath () that is always compiled in. */
-
-extern char *lrealpath (const char *);
-
-/* Concatenate an arbitrary number of strings. You must pass NULL as
- the last argument of this function, to terminate the list of
- strings. Allocates memory using xmalloc. */
-
-extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings. You must pass NULL as
- the last argument of this function, to terminate the list of
- strings. Allocates memory using xmalloc. The first argument is
- not one of the strings to be concatenated, but if not NULL is a
- pointer to be freed after the new string is created, similar to the
- way xrealloc works. */
-
-extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
-
-/* Determine the length of concatenating an arbitrary number of
- strings. You must pass NULL as the last argument of this function,
- to terminate the list of strings. */
-
-extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings into a SUPPLIED area of
- memory. You must pass NULL as the last argument of this function,
- to terminate the list of strings. The supplied memory is assumed
- to be large enough. */
-
-extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* Concatenate an arbitrary number of strings into a GLOBAL area of
- memory. You must pass NULL as the last argument of this function,
- to terminate the list of strings. The supplied memory is assumed
- to be large enough. */
-
-extern char *concat_copy2 (const char *, ...) ATTRIBUTE_SENTINEL;
-
-/* This is the global area used by concat_copy2. */
-
-extern char *libiberty_concat_ptr;
-
-/* Concatenate an arbitrary number of strings. You must pass NULL as
- the last argument of this function, to terminate the list of
- strings. Allocates memory using alloca. The arguments are
- evaluated twice! */
-#define ACONCAT(ACONCAT_PARAMS) \
- (libiberty_concat_ptr = (char *) alloca (concat_length ACONCAT_PARAMS + 1), \
- concat_copy2 ACONCAT_PARAMS)
-
-/* Check whether two file descriptors refer to the same file. */
-
-extern int fdmatch (int fd1, int fd2);
-
-/* Return the position of the first bit set in the argument. */
-/* Prototypes vary from system to system, so we only provide a
- prototype on systems where we know that we need it. */
-#if defined (HAVE_DECL_FFS) && !HAVE_DECL_FFS
-extern int ffs(int);
-#endif
-
-/* Get the working directory. The result is cached, so don't call
- chdir() between calls to getpwd(). */
-
-extern char * getpwd (void);
-
-/* Get the current time. */
-/* Prototypes vary from system to system, so we only provide a
- prototype on systems where we know that we need it. */
-#ifdef __MINGW32__
-/* Forward declaration to avoid #include <sys/time.h>. */
-struct timeval;
-extern int gettimeofday (struct timeval *, void *);
-#endif
-
-/* Get the amount of time the process has run, in microseconds. */
-
-extern long get_run_time (void);
-
-/* Generate a relocated path to some installation directory. Allocates
- return value using malloc. */
-
-extern char *make_relative_prefix (const char *, const char *,
- const char *) ATTRIBUTE_MALLOC;
-
-/* Generate a relocated path to some installation directory without
- attempting to follow any soft links. Allocates
- return value using malloc. */
-
-extern char *make_relative_prefix_ignore_links (const char *, const char *,
- const char *) ATTRIBUTE_MALLOC;
-
-/* Choose a temporary directory to use for scratch files. */
-
-extern char *choose_temp_base (void) ATTRIBUTE_MALLOC;
-
-/* Return a temporary file name or NULL if unable to create one. */
-
-extern char *make_temp_file (const char *) ATTRIBUTE_MALLOC;
-
-/* Remove a link to a file unless it is special. */
-
-extern int unlink_if_ordinary (const char *);
-
-/* Allocate memory filled with spaces. Allocates using malloc. */
-
-extern const char *spaces (int count);
-
-/* Return the maximum error number for which strerror will return a
- string. */
-
-extern int errno_max (void);
-
-/* Return the name of an errno value (e.g., strerrno (EINVAL) returns
- "EINVAL"). */
-
-extern const char *strerrno (int);
-
-/* Given the name of an errno value, return the value. */
-
-extern int strtoerrno (const char *);
-
-/* ANSI's strerror(), but more robust. */
-
-extern char *xstrerror (int);
-
-/* Return the maximum signal number for which strsignal will return a
- string. */
-
-extern int signo_max (void);
-
-/* Return a signal message string for a signal number
- (e.g., strsignal (SIGHUP) returns something like "Hangup"). */
-/* This is commented out as it can conflict with one in system headers.
- We still document its existence though. */
-
-/*extern const char *strsignal (int);*/
-
-/* Return the name of a signal number (e.g., strsigno (SIGHUP) returns
- "SIGHUP"). */
-
-extern const char *strsigno (int);
-
-/* Given the name of a signal, return its number. */
-
-extern int strtosigno (const char *);
-
-/* Register a function to be run by xexit. Returns 0 on success. */
-
-extern int xatexit (void (*fn) (void));
-
-/* Exit, calling all the functions registered with xatexit. */
-
-extern void xexit (int status) ATTRIBUTE_NORETURN;
-
-/* Set the program name used by xmalloc. */
-
-extern void xmalloc_set_program_name (const char *);
-
-/* Report an allocation failure. */
-extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
-
-/* Allocate memory without fail. If malloc fails, this will print a
- message to stderr (using the name set by xmalloc_set_program_name,
- if any) and then call xexit. */
-
-extern void *xmalloc (size_t) ATTRIBUTE_MALLOC;
-
-/* Reallocate memory without fail. This works like xmalloc. Note,
- realloc type functions are not suitable for attribute malloc since
- they may return the same address across multiple calls. */
-
-extern void *xrealloc (void *, size_t);
-
-/* Allocate memory without fail and set it to zero. This works like
- xmalloc. */
-
-extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC;
-
-/* Copy a string into a memory buffer without fail. */
-
-extern char *xstrdup (const char *) ATTRIBUTE_MALLOC;
-
-/* Copy at most N characters from string into a buffer without fail. */
-
-extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC;
-
-/* Copy an existing memory buffer to a new memory buffer without fail. */
-
-extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC;
-
-/* Physical memory routines. Return values are in BYTES. */
-extern double physmem_total (void);
-extern double physmem_available (void);
-
-/* Compute the 32-bit CRC of a block of memory. */
-extern unsigned int xcrc32 (const unsigned char *, int, unsigned int);
-
-/* These macros provide a K&R/C89/C++-friendly way of allocating structures
- with nice encapsulation. The XDELETE*() macros are technically
- superfluous, but provided here for symmetry. Using them consistently
- makes it easier to update client code to use different allocators such
- as new/delete and new[]/delete[]. */
-
-/* Scalar allocators. */
-
-#define XALLOCA(T) ((T *) alloca (sizeof (T)))
-#define XNEW(T) ((T *) xmalloc (sizeof (T)))
-#define XCNEW(T) ((T *) xcalloc (1, sizeof (T)))
-#define XDUP(T, P) ((T *) xmemdup ((P), sizeof (T), sizeof (T)))
-#define XDELETE(P) free ((void*) (P))
-
-/* Array allocators. */
-
-#define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N)))
-#define XNEWVEC(T, N) ((T *) xmalloc (sizeof (T) * (N)))
-#define XCNEWVEC(T, N) ((T *) xcalloc ((N), sizeof (T)))
-#define XDUPVEC(T, P, N) ((T *) xmemdup ((P), sizeof (T) * (N), sizeof (T) * (N)))
-#define XRESIZEVEC(T, P, N) ((T *) xrealloc ((void *) (P), sizeof (T) * (N)))
-#define XDELETEVEC(P) free ((void*) (P))
-
-/* Allocators for variable-sized structures and raw buffers. */
-
-#define XALLOCAVAR(T, S) ((T *) alloca ((S)))
-#define XNEWVAR(T, S) ((T *) xmalloc ((S)))
-#define XCNEWVAR(T, S) ((T *) xcalloc (1, (S)))
-#define XDUPVAR(T, P, S1, S2) ((T *) xmemdup ((P), (S1), (S2)))
-#define XRESIZEVAR(T, P, S) ((T *) xrealloc ((P), (S)))
-
-/* Type-safe obstack allocator. */
-
-#define XOBNEW(O, T) ((T *) obstack_alloc ((O), sizeof (T)))
-#define XOBNEWVEC(O, T, N) ((T *) obstack_alloc ((O), sizeof (T) * (N)))
-#define XOBNEWVAR(O, T, S) ((T *) obstack_alloc ((O), (S)))
-#define XOBFINISH(O, T) ((T) obstack_finish ((O)))
-
-/* hex character manipulation routines */
-
-#define _hex_array_size 256
-#define _hex_bad 99
-extern const unsigned char _hex_value[_hex_array_size];
-extern void hex_init (void);
-#define hex_p(c) (hex_value (c) != _hex_bad)
-/* If you change this, note well: Some code relies on side effects in
- the argument being performed exactly once. */
-#define hex_value(c) ((unsigned int) _hex_value[(unsigned char) (c)])
-
-/* Flags for pex_init. These are bits to be or'ed together. */
-
-/* Record subprocess times, if possible. */
-#define PEX_RECORD_TIMES 0x1
-
-/* Use pipes for communication between processes, if possible. */
-#define PEX_USE_PIPES 0x2
-
-/* Save files used for communication between processes. */
-#define PEX_SAVE_TEMPS 0x4
-
-/* Prepare to execute one or more programs, with standard output of
- each program fed to standard input of the next.
- FLAGS As above.
- PNAME The name of the program to report in error messages.
- TEMPBASE A base name to use for temporary files; may be NULL to
- use a random name.
- Returns NULL on error. */
-
-extern struct pex_obj *pex_init (int flags, const char *pname,
- const char *tempbase);
-
-/* Flags for pex_run. These are bits to be or'ed together. */
-
-/* Last program in pipeline. Standard output of program goes to
- OUTNAME, or, if OUTNAME is NULL, to standard output of caller. Do
- not set this if you want to call pex_read_output. After this is
- set, pex_run may no longer be called with the same struct
- pex_obj. */
-#define PEX_LAST 0x1
-
-/* Search for program in executable search path. */
-#define PEX_SEARCH 0x2
-
-/* OUTNAME is a suffix. */
-#define PEX_SUFFIX 0x4
-
-/* Send program's standard error to standard output. */
-#define PEX_STDERR_TO_STDOUT 0x8
-
-/* Input file should be opened in binary mode. This flag is ignored
- on Unix. */
-#define PEX_BINARY_INPUT 0x10
-
-/* Output file should be opened in binary mode. This flag is ignored
- on Unix. For proper behaviour PEX_BINARY_INPUT and
- PEX_BINARY_OUTPUT have to match appropriately--i.e., a call using
- PEX_BINARY_OUTPUT should be followed by a call using
- PEX_BINARY_INPUT. */
-#define PEX_BINARY_OUTPUT 0x20
-
-/* Capture stderr to a pipe. The output can be read by
- calling pex_read_err and reading from the returned
- FILE object. This flag may be specified only for
- the last program in a pipeline.
-
- This flag is supported only on Unix and Windows. */
-#define PEX_STDERR_TO_PIPE 0x40
-
-/* Capture stderr in binary mode. This flag is ignored
- on Unix. */
-#define PEX_BINARY_ERROR 0x80
-
-
-/* Execute one program. Returns NULL on success. On error returns an
- error string (typically just the name of a system call); the error
- string is statically allocated.
-
- OBJ Returned by pex_init.
-
- FLAGS As above.
-
- EXECUTABLE The program to execute.
-
- ARGV NULL terminated array of arguments to pass to the program.
-
- OUTNAME Sets the output file name as follows:
-
- PEX_SUFFIX set (OUTNAME may not be NULL):
- TEMPBASE parameter to pex_init not NULL:
- Output file name is the concatenation of TEMPBASE
- and OUTNAME.
- TEMPBASE is NULL:
- Output file name is a random file name ending in
- OUTNAME.
- PEX_SUFFIX not set:
- OUTNAME not NULL:
- Output file name is OUTNAME.
- OUTNAME NULL, TEMPBASE not NULL:
- Output file name is randomly chosen using
- TEMPBASE.
- OUTNAME NULL, TEMPBASE NULL:
- Output file name is randomly chosen.
-
- If PEX_LAST is not set, the output file name is the
- name to use for a temporary file holding stdout, if
- any (there will not be a file if PEX_USE_PIPES is set
- and the system supports pipes). If a file is used, it
- will be removed when no longer needed unless
- PEX_SAVE_TEMPS is set.
-
- If PEX_LAST is set, and OUTNAME is not NULL, standard
- output is written to the output file name. The file
- will not be removed. If PEX_LAST and PEX_SUFFIX are
- both set, TEMPBASE may not be NULL.
-
- ERRNAME If not NULL, this is the name of a file to which
- standard error is written. If NULL, standard error of
- the program is standard error of the caller.
-
- ERR On an error return, *ERR is set to an errno value, or
- to 0 if there is no relevant errno.
-*/
-
-extern const char *pex_run (struct pex_obj *obj, int flags,
- const char *executable, char * const *argv,
- const char *outname, const char *errname,
- int *err);
-
-/* As for pex_run (), but takes an extra parameter to enable the
- environment for the child process to be specified.
-
- ENV The environment for the child process, specified as
- an array of character pointers. Each element of the
- array should point to a string of the form VAR=VALUE,
- with the exception of the last element which must be
- a null pointer.
-*/
-
-extern const char *pex_run_in_environment (struct pex_obj *obj, int flags,
- const char *executable,
- char * const *argv,
- char * const *env,
- const char *outname,
- const char *errname, int *err);
-
-/* Return a stream for a temporary file to pass to the first program
- in the pipeline as input. The file name is chosen as for pex_run.
- pex_run closes the file automatically; don't close it yourself. */
-
-extern FILE *pex_input_file (struct pex_obj *obj, int flags,
- const char *in_name);
-
-/* Return a stream for a pipe connected to the standard input of the
- first program in the pipeline. You must have passed
- `PEX_USE_PIPES' to `pex_init'. Close the returned stream
- yourself. */
-
-extern FILE *pex_input_pipe (struct pex_obj *obj, int binary);
-
-/* Read the standard output of the last program to be executed.
- pex_run can not be called after this. BINARY should be non-zero if
- the file should be opened in binary mode; this is ignored on Unix.
- Returns NULL on error. Don't call fclose on the returned FILE; it
- will be closed by pex_free. */
-
-extern FILE *pex_read_output (struct pex_obj *, int binary);
-
-/* Read the standard error of the last program to be executed.
- pex_run can not be called after this. BINARY should be non-zero if
- the file should be opened in binary mode; this is ignored on Unix.
- Returns NULL on error. Don't call fclose on the returned FILE; it
- will be closed by pex_free. */
-
-extern FILE *pex_read_err (struct pex_obj *, int binary);
-
-/* Return exit status of all programs in VECTOR. COUNT indicates the
- size of VECTOR. The status codes in the vector are in the order of
- the calls to pex_run. Returns 0 on error, 1 on success. */
-
-extern int pex_get_status (struct pex_obj *, int count, int *vector);
-
-/* Return times of all programs in VECTOR. COUNT indicates the size
- of VECTOR. struct pex_time is really just struct timeval, but that
- is not portable to all systems. Returns 0 on error, 1 on
- success. */
-
-struct pex_time
-{
- unsigned long user_seconds;
- unsigned long user_microseconds;
- unsigned long system_seconds;
- unsigned long system_microseconds;
-};
-
-extern int pex_get_times (struct pex_obj *, int count,
- struct pex_time *vector);
-
-/* Clean up a pex_obj. If you have not called pex_get_times or
- pex_get_status, this will try to kill the subprocesses. */
-
-extern void pex_free (struct pex_obj *);
-
-/* Just execute one program. Return value is as for pex_run.
- FLAGS Combination of PEX_SEARCH and PEX_STDERR_TO_STDOUT.
- EXECUTABLE As for pex_run.
- ARGV As for pex_run.
- PNAME As for pex_init.
- OUTNAME As for pex_run when PEX_LAST is set.
- ERRNAME As for pex_run.
- STATUS Set to exit status on success.
- ERR As for pex_run.
-*/
-
-extern const char *pex_one (int flags, const char *executable,
- char * const *argv, const char *pname,
- const char *outname, const char *errname,
- int *status, int *err);
-
-/* pexecute and pwait are the old pexecute interface, still here for
- backward compatibility. Don't use these for new code. Instead,
- use pex_init/pex_run/pex_get_status/pex_free, or pex_one. */
-
-/* Definitions used by the pexecute routine. */
-
-#define PEXECUTE_FIRST 1
-#define PEXECUTE_LAST 2
-#define PEXECUTE_ONE (PEXECUTE_FIRST + PEXECUTE_LAST)
-#define PEXECUTE_SEARCH 4
-#define PEXECUTE_VERBOSE 8
-
-/* Execute a program. */
-
-extern int pexecute (const char *, char * const *, const char *,
- const char *, char **, char **, int);
-
-/* Wait for pexecute to finish. */
-
-extern int pwait (int, int *, int);
-
-#if !HAVE_DECL_ASPRINTF
-/* Like sprintf but provides a pointer to malloc'd storage, which must
- be freed by the caller. */
-
-extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
-#endif
-
-#if !HAVE_DECL_VASPRINTF
-/* Like vsprintf but provides a pointer to malloc'd storage, which
- must be freed by the caller. */
-
-extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0);
-#endif
-
-#if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF
-/* Like sprintf but prints at most N characters. */
-extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
-#endif
-
-#if defined(HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF
-/* Like vsprintf but prints at most N characters. */
-extern int vsnprintf (char *, size_t, const char *, va_list) ATTRIBUTE_PRINTF(3,0);
-#endif
-
-#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
-/* Compare version strings. */
-extern int strverscmp (const char *, const char *);
-#endif
-
-/* Set the title of a process */
-extern void setproctitle (const char *name, ...);
-
-/* Increase stack limit if possible. */
-extern void stack_limit_increase (unsigned long);
-
-#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
-
-/* Drastically simplified alloca configurator. If we're using GCC,
- we use __builtin_alloca; otherwise we use the C alloca. The C
- alloca is always available. You can override GCC by defining
- USE_C_ALLOCA yourself. The canonical autoconf macro C_ALLOCA is
- also set/unset as it is often used to indicate whether code needs
- to call alloca(0). */
-extern void *C_alloca (size_t) ATTRIBUTE_MALLOC;
-#undef alloca
-#if GCC_VERSION >= 2000 && !defined USE_C_ALLOCA
-# define alloca(x) __builtin_alloca(x)
-# undef C_ALLOCA
-# define ASTRDUP(X) \
- (__extension__ ({ const char *const libiberty_optr = (X); \
- const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \
- char *const libiberty_nptr = (char *const) alloca (libiberty_len); \
- (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); }))
-#else
-# define alloca(x) C_alloca(x)
-# undef USE_C_ALLOCA
-# define USE_C_ALLOCA 1
-# undef C_ALLOCA
-# define C_ALLOCA 1
-extern const char *libiberty_optr;
-extern char *libiberty_nptr;
-extern unsigned long libiberty_len;
-# define ASTRDUP(X) \
- (libiberty_optr = (X), \
- libiberty_len = strlen (libiberty_optr) + 1, \
- libiberty_nptr = (char *) alloca (libiberty_len), \
- (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len))
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* ! defined (LIBIBERTY_H) */
diff --git a/include/lto-symtab.h b/include/lto-symtab.h
deleted file mode 100644
index 9312c5d9d..000000000
--- a/include/lto-symtab.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Data types used in the IL symbol table.
- Copyright (C) 2009 Free Software Foundation, Inc.
- Contributed by Rafael Espindola <espindola@google.com>
-
-This file is part of GCC.
-
-GCC 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 3, or (at your option) any later
-version.
-
-GCC 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 GCC; see the file COPYING3. If not see
-<http://www.gnu.org/licenses/>. */
-
-#ifndef GCC_LTO_SYMTAB_H
-#define GCC_LTO_SYMTAB_H
-
-enum gcc_plugin_symbol_kind
- {
- GCCPK_DEF,
- GCCPK_WEAKDEF,
- GCCPK_UNDEF,
- GCCPK_WEAKUNDEF,
- GCCPK_COMMON
- };
-
-enum gcc_plugin_symbol_visibility
- {
- GCCPV_DEFAULT,
- GCCPV_PROTECTED,
- GCCPV_INTERNAL,
- GCCPV_HIDDEN
- };
-
-#endif /* GCC_LTO_SYMTAB_H */
diff --git a/include/mach-o/ChangeLog b/include/mach-o/ChangeLog
deleted file mode 100644
index 2276d0145..000000000
--- a/include/mach-o/ChangeLog
+++ /dev/null
@@ -1,19 +0,0 @@
-2011-08-08 Tristan Gingold <gingold@adacore.com>
-
- * loader.h (bfd_mach_o_load_command_type): Add
- BFD_MACH_O_LC_LOAD_UPWARD_DYLIB, BFD_MACH_O_LC_VERSION_MIN_MACOSX,
- BFD_MACH_O_LC_VERSION_MIN_IPHONEOS, BFD_MACH_O_LC_FUNCTION_STARTS,
- and BFD_MACH_O_LC_DYLD_ENVIRONMENT.
- * external.h (mach_o_version_min_command_external): New structure.
-
-2011-08-08 Tristan Gingold <gingold@adacore.com>
-
- * loader.h: Reorder declarations.
- * x86-64.h: New file.
- * external.h: New file.
- * reloc.h: New file.
-
-2011-07-06 Tristan Gingold <gingold@adacore.com>
-
- * loader.h: New file.
-
diff --git a/include/mach-o/external.h b/include/mach-o/external.h
deleted file mode 100644
index ebb09a776..000000000
--- a/include/mach-o/external.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/* Mach-O support for BFD.
- Copyright 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _MACH_O_EXTERNAL_H
-#define _MACH_O_EXTERNAL_H
-
-struct mach_o_header_external
-{
- unsigned char magic[4]; /* Magic number. */
- unsigned char cputype[4]; /* CPU that this object is for. */
- unsigned char cpusubtype[4]; /* CPU subtype. */
- unsigned char filetype[4]; /* Type of file. */
- unsigned char ncmds[4]; /* Number of load commands. */
- unsigned char sizeofcmds[4]; /* Total size of load commands. */
- unsigned char flags[4]; /* Flags. */
- unsigned char reserved[4]; /* Reserved (on 64-bit version only). */
-};
-
-#define BFD_MACH_O_HEADER_SIZE 28
-#define BFD_MACH_O_HEADER_64_SIZE 32
-
-/* 32-bit section header. */
-
-struct mach_o_section_32_external
-{
- unsigned char sectname[16]; /* Section name. */
- unsigned char segname[16]; /* Segment that the section belongs to. */
- unsigned char addr[4]; /* Address of this section in memory. */
- unsigned char size[4]; /* Size in bytes of this section. */
- unsigned char offset[4]; /* File offset of this section. */
- unsigned char align[4]; /* log2 of this section's alignment. */
- unsigned char reloff[4]; /* File offset of this section's relocs. */
- unsigned char nreloc[4]; /* Number of relocs for this section. */
- unsigned char flags[4]; /* Section flags/attributes. */
- unsigned char reserved1[4];
- unsigned char reserved2[4];
-};
-#define BFD_MACH_O_SECTION_SIZE 68
-
-/* 64-bit section header. */
-
-struct mach_o_section_64_external
-{
- unsigned char sectname[16]; /* Section name. */
- unsigned char segname[16]; /* Segment that the section belongs to. */
- unsigned char addr[8]; /* Address of this section in memory. */
- unsigned char size[8]; /* Size in bytes of this section. */
- unsigned char offset[4]; /* File offset of this section. */
- unsigned char align[4]; /* log2 of this section's alignment. */
- unsigned char reloff[4]; /* File offset of this section's relocs. */
- unsigned char nreloc[4]; /* Number of relocs for this section. */
- unsigned char flags[4]; /* Section flags/attributes. */
- unsigned char reserved1[4];
- unsigned char reserved2[4];
- unsigned char reserved3[4];
-};
-#define BFD_MACH_O_SECTION_64_SIZE 80
-
-struct mach_o_load_command_external
-{
- unsigned char cmd[4]; /* The type of load command. */
- unsigned char cmdsize[4]; /* Size in bytes of entire command. */
-};
-#define BFD_MACH_O_LC_SIZE 8
-
-struct mach_o_segment_command_32_external
-{
- unsigned char segname[16]; /* Name of this segment. */
- unsigned char vmaddr[4]; /* Virtual memory address of this segment. */
- unsigned char vmsize[4]; /* Size there, in bytes. */
- unsigned char fileoff[4]; /* Offset in bytes of the data to be mapped. */
- unsigned char filesize[4]; /* Size in bytes on disk. */
- unsigned char maxprot[4]; /* Maximum permitted vm protection. */
- unsigned char initprot[4]; /* Initial vm protection. */
- unsigned char nsects[4]; /* Number of sections in this segment. */
- unsigned char flags[4]; /* Flags that affect the loading. */
-};
-#define BFD_MACH_O_LC_SEGMENT_SIZE 56 /* Include the header. */
-
-struct mach_o_segment_command_64_external
-{
- unsigned char segname[16]; /* Name of this segment. */
- unsigned char vmaddr[8]; /* Virtual memory address of this segment. */
- unsigned char vmsize[8]; /* Size there, in bytes. */
- unsigned char fileoff[8]; /* Offset in bytes of the data to be mapped. */
- unsigned char filesize[8]; /* Size in bytes on disk. */
- unsigned char maxprot[4]; /* Maximum permitted vm protection. */
- unsigned char initprot[4]; /* Initial vm protection. */
- unsigned char nsects[4]; /* Number of sections in this segment. */
- unsigned char flags[4]; /* Flags that affect the loading. */
-};
-#define BFD_MACH_O_LC_SEGMENT_64_SIZE 72 /* Include the header. */
-
-struct mach_o_reloc_info_external
-{
- unsigned char r_address[4];
- unsigned char r_symbolnum[4];
-};
-#define BFD_MACH_O_RELENT_SIZE 8
-
-struct mach_o_symtab_command_external
-{
- unsigned char symoff[4];
- unsigned char nsyms[4];
- unsigned char stroff[4];
- unsigned char strsize[4];
-};
-
-struct mach_o_nlist_external
-{
- unsigned char n_strx[4];
- unsigned char n_type[1];
- unsigned char n_sect[1];
- unsigned char n_desc[2];
- unsigned char n_value[4];
-};
-#define BFD_MACH_O_NLIST_SIZE 12
-
-struct mach_o_nlist_64_external
-{
- unsigned char n_strx[4];
- unsigned char n_type[1];
- unsigned char n_sect[1];
- unsigned char n_desc[2];
- unsigned char n_value[8];
-};
-#define BFD_MACH_O_NLIST_64_SIZE 16
-
-struct mach_o_thread_command_external
-{
- unsigned char flavour[4];
- unsigned char count[4];
-};
-
-/* For commands that just have a string or a path. */
-struct mach_o_str_command_external
-{
- unsigned char str[4];
-};
-
-struct mach_o_dylib_command_external
-{
- unsigned char name[4];
- unsigned char timestamp[4];
- unsigned char current_version[4];
- unsigned char compatibility_version[4];
-};
-
-struct mach_o_dysymtab_command_external
-{
- unsigned char ilocalsym[4]; /* Index of. */
- unsigned char nlocalsym[4]; /* Number of. */
- unsigned char iextdefsym[4];
- unsigned char nextdefsym[4];
- unsigned char iundefsym[4];
- unsigned char nundefsym[4];
- unsigned char tocoff[4];
- unsigned char ntoc[4];
- unsigned char modtaboff[4];
- unsigned char nmodtab[4];
- unsigned char extrefsymoff[4];
- unsigned char nextrefsyms[4];
- unsigned char indirectsymoff[4];
- unsigned char nindirectsyms[4];
- unsigned char extreloff[4];
- unsigned char nextrel[4];
- unsigned char locreloff[4];
- unsigned char nlocrel[4];
-};
-
-struct mach_o_dylib_module_external
-{
- unsigned char module_name[4];
- unsigned char iextdefsym[4];
- unsigned char nextdefsym[4];
- unsigned char irefsym[4];
- unsigned char nrefsym[4];
- unsigned char ilocalsym[4];
- unsigned char nlocalsym[4];
- unsigned char iextrel[4];
- unsigned char nextrel[4];
- unsigned char iinit_iterm[4];
- unsigned char ninit_nterm[4];
- unsigned char objc_module_info_addr[4];
- unsigned char objc_module_info_size[4];
-};
-#define BFD_MACH_O_DYLIB_MODULE_SIZE 52
-
-struct mach_o_dylib_module_64_external
-{
- unsigned char module_name[4];
- unsigned char iextdefsym[4];
- unsigned char nextdefsym[4];
- unsigned char irefsym[4];
- unsigned char nrefsym[4];
- unsigned char ilocalsym[4];
- unsigned char nlocalsym[4];
- unsigned char iextrel[4];
- unsigned char nextrel[4];
- unsigned char iinit_iterm[4];
- unsigned char ninit_nterm[4];
- unsigned char objc_module_info_size[4];
- unsigned char objc_module_info_addr[8];
-};
-#define BFD_MACH_O_DYLIB_MODULE_64_SIZE 56
-
-struct mach_o_dylib_table_of_contents_external
-{
- unsigned char symbol_index[4];
- unsigned char module_index[4];
-};
-#define BFD_MACH_O_TABLE_OF_CONTENT_SIZE 8
-
-struct mach_o_linkedit_data_command_external
-{
- unsigned char dataoff[4];
- unsigned char datasize[4];
-};
-
-struct mach_o_dyld_info_command_external
-{
- unsigned char rebase_off[4];
- unsigned char rebase_size[4];
- unsigned char bind_off[4];
- unsigned char bind_size[4];
- unsigned char weak_bind_off[4];
- unsigned char weak_bind_size[4];
- unsigned char lazy_bind_off[4];
- unsigned char lazy_bind_size[4];
- unsigned char export_off[4];
- unsigned char export_size[4];
-};
-
-struct mach_o_version_min_command_external
-{
- unsigned char version[4];
- unsigned char reserved[4];
-};
-
-struct mach_o_fat_header_external
-{
- unsigned char magic[4];
- unsigned char nfat_arch[4]; /* Number of components. */
-};
-
-struct mach_o_fat_arch_external
-{
- unsigned char cputype[4];
- unsigned char cpusubtype[4];
- unsigned char offset[4]; /* File offset of the member. */
- unsigned char size[4]; /* Size of the member. */
- unsigned char align[4]; /* Power of 2. */
-};
-
-#endif /* _MACH_O_EXTERNAL_H */
diff --git a/include/mach-o/loader.h b/include/mach-o/loader.h
deleted file mode 100644
index 357f65e54..000000000
--- a/include/mach-o/loader.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/* Mach-O support for BFD.
- Copyright 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _MACH_O_LOADER_H
-#define _MACH_O_LOADER_H
-
-/* Constants for header. */
-
-typedef enum bfd_mach_o_mach_header_magic
-{
- BFD_MACH_O_MH_MAGIC = 0xfeedface,
- BFD_MACH_O_MH_CIGAM = 0xcefaedfe,
- BFD_MACH_O_MH_MAGIC_64 = 0xfeedfacf,
- BFD_MACH_O_MH_CIGAM_64 = 0xcffaedfe
-}
-bfd_mach_o_mach_header_magic;
-
-#define BFD_MACH_O_CPU_IS64BIT 0x1000000
-
-typedef enum bfd_mach_o_cpu_type
-{
- BFD_MACH_O_CPU_TYPE_VAX = 1,
- BFD_MACH_O_CPU_TYPE_MC680x0 = 6,
- BFD_MACH_O_CPU_TYPE_I386 = 7,
- BFD_MACH_O_CPU_TYPE_MIPS = 8,
- BFD_MACH_O_CPU_TYPE_MC98000 = 10,
- BFD_MACH_O_CPU_TYPE_HPPA = 11,
- BFD_MACH_O_CPU_TYPE_ARM = 12,
- BFD_MACH_O_CPU_TYPE_MC88000 = 13,
- BFD_MACH_O_CPU_TYPE_SPARC = 14,
- BFD_MACH_O_CPU_TYPE_I860 = 15,
- BFD_MACH_O_CPU_TYPE_ALPHA = 16,
- BFD_MACH_O_CPU_TYPE_POWERPC = 18,
- BFD_MACH_O_CPU_TYPE_POWERPC_64 = (BFD_MACH_O_CPU_TYPE_POWERPC | BFD_MACH_O_CPU_IS64BIT),
- BFD_MACH_O_CPU_TYPE_X86_64 = (BFD_MACH_O_CPU_TYPE_I386 | BFD_MACH_O_CPU_IS64BIT)
-}
-bfd_mach_o_cpu_type;
-
-typedef enum bfd_mach_o_cpu_subtype
-{
- BFD_MACH_O_CPU_SUBTYPE_X86_ALL = 3
-}
-bfd_mach_o_cpu_subtype;
-
-typedef enum bfd_mach_o_filetype
-{
- BFD_MACH_O_MH_OBJECT = 0x01,
- BFD_MACH_O_MH_EXECUTE = 0x02,
- BFD_MACH_O_MH_FVMLIB = 0x03,
- BFD_MACH_O_MH_CORE = 0x04,
- BFD_MACH_O_MH_PRELOAD = 0x05,
- BFD_MACH_O_MH_DYLIB = 0x06,
- BFD_MACH_O_MH_DYLINKER = 0x07,
- BFD_MACH_O_MH_BUNDLE = 0x08,
- BFD_MACH_O_MH_DYLIB_STUB = 0x09,
- BFD_MACH_O_MH_DSYM = 0x0a,
- BFD_MACH_O_MH_KEXT_BUNDLE = 0x0b
-}
-bfd_mach_o_filetype;
-
-typedef enum bfd_mach_o_header_flags
-{
- BFD_MACH_O_MH_NOUNDEFS = 0x0000001,
- BFD_MACH_O_MH_INCRLINK = 0x0000002,
- BFD_MACH_O_MH_DYLDLINK = 0x0000004,
- BFD_MACH_O_MH_BINDATLOAD = 0x0000008,
- BFD_MACH_O_MH_PREBOUND = 0x0000010,
- BFD_MACH_O_MH_SPLIT_SEGS = 0x0000020,
- BFD_MACH_O_MH_LAZY_INIT = 0x0000040,
- BFD_MACH_O_MH_TWOLEVEL = 0x0000080,
- BFD_MACH_O_MH_FORCE_FLAT = 0x0000100,
- BFD_MACH_O_MH_NOMULTIDEFS = 0x0000200,
- BFD_MACH_O_MH_NOFIXPREBINDING = 0x0000400,
- BFD_MACH_O_MH_PREBINDABLE = 0x0000800,
- BFD_MACH_O_MH_ALLMODSBOUND = 0x0001000,
- BFD_MACH_O_MH_SUBSECTIONS_VIA_SYMBOLS = 0x0002000,
- BFD_MACH_O_MH_CANONICAL = 0x0004000,
- BFD_MACH_O_MH_WEAK_DEFINES = 0x0008000,
- BFD_MACH_O_MH_BINDS_TO_WEAK = 0x0010000,
- BFD_MACH_O_MH_ALLOW_STACK_EXECUTION = 0x0020000,
- BFD_MACH_O_MH_ROOT_SAFE = 0x0040000,
- BFD_MACH_O_MH_SETUID_SAFE = 0x0080000,
- BFD_MACH_O_MH_NO_REEXPORTED_DYLIBS = 0x0100000,
- BFD_MACH_O_MH_PIE = 0x0200000,
- BFD_MACH_O_MH_DEAD_STRIPPABLE_DYLIB = 0x0400000,
- BFD_MACH_O_MH_HAS_TLV_DESCRIPTORS = 0x0800000,
- BFD_MACH_O_MH_NO_HEAP_EXECUTION = 0x1000000
-}
-bfd_mach_o_header_flags;
-
-/* Load command constants. */
-#define BFD_MACH_O_LC_REQ_DYLD 0x80000000
-
-typedef enum bfd_mach_o_load_command_type
-{
- BFD_MACH_O_LC_SEGMENT = 0x1, /* File segment to be mapped. */
- BFD_MACH_O_LC_SYMTAB = 0x2, /* Link-edit stab symbol table info (obsolete). */
- BFD_MACH_O_LC_SYMSEG = 0x3, /* Link-edit gdb symbol table info. */
- BFD_MACH_O_LC_THREAD = 0x4, /* Thread. */
- BFD_MACH_O_LC_UNIXTHREAD = 0x5, /* UNIX thread (includes a stack). */
- BFD_MACH_O_LC_LOADFVMLIB = 0x6, /* Load a fixed VM shared library. */
- BFD_MACH_O_LC_IDFVMLIB = 0x7, /* Fixed VM shared library id. */
- BFD_MACH_O_LC_IDENT = 0x8, /* Object identification information (obsolete). */
- BFD_MACH_O_LC_FVMFILE = 0x9, /* Fixed VM file inclusion. */
- BFD_MACH_O_LC_PREPAGE = 0xa, /* Prepage command (internal use). */
- BFD_MACH_O_LC_DYSYMTAB = 0xb, /* Dynamic link-edit symbol table info. */
- BFD_MACH_O_LC_LOAD_DYLIB = 0xc, /* Load a dynamically linked shared library. */
- BFD_MACH_O_LC_ID_DYLIB = 0xd, /* Dynamically linked shared lib identification. */
- BFD_MACH_O_LC_LOAD_DYLINKER = 0xe, /* Load a dynamic linker. */
- BFD_MACH_O_LC_ID_DYLINKER = 0xf, /* Dynamic linker identification. */
- BFD_MACH_O_LC_PREBOUND_DYLIB = 0x10, /* Modules prebound for a dynamically. */
- BFD_MACH_O_LC_ROUTINES = 0x11, /* Image routines. */
- BFD_MACH_O_LC_SUB_FRAMEWORK = 0x12, /* Sub framework. */
- BFD_MACH_O_LC_SUB_UMBRELLA = 0x13, /* Sub umbrella. */
- BFD_MACH_O_LC_SUB_CLIENT = 0x14, /* Sub client. */
- BFD_MACH_O_LC_SUB_LIBRARY = 0x15, /* Sub library. */
- BFD_MACH_O_LC_TWOLEVEL_HINTS = 0x16, /* Two-level namespace lookup hints. */
- BFD_MACH_O_LC_PREBIND_CKSUM = 0x17, /* Prebind checksum. */
- /* Load a dynamically linked shared library that is allowed to be
- missing (weak). */
- BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18,
- BFD_MACH_O_LC_SEGMENT_64 = 0x19, /* 64-bit segment of this file to be
- mapped. */
- BFD_MACH_O_LC_ROUTINES_64 = 0x1a, /* Address of the dyld init routine
- in a dylib. */
- BFD_MACH_O_LC_UUID = 0x1b, /* 128-bit UUID of the executable. */
- BFD_MACH_O_LC_RPATH = 0x1c, /* Run path addiions. */
- BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature. */
- BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg. */
- BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f, /* Load and re-export lib. */
- BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use. */
- BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */
- BFD_MACH_O_LC_DYLD_INFO = 0x22, /* Compressed dyld information. */
- BFD_MACH_O_LC_LOAD_UPWARD_DYLIB = 0x23, /* Load upward dylib. */
- BFD_MACH_O_LC_VERSION_MIN_MACOSX = 0x24, /* Minimal MacOSX version. */
- BFD_MACH_O_LC_VERSION_MIN_IPHONEOS = 0x25, /* Minimal IOS version. */
- BFD_MACH_O_LC_FUNCTION_STARTS = 0x26, /* Compressed table of func start. */
- BFD_MACH_O_LC_DYLD_ENVIRONMENT = 0x27 /* Env variable string for dyld. */
-}
-bfd_mach_o_load_command_type;
-
-/* Section constants. */
-/* Constants for the type of a section. */
-
-typedef enum bfd_mach_o_section_type
-{
- /* Regular section. */
- BFD_MACH_O_S_REGULAR = 0x0,
-
- /* Zero fill on demand section. */
- BFD_MACH_O_S_ZEROFILL = 0x1,
-
- /* Section with only literal C strings. */
- BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
-
- /* Section with only 4 byte literals. */
- BFD_MACH_O_S_4BYTE_LITERALS = 0x3,
-
- /* Section with only 8 byte literals. */
- BFD_MACH_O_S_8BYTE_LITERALS = 0x4,
-
- /* Section with only pointers to literals. */
- BFD_MACH_O_S_LITERAL_POINTERS = 0x5,
-
- /* For the two types of symbol pointers sections and the symbol stubs
- section they have indirect symbol table entries. For each of the
- entries in the section the indirect symbol table entries, in
- corresponding order in the indirect symbol table, start at the index
- stored in the reserved1 field of the section structure. Since the
- indirect symbol table entries correspond to the entries in the
- section the number of indirect symbol table entries is inferred from
- the size of the section divided by the size of the entries in the
- section. For symbol pointers sections the size of the entries in
- the section is 4 bytes and for symbol stubs sections the byte size
- of the stubs is stored in the reserved2 field of the section
- structure. */
-
- /* Section with only non-lazy symbol pointers. */
- BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS = 0x6,
-
- /* Section with only lazy symbol pointers. */
- BFD_MACH_O_S_LAZY_SYMBOL_POINTERS = 0x7,
-
- /* Section with only symbol stubs, byte size of stub in the reserved2
- field. */
- BFD_MACH_O_S_SYMBOL_STUBS = 0x8,
-
- /* Section with only function pointers for initialization. */
- BFD_MACH_O_S_MOD_INIT_FUNC_POINTERS = 0x9,
-
- /* Section with only function pointers for termination. */
- BFD_MACH_O_S_MOD_FINI_FUNC_POINTERS = 0xa,
-
- /* Section contains symbols that are coalesced by the linkers. */
- BFD_MACH_O_S_COALESCED = 0xb,
-
- /* Zero fill on demand section (possibly larger than 4 GB). */
- BFD_MACH_O_S_GB_ZEROFILL = 0xc,
-
- /* Section with only pairs of function pointers for interposing. */
- BFD_MACH_O_S_INTERPOSING = 0xd,
-
- /* Section with only 16 byte literals. */
- BFD_MACH_O_S_16BYTE_LITERALS = 0xe,
-
- /* Section contains DTrace Object Format. */
- BFD_MACH_O_S_DTRACE_DOF = 0xf,
-
- /* Section with only lazy symbol pointers to lazy loaded dylibs. */
- BFD_MACH_O_S_LAZY_DYLIB_SYMBOL_POINTERS = 0x10
-}
-bfd_mach_o_section_type;
-
-/* The flags field of a section structure is separated into two parts a section
- type and section attributes. The section types are mutually exclusive (it
- can only have one type) but the section attributes are not (it may have more
- than one attribute). */
-
-#define BFD_MACH_O_SECTION_TYPE_MASK 0x000000ff
-
-/* Constants for the section attributes part of the flags field of a section
- structure. */
-#define BFD_MACH_O_SECTION_ATTRIBUTES_MASK 0xffffff00
-/* System setable attributes. */
-#define BFD_MACH_O_SECTION_ATTRIBUTES_SYS 0x00ffff00
-/* User attributes. */
-#define BFD_MACH_O_SECTION_ATTRIBUTES_USR 0xff000000
-
-typedef enum bfd_mach_o_section_attribute
-{
- /* Section has local relocation entries. */
- BFD_MACH_O_S_ATTR_LOC_RELOC = 0x00000100,
-
- /* Section has external relocation entries. */
- BFD_MACH_O_S_ATTR_EXT_RELOC = 0x00000200,
-
- /* Section contains some machine instructions. */
- BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS = 0x00000400,
-
- /* A debug section. */
- BFD_MACH_O_S_ATTR_DEBUG = 0x02000000,
-
- /* Used with i386 stubs. */
- BFD_MACH_O_S_SELF_MODIFYING_CODE = 0x04000000,
-
- /* Blocks are live if they reference live blocks. */
- BFD_MACH_O_S_ATTR_LIVE_SUPPORT = 0x08000000,
-
- /* No dead stripping. */
- BFD_MACH_O_S_ATTR_NO_DEAD_STRIP = 0x10000000,
-
- /* Section symbols can be stripped in files with MH_DYLDLINK flag. */
- BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS = 0x20000000,
-
- /* Section contains coalesced symbols that are not to be in the TOC of an
- archive. */
- BFD_MACH_O_S_ATTR_NO_TOC = 0x40000000,
-
- /* Section contains only true machine instructions. */
- BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS = 0x80000000
-}
-bfd_mach_o_section_attribute;
-
-/* Symbol constants. */
-
-/* Symbol n_type values. */
-#define BFD_MACH_O_N_STAB 0xe0 /* If any of these bits set, a symbolic debugging entry. */
-#define BFD_MACH_O_N_PEXT 0x10 /* Private external symbol bit. */
-#define BFD_MACH_O_N_TYPE 0x0e /* Mask for the type bits. */
-#define BFD_MACH_O_N_EXT 0x01 /* External symbol bit, set for external symbols. */
-#define BFD_MACH_O_N_UNDF 0x00 /* Undefined, n_sect == NO_SECT. */
-#define BFD_MACH_O_N_ABS 0x02 /* Absolute, n_sect == NO_SECT. */
-#define BFD_MACH_O_N_INDR 0x0a /* Indirect. */
-#define BFD_MACH_O_N_PBUD 0x0c /* Prebound undefined (defined in a dylib). */
-#define BFD_MACH_O_N_SECT 0x0e /* Defined in section number n_sect. */
-
-#define BFD_MACH_O_NO_SECT 0 /* Symbol not in any section of the image. */
-
-/* Symbol n_desc reference flags. */
-#define BFD_MACH_O_REFERENCE_MASK 0x0f
-#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY 0x00
-#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY 0x01
-#define BFD_MACH_O_REFERENCE_FLAG_DEFINED 0x02
-#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED 0x03
-#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 0x04
-#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 0x05
-
-#define BFD_MACH_O_REFERENCED_DYNAMICALLY 0x10
-#define BFD_MACH_O_N_DESC_DISCARDED 0x20
-#define BFD_MACH_O_N_NO_DEAD_STRIP 0x20
-#define BFD_MACH_O_N_WEAK_REF 0x40
-#define BFD_MACH_O_N_WEAK_DEF 0x80
-
-/* Thread constants. */
-
-typedef enum bfd_mach_o_ppc_thread_flavour
-{
- BFD_MACH_O_PPC_THREAD_STATE = 1,
- BFD_MACH_O_PPC_FLOAT_STATE = 2,
- BFD_MACH_O_PPC_EXCEPTION_STATE = 3,
- BFD_MACH_O_PPC_VECTOR_STATE = 4,
- BFD_MACH_O_PPC_THREAD_STATE64 = 5,
- BFD_MACH_O_PPC_EXCEPTION_STATE64 = 6,
- BFD_MACH_O_PPC_THREAD_STATE_NONE = 7
-}
-bfd_mach_o_ppc_thread_flavour;
-
-/* Defined in <mach/i386/thread_status.h> */
-typedef enum bfd_mach_o_i386_thread_flavour
-{
- BFD_MACH_O_x86_THREAD_STATE32 = 1,
- BFD_MACH_O_x86_FLOAT_STATE32 = 2,
- BFD_MACH_O_x86_EXCEPTION_STATE32 = 3,
- BFD_MACH_O_x86_THREAD_STATE64 = 4,
- BFD_MACH_O_x86_FLOAT_STATE64 = 5,
- BFD_MACH_O_x86_EXCEPTION_STATE64 = 6,
- BFD_MACH_O_x86_THREAD_STATE = 7,
- BFD_MACH_O_x86_FLOAT_STATE = 8,
- BFD_MACH_O_x86_EXCEPTION_STATE = 9,
- BFD_MACH_O_x86_DEBUG_STATE32 = 10,
- BFD_MACH_O_x86_DEBUG_STATE64 = 11,
- BFD_MACH_O_x86_DEBUG_STATE = 12,
- BFD_MACH_O_x86_THREAD_STATE_NONE = 13
-}
-bfd_mach_o_i386_thread_flavour;
-
-#endif /* _MACH_O_LOADER_H */
diff --git a/include/mach-o/reloc.h b/include/mach-o/reloc.h
deleted file mode 100644
index 93ebb8b5f..000000000
--- a/include/mach-o/reloc.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Mach-O support for BFD.
- Copyright 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _MACH_O_RELOC_H
-#define _MACH_O_RELOC_H
-
-/* Fields for a normal (non-scattered) entry. */
-#define BFD_MACH_O_R_PCREL 0x01000000
-#define BFD_MACH_O_GET_R_LENGTH(s) (((s) >> 25) & 0x3)
-#define BFD_MACH_O_R_EXTERN 0x08000000
-#define BFD_MACH_O_GET_R_TYPE(s) (((s) >> 28) & 0x0f)
-#define BFD_MACH_O_GET_R_SYMBOLNUM(s) ((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_R_LENGTH(l) (((l) & 0x3) << 25)
-#define BFD_MACH_O_SET_R_TYPE(t) (((t) & 0xf) << 28)
-#define BFD_MACH_O_SET_R_SYMBOLNUM(s) ((s) & 0x00ffffff)
-
-/* Fields for a scattered entry. */
-#define BFD_MACH_O_SR_SCATTERED 0x80000000
-#define BFD_MACH_O_SR_PCREL 0x40000000
-#define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3)
-#define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f)
-#define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28)
-#define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24)
-#define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff)
-
-/* Generic relocation types (used by i386). */
-#define BFD_MACH_O_GENERIC_RELOC_VANILLA 0
-#define BFD_MACH_O_GENERIC_RELOC_PAIR 1
-#define BFD_MACH_O_GENERIC_RELOC_SECTDIFF 2
-#define BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR 3
-#define BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF 4
-#define BFD_MACH_O_GENERIC_RELOC_TLV 5
-
-#endif /* _MACH_O_RELOC_H */
diff --git a/include/mach-o/x86-64.h b/include/mach-o/x86-64.h
deleted file mode 100644
index d06bc26a7..000000000
--- a/include/mach-o/x86-64.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Mach-O support for BFD.
- Copyright 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _MACH_O_X86_64_H
-#define _MACH_O_X86_64_H
-
-/* X86-64 relocations. */
-#define BFD_MACH_O_X86_64_RELOC_UNSIGNED 0 /* Absolute addresses. */
-#define BFD_MACH_O_X86_64_RELOC_SIGNED 1 /* 32-bit disp. */
-#define BFD_MACH_O_X86_64_RELOC_BRANCH 2 /* 32-bit pcrel disp. */
-#define BFD_MACH_O_X86_64_RELOC_GOT_LOAD 3 /* Movq load of a GOT entry. */
-#define BFD_MACH_O_X86_64_RELOC_GOT 4 /* GOT reference. */
-#define BFD_MACH_O_X86_64_RELOC_SUBTRACTOR 5 /* Symbol difference. */
-#define BFD_MACH_O_X86_64_RELOC_SIGNED_1 6 /* 32-bit signed disp -1. */
-#define BFD_MACH_O_X86_64_RELOC_SIGNED_2 7 /* 32-bit signed disp -2. */
-#define BFD_MACH_O_X86_64_RELOC_SIGNED_4 8 /* 32-bit signed disp -4. */
-#define BFD_MACH_O_X86_64_RELOC_TLV 9 /* Thread local variables. */
-
-#endif /* _MACH_O_X86_64_H */
diff --git a/include/md5.h b/include/md5.h
deleted file mode 100644
index b3ff4e145..000000000
--- a/include/md5.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* md5.h - Declaration of functions and data types used for MD5 sum
- computing library functions.
- Copyright 1995, 1996, 2000 Free Software Foundation, Inc.
- NOTE: The canonical source of this file is maintained with the GNU C
- Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _MD5_H
-#define _MD5_H 1
-
-#include <stdio.h>
-
-#if defined HAVE_LIMITS_H || _LIBC
-# include <limits.h>
-#endif
-
-#include "ansidecl.h"
-
-/* The following contortions are an attempt to use the C preprocessor
- to determine an unsigned integral type that is 32 bits wide. An
- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
- doing that would require that the configure script compile and *run*
- the resulting executable. Locally running cross-compiled executables
- is usually not possible. */
-
-#ifdef _LIBC
-# include <sys/types.h>
-typedef u_int32_t md5_uint32;
-typedef uintptr_t md5_uintptr;
-#else
-# define INT_MAX_32_BITS 2147483647
-
-/* If UINT_MAX isn't defined, assume it's a 32-bit type.
- This should be valid for all systems GNU cares about because
- that doesn't include 16-bit systems, and only modern systems
- (that certainly have <limits.h>) have 64+-bit integral types. */
-
-# ifndef INT_MAX
-# define INT_MAX INT_MAX_32_BITS
-# endif
-
-# if INT_MAX == INT_MAX_32_BITS
- typedef unsigned int md5_uint32;
-# else
-# if SHRT_MAX == INT_MAX_32_BITS
- typedef unsigned short md5_uint32;
-# else
-# if LONG_MAX == INT_MAX_32_BITS
- typedef unsigned long md5_uint32;
-# else
- /* The following line is intended to evoke an error.
- Using #error is not portable enough. */
- "Cannot determine unsigned 32-bit data type."
-# endif
-# endif
-# endif
-/* We have to make a guess about the integer type equivalent in size
- to pointers which should always be correct. */
-typedef unsigned long int md5_uintptr;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Structure to save state of computation between the single steps. */
-struct md5_ctx
-{
- md5_uint32 A;
- md5_uint32 B;
- md5_uint32 C;
- md5_uint32 D;
-
- md5_uint32 total[2];
- md5_uint32 buflen;
- char buffer[128] ATTRIBUTE_ALIGNED_ALIGNOF(md5_uint32);
-};
-
-/*
- * The following three functions are build up the low level used in
- * the functions `md5_stream' and `md5_buffer'.
- */
-
-/* Initialize structure containing state of computation.
- (RFC 1321, 3.3: Step 3) */
-extern void md5_init_ctx (struct md5_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
- initialization function update the context for the next LEN bytes
- starting at BUFFER.
- It is necessary that LEN is a multiple of 64!!! */
-extern void md5_process_block (const void *buffer, size_t len,
- struct md5_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
- initialization function update the context for the next LEN bytes
- starting at BUFFER.
- It is NOT required that LEN is a multiple of 64. */
-extern void md5_process_bytes (const void *buffer, size_t len,
- struct md5_ctx *ctx);
-
-/* Process the remaining bytes in the buffer and put result from CTX
- in first 16 bytes following RESBUF. The result is always in little
- endian byte order, so that a byte-wise output yields to the wanted
- ASCII representation of the message digest.
-
- IMPORTANT: On some systems it is required that RESBUF is correctly
- aligned for a 32 bits value. */
-extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf);
-
-
-/* Put result from CTX in first 16 bytes following RESBUF. The result is
- always in little endian byte order, so that a byte-wise output yields
- to the wanted ASCII representation of the message digest.
-
- IMPORTANT: On some systems it is required that RESBUF is correctly
- aligned for a 32 bits value. */
-extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf);
-
-
-/* Compute MD5 message digest for bytes read from STREAM. The
- resulting message digest number will be written into the 16 bytes
- beginning at RESBLOCK. */
-extern int md5_stream (FILE *stream, void *resblock);
-
-/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
- result is always in little endian byte order, so that a byte-wise
- output yields to the wanted ASCII representation of the message
- digest. */
-extern void *md5_buffer (const char *buffer, size_t len, void *resblock);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/nlm/ChangeLog b/include/nlm/ChangeLog
deleted file mode 100644
index e5ad952be..000000000
--- a/include/nlm/ChangeLog
+++ /dev/null
@@ -1,110 +0,0 @@
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * alpha-ext.h: Update copyright notice to use GPLv3.
- * common.h: Likewise.
- * external.h: Likewise.
- * i386-ext.h: Likewise.
- * internal.h: Likewise.
- * ppc-ext.h: Likewise.
- * sparc32-ext.h: Likewise.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- alpha-ext.h, common.h, external.h, i386-ext.h, internal.h,
- ppc-ext.h, sparc32-ext.h
-
-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.
- (NLM_CAT4): Update conditions under which this is defined. Document
- why CONCAT4 can't be used.
-
-1994-05-06 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * external.h (nlmNAME(External_Custom_Header)): Add length,
- dataOffset, and dataStamp field.
- (nlmNAME(External_Cygnus_Ext_Header)): Remove.
- * internal.h (Nlm_Internal_Custom_Header): Add hdrLength,
- dataOffset, dataStamp and hdr fields.
-
-1994-04-22 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * external.h (struct nlmNAME(external_cygnus_ext_header)): Rename
- from nlmNAME(external_cygnus_section_header). Change stamp field
- to 8 bytes. Add bytes field.
- * internal.h (nlm_internal_cygnus_ext_header): Rename from
- nlm_internal_cygnus_section_header. Change stamp field to 8
- bytes.
-
-1994-04-21 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h (struct nlm_internal_cygnus_section_header): Define.
- * external.h (struct nlmNAME(external_cygnus_section_header):
- Define.
-
-1994-04-20 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h (struct nlm_internal_custom_header): Remove
- debugRecOffset and debugRecLength fields. Add data field.
- * external.h (struct nlmNAME(external_custom_header)): Remove
- debugRecOffset and debugRecLength fields.
-
-1994-02-07 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.
-
-1993-12-02 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * alpha-ext.h: New file describing formats of information in Alpha
- NetWare files.
- * common.h: Define some non-external Alpha information.
-
-1993-11-17 Sean Eric Fagan (sef@cygnus.com)
-
- * external.h: Don't define external_fixed_header here.
- * i386-ext.h, sparc32-ext.h: New header files to define
- external_fixed_header for particular CPU's.
-
-1993-10-27 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h (Nlm_Internal_Extended_Header): Added fields
- sharedDebugRecordOffset and sharedDebugRecordCount.
- * external.h (NlmNAME(External_Extended_Header)): Likewise.
-
- * common.h (NLM_SIGNATURE): Do not define (it's different for each
- backend).
-
-1993-08-31 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * internal.h: Change length fields of type char to type unsigned
- char.
-
-1993-07-31 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * common.h (NLM_HIBIT, NLM_HEADER_VERSION): Define.
-
-1993-07-22 Fred Fish (fnf@deneb.cygnus.com)
-
- * common.h (NLM_CAT*, NLM_ARCH_SIZE, NLM_TARGET_LONG_SIZE,
- NLM_TARGET_ADDRESS_SIZE, NLM_NAME, NlmNAME, nlmNAME): New
- macros.
- * external.h (TARGET_LONG_SIZE, TARGET_ADDRESS_SIZE): Remove
- macros, convert usages to NLM_ equivalents.
- * external.h: Use nlmNAME and NlmNAME macros to derive both
- 32 and 64 bit versions.
-
-1993-07-20 Fred Fish (fnf@deneb.cygnus.com)
-
- * (common.h, external.h, internal.h): New files for NLM/NetWare
- support.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/nlm/alpha-ext.h b/include/nlm/alpha-ext.h
deleted file mode 100644
index 7dc65688f..000000000
--- a/include/nlm/alpha-ext.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Alpha NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 2005, 2010 Free Software Foundation, Inc.
- By Ian Lance Taylor, Cygnus Support
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* An Alpha NLM starts with an instance of this structure. */
-
-struct nlm32_alpha_external_prefix_header
-{
- /* Magic number. Must be NLM32_ALPHA_MAGIC. */
- unsigned char magic[4];
- /* Format descriptor. Current value is 2. */
- unsigned char format[4];
- /* Size of prefix header. */
- unsigned char size[4];
- /* Padding. */
- unsigned char pad1[4];
- /* More fields may be added later, supposedly. */
-};
-
-/* The external format of an Alpha NLM reloc. This is the same as an
- Alpha ECOFF reloc. */
-
-struct nlm32_alpha_external_reloc
-{
- unsigned char r_vaddr[8];
- unsigned char r_symndx[4];
- unsigned char r_bits[4];
-};
-
-/* Constants to unpack the r_bits field of a reloc. */
-
-#define RELOC_BITS0_TYPE_LITTLE 0xff
-#define RELOC_BITS0_TYPE_SH_LITTLE 0
-
-#define RELOC_BITS1_EXTERN_LITTLE 0x01
-
-#define RELOC_BITS1_OFFSET_LITTLE 0x7e
-#define RELOC_BITS1_OFFSET_SH_LITTLE 1
-
-#define RELOC_BITS1_RESERVED_LITTLE 0x80
-#define RELOC_BITS1_RESERVED_SH_LITTLE 7
-#define RELOC_BITS2_RESERVED_LITTLE 0xff
-#define RELOC_BITS2_RESERVED_SH_LEFT_LITTLE 1
-#define RELOC_BITS3_RESERVED_LITTLE 0x03
-#define RELOC_BITS3_RESERVED_SH_LEFT_LITTLE 9
-
-#define RELOC_BITS3_SIZE_LITTLE 0xfc
-#define RELOC_BITS3_SIZE_SH_LITTLE 2
-
-/* The external format of the fixed header. */
-
-typedef struct nlm32_alpha_external_fixed_header
-{
-
- /* The signature field identifies the file as an NLM. It must contain
- the signature string, which depends upon the NLM target. */
-
- unsigned char signature[24];
-
- /* The version of the header. At this time, the highest version number
- is 4. */
-
- unsigned char version[4];
-
- /* The name of the module, which must be a DOS name (1-8 characters followed
- by a period and a 1-3 character extension). The first byte is the byte
- length of the name and the last byte is a null terminator byte. This
- field is fixed length, and any unused bytes should be null bytes. The
- value is set by the OUTPUT keyword to NLMLINK. */
-
- unsigned char moduleName[14];
-
- /* Padding to make it come out correct. */
-
- unsigned char pad1[2];
-
- /* The byte offset of the code image from the start of the file. */
-
- unsigned char codeImageOffset[4];
-
- /* The size of the code image, in bytes. */
-
- unsigned char codeImageSize[4];
-
- /* The byte offset of the data image from the start of the file. */
-
- unsigned char dataImageOffset[4];
-
- /* The size of the data image, in bytes. */
-
- unsigned char dataImageSize[4];
-
- /* The size of the uninitialized data region that the loader is to be
- allocated at load time. Uninitialized data follows the initialized
- data in the NLM address space. */
-
- unsigned char uninitializedDataSize[4];
-
- /* The byte offset of the custom data from the start of the file. The
- custom data is set by the CUSTOM keyword to NLMLINK. It is possible
- for this to be EOF if there is no custom data. */
-
- unsigned char customDataOffset[4];
-
- /* The size of the custom data, in bytes. */
-
- unsigned char customDataSize[4];
-
- /* The byte offset of the module dependencies from the start of the file.
- The module dependencies are determined by the MODULE keyword in
- NLMLINK. */
-
- unsigned char moduleDependencyOffset[4];
-
- /* The number of module dependencies at the moduleDependencyOffset. */
-
- unsigned char numberOfModuleDependencies[4];
-
- /* The byte offset of the relocation fixup data from the start of the file */
-
- unsigned char relocationFixupOffset[4];
-
- unsigned char numberOfRelocationFixups[4];
-
- unsigned char externalReferencesOffset[4];
-
- unsigned char numberOfExternalReferences[4];
-
- unsigned char publicsOffset[4];
-
- unsigned char numberOfPublics[4];
-
- /* The byte offset of the internal debug info from the start of the file.
- It is possible for this to be EOF if there is no debug info. */
-
- unsigned char debugInfoOffset[4];
-
- unsigned char numberOfDebugRecords[4];
-
- unsigned char codeStartOffset[4];
-
- unsigned char exitProcedureOffset[4];
-
- unsigned char checkUnloadProcedureOffset[4];
-
- unsigned char moduleType[4];
-
- unsigned char flags[4];
-
-} Nlm32_alpha_External_Fixed_Header;
diff --git a/include/nlm/common.h b/include/nlm/common.h
deleted file mode 100644
index fcd290e0c..000000000
--- a/include/nlm/common.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 2001, 2005, 2010 Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of NLM support for BFD, and contains the portions
- that are common to both the internal and external representations. */
-
-/* If NLM_ARCH_SIZE is not defined, default to 32. NLM_ARCH_SIZE is
- optionally defined by the application. */
-
-#ifndef NLM_ARCH_SIZE
-# define NLM_ARCH_SIZE 32
-#endif
-
-/* Due to horrible details of ANSI macro expansion, we can't use CONCAT4
- for NLM_NAME. CONCAT2 is used in BFD_JUMP_TABLE macros, and some of
- them will expand to tokens that themselves are macros defined in terms
- of NLM_NAME. If NLM_NAME were defined using CONCAT4 (which is itself
- defined in bfd-in.h using CONCAT2), ANSI preprocessor rules say that
- the CONCAT2 within NLM_NAME should not be expanded.
- So use another name. */
-#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
-#ifdef SABER
-#define NLM_CAT4(a,b,c,d) a##b##c##d
-#else
-/* This hack is to avoid a problem with some strict ANSI C preprocessors.
- The problem is, "32_" is not a valid preprocessing token, and we don't
- want extra underscores (e.g., "nlm_32_"). The NLM_XCAT2 macro will
- cause the inner CAT2 macros to be evaluated first, producing
- still-valid pp-tokens. Then the final concatenation can be done. */
-#define NLM_CAT2(a,b) a##b
-#define NLM_XCAT2(a,b) NLM_CAT2(a,b)
-#define NLM_CAT4(a,b,c,d) NLM_XCAT2(NLM_CAT2(a,b),NLM_CAT2(c,d))
-#endif
-#else
-#define NLM_CAT4(a,b,c,d) a/**/b/**/c/**/d
-#endif
-
-#if NLM_ARCH_SIZE == 32
-# define NLM_TARGET_LONG_SIZE 4
-# define NLM_TARGET_ADDRESS_SIZE 4
-# define NLM_NAME(x,y) NLM_CAT4(x,32,_,y)
-# define NLM_HIBIT (((bfd_vma) 1) << 31)
-#endif
-#if NLM_ARCH_SIZE == 64
-# define NLM_TARGET_LONG_SIZE 8
-# define NLM_TARGET_ADDRESS_SIZE 8
-# define NLM_NAME(x,y) NLM_CAT4(x,64,_,y)
-# define NLM_HIBIT (((bfd_vma) 1) << 63)
-#endif
-
-#define NlmNAME(X) NLM_NAME(Nlm,X)
-#define nlmNAME(X) NLM_NAME(nlm,X)
-
-/* Give names to things that should not change. */
-
-#define NLM_MAX_DESCRIPTION_LENGTH 127
-#define NLM_MAX_SCREEN_NAME_LENGTH 71
-#define NLM_MAX_THREAD_NAME_LENGTH 71
-#define NLM_MAX_COPYRIGHT_MESSAGE_LENGTH 255
-#define NLM_OTHER_DATA_LENGTH 400 /* FIXME */
-#define NLM_OLD_THREAD_NAME_LENGTH 5
-#define NLM_SIGNATURE_SIZE 24
-#define NLM_HEADER_VERSION 4
-#define NLM_MODULE_NAME_SIZE 14
-#define NLM_DEFAULT_STACKSIZE (8 * 1024)
-
-/* Alpha information. This should probably be in a separate Alpha
- header file, but it can't go in alpha-ext.h because some of it is
- needed by nlmconv.c. */
-
-/* Magic number in Alpha prefix header. */
-#define NLM32_ALPHA_MAGIC (0x83561840)
-
-/* The r_type field in an Alpha reloc is one of the following values. */
-#define ALPHA_R_IGNORE 0
-#define ALPHA_R_REFLONG 1
-#define ALPHA_R_REFQUAD 2
-#define ALPHA_R_GPREL32 3
-#define ALPHA_R_LITERAL 4
-#define ALPHA_R_LITUSE 5
-#define ALPHA_R_GPDISP 6
-#define ALPHA_R_BRADDR 7
-#define ALPHA_R_HINT 8
-#define ALPHA_R_SREL16 9
-#define ALPHA_R_SREL32 10
-#define ALPHA_R_SREL64 11
-#define ALPHA_R_OP_PUSH 12
-#define ALPHA_R_OP_STORE 13
-#define ALPHA_R_OP_PSUB 14
-#define ALPHA_R_OP_PRSHIFT 15
-#define ALPHA_R_GPVALUE 16
-#define ALPHA_R_NW_RELOC 250
-
-/* A local reloc, other than ALPHA_R_GPDISP or ALPHA_R_IGNORE, must be
- against one of these symbol indices. */
-#define ALPHA_RELOC_SECTION_TEXT 1
-#define ALPHA_RELOC_SECTION_DATA 3
-
-/* An ALPHA_R_NW_RELOC has one of these values in the size field. If
- it is SETGP, the r_vaddr field holds the GP value to use. If it is
- LITA, the r_vaddr field holds the address of the .lita section and
- the r_symndx field holds the size of the .lita section. */
-#define ALPHA_R_NW_RELOC_SETGP 1
-#define ALPHA_R_NW_RELOC_LITA 2
diff --git a/include/nlm/external.h b/include/nlm/external.h
deleted file mode 100644
index eebd1cca9..000000000
--- a/include/nlm/external.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 1994, 2005, 2010 Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of NLM support for BFD, and contains the portions
- that describe how NLM is represented externally by the BFD library.
- I.E. it describes the in-file representation of NLM. It requires
- the nlm/common.h file which contains the portions that are common to
- both the internal and external representations.
-
- Note that an NLM header consists of three parts:
-
- (1) A fixed length header that has specific fields of known length,
- at specific offsets in the file.
-
- (2) A variable length header that has specific fields in a specific
- order, but some fields may be variable length.
-
- (3) A auxiliary header that has various optional fields in no specific
- order. There is no way to identify the end of the auxiliary headers
- except by finding a header without a recognized 'stamp'.
-
- The exact format of the fixed length header unfortunately varies
- from one NLM target to another, due to padding. Each target
- defines the correct external format in a separate header file. */
-
-/* NLM Header. */
-
-/* The version header is one of the optional auxiliary headers and
- follows the fixed length and variable length NLM headers. */
-
-typedef struct nlmNAME(external_version_header)
-{
-
- /* The header is recognized by "VeRsIoN#" in the stamp field. */
- char stamp[8];
-
- unsigned char majorVersion[NLM_TARGET_LONG_SIZE];
-
- unsigned char minorVersion[NLM_TARGET_LONG_SIZE];
-
- unsigned char revision[NLM_TARGET_LONG_SIZE];
-
- unsigned char year[NLM_TARGET_LONG_SIZE];
-
- unsigned char month[NLM_TARGET_LONG_SIZE];
-
- unsigned char day[NLM_TARGET_LONG_SIZE];
-
-} NlmNAME(External_Version_Header);
-
-
-typedef struct nlmNAME(external_copyright_header)
-{
-
- /* The header is recognized by "CoPyRiGhT=" in the stamp field. */
-
- char stamp[10];
-
- unsigned char copyrightMessageLength[1];
-
- /* There is a variable length field here called 'copyrightMessage'
- that is the length specified by copyrightMessageLength. */
-
-} NlmNAME(External_Copyright_Header);
-
-
-typedef struct nlmNAME(external_extended_header)
-{
-
- /* The header is recognized by "MeSsAgEs" in the stamp field. */
-
- char stamp[8];
-
- unsigned char languageID[NLM_TARGET_LONG_SIZE];
-
- unsigned char messageFileOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char messageFileLength[NLM_TARGET_LONG_SIZE];
-
- unsigned char messageCount[NLM_TARGET_LONG_SIZE];
-
- unsigned char helpFileOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char helpFileLength[NLM_TARGET_LONG_SIZE];
-
- unsigned char RPCDataOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char RPCDataLength[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedCodeOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedCodeLength[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedDataOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedDataLength[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedRelocationFixupOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedRelocationFixupCount[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedExternalReferenceOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedExternalReferenceCount[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedPublicsOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedPublicsCount[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedDebugRecordOffset[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedDebugRecordCount[NLM_TARGET_LONG_SIZE];
-
- unsigned char sharedInitializationOffset[NLM_TARGET_ADDRESS_SIZE];
-
- unsigned char SharedExitProcedureOffset[NLM_TARGET_ADDRESS_SIZE];
-
- unsigned char productID[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved0[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved1[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved2[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved3[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved4[NLM_TARGET_LONG_SIZE];
-
- unsigned char reserved5[NLM_TARGET_LONG_SIZE];
-
-} NlmNAME(External_Extended_Header);
-
-
-typedef struct nlmNAME(external_custom_header)
-{
-
- /* The header is recognized by "CuStHeAd" in the stamp field. */
- char stamp[8];
-
- /* Length of this header. */
- unsigned char length[NLM_TARGET_LONG_SIZE];
-
- /* Offset to data. */
- unsigned char dataOffset[NLM_TARGET_LONG_SIZE];
-
- /* Length of data. */
- unsigned char dataLength[NLM_TARGET_LONG_SIZE];
-
- /* Stamp for this customer header--we recognize "CyGnUsEx". */
- char dataStamp[8];
-
-} NlmNAME(External_Custom_Header);
diff --git a/include/nlm/i386-ext.h b/include/nlm/i386-ext.h
deleted file mode 100644
index 4de8b340d..000000000
--- a/include/nlm/i386-ext.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* i386 NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The external format of the fixed header. */
-
-typedef struct nlm32_i386_external_fixed_header
-{
-
- /* The signature field identifies the file as an NLM. It must contain
- the signature string, which depends upon the NLM target. */
-
- unsigned char signature[24];
-
- /* The version of the header. At this time, the highest version number
- is 4. */
-
- unsigned char version[4];
-
- /* The name of the module, which must be a DOS name (1-8 characters followed
- by a period and a 1-3 character extension). The first byte is the byte
- length of the name and the last byte is a null terminator byte. This
- field is fixed length, and any unused bytes should be null bytes. The
- value is set by the OUTPUT keyword to NLMLINK. */
-
- unsigned char moduleName[14];
-
- /* The byte offset of the code image from the start of the file. */
-
- unsigned char codeImageOffset[4];
-
- /* The size of the code image, in bytes. */
-
- unsigned char codeImageSize[4];
-
- /* The byte offset of the data image from the start of the file. */
-
- unsigned char dataImageOffset[4];
-
- /* The size of the data image, in bytes. */
-
- unsigned char dataImageSize[4];
-
- /* The size of the uninitialized data region that the loader is to be
- allocated at load time. Uninitialized data follows the initialized
- data in the NLM address space. */
-
- unsigned char uninitializedDataSize[4];
-
- /* The byte offset of the custom data from the start of the file. The
- custom data is set by the CUSTOM keyword to NLMLINK. It is possible
- for this to be EOF if there is no custom data. */
-
- unsigned char customDataOffset[4];
-
- /* The size of the custom data, in bytes. */
-
- unsigned char customDataSize[4];
-
- /* The byte offset of the module dependencies from the start of the file.
- The module dependencies are determined by the MODULE keyword in
- NLMLINK. */
-
- unsigned char moduleDependencyOffset[4];
-
- /* The number of module dependencies at the moduleDependencyOffset. */
-
- unsigned char numberOfModuleDependencies[4];
-
- /* The byte offset of the relocation fixup data from the start of the file */
-
- unsigned char relocationFixupOffset[4];
-
- unsigned char numberOfRelocationFixups[4];
-
- unsigned char externalReferencesOffset[4];
-
- unsigned char numberOfExternalReferences[4];
-
- unsigned char publicsOffset[4];
-
- unsigned char numberOfPublics[4];
-
- /* The byte offset of the internal debug info from the start of the file.
- It is possible for this to be EOF if there is no debug info. */
-
- unsigned char debugInfoOffset[4];
-
- unsigned char numberOfDebugRecords[4];
-
- unsigned char codeStartOffset[4];
-
- unsigned char exitProcedureOffset[4];
-
- unsigned char checkUnloadProcedureOffset[4];
-
- unsigned char moduleType[4];
-
- unsigned char flags[4];
-
-} Nlm32_i386_External_Fixed_Header;
diff --git a/include/nlm/internal.h b/include/nlm/internal.h
deleted file mode 100644
index 51e1f00e9..000000000
--- a/include/nlm/internal.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 1994, 2003, 2005, 2010 Free Software Foundation, Inc.
-
- Written by Fred Fish @ Cygnus Support.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file is part of NLM support for BFD, and contains the portions
- that describe how NLM is represented internally in the BFD library.
- I.E. it describes the in-memory representation of NLM. It requires
- the nlm/common.h file which contains the portions that are common to
- both the internal and external representations. */
-
-#if 0
-
-/* Types used by various structures, functions, etc. */
-
-typedef unsigned long Nlm32_Addr; /* Unsigned program address */
-typedef unsigned long Nlm32_Off; /* Unsigned file offset */
-typedef long Nlm32_Sword; /* Signed large integer */
-typedef unsigned long Nlm32_Word; /* Unsigned large integer */
-typedef unsigned short Nlm32_Half; /* Unsigned medium integer */
-typedef unsigned char Nlm32_Char; /* Unsigned tiny integer */
-
-#ifdef BFD_HOST_64_BIT
-typedef unsigned BFD_HOST_64_BIT Nlm64_Addr;
-typedef unsigned BFD_HOST_64_BIT Nlm64_Off;
-typedef BFD_HOST_64_BIT Nlm64_Sxword;
-typedef unsigned BFD_HOST_64_BIT Nlm64_Xword;
-#endif
-typedef long Nlm64_Sword;
-typedef unsigned long Nlm64_Word;
-typedef unsigned short Nlm64_Half;
-
-#endif /* 0 */
-
-/* This structure contains the internal form of the portion of the NLM
- header that is fixed length. */
-
-typedef struct nlm_internal_fixed_header
-{
- /* The signature field identifies the file as an NLM. It must contain
- the signature string, which depends upon the NLM target. */
-
- char signature[NLM_SIGNATURE_SIZE];
-
- /* The version of the header. At this time, the highest version number
- is 4. */
-
- long version;
-
- /* The name of the module, which must be a DOS name (1-8 characters followed
- by a period and a 1-3 character extension. The first byte is the byte
- length of the name and the last byte is a null terminator byte. This
- field is fixed length, and any unused bytes should be null bytes. The
- value is set by the OUTPUT keyword to NLMLINK. */
-
- char moduleName[NLM_MODULE_NAME_SIZE];
-
- /* The byte offset of the code image from the start of the file. */
-
- file_ptr codeImageOffset;
-
- /* The size of the code image, in bytes. */
-
- bfd_size_type codeImageSize;
-
- /* The byte offset of the data image from the start of the file. */
-
- file_ptr dataImageOffset;
-
- /* The size of the data image, in bytes. */
-
- bfd_size_type dataImageSize;
-
- /* The size of the uninitialized data region that the loader is to be
- allocated at load time. Uninitialized data follows the initialized
- data in the NLM address space. */
-
- bfd_size_type uninitializedDataSize;
-
- /* The byte offset of the custom data from the start of the file. The
- custom data is set by the CUSTOM keyword to NLMLINK. */
-
- file_ptr customDataOffset;
-
- /* The size of the custom data, in bytes. */
-
- bfd_size_type customDataSize;
-
- /* The byte offset of the module dependencies from the start of the file.
- The module dependencies are determined by the MODULE keyword in
- NLMLINK. */
-
- file_ptr moduleDependencyOffset;
-
- /* The number of module dependencies at the moduleDependencyOffset. */
-
- long numberOfModuleDependencies;
-
- /* The byte offset of the relocation fixup data from the start of the file */
-
- file_ptr relocationFixupOffset;
- long numberOfRelocationFixups;
- file_ptr externalReferencesOffset;
- long numberOfExternalReferences;
- file_ptr publicsOffset;
- long numberOfPublics;
- file_ptr debugInfoOffset;
- long numberOfDebugRecords;
- file_ptr codeStartOffset;
- file_ptr exitProcedureOffset;
- file_ptr checkUnloadProcedureOffset;
- long moduleType;
- long flags;
-} Nlm_Internal_Fixed_Header;
-
-#define nlm32_internal_fixed_header nlm_internal_fixed_header
-#define Nlm32_Internal_Fixed_Header Nlm_Internal_Fixed_Header
-#define nlm64_internal_fixed_header nlm_internal_fixed_header
-#define Nlm64_Internal_Fixed_Header Nlm_Internal_Fixed_Header
-
-/* This structure contains the portions of the NLM header that are either
- variable in size in the external representation, or else are not at a
- fixed offset relative to the start of the NLM header due to preceding
- variable sized fields.
-
- Note that all the fields must exist in the external header, and in
- the order used here (the same order is used in the internal form
- for consistency, not out of necessity). */
-
-typedef struct nlm_internal_variable_header
-{
-
- /* The descriptionLength field contains the length of the text in
- descriptionText, excluding the null terminator. The descriptionText
- field contains the NLM description obtained from the DESCRIPTION
- keyword in NLMLINK plus the null byte terminator. The descriptionText
- can be up to NLM_MAX_DESCRIPTION_LENGTH characters. */
-
- unsigned char descriptionLength;
- char descriptionText[NLM_MAX_DESCRIPTION_LENGTH + 1];
-
- /* The stackSize field contains the size of the stack in bytes, as
- specified by the STACK or STACKSIZE keyword in NLMLINK. If no size
- is specified, the default is NLM_DEFAULT_STACKSIZE. */
-
- long stackSize;
-
- /* The reserved field is included only for completeness. It should contain
- zero. */
-
- long reserved;
-
- /* This field is fixed length, should contain " LONG" (note leading
- space), and is unused. */
-
- char oldThreadName[NLM_OLD_THREAD_NAME_LENGTH];
-
- /* The screenNameLength field contains the length of the actual text stored
- in the screenName field, excluding the null byte terminator. The
- screenName field contains the screen name as specified by the SCREENNAME
- keyword in NLMLINK, and can be up to NLM_MAX_SCREEN_NAME_LENGTH
- characters. */
-
- unsigned char screenNameLength;
- char screenName[NLM_MAX_SCREEN_NAME_LENGTH + 1];
-
- /* The threadNameLength field contains the length of the actual text stored
- in the threadName field, excluding the null byte terminator. The
- threadName field contains the thread name as specified by the THREADNAME
- keyword in NLMLINK, and can be up to NLM_MAX_THREAD_NAME_LENGTH
- characters. */
-
- unsigned char threadNameLength;
- char threadName[NLM_MAX_THREAD_NAME_LENGTH + 1];
-
-} Nlm_Internal_Variable_Header;
-
-#define nlm32_internal_variable_header nlm_internal_variable_header
-#define Nlm32_Internal_Variable_Header Nlm_Internal_Variable_Header
-#define nlm64_internal_variable_header nlm_internal_variable_header
-#define Nlm64_Internal_Variable_Header Nlm_Internal_Variable_Header
-
-/* The version header is one of the optional auxiliary headers and
- follows the fixed length and variable length NLM headers. */
-
-typedef struct nlm_internal_version_header
-{
- /* The header is recognized by "VeRsIoN#" in the stamp field. */
- char stamp[8];
- long majorVersion;
- long minorVersion;
- long revision;
- long year;
- long month;
- long day;
-} Nlm_Internal_Version_Header;
-
-#define nlm32_internal_version_header nlm_internal_version_header
-#define Nlm32_Internal_Version_Header Nlm_Internal_Version_Header
-#define nlm64_internal_version_header nlm_internal_version_header
-#define Nlm64_Internal_Version_Header Nlm_Internal_Version_Header
-
-typedef struct nlm_internal_copyright_header
-{
- /* The header is recognized by "CoPyRiGhT=" in the stamp field. */
- char stamp[10];
- unsigned char copyrightMessageLength;
- char copyrightMessage[NLM_MAX_COPYRIGHT_MESSAGE_LENGTH];
-} Nlm_Internal_Copyright_Header;
-
-#define nlm32_internal_copyright_header nlm_internal_copyright_header
-#define Nlm32_Internal_Copyright_Header Nlm_Internal_Copyright_Header
-#define nlm64_internal_copyright_header nlm_internal_copyright_header
-#define Nlm64_Internal_Copyright_Header Nlm_Internal_Copyright_Header
-
-typedef struct nlm_internal_extended_header
-{
- /* The header is recognized by "MeSsAgEs" in the stamp field. */
- char stamp[8];
- long languageID;
- file_ptr messageFileOffset;
- bfd_size_type messageFileLength;
- long messageCount;
- file_ptr helpFileOffset;
- bfd_size_type helpFileLength;
- file_ptr RPCDataOffset;
- bfd_size_type RPCDataLength;
- file_ptr sharedCodeOffset;
- bfd_size_type sharedCodeLength;
- file_ptr sharedDataOffset;
- bfd_size_type sharedDataLength;
- file_ptr sharedRelocationFixupOffset;
- long sharedRelocationFixupCount;
- file_ptr sharedExternalReferenceOffset;
- long sharedExternalReferenceCount;
- file_ptr sharedPublicsOffset;
- long sharedPublicsCount;
- file_ptr sharedDebugRecordOffset;
- long sharedDebugRecordCount;
- bfd_vma SharedInitializationOffset;
- bfd_vma SharedExitProcedureOffset;
- long productID;
- long reserved0;
- long reserved1;
- long reserved2;
- long reserved3;
- long reserved4;
- long reserved5;
-} Nlm_Internal_Extended_Header;
-
-#define nlm32_internal_extended_header nlm_internal_extended_header
-#define Nlm32_Internal_Extended_Header Nlm_Internal_Extended_Header
-#define nlm64_internal_extended_header nlm_internal_extended_header
-#define Nlm64_Internal_Extended_Header Nlm_Internal_Extended_Header
-
-/* The format of a custom header as stored internally is different
- from the external format. This is how we store a custom header
- which we do not recognize. */
-
-typedef struct nlm_internal_custom_header
-{
- /* The header is recognized by "CuStHeAd" in the stamp field. */
- char stamp[8];
- bfd_size_type hdrLength;
- file_ptr dataOffset;
- bfd_size_type dataLength;
- char dataStamp[8];
- void *hdr;
-} Nlm_Internal_Custom_Header;
-
-#define nlm32_internal_custom_header nlm_internal_custom_header
-#define Nlm32_Internal_Custom_Header Nlm_Internal_Custom_Header
-#define nlm64_internal_custom_header nlm_internal_custom_header
-#define Nlm64_Internal_Custom_Header Nlm_Internal_Custom_Header
-
-/* The internal Cygnus header is written out externally as a custom
- header. We don't try to replicate that structure here. */
-
-typedef struct nlm_internal_cygnus_ext_header
-{
- /* The header is recognized by "CyGnUsEx" in the stamp field. */
- char stamp[8];
- /* File location of debugging information. */
- file_ptr offset;
- /* Length of debugging information. */
- bfd_size_type length;
-} Nlm_Internal_Cygnus_Ext_Header;
-
-#define nlm32_internal_cygnus_ext_header nlm_internal_cygnus_ext_header
-#define Nlm32_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header
-#define nlm64_internal_cygnus_ext_header nlm_internal_cygnus_ext_header
-#define Nlm64_Internal_Cygnus_Ext_Header Nlm_Internal_Cygnus_Ext_Header
diff --git a/include/nlm/ppc-ext.h b/include/nlm/ppc-ext.h
deleted file mode 100644
index 026984b85..000000000
--- a/include/nlm/ppc-ext.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* PowerPC NLM (NetWare Loadable Module) support for BFD.
- Copyright (C) 1994, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifdef OLDFORMAT
-
-/* The format of a PowerPC NLM changed. These structures are only
- used in the old format. */
-
-/* A PowerPC NLM starts with an instance of this structure. */
-
-struct nlm32_powerpc_external_prefix_header
-{
- /* Signature. Must be "AppleNLM". */
- char signature[8];
- /* Version number. Current value is 1. */
- unsigned char headerVersion[4];
- /* ??. Should be set to 0. */
- unsigned char origins[4];
- /* File creation date in standard Unix time format (seconds since
- 1/1/70). */
- unsigned char date[4];
-};
-
-#define NLM32_POWERPC_SIGNATURE "AppleNLM"
-#define NLM32_POWERPC_HEADER_VERSION 1
-
-/* The external format of a PowerPC NLM reloc. This is the same as an
- XCOFF dynamic reloc. */
-
-struct nlm32_powerpc_external_reloc
-{
- /* Address. */
- unsigned char l_vaddr[4];
- /* Symbol table index. This is 0 for .text and 1 for .data. 2
- means .bss, but I don't know if it is used. In XCOFF, larger
- numbers are indices into the dynamic symbol table, but they are
- presumably not used in an NLM. */
- unsigned char l_symndx[4];
- /* Relocation type. */
- unsigned char l_rtype[2];
- /* Section number being relocated. */
- unsigned char l_rsecnm[2];
-};
-
-#endif /* OLDFORMAT */
-
-/* The external format of the fixed header. */
-
-typedef struct nlm32_powerpc_external_fixed_header
-{
-
- /* The signature field identifies the file as an NLM. It must contain
- the signature string, which depends upon the NLM target. */
-
- unsigned char signature[24];
-
- /* The version of the header. At this time, the highest version number
- is 4. */
-
- unsigned char version[4];
-
- /* The name of the module, which must be a DOS name (1-8 characters followed
- by a period and a 1-3 character extension). The first byte is the byte
- length of the name and the last byte is a null terminator byte. This
- field is fixed length, and any unused bytes should be null bytes. The
- value is set by the OUTPUT keyword to NLMLINK. */
-
- unsigned char moduleName[14];
-
- /* Padding to make it come out correct. */
-
- unsigned char pad1[2];
-
- /* The byte offset of the code image from the start of the file. */
-
- unsigned char codeImageOffset[4];
-
- /* The size of the code image, in bytes. */
-
- unsigned char codeImageSize[4];
-
- /* The byte offset of the data image from the start of the file. */
-
- unsigned char dataImageOffset[4];
-
- /* The size of the data image, in bytes. */
-
- unsigned char dataImageSize[4];
-
- /* The size of the uninitialized data region that the loader is to be
- allocated at load time. Uninitialized data follows the initialized
- data in the NLM address space. */
-
- unsigned char uninitializedDataSize[4];
-
- /* The byte offset of the custom data from the start of the file. The
- custom data is set by the CUSTOM keyword to NLMLINK. It is possible
- for this to be EOF if there is no custom data. */
-
- unsigned char customDataOffset[4];
-
- /* The size of the custom data, in bytes. */
-
- unsigned char customDataSize[4];
-
- /* The byte offset of the module dependencies from the start of the file.
- The module dependencies are determined by the MODULE keyword in
- NLMLINK. */
-
- unsigned char moduleDependencyOffset[4];
-
- /* The number of module dependencies at the moduleDependencyOffset. */
-
- unsigned char numberOfModuleDependencies[4];
-
- /* The byte offset of the relocation fixup data from the start of the file */
-
- unsigned char relocationFixupOffset[4];
-
- unsigned char numberOfRelocationFixups[4];
-
- unsigned char externalReferencesOffset[4];
-
- unsigned char numberOfExternalReferences[4];
-
- unsigned char publicsOffset[4];
-
- unsigned char numberOfPublics[4];
-
- /* The byte offset of the internal debug info from the start of the file.
- It is possible for this to be EOF if there is no debug info. */
-
- unsigned char debugInfoOffset[4];
-
- unsigned char numberOfDebugRecords[4];
-
- unsigned char codeStartOffset[4];
-
- unsigned char exitProcedureOffset[4];
-
- unsigned char checkUnloadProcedureOffset[4];
-
- unsigned char moduleType[4];
-
- unsigned char flags[4];
-
-} Nlm32_powerpc_External_Fixed_Header;
diff --git a/include/nlm/sparc32-ext.h b/include/nlm/sparc32-ext.h
deleted file mode 100644
index a5c78e34b..000000000
--- a/include/nlm/sparc32-ext.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* SPARC NLM (NetWare Loadable Module) support for BFD.
- Copyright 1993, 2005, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The external format of the fixed header. */
-
-typedef struct nlm32_sparc_external_fixed_header
-{
-
- /* The signature field identifies the file as an NLM. It must contain
- the signature string, which depends upon the NLM target. */
-
- unsigned char signature[24];
-
- /* The version of the header. At this time, the highest version number
- is 4. */
-
- unsigned char version[4];
-
- /* The name of the module, which must be a DOS name (1-8 characters followed
- by a period and a 1-3 character extension). The first byte is the byte
- length of the name and the last byte is a null terminator byte. This
- field is fixed length, and any unused bytes should be null bytes. The
- value is set by the OUTPUT keyword to NLMLINK. */
-
- unsigned char moduleName[14];
-
- /* Padding to make it come out correct. */
-
- unsigned char pad1[2];
-
- /* The byte offset of the code image from the start of the file. */
-
- unsigned char codeImageOffset[4];
-
- /* The size of the code image, in bytes. */
-
- unsigned char codeImageSize[4];
-
- /* The byte offset of the data image from the start of the file. */
-
- unsigned char dataImageOffset[4];
-
- /* The size of the data image, in bytes. */
-
- unsigned char dataImageSize[4];
-
- /* The size of the uninitialized data region that the loader is to be
- allocated at load time. Uninitialized data follows the initialized
- data in the NLM address space. */
-
- unsigned char uninitializedDataSize[4];
-
- /* The byte offset of the custom data from the start of the file. The
- custom data is set by the CUSTOM keyword to NLMLINK. It is possible
- for this to be EOF if there is no custom data. */
-
- unsigned char customDataOffset[4];
-
- /* The size of the custom data, in bytes. */
-
- unsigned char customDataSize[4];
-
- /* The byte offset of the module dependencies from the start of the file.
- The module dependencies are determined by the MODULE keyword in
- NLMLINK. */
-
- unsigned char moduleDependencyOffset[4];
-
- /* The number of module dependencies at the moduleDependencyOffset. */
-
- unsigned char numberOfModuleDependencies[4];
-
- /* The byte offset of the relocation fixup data from the start of the file */
-
- unsigned char relocationFixupOffset[4];
-
- unsigned char numberOfRelocationFixups[4];
-
- unsigned char externalReferencesOffset[4];
-
- unsigned char numberOfExternalReferences[4];
-
- unsigned char publicsOffset[4];
-
- unsigned char numberOfPublics[4];
-
- /* The byte offset of the internal debug info from the start of the file.
- It is possible for this to be EOF if there is no debug info. */
-
- unsigned char debugInfoOffset[4];
-
- unsigned char numberOfDebugRecords[4];
-
- unsigned char codeStartOffset[4];
-
- unsigned char exitProcedureOffset[4];
-
- unsigned char checkUnloadProcedureOffset[4];
-
- unsigned char moduleType[4];
-
- unsigned char flags[4];
-
-} Nlm32_sparc_External_Fixed_Header;
diff --git a/include/oasys.h b/include/oasys.h
deleted file mode 100644
index 92d5c266f..000000000
--- a/include/oasys.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Oasys object format header file for BFD.
-
- Copyright 2001, 2010 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 3, 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., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- Contributed by Cygnus Support. */
-
-#define OASYS_MAX_SEC_COUNT 16
-/* **** */
-
-typedef struct oasys_archive_header
- {
- unsigned int version;
- char create_date[12];
- char revision_date[12];
- unsigned int mod_count;
- file_ptr mod_tbl_offset;
- unsigned int sym_tbl_size;
- unsigned int sym_count;
- file_ptr sym_tbl_offset;
- unsigned int xref_count;
- file_ptr xref_lst_offset;
- }
-oasys_archive_header_type;
-
-typedef struct oasys_extarchive_header
- {
- bfd_byte version[4];
- bfd_byte create_date[12];
- bfd_byte revision_date[12];
- bfd_byte mod_count[4];
- bfd_byte mod_tbl_offset[4];
- bfd_byte sym_tbl_size[4];
- bfd_byte sym_count[4];
- bfd_byte sym_tbl_offset[4];
- bfd_byte xref_count[4];
- bfd_byte xref_lst_offset[4];
- }
-oasys_extarchive_header_type;
-
-typedef struct oasys_module_table
- {
- int mod_number;
- char mod_date[12];
- unsigned int mod_size;
- unsigned int dep_count;
- unsigned int depee_count;
- file_ptr file_offset;
- unsigned int sect_count;
- char *module_name;
- unsigned int module_name_size;
- }
-oasys_module_table_type;
-
-typedef struct oasys_extmodule_table_a
- {
- bfd_byte mod_number[4];
- bfd_byte mod_date[12];
- bfd_byte mod_size[4];
- bfd_byte dep_count[4];
- bfd_byte depee_count[4];
- bfd_byte sect_count[4];
- bfd_byte file_offset[4];
- bfd_byte mod_name[32];
- }
-oasys_extmodule_table_type_a_type;
-
-typedef struct oasys_extmodule_table_b
- {
- bfd_byte mod_number[4];
- bfd_byte mod_date[12];
- bfd_byte mod_size[4];
- bfd_byte dep_count[4];
- bfd_byte depee_count[4];
- bfd_byte sect_count[4];
- bfd_byte file_offset[4];
- bfd_byte mod_name_length[4];
- }
-oasys_extmodule_table_type_b_type;
-
-typedef enum oasys_record
- {
- oasys_record_is_end_enum = 0,
- oasys_record_is_data_enum = 1,
- oasys_record_is_symbol_enum = 2,
- oasys_record_is_header_enum = 3,
- oasys_record_is_named_section_enum = 4,
- oasys_record_is_com_enum = 5,
- oasys_record_is_debug_enum = 6,
- oasys_record_is_section_enum = 7,
- oasys_record_is_debug_file_enum = 8,
- oasys_record_is_module_enum = 9,
- oasys_record_is_local_enum = 10
- }
-oasys_record_enum_type;
-
-typedef struct oasys_record_header
- {
- unsigned char length;
- unsigned char check_sum;
- unsigned char type;
- unsigned char fill;
- }
-oasys_record_header_type;
-
-typedef struct oasys_data_record
- {
- oasys_record_header_type header;
- unsigned char relb;
- bfd_byte addr[4];
- /* maximum total size of data record is 255 bytes */
- bfd_byte data[246];
- }
-oasys_data_record_type;
-
-typedef struct oasys_header_record
- {
- oasys_record_header_type header;
- unsigned char version_number;
- unsigned char rev_number;
- char module_name[26-6];
- char description[64-26];
- }
-oasys_header_record_type;
-
-#define OASYS_VERSION_NUMBER 0
-#define OASYS_REV_NUMBER 0
-
-typedef struct oasys_symbol_record
- {
- oasys_record_header_type header;
- unsigned char relb;
- bfd_byte value[4];
- bfd_byte refno[2];
- char name[64];
- }
-oasys_symbol_record_type;
-
-#define RELOCATION_PCREL_BIT 0x80
-#define RELOCATION_32BIT_BIT 0x40
-#define RELOCATION_TYPE_BITS 0x30
-#define RELOCATION_TYPE_ABS 0x00
-#define RELOCATION_TYPE_REL 0x10
-#define RELOCATION_TYPE_UND 0x20
-#define RELOCATION_TYPE_COM 0x30
-#define RELOCATION_SECT_BITS 0x0f
-
-typedef struct oasys_section_record
- {
- oasys_record_header_type header;
- unsigned char relb;
- bfd_byte value[4];
- bfd_byte vma[4];
- bfd_byte fill[3];
- }
-oasys_section_record_type;
-
-typedef struct oasys_end_record
- {
- oasys_record_header_type header;
- unsigned char relb;
- bfd_byte entry[4];
- bfd_byte fill[2];
- bfd_byte zero;
- }
-oasys_end_record_type;
-
-typedef union oasys_record_union
- {
- oasys_record_header_type header;
- oasys_data_record_type data;
- oasys_section_record_type section;
- oasys_symbol_record_type symbol;
- oasys_header_record_type first;
- oasys_end_record_type end;
- bfd_byte pad[256];
- }
-oasys_record_union_type;
diff --git a/include/objalloc.h b/include/objalloc.h
deleted file mode 100644
index 36772d17b..000000000
--- a/include/objalloc.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* objalloc.h -- routines to allocate memory for objects
- Copyright 1997, 2001 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Solutions.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, 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, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef OBJALLOC_H
-#define OBJALLOC_H
-
-#include "ansidecl.h"
-
-/* These routines allocate space for an object. The assumption is
- that the object will want to allocate space as it goes along, but
- will never want to free any particular block. There is a function
- to free a block, which also frees all more recently allocated
- blocks. There is also a function to free all the allocated space.
-
- This is essentially a specialization of obstacks. The main
- difference is that a block may not be allocated a bit at a time.
- Another difference is that these routines are always built on top
- of malloc, and always pass an malloc failure back to the caller,
- unlike more recent versions of obstacks. */
-
-/* This is what an objalloc structure looks like. Callers should not
- refer to these fields, nor should they allocate these structure
- themselves. Instead, they should only create them via
- objalloc_init, and only access them via the functions and macros
- listed below. The structure is only defined here so that we can
- access it via macros. */
-
-struct objalloc
-{
- char *current_ptr;
- unsigned int current_space;
- void *chunks;
-};
-
-/* Work out the required alignment. */
-
-struct objalloc_align { char x; double d; };
-
-#if defined (__STDC__) && __STDC__
-#ifndef offsetof
-#include <stddef.h>
-#endif
-#endif
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
-#endif
-#define OBJALLOC_ALIGN offsetof (struct objalloc_align, d)
-
-/* Create an objalloc structure. Returns NULL if malloc fails. */
-
-extern struct objalloc *objalloc_create (void);
-
-/* Allocate space from an objalloc structure. Returns NULL if malloc
- fails. */
-
-extern void *_objalloc_alloc (struct objalloc *, unsigned long);
-
-/* The macro version of objalloc_alloc. We only define this if using
- gcc, because otherwise we would have to evaluate the arguments
- multiple times, or use a temporary field as obstack.h does. */
-
-#if defined (__GNUC__) && defined (__STDC__) && __STDC__
-
-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
- does not implement __extension__. But that compiler doesn't define
- __GNUC_MINOR__. */
-#if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-#define __extension__
-#endif
-
-#define objalloc_alloc(o, l) \
- __extension__ \
- ({ struct objalloc *__o = (o); \
- unsigned long __len = (l); \
- if (__len == 0) \
- __len = 1; \
- __len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \
- (__len <= __o->current_space \
- ? (__o->current_ptr += __len, \
- __o->current_space -= __len, \
- (void *) (__o->current_ptr - __len)) \
- : _objalloc_alloc (__o, __len)); })
-
-#else /* ! __GNUC__ */
-
-#define objalloc_alloc(o, l) _objalloc_alloc ((o), (l))
-
-#endif /* ! __GNUC__ */
-
-/* Free an entire objalloc structure. */
-
-extern void objalloc_free (struct objalloc *);
-
-/* Free a block allocated by objalloc_alloc. This also frees all more
- recently allocated blocks. */
-
-extern void objalloc_free_block (struct objalloc *, void *);
-
-#endif /* OBJALLOC_H */
diff --git a/include/obstack.h b/include/obstack.h
deleted file mode 100644
index 23487ba4f..000000000
--- a/include/obstack.h
+++ /dev/null
@@ -1,545 +0,0 @@
-/* obstack.h - object stack macros
- Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
- Free Software Foundation, Inc.
-
-
- NOTE: The canonical source of this file is maintained with the GNU C Library.
- Bugs can be reported to bug-glibc@gnu.org.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
- USA. */
-
-/* Summary:
-
-All the apparent functions defined here are macros. The idea
-is that you would use these pre-tested macros to solve a
-very specific set of problems, and they would run fast.
-Caution: no side-effects in arguments please!! They may be
-evaluated MANY times!!
-
-These macros operate a stack of objects. Each object starts life
-small, and may grow to maturity. (Consider building a word syllable
-by syllable.) An object can move while it is growing. Once it has
-been "finished" it never changes address again. So the "top of the
-stack" is typically an immature growing object, while the rest of the
-stack is of mature, fixed size and fixed address objects.
-
-These routines grab large chunks of memory, using a function you
-supply, called `obstack_chunk_alloc'. On occasion, they free chunks,
-by calling `obstack_chunk_free'. You must define them and declare
-them before using any obstack macros.
-
-Each independent stack is represented by a `struct obstack'.
-Each of the obstack macros expects a pointer to such a structure
-as the first argument.
-
-One motivation for this package is the problem of growing char strings
-in symbol tables. Unless you are "fascist pig with a read-only mind"
---Gosper's immortal quote from HAKMEM item 154, out of context--you
-would not like to put any arbitrary upper limit on the length of your
-symbols.
-
-In practice this often means you will build many short symbols and a
-few long symbols. At the time you are reading a symbol you don't know
-how long it is. One traditional method is to read a symbol into a
-buffer, realloc()ating the buffer every time you try to read a symbol
-that is longer than the buffer. This is beaut, but you still will
-want to copy the symbol from the buffer to a more permanent
-symbol-table entry say about half the time.
-
-With obstacks, you can work differently. Use one obstack for all symbol
-names. As you read a symbol, grow the name in the obstack gradually.
-When the name is complete, finalize it. Then, if the symbol exists already,
-free the newly read name.
-
-The way we do this is to take a large chunk, allocating memory from
-low addresses. When you want to build a symbol in the chunk you just
-add chars above the current "high water mark" in the chunk. When you
-have finished adding chars, because you got to the end of the symbol,
-you know how long the chars are, and you can create a new object.
-Mostly the chars will not burst over the highest address of the chunk,
-because you would typically expect a chunk to be (say) 100 times as
-long as an average object.
-
-In case that isn't clear, when we have enough chars to make up
-the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
-so we just point to it where it lies. No moving of chars is
-needed and this is the second win: potentially long strings need
-never be explicitly shuffled. Once an object is formed, it does not
-change its address during its lifetime.
-
-When the chars burst over a chunk boundary, we allocate a larger
-chunk, and then copy the partly formed object from the end of the old
-chunk to the beginning of the new larger chunk. We then carry on
-accreting characters to the end of the object as we normally would.
-
-A special macro is provided to add a single char at a time to a
-growing object. This allows the use of register variables, which
-break the ordinary 'growth' macro.
-
-Summary:
- We allocate large chunks.
- We carve out one object at a time from the current chunk.
- Once carved, an object never moves.
- We are free to append data of any size to the currently
- growing object.
- Exactly one object is growing in an obstack at any one time.
- You can run one obstack per control block.
- You may have as many control blocks as you dare.
- Because of the way we do it, you can `unwind' an obstack
- back to a previous state. (You may remove objects much
- as you would with a stack.)
-*/
-
-
-/* Don't do the contents of this file more than once. */
-
-#ifndef _OBSTACK_H
-#define _OBSTACK_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* We use subtraction of (char *) 0 instead of casting to int
- because on word-addressable machines a simple cast to int
- may ignore the byte-within-word field of the pointer. */
-
-#ifndef __PTR_TO_INT
-# define __PTR_TO_INT(P) ((P) - (char *) 0)
-#endif
-
-#ifndef __INT_TO_PTR
-# define __INT_TO_PTR(P) ((P) + (char *) 0)
-#endif
-
-/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
- defined, as with GNU C, use that; that way we don't pollute the
- namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
- available, include it and use ptrdiff_t. In traditional C, long is
- the best that we can do. */
-
-#ifdef __PTRDIFF_TYPE__
-# define PTR_INT_TYPE __PTRDIFF_TYPE__
-#else
-# ifdef HAVE_STDDEF_H
-# include <stddef.h>
-# define PTR_INT_TYPE ptrdiff_t
-# else
-# define PTR_INT_TYPE long
-# endif
-#endif
-
-#if defined _LIBC || defined HAVE_STRING_H
-# include <string.h>
-# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
-#else
-# ifdef memcpy
-# define _obstack_memcpy(To, From, N) memcpy ((To), (char *)(From), (N))
-# else
-# define _obstack_memcpy(To, From, N) bcopy ((char *)(From), (To), (N))
-# endif
-#endif
-
-struct _obstack_chunk /* Lives at front of each chunk. */
-{
- char *limit; /* 1 past end of this chunk */
- struct _obstack_chunk *prev; /* address of prior chunk or NULL */
- char contents[4]; /* objects begin here */
-};
-
-struct obstack /* control current object in current chunk */
-{
- long chunk_size; /* preferred size to allocate chunks in */
- struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */
- char *object_base; /* address of object we are building */
- char *next_free; /* where to add next char to current object */
- char *chunk_limit; /* address of char after current chunk */
- PTR_INT_TYPE temp; /* Temporary for some macros. */
- int alignment_mask; /* Mask of alignment for each object. */
- /* These prototypes vary based on `use_extra_arg', and we use
- casts to the prototypeless function type in all assignments,
- but having prototypes here quiets -Wstrict-prototypes. */
- struct _obstack_chunk *(*chunkfun) (void *, long);
- void (*freefun) (void *, struct _obstack_chunk *);
- void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
- unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
- unsigned maybe_empty_object:1;/* There is a possibility that the current
- chunk contains a zero-length object. This
- prevents freeing the chunk if we allocate
- a bigger chunk to replace it. */
- unsigned alloc_failed:1; /* No longer used, as we now call the failed
- handler on error, but retained for binary
- compatibility. */
-};
-
-/* Declare the external functions we use; they are in obstack.c. */
-
-extern void _obstack_newchunk (struct obstack *, int);
-extern void _obstack_free (struct obstack *, void *);
-extern int _obstack_begin (struct obstack *, int, int,
- void *(*) (long), void (*) (void *));
-extern int _obstack_begin_1 (struct obstack *, int, int,
- void *(*) (void *, long),
- void (*) (void *, void *), void *);
-extern int _obstack_memory_used (struct obstack *);
-
-/* Do the function-declarations after the structs
- but before defining the macros. */
-
-void obstack_init (struct obstack *obstack);
-
-void * obstack_alloc (struct obstack *obstack, int size);
-
-void * obstack_copy (struct obstack *obstack, void *address, int size);
-void * obstack_copy0 (struct obstack *obstack, void *address, int size);
-
-void obstack_free (struct obstack *obstack, void *block);
-
-void obstack_blank (struct obstack *obstack, int size);
-
-void obstack_grow (struct obstack *obstack, void *data, int size);
-void obstack_grow0 (struct obstack *obstack, void *data, int size);
-
-void obstack_1grow (struct obstack *obstack, int data_char);
-void obstack_ptr_grow (struct obstack *obstack, void *data);
-void obstack_int_grow (struct obstack *obstack, int data);
-
-void * obstack_finish (struct obstack *obstack);
-
-int obstack_object_size (struct obstack *obstack);
-
-int obstack_room (struct obstack *obstack);
-void obstack_make_room (struct obstack *obstack, int size);
-void obstack_1grow_fast (struct obstack *obstack, int data_char);
-void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
-void obstack_int_grow_fast (struct obstack *obstack, int data);
-void obstack_blank_fast (struct obstack *obstack, int size);
-
-void * obstack_base (struct obstack *obstack);
-void * obstack_next_free (struct obstack *obstack);
-int obstack_alignment_mask (struct obstack *obstack);
-int obstack_chunk_size (struct obstack *obstack);
-int obstack_memory_used (struct obstack *obstack);
-
-/* Error handler called when `obstack_chunk_alloc' failed to allocate
- more memory. This can be set to a user defined function. The
- default action is to print a message and abort. */
-extern void (*obstack_alloc_failed_handler) (void);
-
-/* Exit value used when `print_and_abort' is used. */
-extern int obstack_exit_failure;
-
-/* Pointer to beginning of object being allocated or to be allocated next.
- Note that this might not be the final address of the object
- because a new chunk might be needed to hold the final size. */
-
-#define obstack_base(h) ((h)->object_base)
-
-/* Size for allocating ordinary chunks. */
-
-#define obstack_chunk_size(h) ((h)->chunk_size)
-
-/* Pointer to next byte not yet allocated in current chunk. */
-
-#define obstack_next_free(h) ((h)->next_free)
-
-/* Mask specifying low bits that should be clear in address of an object. */
-
-#define obstack_alignment_mask(h) ((h)->alignment_mask)
-
-/* To prevent prototype warnings provide complete argument list in
- standard C version. */
-# define obstack_init(h) \
- _obstack_begin ((h), 0, 0, \
- (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-
-# define obstack_begin(h, size) \
- _obstack_begin ((h), (size), 0, \
- (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free)
-
-# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
- _obstack_begin ((h), (size), (alignment), \
- (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun))
-
-# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
- _obstack_begin_1 ((h), (size), (alignment), \
- (void *(*) (void *, long)) (chunkfun), \
- (void (*) (void *, void *)) (freefun), (arg))
-
-# define obstack_chunkfun(h, newchunkfun) \
- ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
-
-# define obstack_freefun(h, newfreefun) \
- ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
-
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
-
-#define obstack_blank_fast(h,n) ((h)->next_free += (n))
-
-#define obstack_memory_used(h) _obstack_memory_used (h)
-
-#if defined __GNUC__ && defined __STDC__ && __STDC__
-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
- does not implement __extension__. But that compiler doesn't define
- __GNUC_MINOR__. */
-# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-# define __extension__
-# endif
-
-/* For GNU C, if not -traditional,
- we can define these macros to compute all args only once
- without using a global variable.
- Also, we can avoid using the `temp' slot, to make faster code. */
-
-# define obstack_object_size(OBSTACK) \
- __extension__ \
- ({ struct obstack *__o = (OBSTACK); \
- (unsigned) (__o->next_free - __o->object_base); })
-
-# define obstack_room(OBSTACK) \
- __extension__ \
- ({ struct obstack *__o = (OBSTACK); \
- (unsigned) (__o->chunk_limit - __o->next_free); })
-
-# define obstack_make_room(OBSTACK,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->chunk_limit - __o->next_free < __len) \
- _obstack_newchunk (__o, __len); \
- (void) 0; })
-
-# define obstack_empty_p(OBSTACK) \
- __extension__ \
- ({ struct obstack *__o = (OBSTACK); \
- (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
-
-# define obstack_grow(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->next_free + __len > __o->chunk_limit) \
- _obstack_newchunk (__o, __len); \
- _obstack_memcpy (__o->next_free, (where), __len); \
- __o->next_free += __len; \
- (void) 0; })
-
-# define obstack_grow0(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->next_free + __len + 1 > __o->chunk_limit) \
- _obstack_newchunk (__o, __len + 1); \
- _obstack_memcpy (__o->next_free, (where), __len); \
- __o->next_free += __len; \
- *(__o->next_free)++ = 0; \
- (void) 0; })
-
-# define obstack_1grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + 1 > __o->chunk_limit) \
- _obstack_newchunk (__o, 1); \
- obstack_1grow_fast (__o, datum); \
- (void) 0; })
-
-/* These assume that the obstack alignment is good enough for pointers or ints,
- and that the data added so far to the current object
- shares that much alignment. */
-
-# define obstack_ptr_grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
- _obstack_newchunk (__o, sizeof (void *)); \
- obstack_ptr_grow_fast (__o, datum); })
-
-# define obstack_int_grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + sizeof (int) > __o->chunk_limit) \
- _obstack_newchunk (__o, sizeof (int)); \
- obstack_int_grow_fast (__o, datum); })
-
-# define obstack_ptr_grow_fast(OBSTACK,aptr) \
-__extension__ \
-({ struct obstack *__o1 = (OBSTACK); \
- *(const void **) __o1->next_free = (aptr); \
- __o1->next_free += sizeof (const void *); \
- (void) 0; })
-
-# define obstack_int_grow_fast(OBSTACK,aint) \
-__extension__ \
-({ struct obstack *__o1 = (OBSTACK); \
- *(int *) __o1->next_free = (aint); \
- __o1->next_free += sizeof (int); \
- (void) 0; })
-
-# define obstack_blank(OBSTACK,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->chunk_limit - __o->next_free < __len) \
- _obstack_newchunk (__o, __len); \
- obstack_blank_fast (__o, __len); \
- (void) 0; })
-
-# define obstack_alloc(OBSTACK,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_blank (__h, (length)); \
- obstack_finish (__h); })
-
-# define obstack_copy(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow (__h, (where), (length)); \
- obstack_finish (__h); })
-
-# define obstack_copy0(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow0 (__h, (where), (length)); \
- obstack_finish (__h); })
-
-/* The local variable is named __o1 to avoid a name conflict
- when obstack_blank is called. */
-# define obstack_finish(OBSTACK) \
-__extension__ \
-({ struct obstack *__o1 = (OBSTACK); \
- void *value; \
- value = (void *) __o1->object_base; \
- if (__o1->next_free == value) \
- __o1->maybe_empty_object = 1; \
- __o1->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
- & ~ (__o1->alignment_mask)); \
- if (__o1->next_free - (char *)__o1->chunk \
- > __o1->chunk_limit - (char *)__o1->chunk) \
- __o1->next_free = __o1->chunk_limit; \
- __o1->object_base = __o1->next_free; \
- value; })
-
-# define obstack_free(OBSTACK, OBJ) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- void *__obj = (void *) (OBJ); \
- if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
- __o->next_free = __o->object_base = (char *) __obj; \
- else (obstack_free) (__o, __obj); })
-
-#else /* not __GNUC__ or not __STDC__ */
-
-# define obstack_object_size(h) \
- (unsigned) ((h)->next_free - (h)->object_base)
-
-# define obstack_room(h) \
- (unsigned) ((h)->chunk_limit - (h)->next_free)
-
-# define obstack_empty_p(h) \
- ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
-
-/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
- so that we can avoid having void expressions
- in the arms of the conditional expression.
- Casting the third operand to void was tried before,
- but some compilers won't accept it. */
-
-# define obstack_make_room(h,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
-
-# define obstack_grow(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- _obstack_memcpy ((h)->next_free, (where), (h)->temp), \
- (h)->next_free += (h)->temp)
-
-# define obstack_grow0(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
- _obstack_memcpy ((h)->next_free, (where), (h)->temp), \
- (h)->next_free += (h)->temp, \
- *((h)->next_free)++ = 0)
-
-# define obstack_1grow(h,datum) \
-( (((h)->next_free + 1 > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), 1), 0) : 0), \
- obstack_1grow_fast (h, datum))
-
-# define obstack_ptr_grow(h,datum) \
-( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
- obstack_ptr_grow_fast (h, datum))
-
-# define obstack_int_grow(h,datum) \
-( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
- obstack_int_grow_fast (h, datum))
-
-# define obstack_ptr_grow_fast(h,aptr) \
- (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
-
-# define obstack_int_grow_fast(h,aint) \
- (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
-
-# define obstack_blank(h,length) \
-( (h)->temp = (length), \
- (((h)->chunk_limit - (h)->next_free < (h)->temp) \
- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- obstack_blank_fast (h, (h)->temp))
-
-# define obstack_alloc(h,length) \
- (obstack_blank ((h), (length)), obstack_finish ((h)))
-
-# define obstack_copy(h,where,length) \
- (obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-
-# define obstack_copy0(h,where,length) \
- (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-
-# define obstack_finish(h) \
-( ((h)->next_free == (h)->object_base \
- ? (((h)->maybe_empty_object = 1), 0) \
- : 0), \
- (h)->temp = __PTR_TO_INT ((h)->object_base), \
- (h)->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
- & ~ ((h)->alignment_mask)), \
- (((h)->next_free - (char *) (h)->chunk \
- > (h)->chunk_limit - (char *) (h)->chunk) \
- ? ((h)->next_free = (h)->chunk_limit) : 0), \
- (h)->object_base = (h)->next_free, \
- (void *) __INT_TO_PTR ((h)->temp))
-
-# define obstack_free(h,obj) \
-( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
- (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk), 0) \
- : ((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0)))
-
-#endif /* not __GNUC__ or not __STDC__ */
-
-#ifdef __cplusplus
-} /* C++ */
-#endif
-
-#endif /* obstack.h */
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
deleted file mode 100644
index 2cbb382d5..000000000
--- a/include/opcode/ChangeLog
+++ /dev/null
@@ -1,1467 +0,0 @@
-2011-12-08 Andrew Pinski <apinski@cavium.com>
- Adam Nemet <anemet@caviumnetworks.com>
-
- * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEON2.
- (INSN_OCTEON2): New macro.
- (CPU_OCTEON2): New macro.
- (OPCODE_IS_MEMBER): Add Octeon2.
-
-2011-11-29 Andrew Pinski <apinski@cavium.com>
-
- * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEONP.
- (INSN_OCTEONP): New macro.
- (CPU_OCTEONP): New macro.
- (OPCODE_IS_MEMBER): Add Octeon+.
- (M_SAA_AB, M_SAAD_AB, M_SAA_OB, M_SAAD_OB): New enum values.
-
-2011-11-01 DJ Delorie <dj@redhat.com>
-
- * rl78.h: New file.
-
-2011-10-24 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h: Fix a typo in description.
-
-2011-09-21 David S. Miller <davem@davemloft.net>
-
- * sparc.h (struct sparc_opcode): Expand 'flags' to unsigned int.
- (F_MUL32, F_DIV32, F_FSMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2,
- F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS,
- F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING): New flag bits.
-
-2011-08-09 Chao-ying Fu <fu@mips.com>
- Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (OP_MASK_3BITPOS, OP_SH_3BITPOS): New macros.
- (OP_MASK_OFFSET12, OP_SH_OFFSET12): Redefine.
- (INSN_ASE_MASK): Add the MCU bit.
- (INSN_MCU): New macro.
- (M_ACLR_AB, M_ACLR_OB, M_ASET_AB, M_ASET_OB): New enum values.
- (MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): New macros.
-
-2011-08-09 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (INSN_WRITE_GPR_S, INSN2_WRITE_GPR_MB): New macros.
- (INSN2_READ_GPR_MC, INSN2_READ_GPR_ME): Likewise.
- (INSN2_WRITE_GPR_MF, INSN2_READ_GPR_MG): Likewise.
- (INSN2_READ_GPR_MJ, INSN2_WRITE_GPR_MJ): Likewise.
- (INSN2_READ_GPR_MP, INSN2_WRITE_GPR_MP): Likewise.
- (INSN2_READ_GPR_MQ, INSN2_WRITE_GPR_MHI): Likewise.
- (INSN2_READ_GPR_MMN): Likewise.
- (INSN2_READ_FPR_D): Change the bit used.
- (INSN2_MOD_GPR_MD, INSN2_MOD_GPR_MF): Likewise.
- (INSN2_MOD_SP, INSN2_READ_GPR_31, INSN2_READ_GP): Likewise.
- (INSN2_READ_PC, INSN2_UNCOND_BRANCH): Likewise.
- (INSN2_COND_BRANCH): Likewise.
- (INSN2_WRITE_GPR_S, INSN2_MOD_GPR_MB): Remove macros.
- (INSN2_MOD_GPR_MC, INSN2_MOD_GPR_ME, INSN2_MOD_GPR_MG): Likewise.
- (INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MP, INSN2_MOD_GPR_MQ): Likewise.
- (INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MM): Likewise.
- (INSN2_MOD_GPR_MN): Likewise.
-
-2011-08-05 David S. Miller <davem@davemloft.net>
-
- * sparc.h: Document new format codes '4', '5', and '('.
- (OPF_LOW4, RS3): New macros.
-
-2011-08-03 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h: Document the use of FP_D in MIPS16 mode. Adjust the
- order of flags documented.
-
-2011-07-29 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h: Clarify the description of microMIPS instruction
- manipulation macros.
- (MICROMIPSOP_MASK_MAJOR, MICROMIPSOP_SH_MAJOR): Remove macros.
-
-2011-07-24 Chao-ying Fu <fu@mips.com>
- Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (OP_MASK_EXTLSB, OP_SH_EXTLSB): New macros.
- (OP_MASK_STYPE, OP_SH_STYPE): Likewise.
- (OP_MASK_CODE10, OP_SH_CODE10): Likewise.
- (OP_MASK_TRAP, OP_SH_TRAP): Likewise.
- (OP_MASK_OFFSET12, OP_SH_OFFSET12): Likewise.
- (OP_MASK_OFFSET10, OP_SH_OFFSET10): Likewise.
- (OP_MASK_RS3, OP_SH_RS3): Likewise.
- (OP_MASK_MB, OP_SH_MB, OP_MASK_MC, OP_SH_MC): Likewise.
- (OP_MASK_MD, OP_SH_MD, OP_MASK_ME, OP_SH_ME): Likewise.
- (OP_MASK_MF, OP_SH_MF, OP_MASK_MG, OP_SH_MG): Likewise.
- (OP_MASK_MJ, OP_SH_MJ, OP_MASK_ML, OP_SH_ML): Likewise.
- (OP_MASK_MP, OP_SH_MP, OP_MASK_MQ, OP_SH_MQ): Likewise.
- (OP_MASK_IMMA, OP_SH_IMMA, OP_MASK_IMMB, OP_SH_IMMB): Likewise.
- (OP_MASK_IMMC, OP_SH_IMMC, OP_MASK_IMMF, OP_SH_IMMF): Likewise.
- (OP_MASK_IMMG, OP_SH_IMMG, OP_MASK_IMMH, OP_SH_IMMH): Likewise.
- (OP_MASK_IMMI, OP_SH_IMMI, OP_MASK_IMMJ, OP_SH_IMMJ): Likewise.
- (OP_MASK_IMML, OP_SH_IMML, OP_MASK_IMMM, OP_SH_IMMM): Likewise.
- (OP_MASK_IMMN, OP_SH_IMMN, OP_MASK_IMMO, OP_SH_IMMO): Likewise.
- (OP_MASK_IMMP, OP_SH_IMMP, OP_MASK_IMMQ, OP_SH_IMMQ): Likewise.
- (OP_MASK_IMMU, OP_SH_IMMU, OP_MASK_IMMW, OP_SH_IMMW): Likewise.
- (OP_MASK_IMMX, OP_SH_IMMX, OP_MASK_IMMY, OP_SH_IMMY): Likewise.
- (INSN_WRITE_GPR_S): New macro.
- (INSN2_BRANCH_DELAY_16BIT, INSN2_BRANCH_DELAY_32BIT): Likewise.
- (INSN2_READ_FPR_D): Likewise.
- (INSN2_MOD_GPR_MB, INSN2_MOD_GPR_MC): Likewise.
- (INSN2_MOD_GPR_MD, INSN2_MOD_GPR_ME): Likewise.
- (INSN2_MOD_GPR_MF, INSN2_MOD_GPR_MG): Likewise.
- (INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MP): Likewise.
- (INSN2_MOD_GPR_MQ, INSN2_MOD_SP): Likewise.
- (INSN2_READ_GPR_31, INSN2_READ_GP, INSN2_READ_PC): Likewise.
- (INSN2_UNCOND_BRANCH, INSN2_COND_BRANCH): Likewise.
- (INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MM, INSN2_MOD_GPR_MN): Likewise.
- (CPU_MICROMIPS): New macro.
- (M_BC1FL, M_BC1TL, M_BC2FL, M_BC2TL): New enum values.
- (M_BEQL, M_BGEZ, M_BGEZL, M_BGEZALL, M_BGTZ, M_BGTZL): Likewise.
- (M_BLEZ, M_BLEZL, M_BLTZ, M_BLTZL, M_BLTZALL, M_BNEL): Likewise.
- (M_CACHE_OB, M_JALS_1, M_JALS_2, M_JALS_A): Likewise.
- (M_LDC2_OB, M_LDL_OB, M_LDM_AB, M_LDM_OB): Likewise.
- (M_LDP_AB, M_LDP_OB, M_LDR_OB, M_LL_OB, M_LLD_OB): Likewise.
- (M_LWC2_OB, M_LWL_OB, M_LWM_AB, M_LWM_OB): Likewise.
- (M_LWP_AB, M_LWP_OB, M_LWR_OB): Likewise.
- (M_LWU_OB, M_PREF_OB, M_SC_OB, M_SCD_OB): Likewise.
- (M_SDC2_OB, M_SDL_OB, M_SDM_AB, M_SDM_OB): Likewise.
- (M_SDP_AB, M_SDP_OB, M_SDR_OB): Likewise.
- (M_SWC2_OB, M_SWL_OB, M_SWM_AB, M_SWM_OB): Likewise.
- (M_SWP_AB, M_SWP_OB, M_SWR_OB): Likewise.
- (MICROMIPSOP_MASK_MAJOR, MICROMIPSOP_SH_MAJOR): New macros.
- (MICROMIPSOP_MASK_IMMEDIATE, MICROMIPSOP_SH_IMMEDIATE): Likewise.
- (MICROMIPSOP_MASK_DELTA, MICROMIPSOP_SH_DELTA): Likewise.
- (MICROMIPSOP_MASK_CODE10, MICROMIPSOP_SH_CODE10): Likewise.
- (MICROMIPSOP_MASK_TRAP, MICROMIPSOP_SH_TRAP): Likewise.
- (MICROMIPSOP_MASK_SHAMT, MICROMIPSOP_SH_SHAMT): Likewise.
- (MICROMIPSOP_MASK_TARGET, MICROMIPSOP_SH_TARGET): Likewise.
- (MICROMIPSOP_MASK_EXTLSB, MICROMIPSOP_SH_EXTLSB): Likewise.
- (MICROMIPSOP_MASK_EXTMSBD, MICROMIPSOP_SH_EXTMSBD): Likewise.
- (MICROMIPSOP_MASK_INSMSB, MICROMIPSOP_SH_INSMSB): Likewise.
- (MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise.
- (MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise.
- (MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise.
- (MICROMIPSOP_MASK_SEL, MICROMIPSOP_SH_SEL): Likewise.
- (MICROMIPSOP_MASK_OFFSET12, MICROMIPSOP_SH_OFFSET12): Likewise.
- (MICROMIPSOP_MASK_3BITPOS, MICROMIPSOP_SH_3BITPOS): Likewise.
- (MICROMIPSOP_MASK_STYPE, MICROMIPSOP_SH_STYPE): Likewise.
- (MICROMIPSOP_MASK_OFFSET10, MICROMIPSOP_SH_OFFSET10): Likewise.
- (MICROMIPSOP_MASK_RS, MICROMIPSOP_SH_RS): Likewise.
- (MICROMIPSOP_MASK_RT, MICROMIPSOP_SH_RT): Likewise.
- (MICROMIPSOP_MASK_RD, MICROMIPSOP_SH_RD): Likewise.
- (MICROMIPSOP_MASK_FS, MICROMIPSOP_SH_FS): Likewise.
- (MICROMIPSOP_MASK_FT, MICROMIPSOP_SH_FT): Likewise.
- (MICROMIPSOP_MASK_FD, MICROMIPSOP_SH_FD): Likewise.
- (MICROMIPSOP_MASK_FR, MICROMIPSOP_SH_FR): Likewise.
- (MICROMIPSOP_MASK_RS3, MICROMIPSOP_SH_RS3): Likewise.
- (MICROMIPSOP_MASK_PREFX, MICROMIPSOP_SH_PREFX): Likewise.
- (MICROMIPSOP_MASK_BCC, MICROMIPSOP_SH_BCC): Likewise.
- (MICROMIPSOP_MASK_CCC, MICROMIPSOP_SH_CCC): Likewise.
- (MICROMIPSOP_MASK_COPZ, MICROMIPSOP_SH_COPZ): Likewise.
- (MICROMIPSOP_MASK_MB, MICROMIPSOP_SH_MB): Likewise.
- (MICROMIPSOP_MASK_MC, MICROMIPSOP_SH_MC): Likewise.
- (MICROMIPSOP_MASK_MD, MICROMIPSOP_SH_MD): Likewise.
- (MICROMIPSOP_MASK_ME, MICROMIPSOP_SH_ME): Likewise.
- (MICROMIPSOP_MASK_MF, MICROMIPSOP_SH_MF): Likewise.
- (MICROMIPSOP_MASK_MG, MICROMIPSOP_SH_MG): Likewise.
- (MICROMIPSOP_MASK_MH, MICROMIPSOP_SH_MH): Likewise.
- (MICROMIPSOP_MASK_MI, MICROMIPSOP_SH_MI): Likewise.
- (MICROMIPSOP_MASK_MJ, MICROMIPSOP_SH_MJ): Likewise.
- (MICROMIPSOP_MASK_ML, MICROMIPSOP_SH_ML): Likewise.
- (MICROMIPSOP_MASK_MM, MICROMIPSOP_SH_MM): Likewise.
- (MICROMIPSOP_MASK_MN, MICROMIPSOP_SH_MN): Likewise.
- (MICROMIPSOP_MASK_MP, MICROMIPSOP_SH_MP): Likewise.
- (MICROMIPSOP_MASK_MQ, MICROMIPSOP_SH_MQ): Likewise.
- (MICROMIPSOP_MASK_IMMA, MICROMIPSOP_SH_IMMA): Likewise.
- (MICROMIPSOP_MASK_IMMB, MICROMIPSOP_SH_IMMB): Likewise.
- (MICROMIPSOP_MASK_IMMC, MICROMIPSOP_SH_IMMC): Likewise.
- (MICROMIPSOP_MASK_IMMD, MICROMIPSOP_SH_IMMD): Likewise.
- (MICROMIPSOP_MASK_IMME, MICROMIPSOP_SH_IMME): Likewise.
- (MICROMIPSOP_MASK_IMMF, MICROMIPSOP_SH_IMMF): Likewise.
- (MICROMIPSOP_MASK_IMMG, MICROMIPSOP_SH_IMMG): Likewise.
- (MICROMIPSOP_MASK_IMMH, MICROMIPSOP_SH_IMMH): Likewise.
- (MICROMIPSOP_MASK_IMMI, MICROMIPSOP_SH_IMMI): Likewise.
- (MICROMIPSOP_MASK_IMMJ, MICROMIPSOP_SH_IMMJ): Likewise.
- (MICROMIPSOP_MASK_IMML, MICROMIPSOP_SH_IMML): Likewise.
- (MICROMIPSOP_MASK_IMMM, MICROMIPSOP_SH_IMMM): Likewise.
- (MICROMIPSOP_MASK_IMMN, MICROMIPSOP_SH_IMMN): Likewise.
- (MICROMIPSOP_MASK_IMMO, MICROMIPSOP_SH_IMMO): Likewise.
- (MICROMIPSOP_MASK_IMMP, MICROMIPSOP_SH_IMMP): Likewise.
- (MICROMIPSOP_MASK_IMMQ, MICROMIPSOP_SH_IMMQ): Likewise.
- (MICROMIPSOP_MASK_IMMU, MICROMIPSOP_SH_IMMU): Likewise.
- (MICROMIPSOP_MASK_IMMW, MICROMIPSOP_SH_IMMW): Likewise.
- (MICROMIPSOP_MASK_IMMX, MICROMIPSOP_SH_IMMX): Likewise.
- (MICROMIPSOP_MASK_IMMY, MICROMIPSOP_SH_IMMY): Likewise.
- (MICROMIPSOP_MASK_CODE, MICROMIPSOP_SH_CODE): Likewise.
- (MICROMIPSOP_MASK_CODE2, MICROMIPSOP_SH_CODE2): Likewise.
- (MICROMIPSOP_MASK_CACHE, MICROMIPSOP_SH_CACHE): Likewise.
- (MICROMIPSOP_MASK_CODE20, MICROMIPSOP_SH_CODE20): Likewise.
- (MICROMIPSOP_MASK_PERFREG, MICROMIPSOP_SH_PERFREG): Likewise.
- (MICROMIPSOP_MASK_CODE19, MICROMIPSOP_SH_CODE19): Likewise.
- (MICROMIPSOP_MASK_ALN, MICROMIPSOP_SH_ALN): Likewise.
- (MICROMIPSOP_MASK_VECBYTE, MICROMIPSOP_SH_VECBYTE): Likewise.
- (MICROMIPSOP_MASK_VECALIGN, MICROMIPSOP_SH_VECALIGN): Likewise.
- (MICROMIPSOP_MASK_DSPACC, MICROMIPSOP_SH_DSPACC): Likewise.
- (MICROMIPSOP_MASK_DSPACC_S, MICROMIPSOP_SH_DSPACC_S): Likewise.
- (MICROMIPSOP_MASK_DSPSFT, MICROMIPSOP_SH_DSPSFT): Likewise.
- (MICROMIPSOP_MASK_DSPSFT_7, MICROMIPSOP_SH_DSPSFT_7): Likewise.
- (MICROMIPSOP_MASK_SA3, MICROMIPSOP_SH_SA3): Likewise.
- (MICROMIPSOP_MASK_SA4, MICROMIPSOP_SH_SA4): Likewise.
- (MICROMIPSOP_MASK_IMM8, MICROMIPSOP_SH_IMM8): Likewise.
- (MICROMIPSOP_MASK_IMM10, MICROMIPSOP_SH_IMM10): Likewise.
- (MICROMIPSOP_MASK_WRDSP, MICROMIPSOP_SH_WRDSP): Likewise.
- (MICROMIPSOP_MASK_RDDSP, MICROMIPSOP_SH_RDDSP): Likewise.
- (MICROMIPSOP_MASK_BP, MICROMIPSOP_SH_BP): Likewise.
- (MICROMIPSOP_MASK_MT_U, MICROMIPSOP_SH_MT_U): Likewise.
- (MICROMIPSOP_MASK_MT_H, MICROMIPSOP_SH_MT_H): Likewise.
- (MICROMIPSOP_MASK_MTACC_T, MICROMIPSOP_SH_MTACC_T): Likewise.
- (MICROMIPSOP_MASK_MTACC_D, MICROMIPSOP_SH_MTACC_D): Likewise.
- (MICROMIPSOP_MASK_BBITIND, MICROMIPSOP_SH_BBITIND): Likewise.
- (MICROMIPSOP_MASK_CINSPOS, MICROMIPSOP_SH_CINSPOS): Likewise.
- (MICROMIPSOP_MASK_CINSLM1, MICROMIPSOP_SH_CINSLM1): Likewise.
- (MICROMIPSOP_MASK_SEQI, MICROMIPSOP_SH_SEQI): Likewise.
- (micromips_opcodes): New declaration.
- (bfd_micromips_num_opcodes): Likewise.
-
-2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (INSN_TRAP): Rename to...
- (INSN_NO_DELAY_SLOT): ... this.
- (INSN_SYNC): Remove macro.
-
-2011-07-01 Eric B. Weddington <eric.weddington@atmel.com>
-
- * avr.h (AVR_ISA_AVR6): Remove AVR_ISA_SPMX as it was actually
- a duplicate of AVR_ISA_SPM.
-
-2011-07-01 Nick Clifton <nickc@redhat.com>
-
- * avr.h (AVR_ISA_AVR6): Fix typo, adding AVR_ISA_SPMX.
-
-2011-06-18 Robin Getz <robin.getz@analog.com>
-
- * bfin.h (is_macmod_signed): New func
-
-2011-06-18 Mike Frysinger <vapier@gentoo.org>
-
- * bfin.h (is_macmod_pmove): Add missing space before func args.
- (is_macmod_hmove): Likewise.
-
-2011-06-13 Walter Lee <walt@tilera.com>
-
- * tilegx.h: New file.
- * tilepro.h: New file.
-
-2011-05-31 Paul Brook <paul@codesourcery.com>
-
- * arm.h (ARM_ARCH_V7R_IDIV): Define.
-
-2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * s390.h: Replace S390_OPERAND_REG_EVEN with
- S390_OPERAND_REG_PAIR.
-
-2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * s390.h: Add S390_OPCODE_REG_EVEN flag.
-
-2011-04-18 Julian Brown <julian@codesourcery.com>
-
- * arm.h (ARM_AEXT_V7_ARM): Remove ARM_EXT_OS from bitmask.
-
-2011-04-11 Dan McDonald <dan@wellkeeper.com>
-
- PR gas/12296
- * arm.h (ARM_AEXT_V7_ARM): Add ARM_EXT_OS.
-
-2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
-
- * avr.h (AVR_ISA_SPMX,AVR_ISA_DES,AVR_ISA_M256,AVR_ISA_XMEGA):
- New instruction set flags.
- (AVR_INSN): Add new instructions for SPM Z+, DES for XMEGA.
-
-2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (M_PREF_AB): New enum value.
-
-2011-02-12 Mike Frysinger <vapier@gentoo.org>
-
- * bfin.h (M_S2RND, M_T, M_W32, M_FU, M_TFU, M_IS, M_ISS2, M_IH,
- M_IU): Define.
- (is_macmod_pmove, is_macmod_hmove): New functions.
-
-2011-02-11 Mike Frysinger <vapier@gentoo.org>
-
- * bfin.h: Add OPCODE_BFIN_H ifdef multiple include protection.
-
-2011-02-04 Bernd Schmidt <bernds@codesourcery.com>
-
- * tic6x-opcode-table.h (cmtl, ll, sl): Available on C64XP.
- * tic6x.h (TIC6X_INSN_ATOMIC): Remove.
-
-2010-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR gas/11395
- * hppa.h (pa_opcodes): Revert last change. Exchange 32 and 64-bit
- "bb" entries.
-
-2010-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR gas/11395
- * hppa.h: Clear "d" bit in "add" and "sub" patterns.
-
-2010-12-18 Richard Sandiford <rdsandiford@googlemail.com>
-
- * mips.h: Update commentary after last commit.
-
-2010-12-18 Mingjie Xing <mingjie.xing@gmail.com>
-
- * mips.h (OP_*_OFFSET_A, OP_*_OFFSET_B, OP_*_OFFSET_C)
- (OP_*_RZ, OP_*_FZ, INSN2_M_FP_D, INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z)
- (INSN2_READ_GPR_Z, INSN2_READ_FPR_Z, INSN2_READ_GPR_D): Define.
-
-2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.
-
-2010-11-23 Richard Sandiford <rdsandiford@googlemail.com>
-
- * mips.h: Fix previous commit.
-
-2010-11-23 Maciej W. Rozycki <macro@linux-mips.org>
-
- * mips.h (INSN_CHIP_MASK): Update according to INSN_LOONGSON_3A.
- (INSN_LOONGSON_3A): Clear bit 31.
-
-2010-11-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- PR gas/12198
- * arm.h (ARM_AEXT_V6M_ONLY): New define.
- (ARM_AEXT_V6M): Rewrite in terms of ARM_AEXT_V6M_ONLY.
- (ARM_ARCH_V6M_ONLY): New define.
-
-2010-11-11 Mingming Sun <mingm.sun@gmail.com>
-
- * mips.h (INSN_LOONGSON_3A): Defined.
- (CPU_LOONGSON_3A): Defined.
- (OPCODE_IS_MEMBER): Add LOONGSON_3A.
-
-2010-10-09 Matt Rice <ratmice@gmail.com>
-
- * cgen.h (CGEN_ATTR, CGEN_ATTR_TYPE): Rename bool attribute to bool_.
- (CGEN_ATTR_BOOLS, CGEN_ATTR_CGEN_INSN_ALIAS_VALUE): Likewise.
-
-2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (ARM_EXT_VIRT): New define.
- (ARM_ARCH_V7A_IDIV_MP_SEC): Rename...
- (ARM_ARCH_V7A_IDIV_MP_SEC_VIRT): ...to this and include Virtualization
- Extensions.
-
-2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (ARM_AEXT_ADIV): New define.
- (ARM_ARCH_V7A_IDIV_MP_SEC): Likewise.
-
-2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (ARM_EXT_OS): New define.
- (ARM_AEXT_V6SM): Likewise.
- (ARM_ARCH_V6SM): Likewise.
-
-2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * arm.h (ARM_EXT_MP): Add.
- (ARM_ARCH_V7A_MP): Likewise.
-
-2010-09-22 Mike Frysinger <vapier@gentoo.org>
-
- * bfin.h: Declare pseudoChr structs/defines.
-
-2010-09-21 Mike Frysinger <vapier@gentoo.org>
-
- * bfin.h: Strip trailing whitespace.
-
-2010-07-29 DJ Delorie <dj@redhat.com>
-
- * rx.h (RX_Operand_Type): Add TwoReg.
- (RX_Opcode_ID): Remove ediv and ediv2.
-
-2010-07-27 DJ Delorie <dj@redhat.com>
-
- * rx.h (RX_Opcode_ID): Add nop2 and nop3 for statistics.
-
-2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
- Ina Pandit <ina.pandit@kpitcummins.com>
-
- * v850.h: Define PROCESSOR_MASK, PROCESSOR_OPTION_EXTENSION,
- PROCESSOR_OPTION_ALIAS, PROCESSOR_V850E2, PROCESSOR_V850E2V3 and
- PROCESSOR_V850E2_ALL.
- Remove PROCESSOR_V850EA support.
- (v850_operand): Define V850_OPERAND_EP, V850_OPERAND_FLOAT_CC,
- V850_OPERAND_VREG, V850E_IMMEDIATE16, V850E_IMMEDIATE16HI,
- V850E_IMMEDIATE23, V850E_IMMEDIATE32, V850_OPERAND_SIGNED,
- V850_OPERAND_DISP, V850_PCREL, V850_REG_EVEN, V850E_PUSH_POP,
- V850_NOT_IMM0, V850_NOT_SA, V850_OPERAND_BANG and
- V850_OPERAND_PERCENT.
- Update V850_OPERAND_SRG, V850_OPERAND_CC, V850_OPERAND_RELAX and
- V850_NOT_R0.
- Remove V850_OPERAND_SIGNED, V850_OPERAND_EP, V850_OPERAND_DISP
- and V850E_PUSH_POP
-
-2010-07-06 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h (MIPS16_INSN_UNCOND_BRANCH): New macro.
- (MIPS16_INSN_BRANCH): Rename to...
- (MIPS16_INSN_COND_BRANCH): ... this.
-
-2010-07-03 Alan Modra <amodra@gmail.com>
-
- * ppc.h (PPC_OPCODE_32, PPC_OPCODE_BOOKE64, PPC_OPCODE_CLASSIC): Delete.
- Renumber other PPC_OPCODE defines.
-
-2010-07-03 Alan Modra <amodra@gmail.com>
-
- * ppc.h (PPC_OPCODE_COMMON): Expand comment.
-
-2010-06-29 Alan Modra <amodra@gmail.com>
-
- * maxq.h: Delete file.
-
-2010-06-14 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-
- * ppc.h (PPC_OPCODE_E500): Define.
-
-2010-05-26 Catherine Moore <clm@codesourcery.com>
-
- * opcode/mips.h (INSN_MIPS16): Remove.
-
-2010-04-21 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-insn-formats.h (s_branch): Correct typo in bitmask.
-
-2010-04-15 Nick Clifton <nickc@redhat.com>
-
- * alpha.h: Update copyright notice to use GPLv3.
- * arc.h: Likewise.
- * arm.h: Likewise.
- * avr.h: Likewise.
- * bfin.h: Likewise.
- * cgen.h: Likewise.
- * convex.h: Likewise.
- * cr16.h: Likewise.
- * cris.h: Likewise.
- * crx.h: Likewise.
- * d10v.h: Likewise.
- * d30v.h: Likewise.
- * dlx.h: Likewise.
- * h8300.h: Likewise.
- * hppa.h: Likewise.
- * i370.h: Likewise.
- * i386.h: Likewise.
- * i860.h: Likewise.
- * i960.h: Likewise.
- * ia64.h: Likewise.
- * m68hc11.h: Likewise.
- * m68k.h: Likewise.
- * m88k.h: Likewise.
- * maxq.h: Likewise.
- * mips.h: Likewise.
- * mmix.h: Likewise.
- * mn10200.h: Likewise.
- * mn10300.h: Likewise.
- * msp430.h: Likewise.
- * np1.h: Likewise.
- * ns32k.h: Likewise.
- * or32.h: Likewise.
- * pdp11.h: Likewise.
- * pj.h: Likewise.
- * pn.h: Likewise.
- * ppc.h: Likewise.
- * pyr.h: Likewise.
- * rx.h: Likewise.
- * s390.h: Likewise.
- * score-datadep.h: Likewise.
- * score-inst.h: Likewise.
- * sparc.h: Likewise.
- * spu-insns.h: Likewise.
- * spu.h: Likewise.
- * tic30.h: Likewise.
- * tic4x.h: Likewise.
- * tic54x.h: Likewise.
- * tic80.h: Likewise.
- * v850.h: Likewise.
- * vax.h: Likewise.
-
-2010-03-25 Joseph Myers <joseph@codesourcery.com>
-
- * tic6x-control-registers.h, tic6x-insn-formats.h,
- tic6x-opcode-table.h, tic6x.h: New.
-
-2010-02-25 Wu Zhangjin <wuzhangjin@gmail.com>
-
- * mips.h: (LOONGSON2F_NOP_INSN): New macro.
-
-2010-02-08 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
-
- * opcode/ppc.h (PPC_OPCODE_TITAN): Define.
-
-2010-01-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * ia64.h (ia64_find_opcode): Remove argument name.
- (ia64_find_next_opcode): Likewise.
- (ia64_dis_opcode): Likewise.
- (ia64_free_opcode): Likewise.
- (ia64_find_dependency): Likewise.
-
-2009-11-22 Doug Evans <dje@sebabeach.org>
-
- * cgen.h: Include bfd_stdint.h.
- (CGEN_INSN_LGSINT, CGEN_INSN_LGUINT): New types.
-
-2009-11-18 Paul Brook <paul@codesourcery.com>
-
- * arm.h (FPU_VFP_V4_SP_D16, FPU_ARCH_VFP_V4_SP_D16): Define.
-
-2009-11-17 Paul Brook <paul@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
-
- * arm.h (ARM_EXT_V6_DSP): Define.
- (ARM_AEXT_V6T2, ARM_AEXT_NOTM): Include ARM_EXT_V6_DSP.
- (ARM_AEXT_V7EM, ARM_ARCH_V7EM): Define.
-
-2009-11-04 DJ Delorie <dj@redhat.com>
-
- * rx.h (rx_decode_opcode) (mvtipl): Add.
- (mvtcp, mvfcp, opecp): Remove.
-
-2009-11-02 Paul Brook <paul@codesourcery.com>
-
- * arm.h (FPU_VFP_EXT_V3xD, FPU_VFP_EXT_FP16, FPU_NEON_EXT_FMA,
- FPU_VFP_EXT_FMA, FPU_VFP_V3xD, FPU_VFP_V4D16, FPU_VFP_V4): Define.
- (FPU_ARCH_VFP_V3D16_FP16, FPU_ARCH_VFP_V3_FP16, FPU_ARCH_VFP_V3xD,
- FPU_ARCH_VFP_V3xD_FP16, FPU_ARCH_VFP_V4, FPU_ARCH_VFP_V4D16,
- FPU_ARCH_NEON_VFP_V4): Define.
-
-2009-10-23 Doug Evans <dje@sebabeach.org>
-
- * cgen-bitset.h: Delete, moved to ../cgen/bitset.h.
- * cgen.h: Update. Improve multi-inclusion macro name.
-
-2009-10-02 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (PPC_OPCODE_476): Define.
-
-2009-10-01 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (PPC_OPCODE_A2): Rename from PPC_OPCODE_PPCA2.
-
-2009-09-29 DJ Delorie <dj@redhat.com>
-
- * rx.h: New file.
-
-2009-09-22 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (ppc_cpu_t): Typedef to uint64_t.
-
-2009-09-21 Ben Elliston <bje@au.ibm.com>
-
- * ppc.h (PPC_OPCODE_PPCA2): New.
-
-2009-09-05 Martin Thuresson <martin@mtme.org>
-
- * ia64.h (struct ia64_operand): Renamed member class to op_class.
-
-2009-08-29 Martin Thuresson <martin@mtme.org>
-
- * tic30.h (template): Rename type template to
- insn_template. Updated code to use new name.
- * tic54x.h (template): Rename type template to
- insn_template.
-
-2009-08-20 Nick Hudson <nick.hudson@gmx.co.uk>
-
- * hppa.h (pa_opcodes): Add a pa10 bb without FLAG_STRICT.
-
-2009-06-11 Anthony Green <green@moxielogic.com>
-
- * moxie.h (MOXIE_F3_PCREL): Define.
- (moxie_form3_opc_info): Grow.
-
-2009-06-06 Anthony Green <green@moxielogic.com>
-
- * moxie.h (MOXIE_F1_M): Define.
-
-2009-04-15 Anthony Green <green@moxielogic.com>
-
- * moxie.h: Created.
-
-2009-04-06 DJ Delorie <dj@redhat.com>
-
- * h8300.h: Add relaxation attributes to MOVA opcodes.
-
-2009-03-10 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (ppc_parse_cpu): Declare.
-
-2009-03-02 Qinwei <qinwei@sunnorth.com.cn>
-
- * score-inst.h (score_insn_type, score_data_type): Add Ra_I9_I5
- and _IMM11 for mbitclr and mbitset.
- * score-datadep.h: Update dependency information.
-
-2009-02-26 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (PPC_OPCODE_POWER7): New.
-
-2009-02-06 Doug Evans <dje@google.com>
-
- * i386.h: Add comment regarding sse* insns and prefixes.
-
-2009-02-03 Sandip Matte <sandip@rmicorp.com>
-
- * mips.h (INSN_XLR): Define.
- (INSN_CHIP_MASK): Update.
- (CPU_XLR): Define.
- (OPCODE_IS_MEMBER): Update.
- (M_MSGSND, M_MSGLD, M_MSGLD_T, M_MSGWAIT, M_MSGWAIT_T): Define.
-
-2009-01-28 Doug Evans <dje@google.com>
-
- * opcode/i386.h: Add multiple inclusion protection.
- (EAX_REG_NUM,ECX_REG_NUM,EDX_REGNUM,EBX_REG_NUM,ESI_REG_NUM)
- (EDI_REG_NUM): New macros.
- (MODRM_MOD_FIELD,MODRM_REG_FIELD,MODRM_RM_FIELD): New macros.
- (SIB_SCALE_FIELD,SIB_INDEX_FIELD,SIB_BASE_FIELD): New macros.
- (REX_PREFIX_P): New macro.
-
-2009-01-09 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (struct powerpc_opcode): New field "deprecated".
- (PPC_OPCODE_NOPOWER4): Delete.
-
-2008-11-28 Joshua Kinard <kumba@gentoo.org>
-
- * mips.h: Define CPU_R14000, CPU_R16000.
- (OPCODE_IS_MEMBER): Include R14000, R16000 in test.
-
-2008-11-18 Catherine Moore <clm@codesourcery.com>
-
- * arm.h (FPU_NEON_FP16): New.
- (FPU_ARCH_NEON_FP16): New.
-
-2008-11-06 Chao-ying Fu <fu@mips.com>
-
- * mips.h: Doucument '1' for 5-bit sync type.
-
-2008-08-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * ia64.h (ia64_resource_specifier): Add IA64_RS_CR_IIB. Update
- IA64_RS_CR.
-
-2008-08-01 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (PPC_OPCODE_VSX, PPC_OPERAND_VSR): New.
-
-2008-07-30 Michael J. Eager <eager@eagercon.com>
-
- * ppc.h (PPC_OPCODE_405): Define.
- (PPC_OPERAND_FSL, PPC_OPERAND_FCR, PPC_OPERAND_UDI): Define.
-
-2008-06-13 Peter Bergner <bergner@vnet.ibm.com>
-
- * ppc.h (ppc_cpu_t): New typedef.
- (struct powerpc_opcode <flags>): Use it.
- (struct powerpc_operand <insert, extract>): Likewise.
- (struct powerpc_macro <flags>): Likewise.
-
-2008-06-12 Adam Nemet <anemet@caviumnetworks.com>
-
- * mips.h: Document new field descriptors +x, +X, +p, +P, +s, +S.
- Update comment before MIPS16 field descriptors to mention MIPS16.
- (OP_SH_BBITIND, OP_MASK_BBITIND): New bit mask and shift count for
- BBIT.
- (OP_SH_CINSPOS, OP_MASK_CINSPOS, OP_SH_CINSLM1, OP_MASK_CINSLM1):
- New bit masks and shift counts for cins and exts.
-
- * mips.h: Document new field descriptors +Q.
- (OP_SH_SEQI, OP_MASK_SEQI): New bit mask and shift count for SEQI.
-
-2008-04-28 Adam Nemet <anemet@caviumnetworks.com>
-
- * mips.h (INSN_MACRO): Move it up to the the pinfo macros.
- (INSN2_M_FP_S, INSN2_M_FP_D): New pinfo2 macros.
-
-2008-04-14 Edmar Wienskoski <edmar@freescale.com>
-
- * ppc.h: (PPC_OPCODE_E500MC): New.
-
-2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (MAX_OPERANDS): Set to 5.
- (MAX_MNEM_SIZE): Changed to 20.
-
-2008-03-28 Eric B. Weddington <eric.weddington@atmel.com>
-
- * avr.h (AVR_ISA_TINY3): Define new opcode set for attiny167.
-
-2008-03-09 Paul Brook <paul@codesourcery.com>
-
- * arm.h (FPU_VFP_EXT_D32, FPU_VFP_V3D16, FPU_ARCH_VFP_V3D16): Define.
-
-2008-03-04 Paul Brook <paul@codesourcery.com>
-
- * arm.h (ARM_EXT_V6M, ARM_EXT_BARRIER, ARM_EXT_THUMB_MSR): Define.
- (ARM_AEXT_V6T2, ARM_AEXT_V7_ARM, ARM_AEXT_V7M): Use new flags.
- (ARM_AEXT_V6M, ARM_ARCH_V6M): Define.
-
-2008-02-27 Denis Vlasenko <vda.linux@googlemail.com>
- Nick Clifton <nickc@redhat.com>
-
- PR 3134
- * h8300.h (h8_opcodes): Add an encoding for a mov.l instruction
- with a 32-bit displacement but without the top bit of the 4th byte
- set.
-
-2008-02-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * cr16.h (cr16_num_optab): Declared.
-
-2008-02-14 Hakan Ardo <hakan@debian.org>
-
- PR gas/2626
- * avr.h (AVR_ISA_2xxe): Define.
-
-2008-02-04 Adam Nemet <anemet@caviumnetworks.com>
-
- * mips.h: Update copyright.
- (INSN_CHIP_MASK): New macro.
- (INSN_OCTEON): New macro.
- (CPU_OCTEON): New macro.
- (OPCODE_IS_MEMBER): Handle Octeon instructions.
-
-2008-01-23 Eric B. Weddington <eric.weddington@atmel.com>
-
- * avr.h (AVR_ISA_RF401): Add new opcode set for at86rf401.
-
-2008-01-03 Eric B. Weddington <eric.weddington@atmel.com>
-
- * avr.h (AVR_ISA_USB162): Add new opcode set.
- (AVR_ISA_AVR3): Likewise.
-
-2007-11-29 Mark Shinwell <shinwell@codesourcery.com>
-
- * mips.h (INSN_LOONGSON_2E): New.
- (INSN_LOONGSON_2F): New.
- (CPU_LOONGSON_2E): New.
- (CPU_LOONGSON_2F): New.
- (OPCODE_IS_MEMBER): Update for Loongson-2E and -2F flags.
-
-2007-11-29 Mark Shinwell <shinwell@codesourcery.com>
-
- * mips.h (INSN_ISA*): Redefine certain values as an
- enumeration. Update comments.
- (mips_isa_table): New.
- (ISA_MIPS*): Redefine to match enumeration.
- (OPCODE_IS_MEMBER): Modify to correctly test new INSN_ISA*
- values.
-
-2007-08-08 Ben Elliston <bje@au.ibm.com>
-
- * ppc.h (PPC_OPCODE_PPCPS): New.
-
-2007-07-03 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h: Document j K & E.
-
-2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
-
- * cr16.h: New file for CR16 target.
-
-2007-05-02 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (PPC_OPERAND_PLUS1): Update comment.
-
-2007-04-23 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (mcfisa_c): New.
- (mcfusp, mcf_mask): Adjust.
-
-2007-04-20 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (struct powerpc_operand): Replace "bits" with "bitm".
- (num_powerpc_operands): Declare.
- (PPC_OPERAND_SIGNED et al): Redefine as hex.
- (PPC_OPERAND_PLUS1): Define.
-
-2007-03-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (REX_MODE64): Renamed to ...
- (REX_W): This.
- (REX_EXTX): Renamed to ...
- (REX_R): This.
- (REX_EXTY): Renamed to ...
- (REX_X): This.
- (REX_EXTZ): Renamed to ...
- (REX_B): This.
-
-2007-03-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h: Add entries from config/tc-i386.h and move tables
- to opcodes/i386-opc.h.
-
-2007-03-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (FloatDR): Removed.
- (i386_optab): Use FloatD and FloatD|FloatR instead of FloatDR.
-
-2007-03-01 Alan Modra <amodra@bigpond.net.au>
-
- * spu-insns.h: Add soma double-float insns.
-
-2007-02-20 Thiemo Seufer <ths@mips.com>
- Chao-Ying Fu <fu@mips.com>
-
- * mips.h (OP_SH_BP, OP_MASK_BP): Add support for balign instruction.
- (INSN_DSPR2): Add flag for DSP R2 instructions.
- (M_BALIGN): New macro.
-
-2007-02-14 Alan Modra <amodra@bigpond.net.au>
-
- * i386.h (i386_optab): Replace all occurrences of Seg2ShortForm
- and Seg3ShortFrom with Shortform.
-
-2007-02-11 H.J. Lu <hongjiu.lu@intel.com>
-
- PR gas/4027
- * i386.h (i386_optab): Put the real "test" before the pseudo
- one.
-
-2007-01-08 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (m68010up): OR fido_a.
-
-2006-12-25 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (fido_a): New.
-
-2006-12-24 Kazu Hirata <kazu@codesourcery.com>
-
- * m68k.h (mcfmac, mcfemac, cfloat, mcfhwdiv, mcfisa_a,
- mcfisa_aa, mcfisa_b, mcfusp, mcf_mask): Double the defined
- values.
-
-2006-11-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Replace CpuPNI with CpuSSE3.
-
-2006-10-31 Mei Ligang <ligang@sunnorth.com.cn>
-
- * score-inst.h (enum score_insn_type): Add Insn_internal.
-
-2006-10-25 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
- Yukishige Shibata <shibata@rd.scei.sony.co.jp>
- Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
- Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
- Alan Modra <amodra@bigpond.net.au>
-
- * spu-insns.h: New file.
- * spu.h: New file.
-
-2006-10-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
-
- * ppc.h (PPC_OPCODE_CELL): Define.
-
-2006-10-23 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
-
- * i386.h : Modify opcode to support for the change in POPCNT opcode
- in amdfam10 architecture.
-
-2006-09-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h: Replace CpuMNI with CpuSSSE3.
-
-2006-09-26 Mark Shinwell <shinwell@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
- Ian Lance Taylor <ian@wasabisystems.com>
- Ben Elliston <bje@wasabisystems.com>
-
- * arm.h (ARM_CEXT_IWMMXT2, ARM_ARCH_IWMMXT2): Define.
-
-2006-09-17 Mei Ligang <ligang@sunnorth.com.cn>
-
- * score-datadep.h: New file.
- * score-inst.h: New file.
-
-2006-07-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Remove InvMem from maskmovq, movhlps,
- movlhps, movmskps, pextrw, pmovmskb, movmskpd, maskmovdqu,
- movdq2q and movq2dq.
-
-2006-07-10 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
- Michael Meissner <michael.meissner@amd.com>
-
- * i386.h: Add amdfam10 new instructions (SSE4a and ABM instructions).
-
-2006-06-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Add "nop" with memory reference.
-
-2006-06-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Update comment for 64bit NOP.
-
-2006-06-06 Ben Elliston <bje@au.ibm.com>
- Anton Blanchard <anton@samba.org>
-
- * ppc.h (PPC_OPCODE_POWER6): Define.
- Adjust whitespace.
-
-2006-06-05 Thiemo Seufer <ths@mips.com>
-
- * mips.h: Improve description of MT flags.
-
-2006-05-25 Richard Sandiford <richard@codesourcery.com>
-
- * m68k.h (mcf_mask): Define.
-
-2006-05-05 Thiemo Seufer <ths@mips.com>
- David Ung <davidu@mips.com>
-
- * mips.h (enum): Add macro M_CACHE_AB.
-
-2006-05-04 Thiemo Seufer <ths@mips.com>
- Nigel Stephens <nigel@mips.com>
- David Ung <davidu@mips.com>
-
- * mips.h: Add INSN_SMARTMIPS define.
-
-2006-04-30 Thiemo Seufer <ths@mips.com>
- David Ung <davidu@mips.com>
-
- * mips.h: Defines udi bits and masks. Add description of
- characters which may appear in the args field of udi
- instructions.
-
-2006-04-26 Thiemo Seufer <ths@networkno.de>
-
- * mips.h: Improve comments describing the bitfield instruction
- fields.
-
-2006-04-26 Julian Brown <julian@codesourcery.com>
-
- * arm.h (FPU_VFP_EXT_V3): Define constant.
- (FPU_NEON_EXT_V1): Likewise.
- (FPU_VFP_HARD): Update.
- (FPU_VFP_V3): Define macro.
- (FPU_ARCH_VFP_V3, FPU_ARCH_VFP_V3_PLUS_NEON_V1): Define macros.
-
-2006-04-07 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
-
- * avr.h (AVR_ISA_PWMx): New.
-
-2006-03-28 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (cpu_m68k, cpu_cf, cpu_m68000, cpu_m68008, cpu_m68010,
- cpu_m68020, cpu_m68ec030, cpu_m68040, cpu_m68060, cpu_m68851,
- cpu_m68881, cpu_m68882, cpu_cpu32, cpu_cf5200, cpu_cf5206e,
- cpu_cf5208, cpu_cf521x, cpu_cf5213, cpu_cf5249, cpu_cf528x,
- cpu_cf5307, cpu_cf5329, cpu_cf5407, cpu_cf547x, cpu_cf548x): Remove.
-
-2006-03-10 Paul Brook <paul@codesourcery.com>
-
- * arm.h (ARM_AEXT_V7_ARM): Include v6ZK extensions.
-
-2006-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcodes): Reorder bb opcodes so that pa10 opcodes come
- first. Correct mask of bb "B" opcode.
-
-2006-02-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Support Intel Merom New Instructions.
-
-2006-02-24 Paul Brook <paul@codesourcery.com>
-
- * arm.h: Add V7 feature bits.
-
-2006-02-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * ia64.h (ia64_opnd): Add IA64_OPND_IMMU5b.
-
-2006-01-31 Paul Brook <paul@codesourcery.com>
- Richard Earnshaw <rearnsha@arm.com>
-
- * arm.h: Use ARM_CPU_FEATURE.
- (ARM_AEXT_*, FPU_ENDIAN_PURE, FPU_VFP_HARD): New.
- (arm_feature_set): Change to a structure.
- (ARM_CPU_HAS_FEATURE, ARM_MERGE_FEATURE_SETS, ARM_CLEAR_FEATURE,
- ARM_FEATURE): New macros.
-
-2005-12-07 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (MOVE_M_TO_PREG_OPCODE, MOVE_M_TO_PREG_ZBITS)
- (MOVE_PC_INCR_OPCODE_PREFIX, MOVE_PC_INCR_OPCODE_SUFFIX): New macros.
- (ADD_PC_INCR_OPCODE): Don't define.
-
-2005-12-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR gas/1874
- * i386.h (i386_optab): Add 64bit support for monitor and mwait.
-
-2005-11-14 David Ung <davidu@mips.com>
-
- * mips.h: Assign 'm'/'M' codes to MIPS16e save/restore
- instructions. Define MIPS16_ALL_ARGS and MIPS16_ALL_STATICS for
- save/restore encoding of the args field.
-
-2005-10-28 Dave Brolley <brolley@redhat.com>
-
- Contribute the following changes:
- 2005-02-16 Dave Brolley <brolley@redhat.com>
-
- * cgen-bitset.h: Rename CGEN_ISA_MASK to CGEN_BITSET. Rename
- cgen_isa_mask_* to cgen_bitset_*.
- * cgen.h: Likewise.
-
- 2003-10-21 Richard Sandiford <rsandifo@redhat.com>
-
- * cgen.h (CGEN_BITSET_ATTR_VALUE): Fix definition.
- (CGEN_ATTR_ENTRY): Change "value" to type "unsigned".
- (CGEN_CPU_TABLE): Make isas a ponter.
-
- 2003-09-29 Dave Brolley <brolley@redhat.com>
-
- * cgen.h (CGEN_ATTR_VALUE_BITSET_TYPE): New typedef.
- (CGEN_ATTR_VALUE_ENUM_TYPE): Ditto.
- (CGEN_ATTR_VALUE_TYPE): Use these new typedefs.
-
- 2002-12-13 Dave Brolley <brolley@redhat.com>
-
- * cgen.h (symcat.h): #include it.
- (cgen-bitset.h): #include it.
- (CGEN_ATTR_VALUE_TYPE): Now a union.
- (CGEN_ATTR_VALUE): Reference macros generated in opcodes/<arch>-desc.h.
- (CGEN_ATTR_ENTRY): 'value' now unsigned.
- (cgen_cpu_desc): 'isas' now (CGEN_ISA_MASK*).
- * cgen-bitset.h: New file.
-
-2005-09-30 Catherine Moore <clm@cm00re.com>
-
- * bfin.h: New file.
-
-2005-10-24 Jan Beulich <jbeulich@novell.com>
-
- * ia64.h (enum ia64_opnd): Move memory operand out of set of
- indirect operands.
-
-2005-10-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcodes): Add two fcmp opcodes. Reorder ftest opcodes.
- Add FLAG_STRICT to pa10 ftest opcode.
-
-2005-10-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcodes): Remove lha entries.
-
-2005-10-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (FLAG_STRICT): Revise comment.
- (pa_opcode): Revise ordering rules. Add/move strict pa10 variants
- before corresponding pa11 opcodes. Add strict pa10 register-immediate
- entries for "fdc".
-
-2005-09-30 Catherine Moore <clm@cm00re.com>
-
- * bfin.h: New file.
-
-2005-09-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcodes): Add new "fdc" and "fic" opcode entries.
-
-2005-09-06 Chao-ying Fu <fu@mips.com>
-
- * mips.h (OP_SH_MT_U, OP_MASK_MT_U, OP_SH_MT_H, OP_MASK_MT_H,
- OP_SH_MTACC_T, OP_MASK_MTACC_T, OP_SH_MTACC_D, OP_MASK_MTACC_D): New
- define.
- Document !, $, *, &, g, +t, +T operand formats for MT instructions.
- (INSN_ASE_MASK): Update to include INSN_MT.
- (INSN_MT): New define for MT ASE.
-
-2005-08-25 Chao-ying Fu <fu@mips.com>
-
- * mips.h (OP_SH_DSPACC, OP_MASK_DSPACC, OP_SH_DSPACC_S,
- OP_MASK_DSPACC_S, OP_SH_DSPSFT, OP_MASK_DSPSFT, OP_SH_DSPSFT_7,
- OP_MASK_DSPSFT_7, OP_SH_SA3, OP_MASK_SA3, OP_SH_SA4, OP_MASK_SA4,
- OP_SH_IMM8, OP_MASK_IMM8, OP_SH_IMM10, OP_MASK_IMM10, OP_SH_WRDSP,
- OP_MASK_WRDSP, OP_SH_RDDSP, OP_MASK_RDDSP): New define.
- Document 3, 4, 5, 6, 7, 8, 9, 0, :, ', @ operand formats for DSP
- instructions.
- (INSN_DSP): New define for DSP ASE.
-
-2005-08-18 Alan Modra <amodra@bigpond.net.au>
-
- * a29k.h: Delete.
-
-2005-08-15 Daniel Jacobowitz <dan@codesourcery.com>
-
- * ppc.h (PPC_OPCODE_E300): Define.
-
-2005-08-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * s390.h (s390_opcode_cpu_val): Add enum for cpu type z9-109.
-
-2005-07-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR gas/336
- * hppa.h (pa_opcodes): Allow 0 immediates in PA 2.0 variants of pdtlb
- and pitlb.
-
-2005-07-27 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): Add comment to movd. Use LongMem for all
- movd-s. Add NoRex64 to movq-s dealing only with mmx or xmm registers.
- Add movq-s as 64-bit variants of movd-s.
-
-2005-07-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h: Fix punctuation in comment.
-
- * hppa.h (pa_opcode): Add rules for opcode ordering. Check first for
- implicit space-register addressing. Set space-register bits on opcodes
- using implicit space-register addressing. Add various missing pa20
- long-immediate opcodes. Remove various opcodes using implicit 3-bit
- space-register addressing. Use "fE" instead of "fe" in various
- fstw opcodes.
-
-2005-07-18 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): Operands of aam and aad are unsigned.
-
-2007-07-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Support Intel VMX Instructions.
-
-2005-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcode): Don't set FLAG_STRICT in pa10 loads and stores.
-
-2005-07-05 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): Add new insns.
-
-2005-07-01 Nick Clifton <nickc@redhat.com>
-
- * sparc.h: Add typedefs to structure declarations.
-
-2005-06-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR 1013
- * i386.h (i386_optab): Update comments for 64bit addressing on
- mov. Allow 64bit addressing for mov and movq.
-
-2005-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (pa_opcodes): Use cM and cX instead of cm and cx,
- respectively, in various floating-point load and store patterns.
-
-2005-05-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * hppa.h (FLAG_STRICT): Correct comment.
- (pa_opcodes): Update load and store entries to allow both PA 1.X and
- PA 2.0 mneumonics when equivalent. Entries with cache control
- completers now require PA 1.1. Adjust whitespace.
-
-2005-05-19 Anton Blanchard <anton@samba.org>
-
- * ppc.h (PPC_OPCODE_POWER5): Define.
-
-2005-05-10 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- a29k.h, alpha.h, arc.h, arm.h, avr.h, cgen.h, convex.h, cris.h,
- crx.h, d10v.h, d30v.h, dlx.h, h8300.h, hppa.h, i370.h, i386.h,
- i860.h, i960.h, m68hc11.h, m68k.h, m88k.h, maxq.h, mips.h, mmix.h,
- mn10200.h, mn10300.h, msp430.h, np1.h, ns32k.h, or32.h, pdp11.h,
- pj.h, pn.h, ppc.h, pyr.h, s390.h, sparc.h, tic30.h, tic4x.h,
- tic54x.h, tic80.h, v850.h, vax.h
-
-2005-05-09 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): Add ht and hnt.
-
-2005-04-18 Mark Kettenis <kettenis@gnu.org>
-
- * i386.h: Insert hyphens into selected VIA PadLock extensions.
- Add xcrypt-ctr. Provide aliases without hyphens.
-
-2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
-
- Moved from ../ChangeLog
-
- 2005-04-12 Paul Brook <paul@codesourcery.com>
- * m88k.h: Rename psr macros to avoid conflicts.
-
- 2005-03-12 Zack Weinberg <zack@codesourcery.com>
- * arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T.
- Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2,
- and ARM_ARCH_V6ZKT2.
-
- 2004-11-29 Tomer Levi <Tomer.Levi@nsc.com>
- * crx.h (enum operand_type): Rename rbase_cst4 to rbase_dispu4.
- Remove redundant instruction types.
- (struct argument): X_op - new field.
- (struct cst4_entry): Remove.
- (no_op_insn): Declare.
-
- 2004-11-05 Tomer Levi <Tomer.Levi@nsc.com>
- * crx.h (enum argtype): Rename types, remove unused types.
-
- 2004-10-27 Tomer Levi <Tomer.Levi@nsc.com>
- * crx.h (enum reg): Rearrange registers, remove 'ccfg' and `'pc'.
- (enum reg_type): Remove CRX_PC_REGTYPE, CRX_MTPR_REGTYPE.
- (enum operand_type): Rearrange operands, edit comments.
- replace us<N> with ui<N> for unsigned immediate.
- replace d<N> with disps<N>/dispu<N>/dispe<N> for signed/unsigned/escaped
- displacements (respectively).
- replace rbase_ridx_scl2_dispu<N> with rindex_disps<N> for register index.
- (instruction type): Add NO_TYPE_INS.
- (instruction flags): Add USER_REG, CST4MAP, NO_SP, NO_RPTR.
- (operand_entry): New field - 'flags'.
- (operand flags): New.
-
- 2004-10-21 Tomer Levi <Tomer.Levi@nsc.com>
- * crx.h (operand_type): Remove redundant types i3, i4,
- i5, i8, i12.
- Add new unsigned immediate types us3, us4, us5, us16.
-
-2005-04-12 Mark Kettenis <kettenis@gnu.org>
-
- * i386.h (i386_optab): Mark VIA PadLock instructions as ImmExt and
- adjust them accordingly.
-
-2005-04-01 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): Add rdtscp.
-
-2005-03-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Don't allow the `l' suffix for moving
- between memory and segment register. Allow movq for moving between
- general-purpose register and segment register.
-
-2005-02-09 Jan Beulich <jbeulich@novell.com>
-
- PR gas/707
- * i386.h (i386_optab): Add x_Suf to fbld and fbstp. Add w_Suf and
- FloatMF to fldcw, fstcw, fnstcw, and the memory formas of fstsw and
- fnstsw.
-
-2006-02-07 Nathan Sidwell <nathan@codesourcery.com>
-
- * m68k.h (m68008, m68ec030, m68882): Remove.
- (m68k_mask): New.
- (cpu_m68k, cpu_cf): New.
- (mcf5200, mcf5206e, mcf521x, mcf5249, mcf528x, mcf5307, mcf5407,
- mcf5470, mcf5480): Rename to cpu_<foo>. Add m680x0 variants.
-
-2005-01-25 Alexandre Oliva <aoliva@redhat.com>
-
- 2004-11-10 Alexandre Oliva <aoliva@redhat.com>
- * cgen.h (enum cgen_parse_operand_type): Add
- CGEN_PARSE_OPERAND_SYMBOLIC.
-
-2005-01-21 Fred Fish <fnf@specifixinc.com>
-
- * mips.h: Change INSN_ALIAS to INSN2_ALIAS.
- Change INSN_WRITE_MDMX_ACC to INSN2_WRITE_MDMX_ACC.
- Change INSN_READ_MDMX_ACC to INSN2_READ_MDMX_ACC.
-
-2005-01-19 Fred Fish <fnf@specifixinc.com>
-
- * mips.h (struct mips_opcode): Add new pinfo2 member.
- (INSN_ALIAS): New define for opcode table entries that are
- specific instances of another entry, such as 'move' for an 'or'
- with a zero operand.
- (INSN_READ_MDMX_ACC): Redefine from 0 to 0x2.
- (INSN_WRITE_MDMX_ACC): Redefine from 0 to 0x4.
-
-2004-12-09 Ian Lance Taylor <ian@wasabisystems.com>
-
- * mips.h (CPU_RM9000): Define.
- (OPCODE_IS_MEMBER): Handle CPU_RM9000.
-
-2004-11-25 Jan Beulich <jbeulich@novell.com>
-
- * i386.h: CpuNo64 mov can't reasonably have a 'q' suffix. Moves
- to/from test registers are illegal in 64-bit mode. Add missing
- NoRex64 to sidt. fxsave/fxrstor now allow for a 'q' suffix
- (previously one had to explicitly encode a rex64 prefix). Re-enable
- lahf/sahf in 64-bit mode as at least some Athlon64/Opteron steppings
- support it there. Add cmpxchg16b as per Intel's 64-bit documentation.
-
-2004-11-23 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (i386_optab): paddq and psubq, even in their MMX form, are
- available only with SSE2. Change the MMX additions introduced by SSE
- and 3DNow!A to CpuMMX2 (rather than CpuMMX). Indicate the 3DNow!A
- instructions by their now designated identifier (since combining i686
- and 3DNow! does not really imply 3DNow!A).
-
-2004-11-19 Alan Modra <amodra@bigpond.net.au>
-
- * msp430.h (struct rcodes_s, MSP430_RLC, msp430_rcodes,
- struct hcodes_s, msp430_hcodes): Move to gas/config/tc-msp430.c.
-
-2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
- Vineet Sharma <vineets@noida.hcltech.com>
-
- * maxq.h: New file: Disassembly information for the maxq port.
-
-2004-11-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Put back "movzb".
-
-2004-11-04 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (enum cris_insn_version_usage): Tweak formatting and
- comments. Remove member cris_ver_sim. Add members
- cris_ver_sim_v0_10, cris_ver_v0_10, cris_ver_v3_10,
- cris_ver_v8_10, cris_ver_v10, cris_ver_v10p.
- (struct cris_support_reg, struct cris_cond15): New types.
- (cris_conds15): Declare.
- (JUMP_PC_INCR_OPCODE_V32, BA_DWORD_OPCODE, NOP_OPCODE_COMMON)
- (NOP_OPCODE_ZBITS_COMMON, LAPC_DWORD_OPCODE, LAPC_DWORD_Z_BITS)
- (NOP_OPCODE_V32, NOP_Z_BITS_V32): New macros.
- (NOP_Z_BITS): Define in terms of NOP_OPCODE.
- (cris_imm_oprnd_size_type): New members SIZE_FIELD_SIGNED and
- SIZE_FIELD_UNSIGNED.
-
-2004-11-04 Jan Beulich <jbeulich@novell.com>
-
- * i386.h (sldx_Suf): Remove.
- (FP, l_FP, sl_FP, x_FP): Don't imply IgnoreSize.
- (q_FP): Define, implying no REX64.
- (x_FP, sl_FP): Imply FloatMF.
- (i386_optab): Split reg and mem forms of moving from segment registers
- so that the memory forms can ignore the 16-/32-bit operand size
- distinction. Adjust a few others for Intel mode. Remove *FP uses from
- all non-floating-point instructions. Unite 32- and 64-bit forms of
- movsx, movzx, and movd. Adjust floating point operations for the above
- changes to the *FP macros. Add DefaultSize to floating point control
- insns operating on larger memory ranges. Remove left over comments
- hinting at certain insns being Intel-syntax ones where the ones
- actually meant are already gone.
-
-2004-10-07 Tomer Levi <Tomer.Levi@nsc.com>
-
- * crx.h: Add COPS_REG_INS - Coprocessor Special register
- instruction type.
-
-2004-09-30 Paul Brook <paul@codesourcery.com>
-
- * arm.h (ARM_EXT_V6K, ARM_EXT_V6Z): Define.
- (ARM_ARCH_V6K, ARM_ARCH_V6Z, ARM_ARCH_V6ZK): Define.
-
-2004-09-11 Theodore A. Roth <troth@openavr.org>
-
- * avr.h: Add support for
- atmega48, atmega88, atmega168, attiny13, attiny2313, at90can128.
-
-2004-09-09 Segher Boessenkool <segher@kernel.crashing.org>
-
- * ppc.h (PPC_OPERAND_OPTIONAL): Fix comment.
-
-2004-08-24 Dmitry Diky <diwil@spec.ru>
-
- * msp430.h (msp430_opc): Add new instructions.
- (msp430_rcodes): Declare new instructions.
- (msp430_hcodes): Likewise..
-
-2004-08-13 Nick Clifton <nickc@redhat.com>
-
- PR/301
- * h8300.h (O_JSR): Do not allow VECIND addressing for non-SX
- processors.
-
-2004-08-30 Michal Ludvig <mludvig@suse.cz>
-
- * i386.h (i386_optab): Added montmul/xsha1/xsha256 insns.
-
-2004-07-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * i386.h (i386_optab): Allow cs/ds in 64bit for branch hints.
-
-2004-07-21 Jan Beulich <jbeulich@novell.com>
-
- * i386.h: Adjust instruction descriptions to better match the
- specification.
-
-2004-07-16 Richard Earnshaw <rearnsha@arm.com>
-
- * arm.h: Remove all old content. Replace with architecture defines
- from gas/config/tc-arm.c.
-
-2004-07-09 Andreas Schwab <schwab@suse.de>
-
- * m68k.h: Fix comment.
-
-2004-07-07 Tomer Levi <Tomer.Levi@nsc.com>
-
- * crx.h: New file.
-
-2004-06-24 Alan Modra <amodra@bigpond.net.au>
-
- * i386.h (i386_optab): Remove fildd, fistpd and fisttpd.
-
-2004-05-24 Peter Barada <peter@the-baradas.com>
-
- * m68k.h: Add 'size' to m68k_opcode.
-
-2004-05-05 Peter Barada <peter@the-baradas.com>
-
- * m68k.h: Switch from ColdFire chip name to core variant.
-
-2004-04-22 Peter Barada <peter@the-baradas.com>
-
- * m68k.h: Add mcfmac/mcfemac definitions. Update operand
- descriptions for new EMAC cases.
- Remove ColdFire macmw/macml/msacmw/msacmw hacks and properly
- handle Motorola MAC syntax.
- Allow disassembly of ColdFire V4e object files.
-
-2004-03-16 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (PPC_OPERAND_GPR_0): Define. Bump other operand defines.
-
-2004-03-12 Jakub Jelinek <jakub@redhat.com>
-
- * i386.h (i386_optab): Remove CpuNo64 from sysenter and sysexit.
-
-2004-03-12 Michal Ludvig <mludvig@suse.cz>
-
- * i386.h (i386_optab): Added xstore as an alias for xstorerng.
-
-2004-03-12 Michal Ludvig <mludvig@suse.cz>
-
- * i386.h (i386_optab): Added xstore/xcrypt insns.
-
-2004-02-09 Anil Paranjpe <anilp1@KPITCummins.com>
-
- * h8300.h (32bit ldc/stc): Add relaxing support.
-
-2004-01-12 Anil Paranjpe <anilp1@KPITCummins.com>
-
- * h8300.h (BITOP): Pass MEMRELAX flag.
-
-2004-01-09 Anil Paranjpe <anilp1@KPITCummins.com>
-
- * h8300.h (BITOP): Dissallow operations on @aa:16 and @aa:32
- except for the H8S.
-
-For older changes see ChangeLog-9103
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/include/opcode/ChangeLog-9103 b/include/opcode/ChangeLog-9103
deleted file mode 100644
index 9a04bf5f5..000000000
--- a/include/opcode/ChangeLog-9103
+++ /dev/null
@@ -1,3121 +0,0 @@
-2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
-
- 2003-11-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
- * mips.h: Define new enum members, M_LCA_AB and M_DLCA_AB.
-
- 2003-04-04 Svein E. Seldal <Svein.Seldal@solidas.com>
- * tic4x.h: Namespace cleanup. Replace s/c4x/tic4x
-
- 2002-11-16 Klee Dienes <kdienes@apple.com>
- * m88k.h (INSTAB): Remove 'next' field.
- (instruction): Remove definition; replace with extern declaration
- and mark as const.
-
- 2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
- * tic4x.h: New file.
-
- 2002-07-25 Richard Sandiford <rsandifo@redhat.com>
- * mips.h (CPU_R2000): Remove.
-
-2003-10-21 Peter Barada <pbarada@mail.wm.sps.mot.com>
- Bernardo Innocenti <bernie@develer.com>
-
- * m68k.h: Add MCFv4/MCF5528x support.
-
-2003-10-19 Hans-Peter Nilsson <hp@bitrange.com>
-
- * mmix.h (JMP_INSN_BYTE): Define.
-
-2003-09-30 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Document +E, +F, +G, +H, and +I operand types.
- Update documentation of I, +B and +C operand types.
- (INSN_ISA64R2, ISA_MIPS64R2, CPU_MIPS64R2): New defines.
- (M_DEXT, M_DINS): New enum values.
-
-2003-09-04 Nick Clifton <nickc@redhat.com>
-
- * v850.h (PROCESSOR_V850E1): Define.
-
-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.
-
-2003-06-10 Richard Sandiford <rsandifo@redhat.com>
-
- * h8300.h (IMM4_NS, IMM8_NS): New.
- (h8_opcodes): Replace IMM4 with IMM4_NS in mov.b and mov.w entries.
- Likewise IMM8 for mov.w and mov.l. Likewise IMM16U for mov.l.
-
-2003-06-03 Michael Snyder <msnyder@redhat.com>
-
- * h8300.h (enum h8_model): Add AV_H8S to distinguish from H8H.
- (ldc): Split ccr ops from exr ops (which are only available
- on H8S or H8SX).
- (stc): Ditto.
- (andc, orc, xorc): Ditto.
- (ldmac, stmac, clrmac, mac): Change access to AV_H8S.
-
-2003-06-03 Michael Snyder <msnyder@redhat.com>
- and Bernd Schmidt <bernds@redhat.com>
- and Alexandre Oliva <aoliva@redhat.com>
- * h8300.h: Add support for h8300sx instruction set.
-
-2003-05-23 Jason Eckhardt <jle@rice.edu>
-
- * i860.h (expand_type): Add XP_ONLY.
- (scyc.b): New XP instruction.
- (ldio.l): Likewise.
- (ldio.s): Likewise.
- (ldio.b): Likewise.
- (ldint.l): Likewise.
- (ldint.s): Likewise.
- (ldint.b): Likewise.
- (stio.l): Likewise.
- (stio.s): Likewise.
- (stio.b): Likewise.
- (pfld.q): Likewise.
-
-2003-05-20 Jason Eckhardt <jle@rice.edu>
-
- * i860.h (flush): Set lower 3 bits properly and use 'L'
- for the immediate operand type instead of 'i'.
-
-2003-05-20 Jason Eckhardt <jle@rice.edu>
-
- * i860.h (fzchks): Both S and R bits must be set.
- (pfzchks): Likewise.
- (faddp): Likewise.
- (pfaddp): Likewise.
- (fix.ss): Remove (invalid instruction).
- (pfix.ss): Likewise.
- (ftrunc.ss): Likewise.
- (pftrunc.ss): Likewise.
-
-2003-05-18 Jason Eckhardt <jle@rice.edu>
-
- * i860.h (form, pform): Add missing .dd suffix.
-
-2003-05-13 Stephane Carrez <stcarrez@nerim.fr>
-
- * m68hc11.h (M68HC12_BANK_VIRT): Define to 0x010000
-
-2003-04-07 Michael Snyder <msnyder@redhat.com>
-
- * h8300.h (ldc/stc): Fix up src/dst swaps.
-
-2003-04-09 J. Grant <jg-binutils@jguk.org>
-
- * mips.h: Correct comment typo.
-
-2003-03-21 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * s390.h (s390_opcode_arch_val): Rename to s390_opcode_mode_val.
- (S390_OPCODE_ESAME): Rename to S390_OPCODE_ZARCH.
- (s390_opcode): Remove architecture. Add modes and min_cpu.
-
-2003-03-17 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
-
- * h8300.h (O_SYS_CMDLINE): New pseudo opcode for command line
- processing.
-
-2003-02-21 Noida D.Venkatasubramanian <dvenkat@noida.hcltech.com>
-
- * h8300.h (ldmac, stmac): Replace MACREG with MS32 and MD32.
-
-2003-01-23 Alan Modra <amodra@bigpond.net.au>
-
- * m68hc11.h (cpu6812s): Define.
-
-2003-01-07 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Fix missing space in comment.
- (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, INSN_ISA5)
- (INSN_ISA32, INSN_ISA32R2, INSN_ISA64): Shift values right
- by four bits.
-
-2003-01-02 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Update copyright years to include 2002 (which had
- been missed previously) and 2003. Make comments about "+A",
- "+B", and "+C" operand types more descriptive.
-
-2002-12-31 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Note that the "+D" operand type name is now used.
-
-2002-12-30 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Document "+" as the start of two-character operand
- type names, and add new "K", "+A", "+B", and "+C" operand types.
- (OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB)
- (OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New
- defines.
-
-2002-12-24 Dmitry Diky <diwil@mail.ru>
-
- * msp430.h: New file. Defines msp430 opcodes.
-
-2002-12-30 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
-
- * h8300.h: Added some more pseudo opcodes for system call
- processing.
-
-2002-12-19 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (OP_OP_COP0, OP_OP_COP1, OP_OP_COP2, OP_OP_COP3)
- (OP_OP_LWC1, OP_OP_LWC2, OP_OP_LWC3, OP_OP_LDC1, OP_OP_LDC2)
- (OP_OP_LDC3, OP_OP_SWC1, OP_OP_SWC2, OP_OP_SWC3, OP_OP_SDC1)
- (OP_OP_SDC2, OP_OP_SDC3): Define.
-
-2002-12-16 Alan Modra <amodra@bigpond.net.au>
-
- * hppa.h (completer_chars): #if 0 out.
-
- * ns32k.h (struct ns32k_opcode): Constify "name", "operands" and
- "default_args".
- (struct not_wot): Constify "args".
- (struct not): Constify "name".
- (numopcodes): Delete.
- (endop): Delete.
-
-2002-12-13 Alan Modra <amodra@bigpond.net.au>
-
- * pj.h (pj_opc_info_t): Add union.
-
-2002-12-04 David Mosberger <davidm@hpl.hp.com>
-
- * ia64.h: Fix copyright message.
- (IA64_OPND_AR_CSD): New operand kind.
-
-2002-12-03 Richard Henderson <rth@redhat.com>
-
- * ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV.
-
-2002-12-03 Alan Modra <amodra@bigpond.net.au>
-
- * cgen.h (struct cgen_maybe_multi_ifield): Add "const PTR p" to union.
- Constify "leaf" and "multi".
-
-2002-11-19 Klee Dienes <kdienes@apple.com>
-
- * h8300.h (h8_opcode): Remove 'noperands', 'idx', and 'size'
- fields.
- (h8_opcodes). Modify initializer and initializer macros to no
- longer initialize the removed fields.
-
-2002-11-19 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * tic4x.h (c4x_insts): Fixed LDHI constraint
-
-2002-11-18 Klee Dienes <kdienes@apple.com>
-
- * h8300.h (h8_opcode): Remove 'length' field.
- (h8_opcodes): Mark as 'const' (both the declaration and
- definition). Modify initializer and initializer macros to no
- longer initialize the length field.
-
-2002-11-18 Klee Dienes <kdienes@apple.com>
-
- * arc.h (arc_ext_opcodes): Declare as extern.
- (arc_ext_operands): Declare as extern.
- * i860.h (i860_opcodes): Declare as const.
-
-2002-11-18 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * tic4x.h: File reordering. Added enhanced opcodes.
-
-2002-11-16 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * tic4x.h: Major rewrite of entire file. Define instruction
- classes, and put each instruction into a class.
-
-2002-11-11 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * tic4x.h: Added new opcodes and corrected some bugs. Add support
- for new DSP types.
-
-2002-10-14 Alan Modra <amodra@bigpond.net.au>
-
- * cgen.h: Test __BFD_H_SEEN__ rather than BFD_VERSION_DATE.
-
-2002-09-30 Gavin Romig-Koch <gavin@redhat.com>
- Ken Raeburn <raeburn@cygnus.com>
- Aldy Hernandez <aldyh@redhat.com>
- Eric Christopher <echristo@redhat.com>
- Richard Sandiford <rsandifo@redhat.com>
-
- * mips.h: Update comment for new opcodes.
- (OP_MASK_VECBYTE, OP_SH_VECBYTE): New.
- (OP_MASK_VECALIGN, OP_SH_VECALIGN): New.
- (INSN_4111, INSN_4120, INSN_5400, INSN_5500): New.
- (CPU_VR4120, CPU_VR5400, CPU_VR5500): New.
- (OPCODE_IS_MEMBER): Handle the new CPU_* values and INSN_* flags.
- Don't match CPU_R4111 with INSN_4100.
-
-2002-08-19 Elena Zannoni <ezannoni@redhat.com>
-
- From matthew green <mrg@redhat.com>
-
- * ppc.h (PPC_OPCODE_SPE): New opcode flag for Powerpc e500
- instructions.
- (PPC_OPCODE_ISEL, PPC_OPCODE_BRLOCK, PPC_OPCODE_PMR,
- PPC_OPCODE_CACHELCK, PPC_OPCODE_RFMCI): New opcode flags for the
- e500x2 Integer select, branch locking, performance monitor,
- cache locking and machine check APUs, respectively.
- (PPC_OPCODE_EFS): New opcode type for efs* instructions.
- (PPC_OPCODE_CLASSIC): New opcode type for Classic PowerPC instructions.
-
-2002-08-13 Stephane Carrez <stcarrez@nerim.fr>
-
- * m68hc11.h (M6812_OP_PAGE): Define to identify call operand.
- (M68HC12_BANK_VIRT, M68HC12_BANK_MASK, M68HC12_BANK_BASE,
- M68HC12_BANK_SHIFT, M68HC12_BANK_PAGE_MASK): Define for 68HC12
- memory banks.
- (M6811_OC1M5, M6811_OC1M4, M6811_MODF): Fix value.
-
-2002-07-09 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * mips.h (INSN_MIPS16): New define.
-
-2002-07-08 Alan Modra <amodra@bigpond.net.au>
-
- * i386.h: Remove IgnoreSize from movsx and movzx.
-
-2002-06-08 Alan Modra <amodra@bigpond.net.au>
-
- * a29k.h: Replace CONST with const.
- (CONST): Don't define.
- * convex.h: Replace CONST with const.
- (CONST): Don't define.
- * dlx.h: Replace CONST with const.
- * or32.h (CONST): Don't define.
-
-2002-05-30 Chris G. Demetriou <cgd@broadcom.com>
-
- * mips.h (OP_SH_ALN, OP_MASK_ALN, OP_SH_VSEL, OP_MASK_VSEL)
- (MDMX_FMTSEL_IMM_QH, MDMX_FMTSEL_IMM_OB, MDMX_FMTSEL_VEC_QH)
- (MDMX_FMTSEL_VEC_OB, INSN_READ_MDMX_ACC, INSN_WRITE_MDMX_ACC)
- (INSN_MDMX): New constants, for MDMX support.
- (opcode character list): Add "O", "Q", "X", "Y", and "Z" for MDMX.
-
-2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net>
-
- * dlx.h: New file.
-
-2002-05-25 Alan Modra <amodra@bigpond.net.au>
-
- * ia64.h: Use #include "" instead of <> for local header files.
- * sparc.h: Likewise.
-
-2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases.
-
-2002-05-17 Andrey Volkov <avolkov@sources.redhat.com>
-
- * h8300.h: Corrected defs of all control regs
- and eepmov instr.
-
-2002-04-11 Alan Modra <amodra@bigpond.net.au>
-
- * i386.h: Add intel mode cmpsd and movsd.
- Put them before SSE2 insns, so that rep prefix works.
-
-2002-03-15 Chris G. Demetriou <cgd@broadcom.com>
-
- * mips.h (INSN_MIPS3D): New definition used to mark MIPS-3D
- instructions.
- (OPCODE_IS_MEMBER): Adjust comments to indicate that ASE bit masks
- may be passed along with the ISA bitmask.
-
-2002-03-05 Paul Koning <pkoning@equallogic.com>
-
- * pdp11.h: Add format codes for float instruction formats.
-
-2002-02-25 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define.
-
-Mon Feb 18 17:31:48 CET 2002 Jan Hubicka <jh@suse.cz>
-
- * i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands.
-
-Mon Feb 11 12:53:19 CET 2002 Jan Hubicka <jh@suse.cz>
-
- * i386.h (push,pop): Allow 16bit operands in 64bit mode.
- (xchg): Fix.
- (in, out): Disable 64bit operands.
- (call, jmp): Avoid REX prefixes.
- (jcxz): Prohibit in 64bit mode
- (jrcxz, loop): Add 64bit variants.
- (movq): Fix patterns.
- (movmskps, pextrw, pinstrw): Add 64bit variants.
-
-2002-01-31 Ivan Guzvinec <ivang@opencores.org>
-
- * or32.h: New file.
-
-2002-01-22 Graydon Hoare <graydon@redhat.com>
-
- * cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure.
- (CGEN_OPERAND): Add CGEN_MAYBE_MULTI_IFLD field.
-
-2002-01-21 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
-
- * h8300.h: Comment typo fix.
-
-2002-01-03 matthew green <mrg@redhat.com>
-
- * ppc.h (PPC_OPCODE_BOOKE): BookE is not Motorola specific.
- (PPC_OPCODE_BOOKE64): Likewise.
-
-Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (call, ret): Move to end of table.
- (addb, addib): PA2.0 variants should have been PA2.0W.
- (ldw, ldh, ldb, stw, sth, stb, stwa): Reorder to keep disassembler
- happy.
- (fldw, fldd, fstw, fstd, bb): Likewise.
- (short loads/stores): Tweak format specifier slightly to keep
- disassembler happy.
- (indexed loads/stores): Likewise.
- (absolute loads/stores): Likewise.
-
-2001-12-04 Alexandre Oliva <aoliva@redhat.com>
-
- * d10v.h (OPERAND_NOSP): New macro.
-
-2001-11-29 Alexandre Oliva <aoliva@redhat.com>
-
- * d10v.h (OPERAND_SP): New macro.
-
-2001-11-15 Alan Modra <amodra@bigpond.net.au>
-
- * ppc.h (struct powerpc_operand <insert, extract>): Add dialect param.
-
-2001-11-11 Timothy Wall <twall@alum.mit.edu>
-
- * tic54x.h: Revise opcode layout; don't really need a separate
- structure for parallel opcodes.
-
-2001-11-13 Zack Weinberg <zack@codesourcery.com>
- Alan Modra <amodra@bigpond.net.au>
-
- * i386.h (i386_optab): Add entries for "sldr", "smsw" and "str" to
- accept WordReg.
-
-2001-11-04 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (OPCODE_IS_MEMBER): Remove extra space.
-
-2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
-
- * mmix.h: New file.
-
-2001-10-18 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (OPCODE_IS_MEMBER): Add a no-op term to the end
- of the expression, to make source code merging easier.
-
-2001-10-17 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h: Sort coprocessor instruction argument characters
- in comment, add a few more words of description for "H".
-
-2001-10-17 Chris Demetriou <cgd@broadcom.com>
-
- * mips.h (INSN_SB1): New cpu-specific instruction bit.
- (OPCODE_IS_MEMBER): Allow instructions matching INSN_SB1
- if cpu is CPU_SB1.
-
-2001-10-17 matthew green <mrg@redhat.com>
-
- * ppc.h (PPC_OPCODE_BOOKE64): Fix typo.
-
-2001-10-12 matthew green <mrg@redhat.com>
-
- * ppc.h (PPC_OPCODE_BOOKE, PPC_OPCODE_BOOKE64, PPC_OPCODE_403): New
- opcode flags for BookE 32-bit, BookE 64-bit and PowerPC 403
- instructions, respectively.
-
-2001-09-27 Nick Clifton <nickc@cambridge.redhat.com>
-
- * v850.h: Remove spurious comment.
-
-2001-09-21 Nick Clifton <nickc@cambridge.redhat.com>
-
- * h8300.h: Fix compile time warning messages
-
-2001-09-04 Richard Henderson <rth@redhat.com>
-
- * alpha.h (struct alpha_operand): Pack elements into bitfields.
-
-2001-08-31 Eric Christopher <echristo@redhat.com>
-
- * mips.h: Remove CPU_MIPS32_4K.
-
-2001-08-27 Torbjorn Granlund <tege@swox.com>
-
- * ppc.h (PPC_OPERAND_DS): Define.
-
-2001-08-25 Andreas Jaeger <aj@suse.de>
-
- * d30v.h: Fix declaration of reg_name_cnt.
-
- * d10v.h: Fix declaration of d10v_reg_name_cnt.
-
- * arc.h: Add prototypes from opcodes/arc-opc.c.
-
-2001-08-16 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * mips.h (INSN_10000): Define.
- (OPCODE_IS_MEMBER): Check for INSN_10000.
-
-2001-08-10 Alan Modra <amodra@one.net.au>
-
- * ppc.h: Revert 2001-08-08.
-
-2001-08-10 Richard Sandiford <rsandifo@redhat.com>
-
- * mips.h (INSN_GP32): Remove.
- (OPCODE_IS_MEMBER): Remove gp32 parameter.
- (M_MOVE): New macro identifier.
-
-2001-08-08 Alan Modra <amodra@one.net.au>
-
- 1999-10-25 Torbjorn Granlund <tege@swox.com>
- * ppc.h (struct powerpc_operand): New field `reloc'.
-
-2001-08-01 Aldy Hernandez <aldyh@redhat.com>
-
- * mips.h (INSN_ISA_MASK): Nuke bits 12-15.
-
-2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
-
- * cgen.h (CGEN_INSN): Add regex support.
- (build_insn_regex): Declare.
-
-2001-07-11 Frank Ch. Eigler <fche@redhat.com>
-
- * cgen.h (CGEN_MACH): Add insn_chunk_bitsize field.
- (cgen_cpu_desc): Ditto.
-
-2001-07-07 Ben Elliston <bje@redhat.com>
-
- * m88k.h: Clean up and reformat. Remove unused code.
-
-2001-06-14 Geoffrey Keating <geoffk@redhat.com>
-
- * cgen.h (cgen_keyword): Add nonalpha_chars field.
-
-2001-05-23 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * mips.h (CPU_R12000): Define.
-
-2001-05-23 John Healy <jhealy@redhat.com>
-
- * cgen.h: Increased CGEN_MAX_SYNTAX_ELEMENTS to 48.
-
-2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * mips.h (INSN_ISA_MASK): Define.
-
-2001-05-12 Alan Modra <amodra@one.net.au>
-
- * i386.h (i386_optab): Second operand of cvtps2dq is an xmm reg,
- not an mmx reg. Swap xmm/mmx regs on both movdq2q and movq2dq,
- and use InvMem as these insns must have register operands.
-
-2001-05-04 Alan Modra <amodra@one.net.au>
-
- * i386.h (i386_optab): Move InvMem to first operand of pmovmskb
- and pextrw to swap reg/rm assignments.
-
-2001-04-05 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (enum cris_insn_version_usage): Correct comment for
- cris_ver_v3p.
-
-2001-03-24 Alan Modra <alan@linuxcare.com.au>
-
- * i386.h (i386_optab): Correct entry for "movntdq". Add "punpcklqdq".
- Add InvMem to first operand of "maskmovdqu".
-
-2001-03-22 Hans-Peter Nilsson <hp@axis.com>
-
- * cris.h (ADD_PC_INCR_OPCODE): New macro.
-
-2001-03-21 Kazu Hirata <kazu@hxi.com>
-
- * h8300.h: Fix formatting.
-
-2001-03-22 Alan Modra <alan@linuxcare.com.au>
-
- * i386.h (i386_optab): Add paddq, psubq.
-
-2001-03-19 Alan Modra <alan@linuxcare.com.au>
-
- * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define.
-
-2001-02-28 Igor Shevlyakov <igor@windriver.com>
-
- * m68k.h: new defines for Coldfire V4. Update mcf to know
- about mcf5407.
-
-2001-02-18 lars brinkhoff <lars@nocrew.org>
-
- * pdp11.h: New file.
-
-2001-02-12 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): SSE integer converison instructions have
- 64bit versions on x86-64.
-
-2001-02-10 Nick Clifton <nickc@redhat.com>
-
- * mips.h: Remove extraneous whitespace. Formating change to allow
- for future contribution.
-
-2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * s390.h: New file.
-
-2001-02-02 Patrick Macdonald <patrickm@redhat.com>
-
- * cgen.h (CGEN_SYNTAX_CHAR_TYPE): Typedef as unsigned short.
- (CGEN_MAX_SYNTAX_ELEMENTS): Rename from CGEN_MAX_SYNTAX_BYTES.
- (CGEN_SYNTAX): Define using CGEN_MAX_SYNTAX_ELEMENTS.
-
-2001-01-24 Karsten Keil <kkeil@suse.de>
-
- * i386.h (i386_optab): Fix swapgs
-
-2001-01-14 Alan Modra <alan@linuxcare.com.au>
-
- * hppa.h: Describe new '<' and '>' operand types, and tidy
- existing comments.
- (pa_opcodes): Add entries for missing wide mode ldi,ldo,ldw,stw.
- Remove duplicate "ldw j(s,b),x". Sort some entries.
-
-2001-01-13 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): Fix pusha and ret templates.
-
-2001-01-11 Peter Targett <peter.targett@arccores.com>
-
- * arc.h (ARC_MACH_5, ARC_MACH_6, ARC_MACH_7, ARC_MACH_8): New
- definitions for masking cpu type.
- (arc_ext_operand_value) New structure for storing extended
- operands.
- (ARC_OPERAND_*) Flags for operand values.
-
-2001-01-10 Jan Hubicka <jh@suse.cz>
-
- * i386.h (pinsrw): Add.
- (pshufw): Remove.
- (cvttpd2dq): Fix operands.
- (cvttps2dq): Likewise.
- (movq2q): Rename to movdq2q.
-
-2001-01-10 Richard Schaal <richard.schaal@intel.com>
-
- * i386.h: Correct movnti instruction.
-
-2001-01-09 Jeff Johnston <jjohnstn@redhat.com>
-
- * cgen.h (CGEN_SYNTAX_CHAR_TYPE): New typedef based on max number
- of operands (unsigned char or unsigned short).
- (CGEN_SYNTAX): Changed to make array CGEN_SYNTAX_CHAR_TYPE.
- (CGEN_SYNTAX_CHAR): Changed to cast to unsigned char.
-
-2001-01-05 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): Make [sml]fence template to use immext field.
-
-2001-01-03 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): Fix 64bit pushf template; Add instructions
- introduced by Pentium4
-
-2000-12-30 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): Add "rex*" instructions;
- add swapgs; disable jmp/call far direct instructions for
- 64bit mode; add syscall and sysret; disable registers for 0xc6
- template. Add 'q' suffixes to extendable instructions, disable
- obsolete instructions, add new sign/zero extension ones.
- (i386_regtab): Add extended registers.
- (*Suf): Add No_qSuf.
- (q_Suf, wlq_Suf, bwlq_Suf): New.
-
-2000-12-20 Jan Hubicka <jh@suse.cz>
-
- * i386.h (i386_optab): Replace "Imm" with "EncImm".
- (i386_regtab): Add flags field.
-
-2000-12-12 Nick Clifton <nickc@redhat.com>
-
- * mips.h: Fix formatting.
-
-2000-12-01 Chris Demetriou <cgd@sibyte.com>
-
- mips.h (OP_MASK_SYSCALL, OP_SH_SYSCALL): Delete.
- (OP_MASK_CODE20, OP_SH_CODE20): Define, with values of old
- OP_*_SYSCALL definitions.
- (OP_SH_CODE19, OP_MASK_CODE19): Define, for use as
- 19 bit wait codes.
- (MIPS operand specifier comments): Remove 'm', add 'U' and
- 'J', and update the meaning of 'B' so that it's more general.
-
- * mips.h (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4,
- INSN_ISA5): Renumber, redefine to mean the ISA at which the
- instruction was added.
- (INSN_ISA32): New constant.
- (INSN_4650, INSN_4010, INSN_4100, INSN_3900, INSN_GP32):
- Renumber to avoid new and/or renumbered INSN_* constants.
- (INSN_MIPS32): Delete.
- (ISA_UNKNOWN): New constant to indicate unknown ISA.
- (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, ISA_MIPS5,
- ISA_MIPS32): New constants, defined to be the mask of INSN_*
- constants available at that ISA level.
- (CPU_UNKNOWN): New constant to indicate unknown CPU.
- (CPU_4K, CPU_MIPS32_4K): Rename the former to the latter,
- define it with a unique value.
- (OPCODE_IS_MEMBER): Update for new ISA membership-related
- constant meanings.
-
- * mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
- definitions.
-
- * mips.h (CPU_SB1): New constant.
-
-2000-10-20 Jakub Jelinek <jakub@redhat.com>
-
- * sparc.h (enum sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_V9B.
- Note that '3' is used for siam operand.
-
-2000-09-22 Jim Wilson <wilson@cygnus.com>
-
- * ia64.h (enum ia64_dependency_semantics): Add IA64_DVS_STOP.
-
-2000-09-13 Anders Norlander <anorland@acc.umu.se>
-
- * mips.h: Use defines instead of hard-coded processor numbers.
- (CPU_R2000, CPU_R3000, CPU_R3900, CPU_R4000, CPU_R4010,
- CPU_VR4100, CPU_R4111, CPU_R4300, CPU_R4400, CPU_R4600, CPU_R4650,
- CPU_R5000, CPU_R6000, CPU_R8000, CPU_R10000, CPU_MIPS32, CPU_4K,
- CPU_4KC, CPU_4KM, CPU_4KP): Define..
- (OPCODE_IS_MEMBER): Use new defines.
- (OP_MASK_SEL, OP_SH_SEL): Define.
- (OP_MASK_CODE20, OP_SH_CODE20): Define.
- Add 'P' to used characters.
- Use 'H' for coprocessor select field.
- Use 'm' for 20 bit breakpoint code.
- Document new arg characters and add to used characters.
- (INSN_MIPS32): New define for MIPS32 extensions.
- (OPCODE_IS_MEMBER): Recognize MIPS32 instructions.
-
-2000-09-05 Alan Modra <alan@linuxcare.com.au>
-
- * hppa.h: Mention cz completer.
-
-2000-08-16 Jim Wilson <wilson@cygnus.com>
-
- * ia64.h (IA64_OPCODE_POSTINC): New.
-
-2000-08-15 H.J. Lu <hjl@gnu.org>
-
- * i386.h: Swap the Intel syntax "movsx"/"movzx" due to the
- IgnoreSize change.
-
-2000-08-08 Jason Eckhardt <jle@cygnus.com>
-
- * i860.h: Small formatting adjustments.
-
-2000-07-29 Marek Michalkiewicz <marekm@linux.org.pl>
-
- * avr.h (AVR_UNDEF_P, AVR_SKIP_P, AVR_DISP0_P): New macros.
- Move related opcodes closer to each other.
- Minor changes in comments, list undefined opcodes.
-
-2000-07-26 Dave Brolley <brolley@redhat.com>
-
- * cgen.h (cgen_hw_lookup_by_num): Second parameter is unsigned.
-
-2000-07-22 Jason Eckhardt <jle@cygnus.com>
-
- * i860.h (btne, bte, bla): Changed these opcodes
- to use sbroff ('r') instead of split16 ('s').
- (J, K, L, M): New operand types for 16-bit aligned fields.
- (ld.x, {p}fld.x, fst.x, pst.d): Changed these opcodes to
- use I, J, K, L, M instead of just I.
- (T, U): New operand types for split 16-bit aligned fields.
- (st.x): Changed these opcodes to use S, T, U instead of just S.
- (andh, andnoth, orh, xorh): Deleted 3-register forms as they do not
- exist on the i860.
- (pfgt.sd, pfle.sd): Deleted these as they do not exist on the i860.
- (pfeq.ss, pfeq.dd): New opcodes.
- (st.s): Fixed incorrect mask bits.
- (fmlow): Fixed incorrect mask bits.
- (fzchkl, pfzchkl): Fixed incorrect mask bits.
- (faddz, pfaddz): Fixed incorrect mask bits.
- (form, pform): Fixed incorrect mask bits.
- (pfld.l): Fixed incorrect mask bits.
- (fst.q): Fixed incorrect mask bits.
- (all floating point opcodes): Fixed incorrect mask bits for
- handling of dual bit.
-
-2000-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- cris.h: New file.
-
-2000-06-26 Marek Michalkiewicz <marekm@linux.org.pl>
-
- * avr.h (AVR_ISA_WRAP): Remove, now assumed if not AVR_ISA_MEGA.
- (AVR_ISA_ESPM): Remove, because ESPM removed in databook update.
- (AVR_ISA_85xx): Remove, all uses changed back to AVR_ISA_2xxx.
- (AVR_ISA_M83): Define for ATmega83, ATmega85.
- (espm): Remove, because ESPM removed in databook update.
- (eicall, eijmp): Move to the end of opcode table.
-
-2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
-
- * m68hc11.h: New file for support of Motorola 68hc11.
-
-Fri Jun 9 21:51:50 2000 Denis Chertykov <denisc@overta.ru>
-
- * avr.h: clr,lsl,rol, ... moved after add,adc, ...
-
-Wed Jun 7 21:39:54 2000 Denis Chertykov <denisc@overta.ru>
-
- * avr.h: New file with AVR opcodes.
-
-Wed Apr 12 17:11:20 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
-
- * d10v.h: added ALONE attribute for d10v_opcode.exec_type.
-
-2000-05-23 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * i386.h: Allow d suffix on iret, and add DefaultSize modifier.
-
-2000-05-17 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * i386.h: Use sl_FP, not sl_Suf for fild.
-
-2000-05-16 Frank Ch. Eigler <fche@redhat.com>
-
- * cgen.h (CGEN_MAX_SYNTAX_BYTES): Increase to 32. Check that
- it exceeds CGEN_ACTUAL_MAX_SYNTAX_BYTES, if set.
- (CGEN_MAX_IFMT_OPERANDS): Increase to 16. Check that it exceeds
- CGEN_ACTUAL_MAX_IFMT_OPERANDS, if set.
-
-2000-05-13 Alan Modra <alan@linuxcare.com.au>,
-
- * i386.h (i386_optab): Cpu686 for sysenter,sysexit,fxsave,fxrestore.
-
-2000-05-13 Alan Modra <alan@linuxcare.com.au>,
- Alexander Sokolov <robocop@netlink.ru>
-
- * i386.h (i386_optab): Add cpu_flags for all instructions.
-
-2000-05-13 Alan Modra <alan@linuxcare.com.au>
-
- From Gavin Romig-Koch <gavin@cygnus.com>
- * i386.h (wld_Suf): Define. Use on pushf, popf, pusha, popa.
-
-2000-05-04 Timothy Wall <twall@cygnus.com>
-
- * tic54x.h: New.
-
-2000-05-03 J.T. Conklin <jtc@redback.com>
-
- * ppc.h (PPC_OPCODE_ALTIVEC): New opcode flag for vector unit.
- (PPC_OPERAND_VR): New operand flag for vector registers.
-
-2000-05-01 Kazu Hirata <kazu@hxi.com>
-
- * h8300.h (EOP): Add missing initializer.
-
-Fri Apr 21 15:03:37 2000 Jason Eckhardt <jle@cygnus.com>
-
- * hppa.h (pa_opcodes): New opcodes for PA2.0 wide mode
- forms of ld/st{b,h,w,d} and fld/fst{w,d} (16-bit displacements).
- New operand types l,y,&,fe,fE,fx added to support above forms.
- (pa_opcodes): Replaced usage of 'x' as source/target for
- floating point double-word loads/stores with 'fx'.
-
-Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
- David Mosberger <davidm@hpl.hp.com>
- Timothy Wall <twall@cygnus.com>
- Jim Wilson <wilson@cygnus.com>
-
- * ia64.h: New file.
-
-2000-03-27 Nick Clifton <nickc@cygnus.com>
-
- * d30v.h (SHORT_A1): Fix value.
- (SHORT_AR): Renumber so that it is at the end of the list of short
- instructions, not the end of the list of long instructions.
-
-2000-03-26 Alan Modra <alan@linuxcare.com>
-
- * i386.h: (UNIXWARE_COMPAT): Rename to SYSV386_COMPAT as the
- problem isn't really specific to Unixware.
- (OLDGCC_COMPAT): Define.
- (i386_optab): If !OLDGCC_COMPAT, don't handle fsubp etc. with
- destination %st(0).
- Fix lots of comments.
-
-2000-03-02 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * d30v.h:
- (SHORT_B2r, SHORT_B3, SHORT_B3r, SHORT_B3b, SHORT_B3br): Updated.
- (SHORT_D1r, SHORT_D2, SHORT_D2r, SHORT_D2Br, SHORT_U): Updated.
- (SHORT_F, SHORT_AF, SHORT_T, SHORT_A5, SHORT_CMP, SHORT_CMPU): Updated.
- (SHORT_A1, SHORT_AA, SHORT_RA, SHORT_MODINC, SHORT_MODDEC): Updated.
- (SHORT_C1, SHORT_C2, SHORT_UF, SHORT_A2, SHORT_NONE, LONG): Updated.
- (LONG_U, LONG_Ur, LONG_CMP, LONG_M, LONG_M2, LONG_2, LONG_2r): Updated.
- (LONG_2b, LONG_2br, LONG_D, LONG_Dr, LONG_Dbr): Updated.
-
-2000-02-25 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (fild, fistp): Change intel d_Suf form to fildd and
- fistpd without suffix.
-
-2000-02-24 Nick Clifton <nickc@cygnus.com>
-
- * cgen.h (cgen_cpu_desc): Rename field 'flags' to
- 'signed_overflow_ok_p'.
- Delete prototypes for cgen_set_flags() and cgen_get_flags().
-
-2000-02-24 Andrew Haley <aph@cygnus.com>
-
- * cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
- (CGEN_CPU_TABLE): flags: new field.
- Add prototypes for new functions.
-
-2000-02-24 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Add some more UNIXWARE_COMPAT comments.
-
-2000-02-23 Linas Vepstas <linas@linas.org>
-
- * i370.h: New file.
-
-2000-02-22 Chandra Chavva <cchavva@cygnus.com>
-
- * d30v.h (FLAG_NOT_WITH_ADDSUBppp): Redefined as operation
- cannot be combined in parallel with ADD/SUBppp.
-
-2000-02-22 Andrew Haley <aph@cygnus.com>
-
- * mips.h: (OPCODE_IS_MEMBER): Add comment.
-
-1999-12-30 Andrew Haley <aph@cygnus.com>
-
- * mips.h (OPCODE_IS_MEMBER): Add gp32 arg, which determines
- whether synthetic opcodes (e.g. move) generate 32-bit or 64-bit
- insns.
-
-2000-01-15 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Qualify intel mode far call and jmp with x_Suf.
-
-1999-12-27 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Add JumpAbsolute qualifier to all non-intel mode
- indirect jumps and calls. Add FF/3 call for intel mode.
-
-Wed Dec 1 03:05:25 1999 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h: Add new operand types. Add new instruction formats.
-
-Wed Nov 24 20:28:58 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Correctly handle immediate for PA2.0 "bb"
- instruction.
-
-1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (INSN_ISA5): New.
-
-1999-11-01 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (OPCODE_IS_MEMBER): New.
-
-1999-10-29 Nick Clifton <nickc@cygnus.com>
-
- * d30v.h (SHORT_AR): Define.
-
-1999-10-18 Michael Meissner <meissner@cygnus.com>
-
- * alpha.h (alpha_num_opcodes): Convert to unsigned.
- (alpha_num_operands): Ditto.
-
-Sun Oct 10 01:46:56 1999 Jerry Quinn <jerry.quinn.adv91@alum.dartmouth.org>
-
- * hppa.h (pa_opcodes): Add load and store cache control to
- instructions. Add ordered access load and store.
-
- * hppa.h (pa_opcode): Add new entries for addb and addib.
-
- * hppa.h (pa_opcodes): Fix cmpb and cmpib entries.
-
- * hppa.h (pa_opcodes): Add entries for cmpb and cmpib.
-
-Thu Oct 7 00:12:25 MDT 1999 Diego Novillo <dnovillo@cygnus.com>
-
- * d10v.h: Add flag RESTRICTED_NUM3 for imm3 operands.
-
-Thu Sep 23 07:08:38 1999 Jerry Quinn <jquinn@nortelnetworks.com>
-
- * hppa.h (pa_opcodes): Add "call" and "ret". Clean up "b", "bve"
- and "be" using completer prefixes.
-
- * hppa.h (pa_opcodes): Add initializers to silence compiler.
-
- * hppa.h: Update comments about character usage.
-
-Mon Sep 20 03:55:31 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Fix minor thinkos introduced while cleaning
- up the new fstw & bve instructions.
-
-Sun Sep 19 10:40:59 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Add remaining PA2.0 integer load/store
- instructions.
-
- * hppa.h (pa_opcodes): Add remaining PA2.0 FP load/store instructions.
-
- * hppa.h (pa_opcodes): Add long offset double word load/store
- instructions.
-
- * hppa.h (pa_opcodes): Add FLAG_STRICT variants of FP loads and
- stores.
-
- * hppa.h (pa_opcodes): Handle PA2.0 fcnv, fcmp and ftest insns.
-
- * hppa.h (pa_opcodes): Finish support for PA2.0 "b" instructions.
-
- * hppa.h (pa_opcodes): Handle PA2.0 "bve" instructions.
-
- * hppa.h (pa_opcodes): Add new syntax "be" instructions.
-
- * hppa.h (pa_opcodes): Note use of 'M' and 'L'.
-
- * hppa.h (pa_opcodes): Add support for "b,l".
-
- * hppa.h (pa_opcodes): Add support for "b,gate".
-
-Sat Sep 18 11:41:16 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Use 'fX' for first register operand
- in xmpyu.
-
- * hppa.h (pa_opcodes): Fix mask for probe and probei.
-
- * hppa.h (pa_opcodes): Fix mask for depwi.
-
-Tue Sep 7 13:44:25 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Add "addil" variant which has the %r1 as
- an explicit output argument.
-
-Mon Sep 6 04:41:42 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h: Add strict variants of PA1.0/PA1.1 loads and stores.
- Add a few PA2.0 loads and store variants.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * pj.h: New file.
-
-1999-08-29 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_regtab): Move %st to top of table, and split off
- other fp reg entries.
- (i386_float_regtab): To here.
-
-Sat Aug 28 00:25:25 1999 Jerry Quinn <jquinn@nortelnetworks.com>
-
- * hppa.h (pa_opcodes): Replace 'f' by 'v'. Prefix float register args
- by 'f'.
-
- * hppa.h (pa_opcodes): Add extrd, extrw, depd, depdi, depw, depwi.
- Add supporting args.
-
- * hppa.h: Document new completers and args.
- * hppa.h (pa_opcodes): Add 64 bit patterns and pa2.0 syntax for uxor,
- uaddcm, dcor, addi, add, sub, subi, shladd, rfi, and probe. Add pa2.0
- extensions for ssm, rsm, pdtlb, pitlb. Add performance instructions
- pmenb and pmdis.
-
- * hppa.h (pa_opcodes): Add pa2.0 instructions hadd, hshl,
- hshr, hsub, mixh, mixw, permh.
-
- * hppa.h (pa_opcodes): Change completers in instructions to
- use 'c' prefix.
-
- * hppa.h (pa_opcodes): Add popbts, new forms of bb, havg,
- hshladd, hshradd, shrpd, and shrpw instructions. Update arg comments.
-
- * hppa.h (pa_opcodes): Change fmpyfadd, fmpynfadd, fneg,
- fnegabs to use 'I' instead of 'F'.
-
-1999-08-21 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Add AMD athlon instructions, pfnacc, pfpnacc, pswapd.
- Document pf2iw and pi2fw as athlon insns. Remove pswapw.
- Alphabetically sort PIII insns.
-
-Wed Aug 18 18:14:40 1999 Doug Evans <devans@canuck.cygnus.com>
-
- * cgen.h (CGEN_INSN_MACH_HAS_P): New macro.
-
-Fri Aug 6 09:46:35 1999 Jerry Quinn <jquinn@nortelnetworks.com>
-
- * hppa.h (pa_opcodes): Add 64 bit versions of or, xor, and,
- and andcm. Add 32 and 64 bit version of cmpclr, cmpiclr.
-
- * hppa.h: Document 64 bit condition completers.
-
-Thu Aug 5 16:56:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
-
- * hppa.h (pa_opcodes): Change condition args to use '?' prefix.
-
-1999-08-04 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_optab): Add DefaultSize modifier to all insns
- that implicitly modify %esp. #undef d_Suf, x_suf, sld_suf,
- sldx_suf, bwld_Suf, d_FP, x_FP, sld_FP, sldx_FP at end of table.
-
-Wed Jul 28 02:04:24 1999 Jerry Quinn <jquinn@nortelnetworks.com>
- Jeff Law <law@cygnus.com>
-
- * hppa.h (pa_opcodes): Add "pushnom" and "pushbts".
-
- * hppa.h (pa_opcodes): Mark all PA2.0 opcodes with FLAG_STRICT.
-
- * hppa.h (pa_opcodes): Change xmpyu, fmpyfadd,
- and fmpynfadd to use 'J' and 'K' instead of 'E' and 'X'.
-
-1999-07-13 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Add "undocumented" AMD 3DNow! pf2iw, pi2fw, pswapw insns.
-
-Thu Jul 1 00:17:24 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (struct pa_opcode): Add new field "flags".
- (FLAGS_STRICT): Define.
-
-Fri Jun 25 04:22:04 1999 Jerry Quinn <jquinn@nortelnetworks.com>
- Jeff Law <law@cygnus.com>
-
- * hppa.h (pa_opcodes): Add pa2.0 clrbts instruction.
-
- * hppa.h (pa_opcodes): Add entries for mfia and mtsarcm instructions.
-
-1999-06-23 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Allow `l' suffix on bswap. Allow `w' suffix on arpl,
- lldt, lmsw, ltr, str, verr, verw. Add FP flag to fcmov*. Add FP
- flag to fcomi and friends.
-
-Fri May 28 15:26:11 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Move integer arithmetic instructions after
- integer logical instructions.
-
-1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
-
- * m68k.h: Document new formats `E', `G', `H' and new places `N',
- `n', `o'.
-
- * m68k.h: Define mcf5206e, mcf5307, mcf. Document new format `u'
- and new places `m', `M', `h'.
-
-Thu May 27 04:13:54 1999 Joel Sherrill (joel@OARcorp.com
-
- * hppa.h (pa_opcodes): Add several processor specific system
- instructions.
-
-Wed May 26 16:57:44 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pa_opcodes): Add second entry for "comb", "comib",
- "addb", and "addib" to be used by the disassembler.
-
-1999-05-12 Alan Modra <alan@apri.levels.unisa.edu.au>
-
- * i386.h (ReverseModrm): Remove all occurences.
- (InvMem): Add to control/debug/test mov insns, movhlps, movlhps,
- movmskps, pextrw, pmovmskb, maskmovq.
- Change NoSuf to FP on all MMX, XMM and AMD insns as these all
- ignore the data size prefix.
-
- * i386.h (i386_optab, i386_regtab): Add support for PIII SIMD.
- Mostly stolen from Doug Ledford <dledford@redhat.com>
-
-Sat May 8 23:27:35 1999 Richard Henderson <rth@cygnus.com>
-
- * ppc.h (PPC_OPCODE_64_BRIDGE): New.
-
-1999-04-14 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (CGEN_ATTR): Delete member num_nonbools.
- (CGEN_ATTR_TYPE): Update.
- (CGEN_ATTR_MASK): Number booleans starting at 0.
- (CGEN_ATTR_VALUE): Update.
- (CGEN_INSN_ATTR): Update.
-
-Mon Apr 12 23:43:27 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (fmpyfadd, fmpynfadd, fneg, fnegabs): New PA2.0
- instructions.
-
-Tue Mar 23 11:24:38 1999 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (bb, bvb): Tweak opcode/mask.
-
-
-1999-03-22 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (CGEN_ISA,CGEN_MACH): New typedefs.
- (struct cgen_cpu_desc): Rename member mach to machs. New member isas.
- New members word_bitsize,default_insn_bitsize,base_insn-bitsize,
- min_insn_bitsize,max_insn_bitsize,isa_table,mach_table,rebuild_tables.
- Delete member max_insn_size.
- (enum cgen_cpu_open_arg): New enum.
- (cpu_open): Update prototype.
- (cpu_open_1): Declare.
- (cgen_set_cpu): Delete.
-
-1999-03-11 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (CGEN_HW_TABLE): Delete `num_init_entries' member.
- (CGEN_OPERAND_NIL): New macro.
- (CGEN_OPERAND): New member `type'.
- (@arch@_cgen_operand_table): Delete decl.
- (CGEN_OPERAND_INDEX,CGEN_OPERAND_TYPE,CGEN_OPERAND_ENTRY): Delete.
- (CGEN_OPERAND_TABLE): New struct.
- (cgen_operand_lookup_by_name,cgen_operand_lookup_by_num): Declare.
- (CGEN_OPINST): Pointer to operand table entry replaced with enum.
- (CGEN_CPU_TABLE): New member `isa'. Change member `operand_table',
- now a CGEN_OPERAND_TABLE. Add CGEN_CPU_DESC arg to
- {get,set}_{int,vma}_operand.
- (@arch@_cgen_cpu_open): New arg `isa'.
- (cgen_set_cpu): Ditto.
-
-Fri Feb 26 02:36:45 1999 Richard Henderson <rth@cygnus.com>
-
- * i386.h: Fill in cmov and fcmov alternates. Add fcomi short forms.
-
-1999-02-25 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (enum cgen_asm_type): Add CGEN_ASM_NONE.
- (CGEN_HW_ENTRY): Delete member `next'. Change type of `type' to
- enum cgen_hw_type.
- (CGEN_HW_TABLE): New struct.
- (hw_table): Delete declaration.
- (CGEN_OPERAND): Change member hw to hw_type, change type from pointer
- to table entry to enum.
- (CGEN_OPINST): Ditto.
- (CGEN_CPU_TABLE): Change member hw_list to hw_table.
-
-Sat Feb 13 14:13:44 1999 Richard Henderson <rth@cygnus.com>
-
- * alpha.h (AXP_OPCODE_EV6): New.
- (AXP_OPCODE_NOPAL): Include it.
-
-1999-02-09 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (CGEN_CPU_DESC): Renamed from CGEN_OPCODE_DESC.
- All uses updated. New members int_insn_p, max_insn_size,
- parse_operand,insert_operand,extract_operand,print_operand,
- sizeof_fields,set_fields_bitsize,get_int_operand,set_int_operand,
- get_vma_operand,set_vma_operand,parse_handlers,insert_handlers,
- extract_handlers,print_handlers.
- (CGEN_ATTR): Change type of num_nonbools to unsigned int.
- (CGEN_ATTR_BOOL_OFFSET): New macro.
- (CGEN_ATTR_MASK): Subtract it to compute bit number.
- (CGEN_ATTR_VALUE): Redo bool/nonbool attr calculation.
- (cgen_opcode_handler): Renamed from cgen_base.
- (CGEN_HW_ATTR_VALUE): Renamed from CGEN_HW_ATTR, all uses updated.
- (CGEN_OPERAND_ATTR_VALUE): Renamed from CGEN_OPERAND_ATTR,
- all uses updated.
- (CGEN_OPERAND_INDEX): Rewrite to use table entry, not global.
- (enum cgen_opinst_type): Renamed from cgen_operand_instance_type.
- (CGEN_IFLD_ATTR_VALUE): Renamed from CGEN_IFLD_ATTR, all uses updated.
- (CGEN_OPCODE,CGEN_IBASE): New types.
- (CGEN_INSN): Rewrite.
- (CGEN_{ASM,DIS}_HASH*): Delete.
- (init_opcode_table,init_ibld_table): Declare.
- (CGEN_INSN_ATTR): New type.
-
-Mon Feb 1 21:09:14 1999 Catherine Moore <clm@cygnus.com>
-
- * i386.h (d_Suf, x_Suf, sld_Suf, sldx_Suf, bwld_Suf): Define.
- (x_FP, d_FP, dls_FP, sldx_FP): Define.
- Change *Suf definitions to include x and d suffixes.
- (movsx): Use w_Suf and b_Suf.
- (movzx): Likewise.
- (movs): Use bwld_Suf.
- (fld): Change ordering. Use sld_FP.
- (fild): Add Intel Syntax equivalent of fildq.
- (fst): Use sld_FP.
- (fist): Use sld_FP.
- (fstp): Use sld_FP. Add x_FP version.
- (fistp): LLongMem version for Intel Syntax.
- (fcom, fcomp): Use sld_FP.
- (fadd, fiadd, fsub): Use sld_FP.
- (fsubr): Use sld_FP.
- (fmul, fimul, fdvi, fidiv, fdivr): Use sld_FP.
-
-1999-01-27 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (enum cgen_mode): Add CGEN_MODE_TARGET_MAX, CGEN_MODE_INT,
- CGEN_MODE_UINT.
-
-1999-01-16 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (bv): Fix mask.
-
-1999-01-05 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (CGEN_ATTR_VALUE_TYPE): New typedef.
- (CGEN_ATTR): Use it.
- (CGEN_ATTR_TYPE,CGEN_ATTR_ENTRY): Ditto.
- (CGEN_ATTR_TABLE): New member dfault.
-
-1998-12-30 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (MIPS16_INSN_BRANCH): New.
-
-Wed Dec 9 10:38:48 1998 David Taylor <taylor@texas.cygnus.com>
-
- The following is part of a change made by Edith Epstein
- <eepstein@sophia.cygnus.com> as part of a project to merge in
- changes by HP; HP did not create ChangeLog entries.
-
- * hppa.h (completer_chars): list of chars to not put a space
- after.
-
-Sun Dec 6 13:21:34 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h (i386_optab): Permit w suffix on processor control and
- status word instructions.
-
-1998-11-30 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (struct cgen_hw_entry): Delete const on attrs member.
- (struct cgen_keyword_entry): Ditto.
- (struct cgen_operand): Ditto.
- (CGEN_IFLD): New typedef, with associated access macros.
- (CGEN_IFMT): New typedef, with associated access macros.
- (CGEN_IFMT): Renamed from CGEN_FORMAT. New member `iflds'.
- (CGEN_IVALUE): New typedef.
- (struct cgen_insn): Delete const on syntax,attrs members.
- `format' now points to format data. Type of `value' is now
- CGEN_IVALUE.
- (struct cgen_opcode_table): New member ifld_table.
-
-1998-11-18 Doug Evans <devans@casey.cygnus.com>
-
- * cgen.h (cgen_extract_fn): Update type of `base_insn' arg.
- (CGEN_OPERAND_INSTANCE): New member `attrs'.
- (CGEN_OPERAND_INSTANCE_{ATTRS,ATTR}): New macros.
- (cgen_dis_lookup_insn): Update type of `base_insn' arg.
- (cgen_opcode_table): Update type of dis_hash fn.
- (extract_operand): Update type of `insn_value' arg.
-
-Thu Oct 29 11:38:36 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Delete.
-
-Tue Oct 27 08:57:59 1998 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.h (INSN_MULT): Added.
-
-Tue Oct 20 11:31:34 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (MAX_MNEM_SIZE): Rename from MAX_OPCODE_SIZE.
-
-Mon Oct 19 12:50:00 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_INSN_INT): New typedef.
- (CGEN_INT_INSN_P): Renamed from CGEN_INT_INSN.
- (CGEN_INSN_BYTES): Renamed from cgen_insn_t.
- (CGEN_INSN_BYTES_PTR): New typedef.
- (CGEN_EXTRACT_INFO): New typedef.
- (cgen_insert_fn,cgen_extract_fn): Update.
- (cgen_opcode_table): New member `insn_endian'.
- (assemble_insn,lookup_insn,lookup_get_insn_operands): Update.
- (insert_operand,extract_operand): Update.
- (cgen_get_insn_value,cgen_put_insn_value): Add prototypes.
-
-Fri Oct 9 13:38:13 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_ATTR_BOOLS): New macro.
- (struct CGEN_HW_ENTRY): New member `attrs'.
- (CGEN_HW_ATTR): New macro.
- (struct CGEN_OPERAND_INSTANCE): New member `name'.
- (CGEN_INSN_INVALID_P): New macro.
-
-Mon Oct 5 00:21:07 1998 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h: Add "fid".
-
-Sun Oct 4 21:00:00 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- From Robert Andrew Dale <rob@nb.net>
- * i386.h (i386_optab): Add AMD 3DNow! instructions.
- (AMD_3DNOW_OPCODE): Define.
-
-Tue Sep 22 17:53:47 1998 Nick Clifton <nickc@cygnus.com>
-
- * d30v.h (EITHER_BUT_PREFER_MU): Define.
-
-Mon Aug 10 14:09:38 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * cgen.h (cgen_insn): #if 0 out element `cdx'.
-
-Mon Aug 3 12:21:57 1998 Doug Evans <devans@seba.cygnus.com>
-
- Move all global state data into opcode table struct, and treat
- opcode table as something that is "opened/closed".
- * cgen.h (CGEN_OPCODE_DESC): New type.
- (all fns): New first arg of opcode table descriptor.
- (cgen_set_parse_operand_fn): Add prototype.
- (cgen_current_machine,cgen_current_endian): Delete.
- (CGEN_OPCODE_TABLE): New members mach,endian,operand_table,
- parse_operand_fn,asm_hash_table,asm_hash_table_entries,
- dis_hash_table,dis_hash_table_entries.
- (opcode_open,opcode_close): Add prototypes.
-
- * cgen.h (cgen_insn): New element `cdx'.
-
-Thu Jul 30 21:44:25 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * d30v.h (FLAG_LKR): New flag for "left-kills-right" instructions.
-
-Tue Jul 28 10:59:07 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h: Add "no_match_operands" field for instructions.
- (MN10300_MAX_OPERANDS): Define.
-
-Fri Jul 24 11:44:24 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * cgen.h (cgen_macro_insn_count): Declare.
-
-Tue Jul 21 13:12:13 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_VERSION_{MAJOR,MINOR,FIXLEVEL}): Define.
- (cgen_insert_fn,cgen_extract_fn): New arg `pc'.
- (get_operand,put_operand): Replaced with get_{int,vma}_operand,
- set_{int,vma}_operand.
-
-Fri Jun 26 11:09:06 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h: Add "machine" field for instructions.
- (MN103, AM30): Define machine types.
-
-Fri Jun 19 16:09:09 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Use FP, not sl_Suf, for fxsave and fxrstor.
-
-1998-06-18 Ulrich Drepper <drepper@cygnus.com>
-
- * i386.h: Add support for fxsave, fxrstor, sysenter and sysexit.
-
-Sat Jun 13 11:31:35 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_optab): Add general form of aad and aam. Add ud2a
- and ud2b.
- (i386_regtab): Allow cr0..7, db0..7, dr0..7, tr0..7, not just
- those that happen to be implemented on pentiums.
-
-Tue Jun 9 12:16:01 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Change occurences of Data16 to Size16, Data32 to Size32,
- IgnoreDataSize to IgnoreSize. Flag address and data size prefixes
- with Size16|IgnoreSize or Size32|IgnoreSize.
-
-Mon Jun 8 12:15:52 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (REPNE): Rename to REPNE_PREFIX_OPCODE.
- (REPE): Rename to REPE_PREFIX_OPCODE.
- (i386_regtab_end): Remove.
- (i386_prefixtab, i386_prefixtab_end): Remove.
- (i386_optab): Use NULL as sentinel rather than "" to suit rewrite
- of md_begin.
- (MAX_OPCODE_SIZE): Define.
- (i386_optab_end): Remove.
- (sl_Suf): Define.
- (sl_FP): Use sl_Suf.
-
- * i386.h (i386_optab): Allow 16 bit displacement for `mov
- mem,acc'. Combine 16 and 32 bit forms of various insns. Allow 16
- bit form of ljmp. Add IsPrefix modifier to prefixes. Add addr32,
- data32, dword, and adword prefixes.
- (i386_regtab): Add BaseIndex modifier to valid 16 bit base/index
- regs.
-
-Fri Jun 5 23:42:43 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_regtab): Remove BaseIndex modifier from esp.
-
- * i386.h: Allow `l' suffix on fld, fst, fstp, fcom, fcomp with
- register operands, because this is a common idiom. Flag them with
- a warning. Allow illegal faddp, fsubp, fsubrp, fmulp, fdivp,
- fdivrp because gcc erroneously generates them. Also flag with a
- warning.
-
- * i386.h: Add suffix modifiers to most insns, and tighter operand
- checks in some cases. Fix a number of UnixWare compatibility
- issues with float insns. Merge some floating point opcodes, using
- new FloatMF modifier.
- (WORD_PREFIX_OPCODE): Rename to DATA_PREFIX_OPCODE for
- consistency.
-
- * i386.h: Change occurence of ShortformW to W|ShortForm. Add
- IgnoreDataSize where appropriate.
-
-Wed Jun 3 18:28:45 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: (one_byte_segment_defaults): Remove.
- (two_byte_segment_defaults): Remove.
- (i386_regtab): Add BaseIndex to 32 bit regs reg_type.
-
-Fri May 15 15:59:04 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (cgen_hw_lookup_by_name): Renamed from cgen_hw_lookup.
- (cgen_hw_lookup_by_num): Declare.
-
-Thu May 7 09:27:58 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * mips.h (OP_{SH,MASK}_CODE2): Added "q" operand format for lower
- ten bits of MIPS ISA1 "break" instruction, and for "sdbbp"
-
-Thu May 7 02:14:08 1998 Doug Evans <devans@charmed.cygnus.com>
-
- * cgen.h (cgen_asm_init_parse): Delete.
- (cgen_save_fixups,cgen_restore_fixups,cgen_swap_fixups): Delete.
- (cgen_asm_record_register,cgen_asm_finish_insn): Delete.
-
-Mon Apr 27 10:13:11 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_ATTR_TYPE): Delete `const', moved to uses.
- (cgen_asm_finish_insn): Update prototype.
- (cgen_insn): New members num, data.
- (CGEN_INSN_TABLE): Members asm_hash, asm_hash_table_size,
- dis_hash, dis_hash_table_size moved to ...
- (CGEN_OPCODE_TABLE). Here. Renamed from CGEN_OPCODE_DATA.
- All uses updated. New members asm_hash_p, dis_hash_p.
- (CGEN_MINSN_EXPANSION): New struct.
- (cgen_expand_macro_insn): Declare.
- (cgen_macro_insn_count): Declare.
- (get_insn_operands): Update prototype.
- (lookup_get_insn_operands): Declare.
-
-Tue Apr 21 17:11:32 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_optab): Change iclrKludge and imulKludge to
- regKludge. Add operands types for string instructions.
-
-Mon Apr 20 14:40:29 1998 Tom Tromey <tromey@cygnus.com>
-
- * i386.h (X): Renamed from `Z_' to preserve formatting of opcode
- table.
-
-Sun Apr 19 13:54:06 1998 Tom Tromey <tromey@cygnus.com>
-
- * i386.h (Z_): Renamed from `_' to avoid clash with common alias
- for `gettext'.
-
-Fri Apr 3 12:04:48 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h: Remove NoModrm flag from all insns: it's never checked.
- Add IsString flag to string instructions.
- (IS_STRING): Don't define.
- (LOCK_PREFIX_OPCODE, CS_PREFIX_OPCODE, DS_PREFIX_OPCODE): Define.
- (ES_PREFIX_OPCODE, FS_PREFIX_OPCODE, GS_PREFIX_OPCODE): Define.
- (SS_PREFIX_OPCODE): Define.
-
-Mon Mar 30 21:31:56 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Revert March 24 patch; no more LinearAddress.
-
-Mon Mar 30 10:25:54 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_optab): Remove fwait (9b) from all floating point
- instructions, and instead add FWait opcode modifier. Add short
- form of fldenv and fstenv.
- (FWAIT_OPCODE): Define.
-
- * i386.h (i386_optab): Change second operand constraint of `mov
- sreg,reg|mem' instruction from Reg16|Mem to WordReg|WordMem to
- allow legal instructions such as `movl %gs,%esi'
-
-Fri Mar 27 18:30:52 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * h8300.h: Various changes to fully bracket initializers.
-
-Tue Mar 24 18:32:47 1998 H.J. Lu <hjl@gnu.org>
-
- * i386.h: Set LinearAddress for lidt and lgdt.
-
-Mon Mar 2 10:44:07 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_BOOL_ATTR): New macro.
-
-Thu Feb 26 15:54:31 1998 Michael Meissner <meissner@cygnus.com>
-
- * d30v.h (FLAG_DELAY): New flag for delayed branches/jumps.
-
-Mon Feb 23 10:38:21 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_CAT3): Delete. Use CONCAT3 now.
- (cgen_insn): Record syntax and format entries here, rather than
- separately.
-
-Tue Feb 17 21:42:56 1998 Nick Clifton <nickc@cygnus.com>
-
- * cgen.h (CGEN_SYNTAX_MAKE_FIELD): New macro.
-
-Tue Feb 17 16:00:56 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (cgen_insert_fn): Change type of result to const char *.
- (cgen_parse_{signed,unsigned}_integer): Delete min,max arguments.
- (CGEN_{INSN,KEYWORD,OPERAND}_NBOOL_ATTRS): Renamed from ..._MAX_ATTRS.
-
-Thu Feb 12 18:30:41 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * cgen.h (lookup_insn): New argument alias_p.
-
-Thu Feb 12 03:41:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
-
-Fix rac to accept only a0:
- * d10v.h (OPERAND_ACC): Split into:
- (OPERAND_ACC0, OPERAND_ACC1) .
- (OPERAND_GPR): Define.
-
-Wed Feb 11 17:31:53 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_FIELDS): Define here.
- (CGEN_HW_ENTRY): New member `type'.
- (hw_list): Delete decl.
- (enum cgen_mode): Declare.
- (CGEN_OPERAND): New member `hw'.
- (enum cgen_operand_instance_type): Declare.
- (CGEN_OPERAND_INSTANCE): New type.
- (CGEN_INSN): New member `operands'.
- (CGEN_OPCODE_DATA): Make hw_list const.
- (get_insn_operands,lookup_insn): Add prototypes for.
-
-Tue Feb 3 17:11:23 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (CGEN_INSN_MAX_ATTRS): Renamed from CGEN_MAX_INSN_ATTRS.
- (CGEN_HW_ENTRY): Move `next' entry to end of struct.
- (CGEN_KEYWORD_MAX_ATTRS): Renamed from CGEN_MAX_KEYWORD_ATTRS.
- (CGEN_OPERAND_MAX_ATTRS): Renamed from CGEN_MAX_OPERAND_ATTRS.
-
-Mon Feb 2 19:19:15 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * cgen.h: Correct typo in comment end marker.
-
-Mon Feb 2 17:10:38 1998 Steve Haworth <steve@pm.cse.rmit.EDU.AU>
-
- * tic30.h: New file.
-
-Thu Jan 22 17:54:56 1998 Nick Clifton <nickc@cygnus.com>
-
- * cgen.h: Add prototypes for cgen_save_fixups(),
- cgen_restore_fixups(), and cgen_swap_fixups(). Change prototype
- of cgen_asm_finish_insn() to return a char *.
-
-Wed Jan 14 17:21:43 1998 Nick Clifton <nickc@cygnus.com>
-
- * cgen.h: Formatting changes to improve readability.
-
-Mon Jan 12 11:37:36 1998 Doug Evans <devans@seba.cygnus.com>
-
- * cgen.h (*): Clean up pass over `struct foo' usage.
- (CGEN_ATTR): Make unsigned char.
- (CGEN_ATTR_TYPE): Update.
- (CGEN_ATTR_{ENTRY,TABLE}): New types.
- (cgen_base): Move member `attrs' to cgen_insn.
- (CGEN_KEYWORD): New member `null_entry'.
- (CGEN_{SYNTAX,FORMAT}): New types.
- (cgen_insn): Format and syntax separated from each other.
-
-Tue Dec 16 15:15:52 1997 Michael Meissner <meissner@cygnus.com>
-
- * d30v.h (d30v_opcode): Reorder flags somewhat, add new flags for
- 2 word load/store, ADDppp/SUBppp, 16/32 bit multiply. Make
- flags_{used,set} long.
- (d30v_operand): Make flags field long.
-
-Mon Dec 1 12:24:44 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * m68k.h: Fix comment describing operand types.
-
-Sun Nov 23 22:31:27 1997 Michael Meissner <meissner@cygnus.com>
-
- * d30v.h (SHORT_CMPU): Add case for cmpu instruction, and move
- everything else after down.
-
-Tue Nov 18 18:45:14 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
-
- * d10v.h (OPERAND_FLAG): Split into:
- (OPERAND_FFLAG, OPERAND_CFLAG) .
-
-Thu Nov 13 11:04:24 1997 Gavin Koch <gavin@cygnus.com>
-
- * mips.h (struct mips_opcode): Changed comments to reflect new
- field usage.
-
-Fri Oct 24 22:36:20 1997 Ken Raeburn <raeburn@cygnus.com>
-
- * mips.h: Added to comments a quick-ref list of all assigned
- operand type characters.
- (OP_{MASK,SH}_PERFREG): New macros.
-
-Wed Oct 22 17:28:33 1997 Richard Henderson <rth@cygnus.com>
-
- * sparc.h: Add '_' and '/' for v9a asr's.
- Patch from David Miller <davem@vger.rutgers.edu>
-
-Tue Oct 14 13:22:29 1997 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h: Bit ops with absolute addresses not in the 8 bit
- area are not available in the base model (H8/300).
-
-Thu Sep 25 13:03:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * m68k.h: Remove documentation of ` operand specifier.
-
-Wed Sep 24 19:00:34 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * m68k.h: Document q and v operand specifiers.
-
-Mon Sep 15 18:28:37 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (struct v850_opcode): Add processors field.
- (PROCESSOR_V850, PROCESSOR_ALL): New bit constants.
- (PROCESSOR_V850E, PROCESSOR_NOT_V850): New bit constants.
- (PROCESSOR_V850EA): New bit constants.
-
-Mon Sep 15 11:29:43 1997 Ken Raeburn <raeburn@cygnus.com>
-
- Merge changes from Martin Hunt:
-
- * d30v.h: Allow up to 64 control registers. Add
- SHORT_A5S format.
-
- * d30v.h (LONG_Db): New form for delayed branches.
-
- * d30v.h: (LONG_Db): New form for repeati.
-
- * d30v.h (SHORT_D2B): New form.
-
- * d30v.h (SHORT_A2): New form.
-
- * d30v.h (OPERAND_2REG): Add new operand to indicate 2
- registers are used. Needed for VLIW optimization.
-
-Mon Sep 8 14:05:45 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * cgen.h: Move assembler interface section
- up so cgen_parse_operand_result is defined for cgen_parse_address.
- (cgen_parse_address): Update prototype.
-
-Tue Sep 2 15:32:32 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (V850_OPREAND_ADJUST_SHORT_MEMORY): Removed.
-
-Tue Aug 26 12:21:52 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h (two_byte_segment_defaults): Correct base register 5 in
- modes 1 and 2 to be ss rather than ds. From Gabriel Paubert
- <paubert@iram.es>.
-
- * i386.h: Set ud2 to 0x0f0b. From Gabriel Paubert
- <paubert@iram.es>.
-
- * i386.h: Comment fixes for ficom[p]?{s,l} from Gabriel Paubert
- <paubert@iram.es>.
-
- * i386.h (JUMP_ON_CX_ZERO): Uncomment (define again).
- (JUMP_ON_ECX_ZERO): Remove commented out macro.
-
-Fri Aug 22 10:38:29 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (V850_NOT_R0): New flag.
-
-Mon Aug 18 11:05:58 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (struct v850_opcode): Remove flags field.
-
-Wed Aug 13 18:45:48 1997 Nick Clifton <nickc@cygnus.com>
-
- * v850.h (struct v850_opcode): Add flags field.
- (struct v850_operand): Extend meaning of 'bits' and 'shift'
- fields.
- (V850E_INSTRUCTION, V850EA_INSTRUCTION): New flags.
- (V850E_PUSH_POP, V850E_IMMEDIATE16, V850E_IMMEDIATE32): New flags.
-
-Fri Aug 8 16:58:42 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * arc.h: New file.
-
-Thu Jul 24 21:16:58 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (sparc_opcodes): Declare as const.
-
-Thu Jul 10 12:53:25 1997 Jeffrey A Law (law@cygnus.com)
-
- * mips.h (FP_S, FP_D): Define. Bitmasks indicating if an insn
- uses single or double precision floating point resources.
- (INSN_NO_ISA, INSN_ISA1): Define.
- (cpu specific INSN macros): Tweak into bitmasks outside the range
- of INSN_ISA field.
-
-Mon Jun 16 14:10:00 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * i386.h: Fix pand opcode.
-
-Mon Jun 2 11:35:09 1997 Gavin Koch <gavin@cygnus.com>
-
- * mips.h: Widen INSN_ISA and move it to a more convenient
- bit position. Add INSN_3900.
-
-Tue May 20 11:25:29 1997 Gavin Koch <gavin@cygnus.com>
-
- * mips.h (struct mips_opcode): added new field membership.
-
-Mon May 12 16:26:50 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * i386.h (movd): only Reg32 is allowed.
-
- * i386.h: add fcomp and ud2. From Wayne Scott
- <wscott@ichips.intel.com>.
-
-Mon May 5 17:16:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Add MMX instructions.
-
-Mon May 5 12:45:19 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * i386.h: Remove W modifier from conditional move instructions.
-
-Mon Apr 14 14:56:58 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Change the opcodes for fsubp, fsubrp, fdivp, and fdivrp
- with no arguments to match that generated by the UnixWare
- assembler.
-
-Thu Apr 10 14:35:00 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * cgen.h (<cpu>_cgen_assemble_insn): New arg for errmsg.
- (cgen_parse_operand_fn): Declare.
- (cgen_init_parse_operand): Declare.
- (cgen_parse_operand): Renamed from cgen_asm_parse_operand,
- new argument `want'.
- (enum cgen_parse_operand_result): Renamed from cgen_asm_result.
- (enum cgen_parse_operand_type): New enum.
-
-Sat Apr 5 13:14:05 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Revert last patch for the NON_BROKEN_OPCODES cases.
-
-Fri Apr 4 11:46:11 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * cgen.h: New file.
-
-Fri Apr 4 14:02:32 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Correct opcode values for fsubp, fsubrp, fdivp, and
- fdivrp.
-
-Tue Mar 25 22:57:26 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * v850.h (extract): Make unsigned.
-
-Mon Mar 24 14:38:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Add iclr.
-
-Thu Mar 20 19:49:10 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Change DW to W for cmpxchg and xadd, since they don't
- take a direction bit.
-
-Sat Mar 15 19:03:29 1997 H.J. Lu <hjl@lucon.org>
-
- * sparc.h (sparc_opcode_lookup_arch): Use full prototype.
-
-Fri Mar 14 15:22:01 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * sparc.h: Include <ansidecl.h>. Update function declarations to
- use prototypes, and to use const when appropriate.
-
-Thu Mar 6 14:18:30 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_RELAX): Define.
-
-Mon Feb 24 15:15:56 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h: Change pre_defined_registers to
- d10v_predefined_registers and reg_name_cnt to d10v_reg_name_cnt.
-
-Sat Feb 22 21:25:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * mips.h: Add macros for cop0, cop1 cop2 and cop3.
- Change mips_opcodes from const array to a pointer,
- and change bfd_mips_num_opcodes from const int to int,
- so that we can increase the size of the mips opcodes table
- dynamically.
-
-Fri Feb 21 16:34:18 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d30v.h (FLAG_X): Remove unused flag.
-
-Tue Feb 18 17:37:20 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d30v.h: New file.
-
-Fri Feb 14 13:16:15 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (PDS_NAME): Macro to access name field of predefined symbols.
- (PDS_VALUE): Macro to access value field of predefined symbols.
- (tic80_next_predefined_symbol): Add prototype.
-
-Mon Feb 10 10:32:17 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (tic80_symbol_to_value): Change prototype to match
- change in function, added class parameter.
-
-Thu Feb 6 17:30:15 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_ENDMASK): Add for flagging TIc80
- endmask fields, which are somewhat weird in that 0 and 32 are
- treated exactly the same.
-
-Thu Jan 30 13:46:18 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h: Change all the OPERAND defines to use the form (1 << X)
- rather than a constant that is 2**X. Reorder them to put bits for
- operands that have symbolic names in the upper bits, so they can
- be packed into an int where the lower bits contain the value that
- corresponds to that symbolic name.
- (predefined_symbo): Add struct.
- (tic80_predefined_symbols): Declare array of translations.
- (tic80_num_predefined_symbols): Declare size of that array.
- (tic80_value_to_symbol): Declare function.
- (tic80_symbol_to_value): Declare function.
-
-Wed Jan 29 09:37:25 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200.h (MN10200_OPERAND_RELAX): Define.
-
-Sat Jan 18 15:18:59 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_NO_R0_DEST): Add for opcodes where r0 cannot
- be the destination register.
-
-Thu Jan 16 20:48:55 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (struct tic80_opcode): Change "format" field to "flags".
- (FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete.
- (TIC80_VECTOR): Define a flag bit for the flags. This one means
- that the opcode can have two vector instructions in a single
- 32 bit word and we have to encode/decode both.
-
-Tue Jan 14 19:37:09 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_PCREL): Renamed from
- TIC80_OPERAND_RELATIVE for PC relative.
- (TIC80_OPERAND_BASEREL): New flag bit for register
- base relative.
-
-Mon Jan 13 15:56:38 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_FLOAT): Add for floating point operands.
-
-Mon Jan 6 10:51:15 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_SCALED): Operand may have optional
- ":s" modifier for scaling.
-
-Sun Jan 5 12:12:19 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_M_SI): Add operand modifier for ":m".
- (TIC80_OPERAND_M_LI): Ditto
-
-Sat Jan 4 19:02:44 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (TIC80_OPERAND_BITNUM): Renamed from TIC80_OPERAND_CC_SZ.
- (TIC80_OPERAND_CC): New define for condition code operand.
- (TIC80_OPERAND_CR): New define for control register operand.
-
-Fri Jan 3 16:22:23 1997 Fred Fish <fnf@cygnus.com>
-
- * tic80.h (struct tic80_opcode): Name changed.
- (struct tic80_opcode): Remove format field.
- (struct tic80_operand): Add insertion and extraction functions.
- (TIC80_OPERAND_*): Remove old bogus values, start adding new
- correct ones.
- (FMT_*): Ditto.
-
-Tue Dec 31 15:05:41 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * v850.h (V850_OPERAND_ADJUST_SHORT_MEMORY): New flag to adjust
- type IV instruction offsets.
-
-Fri Dec 27 22:23:10 1996 Fred Fish <fnf@cygnus.com>
-
- * tic80.h: New file.
-
-Wed Dec 18 10:06:31 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10200.h (MN10200_OPERAND_NOCHECK): Define.
-
-Sat Dec 14 10:48:31 1996 Fred Fish <fnf@ninemoons.com>
-
- * mn10200.h: Fix comment, mn10200_operand not powerpc_operand.
- * mn10300.h: Fix comment, mn10300_operand not powerpc_operand.
- * v850.h: Fix comment, v850_operand not powerpc_operand.
-
-Mon Dec 9 16:45:39 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10200.h: Flesh out structures and definitions needed by
- the mn10200 assembler & disassembler.
-
-Tue Nov 26 10:46:56 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h: Add mips16 definitions.
-
-Mon Nov 25 17:56:54 1996 J.T. Conklin <jtc@cygnus.com>
-
- * m68k.h: Document new <, >, m, n, o and p operand specifiers.
-
-Wed Nov 20 10:59:41 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_PCREL): Define.
- (MN10300_OPERAND_MEMADDR): Define.
-
-Tue Nov 19 13:30:40 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_REG_LIST): Define.
-
-Wed Nov 6 13:41:08 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_SPLIT): Define.
-
-Tue Nov 5 13:26:12 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_EXTENDED): Define.
-
-Mon Nov 4 12:52:48 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_REPEATED): Define.
-
-Fri Nov 1 10:31:02 1996 Richard Henderson <rth@tamu.edu>
-
- * alpha.h: Don't include "bfd.h"; private relocation types are now
- negative to minimize problems with shared libraries. Organize
- instruction subsets by AMASK extensions and PALcode
- implementation.
- (struct alpha_operand): Move flags slot for better packing.
-
-Tue Oct 29 12:19:10 1996 Jeffrey A Law (law@cygnus.com)
-
- * v850.h (V850_OPERAND_RELAX): New operand flag.
-
-Thu Oct 10 14:29:11 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (FMT_*): Move operand format definitions
- here.
-
-Tue Oct 8 14:48:07 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (MN10300_OPERAND_PAREN): Define.
-
-Mon Oct 7 16:52:11 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10300.h (mn10300_opcode): Add "format" field.
- (MN10300_OPERAND_*): Define.
-
-Thu Oct 3 10:33:46 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10x00.h: Delete.
- * mn10200.h, mn10300.h: New files.
-
-Wed Oct 2 21:31:26 1996 Jeffrey A Law (law@cygnus.com)
-
- * mn10x00.h: New file.
-
-Fri Sep 27 18:26:46 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * v850.h: Add new flag to indicate this instruction uses a PC
- displacement.
-
-Fri Sep 13 14:58:13 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (stmac): Add missing instruction.
-
-Sat Aug 31 16:02:03 1996 Jeffrey A Law (law@cygnus.com)
-
- * v850.h (v850_opcode): Remove "size" field. Add "memop"
- field.
-
-Fri Aug 23 10:39:08 1996 Jeffrey A Law (law@cygnus.com)
-
- * v850.h (V850_OPERAND_EP): Define.
-
- * v850.h (v850_opcode): Add size field.
-
-Thu Aug 22 16:51:25 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * v850.h (v850_operands): Add insert and extract fields, pointers
- to functions used to handle unusual operand encoding.
- (V850_OPERAND_REG, V850_OPERAND_SRG, V850_OPERAND_CC,
- V850_OPERAND_SIGNED): Defined.
-
-Wed Aug 21 17:45:10 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * v850.h (v850_operands): Add flags field.
- (OPERAND_REG, OPERAND_NUM): Defined.
-
-Tue Aug 20 14:52:02 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * v850.h: New file.
-
-Fri Aug 16 14:44:15 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * mips.h (OP_SH_LOCC, OP_SH_HICC, OP_MASK_CC, OP_SH_COP1NORM,
- OP_MASK_COP1NORM, OP_SH_COP1SPEC, OP_MASK_COP1SPEC,
- OP_MASK_COP1SCLR, OP_MASK_COP1CMP, OP_SH_COP1CMP, OP_SH_FORMAT,
- OP_MASK_FORMAT, OP_SH_TRUE, OP_MASK_TRUE, OP_SH_GE, OP_MASK_GE,
- OP_SH_UNSIGNED, OP_MASK_UNSIGNED, OP_SH_HINT, OP_MASK_HINT):
- Defined.
-
-Fri Aug 16 00:15:15 1996 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h (pitlb, pitlbe, iitlba, iitlbp, fic, fice): Accept
- a 3 bit space id instead of a 2 bit space id.
-
-Thu Aug 15 13:11:46 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h: Add some additional defines to support the
- assembler in determining which operations can be done in parallel.
-
-Tue Aug 6 11:13:22 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (SN): Define.
- (eepmov.b): Renamed from "eepmov"
- (nop, bpt, rte, rts, sleep, clrmac): These have no size associated
- with them.
-
-Fri Jul 26 11:47:10 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h (OPERAND_SHIFT): New operand flag.
-
-Thu Jul 25 12:06:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h: Changes for divs, parallel-only instructions, and
- signed numbers.
-
-Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h (pd_reg): Define. Putting the definition here allows
- the assembler and disassembler to share the same struct.
-
-Mon Jul 22 12:15:25 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * i960.h (i960_opcodes): "halt" takes an argument. From Stephen
- Williams <steve@icarus.com>.
-
-Wed Jul 17 14:46:38 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v.h: New file.
-
-Thu Jul 11 12:09:15 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (band, bclr): Force high bit of immediate nibble to zero.
-
-Wed Jul 3 14:30:12 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * m68k.h (mcf5200): New macro.
- Document names of coldfire control registers.
-
-Tue Jul 2 23:05:45 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (SRC_IN_DST): Define.
-
- * h8300.h (UNOP3): Mark the register operand in this insn
- as a source operand, not a destination operand.
- (SHIFT_2, SHIFT_IMM): Remove. Eliminate all references.
- (UNOP3): Change SHIFT_IMM to IMM for H8/S bitops. Mark
- register operand with SRC_IN_DST.
-
-Fri Jun 21 13:52:17 1996 Richard Henderson <rth@tamu.edu>
-
- * alpha.h: New file.
-
-Thu Jun 20 15:02:57 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * rs6k.h: Remove obsolete file.
-
-Wed Jun 19 15:29:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Correct opcode values for faddp, fsubp, fsubrp, fmulp,
- fdivp, and fdivrp. Add ffreep.
-
-Tue Jun 18 16:06:00 1996 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * h8300.h: Reorder various #defines for readability.
- (ABS32SRC, ABS32DST, DSP32LIST, ABS32LIST, A32LIST): Define.
- (BITOP): Accept additional (unused) argument. All callers changed.
- (EBITOP): Likewise.
- (O_LAST): Bump.
- (ldc, stc, movb, movw, movl): Use 32bit offsets and absolutes.
-
- * h8300.h (EXR, SHIFT_2, MACREG, SHIFT_IMM, RDINC): Define.
- (O_TAS, O_CLRMAC, O_LDMAC, O_MAC, O_LDM, O_STM): Define.
- (BITOP, EBITOP): Handle new H8/S addressing modes for
- bit insns.
- (UNOP3): Handle new shift/rotate insns on the H8/S.
- (insns using exr): New instructions.
- (tas, mac, ldmac, clrmac, ldm, stm): New instructions.
-
-Thu May 23 16:56:48 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (add.l): Undo Apr 5th change. The manual I had
- was incorrect.
-
-Mon May 6 23:38:22 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (START): Remove.
- (MEMRELAX): Define. Mark absolute memory operands in mov.b, mov.w
- and mov.l insns that can be relaxed.
-
-Tue Apr 30 18:30:58 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * i386.h: Remove Abs32 from lcall.
-
-Mon Apr 22 17:09:23 1996 Doug Evans <dje@blues.cygnus.com>
-
- * sparc.h (SPARC_OPCODE_ARCH_V9_P): New macro.
- (SLCPOP): New macro.
- Mark X,Y opcode letters as in use.
-
-Thu Apr 11 17:28:18 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * sparc.h (F_FLOAT, F_FBR): Define.
-
-Fri Apr 5 16:55:34 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300.h (ABS8MEM): Renamed from ABSMOV. Remove ABSMOV
- from all insns.
- (ABS8SRC,ABS8DST): Add ABS8MEM.
- (add.l): Fix reg+reg variant.
- (eepmov.w): Renamed from eepmovw.
- (ldc,stc): Fix many cases.
-
-Sun Mar 31 13:30:03 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (SPARC_OPCODE_ARCH_MASK): New macro.
-
-Thu Mar 7 15:08:23 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (O): Mark operand letter as in use.
-
-Tue Feb 20 20:46:21 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (sparc_{encode,decode}_sparclet_cpreg): Declare.
- Mark operand letters uU as in use.
-
-Mon Feb 19 01:59:08 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_SPARCLET.
- (sparc_opcode_arch): Delete member `conflicts'. Add `supported'.
- (SPARC_OPCODE_SUPPORTED): New macro.
- (SPARC_OPCODE_CONFLICT_P): Rewrite.
- (F_NOTV9): Delete.
-
-Fri Feb 16 12:23:34 1996 Jeffrey A Law (law@cygnus.com)
-
- * sparc.h (sparc_opcode_lookup_arch) Make return type in
- declaration consistent with return type in definition.
-
-Wed Feb 14 18:14:11 1996 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * i386.h (i386_optab): Remove Data32 from pushf and popf.
-
-Thu Feb 8 14:27:21 1996 James Carlson <carlson@xylogics.com>
-
- * i386.h (i386_regtab): Add 80486 test registers.
-
-Mon Feb 5 18:35:46 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * i960.h (I_HX): Define.
- (i960_opcodes): Add HX instruction.
-
-Mon Jan 29 12:43:39 1996 Ken Raeburn <raeburn@cygnus.com>
-
- * i386.h: Fix waiting forms of finit, fstenv, fsave, fstsw, fstcw,
- and fclex.
-
-Wed Jan 24 22:36:59 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (enum sparc_opcode_arch_val): Replaces sparc_architecture.
- (SPARC_OPCODE_CONFLICT_P): Renamed from ARCHITECTURES_CONFLICT_P.
- (bfd_* defines): Delete.
- (sparc_opcode_archs): Replaces architecture_pname.
- (sparc_opcode_lookup_arch): Declare.
- (NUMOPCODES): Delete.
-
-Mon Jan 22 08:24:32 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc.h (enum sparc_architecture): Add v9a.
- (ARCHITECTURES_CONFLICT_P): Update.
-
-Thu Dec 28 13:27:53 1995 John Hassey <hassey@rtp.dg.com>
-
- * i386.h: Added Pentium Pro instructions.
-
-Thu Nov 2 22:59:22 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * m68k.h: Document new 'W' operand place.
-
-Tue Oct 24 10:49:10 1995 Jeffrey A Law (law@cygnus.com)
-
- * hppa.h: Add lci and syncdma instructions.
-
-Mon Oct 23 11:09:16 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
-
- * mips.h: Added INSN_4100 flag to mark NEC VR4100 specific
- instructions.
-
-Mon Oct 16 10:28:15 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * ppc.h (PPC_OPCODE_{COMMON,ANY}): New opcode flags for
- assembler's -mcom and -many switches.
-
-Wed Oct 11 16:56:33 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * i386.h: Fix cmpxchg8b extension opcode description.
-
-Thu Oct 5 18:03:36 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * i386.h: Add Pentium instructions wrmsr, rdtsc, rdmsr, cmpxchg8b,
- and register cr4.
-
-Tue Sep 19 15:26:43 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * m68k.h: Change comment: split type P into types 0, 1 and 2.
-
-Wed Aug 30 13:50:55 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (sparc_{encode,decode}_prefetch): Declare.
-
-Tue Aug 29 15:34:58 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (sparc_{encode,decode}_{asi,membar}): Declare.
-
-Wed Aug 2 18:32:19 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * m68kmri.h: Remove.
-
- * m68k.h: Move tables into opcodes/m68k-opc.c, leaving just the
- declarations. Remove F_ALIAS and flag field of struct
- m68k_opcode. Change arch field of struct m68k_opcode to unsigned
- int. Make name and args fields of struct m68k_opcode const.
-
-Wed Aug 2 08:16:46 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * sparc.h (F_NOTV9): Define.
-
-Tue Jul 11 14:20:42 1995 Jeff Spiegel <jeffs@lsil.com>
-
- * mips.h (INSN_4010): Define.
-
-Wed Jun 21 18:49:51 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * m68k.h (TBL1): Reverse sense of "round" argument in result.
-
- Changes from Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>:
- * m68k.h: Fix argument descriptions of coprocessor
- instructions to allow only alterable operands where appropriate.
- [!NO_DEFAULT_SIZES]: An omitted size defaults to `w'.
- (m68k_opcode_aliases): Add more aliases.
-
-Fri Apr 14 22:15:34 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * m68k.h: Added explcitly short-sized conditional branches, and a
- bunch of aliases (fmov*, ftest*, tdivul) to support gcc's
- svr4-based configurations.
-
-Mon Mar 13 21:30:01 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- Mon Feb 27 08:36:39 1995 Bryan Ford <baford@cs.utah.edu>
- * i386.h: added missing Data16/Data32 flags to a few instructions.
-
-Wed Mar 8 15:19:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (OP_MASK_FR, OP_SH_FR): Define.
- (OP_MASK_BCC, OP_SH_BCC): Define.
- (OP_MASK_PREFX, OP_SH_PREFX): Define.
- (OP_MASK_CCC, OP_SH_CCC): Define.
- (INSN_READ_FPR_R): Define.
- (INSN_RFE): Delete.
-
-Wed Mar 8 03:13:23 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * m68k.h (enum m68k_architecture): Deleted.
- (struct m68k_opcode_alias): New type.
- (m68k_opcodes): Now const. Deleted opcode aliases with exactly
- matching constraints, values and flags. As a side effect of this,
- the MOTOROLA_SYNTAX_ONLY and MIT_SYNTAX_ONLY macros, which so far
- as I know were never used, now may need re-examining.
- (numopcodes): Now const.
- (m68k_opcode_aliases, numaliases): New variables.
- (endop): Deleted.
- [DONT_DEFINE_TABLE]: Declare numopcodes, numaliases, and
- m68k_opcode_aliases; update declaration of m68k_opcodes.
-
-Mon Mar 6 10:02:00 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * hppa.h (delay_type): Delete unused enumeration.
- (pa_opcode): Replace unused delayed field with an architecture
- field.
- (pa_opcodes): Mark each instruction as either PA1.0 or PA1.1.
-
-Fri Mar 3 16:10:24 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (INSN_ISA4): Define.
-
-Fri Feb 24 19:13:37 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (M_DLA_AB, M_DLI): Define.
-
-Thu Feb 23 17:33:09 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * hppa.h (fstwx): Fix single-bit error.
-
-Wed Feb 15 12:19:52 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * mips.h (M_ULD, M_ULD_A, M_USD, M_USD_A): Define.
-
-Mon Feb 6 10:35:23 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * i386.h: added cpuid instruction , and dr[0-7] aliases for the
- debug registers. From Charles Hannum (mycroft@netbsd.org).
-
-Mon Feb 6 03:31:54 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- Changes from Bryan Ford <baford@schirf.cs.utah.edu> for 16-bit
- i386 support:
- * i386.h (MOV_AX_DISP32): New macro.
- (i386_optab): Added Data16 and Data32 as needed. Added "w" forms
- of several call/return instructions.
- (ADDR_PREFIX_OPCODE): New macro.
-
-Mon Jan 23 16:45:43 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- Sat Jan 21 17:50:38 1995 Pat Rankin (rankin@eql.caltech.edu)
-
- * vax.h (struct vot_wot, field `args'): Make it pointer to const
- char.
- (struct vot, field `name'): ditto.
-
-Thu Jan 19 14:47:53 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * vax.h: Supply and properly group all values in end sentinel.
-
-Tue Jan 17 10:55:30 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * mips.h (INSN_ISA, INSN_4650): Define.
-
-Wed Oct 19 13:34:17 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * a29k.h: Add operand type 'I' for `inv' and `iretinv'. On
- systems with a separate instruction and data cache, such as the
- 29040, these instructions take an optional argument.
-
-Wed Sep 14 17:44:20 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * mips.h (INSN_STORE_MEMORY): Correct value to not conflict with
- INSN_TRAP.
-
-Tue Sep 6 11:39:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * mips.h (INSN_STORE_MEMORY): Define.
-
-Thu Jul 28 19:28:07 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * sparc.h: Document new operand type 'x'.
-
-Tue Jul 26 17:48:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i960.h (I_CX2): New instruction category. It includes
- instructions available on Cx and Jx processors.
- (I_JX): New instruction category, for JX-only instructions.
- (i960_opcodes): Put eshro and sysctl in I_CX2 category. Added
- Jx-only instructions, in I_JX category.
-
-Wed Jul 13 18:43:47 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * ns32k.h (endop): Made pointer const too.
-
-Sun Jul 10 11:01:09 1994 Ian Dall (dall@hfrd.dsto.gov.au)
-
- * ns32k.h: Drop Q operand type as there is no correct use
- for it. Add I and Z operand types which allow better checking.
-
-Thu Jul 7 12:34:48 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * h8300.h (xor.l) :fix bit pattern.
- (L_2): New size of operand.
- (trapa): Use it.
-
-Fri Jun 10 16:38:11 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * m68k.h: Move "trap" before "tpcc" to change disassembly.
-
-Fri Jun 3 15:57:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * sparc.h: Include v9 definitions.
-
-Thu Jun 2 12:23:17 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * m68k.h (m68060): Defined.
- (m68040up, mfloat, mmmu): Include it.
- (struct m68k_opcode): Widen `arch' field.
- (m68k_opcodes): Updated for M68060. Removed comments that were
- instructions commented out by "JF" years ago.
-
-Thu Apr 28 18:31:14 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * m68k.h (struct m68k_opcode): Shorten `arch' field to 8 bits, and
- add a one-bit `flags' field.
- (F_ALIAS): New macro.
-
-Wed Apr 27 11:29:52 1994 Steve Chamberlain (sac@cygnus.com)
-
- * h8300.h (dec, inc): Get encoding right.
-
-Mon Apr 4 13:12:43 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ppc.h (struct powerpc_operand): Removed signedp field; just use
- a flag instead.
- (PPC_OPERAND_SIGNED): Define.
- (PPC_OPERAND_SIGNOPT): Define.
-
-Thu Mar 31 19:34:08 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i386.h (IS_JUMP_ON_ECX_ZERO, "jcxz" pattern): Operand size
- prefix is 0x66, not 0x67. Patch from H.J. Lu (hlu@nynexst.com).
-
-Thu Mar 3 15:51:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i386.h: Reverse last change. It'll be handled in gas instead.
-
-Thu Feb 24 15:29:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i386.h (sar): Disabled the two-operand Imm1 form, since it was
- slower on the 486 and used the implicit shift count despite the
- explicit operand. The one-operand form is still available to get
- the shorter form with the implicit shift count.
-
-Thu Feb 17 12:27:52 1994 Torbjorn Granlund (tege@mexican.cygnus.com)
-
- * hppa.h: Fix typo in fstws arg string.
-
-Wed Feb 9 21:23:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ppc.h (struct powerpc_opcode): Make operands field unsigned.
-
-Mon Feb 7 19:14:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ppc.h (PPC_OPCODE_601): Define.
-
-Fri Feb 4 23:43:50 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * hppa.h (addb): Use '@' for addb and addib pseudo ops.
- (so we can determine valid completers for both addb and addb[tf].)
-
- * hppa.h (xmpyu): No floating point format specifier for the
- xmpyu instruction.
-
-Fri Feb 4 23:36:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ppc.h (PPC_OPERAND_NEXT): Define.
- (PPC_OPERAND_NEGATIVE): Change value to make room for above.
- (struct powerpc_macro): Define.
- (powerpc_macros, powerpc_num_macros): Declare.
-
-Fri Jan 21 19:13:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ppc.h: New file. Header file for PowerPC opcode table.
-
-Mon Jan 17 00:14:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * hppa.h: More minor template fixes for sfu and copr (to allow
- for easier disassembly).
-
- * hppa.h: Fix templates for all the sfu and copr instructions.
-
-Wed Dec 15 15:12:42 1993 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * i386.h (push): Permit Imm16 operand too.
-
-Sat Dec 11 16:14:06 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * h8300.h (andc): Exists in base arch.
-
-Wed Dec 1 12:15:32 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * From Hisashi MINAMINO <minamino@sramhc.sra.co.jp>
- * hppa.h: #undef NONE to avoid conflict with hiux include files.
-
-Sun Nov 21 22:06:57 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * hppa.h: Add FP quadword store instructions.
-
-Wed Nov 17 17:13:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h: (M_J_A): Added.
- (M_LA): Removed.
-
-Mon Nov 8 12:12:47 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (OP_MASK_CACHE, OP_SH_CACHE): Define. From Ted Lemon
- <mellon@pepper.ncd.com>.
-
-Sun Nov 7 00:30:11 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * hppa.h: Immediate field in probei instructions is unsigned,
- not low-sign extended.
-
-Wed Nov 3 10:30:00 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * m88k.h (RRI10MASK): Change from 0xfc00ffe0 to 0xfc00fc00.
-
-Tue Nov 2 12:41:30 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * i386.h: Add "fxch" without operand.
-
-Mon Nov 1 18:13:03 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (M_JAL_1, M_JAL_2, M_JAL_A): Added.
-
-Sat Oct 2 22:26:11 1993 Jeffrey A Law (law@snake.cs.utah.edu)
-
- * hppa.h: Add gfw and gfr to the opcode table.
-
-Wed Sep 29 16:23:00 1993 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * m88k.h: extended to handle m88110.
-
-Tue Sep 28 19:19:08 1993 Jeffrey A Law (law@snake.cs.utah.edu)
-
- * hppa.h (be, ble): Use operand type 'z' to denote absolute branch
- addresses.
-
-Tue Sep 14 14:04:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * i960.h (i960_opcodes): Properly bracket initializers.
-
-Mon Sep 13 12:50:52 1993 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * m88k.h (BOFLAG): rewrite to avoid nested comment.
-
-Mon Sep 13 15:46:06 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * m68k.h (two): Protect second argument with parentheses.
-
-Fri Sep 10 16:29:47 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * i386.h (i386_optab): Added new instruction "rsm" (for i386sl).
- Deleted old in/out instructions in "#if 0" section.
-
-Thu Sep 9 17:42:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * i386.h (i386_optab): Properly bracket initializers.
-
-Wed Aug 25 13:50:56 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * hppa.h (pa_opcode): Use '|' for movb and movib insns. (From
- Jeff Law, law@cs.utah.edu).
-
-Mon Aug 23 16:55:03 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * i386.h (lcall): Accept Imm32 operand also.
-
-Mon Aug 23 12:43:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (M_ABSU): Removed (absolute value of unsigned number??).
- (M_DABS): Added.
-
-Thu Aug 19 15:08:37 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h (INSN_*): Changed values. Removed unused definitions.
- Added INSN_COND_BRANCH_LIKELY, INSN_ISA2 and INSN_ISA3. Split
- INSN_LOAD_DELAY into INSN_LOAD_MEMORY_DELAY and
- INSN_LOAD_COPROC_DELAY. Split INSN_COPROC_DELAY into
- INSN_COPROC_MOVE_DELAY and INSN_COPROC_MEMORY_DELAY.
- (M_*): Added new values for r6000 and r4000 macros.
- (ANY_DELAY): Removed.
-
-Wed Aug 18 15:37:48 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h: Added M_LI_S and M_LI_SS.
-
-Tue Aug 17 07:08:08 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- * h8300.h: Get some rare mov.bs correct.
-
-Thu Aug 5 09:15:17 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * sparc.h: Don't define const ourself; rely on ansidecl.h having
- been included.
-
-Fri Jul 30 18:41:11 1993 John Gilmore (gnu@cygnus.com)
-
- * sparc.h (F_JSR, F_UNBR, F_CONDBR): Add new flags to mark
- jump instructions, for use in disassemblers.
-
-Thu Jul 22 07:25:27 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * m88k.h: Make bitfields just unsigned, not unsigned long or
- unsigned short.
-
-Wed Jul 21 11:55:31 1993 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * hppa.h: New argument type 'y'. Use in various float instructions.
-
-Mon Jul 19 17:17:03 1993 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * hppa.h (break): First immediate field is unsigned.
-
- * hppa.h: Add rfir instruction.
-
-Sun Jul 18 16:28:08 1993 Jim Kingdon (kingdon@rtl.cygnus.com)
-
- * mips.h: Split the actual table out into ../../opcodes/mips-opc.c.
-
-Fri Jul 16 09:59:29 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h: Reworked the hazard information somewhat, and fixed some
- bugs in the instruction hazard descriptions.
-
-Thu Jul 15 12:42:01 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * m88k.h: Corrected a couple of opcodes.
-
-Tue Jul 6 15:17:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * mips.h: Replaced with version from Ralph Campbell and OSF. The
- new version includes instruction hazard information, but is
- otherwise reasonably similar.
-
-Thu Jul 1 20:36:17 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * h8300.h: Fix typo in UNOP3 (affected sh[al][lr].l).
-
-Fri Jun 11 18:38:44 1993 Ken Raeburn (raeburn@cygnus.com)
-
- Patches from Jeff Law, law@cs.utah.edu:
- * hppa.h: Clean up some of the OLD_TABLE, non-OLD_TABLE braindamage.
- Make the tables be the same for the following instructions:
- "bb", "addb[tf]", "addib[tf]", "add", "add[loc]", "addco",
- "sh[123]add", "sh[123]add[lo]", "sub", "sub[obt]", "sub[bt]o",
- "ds", "comclr", "addi", "addi[ot]", "addito", "subi", "subio",
- "comiclr", "fadd", "fsub", "fmpy", "fdiv", "fsqrt", "fabs",
- "frnd", "fcpy", "fcnvff", "fcnvxf", "fcnvfx", "fcnvfxt",
- "fcmp", and "ftest".
-
- * hppa.h: Make new and old tables the same for "break", "mtctl",
- "mfctl", "bb", "ssm", "rsm", "xmpyu", "fmpyadd", "fmpysub".
- Fix typo in last patch. Collapse several #ifdefs into a
- single #ifdef.
-
- * hppa.h: Delete remaining OLD_TABLE code. Bring some
- of the comments up-to-date.
-
- * hppa.h: Update "free list" of letters and update
- comments describing each letter's function.
-
-Thu Jul 8 09:05:26 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * h8300.h: Lots of little fixes for the h8/300h.
-
-Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- Support for H8/300-H
- * h8300.h: Lots of new opcodes.
-
-Fri Jun 4 15:41:37 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- * h8300.h: checkpoint, includes H8/300-H opcodes.
-
-Thu Jun 3 15:42:59 1993 Stu Grossman (grossman@cygnus.com)
-
- * Patches from Jeffrey Law <law@cs.utah.edu>.
- * hppa.h: Rework single precision FP
- instructions so that they correctly disassemble code
- PA1.1 code.
-
-Thu May 27 19:21:22 1993 Bruce Bauman (boot@osf.org)
-
- * i386.h (i386_optab, mov pattern): Remove Mem16 restriction from
- mov to allow instructions like mov ss,xyz(ecx) to assemble.
-
-Tue May 25 00:39:40 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * hppa.h: Use new version from Utah if OLD_TABLE isn't defined;
- gdb will define it for now.
-
-Mon May 24 15:20:06 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * sparc.h: Don't end enumerator list with comma.
-
-Fri May 14 15:15:50 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Based on patches from davidj@ICSI.Berkeley.EDU (David Johnson):
- * mips.h (OP_MASK_COPZ, OP_SH_COPZ): Define.
- ("bc2t"): Correct typo.
- ("[ls]wc[023]"): Use T rather than t.
- ("c[0123]"): Define general coprocessor instructions.
-
-Mon May 10 06:02:25 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * m68k.h: Move split point for gcc compilation more towards
- middle.
-
-Fri Apr 9 13:26:16 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * rs6k.h: Clean up instructions for primary opcode 19 (many were
- simply wrong, ics, rfi, & rfsvc were missing).
- Add "a" to opr_ext for "bb". Doc fix.
-
-Thu Mar 18 13:45:31 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * i386.h: 486 extensions from John Hassey (hassey@dg-rtp.dg.com).
- * mips.h: Add casts, to suppress warnings about shifting too much.
- * m68k.h: Document the placement code '9'.
-
-Thu Feb 18 02:03:14 1993 John Gilmore (gnu@cygnus.com)
-
- * m68k.h (BREAK_UP_BIG_DECL, AND_OTHER_PART): Add kludge which
- allows callers to break up the large initialized struct full of
- opcodes into two half-sized ones. This permits GCC to compile
- this module, since it takes exponential space for initializers.
- (numopcodes, endop): Revise to use AND_OTHER_PART in size calcs.
-
-Thu Feb 4 02:06:56 1993 John Gilmore (gnu@cygnus.com)
-
- * a29k.h: Remove RCS crud, update GPL to v2, update copyrights.
- * convex.h: Added, from GDB's convx-opcode.h. Added CONST to all
- initialized structs in it.
-
-Thu Jan 28 21:32:22 1993 John Gilmore (gnu@cygnus.com)
-
- Delta 88 changes inspired by Carl Greco, <cgreco@Creighton.Edu>:
- * m88k.h (PMEM): Avoid previous definition from <sys/param.h>.
- (AND): Change to AND_ to avoid ansidecl.h `AND' conflict.
-
-Sat Jan 23 18:10:49 PST 1993 Ralph Campbell (ralphc@pyramid.com)
-
- * mips.h: document "i" and "j" operands correctly.
-
-Thu Jan 7 15:58:13 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * mips.h: Removed endianness dependency.
-
-Sun Jan 3 14:13:35 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * h8300.h: include info on number of cycles per instruction.
-
-Mon Dec 21 21:29:08 1992 Stu Grossman (grossman at cygnus.com)
-
- * hppa.h: Move handy aliases to the front. Fix masks for extract
- and deposit instructions.
-
-Sat Dec 12 16:09:48 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * i386.h: accept shld and shrd both with and without the shift
- count argument, which is always %cl.
-
-Fri Nov 27 17:13:18 1992 Ken Raeburn (raeburn at cygnus.com)
-
- * i386.h (i386_optab_end, i386_regtab_end): Now const.
- (one_byte_segment_defaults, two_byte_segment_defaults,
- i386_prefixtab_end): Ditto.
-
-Mon Nov 23 10:47:25 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * vax.h (bb*): Use "v" (bitfield type), not "a" (address operand)
- for operand 2; from John Carr, jfc@dsg.dec.com.
-
-Wed Nov 4 07:36:49 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * m68k.h: Define FIXED_SIZE_BRANCH, so bsr and bra instructions
- always use 16-bit offsets. Makes calculated-size jump tables
- feasible.
-
-Fri Oct 16 22:52:43 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * i386.h: Fix one-operand forms of in* and out* patterns.
-
-Tue Sep 22 14:08:14 1992 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * m68k.h: Added CPU32 support.
-
-Tue Sep 22 00:38:41 1992 John Gilmore (gnu@cygnus.com)
-
- * mips.h (break): Disassemble the argument. Patch from
- jonathan@cs.stanford.edu (Jonathan Stone).
-
-Wed Sep 9 11:25:28 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * m68k.h: merged Motorola and MIT syntax.
-
-Thu Sep 3 09:33:22 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * m68k.h (pmove): make the tests less strict, the 68k book is
- wrong.
-
-Tue Aug 25 23:25:19 1992 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * m68k.h (m68ec030): Defined as alias for 68030.
- (m68k_opcodes): New type characters "3" for 68030 MMU regs and "t"
- for immediate 0-7 added. Set up some opcodes (ptest, bkpt) to use
- them. Tightened description of "fmovex" to distinguish it from
- some "pmove" encodings. Added "pmove" for 68030 MMU regs, cleaned
- up descriptions that claimed versions were available for chips not
- supporting them. Added "pmovefd".
-
-Mon Aug 24 12:04:51 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * m68k.h: fix where the . goes in divull
-
-Wed Aug 19 11:22:24 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * m68k.h: the cas2 instruction is supposed to be written with
- indirection on the last two operands, which can be either data or
- address registers. Added a new operand type 'r' which accepts
- either register type. Added new cases for cas2l and cas2w which
- use them. Corrected masks for cas2 which failed to recognize use
- of address register.
-
-Fri Aug 14 14:20:38 1992 Per Bothner (bothner@cygnus.com)
-
- * m68k.h: Merged in patches (mostly m68040-specific) from
- Colin Smith <colin@wrs.com>.
-
- * m68k.h: Merged m68kmri.h and m68k.h (using the former as a
- base). Also cleaned up duplicates, re-ordered instructions for
- the sake of dis-assembling (so aliases come after standard names).
- * m68kmri.h: Now just defines some macros, and #includes m68k.h.
-
-Wed Aug 12 16:38:15 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * m68kmri.h: added various opcodes. Moved jbxx to bxxes. Filled in
- all missing .s
-
-Mon Aug 10 23:22:33 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * sparc.h: Moved tables to BFD library.
-
- * i386.h (i386_optab): Add fildq, fistpq aliases used by gcc.
-
-Sun Jun 28 13:29:03 1992 Fred Fish (fnf@cygnus.com)
-
- * h8300.h: Finish filling in all the holes in the opcode table,
- so that the Lucid C compiler can digest this as well...
-
-Fri Jun 26 21:27:17 1992 John Gilmore (gnu at cygnus.com)
-
- * i386.h: Add setc, setnc, addr16, data16, repz, repnz aliases.
- Fix opcodes on various sizes of fild/fist instructions
- (16bit=no suffix, 32bit="l" suffix, 64bit="ll" suffix).
- Use tabs to indent for comments. Fixes suggested by Minh Tran-Le.
-
-Thu Jun 25 16:13:26 1992 Stu Grossman (grossman at cygnus.com)
-
- * h8300.h: Fill in all the holes in the opcode table so that the
- losing HPUX C compiler can digest this...
-
-Thu Jun 11 12:15:25 1992 John Gilmore (gnu at cygnus.com)
-
- * mips.h: Fix decoding of coprocessor instructions, somewhat.
- (Fix by Eric Anderson, 3jean@maas-neotek.arc.nasa.gov.)
-
-Thu May 28 11:17:44 1992 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * sparc.h: Add new architecture variant sparclite; add its scan
- and divscc opcodes. Define ARCHITECTURES_CONFLICT_P macro.
-
-Tue May 5 14:23:27 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * mips.h: Add some more opcode synonyms (from Frank Yellin,
- fy@lucid.com).
-
-Thu Apr 16 18:25:26 1992 Per Bothner (bothner@cygnus.com)
-
- * rs6k.h: New version from IBM (Metin).
-
-Thu Apr 9 00:31:19 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * rs6k.h: Fix incorrect extended opcode for instructions `fm'
- and `fd'. (From metin@ibmpa.awdpa.ibm.com (Metin G. Ozisik).)
-
-Tue Apr 7 13:38:47 1992 Stu Grossman (grossman at cygnus.com)
-
- * rs6k.h: Move from ../../gdb/rs6k-opcode.h.
-
-Fri Apr 3 11:30:20 1992 Fred Fish (fnf@cygnus.com)
-
- * m68k.h (one, two): Cast macro args to unsigned to suppress
- complaints from compiler and lint about integer overflow during
- shift.
-
-Sun Mar 29 12:22:08 1992 John Gilmore (gnu at cygnus.com)
-
- * sparc.h (OP): Avoid signed overflow when shifting to high order bit.
-
-Fri Mar 6 00:22:38 1992 John Gilmore (gnu at cygnus.com)
-
- * mips.h: Make bitfield layout depend on the HOST compiler,
- not on the TARGET system.
-
-Fri Feb 21 01:29:51 1992 K. Richard Pixley (rich@cygnus.com)
-
- * i386.h: added inb, inw, outb, outw opcodes, added att syntax for
- scmp, slod, smov, ssca, ssto. Curtesy Minh Tran-Le
- <TRANLE@INTELLICORP.COM>.
-
-Thu Jan 30 07:31:44 1992 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * h8300.h: turned op_type enum into #define list
-
-Thu Jan 30 01:07:24 1992 John Gilmore (gnu at cygnus.com)
-
- * sparc.h: Remove "cypress" architecture. Remove "fitox" and
- similar instructions -- they've been renamed to "fitoq", etc.
- REALLY fix tsubcctv. Fix "fcmpeq" and "fcmpq" which had wrong
- number of arguments.
- * h8300.h: Remove extra ; which produces compiler warning.
-
-Tue Jan 28 22:59:22 1992 Stu Grossman (grossman at cygnus.com)
-
- * sparc.h: fix opcode for tsubcctv.
-
-Tue Jan 7 17:19:39 1992 K. Richard Pixley (rich at cygnus.com)
-
- * sparc.h: fba and cba are now aliases for fb and cb respectively.
-
-Fri Dec 27 10:55:50 1991 Per Bothner (bothner at cygnus.com)
-
- * sparc.h (nop): Made the 'lose' field be even tighter,
- so only a standard 'nop' is disassembled as a nop.
-
-Sun Dec 22 12:18:18 1991 Michael Tiemann (tiemann at cygnus.com)
-
- * sparc.h (nop): Add RD_GO to `lose' so that only %g0 in dest is
- disassembled as a nop.
-
-Wed Dec 18 17:19:44 1991 Stu Grossman (grossman at cygnus.com)
-
- * m68k.h, sparc.h: ANSIfy enums.
-
-Tue Dec 10 00:22:20 1991 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * sparc.h: fix a typo.
-
-Sat Nov 30 20:40:51 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * a29k.h, arm.h, h8300.h, i386.h, i860.h, i960.h , m68k.h,
- m88k.h, mips.h , np1.h, ns32k.h, pn.h, pyr.h, sparc.h, tahoe.h,
- vax.h: Renamed from ../<foo>-opcode.h.
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/include/opcode/alpha.h b/include/opcode/alpha.h
deleted file mode 100644
index 2c0d4f6cc..000000000
--- a/include/opcode/alpha.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/* alpha.h -- Header file for Alpha opcode table
- Copyright 1996, 1999, 2001, 2003, 2010 Free Software Foundation, Inc.
- Contributed by Richard Henderson <rth@tamu.edu>,
- patterned after the PPC opcode table written by Ian Lance Taylor.
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef OPCODE_ALPHA_H
-#define OPCODE_ALPHA_H
-
-/* The opcode table is an array of struct alpha_opcode. */
-
-struct alpha_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned mask;
-
- /* One bit flags for the opcode. These are primarily used to
- indicate specific processors and environments support the
- instructions. The defined values are listed below. */
- unsigned flags;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[4];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct alpha_opcode alpha_opcodes[];
-extern const unsigned alpha_num_opcodes;
-
-/* Values defined for the flags field of a struct alpha_opcode. */
-
-/* CPU Availability */
-#define AXP_OPCODE_BASE 0x0001 /* Base architecture -- all cpus. */
-#define AXP_OPCODE_EV4 0x0002 /* EV4 specific PALcode insns. */
-#define AXP_OPCODE_EV5 0x0004 /* EV5 specific PALcode insns. */
-#define AXP_OPCODE_EV6 0x0008 /* EV6 specific PALcode insns. */
-#define AXP_OPCODE_BWX 0x0100 /* Byte/word extension (amask bit 0). */
-#define AXP_OPCODE_CIX 0x0200 /* "Count" extension (amask bit 1). */
-#define AXP_OPCODE_MAX 0x0400 /* Multimedia extension (amask bit 8). */
-
-#define AXP_OPCODE_NOPAL (~(AXP_OPCODE_EV4|AXP_OPCODE_EV5|AXP_OPCODE_EV6))
-
-/* A macro to extract the major opcode from an instruction. */
-#define AXP_OP(i) (((i) >> 26) & 0x3F)
-
-/* The total number of major opcodes. */
-#define AXP_NOPS 0x40
-
-
-/* The operands table is an array of struct alpha_operand. */
-
-struct alpha_operand
-{
- /* The number of bits in the operand. */
- unsigned int bits : 5;
-
- /* How far the operand is left shifted in the instruction. */
- unsigned int shift : 5;
-
- /* The default relocation type for this operand. */
- signed int default_reloc : 16;
-
- /* One bit syntax flags. */
- unsigned int flags : 16;
-
- /* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (op & ((1 << o->bits) - 1)) << o->shift;
- (i is the instruction which we are filling in, o is a pointer to
- this structure, and op is the opcode value; this assumes twos
- complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- 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) (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.
-
- If it is NULL, compute
- op = ((i) >> o->shift) & ((1 << o->bits) - 1);
- if ((o->flags & AXP_OPERAND_SIGNED) != 0
- && (op & (1 << (o->bits - 1))) != 0)
- op -= 1 << o->bits;
- (i is the instruction, o is a pointer to this structure, and op
- is the result; this assumes twos complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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) (unsigned instruction, int *invalid);
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the alpha_opcodes table. */
-
-extern const struct alpha_operand alpha_operands[];
-extern const unsigned alpha_num_operands;
-
-/* Values defined for the flags field of a struct alpha_operand. */
-
-/* Mask for selecting the type for typecheck purposes */
-#define AXP_OPERAND_TYPECHECK_MASK \
- (AXP_OPERAND_PARENS | AXP_OPERAND_COMMA | AXP_OPERAND_IR | \
- AXP_OPERAND_FPR | AXP_OPERAND_RELATIVE | AXP_OPERAND_SIGNED | \
- AXP_OPERAND_UNSIGNED)
-
-/* This operand does not actually exist in the assembler input. This
- is used to support extended mnemonics, for which two operands fields
- are identical. The assembler should call the insert function with
- any op value. The disassembler should call the extract function,
- ignore the return value, and check the value placed in the invalid
- argument. */
-#define AXP_OPERAND_FAKE 01
-
-/* The operand should be wrapped in parentheses rather than separated
- from the previous by a comma. This is used for the load and store
- instructions which want their operands to look like "Ra,disp(Rb)". */
-#define AXP_OPERAND_PARENS 02
-
-/* Used in combination with PARENS, this supresses the supression of
- the comma. This is used for "jmp Ra,(Rb),hint". */
-#define AXP_OPERAND_COMMA 04
-
-/* This operand names an integer register. */
-#define AXP_OPERAND_IR 010
-
-/* This operand names a floating point register. */
-#define AXP_OPERAND_FPR 020
-
-/* This operand is a relative branch displacement. The disassembler
- prints these symbolically if possible. */
-#define AXP_OPERAND_RELATIVE 040
-
-/* This operand takes signed values. */
-#define AXP_OPERAND_SIGNED 0100
-
-/* This operand takes unsigned values. This exists primarily so that
- a flags value of 0 can be treated as end-of-arguments. */
-#define AXP_OPERAND_UNSIGNED 0200
-
-/* Supress overflow detection on this field. This is used for hints. */
-#define AXP_OPERAND_NOOVERFLOW 0400
-
-/* Mask for optional argument default value. */
-#define AXP_OPERAND_OPTIONAL_MASK 07000
-
-/* This operand defaults to zero. This is used for jump hints. */
-#define AXP_OPERAND_DEFAULT_ZERO 01000
-
-/* This operand should default to the first (real) operand and is used
- in conjunction with AXP_OPERAND_OPTIONAL. This allows
- "and $0,3,$0" to be written as "and $0,3", etc. I don't like
- it, but it's what DEC does. */
-#define AXP_OPERAND_DEFAULT_FIRST 02000
-
-/* Similarly, this operand should default to the second (real) operand.
- This allows "negl $0" instead of "negl $0,$0". */
-#define AXP_OPERAND_DEFAULT_SECOND 04000
-
-
-/* Register common names */
-
-#define AXP_REG_V0 0
-#define AXP_REG_T0 1
-#define AXP_REG_T1 2
-#define AXP_REG_T2 3
-#define AXP_REG_T3 4
-#define AXP_REG_T4 5
-#define AXP_REG_T5 6
-#define AXP_REG_T6 7
-#define AXP_REG_T7 8
-#define AXP_REG_S0 9
-#define AXP_REG_S1 10
-#define AXP_REG_S2 11
-#define AXP_REG_S3 12
-#define AXP_REG_S4 13
-#define AXP_REG_S5 14
-#define AXP_REG_FP 15
-#define AXP_REG_A0 16
-#define AXP_REG_A1 17
-#define AXP_REG_A2 18
-#define AXP_REG_A3 19
-#define AXP_REG_A4 20
-#define AXP_REG_A5 21
-#define AXP_REG_T8 22
-#define AXP_REG_T9 23
-#define AXP_REG_T10 24
-#define AXP_REG_T11 25
-#define AXP_REG_RA 26
-#define AXP_REG_PV 27
-#define AXP_REG_T12 27
-#define AXP_REG_AT 28
-#define AXP_REG_GP 29
-#define AXP_REG_SP 30
-#define AXP_REG_ZERO 31
-
-#endif /* OPCODE_ALPHA_H */
diff --git a/include/opcode/arc.h b/include/opcode/arc.h
deleted file mode 100644
index 695fec1ea..000000000
--- a/include/opcode/arc.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/* Opcode table for the ARC.
- Copyright 1994, 1995, 1997, 2001, 2002, 2003, 2010
- 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
- the GNU Binutils.
-
- GAS/GDB 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 3, or (at your option)
- any later version.
-
- GAS/GDB 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 GAS or GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* List of the various cpu types.
- The tables currently use bit masks to say whether the instruction or
- whatever is supported by a particular cpu. This lets us have one entry
- apply to several cpus.
-
- The `base' cpu must be 0. The cpu type is treated independently of
- endianness. The complete `mach' number includes endianness.
- These values are internal to opcodes/bfd/binutils/gas. */
-#define ARC_MACH_5 0
-#define ARC_MACH_6 1
-#define ARC_MACH_7 2
-#define ARC_MACH_8 4
-
-/* Additional cpu values can be inserted here and ARC_MACH_BIG moved down. */
-#define ARC_MACH_BIG 16
-
-/* Mask of number of bits necessary to record cpu type. */
-#define ARC_MACH_CPU_MASK (ARC_MACH_BIG - 1)
-
-/* Mask of number of bits necessary to record cpu type + endianness. */
-#define ARC_MACH_MASK ((ARC_MACH_BIG << 1) - 1)
-
-/* Type to denote an ARC instruction (at least a 32 bit unsigned int). */
-
-typedef unsigned int arc_insn;
-
-struct arc_opcode {
- char *syntax; /* syntax of insn */
- unsigned long mask, value; /* recognize insn if (op&mask) == value */
- int flags; /* various flag bits */
-
-/* Values for `flags'. */
-
-/* Return CPU number, given flag bits. */
-#define ARC_OPCODE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-
-/* Return MACH number, given flag bits. */
-#define ARC_OPCODE_MACH(bits) ((bits) & ARC_MACH_MASK)
-
-/* First opcode flag bit available after machine mask. */
-#define ARC_OPCODE_FLAG_START (ARC_MACH_MASK + 1)
-
-/* This insn is a conditional branch. */
-#define ARC_OPCODE_COND_BRANCH (ARC_OPCODE_FLAG_START)
-#define SYNTAX_3OP (ARC_OPCODE_COND_BRANCH << 1)
-#define SYNTAX_LENGTH (SYNTAX_3OP )
-#define SYNTAX_2OP (SYNTAX_3OP << 1)
-#define OP1_MUST_BE_IMM (SYNTAX_2OP << 1)
-#define OP1_IMM_IMPLIED (OP1_MUST_BE_IMM << 1)
-#define SYNTAX_VALID (OP1_IMM_IMPLIED << 1)
-
-#define I(x) (((x) & 31) << 27)
-#define A(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGA)
-#define B(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGB)
-#define C(x) (((x) & ARC_MASK_REG) << ARC_SHIFT_REGC)
-#define R(x,b,m) (((x) & (m)) << (b)) /* value X, mask M, at bit B */
-
-/* These values are used to optimize assembly and disassembly. Each insn
- is on a list of related insns (same first letter for assembly, same
- insn code for disassembly). */
-
- struct arc_opcode *next_asm; /* Next instr to try during assembly. */
- struct arc_opcode *next_dis; /* Next instr to try during disassembly. */
-
-/* Macros to create the hash values for the lists. */
-#define ARC_HASH_OPCODE(string) \
- ((string)[0] >= 'a' && (string)[0] <= 'z' ? (string)[0] - 'a' : 26)
-#define ARC_HASH_ICODE(insn) \
- ((unsigned int) (insn) >> 27)
-
- /* Macros to access `next_asm', `next_dis' so users needn't care about the
- underlying mechanism. */
-#define ARC_OPCODE_NEXT_ASM(op) ((op)->next_asm)
-#define ARC_OPCODE_NEXT_DIS(op) ((op)->next_dis)
-};
-
-/* this is an "insert at front" linked list per Metaware spec
- that new definitions override older ones. */
-extern struct arc_opcode *arc_ext_opcodes;
-
-struct arc_operand_value {
- char *name; /* eg: "eq" */
- short value; /* eg: 1 */
- unsigned char type; /* index into `arc_operands' */
- unsigned char flags; /* various flag bits */
-
-/* Values for `flags'. */
-
-/* Return CPU number, given flag bits. */
-#define ARC_OPVAL_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-/* Return MACH number, given flag bits. */
-#define ARC_OPVAL_MACH(bits) ((bits) & ARC_MACH_MASK)
-};
-
-struct arc_ext_operand_value {
- struct arc_ext_operand_value *next;
- struct arc_operand_value operand;
-};
-
-extern struct arc_ext_operand_value *arc_ext_operands;
-
-struct arc_operand {
-/* One of the insn format chars. */
- unsigned char fmt;
-
-/* The number of bits in the operand (may be unused for a modifier). */
- unsigned char bits;
-
-/* How far the operand is left shifted in the instruction, or
- the modifier's flag bit (may be unused for a modifier. */
- unsigned char shift;
-
-/* Various flag bits. */
- int flags;
-
-/* Values for `flags'. */
-
-/* This operand is a suffix to the opcode. */
-#define ARC_OPERAND_SUFFIX 1
-
-/* This operand is a relative branch displacement. The disassembler
- prints these symbolically if possible. */
-#define ARC_OPERAND_RELATIVE_BRANCH 2
-
-/* This operand is an absolute branch address. The disassembler
- prints these symbolically if possible. */
-#define ARC_OPERAND_ABSOLUTE_BRANCH 4
-
-/* This operand is an address. The disassembler
- prints these symbolically if possible. */
-#define ARC_OPERAND_ADDRESS 8
-
-/* This operand is a long immediate value. */
-#define ARC_OPERAND_LIMM 0x10
-
-/* This operand takes signed values. */
-#define ARC_OPERAND_SIGNED 0x20
-
-/* This operand takes signed values, but also accepts a full positive
- range of values. That is, if bits is 16, it takes any value from
- -0x8000 to 0xffff. */
-#define ARC_OPERAND_SIGNOPT 0x40
-
-/* This operand should be regarded as a negative number for the
- purposes of overflow checking (i.e., the normal most negative
- number is disallowed and one more than the normal most positive
- number is allowed). This flag will only be set for a signed
- operand. */
-#define ARC_OPERAND_NEGATIVE 0x80
-
-/* This operand doesn't really exist. The program uses these operands
- in special ways. */
-#define ARC_OPERAND_FAKE 0x100
-
-/* separate flags operand for j and jl instructions */
-#define ARC_OPERAND_JUMPFLAGS 0x200
-
-/* allow warnings and errors to be issued after call to insert_xxxxxx */
-#define ARC_OPERAND_WARN 0x400
-#define ARC_OPERAND_ERROR 0x800
-
-/* this is a load operand */
-#define ARC_OPERAND_LOAD 0x8000
-
-/* this is a store operand */
-#define ARC_OPERAND_STORE 0x10000
-
-/* Modifier values. */
-/* A dot is required before a suffix. Eg: .le */
-#define ARC_MOD_DOT 0x1000
-
-/* A normal register is allowed (not used, but here for completeness). */
-#define ARC_MOD_REG 0x2000
-
-/* An auxiliary register name is expected. */
-#define ARC_MOD_AUXREG 0x4000
-
-/* Sum of all ARC_MOD_XXX bits. */
-#define ARC_MOD_BITS 0x7000
-
-/* Non-zero if the operand type is really a modifier. */
-#define ARC_MOD_P(X) ((X) & ARC_MOD_BITS)
-
-/* enforce read/write only register restrictions */
-#define ARC_REGISTER_READONLY 0x01
-#define ARC_REGISTER_WRITEONLY 0x02
-#define ARC_REGISTER_NOSHORT_CUT 0x04
-
-/* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (p & ((1 << o->bits) - 1)) << o->shift;
- (I is the instruction which we are filling in, O is a pointer to
- this structure, and OP is the opcode value; this assumes twos
- complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- string (the operand will be inserted in any case). If the
- operand value is legal, *ERRMSG will be unchanged.
-
- REG is non-NULL when inserting a register value. */
-
- 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.
-
- If it is NULL, compute
- op = ((i) >> o->shift) & ((1 << o->bits) - 1);
- if ((o->flags & ARC_OPERAND_SIGNED) != 0
- && (op & (1 << (o->bits - 1))) != 0)
- op -= 1 << o->bits;
- (I is the instruction, O is a pointer to this structure, and OP
- is the result; this assumes twos complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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.
-
- INSN is a pointer to an array of two `arc_insn's. The first element is
- the insn, the second is the limm if present.
-
- Operands that have a printable form like registers and suffixes have
- their struct arc_operand_value pointer stored in OPVAL. */
-
- 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
- arc_init_opcode_tables. At present, all there is is the cpu type. */
-
-/* CPU number, given value passed to `arc_init_opcode_tables'. */
-#define ARC_HAVE_CPU(bits) ((bits) & ARC_MACH_CPU_MASK)
-/* MACH number, given value passed to `arc_init_opcode_tables'. */
-#define ARC_HAVE_MACH(bits) ((bits) & ARC_MACH_MASK)
-
-/* Special register values: */
-#define ARC_REG_SHIMM_UPDATE 61
-#define ARC_REG_SHIMM 63
-#define ARC_REG_LIMM 62
-
-/* Non-zero if REG is a constant marker. */
-#define ARC_REG_CONSTANT_P(REG) ((REG) >= 61)
-
-/* Positions and masks of various fields: */
-#define ARC_SHIFT_REGA 21
-#define ARC_SHIFT_REGB 15
-#define ARC_SHIFT_REGC 9
-#define ARC_MASK_REG 63
-
-/* Delay slot types. */
-#define ARC_DELAY_NONE 0 /* no delay slot */
-#define ARC_DELAY_NORMAL 1 /* delay slot in both cases */
-#define ARC_DELAY_JUMP 2 /* delay slot only if branch taken */
-
-/* Non-zero if X will fit in a signed 9 bit field. */
-#define ARC_SHIMM_CONST_P(x) ((long) (x) >= -256 && (long) (x) <= 255)
-
-extern const struct arc_operand arc_operands[];
-extern const int arc_operand_count;
-extern struct arc_opcode arc_opcodes[];
-extern const int arc_opcodes_count;
-extern const struct arc_operand_value arc_suffixes[];
-extern const int arc_suffixes_count;
-extern const struct arc_operand_value arc_reg_names[];
-extern const int arc_reg_names_count;
-extern unsigned char arc_operand_map[];
-
-/* Utility fns in arc-opc.c. */
-int arc_get_opcode_mach (int, int);
-
-/* `arc_opcode_init_tables' must be called before `arc_xxx_supported'. */
-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
- (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/arm.h b/include/opcode/arm.h
deleted file mode 100644
index 86e3d67db..000000000
--- a/include/opcode/arm.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/* ARM assembler/disassembler support.
- Copyright 2004, 2010, 2011 Free Software Foundation, Inc.
-
- This file is part of GDB and GAS.
-
- GDB and GAS are 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 3, or (at
- your option) any later version.
-
- GDB and GAS are 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 GDB or GAS; see the file COPYING3. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The following bitmasks control CPU extensions: */
-#define ARM_EXT_V1 0x00000001 /* All processors (core set). */
-#define ARM_EXT_V2 0x00000002 /* Multiply instructions. */
-#define ARM_EXT_V2S 0x00000004 /* SWP instructions. */
-#define ARM_EXT_V3 0x00000008 /* MSR MRS. */
-#define ARM_EXT_V3M 0x00000010 /* Allow long multiplies. */
-#define ARM_EXT_V4 0x00000020 /* Allow half word loads. */
-#define ARM_EXT_V4T 0x00000040 /* Thumb. */
-#define ARM_EXT_V5 0x00000080 /* Allow CLZ, etc. */
-#define ARM_EXT_V5T 0x00000100 /* Improved interworking. */
-#define ARM_EXT_V5ExP 0x00000200 /* DSP core set. */
-#define ARM_EXT_V5E 0x00000400 /* DSP Double transfers. */
-#define ARM_EXT_V5J 0x00000800 /* Jazelle extension. */
-#define ARM_EXT_V6 0x00001000 /* ARM V6. */
-#define ARM_EXT_V6K 0x00002000 /* ARM V6K. */
-/* 0x00004000 Was ARM V6Z. */
-#define ARM_EXT_V6T2 0x00008000 /* Thumb-2. */
-#define ARM_EXT_DIV 0x00010000 /* Integer division. */
-/* The 'M' in Arm V7M stands for Microcontroller.
- On earlier architecture variants it stands for Multiply. */
-#define ARM_EXT_V5E_NOTM 0x00020000 /* Arm V5E but not Arm V7M. */
-#define ARM_EXT_V6_NOTM 0x00040000 /* Arm V6 but not Arm V7M. */
-#define ARM_EXT_V7 0x00080000 /* Arm V7. */
-#define ARM_EXT_V7A 0x00100000 /* Arm V7A. */
-#define ARM_EXT_V7R 0x00200000 /* Arm V7R. */
-#define ARM_EXT_V7M 0x00400000 /* Arm V7M. */
-#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */
-#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */
-#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */
-#define ARM_EXT_V6_DSP 0x04000000 /* ARM v6 (DSP-related),
- not in v7-M. */
-#define ARM_EXT_MP 0x08000000 /* Multiprocessing Extensions. */
-#define ARM_EXT_SEC 0x10000000 /* Security extensions. */
-#define ARM_EXT_OS 0x20000000 /* OS Extensions. */
-#define ARM_EXT_ADIV 0x40000000 /* Integer divide extensions in ARM
- state. */
-#define ARM_EXT_VIRT 0x80000000 /* Virtualization extensions. */
-
-/* Co-processor space extensions. */
-#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */
-#define ARM_CEXT_MAVERICK 0x00000002 /* Use Cirrus/DSP coprocessor. */
-#define ARM_CEXT_IWMMXT 0x00000004 /* Intel Wireless MMX technology coprocessor. */
-#define ARM_CEXT_IWMMXT2 0x00000008 /* Intel Wireless MMX technology coprocessor version 2. */
-
-#define FPU_ENDIAN_PURE 0x80000000 /* Pure-endian doubles. */
-#define FPU_ENDIAN_BIG 0 /* Double words-big-endian. */
-#define FPU_FPA_EXT_V1 0x40000000 /* Base FPA instruction set. */
-#define FPU_FPA_EXT_V2 0x20000000 /* LFM/SFM. */
-#define FPU_MAVERICK 0x10000000 /* Cirrus Maverick. */
-#define FPU_VFP_EXT_V1xD 0x08000000 /* Base VFP instruction set. */
-#define FPU_VFP_EXT_V1 0x04000000 /* Double-precision insns. */
-#define FPU_VFP_EXT_V2 0x02000000 /* ARM10E VFPr1. */
-#define FPU_VFP_EXT_V3xD 0x01000000 /* VFPv3 single-precision. */
-#define FPU_VFP_EXT_V3 0x00800000 /* VFPv3 double-precision. */
-#define FPU_NEON_EXT_V1 0x00400000 /* Neon (SIMD) insns. */
-#define FPU_VFP_EXT_D32 0x00200000 /* Registers D16-D31. */
-#define FPU_VFP_EXT_FP16 0x00100000 /* Half-precision extensions. */
-#define FPU_NEON_EXT_FMA 0x00080000 /* Neon fused multiply-add */
-#define FPU_VFP_EXT_FMA 0x00040000 /* VFP fused multiply-add */
-
-/* Architectures are the sum of the base and extensions. The ARM ARM (rev E)
- defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T,
- ARMv5xM, ARMv5, ARMv5TxM, ARMv5T, ARMv5TExP, ARMv5TE. To these we add
- three more to cover cores prior to ARM6. Finally, there are cores which
- implement further extensions in the co-processor space. */
-#define ARM_AEXT_V1 ARM_EXT_V1
-#define ARM_AEXT_V2 (ARM_AEXT_V1 | ARM_EXT_V2)
-#define ARM_AEXT_V2S (ARM_AEXT_V2 | ARM_EXT_V2S)
-#define ARM_AEXT_V3 (ARM_AEXT_V2S | ARM_EXT_V3)
-#define ARM_AEXT_V3M (ARM_AEXT_V3 | ARM_EXT_V3M)
-#define ARM_AEXT_V4xM (ARM_AEXT_V3 | ARM_EXT_V4)
-#define ARM_AEXT_V4 (ARM_AEXT_V3M | ARM_EXT_V4)
-#define ARM_AEXT_V4TxM (ARM_AEXT_V4xM | ARM_EXT_V4T)
-#define ARM_AEXT_V4T (ARM_AEXT_V4 | ARM_EXT_V4T)
-#define ARM_AEXT_V5xM (ARM_AEXT_V4xM | ARM_EXT_V5)
-#define ARM_AEXT_V5 (ARM_AEXT_V4 | ARM_EXT_V5)
-#define ARM_AEXT_V5TxM (ARM_AEXT_V5xM | ARM_EXT_V4T | ARM_EXT_V5T)
-#define ARM_AEXT_V5T (ARM_AEXT_V5 | ARM_EXT_V4T | ARM_EXT_V5T)
-#define ARM_AEXT_V5TExP (ARM_AEXT_V5T | ARM_EXT_V5ExP)
-#define ARM_AEXT_V5TE (ARM_AEXT_V5TExP | ARM_EXT_V5E)
-#define ARM_AEXT_V5TEJ (ARM_AEXT_V5TE | ARM_EXT_V5J)
-#define ARM_AEXT_V6 (ARM_AEXT_V5TEJ | ARM_EXT_V6)
-#define ARM_AEXT_V6K (ARM_AEXT_V6 | ARM_EXT_V6K)
-#define ARM_AEXT_V6Z (ARM_AEXT_V6K | ARM_EXT_SEC)
-#define ARM_AEXT_V6ZK (ARM_AEXT_V6K | ARM_EXT_SEC)
-#define ARM_AEXT_V6T2 (ARM_AEXT_V6 \
- | ARM_EXT_V6T2 | ARM_EXT_V6_NOTM | ARM_EXT_THUMB_MSR \
- | ARM_EXT_V6_DSP )
-#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
-#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC)
-#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC)
-#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER)
-#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
-#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
-#define ARM_AEXT_NOTM \
- (ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM \
- | ARM_EXT_V6_DSP )
-#define ARM_AEXT_V6M_ONLY \
- ((ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) & ~(ARM_AEXT_NOTM))
-#define ARM_AEXT_V6M \
- ((ARM_AEXT_V6K | ARM_AEXT_V6M_ONLY) & ~(ARM_AEXT_NOTM))
-#define ARM_AEXT_V6SM (ARM_AEXT_V6M | ARM_EXT_OS)
-#define ARM_AEXT_V7M \
- ((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \
- & ~(ARM_AEXT_NOTM))
-#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
-#define ARM_AEXT_V7EM \
- (ARM_AEXT_V7M | ARM_EXT_V5ExP | ARM_EXT_V6_DSP)
-
-/* Processors with specific extensions in the co-processor space. */
-#define ARM_ARCH_XSCALE ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
-#define ARM_ARCH_IWMMXT \
- ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT)
-#define ARM_ARCH_IWMMXT2 \
- ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE | ARM_CEXT_IWMMXT | ARM_CEXT_IWMMXT2)
-
-#define FPU_VFP_V1xD (FPU_VFP_EXT_V1xD | FPU_ENDIAN_PURE)
-#define FPU_VFP_V1 (FPU_VFP_V1xD | FPU_VFP_EXT_V1)
-#define FPU_VFP_V2 (FPU_VFP_V1 | FPU_VFP_EXT_V2)
-#define FPU_VFP_V3D16 (FPU_VFP_V2 | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_V3)
-#define FPU_VFP_V3 (FPU_VFP_V3D16 | FPU_VFP_EXT_D32)
-#define FPU_VFP_V3xD (FPU_VFP_V1xD | FPU_VFP_EXT_V2 | FPU_VFP_EXT_V3xD)
-#define FPU_VFP_V4D16 (FPU_VFP_V3D16 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
-#define FPU_VFP_V4 (FPU_VFP_V3 | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
-#define FPU_VFP_V4_SP_D16 (FPU_VFP_V3xD | FPU_VFP_EXT_FP16 | FPU_VFP_EXT_FMA)
-#define FPU_VFP_HARD (FPU_VFP_EXT_V1xD | FPU_VFP_EXT_V1 | FPU_VFP_EXT_V2 \
- | FPU_VFP_EXT_V3xD | FPU_VFP_EXT_FMA | FPU_NEON_EXT_FMA \
- | FPU_VFP_EXT_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_D32)
-#define FPU_FPA (FPU_FPA_EXT_V1 | FPU_FPA_EXT_V2)
-
-/* Deprecated. */
-#define FPU_ARCH_VFP ARM_FEATURE (0, FPU_ENDIAN_PURE)
-
-#define FPU_ARCH_FPE ARM_FEATURE (0, FPU_FPA_EXT_V1)
-#define FPU_ARCH_FPA ARM_FEATURE (0, FPU_FPA)
-
-#define FPU_ARCH_VFP_V1xD ARM_FEATURE (0, FPU_VFP_V1xD)
-#define FPU_ARCH_VFP_V1 ARM_FEATURE (0, FPU_VFP_V1)
-#define FPU_ARCH_VFP_V2 ARM_FEATURE (0, FPU_VFP_V2)
-#define FPU_ARCH_VFP_V3D16 ARM_FEATURE (0, FPU_VFP_V3D16)
-#define FPU_ARCH_VFP_V3D16_FP16 \
- ARM_FEATURE (0, FPU_VFP_V3D16 | FPU_VFP_EXT_FP16)
-#define FPU_ARCH_VFP_V3 ARM_FEATURE (0, FPU_VFP_V3)
-#define FPU_ARCH_VFP_V3_FP16 ARM_FEATURE (0, FPU_VFP_V3 | FPU_VFP_EXT_FP16)
-#define FPU_ARCH_VFP_V3xD ARM_FEATURE (0, FPU_VFP_V3xD)
-#define FPU_ARCH_VFP_V3xD_FP16 ARM_FEATURE (0, FPU_VFP_V3xD | FPU_VFP_EXT_FP16)
-#define FPU_ARCH_NEON_V1 ARM_FEATURE (0, FPU_NEON_EXT_V1)
-#define FPU_ARCH_VFP_V3_PLUS_NEON_V1 \
- ARM_FEATURE (0, FPU_VFP_V3 | FPU_NEON_EXT_V1)
-#define FPU_ARCH_NEON_FP16 \
- ARM_FEATURE (0, FPU_VFP_V3 | FPU_NEON_EXT_V1 | FPU_VFP_EXT_FP16)
-#define FPU_ARCH_VFP_HARD ARM_FEATURE (0, FPU_VFP_HARD)
-#define FPU_ARCH_VFP_V4 ARM_FEATURE(0, FPU_VFP_V4)
-#define FPU_ARCH_VFP_V4D16 ARM_FEATURE(0, FPU_VFP_V4D16)
-#define FPU_ARCH_VFP_V4_SP_D16 ARM_FEATURE(0, FPU_VFP_V4_SP_D16)
-#define FPU_ARCH_NEON_VFP_V4 \
- ARM_FEATURE(0, FPU_VFP_V4 | FPU_NEON_EXT_V1 | FPU_NEON_EXT_FMA)
-
-#define FPU_ARCH_ENDIAN_PURE ARM_FEATURE (0, FPU_ENDIAN_PURE)
-
-#define FPU_ARCH_MAVERICK ARM_FEATURE (0, FPU_MAVERICK)
-
-#define ARM_ARCH_V1 ARM_FEATURE (ARM_AEXT_V1, 0)
-#define ARM_ARCH_V2 ARM_FEATURE (ARM_AEXT_V2, 0)
-#define ARM_ARCH_V2S ARM_FEATURE (ARM_AEXT_V2S, 0)
-#define ARM_ARCH_V3 ARM_FEATURE (ARM_AEXT_V3, 0)
-#define ARM_ARCH_V3M ARM_FEATURE (ARM_AEXT_V3M, 0)
-#define ARM_ARCH_V4xM ARM_FEATURE (ARM_AEXT_V4xM, 0)
-#define ARM_ARCH_V4 ARM_FEATURE (ARM_AEXT_V4, 0)
-#define ARM_ARCH_V4TxM ARM_FEATURE (ARM_AEXT_V4TxM, 0)
-#define ARM_ARCH_V4T ARM_FEATURE (ARM_AEXT_V4T, 0)
-#define ARM_ARCH_V5xM ARM_FEATURE (ARM_AEXT_V5xM, 0)
-#define ARM_ARCH_V5 ARM_FEATURE (ARM_AEXT_V5, 0)
-#define ARM_ARCH_V5TxM ARM_FEATURE (ARM_AEXT_V5TxM, 0)
-#define ARM_ARCH_V5T ARM_FEATURE (ARM_AEXT_V5T, 0)
-#define ARM_ARCH_V5TExP ARM_FEATURE (ARM_AEXT_V5TExP, 0)
-#define ARM_ARCH_V5TE ARM_FEATURE (ARM_AEXT_V5TE, 0)
-#define ARM_ARCH_V5TEJ ARM_FEATURE (ARM_AEXT_V5TEJ, 0)
-#define ARM_ARCH_V6 ARM_FEATURE (ARM_AEXT_V6, 0)
-#define ARM_ARCH_V6K ARM_FEATURE (ARM_AEXT_V6K, 0)
-#define ARM_ARCH_V6Z ARM_FEATURE (ARM_AEXT_V6Z, 0)
-#define ARM_ARCH_V6ZK ARM_FEATURE (ARM_AEXT_V6ZK, 0)
-#define ARM_ARCH_V6T2 ARM_FEATURE (ARM_AEXT_V6T2, 0)
-#define ARM_ARCH_V6KT2 ARM_FEATURE (ARM_AEXT_V6KT2, 0)
-#define ARM_ARCH_V6ZT2 ARM_FEATURE (ARM_AEXT_V6ZT2, 0)
-#define ARM_ARCH_V6ZKT2 ARM_FEATURE (ARM_AEXT_V6ZKT2, 0)
-#define ARM_ARCH_V6M ARM_FEATURE (ARM_AEXT_V6M, 0)
-#define ARM_ARCH_V6SM ARM_FEATURE (ARM_AEXT_V6SM, 0)
-#define ARM_ARCH_V7 ARM_FEATURE (ARM_AEXT_V7, 0)
-#define ARM_ARCH_V7A ARM_FEATURE (ARM_AEXT_V7A, 0)
-#define ARM_ARCH_V7R ARM_FEATURE (ARM_AEXT_V7R, 0)
-#define ARM_ARCH_V7M ARM_FEATURE (ARM_AEXT_V7M, 0)
-#define ARM_ARCH_V7EM ARM_FEATURE (ARM_AEXT_V7EM, 0)
-
-/* Some useful combinations: */
-#define ARM_ARCH_NONE ARM_FEATURE (0, 0)
-#define FPU_NONE ARM_FEATURE (0, 0)
-#define ARM_ANY ARM_FEATURE (-1, 0) /* Any basic core. */
-#define FPU_ANY_HARD ARM_FEATURE (0, FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
-#define ARM_ARCH_THUMB2 ARM_FEATURE (ARM_EXT_V6T2 | ARM_EXT_V7 | ARM_EXT_V7A | ARM_EXT_V7R | ARM_EXT_V7M | ARM_EXT_DIV, 0)
-/* v7-a+sec. */
-#define ARM_ARCH_V7A_SEC ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_SEC, 0)
-/* v7-a+mp+sec. */
-#define ARM_ARCH_V7A_MP_SEC \
- ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC, \
- 0)
-/* v7-a+idiv+mp+sec+virt. */
-#define ARM_ARCH_V7A_IDIV_MP_SEC_VIRT \
- ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC \
- | ARM_EXT_DIV | ARM_EXT_ADIV \
- | ARM_EXT_VIRT, 0)
-/* v7-r+idiv. */
-#define ARM_ARCH_V7R_IDIV ARM_FEATURE (ARM_AEXT_V7R | ARM_EXT_ADIV, 0)
-/* Features that are present in v6M and v6S-M but not other v6 cores. */
-#define ARM_ARCH_V6M_ONLY ARM_FEATURE (ARM_AEXT_V6M_ONLY, 0)
-
-/* There are too many feature bits to fit in a single word, so use a
- structure. For simplicity we put all core features in one word and
- everything else in the other. */
-typedef struct
-{
- unsigned long core;
- unsigned long coproc;
-} arm_feature_set;
-
-#define ARM_CPU_HAS_FEATURE(CPU,FEAT) \
- (((CPU).core & (FEAT).core) != 0 || ((CPU).coproc & (FEAT).coproc) != 0)
-
-#define ARM_MERGE_FEATURE_SETS(TARG,F1,F2) \
- do { \
- (TARG).core = (F1).core | (F2).core; \
- (TARG).coproc = (F1).coproc | (F2).coproc; \
- } while (0)
-
-#define ARM_CLEAR_FEATURE(TARG,F1,F2) \
- do { \
- (TARG).core = (F1).core &~ (F2).core; \
- (TARG).coproc = (F1).coproc &~ (F2).coproc; \
- } while (0)
-
-#define ARM_FEATURE(core, coproc) {(core), (coproc)}
diff --git a/include/opcode/avr.h b/include/opcode/avr.h
deleted file mode 100644
index a6d7b478d..000000000
--- a/include/opcode/avr.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Opcode table for the Atmel AVR micro controllers.
-
- Copyright 2000, 2001, 2004, 2006, 2008, 2010 Free Software Foundation, Inc.
- Contributed by Denis Chertykov <denisc@overta.ru>
-
- 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 3, 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define AVR_ISA_1200 0x0001 /* In the beginning there was ... */
-#define AVR_ISA_LPM 0x0002 /* device has LPM */
-#define AVR_ISA_LPMX 0x0004 /* device has LPM Rd,Z[+] */
-#define AVR_ISA_SRAM 0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
-#define AVR_ISA_MEGA 0x0020 /* device has >8K program memory (JMP and CALL
- supported, no 8K wrap on RJMP and RCALL) */
-#define AVR_ISA_MUL 0x0040 /* device has new core (MUL, FMUL, ...) */
-#define AVR_ISA_ELPM 0x0080 /* device has >64K program memory (ELPM) */
-#define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
-#define AVR_ISA_SPM 0x0200 /* device can program itself */
-#define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */
-#define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */
-#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
-#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
-#define AVR_ISA_DES 0x4000 /* device has DES */
-
-#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
-#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
-/* For the attiny26 which is missing LPM Rd,Z+. */
-#define AVR_ISA_2xxe (AVR_ISA_2xxx | AVR_ISA_LPMX)
-#define AVR_ISA_RF401 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX)
-#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
- AVR_ISA_SPM | AVR_ISA_BRK)
-#define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA)
-#define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM)
-#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
- AVR_ISA_LPMX | AVR_ISA_SPM)
-#define AVR_ISA_PWMx (AVR_ISA_M8 | AVR_ISA_BRK)
-#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \
- AVR_ISA_LPMX | AVR_ISA_SPM)
-#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
-#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
-#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
-#define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
-#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
-
-#define AVR_ISA_AVR1 AVR_ISA_TINY1
-#define AVR_ISA_AVR2 AVR_ISA_2xxx
-#define AVR_ISA_AVR25 AVR_ISA_TINY2
-#define AVR_ISA_AVR3 AVR_ISA_M603
-#define AVR_ISA_AVR31 AVR_ISA_M103
-#define AVR_ISA_AVR35 (AVR_ISA_AVR3 | AVR_ISA_MOVW | \
- AVR_ISA_LPMX | AVR_ISA_SPM | AVR_ISA_BRK)
-#define AVR_ISA_AVR3_ALL (AVR_ISA_AVR3 | AVR_ISA_AVR31 | AVR_ISA_AVR35)
-#define AVR_ISA_AVR4 AVR_ISA_PWMx
-#define AVR_ISA_AVR5 AVR_ISA_M323
-#define AVR_ISA_AVR51 AVR_ISA_M128
-#define AVR_ISA_AVR6 (AVR_ISA_1200 | AVR_ISA_LPM | AVR_ISA_LPMX | \
- AVR_ISA_SRAM | AVR_ISA_MEGA | AVR_ISA_MUL | \
- AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
- AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW)
-
-#define REGISTER_P(x) ((x) == 'r' \
- || (x) == 'd' \
- || (x) == 'w' \
- || (x) == 'a' \
- || (x) == 'v')
-
-/* Undefined combination of operands - does the register
- operand overlap with pre-decremented or post-incremented
- pointer register (like ld r31,Z+)? */
-#define AVR_UNDEF_P(x) (((x) & 0xFFED) == 0x91E5 || \
- ((x) & 0xFDEF) == 0x91AD || ((x) & 0xFDEF) == 0x91AE || \
- ((x) & 0xFDEF) == 0x91C9 || ((x) & 0xFDEF) == 0x91CA || \
- ((x) & 0xFDEF) == 0x91E1 || ((x) & 0xFDEF) == 0x91E2)
-
-/* Is this a skip instruction {cpse,sbic,sbis,sbrc,sbrs}? */
-#define AVR_SKIP_P(x) (((x) & 0xFC00) == 0x1000 || \
- ((x) & 0xFD00) == 0x9900 || ((x) & 0xFC08) == 0xFC00)
-
-/* Is this `ldd r,b+0' or `std b+0,r' (b={Y,Z}, disassembled as
- `ld r,b' or `st b,r' respectively - next opcode entry)? */
-#define AVR_DISP0_P(x) (((x) & 0xFC07) == 0x8000)
-
-/* constraint letters
- r - any register
- d - `ldi' register (r16-r31)
- v - `movw' even register (r0, r2, ..., r28, r30)
- a - `fmul' register (r16-r23)
- w - `adiw' register (r24,r26,r28,r30)
- e - pointer registers (X,Y,Z)
- b - base pointer register and displacement ([YZ]+disp)
- z - Z pointer register (for [e]lpm Rd,Z[+])
- M - immediate value from 0 to 255
- n - immediate value from 0 to 255 ( n = ~M ). Relocation impossible
- s - immediate value from 0 to 7
- P - Port address value from 0 to 63. (in, out)
- p - Port address value from 0 to 31. (cbi, sbi, sbic, sbis)
- K - immediate value from 0 to 63 (used in `adiw', `sbiw')
- i - immediate value
- l - signed pc relative offset from -64 to 63
- L - signed pc relative offset from -2048 to 2047
- h - absolute code address (call, jmp)
- S - immediate value from 0 to 7 (S = s << 4)
- E - immediate value from 0 to 15, shifted left by 4 (des)
- ? - use this opcode entry if no parameters, else use next opcode entry
-
- Order is important - some binary opcodes have more than one name,
- the disassembler will only see the first match.
-
- Remaining undefined opcodes (1699 total - some of them might work
- as normal instructions if not all of the bits are decoded):
-
- 0x0001...0x00ff (255) (known to be decoded as `nop' by the old core)
- "100100xxxxxxx011" (128) 0x9[0-3][0-9a-f][3b]
- "100100xxxxxx1000" (64) 0x9[0-3][0-9a-f]8
- "1001001xxxxx01xx" (128) 0x9[23][0-9a-f][4-7]
- "1001010xxxxx0100" (32) 0x9[45][0-9a-f]4
- "1001010x001x1001" (4) 0x9[45][23]9
- "1001010x01xx1001" (8) 0x9[45][4-7]9
- "1001010x1xxx1001" (16) 0x9[45][8-9a-f]9
- "1001010xxxxx1011" (32) 0x9[45][0-9a-f]b
- "10010101001x1000" (2) 0x95[23]8
- "1001010101xx1000" (4) 0x95[4-7]8
- "1001010110111000" (1) 0x95b8
- "1001010111111000" (1) 0x95f8 (`espm' removed in databook update)
- "11111xxxxxxx1xxx" (1024) 0xf[8-9a-f][0-9a-f][8-9a-f]
- */
-
-AVR_INSN (clc, "", "1001010010001000", 1, AVR_ISA_1200, 0x9488)
-AVR_INSN (clh, "", "1001010011011000", 1, AVR_ISA_1200, 0x94d8)
-AVR_INSN (cli, "", "1001010011111000", 1, AVR_ISA_1200, 0x94f8)
-AVR_INSN (cln, "", "1001010010101000", 1, AVR_ISA_1200, 0x94a8)
-AVR_INSN (cls, "", "1001010011001000", 1, AVR_ISA_1200, 0x94c8)
-AVR_INSN (clt, "", "1001010011101000", 1, AVR_ISA_1200, 0x94e8)
-AVR_INSN (clv, "", "1001010010111000", 1, AVR_ISA_1200, 0x94b8)
-AVR_INSN (clz, "", "1001010010011000", 1, AVR_ISA_1200, 0x9498)
-
-AVR_INSN (sec, "", "1001010000001000", 1, AVR_ISA_1200, 0x9408)
-AVR_INSN (seh, "", "1001010001011000", 1, AVR_ISA_1200, 0x9458)
-AVR_INSN (sei, "", "1001010001111000", 1, AVR_ISA_1200, 0x9478)
-AVR_INSN (sen, "", "1001010000101000", 1, AVR_ISA_1200, 0x9428)
-AVR_INSN (ses, "", "1001010001001000", 1, AVR_ISA_1200, 0x9448)
-AVR_INSN (set, "", "1001010001101000", 1, AVR_ISA_1200, 0x9468)
-AVR_INSN (sev, "", "1001010000111000", 1, AVR_ISA_1200, 0x9438)
-AVR_INSN (sez, "", "1001010000011000", 1, AVR_ISA_1200, 0x9418)
-
- /* Same as {cl,se}[chinstvz] above. */
-AVR_INSN (bclr, "S", "100101001SSS1000", 1, AVR_ISA_1200, 0x9488)
-AVR_INSN (bset, "S", "100101000SSS1000", 1, AVR_ISA_1200, 0x9408)
-
-AVR_INSN (icall,"", "1001010100001001", 1, AVR_ISA_2xxx, 0x9509)
-AVR_INSN (ijmp, "", "1001010000001001", 1, AVR_ISA_2xxx, 0x9409)
-
-AVR_INSN (lpm, "?", "1001010111001000", 1, AVR_ISA_TINY1,0x95c8)
-AVR_INSN (lpm, "r,z", "1001000ddddd010+", 1, AVR_ISA_LPMX, 0x9004)
-AVR_INSN (elpm, "?", "1001010111011000", 1, AVR_ISA_ELPM, 0x95d8)
-AVR_INSN (elpm, "r,z", "1001000ddddd011+", 1, AVR_ISA_ELPMX,0x9006)
-
-AVR_INSN (nop, "", "0000000000000000", 1, AVR_ISA_1200, 0x0000)
-AVR_INSN (ret, "", "1001010100001000", 1, AVR_ISA_1200, 0x9508)
-AVR_INSN (reti, "", "1001010100011000", 1, AVR_ISA_1200, 0x9518)
-AVR_INSN (sleep,"", "1001010110001000", 1, AVR_ISA_1200, 0x9588)
-AVR_INSN (break,"", "1001010110011000", 1, AVR_ISA_BRK, 0x9598)
-AVR_INSN (wdr, "", "1001010110101000", 1, AVR_ISA_1200, 0x95a8)
-AVR_INSN (spm, "?", "1001010111101000", 1, AVR_ISA_SPM, 0x95e8)
-AVR_INSN (spm, "z", "10010101111+1000", 1, AVR_ISA_SPMX, 0x95e8)
-
-AVR_INSN (adc, "r,r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
-AVR_INSN (add, "r,r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-AVR_INSN (and, "r,r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000)
-AVR_INSN (cp, "r,r", "000101rdddddrrrr", 1, AVR_ISA_1200, 0x1400)
-AVR_INSN (cpc, "r,r", "000001rdddddrrrr", 1, AVR_ISA_1200, 0x0400)
-AVR_INSN (cpse, "r,r", "000100rdddddrrrr", 1, AVR_ISA_1200, 0x1000)
-AVR_INSN (eor, "r,r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400)
-AVR_INSN (mov, "r,r", "001011rdddddrrrr", 1, AVR_ISA_1200, 0x2c00)
-AVR_INSN (mul, "r,r", "100111rdddddrrrr", 1, AVR_ISA_MUL, 0x9c00)
-AVR_INSN (or, "r,r", "001010rdddddrrrr", 1, AVR_ISA_1200, 0x2800)
-AVR_INSN (sbc, "r,r", "000010rdddddrrrr", 1, AVR_ISA_1200, 0x0800)
-AVR_INSN (sub, "r,r", "000110rdddddrrrr", 1, AVR_ISA_1200, 0x1800)
-
- /* Shorthand for {eor,add,adc,and} r,r above. */
-AVR_INSN (clr, "r=r", "001001rdddddrrrr", 1, AVR_ISA_1200, 0x2400)
-AVR_INSN (lsl, "r=r", "000011rdddddrrrr", 1, AVR_ISA_1200, 0x0c00)
-AVR_INSN (rol, "r=r", "000111rdddddrrrr", 1, AVR_ISA_1200, 0x1c00)
-AVR_INSN (tst, "r=r", "001000rdddddrrrr", 1, AVR_ISA_1200, 0x2000)
-
-AVR_INSN (andi, "d,M", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000)
- /*XXX special case*/
-AVR_INSN (cbr, "d,n", "0111KKKKddddKKKK", 1, AVR_ISA_1200, 0x7000)
-
-AVR_INSN (ldi, "d,M", "1110KKKKddddKKKK", 1, AVR_ISA_1200, 0xe000)
-AVR_INSN (ser, "d", "11101111dddd1111", 1, AVR_ISA_1200, 0xef0f)
-
-AVR_INSN (ori, "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000)
-AVR_INSN (sbr, "d,M", "0110KKKKddddKKKK", 1, AVR_ISA_1200, 0x6000)
-
-AVR_INSN (cpi, "d,M", "0011KKKKddddKKKK", 1, AVR_ISA_1200, 0x3000)
-AVR_INSN (sbci, "d,M", "0100KKKKddddKKKK", 1, AVR_ISA_1200, 0x4000)
-AVR_INSN (subi, "d,M", "0101KKKKddddKKKK", 1, AVR_ISA_1200, 0x5000)
-
-AVR_INSN (sbrc, "r,s", "1111110rrrrr0sss", 1, AVR_ISA_1200, 0xfc00)
-AVR_INSN (sbrs, "r,s", "1111111rrrrr0sss", 1, AVR_ISA_1200, 0xfe00)
-AVR_INSN (bld, "r,s", "1111100ddddd0sss", 1, AVR_ISA_1200, 0xf800)
-AVR_INSN (bst, "r,s", "1111101ddddd0sss", 1, AVR_ISA_1200, 0xfa00)
-
-AVR_INSN (in, "r,P", "10110PPdddddPPPP", 1, AVR_ISA_1200, 0xb000)
-AVR_INSN (out, "P,r", "10111PPrrrrrPPPP", 1, AVR_ISA_1200, 0xb800)
-
-AVR_INSN (adiw, "w,K", "10010110KKddKKKK", 1, AVR_ISA_2xxx, 0x9600)
-AVR_INSN (sbiw, "w,K", "10010111KKddKKKK", 1, AVR_ISA_2xxx, 0x9700)
-
-AVR_INSN (cbi, "p,s", "10011000pppppsss", 1, AVR_ISA_1200, 0x9800)
-AVR_INSN (sbi, "p,s", "10011010pppppsss", 1, AVR_ISA_1200, 0x9a00)
-AVR_INSN (sbic, "p,s", "10011001pppppsss", 1, AVR_ISA_1200, 0x9900)
-AVR_INSN (sbis, "p,s", "10011011pppppsss", 1, AVR_ISA_1200, 0x9b00)
-
-AVR_INSN (brcc, "l", "111101lllllll000", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brcs, "l", "111100lllllll000", 1, AVR_ISA_1200, 0xf000)
-AVR_INSN (breq, "l", "111100lllllll001", 1, AVR_ISA_1200, 0xf001)
-AVR_INSN (brge, "l", "111101lllllll100", 1, AVR_ISA_1200, 0xf404)
-AVR_INSN (brhc, "l", "111101lllllll101", 1, AVR_ISA_1200, 0xf405)
-AVR_INSN (brhs, "l", "111100lllllll101", 1, AVR_ISA_1200, 0xf005)
-AVR_INSN (brid, "l", "111101lllllll111", 1, AVR_ISA_1200, 0xf407)
-AVR_INSN (brie, "l", "111100lllllll111", 1, AVR_ISA_1200, 0xf007)
-AVR_INSN (brlo, "l", "111100lllllll000", 1, AVR_ISA_1200, 0xf000)
-AVR_INSN (brlt, "l", "111100lllllll100", 1, AVR_ISA_1200, 0xf004)
-AVR_INSN (brmi, "l", "111100lllllll010", 1, AVR_ISA_1200, 0xf002)
-AVR_INSN (brne, "l", "111101lllllll001", 1, AVR_ISA_1200, 0xf401)
-AVR_INSN (brpl, "l", "111101lllllll010", 1, AVR_ISA_1200, 0xf402)
-AVR_INSN (brsh, "l", "111101lllllll000", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brtc, "l", "111101lllllll110", 1, AVR_ISA_1200, 0xf406)
-AVR_INSN (brts, "l", "111100lllllll110", 1, AVR_ISA_1200, 0xf006)
-AVR_INSN (brvc, "l", "111101lllllll011", 1, AVR_ISA_1200, 0xf403)
-AVR_INSN (brvs, "l", "111100lllllll011", 1, AVR_ISA_1200, 0xf003)
-
- /* Same as br?? above. */
-AVR_INSN (brbc, "s,l", "111101lllllllsss", 1, AVR_ISA_1200, 0xf400)
-AVR_INSN (brbs, "s,l", "111100lllllllsss", 1, AVR_ISA_1200, 0xf000)
-
-AVR_INSN (rcall, "L", "1101LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xd000)
-AVR_INSN (rjmp, "L", "1100LLLLLLLLLLLL", 1, AVR_ISA_1200, 0xc000)
-
-AVR_INSN (call, "h", "1001010hhhhh111h", 2, AVR_ISA_MEGA, 0x940e)
-AVR_INSN (jmp, "h", "1001010hhhhh110h", 2, AVR_ISA_MEGA, 0x940c)
-
-AVR_INSN (asr, "r", "1001010rrrrr0101", 1, AVR_ISA_1200, 0x9405)
-AVR_INSN (com, "r", "1001010rrrrr0000", 1, AVR_ISA_1200, 0x9400)
-AVR_INSN (dec, "r", "1001010rrrrr1010", 1, AVR_ISA_1200, 0x940a)
-AVR_INSN (inc, "r", "1001010rrrrr0011", 1, AVR_ISA_1200, 0x9403)
-AVR_INSN (lsr, "r", "1001010rrrrr0110", 1, AVR_ISA_1200, 0x9406)
-AVR_INSN (neg, "r", "1001010rrrrr0001", 1, AVR_ISA_1200, 0x9401)
-AVR_INSN (pop, "r", "1001000rrrrr1111", 1, AVR_ISA_2xxx, 0x900f)
-AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f)
-AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407)
-AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
-
- /* Known to be decoded as `nop' by the old core. */
-AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
-AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL, 0x0200)
-AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL, 0x0300)
-AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL, 0x0308)
-AVR_INSN (fmuls,"a,a", "000000111ddd0rrr", 1, AVR_ISA_MUL, 0x0380)
-AVR_INSN (fmulsu,"a,a","000000111ddd1rrr", 1, AVR_ISA_MUL, 0x0388)
-
-AVR_INSN (sts, "i,r", "1001001ddddd0000", 2, AVR_ISA_2xxx, 0x9200)
-AVR_INSN (lds, "r,i", "1001000ddddd0000", 2, AVR_ISA_2xxx, 0x9000)
-
- /* Special case for b+0, `e' must be next entry after `b',
- b={Y=1,Z=0}, ee={X=11,Y=10,Z=00}, !=1 if -e or e+ or X. */
-AVR_INSN (ldd, "r,b", "10o0oo0dddddbooo", 1, AVR_ISA_2xxx, 0x8000)
-AVR_INSN (ld, "r,e", "100!000dddddee-+", 1, AVR_ISA_1200, 0x8000)
-AVR_INSN (std, "b,r", "10o0oo1rrrrrbooo", 1, AVR_ISA_2xxx, 0x8200)
-AVR_INSN (st, "e,r", "100!001rrrrree-+", 1, AVR_ISA_1200, 0x8200)
-
- /* These are for devices that don't exist yet
- (>128K program memory, PC = EIND:Z). */
-AVR_INSN (eicall, "", "1001010100011001", 1, AVR_ISA_EIND, 0x9519)
-AVR_INSN (eijmp, "", "1001010000011001", 1, AVR_ISA_EIND, 0x9419)
-
-/* DES instruction for encryption and decryption */
-AVR_INSN (des, "E", "10010100EEEE1011", 1, AVR_ISA_DES, 0x940B)
-
diff --git a/include/opcode/bfin.h b/include/opcode/bfin.h
deleted file mode 100755
index 26f019381..000000000
--- a/include/opcode/bfin.h
+++ /dev/null
@@ -1,1761 +0,0 @@
-/* bfin.h -- Header file for ADI Blackfin opcode table
- Copyright 2005, 2010, 2011 Free Software Foundation, Inc.
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef OPCODE_BFIN_H
-#define OPCODE_BFIN_H
-
-/* Common to all DSP32 instructions. */
-#define BIT_MULTI_INS 0x0800
-
-/* This just sets the multi instruction bit of a DSP32 instruction. */
-#define SET_MULTI_INSTRUCTION_BIT(x) x->value |= BIT_MULTI_INS;
-
-
-/* DSP instructions (32 bit) */
-
-/* mmod field. */
-#define M_S2RND 1
-#define M_T 2
-#define M_W32 3
-#define M_FU 4
-#define M_TFU 6
-#define M_IS 8
-#define M_ISS2 9
-#define M_IH 11
-#define M_IU 12
-
-static inline int is_macmod_pmove (int x)
-{
- return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_S2RND)
- || (x == M_ISS2) || (x == M_IU);
-}
-
-static inline int is_macmod_hmove (int x)
-{
- return (x == 0) || (x == M_IS) || (x == M_FU) || (x == M_IU) || (x == M_T)
- || (x == M_TFU) || (x == M_S2RND) || (x == M_ISS2) || (x == M_IH);
-}
-
-static inline int is_macmod_signed (int x)
-{
- return (x == 0) || (x == M_IS) || (x == M_T) || (x == M_S2RND)
- || (x == M_ISS2) || (x == M_IH) || (x == M_W32);
-}
-
-/* dsp32mac
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 0 | 0 |.mmod..........|.MM|.P.|.w1|.op1...|
-|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_src1;
- int mask_src1;
- int bits_src0;
- int mask_src0;
- int bits_dst;
- int mask_dst;
- int bits_h10;
- int mask_h10;
- int bits_h00;
- int mask_h00;
- int bits_op0;
- int mask_op0;
- int bits_w0;
- int mask_w0;
- int bits_h11;
- int mask_h11;
- int bits_h01;
- int mask_h01;
- int bits_op1;
- int mask_op1;
- int bits_w1;
- int mask_w1;
- int bits_P;
- int mask_P;
- int bits_MM;
- int mask_MM;
- int bits_mmod;
- int mask_mmod;
- int bits_code2;
- int mask_code2;
- int bits_M;
- int mask_M;
- int bits_code;
- int mask_code;
-} DSP32Mac;
-
-#define DSP32Mac_opcode 0xc0000000
-#define DSP32Mac_src1_bits 0
-#define DSP32Mac_src1_mask 0x7
-#define DSP32Mac_src0_bits 3
-#define DSP32Mac_src0_mask 0x7
-#define DSP32Mac_dst_bits 6
-#define DSP32Mac_dst_mask 0x7
-#define DSP32Mac_h10_bits 9
-#define DSP32Mac_h10_mask 0x1
-#define DSP32Mac_h00_bits 10
-#define DSP32Mac_h00_mask 0x1
-#define DSP32Mac_op0_bits 11
-#define DSP32Mac_op0_mask 0x3
-#define DSP32Mac_w0_bits 13
-#define DSP32Mac_w0_mask 0x1
-#define DSP32Mac_h11_bits 14
-#define DSP32Mac_h11_mask 0x1
-#define DSP32Mac_h01_bits 15
-#define DSP32Mac_h01_mask 0x1
-#define DSP32Mac_op1_bits 16
-#define DSP32Mac_op1_mask 0x3
-#define DSP32Mac_w1_bits 18
-#define DSP32Mac_w1_mask 0x1
-#define DSP32Mac_p_bits 19
-#define DSP32Mac_p_mask 0x1
-#define DSP32Mac_MM_bits 20
-#define DSP32Mac_MM_mask 0x1
-#define DSP32Mac_mmod_bits 21
-#define DSP32Mac_mmod_mask 0xf
-#define DSP32Mac_code2_bits 25
-#define DSP32Mac_code2_mask 0x3
-#define DSP32Mac_M_bits 27
-#define DSP32Mac_M_mask 0x1
-#define DSP32Mac_code_bits 28
-#define DSP32Mac_code_mask 0xf
-
-#define init_DSP32Mac \
-{ \
- DSP32Mac_opcode, \
- DSP32Mac_src1_bits, DSP32Mac_src1_mask, \
- DSP32Mac_src0_bits, DSP32Mac_src0_mask, \
- DSP32Mac_dst_bits, DSP32Mac_dst_mask, \
- DSP32Mac_h10_bits, DSP32Mac_h10_mask, \
- DSP32Mac_h00_bits, DSP32Mac_h00_mask, \
- DSP32Mac_op0_bits, DSP32Mac_op0_mask, \
- DSP32Mac_w0_bits, DSP32Mac_w0_mask, \
- DSP32Mac_h11_bits, DSP32Mac_h11_mask, \
- DSP32Mac_h01_bits, DSP32Mac_h01_mask, \
- DSP32Mac_op1_bits, DSP32Mac_op1_mask, \
- DSP32Mac_w1_bits, DSP32Mac_w1_mask, \
- DSP32Mac_p_bits, DSP32Mac_p_mask, \
- DSP32Mac_MM_bits, DSP32Mac_MM_mask, \
- DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \
- DSP32Mac_code2_bits, DSP32Mac_code2_mask, \
- DSP32Mac_M_bits, DSP32Mac_M_mask, \
- DSP32Mac_code_bits, DSP32Mac_code_mask \
-};
-
-/* dsp32mult
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 0 | 1 |.mmod..........|.MM|.P.|.w1|.op1...|
-|.h01|.h11|.w0|.op0...|.h00|.h10|.dst.......|.src0......|.src1......|
-+----+----+---+---|---+----+----+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef DSP32Mac DSP32Mult;
-#define DSP32Mult_opcode 0xc2000000
-
-#define init_DSP32Mult \
-{ \
- DSP32Mult_opcode, \
- DSP32Mac_src1_bits, DSP32Mac_src1_mask, \
- DSP32Mac_src0_bits, DSP32Mac_src0_mask, \
- DSP32Mac_dst_bits, DSP32Mac_dst_mask, \
- DSP32Mac_h10_bits, DSP32Mac_h10_mask, \
- DSP32Mac_h00_bits, DSP32Mac_h00_mask, \
- DSP32Mac_op0_bits, DSP32Mac_op0_mask, \
- DSP32Mac_w0_bits, DSP32Mac_w0_mask, \
- DSP32Mac_h11_bits, DSP32Mac_h11_mask, \
- DSP32Mac_h01_bits, DSP32Mac_h01_mask, \
- DSP32Mac_op1_bits, DSP32Mac_op1_mask, \
- DSP32Mac_w1_bits, DSP32Mac_w1_mask, \
- DSP32Mac_p_bits, DSP32Mac_p_mask, \
- DSP32Mac_MM_bits, DSP32Mac_MM_mask, \
- DSP32Mac_mmod_bits, DSP32Mac_mmod_mask, \
- DSP32Mac_code2_bits, DSP32Mac_code2_mask, \
- DSP32Mac_M_bits, DSP32Mac_M_mask, \
- DSP32Mac_code_bits, DSP32Mac_code_mask \
-};
-
-/* dsp32alu
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 0 | - | - | - |.HL|.aopcde............|
-|.aop...|.s.|.x.|.dst0......|.dst1......|.src0......|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_src1;
- int mask_src1;
- int bits_src0;
- int mask_src0;
- int bits_dst1;
- int mask_dst1;
- int bits_dst0;
- int mask_dst0;
- int bits_x;
- int mask_x;
- int bits_s;
- int mask_s;
- int bits_aop;
- int mask_aop;
- int bits_aopcde;
- int mask_aopcde;
- int bits_HL;
- int mask_HL;
- int bits_dontcare;
- int mask_dontcare;
- int bits_code2;
- int mask_code2;
- int bits_M;
- int mask_M;
- int bits_code;
- int mask_code;
-} DSP32Alu;
-
-#define DSP32Alu_opcode 0xc4000000
-#define DSP32Alu_src1_bits 0
-#define DSP32Alu_src1_mask 0x7
-#define DSP32Alu_src0_bits 3
-#define DSP32Alu_src0_mask 0x7
-#define DSP32Alu_dst1_bits 6
-#define DSP32Alu_dst1_mask 0x7
-#define DSP32Alu_dst0_bits 9
-#define DSP32Alu_dst0_mask 0x7
-#define DSP32Alu_x_bits 12
-#define DSP32Alu_x_mask 0x1
-#define DSP32Alu_s_bits 13
-#define DSP32Alu_s_mask 0x1
-#define DSP32Alu_aop_bits 14
-#define DSP32Alu_aop_mask 0x3
-#define DSP32Alu_aopcde_bits 16
-#define DSP32Alu_aopcde_mask 0x1f
-#define DSP32Alu_HL_bits 21
-#define DSP32Alu_HL_mask 0x1
-#define DSP32Alu_dontcare_bits 22
-#define DSP32Alu_dontcare_mask 0x7
-#define DSP32Alu_code2_bits 25
-#define DSP32Alu_code2_mask 0x3
-#define DSP32Alu_M_bits 27
-#define DSP32Alu_M_mask 0x1
-#define DSP32Alu_code_bits 28
-#define DSP32Alu_code_mask 0xf
-
-#define init_DSP32Alu \
-{ \
- DSP32Alu_opcode, \
- DSP32Alu_src1_bits, DSP32Alu_src1_mask, \
- DSP32Alu_src0_bits, DSP32Alu_src0_mask, \
- DSP32Alu_dst1_bits, DSP32Alu_dst1_mask, \
- DSP32Alu_dst0_bits, DSP32Alu_dst0_mask, \
- DSP32Alu_x_bits, DSP32Alu_x_mask, \
- DSP32Alu_s_bits, DSP32Alu_s_mask, \
- DSP32Alu_aop_bits, DSP32Alu_aop_mask, \
- DSP32Alu_aopcde_bits, DSP32Alu_aopcde_mask, \
- DSP32Alu_HL_bits, DSP32Alu_HL_mask, \
- DSP32Alu_dontcare_bits, DSP32Alu_dontcare_mask, \
- DSP32Alu_code2_bits, DSP32Alu_code2_mask, \
- DSP32Alu_M_bits, DSP32Alu_M_mask, \
- DSP32Alu_code_bits, DSP32Alu_code_mask \
-};
-
-/* dsp32shift
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 0 | - | - |.sopcde............|
-|.sop...|.HLs...|.dst0......| - | - | - |.src0......|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_src1;
- int mask_src1;
- int bits_src0;
- int mask_src0;
- int bits_dst1;
- int mask_dst1;
- int bits_dst0;
- int mask_dst0;
- int bits_HLs;
- int mask_HLs;
- int bits_sop;
- int mask_sop;
- int bits_sopcde;
- int mask_sopcde;
- int bits_dontcare;
- int mask_dontcare;
- int bits_code2;
- int mask_code2;
- int bits_M;
- int mask_M;
- int bits_code;
- int mask_code;
-} DSP32Shift;
-
-#define DSP32Shift_opcode 0xc6000000
-#define DSP32Shift_src1_bits 0
-#define DSP32Shift_src1_mask 0x7
-#define DSP32Shift_src0_bits 3
-#define DSP32Shift_src0_mask 0x7
-#define DSP32Shift_dst1_bits 6
-#define DSP32Shift_dst1_mask 0x7
-#define DSP32Shift_dst0_bits 9
-#define DSP32Shift_dst0_mask 0x7
-#define DSP32Shift_HLs_bits 12
-#define DSP32Shift_HLs_mask 0x3
-#define DSP32Shift_sop_bits 14
-#define DSP32Shift_sop_mask 0x3
-#define DSP32Shift_sopcde_bits 16
-#define DSP32Shift_sopcde_mask 0x1f
-#define DSP32Shift_dontcare_bits 21
-#define DSP32Shift_dontcare_mask 0x3
-#define DSP32Shift_code2_bits 23
-#define DSP32Shift_code2_mask 0xf
-#define DSP32Shift_M_bits 27
-#define DSP32Shift_M_mask 0x1
-#define DSP32Shift_code_bits 28
-#define DSP32Shift_code_mask 0xf
-
-#define init_DSP32Shift \
-{ \
- DSP32Shift_opcode, \
- DSP32Shift_src1_bits, DSP32Shift_src1_mask, \
- DSP32Shift_src0_bits, DSP32Shift_src0_mask, \
- DSP32Shift_dst1_bits, DSP32Shift_dst1_mask, \
- DSP32Shift_dst0_bits, DSP32Shift_dst0_mask, \
- DSP32Shift_HLs_bits, DSP32Shift_HLs_mask, \
- DSP32Shift_sop_bits, DSP32Shift_sop_mask, \
- DSP32Shift_sopcde_bits, DSP32Shift_sopcde_mask, \
- DSP32Shift_dontcare_bits, DSP32Shift_dontcare_mask, \
- DSP32Shift_code2_bits, DSP32Shift_code2_mask, \
- DSP32Shift_M_bits, DSP32Shift_M_mask, \
- DSP32Shift_code_bits, DSP32Shift_code_mask \
-};
-
-/* dsp32shiftimm
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 0 | 0 |.M.| 1 | 1 | 0 | 1 | - | - |.sopcde............|
-|.sop...|.HLs...|.dst0......|.immag.................|.src1......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_src1;
- int mask_src1;
- int bits_immag;
- int mask_immag;
- int bits_dst0;
- int mask_dst0;
- int bits_HLs;
- int mask_HLs;
- int bits_sop;
- int mask_sop;
- int bits_sopcde;
- int mask_sopcde;
- int bits_dontcare;
- int mask_dontcare;
- int bits_code2;
- int mask_code2;
- int bits_M;
- int mask_M;
- int bits_code;
- int mask_code;
-} DSP32ShiftImm;
-
-#define DSP32ShiftImm_opcode 0xc6800000
-#define DSP32ShiftImm_src1_bits 0
-#define DSP32ShiftImm_src1_mask 0x7
-#define DSP32ShiftImm_immag_bits 3
-#define DSP32ShiftImm_immag_mask 0x3f
-#define DSP32ShiftImm_dst0_bits 9
-#define DSP32ShiftImm_dst0_mask 0x7
-#define DSP32ShiftImm_HLs_bits 12
-#define DSP32ShiftImm_HLs_mask 0x3
-#define DSP32ShiftImm_sop_bits 14
-#define DSP32ShiftImm_sop_mask 0x3
-#define DSP32ShiftImm_sopcde_bits 16
-#define DSP32ShiftImm_sopcde_mask 0x1f
-#define DSP32ShiftImm_dontcare_bits 21
-#define DSP32ShiftImm_dontcare_mask 0x3
-#define DSP32ShiftImm_code2_bits 23
-#define DSP32ShiftImm_code2_mask 0xf
-#define DSP32ShiftImm_M_bits 27
-#define DSP32ShiftImm_M_mask 0x1
-#define DSP32ShiftImm_code_bits 28
-#define DSP32ShiftImm_code_mask 0xf
-
-#define init_DSP32ShiftImm \
-{ \
- DSP32ShiftImm_opcode, \
- DSP32ShiftImm_src1_bits, DSP32ShiftImm_src1_mask, \
- DSP32ShiftImm_immag_bits, DSP32ShiftImm_immag_mask, \
- DSP32ShiftImm_dst0_bits, DSP32ShiftImm_dst0_mask, \
- DSP32ShiftImm_HLs_bits, DSP32ShiftImm_HLs_mask, \
- DSP32ShiftImm_sop_bits, DSP32ShiftImm_sop_mask, \
- DSP32ShiftImm_sopcde_bits, DSP32ShiftImm_sopcde_mask, \
- DSP32ShiftImm_dontcare_bits, DSP32ShiftImm_dontcare_mask, \
- DSP32ShiftImm_code2_bits, DSP32ShiftImm_code2_mask, \
- DSP32ShiftImm_M_bits, DSP32ShiftImm_M_mask, \
- DSP32ShiftImm_code_bits, DSP32ShiftImm_code_mask \
-};
-
-/* LOAD / STORE */
-
-/* LDSTidxI
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 1 |.W.|.Z.|.sz....|.ptr.......|.reg.......|
-|.offset........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_offset;
- int mask_offset;
- int bits_reg;
- int mask_reg;
- int bits_ptr;
- int mask_ptr;
- int bits_sz;
- int mask_sz;
- int bits_Z;
- int mask_Z;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} LDSTidxI;
-
-#define LDSTidxI_opcode 0xe4000000
-#define LDSTidxI_offset_bits 0
-#define LDSTidxI_offset_mask 0xffff
-#define LDSTidxI_reg_bits 16
-#define LDSTidxI_reg_mask 0x7
-#define LDSTidxI_ptr_bits 19
-#define LDSTidxI_ptr_mask 0x7
-#define LDSTidxI_sz_bits 22
-#define LDSTidxI_sz_mask 0x3
-#define LDSTidxI_Z_bits 24
-#define LDSTidxI_Z_mask 0x1
-#define LDSTidxI_W_bits 25
-#define LDSTidxI_W_mask 0x1
-#define LDSTidxI_code_bits 26
-#define LDSTidxI_code_mask 0x3f
-
-#define init_LDSTidxI \
-{ \
- LDSTidxI_opcode, \
- LDSTidxI_offset_bits, LDSTidxI_offset_mask, \
- LDSTidxI_reg_bits, LDSTidxI_reg_mask, \
- LDSTidxI_ptr_bits, LDSTidxI_ptr_mask, \
- LDSTidxI_sz_bits, LDSTidxI_sz_mask, \
- LDSTidxI_Z_bits, LDSTidxI_Z_mask, \
- LDSTidxI_W_bits, LDSTidxI_W_mask, \
- LDSTidxI_code_bits, LDSTidxI_code_mask \
-};
-
-
-/* LDST
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 |.sz....|.W.|.aop...|.Z.|.ptr.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_ptr;
- int mask_ptr;
- int bits_Z;
- int mask_Z;
- int bits_aop;
- int mask_aop;
- int bits_W;
- int mask_W;
- int bits_sz;
- int mask_sz;
- int bits_code;
- int mask_code;
-} LDST;
-
-#define LDST_opcode 0x9000
-#define LDST_reg_bits 0
-#define LDST_reg_mask 0x7
-#define LDST_ptr_bits 3
-#define LDST_ptr_mask 0x7
-#define LDST_Z_bits 6
-#define LDST_Z_mask 0x1
-#define LDST_aop_bits 7
-#define LDST_aop_mask 0x3
-#define LDST_W_bits 9
-#define LDST_W_mask 0x1
-#define LDST_sz_bits 10
-#define LDST_sz_mask 0x3
-#define LDST_code_bits 12
-#define LDST_code_mask 0xf
-
-#define init_LDST \
-{ \
- LDST_opcode, \
- LDST_reg_bits, LDST_reg_mask, \
- LDST_ptr_bits, LDST_ptr_mask, \
- LDST_Z_bits, LDST_Z_mask, \
- LDST_aop_bits, LDST_aop_mask, \
- LDST_W_bits, LDST_W_mask, \
- LDST_sz_bits, LDST_sz_mask, \
- LDST_code_bits, LDST_code_mask \
-};
-
-/* LDSTii
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 1 |.W.|.op....|.offset........|.ptr.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_ptr;
- int mask_ptr;
- int bits_offset;
- int mask_offset;
- int bits_op;
- int mask_op;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} LDSTii;
-
-#define LDSTii_opcode 0xa000
-#define LDSTii_reg_bit 0
-#define LDSTii_reg_mask 0x7
-#define LDSTii_ptr_bit 3
-#define LDSTii_ptr_mask 0x7
-#define LDSTii_offset_bit 6
-#define LDSTii_offset_mask 0xf
-#define LDSTii_op_bit 10
-#define LDSTii_op_mask 0x3
-#define LDSTii_W_bit 12
-#define LDSTii_W_mask 0x1
-#define LDSTii_code_bit 13
-#define LDSTii_code_mask 0x7
-
-#define init_LDSTii \
-{ \
- LDSTii_opcode, \
- LDSTii_reg_bit, LDSTii_reg_mask, \
- LDSTii_ptr_bit, LDSTii_ptr_mask, \
- LDSTii_offset_bit, LDSTii_offset_mask, \
- LDSTii_op_bit, LDSTii_op_mask, \
- LDSTii_W_bit, LDSTii_W_mask, \
- LDSTii_code_bit, LDSTii_code_mask \
-};
-
-
-/* LDSTiiFP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 1 | 1 | 1 | 0 |.W.|.offset............|.reg...........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_offset;
- int mask_offset;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} LDSTiiFP;
-
-#define LDSTiiFP_opcode 0xb800
-#define LDSTiiFP_reg_bits 0
-#define LDSTiiFP_reg_mask 0xf
-#define LDSTiiFP_offset_bits 4
-#define LDSTiiFP_offset_mask 0x1f
-#define LDSTiiFP_W_bits 9
-#define LDSTiiFP_W_mask 0x1
-#define LDSTiiFP_code_bits 10
-#define LDSTiiFP_code_mask 0x3f
-
-#define init_LDSTiiFP \
-{ \
- LDSTiiFP_opcode, \
- LDSTiiFP_reg_bits, LDSTiiFP_reg_mask, \
- LDSTiiFP_offset_bits, LDSTiiFP_offset_mask, \
- LDSTiiFP_W_bits, LDSTiiFP_W_mask, \
- LDSTiiFP_code_bits, LDSTiiFP_code_mask \
-};
-
-/* dspLDST
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_i;
- int mask_i;
- int bits_m;
- int mask_m;
- int bits_aop;
- int mask_aop;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} DspLDST;
-
-#define DspLDST_opcode 0x9c00
-#define DspLDST_reg_bits 0
-#define DspLDST_reg_mask 0x7
-#define DspLDST_i_bits 3
-#define DspLDST_i_mask 0x3
-#define DspLDST_m_bits 5
-#define DspLDST_m_mask 0x3
-#define DspLDST_aop_bits 7
-#define DspLDST_aop_mask 0x3
-#define DspLDST_W_bits 9
-#define DspLDST_W_mask 0x1
-#define DspLDST_code_bits 10
-#define DspLDST_code_mask 0x3f
-
-#define init_DspLDST \
-{ \
- DspLDST_opcode, \
- DspLDST_reg_bits, DspLDST_reg_mask, \
- DspLDST_i_bits, DspLDST_i_mask, \
- DspLDST_m_bits, DspLDST_m_mask, \
- DspLDST_aop_bits, DspLDST_aop_mask, \
- DspLDST_W_bits, DspLDST_W_mask, \
- DspLDST_code_bits, DspLDST_code_mask \
-};
-
-
-/* LDSTpmod
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_ptr;
- int mask_ptr;
- int bits_idx;
- int mask_idx;
- int bits_reg;
- int mask_reg;
- int bits_aop;
- int mask_aop;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} LDSTpmod;
-
-#define LDSTpmod_opcode 0x8000
-#define LDSTpmod_ptr_bits 0
-#define LDSTpmod_ptr_mask 0x7
-#define LDSTpmod_idx_bits 3
-#define LDSTpmod_idx_mask 0x7
-#define LDSTpmod_reg_bits 6
-#define LDSTpmod_reg_mask 0x7
-#define LDSTpmod_aop_bits 9
-#define LDSTpmod_aop_mask 0x3
-#define LDSTpmod_W_bits 11
-#define LDSTpmod_W_mask 0x1
-#define LDSTpmod_code_bits 12
-#define LDSTpmod_code_mask 0xf
-
-#define init_LDSTpmod \
-{ \
- LDSTpmod_opcode, \
- LDSTpmod_ptr_bits, LDSTpmod_ptr_mask, \
- LDSTpmod_idx_bits, LDSTpmod_idx_mask, \
- LDSTpmod_reg_bits, LDSTpmod_reg_mask, \
- LDSTpmod_aop_bits, LDSTpmod_aop_mask, \
- LDSTpmod_W_bits, LDSTpmod_W_mask, \
- LDSTpmod_code_bits, LDSTpmod_code_mask \
-};
-
-
-/* LOGI2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_dst;
- int mask_dst;
- int bits_src;
- int mask_src;
- int bits_opc;
- int mask_opc;
- int bits_code;
- int mask_code;
-} LOGI2op;
-
-#define LOGI2op_opcode 0x4800
-#define LOGI2op_dst_bits 0
-#define LOGI2op_dst_mask 0x7
-#define LOGI2op_src_bits 3
-#define LOGI2op_src_mask 0x1f
-#define LOGI2op_opc_bits 8
-#define LOGI2op_opc_mask 0x7
-#define LOGI2op_code_bits 11
-#define LOGI2op_code_mask 0x1f
-
-#define init_LOGI2op \
-{ \
- LOGI2op_opcode, \
- LOGI2op_dst_bits, LOGI2op_dst_mask, \
- LOGI2op_src_bits, LOGI2op_src_mask, \
- LOGI2op_opc_bits, LOGI2op_opc_mask, \
- LOGI2op_code_bits, LOGI2op_code_mask \
-};
-
-
-/* ALU2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_dst;
- int mask_dst;
- int bits_src;
- int mask_src;
- int bits_opc;
- int mask_opc;
- int bits_code;
- int mask_code;
-} ALU2op;
-
-#define ALU2op_opcode 0x4000
-#define ALU2op_dst_bits 0
-#define ALU2op_dst_mask 0x7
-#define ALU2op_src_bits 3
-#define ALU2op_src_mask 0x7
-#define ALU2op_opc_bits 6
-#define ALU2op_opc_mask 0xf
-#define ALU2op_code_bits 10
-#define ALU2op_code_mask 0x3f
-
-#define init_ALU2op \
-{ \
- ALU2op_opcode, \
- ALU2op_dst_bits, ALU2op_dst_mask, \
- ALU2op_src_bits, ALU2op_src_mask, \
- ALU2op_opc_bits, ALU2op_opc_mask, \
- ALU2op_code_bits, ALU2op_code_mask \
-};
-
-
-/* BRCC
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 1 |.T.|.B.|.offset................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_offset;
- int mask_offset;
- int bits_B;
- int mask_B;
- int bits_T;
- int mask_T;
- int bits_code;
- int mask_code;
-} BRCC;
-
-#define BRCC_opcode 0x1000
-#define BRCC_offset_bits 0
-#define BRCC_offset_mask 0x3ff
-#define BRCC_B_bits 10
-#define BRCC_B_mask 0x1
-#define BRCC_T_bits 11
-#define BRCC_T_mask 0x1
-#define BRCC_code_bits 12
-#define BRCC_code_mask 0xf
-
-#define init_BRCC \
-{ \
- BRCC_opcode, \
- BRCC_offset_bits, BRCC_offset_mask, \
- BRCC_B_bits, BRCC_B_mask, \
- BRCC_T_bits, BRCC_T_mask, \
- BRCC_code_bits, BRCC_code_mask \
-};
-
-
-/* UJUMP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 1 | 0 |.offset........................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_offset;
- int mask_offset;
- int bits_code;
- int mask_code;
-} UJump;
-
-#define UJump_opcode 0x2000
-#define UJump_offset_bits 0
-#define UJump_offset_mask 0xfff
-#define UJump_code_bits 12
-#define UJump_code_mask 0xf
-
-#define init_UJump \
-{ \
- UJump_opcode, \
- UJump_offset_bits, UJump_offset_mask, \
- UJump_code_bits, UJump_code_mask \
-};
-
-
-/* ProgCtrl
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_poprnd;
- int mask_poprnd;
- int bits_prgfunc;
- int mask_prgfunc;
- int bits_code;
- int mask_code;
-} ProgCtrl;
-
-#define ProgCtrl_opcode 0x0000
-#define ProgCtrl_poprnd_bits 0
-#define ProgCtrl_poprnd_mask 0xf
-#define ProgCtrl_prgfunc_bits 4
-#define ProgCtrl_prgfunc_mask 0xf
-#define ProgCtrl_code_bits 8
-#define ProgCtrl_code_mask 0xff
-
-#define init_ProgCtrl \
-{ \
- ProgCtrl_opcode, \
- ProgCtrl_poprnd_bits, ProgCtrl_poprnd_mask, \
- ProgCtrl_prgfunc_bits, ProgCtrl_prgfunc_mask, \
- ProgCtrl_code_bits, ProgCtrl_code_mask \
-};
-
-/* CALLa
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................|
-|.lsw...........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-
-typedef struct
-{
- unsigned long opcode;
- int bits_addr;
- int mask_addr;
- int bits_S;
- int mask_S;
- int bits_code;
- int mask_code;
-} CALLa;
-
-#define CALLa_opcode 0xe2000000
-#define CALLa_addr_bits 0
-#define CALLa_addr_mask 0xffffff
-#define CALLa_S_bits 24
-#define CALLa_S_mask 0x1
-#define CALLa_code_bits 25
-#define CALLa_code_mask 0x7f
-
-#define init_CALLa \
-{ \
- CALLa_opcode, \
- CALLa_addr_bits, CALLa_addr_mask, \
- CALLa_S_bits, CALLa_S_mask, \
- CALLa_code_bits, CALLa_code_mask \
-};
-
-
-/* pseudoDEBUG
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_grp;
- int mask_grp;
- int bits_fn;
- int mask_fn;
- int bits_code;
- int mask_code;
-} PseudoDbg;
-
-#define PseudoDbg_opcode 0xf800
-#define PseudoDbg_reg_bits 0
-#define PseudoDbg_reg_mask 0x7
-#define PseudoDbg_grp_bits 3
-#define PseudoDbg_grp_mask 0x7
-#define PseudoDbg_fn_bits 6
-#define PseudoDbg_fn_mask 0x3
-#define PseudoDbg_code_bits 8
-#define PseudoDbg_code_mask 0xff
-
-#define init_PseudoDbg \
-{ \
- PseudoDbg_opcode, \
- PseudoDbg_reg_bits, PseudoDbg_reg_mask, \
- PseudoDbg_grp_bits, PseudoDbg_grp_mask, \
- PseudoDbg_fn_bits, PseudoDbg_fn_mask, \
- PseudoDbg_code_bits, PseudoDbg_code_mask \
-};
-
-/* PseudoDbg_assert
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 1 | 0 | - | - | - | dbgop |.grp.......|.regtest...|
-|.expected......................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_expected;
- int mask_expected;
- int bits_regtest;
- int mask_regtest;
- int bits_grp;
- int mask_grp;
- int bits_dbgop;
- int mask_dbgop;
- int bits_dontcare;
- int mask_dontcare;
- int bits_code;
- int mask_code;
-} PseudoDbg_Assert;
-
-#define PseudoDbg_Assert_opcode 0xf0000000
-#define PseudoDbg_Assert_expected_bits 0
-#define PseudoDbg_Assert_expected_mask 0xffff
-#define PseudoDbg_Assert_regtest_bits 16
-#define PseudoDbg_Assert_regtest_mask 0x7
-#define PseudoDbg_Assert_grp_bits 19
-#define PseudoDbg_Assert_grp_mask 0x7
-#define PseudoDbg_Assert_dbgop_bits 22
-#define PseudoDbg_Assert_dbgop_mask 0x3
-#define PseudoDbg_Assert_dontcare_bits 24
-#define PseudoDbg_Assert_dontcare_mask 0x7
-#define PseudoDbg_Assert_code_bits 27
-#define PseudoDbg_Assert_code_mask 0x1f
-
-#define init_PseudoDbg_Assert \
-{ \
- PseudoDbg_Assert_opcode, \
- PseudoDbg_Assert_expected_bits, PseudoDbg_Assert_expected_mask, \
- PseudoDbg_Assert_regtest_bits, PseudoDbg_Assert_regtest_mask, \
- PseudoDbg_Assert_grp_bits, PseudoDbg_Assert_grp_mask, \
- PseudoDbg_Assert_dbgop_bits, PseudoDbg_Assert_dbgop_mask, \
- PseudoDbg_Assert_dontcare_bits, PseudoDbg_Assert_dontcare_mask, \
- PseudoDbg_Assert_code_bits, PseudoDbg_Assert_code_mask \
-};
-
-/* pseudoChr
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |.ch............................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_ch;
- int mask_ch;
- int bits_code;
- int mask_code;
-} PseudoChr;
-
-#define PseudoChr_opcode 0xf900
-#define PseudoChr_ch_bits 0
-#define PseudoChr_ch_mask 0xff
-#define PseudoChr_code_bits 8
-#define PseudoChr_code_mask 0xff
-
-#define init_PseudoChr \
-{ \
- PseudoChr_opcode, \
- PseudoChr_ch_bits, PseudoChr_ch_mask, \
- PseudoChr_code_bits, PseudoChr_code_mask \
-};
-
-/* CaCTRL
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_op;
- int mask_op;
- int bits_a;
- int mask_a;
- int bits_code;
- int mask_code;
-} CaCTRL;
-
-#define CaCTRL_opcode 0x0240
-#define CaCTRL_reg_bits 0
-#define CaCTRL_reg_mask 0x7
-#define CaCTRL_op_bits 3
-#define CaCTRL_op_mask 0x3
-#define CaCTRL_a_bits 5
-#define CaCTRL_a_mask 0x1
-#define CaCTRL_code_bits 6
-#define CaCTRL_code_mask 0x3fff
-
-#define init_CaCTRL \
-{ \
- CaCTRL_opcode, \
- CaCTRL_reg_bits, CaCTRL_reg_mask, \
- CaCTRL_op_bits, CaCTRL_op_mask, \
- CaCTRL_a_bits, CaCTRL_a_mask, \
- CaCTRL_code_bits, CaCTRL_code_mask \
-};
-
-/* PushPopMultiple
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_pr;
- int mask_pr;
- int bits_dr;
- int mask_dr;
- int bits_W;
- int mask_W;
- int bits_p;
- int mask_p;
- int bits_d;
- int mask_d;
- int bits_code;
- int mask_code;
-} PushPopMultiple;
-
-#define PushPopMultiple_opcode 0x0400
-#define PushPopMultiple_pr_bits 0
-#define PushPopMultiple_pr_mask 0x7
-#define PushPopMultiple_dr_bits 3
-#define PushPopMultiple_dr_mask 0x7
-#define PushPopMultiple_W_bits 6
-#define PushPopMultiple_W_mask 0x1
-#define PushPopMultiple_p_bits 7
-#define PushPopMultiple_p_mask 0x1
-#define PushPopMultiple_d_bits 8
-#define PushPopMultiple_d_mask 0x1
-#define PushPopMultiple_code_bits 8
-#define PushPopMultiple_code_mask 0x1
-
-#define init_PushPopMultiple \
-{ \
- PushPopMultiple_opcode, \
- PushPopMultiple_pr_bits, PushPopMultiple_pr_mask, \
- PushPopMultiple_dr_bits, PushPopMultiple_dr_mask, \
- PushPopMultiple_W_bits, PushPopMultiple_W_mask, \
- PushPopMultiple_p_bits, PushPopMultiple_p_mask, \
- PushPopMultiple_d_bits, PushPopMultiple_d_mask, \
- PushPopMultiple_code_bits, PushPopMultiple_code_mask \
-};
-
-/* PushPopReg
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_grp;
- int mask_grp;
- int bits_W;
- int mask_W;
- int bits_code;
- int mask_code;
-} PushPopReg;
-
-#define PushPopReg_opcode 0x0100
-#define PushPopReg_reg_bits 0
-#define PushPopReg_reg_mask 0x7
-#define PushPopReg_grp_bits 3
-#define PushPopReg_grp_mask 0x7
-#define PushPopReg_W_bits 6
-#define PushPopReg_W_mask 0x1
-#define PushPopReg_code_bits 7
-#define PushPopReg_code_mask 0x1ff
-
-#define init_PushPopReg \
-{ \
- PushPopReg_opcode, \
- PushPopReg_reg_bits, PushPopReg_reg_mask, \
- PushPopReg_grp_bits, PushPopReg_grp_mask, \
- PushPopReg_W_bits, PushPopReg_W_mask, \
- PushPopReg_code_bits, PushPopReg_code_mask, \
-};
-
-/* linkage
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.|
-|.framesize.....................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_framesize;
- int mask_framesize;
- int bits_R;
- int mask_R;
- int bits_code;
- int mask_code;
-} Linkage;
-
-#define Linkage_opcode 0xe8000000
-#define Linkage_framesize_bits 0
-#define Linkage_framesize_mask 0xffff
-#define Linkage_R_bits 16
-#define Linkage_R_mask 0x1
-#define Linkage_code_bits 17
-#define Linkage_code_mask 0x7fff
-
-#define init_Linkage \
-{ \
- Linkage_opcode, \
- Linkage_framesize_bits, Linkage_framesize_mask, \
- Linkage_R_bits, Linkage_R_mask, \
- Linkage_code_bits, Linkage_code_mask \
-};
-
-/* LoopSetup
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |.rop...|.c.|.soffset.......|
-|.reg...........| - | - |.eoffset...............................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_eoffset;
- int mask_eoffset;
- int bits_dontcare;
- int mask_dontcare;
- int bits_reg;
- int mask_reg;
- int bits_soffset;
- int mask_soffset;
- int bits_c;
- int mask_c;
- int bits_rop;
- int mask_rop;
- int bits_code;
- int mask_code;
-} LoopSetup;
-
-#define LoopSetup_opcode 0xe0800000
-#define LoopSetup_eoffset_bits 0
-#define LoopSetup_eoffset_mask 0x3ff
-#define LoopSetup_dontcare_bits 10
-#define LoopSetup_dontcare_mask 0x3
-#define LoopSetup_reg_bits 12
-#define LoopSetup_reg_mask 0xf
-#define LoopSetup_soffset_bits 16
-#define LoopSetup_soffset_mask 0xf
-#define LoopSetup_c_bits 20
-#define LoopSetup_c_mask 0x1
-#define LoopSetup_rop_bits 21
-#define LoopSetup_rop_mask 0x3
-#define LoopSetup_code_bits 23
-#define LoopSetup_code_mask 0x1ff
-
-#define init_LoopSetup \
-{ \
- LoopSetup_opcode, \
- LoopSetup_eoffset_bits, LoopSetup_eoffset_mask, \
- LoopSetup_dontcare_bits, LoopSetup_dontcare_mask, \
- LoopSetup_reg_bits, LoopSetup_reg_mask, \
- LoopSetup_soffset_bits, LoopSetup_soffset_mask, \
- LoopSetup_c_bits, LoopSetup_c_mask, \
- LoopSetup_rop_bits, LoopSetup_rop_mask, \
- LoopSetup_code_bits, LoopSetup_code_mask \
-};
-
-/* LDIMMhalf
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |.Z.|.H.|.S.|.grp...|.reg.......|
-|.hword.........................................................|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned long opcode;
- int bits_hword;
- int mask_hword;
- int bits_reg;
- int mask_reg;
- int bits_grp;
- int mask_grp;
- int bits_S;
- int mask_S;
- int bits_H;
- int mask_H;
- int bits_Z;
- int mask_Z;
- int bits_code;
- int mask_code;
-} LDIMMhalf;
-
-#define LDIMMhalf_opcode 0xe1000000
-#define LDIMMhalf_hword_bits 0
-#define LDIMMhalf_hword_mask 0xffff
-#define LDIMMhalf_reg_bits 16
-#define LDIMMhalf_reg_mask 0x7
-#define LDIMMhalf_grp_bits 19
-#define LDIMMhalf_grp_mask 0x3
-#define LDIMMhalf_S_bits 21
-#define LDIMMhalf_S_mask 0x1
-#define LDIMMhalf_H_bits 22
-#define LDIMMhalf_H_mask 0x1
-#define LDIMMhalf_Z_bits 23
-#define LDIMMhalf_Z_mask 0x1
-#define LDIMMhalf_code_bits 24
-#define LDIMMhalf_code_mask 0xff
-
-#define init_LDIMMhalf \
-{ \
- LDIMMhalf_opcode, \
- LDIMMhalf_hword_bits, LDIMMhalf_hword_mask, \
- LDIMMhalf_reg_bits, LDIMMhalf_reg_mask, \
- LDIMMhalf_grp_bits, LDIMMhalf_grp_mask, \
- LDIMMhalf_S_bits, LDIMMhalf_S_mask, \
- LDIMMhalf_H_bits, LDIMMhalf_H_mask, \
- LDIMMhalf_Z_bits, LDIMMhalf_Z_mask, \
- LDIMMhalf_code_bits, LDIMMhalf_code_mask \
-};
-
-
-/* CC2dreg
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |.op....|.reg.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_reg;
- int mask_reg;
- int bits_op;
- int mask_op;
- int bits_code;
- int mask_code;
-} CC2dreg;
-
-#define CC2dreg_opcode 0x0200
-#define CC2dreg_reg_bits 0
-#define CC2dreg_reg_mask 0x7
-#define CC2dreg_op_bits 3
-#define CC2dreg_op_mask 0x3
-#define CC2dreg_code_bits 5
-#define CC2dreg_code_mask 0x7fff
-
-#define init_CC2dreg \
-{ \
- CC2dreg_opcode, \
- CC2dreg_reg_bits, CC2dreg_reg_mask, \
- CC2dreg_op_bits, CC2dreg_op_mask, \
- CC2dreg_code_bits, CC2dreg_code_mask \
-};
-
-
-/* PTR2op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 0 | 0 | 1 | 0 |.opc.......|.src.......|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_dst;
- int mask_dst;
- int bits_src;
- int mask_src;
- int bits_opc;
- int mask_opc;
- int bits_code;
- int mask_code;
-} PTR2op;
-
-#define PTR2op_opcode 0x4400
-#define PTR2op_dst_bits 0
-#define PTR2op_dst_mask 0x7
-#define PTR2op_src_bits 3
-#define PTR2op_src_mask 0x7
-#define PTR2op_opc_bits 6
-#define PTR2op_opc_mask 0x7
-#define PTR2op_code_bits 9
-#define PTR2op_code_mask 0x7f
-
-#define init_PTR2op \
-{ \
- PTR2op_opcode, \
- PTR2op_dst_bits, PTR2op_dst_mask, \
- PTR2op_src_bits, PTR2op_src_mask, \
- PTR2op_opc_bits, PTR2op_opc_mask, \
- PTR2op_code_bits, PTR2op_code_mask \
-};
-
-
-/* COMP3op
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 0 | 1 |.opc.......|.dst.......|.src1......|.src0......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_src0;
- int mask_src0;
- int bits_src1;
- int mask_src1;
- int bits_dst;
- int mask_dst;
- int bits_opc;
- int mask_opc;
- int bits_code;
- int mask_code;
-} COMP3op;
-
-#define COMP3op_opcode 0x5000
-#define COMP3op_src0_bits 0
-#define COMP3op_src0_mask 0x7
-#define COMP3op_src1_bits 3
-#define COMP3op_src1_mask 0x7
-#define COMP3op_dst_bits 6
-#define COMP3op_dst_mask 0x7
-#define COMP3op_opc_bits 9
-#define COMP3op_opc_mask 0x7
-#define COMP3op_code_bits 12
-#define COMP3op_code_mask 0xf
-
-#define init_COMP3op \
-{ \
- COMP3op_opcode, \
- COMP3op_src0_bits, COMP3op_src0_mask, \
- COMP3op_src1_bits, COMP3op_src1_mask, \
- COMP3op_dst_bits, COMP3op_dst_mask, \
- COMP3op_opc_bits, COMP3op_opc_mask, \
- COMP3op_code_bits, COMP3op_code_mask \
-};
-
-/* ccMV
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 1 | 1 |.T.|.d.|.s.|.dst.......|.src.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_src;
- int mask_src;
- int bits_dst;
- int mask_dst;
- int bits_s;
- int mask_s;
- int bits_d;
- int mask_d;
- int bits_T;
- int mask_T;
- int bits_code;
- int mask_code;
-} CCmv;
-
-#define CCmv_opcode 0x0600
-#define CCmv_src_bits 0
-#define CCmv_src_mask 0x7
-#define CCmv_dst_bits 3
-#define CCmv_dst_mask 0x7
-#define CCmv_s_bits 6
-#define CCmv_s_mask 0x1
-#define CCmv_d_bits 7
-#define CCmv_d_mask 0x1
-#define CCmv_T_bits 8
-#define CCmv_T_mask 0x1
-#define CCmv_code_bits 9
-#define CCmv_code_mask 0x7f
-
-#define init_CCmv \
-{ \
- CCmv_opcode, \
- CCmv_src_bits, CCmv_src_mask, \
- CCmv_dst_bits, CCmv_dst_mask, \
- CCmv_s_bits, CCmv_s_mask, \
- CCmv_d_bits, CCmv_d_mask, \
- CCmv_T_bits, CCmv_T_mask, \
- CCmv_code_bits, CCmv_code_mask \
-};
-
-
-/* CCflag
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 1 |.I.|.opc.......|.G.|.y.........|.x.........|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_x;
- int mask_x;
- int bits_y;
- int mask_y;
- int bits_G;
- int mask_G;
- int bits_opc;
- int mask_opc;
- int bits_I;
- int mask_I;
- int bits_code;
- int mask_code;
-} CCflag;
-
-#define CCflag_opcode 0x0800
-#define CCflag_x_bits 0
-#define CCflag_x_mask 0x7
-#define CCflag_y_bits 3
-#define CCflag_y_mask 0x7
-#define CCflag_G_bits 6
-#define CCflag_G_mask 0x1
-#define CCflag_opc_bits 7
-#define CCflag_opc_mask 0x7
-#define CCflag_I_bits 10
-#define CCflag_I_mask 0x1
-#define CCflag_code_bits 11
-#define CCflag_code_mask 0x1f
-
-#define init_CCflag \
-{ \
- CCflag_opcode, \
- CCflag_x_bits, CCflag_x_mask, \
- CCflag_y_bits, CCflag_y_mask, \
- CCflag_G_bits, CCflag_G_mask, \
- CCflag_opc_bits, CCflag_opc_mask, \
- CCflag_I_bits, CCflag_I_mask, \
- CCflag_code_bits, CCflag_code_mask, \
-};
-
-
-/* CC2stat
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |.D.|.op....|.cbit..............|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_cbit;
- int mask_cbit;
- int bits_op;
- int mask_op;
- int bits_D;
- int mask_D;
- int bits_code;
- int mask_code;
-} CC2stat;
-
-#define CC2stat_opcode 0x0300
-#define CC2stat_cbit_bits 0
-#define CC2stat_cbit_mask 0x1f
-#define CC2stat_op_bits 5
-#define CC2stat_op_mask 0x3
-#define CC2stat_D_bits 7
-#define CC2stat_D_mask 0x1
-#define CC2stat_code_bits 8
-#define CC2stat_code_mask 0xff
-
-#define init_CC2stat \
-{ \
- CC2stat_opcode, \
- CC2stat_cbit_bits, CC2stat_cbit_mask, \
- CC2stat_op_bits, CC2stat_op_mask, \
- CC2stat_D_bits, CC2stat_D_mask, \
- CC2stat_code_bits, CC2stat_code_mask \
-};
-
-
-/* REGMV
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 0 | 1 | 1 |.gd........|.gs........|.dst.......|.src.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_src;
- int mask_src;
- int bits_dst;
- int mask_dst;
- int bits_gs;
- int mask_gs;
- int bits_gd;
- int mask_gd;
- int bits_code;
- int mask_code;
-} RegMv;
-
-#define RegMv_opcode 0x3000
-#define RegMv_src_bits 0
-#define RegMv_src_mask 0x7
-#define RegMv_dst_bits 3
-#define RegMv_dst_mask 0x7
-#define RegMv_gs_bits 6
-#define RegMv_gs_mask 0x7
-#define RegMv_gd_bits 9
-#define RegMv_gd_mask 0x7
-#define RegMv_code_bits 12
-#define RegMv_code_mask 0xf
-
-#define init_RegMv \
-{ \
- RegMv_opcode, \
- RegMv_src_bits, RegMv_src_mask, \
- RegMv_dst_bits, RegMv_dst_mask, \
- RegMv_gs_bits, RegMv_gs_mask, \
- RegMv_gd_bits, RegMv_gd_mask, \
- RegMv_code_bits, RegMv_code_mask \
-};
-
-
-/* COMPI2opD
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 1 | 0 | 0 |.op|.isrc......................|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_dst;
- int mask_dst;
- int bits_src;
- int mask_src;
- int bits_op;
- int mask_op;
- int bits_code;
- int mask_code;
-} COMPI2opD;
-
-#define COMPI2opD_opcode 0x6000
-#define COMPI2opD_dst_bits 0
-#define COMPI2opD_dst_mask 0x7
-#define COMPI2opD_src_bits 3
-#define COMPI2opD_src_mask 0x7f
-#define COMPI2opD_op_bits 10
-#define COMPI2opD_op_mask 0x1
-#define COMPI2opD_code_bits 11
-#define COMPI2opD_code_mask 0x1f
-
-#define init_COMPI2opD \
-{ \
- COMPI2opD_opcode, \
- COMPI2opD_dst_bits, COMPI2opD_dst_mask, \
- COMPI2opD_src_bits, COMPI2opD_src_mask, \
- COMPI2opD_op_bits, COMPI2opD_op_mask, \
- COMPI2opD_code_bits, COMPI2opD_code_mask \
-};
-
-/* COMPI2opP
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 0 | 1 | 1 | 0 | 1 |.op|.src.......................|.dst.......|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef COMPI2opD COMPI2opP;
-
-#define COMPI2opP_opcode 0x6800
-#define COMPI2opP_dst_bits 0
-#define COMPI2opP_dst_mask 0x7
-#define COMPI2opP_src_bits 3
-#define COMPI2opP_src_mask 0x7f
-#define COMPI2opP_op_bits 10
-#define COMPI2opP_op_mask 0x1
-#define COMPI2opP_code_bits 11
-#define COMPI2opP_code_mask 0x1f
-
-#define init_COMPI2opP \
-{ \
- COMPI2opP_opcode, \
- COMPI2opP_dst_bits, COMPI2opP_dst_mask, \
- COMPI2opP_src_bits, COMPI2opP_src_mask, \
- COMPI2opP_op_bits, COMPI2opP_op_mask, \
- COMPI2opP_code_bits, COMPI2opP_code_mask \
-};
-
-
-/* dagMODim
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |.br| 1 | 1 |.op|.m.....|.i.....|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_i;
- int mask_i;
- int bits_m;
- int mask_m;
- int bits_op;
- int mask_op;
- int bits_code2;
- int mask_code2;
- int bits_br;
- int mask_br;
- int bits_code;
- int mask_code;
-} DagMODim;
-
-#define DagMODim_opcode 0x9e60
-#define DagMODim_i_bits 0
-#define DagMODim_i_mask 0x3
-#define DagMODim_m_bits 2
-#define DagMODim_m_mask 0x3
-#define DagMODim_op_bits 4
-#define DagMODim_op_mask 0x1
-#define DagMODim_code2_bits 5
-#define DagMODim_code2_mask 0x3
-#define DagMODim_br_bits 7
-#define DagMODim_br_mask 0x1
-#define DagMODim_code_bits 8
-#define DagMODim_code_mask 0xff
-
-#define init_DagMODim \
-{ \
- DagMODim_opcode, \
- DagMODim_i_bits, DagMODim_i_mask, \
- DagMODim_m_bits, DagMODim_m_mask, \
- DagMODim_op_bits, DagMODim_op_mask, \
- DagMODim_code2_bits, DagMODim_code2_mask, \
- DagMODim_br_bits, DagMODim_br_mask, \
- DagMODim_code_bits, DagMODim_code_mask \
-};
-
-/* dagMODik
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |.op....|.i.....|
-+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+
-*/
-
-typedef struct
-{
- unsigned short opcode;
- int bits_i;
- int mask_i;
- int bits_op;
- int mask_op;
- int bits_code;
- int mask_code;
-} DagMODik;
-
-#define DagMODik_opcode 0x9f60
-#define DagMODik_i_bits 0
-#define DagMODik_i_mask 0x3
-#define DagMODik_op_bits 2
-#define DagMODik_op_mask 0x3
-#define DagMODik_code_bits 3
-#define DagMODik_code_mask 0xfff
-
-#define init_DagMODik \
-{ \
- DagMODik_opcode, \
- DagMODik_i_bits, DagMODik_i_mask, \
- DagMODik_op_bits, DagMODik_op_mask, \
- DagMODik_code_bits, DagMODik_code_mask \
-};
-
-#endif
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
deleted file mode 100644
index b7e82d4dd..000000000
--- a/include/opcode/cgen.h
+++ /dev/null
@@ -1,1480 +0,0 @@
-/* Header file for targets using CGEN: Cpu tools GENerator.
-
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2009, 2010
- Free Software Foundation, Inc.
-
- This file is part of GDB, the GNU debugger, and the GNU Binutils.
-
- 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 3 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.,
- 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef OPCODE_CGEN_H
-#define OPCODE_CGEN_H
-
-#include "symcat.h"
-#include "cgen/bitset.h"
-
-/* ??? IWBN to replace bfd in the name. */
-#include "bfd_stdint.h"
-
-/* ??? This file requires bfd.h but only to get bfd_vma.
- Seems like an awful lot to require just to get such a fundamental type.
- Perhaps the definition of bfd_vma can be moved outside of bfd.h.
- Or perhaps one could duplicate its definition in another file.
- Until such time, this file conditionally compiles definitions that require
- bfd_vma using __BFD_H_SEEN__. */
-
-/* Enums must be defined before they can be used.
- Allow them to be used in struct definitions, even though the enum must
- be defined elsewhere.
- If CGEN_ARCH isn't defined, this file is being included by something other
- than <arch>-desc.h. */
-
-/* Prepend the arch name, defined in <arch>-desc.h, and _cgen_ to symbol S.
- The lack of spaces in the arg list is important for non-stdc systems.
- This file is included by <arch>-desc.h.
- It can be included independently of <arch>-desc.h, in which case the arch
- dependent portions will be declared as "unknown_cgen_foo". */
-
-#ifndef CGEN_SYM
-#define CGEN_SYM(s) CONCAT3 (unknown,_cgen_,s)
-#endif
-
-/* This file contains the static (unchanging) pieces and as much other stuff
- as we can reasonably put here. It's generally cleaner to put stuff here
- rather than having it machine generated if possible. */
-
-/* The assembler syntax is made up of expressions (duh...).
- At the lowest level the values are mnemonics, register names, numbers, etc.
- Above that are subexpressions, if any (an example might be the
- "effective address" in m68k cpus). Subexpressions are wip.
- At the second highest level are the insns themselves. Above that are
- pseudo-insns, synthetic insns, and macros, if any. */
-
-/* Lots of cpu's have a fixed insn size, or one which rarely changes,
- and it's generally easier to handle these by treating the insn as an
- integer type, rather than an array of characters. So we allow targets
- to control this. When an integer type the value is in host byte order,
- when an array of characters the value is in target byte order. */
-
-typedef unsigned int CGEN_INSN_INT;
-typedef int64_t CGEN_INSN_LGSINT; /* large/long SINT */
-typedef uint64_t CGEN_INSN_LGUINT; /* large/long UINT */
-
-#if CGEN_INT_INSN_P
-typedef CGEN_INSN_INT CGEN_INSN_BYTES;
-typedef CGEN_INSN_INT *CGEN_INSN_BYTES_PTR;
-#else
-typedef unsigned char *CGEN_INSN_BYTES;
-typedef unsigned char *CGEN_INSN_BYTES_PTR;
-#endif
-
-#ifdef __GNUC__
-#define CGEN_INLINE __inline__
-#else
-#define CGEN_INLINE
-#endif
-
-enum cgen_endian
-{
- CGEN_ENDIAN_UNKNOWN,
- CGEN_ENDIAN_LITTLE,
- CGEN_ENDIAN_BIG
-};
-
-/* Forward decl. */
-
-typedef struct cgen_insn CGEN_INSN;
-
-/* Opaque pointer version for use by external world. */
-
-typedef struct cgen_cpu_desc *CGEN_CPU_DESC;
-
-/* Attributes.
- Attributes are used to describe various random things associated with
- an object (ifield, hardware, operand, insn, whatever) and are specified
- as name/value pairs.
- Integer attributes computed at compile time are currently all that's
- supported, though adding string attributes and run-time computation is
- straightforward. Integer attribute values are always host int's
- (signed or unsigned). For portability, this means 32 bits.
- Integer attributes are further categorized as boolean, bitset, integer,
- and enum types. Boolean attributes appear frequently enough that they're
- recorded in one host int. This limits the maximum number of boolean
- attributes to 32, though that's a *lot* of attributes. */
-
-/* Type of attribute values. */
-
-typedef CGEN_BITSET CGEN_ATTR_VALUE_BITSET_TYPE;
-typedef int CGEN_ATTR_VALUE_ENUM_TYPE;
-typedef union
-{
- CGEN_ATTR_VALUE_BITSET_TYPE bitset;
- CGEN_ATTR_VALUE_ENUM_TYPE nonbitset;
-} CGEN_ATTR_VALUE_TYPE;
-
-/* Struct to record attribute information. */
-
-typedef struct
-{
- /* Boolean attributes. */
- unsigned int bool_;
- /* Non-boolean integer attributes. */
- CGEN_ATTR_VALUE_TYPE nonbool[1];
-} CGEN_ATTR;
-
-/* Define a structure member for attributes with N non-boolean entries.
- There is no maximum number of non-boolean attributes.
- There is a maximum of 32 boolean attributes (since they are all recorded
- in one host int). */
-
-#define CGEN_ATTR_TYPE(n) \
-struct { unsigned int bool_; \
- CGEN_ATTR_VALUE_TYPE nonbool[(n) ? (n) : 1]; }
-
-/* Return the boolean attributes. */
-
-#define CGEN_ATTR_BOOLS(a) ((a)->bool_)
-
-/* Non-boolean attribute numbers are offset by this much. */
-
-#define CGEN_ATTR_NBOOL_OFFSET 32
-
-/* Given a boolean attribute number, return its mask. */
-
-#define CGEN_ATTR_MASK(attr) (1 << (attr))
-
-/* Return the value of boolean attribute ATTR in ATTRS. */
-
-#define CGEN_BOOL_ATTR(attrs, attr) ((CGEN_ATTR_MASK (attr) & (attrs)) != 0)
-
-/* Return value of attribute ATTR in ATTR_TABLE for OBJ.
- OBJ is a pointer to the entity that has the attributes
- (??? not used at present but is reserved for future purposes - eventually
- the goal is to allow recording attributes in source form and computing
- them lazily at runtime, not sure of the details yet). */
-
-#define CGEN_ATTR_VALUE(obj, attr_table, attr) \
-((unsigned int) (attr) < CGEN_ATTR_NBOOL_OFFSET \
- ? ((CGEN_ATTR_BOOLS (attr_table) & CGEN_ATTR_MASK (attr)) != 0) \
- : ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].nonbitset))
-#define CGEN_BITSET_ATTR_VALUE(obj, attr_table, attr) \
- ((attr_table)->nonbool[(attr) - CGEN_ATTR_NBOOL_OFFSET].bitset)
-
-/* Attribute name/value tables.
- These are used to assist parsing of descriptions at run-time. */
-
-typedef struct
-{
- const char * name;
- unsigned value;
-} CGEN_ATTR_ENTRY;
-
-/* For each domain (ifld,hw,operand,insn), list of attributes. */
-
-typedef struct
-{
- const char * name;
- const CGEN_ATTR_ENTRY * dfault;
- const CGEN_ATTR_ENTRY * vals;
-} CGEN_ATTR_TABLE;
-
-/* Instruction set variants. */
-
-typedef struct {
- const char *name;
-
- /* Default instruction size (in bits).
- This is used by the assembler when it encounters an unknown insn. */
- unsigned int default_insn_bitsize;
-
- /* Base instruction size (in bits).
- For non-LIW cpus this is generally the length of the smallest insn.
- For LIW cpus its wip (work-in-progress). For the m32r its 32. */
- unsigned int base_insn_bitsize;
-
- /* Minimum/maximum instruction size (in bits). */
- unsigned int min_insn_bitsize;
- unsigned int max_insn_bitsize;
-} CGEN_ISA;
-
-/* Machine variants. */
-
-typedef struct {
- const char *name;
- /* The argument to bfd_arch_info->scan. */
- const char *bfd_name;
- /* one of enum mach_attr */
- int num;
- /* parameter from mach->cpu */
- unsigned int insn_chunk_bitsize;
-} CGEN_MACH;
-
-/* Parse result (also extraction result).
-
- The result of parsing an insn is stored here.
- To generate the actual insn, this is passed to the insert handler.
- When printing an insn, the result of extraction is stored here.
- To print the insn, this is passed to the print handler.
-
- It is machine generated so we don't define it here,
- but we do need a forward decl for the handler fns.
-
- There is one member for each possible field in the insn.
- The type depends on the field.
- Also recorded here is the computed length of the insn for architectures
- where it varies.
-*/
-
-typedef struct cgen_fields CGEN_FIELDS;
-
-/* Total length of the insn, as recorded in the `fields' struct. */
-/* ??? The field insert handler has lots of opportunities for optimization
- if it ever gets inlined. On architectures where insns all have the same
- size, may wish to detect that and make this macro a constant - to allow
- further optimizations. */
-
-#define CGEN_FIELDS_BITSIZE(fields) ((fields)->length)
-
-/* Extraction support for variable length insn sets. */
-
-/* When disassembling we don't know the number of bytes to read at the start.
- So the first CGEN_BASE_INSN_SIZE bytes are read at the start and the rest
- are read when needed. This struct controls this. It is basically the
- disassemble_info stuff, except that we provide a cache for values already
- read (since bytes can typically be read several times to fetch multiple
- operands that may be in them), and that extraction of fields is needed
- in contexts other than disassembly. */
-
-typedef struct {
- /* A pointer to the disassemble_info struct.
- 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). */
- void *dis_info;
- /* Points to a working buffer of sufficient size. */
- unsigned char *insn_bytes;
- /* Mask of bytes that are valid in INSN_BYTES. */
- unsigned int valid;
-} CGEN_EXTRACT_INFO;
-
-/* Associated with each insn or expression is a set of "handlers" for
- performing operations like parsing, printing, etc. These require a bfd_vma
- value to be passed around but we don't want all applications to need bfd.h.
- So this stuff is only provided if bfd.h has been included. */
-
-/* Parse handler.
- CD is a cpu table descriptor.
- INSN is a pointer to a struct describing the insn being parsed.
- STRP is a pointer to a pointer to the text being parsed.
- FIELDS is a pointer to a cgen_fields struct in which the results are placed.
- If the expression is successfully parsed, *STRP is updated.
- If not it is left alone.
- The result is NULL if success or an error message. */
-typedef const char * (cgen_parse_fn)
- (CGEN_CPU_DESC, const CGEN_INSN *insn_,
- const char **strp_, CGEN_FIELDS *fields_);
-
-/* Insert handler.
- CD is a cpu table descriptor.
- INSN is a pointer to a struct describing the insn being parsed.
- FIELDS is a pointer to a cgen_fields struct from which the values
- are fetched.
- INSNP is a pointer to a buffer in which to place the insn.
- PC is the pc value of the insn.
- The result is an error message or NULL if success. */
-
-#ifdef __BFD_H_SEEN__
-typedef const char * (cgen_insert_fn)
- (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
-
-/* Extract handler.
- CD is a cpu table descriptor.
- INSN is a pointer to a struct describing the insn being parsed.
- The second argument is a pointer to a struct controlling extraction
- (only used for variable length insns).
- EX_INFO is a pointer to a struct for controlling reading of further
- bytes for the insn.
- BASE_INSN is the first CGEN_BASE_INSN_SIZE bytes (host order).
- FIELDS is a pointer to a cgen_fields struct in which the results are placed.
- PC is the pc value of the insn.
- The result is the length of the insn in bits or zero if not recognized. */
-
-#ifdef __BFD_H_SEEN__
-typedef int (cgen_extract_fn)
- (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
-
-/* Print handler.
- CD is a cpu table descriptor.
- INFO is a pointer to the disassembly info.
- Eg: disassemble_info. It's defined as `PTR' so this file can be included
- without dis-asm.h.
- INSN is a pointer to a struct describing the insn being printed.
- FIELDS is a pointer to a cgen_fields struct.
- PC is the pc value of the insn.
- LEN is the length of the insn, in bits. */
-
-#ifdef __BFD_H_SEEN__
-typedef void (cgen_print_fn)
- (CGEN_CPU_DESC, void * info_, const CGEN_INSN *insn_,
- CGEN_FIELDS *fields_, bfd_vma pc_, int len_);
-#else
-typedef void (cgen_print_fn) ();
-#endif
-
-/* Parse/insert/extract/print handlers.
-
- Indices into the handler tables.
- We could use pointers here instead, but 90% of them are generally identical
- and that's a lot of redundant data. Making these unsigned char indices
- into tables of pointers saves a bit of space.
- Using indices also keeps assembler code out of the disassembler and
- vice versa. */
-
-struct cgen_opcode_handler
-{
- unsigned char parse, insert, extract, print;
-};
-
-/* Assembler interface.
-
- The interface to the assembler is intended to be clean in the sense that
- libopcodes.a is a standalone entity and could be used with any assembler.
- Not that one would necessarily want to do that but rather that it helps
- keep a clean interface. The interface will obviously be slanted towards
- GAS, but at least it's a start.
- ??? Note that one possible user of the assembler besides GAS is GDB.
-
- Parsing is controlled by the assembler which calls
- CGEN_SYM (assemble_insn). If it can parse and build the entire insn
- it doesn't call back to the assembler. If it needs/wants to call back
- to the assembler, cgen_parse_operand_fn is called which can either
-
- - return a number to be inserted in the insn
- - return a "register" value to be inserted
- (the register might not be a register per pe)
- - queue the argument and return a marker saying the expression has been
- queued (eg: a fix-up)
- - return an error message indicating the expression wasn't recognizable
-
- The result is an error message or NULL for success.
- The parsed value is stored in the bfd_vma *. */
-
-/* Values for indicating what the caller wants. */
-
-enum cgen_parse_operand_type
-{
- CGEN_PARSE_OPERAND_INIT,
- CGEN_PARSE_OPERAND_INTEGER,
- CGEN_PARSE_OPERAND_ADDRESS,
- CGEN_PARSE_OPERAND_SYMBOLIC
-};
-
-/* Values for indicating what was parsed. */
-
-enum cgen_parse_operand_result
-{
- CGEN_PARSE_OPERAND_RESULT_NUMBER,
- CGEN_PARSE_OPERAND_RESULT_REGISTER,
- CGEN_PARSE_OPERAND_RESULT_QUEUED,
- CGEN_PARSE_OPERAND_RESULT_ERROR
-};
-
-#ifdef __BFD_H_SEEN__ /* Don't require bfd.h unnecessarily. */
-typedef const char * (cgen_parse_operand_fn)
- (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
-
-/* Set the cgen_parse_operand_fn callback. */
-
-extern void cgen_set_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 (CGEN_CPU_DESC);
-
-/* Operand values (keywords, integers, symbols, etc.) */
-
-/* Types of assembler elements. */
-
-enum cgen_asm_type
-{
- CGEN_ASM_NONE, CGEN_ASM_KEYWORD, CGEN_ASM_MAX
-};
-
-#ifndef CGEN_ARCH
-enum cgen_hw_type { CGEN_HW_MAX };
-#endif
-
-/* List of hardware elements. */
-
-typedef struct
-{
- char *name;
- enum cgen_hw_type type;
- /* 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;
- void *asm_data;
-#ifndef CGEN_HW_NBOOL_ATTRS
-#define CGEN_HW_NBOOL_ATTRS 1
-#endif
- CGEN_ATTR_TYPE (CGEN_HW_NBOOL_ATTRS) attrs;
-#define CGEN_HW_ATTRS(hw) (&(hw)->attrs)
-} CGEN_HW_ENTRY;
-
-/* Return value of attribute ATTR in HW. */
-
-#define CGEN_HW_ATTR_VALUE(hw, attr) \
-CGEN_ATTR_VALUE ((hw), CGEN_HW_ATTRS (hw), (attr))
-
-/* Table of hardware elements for selected mach, computed at runtime.
- enum cgen_hw_type is an index into this table (specifically `entries'). */
-
-typedef struct {
- /* Pointer to null terminated table of all compiled in entries. */
- const CGEN_HW_ENTRY *init_entries;
- unsigned int entry_size; /* since the attribute member is variable sized */
- /* Array of all entries, initial and run-time added. */
- const CGEN_HW_ENTRY **entries;
- /* Number of elements in `entries'. */
- unsigned int num_entries;
- /* For now, xrealloc is called each time a new entry is added at runtime.
- ??? May wish to keep track of some slop to reduce the number of calls to
- xrealloc, except that there's unlikely to be many and not expected to be
- in speed critical code. */
-} CGEN_HW_TABLE;
-
-extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_name
- (CGEN_CPU_DESC, const char *);
-extern const CGEN_HW_ENTRY * cgen_hw_lookup_by_num
- (CGEN_CPU_DESC, unsigned int);
-
-/* This struct is used to describe things like register names, etc. */
-
-typedef struct cgen_keyword_entry
-{
- /* Name (as in register name). */
- char * name;
-
- /* Value (as in register number).
- The value cannot be -1 as that is used to indicate "not found".
- IDEA: Have "FUNCTION" attribute? [function is called to fetch value]. */
- int value;
-
- /* Attributes.
- This should, but technically needn't, appear last. It is a variable sized
- array in that one architecture may have 1 nonbool attribute and another
- may have more. Having this last means the non-architecture specific code
- needn't care. The goal is to eventually record
- attributes in their raw form, evaluate them at run-time, and cache the
- values, so this worry will go away anyway. */
- /* ??? Moving this last should be done by treating keywords like insn lists
- and moving the `next' fields into a CGEN_KEYWORD_LIST struct. */
- /* FIXME: Not used yet. */
-#ifndef CGEN_KEYWORD_NBOOL_ATTRS
-#define CGEN_KEYWORD_NBOOL_ATTRS 1
-#endif
- CGEN_ATTR_TYPE (CGEN_KEYWORD_NBOOL_ATTRS) attrs;
-
- /* ??? Putting these here means compiled in entries can't be const.
- Not a really big deal, but something to consider. */
- /* Next name hash table entry. */
- struct cgen_keyword_entry *next_name;
- /* Next value hash table entry. */
- struct cgen_keyword_entry *next_value;
-} CGEN_KEYWORD_ENTRY;
-
-/* Top level struct for describing a set of related keywords
- (e.g. register names).
-
- This struct supports run-time entry of new values, and hashed lookups. */
-
-typedef struct cgen_keyword
-{
- /* Pointer to initial [compiled in] values. */
- CGEN_KEYWORD_ENTRY *init_entries;
-
- /* Number of entries in `init_entries'. */
- unsigned int num_init_entries;
-
- /* Hash table used for name lookup. */
- CGEN_KEYWORD_ENTRY **name_hash_table;
-
- /* Hash table used for value lookup. */
- CGEN_KEYWORD_ENTRY **value_hash_table;
-
- /* Number of entries in the hash_tables. */
- unsigned int hash_table_size;
-
- /* Pointer to null keyword "" entry if present. */
- const CGEN_KEYWORD_ENTRY *null_entry;
-
- /* String containing non-alphanumeric characters used
- in keywords.
- At present, the highest number of entries used is 1. */
- char nonalpha_chars[8];
-} CGEN_KEYWORD;
-
-/* Structure used for searching. */
-
-typedef struct
-{
- /* Table being searched. */
- const CGEN_KEYWORD *table;
-
- /* Specification of what is being searched for. */
- const char *spec;
-
- /* Current index in hash table. */
- unsigned int current_hash;
-
- /* Current element in current hash chain. */
- CGEN_KEYWORD_ENTRY *current_entry;
-} CGEN_KEYWORD_SEARCH;
-
-/* Lookup a keyword from its name. */
-
-const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_name
- (CGEN_KEYWORD *, const char *);
-
-/* Lookup a keyword from its value. */
-
-const CGEN_KEYWORD_ENTRY *cgen_keyword_lookup_value
- (CGEN_KEYWORD *, int);
-
-/* Add a keyword. */
-
-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
- (CGEN_KEYWORD *, const char *);
-const CGEN_KEYWORD_ENTRY *cgen_keyword_search_next
- (CGEN_KEYWORD_SEARCH *);
-
-/* Operand value support routines. */
-
-extern const char *cgen_parse_keyword
- (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
- (CGEN_CPU_DESC, const char **, int, long *);
-extern const char *cgen_parse_unsigned_integer
- (CGEN_CPU_DESC, const char **, int, unsigned long *);
-extern const char *cgen_parse_address
- (CGEN_CPU_DESC, const char **, int, int,
- enum cgen_parse_operand_result *, bfd_vma *);
-extern const char *cgen_validate_signed_integer
- (long, long, long);
-extern const char *cgen_validate_unsigned_integer
- (unsigned long, unsigned long, unsigned long);
-#endif
-
-/* Operand modes. */
-
-/* ??? This duplicates the values in arch.h. Revisit.
- These however need the CGEN_ prefix [as does everything in this file]. */
-/* ??? Targets may need to add their own modes so we may wish to move this
- to <arch>-opc.h, or add a hook. */
-
-enum cgen_mode {
- CGEN_MODE_VOID, /* ??? rename simulator's VM to VOID? */
- CGEN_MODE_BI, CGEN_MODE_QI, CGEN_MODE_HI, CGEN_MODE_SI, CGEN_MODE_DI,
- CGEN_MODE_UBI, CGEN_MODE_UQI, CGEN_MODE_UHI, CGEN_MODE_USI, CGEN_MODE_UDI,
- CGEN_MODE_SF, CGEN_MODE_DF, CGEN_MODE_XF, CGEN_MODE_TF,
- CGEN_MODE_TARGET_MAX,
- CGEN_MODE_INT, CGEN_MODE_UINT,
- CGEN_MODE_MAX
-};
-
-/* FIXME: Until simulator is updated. */
-
-#define CGEN_MODE_VM CGEN_MODE_VOID
-
-/* Operands. */
-
-#ifndef CGEN_ARCH
-enum cgen_operand_type { CGEN_OPERAND_MAX };
-#endif
-
-/* "nil" indicator for the operand instance table */
-#define CGEN_OPERAND_NIL CGEN_OPERAND_MAX
-
-/* A tree of these structs represents the multi-ifield
- structure of an operand's hw-index value, if it exists. */
-
-struct cgen_ifld;
-
-typedef struct cgen_maybe_multi_ifield
-{
- int count; /* 0: indexed by single cgen_ifld (possibly null: dead entry);
- n: indexed by array of more cgen_maybe_multi_ifields. */
- union
- {
- const void *p;
- const struct cgen_maybe_multi_ifield * multi;
- const struct cgen_ifld * leaf;
- } val;
-}
-CGEN_MAYBE_MULTI_IFLD;
-
-/* This struct defines each entry in the operand table. */
-
-typedef struct
-{
- /* Name as it appears in the syntax string. */
- char *name;
-
- /* Operand type. */
- enum cgen_operand_type type;
-
- /* The hardware element associated with this operand. */
- enum cgen_hw_type hw_type;
-
- /* FIXME: We don't yet record ifield definitions, which we should.
- When we do it might make sense to delete start/length (since they will
- be duplicated in the ifield's definition) and replace them with a
- pointer to the ifield entry. */
-
- /* Bit position.
- This is just a hint, and may be unused in more complex operands.
- May be unused for a modifier. */
- unsigned char start;
-
- /* The number of bits in the operand.
- This is just a hint, and may be unused in more complex operands.
- May be unused for a modifier. */
- unsigned char length;
-
- /* The (possibly-multi) ifield used as an index for this operand, if it
- is indexed by a field at all. This substitutes / extends the start and
- length fields above, but unsure at this time whether they are used
- anywhere. */
- CGEN_MAYBE_MULTI_IFLD index_fields;
-#if 0 /* ??? Interesting idea but relocs tend to get too complicated,
- and ABI dependent, for simple table lookups to work. */
- /* Ideally this would be the internal (external?) reloc type. */
- int reloc_type;
-#endif
-
- /* Attributes.
- This should, but technically needn't, appear last. It is a variable sized
- array in that one architecture may have 1 nonbool attribute and another
- may have more. Having this last means the non-architecture specific code
- needn't care, now or tomorrow. The goal is to eventually record
- attributes in their raw form, evaluate them at run-time, and cache the
- values, so this worry will go away anyway. */
-#ifndef CGEN_OPERAND_NBOOL_ATTRS
-#define CGEN_OPERAND_NBOOL_ATTRS 1
-#endif
- CGEN_ATTR_TYPE (CGEN_OPERAND_NBOOL_ATTRS) attrs;
-#define CGEN_OPERAND_ATTRS(operand) (&(operand)->attrs)
-} CGEN_OPERAND;
-
-/* Return value of attribute ATTR in OPERAND. */
-
-#define CGEN_OPERAND_ATTR_VALUE(operand, attr) \
-CGEN_ATTR_VALUE ((operand), CGEN_OPERAND_ATTRS (operand), (attr))
-
-/* Table of operands for selected mach/isa, computed at runtime.
- enum cgen_operand_type is an index into this table (specifically
- `entries'). */
-
-typedef struct {
- /* Pointer to null terminated table of all compiled in entries. */
- const CGEN_OPERAND *init_entries;
- unsigned int entry_size; /* since the attribute member is variable sized */
- /* Array of all entries, initial and run-time added. */
- const CGEN_OPERAND **entries;
- /* Number of elements in `entries'. */
- unsigned int num_entries;
- /* For now, xrealloc is called each time a new entry is added at runtime.
- ??? May wish to keep track of some slop to reduce the number of calls to
- xrealloc, except that there's unlikely to be many and not expected to be
- in speed critical code. */
-} CGEN_OPERAND_TABLE;
-
-extern const CGEN_OPERAND * cgen_operand_lookup_by_name
- (CGEN_CPU_DESC, const char *);
-extern const CGEN_OPERAND * cgen_operand_lookup_by_num
- (CGEN_CPU_DESC, int);
-
-/* Instruction operand instances.
-
- For each instruction, a list of the hardware elements that are read and
- written are recorded. */
-
-/* The type of the instance. */
-
-enum cgen_opinst_type {
- /* End of table marker. */
- CGEN_OPINST_END = 0,
- CGEN_OPINST_INPUT, CGEN_OPINST_OUTPUT
-};
-
-typedef struct
-{
- /* Input or output indicator. */
- enum cgen_opinst_type type;
-
- /* Name of operand. */
- const char *name;
-
- /* The hardware element referenced. */
- enum cgen_hw_type hw_type;
-
- /* The mode in which the operand is being used. */
- enum cgen_mode mode;
-
- /* The operand table entry CGEN_OPERAND_NIL if there is none
- (i.e. an explicit hardware reference). */
- enum cgen_operand_type op_type;
-
- /* If `operand' is "nil", the index (e.g. into array of registers). */
- int index;
-
- /* Attributes.
- ??? This perhaps should be a real attribute struct but there's
- no current need, so we save a bit of space and just have a set of
- flags. The interface is such that this can easily be made attributes
- should it prove useful. */
- unsigned int attrs;
-#define CGEN_OPINST_ATTRS(opinst) ((opinst)->attrs)
-/* Return value of attribute ATTR in OPINST. */
-#define CGEN_OPINST_ATTR(opinst, attr) \
-((CGEN_OPINST_ATTRS (opinst) & (attr)) != 0)
-/* Operand is conditionally referenced (read/written). */
-#define CGEN_OPINST_COND_REF 1
-} CGEN_OPINST;
-
-/* Syntax string.
-
- Each insn format and subexpression has one of these.
-
- The syntax "string" consists of characters (n > 0 && n < 128), and operand
- values (n >= 128), and is terminated by 0. Operand values are 128 + index
- into the operand table. The operand table doesn't exist in C, per se, as
- the data is recorded in the parse/insert/extract/print switch statements. */
-
-/* This should be at least as large as necessary for any target. */
-#define CGEN_MAX_SYNTAX_ELEMENTS 48
-
-/* A target may know its own precise maximum. Assert that it falls below
- the above limit. */
-#ifdef CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS
-#if CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS > CGEN_MAX_SYNTAX_ELEMENTS
-#error "CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS too high - enlarge CGEN_MAX_SYNTAX_ELEMENTS"
-#endif
-#endif
-
-typedef unsigned short CGEN_SYNTAX_CHAR_TYPE;
-
-typedef struct
-{
- CGEN_SYNTAX_CHAR_TYPE syntax[CGEN_MAX_SYNTAX_ELEMENTS];
-} CGEN_SYNTAX;
-
-#define CGEN_SYNTAX_STRING(syn) (syn->syntax)
-#define CGEN_SYNTAX_CHAR_P(c) ((c) < 128)
-#define CGEN_SYNTAX_CHAR(c) ((unsigned char)c)
-#define CGEN_SYNTAX_FIELD(c) ((c) - 128)
-#define CGEN_SYNTAX_MAKE_FIELD(c) ((c) + 128)
-
-/* ??? I can't currently think of any case where the mnemonic doesn't come
- first [and if one ever doesn't building the hash tables will be tricky].
- However, we treat mnemonics as just another operand of the instruction.
- A value of 1 means "this is where the mnemonic appears". 1 isn't
- special other than it's a non-printable ASCII char. */
-
-#define CGEN_SYNTAX_MNEMONIC 1
-#define CGEN_SYNTAX_MNEMONIC_P(ch) ((ch) == CGEN_SYNTAX_MNEMONIC)
-
-/* Instruction fields.
-
- ??? We currently don't allow adding fields at run-time.
- Easy to fix when needed. */
-
-typedef struct cgen_ifld {
- /* Enum of ifield. */
- int num;
-#define CGEN_IFLD_NUM(f) ((f)->num)
-
- /* Name of the field, distinguishes it from all other fields. */
- const char *name;
-#define CGEN_IFLD_NAME(f) ((f)->name)
-
- /* Default offset, in bits, from the start of the insn to the word
- containing the field. */
- int word_offset;
-#define CGEN_IFLD_WORD_OFFSET(f) ((f)->word_offset)
-
- /* Default length of the word containing the field. */
- int word_size;
-#define CGEN_IFLD_WORD_SIZE(f) ((f)->word_size)
-
- /* Default starting bit number.
- Whether lsb=0 or msb=0 is determined by CGEN_INSN_LSB0_P. */
- int start;
-#define CGEN_IFLD_START(f) ((f)->start)
-
- /* Length of the field, in bits. */
- int length;
-#define CGEN_IFLD_LENGTH(f) ((f)->length)
-
-#ifndef CGEN_IFLD_NBOOL_ATTRS
-#define CGEN_IFLD_NBOOL_ATTRS 1
-#endif
- CGEN_ATTR_TYPE (CGEN_IFLD_NBOOL_ATTRS) attrs;
-#define CGEN_IFLD_ATTRS(f) (&(f)->attrs)
-} CGEN_IFLD;
-
-/* Return value of attribute ATTR in IFLD. */
-#define CGEN_IFLD_ATTR_VALUE(ifld, attr) \
-CGEN_ATTR_VALUE ((ifld), CGEN_IFLD_ATTRS (ifld), (attr))
-
-/* Instruction data. */
-
-/* Instruction formats.
-
- Instructions are grouped by format. Associated with an instruction is its
- format. Each insn's opcode table entry contains a format table entry.
- ??? There is usually very few formats compared with the number of insns,
- so one can reduce the size of the opcode table by recording the format table
- as a separate entity. Given that we currently don't, format table entries
- are also distinguished by their operands. This increases the size of the
- table, but reduces the number of tables. It's all minutiae anyway so it
- doesn't really matter [at this point in time].
-
- ??? Support for variable length ISA's is wip. */
-
-/* Accompanying each iformat description is a list of its fields. */
-
-typedef struct {
- const CGEN_IFLD *ifld;
-#define CGEN_IFMT_IFLD_IFLD(ii) ((ii)->ifld)
-} CGEN_IFMT_IFLD;
-
-/* This should be at least as large as necessary for any target. */
-#define CGEN_MAX_IFMT_OPERANDS 16
-
-/* A target may know its own precise maximum. Assert that it falls below
- the above limit. */
-#ifdef CGEN_ACTUAL_MAX_IFMT_OPERANDS
-#if CGEN_ACTUAL_MAX_IFMT_OPERANDS > CGEN_MAX_IFMT_OPERANDS
-#error "CGEN_ACTUAL_MAX_IFMT_OPERANDS too high - enlarge CGEN_MAX_IFMT_OPERANDS"
-#endif
-#endif
-
-
-typedef struct
-{
- /* Length that MASK and VALUE have been calculated to
- [VALUE is recorded elsewhere].
- Normally it is base_insn_bitsize. On [V]LIW architectures where the base
- insn size may be larger than the size of an insn, this field is less than
- base_insn_bitsize. */
- unsigned char mask_length;
-#define CGEN_IFMT_MASK_LENGTH(ifmt) ((ifmt)->mask_length)
-
- /* Total length of instruction, in bits. */
- unsigned char length;
-#define CGEN_IFMT_LENGTH(ifmt) ((ifmt)->length)
-
- /* Mask to apply to the first MASK_LENGTH bits.
- Each insn's value is stored with the insn.
- The first step in recognizing an insn for disassembly is
- (opcode & mask) == value. */
- CGEN_INSN_INT mask;
-#define CGEN_IFMT_MASK(ifmt) ((ifmt)->mask)
-
- /* Instruction fields.
- +1 for trailing NULL. */
- CGEN_IFMT_IFLD iflds[CGEN_MAX_IFMT_OPERANDS + 1];
-#define CGEN_IFMT_IFLDS(ifmt) ((ifmt)->iflds)
-} CGEN_IFMT;
-
-/* Instruction values. */
-
-typedef struct
-{
- /* The opcode portion of the base insn. */
- CGEN_INSN_INT base_value;
-
-#ifdef CGEN_MAX_EXTRA_OPCODE_OPERANDS
- /* Extra opcode values beyond base_value. */
- unsigned long ifield_values[CGEN_MAX_EXTRA_OPCODE_OPERANDS];
-#endif
-} CGEN_IVALUE;
-
-/* Instruction opcode table.
- This contains the syntax and format data of an instruction. */
-
-/* ??? Some ports already have an opcode table yet still need to use the rest
- of what cgen_insn has. Plus keeping the opcode data with the operand
- instance data can create a pretty big file. So we keep them separately.
- Not sure this is a good idea in the long run. */
-
-typedef struct
-{
- /* Indices into parse/insert/extract/print handler tables. */
- struct cgen_opcode_handler handlers;
-#define CGEN_OPCODE_HANDLERS(opc) (& (opc)->handlers)
-
- /* Syntax string. */
- CGEN_SYNTAX syntax;
-#define CGEN_OPCODE_SYNTAX(opc) (& (opc)->syntax)
-
- /* Format entry. */
- const CGEN_IFMT *format;
-#define CGEN_OPCODE_FORMAT(opc) ((opc)->format)
-#define CGEN_OPCODE_MASK_BITSIZE(opc) CGEN_IFMT_MASK_LENGTH (CGEN_OPCODE_FORMAT (opc))
-#define CGEN_OPCODE_BITSIZE(opc) CGEN_IFMT_LENGTH (CGEN_OPCODE_FORMAT (opc))
-#define CGEN_OPCODE_IFLDS(opc) CGEN_IFMT_IFLDS (CGEN_OPCODE_FORMAT (opc))
-
- /* Instruction opcode value. */
- CGEN_IVALUE value;
-#define CGEN_OPCODE_VALUE(opc) (& (opc)->value)
-#define CGEN_OPCODE_BASE_VALUE(opc) (CGEN_OPCODE_VALUE (opc)->base_value)
-#define CGEN_OPCODE_BASE_MASK(opc) CGEN_IFMT_MASK (CGEN_OPCODE_FORMAT (opc))
-} CGEN_OPCODE;
-
-/* Instruction attributes.
- This is made a published type as applications can cache a pointer to
- the attributes for speed. */
-
-#ifndef CGEN_INSN_NBOOL_ATTRS
-#define CGEN_INSN_NBOOL_ATTRS 1
-#endif
-typedef CGEN_ATTR_TYPE (CGEN_INSN_NBOOL_ATTRS) CGEN_INSN_ATTR_TYPE;
-
-/* Enum of architecture independent attributes. */
-
-#ifndef CGEN_ARCH
-/* ??? Numbers here are recorded in two places. */
-typedef enum cgen_insn_attr {
- CGEN_INSN_ALIAS = 0
-} CGEN_INSN_ATTR;
-#define CGEN_ATTR_CGEN_INSN_ALIAS_VALUE(attrs) ((attrs)->bool_ & (1 << CGEN_INSN_ALIAS))
-#endif
-
-/* This struct defines each entry in the instruction table. */
-
-typedef struct
-{
- /* Each real instruction is enumerated. */
- /* ??? This may go away in time. */
- int num;
-#define CGEN_INSN_NUM(insn) ((insn)->base->num)
-
- /* Name of entry (that distinguishes it from all other entries). */
- /* ??? If mnemonics have operands, try to print full mnemonic. */
- const char *name;
-#define CGEN_INSN_NAME(insn) ((insn)->base->name)
-
- /* Mnemonic. This is used when parsing and printing the insn.
- In the case of insns that have operands on the mnemonics, this is
- only the constant part. E.g. for conditional execution of an `add' insn,
- where the full mnemonic is addeq, addne, etc., and the condition is
- treated as an operand, this is only "add". */
- const char *mnemonic;
-#define CGEN_INSN_MNEMONIC(insn) ((insn)->base->mnemonic)
-
- /* Total length of instruction, in bits. */
- int bitsize;
-#define CGEN_INSN_BITSIZE(insn) ((insn)->base->bitsize)
-
-#if 0 /* ??? Disabled for now as there is a problem with embedded newlines
- and the table is already pretty big. Should perhaps be moved
- to a file of its own. */
- /* Semantics, as RTL. */
- /* ??? Plain text or bytecodes? */
- /* ??? Note that the operand instance table could be computed at run-time
- if we parse this and cache the results. Something to eventually do. */
- const char *rtx;
-#define CGEN_INSN_RTX(insn) ((insn)->base->rtx)
-#endif
-
- /* Attributes.
- This must appear last. It is a variable sized array in that one
- architecture may have 1 nonbool attribute and another may have more.
- Having this last means the non-architecture specific code needn't
- care. The goal is to eventually record attributes in their raw form,
- evaluate them at run-time, and cache the values, so this worry will go
- away anyway. */
- CGEN_INSN_ATTR_TYPE attrs;
-#define CGEN_INSN_ATTRS(insn) (&(insn)->base->attrs)
-/* Return value of attribute ATTR in INSN. */
-#define CGEN_INSN_ATTR_VALUE(insn, attr) \
-CGEN_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr))
-#define CGEN_INSN_BITSET_ATTR_VALUE(insn, attr) \
- CGEN_BITSET_ATTR_VALUE ((insn), CGEN_INSN_ATTRS (insn), (attr))
-} CGEN_IBASE;
-
-/* Return non-zero if INSN is the "invalid" insn marker. */
-
-#define CGEN_INSN_INVALID_P(insn) (CGEN_INSN_MNEMONIC (insn) == 0)
-
-/* Main struct contain instruction information.
- BASE is always present, the rest is present only if asked for. */
-
-struct cgen_insn
-{
- /* ??? May be of use to put a type indicator here.
- Then this struct could different info for different classes of insns. */
- /* ??? A speedup can be had by moving `base' into this struct.
- Maybe later. */
- const CGEN_IBASE *base;
- const CGEN_OPCODE *opcode;
- const CGEN_OPINST *opinst;
-
- /* Regex to disambiguate overloaded opcodes */
- void *rx;
-#define CGEN_INSN_RX(insn) ((insn)->rx)
-#define CGEN_MAX_RX_ELEMENTS (CGEN_MAX_SYNTAX_ELEMENTS * 5)
-};
-
-/* Instruction lists.
- This is used for adding new entries and for creating the hash lists. */
-
-typedef struct cgen_insn_list
-{
- struct cgen_insn_list *next;
- const CGEN_INSN *insn;
-} CGEN_INSN_LIST;
-
-/* Table of instructions. */
-
-typedef struct
-{
- const CGEN_INSN *init_entries;
- unsigned int entry_size; /* since the attribute member is variable sized */
- unsigned int num_init_entries;
- CGEN_INSN_LIST *new_entries;
-} CGEN_INSN_TABLE;
-
-/* Return number of instructions. This includes any added at run-time. */
-
-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. */
-
-/* Fetch INSN's operand instance table. */
-/* ??? Doesn't handle insns added at runtime. */
-#define CGEN_INSN_OPERANDS(insn) ((insn)->opinst)
-
-/* Return INSN's opcode table entry. */
-#define CGEN_INSN_OPCODE(insn) ((insn)->opcode)
-
-/* Return INSN's handler data. */
-#define CGEN_INSN_HANDLERS(insn) CGEN_OPCODE_HANDLERS (CGEN_INSN_OPCODE (insn))
-
-/* Return INSN's syntax. */
-#define CGEN_INSN_SYNTAX(insn) CGEN_OPCODE_SYNTAX (CGEN_INSN_OPCODE (insn))
-
-/* Return size of base mask in bits. */
-#define CGEN_INSN_MASK_BITSIZE(insn) \
- CGEN_OPCODE_MASK_BITSIZE (CGEN_INSN_OPCODE (insn))
-
-/* Return mask of base part of INSN. */
-#define CGEN_INSN_BASE_MASK(insn) \
- CGEN_OPCODE_BASE_MASK (CGEN_INSN_OPCODE (insn))
-
-/* Return value of base part of INSN. */
-#define CGEN_INSN_BASE_VALUE(insn) \
- CGEN_OPCODE_BASE_VALUE (CGEN_INSN_OPCODE (insn))
-
-/* Standard way to test whether INSN is supported by MACH.
- MACH is one of enum mach_attr.
- The "|1" is because the base mach is always selected. */
-#define CGEN_INSN_MACH_HAS_P(insn, mach) \
-((CGEN_INSN_ATTR_VALUE ((insn), CGEN_INSN_MACH) & ((1 << (mach)) | 1)) != 0)
-
-/* Macro instructions.
- Macro insns aren't real insns, they map to one or more real insns.
- E.g. An architecture's "nop" insn may actually be an "mv r0,r0" or
- some such.
-
- Macro insns can expand to nothing (e.g. a nop that is optimized away).
- This is useful in multi-insn macros that build a constant in a register.
- Of course this isn't the default behaviour and must be explicitly enabled.
-
- Assembly of macro-insns is relatively straightforward. Disassembly isn't.
- However, disassembly of at least some kinds of macro insns is important
- in order that the disassembled code preserve the readability of the original
- insn. What is attempted here is to disassemble all "simple" macro-insns,
- where "simple" is currently defined to mean "expands to one real insn".
-
- Simple macro-insns are handled specially. They are emitted as ALIAS's
- of real insns. This simplifies their handling since there's usually more
- of them than any other kind of macro-insn, and proper disassembly of them
- falls out for free. */
-
-/* For each macro-insn there may be multiple expansion possibilities,
- depending on the arguments. This structure is accessed via the `data'
- member of CGEN_INSN. */
-
-typedef struct cgen_minsn_expansion {
- /* Function to do the 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)
- (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.
- The format of STR is defined by FN.
- It is typically the assembly code of the real insn, but it could also be
- the original Scheme expression or a tokenized form of it (with FN being
- an appropriate interpreter). */
- const char * str;
-#define CGEN_MIEXPN_STR(ex) ((ex)->str)
-} CGEN_MINSN_EXPANSION;
-
-/* Normal expander.
- When supported, this function will convert the input string to another
- string and the parser will be invoked recursively. The output string
- may contain further macro invocations. */
-
-extern const char * cgen_expand_macro_insn
- (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
- (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)
-
-/* The disassembler insn table is hashed based on some function of machine
- instruction (the actually hashing done is up to the target). */
-
-extern CGEN_INSN_LIST * cgen_dis_lookup_insn
- (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)
-
-/* The CPU description.
- A copy of this is created when the cpu table is "opened".
- All global state information is recorded here.
- Access macros are provided for "public" members. */
-
-typedef struct cgen_cpu_desc
-{
- /* Bitmap of selected machine(s) (a la BFD machine number). */
- int machs;
-
- /* Bitmap of selected isa(s). */
- CGEN_BITSET *isas;
-#define CGEN_CPU_ISAS(cd) ((cd)->isas)
-
- /* Current endian. */
- enum cgen_endian endian;
-#define CGEN_CPU_ENDIAN(cd) ((cd)->endian)
-
- /* Current insn endian. */
- enum cgen_endian insn_endian;
-#define CGEN_CPU_INSN_ENDIAN(cd) ((cd)->insn_endian)
-
- /* Word size (in bits). */
- /* ??? Or maybe maximum word size - might we ever need to allow a cpu table
- to be opened for both sparc32/sparc64?
- ??? Another alternative is to create a table of selected machs and
- lazily fetch the data from there. */
- unsigned int word_bitsize;
-
- /* Instruction chunk size (in bits), for purposes of endianness
- conversion. */
- unsigned int insn_chunk_bitsize;
-
- /* Indicator if sizes are unknown.
- This is used by default_insn_bitsize,base_insn_bitsize if there is a
- difference between the selected isa's. */
-#define CGEN_SIZE_UNKNOWN 65535
-
- /* Default instruction size (in bits).
- This is used by the assembler when it encounters an unknown insn. */
- unsigned int default_insn_bitsize;
-
- /* Base instruction size (in bits).
- For non-LIW cpus this is generally the length of the smallest insn.
- For LIW cpus its wip (work-in-progress). For the m32r its 32. */
- unsigned int base_insn_bitsize;
-
- /* Minimum/maximum instruction size (in bits). */
- unsigned int min_insn_bitsize;
- unsigned int max_insn_bitsize;
-
- /* Instruction set variants. */
- const CGEN_ISA *isa_table;
-
- /* Machine variants. */
- const CGEN_MACH *mach_table;
-
- /* Hardware elements. */
- CGEN_HW_TABLE hw_table;
-
- /* Instruction fields. */
- const CGEN_IFLD *ifld_table;
-
- /* Operands. */
- CGEN_OPERAND_TABLE operand_table;
-
- /* Main instruction table. */
- CGEN_INSN_TABLE insn_table;
-#define CGEN_CPU_INSN_TABLE(cd) (& (cd)->insn_table)
-
- /* Macro instructions are defined separately and are combined with real
- insns during hash table computation. */
- CGEN_INSN_TABLE macro_insn_table;
-
- /* Copy of CGEN_INT_INSN_P. */
- int int_insn_p;
-
- /* Called to rebuild the tables after something has changed. */
- 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)
- (CGEN_CPU_DESC, int opindex_, const char **, CGEN_FIELDS *fields_);
-#ifdef __BFD_H_SEEN__
- const char * (*insert_operand)
- (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_,
- CGEN_INSN_BYTES_PTR, bfd_vma pc_);
- int (*extract_operand)
- (CGEN_CPU_DESC, int opindex_, CGEN_EXTRACT_INFO *, CGEN_INSN_INT,
- CGEN_FIELDS *fields_, bfd_vma pc_);
- void (*print_operand)
- (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) ();
- void (*print_operand) ();
-#endif
-#define CGEN_CPU_PARSE_OPERAND(cd) ((cd)->parse_operand)
-#define CGEN_CPU_INSERT_OPERAND(cd) ((cd)->insert_operand)
-#define CGEN_CPU_EXTRACT_OPERAND(cd) ((cd)->extract_operand)
-#define CGEN_CPU_PRINT_OPERAND(cd) ((cd)->print_operand)
-
- /* Size of CGEN_FIELDS struct. */
- unsigned int sizeof_fields;
-#define CGEN_CPU_SIZEOF_FIELDS(cd) ((cd)->sizeof_fields)
-
- /* Set the bitsize field. */
- 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)
- (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
- void (*set_int_operand)
- (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, int value_);
-#ifdef __BFD_H_SEEN__
- bfd_vma (*get_vma_operand)
- (CGEN_CPU_DESC, int opindex_, const CGEN_FIELDS *fields_);
- void (*set_vma_operand)
- (CGEN_CPU_DESC, int opindex_, CGEN_FIELDS *fields_, bfd_vma value_);
-#else
- long (*get_vma_operand) ();
- void (*set_vma_operand) ();
-#endif
-#define CGEN_CPU_GET_INT_OPERAND(cd) ((cd)->get_int_operand)
-#define CGEN_CPU_SET_INT_OPERAND(cd) ((cd)->set_int_operand)
-#define CGEN_CPU_GET_VMA_OPERAND(cd) ((cd)->get_vma_operand)
-#define CGEN_CPU_SET_VMA_OPERAND(cd) ((cd)->set_vma_operand)
-
- /* Instruction parse/insert/extract/print handlers. */
- /* FIXME: make these types uppercase. */
- cgen_parse_fn * const *parse_handlers;
- cgen_insert_fn * const *insert_handlers;
- cgen_extract_fn * const *extract_handlers;
- cgen_print_fn * const *print_handlers;
-#define CGEN_PARSE_FN(cd, insn) (cd->parse_handlers[(insn)->opcode->handlers.parse])
-#define CGEN_INSERT_FN(cd, insn) (cd->insert_handlers[(insn)->opcode->handlers.insert])
-#define CGEN_EXTRACT_FN(cd, insn) (cd->extract_handlers[(insn)->opcode->handlers.extract])
-#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) (const CGEN_INSN *);
-
- /* Assembler hash function. */
- 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) (const CGEN_INSN *);
-
- /* Disassembler hash function. */
- unsigned int (* dis_hash) (const char *, CGEN_INSN_INT);
-
- /* Number of entries in disassembler hash table. */
- unsigned int dis_hash_size;
-
- /* Assembler instruction hash table. */
- CGEN_INSN_LIST **asm_hash_table;
- CGEN_INSN_LIST *asm_hash_table_entries;
-
- /* Disassembler instruction hash table. */
- CGEN_INSN_LIST **dis_hash_table;
- CGEN_INSN_LIST *dis_hash_table_entries;
-
- /* This field could be turned into a bitfield if room for other flags is needed. */
- unsigned int signed_overflow_ok_p;
-
-} CGEN_CPU_TABLE;
-
-/* wip */
-#ifndef CGEN_WORD_ENDIAN
-#define CGEN_WORD_ENDIAN(cd) CGEN_CPU_ENDIAN (cd)
-#endif
-#ifndef CGEN_INSN_WORD_ENDIAN
-#define CGEN_INSN_WORD_ENDIAN(cd) CGEN_CPU_INSN_ENDIAN (cd)
-#endif
-
-/* Prototypes of major functions. */
-/* FIXME: Move more CGEN_SYM-defined functions into CGEN_CPU_DESC.
- Not the init fns though, as that would drag in things that mightn't be
- used and might not even exist. */
-
-/* Argument types to cpu_open. */
-
-enum cgen_cpu_open_arg {
- CGEN_CPU_OPEN_END,
- /* Select instruction set(s), arg is bitmap or 0 meaning "unspecified". */
- CGEN_CPU_OPEN_ISAS,
- /* Select machine(s), arg is bitmap or 0 meaning "unspecified". */
- CGEN_CPU_OPEN_MACHS,
- /* Select machine, arg is mach's bfd name.
- Multiple machines can be specified by repeated use. */
- CGEN_CPU_OPEN_BFDMACH,
- /* Select endian, arg is CGEN_ENDIAN_*. */
- CGEN_CPU_OPEN_ENDIAN
-};
-
-/* Open a cpu descriptor table for use.
- ??? We only support ISO C stdargs here, not K&R.
- Laziness, plus experiment to see if anything requires K&R - eventually
- K&R will no longer be supported - e.g. GDB is currently trying this. */
-
-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)
- (const char *mach_name_, enum cgen_endian endian_);
-
-/* Close it. */
-
-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) (CGEN_CPU_DESC cd_);
-
-/* build the insn selection regex.
- called by init_opcode_table */
-
-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) (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) (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) (CGEN_CPU_DESC cd_);
-
-/* Assemble an instruction. */
-
-extern const CGEN_INSN * CGEN_SYM (assemble_insn)
- (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) (const char *);
-
-/* Operand index computation. */
-extern const CGEN_INSN * cgen_lookup_insn
- (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
- (CGEN_CPU_DESC, const CGEN_INSN * insn_,
- const CGEN_FIELDS *fields_, int *indices_);
-extern const CGEN_INSN * cgen_lookup_get_insn_operands
- (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
- (CGEN_CPU_DESC, unsigned char *, int);
-extern void cgen_put_insn_value
- (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 (CGEN_CPU_DESC, const char * filename_);
-
-/* Allow signed overflow of instruction fields. */
-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 (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 (CGEN_CPU_DESC);
-
-#endif /* OPCODE_CGEN_H */
diff --git a/include/opcode/convex.h b/include/opcode/convex.h
deleted file mode 100644
index 4643f5e06..000000000
--- a/include/opcode/convex.h
+++ /dev/null
@@ -1,1708 +0,0 @@
-/* Information for instruction disassembly on the Convex.
- Copyright 1989, 1993, 2002, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define xxx 0
-#define rrr 1
-#define rr 2
-#define rxr 3
-#define r 4
-#define nops 5
-#define nr 6
-#define pcrel 7
-#define lr 8
-#define rxl 9
-#define rlr 10
-#define rrl 11
-#define iml 12
-#define imr 13
-#define a1r 14
-#define a1l 15
-#define a2r 16
-#define a2l 17
-#define a3 18
-#define a4 19
-#define a5 20
-#define V 1
-#define S 2
-#define VM 3
-#define A 4
-#define VL 5
-#define VS 6
-#define VLS 7
-#define PSW 8
-/* Prevent an error during "make depend". */
-#if !defined (PC)
-#define PC 9
-#endif
-#define ITR 10
-#define VV 11
-#define ITSR 12
-#define TOC 13
-#define CIR 14
-#define TTR 15
-#define VMU 16
-#define VML 17
-#define ICR 18
-#define TCPU 19
-#define CPUID 20
-#define TID 21
-
-const char *op[] = {
- "",
- "v0\0v1\0v2\0v3\0v4\0v5\0v6\0v7",
- "s0\0s1\0s2\0s3\0s4\0s5\0s6\0s7",
- "vm",
- "sp\0a1\0a2\0a3\0a4\0a5\0ap\0fp",
- "vl",
- "vs",
- "vls",
- "psw",
- "pc",
- "itr",
- "vv",
- "itsr",
- "toc",
- "cir",
- "ttr",
- "vmu",
- "vml",
- "icr",
- "tcpu",
- "cpuid",
- "tid",
-};
-
-const struct formstr format0[] = {
- {0,0,rrr,V,S,S}, /* mov */
- {0,0,rrr,S,S,V}, /* mov */
- {1,1,rrr,V,V,V}, /* merg.t */
- {2,1,rrr,V,V,V}, /* mask.t */
- {1,2,rrr,V,S,V}, /* merg.f */
- {2,2,rrr,V,S,V}, /* mask.f */
- {1,1,rrr,V,S,V}, /* merg.t */
- {2,1,rrr,V,S,V}, /* mask.t */
- {3,3,rrr,V,V,V}, /* mul.s */
- {3,4,rrr,V,V,V}, /* mul.d */
- {4,3,rrr,V,V,V}, /* div.s */
- {4,4,rrr,V,V,V}, /* div.d */
- {3,3,rrr,V,S,V}, /* mul.s */
- {3,4,rrr,V,S,V}, /* mul.d */
- {4,3,rrr,V,S,V}, /* div.s */
- {4,4,rrr,V,S,V}, /* div.d */
- {5,0,rrr,V,V,V}, /* and */
- {6,0,rrr,V,V,V}, /* or */
- {7,0,rrr,V,V,V}, /* xor */
- {8,0,rrr,V,V,V}, /* shf */
- {5,0,rrr,V,S,V}, /* and */
- {6,0,rrr,V,S,V}, /* or */
- {7,0,rrr,V,S,V}, /* xor */
- {8,0,rrr,V,S,V}, /* shf */
- {9,3,rrr,V,V,V}, /* add.s */
- {9,4,rrr,V,V,V}, /* add.d */
- {10,3,rrr,V,V,V}, /* sub.s */
- {10,4,rrr,V,V,V}, /* sub.d */
- {9,3,rrr,V,S,V}, /* add.s */
- {9,4,rrr,V,S,V}, /* add.d */
- {10,3,rrr,V,S,V}, /* sub.s */
- {10,4,rrr,V,S,V}, /* sub.d */
- {9,5,rrr,V,V,V}, /* add.b */
- {9,6,rrr,V,V,V}, /* add.h */
- {9,7,rrr,V,V,V}, /* add.w */
- {9,8,rrr,V,V,V}, /* add.l */
- {9,5,rrr,V,S,V}, /* add.b */
- {9,6,rrr,V,S,V}, /* add.h */
- {9,7,rrr,V,S,V}, /* add.w */
- {9,8,rrr,V,S,V}, /* add.l */
- {10,5,rrr,V,V,V}, /* sub.b */
- {10,6,rrr,V,V,V}, /* sub.h */
- {10,7,rrr,V,V,V}, /* sub.w */
- {10,8,rrr,V,V,V}, /* sub.l */
- {10,5,rrr,V,S,V}, /* sub.b */
- {10,6,rrr,V,S,V}, /* sub.h */
- {10,7,rrr,V,S,V}, /* sub.w */
- {10,8,rrr,V,S,V}, /* sub.l */
- {3,5,rrr,V,V,V}, /* mul.b */
- {3,6,rrr,V,V,V}, /* mul.h */
- {3,7,rrr,V,V,V}, /* mul.w */
- {3,8,rrr,V,V,V}, /* mul.l */
- {3,5,rrr,V,S,V}, /* mul.b */
- {3,6,rrr,V,S,V}, /* mul.h */
- {3,7,rrr,V,S,V}, /* mul.w */
- {3,8,rrr,V,S,V}, /* mul.l */
- {4,5,rrr,V,V,V}, /* div.b */
- {4,6,rrr,V,V,V}, /* div.h */
- {4,7,rrr,V,V,V}, /* div.w */
- {4,8,rrr,V,V,V}, /* div.l */
- {4,5,rrr,V,S,V}, /* div.b */
- {4,6,rrr,V,S,V}, /* div.h */
- {4,7,rrr,V,S,V}, /* div.w */
- {4,8,rrr,V,S,V}, /* div.l */
-};
-
-const struct formstr format1[] = {
- {11,0,xxx,0,0,0}, /* exit */
- {12,0,a3,0,0,0}, /* jmp */
- {13,2,a3,0,0,0}, /* jmpi.f */
- {13,1,a3,0,0,0}, /* jmpi.t */
- {14,2,a3,0,0,0}, /* jmpa.f */
- {14,1,a3,0,0,0}, /* jmpa.t */
- {15,2,a3,0,0,0}, /* jmps.f */
- {15,1,a3,0,0,0}, /* jmps.t */
- {16,0,a3,0,0,0}, /* tac */
- {17,0,a1r,A,0,0}, /* ldea */
- {18,8,a1l,VLS,0,0}, /* ld.l */
- {18,9,a1l,VM,0,0}, /* ld.x */
- {19,0,a3,0,0,0}, /* tas */
- {20,0,a3,0,0,0}, /* pshea */
- {21,8,a2l,VLS,0,0}, /* st.l */
- {21,9,a2l,VM,0,0}, /* st.x */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {22,0,a3,0,0,0}, /* call */
- {23,0,a3,0,0,0}, /* calls */
- {24,0,a3,0,0,0}, /* callq */
- {25,0,a1r,A,0,0}, /* pfork */
- {26,5,a2r,S,0,0}, /* ste.b */
- {26,6,a2r,S,0,0}, /* ste.h */
- {26,7,a2r,S,0,0}, /* ste.w */
- {26,8,a2r,S,0,0}, /* ste.l */
- {18,5,a1r,A,0,0}, /* ld.b */
- {18,6,a1r,A,0,0}, /* ld.h */
- {18,7,a1r,A,0,0}, /* ld.w */
- {27,7,a1r,A,0,0}, /* incr.w */
- {21,5,a2r,A,0,0}, /* st.b */
- {21,6,a2r,A,0,0}, /* st.h */
- {21,7,a2r,A,0,0}, /* st.w */
- {27,8,a1r,S,0,0}, /* incr.l */
- {18,5,a1r,S,0,0}, /* ld.b */
- {18,6,a1r,S,0,0}, /* ld.h */
- {18,7,a1r,S,0,0}, /* ld.w */
- {18,8,a1r,S,0,0}, /* ld.l */
- {21,5,a2r,S,0,0}, /* st.b */
- {21,6,a2r,S,0,0}, /* st.h */
- {21,7,a2r,S,0,0}, /* st.w */
- {21,8,a2r,S,0,0}, /* st.l */
- {18,5,a1r,V,0,0}, /* ld.b */
- {18,6,a1r,V,0,0}, /* ld.h */
- {18,7,a1r,V,0,0}, /* ld.w */
- {18,8,a1r,V,0,0}, /* ld.l */
- {21,5,a2r,V,0,0}, /* st.b */
- {21,6,a2r,V,0,0}, /* st.h */
- {21,7,a2r,V,0,0}, /* st.w */
- {21,8,a2r,V,0,0}, /* st.l */
-};
-
-const struct formstr format2[] = {
- {28,5,rr,A,A,0}, /* cvtw.b */
- {28,6,rr,A,A,0}, /* cvtw.h */
- {29,7,rr,A,A,0}, /* cvtb.w */
- {30,7,rr,A,A,0}, /* cvth.w */
- {28,5,rr,S,S,0}, /* cvtw.b */
- {28,6,rr,S,S,0}, /* cvtw.h */
- {29,7,rr,S,S,0}, /* cvtb.w */
- {30,7,rr,S,S,0}, /* cvth.w */
- {28,3,rr,S,S,0}, /* cvtw.s */
- {31,7,rr,S,S,0}, /* cvts.w */
- {32,3,rr,S,S,0}, /* cvtd.s */
- {31,4,rr,S,S,0}, /* cvts.d */
- {31,8,rr,S,S,0}, /* cvts.l */
- {32,8,rr,S,S,0}, /* cvtd.l */
- {33,3,rr,S,S,0}, /* cvtl.s */
- {33,4,rr,S,S,0}, /* cvtl.d */
- {34,0,rr,A,A,0}, /* ldpa */
- {8,0,nr,A,0,0}, /* shf */
- {18,6,nr,A,0,0}, /* ld.h */
- {18,7,nr,A,0,0}, /* ld.w */
- {33,7,rr,S,S,0}, /* cvtl.w */
- {28,8,rr,S,S,0}, /* cvtw.l */
- {35,1,rr,S,S,0}, /* plc.t */
- {36,0,rr,S,S,0}, /* tzc */
- {37,6,rr,A,A,0}, /* eq.h */
- {37,7,rr,A,A,0}, /* eq.w */
- {37,6,nr,A,0,0}, /* eq.h */
- {37,7,nr,A,0,0}, /* eq.w */
- {37,5,rr,S,S,0}, /* eq.b */
- {37,6,rr,S,S,0}, /* eq.h */
- {37,7,rr,S,S,0}, /* eq.w */
- {37,8,rr,S,S,0}, /* eq.l */
- {38,6,rr,A,A,0}, /* leu.h */
- {38,7,rr,A,A,0}, /* leu.w */
- {38,6,nr,A,0,0}, /* leu.h */
- {38,7,nr,A,0,0}, /* leu.w */
- {38,5,rr,S,S,0}, /* leu.b */
- {38,6,rr,S,S,0}, /* leu.h */
- {38,7,rr,S,S,0}, /* leu.w */
- {38,8,rr,S,S,0}, /* leu.l */
- {39,6,rr,A,A,0}, /* ltu.h */
- {39,7,rr,A,A,0}, /* ltu.w */
- {39,6,nr,A,0,0}, /* ltu.h */
- {39,7,nr,A,0,0}, /* ltu.w */
- {39,5,rr,S,S,0}, /* ltu.b */
- {39,6,rr,S,S,0}, /* ltu.h */
- {39,7,rr,S,S,0}, /* ltu.w */
- {39,8,rr,S,S,0}, /* ltu.l */
- {40,6,rr,A,A,0}, /* le.h */
- {40,7,rr,A,A,0}, /* le.w */
- {40,6,nr,A,0,0}, /* le.h */
- {40,7,nr,A,0,0}, /* le.w */
- {40,5,rr,S,S,0}, /* le.b */
- {40,6,rr,S,S,0}, /* le.h */
- {40,7,rr,S,S,0}, /* le.w */
- {40,8,rr,S,S,0}, /* le.l */
- {41,6,rr,A,A,0}, /* lt.h */
- {41,7,rr,A,A,0}, /* lt.w */
- {41,6,nr,A,0,0}, /* lt.h */
- {41,7,nr,A,0,0}, /* lt.w */
- {41,5,rr,S,S,0}, /* lt.b */
- {41,6,rr,S,S,0}, /* lt.h */
- {41,7,rr,S,S,0}, /* lt.w */
- {41,8,rr,S,S,0}, /* lt.l */
- {9,7,rr,S,A,0}, /* add.w */
- {8,0,rr,A,A,0}, /* shf */
- {0,0,rr,A,A,0}, /* mov */
- {0,0,rr,S,A,0}, /* mov */
- {0,7,rr,S,S,0}, /* mov.w */
- {8,0,rr,S,S,0}, /* shf */
- {0,0,rr,S,S,0}, /* mov */
- {0,0,rr,A,S,0}, /* mov */
- {5,0,rr,A,A,0}, /* and */
- {6,0,rr,A,A,0}, /* or */
- {7,0,rr,A,A,0}, /* xor */
- {42,0,rr,A,A,0}, /* not */
- {5,0,rr,S,S,0}, /* and */
- {6,0,rr,S,S,0}, /* or */
- {7,0,rr,S,S,0}, /* xor */
- {42,0,rr,S,S,0}, /* not */
- {40,3,rr,S,S,0}, /* le.s */
- {40,4,rr,S,S,0}, /* le.d */
- {41,3,rr,S,S,0}, /* lt.s */
- {41,4,rr,S,S,0}, /* lt.d */
- {9,3,rr,S,S,0}, /* add.s */
- {9,4,rr,S,S,0}, /* add.d */
- {10,3,rr,S,S,0}, /* sub.s */
- {10,4,rr,S,S,0}, /* sub.d */
- {37,3,rr,S,S,0}, /* eq.s */
- {37,4,rr,S,S,0}, /* eq.d */
- {43,6,rr,A,A,0}, /* neg.h */
- {43,7,rr,A,A,0}, /* neg.w */
- {3,3,rr,S,S,0}, /* mul.s */
- {3,4,rr,S,S,0}, /* mul.d */
- {4,3,rr,S,S,0}, /* div.s */
- {4,4,rr,S,S,0}, /* div.d */
- {9,6,rr,A,A,0}, /* add.h */
- {9,7,rr,A,A,0}, /* add.w */
- {9,6,nr,A,0,0}, /* add.h */
- {9,7,nr,A,0,0}, /* add.w */
- {9,5,rr,S,S,0}, /* add.b */
- {9,6,rr,S,S,0}, /* add.h */
- {9,7,rr,S,S,0}, /* add.w */
- {9,8,rr,S,S,0}, /* add.l */
- {10,6,rr,A,A,0}, /* sub.h */
- {10,7,rr,A,A,0}, /* sub.w */
- {10,6,nr,A,0,0}, /* sub.h */
- {10,7,nr,A,0,0}, /* sub.w */
- {10,5,rr,S,S,0}, /* sub.b */
- {10,6,rr,S,S,0}, /* sub.h */
- {10,7,rr,S,S,0}, /* sub.w */
- {10,8,rr,S,S,0}, /* sub.l */
- {3,6,rr,A,A,0}, /* mul.h */
- {3,7,rr,A,A,0}, /* mul.w */
- {3,6,nr,A,0,0}, /* mul.h */
- {3,7,nr,A,0,0}, /* mul.w */
- {3,5,rr,S,S,0}, /* mul.b */
- {3,6,rr,S,S,0}, /* mul.h */
- {3,7,rr,S,S,0}, /* mul.w */
- {3,8,rr,S,S,0}, /* mul.l */
- {4,6,rr,A,A,0}, /* div.h */
- {4,7,rr,A,A,0}, /* div.w */
- {4,6,nr,A,0,0}, /* div.h */
- {4,7,nr,A,0,0}, /* div.w */
- {4,5,rr,S,S,0}, /* div.b */
- {4,6,rr,S,S,0}, /* div.h */
- {4,7,rr,S,S,0}, /* div.w */
- {4,8,rr,S,S,0}, /* div.l */
-};
-
-const struct formstr format3[] = {
- {32,3,rr,V,V,0}, /* cvtd.s */
- {31,4,rr,V,V,0}, /* cvts.d */
- {33,4,rr,V,V,0}, /* cvtl.d */
- {32,8,rr,V,V,0}, /* cvtd.l */
- {0,0,rrl,S,S,VM}, /* mov */
- {0,0,rlr,S,VM,S}, /* mov */
- {0,0,0,0,0,0},
- {44,0,rr,S,S,0}, /* lop */
- {36,0,rr,V,V,0}, /* tzc */
- {44,0,rr,V,V,0}, /* lop */
- {0,0,0,0,0,0},
- {42,0,rr,V,V,0}, /* not */
- {8,0,rr,S,V,0}, /* shf */
- {35,1,rr,V,V,0}, /* plc.t */
- {45,2,rr,V,V,0}, /* cprs.f */
- {45,1,rr,V,V,0}, /* cprs.t */
- {37,3,rr,V,V,0}, /* eq.s */
- {37,4,rr,V,V,0}, /* eq.d */
- {43,3,rr,V,V,0}, /* neg.s */
- {43,4,rr,V,V,0}, /* neg.d */
- {37,3,rr,S,V,0}, /* eq.s */
- {37,4,rr,S,V,0}, /* eq.d */
- {43,3,rr,S,S,0}, /* neg.s */
- {43,4,rr,S,S,0}, /* neg.d */
- {40,3,rr,V,V,0}, /* le.s */
- {40,4,rr,V,V,0}, /* le.d */
- {41,3,rr,V,V,0}, /* lt.s */
- {41,4,rr,V,V,0}, /* lt.d */
- {40,3,rr,S,V,0}, /* le.s */
- {40,4,rr,S,V,0}, /* le.d */
- {41,3,rr,S,V,0}, /* lt.s */
- {41,4,rr,S,V,0}, /* lt.d */
- {37,5,rr,V,V,0}, /* eq.b */
- {37,6,rr,V,V,0}, /* eq.h */
- {37,7,rr,V,V,0}, /* eq.w */
- {37,8,rr,V,V,0}, /* eq.l */
- {37,5,rr,S,V,0}, /* eq.b */
- {37,6,rr,S,V,0}, /* eq.h */
- {37,7,rr,S,V,0}, /* eq.w */
- {37,8,rr,S,V,0}, /* eq.l */
- {40,5,rr,V,V,0}, /* le.b */
- {40,6,rr,V,V,0}, /* le.h */
- {40,7,rr,V,V,0}, /* le.w */
- {40,8,rr,V,V,0}, /* le.l */
- {40,5,rr,S,V,0}, /* le.b */
- {40,6,rr,S,V,0}, /* le.h */
- {40,7,rr,S,V,0}, /* le.w */
- {40,8,rr,S,V,0}, /* le.l */
- {41,5,rr,V,V,0}, /* lt.b */
- {41,6,rr,V,V,0}, /* lt.h */
- {41,7,rr,V,V,0}, /* lt.w */
- {41,8,rr,V,V,0}, /* lt.l */
- {41,5,rr,S,V,0}, /* lt.b */
- {41,6,rr,S,V,0}, /* lt.h */
- {41,7,rr,S,V,0}, /* lt.w */
- {41,8,rr,S,V,0}, /* lt.l */
- {43,5,rr,V,V,0}, /* neg.b */
- {43,6,rr,V,V,0}, /* neg.h */
- {43,7,rr,V,V,0}, /* neg.w */
- {43,8,rr,V,V,0}, /* neg.l */
- {43,5,rr,S,S,0}, /* neg.b */
- {43,6,rr,S,S,0}, /* neg.h */
- {43,7,rr,S,S,0}, /* neg.w */
- {43,8,rr,S,S,0}, /* neg.l */
-};
-
-const struct formstr format4[] = {
- {46,0,nops,0,0,0}, /* nop */
- {47,0,pcrel,0,0,0}, /* br */
- {48,2,pcrel,0,0,0}, /* bri.f */
- {48,1,pcrel,0,0,0}, /* bri.t */
- {49,2,pcrel,0,0,0}, /* bra.f */
- {49,1,pcrel,0,0,0}, /* bra.t */
- {50,2,pcrel,0,0,0}, /* brs.f */
- {50,1,pcrel,0,0,0}, /* brs.t */
-};
-
-const struct formstr format5[] = {
- {51,5,rr,V,V,0}, /* ldvi.b */
- {51,6,rr,V,V,0}, /* ldvi.h */
- {51,7,rr,V,V,0}, /* ldvi.w */
- {51,8,rr,V,V,0}, /* ldvi.l */
- {28,3,rr,V,V,0}, /* cvtw.s */
- {31,7,rr,V,V,0}, /* cvts.w */
- {28,8,rr,V,V,0}, /* cvtw.l */
- {33,7,rr,V,V,0}, /* cvtl.w */
- {52,5,rxr,V,V,0}, /* stvi.b */
- {52,6,rxr,V,V,0}, /* stvi.h */
- {52,7,rxr,V,V,0}, /* stvi.w */
- {52,8,rxr,V,V,0}, /* stvi.l */
- {52,5,rxr,S,V,0}, /* stvi.b */
- {52,6,rxr,S,V,0}, /* stvi.h */
- {52,7,rxr,S,V,0}, /* stvi.w */
- {52,8,rxr,S,V,0}, /* stvi.l */
-};
-
-const struct formstr format6[] = {
- {53,0,r,A,0,0}, /* ldsdr */
- {54,0,r,A,0,0}, /* ldkdr */
- {55,3,r,S,0,0}, /* ln.s */
- {55,4,r,S,0,0}, /* ln.d */
- {56,0,nops,0,0,0}, /* patu */
- {57,0,r,A,0,0}, /* pate */
- {58,0,nops,0,0,0}, /* pich */
- {59,0,nops,0,0,0}, /* plch */
- {0,0,lr,PSW,A,0}, /* mov */
- {0,0,rxl,A,PSW,0}, /* mov */
- {0,0,lr,PC,A,0}, /* mov */
- {60,0,r,S,0,0}, /* idle */
- {0,0,lr,ITR,S,0}, /* mov */
- {0,0,rxl,S,ITR,0}, /* mov */
- {0,0,0,0,0,0},
- {0,0,rxl,S,ITSR,0}, /* mov */
- {61,0,nops,0,0,0}, /* rtnq */
- {62,0,nops,0,0,0}, /* cfork */
- {63,0,nops,0,0,0}, /* rtn */
- {64,0,nops,0,0,0}, /* wfork */
- {65,0,nops,0,0,0}, /* join */
- {66,0,nops,0,0,0}, /* rtnc */
- {67,3,r,S,0,0}, /* exp.s */
- {67,4,r,S,0,0}, /* exp.d */
- {68,3,r,S,0,0}, /* sin.s */
- {68,4,r,S,0,0}, /* sin.d */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {69,3,r,S,0,0}, /* cos.s */
- {69,4,r,S,0,0}, /* cos.d */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {70,7,r,A,0,0}, /* psh.w */
- {0,0,0,0,0,0},
- {71,7,r,A,0,0}, /* pop.w */
- {0,0,0,0,0,0},
- {70,7,r,S,0,0}, /* psh.w */
- {70,8,r,S,0,0}, /* psh.l */
- {71,7,r,S,0,0}, /* pop.w */
- {71,8,r,S,0,0}, /* pop.l */
- {72,0,nops,0,0,0}, /* eni */
- {73,0,nops,0,0,0}, /* dsi */
- {74,0,nops,0,0,0}, /* bkpt */
- {75,0,nops,0,0,0}, /* msync */
- {76,0,r,S,0,0}, /* mski */
- {77,0,r,S,0,0}, /* xmti */
- {0,0,rxl,S,VV,0}, /* mov */
- {78,0,nops,0,0,0}, /* tstvv */
- {0,0,lr,VS,A,0}, /* mov */
- {0,0,rxl,A,VS,0}, /* mov */
- {0,0,lr,VL,A,0}, /* mov */
- {0,0,rxl,A,VL,0}, /* mov */
- {0,7,lr,VS,S,0}, /* mov.w */
- {0,7,rxl,S,VS,0}, /* mov.w */
- {0,7,lr,VL,S,0}, /* mov.w */
- {0,7,rxl,S,VL,0}, /* mov.w */
- {79,0,r,A,0,0}, /* diag */
- {80,0,nops,0,0,0}, /* pbkpt */
- {81,3,r,S,0,0}, /* sqrt.s */
- {81,4,r,S,0,0}, /* sqrt.d */
- {82,0,nops,0,0,0}, /* casr */
- {0,0,0,0,0,0},
- {83,3,r,S,0,0}, /* atan.s */
- {83,4,r,S,0,0}, /* atan.d */
-};
-
-const struct formstr format7[] = {
- {84,5,r,V,0,0}, /* sum.b */
- {84,6,r,V,0,0}, /* sum.h */
- {84,7,r,V,0,0}, /* sum.w */
- {84,8,r,V,0,0}, /* sum.l */
- {85,0,r,V,0,0}, /* all */
- {86,0,r,V,0,0}, /* any */
- {87,0,r,V,0,0}, /* parity */
- {0,0,0,0,0,0},
- {88,5,r,V,0,0}, /* max.b */
- {88,6,r,V,0,0}, /* max.h */
- {88,7,r,V,0,0}, /* max.w */
- {88,8,r,V,0,0}, /* max.l */
- {89,5,r,V,0,0}, /* min.b */
- {89,6,r,V,0,0}, /* min.h */
- {89,7,r,V,0,0}, /* min.w */
- {89,8,r,V,0,0}, /* min.l */
- {84,3,r,V,0,0}, /* sum.s */
- {84,4,r,V,0,0}, /* sum.d */
- {90,3,r,V,0,0}, /* prod.s */
- {90,4,r,V,0,0}, /* prod.d */
- {88,3,r,V,0,0}, /* max.s */
- {88,4,r,V,0,0}, /* max.d */
- {89,3,r,V,0,0}, /* min.s */
- {89,4,r,V,0,0}, /* min.d */
- {90,5,r,V,0,0}, /* prod.b */
- {90,6,r,V,0,0}, /* prod.h */
- {90,7,r,V,0,0}, /* prod.w */
- {90,8,r,V,0,0}, /* prod.l */
- {35,2,lr,VM,S,0}, /* plc.f */
- {35,1,lr,VM,S,0}, /* plc.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr formatx[] = {
- {0,0,0,0,0,0},
-};
-
-const struct formstr format1a[] = {
- {91,0,imr,A,0,0}, /* halt */
- {92,0,a4,0,0,0}, /* sysc */
- {18,6,imr,A,0,0}, /* ld.h */
- {18,7,imr,A,0,0}, /* ld.w */
- {5,0,imr,A,0,0}, /* and */
- {6,0,imr,A,0,0}, /* or */
- {7,0,imr,A,0,0}, /* xor */
- {8,0,imr,A,0,0}, /* shf */
- {9,6,imr,A,0,0}, /* add.h */
- {9,7,imr,A,0,0}, /* add.w */
- {10,6,imr,A,0,0}, /* sub.h */
- {10,7,imr,A,0,0}, /* sub.w */
- {3,6,imr,A,0,0}, /* mul.h */
- {3,7,imr,A,0,0}, /* mul.w */
- {4,6,imr,A,0,0}, /* div.h */
- {4,7,imr,A,0,0}, /* div.w */
- {18,7,iml,VL,0,0}, /* ld.w */
- {18,7,iml,VS,0,0}, /* ld.w */
- {0,0,0,0,0,0},
- {8,7,imr,S,0,0}, /* shf.w */
- {93,0,a5,0,0,0}, /* trap */
- {0,0,0,0,0,0},
- {37,6,imr,A,0,0}, /* eq.h */
- {37,7,imr,A,0,0}, /* eq.w */
- {38,6,imr,A,0,0}, /* leu.h */
- {38,7,imr,A,0,0}, /* leu.w */
- {39,6,imr,A,0,0}, /* ltu.h */
- {39,7,imr,A,0,0}, /* ltu.w */
- {40,6,imr,A,0,0}, /* le.h */
- {40,7,imr,A,0,0}, /* le.w */
- {41,6,imr,A,0,0}, /* lt.h */
- {41,7,imr,A,0,0}, /* lt.w */
-};
-
-const struct formstr format1b[] = {
- {18,4,imr,S,0,0}, /* ld.d */
- {18,10,imr,S,0,0}, /* ld.u */
- {18,8,imr,S,0,0}, /* ld.l */
- {18,7,imr,S,0,0}, /* ld.w */
- {5,0,imr,S,0,0}, /* and */
- {6,0,imr,S,0,0}, /* or */
- {7,0,imr,S,0,0}, /* xor */
- {8,0,imr,S,0,0}, /* shf */
- {9,6,imr,S,0,0}, /* add.h */
- {9,7,imr,S,0,0}, /* add.w */
- {10,6,imr,S,0,0}, /* sub.h */
- {10,7,imr,S,0,0}, /* sub.w */
- {3,6,imr,S,0,0}, /* mul.h */
- {3,7,imr,S,0,0}, /* mul.w */
- {4,6,imr,S,0,0}, /* div.h */
- {4,7,imr,S,0,0}, /* div.w */
- {9,3,imr,S,0,0}, /* add.s */
- {10,3,imr,S,0,0}, /* sub.s */
- {3,3,imr,S,0,0}, /* mul.s */
- {4,3,imr,S,0,0}, /* div.s */
- {40,3,imr,S,0,0}, /* le.s */
- {41,3,imr,S,0,0}, /* lt.s */
- {37,6,imr,S,0,0}, /* eq.h */
- {37,7,imr,S,0,0}, /* eq.w */
- {38,6,imr,S,0,0}, /* leu.h */
- {38,7,imr,S,0,0}, /* leu.w */
- {39,6,imr,S,0,0}, /* ltu.h */
- {39,7,imr,S,0,0}, /* ltu.w */
- {40,6,imr,S,0,0}, /* le.h */
- {40,7,imr,S,0,0}, /* le.w */
- {41,6,imr,S,0,0}, /* lt.h */
- {41,7,imr,S,0,0}, /* lt.w */
-};
-
-const struct formstr e0_format0[] = {
- {10,3,rrr,S,V,V}, /* sub.s */
- {10,4,rrr,S,V,V}, /* sub.d */
- {4,3,rrr,S,V,V}, /* div.s */
- {4,4,rrr,S,V,V}, /* div.d */
- {10,11,rrr,S,V,V}, /* sub.s.f */
- {10,12,rrr,S,V,V}, /* sub.d.f */
- {4,11,rrr,S,V,V}, /* div.s.f */
- {4,12,rrr,S,V,V}, /* div.d.f */
- {3,11,rrr,V,V,V}, /* mul.s.f */
- {3,12,rrr,V,V,V}, /* mul.d.f */
- {4,11,rrr,V,V,V}, /* div.s.f */
- {4,12,rrr,V,V,V}, /* div.d.f */
- {3,11,rrr,V,S,V}, /* mul.s.f */
- {3,12,rrr,V,S,V}, /* mul.d.f */
- {4,11,rrr,V,S,V}, /* div.s.f */
- {4,12,rrr,V,S,V}, /* div.d.f */
- {5,2,rrr,V,V,V}, /* and.f */
- {6,2,rrr,V,V,V}, /* or.f */
- {7,2,rrr,V,V,V}, /* xor.f */
- {8,2,rrr,V,V,V}, /* shf.f */
- {5,2,rrr,V,S,V}, /* and.f */
- {6,2,rrr,V,S,V}, /* or.f */
- {7,2,rrr,V,S,V}, /* xor.f */
- {8,2,rrr,V,S,V}, /* shf.f */
- {9,11,rrr,V,V,V}, /* add.s.f */
- {9,12,rrr,V,V,V}, /* add.d.f */
- {10,11,rrr,V,V,V}, /* sub.s.f */
- {10,12,rrr,V,V,V}, /* sub.d.f */
- {9,11,rrr,V,S,V}, /* add.s.f */
- {9,12,rrr,V,S,V}, /* add.d.f */
- {10,11,rrr,V,S,V}, /* sub.s.f */
- {10,12,rrr,V,S,V}, /* sub.d.f */
- {9,13,rrr,V,V,V}, /* add.b.f */
- {9,14,rrr,V,V,V}, /* add.h.f */
- {9,15,rrr,V,V,V}, /* add.w.f */
- {9,16,rrr,V,V,V}, /* add.l.f */
- {9,13,rrr,V,S,V}, /* add.b.f */
- {9,14,rrr,V,S,V}, /* add.h.f */
- {9,15,rrr,V,S,V}, /* add.w.f */
- {9,16,rrr,V,S,V}, /* add.l.f */
- {10,13,rrr,V,V,V}, /* sub.b.f */
- {10,14,rrr,V,V,V}, /* sub.h.f */
- {10,15,rrr,V,V,V}, /* sub.w.f */
- {10,16,rrr,V,V,V}, /* sub.l.f */
- {10,13,rrr,V,S,V}, /* sub.b.f */
- {10,14,rrr,V,S,V}, /* sub.h.f */
- {10,15,rrr,V,S,V}, /* sub.w.f */
- {10,16,rrr,V,S,V}, /* sub.l.f */
- {3,13,rrr,V,V,V}, /* mul.b.f */
- {3,14,rrr,V,V,V}, /* mul.h.f */
- {3,15,rrr,V,V,V}, /* mul.w.f */
- {3,16,rrr,V,V,V}, /* mul.l.f */
- {3,13,rrr,V,S,V}, /* mul.b.f */
- {3,14,rrr,V,S,V}, /* mul.h.f */
- {3,15,rrr,V,S,V}, /* mul.w.f */
- {3,16,rrr,V,S,V}, /* mul.l.f */
- {4,13,rrr,V,V,V}, /* div.b.f */
- {4,14,rrr,V,V,V}, /* div.h.f */
- {4,15,rrr,V,V,V}, /* div.w.f */
- {4,16,rrr,V,V,V}, /* div.l.f */
- {4,13,rrr,V,S,V}, /* div.b.f */
- {4,14,rrr,V,S,V}, /* div.h.f */
- {4,15,rrr,V,S,V}, /* div.w.f */
- {4,16,rrr,V,S,V}, /* div.l.f */
-};
-
-const struct formstr e0_format1[] = {
- {0,0,0,0,0,0},
- {94,0,a3,0,0,0}, /* tst */
- {95,0,a3,0,0,0}, /* lck */
- {96,0,a3,0,0,0}, /* ulk */
- {17,0,a1r,S,0,0}, /* ldea */
- {97,0,a1r,A,0,0}, /* spawn */
- {98,0,a1r,A,0,0}, /* ldcmr */
- {99,0,a2r,A,0,0}, /* stcmr */
- {100,0,a1r,A,0,0}, /* popr */
- {101,0,a2r,A,0,0}, /* pshr */
- {102,7,a1r,A,0,0}, /* rcvr.w */
- {103,7,a2r,A,0,0}, /* matm.w */
- {104,7,a2r,A,0,0}, /* sndr.w */
- {104,8,a2r,S,0,0}, /* sndr.l */
- {102,8,a1r,S,0,0}, /* rcvr.l */
- {103,8,a2r,S,0,0}, /* matm.l */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {105,7,a2r,A,0,0}, /* putr.w */
- {105,8,a2r,S,0,0}, /* putr.l */
- {106,7,a1r,A,0,0}, /* getr.w */
- {106,8,a1r,S,0,0}, /* getr.l */
- {26,13,a2r,S,0,0}, /* ste.b.f */
- {26,14,a2r,S,0,0}, /* ste.h.f */
- {26,15,a2r,S,0,0}, /* ste.w.f */
- {26,16,a2r,S,0,0}, /* ste.l.f */
- {107,7,a2r,A,0,0}, /* matr.w */
- {108,7,a2r,A,0,0}, /* mat.w */
- {109,7,a1r,A,0,0}, /* get.w */
- {110,7,a1r,A,0,0}, /* rcv.w */
- {0,0,0,0,0,0},
- {111,7,a1r,A,0,0}, /* inc.w */
- {112,7,a2r,A,0,0}, /* put.w */
- {113,7,a2r,A,0,0}, /* snd.w */
- {107,8,a2r,S,0,0}, /* matr.l */
- {108,8,a2r,S,0,0}, /* mat.l */
- {109,8,a1r,S,0,0}, /* get.l */
- {110,8,a1r,S,0,0}, /* rcv.l */
- {0,0,0,0,0,0},
- {111,8,a1r,S,0,0}, /* inc.l */
- {112,8,a2r,S,0,0}, /* put.l */
- {113,8,a2r,S,0,0}, /* snd.l */
- {18,13,a1r,V,0,0}, /* ld.b.f */
- {18,14,a1r,V,0,0}, /* ld.h.f */
- {18,15,a1r,V,0,0}, /* ld.w.f */
- {18,16,a1r,V,0,0}, /* ld.l.f */
- {21,13,a2r,V,0,0}, /* st.b.f */
- {21,14,a2r,V,0,0}, /* st.h.f */
- {21,15,a2r,V,0,0}, /* st.w.f */
- {21,16,a2r,V,0,0}, /* st.l.f */
-};
-
-const struct formstr e0_format2[] = {
- {28,5,rr,V,V,0}, /* cvtw.b */
- {28,6,rr,V,V,0}, /* cvtw.h */
- {29,7,rr,V,V,0}, /* cvtb.w */
- {30,7,rr,V,V,0}, /* cvth.w */
- {28,13,rr,V,V,0}, /* cvtw.b.f */
- {28,14,rr,V,V,0}, /* cvtw.h.f */
- {29,15,rr,V,V,0}, /* cvtb.w.f */
- {30,15,rr,V,V,0}, /* cvth.w.f */
- {31,8,rr,V,V,0}, /* cvts.l */
- {32,7,rr,V,V,0}, /* cvtd.w */
- {33,3,rr,V,V,0}, /* cvtl.s */
- {28,4,rr,V,V,0}, /* cvtw.d */
- {31,16,rr,V,V,0}, /* cvts.l.f */
- {32,15,rr,V,V,0}, /* cvtd.w.f */
- {33,11,rr,V,V,0}, /* cvtl.s.f */
- {28,12,rr,V,V,0}, /* cvtw.d.f */
- {114,0,rr,S,S,0}, /* enal */
- {8,7,rr,S,S,0}, /* shf.w */
- {115,0,rr,S,S,0}, /* enag */
- {0,0,0,0,0,0},
- {28,4,rr,S,S,0}, /* cvtw.d */
- {32,7,rr,S,S,0}, /* cvtd.w */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {116,3,rr,S,S,0}, /* frint.s */
- {116,4,rr,S,S,0}, /* frint.d */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {116,3,rr,V,V,0}, /* frint.s */
- {116,4,rr,V,V,0}, /* frint.d */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {116,11,rr,V,V,0}, /* frint.s.f */
- {116,12,rr,V,V,0}, /* frint.d.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {81,3,rr,V,V,0}, /* sqrt.s */
- {81,4,rr,V,V,0}, /* sqrt.d */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {81,11,rr,V,V,0}, /* sqrt.s.f */
- {81,12,rr,V,V,0}, /* sqrt.d.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format3[] = {
- {32,11,rr,V,V,0}, /* cvtd.s.f */
- {31,12,rr,V,V,0}, /* cvts.d.f */
- {33,12,rr,V,V,0}, /* cvtl.d.f */
- {32,16,rr,V,V,0}, /* cvtd.l.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {36,2,rr,V,V,0}, /* tzc.f */
- {44,2,rr,V,V,0}, /* lop.f */
- {117,2,rr,V,V,0}, /* xpnd.f */
- {42,2,rr,V,V,0}, /* not.f */
- {8,2,rr,S,V,0}, /* shf.f */
- {35,17,rr,V,V,0}, /* plc.t.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {37,11,rr,V,V,0}, /* eq.s.f */
- {37,12,rr,V,V,0}, /* eq.d.f */
- {43,11,rr,V,V,0}, /* neg.s.f */
- {43,12,rr,V,V,0}, /* neg.d.f */
- {37,11,rr,S,V,0}, /* eq.s.f */
- {37,12,rr,S,V,0}, /* eq.d.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {40,11,rr,V,V,0}, /* le.s.f */
- {40,12,rr,V,V,0}, /* le.d.f */
- {41,11,rr,V,V,0}, /* lt.s.f */
- {41,12,rr,V,V,0}, /* lt.d.f */
- {40,11,rr,S,V,0}, /* le.s.f */
- {40,12,rr,S,V,0}, /* le.d.f */
- {41,11,rr,S,V,0}, /* lt.s.f */
- {41,12,rr,S,V,0}, /* lt.d.f */
- {37,13,rr,V,V,0}, /* eq.b.f */
- {37,14,rr,V,V,0}, /* eq.h.f */
- {37,15,rr,V,V,0}, /* eq.w.f */
- {37,16,rr,V,V,0}, /* eq.l.f */
- {37,13,rr,S,V,0}, /* eq.b.f */
- {37,14,rr,S,V,0}, /* eq.h.f */
- {37,15,rr,S,V,0}, /* eq.w.f */
- {37,16,rr,S,V,0}, /* eq.l.f */
- {40,13,rr,V,V,0}, /* le.b.f */
- {40,14,rr,V,V,0}, /* le.h.f */
- {40,15,rr,V,V,0}, /* le.w.f */
- {40,16,rr,V,V,0}, /* le.l.f */
- {40,13,rr,S,V,0}, /* le.b.f */
- {40,14,rr,S,V,0}, /* le.h.f */
- {40,15,rr,S,V,0}, /* le.w.f */
- {40,16,rr,S,V,0}, /* le.l.f */
- {41,13,rr,V,V,0}, /* lt.b.f */
- {41,14,rr,V,V,0}, /* lt.h.f */
- {41,15,rr,V,V,0}, /* lt.w.f */
- {41,16,rr,V,V,0}, /* lt.l.f */
- {41,13,rr,S,V,0}, /* lt.b.f */
- {41,14,rr,S,V,0}, /* lt.h.f */
- {41,15,rr,S,V,0}, /* lt.w.f */
- {41,16,rr,S,V,0}, /* lt.l.f */
- {43,13,rr,V,V,0}, /* neg.b.f */
- {43,14,rr,V,V,0}, /* neg.h.f */
- {43,15,rr,V,V,0}, /* neg.w.f */
- {43,16,rr,V,V,0}, /* neg.l.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format4[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format5[] = {
- {51,13,rr,V,V,0}, /* ldvi.b.f */
- {51,14,rr,V,V,0}, /* ldvi.h.f */
- {51,15,rr,V,V,0}, /* ldvi.w.f */
- {51,16,rr,V,V,0}, /* ldvi.l.f */
- {28,11,rr,V,V,0}, /* cvtw.s.f */
- {31,15,rr,V,V,0}, /* cvts.w.f */
- {28,16,rr,V,V,0}, /* cvtw.l.f */
- {33,15,rr,V,V,0}, /* cvtl.w.f */
- {52,13,rxr,V,V,0}, /* stvi.b.f */
- {52,14,rxr,V,V,0}, /* stvi.h.f */
- {52,15,rxr,V,V,0}, /* stvi.w.f */
- {52,16,rxr,V,V,0}, /* stvi.l.f */
- {52,13,rxr,S,V,0}, /* stvi.b.f */
- {52,14,rxr,S,V,0}, /* stvi.h.f */
- {52,15,rxr,S,V,0}, /* stvi.w.f */
- {52,16,rxr,S,V,0}, /* stvi.l.f */
-};
-
-const struct formstr e0_format6[] = {
- {0,0,rxl,S,CIR,0}, /* mov */
- {0,0,lr,CIR,S,0}, /* mov */
- {0,0,lr,TOC,S,0}, /* mov */
- {0,0,lr,CPUID,S,0}, /* mov */
- {0,0,rxl,S,TTR,0}, /* mov */
- {0,0,lr,TTR,S,0}, /* mov */
- {118,0,nops,0,0,0}, /* ctrsl */
- {119,0,nops,0,0,0}, /* ctrsg */
- {0,0,rxl,S,VMU,0}, /* mov */
- {0,0,lr,VMU,S,0}, /* mov */
- {0,0,rxl,S,VML,0}, /* mov */
- {0,0,lr,VML,S,0}, /* mov */
- {0,0,rxl,S,ICR,0}, /* mov */
- {0,0,lr,ICR,S,0}, /* mov */
- {0,0,rxl,S,TCPU,0}, /* mov */
- {0,0,lr,TCPU,S,0}, /* mov */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {120,0,nops,0,0,0}, /* stop */
- {0,0,0,0,0,0},
- {0,0,rxl,S,TID,0}, /* mov */
- {0,0,lr,TID,S,0}, /* mov */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e0_format7[] = {
- {84,13,r,V,0,0}, /* sum.b.f */
- {84,14,r,V,0,0}, /* sum.h.f */
- {84,15,r,V,0,0}, /* sum.w.f */
- {84,16,r,V,0,0}, /* sum.l.f */
- {85,2,r,V,0,0}, /* all.f */
- {86,2,r,V,0,0}, /* any.f */
- {87,2,r,V,0,0}, /* parity.f */
- {0,0,0,0,0,0},
- {88,13,r,V,0,0}, /* max.b.f */
- {88,14,r,V,0,0}, /* max.h.f */
- {88,15,r,V,0,0}, /* max.w.f */
- {88,16,r,V,0,0}, /* max.l.f */
- {89,13,r,V,0,0}, /* min.b.f */
- {89,14,r,V,0,0}, /* min.h.f */
- {89,15,r,V,0,0}, /* min.w.f */
- {89,16,r,V,0,0}, /* min.l.f */
- {84,11,r,V,0,0}, /* sum.s.f */
- {84,12,r,V,0,0}, /* sum.d.f */
- {90,11,r,V,0,0}, /* prod.s.f */
- {90,12,r,V,0,0}, /* prod.d.f */
- {88,11,r,V,0,0}, /* max.s.f */
- {88,12,r,V,0,0}, /* max.d.f */
- {89,11,r,V,0,0}, /* min.s.f */
- {89,12,r,V,0,0}, /* min.d.f */
- {90,13,r,V,0,0}, /* prod.b.f */
- {90,14,r,V,0,0}, /* prod.h.f */
- {90,15,r,V,0,0}, /* prod.w.f */
- {90,16,r,V,0,0}, /* prod.l.f */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format0[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {10,18,rrr,S,V,V}, /* sub.s.t */
- {10,19,rrr,S,V,V}, /* sub.d.t */
- {4,18,rrr,S,V,V}, /* div.s.t */
- {4,19,rrr,S,V,V}, /* div.d.t */
- {3,18,rrr,V,V,V}, /* mul.s.t */
- {3,19,rrr,V,V,V}, /* mul.d.t */
- {4,18,rrr,V,V,V}, /* div.s.t */
- {4,19,rrr,V,V,V}, /* div.d.t */
- {3,18,rrr,V,S,V}, /* mul.s.t */
- {3,19,rrr,V,S,V}, /* mul.d.t */
- {4,18,rrr,V,S,V}, /* div.s.t */
- {4,19,rrr,V,S,V}, /* div.d.t */
- {5,1,rrr,V,V,V}, /* and.t */
- {6,1,rrr,V,V,V}, /* or.t */
- {7,1,rrr,V,V,V}, /* xor.t */
- {8,1,rrr,V,V,V}, /* shf.t */
- {5,1,rrr,V,S,V}, /* and.t */
- {6,1,rrr,V,S,V}, /* or.t */
- {7,1,rrr,V,S,V}, /* xor.t */
- {8,1,rrr,V,S,V}, /* shf.t */
- {9,18,rrr,V,V,V}, /* add.s.t */
- {9,19,rrr,V,V,V}, /* add.d.t */
- {10,18,rrr,V,V,V}, /* sub.s.t */
- {10,19,rrr,V,V,V}, /* sub.d.t */
- {9,18,rrr,V,S,V}, /* add.s.t */
- {9,19,rrr,V,S,V}, /* add.d.t */
- {10,18,rrr,V,S,V}, /* sub.s.t */
- {10,19,rrr,V,S,V}, /* sub.d.t */
- {9,20,rrr,V,V,V}, /* add.b.t */
- {9,21,rrr,V,V,V}, /* add.h.t */
- {9,22,rrr,V,V,V}, /* add.w.t */
- {9,23,rrr,V,V,V}, /* add.l.t */
- {9,20,rrr,V,S,V}, /* add.b.t */
- {9,21,rrr,V,S,V}, /* add.h.t */
- {9,22,rrr,V,S,V}, /* add.w.t */
- {9,23,rrr,V,S,V}, /* add.l.t */
- {10,20,rrr,V,V,V}, /* sub.b.t */
- {10,21,rrr,V,V,V}, /* sub.h.t */
- {10,22,rrr,V,V,V}, /* sub.w.t */
- {10,23,rrr,V,V,V}, /* sub.l.t */
- {10,20,rrr,V,S,V}, /* sub.b.t */
- {10,21,rrr,V,S,V}, /* sub.h.t */
- {10,22,rrr,V,S,V}, /* sub.w.t */
- {10,23,rrr,V,S,V}, /* sub.l.t */
- {3,20,rrr,V,V,V}, /* mul.b.t */
- {3,21,rrr,V,V,V}, /* mul.h.t */
- {3,22,rrr,V,V,V}, /* mul.w.t */
- {3,23,rrr,V,V,V}, /* mul.l.t */
- {3,20,rrr,V,S,V}, /* mul.b.t */
- {3,21,rrr,V,S,V}, /* mul.h.t */
- {3,22,rrr,V,S,V}, /* mul.w.t */
- {3,23,rrr,V,S,V}, /* mul.l.t */
- {4,20,rrr,V,V,V}, /* div.b.t */
- {4,21,rrr,V,V,V}, /* div.h.t */
- {4,22,rrr,V,V,V}, /* div.w.t */
- {4,23,rrr,V,V,V}, /* div.l.t */
- {4,20,rrr,V,S,V}, /* div.b.t */
- {4,21,rrr,V,S,V}, /* div.h.t */
- {4,22,rrr,V,S,V}, /* div.w.t */
- {4,23,rrr,V,S,V}, /* div.l.t */
-};
-
-const struct formstr e1_format1[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {26,20,a2r,S,0,0}, /* ste.b.t */
- {26,21,a2r,S,0,0}, /* ste.h.t */
- {26,22,a2r,S,0,0}, /* ste.w.t */
- {26,23,a2r,S,0,0}, /* ste.l.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {18,20,a1r,V,0,0}, /* ld.b.t */
- {18,21,a1r,V,0,0}, /* ld.h.t */
- {18,22,a1r,V,0,0}, /* ld.w.t */
- {18,23,a1r,V,0,0}, /* ld.l.t */
- {21,20,a2r,V,0,0}, /* st.b.t */
- {21,21,a2r,V,0,0}, /* st.h.t */
- {21,22,a2r,V,0,0}, /* st.w.t */
- {21,23,a2r,V,0,0}, /* st.l.t */
-};
-
-const struct formstr e1_format2[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {28,20,rr,V,V,0}, /* cvtw.b.t */
- {28,21,rr,V,V,0}, /* cvtw.h.t */
- {29,22,rr,V,V,0}, /* cvtb.w.t */
- {30,22,rr,V,V,0}, /* cvth.w.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {31,23,rr,V,V,0}, /* cvts.l.t */
- {32,22,rr,V,V,0}, /* cvtd.w.t */
- {33,18,rr,V,V,0}, /* cvtl.s.t */
- {28,19,rr,V,V,0}, /* cvtw.d.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {116,18,rr,V,V,0}, /* frint.s.t */
- {116,19,rr,V,V,0}, /* frint.d.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {81,18,rr,V,V,0}, /* sqrt.s.t */
- {81,19,rr,V,V,0}, /* sqrt.d.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format3[] = {
- {32,18,rr,V,V,0}, /* cvtd.s.t */
- {31,19,rr,V,V,0}, /* cvts.d.t */
- {33,19,rr,V,V,0}, /* cvtl.d.t */
- {32,23,rr,V,V,0}, /* cvtd.l.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {36,1,rr,V,V,0}, /* tzc.t */
- {44,1,rr,V,V,0}, /* lop.t */
- {117,1,rr,V,V,0}, /* xpnd.t */
- {42,1,rr,V,V,0}, /* not.t */
- {8,1,rr,S,V,0}, /* shf.t */
- {35,24,rr,V,V,0}, /* plc.t.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {37,18,rr,V,V,0}, /* eq.s.t */
- {37,19,rr,V,V,0}, /* eq.d.t */
- {43,18,rr,V,V,0}, /* neg.s.t */
- {43,19,rr,V,V,0}, /* neg.d.t */
- {37,18,rr,S,V,0}, /* eq.s.t */
- {37,19,rr,S,V,0}, /* eq.d.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {40,18,rr,V,V,0}, /* le.s.t */
- {40,19,rr,V,V,0}, /* le.d.t */
- {41,18,rr,V,V,0}, /* lt.s.t */
- {41,19,rr,V,V,0}, /* lt.d.t */
- {40,18,rr,S,V,0}, /* le.s.t */
- {40,19,rr,S,V,0}, /* le.d.t */
- {41,18,rr,S,V,0}, /* lt.s.t */
- {41,19,rr,S,V,0}, /* lt.d.t */
- {37,20,rr,V,V,0}, /* eq.b.t */
- {37,21,rr,V,V,0}, /* eq.h.t */
- {37,22,rr,V,V,0}, /* eq.w.t */
- {37,23,rr,V,V,0}, /* eq.l.t */
- {37,20,rr,S,V,0}, /* eq.b.t */
- {37,21,rr,S,V,0}, /* eq.h.t */
- {37,22,rr,S,V,0}, /* eq.w.t */
- {37,23,rr,S,V,0}, /* eq.l.t */
- {40,20,rr,V,V,0}, /* le.b.t */
- {40,21,rr,V,V,0}, /* le.h.t */
- {40,22,rr,V,V,0}, /* le.w.t */
- {40,23,rr,V,V,0}, /* le.l.t */
- {40,20,rr,S,V,0}, /* le.b.t */
- {40,21,rr,S,V,0}, /* le.h.t */
- {40,22,rr,S,V,0}, /* le.w.t */
- {40,23,rr,S,V,0}, /* le.l.t */
- {41,20,rr,V,V,0}, /* lt.b.t */
- {41,21,rr,V,V,0}, /* lt.h.t */
- {41,22,rr,V,V,0}, /* lt.w.t */
- {41,23,rr,V,V,0}, /* lt.l.t */
- {41,20,rr,S,V,0}, /* lt.b.t */
- {41,21,rr,S,V,0}, /* lt.h.t */
- {41,22,rr,S,V,0}, /* lt.w.t */
- {41,23,rr,S,V,0}, /* lt.l.t */
- {43,20,rr,V,V,0}, /* neg.b.t */
- {43,21,rr,V,V,0}, /* neg.h.t */
- {43,22,rr,V,V,0}, /* neg.w.t */
- {43,23,rr,V,V,0}, /* neg.l.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format4[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format5[] = {
- {51,20,rr,V,V,0}, /* ldvi.b.t */
- {51,21,rr,V,V,0}, /* ldvi.h.t */
- {51,22,rr,V,V,0}, /* ldvi.w.t */
- {51,23,rr,V,V,0}, /* ldvi.l.t */
- {28,18,rr,V,V,0}, /* cvtw.s.t */
- {31,22,rr,V,V,0}, /* cvts.w.t */
- {28,23,rr,V,V,0}, /* cvtw.l.t */
- {33,22,rr,V,V,0}, /* cvtl.w.t */
- {52,20,rxr,V,V,0}, /* stvi.b.t */
- {52,21,rxr,V,V,0}, /* stvi.h.t */
- {52,22,rxr,V,V,0}, /* stvi.w.t */
- {52,23,rxr,V,V,0}, /* stvi.l.t */
- {52,20,rxr,S,V,0}, /* stvi.b.t */
- {52,21,rxr,S,V,0}, /* stvi.h.t */
- {52,22,rxr,S,V,0}, /* stvi.w.t */
- {52,23,rxr,S,V,0}, /* stvi.l.t */
-};
-
-const struct formstr e1_format6[] = {
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-const struct formstr e1_format7[] = {
- {84,20,r,V,0,0}, /* sum.b.t */
- {84,21,r,V,0,0}, /* sum.h.t */
- {84,22,r,V,0,0}, /* sum.w.t */
- {84,23,r,V,0,0}, /* sum.l.t */
- {85,1,r,V,0,0}, /* all.t */
- {86,1,r,V,0,0}, /* any.t */
- {87,1,r,V,0,0}, /* parity.t */
- {0,0,0,0,0,0},
- {88,20,r,V,0,0}, /* max.b.t */
- {88,21,r,V,0,0}, /* max.h.t */
- {88,22,r,V,0,0}, /* max.w.t */
- {88,23,r,V,0,0}, /* max.l.t */
- {89,20,r,V,0,0}, /* min.b.t */
- {89,21,r,V,0,0}, /* min.h.t */
- {89,22,r,V,0,0}, /* min.w.t */
- {89,23,r,V,0,0}, /* min.l.t */
- {84,18,r,V,0,0}, /* sum.s.t */
- {84,19,r,V,0,0}, /* sum.d.t */
- {90,18,r,V,0,0}, /* prod.s.t */
- {90,19,r,V,0,0}, /* prod.d.t */
- {88,18,r,V,0,0}, /* max.s.t */
- {88,19,r,V,0,0}, /* max.d.t */
- {89,18,r,V,0,0}, /* min.s.t */
- {89,19,r,V,0,0}, /* min.d.t */
- {90,20,r,V,0,0}, /* prod.b.t */
- {90,21,r,V,0,0}, /* prod.h.t */
- {90,22,r,V,0,0}, /* prod.w.t */
- {90,23,r,V,0,0}, /* prod.l.t */
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
- {0,0,0,0,0,0},
-};
-
-char *lop[] = {
- "mov", /* 0 */
- "merg", /* 1 */
- "mask", /* 2 */
- "mul", /* 3 */
- "div", /* 4 */
- "and", /* 5 */
- "or", /* 6 */
- "xor", /* 7 */
- "shf", /* 8 */
- "add", /* 9 */
- "sub", /* 10 */
- "exit", /* 11 */
- "jmp", /* 12 */
- "jmpi", /* 13 */
- "jmpa", /* 14 */
- "jmps", /* 15 */
- "tac", /* 16 */
- "ldea", /* 17 */
- "ld", /* 18 */
- "tas", /* 19 */
- "pshea", /* 20 */
- "st", /* 21 */
- "call", /* 22 */
- "calls", /* 23 */
- "callq", /* 24 */
- "pfork", /* 25 */
- "ste", /* 26 */
- "incr", /* 27 */
- "cvtw", /* 28 */
- "cvtb", /* 29 */
- "cvth", /* 30 */
- "cvts", /* 31 */
- "cvtd", /* 32 */
- "cvtl", /* 33 */
- "ldpa", /* 34 */
- "plc", /* 35 */
- "tzc", /* 36 */
- "eq", /* 37 */
- "leu", /* 38 */
- "ltu", /* 39 */
- "le", /* 40 */
- "lt", /* 41 */
- "not", /* 42 */
- "neg", /* 43 */
- "lop", /* 44 */
- "cprs", /* 45 */
- "nop", /* 46 */
- "br", /* 47 */
- "bri", /* 48 */
- "bra", /* 49 */
- "brs", /* 50 */
- "ldvi", /* 51 */
- "stvi", /* 52 */
- "ldsdr", /* 53 */
- "ldkdr", /* 54 */
- "ln", /* 55 */
- "patu", /* 56 */
- "pate", /* 57 */
- "pich", /* 58 */
- "plch", /* 59 */
- "idle", /* 60 */
- "rtnq", /* 61 */
- "cfork", /* 62 */
- "rtn", /* 63 */
- "wfork", /* 64 */
- "join", /* 65 */
- "rtnc", /* 66 */
- "exp", /* 67 */
- "sin", /* 68 */
- "cos", /* 69 */
- "psh", /* 70 */
- "pop", /* 71 */
- "eni", /* 72 */
- "dsi", /* 73 */
- "bkpt", /* 74 */
- "msync", /* 75 */
- "mski", /* 76 */
- "xmti", /* 77 */
- "tstvv", /* 78 */
- "diag", /* 79 */
- "pbkpt", /* 80 */
- "sqrt", /* 81 */
- "casr", /* 82 */
- "atan", /* 83 */
- "sum", /* 84 */
- "all", /* 85 */
- "any", /* 86 */
- "parity", /* 87 */
- "max", /* 88 */
- "min", /* 89 */
- "prod", /* 90 */
- "halt", /* 91 */
- "sysc", /* 92 */
- "trap", /* 93 */
- "tst", /* 94 */
- "lck", /* 95 */
- "ulk", /* 96 */
- "spawn", /* 97 */
- "ldcmr", /* 98 */
- "stcmr", /* 99 */
- "popr", /* 100 */
- "pshr", /* 101 */
- "rcvr", /* 102 */
- "matm", /* 103 */
- "sndr", /* 104 */
- "putr", /* 105 */
- "getr", /* 106 */
- "matr", /* 107 */
- "mat", /* 108 */
- "get", /* 109 */
- "rcv", /* 110 */
- "inc", /* 111 */
- "put", /* 112 */
- "snd", /* 113 */
- "enal", /* 114 */
- "enag", /* 115 */
- "frint", /* 116 */
- "xpnd", /* 117 */
- "ctrsl", /* 118 */
- "ctrsg", /* 119 */
- "stop", /* 120 */
-};
-
-char *rop[] = {
- "", /* 0 */
- ".t", /* 1 */
- ".f", /* 2 */
- ".s", /* 3 */
- ".d", /* 4 */
- ".b", /* 5 */
- ".h", /* 6 */
- ".w", /* 7 */
- ".l", /* 8 */
- ".x", /* 9 */
- ".u", /* 10 */
- ".s.f", /* 11 */
- ".d.f", /* 12 */
- ".b.f", /* 13 */
- ".h.f", /* 14 */
- ".w.f", /* 15 */
- ".l.f", /* 16 */
- ".t.f", /* 17 */
- ".s.t", /* 18 */
- ".d.t", /* 19 */
- ".b.t", /* 20 */
- ".h.t", /* 21 */
- ".w.t", /* 22 */
- ".l.t", /* 23 */
- ".t.t", /* 24 */
-};
diff --git a/include/opcode/cr16.h b/include/opcode/cr16.h
deleted file mode 100644
index 2d322882e..000000000
--- a/include/opcode/cr16.h
+++ /dev/null
@@ -1,438 +0,0 @@
-/* cr16.h -- Header file for CR16 opcode and register tables.
- Copyright 2007, 2008, 2010 Free Software Foundation, Inc.
- Contributed by M R Swami Reddy
-
- This file is part of GAS, GDB and the GNU binutils.
-
- GAS, GDB, and GNU binutils 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 3, or (at your
- option) any later version.
-
- GAS, GDB, and GNU binutils are distributed in the hope that they 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _CR16_H_
-#define _CR16_H_
-
-/* CR16 core Registers :
- The enums are used as indices to CR16 registers table (cr16_regtab).
- Therefore, order MUST be preserved. */
-
-typedef enum
- {
- /* 16-bit general purpose registers. */
- r0, r1, r2, r3,
- r4, r5, r6, r7,
- r8, r9, r10, r11,
- r12_L = 12, r13_L = 13, ra = 14, sp_L = 15,
-
- /* 32-bit general purpose registers. */
- r12 = 12, r13 = 13, r14 = 14, r15 = 15,
- era = 14, sp = 15, RA,
-
- /* Not a register. */
- nullregister,
- MAX_REG
- }
-reg;
-
-/* CR16 processor registers and special registers :
- The enums are used as indices to CR16 processor registers table
- (cr16_pregtab). Therefore, order MUST be preserved. */
-
-typedef enum
- {
- /* processor registers. */
- dbs = MAX_REG,
- dsr, dcrl, dcrh,
- car0l, car0h, car1l, car1h,
- cfg, psr, intbasel, intbaseh,
- ispl, isph, uspl, usph,
- dcr = dcrl,
- car0 = car0l,
- car1 = car1l,
- intbase = intbasel,
- isp = ispl,
- usp = uspl,
- /* Not a processor register. */
- nullpregister = usph + 1,
- MAX_PREG
- }
-preg;
-
-/* CR16 Register types. */
-
-typedef enum
- {
- CR16_R_REGTYPE, /* r<N> */
- CR16_RP_REGTYPE, /* reg pair */
- CR16_P_REGTYPE /* Processor register */
- }
-reg_type;
-
-/* CR16 argument types :
- The argument types correspond to instructions operands
-
- Argument types :
- r - register
- rp - register pair
- c - constant
- i - immediate
- idxr - index with register
- idxrp - index with register pair
- rbase - register base
- rpbase - register pair base
- pr - processor register */
-
-typedef enum
- {
- arg_r,
- arg_c,
- arg_cr,
- arg_crp,
- arg_ic,
- arg_icr,
- arg_idxr,
- arg_idxrp,
- arg_rbase,
- arg_rpbase,
- arg_rp,
- arg_pr,
- arg_prp,
- arg_cc,
- arg_ra,
- /* Not an argument. */
- nullargs
- }
-argtype;
-
-/* CR16 operand types:The operand types correspond to instructions operands.*/
-
-typedef enum
- {
- dummy,
- /* N-bit signed immediate. */
- imm3, imm4, imm5, imm6, imm16, imm20, imm32,
- /* N-bit unsigned immediate. */
- uimm3, uimm3_1, uimm4, uimm4_1, uimm5, uimm16, uimm20, uimm32,
- /* N-bit signed displacement. */
- disps5, disps17, disps25,
- /* N-bit unsigned displacement. */
- dispe9,
- /* N-bit absolute address. */
- abs20, abs24,
- /* Register relative. */
- rra, rbase, rbase_disps20, rbase_dispe20,
- /* Register pair relative. */
- rpbase_disps0, rpbase_dispe4, rpbase_disps4, rpbase_disps16,
- rpbase_disps20, rpbase_dispe20,
- /* Register index. */
- rindex7_abs20, rindex8_abs20,
- /* Register pair index. */
- rpindex_disps0, rpindex_disps14, rpindex_disps20,
- /* register. */
- regr,
- /* register pair. */
- regp,
- /* processor register. */
- pregr,
- /* processor register 32 bit. */
- pregrp,
- /* condition code - 4 bit. */
- cc,
- /* Not an operand. */
- nulloperand,
- /* Maximum supported operand. */
- MAX_OPRD
- }
-operand_type;
-
-/* CR16 instruction types. */
-
-#define NO_TYPE_INS 0
-#define ARITH_INS 1
-#define LD_STOR_INS 2
-#define BRANCH_INS 3
-#define ARITH_BYTE_INS 4
-#define SHIFT_INS 5
-#define BRANCH_NEQ_INS 6
-#define LD_STOR_INS_INC 7
-#define STOR_IMM_INS 8
-#define CSTBIT_INS 9
-
-/* Maximum value supported for instruction types. */
-#define CR16_INS_MAX (1 << 4)
-/* Mask to record an instruction type. */
-#define CR16_INS_MASK (CR16_INS_MAX - 1)
-/* Return instruction type, given instruction's attributes. */
-#define CR16_INS_TYPE(attr) ((attr) & CR16_INS_MASK)
-
-/* Indicates whether this instruction has a register list as parameter. */
-#define REG_LIST CR16_INS_MAX
-
-/* The operands in binary and assembly are placed in reverse order.
- load - (REVERSE_MATCH)/store - (! REVERSE_MATCH). */
-#define REVERSE_MATCH (1 << 5)
-
-/* Printing formats, where the instruction prefix isn't consecutive. */
-#define FMT_1 (1 << 9) /* 0xF0F00000 */
-#define FMT_2 (1 << 10) /* 0xFFF0FF00 */
-#define FMT_3 (1 << 11) /* 0xFFF00F00 */
-#define FMT_4 (1 << 12) /* 0xFFF0F000 */
-#define FMT_5 (1 << 13) /* 0xFFF0FFF0 */
-#define FMT_CR16 (FMT_1 | FMT_2 | FMT_3 | FMT_4 | FMT_5)
-
-/* Indicates whether this instruction can be relaxed. */
-#define RELAXABLE (1 << 14)
-
-/* Indicates that instruction uses user registers (and not
- general-purpose registers) as operands. */
-#define USER_REG (1 << 15)
-
-
-/* Instruction shouldn't allow 'sp' usage. */
-#define NO_SP (1 << 17)
-
-/* Instruction shouldn't allow to push a register which is used as a rptr. */
-#define NO_RPTR (1 << 18)
-
-/* Maximum operands per instruction. */
-#define MAX_OPERANDS 5
-/* Maximum register name length. */
-#define MAX_REGNAME_LEN 10
-/* Maximum instruction length. */
-#define MAX_INST_LEN 256
-
-
-/* Values defined for the flags field of a struct operand_entry. */
-
-/* Operand must be an unsigned number. */
-#define OP_UNSIGNED (1 << 0)
-/* Operand must be a signed number. */
-#define OP_SIGNED (1 << 1)
-/* Operand must be a negative number. */
-#define OP_NEG (1 << 2)
-/* A special load/stor 4-bit unsigned displacement operand. */
-#define OP_DEC (1 << 3)
-/* Operand must be an even number. */
-#define OP_EVEN (1 << 4)
-/* Operand is shifted right. */
-#define OP_SHIFT (1 << 5)
-/* Operand is shifted right and decremented. */
-#define OP_SHIFT_DEC (1 << 6)
-/* Operand has reserved escape sequences. */
-#define OP_ESC (1 << 7)
-/* Operand must be a ABS20 number. */
-#define OP_ABS20 (1 << 8)
-/* Operand must be a ABS24 number. */
-#define OP_ABS24 (1 << 9)
-/* Operand has reserved escape sequences type 1. */
-#define OP_ESC1 (1 << 10)
-
-/* Single operand description. */
-
-typedef struct
- {
- /* Operand type. */
- operand_type op_type;
- /* Operand location within the opcode. */
- unsigned int shift;
- }
-operand_desc;
-
-/* Instruction data structure used in instruction table. */
-
-typedef struct
- {
- /* Name. */
- const char *mnemonic;
- /* Size (in words). */
- unsigned int size;
- /* Constant prefix (matched by the disassembler). */
- unsigned long match; /* ie opcode */
- /* Match size (in bits). */
- /* MASK: if( (i & match_bits) == match ) then match */
- int match_bits;
- /* Attributes. */
- unsigned int flags;
- /* Operands (always last, so unreferenced operands are initialized). */
- operand_desc operands[MAX_OPERANDS];
- }
-inst;
-
-/* Data structure for a single instruction's arguments (Operands). */
-
-typedef struct
- {
- /* Register or base register. */
- reg r;
- /* Register pair register. */
- reg rp;
- /* Index register. */
- reg i_r;
- /* Processor register. */
- preg pr;
- /* Processor register. 32 bit */
- preg prp;
- /* Constant/immediate/absolute value. */
- long constant;
- /* CC code. */
- unsigned int cc;
- /* Scaled index mode. */
- unsigned int scale;
- /* Argument type. */
- argtype type;
- /* Size of the argument (in bits) required to represent. */
- int size;
- /* The type of the expression. */
- unsigned char X_op;
- }
-argument;
-
-/* Internal structure to hold the various entities
- corresponding to the current assembling instruction. */
-
-typedef struct
- {
- /* Number of arguments. */
- int nargs;
- /* The argument data structure for storing args (operands). */
- argument arg[MAX_OPERANDS];
-/* The following fields are required only by CR16-assembler. */
-#ifdef TC_CR16
- /* Expression used for setting the fixups (if any). */
- expressionS exp;
- bfd_reloc_code_real_type rtype;
-#endif /* TC_CR16 */
- /* Instruction size (in bytes). */
- int size;
- }
-ins;
-
-/* Structure to hold information about predefined operands. */
-
-typedef struct
- {
- /* Size (in bits). */
- unsigned int bit_size;
- /* Argument type. */
- argtype arg_type;
- /* One bit syntax flags. */
- int flags;
- }
-operand_entry;
-
-/* Structure to hold trap handler information. */
-
-typedef struct
- {
- /* Trap name. */
- char *name;
- /* Index in dispatch table. */
- unsigned int entry;
- }
-trap_entry;
-
-/* Structure to hold information about predefined registers. */
-
-typedef struct
- {
- /* Name (string representation). */
- char *name;
- /* Value (enum representation). */
- union
- {
- /* Register. */
- reg reg_val;
- /* processor register. */
- preg preg_val;
- } value;
- /* Register image. */
- int image;
- /* Register type. */
- reg_type type;
- }
-reg_entry;
-
-/* CR16 opcode table. */
-extern const inst cr16_instruction[];
-extern const unsigned int cr16_num_opcodes;
-#define NUMOPCODES cr16_num_opcodes
-
-/* CR16 operands table. */
-extern const operand_entry cr16_optab[];
-extern const unsigned int cr16_num_optab;
-
-/* CR16 registers table. */
-extern const reg_entry cr16_regtab[];
-extern const unsigned int cr16_num_regs;
-#define NUMREGS cr16_num_regs
-
-/* CR16 register pair table. */
-extern const reg_entry cr16_regptab[];
-extern const unsigned int cr16_num_regps;
-#define NUMREGPS cr16_num_regps
-
-/* CR16 processor registers table. */
-extern const reg_entry cr16_pregtab[];
-extern const unsigned int cr16_num_pregs;
-#define NUMPREGS cr16_num_pregs
-
-/* CR16 processor registers - 32 bit table. */
-extern const reg_entry cr16_pregptab[];
-extern const unsigned int cr16_num_pregps;
-#define NUMPREGPS cr16_num_pregps
-
-/* CR16 trap/interrupt table. */
-extern const trap_entry cr16_traps[];
-extern const unsigned int cr16_num_traps;
-#define NUMTRAPS cr16_num_traps
-
-/* CR16 CC - codes bit table. */
-extern const char * cr16_b_cond_tab[];
-extern const unsigned int cr16_num_cc;
-#define NUMCC cr16_num_cc;
-
-
-/* Table of instructions with no operands. */
-extern const char * cr16_no_op_insn[];
-
-/* Current instruction we're assembling. */
-extern const inst *instruction;
-
-/* A macro for representing the instruction "constant" opcode, that is,
- the FIXED part of the instruction. The "constant" opcode is represented
- as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT)
- over that range. */
-#define BIN(OPC,SHIFT) (OPC << SHIFT)
-
-/* Is the current instruction type is TYPE ? */
-#define IS_INSN_TYPE(TYPE) \
- (CR16_INS_TYPE (instruction->flags) == TYPE)
-
-/* Is the current instruction mnemonic is MNEMONIC ? */
-#define IS_INSN_MNEMONIC(MNEMONIC) \
- (strcmp (instruction->mnemonic, MNEMONIC) == 0)
-
-/* Does the current instruction has register list ? */
-#define INST_HAS_REG_LIST \
- (instruction->flags & REG_LIST)
-
-
-/* Utility macros for string comparison. */
-#define streq(a, b) (strcmp (a, b) == 0)
-#define strneq(a, b, c) (strncmp (a, b, c) == 0)
-
-/* Long long type handling. */
-/* Replace all appearances of 'long long int' with LONGLONG. */
-typedef long long int LONGLONG;
-typedef unsigned long long ULONGLONG;
-
-#endif /* _CR16_H_ */
diff --git a/include/opcode/cris.h b/include/opcode/cris.h
deleted file mode 100644
index e57a8825c..000000000
--- a/include/opcode/cris.h
+++ /dev/null
@@ -1,367 +0,0 @@
-/* cris.h -- Header file for CRIS opcode and register tables.
- Copyright (C) 2000, 2001, 2004, 2010 Free Software Foundation, Inc.
- Contributed by Axis Communications AB, Lund, Sweden.
- Originally written for GAS 1.38.1 by Mikael Asker.
- Updated, BFDized and GNUified by Hans-Peter Nilsson.
-
- This file is part of GAS, GDB and the GNU binutils.
-
- GAS, GDB, and GNU binutils 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 3, or (at your
- option) any later version.
-
- GAS, GDB, and GNU binutils are distributed in the hope that they 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef __CRIS_H_INCLUDED_
-#define __CRIS_H_INCLUDED_
-
-#if !defined(__STDC__) && !defined(const)
-#define const
-#endif
-
-
-/* Registers. */
-#define MAX_REG (15)
-#define REG_SP (14)
-#define REG_PC (15)
-
-/* CPU version control of disassembly and assembly of instructions.
- May affect how the instruction is assembled, at least the size of
- immediate operands. */
-enum cris_insn_version_usage
-{
- /* Any version. */
- cris_ver_version_all=0,
-
- /* Indeterminate (intended for disassembly only, or obsolete). */
- cris_ver_warning,
-
- /* Only for v0..3 (Etrax 1..4). */
- cris_ver_v0_3,
-
- /* Only for v3 or higher (ETRAX 4 and beyond). */
- cris_ver_v3p,
-
- /* Only for v8 (Etrax 100). */
- cris_ver_v8,
-
- /* Only for v8 or higher (ETRAX 100, ETRAX 100 LX). */
- cris_ver_v8p,
-
- /* Only for v0..10. FIXME: Not sure what to do with this. */
- cris_ver_sim_v0_10,
-
- /* Only for v0..10. */
- cris_ver_v0_10,
-
- /* Only for v3..10. (ETRAX 4, ETRAX 100 and ETRAX 100 LX). */
- cris_ver_v3_10,
-
- /* Only for v8..10 (ETRAX 100 and ETRAX 100 LX). */
- cris_ver_v8_10,
-
- /* Only for v10 (ETRAX 100 LX) and same series. */
- cris_ver_v10,
-
- /* Only for v10 (ETRAX 100 LX) and same series. */
- cris_ver_v10p,
-
- /* Only for v32 or higher (codename GUINNESS).
- Of course some or all these of may change to cris_ver_v32p if/when
- there's a new revision. */
- cris_ver_v32p
-};
-
-
-/* Special registers. */
-struct cris_spec_reg
-{
- const char *const name;
- unsigned int number;
-
- /* The size of the register. */
- unsigned int reg_size;
-
- /* What CPU version the special register of that name is implemented
- in. If cris_ver_warning, emit an unimplemented-warning. */
- enum cris_insn_version_usage applicable_version;
-
- /* There might be a specific warning for using a special register
- here. */
- const char *const warning;
-};
-extern const struct cris_spec_reg cris_spec_regs[];
-
-
-/* Support registers (kind of special too, but not named as such). */
-struct cris_support_reg
-{
- const char *const name;
- unsigned int number;
-};
-extern const struct cris_support_reg cris_support_regs[];
-
-struct cris_cond15
-{
- /* The name of the condition. */
- const char *const name;
-
- /* What CPU version this condition name applies to. */
- enum cris_insn_version_usage applicable_version;
-};
-extern const struct cris_cond15 cris_conds15[];
-
-/* Opcode-dependent constants. */
-#define AUTOINCR_BIT (0x04)
-
-/* Prefixes. */
-#define BDAP_QUICK_OPCODE (0x0100)
-#define BDAP_QUICK_Z_BITS (0x0e00)
-
-#define BIAP_OPCODE (0x0540)
-#define BIAP_Z_BITS (0x0a80)
-
-#define DIP_OPCODE (0x0970)
-#define DIP_Z_BITS (0xf280)
-
-#define BDAP_INDIR_LOW (0x40)
-#define BDAP_INDIR_LOW_Z (0x80)
-#define BDAP_INDIR_HIGH (0x09)
-#define BDAP_INDIR_HIGH_Z (0x02)
-
-#define BDAP_INDIR_OPCODE (BDAP_INDIR_HIGH * 0x0100 + BDAP_INDIR_LOW)
-#define BDAP_INDIR_Z_BITS (BDAP_INDIR_HIGH_Z * 0x100 + BDAP_INDIR_LOW_Z)
-#define BDAP_PC_LOW (BDAP_INDIR_LOW + REG_PC)
-#define BDAP_INCR_HIGH (BDAP_INDIR_HIGH + AUTOINCR_BIT)
-
-/* No prefix must have this code for its "match" bits in the
- opcode-table. "BCC .+2" will do nicely. */
-#define NO_CRIS_PREFIX 0
-
-/* Definitions for condition codes. */
-#define CC_CC 0x0
-#define CC_HS 0x0
-#define CC_CS 0x1
-#define CC_LO 0x1
-#define CC_NE 0x2
-#define CC_EQ 0x3
-#define CC_VC 0x4
-#define CC_VS 0x5
-#define CC_PL 0x6
-#define CC_MI 0x7
-#define CC_LS 0x8
-#define CC_HI 0x9
-#define CC_GE 0xA
-#define CC_LT 0xB
-#define CC_GT 0xC
-#define CC_LE 0xD
-#define CC_A 0xE
-#define CC_EXT 0xF
-
-/* A table of strings "cc", "cs"... indexed with condition code
- values as above. */
-extern const char *const cris_cc_strings[];
-
-/* Bcc quick. */
-#define BRANCH_QUICK_LOW (0)
-#define BRANCH_QUICK_HIGH (0)
-#define BRANCH_QUICK_OPCODE (BRANCH_QUICK_HIGH * 0x0100 + BRANCH_QUICK_LOW)
-#define BRANCH_QUICK_Z_BITS (0x0F00)
-
-/* BA quick. */
-#define BA_QUICK_HIGH (BRANCH_QUICK_HIGH + CC_A * 0x10)
-#define BA_QUICK_OPCODE (BA_QUICK_HIGH * 0x100 + BRANCH_QUICK_LOW)
-
-/* Bcc [PC+]. */
-#define BRANCH_PC_LOW (0xFF)
-#define BRANCH_INCR_HIGH (0x0D)
-#define BA_PC_INCR_OPCODE \
- ((BRANCH_INCR_HIGH + CC_A * 0x10) * 0x0100 + BRANCH_PC_LOW)
-
-/* Jump. */
-/* Note that old versions generated special register 8 (in high bits)
- and not-that-old versions recognized it as a jump-instruction.
- That opcode now belongs to JUMPU. */
-#define JUMP_INDIR_OPCODE (0x0930)
-#define JUMP_INDIR_Z_BITS (0xf2c0)
-#define JUMP_PC_INCR_OPCODE \
- (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC)
-
-#define MOVE_M_TO_PREG_OPCODE 0x0a30
-#define MOVE_M_TO_PREG_ZBITS 0x01c0
-
-/* BDAP.D N,PC. */
-#define MOVE_PC_INCR_OPCODE_PREFIX \
- (((BDAP_INCR_HIGH | (REG_PC << 4)) << 8) | BDAP_PC_LOW | (2 << 4))
-#define MOVE_PC_INCR_OPCODE_SUFFIX \
- (MOVE_M_TO_PREG_OPCODE | REG_PC | (AUTOINCR_BIT << 8))
-
-#define JUMP_PC_INCR_OPCODE_V32 (0x0DBF)
-
-/* BA DWORD (V32). */
-#define BA_DWORD_OPCODE (0x0EBF)
-
-/* Nop. */
-#define NOP_OPCODE (0x050F)
-#define NOP_Z_BITS (0xFFFF ^ NOP_OPCODE)
-
-#define NOP_OPCODE_V32 (0x05B0)
-#define NOP_Z_BITS_V32 (0xFFFF ^ NOP_OPCODE_V32)
-
-/* For the compatibility mode, let's use "MOVE R0,P0". Doesn't affect
- registers or flags. Unfortunately shuts off interrupts for one cycle
- for < v32, but there doesn't seem to be any alternative without that
- effect. */
-#define NOP_OPCODE_COMMON (0x630)
-#define NOP_OPCODE_ZBITS_COMMON (0xffff & ~NOP_OPCODE_COMMON)
-
-/* LAPC.D */
-#define LAPC_DWORD_OPCODE (0x0D7F)
-#define LAPC_DWORD_Z_BITS (0x0fff & ~LAPC_DWORD_OPCODE)
-
-/* Structure of an opcode table entry. */
-enum cris_imm_oprnd_size_type
-{
- /* No size is applicable. */
- SIZE_NONE,
-
- /* Always 32 bits. */
- SIZE_FIX_32,
-
- /* Indicated by size of special register. */
- SIZE_SPEC_REG,
-
- /* Indicated by size field, signed. */
- SIZE_FIELD_SIGNED,
-
- /* Indicated by size field, unsigned. */
- SIZE_FIELD_UNSIGNED,
-
- /* Indicated by size field, no sign implied. */
- SIZE_FIELD
-};
-
-/* For GDB. FIXME: Is this the best way to handle opcode
- interpretation? */
-enum cris_op_type
-{
- cris_not_implemented_op = 0,
- cris_abs_op,
- cris_addi_op,
- cris_asr_op,
- cris_asrq_op,
- cris_ax_ei_setf_op,
- cris_bdap_prefix,
- cris_biap_prefix,
- cris_break_op,
- cris_btst_nop_op,
- cris_clearf_di_op,
- cris_dip_prefix,
- cris_dstep_logshift_mstep_neg_not_op,
- cris_eight_bit_offset_branch_op,
- cris_move_mem_to_reg_movem_op,
- cris_move_reg_to_mem_movem_op,
- cris_move_to_preg_op,
- cris_muls_op,
- cris_mulu_op,
- cris_none_reg_mode_add_sub_cmp_and_or_move_op,
- cris_none_reg_mode_clear_test_op,
- cris_none_reg_mode_jump_op,
- cris_none_reg_mode_move_from_preg_op,
- cris_quick_mode_add_sub_op,
- cris_quick_mode_and_cmp_move_or_op,
- cris_quick_mode_bdap_prefix,
- cris_reg_mode_add_sub_cmp_and_or_move_op,
- cris_reg_mode_clear_op,
- cris_reg_mode_jump_op,
- cris_reg_mode_move_from_preg_op,
- cris_reg_mode_test_op,
- cris_scc_op,
- cris_sixteen_bit_offset_branch_op,
- cris_three_operand_add_sub_cmp_and_or_op,
- cris_three_operand_bound_op,
- cris_two_operand_bound_op,
- cris_xor_op
-};
-
-struct cris_opcode
-{
- /* The name of the insn. */
- const char *name;
-
- /* Bits that must be 1 for a match. */
- unsigned int match;
-
- /* Bits that must be 0 for a match. */
- unsigned int lose;
-
- /* See the table in "opcodes/cris-opc.c". */
- const char *args;
-
- /* Nonzero if this is a delayed branch instruction. */
- char delayed;
-
- /* Size of immediate operands. */
- enum cris_imm_oprnd_size_type imm_oprnd_size;
-
- /* Indicates which version this insn was first implemented in. */
- enum cris_insn_version_usage applicable_version;
-
- /* What kind of operation this is. */
- enum cris_op_type op;
-};
-extern const struct cris_opcode cris_opcodes[];
-
-
-/* These macros are for the target-specific flags in disassemble_info
- used at disassembly. */
-
-/* This insn accesses memory. This flag is more trustworthy than
- checking insn_type for "dis_dref" which does not work for
- e.g. "JSR [foo]". */
-#define CRIS_DIS_FLAG_MEMREF (1 << 0)
-
-/* The "target" field holds a register number. */
-#define CRIS_DIS_FLAG_MEM_TARGET_IS_REG (1 << 1)
-
-/* The "target2" field holds a register number; add it to "target". */
-#define CRIS_DIS_FLAG_MEM_TARGET2_IS_REG (1 << 2)
-
-/* Yet another add-on: the register in "target2" must be multiplied
- by 2 before adding to "target". */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MULT2 (1 << 3)
-
-/* Yet another add-on: the register in "target2" must be multiplied
- by 4 (mutually exclusive with .._MULT2). */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MULT4 (1 << 4)
-
-/* The register in "target2" is an indirect memory reference (of the
- register there), add to "target". Assumed size is dword (mutually
- exclusive with .._MULT[24]). */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM (1 << 5)
-
-/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "byte";
- sign-extended before adding to "target". */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_BYTE (1 << 6)
-
-/* Add-on to CRIS_DIS_FLAG_MEM_TARGET2_MEM; the memory access is "word";
- sign-extended before adding to "target". */
-#define CRIS_DIS_FLAG_MEM_TARGET2_MEM_WORD (1 << 7)
-
-#endif /* __CRIS_H_INCLUDED_ */
-
-/*
- * Local variables:
- * eval: (c-set-style "gnu")
- * indent-tabs-mode: t
- * End:
- */
diff --git a/include/opcode/crx.h b/include/opcode/crx.h
deleted file mode 100644
index 5c484bf26..000000000
--- a/include/opcode/crx.h
+++ /dev/null
@@ -1,419 +0,0 @@
-/* crx.h -- Header file for CRX opcode and register tables.
- Copyright 2004, 2010 Free Software Foundation, Inc.
- Contributed by Tomer Levi, NSC, Israel.
- Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
- Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
-
- This file is part of GAS, GDB and the GNU binutils.
-
- GAS, GDB, and GNU binutils 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 3, or (at your
- option) any later version.
-
- GAS, GDB, and GNU binutils are distributed in the hope that they 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _CRX_H_
-#define _CRX_H_
-
-/* CRX core/debug Registers :
- The enums are used as indices to CRX registers table (crx_regtab).
- Therefore, order MUST be preserved. */
-
-typedef enum
- {
- /* 32-bit general purpose registers. */
- r0, r1, r2, r3, r4, r5, r6, r7, r8, r9,
- r10, r11, r12, r13, r14, r15, ra, sp,
- /* 32-bit user registers. */
- u0, u1, u2, u3, u4, u5, u6, u7, u8, u9,
- u10, u11, u12, u13, u14, u15, ura, usp,
- /* hi and lo registers. */
- hi, lo,
- /* hi and lo user registers. */
- uhi, ulo,
- /* Processor Status Register. */
- psr,
- /* Interrupt Base Register. */
- intbase,
- /* Interrupt Stack Pointer Register. */
- isp,
- /* Configuration Register. */
- cfg,
- /* Coprocessor Configuration Register. */
- cpcfg,
- /* Coprocessor Enable Register. */
- cen,
- /* Not a register. */
- nullregister,
- MAX_REG
- }
-reg;
-
-/* CRX Coprocessor registers and special registers :
- The enums are used as indices to CRX coprocessor registers table
- (crx_copregtab). Therefore, order MUST be preserved. */
-
-typedef enum
- {
- /* Coprocessor registers. */
- c0 = MAX_REG, c1, c2, c3, c4, c5, c6, c7, c8,
- c9, c10, c11, c12, c13, c14, c15,
- /* Coprocessor special registers. */
- cs0, cs1 ,cs2, cs3, cs4, cs5, cs6, cs7, cs8,
- cs9, cs10, cs11, cs12, cs13, cs14, cs15,
- /* Not a Coprocessor register. */
- nullcopregister,
- MAX_COPREG
- }
-copreg;
-
-/* CRX Register types. */
-
-typedef enum
- {
- CRX_R_REGTYPE, /* r<N> */
- CRX_U_REGTYPE, /* u<N> */
- CRX_C_REGTYPE, /* c<N> */
- CRX_CS_REGTYPE, /* cs<N> */
- CRX_CFG_REGTYPE /* configuration register */
- }
-reg_type;
-
-/* CRX argument types :
- The argument types correspond to instructions operands
-
- Argument types :
- r - register
- c - constant
- i - immediate
- idxr - index register
- rbase - register base
- s - star ('*')
- copr - coprocessor register
- copsr - coprocessor special register. */
-
-typedef enum
- {
- arg_r, arg_c, arg_cr, arg_ic, arg_icr, arg_sc,
- arg_idxr, arg_rbase, arg_copr, arg_copsr,
- /* Not an argument. */
- nullargs
- }
-argtype;
-
-/* CRX operand types :
- The operand types correspond to instructions operands. */
-
-typedef enum
- {
- dummy,
- /* 4-bit encoded constant. */
- cst4,
- /* N-bit immediate. */
- i16, i32,
- /* N-bit unsigned immediate. */
- ui3, ui4, ui5, ui16,
- /* N-bit signed displacement. */
- disps9, disps17, disps25, disps32,
- /* N-bit unsigned displacement. */
- dispu5,
- /* N-bit escaped displacement. */
- dispe9,
- /* N-bit absolute address. */
- abs16, abs32,
- /* Register relative. */
- rbase, rbase_dispu4,
- rbase_disps12, rbase_disps16, rbase_disps28, rbase_disps32,
- /* Register index. */
- rindex_disps6, rindex_disps22,
- /* 4-bit genaral-purpose register specifier. */
- regr,
- /* 8-bit register address space. */
- regr8,
- /* coprocessor register. */
- copregr,
- /* coprocessor special register. */
- copsregr,
- /* Not an operand. */
- nulloperand,
- /* Maximum supported operand. */
- MAX_OPRD
- }
-operand_type;
-
-/* CRX instruction types. */
-
-#define NO_TYPE_INS 0
-#define ARITH_INS 1
-#define LD_STOR_INS 2
-#define BRANCH_INS 3
-#define ARITH_BYTE_INS 4
-#define CMPBR_INS 5
-#define SHIFT_INS 6
-#define BRANCH_NEQ_INS 7
-#define LD_STOR_INS_INC 8
-#define STOR_IMM_INS 9
-#define CSTBIT_INS 10
-#define COP_BRANCH_INS 11
-#define COP_REG_INS 12
-#define COPS_REG_INS 13
-#define DCR_BRANCH_INS 14
-
-/* Maximum value supported for instruction types. */
-#define CRX_INS_MAX (1 << 4)
-/* Mask to record an instruction type. */
-#define CRX_INS_MASK (CRX_INS_MAX - 1)
-/* Return instruction type, given instruction's attributes. */
-#define CRX_INS_TYPE(attr) ((attr) & CRX_INS_MASK)
-
-/* Indicates whether this instruction has a register list as parameter. */
-#define REG_LIST CRX_INS_MAX
-/* The operands in binary and assembly are placed in reverse order.
- load - (REVERSE_MATCH)/store - (! REVERSE_MATCH). */
-#define REVERSE_MATCH (1 << 5)
-
-/* Kind of displacement map used DISPU[BWD]4. */
-#define DISPUB4 (1 << 6)
-#define DISPUW4 (1 << 7)
-#define DISPUD4 (1 << 8)
-#define DISPU4MAP (DISPUB4 | DISPUW4 | DISPUD4)
-
-/* Printing formats, where the instruction prefix isn't consecutive. */
-#define FMT_1 (1 << 9) /* 0xF0F00000 */
-#define FMT_2 (1 << 10) /* 0xFFF0FF00 */
-#define FMT_3 (1 << 11) /* 0xFFF00F00 */
-#define FMT_4 (1 << 12) /* 0xFFF0F000 */
-#define FMT_5 (1 << 13) /* 0xFFF0FFF0 */
-#define FMT_CRX (FMT_1 | FMT_2 | FMT_3 | FMT_4 | FMT_5)
-
-/* Indicates whether this instruction can be relaxed. */
-#define RELAXABLE (1 << 14)
-
-/* Indicates that instruction uses user registers (and not
- general-purpose registers) as operands. */
-#define USER_REG (1 << 15)
-
-/* Indicates that instruction can perfom a cst4 mapping. */
-#define CST4MAP (1 << 16)
-
-/* Instruction shouldn't allow 'sp' usage. */
-#define NO_SP (1 << 17)
-
-/* Instruction shouldn't allow to push a register which is used as a rptr. */
-#define NO_RPTR (1 << 18)
-
-/* Maximum operands per instruction. */
-#define MAX_OPERANDS 5
-/* Maximum register name length. */
-#define MAX_REGNAME_LEN 10
-/* Maximum instruction length. */
-#define MAX_INST_LEN 256
-
-
-/* Values defined for the flags field of a struct operand_entry. */
-
-/* Operand must be an unsigned number. */
-#define OP_UNSIGNED (1 << 0)
-/* Operand must be a signed number. */
-#define OP_SIGNED (1 << 1)
-/* A special arithmetic 4-bit constant operand. */
-#define OP_CST4 (1 << 2)
-/* A special load/stor 4-bit unsigned displacement operand. */
-#define OP_DISPU4 (1 << 3)
-/* Operand must be an even number. */
-#define OP_EVEN (1 << 4)
-/* Operand is shifted right. */
-#define OP_SHIFT (1 << 5)
-/* Operand is shifted right and decremented. */
-#define OP_SHIFT_DEC (1 << 6)
-/* Operand has reserved escape sequences. */
-#define OP_ESC (1 << 7)
-/* Operand is used only for the upper 64 KB (FFFF0000 to FFFFFFFF). */
-#define OP_UPPER_64KB (1 << 8)
-
-/* Single operand description. */
-
-typedef struct
- {
- /* Operand type. */
- operand_type op_type;
- /* Operand location within the opcode. */
- unsigned int shift;
- }
-operand_desc;
-
-/* Instruction data structure used in instruction table. */
-
-typedef struct
- {
- /* Name. */
- const char *mnemonic;
- /* Size (in words). */
- unsigned int size;
- /* Constant prefix (matched by the disassembler). */
- unsigned long match;
- /* Match size (in bits). */
- int match_bits;
- /* Attributes. */
- unsigned int flags;
- /* Operands (always last, so unreferenced operands are initialized). */
- operand_desc operands[MAX_OPERANDS];
- }
-inst;
-
-/* Data structure for a single instruction's arguments (Operands). */
-
-typedef struct
- {
- /* Register or base register. */
- reg r;
- /* Index register. */
- reg i_r;
- /* Coprocessor register. */
- copreg cr;
- /* Constant/immediate/absolute value. */
- long constant;
- /* Scaled index mode. */
- unsigned int scale;
- /* Argument type. */
- argtype type;
- /* Size of the argument (in bits) required to represent. */
- int size;
- /* The type of the expression. */
- unsigned char X_op;
- }
-argument;
-
-/* Internal structure to hold the various entities
- corresponding to the current assembling instruction. */
-
-typedef struct
- {
- /* Number of arguments. */
- int nargs;
- /* The argument data structure for storing args (operands). */
- argument arg[MAX_OPERANDS];
-/* The following fields are required only by CRX-assembler. */
-#ifdef TC_CRX
- /* Expression used for setting the fixups (if any). */
- expressionS exp;
- bfd_reloc_code_real_type rtype;
-#endif /* TC_CRX */
- /* Instruction size (in bytes). */
- int size;
- }
-ins;
-
-/* Structure to hold information about predefined operands. */
-
-typedef struct
- {
- /* Size (in bits). */
- unsigned int bit_size;
- /* Argument type. */
- argtype arg_type;
- /* One bit syntax flags. */
- int flags;
- }
-operand_entry;
-
-/* Structure to hold trap handler information. */
-
-typedef struct
- {
- /* Trap name. */
- char *name;
- /* Index in dispatch table. */
- unsigned int entry;
- }
-trap_entry;
-
-/* Structure to hold information about predefined registers. */
-
-typedef struct
- {
- /* Name (string representation). */
- char *name;
- /* Value (enum representation). */
- union
- {
- /* Register. */
- reg reg_val;
- /* Coprocessor register. */
- copreg copreg_val;
- } value;
- /* Register image. */
- int image;
- /* Register type. */
- reg_type type;
- }
-reg_entry;
-
-/* Structure to hold a cst4 operand mapping. */
-
-/* CRX opcode table. */
-extern const inst crx_instruction[];
-extern const int crx_num_opcodes;
-#define NUMOPCODES crx_num_opcodes
-
-/* CRX operands table. */
-extern const operand_entry crx_optab[];
-
-/* CRX registers table. */
-extern const reg_entry crx_regtab[];
-extern const int crx_num_regs;
-#define NUMREGS crx_num_regs
-
-/* CRX coprocessor registers table. */
-extern const reg_entry crx_copregtab[];
-extern const int crx_num_copregs;
-#define NUMCOPREGS crx_num_copregs
-
-/* CRX trap/interrupt table. */
-extern const trap_entry crx_traps[];
-extern const int crx_num_traps;
-#define NUMTRAPS crx_num_traps
-
-/* cst4 operand mapping. */
-extern const long cst4_map[];
-extern const int cst4_maps;
-
-/* Table of instructions with no operands. */
-extern const char* no_op_insn[];
-
-/* Current instruction we're assembling. */
-extern const inst *instruction;
-
-/* A macro for representing the instruction "constant" opcode, that is,
- the FIXED part of the instruction. The "constant" opcode is represented
- as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT)
- over that range. */
-#define BIN(OPC,SHIFT) (OPC << SHIFT)
-
-/* Is the current instruction type is TYPE ? */
-#define IS_INSN_TYPE(TYPE) \
- (CRX_INS_TYPE(instruction->flags) == TYPE)
-
-/* Is the current instruction mnemonic is MNEMONIC ? */
-#define IS_INSN_MNEMONIC(MNEMONIC) \
- (strcmp(instruction->mnemonic,MNEMONIC) == 0)
-
-/* Does the current instruction has register list ? */
-#define INST_HAS_REG_LIST \
- (instruction->flags & REG_LIST)
-
-/* Long long type handling. */
-/* Replace all appearances of 'long long int' with LONGLONG. */
-typedef long long int LONGLONG;
-typedef unsigned long long ULONGLONG;
-
-#endif /* _CRX_H_ */
diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h
deleted file mode 100644
index d0e115fab..000000000
--- a/include/opcode/d10v.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* d10v.h -- Header file for D10V opcode table
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2010
- Free Software Foundation, Inc.
- Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef D10V_H
-#define D10V_H
-
-/* Format Specifier */
-#define FM00 0
-#define FM01 0x40000000
-#define FM10 0x80000000
-#define FM11 0xC0000000
-
-#define NOP 0x5e00
-#define OPCODE_DIVS 0x14002800
-
-/* The opcode table is an array of struct d10v_opcode. */
-
-struct d10v_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* the opcode format */
- int format;
-
- /* These numbers were picked so we can do if( i & SHORT_OPCODE) */
-#define SHORT_OPCODE 1
-#define LONG_OPCODE 8
-#define SHORT_2 1 /* short with 2 operands */
-#define SHORT_B 3 /* short with 8-bit branch */
-#define LONG_B 8 /* long with 16-bit branch */
-#define LONG_L 10 /* long with 3 operands */
-#define LONG_R 12 /* reserved */
-
- /* just a placeholder for variable-length instructions */
- /* for example, "bra" will be a fake for "bra.s" and bra.l" */
- /* which will immediately follow in the opcode table. */
-#define OPCODE_FAKE 32
-
- /* the number of cycles */
- int cycles;
-
- /* the execution unit(s) used */
- int unit;
-#define EITHER 0
-#define IU 1
-#define MU 2
-#define BOTH 3
-
- /* execution type; parallel or sequential */
- /* this field is used to decide if two instructions */
- /* can be executed in parallel */
- int exec_type;
-#define PARONLY 1 /* parallel only */
-#define SEQ 2 /* must be sequential */
-#define PAR 4 /* may be parallel */
-#define BRANCH_LINK 8 /* subroutine call. must be aligned */
-#define RMEM 16 /* reads memory */
-#define WMEM 32 /* writes memory */
-#define RF0 64 /* reads f0 */
-#define WF0 128 /* modifies f0 */
-#define WCAR 256 /* write Carry */
-#define BRANCH 512 /* branch, no link */
-#define ALONE 1024 /* short but pack with a NOP if on asm line alone */
-
- /* the opcode */
- long opcode;
-
- /* mask. if( (i & mask) == opcode ) then match */
- long mask;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[6];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct d10v_opcode d10v_opcodes[];
-extern const int d10v_num_opcodes;
-
-/* The operands table is an array of struct d10v_operand. */
-struct d10v_operand
-{
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
-
- /* One bit syntax flags. */
- int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the d10v_opcodes table. */
-
-extern const struct d10v_operand d10v_operands[];
-
-/* Values defined for the flags field of a struct d10v_operand. */
-
-/* the operand must be an even number */
-#define OPERAND_EVEN (1)
-
-/* the operand must be an odd number */
-#define OPERAND_ODD (2)
-
-/* this is the destination register; it will be modified */
-/* this is used by the optimizer */
-#define OPERAND_DEST (4)
-
-/* number or symbol */
-#define OPERAND_NUM (8)
-
-/* address or label */
-#define OPERAND_ADDR (0x10)
-
-/* register */
-#define OPERAND_REG (0x20)
-
-/* postincrement + */
-#define OPERAND_PLUS (0x40)
-
-/* postdecrement - */
-#define OPERAND_MINUS (0x80)
-
-/* @ */
-#define OPERAND_ATSIGN (0x100)
-
-/* @( */
-#define OPERAND_ATPAR (0x200)
-
-/* accumulator 0 */
-#define OPERAND_ACC0 (0x400)
-
-/* accumulator 1 */
-#define OPERAND_ACC1 (0x800)
-
-/* f0 / f1 flag register */
-#define OPERAND_FFLAG (0x1000)
-
-/* c flag register */
-#define OPERAND_CFLAG (0x2000)
-
-/* control register */
-#define OPERAND_CONTROL (0x4000)
-
-/* predecrement mode '@-sp' */
-#define OPERAND_ATMINUS (0x8000)
-
-/* signed number */
-#define OPERAND_SIGNED (0x10000)
-
-/* special accumulator shifts need a 4-bit number */
-/* 1 <= x <= 16 */
-#define OPERAND_SHIFT (0x20000)
-
-/* general purpose register */
-#define OPERAND_GPR (0x40000)
-
-/* special imm3 values with range restricted to -2 <= imm3 <= 3 */
-/* needed for rac/rachi */
-#define RESTRICTED_NUM3 (0x80000)
-
-/* Pre-decrement is only supported for SP. */
-#define OPERAND_SP (0x100000)
-
-/* Post-decrement is not supported for SP. Like OPERAND_EVEN, and
- unlike OPERAND_SP, this flag doesn't prevent the instruction from
- matching, it only fails validation later on. */
-#define OPERAND_NOSP (0x200000)
-
-/* Structure to hold information about predefined registers. */
-struct pd_reg
-{
- char *name; /* name to recognize */
- char *pname; /* name to print for this register */
- int value;
-};
-
-extern const struct pd_reg d10v_predefined_registers[];
-int d10v_reg_name_cnt (void);
-
-/* an expressionS only has one register type, so we fake it */
-/* by setting high bits to indicate type */
-#define REGISTER_MASK 0xFF
-
-#endif /* D10V_H */
diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h
deleted file mode 100644
index 62c041da9..000000000
--- a/include/opcode/d30v.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* d30v.h -- Header file for D30V opcode table
- Copyright 1997, 1998, 1999, 2000, 2001, 2003, 2010
- Free Software Foundation, Inc.
- Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef D30V_H
-#define D30V_H
-
-#define NOP 0x00F00000
-
-/* Structure to hold information about predefined registers. */
-struct pd_reg
-{
- char *name; /* name to recognize */
- char *pname; /* name to print for this register */
- int value;
-};
-
-extern const struct pd_reg pre_defined_registers[];
-int reg_name_cnt (void);
-
-/* the number of control registers */
-#define MAX_CONTROL_REG 64
-
-/* define the format specifiers */
-#define FM00 0
-#define FM01 0x80000000
-#define FM10 0x8000000000000000LL
-#define FM11 0x8000000080000000LL
-
-/* define the opcode classes */
-#define BRA 0
-#define LOGIC 1
-#define IMEM 2
-#define IALU1 4
-#define IALU2 5
-
-/* define the execution condition codes */
-#define ECC_AL 0 /* ALways (default) */
-#define ECC_TX 1 /* F0=True, F1=Don't care */
-#define ECC_FX 2 /* F0=False, F1=Don't care */
-#define ECC_XT 3 /* F0=Don't care, F1=True */
-#define ECC_XF 4 /* F0=Don't care, F1=False */
-#define ECC_TT 5 /* F0=True, F1=True */
-#define ECC_TF 6 /* F0=True, F1=False */
-#define ECC_RESERVED 7 /* reserved */
-#define ECC_MAX ECC_RESERVED
-
-extern const char *d30v_ecc_names[];
-
-/* condition code table for CMP and CMPU */
-extern const char *d30v_cc_names[];
-
-/* The opcode table is an array of struct d30v_opcode. */
-struct d30v_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* the opcode */
- int op1; /* first part, "IALU1" for example */
- int op2; /* the rest of the opcode */
-
- /* opcode format(s). These numbers correspond to entries */
- /* in the d30v_format_table */
- unsigned char format[4];
-
-#define SHORT_M 1
-#define SHORT_M2 5 /* for ld2w and st2w */
-#define SHORT_A 9
-#define SHORT_B1 11
-#define SHORT_B2 12
-#define SHORT_B2r 13
-#define SHORT_B3 14
-#define SHORT_B3r 16
-#define SHORT_B3b 18
-#define SHORT_B3br 20
-#define SHORT_D1r 22
-#define SHORT_D2 24
-#define SHORT_D2r 26
-#define SHORT_D2Br 28
-#define SHORT_U 30 /* unary SHORT_A. ABS for example */
-#define SHORT_F 31 /* SHORT_A with flag registers */
-#define SHORT_AF 33 /* SHORT_A with only the first register a flag register */
-#define SHORT_T 35 /* for trap instruction */
-#define SHORT_A5 36 /* SHORT_A with a 5-bit immediate instead of 6 */
-#define SHORT_CMP 38 /* special form for CMPcc */
-#define SHORT_CMPU 40 /* special form for CMPUcc */
-#define SHORT_A1 42 /* special form of SHORT_A for MACa opcodes where a=1 */
-#define SHORT_AA 44 /* SHORT_A with the first register an accumulator */
-#define SHORT_RA 46 /* SHORT_A with the second register an accumulator */
-#define SHORT_MODINC 48
-#define SHORT_MODDEC 49
-#define SHORT_C1 50
-#define SHORT_C2 51
-#define SHORT_UF 52
-#define SHORT_A2 53
-#define SHORT_NONE 55 /* no operands */
-#define SHORT_AR 56 /* like SHORT_AA but only accept register as third parameter */
-#define LONG 57
-#define LONG_U 58 /* unary LONG */
-#define LONG_Ur 59 /* LONG pc-relative */
-#define LONG_CMP 60 /* special form for CMPcc and CMPUcc */
-#define LONG_M 61 /* Memory long for ldb, stb */
-#define LONG_M2 62 /* Memory long for ld2w, st2w */
-#define LONG_2 63 /* LONG with 2 operands; jmptnz */
-#define LONG_2r 64 /* LONG with 2 operands; bratnz */
-#define LONG_2b 65 /* LONG_2 with modifier of 3 */
-#define LONG_2br 66 /* LONG_2r with modifier of 3 */
-#define LONG_D 67 /* for DJMPI */
-#define LONG_Dr 68 /* for DBRAI */
-#define LONG_Dbr 69 /* for repeati */
-
- /* the execution unit(s) used */
- int unit;
-#define EITHER 0
-#define IU 1
-#define MU 2
-#define EITHER_BUT_PREFER_MU 3
-
- /* this field is used to decide if two instructions */
- /* can be executed in parallel */
- long flags_used;
- long flags_set;
-#define FLAG_0 (1L<<0)
-#define FLAG_1 (1L<<1)
-#define FLAG_2 (1L<<2)
-#define FLAG_3 (1L<<3)
-#define FLAG_4 (1L<<4) /* S (saturation) */
-#define FLAG_5 (1L<<5) /* V (overflow) */
-#define FLAG_6 (1L<<6) /* VA (accumulated overflow) */
-#define FLAG_7 (1L<<7) /* C (carry/borrow) */
-#define FLAG_SM (1L<<8) /* SM (stack mode) */
-#define FLAG_RP (1L<<9) /* RP (repeat enable) */
-#define FLAG_CONTROL (1L<<10) /* control registers */
-#define FLAG_A0 (1L<<11) /* A0 */
-#define FLAG_A1 (1L<<12) /* A1 */
-#define FLAG_JMP (1L<<13) /* instruction is a branch */
-#define FLAG_JSR (1L<<14) /* subroutine call. must be aligned */
-#define FLAG_MEM (1L<<15) /* reads/writes memory */
-#define FLAG_NOT_WITH_ADDSUBppp (1L<<16) /* Old meaning: a 2 word 4 byter operation
- New meaning: operation cannot be
- combined in parallel with ADD/SUBppp. */
-#define FLAG_MUL16 (1L<<17) /* 16 bit multiply */
-#define FLAG_MUL32 (1L<<18) /* 32 bit multiply */
-#define FLAG_ADDSUBppp (1L<<19) /* ADDppp or SUBppp */
-#define FLAG_DELAY (1L<<20) /* This is a delayed branch or jump */
-#define FLAG_LKR (1L<<21) /* insn in left slot kills right slot */
-#define FLAG_CVVA (FLAG_5|FLAG_6|FLAG_7)
-#define FLAG_C FLAG_7
-#define FLAG_ALL (FLAG_0 | \
- FLAG_1 | \
- FLAG_2 | \
- FLAG_3 | \
- FLAG_4 | \
- FLAG_5 | \
- FLAG_6 | \
- FLAG_7 | \
- FLAG_SM | \
- FLAG_RP | \
- FLAG_CONTROL)
-
- int reloc_flag;
-#define RELOC_PCREL 1
-#define RELOC_ABS 2
-};
-
-extern const struct d30v_opcode d30v_opcode_table[];
-extern const int d30v_num_opcodes;
-
-/* The operands table is an array of struct d30v_operand. */
-struct d30v_operand
-{
- /* the length of the field */
- int length;
-
- /* The number of significant bits in the operand. */
- int bits;
-
- /* position relative to Ra */
- int position;
-
- /* syntax flags. */
- long flags;
-};
-extern const struct d30v_operand d30v_operand_table[];
-
-/* Values defined for the flags field of a struct d30v_operand. */
-
-/* this is the destination register; it will be modified */
-/* this is used by the optimizer */
-#define OPERAND_DEST (1)
-
-/* number or symbol */
-#define OPERAND_NUM (2)
-
-/* address or label */
-#define OPERAND_ADDR (4)
-
-/* register */
-#define OPERAND_REG (8)
-
-/* postincrement + */
-#define OPERAND_PLUS (0x10)
-
-/* postdecrement - */
-#define OPERAND_MINUS (0x20)
-
-/* signed number */
-#define OPERAND_SIGNED (0x40)
-
-/* this operand must be shifted left by 3 */
-#define OPERAND_SHIFT (0x80)
-
-/* flag register */
-#define OPERAND_FLAG (0x100)
-
-/* control register */
-#define OPERAND_CONTROL (0x200)
-
-/* accumulator */
-#define OPERAND_ACC (0x400)
-
-/* @ */
-#define OPERAND_ATSIGN (0x800)
-
-/* @( */
-#define OPERAND_ATPAR (0x1000)
-
-/* predecrement mode '@-sp' */
-#define OPERAND_ATMINUS (0x2000)
-
-/* this operand changes the instruction name */
-/* for example, CPMcc, CMPUcc */
-#define OPERAND_NAME (0x4000)
-
-/* fake operand for mvtsys and mvfsys */
-#define OPERAND_SPECIAL (0x8000)
-
-/* let the optimizer know that two registers are affected */
-#define OPERAND_2REG (0x10000)
-
-/* This operand is pc-relative. Note that repeati can have two immediate
- operands, one of which is pcrel, the other (the IMM6U one) is not. */
-#define OPERAND_PCREL (0x20000)
-
-/* The format table is an array of struct d30v_format. */
-struct d30v_format
-{
- int form; /* SHORT_A, LONG, etc */
- int modifier; /* two bit modifier following opcode */
- unsigned char operands[5];
-};
-extern const struct d30v_format d30v_format_table[];
-
-
-/* an instruction is defined by an opcode and a format */
-/* for example, "add" has one opcode, but three different */
-/* formats, 2 SHORT_A forms and a LONG form. */
-struct d30v_insn
-{
- struct d30v_opcode *op; /* pointer to an entry in the opcode table */
- struct d30v_format *form; /* pointer to an entry in the format table */
- int ecc; /* execution condition code */
-};
-
-/* an expressionS only has one register type, so we fake it */
-/* by setting high bits to indicate type */
-#define REGISTER_MASK 0xFF
-
-#endif /* D30V_H */
diff --git a/include/opcode/dlx.h b/include/opcode/dlx.h
deleted file mode 100644
index 54dadd072..000000000
--- a/include/opcode/dlx.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Table of opcodes for the DLX microprocess.
- Copyright 2002, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB and GAS.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- Initially created by Kuang Hwa Lin, 2002. */
-
-/* Following are the function codes for the Special OP (ALU). */
-#define ALUOP 0x00000000
-#define SPECIALOP 0x00000000
-
-#define NOPF 0x00000000
-#define SLLF 0x00000004
-#define SRLF 0x00000006
-#define SRAF 0x00000007
-
-#define SEQUF 0x00000010
-#define SNEUF 0x00000011
-#define SLTUF 0x00000012
-#define SGTUF 0x00000013
-#define SLEUF 0x00000014
-#define SGEUF 0x00000015
-
-#define ADDF 0x00000020
-#define ADDUF 0x00000021
-#define SUBF 0x00000022
-#define SUBUF 0x00000023
-#define ANDF 0x00000024
-#define ORF 0x00000025
-#define XORF 0x00000026
-
-#define SEQF 0x00000028
-#define SNEF 0x00000029
-#define SLTF 0x0000002A
-#define SGTF 0x0000002B
-#define SLEF 0x0000002C
-#define SGEF 0x0000002D
- /* Following special functions was not mentioned in the
- Hennessy's book but was implemented in the RTL. */
-#define MVTSF 0x00000030
-#define MVFSF 0x00000031
-#define BSWAPF 0x00000032
-#define LUTF 0x00000033
-/* Following special functions was mentioned in the
- Hennessy's book but was not implemented in the RTL. */
-#define MULTF 0x00000005
-#define MULTUF 0x00000006
-#define DIVF 0x00000007
-#define DIVUF 0x00000008
-
-
-/* Following are the rest of the OPcodes:
- JOP = (0x002 << 26), JALOP = (0x003 << 26), BEQOP = (0x004 << 26), BNEOP = (0x005 << 26)
- ADDIOP = (0x008 << 26), ADDUIOP= (0x009 << 26), SUBIOP = (0x00A << 26), SUBUIOP= (0x00B << 26)
- ANDIOP = (0x00C << 26), ORIOP = (0x00D << 26), XORIOP = (0x00E << 26), LHIOP = (0x00F << 26)
- RFEOP = (0x010 << 26), TRAPOP = (0x011 << 26), JROP = (0x012 << 26), JALROP = (0x013 << 26)
- BREAKOP= (0x014 << 26)
- SEQIOP = (0x018 << 26), SNEIOP = (0x019 << 26), SLTIOP = (0x01A << 26), SGTIOP = (0x01B << 26)
- SLEIOP = (0x01C << 26), SGEIOP = (0x01D << 26)
- LBOP = (0x020 << 26), LHOP = (0x021 << 26), LWOP = (0x023 << 26), LBUOP = (0x024 << 26)
- LHUOP = (0x025 << 26), SBOP = (0x028 << 26), SHOP = (0x029 << 26), SWOP = (0x02B << 26)
- LSBUOP = (0x026 << 26), LSHU = (0x027 << 26), LSW = (0x02C << 26),
- SEQUIOP= (0x030 << 26), SNEUIOP= (0x031 << 26), SLTUIOP= (0x032 << 26), SGTUIOP= (0x033 << 26)
- SLEUIOP= (0x034 << 26), SGEUIOP= (0x035 << 26)
- SLLIOP = (0x036 << 26), SRLIOP = (0x037 << 26), SRAIOP = (0x038 << 26). */
-#define JOP 0x08000000
-#define JALOP 0x0c000000
-#define BEQOP 0x10000000
-#define BNEOP 0x14000000
-
-#define ADDIOP 0x20000000
-#define ADDUIOP 0x24000000
-#define SUBIOP 0x28000000
-#define SUBUIOP 0x2c000000
-#define ANDIOP 0x30000000
-#define ORIOP 0x34000000
-#define XORIOP 0x38000000
-#define LHIOP 0x3c000000
-#define RFEOP 0x40000000
-#define TRAPOP 0x44000000
-#define JROP 0x48000000
-#define JALROP 0x4c000000
-#define BREAKOP 0x50000000
-
-#define SEQIOP 0x60000000
-#define SNEIOP 0x64000000
-#define SLTIOP 0x68000000
-#define SGTIOP 0x6c000000
-#define SLEIOP 0x70000000
-#define SGEIOP 0x74000000
-
-#define LBOP 0x80000000
-#define LHOP 0x84000000
-#define LWOP 0x8c000000
-#define LBUOP 0x90000000
-#define LHUOP 0x94000000
-#define LDSTBU
-#define LDSTHU
-#define SBOP 0xa0000000
-#define SHOP 0xa4000000
-#define SWOP 0xac000000
-#define LDST
-
-#define SEQUIOP 0xc0000000
-#define SNEUIOP 0xc4000000
-#define SLTUIOP 0xc8000000
-#define SGTUIOP 0xcc000000
-#define SLEUIOP 0xd0000000
-#define SGEUIOP 0xd4000000
-
-#define SLLIOP 0xd8000000
-#define SRLIOP 0xdc000000
-#define SRAIOP 0xe0000000
-
-/* Following 3 ops was added to provide the MP atonmic operation. */
-#define LSBUOP 0x98000000
-#define LSHUOP 0x9c000000
-#define LSWOP 0xb0000000
-
-/* Following opcode was defined in the Hennessy's book as
- "normal" opcode but was implemented in the RTL as special
- functions. */
-#if 0
-#define MVTSOP 0x50000000
-#define MVFSOP 0x54000000
-#endif
-
-struct dlx_opcode
-{
- /* Name of the instruction. */
- char *name;
-
- /* Opcode word. */
- unsigned long opcode;
-
- /* A string of characters which describe the operands.
- Valid characters are:
- , Itself. The character appears in the assembly code.
- a rs1 The register number is in bits 21-25 of the instruction.
- b rs2/rd The register number is in bits 16-20 of the instruction.
- c rd. The register number is in bits 11-15 of the instruction.
- f FUNC bits 0-10 of the instruction.
- i An immediate operand is in bits 0-16 of the instruction. 0 extended
- I An immediate operand is in bits 0-16 of the instruction. sign extended
- d An 16 bit PC relative displacement.
- D An immediate operand is in bits 0-25 of the instruction.
- N No opperands needed, for nops.
- P it can be a register or a 16 bit operand. */
- char *args;
-};
-
-static const struct dlx_opcode dlx_opcodes[] =
- {
- /* Arithmetic and Logic R-TYPE instructions. */
- { "nop", (ALUOP|NOPF), "N" }, /* NOP */
- { "add", (ALUOP|ADDF), "c,a,b" }, /* Add */
- { "addu", (ALUOP|ADDUF), "c,a,b" }, /* Add Unsigned */
- { "sub", (ALUOP|SUBF), "c,a,b" }, /* SUB */
- { "subu", (ALUOP|SUBUF), "c,a,b" }, /* Sub Unsigned */
- { "mult", (ALUOP|MULTF), "c,a,b" }, /* MULTIPLY */
- { "multu", (ALUOP|MULTUF), "c,a,b" }, /* MULTIPLY Unsigned */
- { "div", (ALUOP|DIVF), "c,a,b" }, /* DIVIDE */
- { "divu", (ALUOP|DIVUF), "c,a,b" }, /* DIVIDE Unsigned */
- { "and", (ALUOP|ANDF), "c,a,b" }, /* AND */
- { "or", (ALUOP|ORF), "c,a,b" }, /* OR */
- { "xor", (ALUOP|XORF), "c,a,b" }, /* Exclusive OR */
- { "sll", (ALUOP|SLLF), "c,a,b" }, /* SHIFT LEFT LOGICAL */
- { "sra", (ALUOP|SRAF), "c,a,b" }, /* SHIFT RIGHT ARITHMETIC */
- { "srl", (ALUOP|SRLF), "c,a,b" }, /* SHIFT RIGHT LOGICAL */
- { "seq", (ALUOP|SEQF), "c,a,b" }, /* Set if equal */
- { "sne", (ALUOP|SNEF), "c,a,b" }, /* Set if not equal */
- { "slt", (ALUOP|SLTF), "c,a,b" }, /* Set if less */
- { "sgt", (ALUOP|SGTF), "c,a,b" }, /* Set if greater */
- { "sle", (ALUOP|SLEF), "c,a,b" }, /* Set if less or equal */
- { "sge", (ALUOP|SGEF), "c,a,b" }, /* Set if greater or equal */
- { "sequ", (ALUOP|SEQUF), "c,a,b" }, /* Set if equal unsigned */
- { "sneu", (ALUOP|SNEUF), "c,a,b" }, /* Set if not equal unsigned */
- { "sltu", (ALUOP|SLTUF), "c,a,b" }, /* Set if less unsigned */
- { "sgtu", (ALUOP|SGTUF), "c,a,b" }, /* Set if greater unsigned */
- { "sleu", (ALUOP|SLEUF), "c,a,b" }, /* Set if less or equal unsigned*/
- { "sgeu", (ALUOP|SGEUF), "c,a,b" }, /* Set if greater or equal */
- { "mvts", (ALUOP|MVTSF), "c,a" }, /* Move to special register */
- { "mvfs", (ALUOP|MVFSF), "c,a" }, /* Move from special register */
- { "bswap", (ALUOP|BSWAPF), "c,a,b" }, /* ??? Was not documented */
- { "lut", (ALUOP|LUTF), "c,a,b" }, /* ????? same as above */
-
- /* Arithmetic and Logical Immediate I-TYPE instructions. */
- { "addi", ADDIOP, "b,a,I" }, /* Add Immediate */
- { "addui", ADDUIOP, "b,a,i" }, /* Add Usigned Immediate */
- { "subi", SUBIOP, "b,a,I" }, /* Sub Immediate */
- { "subui", SUBUIOP, "b,a,i" }, /* Sub Unsigned Immedated */
- { "andi", ANDIOP, "b,a,i" }, /* AND Immediate */
- { "ori", ORIOP, "b,a,i" }, /* OR Immediate */
- { "xori", XORIOP, "b,a,i" }, /* Exclusive OR Immediate */
- { "slli", SLLIOP, "b,a,i" }, /* SHIFT LEFT LOCICAL Immediate */
- { "srai", SRAIOP, "b,a,i" }, /* SHIFT RIGHT ARITH. Immediate */
- { "srli", SRLIOP, "b,a,i" }, /* SHIFT RIGHT LOGICAL Immediate*/
- { "seqi", SEQIOP, "b,a,i" }, /* Set if equal */
- { "snei", SNEIOP, "b,a,i" }, /* Set if not equal */
- { "slti", SLTIOP, "b,a,i" }, /* Set if less */
- { "sgti", SGTIOP, "b,a,i" }, /* Set if greater */
- { "slei", SLEIOP, "b,a,i" }, /* Set if less or equal */
- { "sgei", SGEIOP, "b,a,i" }, /* Set if greater or equal */
- { "sequi", SEQUIOP, "b,a,i" }, /* Set if equal */
- { "sneui", SNEUIOP, "b,a,i" }, /* Set if not equal */
- { "sltui", SLTUIOP, "b,a,i" }, /* Set if less */
- { "sgtui", SGTUIOP, "b,a,i" }, /* Set if greater */
- { "sleui", SLEUIOP, "b,a,i" }, /* Set if less or equal */
- { "sgeui", SGEUIOP, "b,a,i" }, /* Set if greater or equal */
- /* Macros for I type instructions. */
- { "mov", ADDIOP, "b,P" }, /* a move macro */
- { "movu", ADDUIOP, "b,P" }, /* a move macro, unsigned */
-
-#if 0
- /* Move special. */
- { "mvts", MVTSOP, "b,a" }, /* Move From Integer to Special */
- { "mvfs", MVFSOP, "b,a" }, /* Move From Special to Integer */
-#endif
-
- /* Load high Immediate I-TYPE instruction. */
- { "lhi", LHIOP, "b,i" }, /* Load High Immediate */
- { "lui", LHIOP, "b,i" }, /* Load High Immediate */
- { "sethi", LHIOP, "b,i" }, /* Load High Immediate */
-
- /* LOAD/STORE BYTE 8 bits I-TYPE. */
- { "lb", LBOP, "b,a,I" }, /* Load Byte */
- { "lbu", LBUOP, "b,a,I" }, /* Load Byte Unsigned */
- { "ldstbu", LSBUOP, "b,a,I" }, /* Load store Byte Unsigned */
- { "sb", SBOP, "b,a,I" }, /* Store Byte */
-
- /* LOAD/STORE HALFWORD 16 bits. */
- { "lh", LHOP, "b,a,I" }, /* Load Halfword */
- { "lhu", LHUOP, "b,a,I" }, /* Load Halfword Unsigned */
- { "ldsthu", LSHUOP, "b,a,I" }, /* Load Store Halfword Unsigned */
- { "sh", SHOP, "b,a,I" }, /* Store Halfword */
-
- /* LOAD/STORE WORD 32 bits. */
- { "lw", LWOP, "b,a,I" }, /* Load Word */
- { "sw", SWOP, "b,a,I" }, /* Store Word */
- { "ldstw", LSWOP, "b,a,I" }, /* Load Store Word */
-
- /* Branch PC-relative, 16 bits offset. */
- { "beqz", BEQOP, "a,d" }, /* Branch if a == 0 */
- { "bnez", BNEOP, "a,d" }, /* Branch if a != 0 */
- { "beq", BEQOP, "a,d" }, /* Branch if a == 0 */
- { "bne", BNEOP, "a,d" }, /* Branch if a != 0 */
-
- /* Jumps Trap and RFE J-TYPE. */
- { "j", JOP, "D" }, /* Jump, PC-relative 26 bits */
- { "jal", JALOP, "D" }, /* JAL, PC-relative 26 bits */
- { "break", BREAKOP, "D" }, /* break to OS */
- { "trap" , TRAPOP, "D" }, /* TRAP to OS */
- { "rfe", RFEOP, "N" }, /* Return From Exception */
- /* Macros. */
- { "call", JOP, "D" }, /* Jump, PC-relative 26 bits */
-
- /* Jumps Trap and RFE I-TYPE. */
- { "jr", JROP, "a" }, /* Jump Register, Abs (32 bits) */
- { "jalr", JALROP, "a" }, /* JALR, Abs (32 bits) */
- /* Macros. */
- { "retr", JROP, "a" }, /* Jump Register, Abs (32 bits) */
-
- { "", 0x0, "" } /* Dummy entry, not included in NUM_OPCODES.
- This lets code examine entry i + 1 without
- checking if we've run off the end of the table. */
- };
-
-const unsigned int num_dlx_opcodes = (((sizeof dlx_opcodes) / (sizeof dlx_opcodes[0])) - 1);
diff --git a/include/opcode/h8300.h b/include/opcode/h8300.h
deleted file mode 100644
index 81b1c0894..000000000
--- a/include/opcode/h8300.h
+++ /dev/null
@@ -1,1894 +0,0 @@
-/* Opcode table for the H8/300
- Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 2000, 2001, 2002,
- 2003, 2004, 2005, 2008, 2009, 2010
- Free Software Foundation, Inc.
- Written by Steve Chamberlain <sac@cygnus.com>.
-
- This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* Instructions are stored as a sequence of nibbles.
- If the nibble has value 15 or less than the representation is complete.
- Otherwise, we record what it contains with several flags. */
-
-typedef int op_type;
-
-enum h8_flags
-{
- L_2 = 0x10,
- L_3 = 0x20,
- /* 3 bit constant, zero not accepted. */
- L_3NZ = 0x30,
- L_4 = 0x40,
- L_5 = 0x50,
- L_8 = 0x60,
- L_8U = 0x70,
- L_16 = 0x80,
- L_16U = 0x90,
- L_24 = 0xA0,
- L_32 = 0xB0,
- L_P = 0xC0,
-
- /* Mask to isolate the L_x size bits. */
- SIZE = 0xF0,
-
- REG = 0x0100,
- ABS = 0x0200,
- MEMIND = 0x0300,
- IMM = 0x0400,
- DISP = 0x0500,
- IND = 0x0600,
- POSTINC = 0x0700,
- POSTDEC = 0x0800,
- PREINC = 0x0900,
- PREDEC = 0x0A00,
- PCREL = 0x0B00,
- KBIT = 0x0C00,
- DBIT = 0x0D00,
- CONST_2 = 0x0E00,
- CONST_4 = 0x0F00,
- CONST_8 = 0x1000,
- CONST_16 = 0x1100,
- INDEXB = 0x1200,
- INDEXW = 0x1300,
- INDEXL = 0x1400,
- PCIDXB = 0x1500,
- PCIDXW = 0x1600,
- PCIDXL = 0x1700,
- VECIND = 0x1800,
- LOWREG = 0x1900,
- DATA = 0x2000,
-
- /* Synonyms. */
- INC = POSTINC,
- DEC = PREDEC,
- /* Control Registers. */
- CCR = 0x4000,
- EXR = 0x4100,
- MACH = 0x4200,
- MACL = 0x4300,
- RESERV1 = 0x4400,
- RESERV2 = 0x4500,
- VBR = 0x4600,
- SBR = 0x4700,
- MACREG = 0x4800,
- CCR_EXR = 0x4900,
- VBR_SBR = 0x4A00,
- CC_EX_VB_SB = 0x4B00,
- RESERV3 = 0x4C00,
- RESERV4 = 0x4D00,
- RESERV5 = 0x4E00,
- RESERV6 = 0x4F00,
-
- /* Mask to isolate the addressing mode bits (REG .. PREDEC). */
- MODE = 0x7F00,
-
- CTRL = 0x4000,
-
- NO_SYMBOLS = 0x8000,
- SRC = 0x10000,
- DST = 0x20000,
- OP3 = 0x40000,
- MEMRELAX = 0x80000, /* Move insn which may relax. */
-
- DISPREG = 0x100000,
- IGNORE = 0x200000,
- ABSJMP = 0x400000,
-
- B00 = 0x800000, /* Bit 0 must be low. */
- B01 = 0x1000000, /* Bit 0 must be high. */
- B10 = 0x2000000, /* Bit 1 must be low. */
- B11 = 0x4000000, /* Bit 1 must be high. */
- B20 = 0x8000000, /* Bit 2 must be low. */
- B21 = 0x10000000, /* Bit 2 must be high. */
- B30 = 0x20000000, /* Bit 3 must be low. */
- 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,
- IMM3NZ = IMM | L_3NZ,
- 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,
- IMM4_NS = IMM4 | NO_SYMBOLS,
- IMM8U_NS = IMM8U | NO_SYMBOLS,
- IMM16U_NS = IMM16U | NO_SYMBOLS,
-
- RD8 = DST | L_8 | REG,
- RD16 = DST | L_16 | REG,
- RD32 = DST | L_32 | REG,
- R3_8 = OP3 | L_8 | REG,
- R3_16 = OP3 | L_16 | REG,
- R3_32 = OP3 | L_32 | REG,
- RS8 = SRC | L_8 | REG,
- RS16 = SRC | L_16 | REG,
- RS32 = SRC | L_32 | REG,
-
- RSP = SRC | L_P | REG,
- RDP = DST | L_P | REG,
-
- PCREL8 = PCREL | L_8,
- PCREL16 = PCREL | L_16,
-
- OP3PCREL8 = OP3 | PCREL | L_8,
- OP3PCREL16 = OP3 | PCREL | L_16,
-
- INDEXB16 = INDEXB | L_16,
- INDEXW16 = INDEXW | L_16,
- INDEXL16 = INDEXL | L_16,
- INDEXB16D = INDEXB | L_16 | DST,
- INDEXW16D = INDEXW | L_16 | DST,
- INDEXL16D = INDEXL | L_16 | DST,
-
- INDEXB32 = INDEXB | L_32,
- INDEXW32 = INDEXW | L_32,
- INDEXL32 = INDEXL | L_32,
- INDEXB32D = INDEXB | L_32 | DST,
- INDEXW32D = INDEXW | L_32 | DST,
- INDEXL32D = INDEXL | L_32 | DST,
-
- DISP2SRC = DISP | L_2 | SRC,
- DISP16SRC = DISP | L_16 | SRC,
- DISP32SRC = DISP | L_32 | SRC,
-
- DISP2DST = DISP | L_2 | DST,
- DISP16DST = DISP | L_16 | DST,
- DISP32DST = DISP | L_32 | DST,
-
- DSTDISPREG = DST | DISPREG,
- SRCDISPREG = SRC | DISPREG,
-
- ABS8SRC = SRC | ABS | L_8,
- ABS16SRC = SRC | ABS | L_16U,
- ABS24SRC = SRC | ABS | L_24,
- ABS32SRC = SRC | ABS | L_32,
-
- ABS8DST = DST | ABS | L_8,
- ABS16DST = DST | ABS | L_16U,
- ABS24DST = DST | ABS | L_24,
- ABS32DST = DST | ABS | L_32,
-
- ABS8OP3 = OP3 | ABS | L_8,
- ABS16OP3 = OP3 | ABS | L_16U,
- ABS24OP3 = OP3 | ABS | L_24,
- ABS32OP3 = OP3 | ABS | L_32,
-
- RDDEC = DST | DEC,
- RSINC = SRC | INC,
- RDINC = DST | INC,
-
- RSPOSTINC = SRC | POSTINC,
- RDPOSTINC = DST | POSTINC,
- RSPREINC = SRC | PREINC,
- RDPREINC = DST | PREINC,
- RSPOSTDEC = SRC | POSTDEC,
- RDPOSTDEC = DST | POSTDEC,
- RSPREDEC = SRC | PREDEC,
- RDPREDEC = DST | PREDEC,
-
- RSIND = SRC | IND,
- RDIND = DST | IND,
- R3_IND = OP3 | IND,
-
-#define MS32 (SRC | L_32 | MACREG)
-#define MD32 (DST | L_32 | MACREG)
-
-#if 1
- OR8 = RS8, /* ??? OR as in One Register. */
- OR16 = RS16,
- OR32 = RS32,
-#else
- OR8 = RD8,
- OR16 = RD16,
- OR32 = RD32
-#endif
-};
-
-enum ctrlreg
-{
- C_CCR = 0,
- C_EXR = 1,
- C_MACH = 2,
- C_MACL = 3,
- C_VBR = 6,
- C_SBR = 7
-};
-
-enum {MAX_CODE_NIBBLES = 33};
-
-struct code
-{
- op_type nib[MAX_CODE_NIBBLES];
-};
-
-struct arg
-{
- op_type nib[3];
-};
-
-/* Availability of instructions on processor models. */
-enum h8_model
-{
- AV_H8,
- AV_H8H,
- AV_H8S,
- AV_H8SX
-};
-
-struct h8_opcode
-{
- int how;
- enum h8_model available;
- int time;
- char *name;
- struct arg args;
- struct code data;
-};
-
-#ifdef DEFINE_TABLE
-
-#define DATA2 DATA, DATA
-#define DATA3 DATA, DATA, DATA
-#define DATA5 DATA, DATA, DATA, DATA, DATA
-#define DATA7 DATA, DATA, DATA, DATA, DATA, DATA, DATA
-
-#define IMM8LIST IMM8, DATA
-#define IMM16LIST IMM16, DATA3
-#define IMM16ULIST IMM16U, DATA3
-#define IMM24LIST IMM24, DATA5
-#define IMM32LIST IMM32, DATA7
-
-#define DISP16LIST DISP | L_16, DATA3
-#define DISP24LIST DISP | L_24, DATA5
-#define DISP32LIST DISP | L_32, DATA7
-
-#define ABS8LIST ABS | L_8, DATA
-#define ABS16LIST ABS | L_16U, DATA3
-#define ABS24LIST ABS | L_24, DATA5
-#define ABS32LIST ABS | L_32, DATA7
-
-#define DSTABS8LIST DST | ABS | L_8, DATA
-#define DSTABS16LIST DST | ABS | L_16U, DATA3
-#define DSTABS24LIST DST | ABS | L_24, DATA5
-#define DSTABS32LIST DST | ABS | L_32, DATA7
-
-#define OP3ABS8LIST OP3 | ABS | L_8, DATA
-#define OP3ABS16LIST OP3 | ABS | L_16, DATA3
-#define OP3ABS24LIST OP3 | ABS | L_24, DATA5
-#define OP3ABS32LIST OP3 | ABS | L_32, DATA7
-
-#define DSTDISP16LIST DST | DISP | L_16, DATA3
-#define DSTDISP24LIST DST | DISP | L_24, DATA5
-#define DSTDISP32LIST DST | DISP | L_32, DATA7
-
-#define A16LIST L_16, DATA3
-#define A24LIST L_24, DATA5
-#define A32LIST L_32, DATA7
-
-/* Extended Operand Prefixes: */
-
-#define PREFIX_010 0x0, 0x1, 0x0
-#define PREFIX_015 0x0, 0x1, 0x5
-#define PREFIX_017 0x0, 0x1, 0x7
-
-#define PREFIX_0100 0x0, 0x1, 0x0, 0x0
-#define PREFIX_010_D2 0x0, 0x1, 0x0, B30 | B21 | DISP2SRC
-#define PREFIX_0101 0x0, 0x1, 0x0, 0x1
-#define PREFIX_0102 0x0, 0x1, 0x0, 0x2
-#define PREFIX_0103 0x0, 0x1, 0x0, 0x3
-#define PREFIX_0104 0x0, 0x1, 0x0, 0x4
-#define PREFIX_0105 0x0, 0x1, 0x0, 0x5
-#define PREFIX_0106 0x0, 0x1, 0x0, 0x6
-#define PREFIX_0107 0x0, 0x1, 0x0, 0x7
-#define PREFIX_0108 0x0, 0x1, 0x0, 0x8
-#define PREFIX_0109 0x0, 0x1, 0x0, 0x9
-#define PREFIX_010A 0x0, 0x1, 0x0, 0xa
-#define PREFIX_010D 0x0, 0x1, 0x0, 0xd
-#define PREFIX_010E 0x0, 0x1, 0x0, 0xe
-
-#define PREFIX_0150 0x0, 0x1, 0x5, 0x0
-#define PREFIX_015_D2 0x0, 0x1, 0x5, B30 | B21 | DISP2SRC
-#define PREFIX_0151 0x0, 0x1, 0x5, 0x1
-#define PREFIX_0152 0x0, 0x1, 0x5, 0x2
-#define PREFIX_0153 0x0, 0x1, 0x5, 0x3
-#define PREFIX_0154 0x0, 0x1, 0x5, 0x4
-#define PREFIX_0155 0x0, 0x1, 0x5, 0x5
-#define PREFIX_0156 0x0, 0x1, 0x5, 0x6
-#define PREFIX_0157 0x0, 0x1, 0x5, 0x7
-#define PREFIX_0158 0x0, 0x1, 0x5, 0x8
-#define PREFIX_0159 0x0, 0x1, 0x5, 0x9
-#define PREFIX_015A 0x0, 0x1, 0x5, 0xa
-#define PREFIX_015D 0x0, 0x1, 0x5, 0xd
-#define PREFIX_015E 0x0, 0x1, 0x5, 0xe
-#define PREFIX_015F 0x0, 0x1, 0x5, 0xf
-
-#define PREFIX_0170 0x0, 0x1, 0x7, 0x0
-#define PREFIX_017_D2S 0x0, 0x1, 0x7, B30 | B21 | DISP2SRC
-#define PREFIX_017_D2D 0x0, 0x1, 0x7, B30 | B21 | DISP2DST
-#define PREFIX_0171 0x0, 0x1, 0x7, 0x1
-#define PREFIX_0172 0x0, 0x1, 0x7, 0x2
-#define PREFIX_0173 0x0, 0x1, 0x7, 0x3
-#define PREFIX_0174 0x0, 0x1, 0x7, 0x4
-#define PREFIX_0175 0x0, 0x1, 0x7, 0x5
-#define PREFIX_0176 0x0, 0x1, 0x7, 0x6
-#define PREFIX_0177 0x0, 0x1, 0x7, 0x7
-#define PREFIX_0178 0x0, 0x1, 0x7, 0x8
-#define PREFIX_0179 0x0, 0x1, 0x7, 0x9
-#define PREFIX_017A 0x0, 0x1, 0x7, 0xa
-#define PREFIX_017D 0x0, 0x1, 0x7, 0xd
-#define PREFIX_017E 0x0, 0x1, 0x7, 0xe
-#define PREFIX_017F 0x0, 0x1, 0x7, 0xf
-
-#define PREFIX_6A15 0x6, 0xa, 0x1, 0x5
-#define PREFIX_6A35 0x6, 0xa, 0x3, 0x5
-#define PREFIX_6B15 0x6, 0xb, 0x1, 0x5
-#define PREFIX_6B35 0x6, 0xb, 0x3, 0x5
-
-#define PREFIX_78R4 0x7, 0x8, B31 | DISPREG, 0x4
-#define PREFIX_78R5 0x7, 0x8, B31 | DISPREG, 0x5
-#define PREFIX_78R6 0x7, 0x8, B31 | DISPREG, 0x6
-#define PREFIX_78R7 0x7, 0x8, B31 | DISPREG, 0x7
-
-#define PREFIX_78R4W 0x7, 0x8, B30 | DISPREG, 0x4
-#define PREFIX_78R5W 0x7, 0x8, B30 | DISPREG, 0x5
-#define PREFIX_78R6W 0x7, 0x8, B30 | DISPREG, 0x6
-#define PREFIX_78R7W 0x7, 0x8, B30 | DISPREG, 0x7
-
-#define PREFIX_78R4WD 0x7, 0x8, B30 | DSTDISPREG, 0x4
-#define PREFIX_78R5WD 0x7, 0x8, B30 | DSTDISPREG, 0x5
-#define PREFIX_78R6WD 0x7, 0x8, B30 | DSTDISPREG, 0x6
-#define PREFIX_78R7WD 0x7, 0x8, B30 | DSTDISPREG, 0x7
-
-#define PREFIX_7974 0x7, 0x9, 0x7, 0x4
-#define PREFIX_7A74 0x7, 0xa, 0x7, 0x4
-#define PREFIX_7A7C 0x7, 0xa, 0x7, 0xc
-
-
-/* Source standard fragment: */
-#define FROM_IND 0, RSIND
-#define FROM_POSTINC 8, RSPOSTINC
-#define FROM_POSTDEC 10, RSPOSTDEC
-#define FROM_PREINC 9, RSPREINC
-#define FROM_PREDEC 11, RSPREDEC
-#define FROM_DISP2 B30 | B20 | DISP2SRC, DISPREG
-#define FROM_DISP16 12, B30 | DISPREG
-#define FROM_DISP32 12, B31 | DISPREG
-#define FROM_DISP16B 13, B30 | DISPREG
-#define FROM_DISP16W 14, B30 | DISPREG
-#define FROM_DISP16L 15, B30 | DISPREG
-#define FROM_DISP32B 13, B31 | DISPREG
-#define FROM_DISP32W 14, B31 | DISPREG
-#define FROM_DISP32L 15, B31 | DISPREG
-#define FROM_ABS16 4, B30 | IGNORE
-#define FROM_ABS32 4, B31 | IGNORE
-
-/* Destination standard fragment: */
-#define TO_IND 0, RDIND
-#define TO_IND_MOV 0, RDIND | B30
-#define TO_POSTINC 8, RDPOSTINC
-#define TO_POSTINC_MOV 8, RDPOSTINC | B30
-#define TO_POSTDEC 10, RDPOSTDEC
-#define TO_POSTDEC_MOV 10, RDPOSTDEC | B30
-#define TO_PREINC 9, RDPREINC
-#define TO_PREINC_MOV 9, RDPREINC | B30
-#define TO_PREDEC 11, RDPREDEC
-#define TO_PREDEC_MOV 11, RDPREDEC | B30
-#define TO_DISP2 B30 | B20 | DISP2DST, DSTDISPREG
-#define TO_DISP2_MOV B30 | B20 | DISP2DST, DSTDISPREG | B30
-#define TO_DISP16 12, B30 | DSTDISPREG
-#define TO_DISP32 12, B31 | DSTDISPREG
-#define TO_DISP16B 13, B30 | DSTDISPREG
-#define TO_DISP16W 14, B30 | DSTDISPREG
-#define TO_DISP16L 15, B30 | DSTDISPREG
-#define TO_DISP32B 13, B31 | DSTDISPREG
-#define TO_DISP32W 14, B31 | DSTDISPREG
-#define TO_DISP32L 15, B31 | DSTDISPREG
-#define TO_ABS16 4, B30 | IGNORE
-#define TO_ABS32 4, B31 | IGNORE
-
-/* Source fragment for three-word instruction: */
-#define TFROM_IND 6, 9, B30 | RSIND, 12
-#define TFROM_DISP2 6, 9, B30 | DISPREG, 12
-#define TFROM_ABS16 6, 11, B30 | B20 | B10 | IGNORE, 12, ABS16LIST
-#define TFROM_ABS32 6, 11, B30 | B20 | B11 | IGNORE, 12, ABS32LIST
-#define TFROM_POSTINC 6, 13, B30 | RSPOSTINC, 12
-#define TFROM_PREINC 6, 13, B30 | RSPREINC, 12
-#define TFROM_POSTDEC 6, 13, B30 | RSPOSTDEC, 12
-#define TFROM_PREDEC 6, 13, B30 | RSPREDEC, 12
-#define TFROM_DISP16 6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32 6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP16B 6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16W 6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16L 6, 15, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32B 6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP32W 6, 11, 2, 12, DISP32LIST
-#define TFROM_DISP32L 6, 11, 2, 12, DISP32LIST
-#define TFROM_ABS16W 6, 11, 1, 12, ABS16LIST
-#define TFROM_ABS32W 6, 11, 3, 12, ABS32LIST
-
-/* Source fragment for three-word instruction: */
-#define TFROM_IND_B 6, 8, B30 | RSIND, 12
-#define TFROM_ABS16_B 6, 10, B30 | B20 | B10 | IGNORE, 12, ABS16LIST
-#define TFROM_ABS32_B 6, 10, B30 | B20 | B11 | IGNORE, 12, ABS32LIST
-
-#define TFROM_DISP2_B 6, 8, B30 | DISPREG, 12
-#define TFROM_POSTINC_B 6, 12, B30 | RSPOSTINC, 12
-#define TFROM_PREINC_B 6, 12, B30 | RSPREINC, 12
-#define TFROM_POSTDEC_B 6, 12, B30 | RSPOSTDEC, 12
-#define TFROM_PREDEC_B 6, 12, B30 | RSPREDEC, 12
-#define TFROM_DISP16_B 6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32_B 6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP16B_B 6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16W_B 6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP16L_B 6, 14, B30 | DISPREG, 12, DISP16LIST
-#define TFROM_DISP32B_B 6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP32W_B 6, 10, 2, 12, DISP32LIST
-#define TFROM_DISP32L_B 6, 10, 2, 12, DISP32LIST
-
-#define TFROM_ABS16W_B 6, 10, 1, 12, ABS16LIST
-#define TFROM_ABS32W_B 6, 10, 3, 12, ABS32LIST
-
-/* Extended Operand Class Expanders: */
-
-#define MOVFROM_STD(CODE, PREFIX, NAME, SRC, SRC_INFIX) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, DSTABS32LIST, E}}}
-
-#define MOVFROM_AD(CODE, PREFIX, NAME, SRC, SRC_INFIX, SRC_SUFFIX) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, SRC_SUFFIX, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, SRC_SUFFIX, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, SRC_SUFFIX, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, SRC_SUFFIX, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, SRC_SUFFIX, DSTABS32LIST, E}}}
-
-#define MOVFROM_IMM8(CODE, PREFIX, NAME, SRC) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, 0, RDIND, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 8, RDPOSTINC, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 10, RDPOSTDEC, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 9, RDPREINC, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, 11, RDPREDEC, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, DSTDISPREG, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, 12, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, 12, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 13, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 14, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 15, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, 13, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, 14, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, 15, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, 4, B30 | IGNORE, IMM8LIST, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, 4, B31 | IGNORE, IMM8LIST, DSTABS32LIST, E}}}
-
-#define MOVFROM_IMM(CODE, PREFIX, NAME, SRC, LIST) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, LIST, 0, RDIND, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, LIST, 8, RDPOSTINC, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, LIST, 10, RDPOSTDEC, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, LIST, 9, RDPREINC, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, LIST, 11, RDPREDEC, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, LIST, B30 | B20 | DISP2DST, DSTDISPREG, DATA2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, LIST, 12, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, LIST, 12, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, LIST, 13, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, LIST, 14, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, LIST, 15, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, LIST, 13, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, LIST, 14, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, LIST, 15, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, LIST, 4, B30 | IGNORE, DATA2, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, LIST, 4, B31 | IGNORE, DATA2, DSTABS32LIST, E}}}
-
-#define MOVFROM_REG_BW(CODE, NAME, SRC, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \
- {CODE, AV_H8, 4, NAME, {{SRC, RDIND, E}}, {{ 6, OP1, B31 | RDIND, SRC, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 3, 6, OP3, B31 | RDPOSTINC, SRC, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 1, 6, OP3, B31 | RDPOSTDEC, SRC, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 2, 6, OP3, B31 | RDPREINC, SRC, E}}}, \
- {CODE, AV_H8, 6, NAME, {{SRC, RDPREDEC, E}}, {{ 6, OP3, B31 | RDPREDEC, SRC, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, 6, OP1, B31 | DSTDISPREG, SRC, E}}}, \
- {CODE, AV_H8, 6, NAME, {{SRC, DISP16DST, E}}, {{ 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{SRC, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 0, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 1, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 2, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 3, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 1, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 2, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 3, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8, 4, NAME, {{SRC, ABS16DST, E}}, {{ 6, OP2, 8, SRC, RELAX16 | DSTABS16LIST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{SRC, ABS32DST, E}}, {{ 6, OP2, 10, SRC, MEMRELAX | DSTABS32LIST, E}}}
-
-#define MOVTO_REG_BW(CODE, NAME, DST, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \
- {CODE, AV_H8, 4, NAME, {{RSIND, DST, E}}, {{ 6, OP1, B30 | RSIND, DST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{RSPOSTINC, DST, E}}, {{ 6, OP3, B30 | RSPOSTINC, DST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, 2, 6, OP3, B30 | RSPOSTDEC, DST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, 1, 6, OP3, B30 | RSPREINC, DST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, 3, 6, OP3, B30 | RSPREDEC, DST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, B30 | B20 | DISP2SRC, 6, OP1, B30 | DISPREG, DST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{DISP16SRC, DST, E}}, {{ 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{DISP32SRC, DST, E}}, {{7, 8, B30 | DISPREG, 0, 6, OP2, 2, DST, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, 1, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, 2, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, 3, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{7, 8, B30 | DISPREG, 1, 6, OP2, 2, DST, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{7, 8, B30 | DISPREG, 2, 6, OP2, 2, DST, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{7, 8, B30 | DISPREG, 3, 6, OP2, 2, DST, DISP32LIST, E}}}, \
- {CODE, AV_H8, 4, NAME, {{ABS16SRC, DST, E}}, {{ 6, OP2, 0, DST, RELAX16 | ABS16LIST, E}}}, \
- {CODE, AV_H8, 6, NAME, {{ABS32SRC, DST, E}}, {{ 6, OP2, 2, DST, MEMRELAX | ABS32LIST, E}}}
-
-/* Expansion macros for two-word (plus data) instructions. */
-
-/* Expansion from one source to "standard" destinations. */
-#define EXPAND2_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, NIB1, NIB2) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}}
-
-/* Expansion from one destination to "standard" sources. */
-#define EXPAND2_STD_DST(CODE, WEIGHT, NAME, DST, PREFIX, NIB1, NIB2) \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, DST, E}}, {{PREFIX, FROM_POSTINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, FROM_POSTDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, FROM_PREINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, FROM_PREDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, FROM_DISP2, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, DST, E}}, {{PREFIX, FROM_DISP16, NIB1, NIB2, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, DST, E}}, {{PREFIX, FROM_DISP32, NIB1, NIB2, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, FROM_DISP16B, NIB1, NIB2, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, FROM_DISP16W, NIB1, NIB2, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, FROM_DISP16L, NIB1, NIB2, DISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{PREFIX, FROM_DISP32B, NIB1, NIB2, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{PREFIX, FROM_DISP32W, NIB1, NIB2, DISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{PREFIX, FROM_DISP32L, NIB1, NIB2, DISP32LIST, E}}}
-
-/* Expansion from immediate source to "standard" destinations. */
-#define EXPAND2_STD_IMM(CODE, WEIGHT, NAME, SRC, PREFIX, OPCODE, IGN, IMMLIST) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, OPCODE, IGN, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, OPCODE, IGN, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, OPCODE, IGN, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, OPCODE, IGN, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, OPCODE, IGN, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}
-
-/* Expansion from abs/disp source to "standard" destinations. */
-#define EXPAND2_STD_ABSDISP(CODE, WEIGHT, NAME, SRC, PREFIX, DSTLIST, NIB1, NIB2) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, DSTLIST, TO_POSTINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, DSTLIST, TO_POSTDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, DSTLIST, TO_PREINC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, DSTLIST, TO_PREDEC, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, DSTLIST, TO_DISP2, NIB1, NIB2, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, DSTLIST, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, DSTLIST, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, DSTLIST, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, DSTLIST, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, DSTLIST, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, DSTLIST, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, DSTLIST, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, DSTLIST, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}}
-
-/* Expansion from ind source to "standard" destinations. */
-#define EXPAND2_STD_IND(CODE, WEIGHT, NAME, OPCODE, BIT) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTINC, OPCODE, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTDEC, OPCODE, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREINC, OPCODE, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREDEC, OPCODE, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP2DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP2, OPCODE, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP16DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP32DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16B, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16W, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16L, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32B, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32W, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32L, OPCODE, IGNORE, DSTDISP32LIST, E}}}
-
-/* Expansion macros for three word (plus data) instructions. */
-
-#define EXPAND3_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}
-
-#define EXPAND3_L_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, INFIX, 0, RDIND, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, INFIX, 4, B30 | IGNORE, OPCODE, B30 | IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, INFIX, 4, B31 | IGNORE, OPCODE, B30 | IGNORE, DSTABS32LIST, E}}}
-
-
-#define EXPAND_STD_MATRIX_L(CODE, NAME, OPCODE) \
- EXPAND3_L_SRC (CODE, 6, NAME, RSIND, PREFIX_0104, TFROM_IND, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTINC, PREFIX_0104, TFROM_POSTINC, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTDEC, PREFIX_0106, TFROM_POSTDEC, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, RSPREINC, PREFIX_0105, TFROM_PREINC, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, RSPREDEC, PREFIX_0107, TFROM_PREDEC, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, DISP2SRC, PREFIX_010_D2, TFROM_DISP2, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, DISP16SRC, PREFIX_0104, TFROM_DISP16, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, DISP32SRC, PREFIX_78R4, TFROM_DISP32, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXB16, PREFIX_0105, TFROM_DISP16B, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXW16, PREFIX_0106, TFROM_DISP16W, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXL16, PREFIX_0107, TFROM_DISP16L, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXB32, PREFIX_78R5, TFROM_DISP32B, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXW32, PREFIX_78R6, TFROM_DISP32W, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, INDEXL32, PREFIX_78R7, TFROM_DISP32L, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, ABS16SRC, PREFIX_0104, TFROM_ABS16, OPCODE), \
- EXPAND3_L_SRC (CODE, 6, NAME, ABS32SRC, PREFIX_0104, TFROM_ABS32, OPCODE)
-
-
-#define EXPAND_STD_MATRIX_W(CODE, NAME, OPCODE) \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0154, TFROM_POSTINC, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0156, TFROM_POSTDEC, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0155, TFROM_PREINC, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0157, TFROM_PREDEC, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_015_D2, TFROM_DISP2, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0154, TFROM_DISP16, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0155, TFROM_DISP16B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0156, TFROM_DISP16W, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0157, TFROM_DISP16L, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L, OPCODE)
-
-#define EXPAND_STD_MATRIX_B(CODE, NAME, OPCODE) \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0174, TFROM_POSTINC_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0176, TFROM_POSTDEC_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0175, TFROM_PREINC_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0177, TFROM_PREDEC_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_017_D2S, TFROM_DISP2_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0174, TFROM_DISP16_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0175, TFROM_DISP16B_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0176, TFROM_DISP16W_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0177, TFROM_DISP16L_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W_B, OPCODE), \
- EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L_B, OPCODE)
-
-
-/* Use the expansion macros to fill out the opcode table. */
-
-#define EXPAND_FROM_REG8(CODE, NAME, OP1, OP2, OP3) \
- {CODE, AV_H8SX, 0, NAME, {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, OP2, RS8, IGNORE, E}}}, \
- EXPAND2_STD_SRC (CODE, 2, NAME, RS8, PREFIX_0179, OP3, RS8), \
- {CODE, AV_H8SX, 0, NAME, {{RS8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, OP2, RS8, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RS8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS8, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RS8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS8, IGNORE, E}}}
-
-#define EXPAND_TO_REG8(CODE, NAME, OP1, OP2, OP3) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, OP1, OP2, IGNORE, RD8, E}}}, \
- EXPAND2_STD_DST (CODE, 2, NAME, RD8, PREFIX_017A, OP3, RD8), \
- {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, RD8, E}}, {{0x7, 0xe, ABS8LIST, OP1, OP2, IGNORE, RD8, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD8, E}}, {{0x6, 0xa, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD8, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD8, E}}, {{0x6, 0xa, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD8, E}}}
-
-#define EXPAND_FROM_IND8(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B30), \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS16_B(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6A15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6A15, ABS16LIST, OPCODE, IGNORE), \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS32_B(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6A35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6A35, ABS32LIST, OPCODE, IGNORE), \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_IMM16_W(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{IMM16, RDIND, E}}, {{PREFIX_015E, TO_IND, OPCODE, IGNORE, IMM16LIST, E}}}, \
- EXPAND2_STD_IMM (CODE, 2, NAME, IMM16, PREFIX_015E, OPCODE, IGNORE, IMM16LIST), \
- {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS16DST, E}}, {{PREFIX_015E, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, IMM16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS32DST, E}}, {{PREFIX_015E, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, IMM16LIST, E}}}
-
-#define EXPAND_FROM_REG16(CODE, NAME, OP1, OP2, OP3) \
- {CODE, AV_H8, 2, NAME, {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, OP1, OP2, RS16, IGNORE, E}}}, \
- EXPAND2_STD_SRC (CODE, 2, NAME, RS16, PREFIX_0159, OP3, RS16), \
- {CODE, AV_H8SX, 0, NAME, {{RS16, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS16, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RS16, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS16, IGNORE, E}}}
-
-#define EXPAND_TO_REG16(CODE, NAME, OP1, OP2, OP3) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, IGNORE, OP1, OP2, IGNORE, RD16, E}}}, \
- EXPAND2_STD_DST (CODE, 2, NAME, RD16, PREFIX_015A, OP3, RD16), \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD16, E}}, {{0x6, 0xb, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD16, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD16, E}}, {{0x6, 0xb, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD16, E}}}
-
-#define EXPAND_FROM_IND16(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B31), \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS16_W(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6B15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6B15, ABS16LIST, OPCODE, IGNORE), \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_ABS32_W(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6B35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \
- EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6B35, ABS32LIST, OPCODE, IGNORE), \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}}
-
-#define EXPAND_FROM_IMM16_L(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B30 | IGNORE, IMM16ULIST, E}}}, \
- EXPAND2_STD_IMM (CODE, 2, NAME, IMM16U_NS, PREFIX_010E, OPCODE, B30 | IGNORE, IMM16ULIST), \
- {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B30 | IGNORE, DSTABS16LIST, IMM16ULIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B30 | IGNORE, DSTABS32LIST, IMM16ULIST, E}}}
-
-#define EXPAND_FROM_IMM32_L(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{IMM32, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B31 | IGNORE, IMM32LIST, E}}}, \
- EXPAND2_STD_IMM (CODE, 2, NAME, IMM32, PREFIX_010E, OPCODE, B31 | IGNORE, IMM32LIST), \
- {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B31 | IGNORE, DSTABS16LIST, IMM32LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B31 | IGNORE, DSTABS32LIST, IMM32LIST, E}}}
-
-#define EXPAND_FROM_REG32(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{RS32, RDIND, E}}, {{PREFIX_0109, TO_IND, OPCODE, B30 | RS32, E}}}, \
- EXPAND2_STD_SRC (CODE, 2, NAME, RS32, PREFIX_0109, OPCODE, B30 | RS32), \
- {CODE, AV_H8SX, 0, NAME, {{RS32, ABS16DST, E}}, {{PREFIX_0109, TO_ABS16, OPCODE, B30 | RS32, DSTABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RS32, ABS32DST, E}}, {{PREFIX_0109, TO_ABS32, OPCODE, B30 | RS32, DSTABS32LIST, E}}}
-
-#define EXPAND_TO_REG32(CODE, NAME, OPCODE) \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, RD32, E}}, {{PREFIX_010A, FROM_IND, OPCODE, B30 | RD32, E}}}, \
- EXPAND2_STD_DST (CODE, 2, NAME, RD32, PREFIX_010A, OPCODE, B30 | RD32), \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS16, OPCODE, B30 | RD32, ABS16LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS32, OPCODE, B30 | RD32, ABS32LIST, E}}}
-
-
-#define EXPAND_TWOOP_B(CODE, NAME, OP1, OP2, OP3, OP4, BIT) \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTINC, E}}, {{PREFIX_0174, 0x6, 0xc, B30 | RDPOSTINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREINC, E}}, {{PREFIX_0175, 0x6, 0xc, B30 | RDPREINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREDEC, E}}, {{PREFIX_0177, 0x6, 0xc, B30 | RDPREDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP2DST, E}}, {{PREFIX_017_D2D, 0x6, 0x8, B30 | DSTDISPREG, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP16DST, E}}, {{PREFIX_0174, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP32DST, E}}, {{PREFIX_78R4WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB16D, E}}, {{PREFIX_0175, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW16D, E}}, {{PREFIX_0176, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL16D, E}}, {{PREFIX_0177, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB32D, E}}, {{PREFIX_78R5WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW32D, E}}, {{PREFIX_78R6WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL32D, E}}, {{PREFIX_78R7WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | B20 | IGNORE, DSTABS16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | B20 | IGNORE, DSTABS32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \
- {CODE, AV_H8, 2, NAME, {{RS8, RD8, E}}, {{OP2, OP3, RS8, RD8, E}}}, \
- EXPAND_FROM_REG8 (CODE, NAME, OP2, OP3, OP4), \
- EXPAND_TO_REG8 (CODE, NAME, OP2, OP3, OP4), \
- EXPAND_FROM_IND8 (CODE, NAME, OP4), \
- EXPAND_STD_MATRIX_B (CODE, NAME, OP4), \
- EXPAND_FROM_ABS16_B (CODE, NAME, OP4), \
- EXPAND_FROM_ABS32_B (CODE, NAME, OP4)
-
-#define EXPAND_TWOOP_W(CODE, NAME, OP1, OP2, OP3) \
- {CODE, AV_H8H, 6, NAME, {{IMM16, RD16, E}}, {{0x7, 0x9, OP3, RD16, IMM16LIST, E}}}, \
- EXPAND_FROM_IMM16_W (CODE, NAME, OP3), \
- EXPAND_FROM_REG16 (CODE, NAME, OP1, OP2, OP3), \
- EXPAND_TO_REG16 (CODE, NAME, OP1, OP2, OP3), \
- EXPAND_FROM_IND16 (CODE, NAME, OP3), \
- EXPAND_STD_MATRIX_W (CODE, NAME, OP3), \
- EXPAND_FROM_ABS16_W (CODE, NAME, OP3), \
- EXPAND_FROM_ABS32_W (CODE, NAME, OP3)
-
-#define EXPAND_TWOOP_L(CODE, NAME, OP1) \
- {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, OP1, B31 | RD32, IMM16ULIST, E}}}, \
- {CODE, AV_H8H, 6, NAME, {{IMM32, RD32, E}}, {{0x7, 0xa, OP1, B30 | RD32, IMM32LIST, E}}}, \
- EXPAND_FROM_IMM16_L (CODE, NAME, OP1), \
- EXPAND_FROM_IMM32_L (CODE, NAME, OP1), \
- EXPAND_FROM_REG32 (CODE, NAME, OP1), \
- EXPAND_TO_REG32 (CODE, NAME, OP1), \
- EXPAND_STD_MATRIX_L (CODE, NAME, OP1)
-
-
-/* Old expanders: */
-
-#define BITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
- {code, AV_H8, 2, name, {{imm, RD8, E}}, {{op00, op01, imm, RD8, E}}}, \
- {code, AV_H8, 6, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, 0, E}}}, \
- {code, AV_H8, 6, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, 0, E}}}, \
- {code, AV_H8S, 6, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | MEMRELAX | ABS16LIST , op00, op01, imm, op4, E}}}, \
- {code, AV_H8S, 6, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | MEMRELAX | ABS32LIST , op00, op01, imm, op4, E}}}
-
-#define BITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
- {code, AV_H8SX, 0, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, op4, E}}}, \
- {code, AV_H8SX, 0, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, op4, E}}}, \
- {code, AV_H8SX, 0, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | ABS16LIST, op00, op01, imm, op4, E}}}, \
- {code, AV_H8SX, 0, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | ABS32LIST, op00, op01, imm, op4, E}}}
-
-#define EBITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
- BITOP(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \
- BITOP(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4)
-
-#define EBITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \
- BITOP_B(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \
- BITOP_B(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4)
-
-#define WTWOP(code, name, op1, op2) \
- {code, AV_H8, 2, name, {{RS16, RD16, E}}, {{op1, op2, RS16, RD16, E}}}
-
-#define BRANCH(code, name, op) \
- {code, AV_H8H, 6, name, {{PCREL16, E}}, {{0x5, 0x8, op, 0x0, PCREL16, DATA3 | B00, E}}}, \
- {code, AV_H8, 4, name, {{PCREL8, E}}, {{0x4, op, PCREL8, DATA | B00, E}}}
-
-
-#define UNOP(code, name, op1, op2) \
- {code, AV_H8, 2, name, {{OR8, E}}, {{op1, op2, 0, OR8, E}}}
-
-#define EXPAND_UNOP_STD_B(CODE, NAME, PREFIX, OP1, OP2, OP3) \
- {CODE, AV_H8, 2, NAME, {{OR8, E}}, {{ OP1, OP2, OP3, OR8, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B30 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 8, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, E}}, {{ 7, 15, ABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 10, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 10, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_STD_W(CODE, NAME, PREFIX, OP1, OP2, OP3) \
- {CODE, AV_H8H, 2, NAME, {{OR16, E}}, {{ OP1, OP2, OP3, OR16, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B31 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 11, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 11, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_STD_L(CODE, NAME, PREFIX, OP1, OP2, OP3) \
- {CODE, AV_H8H, 2, NAME, {{OR32, E}}, {{ OP1, OP2, OP3, B30 | OR32, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{PREFIX, 4, 6, 9, B30 | RSIND, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B31 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B31 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B31 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B31 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_B(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
- {CODE, AV_H8, 2, NAME, {{CONST, RD8, E}}, {{ OP1, OP2, OP3, RD8, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B30 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 8, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS8DST, E}}, {{ 7, 15, DSTABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 10, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 10, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_W(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3) \
- {CODE, AV_H8, 2, NAME, {{CONST, RD16, E}}, {{ OP1, OP2, OP3, RD16, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B31 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 11, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 11, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}}
-
-#define EXPAND_UNOP_EXTENDED_L(CODE, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \
- {CODE, AV_H8, 2, NAME, {{CONST, RD32, E}}, {{ OP1, OP2, OP3, BIT | RD32, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{PREFIX, 4, 6, 9, B30 | RDIND, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B31 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B31 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B31 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B31 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \
- {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}
-
-#define PREFIXLDC 0x0, 0x1, 0x4, B30 | CCR_EXR | DST
-#define PREFIXSTC 0x0, 0x1, 0x4, B30 | CCR_EXR | SRC
-
-#define O(op, size) (op * 4 + size)
-#define OP_SIZE(HOW) (HOW % 4)
-#define OP_KIND(HOW) (HOW / 4)
-
-enum h8_asm_codes
-{
- O_RECOMPILE = 0,
- O_ADD,
- O_ADDX,
- O_AND,
- O_BAND,
- O_BRA,
- O_BRAB,
- O_BRAW,
- O_BRAL,
- O_BRAS,
- O_BRABC,
- O_BRABS,
- O_BSRBC,
- O_BSRBS,
- O_BRN,
- O_BHI,
- O_BLS,
- O_BCC,
- O_BCS,
- O_BNE,
- O_BVC,
- O_BVS,
- O_BPL,
- O_BMI,
- O_BGE,
- O_BLT,
- O_BGT,
- O_BLE,
- O_ANDC,
- O_BEQ,
- O_BCLR,
- O_BCLREQ,
- O_BCLRNE,
- O_BSETEQ,
- O_BSETNE,
- O_BFLD,
- O_BFST,
- O_BIAND,
- O_BILD,
- O_BIOR,
- O_BIXOR,
- O_BIST,
- O_BISTZ,
- O_BLD,
- O_BNOT,
- O_BOR,
- O_BSET,
- O_BSR,
- O_BXOR,
- O_CMP,
- O_DAA,
- O_DAS,
- O_DEC,
- O_DIVU,
- O_DIVS,
- O_DIVXU,
- O_DIVXS,
- O_INC,
- O_LDC,
- O_MOV,
- O_MOVAB,
- O_MOVAW,
- O_MOVAL,
- O_MOVMD,
- O_MOVSD,
- O_OR,
- O_ROTL,
- O_ROTR,
- O_ROTXL,
- O_ROTXR,
- O_BPT,
- O_SHAL,
- O_SHAR,
- O_SHLL,
- O_SHLR,
- O_SUB,
- O_SUBS,
- O_TRAPA,
- O_XOR,
- O_XORC,
- O_BST,
- O_BSTZ,
- O_BTST,
- O_EEPMOV,
- O_EXTS,
- O_EXTU,
- O_JMP,
- O_JSR,
- O_MULU,
- O_MULUU,
- O_MULS,
- O_MULSU,
- O_MULXU,
- O_MULXS,
- O_NOP,
- O_NOT,
- O_ORC,
- O_RTE,
- O_RTEL,
- O_STC,
- O_SUBX,
- O_NEG,
- O_RTS,
- O_RTSL,
- O_SLEEP,
- O_ILL,
- O_ADDS,
- O_SYSCALL,
- O_TAS,
- O_CLRMAC,
- O_LDMAC,
- O_MAC,
- O_LDM,
- O_STM,
- O_STMAC,
- O_LAST,
- /* Change made for System Call processing. */
- O_SYS_CREAT,
- O_SYS_OPEN,
- O_SYS_READ,
- O_SYS_WRITE,
- O_SYS_LSEEK,
- O_SYS_CLOSE,
- O_SYS_STAT,
- O_SYS_FSTAT,
-/* Space reserved for future file I/O system calls. */
- O_SYS_CMDLINE
- /* End of System Call specific Changes. */
-};
-
-enum h8_size
-{
- SB = 0,
- SW = 1,
- SL = 2,
- SN = 3
-};
-
-
-/* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences.
- Methinks the zeroes aren't necessary. Once confirmed, nuke 'em. */
-
-struct h8_opcode h8_opcodes[] =
-{
- {O (O_ADD, SB), AV_H8, 2, "add.b", {{IMM8, RD8, E}}, {{0x8, RD8, IMM8LIST, E}}},
- EXPAND_TWOOP_B (O (O_ADD, SB), "add.b", 0x8, 0x0, 0x8, 0x1, 0),
-
- {O (O_ADD, SW), AV_H8, 6, "add.w", {{RS16, RD16, E}}, {{0x0, 0x9, RS16, RD16, E}}},
- {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xa, B30 | IMM3NZ, RD16, E}}},
- {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- EXPAND_TWOOP_W (O (O_ADD, SW), "add.w", 0x0, 0x9, 0x1),
-
- {O (O_ADD, SL), AV_H8H, 6, "add.l", {{RS32, RD32, E}}, {{0x0, 0xa, B31 | RS32, B30 | RD32, E}}},
- {O (O_ADD, SL), AV_H8SX, 0, "add.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xa, B31 | IMM3NZ, B31 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_ADD, SL), "add.l", 0x1),
-
- {O (O_ADDS, SL), AV_H8, 2, "adds", {{KBIT, RDP, E}}, {{0x0, 0xB,KBIT, RDP, E}}},
-
- {O (O_ADDX, SB), AV_H8, 2, "addx", {{IMM8, RD8, E}}, {{0x9, RD8, IMM8LIST, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x9, IGNORE, IMM8LIST, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x9, IGNORE, IMM8LIST, E}}},
- {O (O_ADDX, SB), AV_H8, 2, "addx", {{RS8, RD8, E}}, {{0x0, 0xe, RS8, RD8, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x0, 0xe, RS8, IGNORE, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x0, 0xe, RS8, IGNORE, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x0, 0xe, IGNORE, RD8, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x0, 0xe, IGNORE, RD8, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}},
- {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x1, RD16, IMM16LIST, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x0, 0x9, RS16, RD16, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}},
- {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x1, RD32, IMM32LIST, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x0, 0xa, B31 | RS32, B30 | RD32, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}},
- {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}},
-
- {O (O_AND, SB), AV_H8, 2, "and.b", {{IMM8, RD8, E}}, {{0xe, RD8, IMM8LIST, E}}},
- EXPAND_TWOOP_B (O (O_AND, SB), "and.b", 0xe, 0x1, 0x6, 0x6, 0),
-
- {O (O_AND, SW), AV_H8, 2, "and.w", {{RS16, RD16, E}}, {{0x6, 0x6, RS16, RD16, E}}},
- EXPAND_TWOOP_W (O (O_AND, SW), "and.w", 0x6, 0x6, 0x6),
-
- {O (O_AND, SL), AV_H8H, 2, "and.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x6, B30 | RS32, B30 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_AND, SL), "and.l", 0x6),
-
- {O (O_ANDC, SB), AV_H8, 2, "andc", {{IMM8, CCR | DST, E}}, {{0x0, 0x6, IMM8LIST, E}}},
- {O (O_ANDC, SB), AV_H8S, 2, "andc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x6, IMM8LIST, E}}},
-
- BRANCH (O (O_BRA, SB), "bra", 0x0),
-
- {O (O_BRAB, SB), AV_H8SX, 0, "bra", {{LOWREG | L_8, E}}, {{0x5, 0x9, LOWREG | L_8 | B30, 0x5, E}}},
- {O (O_BRAW, SW), AV_H8SX, 0, "bra", {{LOWREG | L_16, E}}, {{0x5, 0x9, LOWREG | L_16 | B30, 0x6, E}}},
- {O (O_BRAL, SL), AV_H8SX, 0, "bra", {{RS32, E}}, {{0x5, 0x9, RS32 | B30, 0x7, E}}},
-
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-
- {O (O_BRAS, SB), AV_H8SX, 0, "bra/s", {{PCREL8, E}}, {{0x4, 0x0, PCREL8, DATA | B01, E}}},
-
- {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
- {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}},
-
- BRANCH (O (O_BRA, SB), "bt", 0x0),
- BRANCH (O (O_BRN, SB), "brn", 0x1),
- BRANCH (O (O_BRN, SB), "bf", 0x1),
- BRANCH (O (O_BHI, SB), "bhi", 0x2),
- BRANCH (O (O_BLS, SB), "bls", 0x3),
- BRANCH (O (O_BCC, SB), "bcc", 0x4),
- BRANCH (O (O_BCC, SB), "bhs", 0x4),
- BRANCH (O (O_BCS, SB), "bcs", 0x5),
- BRANCH (O (O_BCS, SB), "blo", 0x5),
- BRANCH (O (O_BNE, SB), "bne", 0x6),
- BRANCH (O (O_BEQ, SB), "beq", 0x7),
- BRANCH (O (O_BVC, SB), "bvc", 0x8),
- BRANCH (O (O_BVS, SB), "bvs", 0x9),
- BRANCH (O (O_BPL, SB), "bpl", 0xA),
- BRANCH (O (O_BMI, SB), "bmi", 0xB),
- BRANCH (O (O_BGE, SB), "bge", 0xC),
- BRANCH (O (O_BLT, SB), "blt", 0xD),
- BRANCH (O (O_BGT, SB), "bgt", 0xE),
- BRANCH (O (O_BLE, SB), "ble", 0xF),
-
- EBITOP (O (O_BCLR, SB), IMM3 | B30, "bclr", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
- BITOP (O (O_BAND, SB), IMM3 | B30, "band", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BIAND, SB), IMM3 | B31, "biand", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BILD, SB), IMM3 | B31, "bild", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BIOR, SB), IMM3 | B31, "bior", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BIST, SB), IMM3 | B31, "bist", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
- BITOP (O (O_BIXOR, SB), IMM3 | B31, "bixor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BLD, SB), IMM3 | B30, "bld", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- EBITOP (O (O_BNOT, SB), IMM3 | B30, "bnot", 0x6, 0x1, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
- BITOP (O (O_BOR, SB), IMM3 | B30, "bor", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- EBITOP (O (O_BSET, SB), IMM3 | B30, "bset", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
- BITOP (O (O_BST, SB), IMM3 | B30, "bst", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0),
- EBITOP (O (O_BTST, SB), IMM3 | B30, "btst", 0x6, 0x3, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
- BITOP (O (O_BXOR, SB), IMM3 | B30, "bxor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0),
-
- EBITOP_B (O (O_BCLREQ, SB), IMM3 | B30, "bclr/eq", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
- EBITOP_B (O (O_BCLRNE, SB), IMM3 | B30, "bclr/ne", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6),
- EBITOP_B (O (O_BSETEQ, SB), IMM3 | B30, "bset/eq", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
- EBITOP_B (O (O_BSETNE, SB), IMM3 | B30, "bset/ne", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6),
- BITOP_B (O (O_BISTZ, SB), IMM3 | B31, "bistz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
- BITOP_B (O (O_BSTZ, SB), IMM3 | B30, "bstz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7),
-
- {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, RDIND, R3_8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0xF, R3_8, IMM8LIST, E}}},
- {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS8DST, R3_8}}, {{0x7, 0xE, DSTABS8LIST, 0xF, R3_8, IMM8LIST, E}}},
- {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS16DST, R3_8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0xF, R3_8, IMM8LIST, E}}},
- {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS32DST, R3_8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0xF, R3_8, IMM8LIST, E}}},
-
- /* Because the assembler treats SRC, DST and OP3 as ordinals,
- I must designate the second argument, an immediate value, as DST.
- May God have mercy on my soul. */
- {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, R3_IND}}, {{0x7, 0xD, B30 | R3_IND, 0x0, 0xF, RS8, DST | IMM8LIST, E}}},
- {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS8OP3}}, {{0x7, 0xF, OP3ABS8LIST, 0xF, RS8, DST | IMM8LIST, E}}},
- {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS16OP3}}, {{0x6, 0xA, 0x1, 0x8, OP3ABS16LIST, 0xF, RS8, DST | IMM8LIST, E}}},
- {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS32OP3}}, {{0x6, 0xA, 0x3, 0x8, OP3ABS32LIST, 0xF, RS8, DST | IMM8LIST, E}}},
-
- {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL8, E}}, {{0x5, 0x5, PCREL8, DATA, E}}},
- {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL16, E}}, {{0x5, 0xC, 0x0, 0x0, PCREL16, DATA3, E}}},
- {O (O_BSR, SB), AV_H8SX, 0, "bsr", {{LOWREG | L_8, E}}, {{0x5, 0xd, B30 | LOWREG | L_8, 0x5, E}}},
- {O (O_BSR, SW), AV_H8SX, 0, "bsr", {{LOWREG | L_16, E}}, {{0x5, 0xd, B30 | LOWREG | L_16, 0x6, E}}},
- {O (O_BSR, SL), AV_H8SX, 0, "bsr", {{OR32, E}}, {{0x5, 0xd, B30 | OR32, 0x7, E}}},
-
- {O (O_CMP, SB), AV_H8, 2, "cmp.b", {{IMM8, RD8, E}}, {{0xa, RD8, IMM8LIST, E}}},
- EXPAND_TWOOP_B (O (O_CMP, SB), "cmp.b", 0xa, 0x1, 0xc, 0x2, B00),
-
- {O (O_CMP, SW), AV_H8, 2, "cmp.w", {{RS16, RD16, E}}, {{0x1, 0xd, RS16, RD16, E}}},
- {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xf, B30 | IMM3NZ, RD16, E}}},
- {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}},
- EXPAND_TWOOP_W (O (O_CMP, SW), "cmp.w", 0x1, 0xd, 0x2),
-
- {O (O_CMP, SL), AV_H8H, 6, "cmp.l", {{RS32, RD32, E}}, {{0x1, 0xf, B31 | RS32, B30 | RD32, E}}},
- {O (O_CMP, SL), AV_H8SX, 0, "cmp.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xf, B31 | IMM3NZ, B31 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_CMP, SL), "cmp.l", 0x2),
-
- UNOP (O (O_DAA, SB), "daa", 0x0, 0xF),
- UNOP (O (O_DAS, SB), "das", 0x1, 0xF),
- UNOP (O (O_DEC, SB), "dec.b", 0x1, 0xA),
-
- {O (O_DEC, SW), AV_H8H, 2, "dec.w", {{DBIT, RD16, E}}, {{0x1, 0xB, 0x5 | DBIT, RD16, E}}},
- {O (O_DEC, SL), AV_H8H, 2, "dec.l", {{DBIT, RD32, E}}, {{0x1, 0xB, 0x7 | DBIT, RD32 | B30, E}}},
-
- {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x1, IMM4, RD16, E}}},
- {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x1, RS16, RD16, E}}},
- {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x3, IMM4, B30 | RD32, E}}},
- {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}},
-
- {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x1, IMM4, RD16, E}}},
- {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x1, RS16, RD16, E}}},
- {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x3, IMM4, B30 | RD32, E}}},
- {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}},
-
- {O (O_DIVXS, SB), AV_H8SX, 0, "divxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x1, IMM4, RD16, E}}},
- {O (O_DIVXS, SB), AV_H8H, 13, "divxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x1, RS8, RD16, E}}},
- {O (O_DIVXS, SW), AV_H8SX, 0, "divxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x3, IMM4, B30 | RD32, E}}},
- {O (O_DIVXS, SW), AV_H8H, 21, "divxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x3, RS16, B30 | RD32, E}}},
-
- {O (O_DIVXU, SB), AV_H8SX, 0, "divxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x1, IMM4, RD16, E}}},
- {O (O_DIVXU, SB), AV_H8, 13, "divxu.b", {{RS8, RD16, E}}, {{0x5, 0x1, RS8, RD16, E}}},
- {O (O_DIVXU, SW), AV_H8SX, 0, "divxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x3, IMM4, B30 | RD32, E}}},
- {O (O_DIVXU, SW), AV_H8H, 21, "divxu.w", {{RS16, RD32, E}}, {{0x5, 0x3, RS16, B30 | RD32, E}}},
-
- {O (O_EEPMOV, SB), AV_H8, 4, "eepmov.b", {{E}}, {{0x7, 0xB, 0x5, 0xC, 0x5, 0x9, 0x8, 0xF, E}}},
- {O (O_EEPMOV, SW), AV_H8H, 4, "eepmov.w", {{E}}, {{0x7, 0xB, 0xD, 0x4, 0x5, 0x9, 0x8, 0xF, E}}},
-
- EXPAND_UNOP_STD_W (O (O_EXTS, SW), "exts.w", PREFIX_015, 0x1, 0x7, 0xd),
- EXPAND_UNOP_STD_L (O (O_EXTS, SL), "exts.l", PREFIX_010, 0x1, 0x7, 0xf),
- EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0),
- EXPAND_UNOP_STD_W (O (O_EXTU, SW), "extu.w", PREFIX_015, 0x1, 0x7, 0x5),
- EXPAND_UNOP_STD_L (O (O_EXTU, SL), "extu.l", PREFIX_010, 0x1, 0x7, 0x7),
- EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0),
-
- UNOP (O (O_INC, SB), "inc", 0x0, 0xA),
-
- {O (O_INC, SW), AV_H8H, 2, "inc.w", {{DBIT, RD16, E}}, {{0x0, 0xB, 0x5 | DBIT, RD16, E}}},
- {O (O_INC, SL), AV_H8H, 2, "inc.l", {{DBIT, RD32, E}}, {{0x0, 0xB, 0x7 | DBIT, RD32 | B30, E}}},
-
- {O (O_JMP, SN), AV_H8, 4, "jmp", {{RSIND, E}}, {{0x5, 0x9, B30 | RSIND, 0x0, E}}},
- {O (O_JMP, SN), AV_H8, 6, "jmp", {{ABSJMP | L_24, E}}, {{0x5, 0xA, SRC | ABSJMP | L_24, DATA5, E}}},
-
- {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{ABSJMP | L_32, E}}, {{0x5, 0x9, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}},
-
- {O (O_JMP, SN), AV_H8, 8, "jmp", {{MEMIND, E}}, {{0x5, 0xB, SRC | MEMIND, DATA, E}}},
- {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{VECIND, E}}, {{0x5, 0x9, B31 | SRC | VECIND, DATA, E}}},
-
- {O (O_JSR, SN), AV_H8, 6, "jsr", {{RSIND, E}}, {{0x5, 0xD, B30 | RSIND, 0x0, E}}},
- {O (O_JSR, SN), AV_H8, 8, "jsr", {{ABSJMP | L_24, E}}, {{0x5, 0xE, SRC | ABSJMP | L_24, DATA5, E}}},
-
- {O (O_JSR, SN), AV_H8SX, 0, "jsr", {{ABSJMP | L_32, E}}, {{0x5, 0xD, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}},
-
- {O (O_JSR, SN), AV_H8, 8, "jsr", {{MEMIND, E}}, {{0x5, 0xF, SRC | MEMIND, DATA, E}}},
- {O (O_JSR, SN), AV_H8SX, 8, "jsr", {{VECIND, E}}, {{0x5, 0xD, SRC | VECIND, DATA, E}}},
-
- {O (O_LDC, SB), AV_H8, 2, "ldc", {{IMM8, CCR | DST, E}}, {{ 0x0, 0x7, IMM8LIST, E}}},
- {O (O_LDC, SB), AV_H8S, 2, "ldc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x7, IMM8LIST, E}}},
- {O (O_LDC, SB), AV_H8, 2, "ldc", {{RS8, CCR | DST, E}}, {{0x0, 0x3, B30 | CCR | DST, RS8, E}}},
- {O (O_LDC, SB), AV_H8S, 2, "ldc", {{RS8, EXR | DST, E}}, {{0x0, 0x3, B30 | EXR | DST, RS8, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSIND, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSIND, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSPOSTINC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSPOSTINC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}},
- {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}},
- {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}},
-
- {O (O_LDC, SL), AV_H8SX, 0, "ldc", {{RS32, B30 | VBR_SBR | DST, E}}, {{0x0, 0x3, B30 | VBR_SBR | DST, RS32, E}}},
-
-
- {O (O_MOV, SB), AV_H8, 2, "mov.b", {{IMM8, RD8, E}}, {{0xF, RD8, IMM8LIST, E}}},
- {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}},
- {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}},
- MOVFROM_IMM8 (O (O_MOV, SB), PREFIX_017D, "mov.b", IMM8),
-
- {O (O_MOV, SB), AV_H8, 2, "mov.b", {{RS8, RD8, E}}, {{0x0, 0xC, RS8, RD8, E}}},
- MOVFROM_REG_BW (O (O_MOV, SB), "mov.b", RS8, PREFIX_017, 8, 10, 12, 14, MEMRELAX),
- {O (O_MOV, SB), AV_H8, 4, "mov.b", {{RS8, ABS8DST, E}}, {{0x3, RS8, DSTABS8LIST, E}}},
- MOVTO_REG_BW (O (O_MOV, SB), "mov.b", RD8, PREFIX_017, 8, 10, 12, 14, MEMRELAX),
- {O (O_MOV, SB), AV_H8, 4, "mov.b", {{ABS8SRC, RD8, E}}, {{0x2, RD8, ABS8LIST, E}}},
-
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSIND, FROM_IND),
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTINC, FROM_POSTINC),
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTDEC, FROM_POSTDEC),
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREINC, FROM_PREINC),
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREDEC, FROM_PREDEC),
- MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP2SRC, FROM_DISP2),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP16SRC, FROM_DISP16, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP32SRC, FROM_DISP32, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB16, FROM_DISP16B, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW16, FROM_DISP16W, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL16, FROM_DISP16L, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB32, FROM_DISP32B, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW32, FROM_DISP32W, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL32, FROM_DISP32L, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS16SRC, FROM_ABS16, ABS16LIST),
- MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS32SRC, FROM_ABS32, ABS32LIST),
-
- {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xf, B30 | IMM3NZ, RD16, E}}},
- {O (O_MOV, SW), AV_H8, 4, "mov.w", {{IMM16, RD16, E}}, {{0x7, 0x9, 0x0, RD16, IMM16LIST, E}}},
- {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", 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}}},
- MOVFROM_REG_BW (O (O_MOV, SW), "mov.w", RS16, PREFIX_015, 9, 11, 13, 15, 0),
- MOVTO_REG_BW (O (O_MOV, SW), "mov.w", RD16, PREFIX_015, 9, 11, 13, 15, 0),
-
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSIND, FROM_IND),
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTINC, FROM_POSTINC),
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTDEC, FROM_POSTDEC),
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREINC, FROM_PREINC),
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREDEC, FROM_PREDEC),
- MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP2SRC, FROM_DISP2),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP16SRC, FROM_DISP16, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP32SRC, FROM_DISP32, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB16, FROM_DISP16B, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW16, FROM_DISP16W, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL16, FROM_DISP16L, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB32, FROM_DISP32B, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW32, FROM_DISP32W, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL32, FROM_DISP32L, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS16SRC, FROM_ABS16, ABS16LIST),
- MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS32SRC, FROM_ABS32, ABS32LIST),
-
- {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", 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}}},
- {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{IMM32, RD32, E}}, {{0x7, 0xa, 0x0, B30 | RD32, IMM32LIST, E}}},
-
- MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A74, "mov.l", IMM32, IMM32LIST),
-
- {O (O_MOV, SL), AV_H8H, 2, "mov.l", {{RS32, RD32, E}}, {{0x0, 0xf, B31 | RS32, B30 | RD32, E}}},
-
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDIND, E}}, {{PREFIX_0100, 0x6, 0x9, B31 | RDIND, B30 | RS32, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTINC, E}}, {{PREFIX_0103, 0x6, 0xd, B31 | RDPOSTINC, RS32, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0101, 0x6, 0xd, B31 | RDPOSTDEC, RS32, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPREINC, E}}, {{PREFIX_0102, 0x6, 0xd, B31 | RDPREINC, RS32, E}}},
- {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_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_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, 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}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x1, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x2, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x3, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS16DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0x8, RS32, DSTABS16LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS32DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTABS32LIST, E}}},
-
- {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{RSIND, RD32, E}}, {{PREFIX_0100, 0x6, 0x9, B30 | RSIND, RD32, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RSPOSTINC, RD32, E}}, {{PREFIX_0100, 0x6, 0xd, B30 | RSPOSTINC, RD32, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0102, 0x6, 0xd, B30 | RSPOSTDEC, RD32, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREINC, RD32, E}}, {{PREFIX_0101, 0x6, 0xd, B30 | RSPREINC, RD32, E}}},
- {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_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}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x1, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x2, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x3, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x0, RD32, SRC | ABS16LIST, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS32SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x2, RD32, SRC | MEMRELAX | ABS32LIST, E}}},
-
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSIND, FROM_IND),
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTINC, FROM_POSTINC),
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTDEC, FROM_POSTDEC),
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREINC, FROM_PREINC),
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREDEC, FROM_PREDEC),
- MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP2SRC, FROM_DISP2),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP16SRC, FROM_DISP16, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP32SRC, FROM_DISP32, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB16, FROM_DISP16B, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW16, FROM_DISP16W, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL16, FROM_DISP16L, DISP16LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB32, FROM_DISP32B, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW32, FROM_DISP32W, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL32, FROM_DISP32L, DISP32LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS16SRC, FROM_ABS16, ABS16LIST),
- MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS32SRC, FROM_ABS32, ABS32LIST),
-
-#define DO_MOVA1(TYPE, OP0, OP1) \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \
-\
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}
-
-#define DO_MOVA2(TYPE, OP0, OP1, OP2) \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \
-\
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}
-
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, E}}, {{0x7, 0xA, 0x8, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, E}}, {{0x7, 0xA, 0x9, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xA, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xB, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xC, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xD, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}},
-
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, E}}, {{0x7, 0xA, 0x8, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, E}}, {{0x7, 0xA, 0x9, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xA, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xB, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xC, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xD, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}},
-
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B31 | R3_32, MEMRELAX | DISP16LIST, E}}},
-
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
- {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B30 | R3_32, MEMRELAX | DISP32LIST, E}}},
-
- DO_MOVA1 (RDIND, 0x0, B30 | RDIND),
- DO_MOVA1 (RDPOSTINC, 0x8, B30 | RDPOSTINC),
- 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, MEMRELAX | DSTDISP16LIST),
- DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST),
- DO_MOVA2 (INDEXB16D, 0xD, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST),
- DO_MOVA2 (INDEXW16D, 0xE, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST),
- DO_MOVA2 (INDEXL16D, 0xF, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST),
- DO_MOVA2 (INDEXB32D, 0xD, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST),
- DO_MOVA2 (INDEXW32D, 0xE, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST),
- DO_MOVA2 (INDEXL32D, 0xF, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST),
- DO_MOVA2 (ABS16DST, 0x4, 0x0, MEMRELAX | DSTABS16LIST),
- DO_MOVA2 (ABS32DST, 0x4, 0x8, MEMRELAX | 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}}},
-
- {O (O_MOVMD, SB), AV_H8SX, 0, "movmd.b", {{E}}, {{0x7, 0xb, 0x9, 0x4, E}}},
- {O (O_MOVMD, SW), AV_H8SX, 0, "movmd.w", {{E}}, {{0x7, 0xb, 0xa, 0x4, E}}},
- {O (O_MOVMD, SL), AV_H8SX, 0, "movmd.l", {{E}}, {{0x7, 0xb, 0xb, 0x4, E}}},
- {O (O_MOVSD, SB), AV_H8SX, 0, "movsd.b", {{PCREL16, E}}, {{0x7, 0xb, 0x8, 0x4, PCREL16, DATA3, E}}},
-
- {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x0, IMM4, RD16, E}}},
- {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x0, RS16, RD16, E}}},
- {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
- {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x0, IMM4, RD16, E}}},
- {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x0, RS16, RD16, E}}},
- {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
- {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x7, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x3, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
- {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xf, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xb, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}},
-
- {O (O_MULXS, SB), AV_H8SX, 0, "mulxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x0, IMM4, RD16, E}}},
- {O (O_MULXS, SB), AV_H8H, 20, "mulxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x0, RS8, RD16, E}}},
- {O (O_MULXS, SW), AV_H8SX, 0, "mulxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULXS, SW), AV_H8H, 20, "mulxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x2, RS16, B30 | RD32, E}}},
-
- {O (O_MULXU, SB), AV_H8SX, 0, "mulxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x0, IMM4, RD16, E}}},
- {O (O_MULXU, SB), AV_H8, 14, "mulxu.b", {{RS8, RD16, E}}, {{0x5, 0x0, RS8, RD16, E}}},
- {O (O_MULXU, SW), AV_H8SX, 0, "mulxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x2, IMM4, B30 | RD32, E}}},
- {O (O_MULXU, SW), AV_H8H, 14, "mulxu.w", {{RS16, RD32, E}}, {{0x5, 0x2, RS16, B30 | RD32, E}}},
-
- EXPAND_UNOP_STD_B (O (O_NEG, SB), "neg.b", PREFIX_017, 0x1, 0x7, 0x8),
- EXPAND_UNOP_STD_W (O (O_NEG, SW), "neg.w", PREFIX_015, 0x1, 0x7, 0x9),
- EXPAND_UNOP_STD_L (O (O_NEG, SL), "neg.l", PREFIX_010, 0x1, 0x7, 0xb),
-
- {O (O_NOP, SN), AV_H8, 2, "nop", {{E}}, {{0x0, 0x0, 0x0, 0x0, E}}},
-
- EXPAND_UNOP_STD_B (O (O_NOT, SB), "not.b", PREFIX_017, 0x1, 0x7, 0x0),
- EXPAND_UNOP_STD_W (O (O_NOT, SW), "not.w", PREFIX_015, 0x1, 0x7, 0x1),
- EXPAND_UNOP_STD_L (O (O_NOT, SL), "not.l", PREFIX_010, 0x1, 0x7, 0x3),
-
- {O (O_OR, SB), AV_H8, 2, "or.b", {{IMM8, RD8, E}}, {{0xc, RD8, IMM8LIST, E}}},
- EXPAND_TWOOP_B (O (O_OR, SB), "or.b", 0xc, 0x1, 0x4, 0x4, 0),
-
- {O (O_OR, SW), AV_H8, 2, "or.w", {{RS16, RD16, E}}, {{0x6, 0x4, RS16, RD16, E}}},
- EXPAND_TWOOP_W (O (O_OR, SW), "or.w", 0x6, 0x4, 0x4),
-
- {O (O_OR, SL), AV_H8H, 2, "or.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x4, B30 | RS32, B30 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_OR, SL), "or.l", 0x4),
-
- {O (O_ORC, SB), AV_H8, 2, "orc", {{IMM8, CCR | DST, E}}, {{0x0, 0x4, IMM8LIST, E}}},
- {O (O_ORC, SB), AV_H8S, 2, "orc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x4, IMM8LIST, E}}},
-
- {O (O_MOV, SW), AV_H8, 6, "pop.w", {{OR16, E}}, {{0x6, 0xD, 0x7, OR16, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "pop.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0x7, OR32 | B30, E}}},
- {O (O_MOV, SW), AV_H8, 6, "push.w", {{OR16, E}}, {{0x6, 0xD, 0xF, OR16, E}}},
- {O (O_MOV, SL), AV_H8H, 6, "push.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0xF, OR32 | B30, E}}},
-
- EXPAND_UNOP_STD_B (O (O_ROTL, SB), "rotl.b", PREFIX_017, 0x1, 0x2, 0x8),
- EXPAND_UNOP_EXTENDED_B (O (O_ROTL, SB), "rotl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0xc),
- EXPAND_UNOP_STD_W (O (O_ROTL, SW), "rotl.w", PREFIX_015, 0x1, 0x2, 0x9),
- EXPAND_UNOP_EXTENDED_W (O (O_ROTL, SW), "rotl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0xd),
- EXPAND_UNOP_STD_L (O (O_ROTL, SL), "rotl.l", PREFIX_010, 0x1, 0x2, 0xb),
- EXPAND_UNOP_EXTENDED_L (O (O_ROTL, SL), "rotl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30),
- EXPAND_UNOP_STD_B (O (O_ROTR, SB), "rotr.b", PREFIX_017, 0x1, 0x3, 0x8),
- EXPAND_UNOP_EXTENDED_B (O (O_ROTR, SB), "rotr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0xc),
- EXPAND_UNOP_STD_W (O (O_ROTR, SW), "rotr.w", PREFIX_015, 0x1, 0x3, 0x9),
- EXPAND_UNOP_EXTENDED_W (O (O_ROTR, SW), "rotr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0xd),
- EXPAND_UNOP_STD_L (O (O_ROTR, SL), "rotr.l", PREFIX_010, 0x1, 0x3, 0xb),
- EXPAND_UNOP_EXTENDED_L (O (O_ROTR, SL), "rotr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30),
- EXPAND_UNOP_STD_B (O (O_ROTXL, SB), "rotxl.b", PREFIX_017, 0x1, 0x2, 0x0),
- EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4),
- EXPAND_UNOP_STD_W (O (O_ROTXL, SW), "rotxl.w", PREFIX_015, 0x1, 0x2, 0x1),
- EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5),
- EXPAND_UNOP_STD_L (O (O_ROTXL, SL), "rotxl.l", PREFIX_010, 0x1, 0x2, 0x3),
- EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30),
- EXPAND_UNOP_STD_B (O (O_ROTXR, SB), "rotxr.b", PREFIX_017, 0x1, 0x3, 0x0),
- EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4),
- EXPAND_UNOP_STD_W (O (O_ROTXR, SW), "rotxr.w", PREFIX_015, 0x1, 0x3, 0x1),
- EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5),
- EXPAND_UNOP_STD_L (O (O_ROTXR, SL), "rotxr.l", PREFIX_010, 0x1, 0x3, 0x3),
- EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30),
-
-
- {O (O_BPT, SN), AV_H8, 10, "bpt", {{E}}, {{0x7, 0xA, 0xF, 0xF, E}}},
- {O (O_RTE, SN), AV_H8, 10, "rte", {{E}}, {{0x5, 0x6, 0x7, 0x0, E}}},
- {O (O_RTS, SN), AV_H8, 8, "rts", {{E}}, {{0x5, 0x4, 0x7, 0x0, E}}},
- {O (O_RTEL, SN), AV_H8SX, 0, "rte/l", {{RS32, RD32, E}}, {{0x5, 0x6, RS32 | B30, RD32 | B30, E}}},
- {O (O_RTSL, SN), AV_H8SX, 0, "rts/l", {{RS32, RD32, E}}, {{0x5, 0x4, RS32 | B30, RD32 | B30, E}}},
-
- EXPAND_UNOP_STD_B (O (O_SHAL, SB), "shal.b", PREFIX_017, 0x1, 0x0, 0x8),
- EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc),
- EXPAND_UNOP_STD_W (O (O_SHAL, SW), "shal.w", PREFIX_015, 0x1, 0x0, 0x9),
- EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd),
- EXPAND_UNOP_STD_L (O (O_SHAL, SL), "shal.l", PREFIX_010, 0x1, 0x0, 0xb),
- EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30),
- EXPAND_UNOP_STD_B (O (O_SHAR, SB), "shar.b", PREFIX_017, 0x1, 0x1, 0x8),
- EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc),
- EXPAND_UNOP_STD_W (O (O_SHAR, SW), "shar.w", PREFIX_015, 0x1, 0x1, 0x9),
- EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd),
- EXPAND_UNOP_STD_L (O (O_SHAR, SL), "shar.l", PREFIX_010, 0x1, 0x1, 0xb),
- EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30),
-
- EXPAND_UNOP_STD_B (O (O_SHLL, SB), "shll.b", PREFIX_017, 0x1, 0x0, 0x0),
-
- {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x0, RD8, E}}},
-
- EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4),
- EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa),
- {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x0, RD8, E}}},
-
- EXPAND_UNOP_STD_W (O (O_SHLL, SW), "shll.w", PREFIX_015, 0x1, 0x0, 0x1),
-
- {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x1, RD16, E}}},
-
- EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5),
- EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2),
- EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6),
- {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x1, RD16, E}}},
-
- EXPAND_UNOP_STD_L (O (O_SHLL, SL), "shll.l", PREFIX_010, 0x1, 0x0, 0x3),
-
- {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x3, B30 | RD32, E}}},
-
- EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_2, PREFIX_010, 0x1, 0x0, 0x7, B30),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_4, PREFIX_010, 0x1, 0x0, 0x3, B31),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_8, PREFIX_010, 0x1, 0x0, 0x7, B31),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31),
- {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x3, B30 | RD32, E}}},
-
- EXPAND_UNOP_STD_B (O (O_SHLR, SB), "shlr.b", PREFIX_017, 0x1, 0x1, 0x0),
-
- {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x0, RD8, E}}},
-
- EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4),
- EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa),
- {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x0, RD8, E}}},
-
- EXPAND_UNOP_STD_W (O (O_SHLR, SW), "shlr.w", PREFIX_015, 0x1, 0x1, 0x1),
-
- {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x1, RD16, E}}},
-
- EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5),
- EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2),
- EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6),
- {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x1, RD16, E}}},
-
- EXPAND_UNOP_STD_L (O (O_SHLR, SL), "shlr.l", PREFIX_010, 0x1, 0x1, 0x3),
-
- {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x3, B30 | RD32, E}}},
-
- EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_2, PREFIX_010, 0x1, 0x1, 0x7, B30),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_4, PREFIX_010, 0x1, 0x1, 0x3, B31),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_8, PREFIX_010, 0x1, 0x1, 0x7, B31),
- EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31),
- {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x3, B30 | RD32, E}}},
-
- {O (O_SLEEP, SN), AV_H8, 2, "sleep", {{E}}, {{0x0, 0x1, 0x8, 0x0, E}}},
-
- {O (O_STC, SB), AV_H8, 2, "stc", {{CCR | SRC, RD8, E}}, {{0x0, 0x2, B30 | CCR | SRC, RD8, E}}},
- {O (O_STC, SB), AV_H8S, 2, "stc", {{EXR | SRC, RD8, E}}, {{0x0, 0x2, B30 | EXR | SRC, RD8, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}},
- {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}},
- {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}},
- {O (O_STC, SL), AV_H8SX, 0, "stc", {{B30 | VBR_SBR | SRC, RD32, E}}, {{0x0, 0x2, B30 | VBR_SBR | SRC, RD32, E}}},
-
-
- EXPAND_TWOOP_B (O (O_SUB, SB), "sub.b", 0xa, 0x1, 0x8, 0x3, B01),
-
- {O (O_SUB, SW), AV_H8, 2, "sub.w", {{RS16, RD16, E}}, {{0x1, 0x9, RS16, RD16, E}}},
- {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xa, B30 | IMM3NZ, RD16, E}}},
- {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}},
- EXPAND_TWOOP_W (O (O_SUB, SW), "sub.w", 0x1, 0x9, 0x3),
-
- {O (O_SUB, SL), AV_H8H, 6, "sub.l", {{RS32, RD32, E}}, {{0x1, 0xa, B31 | RS32, B30 | RD32, E}}},
- {O (O_SUB, SL), AV_H8SX, 0, "sub.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xa, B31 | IMM3NZ, B31 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_SUB, SL), "sub.l", 0x3),
-
- {O (O_SUBS, SL), AV_H8, 2, "subs", {{KBIT, RDP, E}}, {{0x1, 0xB,KBIT, RDP, E}}},
-
- {O (O_SUBX, SB), AV_H8, 2, "subx", {{IMM8, RD8, E}}, {{0xb, RD8, IMM8LIST, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0xb, IGNORE, IMM8LIST, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0xb, IGNORE, IMM8LIST, E}}},
- {O (O_SUBX, SB), AV_H8, 2, "subx", {{RS8, RD8, E}}, {{0x1, 0xe, RS8, RD8, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x1, 0xe, RS8, IGNORE, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x1, 0xe, RS8, IGNORE, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x1, 0xe, IGNORE, RD8, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x1, 0xe, IGNORE, RD8, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}},
- {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x3, RD16, IMM16LIST, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x1, 0x9, RS16, RD16, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}},
- {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x3, RD32, IMM32LIST, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x1, 0xa, B31 | RS32, B30 | RD32, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}},
- {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}},
-
- {O (O_TRAPA, SB), AV_H8H, 2, "trapa", {{IMM2, E}}, {{0x5, 0x7, IMM2, IGNORE, E}}},
- {O (O_TAS, SB), AV_H8H, 2, "tas", {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}},
-
- {O (O_XOR, SB), AV_H8, 2, "xor.b", {{IMM8, RD8, E}}, {{0xd, RD8, IMM8LIST, E}}},
- EXPAND_TWOOP_B (O (O_XOR, SB), "xor.b", 0xd, 0x1, 0x5, 0x5, 0),
-
- {O (O_XOR, SW), AV_H8, 2, "xor.w", {{RS16, RD16, E}}, {{0x6, 0x5, RS16, RD16, E}}},
- EXPAND_TWOOP_W (O (O_XOR, SW), "xor.w", 0x6, 0x5, 0x5),
-
- {O (O_XOR, SL), AV_H8H, 2, "xor.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x5, B30 | RS32, B30 | RD32, E}}},
- EXPAND_TWOOP_L (O (O_XOR, SL), "xor.l", 0x5),
-
- {O (O_XORC, SB), AV_H8, 2, "xorc", {{IMM8, CCR | DST, E}}, {{0x0, 0x5, IMM8LIST, E}}},
- {O (O_XORC, SB), AV_H8S, 2, "xorc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x5, IMM8LIST, E}}},
-
- {O (O_CLRMAC, SN), AV_H8S, 2, "clrmac", {{E}}, {{0x0, 0x1, 0xa, 0x0, E}}},
- {O (O_MAC, SW), AV_H8S, 2, "mac", {{RSPOSTINC, RDPOSTINC, E}}, {{0x0, 0x1, 0x6, 0x0, 0x6, 0xd, B30 | RSPOSTINC, B30 | RDPOSTINC, E}}},
- {O (O_LDMAC, SL), AV_H8S, 2, "ldmac", {{RS32, MD32, E}}, {{0x0, 0x3, MD32, RS32, E}}},
- {O (O_STMAC, SL), AV_H8S, 2, "stmac", {{MS32, RD32, E}}, {{0x0, 0x2, MS32, RD32, E}}},
- {O (O_LDM, SL), AV_H8H, 6, "ldm.l", {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}},
- {O (O_STM, SL), AV_H8H, 6, "stm.l", {{RS32, RDPREDEC, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}},
- {0, 0, 0, NULL, {{0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}}
-};
-#else
-extern const struct h8_opcode h8_opcodes[];
-#endif
-
diff --git a/include/opcode/hppa.h b/include/opcode/hppa.h
deleted file mode 100644
index 907320644..000000000
--- a/include/opcode/hppa.h
+++ /dev/null
@@ -1,1092 +0,0 @@
-/* Table of opcodes for the PA-RISC.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010
- Free Software Foundation, Inc.
-
- Contributed by the Center for Software Science at the
- University of Utah (pa-gdb-bugs@cs.utah.edu).
-
- This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
-
- GAS/GDB 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 3, or (at your option)
- any later version.
-
- GAS/GDB 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 GAS or GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#if !defined(__STDC__) && !defined(const)
-#define const
-#endif
-
-/*
- * Structure of an opcode table entry.
- */
-
-/* There are two kinds of delay slot nullification: normal which is
- * controled by the nullification bit, and conditional, which depends
- * on the direction of the branch and its success or failure.
- *
- * NONE is unfortunately #defined in the hiux system include files.
- * #undef it away.
- */
-#undef NONE
-struct pa_opcode
-{
- const char *name;
- unsigned long int match; /* Bits that must be set... */
- unsigned long int mask; /* ... in these bits. */
- char *args;
- enum pa_arch arch;
- char flags;
-};
-
-/* Enables strict matching. Opcodes with match errors are skipped
- when this bit is set. */
-#define FLAG_STRICT 0x1
-
-/*
- All hppa opcodes are 32 bits.
-
- The match component is a mask saying which bits must match a
- particular opcode in order for an instruction to be an instance
- of that opcode.
-
- The args component is a string containing one character for each operand of
- the instruction. Characters used as a prefix allow any second character to
- be used without conflicting with the main operand characters.
-
- Bit positions in this description follow HP usage of lsb = 31,
- "at" is lsb of field.
-
- In the args field, the following characters must match exactly:
-
- '+,() '
-
- In the args field, the following characters are unused:
-
- ' " - / 34 6789:; '
- '@ C M [\] '
- '` e g } '
-
- Here are all the characters:
-
- ' !"#$%&'()*+-,./0123456789:;<=>?'
- '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'
- '`abcdefghijklmnopqrstuvwxyz{|}~ '
-
-Kinds of operands:
- x integer register field at 15.
- b integer register field at 10.
- t integer register field at 31.
- a integer register field at 10 and 15 (for PERMH)
- 5 5 bit immediate at 15.
- s 2 bit space specifier at 17.
- S 3 bit space specifier at 18.
- V 5 bit immediate value at 31
- i 11 bit immediate value at 31
- j 14 bit immediate value at 31
- k 21 bit immediate value at 31
- l 16 bit immediate value at 31 (wide mode only, unusual encoding).
- n nullification for branch instructions
- N nullification for spop and copr instructions
- w 12 bit branch displacement
- W 17 bit branch displacement (PC relative)
- X 22 bit branch displacement (PC relative)
- z 17 bit branch displacement (just a number, not an address)
-
-Also these:
-
- . 2 bit shift amount at 25
- * 4 bit shift amount at 25
- p 5 bit shift count at 26 (to support the SHD instruction) encoded as
- 31-p
- ~ 6 bit shift count at 20,22:26 encoded as 63-~.
- P 5 bit bit position at 26
- q 6 bit bit position at 20,22:26
- T 5 bit field length at 31 (encoded as 32-T)
- % 6 bit field length at 23,27:31 (variable extract/deposit)
- | 6 bit field length at 19,27:31 (fixed extract/deposit)
- A 13 bit immediate at 18 (to support the BREAK instruction)
- ^ like b, but describes a control register
- ! sar (cr11) register
- D 26 bit immediate at 31 (to support the DIAG instruction)
- $ 9 bit immediate at 28 (to support POPBTS)
-
- v 3 bit Special Function Unit identifier at 25
- O 20 bit Special Function Unit operation split between 15 bits at 20
- and 5 bits at 31
- o 15 bit Special Function Unit operation at 20
- 2 22 bit Special Function Unit operation split between 17 bits at 20
- and 5 bits at 31
- 1 15 bit Special Function Unit operation split between 10 bits at 20
- and 5 bits at 31
- 0 10 bit Special Function Unit operation split between 5 bits at 20
- and 5 bits at 31
- u 3 bit coprocessor unit identifier at 25
- F Source Floating Point Operand Format Completer encoded 2 bits at 20
- I Source Floating Point Operand Format Completer encoded 1 bits at 20
- (for 0xe format FP instructions)
- G Destination Floating Point Operand Format Completer encoded 2 bits at 18
- H Floating Point Operand Format at 26 for 'fmpyadd' and 'fmpysub'
- (very similar to 'F')
-
- r 5 bit immediate value at 31 (for the break instruction)
- (very similar to V above, except the value is unsigned instead of
- low_sign_ext)
- R 5 bit immediate value at 15 (for the ssm, rsm, probei instructions)
- (same as r above, except the value is in a different location)
- U 10 bit immediate value at 15 (for SSM, RSM on pa2.0)
- Q 5 bit immediate value at 10 (a bit position specified in
- the bb instruction. It's the same as r above, except the
- value is in a different location)
- B 5 bit immediate value at 10 (a bit position specified in
- the bb instruction. Similar to Q, but 64 bit handling is
- different.
- Z %r1 -- implicit target of addil instruction.
- L ,%r2 completer for new syntax branch
- { Source format completer for fcnv
- _ Destination format completer for fcnv
- h cbit for fcmp
- = gfx tests for ftest
- d 14 bit offset for single precision FP long load/store.
- # 14 bit offset for double precision FP load long/store.
- J Yet another 14 bit offset for load/store with ma,mb completers.
- K Yet another 14 bit offset for load/store with ma,mb completers.
- y 16 bit offset for word aligned load/store (PA2.0 wide).
- & 16 bit offset for dword aligned load/store (PA2.0 wide).
- < 16 bit offset for load/store with ma,mb completers (PA2.0 wide).
- > 16 bit offset for load/store with ma,mb completers (PA2.0 wide).
- Y %sr0,%r31 -- implicit target of be,l instruction.
- @ implicit immediate value of 0
-
-Completer operands all have 'c' as the prefix:
-
- cx indexed load and store completer.
- cX indexed load and store completer. Like cx, but emits a space
- after in disassembler.
- cm short load and store completer.
- cM short load and store completer. Like cm, but emits a space
- after in disassembler.
- cq long load and store completer (like cm, but inserted into a
- different location in the target instruction).
- cs store bytes short completer.
- cA store bytes short completer. Like cs, but emits a space
- after in disassembler.
- ce long load/store completer for LDW/STW with a different encoding
- than the others
- cc load cache control hint
- cd load and clear cache control hint
- cC store cache control hint
- co ordered access
-
- cp branch link and push completer
- cP branch pop completer
- cl branch link completer
- cg branch gate completer
-
- cw read/write completer for PROBE
- cW wide completer for MFCTL
- cL local processor completer for cache control
- cZ System Control Completer (to support LPA, LHA, etc.)
-
- ci correction completer for DCOR
- ca add completer
- cy 32 bit add carry completer
- cY 64 bit add carry completer
- cv signed overflow trap completer
- ct trap on condition completer for ADDI, SUB
- cT trap on condition completer for UADDCM
- cb 32 bit borrow completer for SUB
- cB 64 bit borrow completer for SUB
-
- ch left/right half completer
- cH signed/unsigned saturation completer
- cS signed/unsigned completer at 21
- cz zero/sign extension completer.
- c* permutation completer
-
-Condition operands all have '?' as the prefix:
-
- ?f Floating point compare conditions (encoded as 5 bits at 31)
-
- ?a add conditions
- ?A 64 bit add conditions
- ?@ add branch conditions followed by nullify
- ?d non-negated add branch conditions
- ?D negated add branch conditions
- ?w wide mode non-negated add branch conditions
- ?W wide mode negated add branch conditions
-
- ?s compare/subtract conditions
- ?S 64 bit compare/subtract conditions
- ?t non-negated compare and branch conditions
- ?n 32 bit compare and branch conditions followed by nullify
- ?N 64 bit compare and branch conditions followed by nullify
- ?Q 64 bit compare and branch conditions for CMPIB instruction
-
- ?l logical conditions
- ?L 64 bit logical conditions
-
- ?b branch on bit conditions
- ?B 64 bit branch on bit conditions
-
- ?x shift/extract/deposit conditions
- ?X 64 bit shift/extract/deposit conditions
- ?y shift/extract/deposit conditions followed by nullify for conditional
- branches
-
- ?u unit conditions
- ?U 64 bit unit conditions
-
-Floating point registers all have 'f' as a prefix:
-
- ft target register at 31
- fT target register with L/R halves at 31
- fa operand 1 register at 10
- fA operand 1 register with L/R halves at 10
- fX Same as fA, except prints a space before register during disasm
- fb operand 2 register at 15
- fB operand 2 register with L/R halves at 15
- fC operand 3 register with L/R halves at 16:18,21:23
- fe Like fT, but encoding is different.
- fE Same as fe, except prints a space before register during disasm.
- fx target register at 15 (only for PA 2.0 long format FLDD/FSTD).
-
-Float registers for fmpyadd and fmpysub:
-
- fi mult operand 1 register at 10
- fj mult operand 2 register at 15
- fk mult target register at 20
- fl add/sub operand register at 25
- fm add/sub target register at 31
-
-*/
-
-
-#if 0
-/* List of characters not to put a space after. Note that
- "," is included, as the "spopN" operations use literal
- commas in their completer sections. */
-static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";
-#endif
-
-/* The order of the opcodes in this table is significant:
-
- * The assembler requires that all instances of the same mnemonic be
- consecutive. If they aren't, the assembler will bomb at runtime.
-
- * Immediate fields use pa_get_absolute_expression to parse the
- string. It will generate a "bad expression" error if passed
- a register name. Thus, register index variants of an opcode
- need to precede immediate variants.
-
- * The disassembler does not care about the order of the opcodes
- except in cases where implicit addressing is used.
-
- Here are the rules for ordering the opcodes of a mnemonic:
-
- 1) Opcodes with FLAG_STRICT should precede opcodes without
- FLAG_STRICT.
-
- 2) Opcodes with FLAG_STRICT should be ordered as follows:
- register index opcodes, short immediate opcodes, and finally
- long immediate opcodes. When both pa10 and pa11 variants
- of the same opcode are available, the pa10 opcode should
- come first for correct architectural promotion.
-
- 3) When implicit addressing is available for an opcode, the
- implicit opcode should precede the explicit opcode.
-
- 4) Opcodes without FLAG_STRICT should be ordered as follows:
- register index opcodes, long immediate opcodes, and finally
- short immediate opcodes. */
-
-static const struct pa_opcode pa_opcodes[] =
-{
-
-/* Pseudo-instructions. */
-
-{ "ldi", 0x34000000, 0xffe00000, "l,x", pa20w, 0},/* ldo val(r0),r */
-{ "ldi", 0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
-
-{ "cmpib", 0xec000000, 0xfc000000, "?Qn5,b,w", pa20, FLAG_STRICT},
-{ "cmpib", 0x84000000, 0xf4000000, "?nn5,b,w", pa10, FLAG_STRICT},
-{ "comib", 0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
-/* This entry is for the disassembler only. It will never be used by
- assembler. */
-{ "comib", 0x8c000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
-{ "cmpb", 0x9c000000, 0xdc000000, "?Nnx,b,w", pa20, FLAG_STRICT},
-{ "cmpb", 0x80000000, 0xf4000000, "?nnx,b,w", pa10, FLAG_STRICT},
-{ "comb", 0x80000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
-/* This entry is for the disassembler only. It will never be used by
- assembler. */
-{ "comb", 0x88000000, 0xfc000000, "?nnx,b,w", pa10, 0}, /* comb{tf} */
-{ "addb", 0xa0000000, 0xf4000000, "?Wnx,b,w", pa20w, FLAG_STRICT},
-{ "addb", 0xa0000000, 0xfc000000, "?@nx,b,w", pa10, 0}, /* addb{tf} */
-/* This entry is for the disassembler only. It will never be used by
- assembler. */
-{ "addb", 0xa8000000, 0xfc000000, "?@nx,b,w", pa10, 0},
-{ "addib", 0xa4000000, 0xf4000000, "?Wn5,b,w", pa20w, FLAG_STRICT},
-{ "addib", 0xa4000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
-/* This entry is for the disassembler only. It will never be used by
- assembler. */
-{ "addib", 0xac000000, 0xfc000000, "?@n5,b,w", pa10, 0}, /* addib{tf}*/
-{ "nop", 0x08000240, 0xffffffff, "", pa10, 0}, /* or 0,0,0 */
-{ "copy", 0x08000240, 0xffe0ffe0, "x,t", pa10, 0}, /* or r,0,t */
-{ "mtsar", 0x01601840, 0xffe0ffff, "x", pa10, 0}, /* mtctl r,cr11 */
-
-/* Loads and Stores for integer registers. */
-
-{ "ldd", 0x0c0000c0, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x0c0000c0, 0xfc0013c0, "cxccx(s,b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x0c0010e0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x0c0010e0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x0c0010c0, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x0c0010c0, 0xfc0013c0, "cmcc5(s,b),t", pa20, FLAG_STRICT},
-{ "ldd", 0x50000000, 0xfc000002, "cq&(b),x", pa20w, FLAG_STRICT},
-{ "ldd", 0x50000000, 0xfc00c002, "cq#(b),x", pa20, FLAG_STRICT},
-{ "ldd", 0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
-{ "ldw", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldw", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldw", 0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldw", 0x0c0010a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldw", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldw", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldw", 0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldw", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldw", 0x4c000000, 0xfc000000, "ce<(b),x", pa20w, FLAG_STRICT},
-{ "ldw", 0x5c000004, 0xfc000006, "ce>(b),x", pa20w, FLAG_STRICT},
-{ "ldw", 0x48000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldw", 0x5c000004, 0xfc00c006, "ceK(b),x", pa20, FLAG_STRICT},
-{ "ldw", 0x5c000004, 0xfc000006, "ceK(s,b),x", pa20, FLAG_STRICT},
-{ "ldw", 0x4c000000, 0xfc00c000, "ceJ(b),x", pa10, FLAG_STRICT},
-{ "ldw", 0x4c000000, 0xfc000000, "ceJ(s,b),x", pa10, FLAG_STRICT},
-{ "ldw", 0x48000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "ldh", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldh", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldh", 0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldh", 0x0c001060, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldh", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldh", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldh", 0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldh", 0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldh", 0x44000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "ldb", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldb", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldb", 0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldb", 0x0c001020, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
-{ "ldb", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldb", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldb", 0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldb", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldb", 0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
-{ "ldb", 0x40000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldb", 0x40000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "std", 0x0c0012e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "std", 0x0c0012e0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "std", 0x0c0012c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
-{ "std", 0x0c0012c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
-{ "std", 0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
-{ "std", 0x70000000, 0xfc00c002, "cqx,#(b)", pa20, FLAG_STRICT},
-{ "std", 0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
-{ "stw", 0x0c0012a0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stw", 0x0c0012a0, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "stw", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stw", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stw", 0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stw", 0x6c000000, 0xfc000000, "cex,<(b)", pa20w, FLAG_STRICT},
-{ "stw", 0x7c000004, 0xfc000006, "cex,>(b)", pa20w, FLAG_STRICT},
-{ "stw", 0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "stw", 0x7c000004, 0xfc00c006, "cex,K(b)", pa20, FLAG_STRICT},
-{ "stw", 0x7c000004, 0xfc000006, "cex,K(s,b)", pa20, FLAG_STRICT},
-{ "stw", 0x6c000000, 0xfc00c000, "cex,J(b)", pa10, FLAG_STRICT},
-{ "stw", 0x6c000000, 0xfc000000, "cex,J(s,b)", pa10, FLAG_STRICT},
-{ "stw", 0x68000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "sth", 0x0c001260, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "sth", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "sth", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "sth", 0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "sth", 0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "sth", 0x64000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "stb", 0x0c001220, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
-{ "stb", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stb", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stb", 0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stb", 0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
-{ "stb", 0x60000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stb", 0x60000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "ldwm", 0x4c000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldwm", 0x4c000000, 0xfc000000, "j(s,b),x", pa10, 0},
-{ "stwm", 0x6c000000, 0xfc00c000, "x,j(b)", pa10, 0},
-{ "stwm", 0x6c000000, 0xfc000000, "x,j(s,b)", pa10, 0},
-{ "ldwx", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldwx", 0x0c000080, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwx", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldwx", 0x0c000080, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldwx", 0x0c000080, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldhx", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldhx", 0x0c000040, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldhx", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldhx", 0x0c000040, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldhx", 0x0c000040, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldbx", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldbx", 0x0c000000, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldbx", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa11, FLAG_STRICT},
-{ "ldbx", 0x0c000000, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldbx", 0x0c000000, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldwa", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwa", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwa", 0x0c0011a0, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldwa", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldwa", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldcw", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldcw", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldcw", 0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT},
-{ "ldcw", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT},
-{ "ldcw", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldcw", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldcw", 0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT},
-{ "ldcw", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT},
-{ "stwa", 0x0c0013a0, 0xfc00d3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stwa", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stwa", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stby", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT},
-{ "stby", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT},
-{ "stby", 0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT},
-{ "stby", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT},
-{ "ldda", 0x0c000100, 0xfc00d3c0, "cxccx(b),t", pa20, FLAG_STRICT},
-{ "ldda", 0x0c001120, 0xfc1ff3e0, "cocc@(b),t", pa20, FLAG_STRICT},
-{ "ldda", 0x0c001100, 0xfc00d3c0, "cmcc5(b),t", pa20, FLAG_STRICT},
-{ "ldcd", 0x0c000140, 0xfc00d3c0, "cxcdx(b),t", pa20, FLAG_STRICT},
-{ "ldcd", 0x0c000140, 0xfc0013c0, "cxcdx(s,b),t", pa20, FLAG_STRICT},
-{ "ldcd", 0x0c001140, 0xfc00d3c0, "cmcd5(b),t", pa20, FLAG_STRICT},
-{ "ldcd", 0x0c001140, 0xfc0013c0, "cmcd5(s,b),t", pa20, FLAG_STRICT},
-{ "stda", 0x0c0013e0, 0xfc00f3ff, "cocCx,@(b)", pa20, FLAG_STRICT},
-{ "stda", 0x0c0013c0, 0xfc00d3c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
-{ "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldwax", 0x0c000180, 0xfc00d3c0, "cxccx(b),t", pa11, FLAG_STRICT},
-{ "ldwax", 0x0c000180, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldcwx", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, FLAG_STRICT},
-{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, FLAG_STRICT},
-{ "ldcwx", 0x0c0001c0, 0xfc00d3c0, "cxcdx(b),t", pa11, FLAG_STRICT},
-{ "ldcwx", 0x0c0001c0, 0xfc0013c0, "cxcdx(s,b),t", pa11, FLAG_STRICT},
-{ "ldcwx", 0x0c0001c0, 0xfc00dfc0, "cXx(b),t", pa10, 0},
-{ "ldcwx", 0x0c0001c0, 0xfc001fc0, "cXx(s,b),t", pa10, 0},
-{ "ldws", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldws", 0x0c001080, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldws", 0x0c001080, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldws", 0x0c001080, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldws", 0x0c001080, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldhs", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldhs", 0x0c001040, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldhs", 0x0c001040, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldhs", 0x0c001040, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldhs", 0x0c001040, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldbs", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldbs", 0x0c001000, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldbs", 0x0c001000, 0xfc0013c0, "cmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "ldbs", 0x0c001000, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldbs", 0x0c001000, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldwas", 0x0c001180, 0xfc00d3c0, "cmcc5(b),t", pa11, FLAG_STRICT},
-{ "ldwas", 0x0c001180, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldcws", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, FLAG_STRICT},
-{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, FLAG_STRICT},
-{ "ldcws", 0x0c0011c0, 0xfc00d3c0, "cmcd5(b),t", pa11, FLAG_STRICT},
-{ "ldcws", 0x0c0011c0, 0xfc0013c0, "cmcd5(s,b),t", pa11, FLAG_STRICT},
-{ "ldcws", 0x0c0011c0, 0xfc00dfc0, "cM5(b),t", pa10, 0},
-{ "ldcws", 0x0c0011c0, 0xfc001fc0, "cM5(s,b),t", pa10, 0},
-{ "stws", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stws", 0x0c001280, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stws", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stws", 0x0c001280, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stws", 0x0c001280, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "sths", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "sths", 0x0c001240, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "sths", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "sths", 0x0c001240, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "sths", 0x0c001240, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "stbs", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, FLAG_STRICT},
-{ "stbs", 0x0c001200, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stbs", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stbs", 0x0c001200, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stbs", 0x0c001200, 0xfc001fc0, "cMx,V(s,b)", pa10, 0},
-{ "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, FLAG_STRICT},
-{ "stwas", 0x0c001380, 0xfc00d3c0, "cmcCx,V(b)", pa11, FLAG_STRICT},
-{ "stwas", 0x0c001380, 0xfc00dfc0, "cMx,V(b)", pa10, 0},
-{ "stdby", 0x0c001340, 0xfc00d3c0, "cscCx,V(b)", pa20, FLAG_STRICT},
-{ "stdby", 0x0c001340, 0xfc0013c0, "cscCx,V(s,b)", pa20, FLAG_STRICT},
-{ "stbys", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, FLAG_STRICT},
-{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, FLAG_STRICT},
-{ "stbys", 0x0c001300, 0xfc00d3c0, "cscCx,V(b)", pa11, FLAG_STRICT},
-{ "stbys", 0x0c001300, 0xfc0013c0, "cscCx,V(s,b)", pa11, FLAG_STRICT},
-{ "stbys", 0x0c001300, 0xfc00dfc0, "cAx,V(b)", pa10, 0},
-{ "stbys", 0x0c001300, 0xfc001fc0, "cAx,V(s,b)", pa10, 0},
-
-/* Immediate instructions. */
-{ "ldo", 0x34000000, 0xfc000000, "l(b),x", pa20w, 0},
-{ "ldo", 0x34000000, 0xfc00c000, "j(b),x", pa10, 0},
-{ "ldil", 0x20000000, 0xfc000000, "k,b", pa10, 0},
-{ "addil", 0x28000000, 0xfc000000, "k,b,Z", pa10, 0},
-{ "addil", 0x28000000, 0xfc000000, "k,b", pa10, 0},
-
-/* Branching instructions. */
-{ "b", 0xe8008000, 0xfc00e000, "cpnXL", pa20, FLAG_STRICT},
-{ "b", 0xe800a000, 0xfc00e000, "clnXL", pa20, FLAG_STRICT},
-{ "b", 0xe8000000, 0xfc00e000, "clnW,b", pa10, FLAG_STRICT},
-{ "b", 0xe8002000, 0xfc00e000, "cgnW,b", pa10, FLAG_STRICT},
-{ "b", 0xe8000000, 0xffe0e000, "nW", pa10, 0}, /* b,l foo,r0 */
-{ "bl", 0xe8000000, 0xfc00e000, "nW,b", pa10, 0},
-{ "gate", 0xe8002000, 0xfc00e000, "nW,b", pa10, 0},
-{ "blr", 0xe8004000, 0xfc00e001, "nx,b", pa10, 0},
-{ "bv", 0xe800c000, 0xfc00fffd, "nx(b)", pa10, 0},
-{ "bv", 0xe800c000, 0xfc00fffd, "n(b)", pa10, 0},
-{ "bve", 0xe800f001, 0xfc1ffffd, "cpn(b)L", pa20, FLAG_STRICT},
-{ "bve", 0xe800f000, 0xfc1ffffd, "cln(b)L", pa20, FLAG_STRICT},
-{ "bve", 0xe800d001, 0xfc1ffffd, "cPn(b)", pa20, FLAG_STRICT},
-{ "bve", 0xe800d000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
-{ "be", 0xe4000000, 0xfc000000, "clnz(S,b),Y", pa10, FLAG_STRICT},
-{ "be", 0xe4000000, 0xfc000000, "clnz(b),Y", pa10, FLAG_STRICT},
-{ "be", 0xe0000000, 0xfc000000, "nz(S,b)", pa10, 0},
-{ "be", 0xe0000000, 0xfc000000, "nz(b)", pa10, 0},
-{ "ble", 0xe4000000, 0xfc000000, "nz(S,b)", pa10, 0},
-{ "movb", 0xc8000000, 0xfc000000, "?ynx,b,w", pa10, 0},
-{ "movib", 0xcc000000, 0xfc000000, "?yn5,b,w", pa10, 0},
-{ "combt", 0x80000000, 0xfc000000, "?tnx,b,w", pa10, 0},
-{ "combf", 0x88000000, 0xfc000000, "?tnx,b,w", pa10, 0},
-{ "comibt", 0x84000000, 0xfc000000, "?tn5,b,w", pa10, 0},
-{ "comibf", 0x8c000000, 0xfc000000, "?tn5,b,w", pa10, 0},
-{ "addbt", 0xa0000000, 0xfc000000, "?dnx,b,w", pa10, 0},
-{ "addbf", 0xa8000000, 0xfc000000, "?dnx,b,w", pa10, 0},
-{ "addibt", 0xa4000000, 0xfc000000, "?dn5,b,w", pa10, 0},
-{ "addibf", 0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
-{ "bb", 0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT},
-{ "bb", 0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT},
-{ "bb", 0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT},
-{ "bb", 0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, FLAG_STRICT},
-{ "bb", 0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, 0},
-{ "bvb", 0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
-{ "clrbts", 0xe8004005, 0xffffffff, "", pa20, FLAG_STRICT},
-{ "popbts", 0xe8004005, 0xfffff007, "$", pa20, FLAG_STRICT},
-{ "pushnom", 0xe8004001, 0xffffffff, "", pa20, FLAG_STRICT},
-{ "pushbts", 0xe8004001, 0xffe0ffff, "x", pa20, FLAG_STRICT},
-
-/* Computation Instructions. */
-
-{ "cmpclr", 0x080008a0, 0xfc000fe0, "?Sx,b,t", pa20, FLAG_STRICT},
-{ "cmpclr", 0x08000880, 0xfc000fe0, "?sx,b,t", pa10, FLAG_STRICT},
-{ "comclr", 0x08000880, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "or", 0x08000260, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "or", 0x08000240, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "xor", 0x080002a0, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "xor", 0x08000280, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "and", 0x08000220, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "and", 0x08000200, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "andcm", 0x08000020, 0xfc000fe0, "?Lx,b,t", pa20, FLAG_STRICT},
-{ "andcm", 0x08000000, 0xfc000fe0, "?lx,b,t", pa10, 0},
-{ "uxor", 0x080003a0, 0xfc000fe0, "?Ux,b,t", pa20, FLAG_STRICT},
-{ "uxor", 0x08000380, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "uaddcm", 0x080009a0, 0xfc000fa0, "cT?Ux,b,t", pa20, FLAG_STRICT},
-{ "uaddcm", 0x08000980, 0xfc000fa0, "cT?ux,b,t", pa10, FLAG_STRICT},
-{ "uaddcm", 0x08000980, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "uaddcmt", 0x080009c0, 0xfc000fe0, "?ux,b,t", pa10, 0},
-{ "dcor", 0x08000ba0, 0xfc1f0fa0, "ci?Ub,t", pa20, FLAG_STRICT},
-{ "dcor", 0x08000b80, 0xfc1f0fa0, "ci?ub,t", pa10, FLAG_STRICT},
-{ "dcor", 0x08000b80, 0xfc1f0fe0, "?ub,t", pa10, 0},
-{ "idcor", 0x08000bc0, 0xfc1f0fe0, "?ub,t", pa10, 0},
-{ "addi", 0xb0000000, 0xfc000000, "ct?ai,b,x", pa10, FLAG_STRICT},
-{ "addi", 0xb4000000, 0xfc000000, "cv?ai,b,x", pa10, FLAG_STRICT},
-{ "addi", 0xb4000000, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addio", 0xb4000800, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addit", 0xb0000000, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "addito", 0xb0000800, 0xfc000800, "?ai,b,x", pa10, 0},
-{ "add", 0x08000720, 0xfc0007e0, "cY?Ax,b,t", pa20, FLAG_STRICT},
-{ "add", 0x08000700, 0xfc0007e0, "cy?ax,b,t", pa10, FLAG_STRICT},
-{ "add", 0x08000220, 0xfc0003e0, "ca?Ax,b,t", pa20, FLAG_STRICT},
-{ "add", 0x08000200, 0xfc0003e0, "ca?ax,b,t", pa10, FLAG_STRICT},
-{ "add", 0x08000600, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addl", 0x08000a00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addo", 0x08000e00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addc", 0x08000700, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "addco", 0x08000f00, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sub", 0x080004e0, 0xfc0007e0, "ct?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub", 0x080004c0, 0xfc0007e0, "ct?sx,b,t", pa10, FLAG_STRICT},
-{ "sub", 0x08000520, 0xfc0007e0, "cB?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub", 0x08000500, 0xfc0007e0, "cb?sx,b,t", pa10, FLAG_STRICT},
-{ "sub", 0x08000420, 0xfc0007e0, "cv?Sx,b,t", pa20, FLAG_STRICT},
-{ "sub", 0x08000400, 0xfc0007e0, "cv?sx,b,t", pa10, FLAG_STRICT},
-{ "sub", 0x08000400, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subo", 0x08000c00, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subb", 0x08000500, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subbo", 0x08000d00, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subt", 0x080004c0, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subto", 0x08000cc0, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "ds", 0x08000440, 0xfc000fe0, "?sx,b,t", pa10, 0},
-{ "subi", 0x94000000, 0xfc000000, "cv?si,b,x", pa10, FLAG_STRICT},
-{ "subi", 0x94000000, 0xfc000800, "?si,b,x", pa10, 0},
-{ "subio", 0x94000800, 0xfc000800, "?si,b,x", pa10, 0},
-{ "cmpiclr", 0x90000800, 0xfc000800, "?Si,b,x", pa20, FLAG_STRICT},
-{ "cmpiclr", 0x90000000, 0xfc000800, "?si,b,x", pa10, FLAG_STRICT},
-{ "comiclr", 0x90000000, 0xfc000800, "?si,b,x", pa10, 0},
-{ "shladd", 0x08000220, 0xfc000320, "ca?Ax,.,b,t", pa20, FLAG_STRICT},
-{ "shladd", 0x08000200, 0xfc000320, "ca?ax,.,b,t", pa10, FLAG_STRICT},
-{ "sh1add", 0x08000640, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh1addl", 0x08000a40, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh1addo", 0x08000e40, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2add", 0x08000680, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2addl", 0x08000a80, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh2addo", 0x08000e80, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3add", 0x080006c0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3addl", 0x08000ac0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-{ "sh3addo", 0x08000ec0, 0xfc000fe0, "?ax,b,t", pa10, 0},
-
-/* Subword Operation Instructions. */
-
-{ "hadd", 0x08000300, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
-{ "havg", 0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT},
-{ "hshl", 0xf8008800, 0xffe0fc20, "x,*,t", pa20, FLAG_STRICT},
-{ "hshladd", 0x08000700, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
-{ "hshr", 0xf800c800, 0xfc1ff820, "cSb,*,t", pa20, FLAG_STRICT},
-{ "hshradd", 0x08000500, 0xfc00ff20, "x,.,b,t", pa20, FLAG_STRICT},
-{ "hsub", 0x08000100, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
-{ "mixh", 0xf8008400, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
-{ "mixw", 0xf8008000, 0xfc009fe0, "chx,b,t", pa20, FLAG_STRICT},
-{ "permh", 0xf8000000, 0xfc009020, "c*a,t", pa20, FLAG_STRICT},
-
-
-/* Extract and Deposit Instructions. */
-
-{ "shrpd", 0xd0000200, 0xfc001fe0, "?Xx,b,!,t", pa20, FLAG_STRICT},
-{ "shrpd", 0xd0000400, 0xfc001400, "?Xx,b,~,t", pa20, FLAG_STRICT},
-{ "shrpw", 0xd0000000, 0xfc001fe0, "?xx,b,!,t", pa10, FLAG_STRICT},
-{ "shrpw", 0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, FLAG_STRICT},
-{ "vshd", 0xd0000000, 0xfc001fe0, "?xx,b,t", pa10, 0},
-{ "shd", 0xd0000800, 0xfc001c00, "?xx,b,p,t", pa10, 0},
-{ "extrd", 0xd0001200, 0xfc001ae0, "cS?Xb,!,%,x", pa20, FLAG_STRICT},
-{ "extrd", 0xd8000000, 0xfc000000, "cS?Xb,q,|,x", pa20, FLAG_STRICT},
-{ "extrw", 0xd0001000, 0xfc001be0, "cS?xb,!,T,x", pa10, FLAG_STRICT},
-{ "extrw", 0xd0001800, 0xfc001800, "cS?xb,P,T,x", pa10, FLAG_STRICT},
-{ "vextru", 0xd0001000, 0xfc001fe0, "?xb,T,x", pa10, 0},
-{ "vextrs", 0xd0001400, 0xfc001fe0, "?xb,T,x", pa10, 0},
-{ "extru", 0xd0001800, 0xfc001c00, "?xb,P,T,x", pa10, 0},
-{ "extrs", 0xd0001c00, 0xfc001c00, "?xb,P,T,x", pa10, 0},
-{ "depd", 0xd4000200, 0xfc001ae0, "cz?Xx,!,%,b", pa20, FLAG_STRICT},
-{ "depd", 0xf0000000, 0xfc000000, "cz?Xx,~,|,b", pa20, FLAG_STRICT},
-{ "depdi", 0xd4001200, 0xfc001ae0, "cz?X5,!,%,b", pa20, FLAG_STRICT},
-{ "depdi", 0xf4000000, 0xfc000000, "cz?X5,~,|,b", pa20, FLAG_STRICT},
-{ "depw", 0xd4000000, 0xfc001be0, "cz?xx,!,T,b", pa10, FLAG_STRICT},
-{ "depw", 0xd4000800, 0xfc001800, "cz?xx,p,T,b", pa10, FLAG_STRICT},
-{ "depwi", 0xd4001000, 0xfc001be0, "cz?x5,!,T,b", pa10, FLAG_STRICT},
-{ "depwi", 0xd4001800, 0xfc001800, "cz?x5,p,T,b", pa10, FLAG_STRICT},
-{ "zvdep", 0xd4000000, 0xfc001fe0, "?xx,T,b", pa10, 0},
-{ "vdep", 0xd4000400, 0xfc001fe0, "?xx,T,b", pa10, 0},
-{ "zdep", 0xd4000800, 0xfc001c00, "?xx,p,T,b", pa10, 0},
-{ "dep", 0xd4000c00, 0xfc001c00, "?xx,p,T,b", pa10, 0},
-{ "zvdepi", 0xd4001000, 0xfc001fe0, "?x5,T,b", pa10, 0},
-{ "vdepi", 0xd4001400, 0xfc001fe0, "?x5,T,b", pa10, 0},
-{ "zdepi", 0xd4001800, 0xfc001c00, "?x5,p,T,b", pa10, 0},
-{ "depi", 0xd4001c00, 0xfc001c00, "?x5,p,T,b", pa10, 0},
-
-/* System Control Instructions. */
-
-{ "break", 0x00000000, 0xfc001fe0, "r,A", pa10, 0},
-{ "rfi", 0x00000c00, 0xffffff1f, "cr", pa10, FLAG_STRICT},
-{ "rfi", 0x00000c00, 0xffffffff, "", pa10, 0},
-{ "rfir", 0x00000ca0, 0xffffffff, "", pa11, 0},
-{ "ssm", 0x00000d60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT},
-{ "ssm", 0x00000d60, 0xffe0ffe0, "R,t", pa10, 0},
-{ "rsm", 0x00000e60, 0xfc00ffe0, "U,t", pa20, FLAG_STRICT},
-{ "rsm", 0x00000e60, 0xffe0ffe0, "R,t", pa10, 0},
-{ "mtsm", 0x00001860, 0xffe0ffff, "x", pa10, 0},
-{ "ldsid", 0x000010a0, 0xfc1fffe0, "(b),t", pa10, 0},
-{ "ldsid", 0x000010a0, 0xfc1f3fe0, "(s,b),t", pa10, 0},
-{ "mtsp", 0x00001820, 0xffe01fff, "x,S", pa10, 0},
-{ "mtctl", 0x00001840, 0xfc00ffff, "x,^", pa10, 0},
-{ "mtsarcm", 0x016018C0, 0xffe0ffff, "x", pa20, FLAG_STRICT},
-{ "mfia", 0x000014A0, 0xffffffe0, "t", pa20, FLAG_STRICT},
-{ "mfsp", 0x000004a0, 0xffff1fe0, "S,t", pa10, 0},
-{ "mfctl", 0x016048a0, 0xffffffe0, "cW!,t", pa20, FLAG_STRICT},
-{ "mfctl", 0x000008a0, 0xfc1fffe0, "^,t", pa10, 0},
-{ "sync", 0x00000400, 0xffffffff, "", pa10, 0},
-{ "syncdma", 0x00100400, 0xffffffff, "", pa10, 0},
-{ "probe", 0x04001180, 0xfc00ffa0, "cw(b),x,t", pa10, FLAG_STRICT},
-{ "probe", 0x04001180, 0xfc003fa0, "cw(s,b),x,t", pa10, FLAG_STRICT},
-{ "probei", 0x04003180, 0xfc00ffa0, "cw(b),R,t", pa10, FLAG_STRICT},
-{ "probei", 0x04003180, 0xfc003fa0, "cw(s,b),R,t", pa10, FLAG_STRICT},
-{ "prober", 0x04001180, 0xfc00ffe0, "(b),x,t", pa10, 0},
-{ "prober", 0x04001180, 0xfc003fe0, "(s,b),x,t", pa10, 0},
-{ "proberi", 0x04003180, 0xfc00ffe0, "(b),R,t", pa10, 0},
-{ "proberi", 0x04003180, 0xfc003fe0, "(s,b),R,t", pa10, 0},
-{ "probew", 0x040011c0, 0xfc00ffe0, "(b),x,t", pa10, 0},
-{ "probew", 0x040011c0, 0xfc003fe0, "(s,b),x,t", pa10, 0},
-{ "probewi", 0x040031c0, 0xfc00ffe0, "(b),R,t", pa10, 0},
-{ "probewi", 0x040031c0, 0xfc003fe0, "(s,b),R,t", pa10, 0},
-{ "lpa", 0x04001340, 0xfc00ffc0, "cZx(b),t", pa10, 0},
-{ "lpa", 0x04001340, 0xfc003fc0, "cZx(s,b),t", pa10, 0},
-{ "lci", 0x04001300, 0xfc00ffe0, "x(b),t", pa11, 0},
-{ "lci", 0x04001300, 0xfc003fe0, "x(s,b),t", pa11, 0},
-{ "pdtlb", 0x04001600, 0xfc00ffdf, "cLcZx(b)", pa20, FLAG_STRICT},
-{ "pdtlb", 0x04001600, 0xfc003fdf, "cLcZx(s,b)", pa20, FLAG_STRICT},
-{ "pdtlb", 0x04001600, 0xfc1fffdf, "cLcZ@(b)", pa20, FLAG_STRICT},
-{ "pdtlb", 0x04001600, 0xfc1f3fdf, "cLcZ@(s,b)", pa20, FLAG_STRICT},
-{ "pdtlb", 0x04001200, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdtlb", 0x04001200, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "pitlb", 0x04000600, 0xfc001fdf, "cLcZx(S,b)", pa20, FLAG_STRICT},
-{ "pitlb", 0x04000600, 0xfc1f1fdf, "cLcZ@(S,b)", pa20, FLAG_STRICT},
-{ "pitlb", 0x04000200, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "pdtlbe", 0x04001240, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdtlbe", 0x04001240, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "pitlbe", 0x04000240, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "idtlba", 0x04001040, 0xfc00ffff, "x,(b)", pa10, 0},
-{ "idtlba", 0x04001040, 0xfc003fff, "x,(s,b)", pa10, 0},
-{ "iitlba", 0x04000040, 0xfc001fff, "x,(S,b)", pa10, 0},
-{ "idtlbp", 0x04001000, 0xfc00ffff, "x,(b)", pa10, 0},
-{ "idtlbp", 0x04001000, 0xfc003fff, "x,(s,b)", pa10, 0},
-{ "iitlbp", 0x04000000, 0xfc001fff, "x,(S,b)", pa10, 0},
-{ "pdc", 0x04001380, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "pdc", 0x04001380, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fdc", 0x04001280, 0xfc00ffdf, "cZx(b)", pa10, FLAG_STRICT},
-{ "fdc", 0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, FLAG_STRICT},
-{ "fdc", 0x04003280, 0xfc00ffff, "5(b)", pa20, FLAG_STRICT},
-{ "fdc", 0x04003280, 0xfc003fff, "5(s,b)", pa20, FLAG_STRICT},
-{ "fdc", 0x04001280, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "fdc", 0x04001280, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fic", 0x040013c0, 0xfc00dfdf, "cZx(b)", pa20, FLAG_STRICT},
-{ "fic", 0x04000280, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "fdce", 0x040012c0, 0xfc00ffdf, "cZx(b)", pa10, 0},
-{ "fdce", 0x040012c0, 0xfc003fdf, "cZx(s,b)", pa10, 0},
-{ "fice", 0x040002c0, 0xfc001fdf, "cZx(S,b)", pa10, 0},
-{ "diag", 0x14000000, 0xfc000000, "D", pa10, 0},
-{ "idtlbt", 0x04001800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
-{ "iitlbt", 0x04000800, 0xfc00ffff, "x,b", pa20, FLAG_STRICT},
-
-/* These may be specific to certain versions of the PA. Joel claimed
- they were 72000 (7200?) specific. However, I'm almost certain the
- mtcpu/mfcpu were undocumented, but available in the older 700 machines. */
-{ "mtcpu", 0x14001600, 0xfc00ffff, "x,^", pa10, 0},
-{ "mfcpu", 0x14001A00, 0xfc00ffff, "^,x", pa10, 0},
-{ "tocen", 0x14403600, 0xffffffff, "", pa10, 0},
-{ "tocdis", 0x14401620, 0xffffffff, "", pa10, 0},
-{ "shdwgr", 0x14402600, 0xffffffff, "", pa10, 0},
-{ "grshdw", 0x14400620, 0xffffffff, "", pa10, 0},
-
-/* gfw and gfr are not in the HP PA 1.1 manual, but they are in either
- the Timex FPU or the Mustang ERS (not sure which) manual. */
-{ "gfw", 0x04001680, 0xfc00ffdf, "cZx(b)", pa11, 0},
-{ "gfw", 0x04001680, 0xfc003fdf, "cZx(s,b)", pa11, 0},
-{ "gfr", 0x04001a80, 0xfc00ffdf, "cZx(b)", pa11, 0},
-{ "gfr", 0x04001a80, 0xfc003fdf, "cZx(s,b)", pa11, 0},
-
-/* Floating Point Coprocessor Instructions. */
-
-{ "fldw", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT},
-{ "fldw", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT},
-{ "fldw", 0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT},
-{ "fldw", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT},
-{ "fldw", 0x24001020, 0xfc1ff3a0, "cocc@(b),fT", pa20, FLAG_STRICT},
-{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
-{ "fldw", 0x24001000, 0xfc00df80, "cM5(b),fT", pa10, FLAG_STRICT},
-{ "fldw", 0x24001000, 0xfc001f80, "cM5(s,b),fT", pa10, FLAG_STRICT},
-{ "fldw", 0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT},
-{ "fldw", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT},
-{ "fldw", 0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
-{ "fldw", 0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
-{ "fldw", 0x5c000000, 0xfc00c004, "d(b),fe", pa20, FLAG_STRICT},
-{ "fldw", 0x5c000000, 0xfc000004, "d(s,b),fe", pa20, FLAG_STRICT},
-{ "fldw", 0x58000000, 0xfc00c000, "cJd(b),fe", pa20, FLAG_STRICT},
-{ "fldw", 0x58000000, 0xfc000000, "cJd(s,b),fe", pa20, FLAG_STRICT},
-{ "fldd", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT},
-{ "fldd", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT},
-{ "fldd", 0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT},
-{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT},
-{ "fldd", 0x2c001020, 0xfc1ff3e0, "cocc@(b),ft", pa20, FLAG_STRICT},
-{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
-{ "fldd", 0x2c001000, 0xfc00dfc0, "cM5(b),ft", pa10, FLAG_STRICT},
-{ "fldd", 0x2c001000, 0xfc001fc0, "cM5(s,b),ft", pa10, FLAG_STRICT},
-{ "fldd", 0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT},
-{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT},
-{ "fldd", 0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
-{ "fldd", 0x50000002, 0xfc00c002, "cq#(b),fx", pa20, FLAG_STRICT},
-{ "fldd", 0x50000002, 0xfc000002, "cq#(s,b),fx", pa20, FLAG_STRICT},
-{ "fstw", 0x24000200, 0xfc00df80, "cXfT,x(b)", pa10, FLAG_STRICT},
-{ "fstw", 0x24000200, 0xfc001f80, "cXfT,x(s,b)", pa10, FLAG_STRICT},
-{ "fstw", 0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT},
-{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT},
-{ "fstw", 0x24001220, 0xfc1ff3a0, "cocCfT,@(b)", pa20, FLAG_STRICT},
-{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa20, FLAG_STRICT},
-{ "fstw", 0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT},
-{ "fstw", 0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstw", 0x24001200, 0xfc00df80, "cMfT,5(b)", pa10, FLAG_STRICT},
-{ "fstw", 0x24001200, 0xfc001f80, "cMfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstw", 0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
-{ "fstw", 0x78000000, 0xfc000000, "cJfE,y(b)", pa20w, FLAG_STRICT},
-{ "fstw", 0x7c000000, 0xfc00c004, "fE,d(b)", pa20, FLAG_STRICT},
-{ "fstw", 0x7c000000, 0xfc000004, "fE,d(s,b)", pa20, FLAG_STRICT},
-{ "fstw", 0x78000000, 0xfc00c000, "cJfE,d(b)", pa20, FLAG_STRICT},
-{ "fstw", 0x78000000, 0xfc000000, "cJfE,d(s,b)", pa20, FLAG_STRICT},
-{ "fstd", 0x2c000200, 0xfc00dfc0, "cXft,x(b)", pa10, FLAG_STRICT},
-{ "fstd", 0x2c000200, 0xfc001fc0, "cXft,x(s,b)", pa10, FLAG_STRICT},
-{ "fstd", 0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT},
-{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT},
-{ "fstd", 0x2c001220, 0xfc1ff3e0, "cocCft,@(b)", pa20, FLAG_STRICT},
-{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa20, FLAG_STRICT},
-{ "fstd", 0x2c001200, 0xfc00dfc0, "cMft,5(b)", pa10, FLAG_STRICT},
-{ "fstd", 0x2c001200, 0xfc001fc0, "cMft,5(s,b)", pa10, FLAG_STRICT},
-{ "fstd", 0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT},
-{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT},
-{ "fstd", 0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
-{ "fstd", 0x70000002, 0xfc00c002, "cqfx,#(b)", pa20, FLAG_STRICT},
-{ "fstd", 0x70000002, 0xfc000002, "cqfx,#(s,b)", pa20, FLAG_STRICT},
-{ "fldwx", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, FLAG_STRICT},
-{ "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, FLAG_STRICT},
-{ "fldwx", 0x24000000, 0xfc00d380, "cxccx(b),fT", pa11, FLAG_STRICT},
-{ "fldwx", 0x24000000, 0xfc001380, "cxccx(s,b),fT", pa11, FLAG_STRICT},
-{ "fldwx", 0x24000000, 0xfc00df80, "cXx(b),fT", pa10, 0},
-{ "fldwx", 0x24000000, 0xfc001f80, "cXx(s,b),fT", pa10, 0},
-{ "flddx", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, FLAG_STRICT},
-{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, FLAG_STRICT},
-{ "flddx", 0x2c000000, 0xfc00d3c0, "cxccx(b),ft", pa11, FLAG_STRICT},
-{ "flddx", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa11, FLAG_STRICT},
-{ "flddx", 0x2c000000, 0xfc00dfc0, "cXx(b),ft", pa10, 0},
-{ "flddx", 0x2c000000, 0xfc001fc0, "cXx(s,b),ft", pa10, 0},
-{ "fstwx", 0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, FLAG_STRICT},
-{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, FLAG_STRICT},
-{ "fstwx", 0x24000200, 0xfc00d380, "cxcCfT,x(b)", pa11, FLAG_STRICT},
-{ "fstwx", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa11, FLAG_STRICT},
-{ "fstwx", 0x24000200, 0xfc00df80, "cxfT,x(b)", pa10, 0},
-{ "fstwx", 0x24000200, 0xfc001f80, "cxfT,x(s,b)", pa10, 0},
-{ "fstdx", 0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, FLAG_STRICT},
-{ "fstdx", 0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, FLAG_STRICT},
-{ "fstdx", 0x2c000200, 0xfc00d3c0, "cxcCft,x(b)", pa11, FLAG_STRICT},
-{ "fstdx", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa11, FLAG_STRICT},
-{ "fstdx", 0x2c000200, 0xfc00dfc0, "cxft,x(b)", pa10, 0},
-{ "fstdx", 0x2c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
-{ "fstqx", 0x3c000200, 0xfc00dfc0, "cxft,x(b)", pa10, 0},
-{ "fstqx", 0x3c000200, 0xfc001fc0, "cxft,x(s,b)", pa10, 0},
-{ "fldws", 0x24001000, 0xfc00df80, "cm5(b),fT", pa10, FLAG_STRICT},
-{ "fldws", 0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, FLAG_STRICT},
-{ "fldws", 0x24001000, 0xfc00d380, "cmcc5(b),fT", pa11, FLAG_STRICT},
-{ "fldws", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa11, FLAG_STRICT},
-{ "fldws", 0x24001000, 0xfc00df80, "cm5(b),fT", pa10, 0},
-{ "fldws", 0x24001000, 0xfc001f80, "cm5(s,b),fT", pa10, 0},
-{ "fldds", 0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, FLAG_STRICT},
-{ "fldds", 0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, FLAG_STRICT},
-{ "fldds", 0x2c001000, 0xfc00d3c0, "cmcc5(b),ft", pa11, FLAG_STRICT},
-{ "fldds", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa11, FLAG_STRICT},
-{ "fldds", 0x2c001000, 0xfc00dfc0, "cm5(b),ft", pa10, 0},
-{ "fldds", 0x2c001000, 0xfc001fc0, "cm5(s,b),ft", pa10, 0},
-{ "fstws", 0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, FLAG_STRICT},
-{ "fstws", 0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, FLAG_STRICT},
-{ "fstws", 0x24001200, 0xfc00d380, "cmcCfT,5(b)", pa11, FLAG_STRICT},
-{ "fstws", 0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa11, FLAG_STRICT},
-{ "fstws", 0x24001200, 0xfc00df80, "cmfT,5(b)", pa10, 0},
-{ "fstws", 0x24001200, 0xfc001f80, "cmfT,5(s,b)", pa10, 0},
-{ "fstds", 0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, FLAG_STRICT},
-{ "fstds", 0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, FLAG_STRICT},
-{ "fstds", 0x2c001200, 0xfc00d3c0, "cmcCft,5(b)", pa11, FLAG_STRICT},
-{ "fstds", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa11, FLAG_STRICT},
-{ "fstds", 0x2c001200, 0xfc00dfc0, "cmft,5(b)", pa10, 0},
-{ "fstds", 0x2c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, 0},
-{ "fstqs", 0x3c001200, 0xfc00dfc0, "cmft,5(b)", pa10, 0},
-{ "fstqs", 0x3c001200, 0xfc001fc0, "cmft,5(s,b)", pa10, 0},
-{ "fadd", 0x30000600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fadd", 0x38000600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fsub", 0x30002600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fsub", 0x38002600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fmpy", 0x30004600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fmpy", 0x38004600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fdiv", 0x30006600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "fdiv", 0x38006600, 0xfc00e720, "IfA,fB,fT", pa10, 0},
-{ "fsqrt", 0x30008000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fsqrt", 0x38008000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fabs", 0x30006000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fabs", 0x38006000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "frem", 0x30008600, 0xfc00e7e0, "Ffa,fb,fT", pa10, 0},
-{ "frem", 0x38008600, 0xfc00e720, "FfA,fB,fT", pa10, 0},
-{ "frnd", 0x3000a000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "frnd", 0x3800a000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fcpy", 0x30004000, 0xfc1fe7e0, "Ffa,fT", pa10, 0},
-{ "fcpy", 0x38004000, 0xfc1fe720, "FfA,fT", pa10, 0},
-{ "fcnvff", 0x30000200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvff", 0x38000200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvxf", 0x30008200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvxf", 0x38008200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvfx", 0x30010200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvfx", 0x38010200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fcnvfxt", 0x30018200, 0xfc1f87e0, "FGfa,fT", pa10, 0},
-{ "fcnvfxt", 0x38018200, 0xfc1f8720, "FGfA,fT", pa10, 0},
-{ "fmpyfadd", 0xb8000000, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT},
-{ "fmpynfadd", 0xb8000020, 0xfc000020, "IfA,fB,fC,fT", pa20, FLAG_STRICT},
-{ "fneg", 0x3000c000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT},
-{ "fneg", 0x3800c000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT},
-{ "fnegabs", 0x3000e000, 0xfc1fe7e0, "Ffa,fT", pa20, FLAG_STRICT},
-{ "fnegabs", 0x3800e000, 0xfc1fe720, "IfA,fT", pa20, FLAG_STRICT},
-{ "fcnv", 0x30000200, 0xfc1c0720, "{_fa,fT", pa20, FLAG_STRICT},
-{ "fcnv", 0x38000200, 0xfc1c0720, "FGfA,fT", pa20, FLAG_STRICT},
-{ "fcmp", 0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, FLAG_STRICT},
-{ "fcmp", 0x38000400, 0xfc00e720, "I?ffA,fB", pa10, FLAG_STRICT},
-{ "fcmp", 0x30000400, 0xfc0007e0, "F?ffa,fb,h", pa20, FLAG_STRICT},
-{ "fcmp", 0x38000400, 0xfc000720, "I?ffA,fB,h", pa20, FLAG_STRICT},
-{ "fcmp", 0x30000400, 0xfc00e7e0, "F?ffa,fb", pa10, 0},
-{ "fcmp", 0x38000400, 0xfc00e720, "I?ffA,fB", pa10, 0},
-{ "xmpyu", 0x38004700, 0xfc00e720, "fX,fB,fT", pa11, 0},
-{ "fmpyadd", 0x18000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0},
-{ "fmpysub", 0x98000000, 0xfc000000, "Hfi,fj,fk,fl,fm", pa11, 0},
-{ "ftest", 0x30002420, 0xffffffff, "", pa10, FLAG_STRICT},
-{ "ftest", 0x30002420, 0xffffffe0, ",=", pa20, FLAG_STRICT},
-{ "ftest", 0x30000420, 0xffff1fff, "m", pa20, FLAG_STRICT},
-{ "fid", 0x30000000, 0xffffffff, "", pa11, 0},
-
-/* Performance Monitor Instructions. */
-
-{ "pmdis", 0x30000280, 0xffffffdf, "N", pa20, FLAG_STRICT},
-{ "pmenb", 0x30000680, 0xffffffff, "", pa20, FLAG_STRICT},
-
-/* Assist Instructions. */
-
-{ "spop0", 0x10000000, 0xfc000600, "v,ON", pa10, 0},
-{ "spop1", 0x10000200, 0xfc000600, "v,oNt", pa10, 0},
-{ "spop2", 0x10000400, 0xfc000600, "v,1Nb", pa10, 0},
-{ "spop3", 0x10000600, 0xfc000600, "v,0Nx,b", pa10, 0},
-{ "copr", 0x30000000, 0xfc000000, "u,2N", pa10, 0},
-{ "cldw", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldw", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldw", 0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldw", 0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldw", 0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldd", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldd", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldd", 0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldd", 0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc00d200, "ucocc@(b),t", pa20, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc001200, "ucocc@(s,b),t", pa20, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldd", 0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cstw", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstw", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstw", 0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstw", 0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstw", 0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstd", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstd", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstd", 0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstd", 0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc00d200, "ucocCt,@(b)", pa20, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc001200, "ucocCt,@(s,b)", pa20, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstd", 0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cldwx", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "cldwx", 0x24000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "cldwx", 0x24000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "cldwx", 0x24000000, 0xfc00de00, "ucXx(b),t", pa10, 0},
-{ "cldwx", 0x24000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
-{ "clddx", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, FLAG_STRICT},
-{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, FLAG_STRICT},
-{ "clddx", 0x2c000000, 0xfc00d200, "ucxccx(b),t", pa11, FLAG_STRICT},
-{ "clddx", 0x2c000000, 0xfc001200, "ucxccx(s,b),t", pa11, FLAG_STRICT},
-{ "clddx", 0x2c000000, 0xfc00de00, "ucXx(b),t", pa10, 0},
-{ "clddx", 0x2c000000, 0xfc001e00, "ucXx(s,b),t", pa10, 0},
-{ "cstwx", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstwx", 0x24000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstwx", 0x24000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstwx", 0x24000200, 0xfc00de00, "ucXt,x(b)", pa10, 0},
-{ "cstwx", 0x24000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
-{ "cstdx", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, FLAG_STRICT},
-{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, FLAG_STRICT},
-{ "cstdx", 0x2c000200, 0xfc00d200, "ucxcCt,x(b)", pa11, FLAG_STRICT},
-{ "cstdx", 0x2c000200, 0xfc001200, "ucxcCt,x(s,b)", pa11, FLAG_STRICT},
-{ "cstdx", 0x2c000200, 0xfc00de00, "ucXt,x(b)", pa10, 0},
-{ "cstdx", 0x2c000200, 0xfc001e00, "ucXt,x(s,b)", pa10, 0},
-{ "cldws", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldws", 0x24001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldws", 0x24001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldws", 0x24001000, 0xfc00de00, "ucM5(b),t", pa10, 0},
-{ "cldws", 0x24001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
-{ "cldds", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, FLAG_STRICT},
-{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, FLAG_STRICT},
-{ "cldds", 0x2c001000, 0xfc00d200, "ucmcc5(b),t", pa11, FLAG_STRICT},
-{ "cldds", 0x2c001000, 0xfc001200, "ucmcc5(s,b),t", pa11, FLAG_STRICT},
-{ "cldds", 0x2c001000, 0xfc00de00, "ucM5(b),t", pa10, 0},
-{ "cldds", 0x2c001000, 0xfc001e00, "ucM5(s,b),t", pa10, 0},
-{ "cstws", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstws", 0x24001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstws", 0x24001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstws", 0x24001200, 0xfc00de00, "ucMt,5(b)", pa10, 0},
-{ "cstws", 0x24001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
-{ "cstds", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, FLAG_STRICT},
-{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, FLAG_STRICT},
-{ "cstds", 0x2c001200, 0xfc00d200, "ucmcCt,5(b)", pa11, FLAG_STRICT},
-{ "cstds", 0x2c001200, 0xfc001200, "ucmcCt,5(s,b)", pa11, FLAG_STRICT},
-{ "cstds", 0x2c001200, 0xfc00de00, "ucMt,5(b)", pa10, 0},
-{ "cstds", 0x2c001200, 0xfc001e00, "ucMt,5(s,b)", pa10, 0},
-
-/* More pseudo instructions which must follow the main table. */
-{ "call", 0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
-{ "call", 0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
-{ "ret", 0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
-
-};
-
-#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
-
-/* SKV 12/18/92. Added some denotations for various operands. */
-
-#define PA_IMM11_AT_31 'i'
-#define PA_IMM14_AT_31 'j'
-#define PA_IMM21_AT_31 'k'
-#define PA_DISP12 'w'
-#define PA_DISP17 'W'
-
-#define N_HPPA_OPERAND_FORMATS 5
diff --git a/include/opcode/i370.h b/include/opcode/i370.h
deleted file mode 100644
index e3b7166d2..000000000
--- a/include/opcode/i370.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/* i370.h -- Header file for S/390 opcode table
- Copyright 1994, 1995, 1998, 1999, 2000, 2003, 2010
- Free Software Foundation, Inc.
- PowerPC version written by Ian Lance Taylor, Cygnus Support
- Rewritten for i370 ESA/390 support, Linas Vepstas <linas@linas.org>
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef I370_H
-#define I370_H
-
-/* The opcode table is an array of struct i370_opcode. */
-typedef union
-{
- unsigned int i[2];
- unsigned short s[4];
- unsigned char b[8];
-} i370_insn_t;
-
-struct i370_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* the length of the instruction */
- char len;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- i370_insn_t opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- i370_insn_t mask;
-
- /* One bit flags for the opcode. These are used to indicate which
- specific processors support the instructions. The defined values
- are listed below. */
- unsigned long flags;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct i370_opcode i370_opcodes[];
-extern const int i370_num_opcodes;
-
-/* Values defined for the flags field of a struct i370_opcode. */
-
-/* Opcode is defined for the original 360 architecture. */
-#define I370_OPCODE_360 (0x01)
-
-/* Opcode is defined for the 370 architecture. */
-#define I370_OPCODE_370 (0x02)
-
-/* Opcode is defined for the 370-XA architecture. */
-#define I370_OPCODE_370_XA (0x04)
-
-/* Opcode is defined for the ESA/370 architecture. */
-#define I370_OPCODE_ESA370 (0x08)
-
-/* Opcode is defined for the ESA/390 architecture. */
-#define I370_OPCODE_ESA390 (0x10)
-
-/* Opcode is defined for the ESA/390 w/ BFP facility. */
-#define I370_OPCODE_ESA390_BF (0x20)
-
-/* Opcode is defined for the ESA/390 w/ branch & set authority facility. */
-#define I370_OPCODE_ESA390_BS (0x40)
-
-/* Opcode is defined for the ESA/390 w/ checksum facility. */
-#define I370_OPCODE_ESA390_CK (0x80)
-
-/* Opcode is defined for the ESA/390 w/ compare & move extended facility. */
-#define I370_OPCODE_ESA390_CM (0x100)
-
-/* Opcode is defined for the ESA/390 w/ flt.pt. support extensions facility. */
-#define I370_OPCODE_ESA390_FX (0x200)
-
-/* Opcode is defined for the ESA/390 w/ HFP facility. */
-#define I370_OPCODE_ESA390_HX (0x400)
-
-/* Opcode is defined for the ESA/390 w/ immediate & relative facility. */
-#define I370_OPCODE_ESA390_IR (0x800)
-
-/* Opcode is defined for the ESA/390 w/ move-inverse facility. */
-#define I370_OPCODE_ESA390_MI (0x1000)
-
-/* Opcode is defined for the ESA/390 w/ program-call-fast facility. */
-#define I370_OPCODE_ESA390_PC (0x2000)
-
-/* Opcode is defined for the ESA/390 w/ perform-locked-op facility. */
-#define I370_OPCODE_ESA390_PL (0x4000)
-
-/* Opcode is defined for the ESA/390 w/ square-root facility. */
-#define I370_OPCODE_ESA390_QR (0x8000)
-
-/* Opcode is defined for the ESA/390 w/ resume-program facility. */
-#define I370_OPCODE_ESA390_RP (0x10000)
-
-/* Opcode is defined for the ESA/390 w/ set-address-space-fast facility. */
-#define I370_OPCODE_ESA390_SA (0x20000)
-
-/* Opcode is defined for the ESA/390 w/ subspace group facility. */
-#define I370_OPCODE_ESA390_SG (0x40000)
-
-/* Opcode is defined for the ESA/390 w/ string facility. */
-#define I370_OPCODE_ESA390_SR (0x80000)
-
-/* Opcode is defined for the ESA/390 w/ trap facility. */
-#define I370_OPCODE_ESA390_TR (0x100000)
-
-#define I370_OPCODE_ESA390_SUPERSET (0x1fffff)
-
-
-/* The operands table is an array of struct i370_operand. */
-
-struct i370_operand
-{
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
-
- /* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (op & ((1 << o->bits) - 1)) << o->shift;
- (i is the instruction which we are filling in, o is a pointer to
- this structure, and op is the opcode value; this assumes twos
- complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- 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)
- (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.
-
- If it is NULL, compute
- op = ((i) >> o->shift) & ((1 << o->bits) - 1);
- if ((o->flags & I370_OPERAND_SIGNED) != 0
- && (op & (1 << (o->bits - 1))) != 0)
- op -= 1 << o->bits;
- (i is the instruction, o is a pointer to this structure, and op
- is the result; this assumes twos complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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) (i370_insn_t instruction, int *invalid);
-
- /* One bit syntax flags. */
- unsigned long flags;
-
- /* name -- handy for debugging, otherwise pointless */
- char * name;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the i370_opcodes table. */
-
-extern const struct i370_operand i370_operands[];
-
-/* Values defined for the flags field of a struct i370_operand. */
-
-/* This operand should be wrapped in parentheses rather than
- separated from the previous by a comma. This is used for S, RS and
- SS form instructions which want their operands to look like
- reg,displacement(basereg) */
-#define I370_OPERAND_SBASE (0x01)
-
-/* This operand is a base register. It may or may not appear next
- to an index register, i.e. either of the two forms
- reg,displacement(basereg)
- reg,displacement(index,basereg) */
-#define I370_OPERAND_BASE (0x02)
-
-/* This pair of operands should be wrapped in parentheses rather than
- separated from the last by a comma. This is used for the RX form
- instructions which want their operands to look like
- reg,displacement(index,basereg) */
-#define I370_OPERAND_INDEX (0x04)
-
-/* This operand names a register. The disassembler uses this to print
- register names with a leading 'r'. */
-#define I370_OPERAND_GPR (0x08)
-
-/* This operand names a floating point register. The disassembler
- prints these with a leading 'f'. */
-#define I370_OPERAND_FPR (0x10)
-
-/* This operand is a displacement. */
-#define I370_OPERAND_RELATIVE (0x20)
-
-/* This operand is a length, such as that in SS form instructions. */
-#define I370_OPERAND_LENGTH (0x40)
-
-/* This operand is optional, and is zero if omitted. This is used for
- the optional B2 field in the shift-left, shift-right instructions. The
- assembler must count the number of operands remaining on the line,
- and the number of operands remaining for the opcode, and decide
- whether this operand is present or not. The disassembler should
- print this operand out only if it is not zero. */
-#define I370_OPERAND_OPTIONAL (0x80)
-
-
-/* Define some misc macros. We keep them with the operands table
- for simplicity. The macro table is an array of struct i370_macro. */
-
-struct i370_macro
-{
- /* The macro name. */
- const char *name;
-
- /* The number of operands the macro takes. */
- unsigned int operands;
-
- /* One bit flags for the opcode. These are used to indicate which
- specific processors support the instructions. The values are the
- same as those for the struct i370_opcode flags field. */
- unsigned long flags;
-
- /* A format string to turn the macro into a normal instruction.
- Each %N in the string is replaced with operand number N (zero
- based). */
- const char *format;
-};
-
-extern const struct i370_macro i370_macros[];
-extern const int i370_num_macros;
-
-
-#endif /* I370_H */
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
deleted file mode 100644
index b635334e4..000000000
--- a/include/opcode/i386.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* opcode/i386.h -- Intel 80386 opcode macros
- Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
- Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler, and GDB, the GNU Debugger.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The SystemV/386 SVR3.2 assembler, and probably all AT&T derived
- ix86 Unix assemblers, generate floating point instructions with
- reversed source and destination registers in certain cases.
- Unfortunately, gcc and possibly many other programs use this
- reversed syntax, so we're stuck with it.
-
- eg. `fsub %st(3),%st' results in st = st - st(3) as expected, but
- `fsub %st,%st(3)' results in st(3) = st - st(3), rather than
- the expected st(3) = st(3) - st
-
- This happens with all the non-commutative arithmetic floating point
- operations with two register operands, where the source register is
- %st, and destination register is %st(i).
-
- The affected opcode map is dceX, dcfX, deeX, defX. */
-
-#ifndef OPCODE_I386_H
-#define OPCODE_I386_H
-
-#ifndef SYSV386_COMPAT
-/* Set non-zero for broken, compatible instructions. Set to zero for
- non-broken opcodes at your peril. gcc generates SystemV/386
- compatible instructions. */
-#define SYSV386_COMPAT 1
-#endif
-#ifndef OLDGCC_COMPAT
-/* Set non-zero to cater for old (<= 2.8.1) versions of gcc that could
- generate nonsense fsubp, fsubrp, fdivp and fdivrp with operands
- reversed. */
-#define OLDGCC_COMPAT SYSV386_COMPAT
-#endif
-
-#define MOV_AX_DISP32 0xa0
-#define POP_SEG_SHORT 0x07
-#define JUMP_PC_RELATIVE 0xeb
-#define INT_OPCODE 0xcd
-#define INT3_OPCODE 0xcc
-/* The opcode for the fwait instruction, which disassembler treats as a
- prefix when it can. */
-#define FWAIT_OPCODE 0x9b
-
-/* Instruction prefixes.
- NOTE: For certain SSE* instructions, 0x66,0xf2,0xf3 are treated as
- part of the opcode. Other prefixes may still appear between them
- and the 0x0f part of the opcode. */
-#define ADDR_PREFIX_OPCODE 0x67
-#define DATA_PREFIX_OPCODE 0x66
-#define LOCK_PREFIX_OPCODE 0xf0
-#define CS_PREFIX_OPCODE 0x2e
-#define DS_PREFIX_OPCODE 0x3e
-#define ES_PREFIX_OPCODE 0x26
-#define FS_PREFIX_OPCODE 0x64
-#define GS_PREFIX_OPCODE 0x65
-#define SS_PREFIX_OPCODE 0x36
-#define REPNE_PREFIX_OPCODE 0xf2
-#define REPE_PREFIX_OPCODE 0xf3
-
-#define TWO_BYTE_OPCODE_ESCAPE 0x0f
-#define NOP_OPCODE (char) 0x90
-
-/* register numbers */
-#define EAX_REG_NUM 0
-#define ECX_REG_NUM 1
-#define EDX_REG_NUM 2
-#define EBX_REG_NUM 3
-#define ESP_REG_NUM 4
-#define EBP_REG_NUM 5
-#define ESI_REG_NUM 6
-#define EDI_REG_NUM 7
-
-/* modrm_byte.regmem for twobyte escape */
-#define ESCAPE_TO_TWO_BYTE_ADDRESSING ESP_REG_NUM
-/* index_base_byte.index for no index register addressing */
-#define NO_INDEX_REGISTER ESP_REG_NUM
-/* index_base_byte.base for no base register addressing */
-#define NO_BASE_REGISTER EBP_REG_NUM
-#define NO_BASE_REGISTER_16 6
-
-/* modrm.mode = REGMEM_FIELD_HAS_REG when a register is in there */
-#define REGMEM_FIELD_HAS_REG 0x3/* always = 0x3 */
-#define REGMEM_FIELD_HAS_MEM (~REGMEM_FIELD_HAS_REG)
-
-/* Extract fields from the mod/rm byte. */
-#define MODRM_MOD_FIELD(modrm) (((modrm) >> 6) & 3)
-#define MODRM_REG_FIELD(modrm) (((modrm) >> 3) & 7)
-#define MODRM_RM_FIELD(modrm) (((modrm) >> 0) & 7)
-
-/* Extract fields from the sib byte. */
-#define SIB_SCALE_FIELD(sib) (((sib) >> 6) & 3)
-#define SIB_INDEX_FIELD(sib) (((sib) >> 3) & 7)
-#define SIB_BASE_FIELD(sib) (((sib) >> 0) & 7)
-
-/* x86-64 extension prefix. */
-#define REX_OPCODE 0x40
-
-/* Non-zero if OPCODE is the rex prefix. */
-#define REX_PREFIX_P(opcode) (((opcode) & 0xf0) == REX_OPCODE)
-
-/* Indicates 64 bit operand size. */
-#define REX_W 8
-/* High extension to reg field of modrm byte. */
-#define REX_R 4
-/* High extension to SIB index field. */
-#define REX_X 2
-/* High extension to base field of modrm or SIB, or reg field of opcode. */
-#define REX_B 1
-
-/* max operands per insn */
-#define MAX_OPERANDS 5
-
-/* max immediates per insn (lcall, ljmp, insertq, extrq) */
-#define MAX_IMMEDIATE_OPERANDS 2
-
-/* max memory refs per insn (string ops) */
-#define MAX_MEMORY_OPERANDS 2
-
-/* max size of insn mnemonics. */
-#define MAX_MNEM_SIZE 20
-
-/* max size of register name in insn mnemonics. */
-#define MAX_REG_NAME_SIZE 8
-
-#endif /* OPCODE_I386_H */
diff --git a/include/opcode/i860.h b/include/opcode/i860.h
deleted file mode 100644
index 7f4aafd9c..000000000
--- a/include/opcode/i860.h
+++ /dev/null
@@ -1,507 +0,0 @@
-/* Table of opcodes for the i860.
- Copyright 1989, 1991, 2000, 2002, 2003, 2010
- Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
-
- GAS/GDB 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 3, or (at your option)
- any later version.
-
- GAS/GDB 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 GAS or GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* Structure of an opcode table entry. */
-struct i860_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* Bits that must be set. */
- unsigned long match;
-
- /* Bits that must not be set. */
- unsigned long lose;
-
- const char *args;
-
- /* Nonzero if this is a possible expand-instruction. */
- char expand;
-};
-
-
-enum expand_type
-{
- E_MOV = 1, E_ADDR, E_U32, E_AND, E_S32, E_DELAY, XP_ONLY
-};
-
-
-/* All i860 opcodes are 32 bits, except for the pseudo-instructions
- and the operations utilizing a 32-bit address expression, an
- unsigned 32-bit constant, or a signed 32-bit constant.
- These opcodes are expanded into a two-instruction sequence for
- any situation where the immediate operand does not fit in 32 bits.
- In the case of the add and subtract operations the expansion is
- to a three-instruction sequence (ex: orh, or, adds). In cases
- where the address is to be relocated, the instruction is
- expanded to handle the worse case, this could be optimized at
- the final link if the actual address were known.
-
- The pseudoinstructions are: mov, fmov, pmov, nop, and fnop.
- These instructions are implemented as a one or two instruction
- sequence of other operations.
-
- The match component is a mask saying which bits must match a
- particular opcode in order for an instruction to be an instance
- of that opcode.
-
- The args component is a string containing one character
- for each operand of the instruction.
-
-Kinds of operands:
- # Number used by optimizer. It is ignored.
- 1 src1 integer register.
- 2 src2 integer register.
- d dest register.
- c ctrlreg control register.
- i 16 bit immediate.
- I 16 bit immediate, aligned 2^0. (ld.b)
- J 16 bit immediate, aligned 2^1. (ld.s)
- K 16 bit immediate, aligned 2^2. (ld.l, {p}fld.l, fst.l)
- L 16 bit immediate, aligned 2^3. ({p}fld.d, fst.d)
- M 16 bit immediate, aligned 2^4. ({p}fld.q, fst.q)
- 5 5 bit immediate.
- l lbroff 26 bit PC relative immediate.
- r sbroff 16 bit PC relative immediate.
- s split 16 bit immediate.
- S split 16 bit immediate, aligned 2^0. (st.b)
- T split 16 bit immediate, aligned 2^1. (st.s)
- U split 16 bit immediate, aligned 2^2. (st.l)
- e src1 floating point register.
- f src2 floating point register.
- g dest floating point register. */
-
-
-/* The order of the opcodes in this table is significant. The assembler
- requires that all instances of the same mnemonic must be consecutive.
- If they aren't, the assembler will not function properly.
-
- The order of opcodes does not affect the disassembler. */
-
-static const struct i860_opcode i860_opcodes[] =
-{
-/* REG-Format Instructions. */
-{ "ld.c", 0x30000000, 0xcc000000, "c,d", 0 }, /* ld.c csrc2,idest */
-{ "ld.b", 0x00000000, 0xfc000000, "1(2),d", 0 }, /* ld.b isrc1(isrc2),idest */
-{ "ld.b", 0x04000000, 0xf8000000, "I(2),d", E_ADDR }, /* ld.b #const(isrc2),idest */
-{ "ld.s", 0x10000000, 0xec000001, "1(2),d", 0 }, /* ld.s isrc1(isrc2),idest */
-{ "ld.s", 0x14000000, 0xe8000001, "J(2),d", E_ADDR }, /* ld.s #const(isrc2),idest */
-{ "ld.l", 0x10000001, 0xec000000, "1(2),d", 0 }, /* ld.l isrc1(isrc2),idest */
-{ "ld.l", 0x14000001, 0xe8000000, "K(2),d", E_ADDR }, /* ld.l #const(isrc2),idest */
-
-{ "st.c", 0x38000000, 0xc4000000, "1,c", 0 }, /* st.c isrc1ni,csrc2 */
-{ "st.b", 0x0c000000, 0xf0000000, "1,S(2)", E_ADDR }, /* st.b isrc1ni,#const(isrc2) */
-{ "st.s", 0x1c000000, 0xe0000001, "1,T(2)", E_ADDR }, /* st.s isrc1ni,#const(isrc2) */
-{ "st.l", 0x1c000001, 0xe0000000, "1,U(2)", E_ADDR }, /* st.l isrc1ni,#const(isrc2) */
-
-{ "ixfr", 0x08000000, 0xf4000000, "1,g", 0 }, /* ixfr isrc1ni,fdest */
-
-{ "fld.l", 0x20000002, 0xdc000001, "1(2),g", 0 }, /* fld.l isrc1(isrc2),fdest */
-{ "fld.l", 0x24000002, 0xd8000001, "K(2),g", E_ADDR }, /* fld.l #const(isrc2),fdest */
-{ "fld.l", 0x20000003, 0xdc000000, "1(2)++,g", 0 }, /* fld.l isrc1(isrc2)++,fdest */
-{ "fld.l", 0x24000003, 0xd8000000, "K(2)++,g", E_ADDR }, /* fld.l #const(isrc2)++,fdest */
-{ "fld.d", 0x20000000, 0xdc000007, "1(2),g", 0 }, /* fld.d isrc1(isrc2),fdest */
-{ "fld.d", 0x24000000, 0xd8000007, "L(2),g", E_ADDR }, /* fld.d #const(isrc2),fdest */
-{ "fld.d", 0x20000001, 0xdc000006, "1(2)++,g", 0 }, /* fld.d isrc1(isrc2)++,fdest */
-{ "fld.d", 0x24000001, 0xd8000006, "L(2)++,g", E_ADDR }, /* fld.d #const(isrc2)++,fdest */
-{ "fld.q", 0x20000004, 0xdc000003, "1(2),g", 0 }, /* fld.q isrc1(isrc2),fdest */
-{ "fld.q", 0x24000004, 0xd8000003, "M(2),g", E_ADDR }, /* fld.q #const(isrc2),fdest */
-{ "fld.q", 0x20000005, 0xdc000002, "1(2)++,g", 0 }, /* fld.q isrc1(isrc2)++,fdest */
-{ "fld.q", 0x24000005, 0xd8000002, "M(2)++,g", E_ADDR }, /* fld.q #const(isrc2)++,fdest */
-
-{ "pfld.l", 0x60000002, 0x9c000001, "1(2),g", 0 }, /* pfld.l isrc1(isrc2),fdest */
-{ "pfld.l", 0x64000002, 0x98000001, "K(2),g", E_ADDR }, /* pfld.l #const(isrc2),fdest */
-{ "pfld.l", 0x60000003, 0x9c000000, "1(2)++,g", 0 }, /* pfld.l isrc1(isrc2)++,fdest */
-{ "pfld.l", 0x64000003, 0x98000000, "K(2)++,g", E_ADDR }, /* pfld.l #const(isrc2)++,fdest */
-{ "pfld.d", 0x60000000, 0x9c000007, "1(2),g", 0 }, /* pfld.d isrc1(isrc2),fdest */
-{ "pfld.d", 0x64000000, 0x98000007, "L(2),g", E_ADDR }, /* pfld.d #const(isrc2),fdest */
-{ "pfld.d", 0x60000001, 0x9c000006, "1(2)++,g", 0 }, /* pfld.d isrc1(isrc2)++,fdest */
-{ "pfld.d", 0x64000001, 0x98000006, "L(2)++,g", E_ADDR }, /* pfld.d #const(isrc2)++,fdest */
-{ "pfld.q", 0x60000004, 0x9c000003, "1(2),g", XP_ONLY }, /* pfld.q isrc1(isrc2),fdest */
-{ "pfld.q", 0x64000004, 0x98000003, "L(2),g", XP_ONLY }, /* pfld.q #const(isrc2),fdest */
-{ "pfld.q", 0x60000005, 0x9c000002, "1(2)++,g", XP_ONLY }, /* pfld.q isrc1(isrc2)++,fdest */
-{ "pfld.q", 0x64000005, 0x98000002, "L(2)++,g", XP_ONLY }, /* pfld.q #const(isrc2)++,fdest */
-
-{ "fst.l", 0x28000002, 0xd4000001, "g,1(2)", 0 }, /* fst.l fdest,isrc1(isrc2) */
-{ "fst.l", 0x2c000002, 0xd0000001, "g,K(2)", E_ADDR }, /* fst.l fdest,#const(isrc2) */
-{ "fst.l", 0x28000003, 0xd4000000, "g,1(2)++", 0 }, /* fst.l fdest,isrc1(isrc2)++ */
-{ "fst.l", 0x2c000003, 0xd0000000, "g,K(2)++", E_ADDR }, /* fst.l fdest,#const(isrc2)++ */
-{ "fst.d", 0x28000000, 0xd4000007, "g,1(2)", 0 }, /* fst.d fdest,isrc1(isrc2) */
-{ "fst.d", 0x2c000000, 0xd0000007, "g,L(2)", E_ADDR }, /* fst.d fdest,#const(isrc2) */
-{ "fst.d", 0x28000001, 0xd4000006, "g,1(2)++", 0 }, /* fst.d fdest,isrc1(isrc2)++ */
-{ "fst.d", 0x2c000001, 0xd0000006, "g,L(2)++", E_ADDR }, /* fst.d fdest,#const(isrc2)++ */
-{ "fst.q", 0x28000004, 0xd4000003, "g,1(2)", 0 }, /* fst.d fdest,isrc1(isrc2) */
-{ "fst.q", 0x2c000004, 0xd0000003, "g,M(2)", E_ADDR }, /* fst.d fdest,#const(isrc2) */
-{ "fst.q", 0x28000005, 0xd4000002, "g,1(2)++", 0 }, /* fst.d fdest,isrc1(isrc2)++ */
-{ "fst.q", 0x2c000005, 0xd0000002, "g,M(2)++", E_ADDR }, /* fst.d fdest,#const(isrc2)++ */
-
-{ "pst.d", 0x3c000000, 0xc0000007, "g,L(2)", E_ADDR }, /* pst.d fdest,#const(isrc2) */
-{ "pst.d", 0x3c000001, 0xc0000006, "g,L(2)++", E_ADDR }, /* pst.d fdest,#const(isrc2)++ */
-
-{ "addu", 0x80000000, 0x7c000000, "1,2,d", 0 }, /* addu isrc1,isrc2,idest */
-{ "addu", 0x84000000, 0x78000000, "i,2,d", E_S32 }, /* addu #const,isrc2,idest */
-{ "adds", 0x90000000, 0x6c000000, "1,2,d", 0 }, /* adds isrc1,isrc2,idest */
-{ "adds", 0x94000000, 0x68000000, "i,2,d", E_S32 }, /* adds #const,isrc2,idest */
-{ "subu", 0x88000000, 0x74000000, "1,2,d", 0 }, /* subu isrc1,isrc2,idest */
-{ "subu", 0x8c000000, 0x70000000, "i,2,d", E_S32 }, /* subu #const,isrc2,idest */
-{ "subs", 0x98000000, 0x64000000, "1,2,d", 0 }, /* subs isrc1,isrc2,idest */
-{ "subs", 0x9c000000, 0x60000000, "i,2,d", E_S32 }, /* subs #const,isrc2,idest */
-
-{ "shl", 0xa0000000, 0x5c000000, "1,2,d", 0 }, /* shl isrc1,isrc2,idest */
-{ "shl", 0xa4000000, 0x58000000, "i,2,d", 0 }, /* shl #const,isrc2,idest */
-{ "shr", 0xa8000000, 0x54000000, "1,2,d", 0 }, /* shr isrc1,isrc2,idest */
-{ "shr", 0xac000000, 0x50000000, "i,2,d", 0 }, /* shr #const,isrc2,idest */
-{ "shrd", 0xb0000000, 0x4c000000, "1,2,d", 0 }, /* shrd isrc1,isrc2,idest */
-{ "shra", 0xb8000000, 0x44000000, "1,2,d", 0 }, /* shra isrc1,isrc2,idest */
-{ "shra", 0xbc000000, 0x40000000, "i,2,d", 0 }, /* shra #const,isrc2,idest */
-
-{ "mov", 0xa0000000, 0x5c00f800, "2,d", 0 }, /* shl r0,isrc2,idest */
-{ "mov", 0x94000000, 0x69e00000, "i,d", E_MOV }, /* adds #const,r0,idest */
-{ "nop", 0xa0000000, 0x5ffff800, "", 0 }, /* shl r0,r0,r0 */
-{ "fnop", 0xb0000000, 0x4ffff800, "", 0 }, /* shrd r0,r0,r0 */
-
-{ "trap", 0x44000000, 0xb8000000, "1,2,d", 0 }, /* trap isrc1ni,isrc2,idest */
-
-{ "flush", 0x34000004, 0xc81f0003, "L(2)", E_ADDR }, /* flush #const(isrc2) */
-{ "flush", 0x34000005, 0xc81f0002, "L(2)++", E_ADDR }, /* flush #const(isrc2)++ */
-
-{ "and", 0xc0000000, 0x3c000000, "1,2,d", 0 }, /* and isrc1,isrc2,idest */
-{ "and", 0xc4000000, 0x38000000, "i,2,d", E_AND }, /* and #const,isrc2,idest */
-{ "andh", 0xcc000000, 0x30000000, "i,2,d", 0 }, /* andh #const,isrc2,idest */
-{ "andnot", 0xd0000000, 0x2c000000, "1,2,d", 0 }, /* andnot isrc1,isrc2,idest */
-{ "andnot", 0xd4000000, 0x28000000, "i,2,d", E_U32 }, /* andnot #const,isrc2,idest */
-{ "andnoth", 0xdc000000, 0x20000000, "i,2,d", 0 }, /* andnoth #const,isrc2,idest */
-{ "or", 0xe0000000, 0x1c000000, "1,2,d", 0 }, /* or isrc1,isrc2,idest */
-{ "or", 0xe4000000, 0x18000000, "i,2,d", E_U32 }, /* or #const,isrc2,idest */
-{ "orh", 0xec000000, 0x10000000, "i,2,d", 0 }, /* orh #const,isrc2,idest */
-{ "xor", 0xf0000000, 0x0c000000, "1,2,d", 0 }, /* xor isrc1,isrc2,idest */
-{ "xor", 0xf4000000, 0x08000000, "i,2,d", E_U32 }, /* xor #const,isrc2,idest */
-{ "xorh", 0xfc000000, 0x00000000, "i,2,d", 0 }, /* xorh #const,isrc2,idest */
-
-{ "bte", 0x58000000, 0xa4000000, "1,2,r", 0 }, /* bte isrc1s,isrc2,sbroff */
-{ "bte", 0x5c000000, 0xa0000000, "5,2,r", 0 }, /* bte #const5,isrc2,sbroff */
-{ "btne", 0x50000000, 0xac000000, "1,2,r", 0 }, /* btne isrc1s,isrc2,sbroff */
-{ "btne", 0x54000000, 0xa8000000, "5,2,r", 0 }, /* btne #const5,isrc2,sbroff */
-{ "bla", 0xb4000000, 0x48000000, "1,2,r", E_DELAY }, /* bla isrc1s,isrc2,sbroff */
-{ "bri", 0x40000000, 0xbc000000, "1", E_DELAY }, /* bri isrc1ni */
-
-/* Core Escape Instruction Format */
-{ "lock", 0x4c000001, 0xb000001e, "", 0 }, /* lock set BL in dirbase */
-{ "calli", 0x4c000002, 0xb000001d, "1", E_DELAY }, /* calli isrc1ni */
-{ "intovr", 0x4c000004, 0xb000001b, "", 0 }, /* intovr trap on integer overflow */
-{ "unlock", 0x4c000007, 0xb0000018, "", 0 }, /* unlock clear BL in dirbase */
-{ "ldio.l", 0x4c000408, 0xb00003f7, "2,d", XP_ONLY }, /* ldio.l isrc2,idest */
-{ "ldio.s", 0x4c000208, 0xb00005f7, "2,d", XP_ONLY }, /* ldio.s isrc2,idest */
-{ "ldio.b", 0x4c000008, 0xb00007f7, "2,d", XP_ONLY }, /* ldio.b isrc2,idest */
-{ "stio.l", 0x4c000409, 0xb00003f6, "1,2", XP_ONLY }, /* stio.l isrc1ni,isrc2 */
-{ "stio.s", 0x4c000209, 0xb00005f6, "1,2", XP_ONLY }, /* stio.s isrc1ni,isrc2 */
-{ "stio.b", 0x4c000009, 0xb00007f6, "1,2", XP_ONLY }, /* stio.b isrc1ni,isrc2 */
-{ "ldint.l", 0x4c00040a, 0xb00003f5, "2,d", XP_ONLY }, /* ldint.l isrc2,idest */
-{ "ldint.s", 0x4c00020a, 0xb00005f5, "2,d", XP_ONLY }, /* ldint.s isrc2,idest */
-{ "ldint.b", 0x4c00000a, 0xb00007f5, "2,d", XP_ONLY }, /* ldint.b isrc2,idest */
-{ "scyc.b", 0x4c00000b, 0xb00007f4, "2", XP_ONLY }, /* scyc.b isrc2 */
-
-/* CTRL-Format Instructions */
-{ "br", 0x68000000, 0x94000000, "l", E_DELAY }, /* br lbroff */
-{ "call", 0x6c000000, 0x90000000, "l", E_DELAY }, /* call lbroff */
-{ "bc", 0x70000000, 0x8c000000, "l", 0 }, /* bc lbroff */
-{ "bc.t", 0x74000000, 0x88000000, "l", E_DELAY }, /* bc.t lbroff */
-{ "bnc", 0x78000000, 0x84000000, "l", 0 }, /* bnc lbroff */
-{ "bnc.t", 0x7c000000, 0x80000000, "l", E_DELAY }, /* bnc.t lbroff */
-
-/* Floating Point Escape Instruction Format - pfam.p fsrc1,fsrc2,fdest. */
-{ "r2p1.ss", 0x48000400, 0xb40001ff, "e,f,g", 0 },
-{ "r2p1.sd", 0x48000480, 0xb400017f, "e,f,g", 0 },
-{ "r2p1.dd", 0x48000580, 0xb400007f, "e,f,g", 0 },
-{ "r2pt.ss", 0x48000401, 0xb40001fe, "e,f,g", 0 },
-{ "r2pt.sd", 0x48000481, 0xb400017e, "e,f,g", 0 },
-{ "r2pt.dd", 0x48000581, 0xb400007e, "e,f,g", 0 },
-{ "r2ap1.ss", 0x48000402, 0xb40001fd, "e,f,g", 0 },
-{ "r2ap1.sd", 0x48000482, 0xb400017d, "e,f,g", 0 },
-{ "r2ap1.dd", 0x48000582, 0xb400007d, "e,f,g", 0 },
-{ "r2apt.ss", 0x48000403, 0xb40001fc, "e,f,g", 0 },
-{ "r2apt.sd", 0x48000483, 0xb400017c, "e,f,g", 0 },
-{ "r2apt.dd", 0x48000583, 0xb400007c, "e,f,g", 0 },
-{ "i2p1.ss", 0x48000404, 0xb40001fb, "e,f,g", 0 },
-{ "i2p1.sd", 0x48000484, 0xb400017b, "e,f,g", 0 },
-{ "i2p1.dd", 0x48000584, 0xb400007b, "e,f,g", 0 },
-{ "i2pt.ss", 0x48000405, 0xb40001fa, "e,f,g", 0 },
-{ "i2pt.sd", 0x48000485, 0xb400017a, "e,f,g", 0 },
-{ "i2pt.dd", 0x48000585, 0xb400007a, "e,f,g", 0 },
-{ "i2ap1.ss", 0x48000406, 0xb40001f9, "e,f,g", 0 },
-{ "i2ap1.sd", 0x48000486, 0xb4000179, "e,f,g", 0 },
-{ "i2ap1.dd", 0x48000586, 0xb4000079, "e,f,g", 0 },
-{ "i2apt.ss", 0x48000407, 0xb40001f8, "e,f,g", 0 },
-{ "i2apt.sd", 0x48000487, 0xb4000178, "e,f,g", 0 },
-{ "i2apt.dd", 0x48000587, 0xb4000078, "e,f,g", 0 },
-{ "rat1p2.ss", 0x48000408, 0xb40001f7, "e,f,g", 0 },
-{ "rat1p2.sd", 0x48000488, 0xb4000177, "e,f,g", 0 },
-{ "rat1p2.dd", 0x48000588, 0xb4000077, "e,f,g", 0 },
-{ "m12apm.ss", 0x48000409, 0xb40001f6, "e,f,g", 0 },
-{ "m12apm.sd", 0x48000489, 0xb4000176, "e,f,g", 0 },
-{ "m12apm.dd", 0x48000589, 0xb4000076, "e,f,g", 0 },
-{ "ra1p2.ss", 0x4800040a, 0xb40001f5, "e,f,g", 0 },
-{ "ra1p2.sd", 0x4800048a, 0xb4000175, "e,f,g", 0 },
-{ "ra1p2.dd", 0x4800058a, 0xb4000075, "e,f,g", 0 },
-{ "m12ttpa.ss", 0x4800040b, 0xb40001f4, "e,f,g", 0 },
-{ "m12ttpa.sd", 0x4800048b, 0xb4000174, "e,f,g", 0 },
-{ "m12ttpa.dd", 0x4800058b, 0xb4000074, "e,f,g", 0 },
-{ "iat1p2.ss", 0x4800040c, 0xb40001f3, "e,f,g", 0 },
-{ "iat1p2.sd", 0x4800048c, 0xb4000173, "e,f,g", 0 },
-{ "iat1p2.dd", 0x4800058c, 0xb4000073, "e,f,g", 0 },
-{ "m12tpm.ss", 0x4800040d, 0xb40001f2, "e,f,g", 0 },
-{ "m12tpm.sd", 0x4800048d, 0xb4000172, "e,f,g", 0 },
-{ "m12tpm.dd", 0x4800058d, 0xb4000072, "e,f,g", 0 },
-{ "ia1p2.ss", 0x4800040e, 0xb40001f1, "e,f,g", 0 },
-{ "ia1p2.sd", 0x4800048e, 0xb4000171, "e,f,g", 0 },
-{ "ia1p2.dd", 0x4800058e, 0xb4000071, "e,f,g", 0 },
-{ "m12tpa.ss", 0x4800040f, 0xb40001f0, "e,f,g", 0 },
-{ "m12tpa.sd", 0x4800048f, 0xb4000170, "e,f,g", 0 },
-{ "m12tpa.dd", 0x4800058f, 0xb4000070, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfsm.p fsrc1,fsrc2,fdest. */
-{ "r2s1.ss", 0x48000410, 0xb40001ef, "e,f,g", 0 },
-{ "r2s1.sd", 0x48000490, 0xb400016f, "e,f,g", 0 },
-{ "r2s1.dd", 0x48000590, 0xb400006f, "e,f,g", 0 },
-{ "r2st.ss", 0x48000411, 0xb40001ee, "e,f,g", 0 },
-{ "r2st.sd", 0x48000491, 0xb400016e, "e,f,g", 0 },
-{ "r2st.dd", 0x48000591, 0xb400006e, "e,f,g", 0 },
-{ "r2as1.ss", 0x48000412, 0xb40001ed, "e,f,g", 0 },
-{ "r2as1.sd", 0x48000492, 0xb400016d, "e,f,g", 0 },
-{ "r2as1.dd", 0x48000592, 0xb400006d, "e,f,g", 0 },
-{ "r2ast.ss", 0x48000413, 0xb40001ec, "e,f,g", 0 },
-{ "r2ast.sd", 0x48000493, 0xb400016c, "e,f,g", 0 },
-{ "r2ast.dd", 0x48000593, 0xb400006c, "e,f,g", 0 },
-{ "i2s1.ss", 0x48000414, 0xb40001eb, "e,f,g", 0 },
-{ "i2s1.sd", 0x48000494, 0xb400016b, "e,f,g", 0 },
-{ "i2s1.dd", 0x48000594, 0xb400006b, "e,f,g", 0 },
-{ "i2st.ss", 0x48000415, 0xb40001ea, "e,f,g", 0 },
-{ "i2st.sd", 0x48000495, 0xb400016a, "e,f,g", 0 },
-{ "i2st.dd", 0x48000595, 0xb400006a, "e,f,g", 0 },
-{ "i2as1.ss", 0x48000416, 0xb40001e9, "e,f,g", 0 },
-{ "i2as1.sd", 0x48000496, 0xb4000169, "e,f,g", 0 },
-{ "i2as1.dd", 0x48000596, 0xb4000069, "e,f,g", 0 },
-{ "i2ast.ss", 0x48000417, 0xb40001e8, "e,f,g", 0 },
-{ "i2ast.sd", 0x48000497, 0xb4000168, "e,f,g", 0 },
-{ "i2ast.dd", 0x48000597, 0xb4000068, "e,f,g", 0 },
-{ "rat1s2.ss", 0x48000418, 0xb40001e7, "e,f,g", 0 },
-{ "rat1s2.sd", 0x48000498, 0xb4000167, "e,f,g", 0 },
-{ "rat1s2.dd", 0x48000598, 0xb4000067, "e,f,g", 0 },
-{ "m12asm.ss", 0x48000419, 0xb40001e6, "e,f,g", 0 },
-{ "m12asm.sd", 0x48000499, 0xb4000166, "e,f,g", 0 },
-{ "m12asm.dd", 0x48000599, 0xb4000066, "e,f,g", 0 },
-{ "ra1s2.ss", 0x4800041a, 0xb40001e5, "e,f,g", 0 },
-{ "ra1s2.sd", 0x4800049a, 0xb4000165, "e,f,g", 0 },
-{ "ra1s2.dd", 0x4800059a, 0xb4000065, "e,f,g", 0 },
-{ "m12ttsa.ss", 0x4800041b, 0xb40001e4, "e,f,g", 0 },
-{ "m12ttsa.sd", 0x4800049b, 0xb4000164, "e,f,g", 0 },
-{ "m12ttsa.dd", 0x4800059b, 0xb4000064, "e,f,g", 0 },
-{ "iat1s2.ss", 0x4800041c, 0xb40001e3, "e,f,g", 0 },
-{ "iat1s2.sd", 0x4800049c, 0xb4000163, "e,f,g", 0 },
-{ "iat1s2.dd", 0x4800059c, 0xb4000063, "e,f,g", 0 },
-{ "m12tsm.ss", 0x4800041d, 0xb40001e2, "e,f,g", 0 },
-{ "m12tsm.sd", 0x4800049d, 0xb4000162, "e,f,g", 0 },
-{ "m12tsm.dd", 0x4800059d, 0xb4000062, "e,f,g", 0 },
-{ "ia1s2.ss", 0x4800041e, 0xb40001e1, "e,f,g", 0 },
-{ "ia1s2.sd", 0x4800049e, 0xb4000161, "e,f,g", 0 },
-{ "ia1s2.dd", 0x4800059e, 0xb4000061, "e,f,g", 0 },
-{ "m12tsa.ss", 0x4800041f, 0xb40001e0, "e,f,g", 0 },
-{ "m12tsa.sd", 0x4800049f, 0xb4000160, "e,f,g", 0 },
-{ "m12tsa.dd", 0x4800059f, 0xb4000060, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfmam.p fsrc1,fsrc2,fdest. */
-{ "mr2p1.ss", 0x48000000, 0xb40005ff, "e,f,g", 0 },
-{ "mr2p1.sd", 0x48000080, 0xb400057f, "e,f,g", 0 },
-{ "mr2p1.dd", 0x48000180, 0xb400047f, "e,f,g", 0 },
-{ "mr2pt.ss", 0x48000001, 0xb40005fe, "e,f,g", 0 },
-{ "mr2pt.sd", 0x48000081, 0xb400057e, "e,f,g", 0 },
-{ "mr2pt.dd", 0x48000181, 0xb400047e, "e,f,g", 0 },
-{ "mr2mp1.ss", 0x48000002, 0xb40005fd, "e,f,g", 0 },
-{ "mr2mp1.sd", 0x48000082, 0xb400057d, "e,f,g", 0 },
-{ "mr2mp1.dd", 0x48000182, 0xb400047d, "e,f,g", 0 },
-{ "mr2mpt.ss", 0x48000003, 0xb40005fc, "e,f,g", 0 },
-{ "mr2mpt.sd", 0x48000083, 0xb400057c, "e,f,g", 0 },
-{ "mr2mpt.dd", 0x48000183, 0xb400047c, "e,f,g", 0 },
-{ "mi2p1.ss", 0x48000004, 0xb40005fb, "e,f,g", 0 },
-{ "mi2p1.sd", 0x48000084, 0xb400057b, "e,f,g", 0 },
-{ "mi2p1.dd", 0x48000184, 0xb400047b, "e,f,g", 0 },
-{ "mi2pt.ss", 0x48000005, 0xb40005fa, "e,f,g", 0 },
-{ "mi2pt.sd", 0x48000085, 0xb400057a, "e,f,g", 0 },
-{ "mi2pt.dd", 0x48000185, 0xb400047a, "e,f,g", 0 },
-{ "mi2mp1.ss", 0x48000006, 0xb40005f9, "e,f,g", 0 },
-{ "mi2mp1.sd", 0x48000086, 0xb4000579, "e,f,g", 0 },
-{ "mi2mp1.dd", 0x48000186, 0xb4000479, "e,f,g", 0 },
-{ "mi2mpt.ss", 0x48000007, 0xb40005f8, "e,f,g", 0 },
-{ "mi2mpt.sd", 0x48000087, 0xb4000578, "e,f,g", 0 },
-{ "mi2mpt.dd", 0x48000187, 0xb4000478, "e,f,g", 0 },
-{ "mrmt1p2.ss", 0x48000008, 0xb40005f7, "e,f,g", 0 },
-{ "mrmt1p2.sd", 0x48000088, 0xb4000577, "e,f,g", 0 },
-{ "mrmt1p2.dd", 0x48000188, 0xb4000477, "e,f,g", 0 },
-{ "mm12mpm.ss", 0x48000009, 0xb40005f6, "e,f,g", 0 },
-{ "mm12mpm.sd", 0x48000089, 0xb4000576, "e,f,g", 0 },
-{ "mm12mpm.dd", 0x48000189, 0xb4000476, "e,f,g", 0 },
-{ "mrm1p2.ss", 0x4800000a, 0xb40005f5, "e,f,g", 0 },
-{ "mrm1p2.sd", 0x4800008a, 0xb4000575, "e,f,g", 0 },
-{ "mrm1p2.dd", 0x4800018a, 0xb4000475, "e,f,g", 0 },
-{ "mm12ttpm.ss",0x4800000b, 0xb40005f4, "e,f,g", 0 },
-{ "mm12ttpm.sd",0x4800008b, 0xb4000574, "e,f,g", 0 },
-{ "mm12ttpm.dd",0x4800018b, 0xb4000474, "e,f,g", 0 },
-{ "mimt1p2.ss", 0x4800000c, 0xb40005f3, "e,f,g", 0 },
-{ "mimt1p2.sd", 0x4800008c, 0xb4000573, "e,f,g", 0 },
-{ "mimt1p2.dd", 0x4800018c, 0xb4000473, "e,f,g", 0 },
-{ "mm12tpm.ss", 0x4800000d, 0xb40005f2, "e,f,g", 0 },
-{ "mm12tpm.sd", 0x4800008d, 0xb4000572, "e,f,g", 0 },
-{ "mm12tpm.dd", 0x4800018d, 0xb4000472, "e,f,g", 0 },
-{ "mim1p2.ss", 0x4800000e, 0xb40005f1, "e,f,g", 0 },
-{ "mim1p2.sd", 0x4800008e, 0xb4000571, "e,f,g", 0 },
-{ "mim1p2.dd", 0x4800018e, 0xb4000471, "e,f,g", 0 },
-
-/* Floating Point Escape Instruction Format - pfmsm.p fsrc1,fsrc2,fdest. */
-{ "mr2s1.ss", 0x48000010, 0xb40005ef, "e,f,g", 0 },
-{ "mr2s1.sd", 0x48000090, 0xb400056f, "e,f,g", 0 },
-{ "mr2s1.dd", 0x48000190, 0xb400046f, "e,f,g", 0 },
-{ "mr2st.ss", 0x48000011, 0xb40005ee, "e,f,g", 0 },
-{ "mr2st.sd", 0x48000091, 0xb400056e, "e,f,g", 0 },
-{ "mr2st.dd", 0x48000191, 0xb400046e, "e,f,g", 0 },
-{ "mr2ms1.ss", 0x48000012, 0xb40005ed, "e,f,g", 0 },
-{ "mr2ms1.sd", 0x48000092, 0xb400056d, "e,f,g", 0 },
-{ "mr2ms1.dd", 0x48000192, 0xb400046d, "e,f,g", 0 },
-{ "mr2mst.ss", 0x48000013, 0xb40005ec, "e,f,g", 0 },
-{ "mr2mst.sd", 0x48000093, 0xb400056c, "e,f,g", 0 },
-{ "mr2mst.dd", 0x48000193, 0xb400046c, "e,f,g", 0 },
-{ "mi2s1.ss", 0x48000014, 0xb40005eb, "e,f,g", 0 },
-{ "mi2s1.sd", 0x48000094, 0xb400056b, "e,f,g", 0 },
-{ "mi2s1.dd", 0x48000194, 0xb400046b, "e,f,g", 0 },
-{ "mi2st.ss", 0x48000015, 0xb40005ea, "e,f,g", 0 },
-{ "mi2st.sd", 0x48000095, 0xb400056a, "e,f,g", 0 },
-{ "mi2st.dd", 0x48000195, 0xb400046a, "e,f,g", 0 },
-{ "mi2ms1.ss", 0x48000016, 0xb40005e9, "e,f,g", 0 },
-{ "mi2ms1.sd", 0x48000096, 0xb4000569, "e,f,g", 0 },
-{ "mi2ms1.dd", 0x48000196, 0xb4000469, "e,f,g", 0 },
-{ "mi2mst.ss", 0x48000017, 0xb40005e8, "e,f,g", 0 },
-{ "mi2mst.sd", 0x48000097, 0xb4000568, "e,f,g", 0 },
-{ "mi2mst.dd", 0x48000197, 0xb4000468, "e,f,g", 0 },
-{ "mrmt1s2.ss", 0x48000018, 0xb40005e7, "e,f,g", 0 },
-{ "mrmt1s2.sd", 0x48000098, 0xb4000567, "e,f,g", 0 },
-{ "mrmt1s2.dd", 0x48000198, 0xb4000467, "e,f,g", 0 },
-{ "mm12msm.ss", 0x48000019, 0xb40005e6, "e,f,g", 0 },
-{ "mm12msm.sd", 0x48000099, 0xb4000566, "e,f,g", 0 },
-{ "mm12msm.dd", 0x48000199, 0xb4000466, "e,f,g", 0 },
-{ "mrm1s2.ss", 0x4800001a, 0xb40005e5, "e,f,g", 0 },
-{ "mrm1s2.sd", 0x4800009a, 0xb4000565, "e,f,g", 0 },
-{ "mrm1s2.dd", 0x4800019a, 0xb4000465, "e,f,g", 0 },
-{ "mm12ttsm.ss",0x4800001b, 0xb40005e4, "e,f,g", 0 },
-{ "mm12ttsm.sd",0x4800009b, 0xb4000564, "e,f,g", 0 },
-{ "mm12ttsm.dd",0x4800019b, 0xb4000464, "e,f,g", 0 },
-{ "mimt1s2.ss", 0x4800001c, 0xb40005e3, "e,f,g", 0 },
-{ "mimt1s2.sd", 0x4800009c, 0xb4000563, "e,f,g", 0 },
-{ "mimt1s2.dd", 0x4800019c, 0xb4000463, "e,f,g", 0 },
-{ "mm12tsm.ss", 0x4800001d, 0xb40005e2, "e,f,g", 0 },
-{ "mm12tsm.sd", 0x4800009d, 0xb4000562, "e,f,g", 0 },
-{ "mm12tsm.dd", 0x4800019d, 0xb4000462, "e,f,g", 0 },
-{ "mim1s2.ss", 0x4800001e, 0xb40005e1, "e,f,g", 0 },
-{ "mim1s2.sd", 0x4800009e, 0xb4000561, "e,f,g", 0 },
-{ "mim1s2.dd", 0x4800019e, 0xb4000461, "e,f,g", 0 },
-
-{ "fmul.ss", 0x48000020, 0xb40005df, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */
-{ "fmul.sd", 0x480000a0, 0xb400055f, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */
-{ "fmul.dd", 0x480001a0, 0xb400045f, "e,f,g", 0 }, /* fmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.ss", 0x48000420, 0xb40001df, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.sd", 0x480004a0, 0xb400015f, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul.dd", 0x480005a0, 0xb400005f, "e,f,g", 0 }, /* pfmul.p fsrc1,fsrc2,fdest */
-{ "pfmul3.dd", 0x480005a4, 0xb400005b, "e,f,g", 0 }, /* pfmul3.p fsrc1,fsrc2,fdest */
-{ "fmlow.dd", 0x480001a1, 0xb400045e, "e,f,g", 0 }, /* fmlow.dd fsrc1,fsrc2,fdest */
-{ "frcp.ss", 0x48000022, 0xb40005dd, "f,g", 0 }, /* frcp.p fsrc2,fdest */
-{ "frcp.sd", 0x480000a2, 0xb400055d, "f,g", 0 }, /* frcp.p fsrc2,fdest */
-{ "frcp.dd", 0x480001a2, 0xb400045d, "f,g", 0 }, /* frcp.p fsrc2,fdest */
-{ "frsqr.ss", 0x48000023, 0xb40005dc, "f,g", 0 }, /* frsqr.p fsrc2,fdest */
-{ "frsqr.sd", 0x480000a3, 0xb400055c, "f,g", 0 }, /* frsqr.p fsrc2,fdest */
-{ "frsqr.dd", 0x480001a3, 0xb400045c, "f,g", 0 }, /* frsqr.p fsrc2,fdest */
-{ "fadd.ss", 0x48000030, 0xb40005cf, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */
-{ "fadd.sd", 0x480000b0, 0xb400054f, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */
-{ "fadd.dd", 0x480001b0, 0xb400044f, "e,f,g", 0 }, /* fadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.ss", 0x48000430, 0xb40001cf, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.sd", 0x480004b0, 0xb400014f, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */
-{ "pfadd.dd", 0x480005b0, 0xb400004f, "e,f,g", 0 }, /* pfadd.p fsrc1,fsrc2,fdest */
-{ "fsub.ss", 0x48000031, 0xb40005ce, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */
-{ "fsub.sd", 0x480000b1, 0xb400054e, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */
-{ "fsub.dd", 0x480001b1, 0xb400044e, "e,f,g", 0 }, /* fsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.ss", 0x48000431, 0xb40001ce, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.sd", 0x480004b1, 0xb400014e, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */
-{ "pfsub.dd", 0x480005b1, 0xb400004e, "e,f,g", 0 }, /* pfsub.p fsrc1,fsrc2,fdest */
-{ "fix.sd", 0x480000b2, 0xb400054d, "e,g", 0 }, /* fix.p fsrc1,fdest */
-{ "fix.dd", 0x480001b2, 0xb400044d, "e,g", 0 }, /* fix.p fsrc1,fdest */
-{ "pfix.sd", 0x480004b2, 0xb400014d, "e,g", 0 }, /* pfix.p fsrc1,fdest */
-{ "pfix.dd", 0x480005b2, 0xb400004d, "e,g", 0 }, /* pfix.p fsrc1,fdest */
-{ "famov.ss", 0x48000033, 0xb40005cc, "e,g", 0 }, /* famov.p fsrc1,fdest */
-{ "famov.ds", 0x48000133, 0xb40004cc, "e,g", 0 }, /* famov.p fsrc1,fdest */
-{ "famov.sd", 0x480000b3, 0xb400054c, "e,g", 0 }, /* famov.p fsrc1,fdest */
-{ "famov.dd", 0x480001b3, 0xb400044c, "e,g", 0 }, /* famov.p fsrc1,fdest */
-{ "pfamov.ss", 0x48000433, 0xb40001cc, "e,g", 0 }, /* pfamov.p fsrc1,fdest */
-{ "pfamov.ds", 0x48000533, 0xb40000cc, "e,g", 0 }, /* pfamov.p fsrc1,fdest */
-{ "pfamov.sd", 0x480004b3, 0xb400014c, "e,g", 0 }, /* pfamov.p fsrc1,fdest */
-{ "pfamov.dd", 0x480005b3, 0xb400004c, "e,g", 0 }, /* pfamov.p fsrc1,fdest */
-/* Opcode pfgt has R bit cleared; pfle has R bit set. */
-{ "pfgt.ss", 0x48000434, 0xb40001cb, "e,f,g", 0 }, /* pfgt.p fsrc1,fsrc2,fdest */
-{ "pfgt.dd", 0x48000534, 0xb40000cb, "e,f,g", 0 }, /* pfgt.p fsrc1,fsrc2,fdest */
-/* Opcode pfgt has R bit cleared; pfle has R bit set. */
-{ "pfle.ss", 0x480004b4, 0xb400014b, "e,f,g", 0 }, /* pfle.p fsrc1,fsrc2,fdest */
-{ "pfle.dd", 0x480005b4, 0xb400004b, "e,f,g", 0 }, /* pfle.p fsrc1,fsrc2,fdest */
-{ "pfeq.ss", 0x48000435, 0xb40001ca, "e,f,g", 0 }, /* pfeq.p fsrc1,fsrc2,fdest */
-{ "pfeq.dd", 0x48000535, 0xb40000ca, "e,f,g", 0 }, /* pfeq.p fsrc1,fsrc2,fdest */
-{ "ftrunc.sd", 0x480000ba, 0xb4000545, "e,g", 0 }, /* ftrunc.p fsrc1,fdest */
-{ "ftrunc.dd", 0x480001ba, 0xb4000445, "e,g", 0 }, /* ftrunc.p fsrc1,fdest */
-{ "pftrunc.sd", 0x480004ba, 0xb4000145, "e,g", 0 }, /* pftrunc.p fsrc1,fdest */
-{ "pftrunc.dd", 0x480005ba, 0xb4000045, "e,g", 0 }, /* pftrunc.p fsrc1,fdest */
-{ "fxfr", 0x48000040, 0xb40005bf, "e,d", 0 }, /* fxfr fsrc1,idest */
-{ "fiadd.ss", 0x48000049, 0xb40005b6, "e,f,g", 0 }, /* fiadd.w fsrc1,fsrc2,fdest */
-{ "fiadd.dd", 0x480001c9, 0xb4000436, "e,f,g", 0 }, /* fiadd.w fsrc1,fsrc2,fdest */
-{ "pfiadd.ss", 0x48000449, 0xb40001b6, "e,f,g", 0 }, /* pfiadd.w fsrc1,fsrc2,fdest */
-{ "pfiadd.dd", 0x480005c9, 0xb4000036, "e,f,g", 0 }, /* pfiadd.w fsrc1,fsrc2,fdest */
-{ "fisub.ss", 0x4800004d, 0xb40005b2, "e,f,g", 0 }, /* fisub.w fsrc1,fsrc2,fdest */
-{ "fisub.dd", 0x480001cd, 0xb4000432, "e,f,g", 0 }, /* fisub.w fsrc1,fsrc2,fdest */
-{ "pfisub.ss", 0x4800044d, 0xb40001b2, "e,f,g", 0 }, /* pfisub.w fsrc1,fsrc2,fdest */
-{ "pfisub.dd", 0x480005cd, 0xb4000032, "e,f,g", 0 }, /* pfisub.w fsrc1,fsrc2,fdest */
-{ "fzchkl", 0x480001d7, 0xb4000428, "e,f,g", 0 }, /* fzchkl fsrc1,fsrc2,fdest */
-{ "pfzchkl", 0x480005d7, 0xb4000028, "e,f,g", 0 }, /* pfzchkl fsrc1,fsrc2,fdest */
-{ "fzchks", 0x480001df, 0xb4000420, "e,f,g", 0 }, /* fzchks fsrc1,fsrc2,fdest */
-{ "pfzchks", 0x480005df, 0xb4000020, "e,f,g", 0 }, /* pfzchks fsrc1,fsrc2,fdest */
-{ "faddp", 0x480001d0, 0xb400042f, "e,f,g", 0 }, /* faddp fsrc1,fsrc2,fdest */
-{ "pfaddp", 0x480005d0, 0xb400002f, "e,f,g", 0 }, /* pfaddp fsrc1,fsrc2,fdest */
-{ "faddz", 0x480001d1, 0xb400042e, "e,f,g", 0 }, /* faddz fsrc1,fsrc2,fdest */
-{ "pfaddz", 0x480005d1, 0xb400002e, "e,f,g", 0 }, /* pfaddz fsrc1,fsrc2,fdest */
-{ "form", 0x480001da, 0xb4000425, "e,g", 0 }, /* form fsrc1,fdest */
-{ "pform", 0x480005da, 0xb4000025, "e,g", 0 }, /* pform fsrc1,fdest */
-
-/* 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", 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 },
-
-};
-
-#define NUMOPCODES ((sizeof i860_opcodes)/(sizeof i860_opcodes[0]))
-
-
diff --git a/include/opcode/i960.h b/include/opcode/i960.h
deleted file mode 100644
index dc0e78f88..000000000
--- a/include/opcode/i960.h
+++ /dev/null
@@ -1,525 +0,0 @@
-/* Basic 80960 instruction formats.
-
- Copyright 2001, 2010 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 3, 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., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* The 'COJ' instructions are actually COBR instructions with the 'b' in
- the mnemonic replaced by a 'j'; they are ALWAYS "de-optimized" if
- necessary: if the displacement will not fit in 13 bits, the assembler will
- replace them with the corresponding compare and branch instructions.
-
- All of the 'MEMn' instructions are the same format; the 'n' in the name
- indicates the default index scale factor (the size of the datum operated on).
-
- The FBRA formats are not actually an instruction format. They are the
- "convenience directives" for branching on floating-point comparisons,
- each of which generates 2 instructions (a 'bno' and one other branch).
-
- The CALLJ format is not actually an instruction format. It indicates that
- the instruction generated (a CTRL-format 'call') should have its relocation
- specially flagged for link-time replacement with a 'bal' or 'calls' if
- appropriate. */
-
-#define CTRL 0
-#define COBR 1
-#define COJ 2
-#define REG 3
-#define MEM1 4
-#define MEM2 5
-#define MEM4 6
-#define MEM8 7
-#define MEM12 8
-#define MEM16 9
-#define FBRA 10
-#define CALLJ 11
-
-/* Masks for the mode bits in REG format instructions */
-#define M1 0x0800
-#define M2 0x1000
-#define M3 0x2000
-
-/* Generate the 12-bit opcode for a REG format instruction by placing the
- * high 8 bits in instruction bits 24-31, the low 4 bits in instruction bits
- * 7-10.
- */
-
-#define REG_OPC(opc) ((opc & 0xff0) << 20) | ((opc & 0xf) << 7)
-
-/* Generate a template for a REG format instruction: place the opcode bits
- * in the appropriate fields and OR in mode bits for the operands that will not
- * be used. I.e.,
- * set m1=1, if src1 will not be used
- * set m2=1, if src2 will not be used
- * set m3=1, if dst will not be used
- *
- * Setting the "unused" mode bits to 1 speeds up instruction execution(!).
- * The information is also useful to us because some 1-operand REG instructions
- * use the src1 field, others the dst field; and some 2-operand REG instructions
- * use src1/src2, others src1/dst. The set mode bits enable us to distinguish.
- */
-#define R_0(opc) ( REG_OPC(opc) | M1 | M2 | M3 ) /* No operands */
-#define R_1(opc) ( REG_OPC(opc) | M2 | M3 ) /* 1 operand: src1 */
-#define R_1D(opc) ( REG_OPC(opc) | M1 | M2 ) /* 1 operand: dst */
-#define R_2(opc) ( REG_OPC(opc) | M3 ) /* 2 ops: src1/src2 */
-#define R_2D(opc) ( REG_OPC(opc) | M2 ) /* 2 ops: src1/dst */
-#define R_3(opc) ( REG_OPC(opc) ) /* 3 operands */
-
-/* DESCRIPTOR BYTES FOR REGISTER OPERANDS
- *
- * Interpret names as follows:
- * R: global or local register only
- * RS: global, local, or (if target allows) special-function register only
- * RL: global or local register, or integer literal
- * RSL: global, local, or (if target allows) special-function register;
- * or integer literal
- * F: global, local, or floating-point register
- * FL: global, local, or floating-point register; or literal (including
- * floating point)
- *
- * A number appended to a name indicates that registers must be aligned,
- * as follows:
- * 2: register number must be multiple of 2
- * 4: register number must be multiple of 4
- */
-
-#define SFR 0x10 /* Mask for the "sfr-OK" bit */
-#define LIT 0x08 /* Mask for the "literal-OK" bit */
-#define FP 0x04 /* Mask for "floating-point-OK" bit */
-
-/* This macro ors the bits together. Note that 'align' is a mask
- * for the low 0, 1, or 2 bits of the register number, as appropriate.
- */
-#define OP(align,lit,fp,sfr) ( align | lit | fp | sfr )
-
-#define R OP( 0, 0, 0, 0 )
-#define RS OP( 0, 0, 0, SFR )
-#define RL OP( 0, LIT, 0, 0 )
-#define RSL OP( 0, LIT, 0, SFR )
-#define F OP( 0, 0, FP, 0 )
-#define FL OP( 0, LIT, FP, 0 )
-#define R2 OP( 1, 0, 0, 0 )
-#define RL2 OP( 1, LIT, 0, 0 )
-#define F2 OP( 1, 0, FP, 0 )
-#define FL2 OP( 1, LIT, FP, 0 )
-#define R4 OP( 3, 0, 0, 0 )
-#define RL4 OP( 3, LIT, 0, 0 )
-#define F4 OP( 3, 0, FP, 0 )
-#define FL4 OP( 3, LIT, FP, 0 )
-
-#define M 0x7f /* Memory operand (MEMA & MEMB format instructions) */
-
-/* Macros to extract info from the register operand descriptor byte 'od'.
- */
-#define SFR_OK(od) (od & SFR) /* TRUE if sfr operand allowed */
-#define LIT_OK(od) (od & LIT) /* TRUE if literal operand allowed */
-#define FP_OK(od) (od & FP) /* TRUE if floating-point op allowed */
-#define REG_ALIGN(od,n) ((od & 0x3 & n) == 0)
- /* TRUE if reg #n is properly aligned */
-#define MEMOP(od) (od == M) /* TRUE if operand is a memory operand*/
-
-/* Description of a single i80960 instruction */
-struct i960_opcode {
- long opcode; /* 32 bits, constant fields filled in, rest zeroed */
- char *name; /* Assembler mnemonic */
- short iclass; /* Class: see #defines below */
- char format; /* REG, COBR, CTRL, MEMn, COJ, FBRA, or CALLJ */
- char num_ops; /* Number of operands */
- char operand[3];/* Operand descriptors; same order as assembler instr */
-};
-
-/* Classes of 960 intructions:
- * - each instruction falls into one class.
- * - each target architecture supports one or more classes.
- *
- * EACH CONSTANT MUST CONTAIN 1 AND ONLY 1 SET BIT!: see targ_has_iclass().
- */
-#define I_BASE 0x01 /* 80960 base instruction set */
-#define I_CX 0x02 /* 80960Cx instruction */
-#define I_DEC 0x04 /* Decimal instruction */
-#define I_FP 0x08 /* Floating point instruction */
-#define I_KX 0x10 /* 80960Kx instruction */
-#define I_MIL 0x20 /* Military instruction */
-#define I_CASIM 0x40 /* CA simulator instruction */
-#define I_CX2 0x80 /* Cx/Jx/Hx instructions */
-#define I_JX 0x100 /* Jx/Hx instruction */
-#define I_HX 0x200 /* Hx instructions */
-
-/******************************************************************************
- *
- * TABLE OF i960 INSTRUCTION DESCRIPTIONS
- *
- ******************************************************************************/
-
-const struct i960_opcode i960_opcodes[] = {
-
- /* if a CTRL instruction has an operand, it's always a displacement */
-
- /* callj default=='call' */
- { 0x09000000, "callj", I_BASE, CALLJ, 1, { 0, 0, 0 } },
- { 0x08000000, "b", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x09000000, "call", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x0a000000, "ret", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x0b000000, "bal", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x10000000, "bno", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* bf same as bno */
- { 0x10000000, "bf", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* bru same as bno */
- { 0x10000000, "bru", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x11000000, "bg", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* brg same as bg */
- { 0x11000000, "brg", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x12000000, "be", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* bre same as be */
- { 0x12000000, "bre", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x13000000, "bge", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* brge same as bge */
- { 0x13000000, "brge", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x14000000, "bl", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* brl same as bl */
- { 0x14000000, "brl", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x15000000, "bne", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* brlg same as bne */
- { 0x15000000, "brlg", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x16000000, "ble", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* brle same as ble */
- { 0x16000000, "brle", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x17000000, "bo", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* bt same as bo */
- { 0x17000000, "bt", I_BASE, CTRL, 1, { 0, 0, 0 } },
- /* bro same as bo */
- { 0x17000000, "bro", I_BASE, CTRL, 1, { 0, 0, 0 } },
- { 0x18000000, "faultno", I_BASE, CTRL, 0, { 0, 0, 0 } },
- /* faultf same as faultno */
- { 0x18000000, "faultf", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x19000000, "faultg", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1a000000, "faulte", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1b000000, "faultge", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1c000000, "faultl", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1d000000, "faultne", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1e000000, "faultle", I_BASE, CTRL, 0, { 0, 0, 0 } },
- { 0x1f000000, "faulto", I_BASE, CTRL, 0, { 0, 0, 0 } },
- /* faultt syn for faulto */
- { 0x1f000000, "faultt", I_BASE, CTRL, 0, { 0, 0, 0 } },
-
- { 0x01000000, "syscall", I_CASIM,CTRL, 0, { 0, 0, 0 } },
-
- /* If a COBR (or COJ) has 3 operands, the last one is always a
- * displacement and does not appear explicitly in the table.
- */
-
- { 0x20000000, "testno", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x21000000, "testg", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x22000000, "teste", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x23000000, "testge", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x24000000, "testl", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x25000000, "testne", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x26000000, "testle", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x27000000, "testo", I_BASE, COBR, 1, { R, 0, 0 } },
- { 0x30000000, "bbc", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x31000000, "cmpobg", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x32000000, "cmpobe", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x33000000, "cmpobge", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x34000000, "cmpobl", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x35000000, "cmpobne", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x36000000, "cmpoble", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x37000000, "bbs", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x38000000, "cmpibno", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x39000000, "cmpibg", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3a000000, "cmpibe", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3b000000, "cmpibge", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3c000000, "cmpibl", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3d000000, "cmpibne", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3e000000, "cmpible", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x3f000000, "cmpibo", I_BASE, COBR, 3, { RL, RS, 0 } },
- { 0x31000000, "cmpojg", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x32000000, "cmpoje", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x33000000, "cmpojge", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x34000000, "cmpojl", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x35000000, "cmpojne", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x36000000, "cmpojle", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x38000000, "cmpijno", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x39000000, "cmpijg", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3a000000, "cmpije", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3b000000, "cmpijge", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3c000000, "cmpijl", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3d000000, "cmpijne", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3e000000, "cmpijle", I_BASE, COJ, 3, { RL, RS, 0 } },
- { 0x3f000000, "cmpijo", I_BASE, COJ, 3, { RL, RS, 0 } },
-
- { 0x80000000, "ldob", I_BASE, MEM1, 2, { M, R, 0 } },
- { 0x82000000, "stob", I_BASE, MEM1, 2, { R, M, 0 } },
- { 0x84000000, "bx", I_BASE, MEM1, 1, { M, 0, 0 } },
- { 0x85000000, "balx", I_BASE, MEM1, 2, { M, R, 0 } },
- { 0x86000000, "callx", I_BASE, MEM1, 1, { M, 0, 0 } },
- { 0x88000000, "ldos", I_BASE, MEM2, 2, { M, R, 0 } },
- { 0x8a000000, "stos", I_BASE, MEM2, 2, { R, M, 0 } },
- { 0x8c000000, "lda", I_BASE, MEM1, 2, { M, R, 0 } },
- { 0x90000000, "ld", I_BASE, MEM4, 2, { M, R, 0 } },
- { 0x92000000, "st", I_BASE, MEM4, 2, { R, M, 0 } },
- { 0x98000000, "ldl", I_BASE, MEM8, 2, { M, R2, 0 } },
- { 0x9a000000, "stl", I_BASE, MEM8, 2, { R2, M, 0 } },
- { 0xa0000000, "ldt", I_BASE, MEM12, 2, { M, R4, 0 } },
- { 0xa2000000, "stt", I_BASE, MEM12, 2, { R4, M, 0 } },
- { 0xb0000000, "ldq", I_BASE, MEM16, 2, { M, R4, 0 } },
- { 0xb2000000, "stq", I_BASE, MEM16, 2, { R4, M, 0 } },
- { 0xc0000000, "ldib", I_BASE, MEM1, 2, { M, R, 0 } },
- { 0xc2000000, "stib", I_BASE, MEM1, 2, { R, M, 0 } },
- { 0xc8000000, "ldis", I_BASE, MEM2, 2, { M, R, 0 } },
- { 0xca000000, "stis", I_BASE, MEM2, 2, { R, M, 0 } },
-
- { R_3(0x580), "notbit", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x581), "and", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x582), "andnot", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x583), "setbit", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x584), "notand", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x586), "xor", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x587), "or", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x588), "nor", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x589), "xnor", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_2D(0x58a), "not", I_BASE, REG, 2, { RSL,RS, 0 } },
- { R_3(0x58b), "ornot", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x58c), "clrbit", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x58d), "notor", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x58e), "nand", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x58f), "alterbit", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x590), "addo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x591), "addi", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x592), "subo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x593), "subi", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x598), "shro", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x59a), "shrdi", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x59b), "shri", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x59c), "shlo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x59d), "rotate", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x59e), "shli", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_2(0x5a0), "cmpo", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x5a1), "cmpi", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x5a2), "concmpo", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x5a3), "concmpi", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_3(0x5a4), "cmpinco", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x5a5), "cmpinci", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x5a6), "cmpdeco", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x5a7), "cmpdeci", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_2(0x5ac), "scanbyte", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x5ae), "chkbit", I_BASE, REG, 2, { RSL,RSL, 0 } },
- { R_3(0x5b0), "addc", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x5b2), "subc", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_2D(0x5cc), "mov", I_BASE, REG, 2, { RSL,RS, 0 } },
- { R_2D(0x5dc), "movl", I_BASE, REG, 2, { RL2,R2, 0 } },
- { R_2D(0x5ec), "movt", I_BASE, REG, 2, { RL4,R4, 0 } },
- { R_2D(0x5fc), "movq", I_BASE, REG, 2, { RL4,R4, 0 } },
- { R_3(0x610), "atmod", I_BASE, REG, 3, { RS, RSL,R } },
- { R_3(0x612), "atadd", I_BASE, REG, 3, { RS, RSL,RS } },
- { R_2D(0x640), "spanbit", I_BASE, REG, 2, { RSL,RS, 0 } },
- { R_2D(0x641), "scanbit", I_BASE, REG, 2, { RSL,RS, 0 } },
- { R_3(0x645), "modac", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x650), "modify", I_BASE, REG, 3, { RSL,RSL,R } },
- { R_3(0x651), "extract", I_BASE, REG, 3, { RSL,RSL,R } },
- { R_3(0x654), "modtc", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x655), "modpc", I_BASE, REG, 3, { RSL,RSL,R } },
- { R_1(0x660), "calls", I_BASE, REG, 1, { RSL, 0, 0 } },
- { R_0(0x66b), "mark", I_BASE, REG, 0, { 0, 0, 0 } },
- { R_0(0x66c), "fmark", I_BASE, REG, 0, { 0, 0, 0 } },
- { R_0(0x66d), "flushreg", I_BASE, REG, 0, { 0, 0, 0 } },
- { R_0(0x66f), "syncf", I_BASE, REG, 0, { 0, 0, 0 } },
- { R_3(0x670), "emul", I_BASE, REG, 3, { RSL,RSL,R2 } },
- { R_3(0x671), "ediv", I_BASE, REG, 3, { RSL,RL2,RS } },
- { R_2D(0x672), "cvtadr", I_CASIM,REG, 2, { RL, R2, 0 } },
- { R_3(0x701), "mulo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x708), "remo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x70b), "divo", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x741), "muli", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x748), "remi", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x749), "modi", I_BASE, REG, 3, { RSL,RSL,RS } },
- { R_3(0x74b), "divi", I_BASE, REG, 3, { RSL,RSL,RS } },
-
- /* Floating-point instructions */
-
- { R_2D(0x674), "cvtir", I_FP, REG, 2, { RL, F, 0 } },
- { R_2D(0x675), "cvtilr", I_FP, REG, 2, { RL, F, 0 } },
- { R_3(0x676), "scalerl", I_FP, REG, 3, { RL, FL2,F2 } },
- { R_3(0x677), "scaler", I_FP, REG, 3, { RL, FL, F } },
- { R_3(0x680), "atanr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x681), "logepr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x682), "logr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x683), "remr", I_FP, REG, 3, { FL, FL, F } },
- { R_2(0x684), "cmpor", I_FP, REG, 2, { FL, FL, 0 } },
- { R_2(0x685), "cmpr", I_FP, REG, 2, { FL, FL, 0 } },
- { R_2D(0x688), "sqrtr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x689), "expr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x68a), "logbnr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x68b), "roundr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x68c), "sinr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x68d), "cosr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x68e), "tanr", I_FP, REG, 2, { FL, F, 0 } },
- { R_1(0x68f), "classr", I_FP, REG, 1, { FL, 0, 0 } },
- { R_3(0x690), "atanrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x691), "logeprl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x692), "logrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x693), "remrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_2(0x694), "cmporl", I_FP, REG, 2, { FL2,FL2, 0 } },
- { R_2(0x695), "cmprl", I_FP, REG, 2, { FL2,FL2, 0 } },
- { R_2D(0x698), "sqrtrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x699), "exprl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x69a), "logbnrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x69b), "roundrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x69c), "sinrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x69d), "cosrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x69e), "tanrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_1(0x69f), "classrl", I_FP, REG, 1, { FL2, 0, 0 } },
- { R_2D(0x6c0), "cvtri", I_FP, REG, 2, { FL, R, 0 } },
- { R_2D(0x6c1), "cvtril", I_FP, REG, 2, { FL, R2, 0 } },
- { R_2D(0x6c2), "cvtzri", I_FP, REG, 2, { FL, R, 0 } },
- { R_2D(0x6c3), "cvtzril", I_FP, REG, 2, { FL, R2, 0 } },
- { R_2D(0x6c9), "movr", I_FP, REG, 2, { FL, F, 0 } },
- { R_2D(0x6d9), "movrl", I_FP, REG, 2, { FL2,F2, 0 } },
- { R_2D(0x6e1), "movre", I_FP, REG, 2, { FL4,F4, 0 } },
- { R_3(0x6e2), "cpysre", I_FP, REG, 3, { FL4,FL4,F4 } },
- { R_3(0x6e3), "cpyrsre", I_FP, REG, 3, { FL4,FL4,F4 } },
- { R_3(0x78b), "divr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x78c), "mulr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x78d), "subr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x78f), "addr", I_FP, REG, 3, { FL, FL, F } },
- { R_3(0x79b), "divrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x79c), "mulrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x79d), "subrl", I_FP, REG, 3, { FL2,FL2,F2 } },
- { R_3(0x79f), "addrl", I_FP, REG, 3, { FL2,FL2,F2 } },
-
- /* These are the floating point branch instructions. Each actually
- * generates 2 branch instructions: the first a CTRL instruction with
- * the indicated opcode, and the second a 'bno'.
- */
-
- { 0x12000000, "brue", I_FP, FBRA, 1, { 0, 0, 0 } },
- { 0x11000000, "brug", I_FP, FBRA, 1, { 0, 0, 0 } },
- { 0x13000000, "bruge", I_FP, FBRA, 1, { 0, 0, 0 } },
- { 0x14000000, "brul", I_FP, FBRA, 1, { 0, 0, 0 } },
- { 0x16000000, "brule", I_FP, FBRA, 1, { 0, 0, 0 } },
- { 0x15000000, "brulg", I_FP, FBRA, 1, { 0, 0, 0 } },
-
-
- /* Decimal instructions */
-
- { R_3(0x642), "daddc", I_DEC, REG, 3, { RSL,RSL,RS } },
- { R_3(0x643), "dsubc", I_DEC, REG, 3, { RSL,RSL,RS } },
- { R_2D(0x644), "dmovt", I_DEC, REG, 2, { RSL,RS, 0 } },
-
-
- /* KX extensions */
-
- { R_2(0x600), "synmov", I_KX, REG, 2, { R, R, 0 } },
- { R_2(0x601), "synmovl", I_KX, REG, 2, { R, R, 0 } },
- { R_2(0x602), "synmovq", I_KX, REG, 2, { R, R, 0 } },
- { R_2D(0x615), "synld", I_KX, REG, 2, { R, R, 0 } },
-
-
- /* MC extensions */
-
- { R_3(0x603), "cmpstr", I_MIL, REG, 3, { R, R, RL } },
- { R_3(0x604), "movqstr", I_MIL, REG, 3, { R, R, RL } },
- { R_3(0x605), "movstr", I_MIL, REG, 3, { R, R, RL } },
- { R_2D(0x613), "inspacc", I_MIL, REG, 2, { R, R, 0 } },
- { R_2D(0x614), "ldphy", I_MIL, REG, 2, { R, R, 0 } },
- { R_3(0x617), "fill", I_MIL, REG, 3, { R, RL, RL } },
- { R_2D(0x646), "condrec", I_MIL, REG, 2, { R, R, 0 } },
- { R_2D(0x656), "receive", I_MIL, REG, 2, { R, R, 0 } },
- { R_3(0x662), "send", I_MIL, REG, 3, { R, RL, R } },
- { R_1(0x663), "sendserv", I_MIL, REG, 1, { R, 0, 0 } },
- { R_1(0x664), "resumprcs", I_MIL, REG, 1, { R, 0, 0 } },
- { R_1(0x665), "schedprcs", I_MIL, REG, 1, { R, 0, 0 } },
- { R_0(0x666), "saveprcs", I_MIL, REG, 0, { 0, 0, 0 } },
- { R_1(0x668), "condwait", I_MIL, REG, 1, { R, 0, 0 } },
- { R_1(0x669), "wait", I_MIL, REG, 1, { R, 0, 0 } },
- { R_1(0x66a), "signal", I_MIL, REG, 1, { R, 0, 0 } },
- { R_1D(0x673), "ldtime", I_MIL, REG, 1, { R2, 0, 0 } },
-
-
- /* CX extensions */
-
- { R_3(0x5d8), "eshro", I_CX2, REG, 3, { RSL,RSL,RS } },
- { R_3(0x630), "sdma", I_CX, REG, 3, { RSL,RSL,RL } },
- { R_3(0x631), "udma", I_CX, REG, 0, { 0, 0, 0 } },
- { R_3(0x659), "sysctl", I_CX2, REG, 3, { RSL,RSL,RL } },
-
-
- /* Jx extensions. */
- { R_3(0x780), "addono", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x790), "addog", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7a0), "addoe", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7b0), "addoge", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7c0), "addol", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7d0), "addone", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7e0), "addole", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7f0), "addoo", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x781), "addino", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x791), "addig", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7a1), "addie", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7b1), "addige", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7c1), "addil", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7d1), "addine", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7e1), "addile", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7f1), "addio", I_JX, REG, 3, { RSL,RSL,RS } },
-
- { R_2D(0x5ad), "bswap", I_JX, REG, 2, { RSL, RS, 0 } },
-
- { R_2(0x594), "cmpob", I_JX, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x595), "cmpib", I_JX, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x596), "cmpos", I_JX, REG, 2, { RSL,RSL, 0 } },
- { R_2(0x597), "cmpis", I_JX, REG, 2, { RSL,RSL, 0 } },
-
- { R_3(0x784), "selno", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x794), "selg", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7a4), "sele", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7b4), "selge", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7c4), "sell", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7d4), "selne", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7e4), "selle", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7f4), "selo", I_JX, REG, 3, { RSL,RSL,RS } },
-
- { R_3(0x782), "subono", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x792), "subog", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7a2), "suboe", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7b2), "suboge", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7c2), "subol", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7d2), "subone", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7e2), "subole", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7f2), "suboo", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x783), "subino", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x793), "subig", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7a3), "subie", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7b3), "subige", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7c3), "subil", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7d3), "subine", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7e3), "subile", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_3(0x7f3), "subio", I_JX, REG, 3, { RSL,RSL,RS } },
-
- { R_3(0x65c), "dcctl", I_JX, REG, 3, { RSL,RSL,RL } },
- { R_3(0x65b), "icctl", I_JX, REG, 3, { RSL,RSL,RS } },
- { R_2D(0x658), "intctl", I_JX, REG, 2, { RSL, RS, 0 } },
- { R_0(0x5b4), "intdis", I_JX, REG, 0, { 0, 0, 0 } },
- { R_0(0x5b5), "inten", I_JX, REG, 0, { 0, 0, 0 } },
- { R_0(0x65d), "halt", I_JX, REG, 1, { RSL, 0, 0 } },
-
- /* Hx extensions. */
- { 0xac000000, "dcinva", I_HX, MEM1, 1, { M, 0, 0 } },
-
- /* END OF TABLE */
-
- { 0, NULL, 0, 0, 0, { 0, 0, 0 } }
-};
-
- /* end of i960-opcode.h */
diff --git a/include/opcode/ia64.h b/include/opcode/ia64.h
deleted file mode 100644
index 4285377f7..000000000
--- a/include/opcode/ia64.h
+++ /dev/null
@@ -1,413 +0,0 @@
-/* ia64.h -- Header file for ia64 opcode table
- Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006, 2010
- Free Software Foundation, Inc.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef opcode_ia64_h
-#define opcode_ia64_h
-
-#include <sys/types.h>
-
-#include "bfd.h"
-
-
-typedef BFD_HOST_U_64_BIT ia64_insn;
-
-enum ia64_insn_type
- {
- IA64_TYPE_NIL = 0, /* illegal type */
- IA64_TYPE_A, /* integer alu (I- or M-unit) */
- IA64_TYPE_I, /* non-alu integer (I-unit) */
- IA64_TYPE_M, /* memory (M-unit) */
- IA64_TYPE_B, /* branch (B-unit) */
- IA64_TYPE_F, /* floating-point (F-unit) */
- IA64_TYPE_X, /* long encoding (X-unit) */
- IA64_TYPE_DYN, /* Dynamic opcode */
- IA64_NUM_TYPES
- };
-
-enum ia64_unit
- {
- IA64_UNIT_NIL = 0, /* illegal unit */
- IA64_UNIT_I, /* integer unit */
- IA64_UNIT_M, /* memory unit */
- IA64_UNIT_B, /* branching unit */
- IA64_UNIT_F, /* floating-point unit */
- IA64_UNIT_L, /* long "unit" */
- IA64_UNIT_X, /* may be integer or branch unit */
- IA64_NUM_UNITS
- };
-
-/* Changes to this enumeration must be propagated to the operand table in
- bfd/cpu-ia64-opc.c
- */
-enum ia64_opnd
- {
- IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/
-
- /* constants */
- IA64_OPND_AR_CSD, /* application register csd (ar.csd) */
- IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */
- IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */
- IA64_OPND_C1, /* the constant 1 */
- IA64_OPND_C8, /* the constant 8 */
- IA64_OPND_C16, /* the constant 16 */
- IA64_OPND_GR0, /* gr0 */
- IA64_OPND_IP, /* instruction pointer (ip) */
- IA64_OPND_PR, /* predicate register (pr) */
- IA64_OPND_PR_ROT, /* rotating predicate register (pr.rot) */
- IA64_OPND_PSR, /* processor status register (psr) */
- IA64_OPND_PSR_L, /* processor status register L (psr.l) */
- IA64_OPND_PSR_UM, /* processor status register UM (psr.um) */
-
- /* register operands: */
- IA64_OPND_AR3, /* third application register # (bits 20-26) */
- IA64_OPND_B1, /* branch register # (bits 6-8) */
- IA64_OPND_B2, /* branch register # (bits 13-15) */
- IA64_OPND_CR3, /* third control register # (bits 20-26) */
- IA64_OPND_F1, /* first floating-point register # */
- IA64_OPND_F2, /* second floating-point register # */
- IA64_OPND_F3, /* third floating-point register # */
- IA64_OPND_F4, /* fourth floating-point register # */
- IA64_OPND_P1, /* first predicate # */
- IA64_OPND_P2, /* second predicate # */
- IA64_OPND_R1, /* first register # */
- IA64_OPND_R2, /* second register # */
- IA64_OPND_R3, /* third register # */
- IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */
-
- /* memory operands: */
- IA64_OPND_MR3, /* memory at addr of third register # */
-
- /* indirect operands: */
- IA64_OPND_CPUID_R3, /* cpuid[reg] */
- IA64_OPND_DBR_R3, /* dbr[reg] */
- IA64_OPND_DTR_R3, /* dtr[reg] */
- IA64_OPND_ITR_R3, /* itr[reg] */
- IA64_OPND_IBR_R3, /* ibr[reg] */
- IA64_OPND_MSR_R3, /* msr[reg] */
- IA64_OPND_PKR_R3, /* pkr[reg] */
- IA64_OPND_PMC_R3, /* pmc[reg] */
- IA64_OPND_PMD_R3, /* pmd[reg] */
- IA64_OPND_RR_R3, /* rr[reg] */
-
- /* immediate operands: */
- IA64_OPND_CCNT5, /* 5-bit count (31 - bits 20-24) */
- IA64_OPND_CNT2a, /* 2-bit count (1 + bits 27-28) */
- IA64_OPND_CNT2b, /* 2-bit count (bits 27-28): 1, 2, 3 */
- IA64_OPND_CNT2c, /* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
- IA64_OPND_CNT5, /* 5-bit count (bits 14-18) */
- IA64_OPND_CNT6, /* 6-bit count (bits 27-32) */
- IA64_OPND_CPOS6a, /* 6-bit count (63 - bits 20-25) */
- IA64_OPND_CPOS6b, /* 6-bit count (63 - bits 14-19) */
- IA64_OPND_CPOS6c, /* 6-bit count (63 - bits 31-36) */
- IA64_OPND_IMM1, /* signed 1-bit immediate (bit 36) */
- IA64_OPND_IMMU2, /* unsigned 2-bit immediate (bits 13-14) */
- IA64_OPND_IMMU5b, /* unsigned 5-bit immediate (32 + bits 14-18) */
- IA64_OPND_IMMU7a, /* unsigned 7-bit immediate (bits 13-19) */
- IA64_OPND_IMMU7b, /* unsigned 7-bit immediate (bits 20-26) */
- IA64_OPND_SOF, /* 8-bit stack frame size */
- IA64_OPND_SOL, /* 8-bit size of locals */
- IA64_OPND_SOR, /* 6-bit number of rotating registers (scaled by 8) */
- IA64_OPND_IMM8, /* signed 8-bit immediate (bits 13-19 & 36) */
- IA64_OPND_IMM8U4, /* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
- IA64_OPND_IMM8M1, /* signed 8-bit immediate -1 (bits 13-19 & 36) */
- IA64_OPND_IMM8M1U4, /* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
- IA64_OPND_IMM8M1U8, /* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
- IA64_OPND_IMMU9, /* unsigned 9-bit immediate (bits 33-34, 20-26) */
- IA64_OPND_IMM9a, /* signed 9-bit immediate (bits 6-12, 27, 36) */
- IA64_OPND_IMM9b, /* signed 9-bit immediate (bits 13-19, 27, 36) */
- IA64_OPND_IMM14, /* signed 14-bit immediate (bits 13-19, 27-32, 36) */
- IA64_OPND_IMM17, /* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
- IA64_OPND_IMMU21, /* unsigned 21-bit immediate (bits 6-25, 36) */
- IA64_OPND_IMM22, /* signed 22-bit immediate (bits 13-19, 22-36) */
- IA64_OPND_IMMU24, /* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
- IA64_OPND_IMM44, /* signed 44-bit immediate (2^16*bits 6-32, 36) */
- IA64_OPND_IMMU62, /* unsigned 62-bit immediate */
- IA64_OPND_IMMU64, /* unsigned 64-bit immediate (lotsa bits...) */
- IA64_OPND_INC3, /* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
- IA64_OPND_LEN4, /* 4-bit count (bits 27-30 + 1) */
- IA64_OPND_LEN6, /* 6-bit count (bits 27-32 + 1) */
- IA64_OPND_MBTYPE4, /* 4-bit mux type (bits 20-23) */
- IA64_OPND_MHTYPE8, /* 8-bit mux type (bits 20-27) */
- IA64_OPND_POS6, /* 6-bit count (bits 14-19) */
- IA64_OPND_TAG13, /* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
- IA64_OPND_TAG13b, /* signed 13-bit tag (ip + 16*bits 24-32) */
- IA64_OPND_TGT25, /* signed 25-bit (ip + 16*bits 6-25, 36) */
- IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
- IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */
- IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
- IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */
-
- IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */
- };
-
-enum ia64_dependency_mode
-{
- IA64_DV_RAW,
- IA64_DV_WAW,
- IA64_DV_WAR,
-};
-
-enum ia64_dependency_semantics
-{
- IA64_DVS_NONE,
- IA64_DVS_IMPLIED,
- IA64_DVS_IMPLIEDF,
- IA64_DVS_DATA,
- IA64_DVS_INSTR,
- IA64_DVS_SPECIFIC,
- IA64_DVS_STOP,
- IA64_DVS_OTHER,
-};
-
-enum ia64_resource_specifier
-{
- IA64_RS_ANY,
- IA64_RS_AR_K,
- IA64_RS_AR_UNAT,
- IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
- IA64_RS_ARb, /* 48-63, 112-127 */
- IA64_RS_BR,
- IA64_RS_CFM,
- IA64_RS_CPUID,
- IA64_RS_CR_IIB,
- IA64_RS_CR_IRR,
- IA64_RS_CR_LRR,
- IA64_RS_CR, /* 3-7,10-15,18,28-63,75-79,82-127 */
- IA64_RS_DBR,
- IA64_RS_FR,
- IA64_RS_FRb,
- IA64_RS_GR0,
- IA64_RS_GR,
- IA64_RS_IBR,
- IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
- IA64_RS_MSR,
- IA64_RS_PKR,
- IA64_RS_PMC,
- IA64_RS_PMD,
- IA64_RS_PR, /* non-rotating, 1-15 */
- IA64_RS_PRr, /* rotating, 16-62 */
- IA64_RS_PR63,
- IA64_RS_RR,
-
- IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
- IA64_RS_CRX, /* CRs not in RS_CR */
- IA64_RS_PSR, /* PSR bits */
- IA64_RS_RSE, /* implementation-specific RSE resources */
- IA64_RS_AR_FPSR,
-};
-
-enum ia64_rse_resource
-{
- IA64_RSE_N_STACKED_PHYS,
- IA64_RSE_BOF,
- IA64_RSE_STORE_REG,
- IA64_RSE_LOAD_REG,
- IA64_RSE_BSPLOAD,
- IA64_RSE_RNATBITINDEX,
- IA64_RSE_CFLE,
- IA64_RSE_NDIRTY,
-};
-
-/* Information about a given resource dependency */
-struct ia64_dependency
-{
- /* Name of the resource */
- const char *name;
- /* Does this dependency need further specification? */
- enum ia64_resource_specifier specifier;
- /* Mode of dependency */
- enum ia64_dependency_mode mode;
- /* Dependency semantics */
- enum ia64_dependency_semantics semantics;
- /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
-#define REG_NONE (-1)
- int regindex;
- /* Special info on semantics */
- const char *info;
-};
-
-/* Two arrays of indexes into the ia64_dependency table.
- chks are dependencies to check for conflicts when an opcode is
- encountered; regs are dependencies to register (mark as used) when an
- opcode is used. chks correspond to readers (RAW) or writers (WAW or
- WAR) of a resource, while regs correspond to writers (RAW or WAW) and
- readers (WAR) of a resource. */
-struct ia64_opcode_dependency
-{
- int nchks;
- const unsigned short *chks;
- int nregs;
- const unsigned short *regs;
-};
-
-/* encode/extract the note/index for a dependency */
-#define RDEP(N,X) (((N)<<11)|(X))
-#define NOTE(X) (((X)>>11)&0x1F)
-#define DEP(X) ((X)&0x7FF)
-
-/* A template descriptor describes the execution units that are active
- for each of the three slots. It also specifies the location of
- instruction group boundaries that may be present between two slots. */
-struct ia64_templ_desc
- {
- int group_boundary; /* 0=no boundary, 1=between slot 0 & 1, etc. */
- enum ia64_unit exec_unit[3];
- const char *name;
- };
-
-/* The opcode table is an array of struct ia64_opcode. */
-
-struct ia64_opcode
- {
- /* The opcode name. */
- const char *name;
-
- /* The type of the instruction: */
- enum ia64_insn_type type;
-
- /* Number of output operands: */
- int num_outputs;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- ia64_insn opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- ia64_insn mask;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- enum ia64_opnd operands[5];
-
- /* One bit flags for the opcode. These are primarily used to
- indicate specific processors and environments support the
- instructions. The defined values are listed below. */
- unsigned int flags;
-
- /* Used by ia64_find_next_opcode (). */
- short ent_index;
-
- /* Opcode dependencies. */
- const struct ia64_opcode_dependency *dependencies;
- };
-
-/* Values defined for the flags field of a struct ia64_opcode. */
-
-#define IA64_OPCODE_FIRST (1<<0) /* must be first in an insn group */
-#define IA64_OPCODE_X_IN_MLX (1<<1) /* insn is allowed in X slot of MLX */
-#define IA64_OPCODE_LAST (1<<2) /* must be last in an insn group */
-#define IA64_OPCODE_PRIV (1<<3) /* privileged instruct */
-#define IA64_OPCODE_SLOT2 (1<<4) /* insn allowed in slot 2 only */
-#define IA64_OPCODE_NO_PRED (1<<5) /* insn cannot be predicated */
-#define IA64_OPCODE_PSEUDO (1<<6) /* insn is a pseudo-op */
-#define IA64_OPCODE_F2_EQ_F3 (1<<7) /* constraint: F2 == F3 */
-#define IA64_OPCODE_LEN_EQ_64MCNT (1<<8) /* constraint: LEN == 64-CNT */
-#define IA64_OPCODE_MOD_RRBS (1<<9) /* modifies all rrbs in CFM */
-#define IA64_OPCODE_POSTINC (1<<10) /* postincrement MR3 operand */
-
-/* A macro to extract the major opcode from an instruction. */
-#define IA64_OP(i) (((i) >> 37) & 0xf)
-
-enum ia64_operand_class
- {
- IA64_OPND_CLASS_CST, /* constant */
- IA64_OPND_CLASS_REG, /* register */
- IA64_OPND_CLASS_IND, /* indirect register */
- IA64_OPND_CLASS_ABS, /* absolute value */
- IA64_OPND_CLASS_REL, /* IP-relative value */
- };
-
-/* The operands table is an array of struct ia64_operand. */
-
-struct ia64_operand
-{
- enum ia64_operand_class op_class;
-
- /* Set VALUE as the operand bits for the operand of type SELF in the
- instruction pointed to by CODE. If an error occurs, *CODE is not
- modified and the returned string describes the cause of the
- error. If no error occurs, NULL is returned. */
- const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
- ia64_insn *code);
-
- /* Extract the operand bits for an operand of type SELF from
- instruction CODE store them in *VALUE. If an error occurs, the
- cause of the error is described by the string returned. If no
- error occurs, NULL is returned. */
- const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
- ia64_insn *value);
-
- /* A string whose meaning depends on the operand class. */
-
- const char *str;
-
- struct bit_field
- {
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
- }
- field[4]; /* no operand has more than this many bit-fields */
-
- unsigned int flags;
-
- const char *desc; /* brief description */
-};
-
-/* Values defined for the flags field of a struct ia64_operand. */
-
-/* Disassemble as signed decimal (instead of hex): */
-#define IA64_OPND_FLAG_DECIMAL_SIGNED (1<<0)
-/* Disassemble as unsigned decimal (instead of hex): */
-#define IA64_OPND_FLAG_DECIMAL_UNSIGNED (1<<1)
-
-extern const struct ia64_templ_desc ia64_templ_desc[16];
-
-/* The tables are sorted by major opcode number and are otherwise in
- the order in which the disassembler should consider instructions. */
-extern struct ia64_opcode ia64_opcodes_a[];
-extern struct ia64_opcode ia64_opcodes_i[];
-extern struct ia64_opcode ia64_opcodes_m[];
-extern struct ia64_opcode ia64_opcodes_b[];
-extern struct ia64_opcode ia64_opcodes_f[];
-extern struct ia64_opcode ia64_opcodes_d[];
-
-
-extern struct ia64_opcode *ia64_find_opcode (const char *);
-extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *);
-
-extern struct ia64_opcode *ia64_dis_opcode (ia64_insn,
- enum ia64_insn_type);
-
-extern void ia64_free_opcode (struct ia64_opcode *);
-extern const struct ia64_dependency *ia64_find_dependency (int);
-
-/* To avoid circular library dependencies, this array is implemented
- in bfd/cpu-ia64-opc.c: */
-extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT];
-
-#endif /* opcode_ia64_h */
diff --git a/include/opcode/m68hc11.h b/include/opcode/m68hc11.h
deleted file mode 100644
index 83f5a9a65..000000000
--- a/include/opcode/m68hc11.h
+++ /dev/null
@@ -1,428 +0,0 @@
-/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
- Copyright 1999, 2000, 2002, 2003, 2010 Free Software Foundation, Inc.
- Written by Stephane Carrez (stcarrez@nerim.fr)
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _OPCODE_M68HC11_H
-#define _OPCODE_M68HC11_H
-
-/* Flags for the definition of the 68HC11 & 68HC12 CCR. */
-#define M6811_S_BIT 0x80 /* Stop disable */
-#define M6811_X_BIT 0x40 /* X-interrupt mask */
-#define M6811_H_BIT 0x20 /* Half carry flag */
-#define M6811_I_BIT 0x10 /* I-interrupt mask */
-#define M6811_N_BIT 0x08 /* Negative */
-#define M6811_Z_BIT 0x04 /* Zero */
-#define M6811_V_BIT 0x02 /* Overflow */
-#define M6811_C_BIT 0x01 /* Carry */
-
-/* 68HC11 register address offsets (range 0..0x3F or 0..64).
- The absolute address of the I/O register depends on the setting
- of the M6811_INIT register. At init time, the I/O registers are
- mapped at 0x1000. Address of registers is then:
-
- 0x1000 + M6811_xxx
-*/
-#define M6811_PORTA 0x00 /* Port A register */
-#define M6811__RES1 0x01 /* Unused/Reserved */
-#define M6811_PIOC 0x02 /* Parallel I/O Control register */
-#define M6811_PORTC 0x03 /* Port C register */
-#define M6811_PORTB 0x04 /* Port B register */
-#define M6811_PORTCL 0x05 /* Alternate latched port C */
-#define M6811__RES6 0x06 /* Unused/Reserved */
-#define M6811_DDRC 0x07 /* Data direction register for port C */
-#define M6811_PORTD 0x08 /* Port D register */
-#define M6811_DDRD 0x09 /* Data direction register for port D */
-#define M6811_PORTE 0x0A /* Port E input register */
-#define M6811_CFORC 0x0B /* Compare Force Register */
-#define M6811_OC1M 0x0C /* OC1 Action Mask register */
-#define M6811_OC1D 0x0D /* OC1 Action Data register */
-#define M6811_TCTN 0x0E /* Timer Counter Register */
-#define M6811_TCTN_H 0x0E /* " " " High part */
-#define M6811_TCTN_L 0x0F /* " " " Low part */
-#define M6811_TIC1 0x10 /* Input capture 1 register */
-#define M6811_TIC1_H 0x10 /* " " " High part */
-#define M6811_TIC1_L 0x11 /* " " " Low part */
-#define M6811_TIC2 0x12 /* Input capture 2 register */
-#define M6811_TIC2_H 0x12 /* " " " High part */
-#define M6811_TIC2_L 0x13 /* " " " Low part */
-#define M6811_TIC3 0x14 /* Input capture 3 register */
-#define M6811_TIC3_H 0x14 /* " " " High part */
-#define M6811_TIC3_L 0x15 /* " " " Low part */
-#define M6811_TOC1 0x16 /* Output Compare 1 register */
-#define M6811_TOC1_H 0x16 /* " " " High part */
-#define M6811_TOC1_L 0x17 /* " " " Low part */
-#define M6811_TOC2 0x18 /* Output Compare 2 register */
-#define M6811_TOC2_H 0x18 /* " " " High part */
-#define M6811_TOC2_L 0x19 /* " " " Low part */
-#define M6811_TOC3 0x1A /* Output Compare 3 register */
-#define M6811_TOC3_H 0x1A /* " " " High part */
-#define M6811_TOC3_L 0x1B /* " " " Low part */
-#define M6811_TOC4 0x1C /* Output Compare 4 register */
-#define M6811_TOC4_H 0x1C /* " " " High part */
-#define M6811_TOC4_L 0x1D /* " " " Low part */
-#define M6811_TOC5 0x1E /* Output Compare 5 register */
-#define M6811_TOC5_H 0x1E /* " " " High part */
-#define M6811_TOC5_L 0x1F /* " " " Low part */
-#define M6811_TCTL1 0x20 /* Timer Control register 1 */
-#define M6811_TCTL2 0x21 /* Timer Control register 2 */
-#define M6811_TMSK1 0x22 /* Timer Interrupt Mask Register 1 */
-#define M6811_TFLG1 0x23 /* Timer Interrupt Flag Register 1 */
-#define M6811_TMSK2 0x24 /* Timer Interrupt Mask Register 2 */
-#define M6811_TFLG2 0x25 /* Timer Interrupt Flag Register 2 */
-#define M6811_PACTL 0x26 /* Pulse Accumulator Control Register */
-#define M6811_PACNT 0x27 /* Pulse Accumulator Count Register */
-#define M6811_SPCR 0x28 /* SPI Control register */
-#define M6811_SPSR 0x29 /* SPI Status register */
-#define M6811_SPDR 0x2A /* SPI Data register */
-#define M6811_BAUD 0x2B /* SCI Baud register */
-#define M6811_SCCR1 0x2C /* SCI Control register 1 */
-#define M6811_SCCR2 0x2D /* SCI Control register 2 */
-#define M6811_SCSR 0x2E /* SCI Status register */
-#define M6811_SCDR 0x2F /* SCI Data (Read => RDR, Write => TDR) */
-#define M6811_ADCTL 0x30 /* A/D Control register */
-#define M6811_ADR1 0x31 /* A/D, Analog Result register 1 */
-#define M6811_ADR2 0x32 /* A/D, Analog Result register 2 */
-#define M6811_ADR3 0x33 /* A/D, Analog Result register 3 */
-#define M6811_ADR4 0x34 /* A/D, Analog Result register 4 */
-#define M6811__RES35 0x35
-#define M6811__RES36 0x36
-#define M6811__RES37 0x37
-#define M6811__RES38 0x38
-#define M6811_OPTION 0x39 /* System Configuration Options */
-#define M6811_COPRST 0x3A /* Arm/Reset COP Timer Circuitry */
-#define M6811_PPROG 0x3B /* EEPROM Programming Control Register */
-#define M6811_HPRIO 0x3C /* Highest priority I-Bit int and misc */
-#define M6811_INIT 0x3D /* Ram and I/O mapping register */
-#define M6811_TEST1 0x3E /* Factory test control register */
-#define M6811_CONFIG 0x3F /* COP, ROM and EEPROM enables */
-
-
-/* Flags of the CONFIG register (in EEPROM). */
-#define M6811_NOSEC 0x08 /* Security mode disable */
-#define M6811_NOCOP 0x04 /* COP system disable */
-#define M6811_ROMON 0x02 /* Enable on-chip rom */
-#define M6811_EEON 0x01 /* Enable on-chip eeprom */
-
-/* Flags of the PPROG register. */
-#define M6811_BYTE 0x10 /* Byte mode */
-#define M6811_ROW 0x08 /* Row mode */
-#define M6811_ERASE 0x04 /* Erase mode select (1 = erase, 0 = read) */
-#define M6811_EELAT 0x02 /* EEPROM Latch Control */
-#define M6811_EEPGM 0x01 /* EEPROM Programming Voltage Enable */
-
-/* Flags of the PIOC register. */
-#define M6811_STAF 0x80 /* Strobe A Interrupt Status Flag */
-#define M6811_STAI 0x40 /* Strobe A Interrupt Enable Mask */
-#define M6811_CWOM 0x20 /* Port C Wire OR mode */
-#define M6811_HNDS 0x10 /* Handshake mode */
-#define M6811_OIN 0x08 /* Output or Input handshaking */
-#define M6811_PLS 0x04 /* Pulse/Interlocked Handshake Operation */
-#define M6811_EGA 0x02 /* Active Edge for Strobe A */
-#define M6811_INVB 0x01 /* Invert Strobe B */
-
-/* Flags of the SCCR1 register. */
-#define M6811_R8 0x80 /* Receive Data bit 8 */
-#define M6811_T8 0x40 /* Transmit data bit 8 */
-#define M6811__SCCR1_5 0x20 /* Unused */
-#define M6811_M 0x10 /* SCI Character length */
-#define M6811_WAKE 0x08 /* Wake up method select (0=idle, 1=addr mark) */
-
-/* Flags of the SCCR2 register. */
-#define M6811_TIE 0x80 /* Transmit Interrupt enable */
-#define M6811_TCIE 0x40 /* Transmit Complete Interrupt Enable */
-#define M6811_RIE 0x20 /* Receive Interrupt Enable */
-#define M6811_ILIE 0x10 /* Idle Line Interrupt Enable */
-#define M6811_TE 0x08 /* Transmit Enable */
-#define M6811_RE 0x04 /* Receive Enable */
-#define M6811_RWU 0x02 /* Receiver Wake Up */
-#define M6811_SBK 0x01 /* Send Break */
-
-/* Flags of the SCSR register. */
-#define M6811_TDRE 0x80 /* Transmit Data Register Empty */
-#define M6811_TC 0x40 /* Transmit Complete */
-#define M6811_RDRF 0x20 /* Receive Data Register Full */
-#define M6811_IDLE 0x10 /* Idle Line Detect */
-#define M6811_OR 0x08 /* Overrun Error */
-#define M6811_NF 0x04 /* Noise Flag */
-#define M6811_FE 0x02 /* Framing Error */
-#define M6811__SCSR_0 0x01 /* Unused */
-
-/* Flags of the BAUD register. */
-#define M6811_TCLR 0x80 /* Clear Baud Rate (TEST mode) */
-#define M6811__BAUD_6 0x40 /* Not used */
-#define M6811_SCP1 0x20 /* SCI Baud rate prescaler select */
-#define M6811_SCP0 0x10
-#define M6811_RCKB 0x08 /* Baud Rate Clock Check (TEST mode) */
-#define M6811_SCR2 0x04 /* SCI Baud rate select */
-#define M6811_SCR1 0x02
-#define M6811_SCR0 0x01
-
-#define M6811_BAUD_DIV_1 (0)
-#define M6811_BAUD_DIV_3 (M6811_SCP0)
-#define M6811_BAUD_DIV_4 (M6811_SCP1)
-#define M6811_BAUD_DIV_13 (M6811_SCP1|M6811_SCP0)
-
-/* Flags of the SPCR register. */
-#define M6811_SPIE 0x80 /* Serial Peripheral Interrupt Enable */
-#define M6811_SPE 0x40 /* Serial Peripheral System Enable */
-#define M6811_DWOM 0x20 /* Port D Wire-OR mode option */
-#define M6811_MSTR 0x10 /* Master Mode Select */
-#define M6811_CPOL 0x08 /* Clock Polarity */
-#define M6811_CPHA 0x04 /* Clock Phase */
-#define M6811_SPR1 0x02 /* SPI Clock Rate Select */
-#define M6811_SPR0 0x01
-
-/* Flags of the SPSR register. */
-#define M6811_SPIF 0x80 /* SPI Transfer Complete flag */
-#define M6811_WCOL 0x40 /* Write Collision */
-#define M6811_MODF 0x10 /* Mode Fault */
-
-/* Flags of the ADCTL register. */
-#define M6811_CCF 0x80 /* Conversions Complete Flag */
-#define M6811_SCAN 0x20 /* Continuous Scan Control */
-#define M6811_MULT 0x10 /* Multiple Channel/Single Channel Control */
-#define M6811_CD 0x08 /* Channel Select D */
-#define M6811_CC 0x04 /* C */
-#define M6811_CB 0x02 /* B */
-#define M6811_CA 0x01 /* A */
-
-/* Flags of the CFORC register. */
-#define M6811_FOC1 0x80 /* Force Output Compare 1 */
-#define M6811_FOC2 0x40 /* 2 */
-#define M6811_FOC3 0x20 /* 3 */
-#define M6811_FOC4 0x10 /* 4 */
-#define M6811_FOC5 0x08 /* 5 */
-
-/* Flags of the OC1M register. */
-#define M6811_OC1M7 0x80 /* Output Compare 7 */
-#define M6811_OC1M6 0x40 /* 6 */
-#define M6811_OC1M5 0x20 /* 5 */
-#define M6811_OC1M4 0x10 /* 4 */
-#define M6811_OC1M3 0x08 /* 3 */
-
-/* Flags of the OC1D register. */
-#define M6811_OC1D7 0x80
-#define M6811_OC1D6 0x40
-#define M6811_OC1D5 0x20
-#define M6811_OC1D4 0x10
-#define M6811_OC1D3 0x08
-
-/* Flags of the TCTL1 register. */
-#define M6811_OM2 0x80 /* Output Mode 2 */
-#define M6811_OL2 0x40 /* Output Level 2 */
-#define M6811_OM3 0x20
-#define M6811_OL3 0x10
-#define M6811_OM4 0x08
-#define M6811_OL4 0x04
-#define M6811_OM5 0x02
-#define M6811_OL5 0x01
-
-/* Flags of the TCTL2 register. */
-#define M6811_EDG1B 0x20 /* Input Edge Capture Control 1 */
-#define M6811_EDG1A 0x10
-#define M6811_EDG2B 0x08 /* Input 2 */
-#define M6811_EDG2A 0x04
-#define M6811_EDG3B 0x02 /* Input 3 */
-#define M6811_EDG3A 0x01
-
-/* Flags of the TMSK1 register. */
-#define M6811_OC1I 0x80 /* Output Compare 1 Interrupt */
-#define M6811_OC2I 0x40 /* 2 */
-#define M6811_OC3I 0x20 /* 3 */
-#define M6811_OC4I 0x10 /* 4 */
-#define M6811_OC5I 0x08 /* 5 */
-#define M6811_IC1I 0x04 /* Input Capture 1 Interrupt */
-#define M6811_IC2I 0x02 /* 2 */
-#define M6811_IC3I 0x01 /* 3 */
-
-/* Flags of the TFLG1 register. */
-#define M6811_OC1F 0x80 /* Output Compare 1 Flag */
-#define M6811_OC2F 0x40 /* 2 */
-#define M6811_OC3F 0x20 /* 3 */
-#define M6811_OC4F 0x10 /* 4 */
-#define M6811_OC5F 0x08 /* 5 */
-#define M6811_IC1F 0x04 /* Input Capture 1 Flag */
-#define M6811_IC2F 0x02 /* 2 */
-#define M6811_IC3F 0x01 /* 3 */
-
-/* Flags of Timer Interrupt Mask Register 2 (TMSK2). */
-#define M6811_TOI 0x80 /* Timer Overflow Interrupt Enable */
-#define M6811_RTII 0x40 /* RTI Interrupt Enable */
-#define M6811_PAOVI 0x20 /* Pulse Accumulator Overflow Interrupt En. */
-#define M6811_PAII 0x10 /* Pulse Accumulator Interrupt Enable */
-#define M6811_PR1 0x02 /* Timer prescaler */
-#define M6811_PR0 0x01 /* Timer prescaler */
-#define M6811_TPR_1 0x00 /* " " prescale div 1 */
-#define M6811_TPR_4 0x01 /* " " prescale div 4 */
-#define M6811_TPR_8 0x02 /* " " prescale div 8 */
-#define M6811_TPR_16 0x03 /* " " prescale div 16 */
-
-/* Flags of Timer Interrupt Flag Register 2 (M6811_TFLG2). */
-#define M6811_TOF 0x80 /* Timer overflow bit */
-#define M6811_RTIF 0x40 /* Read time interrupt flag */
-#define M6811_PAOVF 0x20 /* Pulse accumulator overflow Interrupt flag */
-#define M6811_PAIF 0x10 /* Pulse accumulator Input Edge " " " */
-
-/* Flags of Pulse Accumulator Control Register (PACTL). */
-#define M6811_DDRA7 0x80 /* Data direction for port A bit 7 */
-#define M6811_PAEN 0x40 /* Pulse accumulator system enable */
-#define M6811_PAMOD 0x20 /* Pulse accumulator mode */
-#define M6811_PEDGE 0x10 /* Pulse accumulator edge control */
-#define M6811_RTR1 0x02 /* RTI Interrupt rates select */
-#define M6811_RTR0 0x01 /* " " " " */
-
-/* Flags of the Options register. */
-#define M6811_ADPU 0x80 /* A/D Powerup */
-#define M6811_CSEL 0x40 /* A/D/EE Charge pump clock source select */
-#define M6811_IRQE 0x20 /* IRQ Edge/Level sensitive */
-#define M6811_DLY 0x10 /* Stop exit turn on delay */
-#define M6811_CME 0x08 /* Clock Monitor enable */
-#define M6811_CR1 0x02 /* COP timer rate select */
-#define M6811_CR0 0x01 /* COP timer rate select */
-
-/* Flags of the HPRIO register. */
-#define M6811_RBOOT 0x80 /* Read Bootstrap ROM */
-#define M6811_SMOD 0x40 /* Special Mode */
-#define M6811_MDA 0x20 /* Mode Select A */
-#define M6811_IRV 0x10 /* Internal Read Visibility */
-#define M6811_PSEL3 0x08 /* Priority Select */
-#define M6811_PSEL2 0x04
-#define M6811_PSEL1 0x02
-#define M6811_PSEL0 0x01
-
-/* Some insns used by gas to turn relative branches into absolute ones. */
-#define M6811_BRA 0x20
-#define M6811_JMP 0x7e
-#define M6811_BSR 0x8d
-#define M6811_JSR 0xbd
-#define M6812_JMP 0x06
-#define M6812_BSR 0x07
-#define M6812_JSR 0x16
-
-/* Instruction code pages. Code page 1 is the default. */
-/*#define M6811_OPCODE_PAGE1 0x00*/
-#define M6811_OPCODE_PAGE2 0x18
-#define M6811_OPCODE_PAGE3 0x1A
-#define M6811_OPCODE_PAGE4 0xCD
-
-
-/* 68HC11 operands formats as stored in the m6811_opcode table. These
- flags do not correspond to anything in the 68HC11 or 68HC12.
- They are only used by GAS to recognize operands. */
-#define M6811_OP_NONE 0 /* No operand */
-#define M6811_OP_DIRECT 0x0001 /* Page 0 addressing: *<val-8bits> */
-#define M6811_OP_IMM8 0x0002 /* 8 bits immediat: #<val-8bits> */
-#define M6811_OP_IMM16 0x0004 /* 16 bits immediat: #<val-16bits> */
-#define M6811_OP_IND16 0x0008 /* Indirect abs: <val-16> */
-#define M6812_OP_IND16_P2 0x0010 /* Second parameter indirect abs. */
-#define M6812_OP_REG 0x0020 /* Register operand 1 */
-#define M6812_OP_REG_2 0x0040 /* Register operand 2 */
-
-#define M6811_OP_IX 0x0080 /* Indirect IX: <val-8>,x */
-#define M6811_OP_IY 0x0100 /* Indirect IY: <val-8>,y */
-#define M6812_OP_IDX 0x0200 /* Indirect: N,r N,[+-]r[+-] N:5-bits */
-#define M6812_OP_IDX_1 0x0400 /* N,r N:9-bits */
-#define M6812_OP_IDX_2 0x0800 /* N,r N:16-bits */
-#define M6812_OP_D_IDX 0x1000 /* Indirect indexed: [D,r] */
-#define M6812_OP_D_IDX_2 0x2000 /* [N,r] N:16-bits */
-#define M6812_OP_PAGE 0x4000 /* Page number */
-#define M6811_OP_MASK 0x07FFF
-#define M6811_OP_BRANCH 0x00008000 /* Branch, jsr, call */
-#define M6811_OP_BITMASK 0x00010000 /* Bitmask: #<val-8> */
-#define M6811_OP_JUMP_REL 0x00020000 /* Pc-Relative: <val-8> */
-#define M6812_OP_JUMP_REL16 0x00040000 /* Pc-relative: <val-16> */
-#define M6811_OP_PAGE1 0x0000
-#define M6811_OP_PAGE2 0x00080000 /* Need a page2 opcode before */
-#define M6811_OP_PAGE3 0x00100000 /* Need a page3 opcode before */
-#define M6811_OP_PAGE4 0x00200000 /* Need a page4 opcode before */
-#define M6811_MAX_OPERANDS 3 /* Max operands: brset <dst> <mask> <b> */
-
-#define M6812_ACC_OFFSET 0x00400000 /* A,r B,r D,r */
-#define M6812_ACC_IND 0x00800000 /* [D,r] */
-#define M6812_PRE_INC 0x01000000 /* n,+r n = -8..8 */
-#define M6812_PRE_DEC 0x02000000 /* n,-r */
-#define M6812_POST_INC 0x04000000 /* n,r+ */
-#define M6812_POST_DEC 0x08000000 /* n,r- */
-#define M6812_INDEXED_IND 0x10000000 /* [n,r] n = 16-bits */
-#define M6812_INDEXED 0x20000000 /* n,r n = 5, 9 or 16-bits */
-#define M6812_OP_IDX_P2 0x40000000
-
-/* Markers to identify some instructions. */
-#define M6812_OP_EXG_MARKER 0x01000000 /* exg r1,r2 */
-#define M6812_OP_TFR_MARKER 0x02000000 /* tfr r1,r2 */
-#define M6812_OP_SEX_MARKER 0x04000000 /* sex r1,r2 */
-
-#define M6812_OP_EQ_MARKER 0x80000000 /* dbeq/ibeq/tbeq */
-#define M6812_OP_DBCC_MARKER 0x04000000 /* dbeq/dbne */
-#define M6812_OP_IBCC_MARKER 0x02000000 /* ibeq/ibne */
-#define M6812_OP_TBCC_MARKER 0x01000000
-
-#define M6812_OP_TRAP_ID 0x80000000 /* trap #N */
-
-#define M6811_OP_HIGH_ADDR 0x01000000 /* Used internally by gas. */
-#define M6811_OP_LOW_ADDR 0x02000000
-
-#define M68HC12_BANK_VIRT 0x010000
-#define M68HC12_BANK_MASK 0x00003fff
-#define M68HC12_BANK_BASE 0x00008000
-#define M68HC12_BANK_SHIFT 14
-#define M68HC12_BANK_PAGE_MASK 0x0ff
-
-
-/* CPU identification. */
-#define cpu6811 0x01
-#define cpu6812 0x02
-#define cpu6812s 0x04
-
-/* The opcode table is an array of struct m68hc11_opcode. */
-struct m68hc11_opcode {
- const char* name; /* Op-code name */
- long format;
- unsigned char size;
- unsigned char opcode;
- unsigned char cycles_low;
- unsigned char cycles_high;
- unsigned char set_flags_mask;
- unsigned char clr_flags_mask;
- unsigned char chg_flags_mask;
- unsigned char arch;
-};
-
-/* Alias definition for 68HC12. */
-struct m68hc12_opcode_alias
-{
- const char* name;
- const char* translation;
- unsigned char size;
- unsigned char code1;
- unsigned char code2;
-};
-
-/* The opcode table. The table contains all the opcodes (all pages).
- You can't rely on the order. */
-extern const struct m68hc11_opcode m68hc11_opcodes[];
-extern const int m68hc11_num_opcodes;
-
-/* Alias table for 68HC12. It translates some 68HC11 insn which are not
- implemented in 68HC12 but have equivalent translations. */
-extern const struct m68hc12_opcode_alias m68hc12_alias[];
-extern const int m68hc12_num_alias;
-
-#endif /* _OPCODE_M68HC11_H */
diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h
deleted file mode 100644
index f7bd8b450..000000000
--- a/include/opcode/m68k.h
+++ /dev/null
@@ -1,378 +0,0 @@
-/* Opcode table header for m680[01234]0/m6888[12]/m68851.
- Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001,
- 2003, 2004, 2006, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* These are used as bit flags for the arch field in the m68k_opcode
- structure. */
-#define _m68k_undef 0
-#define m68000 0x001
-#define m68010 0x002
-#define m68020 0x004
-#define m68030 0x008
-#define m68040 0x010
-#define m68060 0x020
-#define m68881 0x040
-#define m68851 0x080
-#define cpu32 0x100 /* e.g., 68332 */
-#define fido_a 0x200
-#define m68k_mask 0x3ff
-
-#define mcfmac 0x400 /* ColdFire MAC. */
-#define mcfemac 0x800 /* ColdFire EMAC. */
-#define cfloat 0x1000 /* ColdFire FPU. */
-#define mcfhwdiv 0x2000 /* ColdFire hardware divide. */
-
-#define mcfisa_a 0x4000 /* ColdFire ISA_A. */
-#define mcfisa_aa 0x8000 /* ColdFire ISA_A+. */
-#define mcfisa_b 0x10000 /* ColdFire ISA_B. */
-#define mcfisa_c 0x20000 /* ColdFire ISA_C. */
-#define mcfusp 0x40000 /* ColdFire USP instructions. */
-#define mcf_mask 0x7e400
-
-/* Handy aliases. */
-#define m68040up (m68040 | m68060)
-#define m68030up (m68030 | m68040up)
-#define m68020up (m68020 | m68030up)
-#define m68010up (m68010 | cpu32 | fido_a | m68020up)
-#define m68000up (m68000 | m68010up)
-
-#define mfloat (m68881 | m68040 | m68060)
-#define mmmu (m68851 | m68030 | m68040 | m68060)
-
-/* The structure used to hold information for an opcode. */
-
-struct m68k_opcode
-{
- /* The opcode name. */
- const char *name;
- /* The pseudo-size of the instruction(in bytes). Used to determine
- number of bytes necessary to disassemble the instruction. */
- unsigned int size;
- /* The opcode itself. */
- unsigned long opcode;
- /* The mask used by the disassembler. */
- unsigned long match;
- /* The arguments. */
- const char *args;
- /* The architectures which support this opcode. */
- unsigned int arch;
-};
-
-/* The structure used to hold information for an opcode alias. */
-
-struct m68k_opcode_alias
-{
- /* The alias name. */
- const char *alias;
- /* The instruction for which this is an alias. */
- const char *primary;
-};
-
-/* We store four bytes of opcode for all opcodes because that is the
- most any of them need. The actual length of an instruction is
- always at least 2 bytes, and is as much longer as necessary to hold
- the operands it has.
-
- The match field is a mask saying which bits must match particular
- opcode in order for an instruction to be an instance of that
- opcode.
-
- The args field is a string containing two characters for each
- operand of the instruction. The first specifies the kind of
- operand; the second, the place it is stored.
-
- If the first char of args is '.', it indicates that the opcode is
- two words. This is only necessary when the match field does not
- have any bits set in the second opcode word. Such a '.' is skipped
- for operand processing. */
-
-/* Kinds of operands:
- Characters used: AaBbCcDdEeFfGgHIiJjKkLlMmnOopQqRrSsTtUuVvWwXxYyZz01234|*~%;@!&$?/<>#^+-
-
- D data register only. Stored as 3 bits.
- A address register only. Stored as 3 bits.
- a address register indirect only. Stored as 3 bits.
- R either kind of register. Stored as 4 bits.
- r either kind of register indirect only. Stored as 4 bits.
- At the moment, used only for cas2 instruction.
- F floating point coprocessor register only. Stored as 3 bits.
- O an offset (or width): immediate data 0-31 or data register.
- Stored as 6 bits in special format for BF... insns.
- + autoincrement only. Stored as 3 bits (number of the address register).
- - autodecrement only. Stored as 3 bits (number of the address register).
- Q quick immediate data. Stored as 3 bits.
- This matches an immediate operand only when value is in range 1 .. 8.
- M moveq immediate data. Stored as 8 bits.
- This matches an immediate operand only when value is in range -128..127
- T trap vector immediate data. Stored as 4 bits.
-
- k K-factor for fmove.p instruction. Stored as a 7-bit constant or
- a three bit register offset, depending on the field type.
-
- # immediate data. Stored in special places (b, w or l)
- which say how many bits to store.
- ^ immediate data for floating point instructions. Special places
- are offset by 2 bytes from '#'...
- B pc-relative address, converted to an offset
- that is treated as immediate data.
- d displacement and register. Stores the register as 3 bits
- and stores the displacement in the entire second word.
-
- C the CCR. No need to store it; this is just for filtering validity.
- S the SR. No need to store, just as with CCR.
- U the USP. No need to store, just as with CCR.
- E the MAC ACC. No need to store, just as with CCR.
- e the EMAC ACC[0123].
- G the MAC/EMAC MACSR. No need to store, just as with CCR.
- g the EMAC ACCEXT{01,23}.
- H the MASK. No need to store, just as with CCR.
- i the MAC/EMAC scale factor.
-
- I Coprocessor ID. Not printed if 1. The Coprocessor ID is always
- extracted from the 'd' field of word one, which means that an extended
- coprocessor opcode can be skipped using the 'i' place, if needed.
-
- s System Control register for the floating point coprocessor.
-
- J Misc register for movec instruction, stored in 'j' format.
- Possible values:
- 0x000 SFC Source Function Code reg [60, 40, 30, 20, 10]
- 0x001 DFC Data Function Code reg [60, 40, 30, 20, 10]
- 0x002 CACR Cache Control Register [60, 40, 30, 20, mcf]
- 0x003 TC MMU Translation Control [60, 40]
- 0x004 ITT0 Instruction Transparent
- Translation reg 0 [60, 40]
- 0x005 ITT1 Instruction Transparent
- Translation reg 1 [60, 40]
- 0x006 DTT0 Data Transparent
- Translation reg 0 [60, 40]
- 0x007 DTT1 Data Transparent
- Translation reg 1 [60, 40]
- 0x008 BUSCR Bus Control Register [60]
- 0x800 USP User Stack Pointer [60, 40, 30, 20, 10]
- 0x801 VBR Vector Base reg [60, 40, 30, 20, 10, mcf]
- 0x802 CAAR Cache Address Register [ 30, 20]
- 0x803 MSP Master Stack Pointer [ 40, 30, 20]
- 0x804 ISP Interrupt Stack Pointer [ 40, 30, 20]
- 0x805 MMUSR MMU Status reg [ 40]
- 0x806 URP User Root Pointer [60, 40]
- 0x807 SRP Supervisor Root Pointer [60, 40]
- 0x808 PCR Processor Configuration reg [60]
- 0xC00 ROMBAR ROM Base Address Register [520X]
- 0xC04 RAMBAR0 RAM Base Address Register 0 [520X]
- 0xC05 RAMBAR1 RAM Base Address Register 0 [520X]
- 0xC0F MBAR0 RAM Base Address Register 0 [520X]
- 0xC04 FLASHBAR FLASH Base Address Register [mcf528x]
- 0xC05 RAMBAR Static RAM Base Address Register [mcf528x]
-
- L Register list of the type d0-d7/a0-a7 etc.
- (New! Improved! Can also hold fp0-fp7, as well!)
- The assembler tries to see if the registers match the insn by
- looking at where the insn wants them stored.
-
- l Register list like L, but with all the bits reversed.
- Used for going the other way. . .
-
- c cache identifier which may be "nc" for no cache, "ic"
- for instruction cache, "dc" for data cache, or "bc"
- for both caches. Used in cinv and cpush. Always
- stored in position "d".
-
- u Any register, with ``upper'' or ``lower'' specification. Used
- in the mac instructions with size word.
-
- The remainder are all stored as 6 bits using an address mode and a
- register number; they differ in which addressing modes they match.
-
- * all (modes 0-6,7.0-4)
- ~ alterable memory (modes 2-6,7.0,7.1)
- (not 0,1,7.2-4)
- % alterable (modes 0-6,7.0,7.1)
- (not 7.2-4)
- ; data (modes 0,2-6,7.0-4)
- (not 1)
- @ data, but not immediate (modes 0,2-6,7.0-3)
- (not 1,7.4)
- ! control (modes 2,5,6,7.0-3)
- (not 0,1,3,4,7.4)
- & alterable control (modes 2,5,6,7.0,7.1)
- (not 0,1,3,4,7.2-4)
- $ alterable data (modes 0,2-6,7.0,7.1)
- (not 1,7.2-4)
- ? alterable control, or data register (modes 0,2,5,6,7.0,7.1)
- (not 1,3,4,7.2-4)
- / control, or data register (modes 0,2,5,6,7.0-3)
- (not 1,3,4,7.4)
- > *save operands (modes 2,4,5,6,7.0,7.1)
- (not 0,1,3,7.2-4)
- < *restore operands (modes 2,3,5,6,7.0-3)
- (not 0,1,4,7.4)
-
- coldfire move operands:
- m (modes 0-4)
- n (modes 5,7.2)
- o (modes 6,7.0,7.1,7.3,7.4)
- p (modes 0-5)
-
- coldfire bset/bclr/btst/mulsl/mulul operands:
- q (modes 0,2-5)
- v (modes 0,2-5,7.0,7.1)
- b (modes 0,2-5,7.2)
- w (modes 2-5,7.2)
- y (modes 2,5)
- z (modes 2,5,7.2)
- x mov3q immediate operand.
- j coprocessor ET operand.
- K coprocessor command number.
- 4 (modes 2,3,4,5)
- */
-
-/* For the 68851: */
-/* I didn't use much imagination in choosing the
- following codes, so many of them aren't very
- mnemonic. -rab
-
- 0 32 bit pmmu register
- Possible values:
- 000 TC Translation Control Register (68030, 68851)
-
- 1 16 bit pmmu register
- 111 AC Access Control (68851)
-
- 2 8 bit pmmu register
- 100 CAL Current Access Level (68851)
- 101 VAL Validate Access Level (68851)
- 110 SCC Stack Change Control (68851)
-
- 3 68030-only pmmu registers (32 bit)
- 010 TT0 Transparent Translation reg 0
- (aka Access Control reg 0 -- AC0 -- on 68ec030)
- 011 TT1 Transparent Translation reg 1
- (aka Access Control reg 1 -- AC1 -- on 68ec030)
-
- W wide pmmu registers
- Possible values:
- 001 DRP Dma Root Pointer (68851)
- 010 SRP Supervisor Root Pointer (68030, 68851)
- 011 CRP Cpu Root Pointer (68030, 68851)
-
- f function code register (68030, 68851)
- 0 SFC
- 1 DFC
-
- V VAL register only (68851)
-
- X BADx, BACx (16 bit)
- 100 BAD Breakpoint Acknowledge Data (68851)
- 101 BAC Breakpoint Acknowledge Control (68851)
-
- Y PSR (68851) (MMUSR on 68030) (ACUSR on 68ec030)
- Z PCSR (68851)
-
- | memory (modes 2-6, 7.*)
-
- t address test level (68030 only)
- Stored as 3 bits, range 0-7.
- Also used for breakpoint instruction now.
-
-*/
-
-/* Places to put an operand, for non-general operands:
- Characters used: BbCcDdFfGgHhIijkLlMmNnostWw123456789/
-
- s source, low bits of first word.
- d dest, shifted 9 in first word
- 1 second word, shifted 12
- 2 second word, shifted 6
- 3 second word, shifted 0
- 4 third word, shifted 12
- 5 third word, shifted 6
- 6 third word, shifted 0
- 7 second word, shifted 7
- 8 second word, shifted 10
- 9 second word, shifted 5
- E second word, shifted 9
- D store in both place 1 and place 3; for divul and divsl.
- B first word, low byte, for branch displacements
- W second word (entire), for branch displacements
- L second and third words (entire), for branch displacements
- (also overloaded for move16)
- b second word, low byte
- w second word (entire) [variable word/long branch offset for dbra]
- W second word (entire) (must be signed 16 bit value)
- l second and third word (entire)
- g variable branch offset for bra and similar instructions.
- The place to store depends on the magnitude of offset.
- t store in both place 7 and place 8; for floating point operations
- c branch offset for cpBcc operations.
- The place to store is word two if bit six of word one is zero,
- and words two and three if bit six of word one is one.
- i Increment by two, to skip over coprocessor extended operands. Only
- works with the 'I' format.
- k Dynamic K-factor field. Bits 6-4 of word 2, used as a register number.
- Also used for dynamic fmovem instruction.
- C floating point coprocessor constant - 7 bits. Also used for static
- K-factors...
- j Movec register #, stored in 12 low bits of second word.
- m For M[S]ACx; 4 bits split with MSB shifted 6 bits in first word
- and remaining 3 bits of register shifted 9 bits in first word.
- Indicate upper/lower in 1 bit shifted 7 bits in second word.
- Use with `R' or `u' format.
- n `m' withouth upper/lower indication. (For M[S]ACx; 4 bits split
- with MSB shifted 6 bits in first word and remaining 3 bits of
- register shifted 9 bits in first word. No upper/lower
- indication is done.) Use with `R' or `u' format.
- o For M[S]ACw; 4 bits shifted 12 in second word (like `1').
- Indicate upper/lower in 1 bit shifted 7 bits in second word.
- Use with `R' or `u' format.
- M For M[S]ACw; 4 bits in low bits of first word. Indicate
- upper/lower in 1 bit shifted 6 bits in second word. Use with
- `R' or `u' format.
- N For M[S]ACw; 4 bits in low bits of second word. Indicate
- upper/lower in 1 bit shifted 6 bits in second word. Use with
- `R' or `u' format.
- h shift indicator (scale factor), 1 bit shifted 10 in second word
-
- Places to put operand, for general operands:
- d destination, shifted 6 bits in first word
- b source, at low bit of first word, and immediate uses one byte
- w source, at low bit of first word, and immediate uses two bytes
- l source, at low bit of first word, and immediate uses four bytes
- s source, at low bit of first word.
- Used sometimes in contexts where immediate is not allowed anyway.
- f single precision float, low bit of 1st word, immediate uses 4 bytes
- F double precision float, low bit of 1st word, immediate uses 8 bytes
- x extended precision float, low bit of 1st word, immediate uses 12 bytes
- p packed float, low bit of 1st word, immediate uses 12 bytes
- G EMAC accumulator, load (bit 4 2nd word, !bit8 first word)
- H EMAC accumulator, non load (bit 4 2nd word, bit 8 first word)
- F EMAC ACCx
- f EMAC ACCy
- I MAC/EMAC scale factor
- / Like 's', but set 2nd word, bit 5 if trailing_ampersand set
- ] first word, bit 10
-*/
-
-extern const struct m68k_opcode m68k_opcodes[];
-extern const struct m68k_opcode_alias m68k_opcode_aliases[];
-
-extern const int m68k_numopcodes, m68k_numaliases;
-
-/* end of m68k-opcode.h */
diff --git a/include/opcode/m88k.h b/include/opcode/m88k.h
deleted file mode 100644
index 739c0e90a..000000000
--- a/include/opcode/m88k.h
+++ /dev/null
@@ -1,455 +0,0 @@
-/* Table of opcodes for the Motorola M88k family.
- Copyright 1989, 1990, 1991, 1993, 2001, 2002, 2010
- Free Software Foundation, Inc.
-
- This file is part of GDB and GAS.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/*
- * Disassembler Instruction Table
- *
- * The first field of the table is the opcode field. If an opcode
- * is specified which has any non-opcode bits on, a system error
- * will occur when the system attempts the install it into the
- * instruction table. The second parameter is a pointer to the
- * instruction mnemonic. Each operand is specified by offset, width,
- * and type. The offset is the bit number of the least significant
- * bit of the operand with bit 0 being the least significant bit of
- * the instruction. The width is the number of bits used to specify
- * the operand. The type specifies the output format to be used for
- * the operand. The valid formats are: register, register indirect,
- * hex constant, and bit field specification. The last field is a
- * pointer to the next instruction in the linked list. These pointers
- * are initialized by init_disasm().
- *
- * Revision History
- *
- * Revision 1.0 11/08/85 Creation date
- * 1.1 02/05/86 Updated instruction mnemonic table MD
- * 1.2 06/16/86 Updated SIM_FLAGS for floating point
- * 1.3 09/20/86 Updated for new encoding
- * 05/11/89 R. Trawick adapted from Motorola disassembler
- */
-
-#include <stdio.h>
-
-/* Define the number of bits in the primary opcode field of the instruction,
- the destination field, the source 1 and source 2 fields. */
-
-/* Size of opcode field. */
-#define OP 8
-
-/* Size of destination. */
-#define DEST 6
-
-/* Size of source1. */
-#define SOURCE1 6
-
-/* Size of source2. */
-#define SOURCE2 6
-
-/* Number of registers. */
-#define REGs 32
-
-/* Type definitions. */
-
-typedef unsigned int UINT;
-#define WORD long
-#define FLAG unsigned
-#define STATE short
-
-/* The next four equates define the priorities that the various classes
- * of instructions have regarding writing results back into registers and
- * signalling exceptions. */
-
-/* PMEM is also defined in <sys/param.h> on Delta 88's. Sigh! */
-#undef PMEM
-
-/* Integer priority. */
-#define PINT 0
-
-/* Floating point priority. */
-#define PFLT 1
-
-/* Memory priority. */
-#define PMEM 2
-
-/* Not applicable, instruction doesn't write to regs. */
-#define NA 3
-
-/* Highest of these priorities. */
-#define HIPRI 3
-
-/* The instruction registers are an artificial mechanism to speed up
- * simulator execution. In the real processor, an instruction register
- * is 32 bits wide. In the simulator, the 32 bit instruction is kept in
- * a structure field called rawop, and the instruction is partially decoded,
- * and split into various fields and flags which make up the other fields
- * of the structure.
- * The partial decode is done when the instructions are initially loaded
- * into simulator memory. The simulator code memory is not an array of
- * 32 bit words, but is an array of instruction register structures.
- * Yes this wastes memory, but it executes much quicker.
- */
-
-struct IR_FIELDS
-{
- unsigned op:OP,
- dest: DEST,
- src1: SOURCE1,
- src2: SOURCE2;
- int ltncy,
- extime,
- /* Writeback priority. */
- wb_pri;
- /* Immediate size. */
- unsigned imm_flags:2,
- /* Register source 1 used. */
- rs1_used:1,
- /* Register source 2 used. */
- rs2_used:1,
- /* Register source/dest. used. */
- rsd_used:1,
- /* Complement. */
- c_flag:1,
- /* Upper half word. */
- u_flag:1,
- /* Execute next. */
- n_flag:1,
- /* Uses writeback slot. */
- wb_flag:1,
- /* Dest size. */
- dest_64:1,
- /* Source 1 size. */
- s1_64:1,
- /* Source 2 size. */
- s2_64:1,
- scale_flag:1,
- /* Scaled register. */
- brk_flg:1;
-};
-
-struct mem_segs
-{
- /* Pointer (returned by calloc) to segment. */
- struct mem_wrd *seg;
-
- /* Base load address from file headers. */
- unsigned long baseaddr;
-
- /* Ending address of segment. */
- unsigned long endaddr;
-
- /* Segment control flags (none defined). */
- int flags;
-};
-
-#define MAXSEGS (10) /* max number of segment allowed */
-#define MEMSEGSIZE (sizeof(struct mem_segs))/* size of mem_segs structure */
-
-#if 0
-#define BRK_RD (0x01) /* break on memory read */
-#define BRK_WR (0x02) /* break on memory write */
-#define BRK_EXEC (0x04) /* break on execution */
-#define BRK_CNT (0x08) /* break on terminal count */
-#endif
-
-struct mem_wrd
-{
- /* Simulator instruction break down. */
- struct IR_FIELDS opcode;
- union {
- /* Memory element break down. */
- unsigned long l;
- unsigned short s[2];
- unsigned char c[4];
- } mem;
-};
-
-/* Size of each 32 bit memory model. */
-#define MEMWRDSIZE (sizeof (struct mem_wrd))
-
-extern struct mem_segs memory[];
-extern struct PROCESSOR m78000;
-
-struct PROCESSOR
-{
- unsigned WORD
- /* Execute instruction pointer. */
- ip,
- /* Vector base register. */
- vbr,
- /* Processor status register. */
- psr;
-
- /* Source 1. */
- WORD S1bus,
- /* Source 2. */
- S2bus,
- /* Destination. */
- Dbus,
- /* Data address bus. */
- DAbus,
- ALU,
- /* Data registers. */
- Regs[REGs],
- /* Max clocks before reg is available. */
- time_left[REGs],
- /* Writeback priority of reg. */
- wb_pri[REGs],
- /* Integer unit control regs. */
- SFU0_regs[REGs],
- /* Floating point control regs. */
- SFU1_regs[REGs],
- Scoreboard[REGs],
- Vbr;
- unsigned WORD scoreboard,
- Psw,
- Tpsw;
- /* Waiting for a jump instruction. */
- FLAG jump_pending:1;
-};
-
-/* Size of immediate field. */
-
-#define i26bit 1
-#define i16bit 2
-#define i10bit 3
-
-/* Definitions for fields in psr. */
-
-#define psr_mode 31
-#define psr_rbo 30
-#define psr_ser 29
-#define psr_carry 28
-#define psr_sf7m 11
-#define psr_sf6m 10
-#define psr_sf5m 9
-#define psr_sf4m 8
-#define psr_sf3m 7
-#define psr_sf2m 6
-#define psr_sf1m 5
-#define psr_mam 4
-#define psr_inm 3
-#define psr_exm 2
-#define psr_trm 1
-#define psr_ovfm 0
-
-/* The 1 clock operations. */
-
-#define ADDU 1
-#define ADDC 2
-#define ADDUC 3
-#define ADD 4
-
-#define SUBU ADD+1
-#define SUBB ADD+2
-#define SUBUB ADD+3
-#define SUB ADD+4
-
-#define AND_ ADD+5
-#define OR ADD+6
-#define XOR ADD+7
-#define CMP ADD+8
-
-/* Loads. */
-
-#define LDAB CMP+1
-#define LDAH CMP+2
-#define LDA CMP+3
-#define LDAD CMP+4
-
-#define LDB LDAD+1
-#define LDH LDAD+2
-#define LD LDAD+3
-#define LDD LDAD+4
-#define LDBU LDAD+5
-#define LDHU LDAD+6
-
-/* Stores. */
-
-#define STB LDHU+1
-#define STH LDHU+2
-#define ST LDHU+3
-#define STD LDHU+4
-
-/* Exchange. */
-
-#define XMEMBU LDHU+5
-#define XMEM LDHU+6
-
-/* Branches. */
-
-#define JSR STD+1
-#define BSR STD+2
-#define BR STD+3
-#define JMP STD+4
-#define BB1 STD+5
-#define BB0 STD+6
-#define RTN STD+7
-#define BCND STD+8
-
-/* Traps. */
-
-#define TB1 BCND+1
-#define TB0 BCND+2
-#define TCND BCND+3
-#define RTE BCND+4
-#define TBND BCND+5
-
-/* Misc. */
-
-#define MUL TBND + 1
-#define DIV MUL +2
-#define DIVU MUL +3
-#define MASK MUL +4
-#define FF0 MUL +5
-#define FF1 MUL +6
-#define CLR MUL +7
-#define SET MUL +8
-#define EXT MUL +9
-#define EXTU MUL +10
-#define MAK MUL +11
-#define ROT MUL +12
-
-/* Control register manipulations. */
-
-#define LDCR ROT +1
-#define STCR ROT +2
-#define XCR ROT +3
-
-#define FLDCR ROT +4
-#define FSTCR ROT +5
-#define FXCR ROT +6
-
-#define NOP XCR +1
-
-/* Floating point instructions. */
-
-#define FADD NOP +1
-#define FSUB NOP +2
-#define FMUL NOP +3
-#define FDIV NOP +4
-#define FSQRT NOP +5
-#define FCMP NOP +6
-#define FIP NOP +7
-#define FLT NOP +8
-#define INT NOP +9
-#define NINT NOP +10
-#define TRNC NOP +11
-#define FLDC NOP +12
-#define FSTC NOP +13
-#define FXC NOP +14
-
-#define UEXT(src,off,wid) \
- ((((unsigned int)(src)) >> (off)) & ((1 << (wid)) - 1))
-
-#define SEXT(src,off,wid) \
- (((((int)(src))<<(32 - ((off) + (wid)))) >>(32 - (wid))) )
-
-#define MAKE(src,off,wid) \
- ((((unsigned int)(src)) & ((1 << (wid)) - 1)) << (off))
-
-#define opword(n) (unsigned long) (memaddr->mem.l)
-
-/* Constants and masks. */
-
-#define SFU0 0x80000000
-#define SFU1 0x84000000
-#define SFU7 0x9c000000
-#define RRI10 0xf0000000
-#define RRR 0xf4000000
-#define SFUMASK 0xfc00ffe0
-#define RRRMASK 0xfc00ffe0
-#define RRI10MASK 0xfc00fc00
-#define DEFMASK 0xfc000000
-#define CTRL 0x0000f000
-#define CTRLMASK 0xfc00f800
-
-/* Operands types. */
-
-enum operand_type
-{
- HEX = 1,
- REG = 2,
- CONT = 3,
- IND = 3,
- BF = 4,
- /* Scaled register. */
- REGSC = 5,
- /* Control register. */
- CRREG = 6,
- /* Floating point control register. */
- FCRREG = 7,
- PCREL = 8,
- CONDMASK = 9,
- /* Extended register. */
- XREG = 10,
- /* Decimal. */
- DEC = 11
-};
-
-/* Hashing specification. */
-
-#define HASHVAL 79
-
-/* Structure templates. */
-
-typedef struct
-{
- unsigned int offset;
- unsigned int width;
- enum operand_type type;
-} OPSPEC;
-
-struct SIM_FLAGS
-{
- int ltncy, /* latency (max number of clocks needed to execute). */
- extime, /* execution time (min number of clocks needed to execute). */
- wb_pri; /* writeback slot priority. */
- unsigned op:OP, /* simulator version of opcode. */
- imm_flags:2, /* 10,16 or 26 bit immediate flags. */
- rs1_used:1, /* register source 1 used. */
- rs2_used:1, /* register source 2 used. */
- rsd_used:1, /* register source/dest used. */
- c_flag:1, /* complement. */
- u_flag:1, /* upper half word. */
- n_flag:1, /* execute next. */
- wb_flag:1, /* uses writeback slot. */
- dest_64:1, /* double precision dest. */
- s1_64:1, /* double precision source 1. */
- s2_64:1, /* double precision source 2. */
- scale_flag:1; /* register is scaled. */
-};
-
-typedef struct INSTRUCTAB {
- unsigned int opcode;
- char *mnemonic;
- OPSPEC op1,op2,op3;
- struct SIM_FLAGS flgs;
-} INSTAB;
-
-
-#define NO_OPERAND {0,0,0}
-
-extern const INSTAB instructions[];
-
-/*
- * Local Variables:
- * fill-column: 131
- * End:
- */
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
deleted file mode 100644
index fb9094c26..000000000
--- a/include/opcode/mips.h
+++ /dev/null
@@ -1,1739 +0,0 @@
-/* mips.h. Mips opcode list for GDB, the GNU debugger.
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2008, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by Ralph Campbell and OSF
- Commented and modified by Ian Lance Taylor, Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _MIPS_H_
-#define _MIPS_H_
-
-/* These are bit masks and shift counts to use to access the various
- fields of an instruction. To retrieve the X field of an
- instruction, use the expression
- (i >> OP_SH_X) & OP_MASK_X
- To set the same field (to j), use
- i = (i &~ (OP_MASK_X << OP_SH_X)) | (j << OP_SH_X)
-
- Make sure you use fields that are appropriate for the instruction,
- of course.
-
- The 'i' format uses OP, RS, RT and IMMEDIATE.
-
- The 'j' format uses OP and TARGET.
-
- The 'r' format uses OP, RS, RT, RD, SHAMT and FUNCT.
-
- The 'b' format uses OP, RS, RT and DELTA.
-
- The floating point 'i' format uses OP, RS, RT and IMMEDIATE.
-
- The floating point 'r' format uses OP, FMT, FT, FS, FD and FUNCT.
-
- A breakpoint instruction uses OP, CODE and SPEC (10 bits of the
- breakpoint instruction are not defined; Kane says the breakpoint
- code field in BREAK is 20 bits; yet MIPS assemblers and debuggers
- only use ten bits). An optional two-operand form of break/sdbbp
- allows the lower ten bits to be set too, and MIPS32 and later
- architectures allow 20 bits to be set with a signal operand
- (using CODE20).
-
- The syscall instruction uses CODE20.
-
- The general coprocessor instructions use COPZ. */
-
-#define OP_MASK_OP 0x3f
-#define OP_SH_OP 26
-#define OP_MASK_RS 0x1f
-#define OP_SH_RS 21
-#define OP_MASK_FR 0x1f
-#define OP_SH_FR 21
-#define OP_MASK_FMT 0x1f
-#define OP_SH_FMT 21
-#define OP_MASK_BCC 0x7
-#define OP_SH_BCC 18
-#define OP_MASK_CODE 0x3ff
-#define OP_SH_CODE 16
-#define OP_MASK_CODE2 0x3ff
-#define OP_SH_CODE2 6
-#define OP_MASK_RT 0x1f
-#define OP_SH_RT 16
-#define OP_MASK_FT 0x1f
-#define OP_SH_FT 16
-#define OP_MASK_CACHE 0x1f
-#define OP_SH_CACHE 16
-#define OP_MASK_RD 0x1f
-#define OP_SH_RD 11
-#define OP_MASK_FS 0x1f
-#define OP_SH_FS 11
-#define OP_MASK_PREFX 0x1f
-#define OP_SH_PREFX 11
-#define OP_MASK_CCC 0x7
-#define OP_SH_CCC 8
-#define OP_MASK_CODE20 0xfffff /* 20 bit syscall/breakpoint code. */
-#define OP_SH_CODE20 6
-#define OP_MASK_SHAMT 0x1f
-#define OP_SH_SHAMT 6
-#define OP_MASK_EXTLSB OP_MASK_SHAMT
-#define OP_SH_EXTLSB OP_SH_SHAMT
-#define OP_MASK_STYPE OP_MASK_SHAMT
-#define OP_SH_STYPE OP_SH_SHAMT
-#define OP_MASK_FD 0x1f
-#define OP_SH_FD 6
-#define OP_MASK_TARGET 0x3ffffff
-#define OP_SH_TARGET 0
-#define OP_MASK_COPZ 0x1ffffff
-#define OP_SH_COPZ 0
-#define OP_MASK_IMMEDIATE 0xffff
-#define OP_SH_IMMEDIATE 0
-#define OP_MASK_DELTA 0xffff
-#define OP_SH_DELTA 0
-#define OP_MASK_FUNCT 0x3f
-#define OP_SH_FUNCT 0
-#define OP_MASK_SPEC 0x3f
-#define OP_SH_SPEC 0
-#define OP_SH_LOCC 8 /* FP condition code. */
-#define OP_SH_HICC 18 /* FP condition code. */
-#define OP_MASK_CC 0x7
-#define OP_SH_COP1NORM 25 /* Normal COP1 encoding. */
-#define OP_MASK_COP1NORM 0x1 /* a single bit. */
-#define OP_SH_COP1SPEC 21 /* COP1 encodings. */
-#define OP_MASK_COP1SPEC 0xf
-#define OP_MASK_COP1SCLR 0x4
-#define OP_MASK_COP1CMP 0x3
-#define OP_SH_COP1CMP 4
-#define OP_SH_FORMAT 21 /* FP short format field. */
-#define OP_MASK_FORMAT 0x7
-#define OP_SH_TRUE 16
-#define OP_MASK_TRUE 0x1
-#define OP_SH_GE 17
-#define OP_MASK_GE 0x01
-#define OP_SH_UNSIGNED 16
-#define OP_MASK_UNSIGNED 0x1
-#define OP_SH_HINT 16
-#define OP_MASK_HINT 0x1f
-#define OP_SH_MMI 0 /* Multimedia (parallel) op. */
-#define OP_MASK_MMI 0x3f
-#define OP_SH_MMISUB 6
-#define OP_MASK_MMISUB 0x1f
-#define OP_MASK_PERFREG 0x1f /* Performance monitoring. */
-#define OP_SH_PERFREG 1
-#define OP_SH_SEL 0 /* Coprocessor select field. */
-#define OP_MASK_SEL 0x7 /* The sel field of mfcZ and mtcZ. */
-#define OP_SH_CODE19 6 /* 19 bit wait code. */
-#define OP_MASK_CODE19 0x7ffff
-#define OP_SH_ALN 21
-#define OP_MASK_ALN 0x7
-#define OP_SH_VSEL 21
-#define OP_MASK_VSEL 0x1f
-#define OP_MASK_VECBYTE 0x7 /* Selector field is really 4 bits,
- but 0x8-0xf don't select bytes. */
-#define OP_SH_VECBYTE 22
-#define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */
-#define OP_SH_VECALIGN 21
-#define OP_MASK_INSMSB 0x1f /* "ins" MSB. */
-#define OP_SH_INSMSB 11
-#define OP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */
-#define OP_SH_EXTMSBD 11
-
-/* MIPS DSP ASE */
-#define OP_SH_DSPACC 11
-#define OP_MASK_DSPACC 0x3
-#define OP_SH_DSPACC_S 21
-#define OP_MASK_DSPACC_S 0x3
-#define OP_SH_DSPSFT 20
-#define OP_MASK_DSPSFT 0x3f
-#define OP_SH_DSPSFT_7 19
-#define OP_MASK_DSPSFT_7 0x7f
-#define OP_SH_SA3 21
-#define OP_MASK_SA3 0x7
-#define OP_SH_SA4 21
-#define OP_MASK_SA4 0xf
-#define OP_SH_IMM8 16
-#define OP_MASK_IMM8 0xff
-#define OP_SH_IMM10 16
-#define OP_MASK_IMM10 0x3ff
-#define OP_SH_WRDSP 11
-#define OP_MASK_WRDSP 0x3f
-#define OP_SH_RDDSP 16
-#define OP_MASK_RDDSP 0x3f
-#define OP_SH_BP 11
-#define OP_MASK_BP 0x3
-
-/* MIPS MT ASE */
-#define OP_SH_MT_U 5
-#define OP_MASK_MT_U 0x1
-#define OP_SH_MT_H 4
-#define OP_MASK_MT_H 0x1
-#define OP_SH_MTACC_T 18
-#define OP_MASK_MTACC_T 0x3
-#define OP_SH_MTACC_D 13
-#define OP_MASK_MTACC_D 0x3
-
-/* MIPS MCU ASE */
-#define OP_MASK_3BITPOS 0x7
-#define OP_SH_3BITPOS 12
-#define OP_MASK_OFFSET12 0xfff
-#define OP_SH_OFFSET12 0
-
-#define OP_OP_COP0 0x10
-#define OP_OP_COP1 0x11
-#define OP_OP_COP2 0x12
-#define OP_OP_COP3 0x13
-#define OP_OP_LWC1 0x31
-#define OP_OP_LWC2 0x32
-#define OP_OP_LWC3 0x33 /* a.k.a. pref */
-#define OP_OP_LDC1 0x35
-#define OP_OP_LDC2 0x36
-#define OP_OP_LDC3 0x37 /* a.k.a. ld */
-#define OP_OP_SWC1 0x39
-#define OP_OP_SWC2 0x3a
-#define OP_OP_SWC3 0x3b
-#define OP_OP_SDC1 0x3d
-#define OP_OP_SDC2 0x3e
-#define OP_OP_SDC3 0x3f /* a.k.a. sd */
-
-/* Values in the 'VSEL' field. */
-#define MDMX_FMTSEL_IMM_QH 0x1d
-#define MDMX_FMTSEL_IMM_OB 0x1e
-#define MDMX_FMTSEL_VEC_QH 0x15
-#define MDMX_FMTSEL_VEC_OB 0x16
-
-/* UDI */
-#define OP_SH_UDI1 6
-#define OP_MASK_UDI1 0x1f
-#define OP_SH_UDI2 6
-#define OP_MASK_UDI2 0x3ff
-#define OP_SH_UDI3 6
-#define OP_MASK_UDI3 0x7fff
-#define OP_SH_UDI4 6
-#define OP_MASK_UDI4 0xfffff
-
-/* Octeon */
-#define OP_SH_BBITIND 16
-#define OP_MASK_BBITIND 0x1f
-#define OP_SH_CINSPOS 6
-#define OP_MASK_CINSPOS 0x1f
-#define OP_SH_CINSLM1 11
-#define OP_MASK_CINSLM1 0x1f
-#define OP_SH_SEQI 6
-#define OP_MASK_SEQI 0x3ff
-
-/* Loongson */
-#define OP_SH_OFFSET_A 6
-#define OP_MASK_OFFSET_A 0xff
-#define OP_SH_OFFSET_B 3
-#define OP_MASK_OFFSET_B 0xff
-#define OP_SH_OFFSET_C 6
-#define OP_MASK_OFFSET_C 0x1ff
-#define OP_SH_RZ 0
-#define OP_MASK_RZ 0x1f
-#define OP_SH_FZ 0
-#define OP_MASK_FZ 0x1f
-
-/* Every MICROMIPSOP_X definition requires a corresponding OP_X
- definition, and vice versa. This simplifies various parts
- of the operand handling in GAS. The fields below only exist
- in the microMIPS encoding, so define each one to have an empty
- range. */
-#define OP_MASK_CODE10 0
-#define OP_SH_CODE10 0
-#define OP_MASK_TRAP 0
-#define OP_SH_TRAP 0
-#define OP_MASK_OFFSET10 0
-#define OP_SH_OFFSET10 0
-#define OP_MASK_RS3 0
-#define OP_SH_RS3 0
-#define OP_MASK_MB 0
-#define OP_SH_MB 0
-#define OP_MASK_MC 0
-#define OP_SH_MC 0
-#define OP_MASK_MD 0
-#define OP_SH_MD 0
-#define OP_MASK_ME 0
-#define OP_SH_ME 0
-#define OP_MASK_MF 0
-#define OP_SH_MF 0
-#define OP_MASK_MG 0
-#define OP_SH_MG 0
-#define OP_MASK_MH 0
-#define OP_SH_MH 0
-#define OP_MASK_MI 0
-#define OP_SH_MI 0
-#define OP_MASK_MJ 0
-#define OP_SH_MJ 0
-#define OP_MASK_ML 0
-#define OP_SH_ML 0
-#define OP_MASK_MM 0
-#define OP_SH_MM 0
-#define OP_MASK_MN 0
-#define OP_SH_MN 0
-#define OP_MASK_MP 0
-#define OP_SH_MP 0
-#define OP_MASK_MQ 0
-#define OP_SH_MQ 0
-#define OP_MASK_IMMA 0
-#define OP_SH_IMMA 0
-#define OP_MASK_IMMB 0
-#define OP_SH_IMMB 0
-#define OP_MASK_IMMC 0
-#define OP_SH_IMMC 0
-#define OP_MASK_IMMF 0
-#define OP_SH_IMMF 0
-#define OP_MASK_IMMG 0
-#define OP_SH_IMMG 0
-#define OP_MASK_IMMH 0
-#define OP_SH_IMMH 0
-#define OP_MASK_IMMI 0
-#define OP_SH_IMMI 0
-#define OP_MASK_IMMJ 0
-#define OP_SH_IMMJ 0
-#define OP_MASK_IMML 0
-#define OP_SH_IMML 0
-#define OP_MASK_IMMM 0
-#define OP_SH_IMMM 0
-#define OP_MASK_IMMN 0
-#define OP_SH_IMMN 0
-#define OP_MASK_IMMO 0
-#define OP_SH_IMMO 0
-#define OP_MASK_IMMP 0
-#define OP_SH_IMMP 0
-#define OP_MASK_IMMQ 0
-#define OP_SH_IMMQ 0
-#define OP_MASK_IMMU 0
-#define OP_SH_IMMU 0
-#define OP_MASK_IMMW 0
-#define OP_SH_IMMW 0
-#define OP_MASK_IMMX 0
-#define OP_SH_IMMX 0
-#define OP_MASK_IMMY 0
-#define OP_SH_IMMY 0
-
-/* This structure holds information for a particular instruction. */
-
-struct mips_opcode
-{
- /* The name of the instruction. */
- const char *name;
- /* A string describing the arguments for this instruction. */
- const char *args;
- /* The basic opcode for the instruction. When assembling, this
- opcode is modified by the arguments to produce the actual opcode
- that is used. If pinfo is INSN_MACRO, then this is 0. */
- unsigned long match;
- /* If pinfo is not INSN_MACRO, then this is a bit mask for the
- relevant portions of the opcode when disassembling. If the
- actual opcode anded with the match field equals the opcode field,
- then we have found the correct instruction. If pinfo is
- INSN_MACRO, then this field is the macro identifier. */
- unsigned long mask;
- /* For a macro, this is INSN_MACRO. Otherwise, it is a collection
- of bits describing the instruction, notably any relevant hazard
- information. */
- unsigned long pinfo;
- /* A collection of additional bits describing the instruction. */
- unsigned long pinfo2;
- /* A collection of bits describing the instruction sets of which this
- instruction or macro is a member. */
- unsigned long membership;
-};
-
-/* These are the characters which may appear in the args field of an
- instruction. They appear in the order in which the fields appear
- when the instruction is used. Commas and parentheses in the args
- string are ignored when assembling, and written into the output
- when disassembling.
-
- Each of these characters corresponds to a mask field defined above.
-
- "1" 5 bit sync type (OP_*_SHAMT)
- "<" 5 bit shift amount (OP_*_SHAMT)
- ">" shift amount between 32 and 63, stored after subtracting 32 (OP_*_SHAMT)
- "a" 26 bit target address (OP_*_TARGET)
- "b" 5 bit base register (OP_*_RS)
- "c" 10 bit breakpoint code (OP_*_CODE)
- "d" 5 bit destination register specifier (OP_*_RD)
- "h" 5 bit prefx hint (OP_*_PREFX)
- "i" 16 bit unsigned immediate (OP_*_IMMEDIATE)
- "j" 16 bit signed immediate (OP_*_DELTA)
- "k" 5 bit cache opcode in target register position (OP_*_CACHE)
- Also used for immediate operands in vr5400 vector insns.
- "o" 16 bit signed offset (OP_*_DELTA)
- "p" 16 bit PC relative branch target address (OP_*_DELTA)
- "q" 10 bit extra breakpoint code (OP_*_CODE2)
- "r" 5 bit same register used as both source and target (OP_*_RS)
- "s" 5 bit source register specifier (OP_*_RS)
- "t" 5 bit target register (OP_*_RT)
- "u" 16 bit upper 16 bits of address (OP_*_IMMEDIATE)
- "v" 5 bit same register used as both source and destination (OP_*_RS)
- "w" 5 bit same register used as both target and destination (OP_*_RT)
- "U" 5 bit same destination register in both OP_*_RD and OP_*_RT
- (used by clo and clz)
- "C" 25 bit coprocessor function code (OP_*_COPZ)
- "B" 20 bit syscall/breakpoint function code (OP_*_CODE20)
- "J" 19 bit wait function code (OP_*_CODE19)
- "x" accept and ignore register name
- "z" must be zero register
- "K" 5 bit Hardware Register (rdhwr instruction) (OP_*_RD)
- "+A" 5 bit ins/ext/dins/dext/dinsm/dextm position, which becomes
- LSB (OP_*_SHAMT; OP_*_EXTLSB or OP_*_STYPE may be used for
- microMIPS compatibility).
- Enforces: 0 <= pos < 32.
- "+B" 5 bit ins/dins size, which becomes MSB (OP_*_INSMSB).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 0 < (pos+size) <= 32.
- "+C" 5 bit ext/dext size, which becomes MSBD (OP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 0 < (pos+size) <= 32.
- (Also used by "dext" w/ different limits, but limits for
- that are checked by the M_DEXT macro.)
- "+E" 5 bit dinsu/dextu position, which becomes LSB-32 (OP_*_SHAMT).
- Enforces: 32 <= pos < 64.
- "+F" 5 bit "dinsm/dinsu" size, which becomes MSB-32 (OP_*_INSMSB).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
- "+G" 5 bit "dextm" size, which becomes MSBD-32 (OP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
- "+H" 5 bit "dextu" size, which becomes MSBD (OP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
-
- Floating point instructions:
- "D" 5 bit destination register (OP_*_FD)
- "M" 3 bit compare condition code (OP_*_CCC) (only used for mips4 and up)
- "N" 3 bit branch condition code (OP_*_BCC) (only used for mips4 and up)
- "S" 5 bit fs source 1 register (OP_*_FS)
- "T" 5 bit ft source 2 register (OP_*_FT)
- "R" 5 bit fr source 3 register (OP_*_FR)
- "V" 5 bit same register used as floating source and destination (OP_*_FS)
- "W" 5 bit same register used as floating target and destination (OP_*_FT)
-
- Coprocessor instructions:
- "E" 5 bit target register (OP_*_RT)
- "G" 5 bit destination register (OP_*_RD)
- "H" 3 bit sel field for (d)mtc* and (d)mfc* (OP_*_SEL)
- "P" 5 bit performance-monitor register (OP_*_PERFREG)
- "e" 5 bit vector register byte specifier (OP_*_VECBYTE)
- "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN)
- see also "k" above
- "+D" Combined destination register ("G") and sel ("H") for CP0 ops,
- for pretty-printing in disassembly only.
-
- Macro instructions:
- "A" General 32 bit expression
- "I" 32 bit immediate (value placed in imm_expr).
- "+I" 32 bit immediate (value placed in imm2_expr).
- "F" 64 bit floating point constant in .rdata
- "L" 64 bit floating point constant in .lit8
- "f" 32 bit floating point constant
- "l" 32 bit floating point constant in .lit4
-
- MDMX instruction operands (note that while these use the FP register
- fields, they accept both $fN and $vN names for the registers):
- "O" MDMX alignment offset (OP_*_ALN)
- "Q" MDMX vector/scalar/immediate source (OP_*_VSEL and OP_*_FT)
- "X" MDMX destination register (OP_*_FD)
- "Y" MDMX source register (OP_*_FS)
- "Z" MDMX source register (OP_*_FT)
-
- DSP ASE usage:
- "2" 2 bit unsigned immediate for byte align (OP_*_BP)
- "3" 3 bit unsigned immediate (OP_*_SA3)
- "4" 4 bit unsigned immediate (OP_*_SA4)
- "5" 8 bit unsigned immediate (OP_*_IMM8)
- "6" 5 bit unsigned immediate (OP_*_RS)
- "7" 2 bit dsp accumulator register (OP_*_DSPACC)
- "8" 6 bit unsigned immediate (OP_*_WRDSP)
- "9" 2 bit dsp accumulator register (OP_*_DSPACC_S)
- "0" 6 bit signed immediate (OP_*_DSPSFT)
- ":" 7 bit signed immediate (OP_*_DSPSFT_7)
- "'" 6 bit unsigned immediate (OP_*_RDDSP)
- "@" 10 bit signed immediate (OP_*_IMM10)
-
- MT ASE usage:
- "!" 1 bit usermode flag (OP_*_MT_U)
- "$" 1 bit load high flag (OP_*_MT_H)
- "*" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_T)
- "&" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_D)
- "g" 5 bit coprocessor 1 and 2 destination register (OP_*_RD)
- "+t" 5 bit coprocessor 0 destination register (OP_*_RT)
- "+T" 5 bit coprocessor 0 destination register (OP_*_RT) - disassembly only
-
- MCU ASE usage:
- "~" 12 bit offset (OP_*_OFFSET12)
- "\" 3 bit position for aset and aclr (OP_*_3BITPOS)
-
- UDI immediates:
- "+1" UDI immediate bits 6-10
- "+2" UDI immediate bits 6-15
- "+3" UDI immediate bits 6-20
- "+4" UDI immediate bits 6-25
-
- Octeon:
- "+x" Bit index field of bbit. Enforces: 0 <= index < 32.
- "+X" Bit index field of bbit aliasing bbit32. Matches if 32 <= index < 64,
- otherwise skips to next candidate.
- "+p" Position field of cins/cins32/exts/exts32. Enforces 0 <= pos < 32.
- "+P" Position field of cins/exts aliasing cins32/exts32. Matches if
- 32 <= pos < 64, otherwise skips to next candidate.
- "+Q" Immediate field of seqi/snei. Enforces -512 <= imm < 512.
- "+s" Length-minus-one field of cins/exts. Enforces: 0 <= lenm1 < 32.
- "+S" Length-minus-one field of cins32/exts32 or cins/exts aliasing
- cint32/exts32. Enforces non-negative value and that
- pos + lenm1 < 32 or pos + lenm1 < 64 depending whether previous
- position field is "+p" or "+P".
-
- Loongson-3A:
- "+a" 8-bit signed offset in bit 6 (OP_*_OFFSET_A)
- "+b" 8-bit signed offset in bit 3 (OP_*_OFFSET_B)
- "+c" 9-bit signed offset in bit 6 (OP_*_OFFSET_C)
- "+z" 5-bit rz register (OP_*_RZ)
- "+Z" 5-bit fz register (OP_*_FZ)
-
- Other:
- "()" parens surrounding optional value
- "," separates operands
- "[]" brackets around index for vector-op scalar operand specifier (vr5400)
- "+" Start of extension sequence.
-
- Characters used so far, for quick reference when adding more:
- "1234567890"
- "%[]<>(),+:'@!$*&\~"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklopqrstuvwxz"
-
- Extension character sequences used so far ("+" followed by the
- following), for quick reference when adding more:
- "1234"
- "ABCDEFGHIPQSTXZ"
- "abcpstxz"
-*/
-
-/* These are the bits which may be set in the pinfo field of an
- instructions, if it is not equal to INSN_MACRO. */
-
-/* Modifies the general purpose register in OP_*_RD. */
-#define INSN_WRITE_GPR_D 0x00000001
-/* Modifies the general purpose register in OP_*_RT. */
-#define INSN_WRITE_GPR_T 0x00000002
-/* Modifies general purpose register 31. */
-#define INSN_WRITE_GPR_31 0x00000004
-/* Modifies the floating point register in OP_*_FD. */
-#define INSN_WRITE_FPR_D 0x00000008
-/* Modifies the floating point register in OP_*_FS. */
-#define INSN_WRITE_FPR_S 0x00000010
-/* Modifies the floating point register in OP_*_FT. */
-#define INSN_WRITE_FPR_T 0x00000020
-/* Reads the general purpose register in OP_*_RS. */
-#define INSN_READ_GPR_S 0x00000040
-/* Reads the general purpose register in OP_*_RT. */
-#define INSN_READ_GPR_T 0x00000080
-/* Reads the floating point register in OP_*_FS. */
-#define INSN_READ_FPR_S 0x00000100
-/* Reads the floating point register in OP_*_FT. */
-#define INSN_READ_FPR_T 0x00000200
-/* Reads the floating point register in OP_*_FR. */
-#define INSN_READ_FPR_R 0x00000400
-/* Modifies coprocessor condition code. */
-#define INSN_WRITE_COND_CODE 0x00000800
-/* Reads coprocessor condition code. */
-#define INSN_READ_COND_CODE 0x00001000
-/* TLB operation. */
-#define INSN_TLB 0x00002000
-/* Reads coprocessor register other than floating point register. */
-#define INSN_COP 0x00004000
-/* Instruction loads value from memory, requiring delay. */
-#define INSN_LOAD_MEMORY_DELAY 0x00008000
-/* Instruction loads value from coprocessor, requiring delay. */
-#define INSN_LOAD_COPROC_DELAY 0x00010000
-/* Instruction has unconditional branch delay slot. */
-#define INSN_UNCOND_BRANCH_DELAY 0x00020000
-/* Instruction has conditional branch delay slot. */
-#define INSN_COND_BRANCH_DELAY 0x00040000
-/* Conditional branch likely: if branch not taken, insn nullified. */
-#define INSN_COND_BRANCH_LIKELY 0x00080000
-/* Moves to coprocessor register, requiring delay. */
-#define INSN_COPROC_MOVE_DELAY 0x00100000
-/* Loads coprocessor register from memory, requiring delay. */
-#define INSN_COPROC_MEMORY_DELAY 0x00200000
-/* Reads the HI register. */
-#define INSN_READ_HI 0x00400000
-/* Reads the LO register. */
-#define INSN_READ_LO 0x00800000
-/* Modifies the HI register. */
-#define INSN_WRITE_HI 0x01000000
-/* Modifies the LO register. */
-#define INSN_WRITE_LO 0x02000000
-/* Not to be placed in a branch delay slot, either architecturally
- or for ease of handling (such as with instructions that take a trap). */
-#define INSN_NO_DELAY_SLOT 0x04000000
-/* Instruction stores value into memory. */
-#define INSN_STORE_MEMORY 0x08000000
-/* Instruction uses single precision floating point. */
-#define FP_S 0x10000000
-/* Instruction uses double precision floating point. */
-#define FP_D 0x20000000
-/* Instruction is part of the tx39's integer multiply family. */
-#define INSN_MULT 0x40000000
-/* Modifies the general purpose register in MICROMIPSOP_*_RS. */
-#define INSN_WRITE_GPR_S 0x80000000
-/* Instruction is actually a macro. It should be ignored by the
- disassembler, and requires special treatment by the assembler. */
-#define INSN_MACRO 0xffffffff
-
-/* These are the bits which may be set in the pinfo2 field of an
- instruction. */
-
-/* Instruction is a simple alias (I.E. "move" for daddu/addu/or) */
-#define INSN2_ALIAS 0x00000001
-/* Instruction reads MDMX accumulator. */
-#define INSN2_READ_MDMX_ACC 0x00000002
-/* Instruction writes MDMX accumulator. */
-#define INSN2_WRITE_MDMX_ACC 0x00000004
-/* Macro uses single-precision floating-point instructions. This should
- only be set for macros. For instructions, FP_S in pinfo carries the
- same information. */
-#define INSN2_M_FP_S 0x00000008
-/* Macro uses double-precision floating-point instructions. This should
- only be set for macros. For instructions, FP_D in pinfo carries the
- same information. */
-#define INSN2_M_FP_D 0x00000010
-/* Modifies the general purpose register in OP_*_RZ. */
-#define INSN2_WRITE_GPR_Z 0x00000020
-/* Modifies the floating point register in OP_*_FZ. */
-#define INSN2_WRITE_FPR_Z 0x00000040
-/* Reads the general purpose register in OP_*_RZ. */
-#define INSN2_READ_GPR_Z 0x00000080
-/* Reads the floating point register in OP_*_FZ. */
-#define INSN2_READ_FPR_Z 0x00000100
-/* Reads the general purpose register in OP_*_RD. */
-#define INSN2_READ_GPR_D 0x00000200
-
-
-/* Instruction has a branch delay slot that requires a 16-bit instruction. */
-#define INSN2_BRANCH_DELAY_16BIT 0x00000400
-/* Instruction has a branch delay slot that requires a 32-bit instruction. */
-#define INSN2_BRANCH_DELAY_32BIT 0x00000800
-/* Reads the floating point register in MICROMIPSOP_*_FD. */
-#define INSN2_READ_FPR_D 0x00001000
-/* Modifies the general purpose register in MICROMIPSOP_*_MB. */
-#define INSN2_WRITE_GPR_MB 0x00002000
-/* Reads the general purpose register in MICROMIPSOP_*_MC. */
-#define INSN2_READ_GPR_MC 0x00004000
-/* Reads/writes the general purpose register in MICROMIPSOP_*_MD. */
-#define INSN2_MOD_GPR_MD 0x00008000
-/* Reads the general purpose register in MICROMIPSOP_*_ME. */
-#define INSN2_READ_GPR_ME 0x00010000
-/* Reads/writes the general purpose register in MICROMIPSOP_*_MF. */
-#define INSN2_MOD_GPR_MF 0x00020000
-/* Reads the general purpose register in MICROMIPSOP_*_MG. */
-#define INSN2_READ_GPR_MG 0x00040000
-/* Reads the general purpose register in MICROMIPSOP_*_MJ. */
-#define INSN2_READ_GPR_MJ 0x00080000
-/* Modifies the general purpose register in MICROMIPSOP_*_MJ. */
-#define INSN2_WRITE_GPR_MJ 0x00100000
-/* Reads the general purpose register in MICROMIPSOP_*_MP. */
-#define INSN2_READ_GPR_MP 0x00200000
-/* Modifies the general purpose register in MICROMIPSOP_*_MP. */
-#define INSN2_WRITE_GPR_MP 0x00400000
-/* Reads the general purpose register in MICROMIPSOP_*_MQ. */
-#define INSN2_READ_GPR_MQ 0x00800000
-/* Reads/Writes the stack pointer ($29). */
-#define INSN2_MOD_SP 0x01000000
-/* Reads the RA ($31) register. */
-#define INSN2_READ_GPR_31 0x02000000
-/* Reads the global pointer ($28). */
-#define INSN2_READ_GP 0x04000000
-/* Reads the program counter ($pc). */
-#define INSN2_READ_PC 0x08000000
-/* Is an unconditional branch insn. */
-#define INSN2_UNCOND_BRANCH 0x10000000
-/* Is a conditional branch insn. */
-#define INSN2_COND_BRANCH 0x20000000
-/* Modifies the general purpose registers in MICROMIPSOP_*_MH/I. */
-#define INSN2_WRITE_GPR_MHI 0x40000000
-/* Reads the general purpose registers in MICROMIPSOP_*_MM/N. */
-#define INSN2_READ_GPR_MMN 0x80000000
-
-/* Masks used to mark instructions to indicate which MIPS ISA level
- they were introduced in. INSN_ISA_MASK masks an enumeration that
- specifies the base ISA level(s). The remainder of a 32-bit
- word constructed using these macros is a bitmask of the remaining
- INSN_* values below. */
-
-#define INSN_ISA_MASK 0x0000000ful
-
-/* We cannot start at zero due to ISA_UNKNOWN below. */
-#define INSN_ISA1 1
-#define INSN_ISA2 2
-#define INSN_ISA3 3
-#define INSN_ISA4 4
-#define INSN_ISA5 5
-#define INSN_ISA32 6
-#define INSN_ISA32R2 7
-#define INSN_ISA64 8
-#define INSN_ISA64R2 9
-/* Below this point the INSN_* values correspond to combinations of ISAs.
- They are only for use in the opcodes table to indicate membership of
- a combination of ISAs that cannot be expressed using the usual inclusion
- ordering on the above INSN_* values. */
-#define INSN_ISA3_32 10
-#define INSN_ISA3_32R2 11
-#define INSN_ISA4_32 12
-#define INSN_ISA4_32R2 13
-#define INSN_ISA5_32R2 14
-
-/* Given INSN_ISA* values X and Y, where X ranges over INSN_ISA1 through
- INSN_ISA5_32R2 and Y ranges over INSN_ISA1 through INSN_ISA64R2,
- this table describes whether at least one of the ISAs described by X
- is/are implemented by ISA Y. (Think of Y as the ISA level supported by
- a particular core and X as the ISA level(s) at which a certain instruction
- is defined.) The ISA(s) described by X is/are implemented by Y iff
- (mips_isa_table[(Y & INSN_ISA_MASK) - 1] >> ((X & INSN_ISA_MASK) - 1)) & 1
- is non-zero. */
-static const unsigned int mips_isa_table[] =
- { 0x0001, 0x0003, 0x0607, 0x1e0f, 0x3e1f, 0x0a23, 0x3e63, 0x3ebf, 0x3fff };
-
-/* Masks used for Chip specific instructions. */
-#define INSN_CHIP_MASK 0xc3ff0f20
-
-/* Cavium Networks Octeon instructions. */
-#define INSN_OCTEON 0x00000800
-#define INSN_OCTEONP 0x00000200
-#define INSN_OCTEON2 0x00000100
-
-/* Masks used for MIPS-defined ASEs. */
-#define INSN_ASE_MASK 0x3c00f010
-
-/* DSP ASE */
-#define INSN_DSP 0x00001000
-#define INSN_DSP64 0x00002000
-
-/* 0x00004000 is unused. */
-
-/* MIPS-3D ASE */
-#define INSN_MIPS3D 0x00008000
-
-/* MIPS R4650 instruction. */
-#define INSN_4650 0x00010000
-/* LSI R4010 instruction. */
-#define INSN_4010 0x00020000
-/* NEC VR4100 instruction. */
-#define INSN_4100 0x00040000
-/* Toshiba R3900 instruction. */
-#define INSN_3900 0x00080000
-/* MIPS R10000 instruction. */
-#define INSN_10000 0x00100000
-/* Broadcom SB-1 instruction. */
-#define INSN_SB1 0x00200000
-/* NEC VR4111/VR4181 instruction. */
-#define INSN_4111 0x00400000
-/* NEC VR4120 instruction. */
-#define INSN_4120 0x00800000
-/* NEC VR5400 instruction. */
-#define INSN_5400 0x01000000
-/* NEC VR5500 instruction. */
-#define INSN_5500 0x02000000
-
-/* MDMX ASE */
-#define INSN_MDMX 0x04000000
-/* MT ASE */
-#define INSN_MT 0x08000000
-/* SmartMIPS ASE */
-#define INSN_SMARTMIPS 0x10000000
-/* DSP R2 ASE */
-#define INSN_DSPR2 0x20000000
-/* ST Microelectronics Loongson 2E. */
-#define INSN_LOONGSON_2E 0x40000000
-/* ST Microelectronics Loongson 2F. */
-#define INSN_LOONGSON_2F 0x80000000
-/* Loongson 3A. */
-#define INSN_LOONGSON_3A 0x00000400
-/* RMI Xlr instruction */
-#define INSN_XLR 0x00000020
-
-/* MCU (MicroController) ASE */
-#define INSN_MCU 0x00000010
-
-/* MIPS ISA defines, use instead of hardcoding ISA level. */
-
-#define ISA_UNKNOWN 0 /* Gas internal use. */
-#define ISA_MIPS1 INSN_ISA1
-#define ISA_MIPS2 INSN_ISA2
-#define ISA_MIPS3 INSN_ISA3
-#define ISA_MIPS4 INSN_ISA4
-#define ISA_MIPS5 INSN_ISA5
-
-#define ISA_MIPS32 INSN_ISA32
-#define ISA_MIPS64 INSN_ISA64
-
-#define ISA_MIPS32R2 INSN_ISA32R2
-#define ISA_MIPS64R2 INSN_ISA64R2
-
-
-/* CPU defines, use instead of hardcoding processor number. Keep this
- in sync with bfd/archures.c in order for machine selection to work. */
-#define CPU_UNKNOWN 0 /* Gas internal use. */
-#define CPU_R3000 3000
-#define CPU_R3900 3900
-#define CPU_R4000 4000
-#define CPU_R4010 4010
-#define CPU_VR4100 4100
-#define CPU_R4111 4111
-#define CPU_VR4120 4120
-#define CPU_R4300 4300
-#define CPU_R4400 4400
-#define CPU_R4600 4600
-#define CPU_R4650 4650
-#define CPU_R5000 5000
-#define CPU_VR5400 5400
-#define CPU_VR5500 5500
-#define CPU_R6000 6000
-#define CPU_RM7000 7000
-#define CPU_R8000 8000
-#define CPU_RM9000 9000
-#define CPU_R10000 10000
-#define CPU_R12000 12000
-#define CPU_R14000 14000
-#define CPU_R16000 16000
-#define CPU_MIPS16 16
-#define CPU_MIPS32 32
-#define CPU_MIPS32R2 33
-#define CPU_MIPS5 5
-#define CPU_MIPS64 64
-#define CPU_MIPS64R2 65
-#define CPU_SB1 12310201 /* octal 'SB', 01. */
-#define CPU_LOONGSON_2E 3001
-#define CPU_LOONGSON_2F 3002
-#define CPU_LOONGSON_3A 3003
-#define CPU_OCTEON 6501
-#define CPU_OCTEONP 6601
-#define CPU_OCTEON2 6502
-#define CPU_XLR 887682 /* decimal 'XLR' */
-
-/* Test for membership in an ISA including chip specific ISAs. INSN
- is pointer to an element of the opcode table; ISA is the specified
- ISA/ASE bitmask to test against; and CPU is the CPU specific ISA to
- test, or zero if no CPU specific ISA test is desired. */
-
-#define OPCODE_IS_MEMBER(insn, isa, cpu) \
- (((isa & INSN_ISA_MASK) != 0 \
- && ((insn)->membership & INSN_ISA_MASK) != 0 \
- && ((mips_isa_table [(isa & INSN_ISA_MASK) - 1] >> \
- (((insn)->membership & INSN_ISA_MASK) - 1)) & 1) != 0) \
- || ((isa & ~INSN_ISA_MASK) \
- & ((insn)->membership & ~INSN_ISA_MASK)) != 0 \
- || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \
- || (cpu == CPU_RM7000 && ((insn)->membership & INSN_4650) != 0) \
- || (cpu == CPU_RM9000 && ((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) \
- || ((cpu == CPU_R10000 || cpu == CPU_R12000 || cpu == CPU_R14000 \
- || cpu == CPU_R16000) \
- && ((insn)->membership & INSN_10000) != 0) \
- || (cpu == CPU_SB1 && ((insn)->membership & INSN_SB1) != 0) \
- || (cpu == CPU_R4111 && ((insn)->membership & INSN_4111) != 0) \
- || (cpu == CPU_VR4120 && ((insn)->membership & INSN_4120) != 0) \
- || (cpu == CPU_VR5400 && ((insn)->membership & INSN_5400) != 0) \
- || (cpu == CPU_VR5500 && ((insn)->membership & INSN_5500) != 0) \
- || (cpu == CPU_LOONGSON_2E \
- && ((insn)->membership & INSN_LOONGSON_2E) != 0) \
- || (cpu == CPU_LOONGSON_2F \
- && ((insn)->membership & INSN_LOONGSON_2F) != 0) \
- || (cpu == CPU_LOONGSON_3A \
- && ((insn)->membership & INSN_LOONGSON_3A) != 0) \
- || (cpu == CPU_OCTEON \
- && ((insn)->membership & INSN_OCTEON) != 0) \
- || (cpu == CPU_OCTEONP \
- && ((insn)->membership & INSN_OCTEONP) != 0) \
- || (cpu == CPU_OCTEON2 \
- && ((insn)->membership & INSN_OCTEON2) != 0) \
- || (cpu == CPU_XLR && ((insn)->membership & INSN_XLR) != 0) \
- || 0) /* Please keep this term for easier source merging. */
-
-/* This is a list of macro expanded instructions.
-
- _I appended means immediate
- _A appended means address
- _AB appended means address with base register
- _D appended means 64 bit floating point constant
- _S appended means 32 bit floating point constant. */
-
-enum
-{
- M_ABS,
- M_ACLR_AB,
- M_ACLR_OB,
- M_ADD_I,
- M_ADDU_I,
- M_AND_I,
- M_ASET_AB,
- M_ASET_OB,
- M_BALIGN,
- M_BC1FL,
- M_BC1TL,
- M_BC2FL,
- M_BC2TL,
- M_BEQ,
- M_BEQ_I,
- M_BEQL,
- M_BEQL_I,
- M_BGE,
- M_BGEL,
- M_BGE_I,
- M_BGEL_I,
- M_BGEU,
- M_BGEUL,
- M_BGEU_I,
- M_BGEUL_I,
- M_BGEZ,
- M_BGEZL,
- M_BGEZALL,
- M_BGT,
- M_BGTL,
- M_BGT_I,
- M_BGTL_I,
- M_BGTU,
- M_BGTUL,
- M_BGTU_I,
- M_BGTUL_I,
- M_BGTZ,
- M_BGTZL,
- M_BLE,
- M_BLEL,
- M_BLE_I,
- M_BLEL_I,
- M_BLEU,
- M_BLEUL,
- M_BLEU_I,
- M_BLEUL_I,
- M_BLEZ,
- M_BLEZL,
- M_BLT,
- M_BLTL,
- M_BLT_I,
- M_BLTL_I,
- M_BLTU,
- M_BLTUL,
- M_BLTU_I,
- M_BLTUL_I,
- M_BLTZ,
- M_BLTZL,
- M_BLTZALL,
- M_BNE,
- M_BNEL,
- M_BNE_I,
- M_BNEL_I,
- M_CACHE_AB,
- M_CACHE_OB,
- M_DABS,
- M_DADD_I,
- M_DADDU_I,
- M_DDIV_3,
- M_DDIV_3I,
- M_DDIVU_3,
- M_DDIVU_3I,
- M_DEXT,
- M_DINS,
- M_DIV_3,
- M_DIV_3I,
- M_DIVU_3,
- M_DIVU_3I,
- M_DLA_AB,
- M_DLCA_AB,
- M_DLI,
- M_DMUL,
- M_DMUL_I,
- M_DMULO,
- M_DMULO_I,
- M_DMULOU,
- M_DMULOU_I,
- M_DREM_3,
- M_DREM_3I,
- M_DREMU_3,
- M_DREMU_3I,
- M_DSUB_I,
- M_DSUBU_I,
- M_DSUBU_I_2,
- M_J_A,
- M_JAL_1,
- M_JAL_2,
- M_JAL_A,
- M_JALS_1,
- M_JALS_2,
- M_JALS_A,
- M_L_DOB,
- M_L_DAB,
- M_LA_AB,
- M_LB_A,
- M_LB_AB,
- M_LBU_A,
- M_LBU_AB,
- M_LCA_AB,
- M_LD_A,
- M_LD_OB,
- M_LD_AB,
- M_LDC1_AB,
- M_LDC2_AB,
- M_LDC2_OB,
- M_LDC3_AB,
- M_LDL_AB,
- M_LDL_OB,
- M_LDM_AB,
- M_LDM_OB,
- M_LDP_AB,
- M_LDP_OB,
- M_LDR_AB,
- M_LDR_OB,
- M_LH_A,
- M_LH_AB,
- M_LHU_A,
- M_LHU_AB,
- M_LI,
- M_LI_D,
- M_LI_DD,
- M_LI_S,
- M_LI_SS,
- M_LL_AB,
- M_LL_OB,
- M_LLD_AB,
- M_LLD_OB,
- M_LS_A,
- M_LW_A,
- M_LW_AB,
- M_LWC0_A,
- M_LWC0_AB,
- M_LWC1_A,
- M_LWC1_AB,
- M_LWC2_A,
- M_LWC2_AB,
- M_LWC2_OB,
- M_LWC3_A,
- M_LWC3_AB,
- M_LWL_A,
- M_LWL_AB,
- M_LWL_OB,
- M_LWM_AB,
- M_LWM_OB,
- M_LWP_AB,
- M_LWP_OB,
- M_LWR_A,
- M_LWR_AB,
- M_LWR_OB,
- M_LWU_AB,
- M_LWU_OB,
- M_MSGSND,
- M_MSGLD,
- M_MSGLD_T,
- M_MSGWAIT,
- M_MSGWAIT_T,
- M_MOVE,
- M_MUL,
- M_MUL_I,
- M_MULO,
- M_MULO_I,
- M_MULOU,
- M_MULOU_I,
- M_NOR_I,
- M_OR_I,
- M_PREF_AB,
- M_PREF_OB,
- M_REM_3,
- M_REM_3I,
- M_REMU_3,
- M_REMU_3I,
- M_DROL,
- M_ROL,
- M_DROL_I,
- M_ROL_I,
- M_DROR,
- M_ROR,
- M_DROR_I,
- M_ROR_I,
- M_S_DA,
- M_S_DOB,
- M_S_DAB,
- M_S_S,
- M_SAA_AB,
- M_SAA_OB,
- M_SAAD_AB,
- M_SAAD_OB,
- M_SC_AB,
- M_SC_OB,
- M_SCD_AB,
- M_SCD_OB,
- M_SD_A,
- M_SD_OB,
- M_SD_AB,
- M_SDC1_AB,
- M_SDC2_AB,
- M_SDC2_OB,
- M_SDC3_AB,
- M_SDL_AB,
- M_SDL_OB,
- M_SDM_AB,
- M_SDM_OB,
- M_SDP_AB,
- M_SDP_OB,
- M_SDR_AB,
- M_SDR_OB,
- M_SEQ,
- M_SEQ_I,
- M_SGE,
- M_SGE_I,
- M_SGEU,
- M_SGEU_I,
- M_SGT,
- M_SGT_I,
- M_SGTU,
- M_SGTU_I,
- M_SLE,
- M_SLE_I,
- M_SLEU,
- M_SLEU_I,
- M_SLT_I,
- M_SLTU_I,
- M_SNE,
- M_SNE_I,
- M_SB_A,
- M_SB_AB,
- M_SH_A,
- M_SH_AB,
- M_SW_A,
- M_SW_AB,
- M_SWC0_A,
- M_SWC0_AB,
- M_SWC1_A,
- M_SWC1_AB,
- M_SWC2_A,
- M_SWC2_AB,
- M_SWC2_OB,
- M_SWC3_A,
- M_SWC3_AB,
- M_SWL_A,
- M_SWL_AB,
- M_SWL_OB,
- M_SWM_AB,
- M_SWM_OB,
- M_SWP_AB,
- M_SWP_OB,
- M_SWR_A,
- M_SWR_AB,
- M_SWR_OB,
- M_SUB_I,
- M_SUBU_I,
- M_SUBU_I_2,
- M_TEQ_I,
- M_TGE_I,
- M_TGEU_I,
- M_TLT_I,
- M_TLTU_I,
- M_TNE_I,
- M_TRUNCWD,
- M_TRUNCWS,
- M_ULD,
- M_ULD_A,
- M_ULH,
- M_ULH_A,
- M_ULHU,
- M_ULHU_A,
- M_ULW,
- M_ULW_A,
- M_USH,
- M_USH_A,
- M_USW,
- M_USW_A,
- M_USD,
- M_USD_A,
- M_XOR_I,
- M_COP0,
- M_COP1,
- M_COP2,
- M_COP3,
- M_NUM_MACROS
-};
-
-
-/* The order of overloaded instructions matters. Label arguments and
- register arguments look the same. Instructions that can have either
- for arguments must apear in the correct order in this table for the
- assembler to pick the right one. In other words, entries with
- immediate operands must apear after the same instruction with
- registers.
-
- Many instructions are short hand for other instructions (i.e., The
- jal <register> instruction is short for jalr <register>). */
-
-extern const struct mips_opcode mips_builtin_opcodes[];
-extern const int bfd_mips_num_builtin_opcodes;
-extern struct mips_opcode *mips_opcodes;
-extern int bfd_mips_num_opcodes;
-#define NUMOPCODES bfd_mips_num_opcodes
-
-
-/* The rest of this file adds definitions for the mips16 TinyRISC
- processor. */
-
-/* These are the bitmasks and shift counts used for the different
- fields in the instruction formats. Other than OP, no masks are
- provided for the fixed portions of an instruction, since they are
- not needed.
-
- The I format uses IMM11.
-
- The RI format uses RX and IMM8.
-
- The RR format uses RX, and RY.
-
- The RRI format uses RX, RY, and IMM5.
-
- The RRR format uses RX, RY, and RZ.
-
- The RRI_A format uses RX, RY, and IMM4.
-
- The SHIFT format uses RX, RY, and SHAMT.
-
- The I8 format uses IMM8.
-
- The I8_MOVR32 format uses RY and REGR32.
-
- The IR_MOV32R format uses REG32R and MOV32Z.
-
- The I64 format uses IMM8.
-
- The RI64 format uses RY and IMM5.
- */
-
-#define MIPS16OP_MASK_OP 0x1f
-#define MIPS16OP_SH_OP 11
-#define MIPS16OP_MASK_IMM11 0x7ff
-#define MIPS16OP_SH_IMM11 0
-#define MIPS16OP_MASK_RX 0x7
-#define MIPS16OP_SH_RX 8
-#define MIPS16OP_MASK_IMM8 0xff
-#define MIPS16OP_SH_IMM8 0
-#define MIPS16OP_MASK_RY 0x7
-#define MIPS16OP_SH_RY 5
-#define MIPS16OP_MASK_IMM5 0x1f
-#define MIPS16OP_SH_IMM5 0
-#define MIPS16OP_MASK_RZ 0x7
-#define MIPS16OP_SH_RZ 2
-#define MIPS16OP_MASK_IMM4 0xf
-#define MIPS16OP_SH_IMM4 0
-#define MIPS16OP_MASK_REGR32 0x1f
-#define MIPS16OP_SH_REGR32 0
-#define MIPS16OP_MASK_REG32R 0x1f
-#define MIPS16OP_SH_REG32R 3
-#define MIPS16OP_EXTRACT_REG32R(i) ((((i) >> 5) & 7) | ((i) & 0x18))
-#define MIPS16OP_MASK_MOVE32Z 0x7
-#define MIPS16OP_SH_MOVE32Z 0
-#define MIPS16OP_MASK_IMM6 0x3f
-#define MIPS16OP_SH_IMM6 5
-
-/* These are the characters which may appears in the args field of a MIPS16
- instruction. They appear in the order in which the fields appear when the
- instruction is used. Commas and parentheses in the args string are ignored
- when assembling, and written into the output when disassembling.
-
- "y" 3 bit register (MIPS16OP_*_RY)
- "x" 3 bit register (MIPS16OP_*_RX)
- "z" 3 bit register (MIPS16OP_*_RZ)
- "Z" 3 bit register (MIPS16OP_*_MOVE32Z)
- "v" 3 bit same register as source and destination (MIPS16OP_*_RX)
- "w" 3 bit same register as source and destination (MIPS16OP_*_RY)
- "0" zero register ($0)
- "S" stack pointer ($sp or $29)
- "P" program counter
- "R" return address register ($ra or $31)
- "X" 5 bit MIPS register (MIPS16OP_*_REGR32)
- "Y" 5 bit MIPS register (MIPS16OP_*_REG32R)
- "6" 6 bit unsigned break code (MIPS16OP_*_IMM6)
- "a" 26 bit jump address
- "e" 11 bit extension value
- "l" register list for entry instruction
- "L" register list for exit instruction
-
- The remaining codes may be extended. Except as otherwise noted,
- the full extended operand is a 16 bit signed value.
- "<" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 5 bit unsigned)
- ">" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 5 bit unsigned)
- "[" 3 bit unsigned shift count * 0 (MIPS16OP_*_RZ) (full 6 bit unsigned)
- "]" 3 bit unsigned shift count * 0 (MIPS16OP_*_RX) (full 6 bit unsigned)
- "4" 4 bit signed immediate * 0 (MIPS16OP_*_IMM4) (full 15 bit signed)
- "5" 5 bit unsigned immediate * 0 (MIPS16OP_*_IMM5)
- "H" 5 bit unsigned immediate * 2 (MIPS16OP_*_IMM5)
- "W" 5 bit unsigned immediate * 4 (MIPS16OP_*_IMM5)
- "D" 5 bit unsigned immediate * 8 (MIPS16OP_*_IMM5)
- "j" 5 bit signed immediate * 0 (MIPS16OP_*_IMM5)
- "8" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8)
- "V" 8 bit unsigned immediate * 4 (MIPS16OP_*_IMM8)
- "C" 8 bit unsigned immediate * 8 (MIPS16OP_*_IMM8)
- "U" 8 bit unsigned immediate * 0 (MIPS16OP_*_IMM8) (full 16 bit unsigned)
- "k" 8 bit signed immediate * 0 (MIPS16OP_*_IMM8)
- "K" 8 bit signed immediate * 8 (MIPS16OP_*_IMM8)
- "p" 8 bit conditional branch address (MIPS16OP_*_IMM8)
- "q" 11 bit branch address (MIPS16OP_*_IMM11)
- "A" 8 bit PC relative address * 4 (MIPS16OP_*_IMM8)
- "B" 5 bit PC relative address * 8 (MIPS16OP_*_IMM5)
- "E" 5 bit PC relative address * 4 (MIPS16OP_*_IMM5)
- "m" 7 bit register list for save instruction (18 bit extended)
- "M" 7 bit register list for restore instruction (18 bit extended)
- */
-
-/* Save/restore encoding for the args field when all 4 registers are
- either saved as arguments or saved/restored as statics. */
-#define MIPS16_ALL_ARGS 0xe
-#define MIPS16_ALL_STATICS 0xb
-
-/* For the mips16, we use the same opcode table format and a few of
- the same flags. However, most of the flags are different. */
-
-/* Modifies the register in MIPS16OP_*_RX. */
-#define MIPS16_INSN_WRITE_X 0x00000001
-/* Modifies the register in MIPS16OP_*_RY. */
-#define MIPS16_INSN_WRITE_Y 0x00000002
-/* Modifies the register in MIPS16OP_*_RZ. */
-#define MIPS16_INSN_WRITE_Z 0x00000004
-/* Modifies the T ($24) register. */
-#define MIPS16_INSN_WRITE_T 0x00000008
-/* Modifies the SP ($29) register. */
-#define MIPS16_INSN_WRITE_SP 0x00000010
-/* Modifies the RA ($31) register. */
-#define MIPS16_INSN_WRITE_31 0x00000020
-/* Modifies the general purpose register in MIPS16OP_*_REG32R. */
-#define MIPS16_INSN_WRITE_GPR_Y 0x00000040
-/* Reads the register in MIPS16OP_*_RX. */
-#define MIPS16_INSN_READ_X 0x00000080
-/* Reads the register in MIPS16OP_*_RY. */
-#define MIPS16_INSN_READ_Y 0x00000100
-/* Reads the register in MIPS16OP_*_MOVE32Z. */
-#define MIPS16_INSN_READ_Z 0x00000200
-/* Reads the T ($24) register. */
-#define MIPS16_INSN_READ_T 0x00000400
-/* Reads the SP ($29) register. */
-#define MIPS16_INSN_READ_SP 0x00000800
-/* Reads the RA ($31) register. */
-#define MIPS16_INSN_READ_31 0x00001000
-/* Reads the program counter. */
-#define MIPS16_INSN_READ_PC 0x00002000
-/* Reads the general purpose register in MIPS16OP_*_REGR32. */
-#define MIPS16_INSN_READ_GPR_X 0x00004000
-/* Is an unconditional branch insn. */
-#define MIPS16_INSN_UNCOND_BRANCH 0x00008000
-/* Is a conditional branch insn. */
-#define MIPS16_INSN_COND_BRANCH 0x00010000
-
-/* The following flags have the same value for the mips16 opcode
- table:
-
- INSN_ISA3
-
- INSN_UNCOND_BRANCH_DELAY
- INSN_COND_BRANCH_DELAY
- INSN_COND_BRANCH_LIKELY (never used)
- INSN_READ_HI
- INSN_READ_LO
- INSN_WRITE_HI
- INSN_WRITE_LO
- INSN_TRAP
- FP_D (never used)
- */
-
-extern const struct mips_opcode mips16_opcodes[];
-extern const int bfd_mips16_num_opcodes;
-
-/* These are the bit masks and shift counts used for the different fields
- in the microMIPS instruction formats. No masks are provided for the
- fixed portions of an instruction, since they are not needed. */
-
-#define MICROMIPSOP_MASK_IMMEDIATE 0xffff
-#define MICROMIPSOP_SH_IMMEDIATE 0
-#define MICROMIPSOP_MASK_DELTA 0xffff
-#define MICROMIPSOP_SH_DELTA 0
-#define MICROMIPSOP_MASK_CODE10 0x3ff
-#define MICROMIPSOP_SH_CODE10 16 /* 10-bit wait code. */
-#define MICROMIPSOP_MASK_TRAP 0xf
-#define MICROMIPSOP_SH_TRAP 12 /* 4-bit trap code. */
-#define MICROMIPSOP_MASK_SHAMT 0x1f
-#define MICROMIPSOP_SH_SHAMT 11
-#define MICROMIPSOP_MASK_TARGET 0x3ffffff
-#define MICROMIPSOP_SH_TARGET 0
-#define MICROMIPSOP_MASK_EXTLSB 0x1f /* "ext" LSB. */
-#define MICROMIPSOP_SH_EXTLSB 6
-#define MICROMIPSOP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */
-#define MICROMIPSOP_SH_EXTMSBD 11
-#define MICROMIPSOP_MASK_INSMSB 0x1f /* "ins" MSB. */
-#define MICROMIPSOP_SH_INSMSB 11
-#define MICROMIPSOP_MASK_CODE 0x3ff
-#define MICROMIPSOP_SH_CODE 16 /* 10-bit higher break code. */
-#define MICROMIPSOP_MASK_CODE2 0x3ff
-#define MICROMIPSOP_SH_CODE2 6 /* 10-bit lower break code. */
-#define MICROMIPSOP_MASK_CACHE 0x1f
-#define MICROMIPSOP_SH_CACHE 21 /* 5-bit cache op. */
-#define MICROMIPSOP_MASK_SEL 0x7
-#define MICROMIPSOP_SH_SEL 11
-#define MICROMIPSOP_MASK_OFFSET12 0xfff
-#define MICROMIPSOP_SH_OFFSET12 0
-#define MICROMIPSOP_MASK_3BITPOS 0x7
-#define MICROMIPSOP_SH_3BITPOS 21
-#define MICROMIPSOP_MASK_STYPE 0x1f
-#define MICROMIPSOP_SH_STYPE 16
-#define MICROMIPSOP_MASK_OFFSET10 0x3ff
-#define MICROMIPSOP_SH_OFFSET10 6
-#define MICROMIPSOP_MASK_RS 0x1f
-#define MICROMIPSOP_SH_RS 16
-#define MICROMIPSOP_MASK_RT 0x1f
-#define MICROMIPSOP_SH_RT 21
-#define MICROMIPSOP_MASK_RD 0x1f
-#define MICROMIPSOP_SH_RD 11
-#define MICROMIPSOP_MASK_FS 0x1f
-#define MICROMIPSOP_SH_FS 16
-#define MICROMIPSOP_MASK_FT 0x1f
-#define MICROMIPSOP_SH_FT 21
-#define MICROMIPSOP_MASK_FD 0x1f
-#define MICROMIPSOP_SH_FD 11
-#define MICROMIPSOP_MASK_FR 0x1f
-#define MICROMIPSOP_SH_FR 6
-#define MICROMIPSOP_MASK_RS3 0x1f
-#define MICROMIPSOP_SH_RS3 6
-#define MICROMIPSOP_MASK_PREFX 0x1f
-#define MICROMIPSOP_SH_PREFX 11
-#define MICROMIPSOP_MASK_BCC 0x7
-#define MICROMIPSOP_SH_BCC 18
-#define MICROMIPSOP_MASK_CCC 0x7
-#define MICROMIPSOP_SH_CCC 13
-#define MICROMIPSOP_MASK_COPZ 0x7fffff
-#define MICROMIPSOP_SH_COPZ 3
-
-#define MICROMIPSOP_MASK_MB 0x7
-#define MICROMIPSOP_SH_MB 23
-#define MICROMIPSOP_MASK_MC 0x7
-#define MICROMIPSOP_SH_MC 4
-#define MICROMIPSOP_MASK_MD 0x7
-#define MICROMIPSOP_SH_MD 7
-#define MICROMIPSOP_MASK_ME 0x7
-#define MICROMIPSOP_SH_ME 1
-#define MICROMIPSOP_MASK_MF 0x7
-#define MICROMIPSOP_SH_MF 3
-#define MICROMIPSOP_MASK_MG 0x7
-#define MICROMIPSOP_SH_MG 0
-#define MICROMIPSOP_MASK_MH 0x7
-#define MICROMIPSOP_SH_MH 7
-#define MICROMIPSOP_MASK_MI 0x7
-#define MICROMIPSOP_SH_MI 7
-#define MICROMIPSOP_MASK_MJ 0x1f
-#define MICROMIPSOP_SH_MJ 0
-#define MICROMIPSOP_MASK_ML 0x7
-#define MICROMIPSOP_SH_ML 4
-#define MICROMIPSOP_MASK_MM 0x7
-#define MICROMIPSOP_SH_MM 1
-#define MICROMIPSOP_MASK_MN 0x7
-#define MICROMIPSOP_SH_MN 4
-#define MICROMIPSOP_MASK_MP 0x1f
-#define MICROMIPSOP_SH_MP 5
-#define MICROMIPSOP_MASK_MQ 0x7
-#define MICROMIPSOP_SH_MQ 7
-
-#define MICROMIPSOP_MASK_IMMA 0x7f
-#define MICROMIPSOP_SH_IMMA 0
-#define MICROMIPSOP_MASK_IMMB 0x7
-#define MICROMIPSOP_SH_IMMB 1
-#define MICROMIPSOP_MASK_IMMC 0xf
-#define MICROMIPSOP_SH_IMMC 0
-#define MICROMIPSOP_MASK_IMMD 0x3ff
-#define MICROMIPSOP_SH_IMMD 0
-#define MICROMIPSOP_MASK_IMME 0x7f
-#define MICROMIPSOP_SH_IMME 0
-#define MICROMIPSOP_MASK_IMMF 0xf
-#define MICROMIPSOP_SH_IMMF 0
-#define MICROMIPSOP_MASK_IMMG 0xf
-#define MICROMIPSOP_SH_IMMG 0
-#define MICROMIPSOP_MASK_IMMH 0xf
-#define MICROMIPSOP_SH_IMMH 0
-#define MICROMIPSOP_MASK_IMMI 0x7f
-#define MICROMIPSOP_SH_IMMI 0
-#define MICROMIPSOP_MASK_IMMJ 0xf
-#define MICROMIPSOP_SH_IMMJ 0
-#define MICROMIPSOP_MASK_IMML 0xf
-#define MICROMIPSOP_SH_IMML 0
-#define MICROMIPSOP_MASK_IMMM 0x7
-#define MICROMIPSOP_SH_IMMM 1
-#define MICROMIPSOP_MASK_IMMN 0x3
-#define MICROMIPSOP_SH_IMMN 4
-#define MICROMIPSOP_MASK_IMMO 0xf
-#define MICROMIPSOP_SH_IMMO 0
-#define MICROMIPSOP_MASK_IMMP 0x1f
-#define MICROMIPSOP_SH_IMMP 0
-#define MICROMIPSOP_MASK_IMMQ 0x7fffff
-#define MICROMIPSOP_SH_IMMQ 0
-#define MICROMIPSOP_MASK_IMMU 0x1f
-#define MICROMIPSOP_SH_IMMU 0
-#define MICROMIPSOP_MASK_IMMW 0x3f
-#define MICROMIPSOP_SH_IMMW 1
-#define MICROMIPSOP_MASK_IMMX 0xf
-#define MICROMIPSOP_SH_IMMX 1
-#define MICROMIPSOP_MASK_IMMY 0x1ff
-#define MICROMIPSOP_SH_IMMY 1
-
-/* Placeholders for fields that only exist in the traditional 32-bit
- instruction encoding; see the comment above for details. */
-#define MICROMIPSOP_MASK_CODE20 0
-#define MICROMIPSOP_SH_CODE20 0
-#define MICROMIPSOP_MASK_PERFREG 0
-#define MICROMIPSOP_SH_PERFREG 0
-#define MICROMIPSOP_MASK_CODE19 0
-#define MICROMIPSOP_SH_CODE19 0
-#define MICROMIPSOP_MASK_ALN 0
-#define MICROMIPSOP_SH_ALN 0
-#define MICROMIPSOP_MASK_VECBYTE 0
-#define MICROMIPSOP_SH_VECBYTE 0
-#define MICROMIPSOP_MASK_VECALIGN 0
-#define MICROMIPSOP_SH_VECALIGN 0
-#define MICROMIPSOP_MASK_DSPACC 0
-#define MICROMIPSOP_SH_DSPACC 0
-#define MICROMIPSOP_MASK_DSPACC_S 0
-#define MICROMIPSOP_SH_DSPACC_S 0
-#define MICROMIPSOP_MASK_DSPSFT 0
-#define MICROMIPSOP_SH_DSPSFT 0
-#define MICROMIPSOP_MASK_DSPSFT_7 0
-#define MICROMIPSOP_SH_DSPSFT_7 0
-#define MICROMIPSOP_MASK_SA3 0
-#define MICROMIPSOP_SH_SA3 0
-#define MICROMIPSOP_MASK_SA4 0
-#define MICROMIPSOP_SH_SA4 0
-#define MICROMIPSOP_MASK_IMM8 0
-#define MICROMIPSOP_SH_IMM8 0
-#define MICROMIPSOP_MASK_IMM10 0
-#define MICROMIPSOP_SH_IMM10 0
-#define MICROMIPSOP_MASK_WRDSP 0
-#define MICROMIPSOP_SH_WRDSP 0
-#define MICROMIPSOP_MASK_RDDSP 0
-#define MICROMIPSOP_SH_RDDSP 0
-#define MICROMIPSOP_MASK_BP 0
-#define MICROMIPSOP_SH_BP 0
-#define MICROMIPSOP_MASK_MT_U 0
-#define MICROMIPSOP_SH_MT_U 0
-#define MICROMIPSOP_MASK_MT_H 0
-#define MICROMIPSOP_SH_MT_H 0
-#define MICROMIPSOP_MASK_MTACC_T 0
-#define MICROMIPSOP_SH_MTACC_T 0
-#define MICROMIPSOP_MASK_MTACC_D 0
-#define MICROMIPSOP_SH_MTACC_D 0
-#define MICROMIPSOP_MASK_BBITIND 0
-#define MICROMIPSOP_SH_BBITIND 0
-#define MICROMIPSOP_MASK_CINSPOS 0
-#define MICROMIPSOP_SH_CINSPOS 0
-#define MICROMIPSOP_MASK_CINSLM1 0
-#define MICROMIPSOP_SH_CINSLM1 0
-#define MICROMIPSOP_MASK_SEQI 0
-#define MICROMIPSOP_SH_SEQI 0
-#define MICROMIPSOP_SH_OFFSET_A 0
-#define MICROMIPSOP_MASK_OFFSET_A 0
-#define MICROMIPSOP_SH_OFFSET_B 0
-#define MICROMIPSOP_MASK_OFFSET_B 0
-#define MICROMIPSOP_SH_OFFSET_C 0
-#define MICROMIPSOP_MASK_OFFSET_C 0
-#define MICROMIPSOP_SH_RZ 0
-#define MICROMIPSOP_MASK_RZ 0
-#define MICROMIPSOP_SH_FZ 0
-#define MICROMIPSOP_MASK_FZ 0
-
-/* These are the characters which may appears in the args field of a microMIPS
- instruction. They appear in the order in which the fields appear
- when the instruction is used. Commas and parentheses in the args
- string are ignored when assembling, and written into the output
- when disassembling.
-
- The followings are for 16-bit microMIPS instructions.
-
- "ma" must be $28
- "mc" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MC) at bit 4
- The same register used as both source and target.
- "md" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MD) at bit 7
- "me" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_ME) at bit 1
- The same register used as both source and target.
- "mf" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MF) at bit 3
- "mg" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MG) at bit 0
- "mh" MIPS registers 4, 5, 6 (MICROMIPSOP_*_MH) at bit 7
- "mi" MIPS registers 5, 6, 7, 21, 22 (MICROMIPSOP_*_MI) at bit 7
- ("mh" and "mi" form a valid 3-bit register pair)
- "mj" 5-bit MIPS registers (MICROMIPSOP_*_MJ) at bit 0
- "ml" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_ML) at bit 4
- "mm" 3-bit MIPS registers 0, 2, 3, 16-20 (MICROMIPSOP_*_MM) at bit 1
- "mn" 3-bit MIPS registers 0, 2, 3, 16-20 (MICROMIPSOP_*_MN) at bit 4
- "mp" 5-bit MIPS registers (MICROMIPSOP_*_MP) at bit 5
- "mq" 3-bit MIPS registers 0, 2-7, 17 (MICROMIPSOP_*_MQ) at bit 7
- "mr" must be program counter
- "ms" must be $29
- "mt" must be the same as the previous register
- "mx" must be the same as the destination register
- "my" must be $31
- "mz" must be $0
-
- "mA" 7-bit immediate (-64 .. 63) << 2 (MICROMIPSOP_*_IMMA)
- "mB" 3-bit immediate (-1, 1, 4, 8, 12, 16, 20, 24) (MICROMIPSOP_*_IMMB)
- "mC" 4-bit immediate (1, 2, 3, 4, 7, 8, 15, 16, 31, 32, 63, 64, 128, 255,
- 32768, 65535) (MICROMIPSOP_*_IMMC)
- "mD" 10-bit branch address (-512 .. 511) << 1 (MICROMIPSOP_*_IMMD)
- "mE" 7-bit branch address (-64 .. 63) << 1 (MICROMIPSOP_*_IMME)
- "mF" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMMF)
- "mG" 4-bit immediate (-1 .. 14) (MICROMIPSOP_*_IMMG)
- "mH" 4-bit immediate (0 .. 15) << 1 (MICROMIPSOP_*_IMMH)
- "mI" 7-bit immediate (-1 .. 126) (MICROMIPSOP_*_IMMI)
- "mJ" 4-bit immediate (0 .. 15) << 2 (MICROMIPSOP_*_IMMJ)
- "mL" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMML)
- "mM" 3-bit immediate (1 .. 8) (MICROMIPSOP_*_IMMM)
- "mN" 2-bit immediate (0 .. 3) for register list (MICROMIPSOP_*_IMMN)
- "mO" 4-bit immediate (0 .. 15) (MICROMIPSOP_*_IMML)
- "mP" 5-bit immediate (0 .. 31) << 2 (MICROMIPSOP_*_IMMP)
- "mU" 5-bit immediate (0 .. 31) << 2 (MICROMIPSOP_*_IMMU)
- "mW" 6-bit immediate (0 .. 63) << 2 (MICROMIPSOP_*_IMMW)
- "mX" 4-bit immediate (-8 .. 7) (MICROMIPSOP_*_IMMX)
- "mY" 9-bit immediate (-258 .. -3, 2 .. 257) << 2 (MICROMIPSOP_*_IMMY)
- "mZ" must be zero
-
- In most cases 32-bit microMIPS instructions use the same characters
- as MIPS (with ADDIUPC being a notable exception, but there are some
- others too).
-
- "." 10-bit signed offset/number (MICROMIPSOP_*_OFFSET10)
- "1" 5-bit sync type (MICROMIPSOP_*_SHAMT)
- "<" 5-bit shift amount (MICROMIPSOP_*_SHAMT)
- ">" shift amount between 32 and 63, stored after subtracting 32
- (MICROMIPSOP_*_SHAMT)
- "\" 3-bit position for ASET and ACLR (MICROMIPSOP_*_3BITPOS)
- "|" 4-bit trap code (MICROMIPSOP_*_TRAP)
- "~" 12-bit signed offset (MICROMIPSOP_*_OFFSET12)
- "a" 26-bit target address (MICROMIPSOP_*_TARGET)
- "b" 5-bit base register (MICROMIPSOP_*_RS)
- "c" 10-bit higher breakpoint code (MICROMIPSOP_*_CODE)
- "d" 5-bit destination register specifier (MICROMIPSOP_*_RD)
- "h" 5-bit PREFX hint (MICROMIPSOP_*_PREFX)
- "i" 16-bit unsigned immediate (MICROMIPSOP_*_IMMEDIATE)
- "j" 16-bit signed immediate (MICROMIPSOP_*_DELTA)
- "k" 5-bit cache opcode in target register position (MICROMIPSOP_*_CACHE)
- "n" register list for 32-bit LWM/SWM instruction (MICROMIPSOP_*_RT)
- "o" 16-bit signed offset (MICROMIPSOP_*_DELTA)
- "p" 16-bit PC-relative branch target address (MICROMIPSOP_*_DELTA)
- "q" 10-bit lower breakpoint code (MICROMIPSOP_*_CODE2)
- "r" 5-bit same register used as both source and target (MICROMIPSOP_*_RS)
- "s" 5-bit source register specifier (MICROMIPSOP_*_RS)
- "t" 5-bit target register (MICROMIPSOP_*_RT)
- "u" 16-bit upper 16 bits of address (MICROMIPSOP_*_IMMEDIATE)
- "v" 5-bit same register used as both source and destination
- (MICROMIPSOP_*_RS)
- "w" 5-bit same register used as both target and destination
- (MICROMIPSOP_*_RT)
- "y" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3)
- "z" must be zero register
- "C" 23-bit coprocessor function code (MICROMIPSOP_*_COPZ)
- "B" 8-bit syscall/wait function code (MICROMIPSOP_*_CODE10)
- "K" 5-bit Hardware Register (RDHWR instruction) (MICROMIPSOP_*_RS)
-
- "+A" 5-bit INS/EXT/DINS/DEXT/DINSM/DEXTM position, which becomes
- LSB (MICROMIPSOP_*_EXTLSB).
- Enforces: 0 <= pos < 32.
- "+B" 5-bit INS/DINS size, which becomes MSB (MICROMIPSOP_*_INSMSB).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 0 < (pos+size) <= 32.
- "+C" 5-bit EXT/DEXT size, which becomes MSBD (MICROMIPSOP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 0 < (pos+size) <= 32.
- (Also used by DEXT w/ different limits, but limits for
- that are checked by the M_DEXT macro.)
- "+E" 5-bit DINSU/DEXTU position, which becomes LSB-32 (MICROMIPSOP_*_EXTLSB).
- Enforces: 32 <= pos < 64.
- "+F" 5-bit DINSM/DINSU size, which becomes MSB-32 (MICROMIPSOP_*_INSMSB).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
- "+G" 5-bit DEXTM size, which becomes MSBD-32 (MICROMIPSOP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
- "+H" 5-bit DEXTU size, which becomes MSBD (MICROMIPSOP_*_EXTMSBD).
- Requires that "+A" or "+E" occur first to set position.
- Enforces: 32 < (pos+size) <= 64.
-
- PC-relative addition (ADDIUPC) instruction:
- "mQ" 23-bit offset (-4194304 .. 4194303) << 2 (MICROMIPSOP_*_IMMQ)
- "mb" 3-bit MIPS registers 2-7, 16, 17 (MICROMIPSOP_*_MB) at bit 23
-
- Floating point instructions:
- "D" 5-bit destination register (MICROMIPSOP_*_FD)
- "M" 3-bit compare condition code (MICROMIPSOP_*_CCC)
- "N" 3-bit branch condition code (MICROMIPSOP_*_BCC)
- "R" 5-bit fr source 3 register (MICROMIPSOP_*_FR)
- "S" 5-bit fs source 1 register (MICROMIPSOP_*_FS)
- "T" 5-bit ft source 2 register (MICROMIPSOP_*_FT)
- "V" 5-bit same register used as floating source and destination or target
- (MICROMIPSOP_*_FS)
-
- Coprocessor instructions:
- "E" 5-bit target register (MICROMIPSOP_*_RT)
- "G" 5-bit destination register (MICROMIPSOP_*_RD)
- "H" 3-bit sel field for (D)MTC* and (D)MFC* (MICROMIPSOP_*_SEL)
- "+D" combined destination register ("G") and sel ("H") for CP0 ops,
- for pretty-printing in disassembly only
-
- Macro instructions:
- "A" general 32 bit expression
- "I" 32-bit immediate (value placed in imm_expr).
- "+I" 32-bit immediate (value placed in imm2_expr).
- "F" 64-bit floating point constant in .rdata
- "L" 64-bit floating point constant in .lit8
- "f" 32-bit floating point constant
- "l" 32-bit floating point constant in .lit4
-
- Other:
- "()" parens surrounding optional value
- "," separates operands
- "+" start of extension sequence
- "m" start of microMIPS extension sequence
-
- Characters used so far, for quick reference when adding more:
- "1234567890"
- "<>(),+.\|~"
- "ABCDEFGHI KLMN RST V "
- "abcd f hijklmnopqrstuvw yz"
-
- Extension character sequences used so far ("+" followed by the
- following), for quick reference when adding more:
- ""
- ""
- "ABCDEFGHI"
- ""
-
- Extension character sequences used so far ("m" followed by the
- following), for quick reference when adding more:
- ""
- ""
- " BCDEFGHIJ LMNOPQ U WXYZ"
- " bcdefghij lmn pq st xyz"
-*/
-
-extern const struct mips_opcode micromips_opcodes[];
-extern const int bfd_micromips_num_opcodes;
-
-/* A NOP insn impemented as "or at,at,zero".
- Used to implement -mfix-loongson2f. */
-#define LOONGSON2F_NOP_INSN 0x00200825
-
-#endif /* _MIPS_H_ */
diff --git a/include/opcode/mmix.h b/include/opcode/mmix.h
deleted file mode 100644
index f931545d6..000000000
--- a/include/opcode/mmix.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* mmix.h -- Header file for MMIX opcode table
- Copyright (C) 2001, 2003, 2010 Free Software Foundation, Inc.
- Written by Hans-Peter Nilsson (hp@bitrange.com)
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* We could have just a char*[] table indexed by the register number, but
- that would not allow for synonyms. The table is terminated with an
- entry with a NULL name. */
-struct mmix_spec_reg
-{
- const char *name;
- unsigned int number;
-};
-
-/* General indication of the type of instruction. */
-enum mmix_insn_type
- {
- mmix_type_pseudo,
- mmix_type_normal,
- mmix_type_branch,
- mmix_type_condbranch,
- mmix_type_memaccess_octa,
- mmix_type_memaccess_tetra,
- mmix_type_memaccess_wyde,
- mmix_type_memaccess_byte,
- mmix_type_memaccess_block,
- mmix_type_jsr
- };
-
-/* Type of operands an instruction takes. Use when parsing assembly code
- and disassembling. */
-enum mmix_operands_type
- {
- mmix_operands_none = 0,
-
- /* All operands are registers: "$X,$Y,$Z". */
- mmix_operands_regs,
-
- /* "$X,YZ", like SETH. */
- mmix_operands_reg_yz,
-
- /* The regular "$X,$Y,$Z|Z".
- The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is
- assumed. */
- mmix_operands_regs_z_opt,
-
- /* The regular "$X,$Y,$Z|Z". */
- mmix_operands_regs_z,
-
- /* "Address"; only JMP. Zero operands allowed unless GNU syntax. */
- mmix_operands_jmp,
-
- /* "$X|X,$Y,$Z|Z": PUSHGO; like "3", but X can be expressed as an
- integer. */
- mmix_operands_pushgo,
-
- /* Two registers or a register and a byte, like FLOT, possibly with
- rounding: "$X,$Z|Z" or "$X,ROUND_MODE,$Z|Z". */
- mmix_operands_roundregs_z,
-
- /* "X,YZ", POP. Unless GNU syntax, zero or one operand is allowed. */
- mmix_operands_pop,
-
- /* Two registers, possibly with rounding: "$X,$Z" or
- "$X,ROUND_MODE,$Z". */
- mmix_operands_roundregs,
-
- /* "XYZ", like SYNC. */
- mmix_operands_sync,
-
- /* "X,$Y,$Z|Z", like SYNCD. */
- mmix_operands_x_regs_z,
-
- /* "$X,Y,$Z|Z", like NEG and NEGU. The Y field is optional, default 0. */
- mmix_operands_neg,
-
- /* "$X,Address, like GETA or branches. */
- mmix_operands_regaddr,
-
- /* "$X|X,Address, like PUSHJ. */
- mmix_operands_pushj,
-
- /* "$X,spec_reg"; GET. */
- mmix_operands_get,
-
- /* "spec_reg,$Z|Z"; PUT. */
- mmix_operands_put,
-
- /* Two registers, "$X,$Y". */
- mmix_operands_set,
-
- /* "$X,0"; SAVE. */
- mmix_operands_save,
-
- /* "0,$Z"; UNSAVE. */
- mmix_operands_unsave,
-
- /* "X,Y,Z"; like SWYM or TRAP. Zero (or 1 if GNU syntax) to three
- operands, interpreted as 0; XYZ; X, YZ and X, Y, Z. */
- mmix_operands_xyz_opt,
-
- /* Just "Z", like RESUME. Unless GNU syntax, the operand can be omitted
- and will then be assumed zero. */
- mmix_operands_resume,
-
- /* These are specials to handle that pseudo-directives are specified
- like ordinary insns when being mmixal-compatible. They signify the
- specific pseudo-directive rather than the operands type. */
-
- /* LOC. */
- mmix_operands_loc,
-
- /* PREFIX. */
- mmix_operands_prefix,
-
- /* BYTE. */
- mmix_operands_byte,
-
- /* WYDE. */
- mmix_operands_wyde,
-
- /* TETRA. */
- mmix_operands_tetra,
-
- /* OCTA. */
- mmix_operands_octa,
-
- /* LOCAL. */
- mmix_operands_local,
-
- /* BSPEC. */
- mmix_operands_bspec,
-
- /* ESPEC. */
- mmix_operands_espec,
- };
-
-struct mmix_opcode
- {
- const char *name;
- unsigned long match;
- unsigned long lose;
- enum mmix_operands_type operands;
-
- /* This is used by the disassembly function. */
- enum mmix_insn_type type;
- };
-
-/* Declare the actual tables. */
-extern const struct mmix_opcode mmix_opcodes[];
-
-/* This one is terminated with an entry with a NULL name. */
-extern const struct mmix_spec_reg mmix_spec_regs[];
-
-/* Some insn values we use when padding and synthesizing address loads. */
-#define IMM_OFFSET_BIT 1
-#define COND_INV_BIT 0x8
-#define PRED_INV_BIT 0x10
-
-#define PUSHGO_INSN_BYTE 0xbe
-#define GO_INSN_BYTE 0x9e
-#define SETL_INSN_BYTE 0xe3
-#define INCML_INSN_BYTE 0xe6
-#define INCMH_INSN_BYTE 0xe5
-#define INCH_INSN_BYTE 0xe4
-#define SWYM_INSN_BYTE 0xfd
-#define JMP_INSN_BYTE 0xf0
-
-/* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable)
- global registers. */
-#define MAX_GREGS 223
diff --git a/include/opcode/mn10200.h b/include/opcode/mn10200.h
deleted file mode 100644
index b597d7b4b..000000000
--- a/include/opcode/mn10200.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* mn10200.h -- Header file for Matsushita 10200 opcode table
- Copyright 1996, 1997, 2010 Free Software Foundation, Inc.
- Written by Jeff Law, Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef MN10200_H
-#define MN10200_H
-
-/* The opcode table is an array of struct mn10200_opcode. */
-
-struct mn10200_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned long opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned long mask;
-
- /* The format of this opcode. */
- unsigned char format;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct mn10200_opcode mn10200_opcodes[];
-extern const int mn10200_num_opcodes;
-
-
-/* The operands table is an array of struct mn10200_operand. */
-
-struct mn10200_operand
-{
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
-
- /* One bit syntax flags. */
- int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the mn10200_opcodes table. */
-
-extern const struct mn10200_operand mn10200_operands[];
-
-/* Values defined for the flags field of a struct mn10200_operand. */
-#define MN10200_OPERAND_DREG 0x1
-
-#define MN10200_OPERAND_AREG 0x2
-
-#define MN10200_OPERAND_PSW 0x4
-
-#define MN10200_OPERAND_MDR 0x8
-
-#define MN10200_OPERAND_SIGNED 0x10
-
-#define MN10200_OPERAND_PROMOTE 0x20
-
-#define MN10200_OPERAND_PAREN 0x40
-
-#define MN10200_OPERAND_REPEATED 0x80
-
-#define MN10200_OPERAND_EXTENDED 0x100
-
-#define MN10200_OPERAND_NOCHECK 0x200
-
-#define MN10200_OPERAND_PCREL 0x400
-
-#define MN10200_OPERAND_MEMADDR 0x800
-
-#define MN10200_OPERAND_RELAX 0x1000
-
-#define FMT_1 1
-#define FMT_2 2
-#define FMT_3 3
-#define FMT_4 4
-#define FMT_5 5
-#define FMT_6 6
-#define FMT_7 7
-#endif /* MN10200_H */
diff --git a/include/opcode/mn10300.h b/include/opcode/mn10300.h
deleted file mode 100644
index 16a139bce..000000000
--- a/include/opcode/mn10300.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* mn10300.h -- Header file for Matsushita 10300 opcode table
- Copyright 1996, 1997, 1998, 1999, 2003, 2010 Free Software Foundation, Inc.
- Written by Jeff Law, Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef MN10300_H
-#define MN10300_H
-
-/* The opcode table is an array of struct mn10300_opcode. */
-
-#define MN10300_MAX_OPERANDS 8
-struct mn10300_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned long opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned long mask;
-
- /* A bitmask. For each operand, nonzero if it must not have the same
- register specification as all other operands with a nonzero bit in
- this flag. ie 0x81 would indicate that operands 7 and 0 must not
- match. Note that we count operands from left to right as they appear
- in the operands specification below. */
- unsigned int no_match_operands;
-
- /* The format of this opcode. */
- unsigned char format;
-
- /* Bitmask indicating what cpu variants this opcode is available on.
- We assume mn10300 base opcodes are available everywhere, so we only
- have to note opcodes which are available on other variants. */
- unsigned int machine;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[MN10300_MAX_OPERANDS];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct mn10300_opcode mn10300_opcodes[];
-extern const int mn10300_num_opcodes;
-
-
-/* The operands table is an array of struct mn10300_operand. */
-
-struct mn10300_operand
-{
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
-
- /* One bit syntax flags. */
- int flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the mn10300_opcodes table. */
-
-extern const struct mn10300_operand mn10300_operands[];
-
-/* Values defined for the flags field of a struct mn10300_operand. */
-#define MN10300_OPERAND_DREG 0x1
-
-#define MN10300_OPERAND_AREG 0x2
-
-#define MN10300_OPERAND_SP 0x4
-
-#define MN10300_OPERAND_PSW 0x8
-
-#define MN10300_OPERAND_MDR 0x10
-
-#define MN10300_OPERAND_SIGNED 0x20
-
-#define MN10300_OPERAND_PROMOTE 0x40
-
-#define MN10300_OPERAND_PAREN 0x80
-
-#define MN10300_OPERAND_REPEATED 0x100
-
-#define MN10300_OPERAND_EXTENDED 0x200
-
-#define MN10300_OPERAND_SPLIT 0x400
-
-#define MN10300_OPERAND_REG_LIST 0x800
-
-#define MN10300_OPERAND_PCREL 0x1000
-
-#define MN10300_OPERAND_MEMADDR 0x2000
-
-#define MN10300_OPERAND_RELAX 0x4000
-
-#define MN10300_OPERAND_USP 0x8000
-
-#define MN10300_OPERAND_SSP 0x10000
-
-#define MN10300_OPERAND_MSP 0x20000
-
-#define MN10300_OPERAND_PC 0x40000
-
-#define MN10300_OPERAND_EPSW 0x80000
-
-#define MN10300_OPERAND_RREG 0x100000
-
-#define MN10300_OPERAND_XRREG 0x200000
-
-#define MN10300_OPERAND_PLUS 0x400000
-
-#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
-#define FMT_S2 3
-#define FMT_S4 4
-#define FMT_S6 5
-#define FMT_D0 6
-#define FMT_D1 7
-#define FMT_D2 8
-#define FMT_D4 9
-#define FMT_D5 10
-#define FMT_D6 11
-#define FMT_D7 12
-#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/moxie.h b/include/opcode/moxie.h
deleted file mode 100644
index e2bc374f0..000000000
--- a/include/opcode/moxie.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Definitions for decoding the moxie opcode table.
- Copyright 2009 Free Software Foundation, Inc.
- Contributed by Anthony Green (green@moxielogic.com).
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* Form 1 instructions come in different flavors:
-
- Some have no arguments (MOXIE_F1_NARG)
- Some only use the A operand (MOXIE_F1_A)
- Some use A and B registers (MOXIE_F1_AB)
- Some use A and consume a 4 byte immediate value (MOXIE_F1_A4)
- Some use just a 4 byte immediate value (MOXIE_F1_4)
- Some use just a 4 byte memory address (MOXIE_F1_M)
- Some use B and an indirect A (MOXIE_F1_AiB)
- Some use A and an indirect B (MOXIE_F1_ABi)
- Some consume a 4 byte immediate value and use X (MOXIE_F1_4A)
- Some use B and an indirect A plus 4 bytes (MOXIE_F1_AiB4)
- Some use A and an indirect B plus 4 bytes (MOXIE_F1_ABi4)
-
- Form 2 instructions also come in different flavors:
-
- Some have no arguments (MOXIE_F2_NARG)
- Some use the A register and an 8-bit value (MOXIE_F2_A8V)
-
- Form 3 instructions also come in different flavors:
-
- Some have no arguments (MOXIE_F3_NARG)
- Some have a 10-bit PC relative operand (MOXIE_F3_PCREL). */
-
-#define MOXIE_F1_NARG 0x100
-#define MOXIE_F1_A 0x101
-#define MOXIE_F1_AB 0x102
-/* #define MOXIE_F1_ABC 0x103 */
-#define MOXIE_F1_A4 0x104
-#define MOXIE_F1_4 0x105
-#define MOXIE_F1_AiB 0x106
-#define MOXIE_F1_ABi 0x107
-#define MOXIE_F1_4A 0x108
-#define MOXIE_F1_AiB4 0x109
-#define MOXIE_F1_ABi4 0x10a
-#define MOXIE_F1_M 0x10b
-
-#define MOXIE_F2_NARG 0x200
-#define MOXIE_F2_A8V 0x201
-
-#define MOXIE_F3_NARG 0x300
-#define MOXIE_F3_PCREL 0x301
-
-typedef struct moxie_opc_info_t
-{
- short opcode;
- unsigned itype;
- const char * name;
-} moxie_opc_info_t;
-
-extern const moxie_opc_info_t moxie_form1_opc_info[64];
-extern const moxie_opc_info_t moxie_form2_opc_info[4];
-extern const moxie_opc_info_t moxie_form3_opc_info[16];
diff --git a/include/opcode/msp430.h b/include/opcode/msp430.h
deleted file mode 100644
index d3bf130ee..000000000
--- a/include/opcode/msp430.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Opcode table for the TI MSP430 microcontrollers
-
- Copyright 2002, 2004, 2010 Free Software Foundation, Inc.
- Contributed by Dmitry Diky <diwil@mail.ru>
-
- 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 3, 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef __MSP430_H_
-#define __MSP430_H_
-
-struct msp430_operand_s
-{
- int ol; /* Operand length words. */
- int am; /* Addr mode. */
- int reg; /* Register. */
- int mode; /* Pperand mode. */
-#define OP_REG 0
-#define OP_EXP 1
-#ifndef DASM_SECTION
- expressionS exp;
-#endif
-};
-
-#define BYTE_OPERATION (1 << 6) /* Byte operation flag for all instructions. */
-
-struct msp430_opcode_s
-{
- char *name;
- int fmt;
- int insn_opnumb;
- int bin_opcode;
- int bin_mask;
-};
-
-#define MSP_INSN(name, size, numb, bin, mask) { #name, size, numb, bin, mask }
-
-static struct msp430_opcode_s msp430_opcodes[] =
-{
- MSP_INSN (and, 1, 2, 0xf000, 0xf000),
- MSP_INSN (inv, 0, 1, 0xe330, 0xfff0),
- MSP_INSN (xor, 1, 2, 0xe000, 0xf000),
- MSP_INSN (setz, 0, 0, 0xd322, 0xffff),
- MSP_INSN (setc, 0, 0, 0xd312, 0xffff),
- MSP_INSN (eint, 0, 0, 0xd232, 0xffff),
- MSP_INSN (setn, 0, 0, 0xd222, 0xffff),
- MSP_INSN (bis, 1, 2, 0xd000, 0xf000),
- MSP_INSN (clrz, 0, 0, 0xc322, 0xffff),
- MSP_INSN (clrc, 0, 0, 0xc312, 0xffff),
- MSP_INSN (dint, 0, 0, 0xc232, 0xffff),
- MSP_INSN (clrn, 0, 0, 0xc222, 0xffff),
- MSP_INSN (bic, 1, 2, 0xc000, 0xf000),
- MSP_INSN (bit, 1, 2, 0xb000, 0xf000),
- MSP_INSN (dadc, 0, 1, 0xa300, 0xff30),
- MSP_INSN (dadd, 1, 2, 0xa000, 0xf000),
- MSP_INSN (tst, 0, 1, 0x9300, 0xff30),
- MSP_INSN (cmp, 1, 2, 0x9000, 0xf000),
- MSP_INSN (decd, 0, 1, 0x8320, 0xff30),
- MSP_INSN (dec, 0, 1, 0x8310, 0xff30),
- MSP_INSN (sub, 1, 2, 0x8000, 0xf000),
- MSP_INSN (sbc, 0, 1, 0x7300, 0xff30),
- MSP_INSN (subc, 1, 2, 0x7000, 0xf000),
- MSP_INSN (adc, 0, 1, 0x6300, 0xff30),
- MSP_INSN (rlc, 0, 2, 0x6000, 0xf000),
- MSP_INSN (addc, 1, 2, 0x6000, 0xf000),
- MSP_INSN (incd, 0, 1, 0x5320, 0xff30),
- MSP_INSN (inc, 0, 1, 0x5310, 0xff30),
- MSP_INSN (rla, 0, 2, 0x5000, 0xf000),
- MSP_INSN (add, 1, 2, 0x5000, 0xf000),
- MSP_INSN (nop, 0, 0, 0x4303, 0xffff),
- MSP_INSN (clr, 0, 1, 0x4300, 0xff30),
- MSP_INSN (ret, 0, 0, 0x4130, 0xff30),
- MSP_INSN (pop, 0, 1, 0x4130, 0xff30),
- MSP_INSN (br, 0, 3, 0x4000, 0xf000),
- MSP_INSN (mov, 1, 2, 0x4000, 0xf000),
- MSP_INSN (jmp, 3, 1, 0x3c00, 0xfc00),
- MSP_INSN (jl, 3, 1, 0x3800, 0xfc00),
- MSP_INSN (jge, 3, 1, 0x3400, 0xfc00),
- MSP_INSN (jn, 3, 1, 0x3000, 0xfc00),
- MSP_INSN (jc, 3, 1, 0x2c00, 0xfc00),
- MSP_INSN (jhs, 3, 1, 0x2c00, 0xfc00),
- MSP_INSN (jnc, 3, 1, 0x2800, 0xfc00),
- MSP_INSN (jlo, 3, 1, 0x2800, 0xfc00),
- MSP_INSN (jz, 3, 1, 0x2400, 0xfc00),
- MSP_INSN (jeq, 3, 1, 0x2400, 0xfc00),
- MSP_INSN (jnz, 3, 1, 0x2000, 0xfc00),
- MSP_INSN (jne, 3, 1, 0x2000, 0xfc00),
- MSP_INSN (reti, 2, 0, 0x1300, 0xffc0),
- MSP_INSN (call, 2, 1, 0x1280, 0xffc0),
- MSP_INSN (push, 2, 1, 0x1200, 0xff80),
- MSP_INSN (sxt, 2, 1, 0x1180, 0xffc0),
- MSP_INSN (rra, 2, 1, 0x1100, 0xff80),
- MSP_INSN (swpb, 2, 1, 0x1080, 0xffc0),
- MSP_INSN (rrc, 2, 1, 0x1000, 0xff80),
- /* Simple polymorphs. */
- MSP_INSN (beq, 4, 0, 0, 0xffff),
- MSP_INSN (bne, 4, 1, 0, 0xffff),
- MSP_INSN (blt, 4, 2, 0, 0xffff),
- MSP_INSN (bltu, 4, 3, 0, 0xffff),
- MSP_INSN (bge, 4, 4, 0, 0xffff),
- MSP_INSN (bgeu, 4, 5, 0, 0xffff),
- MSP_INSN (bltn, 4, 6, 0, 0xffff),
- MSP_INSN (jump, 4, 7, 0, 0xffff),
- /* Long polymorphs. */
- MSP_INSN (bgt, 5, 0, 0, 0xffff),
- MSP_INSN (bgtu, 5, 1, 0, 0xffff),
- MSP_INSN (bleu, 5, 2, 0, 0xffff),
- MSP_INSN (ble, 5, 3, 0, 0xffff),
-
- /* End of instruction set. */
- { NULL, 0, 0, 0, 0 }
-};
-
-#endif
diff --git a/include/opcode/np1.h b/include/opcode/np1.h
deleted file mode 100644
index 6dadafde0..000000000
--- a/include/opcode/np1.h
+++ /dev/null
@@ -1,421 +0,0 @@
-/* Print GOULD NPL instructions for GDB, the GNU debugger.
- Copyright 1986, 1987, 1989, 1991, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- GDB 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 3, or (at your option)
- any later version.
-
- GDB 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 GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-struct gld_opcode
-{
- char *name;
- unsigned long opcode;
- unsigned long mask;
- char *args;
- int length;
-};
-
-/* We store four bytes of opcode for all opcodes because that
- is the most any of them need. The actual length of an instruction
- is always at least 2 bytes, and at most four. The length of the
- instruction is based on the opcode.
-
- The mask component is a mask saying which bits must match
- particular opcode in order for an instruction to be an instance
- of that opcode.
-
- The args component is a string containing characters
- that are used to format the arguments to the instruction. */
-
-/* Kinds of operands:
- r Register in first field
- R Register in second field
- b Base register in first field
- B Base register in second field
- v Vector register in first field
- V Vector register in first field
- A Optional address register (base register)
- X Optional index register
- I Immediate data (16bits signed)
- O Offset field (16bits signed)
- h Offset field (15bits signed)
- d Offset field (14bits signed)
- S Shift count field
-
- any other characters are printed as is... */
-
-/* The assembler requires that this array be sorted as follows:
- all instances of the same mnemonic must be consecutive.
- All instances of the same mnemonic with the same number of operands
- must be consecutive. */
-struct gld_opcode gld_opcodes[] =
-{
-{ "lb", 0xb4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lnb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lbs", 0xec080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lh", 0xb4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "lnh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "lw", 0xb4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lnw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "ld", 0xb4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "lnd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "li", 0xf8000000, 0xfc7f0000, "r,I", 4 },
-{ "lpa", 0x50080000, 0xfc080000, "r,xOA,X", 4 },
-{ "la", 0x50000000, 0xfc080000, "r,xOA,X", 4 },
-{ "labr", 0x58080000, 0xfc080000, "b,xOA,X", 4 },
-{ "lbp", 0x90080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lhp", 0x90000001, 0xfc080001, "r,xOA,X", 4 },
-{ "lwp", 0x90000000, 0xfc080000, "r,xOA,X", 4 },
-{ "ldp", 0x90000002, 0xfc080002, "r,xOA,X", 4 },
-{ "suabr", 0x58000000, 0xfc080000, "b,xOA,X", 4 },
-{ "lf", 0xbc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lfbr", 0xbc080000, 0xfc080000, "b,xOA,X", 4 },
-{ "lwbr", 0x5c000000, 0xfc080000, "b,xOA,X", 4 },
-{ "stb", 0xd4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "sth", 0xd4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "stw", 0xd4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "std", 0xd4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "stf", 0xdc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "stfbr", 0xdc080000, 0xfc080000, "b,xOA,X", 4 },
-{ "stwbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 },
-{ "zmb", 0xd8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "zmh", 0xd8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "zmw", 0xd8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "zmd", 0xd8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "stbp", 0x94080000, 0xfc080000, "r,xOA,X", 4 },
-{ "sthp", 0x94000001, 0xfc080001, "r,xOA,X", 4 },
-{ "stwp", 0x94000000, 0xfc080000, "r,xOA,X", 4 },
-{ "stdp", 0x94000002, 0xfc080002, "r,xOA,X", 4 },
-{ "lil", 0xf80b0000, 0xfc7f0000, "r,D", 4 },
-{ "lwsl1", 0xec000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lwsl2", 0xfc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lwsl3", 0xfc080000, 0xfc080000, "r,xOA,X", 4 },
-
-{ "lvb", 0xb0080000, 0xfc080000, "v,xOA,X", 4 },
-{ "lvh", 0xb0000001, 0xfc080001, "v,xOA,X", 4 },
-{ "lvw", 0xb0000000, 0xfc080000, "v,xOA,X", 4 },
-{ "lvd", 0xb0000002, 0xfc080002, "v,xOA,X", 4 },
-{ "liv", 0x3c040000, 0xfc0f0000, "v,R", 2 },
-{ "livf", 0x3c080000, 0xfc0f0000, "v,R", 2 },
-{ "stvb", 0xd0080000, 0xfc080000, "v,xOA,X", 4 },
-{ "stvh", 0xd0000001, 0xfc080001, "v,xOA,X", 4 },
-{ "stvw", 0xd0000000, 0xfc080000, "v,xOA,X", 4 },
-{ "stvd", 0xd0000002, 0xfc080002, "v,xOA,X", 4 },
-
-{ "trr", 0x2c000000, 0xfc0f0000, "r,R", 2 },
-{ "trn", 0x2c040000, 0xfc0f0000, "r,R", 2 },
-{ "trnd", 0x2c0c0000, 0xfc0f0000, "r,R", 2 },
-{ "trabs", 0x2c010000, 0xfc0f0000, "r,R", 2 },
-{ "trabsd", 0x2c090000, 0xfc0f0000, "r,R", 2 },
-{ "trc", 0x2c030000, 0xfc0f0000, "r,R", 2 },
-{ "xcr", 0x28040000, 0xfc0f0000, "r,R", 2 },
-{ "cxcr", 0x2c060000, 0xfc0f0000, "r,R", 2 },
-{ "cxcrd", 0x2c0e0000, 0xfc0f0000, "r,R", 2 },
-{ "tbrr", 0x2c020000, 0xfc0f0000, "r,B", 2 },
-{ "trbr", 0x28030000, 0xfc0f0000, "b,R", 2 },
-{ "xcbr", 0x28020000, 0xfc0f0000, "b,B", 2 },
-{ "tbrbr", 0x28010000, 0xfc0f0000, "b,B", 2 },
-
-{ "trvv", 0x28050000, 0xfc0f0000, "v,V", 2 },
-{ "trvvn", 0x2c050000, 0xfc0f0000, "v,V", 2 },
-{ "trvvnd", 0x2c0d0000, 0xfc0f0000, "v,V", 2 },
-{ "trvab", 0x2c070000, 0xfc0f0000, "v,V", 2 },
-{ "trvabd", 0x2c0f0000, 0xfc0f0000, "v,V", 2 },
-{ "cmpv", 0x14060000, 0xfc0f0000, "v,V", 2 },
-{ "expv", 0x14070000, 0xfc0f0000, "v,V", 2 },
-{ "mrvvlt", 0x10030000, 0xfc0f0000, "v,V", 2 },
-{ "mrvvle", 0x10040000, 0xfc0f0000, "v,V", 2 },
-{ "mrvvgt", 0x14030000, 0xfc0f0000, "v,V", 2 },
-{ "mrvvge", 0x14040000, 0xfc0f0000, "v,V", 2 },
-{ "mrvveq", 0x10050000, 0xfc0f0000, "v,V", 2 },
-{ "mrvvne", 0x10050000, 0xfc0f0000, "v,V", 2 },
-{ "mrvrlt", 0x100d0000, 0xfc0f0000, "v,R", 2 },
-{ "mrvrle", 0x100e0000, 0xfc0f0000, "v,R", 2 },
-{ "mrvrgt", 0x140d0000, 0xfc0f0000, "v,R", 2 },
-{ "mrvrge", 0x140e0000, 0xfc0f0000, "v,R", 2 },
-{ "mrvreq", 0x100f0000, 0xfc0f0000, "v,R", 2 },
-{ "mrvrne", 0x140f0000, 0xfc0f0000, "v,R", 2 },
-{ "trvr", 0x140b0000, 0xfc0f0000, "r,V", 2 },
-{ "trrv", 0x140c0000, 0xfc0f0000, "v,R", 2 },
-
-{ "bu", 0x40000000, 0xff880000, "xOA,X", 4 },
-{ "bns", 0x70080000, 0xff880000, "xOA,X", 4 },
-{ "bnco", 0x70880000, 0xff880000, "xOA,X", 4 },
-{ "bge", 0x71080000, 0xff880000, "xOA,X", 4 },
-{ "bne", 0x71880000, 0xff880000, "xOA,X", 4 },
-{ "bunge", 0x72080000, 0xff880000, "xOA,X", 4 },
-{ "bunle", 0x72880000, 0xff880000, "xOA,X", 4 },
-{ "bgt", 0x73080000, 0xff880000, "xOA,X", 4 },
-{ "bnany", 0x73880000, 0xff880000, "xOA,X", 4 },
-{ "bs" , 0x70000000, 0xff880000, "xOA,X", 4 },
-{ "bco", 0x70800000, 0xff880000, "xOA,X", 4 },
-{ "blt", 0x71000000, 0xff880000, "xOA,X", 4 },
-{ "beq", 0x71800000, 0xff880000, "xOA,X", 4 },
-{ "buge", 0x72000000, 0xff880000, "xOA,X", 4 },
-{ "bult", 0x72800000, 0xff880000, "xOA,X", 4 },
-{ "ble", 0x73000000, 0xff880000, "xOA,X", 4 },
-{ "bany", 0x73800000, 0xff880000, "xOA,X", 4 },
-{ "brlnk", 0x44000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bib", 0x48000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bih", 0x48080000, 0xfc080000, "r,xOA,X", 4 },
-{ "biw", 0x4c000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bid", 0x4c080000, 0xfc080000, "r,xOA,X", 4 },
-{ "bivb", 0x60000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bivh", 0x60080000, 0xfc080000, "r,xOA,X", 4 },
-{ "bivw", 0x64000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bivd", 0x64080000, 0xfc080000, "r,xOA,X", 4 },
-{ "bvsb", 0x68000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bvsh", 0x68080000, 0xfc080000, "r,xOA,X", 4 },
-{ "bvsw", 0x6c000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bvsd", 0x6c080000, 0xfc080000, "r,xOA,X", 4 },
-
-{ "camb", 0x80080000, 0xfc080000, "r,xOA,X", 4 },
-{ "camh", 0x80000001, 0xfc080001, "r,xOA,X", 4 },
-{ "camw", 0x80000000, 0xfc080000, "r,xOA,X", 4 },
-{ "camd", 0x80000002, 0xfc080002, "r,xOA,X", 4 },
-{ "car", 0x10000000, 0xfc0f0000, "r,R", 2 },
-{ "card", 0x14000000, 0xfc0f0000, "r,R", 2 },
-{ "ci", 0xf8050000, 0xfc7f0000, "r,I", 4 },
-{ "chkbnd", 0x5c080000, 0xfc080000, "r,xOA,X", 4 },
-
-{ "cavv", 0x10010000, 0xfc0f0000, "v,V", 2 },
-{ "cavr", 0x10020000, 0xfc0f0000, "v,R", 2 },
-{ "cavvd", 0x10090000, 0xfc0f0000, "v,V", 2 },
-{ "cavrd", 0x100b0000, 0xfc0f0000, "v,R", 2 },
-
-{ "anmb", 0x84080000, 0xfc080000, "r,xOA,X", 4 },
-{ "anmh", 0x84000001, 0xfc080001, "r,xOA,X", 4 },
-{ "anmw", 0x84000000, 0xfc080000, "r,xOA,X", 4 },
-{ "anmd", 0x84000002, 0xfc080002, "r,xOA,X", 4 },
-{ "anr", 0x04000000, 0xfc0f0000, "r,R", 2 },
-{ "ani", 0xf8080000, 0xfc7f0000, "r,I", 4 },
-{ "ormb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "ormh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "ormw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "ormd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "orr", 0x08000000, 0xfc0f0000, "r,R", 2 },
-{ "oi", 0xf8090000, 0xfc7f0000, "r,I", 4 },
-{ "eomb", 0x8c080000, 0xfc080000, "r,xOA,X", 4 },
-{ "eomh", 0x8c000001, 0xfc080001, "r,xOA,X", 4 },
-{ "eomw", 0x8c000000, 0xfc080000, "r,xOA,X", 4 },
-{ "eomd", 0x8c000002, 0xfc080002, "r,xOA,X", 4 },
-{ "eor", 0x0c000000, 0xfc0f0000, "r,R", 2 },
-{ "eoi", 0xf80a0000, 0xfc7f0000, "r,I", 4 },
-
-{ "anvv", 0x04010000, 0xfc0f0000, "v,V", 2 },
-{ "anvr", 0x04020000, 0xfc0f0000, "v,R", 2 },
-{ "orvv", 0x08010000, 0xfc0f0000, "v,V", 2 },
-{ "orvr", 0x08020000, 0xfc0f0000, "v,R", 2 },
-{ "eovv", 0x0c010000, 0xfc0f0000, "v,V", 2 },
-{ "eovr", 0x0c020000, 0xfc0f0000, "v,R", 2 },
-
-{ "sacz", 0x100c0000, 0xfc0f0000, "r,R", 2 },
-{ "sla", 0x1c400000, 0xfc600000, "r,S", 2 },
-{ "sll", 0x1c600000, 0xfc600000, "r,S", 2 },
-{ "slc", 0x24400000, 0xfc600000, "r,S", 2 },
-{ "slad", 0x20400000, 0xfc600000, "r,S", 2 },
-{ "slld", 0x20600000, 0xfc600000, "r,S", 2 },
-{ "sra", 0x1c000000, 0xfc600000, "r,S", 2 },
-{ "srl", 0x1c200000, 0xfc600000, "r,S", 2 },
-{ "src", 0x24000000, 0xfc600000, "r,S", 2 },
-{ "srad", 0x20000000, 0xfc600000, "r,S", 2 },
-{ "srld", 0x20200000, 0xfc600000, "r,S", 2 },
-{ "sda", 0x3c030000, 0xfc0f0000, "r,R", 2 },
-{ "sdl", 0x3c020000, 0xfc0f0000, "r,R", 2 },
-{ "sdc", 0x3c010000, 0xfc0f0000, "r,R", 2 },
-{ "sdad", 0x3c0b0000, 0xfc0f0000, "r,R", 2 },
-{ "sdld", 0x3c0a0000, 0xfc0f0000, "r,R", 2 },
-
-{ "svda", 0x3c070000, 0xfc0f0000, "v,R", 2 },
-{ "svdl", 0x3c060000, 0xfc0f0000, "v,R", 2 },
-{ "svdc", 0x3c050000, 0xfc0f0000, "v,R", 2 },
-{ "svdad", 0x3c0e0000, 0xfc0f0000, "v,R", 2 },
-{ "svdld", 0x3c0d0000, 0xfc0f0000, "v,R", 2 },
-
-{ "sbm", 0xac080000, 0xfc080000, "f,xOA,X", 4 },
-{ "zbm", 0xac000000, 0xfc080000, "f,xOA,X", 4 },
-{ "tbm", 0xa8080000, 0xfc080000, "f,xOA,X", 4 },
-{ "incmb", 0xa0000000, 0xfc080000, "xOA,X", 4 },
-{ "incmh", 0xa0080000, 0xfc080000, "xOA,X", 4 },
-{ "incmw", 0xa4000000, 0xfc080000, "xOA,X", 4 },
-{ "incmd", 0xa4080000, 0xfc080000, "xOA,X", 4 },
-{ "sbmd", 0x7c080000, 0xfc080000, "r,xOA,X", 4 },
-{ "zbmd", 0x7c000000, 0xfc080000, "r,xOA,X", 4 },
-{ "tbmd", 0x78080000, 0xfc080000, "r,xOA,X", 4 },
-
-{ "ssm", 0x9c080000, 0xfc080000, "f,xOA,X", 4 },
-{ "zsm", 0x9c000000, 0xfc080000, "f,xOA,X", 4 },
-{ "tsm", 0x98080000, 0xfc080000, "f,xOA,X", 4 },
-
-{ "admb", 0xc8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "admh", 0xc8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "admw", 0xc8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "admd", 0xc8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "adr", 0x38000000, 0xfc0f0000, "r,R", 2 },
-{ "armb", 0xe8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "armh", 0xe8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "armw", 0xe8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "armd", 0xe8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "adi", 0xf8010000, 0xfc0f0000, "r,I", 4 },
-{ "sumb", 0xcc080000, 0xfc080000, "r,xOA,X", 4 },
-{ "sumh", 0xcc000001, 0xfc080001, "r,xOA,X", 4 },
-{ "sumw", 0xcc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "sumd", 0xcc000002, 0xfc080002, "r,xOA,X", 4 },
-{ "sur", 0x3c000000, 0xfc0f0000, "r,R", 2 },
-{ "sui", 0xf8020000, 0xfc0f0000, "r,I", 4 },
-{ "mpmb", 0xc0080000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpmh", 0xc0000001, 0xfc080001, "r,xOA,X", 4 },
-{ "mpmw", 0xc0000000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpr", 0x38020000, 0xfc0f0000, "r,R", 2 },
-{ "mprd", 0x3c0f0000, 0xfc0f0000, "r,R", 2 },
-{ "mpi", 0xf8030000, 0xfc0f0000, "r,I", 4 },
-{ "dvmb", 0xc4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "dvmh", 0xc4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "dvmw", 0xc4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "dvr", 0x380a0000, 0xfc0f0000, "r,R", 2 },
-{ "dvi", 0xf8040000, 0xfc0f0000, "r,I", 4 },
-{ "exs", 0x38080000, 0xfc0f0000, "r,R", 2 },
-
-{ "advv", 0x30000000, 0xfc0f0000, "v,V", 2 },
-{ "advvd", 0x30080000, 0xfc0f0000, "v,V", 2 },
-{ "adrv", 0x34000000, 0xfc0f0000, "v,R", 2 },
-{ "adrvd", 0x34080000, 0xfc0f0000, "v,R", 2 },
-{ "suvv", 0x30010000, 0xfc0f0000, "v,V", 2 },
-{ "suvvd", 0x30090000, 0xfc0f0000, "v,V", 2 },
-{ "surv", 0x34010000, 0xfc0f0000, "v,R", 2 },
-{ "survd", 0x34090000, 0xfc0f0000, "v,R", 2 },
-{ "mpvv", 0x30020000, 0xfc0f0000, "v,V", 2 },
-{ "mprv", 0x34020000, 0xfc0f0000, "v,R", 2 },
-
-{ "adfw", 0xe0080000, 0xfc080000, "r,xOA,X", 4 },
-{ "adfd", 0xe0080002, 0xfc080002, "r,xOA,X", 4 },
-{ "adrfw", 0x38010000, 0xfc0f0000, "r,R", 2 },
-{ "adrfd", 0x38090000, 0xfc0f0000, "r,R", 2 },
-{ "surfw", 0xe0000000, 0xfc080000, "r,xOA,X", 4 },
-{ "surfd", 0xe0000002, 0xfc080002, "r,xOA,X", 4 },
-{ "surfw", 0x38030000, 0xfc0f0000, "r,R", 2 },
-{ "surfd", 0x380b0000, 0xfc0f0000, "r,R", 2 },
-{ "mpfw", 0xe4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpfd", 0xe4080002, 0xfc080002, "r,xOA,X", 4 },
-{ "mprfw", 0x38060000, 0xfc0f0000, "r,R", 2 },
-{ "mprfd", 0x380e0000, 0xfc0f0000, "r,R", 2 },
-{ "rfw", 0xe4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "rfd", 0xe4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "rrfw", 0x0c0e0000, 0xfc0f0000, "r", 2 },
-{ "rrfd", 0x0c0f0000, 0xfc0f0000, "r", 2 },
-
-{ "advvfw", 0x30040000, 0xfc0f0000, "v,V", 2 },
-{ "advvfd", 0x300c0000, 0xfc0f0000, "v,V", 2 },
-{ "adrvfw", 0x34040000, 0xfc0f0000, "v,R", 2 },
-{ "adrvfd", 0x340c0000, 0xfc0f0000, "v,R", 2 },
-{ "suvvfw", 0x30050000, 0xfc0f0000, "v,V", 2 },
-{ "suvvfd", 0x300d0000, 0xfc0f0000, "v,V", 2 },
-{ "survfw", 0x34050000, 0xfc0f0000, "v,R", 2 },
-{ "survfd", 0x340d0000, 0xfc0f0000, "v,R", 2 },
-{ "mpvvfw", 0x30060000, 0xfc0f0000, "v,V", 2 },
-{ "mpvvfd", 0x300e0000, 0xfc0f0000, "v,V", 2 },
-{ "mprvfw", 0x34060000, 0xfc0f0000, "v,R", 2 },
-{ "mprvfd", 0x340e0000, 0xfc0f0000, "v,R", 2 },
-{ "rvfw", 0x30070000, 0xfc0f0000, "v", 2 },
-{ "rvfd", 0x300f0000, 0xfc0f0000, "v", 2 },
-
-{ "fltw", 0x38070000, 0xfc0f0000, "r,R", 2 },
-{ "fltd", 0x380f0000, 0xfc0f0000, "r,R", 2 },
-{ "fixw", 0x38050000, 0xfc0f0000, "r,R", 2 },
-{ "fixd", 0x380d0000, 0xfc0f0000, "r,R", 2 },
-{ "cfpds", 0x3c090000, 0xfc0f0000, "r,R", 2 },
-
-{ "fltvw", 0x080d0000, 0xfc0f0000, "v,V", 2 },
-{ "fltvd", 0x080f0000, 0xfc0f0000, "v,V", 2 },
-{ "fixvw", 0x080c0000, 0xfc0f0000, "v,V", 2 },
-{ "fixvd", 0x080e0000, 0xfc0f0000, "v,V", 2 },
-{ "cfpvds", 0x0c0d0000, 0xfc0f0000, "v,V", 2 },
-
-{ "orvrn", 0x000a0000, 0xfc0f0000, "r,V", 2 },
-{ "andvrn", 0x00080000, 0xfc0f0000, "r,V", 2 },
-{ "frsteq", 0x04090000, 0xfc0f0000, "r,V", 2 },
-{ "sigma", 0x0c080000, 0xfc0f0000, "r,V", 2 },
-{ "sigmad", 0x0c0a0000, 0xfc0f0000, "r,V", 2 },
-{ "sigmf", 0x08080000, 0xfc0f0000, "r,V", 2 },
-{ "sigmfd", 0x080a0000, 0xfc0f0000, "r,V", 2 },
-{ "prodf", 0x04080000, 0xfc0f0000, "r,V", 2 },
-{ "prodfd", 0x040a0000, 0xfc0f0000, "r,V", 2 },
-{ "maxv", 0x10080000, 0xfc0f0000, "r,V", 2 },
-{ "maxvd", 0x100a0000, 0xfc0f0000, "r,V", 2 },
-{ "minv", 0x14080000, 0xfc0f0000, "r,V", 2 },
-{ "minvd", 0x140a0000, 0xfc0f0000, "r,V", 2 },
-
-{ "lpsd", 0xf0000000, 0xfc080000, "xOA,X", 4 },
-{ "ldc", 0xf0080000, 0xfc080000, "xOA,X", 4 },
-{ "spm", 0x040c0000, 0xfc0f0000, "r", 2 },
-{ "rpm", 0x040d0000, 0xfc0f0000, "r", 2 },
-{ "tritr", 0x00070000, 0xfc0f0000, "r", 2 },
-{ "trrit", 0x00060000, 0xfc0f0000, "r", 2 },
-{ "rpswt", 0x04080000, 0xfc0f0000, "r", 2 },
-{ "exr", 0xf8070000, 0xfc0f0000, "", 4 },
-{ "halt", 0x00000000, 0xfc0f0000, "", 2 },
-{ "wait", 0x00010000, 0xfc0f0000, "", 2 },
-{ "nop", 0x00020000, 0xfc0f0000, "", 2 },
-{ "eiae", 0x00030000, 0xfc0f0000, "", 2 },
-{ "efae", 0x000d0000, 0xfc0f0000, "", 2 },
-{ "diae", 0x000e0000, 0xfc0f0000, "", 2 },
-{ "dfae", 0x000f0000, 0xfc0f0000, "", 2 },
-{ "spvc", 0xf8060000, 0xfc0f0000, "r,T,N", 4 },
-{ "rdsts", 0x00090000, 0xfc0f0000, "r", 2 },
-{ "setcpu", 0x000c0000, 0xfc0f0000, "r", 2 },
-{ "cmc", 0x000b0000, 0xfc0f0000, "r", 2 },
-{ "trrcu", 0x00040000, 0xfc0f0000, "r", 2 },
-{ "attnio", 0x00050000, 0xfc0f0000, "", 2 },
-{ "fudit", 0x28080000, 0xfc0f0000, "", 2 },
-{ "break", 0x28090000, 0xfc0f0000, "", 2 },
-{ "frzss", 0x280a0000, 0xfc0f0000, "", 2 },
-{ "ripi", 0x04040000, 0xfc0f0000, "r,R", 2 },
-{ "xcp", 0x04050000, 0xfc0f0000, "r", 2 },
-{ "block", 0x04060000, 0xfc0f0000, "", 2 },
-{ "unblock", 0x04070000, 0xfc0f0000, "", 2 },
-{ "trsc", 0x08060000, 0xfc0f0000, "r,R", 2 },
-{ "tscr", 0x08070000, 0xfc0f0000, "r,R", 2 },
-{ "fq", 0x04080000, 0xfc0f0000, "r", 2 },
-{ "flupte", 0x2c080000, 0xfc0f0000, "r", 2 },
-{ "rviu", 0x040f0000, 0xfc0f0000, "", 2 },
-{ "ldel", 0x280c0000, 0xfc0f0000, "r,R", 2 },
-{ "ldu", 0x280d0000, 0xfc0f0000, "r,R", 2 },
-{ "stdecc", 0x280b0000, 0xfc0f0000, "r,R", 2 },
-{ "trpc", 0x08040000, 0xfc0f0000, "r", 2 },
-{ "tpcr", 0x08050000, 0xfc0f0000, "r", 2 },
-{ "ghalt", 0x0c050000, 0xfc0f0000, "r", 2 },
-{ "grun", 0x0c040000, 0xfc0f0000, "", 2 },
-{ "tmpr", 0x2c0a0000, 0xfc0f0000, "r,R", 2 },
-{ "trmp", 0x2c0b0000, 0xfc0f0000, "r,R", 2 },
-
-{ "trrve", 0x28060000, 0xfc0f0000, "r", 2 },
-{ "trver", 0x28070000, 0xfc0f0000, "r", 2 },
-{ "trvlr", 0x280f0000, 0xfc0f0000, "r", 2 },
-
-{ "linkfl", 0x18000000, 0xfc0f0000, "r,R", 2 },
-{ "linkbl", 0x18020000, 0xfc0f0000, "r,R", 2 },
-{ "linkfp", 0x18010000, 0xfc0f0000, "r,R", 2 },
-{ "linkbp", 0x18030000, 0xfc0f0000, "r,R", 2 },
-{ "linkpl", 0x18040000, 0xfc0f0000, "r,R", 2 },
-{ "ulinkl", 0x18080000, 0xfc0f0000, "r,R", 2 },
-{ "ulinkp", 0x18090000, 0xfc0f0000, "r,R", 2 },
-{ "ulinktl", 0x180a0000, 0xfc0f0000, "r,R", 2 },
-{ "ulinktp", 0x180b0000, 0xfc0f0000, "r,R", 2 },
-};
-
-int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
-
-struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
- sizeof(gld_opcodes[0]);
diff --git a/include/opcode/ns32k.h b/include/opcode/ns32k.h
deleted file mode 100644
index 34c42f875..000000000
--- a/include/opcode/ns32k.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* ns32k-opcode.h -- Opcode table for National Semi 32k processor
- Copyright 1987, 1991, 1994, 2002, 2010 Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler.
-
- GAS 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 3, or (at your option)
- any later version.
-
- GAS 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 GAS; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifdef SEQUENT_COMPATABILITY
-#define DEF_MODEC 20
-#define DEF_MODEL 21
-#endif
-
-#ifndef DEF_MODEC
-#define DEF_MODEC 20
-#endif
-
-#ifndef DEF_MODEL
-#define DEF_MODEL 20
-#endif
-/*
- After deciding the instruction entry (via hash.c) the instruction parser
- will try to match the operands after the instruction to the required set
- given in the entry operandfield. Every operand will result in a change in
- the opcode or the addition of data to the opcode.
- The operands in the source instruction are checked for inconsistent
- semantics.
-
- F : 32 bit float general form
- L : 64 bit float "
- B : byte "
- W : word "
- D : double-word "
- A : double-word gen-address-form ie no regs, no immediate
- I : integer writeable gen int except immediate (A + reg)
- Z : floating writeable gen float except immediate (Z + freg)
- d : displacement
- b : displacement - pc relative addressing acb
- p : displacement - pc relative addressing br bcond bsr cxp
- q : quick
- i : immediate (8 bits)
- This is not a standard ns32k operandtype, it is used to build
- instructions like svc arg1,arg2
- Svc is the instruction SuperVisorCall and is sometimes used to
- call OS-routines from usermode. Some args might be handy!
- r : register number (3 bits)
- O : setcfg instruction optionslist
- C : cinv instruction optionslist
- S : stringinstruction optionslist
- U : registerlist save,enter
- u : registerlist restore,exit
- M : mmu register
- P : cpu register
- g : 3:rd operand of inss or exts instruction
- G : 4:th operand of inss or exts instruction
- Those operands are encoded in the same byte.
- This byte is placed last in the instruction.
- f : operand of sfsr
- H : sequent-hack for bsr (Warning)
-
-column 1 instructions
- 2 number of bits in opcode.
- 3 number of bits in opcode explicitly
- determined by the instruction type.
- 4 opcodeseed, the number we build our opcode
- from.
- 5 operandtypes, used by operandparser.
- 6 size in bytes of immediate
-*/
-struct ns32k_opcode {
- const char *name;
- unsigned char opcode_id_size; /* not used by the assembler */
- unsigned char opcode_size;
- unsigned long opcode_seed;
- const char *operands;
- unsigned char im_size; /* not used by dissassembler */
- const char *default_args; /* default to those args when none given */
- char default_modec; /* default to this addr-mode when ambigous
- ie when the argument of a general addr-mode
- is a plain constant */
- char default_model; /* is a plain label */
-};
-
-#ifdef comment
-/* This section was from the gdb version of this file. */
-
-#ifndef ns32k_opcodeT
-#define ns32k_opcodeT int
-#endif /* no ns32k_opcodeT */
-
-struct not_wot /* ns32k opcode table: wot to do with this */
- /* particular opcode */
-{
- int obits; /* number of opcode bits */
- int ibits; /* number of instruction bits */
- ns32k_opcodeT code; /* op-code (may be > 8 bits!) */
- const char *args; /* how to compile said opcode */
-};
-
-struct not /* ns32k opcode text */
-{
- const char *name; /* opcode name: lowercase string [key] */
- struct not_wot detail; /* rest of opcode table [datum] */
-};
-
-/* Instructions look like this:
-
- basic instruction--1, 2, or 3 bytes
- index byte for operand A, if operand A is indexed--1 byte
- index byte for operand B, if operand B is indexed--1 byte
- addressing extension for operand A
- addressing extension for operand B
- implied operands
-
- Operand A is the operand listed first in the following opcode table.
- Operand B is the operand listed second in the following opcode table.
- All instructions have at most 2 general operands, so this is enough.
- The implied operands are associated with operands other than A and B.
-
- Each operand has a digit and a letter.
-
- The digit gives the position in the assembly language. The letter,
- one of the following, tells us what kind of operand it is. */
-
-/* F : 32 bit float
- * L : 64 bit float
- * B : byte
- * W : word
- * D : double-word
- * I : integer not immediate
- * Z : floating not immediate
- * d : displacement
- * q : quick
- * i : immediate (8 bits)
- * r : register number (3 bits)
- * p : displacement - pc relative addressing
-*/
-
-
-#endif /* comment */
-
-static const struct ns32k_opcode ns32k_opcodes[]=
-{
- { "absf", 14,24, 0x35be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "absl", 14,24, 0x34be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "absb", 14,24, 0x304e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "absw", 14,24, 0x314e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "absd", 14,24, 0x334e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "acbb", 7,16, 0x4c, "2I1q3p", 1, "", DEF_MODEC,DEF_MODEL },
- { "acbw", 7,16, 0x4d, "2I1q3p", 2, "", DEF_MODEC,DEF_MODEL },
- { "acbd", 7,16, 0x4f, "2I1q3p", 4, "", DEF_MODEC,DEF_MODEL },
- { "addf", 14,24, 0x01be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "addl", 14,24, 0x00be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "addb", 6,16, 0x00, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "addw", 6,16, 0x01, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "addd", 6,16, 0x03, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "addcb", 6,16, 0x10, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "addcw", 6,16, 0x11, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "addcd", 6,16, 0x13, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "addpb", 14,24, 0x3c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "addpw", 14,24, 0x3d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "addpd", 14,24, 0x3f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "addqb", 7,16, 0x0c, "2I1q", 1, "", DEF_MODEC,DEF_MODEL },
- { "addqw", 7,16, 0x0d, "2I1q", 2, "", DEF_MODEC,DEF_MODEL },
- { "addqd", 7,16, 0x0f, "2I1q", 4, "", DEF_MODEC,DEF_MODEL },
- { "addr", 6,16, 0x27, "1A2I", 4, "", 21,21 },
- { "adjspb", 11,16, 0x057c, "1B", 1, "", DEF_MODEC,DEF_MODEL },
- { "adjspw", 11,16, 0x057d, "1W", 2, "", DEF_MODEC,DEF_MODEL },
- { "adjspd", 11,16, 0x057f, "1D", 4, "", DEF_MODEC,DEF_MODEL },
- { "andb", 6,16, 0x28, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "andw", 6,16, 0x29, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "andd", 6,16, 0x2b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "ashb", 14,24, 0x044e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "ashw", 14,24, 0x054e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "ashd", 14,24, 0x074e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "beq", 8,8, 0x0a, "1p", 0, "", 21,21 },
- { "bne", 8,8, 0x1a, "1p", 0, "", 21,21 },
- { "bcs", 8,8, 0x2a, "1p", 0, "", 21,21 },
- { "bcc", 8,8, 0x3a, "1p", 0, "", 21,21 },
- { "bhi", 8,8, 0x4a, "1p", 0, "", 21,21 },
- { "bls", 8,8, 0x5a, "1p", 0, "", 21,21 },
- { "bgt", 8,8, 0x6a, "1p", 0, "", 21,21 },
- { "ble", 8,8, 0x7a, "1p", 0, "", 21,21 },
- { "bfs", 8,8, 0x8a, "1p", 0, "", 21,21 },
- { "bfc", 8,8, 0x9a, "1p", 0, "", 21,21 },
- { "blo", 8,8, 0xaa, "1p", 0, "", 21,21 },
- { "bhs", 8,8, 0xba, "1p", 0, "", 21,21 },
- { "blt", 8,8, 0xca, "1p", 0, "", 21,21 },
- { "bge", 8,8, 0xda, "1p", 0, "", 21,21 },
- { "but", 8,8, 0xea, "1p", 0, "", 21,21 },
- { "buf", 8,8, 0xfa, "1p", 0, "", 21,21 },
- { "bicb", 6,16, 0x08, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "bicw", 6,16, 0x09, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "bicd", 6,16, 0x0b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "bicpsrb", 11,16, 0x17c, "1B", 1, "", DEF_MODEC,DEF_MODEL },
- { "bicpsrw", 11,16, 0x17d, "1W", 2, "", DEF_MODEC,DEF_MODEL },
- { "bispsrb", 11,16, 0x37c, "1B", 1, "", DEF_MODEC,DEF_MODEL },
- { "bispsrw", 11,16, 0x37d, "1W", 2, "", DEF_MODEC,DEF_MODEL },
- { "bpt", 8,8, 0xf2, "", 0, "", DEF_MODEC,DEF_MODEL },
- { "br", 8,8, 0xea, "1p", 0, "", 21,21 },
-#ifdef SEQUENT_COMPATABILITY
- { "bsr", 8,8, 0x02, "1H", 0, "", 21,21 },
-#else
- { "bsr", 8,8, 0x02, "1p", 0, "", 21,21 },
-#endif
- { "caseb", 11,16, 0x77c, "1B", 1, "", DEF_MODEC,DEF_MODEL },
- { "casew", 11,16, 0x77d, "1W", 2, "", DEF_MODEC,DEF_MODEL },
- { "cased", 11,16, 0x77f, "1D", 4, "", DEF_MODEC,DEF_MODEL },
- { "cbitb", 14,24, 0x084e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "cbitw", 14,24, 0x094e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "cbitd", 14,24, 0x0b4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "cbitib", 14,24, 0x0c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "cbitiw", 14,24, 0x0d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "cbitid", 14,24, 0x0f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "checkb", 11,24, 0x0ee, "2A3B1r", 1, "", DEF_MODEC,DEF_MODEL },
- { "checkw", 11,24, 0x1ee, "2A3W1r", 2, "", DEF_MODEC,DEF_MODEL },
- { "checkd", 11,24, 0x3ee, "2A3D1r", 4, "", DEF_MODEC,DEF_MODEL },
- { "cinv", 14,24, 0x271e, "2D1C", 4, "", DEF_MODEC,DEF_MODEL },
- { "cmpf", 14,24, 0x09be, "1F2F", 4, "", DEF_MODEC,DEF_MODEL },
- { "cmpl", 14,24, 0x08be, "1L2L", 8, "", DEF_MODEC,DEF_MODEL },
- { "cmpb", 6,16, 0x04, "1B2B", 1, "", DEF_MODEC,DEF_MODEL },
- { "cmpw", 6,16, 0x05, "1W2W", 2, "", DEF_MODEC,DEF_MODEL },
- { "cmpd", 6,16, 0x07, "1D2D", 4, "", DEF_MODEC,DEF_MODEL },
- { "cmpmb", 14,24, 0x04ce, "1A2A3b", 1, "", DEF_MODEC,DEF_MODEL },
- { "cmpmw", 14,24, 0x05ce, "1A2A3b", 2, "", DEF_MODEC,DEF_MODEL },
- { "cmpmd", 14,24, 0x07ce, "1A2A3b", 4, "", DEF_MODEC,DEF_MODEL },
- { "cmpqb", 7,16, 0x1c, "2B1q", 1, "", DEF_MODEC,DEF_MODEL },
- { "cmpqw", 7,16, 0x1d, "2W1q", 2, "", DEF_MODEC,DEF_MODEL },
- { "cmpqd", 7,16, 0x1f, "2D1q", 4, "", DEF_MODEC,DEF_MODEL },
- { "cmpsb", 16,24, 0x040e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "cmpsw", 16,24, 0x050e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "cmpsd", 16,24, 0x070e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "cmpst", 16,24, 0x840e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "comb", 14,24, 0x344e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "comw", 14,24, 0x354e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "comd", 14,24, 0x374e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "cvtp", 11,24, 0x036e, "2A3D1r", 4, "", DEF_MODEC,DEF_MODEL },
- { "cxp", 8,8, 0x22, "1p", 0, "", 21,21 },
- { "cxpd", 11,16, 0x07f, "1A", 4, "", DEF_MODEC,DEF_MODEL },
- { "deib", 14,24, 0x2cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "deiw", 14,24, 0x2dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "deid", 14,24, 0x2fce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "dia", 8,8, 0xc2, "", 1, "", DEF_MODEC,DEF_MODEL },
- { "divf", 14,24, 0x21be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "divl", 14,24, 0x20be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "divb", 14,24, 0x3cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "divw", 14,24, 0x3dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "divd", 14,24, 0x3fce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "enter", 8,8, 0x82, "1U2d", 0, "", DEF_MODEC,DEF_MODEL },
- { "exit", 8,8, 0x92, "1u", 0, "", DEF_MODEC,DEF_MODEL },
- { "extb", 11,24, 0x02e, "2I3B1r4d", 1, "", DEF_MODEC,DEF_MODEL },
- { "extw", 11,24, 0x12e, "2I3W1r4d", 2, "", DEF_MODEC,DEF_MODEL },
- { "extd", 11,24, 0x32e, "2I3D1r4d", 4, "", DEF_MODEC,DEF_MODEL },
- { "extsb", 14,24, 0x0cce, "1I2I4G3g", 1, "", DEF_MODEC,DEF_MODEL },
- { "extsw", 14,24, 0x0dce, "1I2I4G3g", 2, "", DEF_MODEC,DEF_MODEL },
- { "extsd", 14,24, 0x0fce, "1I2I4G3g", 4, "", DEF_MODEC,DEF_MODEL },
- { "ffsb", 14,24, 0x046e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "ffsw", 14,24, 0x056e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "ffsd", 14,24, 0x076e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "flag", 8,8, 0xd2, "", 0, "", DEF_MODEC,DEF_MODEL },
- { "floorfb", 14,24, 0x3c3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "floorfw", 14,24, 0x3d3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "floorfd", 14,24, 0x3f3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "floorlb", 14,24, 0x383e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "floorlw", 14,24, 0x393e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "floorld", 14,24, 0x3b3e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "ibitb", 14,24, 0x384e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "ibitw", 14,24, 0x394e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "ibitd", 14,24, 0x3b4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "indexb", 11,24, 0x42e, "2B3B1r", 1, "", DEF_MODEC,DEF_MODEL },
- { "indexw", 11,24, 0x52e, "2W3W1r", 2, "", DEF_MODEC,DEF_MODEL },
- { "indexd", 11,24, 0x72e, "2D3D1r", 4, "", DEF_MODEC,DEF_MODEL },
- { "insb", 11,24, 0x0ae, "2B3I1r4d", 1, "", DEF_MODEC,DEF_MODEL },
- { "insw", 11,24, 0x1ae, "2W3I1r4d", 2, "", DEF_MODEC,DEF_MODEL },
- { "insd", 11,24, 0x3ae, "2D3I1r4d", 4, "", DEF_MODEC,DEF_MODEL },
- { "inssb", 14,24, 0x08ce, "1B2I4G3g", 1, "", DEF_MODEC,DEF_MODEL },
- { "inssw", 14,24, 0x09ce, "1W2I4G3g", 2, "", DEF_MODEC,DEF_MODEL },
- { "inssd", 14,24, 0x0bce, "1D2I4G3g", 4, "", DEF_MODEC,DEF_MODEL },
- { "jsr", 11,16, 0x67f, "1A", 4, "", 21,21 },
- { "jump", 11,16, 0x27f, "1A", 4, "", 21,21 },
- { "lfsr", 19,24, 0x00f3e,"1D", 4, "", DEF_MODEC,DEF_MODEL },
- { "lmr", 15,24, 0x0b1e, "2D1M", 4, "", DEF_MODEC,DEF_MODEL },
- { "lprb", 7,16, 0x6c, "2B1P", 1, "", DEF_MODEC,DEF_MODEL },
- { "lprw", 7,16, 0x6d, "2W1P", 2, "", DEF_MODEC,DEF_MODEL },
- { "lprd", 7,16, 0x6f, "2D1P", 4, "", DEF_MODEC,DEF_MODEL },
- { "lshb", 14,24, 0x144e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "lshw", 14,24, 0x154e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "lshd", 14,24, 0x174e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "meib", 14,24, 0x24ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "meiw", 14,24, 0x25ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "meid", 14,24, 0x27ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "modb", 14,24, 0x38ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "modw", 14,24, 0x39ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "modd", 14,24, 0x3bce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "movf", 14,24, 0x05be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "movl", 14,24, 0x04be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "movb", 6,16, 0x14, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "movw", 6,16, 0x15, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "movd", 6,16, 0x17, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "movbf", 14,24, 0x043e, "1B2Z", 1, "", DEF_MODEC,DEF_MODEL },
- { "movwf", 14,24, 0x053e, "1W2Z", 2, "", DEF_MODEC,DEF_MODEL },
- { "movdf", 14,24, 0x073e, "1D2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "movbl", 14,24, 0x003e, "1B2Z", 1, "", DEF_MODEC,DEF_MODEL },
- { "movwl", 14,24, 0x013e, "1W2Z", 2, "", DEF_MODEC,DEF_MODEL },
- { "movdl", 14,24, 0x033e, "1D2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "movfl", 14,24, 0x1b3e, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "movlf", 14,24, 0x163e, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "movmb", 14,24, 0x00ce, "1A2A3b", 1, "", DEF_MODEC,DEF_MODEL },
- { "movmw", 14,24, 0x01ce, "1A2A3b", 2, "", DEF_MODEC,DEF_MODEL },
- { "movmd", 14,24, 0x03ce, "1A2A3b", 4, "", DEF_MODEC,DEF_MODEL },
- { "movqb", 7,16, 0x5c, "2I1q", 1, "", DEF_MODEC,DEF_MODEL },
- { "movqw", 7,16, 0x5d, "2I1q", 2, "", DEF_MODEC,DEF_MODEL },
- { "movqd", 7,16, 0x5f, "2I1q", 4, "", DEF_MODEC,DEF_MODEL },
- { "movsb", 16,24, 0x000e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "movsw", 16,24, 0x010e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "movsd", 16,24, 0x030e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "movst", 16,24, 0x800e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "movsub", 14,24, 0x0cae, "1A2A", 1, "", DEF_MODEC,DEF_MODEL },
- { "movsuw", 14,24, 0x0dae, "1A2A", 2, "", DEF_MODEC,DEF_MODEL },
- { "movsud", 14,24, 0x0fae, "1A2A", 4, "", DEF_MODEC,DEF_MODEL },
- { "movusb", 14,24, 0x1cae, "1A2A", 1, "", DEF_MODEC,DEF_MODEL },
- { "movusw", 14,24, 0x1dae, "1A2A", 2, "", DEF_MODEC,DEF_MODEL },
- { "movusd", 14,24, 0x1fae, "1A2A", 4, "", DEF_MODEC,DEF_MODEL },
- { "movxbd", 14,24, 0x1cce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "movxwd", 14,24, 0x1dce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "movxbw", 14,24, 0x10ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "movzbd", 14,24, 0x18ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "movzwd", 14,24, 0x19ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "movzbw", 14,24, 0x14ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "mulf", 14,24, 0x31be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "mull", 14,24, 0x30be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "mulb", 14,24, 0x20ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "mulw", 14,24, 0x21ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "muld", 14,24, 0x23ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "negf", 14,24, 0x15be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "negl", 14,24, 0x14be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "negb", 14,24, 0x204e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "negw", 14,24, 0x214e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "negd", 14,24, 0x234e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "nop", 8,8, 0xa2, "", 0, "", DEF_MODEC,DEF_MODEL },
- { "notb", 14,24, 0x244e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "notw", 14,24, 0x254e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "notd", 14,24, 0x274e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "orb", 6,16, 0x18, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "orw", 6,16, 0x19, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "ord", 6,16, 0x1b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "quob", 14,24, 0x30ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "quow", 14,24, 0x31ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "quod", 14,24, 0x33ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "rdval", 19,24, 0x0031e,"1A", 4, "", DEF_MODEC,DEF_MODEL },
- { "remb", 14,24, 0x34ce, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "remw", 14,24, 0x35ce, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "remd", 14,24, 0x37ce, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "restore", 8,8, 0x72, "1u", 0, "", DEF_MODEC,DEF_MODEL },
- { "ret", 8,8, 0x12, "1d", 0, "", DEF_MODEC,DEF_MODEL },
- { "reti", 8,8, 0x52, "", 0, "", DEF_MODEC,DEF_MODEL },
- { "rett", 8,8, 0x42, "1d", 0, "", DEF_MODEC,DEF_MODEL },
- { "rotb", 14,24, 0x004e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "rotw", 14,24, 0x014e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "rotd", 14,24, 0x034e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "roundfb", 14,24, 0x243e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "roundfw", 14,24, 0x253e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "roundfd", 14,24, 0x273e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "roundlb", 14,24, 0x203e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "roundlw", 14,24, 0x213e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "roundld", 14,24, 0x233e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "rxp", 8,8, 0x32, "1d", 0, "", DEF_MODEC,DEF_MODEL },
- { "seqb", 11,16, 0x3c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "seqw", 11,16, 0x3d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "seqd", 11,16, 0x3f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sneb", 11,16, 0xbc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "snew", 11,16, 0xbd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sned", 11,16, 0xbf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "scsb", 11,16, 0x13c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "scsw", 11,16, 0x13d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "scsd", 11,16, 0x13f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sccb", 11,16, 0x1bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sccw", 11,16, 0x1bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sccd", 11,16, 0x1bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "shib", 11,16, 0x23c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "shiw", 11,16, 0x23d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "shid", 11,16, 0x23f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "slsb", 11,16, 0x2bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "slsw", 11,16, 0x2bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "slsd", 11,16, 0x2bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sgtb", 11,16, 0x33c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sgtw", 11,16, 0x33d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sgtd", 11,16, 0x33f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sleb", 11,16, 0x3bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "slew", 11,16, 0x3bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sled", 11,16, 0x3bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfsb", 11,16, 0x43c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfsw", 11,16, 0x43d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfsd", 11,16, 0x43f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfcb", 11,16, 0x4bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfcw", 11,16, 0x4bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfcd", 11,16, 0x4bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "slob", 11,16, 0x53c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "slow", 11,16, 0x53d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "slod", 11,16, 0x53f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "shsb", 11,16, 0x5bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "shsw", 11,16, 0x5bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "shsd", 11,16, 0x5bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sltb", 11,16, 0x63c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sltw", 11,16, 0x63d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sltd", 11,16, 0x63f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sgeb", 11,16, 0x6bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sgew", 11,16, 0x6bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sged", 11,16, 0x6bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sutb", 11,16, 0x73c, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sutw", 11,16, 0x73d, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sutd", 11,16, 0x73f, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "sufb", 11,16, 0x7bc, "1B", 0, "", DEF_MODEC,DEF_MODEL },
- { "sufw", 11,16, 0x7bd, "1W", 0, "", DEF_MODEC,DEF_MODEL },
- { "sufd", 11,16, 0x7bf, "1D", 0, "", DEF_MODEC,DEF_MODEL },
- { "save", 8,8, 0x62, "1U", 0, "", DEF_MODEC,DEF_MODEL },
- { "sbitb", 14,24, 0x184e, "1B2A", 1, "", DEF_MODEC,DEF_MODEL },
- { "sbitw", 14,24, 0x194e, "1W2A", 2, "", DEF_MODEC,DEF_MODEL },
- { "sbitd", 14,24, 0x1b4e, "1D2A", 4, "", DEF_MODEC,DEF_MODEL },
- { "sbitib", 14,24, 0x1c4e, "1B2A", 1, "", DEF_MODEC,DEF_MODEL },
- { "sbitiw", 14,24, 0x1d4e, "1W2A", 2, "", DEF_MODEC,DEF_MODEL },
- { "sbitid", 14,24, 0x1f4e, "1D2A", 4, "", DEF_MODEC,DEF_MODEL },
- { "setcfg", 15,24, 0x0b0e, "1O", 0, "", DEF_MODEC,DEF_MODEL },
- { "sfsr", 14,24, 0x373e, "1f", 0, "", DEF_MODEC,DEF_MODEL },
- { "skpsb", 16,24, 0x0c0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "skpsw", 16,24, 0x0d0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "skpsd", 16,24, 0x0f0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "skpst", 16,24, 0x8c0e, "1S", 0, "[]", DEF_MODEC,DEF_MODEL },
- { "smr", 15,24, 0x0f1e, "2I1M", 4, "", DEF_MODEC,DEF_MODEL },
- { "sprb", 7,16, 0x2c, "2I1P", 1, "", DEF_MODEC,DEF_MODEL },
- { "sprw", 7,16, 0x2d, "2I1P", 2, "", DEF_MODEC,DEF_MODEL },
- { "sprd", 7,16, 0x2f, "2I1P", 4, "", DEF_MODEC,DEF_MODEL },
- { "subf", 14,24, 0x11be, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "subl", 14,24, 0x10be, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "subb", 6,16, 0x20, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "subw", 6,16, 0x21, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "subd", 6,16, 0x23, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "subcb", 6,16, 0x30, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "subcw", 6,16, 0x31, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "subcd", 6,16, 0x33, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "subpb", 14,24, 0x2c4e, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "subpw", 14,24, 0x2d4e, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "subpd", 14,24, 0x2f4e, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
-#ifdef NS32K_SVC_IMMED_OPERANDS
- { "svc", 8,8, 0xe2, "2i1i", 1, "", DEF_MODEC,DEF_MODEL }, /* not really, but some unix uses it */
-#else
- { "svc", 8,8, 0xe2, "", 0, "", DEF_MODEC,DEF_MODEL },
-#endif
- { "tbitb", 6,16, 0x34, "1B2A", 1, "", DEF_MODEC,DEF_MODEL },
- { "tbitw", 6,16, 0x35, "1W2A", 2, "", DEF_MODEC,DEF_MODEL },
- { "tbitd", 6,16, 0x37, "1D2A", 4, "", DEF_MODEC,DEF_MODEL },
- { "truncfb", 14,24, 0x2c3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "truncfw", 14,24, 0x2d3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "truncfd", 14,24, 0x2f3e, "1F2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "trunclb", 14,24, 0x283e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "trunclw", 14,24, 0x293e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "truncld", 14,24, 0x2b3e, "1L2I", 8, "", DEF_MODEC,DEF_MODEL },
- { "wait", 8,8, 0xb2, "", 0, "", DEF_MODEC,DEF_MODEL },
- { "wrval", 19,24, 0x0071e,"1A", 0, "", DEF_MODEC,DEF_MODEL },
- { "xorb", 6,16, 0x38, "1B2I", 1, "", DEF_MODEC,DEF_MODEL },
- { "xorw", 6,16, 0x39, "1W2I", 2, "", DEF_MODEC,DEF_MODEL },
- { "xord", 6,16, 0x3b, "1D2I", 4, "", DEF_MODEC,DEF_MODEL },
- { "dotf", 14,24, 0x0dfe, "1F2F", 4, "", DEF_MODEC,DEF_MODEL },
- { "dotl", 14,24, 0x0cfe, "1L2L", 8, "", DEF_MODEC,DEF_MODEL },
- { "logbf", 14,24, 0x15fe, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "logbl", 14,24, 0x14fe, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
- { "polyf", 14,24, 0x09fe, "1F2F", 4, "", DEF_MODEC,DEF_MODEL },
- { "polyl", 14,24, 0x08fe, "1L2L", 8, "", DEF_MODEC,DEF_MODEL },
- { "scalbf", 14,24, 0x11fe, "1F2Z", 4, "", DEF_MODEC,DEF_MODEL },
- { "scalbl", 14,24, 0x10fe, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL },
-};
-
-#define MAX_ARGS 4
-#define ARG_LEN 50
-
diff --git a/include/opcode/or32.h b/include/opcode/or32.h
deleted file mode 100644
index 153d91ec4..000000000
--- a/include/opcode/or32.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Table of opcodes for the OpenRISC 1000 ISA.
- Copyright 2002, 2003, 2010 Free Software Foundation, Inc.
- Contributed by Damjan Lampret (lampret@opencores.org).
-
- This file is part of or1k_gen_isa, or1ksim, GDB and GAS.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* We treat all letters the same in encode/decode routines so
- we need to assign some characteristics to them like signess etc. */
-
-#ifndef OR32_H_ISA
-#define OR32_H_ISA
-
-#define NUM_UNSIGNED (0)
-#define NUM_SIGNED (1)
-
-#define MAX_GPRS 32
-#define PAGE_SIZE 4096
-#undef __HALF_WORD_INSN__
-
-#define OPERAND_DELIM (',')
-
-#define OR32_IF_DELAY (1)
-#define OR32_W_FLAG (2)
-#define OR32_R_FLAG (4)
-
-struct or32_letter
-{
- char letter;
- int sign;
- /* int reloc; relocation per letter ?? */
-};
-
-/* Main instruction specification array. */
-struct or32_opcode
-{
- /* Name of the instruction. */
- char *name;
-
- /* A string of characters which describe the operands.
- Valid characters are:
- ,() Itself. Characters appears in the assembly code.
- rA Register operand.
- rB Register operand.
- rD Register operand.
- I An immediate operand, range -32768 to 32767.
- J An immediate operand, range . (unused)
- K An immediate operand, range 0 to 65535.
- L An immediate operand, range 0 to 63.
- M An immediate operand, range . (unused)
- N An immediate operand, range -33554432 to 33554431.
- O An immediate operand, range . (unused). */
- char *args;
-
- /* Opcode and operand encoding. */
- char *encoding;
- void (*exec) (void);
- unsigned int flags;
-};
-
-#define OPTYPE_LAST (0x80000000)
-#define OPTYPE_OP (0x40000000)
-#define OPTYPE_REG (0x20000000)
-#define OPTYPE_SIG (0x10000000)
-#define OPTYPE_DIS (0x08000000)
-#define OPTYPE_DST (0x04000000)
-#define OPTYPE_SBIT (0x00001F00)
-#define OPTYPE_SHR (0x0000001F)
-#define OPTYPE_SBIT_SHR (8)
-
-/* MM: Data how to decode operands. */
-extern struct insn_op_struct
-{
- unsigned long type;
- unsigned long data;
-} **op_start;
-
-#ifdef HAS_EXECUTION
-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 (void);
-
-extern const struct or32_letter or32_letters[];
-
-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 (int);
-
-/* Is individual insn's operand signed or unsigned? */
-extern int letter_signed (char);
-
-/* Number of letters in the individual lettered operand. */
-extern int letter_range (char);
-
-/* MM: Returns index of given instruction name. */
-extern int insn_index (char *);
-
-/* MM: Returns instruction name from index. */
-extern const char *insn_name (int);
-
-/* MM: Constructs new FSM, based on or32_opcodes. */
-extern void build_automata (void);
-
-/* MM: Destructs FSM. */
-extern void destruct_automata (void);
-
-/* MM: Decodes instruction using FSM. Call build_automata first. */
-extern int insn_decode (unsigned int);
-
-/* Disassemble one instruction from insn to disassemble.
- Return the size of the instruction. */
-int disassemble_insn (unsigned long);
-
-#endif
diff --git a/include/opcode/pdp11.h b/include/opcode/pdp11.h
deleted file mode 100644
index 24e13b25a..000000000
--- a/include/opcode/pdp11.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* PDP-11 opcde list.
- Copyright 2001, 2002, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB and GAS.
-
- GDB and GAS are 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 3, or (at your option)
- any later version.
-
- GDB and GAS are 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 GDB or GAS; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* PDP-11 opcode types. */
-
-#define PDP11_OPCODE_NO_OPS 0
-#define PDP11_OPCODE_REG 1 /* register */
-#define PDP11_OPCODE_OP 2 /* generic operand */
-#define PDP11_OPCODE_REG_OP 3 /* register and generic operand */
-#define PDP11_OPCODE_REG_OP_REV 4 /* register and generic operand,
- reversed syntax */
-#define PDP11_OPCODE_AC_FOP 5 /* fpu accumulator and generic float
- operand */
-#define PDP11_OPCODE_OP_OP 6 /* two generic operands */
-#define PDP11_OPCODE_DISPL 7 /* pc-relative displacement */
-#define PDP11_OPCODE_REG_DISPL 8 /* redister and pc-relative
- displacement */
-#define PDP11_OPCODE_IMM8 9 /* 8-bit immediate */
-#define PDP11_OPCODE_IMM6 10 /* 6-bit immediate */
-#define PDP11_OPCODE_IMM3 11 /* 3-bit immediate */
-#define PDP11_OPCODE_ILLEGAL 12 /* illegal instruction */
-#define PDP11_OPCODE_FOP_AC 13 /* generic float argument, then fpu
- accumulator */
-#define PDP11_OPCODE_FOP 14 /* generic float operand */
-#define PDP11_OPCODE_AC_OP 15 /* fpu accumulator and generic int
- operand */
-#define PDP11_OPCODE_OP_AC 16 /* generic int argument, then fpu
- accumulator */
-
-/*
- * PDP-11 instruction set extensions.
- *
- * Please keep the numbers low, as they are used as indices into
- * an array.
- */
-
-#define PDP11_NONE 0 /* not in instruction set */
-#define PDP11_BASIC 1 /* basic instruction set (11/20 etc) */
-#define PDP11_CSM 2 /* commercial instruction set */
-#define PDP11_CIS 3 /* commercial instruction set */
-#define PDP11_EIS 4 /* extended instruction set (11/45 etc) */
-#define PDP11_FIS 5 /* KEV11 floating-point instructions */
-#define PDP11_FPP 6 /* FP-11 floating-point instructions */
-#define PDP11_LEIS 7 /* limited extended instruction set
- (11/40 etc) */
-#define PDP11_MFPT 8 /* move from processor type */
-#define PDP11_MPROC 9 /* multiprocessor instructions: tstset,
- wrtlck */
-#define PDP11_MXPS 10 /* move from/to processor status */
-#define PDP11_SPL 11 /* set priority level */
-#define PDP11_UCODE 12 /* microcode instructions: ldub, med, xfc */
-#define PDP11_EXT_NUM 13 /* total number of extension types */
-
-struct pdp11_opcode
-{
- const char *name;
- int opcode;
- int mask;
- int type;
- int extension;
-};
-
-extern const struct pdp11_opcode pdp11_opcodes[];
-extern const struct pdp11_opcode pdp11_aliases[];
-extern const int pdp11_num_opcodes, pdp11_num_aliases;
-
-/* end of pdp11.h */
diff --git a/include/opcode/pj.h b/include/opcode/pj.h
deleted file mode 100644
index e6ffacc4b..000000000
--- a/include/opcode/pj.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Definitions for decoding the picoJava opcode table.
- Copyright 1999, 2002, 2003, 2010 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
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Names used to describe the type of instruction arguments, used by
- the assembler and disassembler. Attributes are encoded in various fields. */
-
-/* reloc size pcrel uns */
-#define O_N 0
-#define O_16 (1<<4 | 2 | (0<<6) | (0<<3))
-#define O_U16 (1<<4 | 2 | (0<<6) | (1<<3))
-#define O_R16 (2<<4 | 2 | (1<<6) | (0<<3))
-#define O_8 (3<<4 | 1 | (0<<6) | (0<<3))
-#define O_U8 (3<<4 | 1 | (0<<6) | (1<<3))
-#define O_R8 (4<<4 | 1 | (0<<6) | (0<<3))
-#define O_R32 (5<<4 | 4 | (1<<6) | (0<<3))
-#define O_32 (6<<4 | 4 | (0<<6) | (0<<3))
-
-#define ASIZE(x) ((x) & 0x7)
-#define PCREL(x) (!!((x) & (1<<6)))
-#define UNS(x) (!!((x) & (1<<3)))
-
-
-typedef struct pj_opc_info_t
-{
- short opcode;
- short opcode_next;
- char len;
- unsigned char arg[2];
- union {
- const char *name;
- void (*func) (struct pj_opc_info_t *, char *);
- } u;
-} pj_opc_info_t;
diff --git a/include/opcode/pn.h b/include/opcode/pn.h
deleted file mode 100644
index 6674030c4..000000000
--- a/include/opcode/pn.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Print GOULD PN (PowerNode) instructions for GDB, the GNU debugger.
- Copyright 1986, 1987, 1989, 1991, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- GDB 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 3, or (at your option)
- any later version.
-
- GDB 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 GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-struct gld_opcode
-{
- char *name;
- unsigned long opcode;
- unsigned long mask;
- char *args;
- int length;
-};
-
-/* We store four bytes of opcode for all opcodes because that
- is the most any of them need. The actual length of an instruction
- is always at least 2 bytes, and at most four. The length of the
- instruction is based on the opcode.
-
- The mask component is a mask saying which bits must match
- particular opcode in order for an instruction to be an instance
- of that opcode.
-
- The args component is a string containing characters
- that are used to format the arguments to the instruction. */
-
-/* Kinds of operands:
- r Register in first field
- R Register in second field
- b Base register in first field
- B Base register in second field
- v Vector register in first field
- V Vector register in first field
- A Optional address register (base register)
- X Optional index register
- I Immediate data (16bits signed)
- O Offset field (16bits signed)
- h Offset field (15bits signed)
- d Offset field (14bits signed)
- S Shift count field
-
- any other characters are printed as is...
-*/
-
-/* The assembler requires that this array be sorted as follows:
- all instances of the same mnemonic must be consecutive.
- All instances of the same mnemonic with the same number of operands
- must be consecutive.
- */
-struct gld_opcode gld_opcodes[] =
-{
-{ "abm", 0xa0080000, 0xfc080000, "f,xOA,X", 4 },
-{ "abr", 0x18080000, 0xfc0c0000, "r,f", 2 },
-{ "aci", 0xfc770000, 0xfc7f8000, "r,I", 4 },
-{ "adfd", 0xe0080002, 0xfc080002, "r,xOA,X", 4 },
-{ "adfw", 0xe0080000, 0xfc080000, "r,xOA,X", 4 },
-{ "adi", 0xc8010000, 0xfc7f0000, "r,I", 4 },
-{ "admb", 0xb8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "admd", 0xb8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "admh", 0xb8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "admw", 0xb8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "adr", 0x38000000, 0xfc0f0000, "r,R", 2 },
-{ "adrfd", 0x38090000, 0xfc0f0000, "r,R", 2 },
-{ "adrfw", 0x38010000, 0xfc0f0000, "r,R", 2 },
-{ "adrm", 0x38080000, 0xfc0f0000, "r,R", 2 },
-{ "ai", 0xfc030000, 0xfc07ffff, "I", 4 },
-{ "anmb", 0x84080000, 0xfc080000, "r,xOA,X", 4 },
-{ "anmd", 0x84000002, 0xfc080002, "r,xOA,X", 4 },
-{ "anmh", 0x84000001, 0xfc080001, "r,xOA,X", 4 },
-{ "anmw", 0x84000000, 0xfc080000, "r,xOA,X", 4 },
-{ "anr", 0x04000000, 0xfc0f0000, "r,R", 2 },
-{ "armb", 0xe8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "armd", 0xe8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "armh", 0xe8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "armw", 0xe8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "bcf", 0xf0000000, 0xfc080000, "I,xOA,X", 4 },
-{ "bct", 0xec000000, 0xfc080000, "I,xOA,X", 4 },
-{ "bei", 0x00060000, 0xffff0000, "", 2 },
-{ "bft", 0xf0000000, 0xff880000, "xOA,X", 4 },
-{ "bib", 0xf4000000, 0xfc780000, "r,xOA", 4 },
-{ "bid", 0xf4600000, 0xfc780000, "r,xOA", 4 },
-{ "bih", 0xf4200000, 0xfc780000, "r,xOA", 4 },
-{ "biw", 0xf4400000, 0xfc780000, "r,xOA", 4 },
-{ "bl", 0xf8800000, 0xff880000, "xOA,X", 4 },
-{ "bsub", 0x5c080000, 0xff8f0000, "", 2 },
-{ "bsubm", 0x28080000, 0xfc080000, "", 4 },
-{ "bu", 0xec000000, 0xff880000, "xOA,X", 4 },
-{ "call", 0x28080000, 0xfc0f0000, "", 2 },
-{ "callm", 0x5c080000, 0xff880000, "", 4 },
-{ "camb", 0x90080000, 0xfc080000, "r,xOA,X", 4 },
-{ "camd", 0x90000002, 0xfc080002, "r,xOA,X", 4 },
-{ "camh", 0x90000001, 0xfc080001, "r,xOA,X", 4 },
-{ "camw", 0x90000000, 0xfc080000, "r.xOA,X", 4 },
-{ "car", 0x10000000, 0xfc0f0000, "r,R", 2 },
-{ "cd", 0xfc060000, 0xfc070000, "r,f", 4 },
-{ "cea", 0x000f0000, 0xffff0000, "", 2 },
-{ "ci", 0xc8050000, 0xfc7f0000, "r,I", 4 },
-{ "cmc", 0x040a0000, 0xfc7f0000, "r", 2 },
-{ "cmmb", 0x94080000, 0xfc080000, "r,xOA,X", 4 },
-{ "cmmd", 0x94000002, 0xfc080002, "r,xOA,X", 4 },
-{ "cmmh", 0x94000001, 0xfc080001, "r,xOA,X", 4 },
-{ "cmmw", 0x94000000, 0xfc080000, "r,xOA,X", 4 },
-{ "cmr", 0x14000000, 0xfc0f0000, "r,R", 2 },
-{ "daci", 0xfc7f0000, 0xfc7f8000, "r,I", 4 },
-{ "dae", 0x000e0000, 0xffff0000, "", 2 },
-{ "dai", 0xfc040000, 0xfc07ffff, "I", 4 },
-{ "dci", 0xfc6f0000, 0xfc7f8000, "r,I", 4 },
-{ "di", 0xfc010000, 0xfc07ffff, "I", 4 },
-{ "dvfd", 0xe4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "dvfw", 0xe4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "dvi", 0xc8040000, 0xfc7f0000, "r,I", 4 },
-{ "dvmb", 0xc4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "dvmh", 0xc4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "dvmw", 0xc4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "dvr", 0x380a0000, 0xfc0f0000, "r,R", 2 },
-{ "dvrfd", 0x380c0000, 0xfc0f0000, "r,R", 4 },
-{ "dvrfw", 0x38040000, 0xfc0f0000, "r,xOA,X", 4 },
-{ "eae", 0x00080000, 0xffff0000, "", 2 },
-{ "eci", 0xfc670000, 0xfc7f8080, "r,I", 4 },
-{ "ecwcs", 0xfc4f0000, 0xfc7f8000, "", 4 },
-{ "ei", 0xfc000000, 0xfc07ffff, "I", 4 },
-{ "eomb", 0x8c080000, 0xfc080000, "r,xOA,X", 4 },
-{ "eomd", 0x8c000002, 0xfc080002, "r,xOA,X", 4 },
-{ "eomh", 0x8c000001, 0xfc080001, "r,xOA,X", 4 },
-{ "eomw", 0x8c000000, 0xfc080000, "r,xOA,X", 4 },
-{ "eor", 0x0c000000, 0xfc0f0000, "r,R", 2 },
-{ "eorm", 0x0c080000, 0xfc0f0000, "r,R", 2 },
-{ "es", 0x00040000, 0xfc7f0000, "r", 2 },
-{ "exm", 0xa8000000, 0xff880000, "xOA,X", 4 },
-{ "exr", 0xc8070000, 0xfc7f0000, "r", 2 },
-{ "exrr", 0xc8070002, 0xfc7f0002, "r", 2 },
-{ "fixd", 0x380d0000, 0xfc0f0000, "r,R", 2 },
-{ "fixw", 0x38050000, 0xfc0f0000, "r,R", 2 },
-{ "fltd", 0x380f0000, 0xfc0f0000, "r,R", 2 },
-{ "fltw", 0x38070000, 0xfc0f0000, "r,R", 2 },
-{ "grio", 0xfc3f0000, 0xfc7f8000, "r,I", 4 },
-{ "halt", 0x00000000, 0xffff0000, "", 2 },
-{ "hio", 0xfc370000, 0xfc7f8000, "r,I", 4 },
-{ "jwcs", 0xfa080000, 0xff880000, "xOA,X", 4 },
-{ "la", 0x50000000, 0xfc000000, "r,xOA,X", 4 },
-{ "labr", 0x58080000, 0xfc080000, "b,xOA,X", 4 },
-{ "lb", 0xac080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lcs", 0x00030000, 0xfc7f0000, "r", 2 },
-{ "ld", 0xac000002, 0xfc080002, "r,xOA,X", 4 },
-{ "lear", 0x80000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lf", 0xcc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lfbr", 0xcc080000, 0xfc080000, "b,xOA,X", 4 },
-{ "lh", 0xac000001, 0xfc080001, "r,xOA,X", 4 },
-{ "li", 0xc8000000, 0xfc7f0000, "r,I", 4 },
-{ "lmap", 0x2c070000, 0xfc7f0000, "r", 2 },
-{ "lmb", 0xb0080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lmd", 0xb0000002, 0xfc080002, "r,xOA,X", 4 },
-{ "lmh", 0xb0000001, 0xfc080001, "r,xOA,X", 4 },
-{ "lmw", 0xb0000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lnb", 0xb4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "lnd", 0xb4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "lnh", 0xb4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "lnw", 0xb4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lpsd", 0xf9800000, 0xff880000, "r,xOA,X", 4 },
-{ "lpsdcm", 0xfa800000, 0xff880000, "r,xOA,X", 4 },
-{ "lw", 0xac000000, 0xfc080000, "r,xOA,X", 4 },
-{ "lwbr", 0x5c000000, 0xfc080000, "b,xOA,X", 4 },
-{ "mpfd", 0xe4080002, 0xfc080002, "r,xOA,X", 4 },
-{ "mpfw", 0xe4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpi", 0xc8030000, 0xfc7f0000, "r,I", 4 },
-{ "mpmb", 0xc0080000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpmh", 0xc0000001, 0xfc080001, "r,xOA,X", 4 },
-{ "mpmw", 0xc0000000, 0xfc080000, "r,xOA,X", 4 },
-{ "mpr", 0x38020000, 0xfc0f0000, "r,R", 2 },
-{ "mprfd", 0x380e0000, 0xfc0f0000, "r,R", 2 },
-{ "mprfw", 0x38060000, 0xfc0f0000, "r,R", 2 },
-{ "nop", 0x00020000, 0xffff0000, "", 2 },
-{ "ormb", 0x88080000, 0xfc080000, "r,xOA,X", 4 },
-{ "ormd", 0x88000002, 0xfc080002, "r,xOA,X", 4 },
-{ "ormh", 0x88000001, 0xfc080001, "r,xOA,X", 4 },
-{ "ormw", 0x88000000, 0xfc080000, "r,xOA,X", 4 },
-{ "orr", 0x08000000, 0xfc0f0000, "r,R", 2 },
-{ "orrm", 0x08080000, 0xfc0f0000, "r,R", 2 },
-{ "rdsts", 0x00090000, 0xfc7f0000, "r", 2 },
-{ "return", 0x280e0000, 0xfc7f0000, "", 2 },
-{ "ri", 0xfc020000, 0xfc07ffff, "I", 4 },
-{ "rnd", 0x00050000, 0xfc7f0000, "r", 2 },
-{ "rpswt", 0x040b0000, 0xfc7f0000, "r", 2 },
-{ "rschnl", 0xfc2f0000, 0xfc7f8000, "r,I", 4 },
-{ "rsctl", 0xfc470000, 0xfc7f8000, "r,I", 4 },
-{ "rwcs", 0x000b0000, 0xfc0f0000, "r,R", 2 },
-{ "sacz", 0x10080000, 0xfc0f0000, "r,R", 2 },
-{ "sbm", 0x98080000, 0xfc080000, "f,xOA,X", 4 },
-{ "sbr", 0x18000000, 0xfc0c0000, "r,f", 4 },
-{ "sea", 0x000d0000, 0xffff0000, "", 2 },
-{ "setcpu", 0x2c090000, 0xfc7f0000, "r", 2 },
-{ "sio", 0xfc170000, 0xfc7f8000, "r,I", 4 },
-{ "sipu", 0x000a0000, 0xffff0000, "", 2 },
-{ "sla", 0x1c400000, 0xfc600000, "r,S", 2 },
-{ "slad", 0x20400000, 0xfc600000, "r,S", 2 },
-{ "slc", 0x24400000, 0xfc600000, "r,S", 2 },
-{ "sll", 0x1c600000, 0xfc600000, "r,S", 2 },
-{ "slld", 0x20600000, 0xfc600000, "r,S", 2 },
-{ "smc", 0x04070000, 0xfc070000, "", 2 },
-{ "sra", 0x1c000000, 0xfc600000, "r,S", 2 },
-{ "srad", 0x20000000, 0xfc600000, "r,S", 2 },
-{ "src", 0x24000000, 0xfc600000, "r,S", 2 },
-{ "srl", 0x1c200000, 0xfc600000, "r,S", 2 },
-{ "srld", 0x20200000, 0xfc600000, "r,S", 2 },
-{ "stb", 0xd4080000, 0xfc080000, "r,xOA,X", 4 },
-{ "std", 0xd4000002, 0xfc080002, "r,xOA,X", 4 },
-{ "stf", 0xdc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "stfbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 },
-{ "sth", 0xd4000001, 0xfc080001, "r,xOA,X", 4 },
-{ "stmb", 0xd8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "stmd", 0xd8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "stmh", 0xd8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "stmw", 0xd8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "stpio", 0xfc270000, 0xfc7f8000, "r,I", 4 },
-{ "stw", 0xd4000000, 0xfc080000, "r,xOA,X", 4 },
-{ "stwbr", 0x54000000, 0xfc080000, "b,xOA,X", 4 },
-{ "suabr", 0x58000000, 0xfc080000, "b,xOA,X", 4 },
-{ "sufd", 0xe0000002, 0xfc080002, "r,xOA,X", 4 },
-{ "sufw", 0xe0000000, 0xfc080000, "r,xOA,X", 4 },
-{ "sui", 0xc8020000, 0xfc7f0000, "r,I", 4 },
-{ "sumb", 0xbc080000, 0xfc080000, "r,xOA,X", 4 },
-{ "sumd", 0xbc000002, 0xfc080002, "r,xOA,X", 4 },
-{ "sumh", 0xbc000001, 0xfc080001, "r,xOA,X", 4 },
-{ "sumw", 0xbc000000, 0xfc080000, "r,xOA,X", 4 },
-{ "sur", 0x3c000000, 0xfc0f0000, "r,R", 2 },
-{ "surfd", 0x380b0000, 0xfc0f0000, "r,xOA,X", 4 },
-{ "surfw", 0x38030000, 0xfc0f0000, "r,R", 2 },
-{ "surm", 0x3c080000, 0xfc0f0000, "r,R", 2 },
-{ "svc", 0xc8060000, 0xffff0000, "", 4 },
-{ "tbm", 0xa4080000, 0xfc080000, "f,xOA,X", 4 },
-{ "tbr", 0x180c0000, 0xfc0c0000, "r,f", 2 },
-{ "tbrr", 0x2c020000, 0xfc0f0000, "r,B", 2 },
-{ "tccr", 0x28040000, 0xfc7f0000, "", 2 },
-{ "td", 0xfc050000, 0xfc070000, "r,f", 4 },
-{ "tio", 0xfc1f0000, 0xfc7f8000, "r,I", 4 },
-{ "tmapr", 0x2c0a0000, 0xfc0f0000, "r,R", 2 },
-{ "tpcbr", 0x280c0000, 0xfc7f0000, "r", 2 },
-{ "trbr", 0x2c010000, 0xfc0f0000, "b,R", 2 },
-{ "trc", 0x2c030000, 0xfc0f0000, "r,R", 2 },
-{ "trcc", 0x28050000, 0xfc7f0000, "", 2 },
-{ "trcm", 0x2c0b0000, 0xfc0f0000, "r,R", 2 },
-{ "trn", 0x2c040000, 0xfc0f0000, "r,R", 2 },
-{ "trnm", 0x2c0c0000, 0xfc0f0000, "r,R", 2 },
-{ "trr", 0x2c000000, 0xfc0f0000, "r,R", 2 },
-{ "trrm", 0x2c080000, 0xfc0f0000, "r,R", 2 },
-{ "trsc", 0x2c0e0000, 0xfc0f0000, "r,R", 2 },
-{ "trsw", 0x28000000, 0xfc7f0000, "r", 2 },
-{ "tscr", 0x2c0f0000, 0xfc0f0000, "r,R", 2 },
-{ "uei", 0x00070000, 0xffff0000, "", 2 },
-{ "wait", 0x00010000, 0xffff0000, "", 2 },
-{ "wcwcs", 0xfc5f0000, 0xfc7f8000, "", 4 },
-{ "wwcs", 0x000c0000, 0xfc0f0000, "r,R", 2 },
-{ "xcbr", 0x28020000, 0xfc0f0000, "b,B", 2 },
-{ "xcr", 0x2c050000, 0xfc0f0000, "r,R", 2 },
-{ "xcrm", 0x2c0d0000, 0xfc0f0000, "r,R", 2 },
-{ "zbm", 0x9c080000, 0xfc080000, "f,xOA,X", 4 },
-{ "zbr", 0x18040000, 0xfc0c0000, "r,f", 2 },
-{ "zmb", 0xf8080000, 0xfc080000, "r,xOA,X", 4 },
-{ "zmd", 0xf8000002, 0xfc080002, "r,xOA,X", 4 },
-{ "zmh", 0xf8000001, 0xfc080001, "r,xOA,X", 4 },
-{ "zmw", 0xf8000000, 0xfc080000, "r,xOA,X", 4 },
-{ "zr", 0x0c000000, 0xfc0f0000, "r", 2 },
-};
-
-int numopcodes = sizeof(gld_opcodes) / sizeof(gld_opcodes[0]);
-
-struct gld_opcode *endop = gld_opcodes + sizeof(gld_opcodes) /
- sizeof(gld_opcodes[0]);
diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h
deleted file mode 100644
index a0119dc0a..000000000
--- a/include/opcode/ppc.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/* ppc.h -- Header file for PowerPC opcode table
- Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef PPC_H
-#define PPC_H
-
-#include "bfd_stdint.h"
-
-typedef uint64_t ppc_cpu_t;
-
-/* The opcode table is an array of struct powerpc_opcode. */
-
-struct powerpc_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned long opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned long mask;
-
- /* One bit flags for the opcode. These are used to indicate which
- specific processors support the instructions. The defined values
- are listed below. */
- ppc_cpu_t flags;
-
- /* One bit flags for the opcode. These are used to indicate which
- specific processors no longer support the instructions. The defined
- values are listed below. */
- ppc_cpu_t deprecated;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct powerpc_opcode powerpc_opcodes[];
-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 1
-
-/* Opcode is defined for the POWER (RS/6000) architecture. */
-#define PPC_OPCODE_POWER 2
-
-/* Opcode is defined for the POWER2 (Rios 2) architecture. */
-#define PPC_OPCODE_POWER2 4
-
-/* 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 8
-
-/* Opcode is supported in both the Power and PowerPC architectures
- (ie, compiler's -mcpu=common or assembler's -mcom). More than just
- the intersection of PPC_OPCODE_PPC with the union of PPC_OPCODE_POWER
- and PPC_OPCODE_POWER2 because many instructions changed mnemonics
- between POWER and POWERPC. */
-#define PPC_OPCODE_COMMON 0x10
-
-/* 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 0x20
-
-/* Opcode is only defined on 64 bit architectures. */
-#define PPC_OPCODE_64 0x40
-
-/* Opcode is supported as part of the 64-bit bridge. */
-#define PPC_OPCODE_64_BRIDGE 0x80
-
-/* Opcode is supported by Altivec Vector Unit */
-#define PPC_OPCODE_ALTIVEC 0x100
-
-/* Opcode is supported by PowerPC 403 processor. */
-#define PPC_OPCODE_403 0x200
-
-/* Opcode is supported by PowerPC BookE processor. */
-#define PPC_OPCODE_BOOKE 0x400
-
-/* Opcode is supported by PowerPC 440 processor. */
-#define PPC_OPCODE_440 0x800
-
-/* Opcode is only supported by Power4 architecture. */
-#define PPC_OPCODE_POWER4 0x1000
-
-/* Opcode is only supported by Power7 architecture. */
-#define PPC_OPCODE_POWER7 0x2000
-
-/* Opcode is only supported by e500x2 Core. */
-#define PPC_OPCODE_SPE 0x4000
-
-/* Opcode is supported by e500x2 Integer select APU. */
-#define PPC_OPCODE_ISEL 0x8000
-
-/* Opcode is an e500 SPE floating point instruction. */
-#define PPC_OPCODE_EFS 0x10000
-
-/* Opcode is supported by branch locking APU. */
-#define PPC_OPCODE_BRLOCK 0x20000
-
-/* Opcode is supported by performance monitor APU. */
-#define PPC_OPCODE_PMR 0x40000
-
-/* Opcode is supported by cache locking APU. */
-#define PPC_OPCODE_CACHELCK 0x80000
-
-/* Opcode is supported by machine check APU. */
-#define PPC_OPCODE_RFMCI 0x100000
-
-/* Opcode is only supported by Power5 architecture. */
-#define PPC_OPCODE_POWER5 0x200000
-
-/* Opcode is supported by PowerPC e300 family. */
-#define PPC_OPCODE_E300 0x400000
-
-/* Opcode is only supported by Power6 architecture. */
-#define PPC_OPCODE_POWER6 0x800000
-
-/* Opcode is only supported by PowerPC Cell family. */
-#define PPC_OPCODE_CELL 0x1000000
-
-/* Opcode is supported by CPUs with paired singles support. */
-#define PPC_OPCODE_PPCPS 0x2000000
-
-/* Opcode is supported by Power E500MC */
-#define PPC_OPCODE_E500MC 0x4000000
-
-/* Opcode is supported by PowerPC 405 processor. */
-#define PPC_OPCODE_405 0x8000000
-
-/* Opcode is supported by Vector-Scalar (VSX) Unit */
-#define PPC_OPCODE_VSX 0x10000000
-
-/* Opcode is supported by A2. */
-#define PPC_OPCODE_A2 0x20000000
-
-/* Opcode is supported by PowerPC 476 processor. */
-#define PPC_OPCODE_476 0x40000000
-
-/* Opcode is supported by AppliedMicro Titan core */
-#define PPC_OPCODE_TITAN 0x80000000
-
-/* Opcode which is supported by the e500 family */
-#define PPC_OPCODE_E500 0x100000000ull
-
-/* A macro to extract the major opcode from an instruction. */
-#define PPC_OP(i) (((i) >> 26) & 0x3f)
-
-/* The operands table is an array of struct powerpc_operand. */
-
-struct powerpc_operand
-{
- /* A bitmask of bits in the operand. */
- unsigned int bitm;
-
- /* How far the operand is left shifted in the instruction.
- -1 to indicate that BITM and SHIFT cannot be used to determine
- where the operand goes in the insn. */
- int shift;
-
- /* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (op & o->bitm) << o->shift;
- (i is the instruction which we are filling in, o is a pointer to
- this structure, and op is the operand value).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- 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)
- (unsigned long instruction, long op, ppc_cpu_t dialect, const char **errmsg);
-
- /* Extraction function. This is used by the disassembler. To
- extract this operand type from an instruction, check this field.
-
- If it is NULL, compute
- op = (i >> o->shift) & o->bitm;
- if ((o->flags & PPC_OPERAND_SIGNED) != 0)
- sign_extend (op);
- (i is the instruction, o is a pointer to this structure, and op
- is the result).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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) (unsigned long instruction, ppc_cpu_t dialect, int *invalid);
-
- /* One bit syntax flags. */
- unsigned long flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the powerpc_opcodes table. */
-
-extern const struct powerpc_operand powerpc_operands[];
-extern const unsigned int num_powerpc_operands;
-
-/* Values defined for the flags field of a struct powerpc_operand. */
-
-/* This operand takes signed values. */
-#define PPC_OPERAND_SIGNED (0x1)
-
-/* This operand takes signed values, but also accepts a full positive
- range of values when running in 32 bit mode. That is, if bits is
- 16, it takes any value from -0x8000 to 0xffff. In 64 bit mode,
- this flag is ignored. */
-#define PPC_OPERAND_SIGNOPT (0x2)
-
-/* This operand does not actually exist in the assembler input. This
- is used to support extended mnemonics such as mr, for which two
- operands fields are identical. The assembler should call the
- insert function with any op value. The disassembler should call
- the extract function, ignore the return value, and check the value
- placed in the valid argument. */
-#define PPC_OPERAND_FAKE (0x4)
-
-/* The next operand should be wrapped in parentheses rather than
- separated from this one by a comma. This is used for the load and
- store instructions which want their operands to look like
- reg,displacement(reg)
- */
-#define PPC_OPERAND_PARENS (0x8)
-
-/* This operand may use the symbolic names for the CR fields, which
- are
- lt 0 gt 1 eq 2 so 3 un 3
- cr0 0 cr1 1 cr2 2 cr3 3
- cr4 4 cr5 5 cr6 6 cr7 7
- These may be combined arithmetically, as in cr2*4+gt. These are
- only supported on the PowerPC, not the POWER. */
-#define PPC_OPERAND_CR (0x10)
-
-/* This operand names a register. The disassembler uses this to print
- register names with a leading 'r'. */
-#define PPC_OPERAND_GPR (0x20)
-
-/* Like PPC_OPERAND_GPR, but don't print a leading 'r' for r0. */
-#define PPC_OPERAND_GPR_0 (0x40)
-
-/* This operand names a floating point register. The disassembler
- prints these with a leading 'f'. */
-#define PPC_OPERAND_FPR (0x80)
-
-/* This operand is a relative branch displacement. The disassembler
- prints these symbolically if possible. */
-#define PPC_OPERAND_RELATIVE (0x100)
-
-/* This operand is an absolute branch address. The disassembler
- prints these symbolically if possible. */
-#define PPC_OPERAND_ABSOLUTE (0x200)
-
-/* This operand is optional, and is zero if omitted. This is used for
- example, in the optional BF field in the comparison instructions. The
- assembler must count the number of operands remaining on the line,
- and the number of operands remaining for the opcode, and decide
- whether this operand is present or not. The disassembler should
- print this operand out only if it is not zero. */
-#define PPC_OPERAND_OPTIONAL (0x400)
-
-/* This flag is only used with PPC_OPERAND_OPTIONAL. If this operand
- is omitted, then for the next operand use this operand value plus
- 1, ignoring the next operand field for the opcode. This wretched
- hack is needed because the Power rotate instructions can take
- either 4 or 5 operands. The disassembler should print this operand
- out regardless of the PPC_OPERAND_OPTIONAL field. */
-#define PPC_OPERAND_NEXT (0x800)
-
-/* This operand should be regarded as a negative number for the
- purposes of overflow checking (i.e., the normal most negative
- number is disallowed and one more than the normal most positive
- number is allowed). This flag will only be set for a signed
- operand. */
-#define PPC_OPERAND_NEGATIVE (0x1000)
-
-/* This operand names a vector unit register. The disassembler
- prints these with a leading 'v'. */
-#define PPC_OPERAND_VR (0x2000)
-
-/* This operand is for the DS field in a DS form instruction. */
-#define PPC_OPERAND_DS (0x4000)
-
-/* This operand is for the DQ field in a DQ form instruction. */
-#define PPC_OPERAND_DQ (0x8000)
-
-/* Valid range of operand is 0..n rather than 0..n-1. */
-#define PPC_OPERAND_PLUS1 (0x10000)
-
-/* Xilinx APU and FSL related operands */
-#define PPC_OPERAND_FSL (0x20000)
-#define PPC_OPERAND_FCR (0x40000)
-#define PPC_OPERAND_UDI (0x80000)
-
-/* This operand names a vector-scalar unit register. The disassembler
- prints these with a leading 'vs'. */
-#define PPC_OPERAND_VSR (0x100000)
-
-/* The POWER and PowerPC assemblers use a few macros. We keep them
- with the operands table for simplicity. The macro table is an
- array of struct powerpc_macro. */
-
-struct powerpc_macro
-{
- /* The macro name. */
- const char *name;
-
- /* The number of operands the macro takes. */
- unsigned int operands;
-
- /* One bit flags for the opcode. These are used to indicate which
- specific processors support the instructions. The values are the
- same as those for the struct powerpc_opcode flags field. */
- ppc_cpu_t flags;
-
- /* A format string to turn the macro into a normal instruction.
- Each %N in the string is replaced with operand number N (zero
- based). */
- const char *format;
-};
-
-extern const struct powerpc_macro powerpc_macros[];
-extern const int powerpc_num_macros;
-
-extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, const char *);
-
-#endif /* PPC_H */
diff --git a/include/opcode/pyr.h b/include/opcode/pyr.h
deleted file mode 100644
index 2fffd9462..000000000
--- a/include/opcode/pyr.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* pyramid.opcode.h -- gdb initial attempt.
-
- Copyright 2001, 2010 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 3, 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., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* pyramid opcode table: wot to do with this
- particular opcode */
-
-struct pyr_datum
-{
- char nargs;
- char * args; /* how to compile said opcode */
- unsigned long mask; /* Bit vector: which operand modes are valid
- for this opcode */
- unsigned char code; /* op-code (always 6(?) bits */
-};
-
-typedef struct pyr_insn_format
-{
- unsigned int mode :4;
- unsigned int operator :8;
- unsigned int index_scale :2;
- unsigned int index_reg :6;
- unsigned int operand_1 :6;
- unsigned int operand_2:6;
-} pyr_insn_format;
-
-
-/* We store four bytes of opcode for all opcodes.
- Pyramid is sufficiently RISCy that:
- - insns are always an integral number of words;
- - the length of any insn can be told from the first word of
- the insn. (ie, if there are zero, one, or two words of
- immediate operand/offset).
-
-
- The args component is a string containing two characters for each
- operand of the instruction. The first specifies the kind of operand;
- the second, the place it is stored. */
-
-/* Kinds of operands:
- mask assembler syntax description
- 0x0001: movw Rn,Rn register to register
- 0x0002: movw K,Rn quick immediate to register
- 0x0004: movw I,Rn long immediate to register
- 0x0008: movw (Rn),Rn register indirect to register
- movw (Rn)[x],Rn register indirect to register
- 0x0010: movw I(Rn),Rn offset register indirect to register
- movw I(Rn)[x],Rn offset register indirect, indexed, to register
-
- 0x0020: movw Rn,(Rn) register to register indirect
- 0x0040: movw K,(Rn) quick immediate to register indirect
- 0x0080: movw I,(Rn) long immediate to register indirect
- 0x0100: movw (Rn),(Rn) register indirect to-register indirect
- 0x0100: movw (Rn),(Rn) register indirect to-register indirect
- 0x0200: movw I(Rn),(Rn) register indirect+offset to register indirect
- 0x0200: movw I(Rn),(Rn) register indirect+offset to register indirect
-
- 0x0400: movw Rn,I(Rn) register to register indirect+offset
- 0x0800: movw K,I(Rn) quick immediate to register indirect+offset
- 0x1000: movw I,I(Rn) long immediate to register indirect+offset
- 0x1000: movw (Rn),I(Rn) register indirect to-register indirect+offset
- 0x1000: movw I(Rn),I(Rn) register indirect+offset to register indirect
- +offset
- 0x0000: (irregular) ???
-
-
- Each insn has a four-bit field encoding the type(s) of its operands.
-*/
-
-/* Some common combinations
- */
-
-/* the first 5,(0x1|0x2|0x4|0x8|0x10) ie (1|2|4|8|16), ie ( 32 -1)*/
-#define GEN_TO_REG (31)
-
-#define UNKNOWN ((unsigned long)-1)
-#define ANY (GEN_TO_REG | (GEN_TO_REG << 5) | (GEN_TO_REG << 15))
-
-#define CONVERT (1|8|0x10|0x20|0x200)
-
-#define K_TO_REG (2)
-#define I_TO_REG (4)
-#define NOTK_TO_REG (GEN_TO_REG & ~K_TO_REG)
-#define NOTI_TO_REG (GEN_TO_REG & ~I_TO_REG)
-
-/* The assembler requires that this array be sorted as follows:
- all instances of the same mnemonic must be consecutive.
- All instances of the same mnemonic with the same number of operands
- must be consecutive.
- */
-
-struct pyr_opcode /* pyr opcode text */
-{
- char * name; /* opcode name: lowercase string [key] */
- struct pyr_datum datum; /* rest of opcode table [datum] */
-};
-
-#define pyr_how args
-#define pyr_nargs nargs
-#define pyr_mask mask
-#define pyr_name name
-
-struct pyr_opcode pyr_opcodes[] =
-{
- {"movb", { 2, "", UNKNOWN, 0x11}, },
- {"movh", { 2, "", UNKNOWN, 0x12} },
- {"movw", { 2, "", ANY, 0x10} },
- {"movl", { 2, "", ANY, 0x13} },
- {"mnegw", { 2, "", (0x1|0x8|0x10), 0x14} },
- {"mnegf", { 2, "", 0x1, 0x15} },
- {"mnegd", { 2, "", 0x1, 0x16} },
- {"mcomw", { 2, "", (0x1|0x8|0x10), 0x17} },
- {"mabsw", { 2, "", (0x1|0x8|0x10), 0x18} },
- {"mabsf", { 2, "", 0x1, 0x19} },
- {"mabsd", { 2, "", 0x1, 0x1a} },
- {"mtstw", { 2, "", (0x1|0x8|0x10), 0x1c} },
- {"mtstf", { 2, "", 0x1, 0x1d} },
- {"mtstd", { 2, "", 0x1, 0x1e} },
- {"mova", { 2, "", 0x8|0x10, 0x1f} },
- {"movzbw", { 2, "", (0x1|0x8|0x10), 0x20} },
- {"movzhw", { 2, "", (0x1|0x8|0x10), 0x21} },
- /* 2 insns out of order here */
- {"movbl", { 2, "", 1, 0x4f} },
- {"filbl", { 2, "", 1, 0x4e} },
-
- {"cvtbw", { 2, "", CONVERT, 0x22} },
- {"cvthw", { 2, "", CONVERT, 0x23} },
- {"cvtwb", { 2, "", CONVERT, 0x24} },
- {"cvtwh", { 2, "", CONVERT, 0x25} },
- {"cvtwf", { 2, "", CONVERT, 0x26} },
- {"cvtwd", { 2, "", CONVERT, 0x27} },
- {"cvtfw", { 2, "", CONVERT, 0x28} },
- {"cvtfd", { 2, "", CONVERT, 0x29} },
- {"cvtdw", { 2, "", CONVERT, 0x2a} },
- {"cvtdf", { 2, "", CONVERT, 0x2b} },
-
- {"addw", { 2, "", GEN_TO_REG, 0x40} },
- {"addwc", { 2, "", GEN_TO_REG, 0x41} },
- {"subw", { 2, "", GEN_TO_REG, 0x42} },
- {"subwb", { 2, "", GEN_TO_REG, 0x43} },
- {"rsubw", { 2, "", GEN_TO_REG, 0x44} },
- {"mulw", { 2, "", GEN_TO_REG, 0x45} },
- {"emul", { 2, "", GEN_TO_REG, 0x47} },
- {"umulw", { 2, "", GEN_TO_REG, 0x46} },
- {"divw", { 2, "", GEN_TO_REG, 0x48} },
- {"ediv", { 2, "", GEN_TO_REG, 0x4a} },
- {"rdivw", { 2, "", GEN_TO_REG, 0x4b} },
- {"udivw", { 2, "", GEN_TO_REG, 0x49} },
- {"modw", { 2, "", GEN_TO_REG, 0x4c} },
- {"umodw", { 2, "", GEN_TO_REG, 0x4d} },
-
-
- {"addf", { 2, "", 1, 0x50} },
- {"addd", { 2, "", 1, 0x51} },
- {"subf", { 2, "", 1, 0x52} },
- {"subd", { 2, "", 1, 0x53} },
- {"mulf", { 2, "", 1, 0x56} },
- {"muld", { 2, "", 1, 0x57} },
- {"divf", { 2, "", 1, 0x58} },
- {"divd", { 2, "", 1, 0x59} },
-
-
- {"cmpb", { 2, "", UNKNOWN, 0x61} },
- {"cmph", { 2, "", UNKNOWN, 0x62} },
- {"cmpw", { 2, "", UNKNOWN, 0x60} },
- {"ucmpb", { 2, "", UNKNOWN, 0x66} },
- /* WHY no "ucmph"??? */
- {"ucmpw", { 2, "", UNKNOWN, 0x65} },
- {"xchw", { 2, "", UNKNOWN, 0x0f} },
-
-
- {"andw", { 2, "", GEN_TO_REG, 0x30} },
- {"orw", { 2, "", GEN_TO_REG, 0x31} },
- {"xorw", { 2, "", GEN_TO_REG, 0x32} },
- {"bicw", { 2, "", GEN_TO_REG, 0x33} },
- {"lshlw", { 2, "", GEN_TO_REG, 0x38} },
- {"ashlw", { 2, "", GEN_TO_REG, 0x3a} },
- {"ashll", { 2, "", GEN_TO_REG, 0x3c} },
- {"ashrw", { 2, "", GEN_TO_REG, 0x3b} },
- {"ashrl", { 2, "", GEN_TO_REG, 0x3d} },
- {"rotlw", { 2, "", GEN_TO_REG, 0x3e} },
- {"rotrw", { 2, "", GEN_TO_REG, 0x3f} },
-
- /* push and pop insns are "going away next release". */
- {"pushw", { 2, "", GEN_TO_REG, 0x0c} },
- {"popw", { 2, "", (0x1|0x8|0x10), 0x0d} },
- {"pusha", { 2, "", (0x8|0x10), 0x0e} },
-
- {"bitsw", { 2, "", UNKNOWN, 0x35} },
- {"bitcw", { 2, "", UNKNOWN, 0x36} },
- /* some kind of ibra/dbra insns??*/
- {"icmpw", { 2, "", UNKNOWN, 0x67} },
- {"dcmpw", { 2, "", (1|4|0x20|0x80|0x400|0x1000), 0x69} },/*FIXME*/
- {"acmpw", { 2, "", 1, 0x6b} },
-
- /* Call is written as a 1-op insn, but is always (dis)assembled as a 2-op
- insn with a 2nd op of tr14. The assembler will have to grok this. */
- {"call", { 2, "", GEN_TO_REG, 0x04} },
- {"call", { 1, "", GEN_TO_REG, 0x04} },
-
- {"callk", { 1, "", UNKNOWN, 0x06} },/* system call?*/
- /* Ret is usually written as a 0-op insn, but gets disassembled as a
- 1-op insn. The operand is always tr15. */
- {"ret", { 0, "", UNKNOWN, 0x09} },
- {"ret", { 1, "", UNKNOWN, 0x09} },
- {"adsf", { 2, "", (1|2|4), 0x08} },
- {"retd", { 2, "", UNKNOWN, 0x0a} },
- {"btc", { 2, "", UNKNOWN, 0x01} },
- {"bfc", { 2, "", UNKNOWN, 0x02} },
- /* Careful: halt is 0x00000000. Jump must have some other (mode?)bit set?? */
- {"jump", { 1, "", UNKNOWN, 0x00} },
- {"btp", { 2, "", UNKNOWN, 0xf00} },
- /* read control-stack pointer is another 1-or-2 operand insn. */
- {"rcsp", { 2, "", UNKNOWN, 0x01f} },
- {"rcsp", { 1, "", UNKNOWN, 0x01f} }
-};
-
-/* end: pyramid.opcode.h */
-/* One day I will have to take the time to find out what operands
- are valid for these insns, and guess at what they mean.
-
- I can't imagine what the "I???" insns (iglob, etc) do.
-
- the arithmetic-sounding insns ending in "p" sound awfully like BCD
- arithmetic insns:
- dshlp -> Decimal SHift Left Packed
- dshrp -> Decimal SHift Right Packed
- and cvtlp would be convert long to packed.
- I have no idea how the operands are interpreted; but having them be
- a long register with (address, length) of an in-memory packed BCD operand
- would not be surprising.
- They are unlikely to be a packed bcd string: 64 bits of long give
- is only 15 digits+sign, which isn't enough for COBOL.
- */
-#if 0
- {"wcsp", { 2, "", UNKNOWN, 0x00} }, /*write csp?*/
- /* The OSx Operating System Porting Guide claims SSL does things
- with tr12 (a register reserved to it) to do with static block-structure
- references. SSL=Set Static Link? It's "Going away next release". */
- {"ssl", { 2, "", UNKNOWN, 0x00} },
- {"ccmps", { 2, "", UNKNOWN, 0x00} },
- {"lcd", { 2, "", UNKNOWN, 0x00} },
- {"uemul", { 2, "", UNKNOWN, 0x00} }, /*unsigned emul*/
- {"srf", { 2, "", UNKNOWN, 0x00} }, /*Gidget time???*/
- {"mnegp", { 2, "", UNKNOWN, 0x00} }, /move-neg phys?*/
- {"ldp", { 2, "", UNKNOWN, 0x00} }, /*load phys?*/
- {"ldti", { 2, "", UNKNOWN, 0x00} },
- {"ldb", { 2, "", UNKNOWN, 0x00} },
- {"stp", { 2, "", UNKNOWN, 0x00} },
- {"stti", { 2, "", UNKNOWN, 0x00} },
- {"stb", { 2, "", UNKNOWN, 0x00} },
- {"stu", { 2, "", UNKNOWN, 0x00} },
- {"addp", { 2, "", UNKNOWN, 0x00} },
- {"subp", { 2, "", UNKNOWN, 0x00} },
- {"mulp", { 2, "", UNKNOWN, 0x00} },
- {"divp", { 2, "", UNKNOWN, 0x00} },
- {"dshlp", { 2, "", UNKNOWN, 0x00} }, /* dec shl packed? */
- {"dshrp", { 2, "", UNKNOWN, 0x00} }, /* dec shr packed? */
- {"movs", { 2, "", UNKNOWN, 0x00} }, /*move (string?)?*/
- {"cmpp", { 2, "", UNKNOWN, 0x00} }, /* cmp phys?*/
- {"cmps", { 2, "", UNKNOWN, 0x00} }, /* cmp (string?)?*/
- {"cvtlp", { 2, "", UNKNOWN, 0x00} }, /* cvt long to p??*/
- {"cvtpl", { 2, "", UNKNOWN, 0x00} }, /* cvt p to l??*/
- {"dintr", { 2, "", UNKNOWN, 0x00} }, /* ?? intr ?*/
- {"rphysw", { 2, "", UNKNOWN, 0x00} }, /* read phys word?*/
- {"wphysw", { 2, "", UNKNOWN, 0x00} }, /* write phys word?*/
- {"cmovs", { 2, "", UNKNOWN, 0x00} },
- {"rsubw", { 2, "", UNKNOWN, 0x00} },
- {"bicpsw", { 2, "", UNKNOWN, 0x00} }, /* clr bit in psw? */
- {"bispsw", { 2, "", UNKNOWN, 0x00} }, /* set bit in psw? */
- {"eio", { 2, "", UNKNOWN, 0x00} }, /* ?? ?io ? */
- {"callp", { 2, "", UNKNOWN, 0x00} }, /* call phys?*/
- {"callr", { 2, "", UNKNOWN, 0x00} },
- {"lpcxt", { 2, "", UNKNOWN, 0x00} }, /*load proc context*/
- {"rei", { 2, "", UNKNOWN, 0x00} }, /*ret from intrpt*/
- {"rport", { 2, "", UNKNOWN, 0x00} }, /*read-port?*/
- {"rtod", { 2, "", UNKNOWN, 0x00} }, /*read-time-of-day?*/
- {"ssi", { 2, "", UNKNOWN, 0x00} },
- {"vtpa", { 2, "", UNKNOWN, 0x00} }, /*virt-to-phys-addr?*/
- {"wicl", { 2, "", UNKNOWN, 0x00} }, /* write icl ? */
- {"wport", { 2, "", UNKNOWN, 0x00} }, /*write-port?*/
- {"wtod", { 2, "", UNKNOWN, 0x00} }, /*write-time-of-day?*/
- {"flic", { 2, "", UNKNOWN, 0x00} },
- {"iglob", { 2, "", UNKNOWN, 0x00} }, /* I global? */
- {"iphys", { 2, "", UNKNOWN, 0x00} }, /* I physical? */
- {"ipid", { 2, "", UNKNOWN, 0x00} }, /* I pid? */
- {"ivect", { 2, "", UNKNOWN, 0x00} }, /* I vector? */
- {"lamst", { 2, "", UNKNOWN, 0x00} },
- {"tio", { 2, "", UNKNOWN, 0x00} },
-#endif
diff --git a/include/opcode/rl78.h b/include/opcode/rl78.h
deleted file mode 100644
index 0f3c64d62..000000000
--- a/include/opcode/rl78.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Opcode decoder for the Renesas RL78
- Copyright 2011
- Free Software Foundation, Inc.
- Written by DJ Delorie <dj@redhat.com>
-
- This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* The RL78 decoder in libopcodes is used by the simulator, gdb's
- analyzer, and the disassembler. Given an opcode data source, it
- decodes the next opcode into the following structures. */
-
-#ifndef RL78_OPCODES_H_INCLUDED
-#define RL78_OPCODES_H_INCLUDED
-
-/* For the purposes of these structures, the RL78 registers are as
- follows, despite most of these being memory-mapped and
- bank-switched: */
-typedef enum {
- RL78_Reg_None,
- /* The order of these matches the encodings. */
- RL78_Reg_X,
- RL78_Reg_A,
- RL78_Reg_C,
- RL78_Reg_B,
- RL78_Reg_E,
- RL78_Reg_D,
- RL78_Reg_L,
- RL78_Reg_H,
- /* The order of these matches the encodings. */
- RL78_Reg_AX,
- RL78_Reg_BC,
- RL78_Reg_DE,
- RL78_Reg_HL,
- /* Unordered. */
- RL78_Reg_SP,
- RL78_Reg_PSW,
- RL78_Reg_CS,
- RL78_Reg_ES,
- RL78_Reg_PMC,
- RL78_Reg_MEM
-} RL78_Register;
-
-typedef enum
-{
- RL78_Byte = 0,
- RL78_Word
-} RL78_Size;
-
-typedef enum {
- RL78_Condition_T,
- RL78_Condition_F,
- RL78_Condition_C,
- RL78_Condition_NC,
- RL78_Condition_H,
- RL78_Condition_NH,
- RL78_Condition_Z,
- RL78_Condition_NZ
-} RL78_Condition;
-
-typedef enum {
- RL78_Operand_None = 0,
- RL78_Operand_Immediate, /* #addend */
- RL78_Operand_Register, /* reg */
- RL78_Operand_Indirect, /* [reg + reg2 + addend] */
- RL78_Operand_Bit, /* reg.bit */
- RL78_Operand_BitIndirect, /* [reg+reg2+addend].bit */
- RL78_Operand_PreDec, /* [--reg] = push */
- RL78_Operand_PostInc /* [reg++] = pop */
-} RL78_Operand_Type;
-
-typedef enum
-{
- RLO_unknown,
- RLO_add, /* d += s */
- RLO_addc, /* d += s + CY */
- RLO_and, /* d &= s (byte, word, bit) */
- RLO_branch, /* pc = d */
- RLO_branch_cond, /* pc = d if cond(src) */
- RLO_branch_cond_clear, /* pc = d if cond(src), and clear(src) */
- RLO_break, /* BRK */
- RLO_call, /* call */
- RLO_cmp, /* cmp d, s */
- RLO_divhu, /* DIVHU */
- RLO_divwu, /* DIVWU */
- RLO_halt, /* HALT */
- RLO_mov, /* d = s */
- RLO_mach, /* MACH */
- RLO_machu, /* MACHU */
- RLO_mulu, /* MULU */
- RLO_mulh, /* MULH */
- RLO_mulhu, /* MULHU */
- RLO_nop, /* NOP */
- RLO_or, /* d |= s */
- RLO_ret, /* RET */
- RLO_reti, /* RETI */
- RLO_rol, /* d <<= s, MSB to LSB and CY */
- RLO_rolc, /* d <<= s, MSB to CY, CY, to LSB */
- RLO_ror, /* d >>= s, LSB to MSB and CY */
- RLO_rorc, /* d >>= s, LSB to CY, CY, to MSB */
- RLO_sar, /* d >>= s, signed */
- RLO_sel, /* rb = s */
- RLO_shr, /* d >>= s, unsigned */
- RLO_shl, /* d <<= s */
- RLO_skip, /* skip next insn is cond(s) */
- RLO_stop, /* STOP */
- RLO_sub, /* d -= s */
- RLO_subc, /* d -= s - CY */
- RLO_xch, /* swap d, s */
- RLO_xor, /* d ^= s */
-} RL78_Opcode_ID;
-
-typedef struct {
- RL78_Operand_Type type;
- int addend;
- RL78_Register reg : 8;
- RL78_Register reg2 : 8;
- unsigned char bit_number : 4;
- unsigned char condition : 3;
- unsigned char use_es : 1;
-} RL78_Opcode_Operand;
-
-/* PSW flag bits */
-#define RL78_PSW_IE 0x80
-#define RL78_PSW_Z 0x40
-#define RL78_PSW_RBS1 0x20
-#define RL78_PSW_AC 0x10
-#define RL78_PSW_RBS0 0x08
-#define RL78_PSW_ISP1 0x04
-#define RL78_PSW_ISP0 0x02
-#define RL78_PSW_CY 0x01
-
-#define RL78_SFR_SP 0xffff8
-#define RL78_SFR_PSW 0xffffa
-#define RL78_SFR_CS 0xffffc
-#define RL78_SFR_ES 0xffffd
-#define RL78_SFR_PMC 0xffffe
-#define RL78_SFR_MEM 0xfffff
-
-typedef struct
-{
- int lineno;
- RL78_Opcode_ID id:24;
- unsigned flags:8; /* PSW mask, for side effects only */
- int n_bytes;
- char * syntax;
- RL78_Size size;
- /* By convention, these are destination, source. */
- RL78_Opcode_Operand op[2];
-} RL78_Opcode_Decoded;
-
-int rl78_decode_opcode (unsigned long, RL78_Opcode_Decoded *, int (*)(void *), void *);
-
-#endif
diff --git a/include/opcode/rx.h b/include/opcode/rx.h
deleted file mode 100644
index aa85fe4a9..000000000
--- a/include/opcode/rx.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Opcode decoder for the Renesas RX
- Copyright 2008, 2009, 2010
- Free Software Foundation, Inc.
- Written by DJ Delorie <dj@redhat.com>
-
- This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* The RX decoder in libopcodes is used by the simulator, gdb's
- analyzer, and the disassembler. Given an opcode data source,
- it decodes the next opcode into the following structures. */
-
-typedef enum
-{
- RX_AnySize = 0,
- RX_Byte, /* undefined extension */
- RX_UByte,
- RX_SByte,
- RX_Word, /* undefined extension */
- RX_UWord,
- RX_SWord,
- RX_3Byte,
- RX_Long,
-} RX_Size;
-
-typedef enum
-{
- RX_Operand_None,
- RX_Operand_Immediate, /* #addend */
- RX_Operand_Register, /* Rn */
- RX_Operand_Indirect, /* [Rn + addend] */
- RX_Operand_Postinc, /* [Rn+] */
- RX_Operand_Predec, /* [-Rn] */
- RX_Operand_Condition, /* eq, gtu, etc */
- RX_Operand_Flag, /* [UIOSZC] */
- RX_Operand_TwoReg, /* [Rn + scale*R2] */
-} RX_Operand_Type;
-
-typedef enum
-{
- RXO_unknown,
- RXO_mov, /* d = s (signed) */
- RXO_movbi, /* d = [s,s2] (signed) */
- RXO_movbir, /* [s,s2] = d (signed) */
- RXO_pushm, /* s..s2 */
- RXO_popm, /* s..s2 */
- RXO_xchg, /* s <-> d */
- RXO_stcc, /* d = s if cond(s2) */
- RXO_rtsd, /* rtsd, 1=imm, 2-0 = reg if reg type */
-
- /* These are all either d OP= s or, if s2 is set, d = s OP s2. Note
- that d may be "None". */
- RXO_and,
- RXO_or,
- RXO_xor,
- RXO_add,
- RXO_sub,
- RXO_mul,
- RXO_div,
- RXO_divu,
- RXO_shll,
- RXO_shar,
- RXO_shlr,
-
- RXO_adc, /* d = d + s + carry */
- RXO_sbb, /* d = d - s - ~carry */
- RXO_abs, /* d = |s| */
- RXO_max, /* d = max(d,s) */
- RXO_min, /* d = min(d,s) */
- RXO_emul, /* d:64 = d:32 * s */
- RXO_emulu, /* d:64 = d:32 * s (unsigned) */
-
- RXO_rolc, /* d <<= 1 through carry */
- RXO_rorc, /* d >>= 1 through carry*/
- RXO_rotl, /* d <<= #s without carry */
- RXO_rotr, /* d >>= #s without carry*/
- RXO_revw, /* d = revw(s) */
- RXO_revl, /* d = revl(s) */
- RXO_branch, /* pc = d if cond(s) */
- RXO_branchrel,/* pc += d if cond(s) */
- RXO_jsr, /* pc = d */
- RXO_jsrrel, /* pc += d */
- RXO_rts,
- RXO_nop,
- RXO_nop2,
- RXO_nop3,
-
- RXO_scmpu,
- RXO_smovu,
- RXO_smovb,
- RXO_suntil,
- RXO_swhile,
- RXO_smovf,
- RXO_sstr,
-
- RXO_rmpa,
- RXO_mulhi,
- RXO_mullo,
- RXO_machi,
- RXO_maclo,
- RXO_mvtachi,
- RXO_mvtaclo,
- RXO_mvfachi,
- RXO_mvfacmi,
- RXO_mvfaclo,
- RXO_racw,
-
- RXO_sat, /* sat(d) */
- RXO_satr,
-
- RXO_fadd, /* d op= s */
- RXO_fcmp,
- RXO_fsub,
- RXO_ftoi,
- RXO_fmul,
- RXO_fdiv,
- RXO_round,
- RXO_itof,
-
- RXO_bset, /* d |= (1<<s) */
- RXO_bclr, /* d &= ~(1<<s) */
- RXO_btst, /* s & (1<<s2) */
- RXO_bnot, /* d ^= (1<<s) */
- RXO_bmcc, /* d<s> = cond(s2) */
-
- RXO_clrpsw, /* flag index in d */
- RXO_setpsw, /* flag index in d */
- RXO_mvtipl, /* new IPL in s */
-
- RXO_rtfi,
- RXO_rte,
- RXO_rtd, /* undocumented */
- RXO_brk,
- RXO_dbt, /* undocumented */
- RXO_int, /* vector id in s */
- RXO_stop,
- RXO_wait,
-
- RXO_sccnd, /* d = cond(s) ? 1 : 0 */
-} RX_Opcode_ID;
-
-/* Condition bitpatterns, as registers. */
-#define RXC_eq 0
-#define RXC_z 0
-#define RXC_ne 1
-#define RXC_nz 1
-#define RXC_c 2
-#define RXC_nc 3
-#define RXC_gtu 4
-#define RXC_leu 5
-#define RXC_pz 6
-#define RXC_n 7
-#define RXC_ge 8
-#define RXC_lt 9
-#define RXC_gt 10
-#define RXC_le 11
-#define RXC_o 12
-#define RXC_no 13
-#define RXC_always 14
-#define RXC_never 15
-
-typedef struct
-{
- RX_Operand_Type type;
- int reg;
- int addend;
- RX_Size size;
-} RX_Opcode_Operand;
-
-typedef struct
-{
- RX_Opcode_ID id;
- int n_bytes;
- int prefix;
- char * syntax;
- RX_Size size;
- /* By convention, these are destination, source1, source2. */
- RX_Opcode_Operand op[3];
-
- /* The logic here is:
- newflags = (oldflags & ~(int)flags_0) | flags_1 | (op_flags & flags_s)
- Only the O, S, Z, and C flags are affected. */
- char flags_0; /* This also clears out flags-to-be-set. */
- char flags_1;
- char flags_s;
-} RX_Opcode_Decoded;
-
-/* Within the syntax, %c-style format specifiers are as follows:
-
- %% = '%' character
- %0 = operand[0] (destination)
- %1 = operand[1] (source)
- %2 = operand[2] (2nd source)
- %s = operation size (b/w/l)
- %SN = operand size [N] (N=0,1,2)
- %aN = op[N] as an address (N=0,1,2)
-
- Register numbers 0..15 are general registers. 16..31 are control
- registers. 32..47 are condition codes. */
-
-int rx_decode_opcode (unsigned long, RX_Opcode_Decoded *, int (*)(void *), void *);
diff --git a/include/opcode/s390.h b/include/opcode/s390.h
deleted file mode 100644
index ed70830c1..000000000
--- a/include/opcode/s390.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* s390.h -- Header file for S390 opcode table
- Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef S390_H
-#define S390_H
-
-/* List of instruction sets variations. */
-
-enum s390_opcode_mode_val
- {
- S390_OPCODE_ESA = 0,
- S390_OPCODE_ZARCH
- };
-
-enum s390_opcode_cpu_val
- {
- S390_OPCODE_G5 = 0,
- S390_OPCODE_G6,
- S390_OPCODE_Z900,
- S390_OPCODE_Z990,
- S390_OPCODE_Z9_109,
- S390_OPCODE_Z9_EC,
- S390_OPCODE_Z10,
- S390_OPCODE_Z196,
- S390_OPCODE_MAXCPU
- };
-
-/* The opcode table is an array of struct s390_opcode. */
-
-struct s390_opcode
- {
- /* The opcode name. */
- const char * name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned char opcode[6];
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned char mask[6];
-
- /* The opcode length in bytes. */
- int oplen;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[6];
-
- /* Bitmask of execution modes this opcode is available for. */
- unsigned int modes;
-
- /* First cpu this opcode is available for. */
- enum s390_opcode_cpu_val min_cpu;
- };
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct s390_opcode s390_opcodes[];
-extern const int s390_num_opcodes;
-
-/* A opcode format table for the .insn pseudo mnemonic. */
-extern const struct s390_opcode s390_opformats[];
-extern const int s390_num_opformats;
-
-/* Values defined for the flags field of a struct powerpc_opcode. */
-
-/* The operands table is an array of struct s390_operand. */
-
-struct s390_operand
- {
- /* The number of bits in the operand. */
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
- int shift;
-
- /* One bit syntax flags. */
- unsigned long flags;
- };
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the powerpc_opcodes table. */
-
-extern const struct s390_operand s390_operands[];
-
-/* Values defined for the flags field of a struct s390_operand. */
-
-/* This operand names a register. The disassembler uses this to print
- register names with a leading 'r'. */
-#define S390_OPERAND_GPR 0x1
-
-/* This operand names a floating point register. The disassembler
- prints these with a leading 'f'. */
-#define S390_OPERAND_FPR 0x2
-
-/* This operand names an access register. The disassembler
- prints these with a leading 'a'. */
-#define S390_OPERAND_AR 0x4
-
-/* This operand names a control register. The disassembler
- prints these with a leading 'c'. */
-#define S390_OPERAND_CR 0x8
-
-/* This operand is a displacement. */
-#define S390_OPERAND_DISP 0x10
-
-/* This operand names a base register. */
-#define S390_OPERAND_BASE 0x20
-
-/* This operand names an index register, it can be skipped. */
-#define S390_OPERAND_INDEX 0x40
-
-/* This operand is a relative branch displacement. The disassembler
- prints these symbolically if possible. */
-#define S390_OPERAND_PCREL 0x80
-
-/* This operand takes signed values. */
-#define S390_OPERAND_SIGNED 0x100
-
-/* This operand is a length. */
-#define S390_OPERAND_LENGTH 0x200
-
-/* This operand is optional. Only a single operand at the end of
- the instruction may be optional. */
-#define S390_OPERAND_OPTIONAL 0x400
-
-/* The operand needs to be a valid GP or FP register pair. */
-#define S390_OPERAND_REG_PAIR 0x800
-
- #endif /* S390_H */
diff --git a/include/opcode/score-datadep.h b/include/opcode/score-datadep.h
deleted file mode 100644
index 10ddf32f6..000000000
--- a/include/opcode/score-datadep.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* score-datadep.h -- Score Instructions data dependency table
- Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
- Contributed by:
- Brain.lin (brain.lin@sunplusct.com)
- Mei Ligang (ligang@sunnorth.com.cn)
- Pei-Lin Tsai (pltsai@sunplus.com)
-
- This file is part of GAS, the GNU Assembler.
-
- GAS 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 3, or (at your option)
- any later version.
-
- GAS 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 GAS; see the file COPYING3. If not, write to the Free
- Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifndef SCORE_DATA_DEPENDENCY_H
-#define SCORE_DATA_DEPENDENCY_H
-
-#define INSN_NAME_LEN 16
-
-enum insn_type_for_dependency
-{
- D_mtcr,
- D_all_insn
-};
-
-struct insn_to_dependency
-{
- char *insn_name;
- enum insn_type_for_dependency type;
-};
-
-struct data_dependency
-{
- enum insn_type_for_dependency pre_insn_type;
- char pre_reg[6];
- enum insn_type_for_dependency cur_insn_type;
- char cur_reg[6];
- int bubblenum_7;
- int bubblenum_3;
- int warn_or_error; /* warning - 0; error - 1 */
-};
-
-static const struct insn_to_dependency insn_to_dependency_table[] =
-{
- /* move spectial instruction. */
- {"mtcr", D_mtcr},
-};
-
-static const struct data_dependency data_dependency_table[] =
-{
- /* Status regiser. */
- {D_mtcr, "cr0", D_all_insn, "", 5, 1, 0},
-};
-
-#endif
diff --git a/include/opcode/score-inst.h b/include/opcode/score-inst.h
deleted file mode 100644
index ecb18da2a..000000000
--- a/include/opcode/score-inst.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* score-inst.h -- Score Instructions Table
- Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
- Contributed by:
- Brain.lin (brain.lin@sunplusct.com)
- Mei Ligang (ligang@sunnorth.com.cn)
- Pei-Lin Tsai (pltsai@sunplus.com)
-
- This file is part of GAS, the GNU Assembler.
-
- GAS 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 3, or (at your option)
- any later version.
-
- GAS 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 GAS; see the file COPYING3. If not, write to the Free
- Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef SCORE_INST_H
-#define SCORE_INST_H
-
-#define LDST_UNALIGN_MASK 0x0000007f
-#define UA_LCB 0x00000060
-#define UA_LCW 0x00000062
-#define UA_LCE 0x00000066
-#define UA_SCB 0x00000068
-#define UA_SCW 0x0000006a
-#define UA_SCE 0x0000006e
-#define UA_LL 0x0000000c
-#define UA_SC 0x0000000e
-#define LDST16_RR_MASK 0x0000000f
-#define N16_LW 8
-#define N16_LH 9
-#define N16_POP 10
-#define N16_LBU 11
-#define N16_SW 12
-#define N16_SH 13
-#define N16_PUSH 14
-#define N16_SB 15
-#define LDST16_RI_MASK 0x7007
-#define N16_LWP 0x7000
-#define N16_LHP 0x7001
-#define N16_LBUP 0x7003
-#define N16_SWP 0x7004
-#define N16_SHP 0x7005
-#define N16_SBP 0x7007
-#define N16_LIU 0x5000
-
-#define OPC_PSEUDOLDST_MASK 0x00000007
-
-enum
-{
- INSN_LW = 0,
- INSN_LH = 1,
- INSN_LHU = 2,
- INSN_LB = 3,
- INSN_SW = 4,
- INSN_SH = 5,
- INSN_LBU = 6,
- INSN_SB = 7,
-};
-
-/* Sub opcdoe opcode. */
-enum
-{
- INSN16_LBU = 11,
- INSN16_LH = 9,
- INSN16_LW = 8,
- INSN16_SB = 15,
- INSN16_SH = 13,
- INSN16_SW = 12,
-};
-
-enum
-{
- LDST_NOUPDATE = 0,
- LDST_PRE = 1,
- LDST_POST = 2,
-};
-
-enum score_insn_type
-{
- Rd_I4,
- Rd_I5,
- Rd_rvalueBP_I5,
- Rd_lvalueBP_I5,
- Rd_Rs_I5,
- x_Rs_I5,
- x_I5_x,
- Rd_I8,
- Rd_Rs_I14,
- I15,
- Rd_I16,
- Rd_I30,
- Rd_I32,
- Rd_rvalueRs_SI10,
- Rd_lvalueRs_SI10,
- Rd_rvalueRs_preSI12,
- Rd_rvalueRs_postSI12,
- Rd_lvalueRs_preSI12,
- Rd_lvalueRs_postSI12,
- Rd_Rs_SI14,
- Rd_rvalueRs_SI15,
- Rd_lvalueRs_SI15,
- Rd_SI5,
- Rd_SI6,
- Rd_SI16,
- PC_DISP8div2,
- PC_DISP11div2,
- PC_DISP19div2,
- PC_DISP24div2,
- Rd_Rs_Rs,
- x_Rs_x,
- x_Rs_Rs,
- Rd_Rs_x,
- Rd_x_Rs,
- Rd_x_x,
- Rd_Rs,
- Rd_HighRs,
- Rd_lvalueRs,
- Rd_rvalueRs,
- Rd_lvalue32Rs,
- Rd_rvalue32Rs,
- x_Rs,
- NO_OPD,
- NO16_OPD,
- OP5_rvalueRs_SI15,
- I5_Rs_Rs_I5_OP5,
- x_rvalueRs_post4,
- Rd_rvalueRs_post4,
- Rd_x_I5,
- Rd_lvalueRs_post4,
- x_lvalueRs_post4,
- Rd_LowRs,
- Rd_Rs_Rs_imm,
- Insn_Type_PCE,
- Insn_Type_SYN,
- Insn_GP,
- Insn_PIC,
- Insn_internal,
- Insn_BCMP,
- Ra_I9_I5,
-};
-
-enum score_data_type
-{
- _IMM4 = 0,
- _IMM5,
- _IMM8,
- _IMM14,
- _IMM15,
- _IMM16,
- _SIMM10 = 6,
- _SIMM12,
- _SIMM14,
- _SIMM15,
- _SIMM16,
- _SIMM14_NEG = 11,
- _IMM16_NEG,
- _SIMM16_NEG,
- _IMM20,
- _IMM25,
- _DISP8div2 = 16,
- _DISP11div2,
- _DISP19div2,
- _DISP24div2,
- _VALUE,
- _VALUE_HI16,
- _VALUE_LO16,
- _VALUE_LDST_LO16 = 23,
- _SIMM16_LA,
- _IMM5_RSHIFT_1,
- _IMM5_RSHIFT_2,
- _SIMM16_LA_POS,
- _IMM5_RANGE_8_31,
- _IMM10_RSHIFT_2,
- _GP_IMM15 = 30,
- _GP_IMM14 = 31,
- _SIMM16_pic = 42, /* Index in score_df_range. */
- _IMM16_LO16_pic = 43,
- _IMM16_pic = 44,
-
- _SIMM5 = 45,
- _SIMM6 = 46,
- _IMM32 = 47,
- _SIMM32 = 48,
- _IMM11 = 49,
- _IMM5_MULTI_LOAD = 50,
-};
-
-#define REG_TMP 1
-
-#define OP_REG_TYPE (1 << 6)
-#define OP_IMM_TYPE (1 << 7)
-#define OP_SH_REGD (OP_REG_TYPE |20)
-#define OP_SH_REGS1 (OP_REG_TYPE |15)
-#define OP_SH_REGS2 (OP_REG_TYPE |10)
-#define OP_SH_I (OP_IMM_TYPE | 1)
-#define OP_SH_RI15 (OP_IMM_TYPE | 0)
-#define OP_SH_I12 (OP_IMM_TYPE | 3)
-#define OP_SH_DISP24 (OP_IMM_TYPE | 1)
-#define OP_SH_DISP19_p1 (OP_IMM_TYPE |15)
-#define OP_SH_DISP19_p2 (OP_IMM_TYPE | 1)
-#define OP_SH_I5 (OP_IMM_TYPE |10)
-#define OP_SH_I10 (OP_IMM_TYPE | 5)
-#define OP_SH_COPID (OP_IMM_TYPE | 5)
-#define OP_SH_TRAPI5 (OP_IMM_TYPE |15)
-#define OP_SH_I15 (OP_IMM_TYPE |10)
-
-#define OP16_SH_REGD (OP_REG_TYPE | 8)
-#define OP16_SH_REGS1 (OP_REG_TYPE | 4)
-#define OP16_SH_I45 (OP_IMM_TYPE | 3)
-#define OP16_SH_I8 (OP_IMM_TYPE | 0)
-#define OP16_SH_DISP8 (OP_IMM_TYPE | 0)
-#define OP16_SH_DISP11 (OP_IMM_TYPE | 1)
-
-enum insn_class
-{
- INSN_CLASS_16,
- INSN_CLASS_32,
- INSN_CLASS_48,
- INSN_CLASS_PCE,
- INSN_CLASS_SYN
-};
-
-/* s3_s7: Globals for both tc-score.c and elf32-score.c. */
-extern int score3;
-extern int score7;
-
-#endif
diff --git a/include/opcode/sparc.h b/include/opcode/sparc.h
deleted file mode 100644
index 7ae3641cf..000000000
--- a/include/opcode/sparc.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* Definitions for opcode table for the sparc.
- Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2002,
- 2003, 2005, 2010, 2011 Free Software Foundation, Inc.
-
- This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
- the GNU Binutils.
-
- GAS/GDB 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 3, or (at your option)
- any later version.
-
- GAS/GDB 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 GAS or GDB; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#include "ansidecl.h"
-
-/* The SPARC opcode table (and other related data) is defined in
- the opcodes library in sparc-opc.c. If you change anything here, make
- sure you fix up that file, and vice versa. */
-
- /* FIXME-someday: perhaps the ,a's and such should be embedded in the
- instruction's name rather than the args. This would make gas faster, pinsn
- slower, but would mess up some macros a bit. xoxorich. */
-
-/* List of instruction sets variations.
- These values are such that each element is either a superset of a
- preceding each one or they conflict in which case SPARC_OPCODE_CONFLICT_P
- returns non-zero.
- The values are indices into `sparc_opcode_archs' defined in sparc-opc.c.
- Don't change this without updating sparc-opc.c. */
-
-enum sparc_opcode_arch_val
-{
- SPARC_OPCODE_ARCH_V6 = 0,
- SPARC_OPCODE_ARCH_V7,
- SPARC_OPCODE_ARCH_V8,
- SPARC_OPCODE_ARCH_SPARCLET,
- SPARC_OPCODE_ARCH_SPARCLITE,
- /* V9 variants must appear last. */
- SPARC_OPCODE_ARCH_V9,
- SPARC_OPCODE_ARCH_V9A, /* V9 with ultrasparc additions. */
- SPARC_OPCODE_ARCH_V9B, /* V9 with ultrasparc and cheetah additions. */
- SPARC_OPCODE_ARCH_BAD /* Error return from sparc_opcode_lookup_arch. */
-};
-
-/* The highest architecture in the table. */
-#define SPARC_OPCODE_ARCH_MAX (SPARC_OPCODE_ARCH_BAD - 1)
-
-/* Given an enum sparc_opcode_arch_val, return the bitmask to use in
- insn encoding/decoding. */
-#define SPARC_OPCODE_ARCH_MASK(arch) (1 << (arch))
-
-/* Given a valid sparc_opcode_arch_val, return non-zero if it's v9. */
-#define SPARC_OPCODE_ARCH_V9_P(arch) ((arch) >= SPARC_OPCODE_ARCH_V9)
-
-/* Table of cpu variants. */
-
-typedef struct sparc_opcode_arch
-{
- const char *name;
- /* Mask of sparc_opcode_arch_val's supported.
- EG: For v7 this would be
- (SPARC_OPCODE_ARCH_MASK (..._V6) | SPARC_OPCODE_ARCH_MASK (..._V7)).
- These are short's because sparc_opcode.architecture is. */
- short supported;
-} 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 (const char *);
-
-/* Return the bitmask of supported architectures for ARCH. */
-#define SPARC_OPCODE_SUPPORTED(ARCH) (sparc_opcode_archs[ARCH].supported)
-
-/* Non-zero if ARCH1 conflicts with ARCH2.
- IE: ARCH1 as a supported bit set that ARCH2 doesn't, and vice versa. */
-#define SPARC_OPCODE_CONFLICT_P(ARCH1, ARCH2) \
- (((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \
- != SPARC_OPCODE_SUPPORTED (ARCH1)) \
- && ((SPARC_OPCODE_SUPPORTED (ARCH1) & SPARC_OPCODE_SUPPORTED (ARCH2)) \
- != SPARC_OPCODE_SUPPORTED (ARCH2)))
-
-/* Structure of an opcode table entry. */
-
-typedef struct sparc_opcode
-{
- const char *name;
- unsigned long match; /* Bits that must be set. */
- unsigned long lose; /* Bits that must not be set. */
- const char *args;
- /* This was called "delayed" in versions before the flags. */
- unsigned int flags;
- short architecture; /* Bitmask of sparc_opcode_arch_val's. */
-} sparc_opcode;
-
-/* FIXME: Add F_ANACHRONISTIC flag for v9. */
-#define F_DELAYED 0x00000001 /* Delayed branch. */
-#define F_ALIAS 0x00000002 /* Alias for a "real" instruction. */
-#define F_UNBR 0x00000004 /* Unconditional branch. */
-#define F_CONDBR 0x00000008 /* Conditional branch. */
-#define F_JSR 0x00000010 /* Subroutine call. */
-#define F_FLOAT 0x00000020 /* Floating point instruction (not a branch). */
-#define F_FBR 0x00000040 /* Floating point branch. */
-#define F_MUL32 0x00000100 /* umul/umulcc/smul/smulcc insns */
-#define F_DIV32 0x00000200 /* udiv/udivcc/sdiv/sdivcc insns */
-#define F_FSMULD 0x00000400 /* 'fsmuld' insn */
-#define F_V8PLUS 0x00000800 /* v9 insns available to 32bit */
-#define F_POPC 0x00001000 /* 'popc' insn */
-#define F_VIS 0x00002000 /* VIS insns */
-#define F_VIS2 0x00004000 /* VIS2 insns */
-#define F_ASI_BLK_INIT 0x00008000 /* block init ASIs */
-#define F_FMAF 0x00010000 /* fused multiply-add */
-#define F_VIS3 0x00020000 /* VIS3 insns */
-#define F_HPC 0x00040000 /* HPC insns */
-#define F_RANDOM 0x00080000 /* 'random' insn */
-#define F_TRANS 0x00100000 /* transaction insns */
-#define F_FJFMAU 0x00200000 /* unfused multiply-add */
-#define F_IMA 0x00400000 /* integer multiply-add */
-#define F_ASI_CACHE_SPARING \
- 0x00800000 /* cache sparing ASIs */
-
-#define F_HWCAP_MASK 0x00ffff00
-
-/* All sparc opcodes are 32 bits, except for the `set' instruction (really a
- macro), which is 64 bits. It is handled as a special case.
-
- The match component is a mask saying which bits must match a particular
- opcode in order for an instruction to be an instance of that opcode.
-
- The args component is a string containing one character for each operand of the
- instruction.
-
- Kinds of operands:
- # Number used by optimizer. It is ignored.
- 1 rs1 register.
- 2 rs2 register.
- d rd register.
- e frs1 floating point register.
- v frs1 floating point register (double/even).
- V frs1 floating point register (quad/multiple of 4).
- f frs2 floating point register.
- B frs2 floating point register (double/even).
- R frs2 floating point register (quad/multiple of 4).
- 4 frs3 floating point register.
- 5 frs3 floating point register (doube/even).
- g frsd floating point register.
- H frsd floating point register (double/even).
- J frsd floating point register (quad/multiple of 4).
- b crs1 coprocessor register
- c crs2 coprocessor register
- D crsd coprocessor register
- m alternate space register (asr) in rd
- M alternate space register (asr) in rs1
- h 22 high bits.
- X 5 bit unsigned immediate
- Y 6 bit unsigned immediate
- 3 SIAM mode (3 bits). (v9b)
- K MEMBAR mask (7 bits). (v9)
- j 10 bit Immediate. (v9)
- I 11 bit Immediate. (v9)
- i 13 bit Immediate.
- n 22 bit immediate.
- k 2+14 bit PC relative immediate. (v9)
- G 19 bit PC relative immediate. (v9)
- l 22 bit PC relative immediate.
- L 30 bit PC relative immediate.
- a Annul. The annul bit is set.
- A Alternate address space. Stored as 8 bits.
- C Coprocessor state register.
- F floating point state register.
- p Processor state register.
- N Branch predict clear ",pn" (v9)
- T Branch predict set ",pt" (v9)
- z %icc. (v9)
- Z %xcc. (v9)
- q Floating point queue.
- r Single register that is both rs1 and rd.
- O Single register that is both rs2 and rd.
- Q Coprocessor queue.
- S Special case.
- t Trap base register.
- w Window invalid mask register.
- y Y register.
- u sparclet coprocessor registers in rd position
- U sparclet coprocessor registers in rs1 position
- E %ccr. (v9)
- s %fprs. (v9)
- P %pc. (v9)
- W %tick. (v9)
- o %asi. (v9)
- 6 %fcc0. (v9)
- 7 %fcc1. (v9)
- 8 %fcc2. (v9)
- 9 %fcc3. (v9)
- ! Privileged Register in rd (v9)
- ? Privileged Register in rs1 (v9)
- * Prefetch function constant. (v9)
- x OPF field (v9 impdep).
- 0 32/64 bit immediate for set or setx (v9) insns
- _ Ancillary state register in rd (v9a)
- / Ancillary state register in rs1 (v9a)
- ( entire floating point state register (%efsr). */
-
-#define OP2(x) (((x) & 0x7) << 22) /* Op2 field of format2 insns. */
-#define OP3(x) (((x) & 0x3f) << 19) /* Op3 field of format3 insns. */
-#define OP(x) ((unsigned) ((x) & 0x3) << 30) /* Op field of all insns. */
-#define OPF(x) (((x) & 0x1ff) << 5) /* Opf field of float insns. */
-#define OPF_LOW5(x) OPF ((x) & 0x1f) /* V9. */
-#define OPF_LOW4(x) OPF ((x) & 0xf) /* V9. */
-#define F3F(x, y, z) (OP (x) | OP3 (y) | OPF (z)) /* Format3 float insns. */
-#define F3I(x) (((x) & 0x1) << 13) /* Immediate field of format 3 insns. */
-#define F2(x, y) (OP (x) | OP2(y)) /* Format 2 insns. */
-#define F3(x, y, z) (OP (x) | OP3(y) | F3I(z)) /* Format3 insns. */
-#define F1(x) (OP (x))
-#define DISP30(x) ((x) & 0x3fffffff)
-#define ASI(x) (((x) & 0xff) << 5) /* Asi field of format3 insns. */
-#define RS2(x) ((x) & 0x1f) /* Rs2 field. */
-#define SIMM13(x) ((x) & 0x1fff) /* Simm13 field. */
-#define RD(x) (((x) & 0x1f) << 25) /* Destination register field. */
-#define RS1(x) (((x) & 0x1f) << 14) /* Rs1 field. */
-#define RS3(x) (((x) & 0x1f) << 9) /* Rs3 field. */
-#define ASI_RS2(x) (SIMM13 (x))
-#define MEMBAR(x) ((x) & 0x7f)
-#define SLCPOP(x) (((x) & 0x7f) << 6) /* Sparclet cpop. */
-
-#define ANNUL (1 << 29)
-#define BPRED (1 << 19) /* V9. */
-#define IMMED F3I (1)
-#define RD_G0 RD (~0)
-#define RS1_G0 RS1 (~0)
-#define RS2_G0 RS2 (~0)
-
-extern const struct sparc_opcode sparc_opcodes[];
-extern const int sparc_num_opcodes;
-
-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:
- fill-column: 131
- comment-column: 0
- End: */
-
diff --git a/include/opcode/spu-insns.h b/include/opcode/spu-insns.h
deleted file mode 100644
index d6c260aae..000000000
--- a/include/opcode/spu-insns.h
+++ /dev/null
@@ -1,417 +0,0 @@
-/* SPU ELF support for BFD.
-
- Copyright 2006, 2007, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* SPU Opcode Table
-
--=-=-= FORMAT =-=-=-
-
- +----+-------+-------+-------+-------+ +------------+-------+-------+-------+
-RRR | op | RC | RB | RA | RT | RI7 | op | I7 | RA | RT |
- +----+-------+-------+-------+-------+ +------------+-------+-------+-------+
- 0 3 1 1 2 3 0 1 1 2 3
- 0 7 4 1 0 7 4 1
-
- +-----------+--------+-------+-------+ +---------+----------+-------+-------+
-RI8 | op | I8 | RA | RT | RI10 | op | I10 | RA | RT |
- +-----------+--------+-------+-------+ +---------+----------+-------+-------+
- 0 9 1 2 3 0 7 1 2 3
- 7 4 1 7 4 1
-
- +----------+-----------------+-------+ +--------+-------------------+-------+
-RI16 | op | I16 | RT | RI18 | op | I18 | RT |
- +----------+-----------------+-------+ +--------+-------------------+-------+
- 0 8 2 3 0 6 2 3
- 4 1 4 1
-
- +------------+-------+-------+-------+ +-------+--+-----------------+-------+
-RR | op | RB | RA | RT | LBT | op |RO| I16 | RO |
- +------------+-------+-------+-------+ +-------+--+-----------------+-------+
- 0 1 1 2 3 0 6 8 2 3
- 0 7 4 1 4 1
-
- +------------+----+--+-------+-------+
- LBTI | op | // |RO| RA | RO |
- +------------+----+--+-------+-------+
- 0 1 1 1 2 3
- 0 5 7 4 1
-
--=-=-= OPCODE =-=-=-
-
-OPCODE field specifies the most significant 11bit of the instruction. Some formats don't have 11bits for opcode field, and in this
-case, bit field other than op are defined as 0s. For example, opcode of fma instruction which is RRR format is defined as 0x700,
-since 0x700 -> 11'b11100000000, this means opcode is 4'b1110, and other 7bits are defined as 7'b0000000.
-
--=-=-= ASM_FORMAT =-=-=-
-
-RRR category RI7 category
- ASM_RRR mnemonic RC, RA, RB, RT ASM_RI4 mnemonic RT, RA, I4
- ASM_RI7 mnemonic RT, RA, I7
-
-RI8 category RI10 category
- ASM_RUI8 mnemonic RT, RA, UI8 ASM_AI10 mnemonic RA, I10
- ASM_RI10 mnemonic RT, RA, R10
- ASM_RI10IDX mnemonic RT, I10(RA)
-
-RI16 category RI18 category
- ASM_I16W mnemonic I16W ASM_RI18 mnemonic RT, I18
- ASM_RI16 mnemonic RT, I16
- ASM_RI16W mnemonic RT, I16W
-
-RR category LBT category
- ASM_MFSPR mnemonic RT, SA ASM_LBT mnemonic brinst, brtarg
- ASM_MTSPR mnemonic SA, RT
- ASM_NOOP mnemonic LBTI category
- ASM_RA mnemonic RA ASM_LBTI mnemonic brinst, RA
- ASM_RAB mnemonic RA, RB
- ASM_RDCH mnemonic RT, CA
- ASM_RR mnemonic RT, RA, RB
- ASM_RT mnemonic RT
- ASM_RTA mnemonic RT, RA
- ASM_WRCH mnemonic CA, RT
-
-Note that RRR instructions have the names for RC and RT reversed from
-what's in the ISA, in order to put RT in the same position it appears
-for other formats.
-
--=-=-= DEPENDENCY =-=-=-
-
-DEPENDENCY filed consists of 5 digits. This represents which register is used as source and which register is used as target.
-The first(most significant) digit is always 0. Then it is followd by RC, RB, RA and RT digits.
-If the digit is 0, this means the corresponding register is not used in the instruction.
-If the digit is 1, this means the corresponding register is used as a source in the instruction.
-If the digit is 2, this means the corresponding register is used as a target in the instruction.
-If the digit is 3, this means the corresponding register is used as both source and target in the instruction.
-For example, fms instruction has 00113 as the DEPENDENCY field. This means RC is not used in this operation, RB and RA are
-used as sources and RT is the target.
-
--=-=-= PIPE =-=-=-
-
-This field shows which execution pipe is used for the instruction
-
-pipe0 execution pipelines:
- FP6 SP floating pipeline
- FP7 integer operations executed in SP floating pipeline
- FPD DP floating pipeline
- FX2 FXU pipeline
- FX3 Rotate/Shift pipeline
- FXB Byte pipeline
- NOP No pipeline
-
-pipe1 execution pipelines:
- BR Branch pipeline
- LNOP No pipeline
- LS Load/Store pipeline
- SHUF Shuffle pipeline
- SPR SPR/CH pipeline
-
-*/
-
-#define _A0() {0}
-#define _A1(a) {1,a}
-#define _A2(a,b) {2,a,b}
-#define _A3(a,b,c) {3,a,b,c}
-#define _A4(a,b,c,d) {4,a,b,c,d}
-
-/* TAG FORMAT OPCODE MNEMONIC ASM_FORMAT DEPENDENCY PIPE COMMENT */
-/* 0[RC][RB][RA][RT] */
-/* 1:src, 2:target */
-
-APUOP(M_BR, RI16, 0x190, "br", _A1(A_R18), 00000, BR) /* BRel IP<-IP+I16 */
-APUOP(M_BRSL, RI16, 0x198, "brsl", _A2(A_T,A_R18), 00002, BR) /* BRelSetLink RT,IP<-IP,IP+I16 */
-APUOP(M_BRA, RI16, 0x180, "bra", _A1(A_S18), 00000, BR) /* BRAbs IP<-I16 */
-APUOP(M_BRASL, RI16, 0x188, "brasl", _A2(A_T,A_S18), 00002, BR) /* BRAbsSetLink RT,IP<-IP,I16 */
-APUOP(M_FSMBI, RI16, 0x194, "fsmbi", _A2(A_T,A_X16), 00002, SHUF) /* FormSelMask%I RT<-fsm(I16) */
-APUOP(M_LQA, RI16, 0x184, "lqa", _A2(A_T,A_S18), 00002, LS) /* LoadQAbs RT<-M[I16] */
-APUOP(M_LQR, RI16, 0x19C, "lqr", _A2(A_T,A_R18), 00002, LS) /* LoadQRel RT<-M[IP+I16] */
-APUOP(M_STOP, RR, 0x000, "stop", _A0(), 00000, BR) /* STOP stop */
-APUOP(M_STOP2, RR, 0x000, "stop", _A1(A_U14), 00000, BR) /* STOP stop */
-APUOP(M_STOPD, RR, 0x140, "stopd", _A3(A_T,A_A,A_B), 00111, BR) /* STOPD stop (with register dependencies) */
-APUOP(M_LNOP, RR, 0x001, "lnop", _A0(), 00000, LNOP) /* LNOP no_operation */
-APUOP(M_SYNC, RR, 0x002, "sync", _A0(), 00000, BR) /* SYNC flush_pipe */
-APUOP(M_DSYNC, RR, 0x003, "dsync", _A0(), 00000, BR) /* DSYNC flush_store_queue */
-APUOP(M_MFSPR, RR, 0x00c, "mfspr", _A2(A_T,A_S), 00002, SPR) /* MFSPR RT<-SA */
-APUOP(M_RDCH, RR, 0x00d, "rdch", _A2(A_T,A_H), 00002, SPR) /* ReaDCHannel RT<-CA:data */
-APUOP(M_RCHCNT, RR, 0x00f, "rchcnt", _A2(A_T,A_H), 00002, SPR) /* ReaDCHanCouNT RT<-CA:count */
-APUOP(M_HBRA, LBT, 0x080, "hbra", _A2(A_S11,A_S18), 00000, LS) /* HBRA BTB[B9]<-M[I16] */
-APUOP(M_HBRR, LBT, 0x090, "hbrr", _A2(A_S11,A_R18), 00000, LS) /* HBRR BTB[B9]<-M[IP+I16] */
-APUOP(M_BRZ, RI16, 0x100, "brz", _A2(A_T,A_R18), 00001, BR) /* BRZ IP<-IP+I16_if(RT) */
-APUOP(M_BRNZ, RI16, 0x108, "brnz", _A2(A_T,A_R18), 00001, BR) /* BRNZ IP<-IP+I16_if(RT) */
-APUOP(M_BRHZ, RI16, 0x110, "brhz", _A2(A_T,A_R18), 00001, BR) /* BRHZ IP<-IP+I16_if(RT) */
-APUOP(M_BRHNZ, RI16, 0x118, "brhnz", _A2(A_T,A_R18), 00001, BR) /* BRHNZ IP<-IP+I16_if(RT) */
-APUOP(M_STQA, RI16, 0x104, "stqa", _A2(A_T,A_S18), 00001, LS) /* SToreQAbs M[I16]<-RT */
-APUOP(M_STQR, RI16, 0x11C, "stqr", _A2(A_T,A_R18), 00001, LS) /* SToreQRel M[IP+I16]<-RT */
-APUOP(M_MTSPR, RR, 0x10c, "mtspr", _A2(A_S,A_T), 00001, SPR) /* MTSPR SA<-RT */
-APUOP(M_WRCH, RR, 0x10d, "wrch", _A2(A_H,A_T), 00001, SPR) /* ChanWRite CA<-RT */
-APUOP(M_LQD, RI10, 0x1a0, "lqd", _A4(A_T,A_S14,A_P,A_A), 00012, LS) /* LoadQDisp RT<-M[Ra+I10] */
-APUOP(M_BI, RR, 0x1a8, "bi", _A1(A_A), 00010, BR) /* BI IP<-RA */
-APUOP(M_BISL, RR, 0x1a9, "bisl", _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */
-APUOP(M_IRET, RR, 0x1aa, "iret", _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */
-APUOP(M_IRET2, RR, 0x1aa, "iret", _A0(), 00010, BR) /* IRET IP<-SRR0 */
-APUOP(M_BISLED, RR, 0x1ab, "bisled", _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */
-APUOP(M_HBR, LBTI, 0x1ac, "hbr", _A2(A_S11I,A_A), 00010, LS) /* HBR BTB[B9]<-M[Ra] */
-APUOP(M_FREST, RR, 0x1b8, "frest", _A2(A_T,A_A), 00012, SHUF) /* FREST RT<-recip(RA) */
-APUOP(M_FRSQEST, RR, 0x1b9, "frsqest", _A2(A_T,A_A), 00012, SHUF) /* FRSQEST RT<-rsqrt(RA) */
-APUOP(M_FSM, RR, 0x1b4, "fsm", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */
-APUOP(M_FSMH, RR, 0x1b5, "fsmh", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */
-APUOP(M_FSMB, RR, 0x1b6, "fsmb", _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */
-APUOP(M_GB, RR, 0x1b0, "gb", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */
-APUOP(M_GBH, RR, 0x1b1, "gbh", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */
-APUOP(M_GBB, RR, 0x1b2, "gbb", _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */
-APUOP(M_CBD, RI7, 0x1f4, "cbd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */
-APUOP(M_CHD, RI7, 0x1f5, "chd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */
-APUOP(M_CWD, RI7, 0x1f6, "cwd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */
-APUOP(M_CDD, RI7, 0x1f7, "cdd", _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */
-APUOP(M_ROTQBII, RI7, 0x1f8, "rotqbii", _A3(A_T,A_A,A_U3), 00012, SHUF) /* ROTQBII RT<-RA<<<I7 */
-APUOP(M_ROTQBYI, RI7, 0x1fc, "rotqbyi", _A3(A_T,A_A,A_S7N), 00012, SHUF) /* ROTQBYI RT<-RA<<<(I7*8) */
-APUOP(M_ROTQMBII, RI7, 0x1f9, "rotqmbii", _A3(A_T,A_A,A_S3), 00012, SHUF) /* ROTQMBII RT<-RA<<I7 */
-APUOP(M_ROTQMBYI, RI7, 0x1fd, "rotqmbyi", _A3(A_T,A_A,A_S6), 00012, SHUF) /* ROTQMBYI RT<-RA<<I7 */
-APUOP(M_SHLQBII, RI7, 0x1fb, "shlqbii", _A3(A_T,A_A,A_U3), 00012, SHUF) /* SHLQBII RT<-RA<<I7 */
-APUOP(M_SHLQBYI, RI7, 0x1ff, "shlqbyi", _A3(A_T,A_A,A_U5), 00012, SHUF) /* SHLQBYI RT<-RA<<I7 */
-APUOP(M_STQD, RI10, 0x120, "stqd", _A4(A_T,A_S14,A_P,A_A), 00011, LS) /* SToreQDisp M[Ra+I10]<-RT */
-APUOP(M_BIHNZ, RR, 0x12b, "bihnz", _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */
-APUOP(M_BIHZ, RR, 0x12a, "bihz", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOP(M_BINZ, RR, 0x129, "binz", _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */
-APUOP(M_BIZ, RR, 0x128, "biz", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-APUOP(M_CBX, RR, 0x1d4, "cbx", _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */
-APUOP(M_CHX, RR, 0x1d5, "chx", _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */
-APUOP(M_CWX, RR, 0x1d6, "cwx", _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */
-APUOP(M_CDX, RR, 0x1d7, "cdx", _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */
-APUOP(M_LQX, RR, 0x1c4, "lqx", _A3(A_T,A_A,A_B), 00112, LS) /* LoadQindeX RT<-M[Ra+Rb] */
-APUOP(M_ROTQBI, RR, 0x1d8, "rotqbi", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBI RT<-RA<<<Rb */
-APUOP(M_ROTQMBI, RR, 0x1d9, "rotqmbi", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBI RT<-RA<<Rb */
-APUOP(M_SHLQBI, RR, 0x1db, "shlqbi", _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBI RT<-RA<<Rb */
-APUOP(M_ROTQBY, RR, 0x1dc, "rotqby", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBY RT<-RA<<<(Rb*8) */
-APUOP(M_ROTQMBY, RR, 0x1dd, "rotqmby", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBY RT<-RA<<Rb */
-APUOP(M_SHLQBY, RR, 0x1df, "shlqby", _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBY RT<-RA<<Rb */
-APUOP(M_ROTQBYBI, RR, 0x1cc, "rotqbybi", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBYBI RT<-RA<<Rb */
-APUOP(M_ROTQMBYBI, RR, 0x1cd, "rotqmbybi", _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBYBI RT<-RA<<Rb */
-APUOP(M_SHLQBYBI, RR, 0x1cf, "shlqbybi", _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBYBI RT<-RA<<Rb */
-APUOP(M_STQX, RR, 0x144, "stqx", _A3(A_T,A_A,A_B), 00111, LS) /* SToreQindeX M[Ra+Rb]<-RT */
-APUOP(M_SHUFB, RRR, 0x580, "shufb", _A4(A_C,A_A,A_B,A_T), 02111, SHUF) /* SHUFfleBytes RC<-f(RA,RB,RT) */
-APUOP(M_IL, RI16, 0x204, "il", _A2(A_T,A_S16), 00002, FX2) /* ImmLoad RT<-sxt(I16) */
-APUOP(M_ILH, RI16, 0x20c, "ilh", _A2(A_T,A_X16), 00002, FX2) /* ImmLoadH RT<-I16 */
-APUOP(M_ILHU, RI16, 0x208, "ilhu", _A2(A_T,A_X16), 00002, FX2) /* ImmLoadHUpper RT<-I16<<16 */
-APUOP(M_ILA, RI18, 0x210, "ila", _A2(A_T,A_U18), 00002, FX2) /* ImmLoadAddr RT<-zxt(I18) */
-APUOP(M_NOP, RR, 0x201, "nop", _A1(A_T), 00000, NOP) /* XNOP no_operation */
-APUOP(M_NOP2, RR, 0x201, "nop", _A0(), 00000, NOP) /* XNOP no_operation */
-APUOP(M_IOHL, RI16, 0x304, "iohl", _A2(A_T,A_X16), 00003, FX2) /* AddImmeXt RT<-RT+sxt(I16) */
-APUOP(M_ANDBI, RI10, 0x0b0, "andbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* AND%I RT<-RA&I10 */
-APUOP(M_ANDHI, RI10, 0x0a8, "andhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* AND%I RT<-RA&I10 */
-APUOP(M_ANDI, RI10, 0x0a0, "andi", _A3(A_T,A_A,A_S10), 00012, FX2) /* AND%I RT<-RA&I10 */
-APUOP(M_ORBI, RI10, 0x030, "orbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* OR%I RT<-RA|I10 */
-APUOP(M_ORHI, RI10, 0x028, "orhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* OR%I RT<-RA|I10 */
-APUOP(M_ORI, RI10, 0x020, "ori", _A3(A_T,A_A,A_S10), 00012, FX2) /* OR%I RT<-RA|I10 */
-APUOP(M_ORX, RR, 0x1f0, "orx", _A2(A_T,A_A), 00012, BR) /* ORX RT<-RA.w0|RA.w1|RA.w2|RA.w3 */
-APUOP(M_XORBI, RI10, 0x230, "xorbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* XOR%I RT<-RA^I10 */
-APUOP(M_XORHI, RI10, 0x228, "xorhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* XOR%I RT<-RA^I10 */
-APUOP(M_XORI, RI10, 0x220, "xori", _A3(A_T,A_A,A_S10), 00012, FX2) /* XOR%I RT<-RA^I10 */
-APUOP(M_AHI, RI10, 0x0e8, "ahi", _A3(A_T,A_A,A_S10), 00012, FX2) /* Add%Immed RT<-RA+I10 */
-APUOP(M_AI, RI10, 0x0e0, "ai", _A3(A_T,A_A,A_S10), 00012, FX2) /* Add%Immed RT<-RA+I10 */
-APUOP(M_SFHI, RI10, 0x068, "sfhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* SubFrom%Imm RT<-I10-RA */
-APUOP(M_SFI, RI10, 0x060, "sfi", _A3(A_T,A_A,A_S10), 00012, FX2) /* SubFrom%Imm RT<-I10-RA */
-APUOP(M_CGTBI, RI10, 0x270, "cgtbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* CGT%I RT<-(RA>I10) */
-APUOP(M_CGTHI, RI10, 0x268, "cgthi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */
-APUOP(M_CGTI, RI10, 0x260, "cgti", _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */
-APUOP(M_CLGTBI, RI10, 0x2f0, "clgtbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* CLGT%I RT<-(RA>I10) */
-APUOP(M_CLGTHI, RI10, 0x2e8, "clgthi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */
-APUOP(M_CLGTI, RI10, 0x2e0, "clgti", _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */
-APUOP(M_CEQBI, RI10, 0x3f0, "ceqbi", _A3(A_T,A_A,A_S10B), 00012, FX2) /* CEQ%I RT<-(RA=I10) */
-APUOP(M_CEQHI, RI10, 0x3e8, "ceqhi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */
-APUOP(M_CEQI, RI10, 0x3e0, "ceqi", _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */
-APUOP(M_HGTI, RI10, 0x278, "hgti", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */
-APUOP(M_HGTI2, RI10, 0x278, "hgti", _A2(A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */
-APUOP(M_HLGTI, RI10, 0x2f8, "hlgti", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */
-APUOP(M_HLGTI2, RI10, 0x2f8, "hlgti", _A2(A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */
-APUOP(M_HEQI, RI10, 0x3f8, "heqi", _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */
-APUOP(M_HEQI2, RI10, 0x3f8, "heqi", _A2(A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */
-APUOP(M_MPYI, RI10, 0x3a0, "mpyi", _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYI RT<-RA*I10 */
-APUOP(M_MPYUI, RI10, 0x3a8, "mpyui", _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYUI RT<-RA*I10 */
-APUOP(M_CFLTS, RI8, 0x3b0, "cflts", _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTS RT<-int(RA,I8) */
-APUOP(M_CFLTU, RI8, 0x3b2, "cfltu", _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTU RT<-int(RA,I8) */
-APUOP(M_CSFLT, RI8, 0x3b4, "csflt", _A3(A_T,A_A,A_U7B), 00012, FP7) /* CSFLT RT<-flt(RA,I8) */
-APUOP(M_CUFLT, RI8, 0x3b6, "cuflt", _A3(A_T,A_A,A_U7B), 00012, FP7) /* CUFLT RT<-flt(RA,I8) */
-APUOP(M_FESD, RR, 0x3b8, "fesd", _A2(A_T,A_A), 00012, FPD) /* FESD RT<-double(RA) */
-APUOP(M_FRDS, RR, 0x3b9, "frds", _A2(A_T,A_A), 00012, FPD) /* FRDS RT<-single(RA) */
-APUOP(M_FSCRRD, RR, 0x398, "fscrrd", _A1(A_T), 00002, FPD) /* FSCRRD RT<-FP_status */
-APUOP(M_FSCRWR, RR, 0x3ba, "fscrwr", _A2(A_T,A_A), 00010, FP7) /* FSCRWR FP_status<-RA */
-APUOP(M_FSCRWR2, RR, 0x3ba, "fscrwr", _A1(A_A), 00010, FP7) /* FSCRWR FP_status<-RA */
-APUOP(M_CLZ, RR, 0x2a5, "clz", _A2(A_T,A_A), 00012, FX2) /* CLZ RT<-clz(RA) */
-APUOP(M_CNTB, RR, 0x2b4, "cntb", _A2(A_T,A_A), 00012, FXB) /* CNT RT<-pop(RA) */
-APUOP(M_XSBH, RR, 0x2b6, "xsbh", _A2(A_T,A_A), 00012, FX2) /* eXtSignBtoH RT<-sign_ext(RA) */
-APUOP(M_XSHW, RR, 0x2ae, "xshw", _A2(A_T,A_A), 00012, FX2) /* eXtSignHtoW RT<-sign_ext(RA) */
-APUOP(M_XSWD, RR, 0x2a6, "xswd", _A2(A_T,A_A), 00012, FX2) /* eXtSignWtoD RT<-sign_ext(RA) */
-APUOP(M_ROTI, RI7, 0x078, "roti", _A3(A_T,A_A,A_S7N), 00012, FX3) /* ROT%I RT<-RA<<<I7 */
-APUOP(M_ROTMI, RI7, 0x079, "rotmi", _A3(A_T,A_A,A_S7), 00012, FX3) /* ROT%MI RT<-RA<<I7 */
-APUOP(M_ROTMAI, RI7, 0x07a, "rotmai", _A3(A_T,A_A,A_S7), 00012, FX3) /* ROTMA%I RT<-RA<<I7 */
-APUOP(M_SHLI, RI7, 0x07b, "shli", _A3(A_T,A_A,A_U6), 00012, FX3) /* SHL%I RT<-RA<<I7 */
-APUOP(M_ROTHI, RI7, 0x07c, "rothi", _A3(A_T,A_A,A_S7N), 00012, FX3) /* ROT%I RT<-RA<<<I7 */
-APUOP(M_ROTHMI, RI7, 0x07d, "rothmi", _A3(A_T,A_A,A_S6), 00012, FX3) /* ROT%MI RT<-RA<<I7 */
-APUOP(M_ROTMAHI, RI7, 0x07e, "rotmahi", _A3(A_T,A_A,A_S6), 00012, FX3) /* ROTMA%I RT<-RA<<I7 */
-APUOP(M_SHLHI, RI7, 0x07f, "shlhi", _A3(A_T,A_A,A_U5), 00012, FX3) /* SHL%I RT<-RA<<I7 */
-APUOP(M_A, RR, 0x0c0, "a", _A3(A_T,A_A,A_B), 00112, FX2) /* Add% RT<-RA+RB */
-APUOP(M_AH, RR, 0x0c8, "ah", _A3(A_T,A_A,A_B), 00112, FX2) /* Add% RT<-RA+RB */
-APUOP(M_SF, RR, 0x040, "sf", _A3(A_T,A_A,A_B), 00112, FX2) /* SubFrom% RT<-RB-RA */
-APUOP(M_SFH, RR, 0x048, "sfh", _A3(A_T,A_A,A_B), 00112, FX2) /* SubFrom% RT<-RB-RA */
-APUOP(M_CGT, RR, 0x240, "cgt", _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */
-APUOP(M_CGTB, RR, 0x250, "cgtb", _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */
-APUOP(M_CGTH, RR, 0x248, "cgth", _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */
-APUOP(M_CLGT, RR, 0x2c0, "clgt", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */
-APUOP(M_CLGTB, RR, 0x2d0, "clgtb", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */
-APUOP(M_CLGTH, RR, 0x2c8, "clgth", _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */
-APUOP(M_CEQ, RR, 0x3c0, "ceq", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */
-APUOP(M_CEQB, RR, 0x3d0, "ceqb", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */
-APUOP(M_CEQH, RR, 0x3c8, "ceqh", _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */
-APUOP(M_HGT, RR, 0x258, "hgt", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */
-APUOP(M_HGT2, RR, 0x258, "hgt", _A2(A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */
-APUOP(M_HLGT, RR, 0x2d8, "hlgt", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */
-APUOP(M_HLGT2, RR, 0x2d8, "hlgt", _A2(A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */
-APUOP(M_HEQ, RR, 0x3d8, "heq", _A3(A_T,A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */
-APUOP(M_HEQ2, RR, 0x3d8, "heq", _A2(A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */
-APUOP(M_FCEQ, RR, 0x3c2, "fceq", _A3(A_T,A_A,A_B), 00112, FX2) /* FCEQ RT<-(RA=RB) */
-APUOP(M_FCMEQ, RR, 0x3ca, "fcmeq", _A3(A_T,A_A,A_B), 00112, FX2) /* FCMEQ RT<-(|RA|=|RB|) */
-APUOP(M_FCGT, RR, 0x2c2, "fcgt", _A3(A_T,A_A,A_B), 00112, FX2) /* FCGT RT<-(RA<RB) */
-APUOP(M_FCMGT, RR, 0x2ca, "fcmgt", _A3(A_T,A_A,A_B), 00112, FX2) /* FCMGT RT<-(|RA|<|RB|) */
-APUOP(M_AND, RR, 0x0c1, "and", _A3(A_T,A_A,A_B), 00112, FX2) /* AND RT<-RA&RB */
-APUOP(M_NAND, RR, 0x0c9, "nand", _A3(A_T,A_A,A_B), 00112, FX2) /* NAND RT<-!(RA&RB) */
-APUOP(M_OR, RR, 0x041, "or", _A3(A_T,A_A,A_B), 00112, FX2) /* OR RT<-RA|RB */
-APUOP(M_NOR, RR, 0x049, "nor", _A3(A_T,A_A,A_B), 00112, FX2) /* NOR RT<-!(RA&RB) */
-APUOP(M_XOR, RR, 0x241, "xor", _A3(A_T,A_A,A_B), 00112, FX2) /* XOR RT<-RA^RB */
-APUOP(M_EQV, RR, 0x249, "eqv", _A3(A_T,A_A,A_B), 00112, FX2) /* EQuiValent RT<-!(RA^RB) */
-APUOP(M_ANDC, RR, 0x2c1, "andc", _A3(A_T,A_A,A_B), 00112, FX2) /* ANDComplement RT<-RA&!RB */
-APUOP(M_ORC, RR, 0x2c9, "orc", _A3(A_T,A_A,A_B), 00112, FX2) /* ORComplement RT<-RA|!RB */
-APUOP(M_ABSDB, RR, 0x053, "absdb", _A3(A_T,A_A,A_B), 00112, FXB) /* ABSoluteDiff RT<-|RA-RB| */
-APUOP(M_AVGB, RR, 0x0d3, "avgb", _A3(A_T,A_A,A_B), 00112, FXB) /* AVG% RT<-(RA+RB+1)/2 */
-APUOP(M_SUMB, RR, 0x253, "sumb", _A3(A_T,A_A,A_B), 00112, FXB) /* SUM% RT<-f(RA,RB) */
-APUOP(M_DFA, RR, 0x2cc, "dfa", _A3(A_T,A_A,A_B), 00112, FPD) /* DFAdd RT<-RA+RB */
-APUOP(M_DFM, RR, 0x2ce, "dfm", _A3(A_T,A_A,A_B), 00112, FPD) /* DFMul RT<-RA*RB */
-APUOP(M_DFS, RR, 0x2cd, "dfs", _A3(A_T,A_A,A_B), 00112, FPD) /* DFSub RT<-RA-RB */
-APUOP(M_FA, RR, 0x2c4, "fa", _A3(A_T,A_A,A_B), 00112, FP6) /* FAdd RT<-RA+RB */
-APUOP(M_FM, RR, 0x2c6, "fm", _A3(A_T,A_A,A_B), 00112, FP6) /* FMul RT<-RA*RB */
-APUOP(M_FS, RR, 0x2c5, "fs", _A3(A_T,A_A,A_B), 00112, FP6) /* FSub RT<-RA-RB */
-APUOP(M_MPY, RR, 0x3c4, "mpy", _A3(A_T,A_A,A_B), 00112, FP7) /* MPY RT<-RA*RB */
-APUOP(M_MPYH, RR, 0x3c5, "mpyh", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYH RT<-(RAh*RB)<<16 */
-APUOP(M_MPYHH, RR, 0x3c6, "mpyhh", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYHH RT<-RAh*RBh */
-APUOP(M_MPYHHU, RR, 0x3ce, "mpyhhu", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYHHU RT<-RAh*RBh */
-APUOP(M_MPYS, RR, 0x3c7, "mpys", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYS RT<-(RA*RB)>>16 */
-APUOP(M_MPYU, RR, 0x3cc, "mpyu", _A3(A_T,A_A,A_B), 00112, FP7) /* MPYU RT<-RA*RB */
-APUOP(M_FI, RR, 0x3d4, "fi", _A3(A_T,A_A,A_B), 00112, FP7) /* FInterpolate RT<-f(RA,RB) */
-APUOP(M_ROT, RR, 0x058, "rot", _A3(A_T,A_A,A_B), 00112, FX3) /* ROT% RT<-RA<<<RB */
-APUOP(M_ROTM, RR, 0x059, "rotm", _A3(A_T,A_A,A_B), 00112, FX3) /* ROT%M RT<-RA<<Rb */
-APUOP(M_ROTMA, RR, 0x05a, "rotma", _A3(A_T,A_A,A_B), 00112, FX3) /* ROTMA% RT<-RA<<Rb */
-APUOP(M_SHL, RR, 0x05b, "shl", _A3(A_T,A_A,A_B), 00112, FX3) /* SHL% RT<-RA<<Rb */
-APUOP(M_ROTH, RR, 0x05c, "roth", _A3(A_T,A_A,A_B), 00112, FX3) /* ROT% RT<-RA<<<RB */
-APUOP(M_ROTHM, RR, 0x05d, "rothm", _A3(A_T,A_A,A_B), 00112, FX3) /* ROT%M RT<-RA<<Rb */
-APUOP(M_ROTMAH, RR, 0x05e, "rotmah", _A3(A_T,A_A,A_B), 00112, FX3) /* ROTMA% RT<-RA<<Rb */
-APUOP(M_SHLH, RR, 0x05f, "shlh", _A3(A_T,A_A,A_B), 00112, FX3) /* SHL% RT<-RA<<Rb */
-APUOP(M_MPYHHA, RR, 0x346, "mpyhha", _A3(A_T,A_A,A_B), 00113, FP7) /* MPYHHA RT<-RAh*RBh+RT */
-APUOP(M_MPYHHAU, RR, 0x34e, "mpyhhau", _A3(A_T,A_A,A_B), 00113, FP7) /* MPYHHAU RT<-RAh*RBh+RT */
-APUOP(M_DFMA, RR, 0x35c, "dfma", _A3(A_T,A_A,A_B), 00113, FPD) /* DFMAdd RT<-RT+RA*RB */
-APUOP(M_DFMS, RR, 0x35d, "dfms", _A3(A_T,A_A,A_B), 00113, FPD) /* DFMSub RT<-RA*RB-RT */
-APUOP(M_DFNMS, RR, 0x35e, "dfnms", _A3(A_T,A_A,A_B), 00113, FPD) /* DFNMSub RT<-RT-RA*RB */
-APUOP(M_DFNMA, RR, 0x35f, "dfnma", _A3(A_T,A_A,A_B), 00113, FPD) /* DFNMAdd RT<-(-RT)-RA*RB */
-APUOP(M_FMA, RRR, 0x700, "fma", _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FMAdd RC<-RT+RA*RB */
-APUOP(M_FMS, RRR, 0x780, "fms", _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FMSub RC<-RA*RB-RT */
-APUOP(M_FNMS, RRR, 0x680, "fnms", _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FNMSub RC<-RT-RA*RB */
-APUOP(M_MPYA, RRR, 0x600, "mpya", _A4(A_C,A_A,A_B,A_T), 02111, FP7) /* MPYA RC<-RA*RB+RT */
-APUOP(M_SELB, RRR, 0x400, "selb", _A4(A_C,A_A,A_B,A_T), 02111, FX2) /* SELectBits RC<-RA&RT|RB&!RT */
-/* for system function call, this uses op-code of mtspr */
-APUOP(M_SYSCALL, RI7, 0x10c, "syscall", _A3(A_T,A_A,A_S7N), 00002, SPR) /* System Call */
-/*
-pseudo instruction:
-system call
-value of I9 operation
-0 halt
-1 rt[0] = open(MEM[ra[0]], ra[1])
-2 rt[0] = close(ra[0])
-3 rt[0] = read(ra[0], MEM[ra[1]], ra[2])
-4 rt[0] = write(ra[0], MEM[ra[1]], ra[2])
-5 printf(MEM[ra[0]], ra[1], ra[2], ra[3])
-42 rt[0] = clock()
-52 rt[0] = lseek(ra0, ra1, ra2)
-
-*/
-
-
-/* new multiprecision add/sub */
-APUOP(M_ADDX, RR, 0x340, "addx", _A3(A_T,A_A,A_B), 00113, FX2) /* Add_eXtended RT<-RA+RB+RT */
-APUOP(M_CG, RR, 0x0c2, "cg", _A3(A_T,A_A,A_B), 00112, FX2) /* CarryGenerate RT<-cout(RA+RB) */
-APUOP(M_CGX, RR, 0x342, "cgx", _A3(A_T,A_A,A_B), 00113, FX2) /* CarryGen_eXtd RT<-cout(RA+RB+RT) */
-APUOP(M_SFX, RR, 0x341, "sfx", _A3(A_T,A_A,A_B), 00113, FX2) /* Add_eXtended RT<-RA+RB+RT */
-APUOP(M_BG, RR, 0x042, "bg", _A3(A_T,A_A,A_B), 00112, FX2) /* CarryGenerate RT<-cout(RA+RB) */
-APUOP(M_BGX, RR, 0x343, "bgx", _A3(A_T,A_A,A_B), 00113, FX2) /* CarryGen_eXtd RT<-cout(RA+RB+RT) */
-
-/*
-
-The following ops are a subset of above except with feature bits set.
-Feature bits are bits 11-17 of the instruction:
-
- 11 - C & P feature bit
- 12 - disable interrupts
- 13 - enable interrupts
-
-*/
-APUOPFB(M_BID, RR, 0x1a8, 0x20, "bid", _A1(A_A), 00010, BR) /* BI IP<-RA */
-APUOPFB(M_BIE, RR, 0x1a8, 0x10, "bie", _A1(A_A), 00010, BR) /* BI IP<-RA */
-APUOPFB(M_BISLD, RR, 0x1a9, 0x20, "bisld", _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */
-APUOPFB(M_BISLE, RR, 0x1a9, 0x10, "bisle", _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */
-APUOPFB(M_IRETD, RR, 0x1aa, 0x20, "iretd", _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */
-APUOPFB(M_IRETD2, RR, 0x1aa, 0x20, "iretd", _A0(), 00010, BR) /* IRET IP<-SRR0 */
-APUOPFB(M_IRETE, RR, 0x1aa, 0x10, "irete", _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */
-APUOPFB(M_IRETE2, RR, 0x1aa, 0x10, "irete", _A0(), 00010, BR) /* IRET IP<-SRR0 */
-APUOPFB(M_BISLEDD, RR, 0x1ab, 0x20, "bisledd", _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */
-APUOPFB(M_BISLEDE, RR, 0x1ab, 0x10, "bislede", _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */
-APUOPFB(M_BIHNZD, RR, 0x12b, 0x20, "bihnzd", _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */
-APUOPFB(M_BIHNZE, RR, 0x12b, 0x10, "bihnze", _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */
-APUOPFB(M_BIHZD, RR, 0x12a, 0x20, "bihzd", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOPFB(M_BIHZE, RR, 0x12a, 0x10, "bihze", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOPFB(M_BINZD, RR, 0x129, 0x20, "binzd", _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */
-APUOPFB(M_BINZE, RR, 0x129, 0x10, "binze", _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */
-APUOPFB(M_BIZD, RR, 0x128, 0x20, "bizd", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-APUOPFB(M_BIZE, RR, 0x128, 0x10, "bize", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-APUOPFB(M_SYNCC, RR, 0x002, 0x40, "syncc", _A0(), 00000, BR) /* SYNCC flush_pipe */
-APUOPFB(M_HBRP, LBTI, 0x1ac, 0x40, "hbrp", _A0(), 00010, LS) /* HBR BTB[B9]<-M[Ra] */
-
-/* Synonyms required by the AS manual. */
-APUOP(M_LR, RI10, 0x020, "lr", _A2(A_T,A_A), 00012, FX2) /* OR%I RT<-RA|I10 */
-APUOP(M_BIHT, RR, 0x12b, "biht", _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */
-APUOP(M_BIHF, RR, 0x12a, "bihf", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOP(M_BIT, RR, 0x129, "bit", _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */
-APUOP(M_BIF, RR, 0x128, "bif", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-APUOPFB(M_BIHTD, RR, 0x12b, 0x20, "bihtd", _A2(A_T,A_A), 00011, BR) /* BIHNF IP<-RA_if(RT) */
-APUOPFB(M_BIHTE, RR, 0x12b, 0x10, "bihte", _A2(A_T,A_A), 00011, BR) /* BIHNF IP<-RA_if(RT) */
-APUOPFB(M_BIHFD, RR, 0x12a, 0x20, "bihfd", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOPFB(M_BIHFE, RR, 0x12a, 0x10, "bihfe", _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */
-APUOPFB(M_BITD, RR, 0x129, 0x20, "bitd", _A2(A_T,A_A), 00011, BR) /* BINF IP<-RA_if(RT) */
-APUOPFB(M_BITE, RR, 0x129, 0x10, "bite", _A2(A_T,A_A), 00011, BR) /* BINF IP<-RA_if(RT) */
-APUOPFB(M_BIFD, RR, 0x128, 0x20, "bifd", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-APUOPFB(M_BIFE, RR, 0x128, 0x10, "bife", _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */
-
-/* New soma double-float insns. */
-APUOP(M_DFCEQ, RR, 0x3c3, "dfceq", _A3(A_T,A_A,A_B), 00112, FX2) /* DFCEQ RT<-(RA=RB) */
-APUOP(M_DFCMEQ, RR, 0x3cb, "dfcmeq", _A3(A_T,A_A,A_B), 00112, FX2) /* DFCMEQ RT<-(|RA|=|RB|) */
-APUOP(M_DFCGT, RR, 0x2c3, "dfcgt", _A3(A_T,A_A,A_B), 00112, FX2) /* DFCGT RT<-(RA>RB) */
-APUOP(M_DFCMGT, RR, 0x2cb, "dfcmgt", _A3(A_T,A_A,A_B), 00112, FX2) /* DFCMGT RT<-(|RA|>|RB|) */
-APUOP(M_DFTSV, RI7, 0x3bf, "dftsv", _A3(A_T,A_A,A_U7), 00012, FX2) /* DFTSV RT<-testspecial(RA,I7) */
-
-#undef _A0
-#undef _A1
-#undef _A2
-#undef _A3
-#undef _A4
diff --git a/include/opcode/spu.h b/include/opcode/spu.h
deleted file mode 100644
index c6468303b..000000000
--- a/include/opcode/spu.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* SPU ELF support for BFD.
-
- Copyright 2006, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* These two enums are from rel_apu/common/spu_asm_format.h */
-/* definition of instruction format */
-typedef enum {
- RRR,
- RI18,
- RI16,
- RI10,
- RI8,
- RI7,
- RR,
- LBT,
- LBTI,
- IDATA,
- UNKNOWN_IFORMAT
-} spu_iformat;
-
-/* These values describe assembly instruction arguments. They indicate
- * how to encode, range checking and which relocation to use. */
-typedef enum {
- A_T, /* register at pos 0 */
- A_A, /* register at pos 7 */
- A_B, /* register at pos 14 */
- A_C, /* register at pos 21 */
- A_S, /* special purpose register at pos 7 */
- A_H, /* channel register at pos 7 */
- A_P, /* parenthesis, this has to separate regs from immediates */
- A_S3,
- A_S6,
- A_S7N,
- A_S7,
- A_U7A,
- A_U7B,
- A_S10B,
- A_S10,
- A_S11,
- A_S11I,
- A_S14,
- A_S16,
- A_S18,
- A_R18,
- A_U3,
- A_U5,
- A_U6,
- A_U7,
- A_U14,
- A_X16,
- A_U18,
- A_MAX
-} spu_aformat;
-
-enum spu_insns {
-#define APUOP(TAG,MACFORMAT,OPCODE,MNEMONIC,ASMFORMAT,DEP,PIPE) \
- TAG,
-#define APUOPFB(TAG,MACFORMAT,OPCODE,FB,MNEMONIC,ASMFORMAT,DEP,PIPE) \
- TAG,
-#include "opcode/spu-insns.h"
-#undef APUOP
-#undef APUOPFB
- M_SPU_MAX
-};
-
-struct spu_opcode
-{
- spu_iformat insn_type;
- unsigned int opcode;
- char *mnemonic;
- int arg[5];
-};
-
-#define SIGNED_EXTRACT(insn,size,pos) (((int)((insn) << (32-size-pos))) >> (32-size))
-#define UNSIGNED_EXTRACT(insn,size,pos) (((insn) >> pos) & ((1 << size)-1))
-
-#define DECODE_INSN_RT(insn) (insn & 0x7f)
-#define DECODE_INSN_RA(insn) ((insn >> 7) & 0x7f)
-#define DECODE_INSN_RB(insn) ((insn >> 14) & 0x7f)
-#define DECODE_INSN_RC(insn) ((insn >> 21) & 0x7f)
-
-#define DECODE_INSN_I10(insn) SIGNED_EXTRACT(insn,10,14)
-#define DECODE_INSN_U10(insn) UNSIGNED_EXTRACT(insn,10,14)
-
-/* For branching, immediate loads, hbr and lqa/stqa. */
-#define DECODE_INSN_I16(insn) SIGNED_EXTRACT(insn,16,7)
-#define DECODE_INSN_U16(insn) UNSIGNED_EXTRACT(insn,16,7)
-
-/* for stop */
-#define DECODE_INSN_U14(insn) UNSIGNED_EXTRACT(insn,14,0)
-
-/* For ila */
-#define DECODE_INSN_I18(insn) SIGNED_EXTRACT(insn,18,7)
-#define DECODE_INSN_U18(insn) UNSIGNED_EXTRACT(insn,18,7)
-
-/* For rotate and shift and generate control mask */
-#define DECODE_INSN_I7(insn) SIGNED_EXTRACT(insn,7,14)
-#define DECODE_INSN_U7(insn) UNSIGNED_EXTRACT(insn,7,14)
-
-/* For float <-> int conversion */
-#define DECODE_INSN_I8(insn) SIGNED_EXTRACT(insn,8,14)
-#define DECODE_INSN_U8(insn) UNSIGNED_EXTRACT(insn,8,14)
-
-/* For hbr */
-#define DECODE_INSN_I9a(insn) ((SIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0))
-#define DECODE_INSN_I9b(insn) ((SIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0))
-#define DECODE_INSN_U9a(insn) ((UNSIGNED_EXTRACT(insn,2,23) << 7) | UNSIGNED_EXTRACT(insn,7,0))
-#define DECODE_INSN_U9b(insn) ((UNSIGNED_EXTRACT(insn,2,14) << 7) | UNSIGNED_EXTRACT(insn,7,0))
-
diff --git a/include/opcode/tahoe.h b/include/opcode/tahoe.h
deleted file mode 100644
index b5cee249e..000000000
--- a/include/opcode/tahoe.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Ported by the State University of New York at Buffalo by the Distributed
- * Computer Systems Lab, Department of Computer Science, 1991.
- */
-
-#ifndef tahoe_opcodeT
-#define tahoe_opcodeT int
-#endif /* no tahoe_opcodeT */
-
-struct vot_wot /* tahoe opcode table: wot to do with this */
- /* particular opcode */
-{
- char * args; /* how to compile said opcode */
- tahoe_opcodeT code; /* op-code (may be > 8 bits!) */
-};
-
-struct vot /* tahoe opcode text */
-{
- char * name; /* opcode name: lowercase string [key] */
- struct vot_wot detail; /* rest of opcode table [datum] */
-};
-
-#define vot_how args
-#define vot_code code
-#define vot_detail detail
-#define vot_name name
-
-static struct vot
-votstrs[] =
-{
-{ "halt", {"", 0x00 } },
-{ "sinf", {"", 0x05 } },
-{ "ldf", {"rl", 0x06 } },
-{ "ldd", {"rq", 0x07 } },
-{ "addb2", {"rbmb", 0x08 } },
-{ "movb", {"rbwb", 0x09 } },
-{ "addw2", {"rwmw", 0x0a } },
-{ "movw", {"rwww", 0x0b } },
-{ "addl2", {"rlml", 0x0c } },
-{ "movl", {"rlwl", 0x0d } },
-{ "bbs", {"rlvlbw", 0x0e } },
-{ "nop", {"", 0x10 } },
-{ "brb", {"bb", 0x11 } },
-{ "brw", {"bw", 0x13 } },
-{ "cosf", {"", 0x15 } },
-{ "lnf", {"rl", 0x16 } },
-{ "lnd", {"rq", 0x17 } },
-{ "addb3", {"rbrbwb", 0x18 } },
-{ "cmpb", {"rbwb", 0x19 } },
-{ "addw3", {"rwrwww", 0x1a } },
-{ "cmpw", {"rwww", 0x1b } },
-{ "addl3", {"rlrlwl", 0x1c } },
-{ "cmpl", {"rlwl", 0x1d } },
-{ "bbc", {"rlvlbw", 0x1e } },
-{ "rei", {"", 0x20 } },
-{ "bneq", {"bb", 0x21 } },
-{ "bnequ", {"bb", 0x21 } },
-{ "cvtwl", {"rwwl", 0x23 } },
-{ "stf", {"wl", 0x26 } },
-{ "std", {"wq", 0x27 } },
-{ "subb2", {"rbmb", 0x28 } },
-{ "mcomb", {"rbwb", 0x29 } },
-{ "subw2", {"rwmw", 0x2a } },
-{ "mcomw", {"rwww", 0x2b } },
-{ "subl2", {"rlml", 0x2c } },
-{ "mcoml", {"rlwl", 0x2d } },
-{ "emul", {"rlrlrlwq", 0x2e } },
-{ "aoblss", {"rlmlbw", 0x2f } },
-{ "bpt", {"", 0x30 } },
-{ "beql", {"bb", 0x31 } },
-{ "beqlu", {"bb", 0x31 } },
-{ "cvtwb", {"rwwb", 0x33 } },
-{ "logf", {"", 0x35 } },
-{ "cmpf", {"rl", 0x36 } },
-{ "cmpd", {"rq", 0x37 } },
-{ "subb3", {"rbrbwb", 0x38 } },
-{ "bitb", {"rbrb", 0x39 } },
-{ "subw3", {"rwrwww", 0x3a } },
-{ "bitw", {"rwrw", 0x3b } },
-{ "subl3", {"rlrlwl", 0x3c } },
-{ "bitl", {"rlrl", 0x3d } },
-{ "ediv", {"rlrqwlwl", 0x3e } },
-{ "aobleq", {"rlmlbw", 0x3f } },
-{ "ret", {"", 0x40 } },
-{ "bgtr", {"bb", 0x41 } },
-{ "sqrtf", {"", 0x45 } },
-{ "cmpf2", {"rl", 0x46 } },
-{ "cmpd2", {"rqrq", 0x47 } },
-{ "shll", {"rbrlwl", 0x48 } },
-{ "clrb", {"wb", 0x49 } },
-{ "shlq", {"rbrqwq", 0x4a } },
-{ "clrw", {"ww", 0x4b } },
-{ "mull2", {"rlml", 0x4c } },
-{ "clrl", {"wl", 0x4d } },
-{ "shal", {"rbrlwl", 0x4e } },
-{ "bleq", {"bb", 0x51 } },
-{ "expf", {"", 0x55 } },
-{ "tstf", {"", 0x56 } },
-{ "tstd", {"", 0x57 } },
-{ "shrl", {"rbrlwl", 0x58 } },
-{ "tstb", {"rb", 0x59 } },
-{ "shrq", {"rbrqwq", 0x5a } },
-{ "tstw", {"rw", 0x5b } },
-{ "mull3", {"rlrlwl", 0x5c } },
-{ "tstl", {"rl", 0x5d } },
-{ "shar", {"rbrlwl", 0x5e } },
-{ "bbssi", {"rlmlbw", 0x5f } },
-{ "ldpctx", {"", 0x60 } },
-{ "pushd", {"", 0x67 } },
-{ "incb", {"mb", 0x69 } },
-{ "incw", {"mw", 0x6b } },
-{ "divl2", {"rlml", 0x6c } },
-{ "incl", {"ml", 0x6d } },
-{ "cvtlb", {"rlwb", 0x6f } },
-{ "svpctx", {"", 0x70 } },
-{ "jmp", {"ab", 0x71 } },
-{ "cvlf", {"rl", 0x76 } },
-{ "cvld", {"rl", 0x77 } },
-{ "decb", {"mb", 0x79 } },
-{ "decw", {"mw", 0x7b } },
-{ "divl3", {"rlrlwl", 0x7c } },
-{ "decl", {"ml", 0x7d } },
-{ "cvtlw", {"rlww", 0x7f } },
-{ "bgeq", {"bb", 0x81 } },
-{ "movs2", {"abab", 0x82 } },
-{ "cvfl", {"wl", 0x86 } },
-{ "cvdl", {"wl", 0x87 } },
-{ "orb2", {"rbmb", 0x88 } },
-{ "cvtbl", {"rbwl", 0x89 } },
-{ "orw2", {"rwmw", 0x8a } },
-{ "bispsw", {"rw", 0x8b } },
-{ "orl2", {"rlml", 0x8c } },
-{ "adwc", {"rlml", 0x8d } },
-{ "adda", {"rlml", 0x8e } },
-{ "blss", {"bb", 0x91 } },
-{ "cmps2", {"abab", 0x92 } },
-{ "ldfd", {"rl", 0x97 } },
-{ "orb3", {"rbrbwb", 0x98 } },
-{ "cvtbw", {"rbww", 0x99 } },
-{ "orw3", {"rwrwww", 0x9a } },
-{ "bicpsw", {"rw", 0x9b } },
-{ "orl3", {"rlrlwl", 0x9c } },
-{ "sbwc", {"rlml", 0x9d } },
-{ "suba", {"rlml", 0x9e } },
-{ "bgtru", {"bb", 0xa1 } },
-{ "cvdf", {"", 0xa6 } },
-{ "andb2", {"rbmb", 0xa8 } },
-{ "movzbl", {"rbwl", 0xa9 } },
-{ "andw2", {"rwmw", 0xaa } },
-{ "loadr", {"rwal", 0xab } },
-{ "andl2", {"rlml", 0xac } },
-{ "mtpr", {"rlrl", 0xad } },
-{ "ffs", {"rlwl", 0xae } },
-{ "blequ", {"bb", 0xb1 } },
-{ "negf", {"", 0xb6 } },
-{ "negd", {"", 0xb7 } },
-{ "andb3", {"rbrbwb", 0xb8 } },
-{ "movzbw", {"rbww", 0xb9 } },
-{ "andw3", {"rwrwww", 0xba } },
-{ "storer", {"rwal", 0xbb } },
-{ "andl3", {"rlrlwl", 0xbc } },
-{ "mfpr", {"rlwl", 0xbd } },
-{ "ffc", {"rlwl", 0xbe } },
-{ "calls", {"rbab", 0xbf } },
-{ "prober", {"rbabrl", 0xc0 } },
-{ "bvc", {"bb", 0xc1 } },
-{ "movs3", {"ababrw", 0xc2 } },
-{ "movzwl", {"rwwl", 0xc3 } },
-{ "addf", {"rl", 0xc6 } },
-{ "addd", {"rq", 0xc7 } },
-{ "xorb2", {"rbmb", 0xc8 } },
-{ "movob", {"rbwb", 0xc9 } },
-{ "xorw2", {"rwmw", 0xca } },
-{ "movow", {"rwww", 0xcb } },
-{ "xorl2", {"rlml", 0xcc } },
-{ "movpsl", {"wl", 0xcd } },
-{ "kcall", {"rw", 0xcf } },
-{ "probew", {"rbabrl", 0xd0 } },
-{ "bvs", {"bb", 0xd1 } },
-{ "cmps3", {"ababrw", 0xd2 } },
-{ "subf", {"rq", 0xd6 } },
-{ "subd", {"rq", 0xd7 } },
-{ "xorb3", {"rbrbwb", 0xd8 } },
-{ "pushb", {"rb", 0xd9 } },
-{ "xorw3", {"rwrwww", 0xda } },
-{ "pushw", {"rw", 0xdb } },
-{ "xorl3", {"rlrlwl", 0xdc } },
-{ "pushl", {"rl", 0xdd } },
-{ "insque", {"abab", 0xe0 } },
-{ "bcs", {"bb", 0xe1 } },
-{ "bgequ", {"bb", 0xe1 } },
-{ "mulf", {"rq", 0xe6 } },
-{ "muld", {"rq", 0xe7 } },
-{ "mnegb", {"rbwb", 0xe8 } },
-{ "movab", {"abwl", 0xe9 } },
-{ "mnegw", {"rwww", 0xea } },
-{ "movaw", {"awwl", 0xeb } },
-{ "mnegl", {"rlwl", 0xec } },
-{ "moval", {"alwl", 0xed } },
-{ "remque", {"ab", 0xf0 } },
-{ "bcc", {"bb", 0xf1 } },
-{ "blssu", {"bb", 0xf1 } },
-{ "divf", {"rq", 0xf6 } },
-{ "divd", {"rq", 0xf7 } },
-{ "movblk", {"alalrw", 0xf8 } },
-{ "pushab", {"ab", 0xf9 } },
-{ "pushaw", {"aw", 0xfb } },
-{ "casel", {"rlrlrl", 0xfc } },
-{ "pushal", {"al", 0xfd } },
-{ "callf", {"rbab", 0xfe } },
-{ "" , "" } /* empty is end sentinel */
-
-};
diff --git a/include/opcode/tic30.h b/include/opcode/tic30.h
deleted file mode 100644
index 3f4d30715..000000000
--- a/include/opcode/tic30.h
+++ /dev/null
@@ -1,691 +0,0 @@
-/* tic30.h -- Header file for TI TMS320C30 opcode table
- Copyright 1998, 2005, 2009, 2010 Free Software Foundation, Inc.
- Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* FIXME: The opcode table should be in opcodes/tic30-opc.c, not in a
- header file. */
-
-#ifndef _TMS320_H_
-#define _TMS320_H_
-
-struct _register
-{
- char *name;
- unsigned char opcode;
- unsigned char regtype;
-};
-
-typedef struct _register reg;
-
-#define REG_Rn 0x01
-#define REG_ARn 0x02
-#define REG_DP 0x03
-#define REG_OTHER 0x04
-
-static const reg tic30_regtab[] = {
- { "r0", 0x00, REG_Rn },
- { "r1", 0x01, REG_Rn },
- { "r2", 0x02, REG_Rn },
- { "r3", 0x03, REG_Rn },
- { "r4", 0x04, REG_Rn },
- { "r5", 0x05, REG_Rn },
- { "r6", 0x06, REG_Rn },
- { "r7", 0x07, REG_Rn },
- { "ar0",0x08, REG_ARn },
- { "ar1",0x09, REG_ARn },
- { "ar2",0x0A, REG_ARn },
- { "ar3",0x0B, REG_ARn },
- { "ar4",0x0C, REG_ARn },
- { "ar5",0x0D, REG_ARn },
- { "ar6",0x0E, REG_ARn },
- { "ar7",0x0F, REG_ARn },
- { "dp", 0x10, REG_DP },
- { "ir0",0x11, REG_OTHER },
- { "ir1",0x12, REG_OTHER },
- { "bk", 0x13, REG_OTHER },
- { "sp", 0x14, REG_OTHER },
- { "st", 0x15, REG_OTHER },
- { "ie", 0x16, REG_OTHER },
- { "if", 0x17, REG_OTHER },
- { "iof",0x18, REG_OTHER },
- { "rs", 0x19, REG_OTHER },
- { "re", 0x1A, REG_OTHER },
- { "rc", 0x1B, REG_OTHER },
- { "R0", 0x00, REG_Rn },
- { "R1", 0x01, REG_Rn },
- { "R2", 0x02, REG_Rn },
- { "R3", 0x03, REG_Rn },
- { "R4", 0x04, REG_Rn },
- { "R5", 0x05, REG_Rn },
- { "R6", 0x06, REG_Rn },
- { "R7", 0x07, REG_Rn },
- { "AR0",0x08, REG_ARn },
- { "AR1",0x09, REG_ARn },
- { "AR2",0x0A, REG_ARn },
- { "AR3",0x0B, REG_ARn },
- { "AR4",0x0C, REG_ARn },
- { "AR5",0x0D, REG_ARn },
- { "AR6",0x0E, REG_ARn },
- { "AR7",0x0F, REG_ARn },
- { "DP", 0x10, REG_DP },
- { "IR0",0x11, REG_OTHER },
- { "IR1",0x12, REG_OTHER },
- { "BK", 0x13, REG_OTHER },
- { "SP", 0x14, REG_OTHER },
- { "ST", 0x15, REG_OTHER },
- { "IE", 0x16, REG_OTHER },
- { "IF", 0x17, REG_OTHER },
- { "IOF",0x18, REG_OTHER },
- { "RS", 0x19, REG_OTHER },
- { "RE", 0x1A, REG_OTHER },
- { "RC", 0x1B, REG_OTHER },
- { "", 0, 0 }
-};
-
-static const reg *const tic30_regtab_end
- = tic30_regtab + sizeof(tic30_regtab)/sizeof(tic30_regtab[0]);
-
-/* Indirect Addressing Modes Modification Fields */
-/* Indirect Addressing with Displacement */
-#define PreDisp_Add 0x00
-#define PreDisp_Sub 0x01
-#define PreDisp_Add_Mod 0x02
-#define PreDisp_Sub_Mod 0x03
-#define PostDisp_Add_Mod 0x04
-#define PostDisp_Sub_Mod 0x05
-#define PostDisp_Add_Circ 0x06
-#define PostDisp_Sub_Circ 0x07
-/* Indirect Addressing with Index Register IR0 */
-#define PreIR0_Add 0x08
-#define PreIR0_Sub 0x09
-#define PreIR0_Add_Mod 0x0A
-#define PreIR0_Sub_Mod 0x0B
-#define PostIR0_Add_Mod 0x0C
-#define PostIR0_Sub_Mod 0x0D
-#define PostIR0_Add_Circ 0x0E
-#define PostIR0_Sub_Circ 0x0F
-/* Indirect Addressing with Index Register IR1 */
-#define PreIR1_Add 0x10
-#define PreIR1_Sub 0x11
-#define PreIR1_Add_Mod 0x12
-#define PreIR1_Sub_Mod 0x13
-#define PostIR1_Add_Mod 0x14
-#define PostIR1_Sub_Mod 0x15
-#define PostIR1_Add_Circ 0x16
-#define PostIR1_Sub_Circ 0x17
-/* Indirect Addressing (Special Cases) */
-#define IndirectOnly 0x18
-#define PostIR0_Add_BitRev 0x19
-
-typedef struct {
- char *syntax;
- unsigned char modfield;
- unsigned char displacement;
-} ind_addr_type;
-
-#define IMPLIED_DISP 0x01
-#define DISP_REQUIRED 0x02
-#define NO_DISP 0x03
-
-static const ind_addr_type tic30_indaddr_tab[] = {
- { "*+ar", PreDisp_Add, IMPLIED_DISP },
- { "*-ar", PreDisp_Sub, IMPLIED_DISP },
- { "*++ar", PreDisp_Add_Mod, IMPLIED_DISP },
- { "*--ar", PreDisp_Sub_Mod, IMPLIED_DISP },
- { "*ar++", PostDisp_Add_Mod, IMPLIED_DISP },
- { "*ar--", PostDisp_Sub_Mod, IMPLIED_DISP },
- { "*ar++%", PostDisp_Add_Circ, IMPLIED_DISP },
- { "*ar--%", PostDisp_Sub_Circ, IMPLIED_DISP },
- { "*+ar()", PreDisp_Add, DISP_REQUIRED },
- { "*-ar()", PreDisp_Sub, DISP_REQUIRED },
- { "*++ar()", PreDisp_Add_Mod, DISP_REQUIRED },
- { "*--ar()", PreDisp_Sub_Mod, DISP_REQUIRED },
- { "*ar++()", PostDisp_Add_Mod, DISP_REQUIRED },
- { "*ar--()", PostDisp_Sub_Mod, DISP_REQUIRED },
- { "*ar++()%", PostDisp_Add_Circ, DISP_REQUIRED },
- { "*ar--()%", PostDisp_Sub_Circ, DISP_REQUIRED },
- { "*+ar(ir0)", PreIR0_Add, NO_DISP },
- { "*-ar(ir0)", PreIR0_Sub, NO_DISP },
- { "*++ar(ir0)", PreIR0_Add_Mod, NO_DISP },
- { "*--ar(ir0)", PreIR0_Sub_Mod, NO_DISP },
- { "*ar++(ir0)", PostIR0_Add_Mod, NO_DISP },
- { "*ar--(ir0)", PostIR0_Sub_Mod, NO_DISP },
- { "*ar++(ir0)%",PostIR0_Add_Circ, NO_DISP },
- { "*ar--(ir0)%",PostIR0_Sub_Circ, NO_DISP },
- { "*+ar(ir1)", PreIR1_Add, NO_DISP },
- { "*-ar(ir1)", PreIR1_Sub, NO_DISP },
- { "*++ar(ir1)", PreIR1_Add_Mod, NO_DISP },
- { "*--ar(ir1)", PreIR1_Sub_Mod, NO_DISP },
- { "*ar++(ir1)", PostIR1_Add_Mod, NO_DISP },
- { "*ar--(ir1)", PostIR1_Sub_Mod, NO_DISP },
- { "*ar++(ir1)%",PostIR1_Add_Circ, NO_DISP },
- { "*ar--(ir1)%",PostIR1_Sub_Circ, NO_DISP },
- { "*ar", IndirectOnly, NO_DISP },
- { "*ar++(ir0)b",PostIR0_Add_BitRev, NO_DISP },
- { "", 0,0 }
-};
-
-static const ind_addr_type *const tic30_indaddrtab_end
- = tic30_indaddr_tab + sizeof(tic30_indaddr_tab)/sizeof(tic30_indaddr_tab[0]);
-
-/* Possible operand types */
-/* Register types */
-#define Rn 0x0001
-#define ARn 0x0002
-#define DPReg 0x0004
-#define OtherReg 0x0008
-/* Addressing mode types */
-#define Direct 0x0010
-#define Indirect 0x0020
-#define Imm16 0x0040
-#define Disp 0x0080
-#define Imm24 0x0100
-#define Abs24 0x0200
-/* 3 operand addressing mode types */
-#define op3T1 0x0400
-#define op3T2 0x0800
-/* Interrupt vector */
-#define IVector 0x1000
-/* Not required */
-#define NotReq 0x2000
-
-#define GAddr1 Rn | Direct | Indirect | Imm16
-#define GAddr2 GAddr1 | AllReg
-#define TAddr1 op3T1 | Rn | Indirect
-#define TAddr2 op3T2 | Rn | Indirect
-#define Reg Rn | ARn
-#define AllReg Reg | DPReg | OtherReg
-
-typedef struct _template
-{
- char *name;
- unsigned int operands; /* how many operands */
- unsigned int base_opcode; /* base_opcode is the fundamental opcode byte */
- /* the bits in opcode_modifier are used to generate the final opcode from
- the base_opcode. These bits also are used to detect alternate forms of
- the same instruction */
- unsigned int opcode_modifier;
-
- /* opcode_modifier bits: */
-#define AddressMode 0x00600000
-#define PCRel 0x02000000
-#define StackOp 0x001F0000
-#define Rotate StackOp
-
- /* operand_types[i] describes the type of operand i. This is made
- by OR'ing together all of the possible type masks. (e.g.
- 'operand_types[i] = Reg|Imm' specifies that operand i can be
- either a register or an immediate operand */
- unsigned int operand_types[3];
- /* This defines the number type of an immediate argument to an instruction. */
- int imm_arg_type;
-#define Imm_None 0
-#define Imm_Float 1
-#define Imm_SInt 2
-#define Imm_UInt 3
-}
-insn_template;
-
-static const insn_template tic30_optab[] = {
- { "absf" ,2,0x00000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "absi" ,2,0x00800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "addc" ,2,0x01000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "addc3" ,3,0x20000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "addf" ,2,0x01800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "addf3" ,3,0x20800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
- { "addi" ,2,0x02000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "addi3" ,3,0x21000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "and" ,2,0x02800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "and3" ,3,0x21800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "andn" ,2,0x03000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "andn3" ,3,0x22000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "ash" ,2,0x03800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ash3" ,3,0x22800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "b" ,1,0x68000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bu" ,1,0x68000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blo" ,1,0x68010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bls" ,1,0x68020000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bhi" ,1,0x68030000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bhs" ,1,0x68040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "beq" ,1,0x68050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bne" ,1,0x68060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blt" ,1,0x68070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "ble" ,1,0x68080000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bgt" ,1,0x68090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bge" ,1,0x680A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bz" ,1,0x68050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnz" ,1,0x68060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bp" ,1,0x68090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bn" ,1,0x68070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnn" ,1,0x680A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnv" ,1,0x680C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bv" ,1,0x680D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnuf" ,1,0x680E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "buf" ,1,0x680F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnc" ,1,0x68040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bc" ,1,0x68010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnlv" ,1,0x68100000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blv" ,1,0x68110000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnluf" ,1,0x68120000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bluf" ,1,0x68130000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bzuf" ,1,0x68140000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bd" ,1,0x68200000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bud" ,1,0x68200000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blod" ,1,0x68210000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blsd" ,1,0x68220000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bhid" ,1,0x68230000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bhsd" ,1,0x68240000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "beqd" ,1,0x68250000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bned" ,1,0x68260000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bltd" ,1,0x68270000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bled" ,1,0x68280000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bgtd" ,1,0x68290000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bged" ,1,0x682A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bzd" ,1,0x68250000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnzd" ,1,0x68260000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bpd" ,1,0x68290000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnd" ,1,0x68270000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnnd" ,1,0x682A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnvd" ,1,0x682C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bvd" ,1,0x682D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnufd" ,1,0x682E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bufd" ,1,0x682F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bncd" ,1,0x68240000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bcd" ,1,0x68210000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnlvd" ,1,0x68300000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blvd" ,1,0x68310000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bnlufd" ,1,0x68320000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "blufd" ,1,0x68330000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "bzufd" ,1,0x68340000,PCRel, { AllReg|Disp, 0, 0 }, Imm_None },
- { "br" ,1,0x60000000,0, { Imm24, 0, 0 }, Imm_UInt },
- { "brd" ,1,0x61000000,0, { Imm24, 0, 0 }, Imm_UInt },
- { "call" ,1,0x62000000,0, { Imm24, 0, 0 }, Imm_UInt },
- { "callu" ,1,0x70000000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calllo" ,1,0x70010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callls" ,1,0x70020000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callhi" ,1,0x70030000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callhs" ,1,0x70040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calleq" ,1,0x70050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callne" ,1,0x70060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calllt" ,1,0x70070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callle" ,1,0x70080000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callgt" ,1,0x70090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callge" ,1,0x700A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callz" ,1,0x70050000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnz" ,1,0x70060000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callp" ,1,0x70090000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calln" ,1,0x70070000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnn" ,1,0x700A0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnv" ,1,0x700C0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callv" ,1,0x700D0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnuf",1,0x700E0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calluf" ,1,0x700F0000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnc" ,1,0x70040000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callc" ,1,0x70010000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnlv",1,0x70100000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "calllv" ,1,0x70110000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callnluf",1,0x70120000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callluf",1,0x70130000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "callzuf",1,0x70140000,PCRel, { AllReg|Disp, 0, 0 }, Imm_UInt },
- { "cmpf" ,2,0x04000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "cmpf3" ,2,0x23000000,AddressMode, { TAddr1, TAddr2, 0 }, Imm_None },
- { "cmpi" ,2,0x04800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "cmpi3" ,2,0x23800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None },
- { "db" ,2,0x6C000000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbu" ,2,0x6C000000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblo" ,2,0x6C010000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbls" ,2,0x6C020000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbhi" ,2,0x6C030000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbhs" ,2,0x6C040000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbeq" ,2,0x6C050000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbne" ,2,0x6C060000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblt" ,2,0x6C070000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dble" ,2,0x6C080000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbgt" ,2,0x6C090000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbge" ,2,0x6C0A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbz" ,2,0x6C050000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnz" ,2,0x6C060000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbp" ,2,0x6C090000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbn" ,2,0x6C070000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnn" ,2,0x6C0A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnv" ,2,0x6C0C0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbv" ,2,0x6C0D0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnuf" ,2,0x6C0E0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbuf" ,2,0x6C0F0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnc" ,2,0x6C040000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbc" ,2,0x6C010000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnlv" ,2,0x6C100000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblv" ,2,0x6C110000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnluf" ,2,0x6C120000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbluf" ,2,0x6C130000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbzuf" ,2,0x6C140000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbd" ,2,0x6C200000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbud" ,2,0x6C200000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblod" ,2,0x6C210000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblsd" ,2,0x6C220000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbhid" ,2,0x6C230000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbhsd" ,2,0x6C240000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbeqd" ,2,0x6C250000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbned" ,2,0x6C260000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbltd" ,2,0x6C270000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbled" ,2,0x6C280000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbgtd" ,2,0x6C290000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbged" ,2,0x6C2A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbzd" ,2,0x6C250000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnzd" ,2,0x6C260000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbpd" ,2,0x6C290000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnd" ,2,0x6C270000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnnd" ,2,0x6C2A0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnvd" ,2,0x6C2C0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbvd" ,2,0x6C2D0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnufd" ,2,0x6C2E0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbufd" ,2,0x6C2F0000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbncd" ,2,0x6C240000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbcd" ,2,0x6C210000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnlvd" ,2,0x6C300000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblvd" ,2,0x6C310000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbnlufd",2,0x6C320000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dblufd" ,2,0x6C330000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "dbzufd" ,2,0x6C340000,PCRel, { ARn, AllReg|Disp, 0 }, Imm_None },
- { "fix" ,2,0x05000000,AddressMode, { GAddr1, AllReg, 0 }, Imm_Float },
- { "float" ,2,0x05800000,AddressMode, { GAddr2, Rn, 0 }, Imm_SInt },
- { "iack" ,1,0x1B000000,AddressMode, { Direct|Indirect, 0, 0 }, Imm_None },
- { "idle" ,0,0x06000000,0, { 0, 0, 0 }, Imm_None },
- { "idle2" ,0,0x06000001,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */
- { "lde" ,2,0x06800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldf" ,2,0x07000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfu" ,2,0x40000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldflo" ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfls" ,2,0x41000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfhi" ,2,0x41800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfhs" ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfeq" ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfne" ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldflt" ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfle" ,2,0x44000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfgt" ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfge" ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfz" ,2,0x42800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnz" ,2,0x43000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfp" ,2,0x44800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfn" ,2,0x43800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnn" ,2,0x45000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnv" ,2,0x46000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfv" ,2,0x46800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnuf" ,2,0x47000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfuf" ,2,0x47800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnc" ,2,0x42000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfc" ,2,0x40800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnlv" ,2,0x48000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldflv" ,2,0x48800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfnluf",2,0x49000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfluf" ,2,0x49800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfzuf" ,2,0x4A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldfi" ,2,0x07800000,AddressMode, { Direct|Indirect, Rn, 0 }, Imm_None },
- { "ldi" ,2,0x08000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldiu" ,2,0x50000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldilo" ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldils" ,2,0x51000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldihi" ,2,0x51800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldihs" ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldieq" ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldine" ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldilt" ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldile" ,2,0x54000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldigt" ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldige" ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldiz" ,2,0x52800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinz" ,2,0x53000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldip" ,2,0x54800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldin" ,2,0x53800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinn" ,2,0x55000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinv" ,2,0x56000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldiv" ,2,0x56800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinuf" ,2,0x57000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldiuf" ,2,0x57800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinc" ,2,0x52000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldic" ,2,0x50800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinlv" ,2,0x58000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldilv" ,2,0x58800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldinluf",2,0x59000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldiluf" ,2,0x59800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldizuf" ,2,0x5A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "ldii" ,2,0x08800000,AddressMode, { Direct|Indirect, AllReg, 0 }, Imm_None },
- { "ldm" ,2,0x09000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "ldp" ,2,0x08700000,0, { Abs24|Direct, DPReg|NotReq, 0 }, Imm_UInt },
- { "lopower",0,0x10800001,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */
- { "lsh" ,2,0x09800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "lsh3" ,3,0x24000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "maxspeed",0,0x10800000,0, { 0, 0, 0 }, Imm_None }, /* LC31 Only */
- { "mpyf" ,2,0x0A000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "mpyf3" ,3,0x24800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
- { "mpyi" ,2,0x0A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "mpyi3" ,3,0x25000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "negb" ,2,0x0B000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "negf" ,2,0x0B800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "negi" ,2,0x0C000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "nop" ,1,0x0C800000,AddressMode, { AllReg|Indirect|NotReq, 0, 0 }, Imm_None },
- { "norm" ,2,0x0D000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float }, /*Check another source*/
- { "not" ,2,0x0D800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "or" ,2,0x10000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "or3" ,3,0x25800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "pop" ,1,0x0E200000,StackOp, { AllReg, 0, 0 }, Imm_None },
- { "popf" ,1,0x0EA00000,StackOp, { Rn, 0, 0 }, Imm_None },
- { "push" ,1,0x0F200000,StackOp, { AllReg, 0, 0 }, Imm_None },
- { "pushf" ,1,0x0FA00000,StackOp, { Rn, 0, 0 }, Imm_None },
- { "reti" ,0,0x78000000,0, { 0, 0, 0 }, Imm_None },
- { "retiu" ,0,0x78000000,0, { 0, 0, 0 }, Imm_None },
- { "retilo" ,0,0x78010000,0, { 0, 0, 0 }, Imm_None },
- { "retils" ,0,0x78020000,0, { 0, 0, 0 }, Imm_None },
- { "retihi" ,0,0x78030000,0, { 0, 0, 0 }, Imm_None },
- { "retihs" ,0,0x78040000,0, { 0, 0, 0 }, Imm_None },
- { "retieq" ,0,0x78050000,0, { 0, 0, 0 }, Imm_None },
- { "retine" ,0,0x78060000,0, { 0, 0, 0 }, Imm_None },
- { "retilt" ,0,0x78070000,0, { 0, 0, 0 }, Imm_None },
- { "retile" ,0,0x78080000,0, { 0, 0, 0 }, Imm_None },
- { "retigt" ,0,0x78090000,0, { 0, 0, 0 }, Imm_None },
- { "retige" ,0,0x780A0000,0, { 0, 0, 0 }, Imm_None },
- { "retiz" ,0,0x78050000,0, { 0, 0, 0 }, Imm_None },
- { "retinz" ,0,0x78060000,0, { 0, 0, 0 }, Imm_None },
- { "retip" ,0,0x78090000,0, { 0, 0, 0 }, Imm_None },
- { "retin" ,0,0x78070000,0, { 0, 0, 0 }, Imm_None },
- { "retinn" ,0,0x780A0000,0, { 0, 0, 0 }, Imm_None },
- { "retinv" ,0,0x780C0000,0, { 0, 0, 0 }, Imm_None },
- { "retiv" ,0,0x780D0000,0, { 0, 0, 0 }, Imm_None },
- { "retinuf",0,0x780E0000,0, { 0, 0, 0 }, Imm_None },
- { "retiuf" ,0,0x780F0000,0, { 0, 0, 0 }, Imm_None },
- { "retinc" ,0,0x78040000,0, { 0, 0, 0 }, Imm_None },
- { "retic" ,0,0x78010000,0, { 0, 0, 0 }, Imm_None },
- { "retinlv",0,0x78100000,0, { 0, 0, 0 }, Imm_None },
- { "retilv" ,0,0x78110000,0, { 0, 0, 0 }, Imm_None },
- { "retinluf",0,0x78120000,0, { 0, 0, 0 }, Imm_None },
- { "retiluf",0,0x78130000,0, { 0, 0, 0 }, Imm_None },
- { "retizuf",0,0x78140000,0, { 0, 0, 0 }, Imm_None },
- { "rets" ,0,0x78800000,0, { 0, 0, 0 }, Imm_None },
- { "retsu" ,0,0x78800000,0, { 0, 0, 0 }, Imm_None },
- { "retslo" ,0,0x78810000,0, { 0, 0, 0 }, Imm_None },
- { "retsls" ,0,0x78820000,0, { 0, 0, 0 }, Imm_None },
- { "retshi" ,0,0x78830000,0, { 0, 0, 0 }, Imm_None },
- { "retshs" ,0,0x78840000,0, { 0, 0, 0 }, Imm_None },
- { "retseq" ,0,0x78850000,0, { 0, 0, 0 }, Imm_None },
- { "retsne" ,0,0x78860000,0, { 0, 0, 0 }, Imm_None },
- { "retslt" ,0,0x78870000,0, { 0, 0, 0 }, Imm_None },
- { "retsle" ,0,0x78880000,0, { 0, 0, 0 }, Imm_None },
- { "retsgt" ,0,0x78890000,0, { 0, 0, 0 }, Imm_None },
- { "retsge" ,0,0x788A0000,0, { 0, 0, 0 }, Imm_None },
- { "retsz" ,0,0x78850000,0, { 0, 0, 0 }, Imm_None },
- { "retsnz" ,0,0x78860000,0, { 0, 0, 0 }, Imm_None },
- { "retsp" ,0,0x78890000,0, { 0, 0, 0 }, Imm_None },
- { "retsn" ,0,0x78870000,0, { 0, 0, 0 }, Imm_None },
- { "retsnn" ,0,0x788A0000,0, { 0, 0, 0 }, Imm_None },
- { "retsnv" ,0,0x788C0000,0, { 0, 0, 0 }, Imm_None },
- { "retsv" ,0,0x788D0000,0, { 0, 0, 0 }, Imm_None },
- { "retsnuf",0,0x788E0000,0, { 0, 0, 0 }, Imm_None },
- { "retsuf" ,0,0x788F0000,0, { 0, 0, 0 }, Imm_None },
- { "retsnc" ,0,0x78840000,0, { 0, 0, 0 }, Imm_None },
- { "retsc" ,0,0x78810000,0, { 0, 0, 0 }, Imm_None },
- { "retsnlv",0,0x78900000,0, { 0, 0, 0 }, Imm_None },
- { "retslv" ,0,0x78910000,0, { 0, 0, 0 }, Imm_None },
- { "retsnluf",0,0x78920000,0, { 0, 0, 0 }, Imm_None },
- { "retsluf",0,0x78930000,0, { 0, 0, 0 }, Imm_None },
- { "retszuf",0,0x78940000,0, { 0, 0, 0 }, Imm_None },
- { "rnd" ,2,0x11000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "rol" ,1,0x11E00001,Rotate, { AllReg, 0, 0 }, Imm_None },
- { "rolc" ,1,0x12600001,Rotate, { AllReg, 0, 0 }, Imm_None },
- { "ror" ,1,0x12E0FFFF,Rotate, { AllReg, 0, 0 }, Imm_None },
- { "rorc" ,1,0x1360FFFF,Rotate, { AllReg, 0, 0 }, Imm_None },
- { "rptb" ,1,0x64000000,0, { Imm24, 0, 0 }, Imm_UInt },
- { "rpts" ,1,0x139B0000,AddressMode, { GAddr2, 0, 0 }, Imm_UInt },
- { "sigi" ,0,0x16000000,0, { 0, 0, 0 }, Imm_None },
- { "stf" ,2,0x14000000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float },
- { "stfi" ,2,0x14800000,AddressMode, { Rn, Direct|Indirect, 0 }, Imm_Float },
- { "sti" ,2,0x15000000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt },
- { "stii" ,2,0x15800000,AddressMode, { AllReg, Direct|Indirect, 0 }, Imm_SInt },
- { "subb" ,2,0x16800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "subb3" ,3,0x26000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "subc" ,2,0x17000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "subf" ,2,0x17800000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "subf3" ,3,0x26800000,AddressMode, { TAddr1, TAddr2, Rn }, Imm_None },
- { "subi" ,2,0x18000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "subi3" ,3,0x27000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "subrb" ,2,0x18800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "subrf" ,2,0x19000000,AddressMode, { GAddr1, Rn, 0 }, Imm_Float },
- { "subri" ,2,0x19800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_SInt },
- { "swi" ,0,0x66000000,0, { 0, 0, 0 }, Imm_None },
- { "trap" ,1,0x74800020,0, { IVector, 0, 0 }, Imm_None },
- { "trapu" ,1,0x74800020,0, { IVector, 0, 0 }, Imm_None },
- { "traplo" ,1,0x74810020,0, { IVector, 0, 0 }, Imm_None },
- { "trapls" ,1,0x74820020,0, { IVector, 0, 0 }, Imm_None },
- { "traphi" ,1,0x74830020,0, { IVector, 0, 0 }, Imm_None },
- { "traphs" ,1,0x74840020,0, { IVector, 0, 0 }, Imm_None },
- { "trapeq" ,1,0x74850020,0, { IVector, 0, 0 }, Imm_None },
- { "trapne" ,1,0x74860020,0, { IVector, 0, 0 }, Imm_None },
- { "traplt" ,1,0x74870020,0, { IVector, 0, 0 }, Imm_None },
- { "traple" ,1,0x74880020,0, { IVector, 0, 0 }, Imm_None },
- { "trapgt" ,1,0x74890020,0, { IVector, 0, 0 }, Imm_None },
- { "trapge" ,1,0x748A0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapz" ,1,0x74850020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnz" ,1,0x74860020,0, { IVector, 0, 0 }, Imm_None },
- { "trapp" ,1,0x74890020,0, { IVector, 0, 0 }, Imm_None },
- { "trapn" ,1,0x74870020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnn" ,1,0x748A0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnv" ,1,0x748C0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapv" ,1,0x748D0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnuf",1,0x748E0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapuf" ,1,0x748F0020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnc" ,1,0x74840020,0, { IVector, 0, 0 }, Imm_None },
- { "trapc" ,1,0x74810020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnlv",1,0x74900020,0, { IVector, 0, 0 }, Imm_None },
- { "traplv" ,1,0x74910020,0, { IVector, 0, 0 }, Imm_None },
- { "trapnluf",1,0x74920020,0, { IVector, 0, 0 }, Imm_None },
- { "trapluf",1,0x74930020,0, { IVector, 0, 0 }, Imm_None },
- { "trapzuf",1,0x74940020,0, { IVector, 0, 0 }, Imm_None },
- { "tstb" ,2,0x1A000000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "tstb3" ,2,0x27800000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, 0 }, Imm_None },
- { "xor" ,2,0x1A800000,AddressMode, { GAddr2, AllReg, 0 }, Imm_UInt },
- { "xor3" ,3,0x28000000,AddressMode, { TAddr1|AllReg, TAddr2|AllReg, AllReg }, Imm_None },
- { "" ,0,0x00000000,0, { 0, 0, 0 }, 0 }
-};
-
-static const insn_template *const tic30_optab_end =
- tic30_optab + sizeof(tic30_optab)/sizeof(tic30_optab[0]);
-
-typedef struct {
- char *name;
- unsigned int operands_1;
- unsigned int operands_2;
- unsigned int base_opcode;
- unsigned int operand_types[2][3];
- /* Which operand fits into which part of the final opcode word. */
- int oporder;
-} partemplate;
-
-/* oporder defines - not very descriptive. */
-#define OO_4op1 0
-#define OO_4op2 1
-#define OO_4op3 2
-#define OO_5op1 3
-#define OO_5op2 4
-#define OO_PField 5
-
-static const partemplate tic30_paroptab[] = {
- { "q_absf_stf", 2,2,0xC8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_absi_sti", 2,2,0xCA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_addf3_stf", 3,2,0xCC000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_addi3_sti", 3,2,0xCE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_and3_sti", 3,2,0xD0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_ash3_sti", 3,2,0xD2000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
- OO_5op2 },
- { "q_fix_sti", 2,2,0xD4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_float_stf", 2,2,0xD6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_ldf_ldf", 2,2,0xC4000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } },
- OO_4op2 },
- { "q_ldf_stf", 2,2,0xD8000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_ldi_ldi", 2,2,0xC6000000, { { Indirect, Rn, 0 }, { Indirect, Rn, 0 } },
- OO_4op2 },
- { "q_ldi_sti", 2,2,0xDA000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_lsh3_sti", 3,2,0xDC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
- OO_5op2 },
- { "q_mpyf3_addf3",3,3,0x80000000, { { Rn | Indirect, Rn | Indirect, Rn },
- { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
- { "q_mpyf3_stf", 3,2,0xDE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_mpyf3_subf3",3,3,0x84000000, { { Rn | Indirect, Rn | Indirect, Rn },
- { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
- { "q_mpyi3_addi3",3,3,0x88000000, { { Rn | Indirect, Rn | Indirect, Rn },
- { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
- { "q_mpyi3_sti", 3,2,0xE0000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_mpyi3_subi3",3,3,0x8C000000, { { Rn | Indirect, Rn | Indirect, Rn },
- { Rn | Indirect, Rn | Indirect, Rn } }, OO_PField },
- { "q_negf_stf", 2,2,0xE2000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_negi_sti", 2,2,0xE4000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_not_sti", 2,2,0xE6000000, { { Indirect, Rn, 0 }, { Rn, Indirect, 0 } },
- OO_4op1 },
- { "q_or3_sti", 3,2,0xE8000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "q_stf_stf", 2,2,0xC0000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } },
- OO_4op3 },
- { "q_sti_sti", 2,2,0xC2000000, { { Rn, Indirect, 0 }, { Rn, Indirect, 0 } },
- OO_4op3 },
- { "q_subf3_stf", 3,2,0xEA000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
- OO_5op2 },
- { "q_subi3_sti", 3,2,0xEC000000, { { Rn, Indirect, Rn }, { Rn, Indirect, 0 } },
- OO_5op2 },
- { "q_xor3_sti", 3,2,0xEE000000, { { Indirect, Rn, Rn }, { Rn, Indirect, 0 } },
- OO_5op1 },
- { "", 0,0,0x00000000, { { 0, 0, 0 }, { 0, 0, 0 } }, 0 }
-};
-
-static const partemplate *const tic30_paroptab_end =
- tic30_paroptab + sizeof(tic30_paroptab)/sizeof(tic30_paroptab[0]);
-
-#endif
diff --git a/include/opcode/tic4x.h b/include/opcode/tic4x.h
deleted file mode 100644
index 6f16fcb40..000000000
--- a/include/opcode/tic4x.h
+++ /dev/null
@@ -1,1079 +0,0 @@
-/* Table of opcodes for the Texas Instruments TMS320C[34]X family.
-
- Copyright (C) 2002, 2003, 2010 Free Software Foundation.
-
- Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define IS_CPU_TIC3X(v) ((v) == 30 || (v) == 31 || (v) == 32 || (v) == 33)
-#define IS_CPU_TIC4X(v) ((v) == 0 || (v) == 40 || (v) == 44)
-
-/* Define some bitfield extraction/insertion macros. */
-#define EXTR(inst, m, l) ((inst) << (31 - (m)) >> (31 - ((m) - (l))))
-#define EXTRU(inst, m, l) EXTR ((unsigned long)(inst), (m), (l))
-#define EXTRS(inst, m, l) EXTR ((long)(inst), (m), (l))
-#define INSERTU(inst, val, m, l) (inst |= ((val) << (l)))
-#define INSERTS(inst, val, m, l) INSERTU (inst, ((val) & ((1 << ((m) - (l) + 1)) - 1)), m, l)
-
-/* Define register numbers. */
-typedef enum
- {
- REG_R0, REG_R1, REG_R2, REG_R3,
- REG_R4, REG_R5, REG_R6, REG_R7,
- REG_AR0, REG_AR1, REG_AR2, REG_AR3,
- REG_AR4, REG_AR5, REG_AR6, REG_AR7,
- REG_DP, REG_IR0, REG_IR1, REG_BK,
- REG_SP, REG_ST, REG_DIE, REG_IIE,
- REG_IIF, REG_RS, REG_RE, REG_RC,
- REG_R8, REG_R9, REG_R10, REG_R11,
- REG_IVTP, REG_TVTP
- }
-c4x_reg_t;
-
-/* Note that the actual register numbers for IVTP is 0 and TVTP is 1. */
-
-#define REG_IE REG_DIE /* C3x only */
-#define REG_IF REG_IIE /* C3x only */
-#define REG_IOF REG_IIF /* C3x only */
-
-#define TIC3X_REG_MAX REG_RC
-#define TIC4X_REG_MAX REG_TVTP
-
-/* Register table size including C4x expansion regs. */
-#define REG_TABLE_SIZE (TIC4X_REG_MAX + 1)
-
-struct tic4x_register
-{
- char * name;
- unsigned long regno;
-};
-
-typedef struct tic4x_register tic4x_register_t;
-
-/* We could store register synonyms here. */
-static const tic4x_register_t tic3x_registers[] =
-{
- {"f0", REG_R0},
- {"r0", REG_R0},
- {"f1", REG_R1},
- {"r1", REG_R1},
- {"f2", REG_R2},
- {"r2", REG_R2},
- {"f3", REG_R3},
- {"r3", REG_R3},
- {"f4", REG_R4},
- {"r4", REG_R4},
- {"f5", REG_R5},
- {"r5", REG_R5},
- {"f6", REG_R6},
- {"r6", REG_R6},
- {"f7", REG_R7},
- {"r7", REG_R7},
- {"ar0", REG_AR0},
- {"ar1", REG_AR1},
- {"ar2", REG_AR2},
- {"ar3", REG_AR3},
- {"ar4", REG_AR4},
- {"ar5", REG_AR5},
- {"ar6", REG_AR6},
- {"ar7", REG_AR7},
- {"dp", REG_DP},
- {"ir0", REG_IR0},
- {"ir1", REG_IR1},
- {"bk", REG_BK},
- {"sp", REG_SP},
- {"st", REG_ST},
- {"ie", REG_IE},
- {"if", REG_IF},
- {"iof", REG_IOF},
- {"rs", REG_RS},
- {"re", REG_RE},
- {"rc", REG_RC},
- {"", 0}
-};
-
-const unsigned int tic3x_num_registers = (((sizeof tic3x_registers) / (sizeof tic3x_registers[0])) - 1);
-
-/* Define C4x registers in addition to C3x registers. */
-static const tic4x_register_t tic4x_registers[] =
-{
- {"die", REG_DIE}, /* Clobbers C3x REG_IE */
- {"iie", REG_IIE}, /* Clobbers C3x REG_IF */
- {"iif", REG_IIF}, /* Clobbers C3x REG_IOF */
- {"f8", REG_R8},
- {"r8", REG_R8},
- {"f9", REG_R9},
- {"r9", REG_R9},
- {"f10", REG_R10},
- {"r10", REG_R10},
- {"f11", REG_R11},
- {"r11", REG_R11},
- {"ivtp", REG_IVTP},
- {"tvtp", REG_TVTP},
- {"", 0}
-};
-
-const unsigned int tic4x_num_registers = (((sizeof tic4x_registers) / (sizeof tic4x_registers[0])) - 1);
-
-struct tic4x_cond
-{
- char * name;
- unsigned long cond;
-};
-
-typedef struct tic4x_cond tic4x_cond_t;
-
-/* Define conditional branch/load suffixes. Put desired form for
- disassembler last. */
-static const tic4x_cond_t tic4x_conds[] =
-{
- { "u", 0x00 },
- { "c", 0x01 }, { "lo", 0x01 },
- { "ls", 0x02 },
- { "hi", 0x03 },
- { "nc", 0x04 }, { "hs", 0x04 },
- { "z", 0x05 }, { "eq", 0x05 },
- { "nz", 0x06 }, { "ne", 0x06 },
- { "n", 0x07 }, { "l", 0x07 }, { "lt", 0x07 },
- { "le", 0x08 },
- { "p", 0x09 }, { "gt", 0x09 },
- { "nn", 0x0a }, { "ge", 0x0a },
- { "nv", 0x0c },
- { "v", 0x0d },
- { "nuf", 0x0e },
- { "uf", 0x0f },
- { "nlv", 0x10 },
- { "lv", 0x11 },
- { "nluf", 0x12 },
- { "luf", 0x13 },
- { "zuf", 0x14 },
- /* Dummy entry, not included in num_conds. This
- lets code examine entry i+1 without checking
- if we've run off the end of the table. */
- { "", 0x0}
-};
-
-const unsigned int tic4x_num_conds = (((sizeof tic4x_conds) / (sizeof tic4x_conds[0])) - 1);
-
-struct tic4x_indirect
-{
- char * name;
- unsigned long modn;
-};
-
-typedef struct tic4x_indirect tic4x_indirect_t;
-
-/* Define indirect addressing modes where:
- d displacement (signed)
- y ir0
- z ir1 */
-
-static const tic4x_indirect_t tic4x_indirects[] =
-{
- { "*+a(d)", 0x00 },
- { "*-a(d)", 0x01 },
- { "*++a(d)", 0x02 },
- { "*--a(d)", 0x03 },
- { "*a++(d)", 0x04 },
- { "*a--(d)", 0x05 },
- { "*a++(d)%", 0x06 },
- { "*a--(d)%", 0x07 },
- { "*+a(y)", 0x08 },
- { "*-a(y)", 0x09 },
- { "*++a(y)", 0x0a },
- { "*--a(y)", 0x0b },
- { "*a++(y)", 0x0c },
- { "*a--(y)", 0x0d },
- { "*a++(y)%", 0x0e },
- { "*a--(y)%", 0x0f },
- { "*+a(z)", 0x10 },
- { "*-a(z)", 0x11 },
- { "*++a(z)", 0x12 },
- { "*--a(z)", 0x13 },
- { "*a++(z)", 0x14 },
- { "*a--(z)", 0x15 },
- { "*a++(z)%", 0x16 },
- { "*a--(z)%", 0x17 },
- { "*a", 0x18 },
- { "*a++(y)b", 0x19 },
- /* Dummy entry, not included in num_indirects. This
- lets code examine entry i+1 without checking
- if we've run off the end of the table. */
- { "", 0x0}
-};
-
-#define TIC3X_MODN_MAX 0x19
-
-const unsigned int tic4x_num_indirects = (((sizeof tic4x_indirects) / (sizeof tic4x_indirects[0])) - 1);
-
-/* Instruction template. */
-struct tic4x_inst
-{
- char * name;
- unsigned long opcode;
- unsigned long opmask;
- char * args;
- unsigned long oplevel;
-};
-
-typedef struct tic4x_inst tic4x_inst_t;
-
-/* Opcode infix
- B condition 16--20 U,C,Z,LO,HI, etc.
- C condition 23--27 U,C,Z,LO,HI, etc.
-
- Arguments
- , required arg follows
- ; optional arg follows
-
- Argument types bits [classes] - example
- -----------------------------------------------------------
- * indirect (all) 0--15 [A,AB,AU,AF,A2,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - *+AR0(5), *++AR0(IR0)
- # direct (for LDP) 0--15 [Z] - @start, start
- @ direct 0--15 [A,AB,AU,AF,A3,A6,A7,AY,B,BA,BB,BI,B6,B7] - @start, start
- A address register 22--24 [D] - AR0, AR7
- B unsigned integer 0--23 [I,I2] - @start, start (absolute on C3x, relative on C4x)
- C indirect (disp - C4x) 0--7 [S,SC,S2,T,TC,T2,T2C] - *+AR0(5)
- E register (all) 0--7 [T,TC,T2,T2C] - R0, R7, R11, AR0, DP
- e register (0-11) 0--7 [S,SC,S2] - R0, R7, R11
- F short float immediate 0--15 [AF,B,BA,BB] - 3.5, 0e-3.5e-1
- G register (all) 8--15 [T,TC,T2,T2C] - R0, R7, R11, AR0, DP
- g register (0-11) 0--7 [S,SC,S2] - R0, R7, R11
- H register (0-7) 18--16 [LS,M,P,Q] - R0, R7
- I indirect (no disp) 0--7 [S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0)
- i indirect (enhanced) 0--7 [LL,LS,M,P,Q,QC] - *+AR0(1), R5
- J indirect (no disp) 8--15 [LL,LS,P,Q,QC,S,SC,S2,T,TC,T2,T2C] - *+AR0(1), *+AR0(IR0)
- j indirect (enhanced) 8--15 [M] - *+AR0(1), R5
- K register 19--21 [LL,M,Q,QC] - R0, R7
- L register 22--24 [LL,LS,P,Q,QC] - R0, R7
- M register (R2,R3) 22--22 [M] R2, R3
- N register (R0,R1) 23--23 [M] R0, R1
- O indirect(disp - C4x) 8--15 [S,SC,S2,T,TC,T2] - *+AR0(5)
- P displacement (PC Rel) 0--15 [D,J,JS] - @start, start
- Q register (all) 0--15 [A,AB,AU,A2,A3,AY,BA,BI,D,I2,J,JS] - R0, AR0, DP, SP
- q register (0-11) 0--15 [AF,B,BB] - R0, R7, R11
- R register (all) 16--20 [A,AB,AU,AF,A6,A7,R,T,TC] - R0, AR0, DP, SP
- r register (0-11) 16--20 [B,BA,BB,BI,B6,B7,RF,S,SC] - R0, R1, R11
- S short int immediate 0--15 [A,AB,AY,BI] - -5, 5
- T integer (C4x) 16--20 [Z] - -5, 12
- U unsigned integer 0--15 [AU,A3] - 0, 65535
- V vector (C4x: 0--8) 0--4 [Z] - 25, 7
- W short int (C4x) 0--7 [T,TC,T2,T2C] - -3, 5
- X expansion reg (C4x) 0--4 [Z] - IVTP, TVTP
- Y address reg (C4x) 16--20 [Z] - AR0, DP, SP, IR0
- Z expansion reg (C4x) 16--20 [Z] - IVTP, TVTP
-*/
-
-#define TIC4X_OPERANDS_MAX 7 /* Max number of operands for an inst. */
-#define TIC4X_NAME_MAX 16 /* Max number of chars in parallel name. */
-
-/* Define the instruction level */
-#define OP_C3X 0x1 /* C30 support - supported by all */
-#define OP_C4X 0x2 /* C40 support - C40, C44 */
-#define OP_ENH 0x4 /* Class LL,LS,M,P,Q,QC enhancements. Argument type
- I and J is enhanced in these classes - C31>=6.0,
- C32>=2.0, C33 */
-#define OP_LPWR 0x8 /* Low power support (LOPOWER, MAXSPEED) - C30>=7.0,
- LC31, C31>=5.0, C32 */
-#define OP_IDLE2 0x10 /* Idle2 support (IDLE2) - C30>=7.0, LC31, C31>=5.0,
- C32, C33, C40>=5.0, C44 */
-
-/* The following class definition is a classification scheme for
- putting instructions with similar type of arguments together. It
- simplifies the op-code definitions significantly, as we then only
- need to use the class macroes for 95% of the DSP's opcodes.
-*/
-
-/* A: General 2-operand integer operations
- Syntax: <i> src, dst
- src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
- dst = Register (R)
- Instr: 15/8 - ABSI, ADDC, ADDI, ASH, CMPI, LDI, LSH, MPYI, NEGB, NEGI,
- SUBB, SUBC, SUBI, SUBRB, SUBRI, C4x: LBn, LHn, LWLn, LWRn,
- MBn, MHn, MPYSHI, MPYUHI
-*/
-#define A_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
- { name, opcode|0x00600000, 0xffe00000, "S,R", level }
-
-/* AB: General 2-operand integer operation with condition
- Syntax: <i>c src, dst
- c = Condition
- src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
- dst = Register (R)
- Instr: 1/0 - LDIc
-*/
-#define AB_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x40000000, 0xf0600000, "Q;R", level }, \
- { name, opcode|0x40200000, 0xf0600000, "@,R", level }, \
- { name, opcode|0x40400000, 0xf0600000, "*,R", level }, \
- { name, opcode|0x40600000, 0xf0600000, "S,R", level }
-
-/* AU: General 2-operand unsigned integer operation
- Syntax: <i> src, dst
- src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U)
- dst = Register (R)
- Instr: 6/2 - AND, ANDN, NOT, OR, TSTB, XOR, C4x: LBUn, LHUn
-*/
-#define AU_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q;R", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
- { name, opcode|0x00600000, 0xffe00000, "U,R", level }
-
-/* AF: General 2-operand float to integer operation
- Syntax: <i> src, dst
- src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
- dst = Register (R)
- Instr: 1/0 - FIX
-*/
-#define AF_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "q;R", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,R", level }, \
- { name, opcode|0x00600000, 0xffe00000, "F,R", level }
-
-/* A2: Limited 1-operand (integer) operation
- Syntax: <i> src
- src = Register (Q), Indirect (*), None
- Instr: 1/0 - NOP
-*/
-#define A2_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*", level }, \
- { name, opcode|0x00000000, 0xffe00000, "" , level }
-
-/* A3: General 1-operand unsigned integer operation
- Syntax: <i> src
- src = Register (Q), Direct (@), Indirect (*), Unsigned immediate (U)
- Instr: 1/0 - RPTS
-*/
-#define A3_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffff0000, "Q", level }, \
- { name, opcode|0x00200000, 0xffff0000, "@", level }, \
- { name, opcode|0x00400000, 0xffff0000, "*", level }, \
- { name, opcode|0x00600000, 0xffff0000, "U", level }
-
-/* A6: Limited 2-operand integer operation
- Syntax: <i> src, dst
- src = Direct (@), Indirect (*)
- dst = Register (R)
- Instr: 1/1 - LDII, C4x: SIGI
-*/
-#define A6_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00200000, 0xffe00000, "@,R", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,R", level }
-
-/* A7: Limited 2-operand integer store operation
- Syntax: <i> src, dst
- src = Register (R)
- dst = Direct (@), Indirect (*)
- Instr: 2/0 - STI, STII
-*/
-#define A7_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00200000, 0xffe00000, "R,@", level }, \
- { name, opcode|0x00400000, 0xffe00000, "R,*", level }
-
-/* AY: General 2-operand signed address load operation
- Syntax: <i> src, dst
- src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
- dst = Address register - ARx, IRx, DP, BK, SP (Y)
- Instr: 0/1 - C4x: LDA
- Note: Q and Y should *never* be the same register
-*/
-#define AY_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q,Y", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,Y", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,Y", level }, \
- { name, opcode|0x00600000, 0xffe00000, "S,Y", level }
-
-/* B: General 2-operand float operation
- Syntax: <i> src, dst
- src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
- dst = Register 0-11 (r)
- Instr: 12/2 - ABSF, ADDF, CMPF, LDE, LDF, LDM, MPYF, NEGF, NORM, RND,
- SUBF, SUBRF, C4x: RSQRF, TOIEEE
-*/
-#define B_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "q;r", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
- { name, opcode|0x00600000, 0xffe00000, "F,r", level }
-
-/* BA: General 2-operand integer to float operation
- Syntax: <i> src, dst
- src = Register (Q), Direct (@), Indirect (*), Float immediate (F)
- dst = Register 0-11 (r)
- Instr: 0/1 - C4x: CRCPF
-*/
-#define BA_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
- { name, opcode|0x00600000, 0xffe00000, "F,r", level }
-
-/* BB: General 2-operand conditional float operation
- Syntax: <i>c src, dst
- c = Condition
- src = Register 0-11 (q), Direct (@), Indirect (*), Float immediate (F)
- dst = Register 0-11 (r)
- Instr: 1/0 - LDFc
-*/
-#define BB_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x40000000, 0xf0600000, "q;r", level }, \
- { name, opcode|0x40200000, 0xf0600000, "@,r", level }, \
- { name, opcode|0x40400000, 0xf0600000, "*,r", level }, \
- { name, opcode|0x40600000, 0xf0600000, "F,r", level }
-
-/* BI: General 2-operand integer to float operation (yet different to BA)
- Syntax: <i> src, dst
- src = Register (Q), Direct (@), Indirect (*), Signed immediate (S)
- dst = Register 0-11 (r)
- Instr: 1/0 - FLOAT
-*/
-#define BI_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00000000, 0xffe00000, "Q;r", level }, \
- { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,r", level }, \
- { name, opcode|0x00600000, 0xffe00000, "S,r", level }
-
-/* B6: Limited 2-operand float operation
- Syntax: <i> src, dst
- src = Direct (@), Indirect (*)
- dst = Register 0-11 (r)
- Instr: 1/1 - LDFI, C4x: FRIEEE
-*/
-#define B6_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00200000, 0xffe00000, "@,r", level }, \
- { name, opcode|0x00400000, 0xffe00000, "*,r", level }
-
-/* B7: Limited 2-operand float store operation
- Syntax: <i> src, dst
- src = Register 0-11 (r)
- dst = Direct (@), Indirect (*)
- Instr: 2/0 - STF, STFI
-*/
-#define B7_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x00200000, 0xffe00000, "r,@", level }, \
- { name, opcode|0x00400000, 0xffe00000, "r,*", level }
-
-/* D: Decrement and brach operations
- Syntax: <i>c ARn, dst
- c = condition
- ARn = AR register 0-7 (A)
- dst = Register (Q), PC-relative (P)
- Instr: 2/0 - DBc, DBcD
- Alias: <name1> <name2>
-*/
-#define D_CLASS_INSN(name1, name2, opcode, level) \
- { name1, opcode|0x00000000, 0xfe200000, "A,Q", level }, \
- { name1, opcode|0x02000000, 0xfe200000, "A,P", level }, \
- { name2, opcode|0x00000000, 0xfe200000, "A,Q", level }, \
- { name2, opcode|0x02000000, 0xfe200000, "A,P", level }
-
-/* I: General branch operations
- Syntax: <i> dst
- dst = Address (B)
- Instr: 3/1 - BR, BRD, CALL, C4x: LAJ
-*/
-
-/* I2: General branch operations (C4x addition)
- Syntax: <i> dst
- dst = Address (B), C4x: Register (Q)
- Instr: 2/0 - RPTB, RPTBD
-*/
-
-/* J: General conditional branch operations
- Syntax: <i>c dst
- c = Condition
- dst = Register (Q), PC-relative (P)
- Instr: 2/3 - Bc, BcD, C4x: BcAF, BcAT, LAJc
- Alias: <name1> <name2>
-*/
-#define J_CLASS_INSN(name1, name2, opcode, level) \
- { name1, opcode|0x00000000, 0xffe00000, "Q", level }, \
- { name1, opcode|0x02000000, 0xffe00000, "P", level }, \
- { name2, opcode|0x00000000, 0xffe00000, "Q", level }, \
- { name2, opcode|0x02000000, 0xffe00000, "P", level }
-
-/* JS: General conditional branch operations
- Syntax: <i>c dst
- c = Condition
- dst = Register (Q), PC-relative (P)
- Instr: 1/1 - CALLc, C4X: LAJc
-*/
-
-/* LL: Load-load parallell operation
- Syntax: <i> src2, dst2 || <i> src1, dst1
- src1 = Indirect 0,1,IR0,IR1 (J)
- dst1 = Register 0-7 (K)
- src2 = Indirect 0,1,IR0,IR1, ENH: Register (i)
- dst2 = Register 0-7 (L)
- Instr: 2/0 - LDF||LDF, LDI||LDI
- Alias: i||i, i1||i2, i2||i1
-*/
-#define LL_CLASS_INSN(name, opcode, level) \
- { name "_" name , opcode, 0xfe000000, "i;L|J,K", level }, \
- { name "2_" name "1", opcode, 0xfe000000, "i;L|J,K", level }, \
- { name "1_" name "2", opcode, 0xfe000000, "J,K|i;L", level }
-
-/* LS: Store-store parallell operation
- Syntax: <i> src2, dst2 || <i> src1, dst1
- src1 = Register 0-7 (H)
- dst1 = Indirect 0,1,IR0,IR1 (J)
- src2 = Register 0-7 (L)
- dst2 = Indirect 0,1,IR0,IR1, ENH: register (i)
- Instr: 2/0 - STF||STF, STI||STI
- Alias: i||i, i1||i2, i2||i1.
-*/
-#define LS_CLASS_INSN(name, opcode, level) \
- { name "_" name , opcode, 0xfe000000, "L;i|H,J", level }, \
- { name "2_" name "1", opcode, 0xfe000000, "L;i|H,J", level }, \
- { name "1_" name "2", opcode, 0xfe000000, "H,J|L;i", level }
-
-/* M: General multiply and add/sub operations
- Syntax: <ia> src3,src4,dst1 || <ib> src2,src1,dst2 [00] - Manual
- <ia> src3,src1,dst1 || <ib> src2,src4,dst2 [01] - Manual
- <ia> src1,src3,dst1 || <ib> src2,src4,dst2 [01]
- <ia> src1,src2,dst1 || <ib> src4,src3,dst2 [02] - Manual
- <ia> src3,src1,dst1 || <ib> src4,src2,dst2 [03] - Manual
- <ia> src1,src3,dst1 || <ib> src4,src2,dst2 [03]
- src1 = Register 0-7 (K)
- src2 = Register 0-7 (H)
- src3 = Indirect 0,1,IR0,IR1, ENH: register (j)
- src4 = Indirect 0,1,IR0,IR1, ENH: register (i)
- dst1 = Register 0-1 (N)
- dst2 = Register 2-3 (M)
- Instr: 4/0 - MPYF3||ADDF3, MPYF3||SUBF3, MPYI3||ADDI3, MPYI3||SUBI3
- Alias: a||b, a3||n, a||b3, a3||b3, b||a, b3||a, b||a3, b3||a3
-*/
-#define M_CLASS_INSN(namea, nameb, opcode, level) \
- { namea "_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
- { namea "_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
- { namea "_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
- { namea "_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
- { namea "_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
- { namea "_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
- { namea "3_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
- { namea "3_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
- { namea "3_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
- { namea "3_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
- { namea "3_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
- { namea "3_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
- { namea "_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
- { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
- { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
- { namea "_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
- { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
- { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
- { namea "3_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \
- { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \
- { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \
- { namea "3_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \
- { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \
- { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \
- { nameb "_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
- { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
- { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
- { nameb "_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
- { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
- { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
- { nameb "3_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
- { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
- { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
- { nameb "3_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
- { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
- { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
- { nameb "_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
- { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
- { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
- { nameb "_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
- { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
- { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \
- { nameb "3_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \
- { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \
- { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \
- { nameb "3_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \
- { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \
- { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }
-
-/* P: General 2-operand operation with parallell store
- Syntax: <ia> src2, dst1 || <ib> src3, dst2
- src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
- dst1 = Register 0-7 (L)
- src3 = Register 0-7 (H)
- dst2 = Indirect 0,1,IR0,IR1 (J)
- Instr: 9/2 - ABSF||STF, ABSI||STI, FIX||STI, FLOAT||STF, LDF||STF,
- LDI||STI, NEGF||STF, NEGI||STI, NOT||STI, C4x: FRIEEE||STF,
- TOIEEE||STF
- Alias: a||b, b||a
-*/
-#define P_CLASS_INSN(namea, nameb, opcode, level) \
- { namea "_" nameb, opcode, 0xfe000000, "i;L|H,J", level }, \
- { nameb "_" namea, opcode, 0xfe000000, "H,J|i;L", level }
-
-/* Q: General 3-operand operation with parallell store
- Syntax: <ia> src1, src2, dst1 || <ib> src3, dst2
- src1 = Register 0-7 (K)
- src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
- dst1 = Register 0-7 (L)
- src3 = Register 0-7 (H)
- dst2 = Indirect 0,1,IR0,IR1 (J)
- Instr: 4/0 - ASH3||STI, LSH3||STI, SUBF3||STF, SUBI3||STI
- Alias: a||b, b||a, a3||b, b||a3
-*/
-#define Q_CLASS_INSN(namea, nameb, opcode, level) \
- { namea "_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \
- { nameb "_" namea , opcode, 0xfe000000, "H,J|K,i;L", level }, \
- { namea "3_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \
- { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K,i;L", level }
-
-/* QC: General commutative 3-operand operation with parallell store
- Syntax: <ia> src2, src1, dst1 || <ib> src3, dst2
- <ia> src1, src2, dst1 || <ib> src3, dst2 - Manual
- src1 = Register 0-7 (K)
- src2 = Indirect 0,1,IR0,IR1, ENH: register (i)
- dst1 = Register 0-7 (L)
- src3 = Register 0-7 (H)
- dst2 = Indirect 0,1,IR0,IR1 (J)
- Instr: 7/0 - ADDF3||STF, ADDI3||STI, AND3||STI, MPYF3||STF, MPYI3||STI,
- OR3||STI, XOR3||STI
- Alias: a||b, b||a, a3||b, b||a3
-*/
-#define QC_CLASS_INSN(namea, nameb, opcode, level) \
- { namea "_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \
- { namea "_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \
- { nameb "_" namea , opcode, 0xfe000000, "H,J|i;K;L", level }, \
- { nameb "_" namea , opcode, 0xfe000000, "H,J|K;i;L", level }, \
- { namea "3_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \
- { namea "3_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \
- { nameb "_" namea "3", opcode, 0xfe000000, "H,J|i;K;L", level }, \
- { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K;i;L", level }
-
-/* R: General register integer operation
- Syntax: <i> dst
- dst = Register (R)
- Instr: 6/0 - POP, PUSH, ROL, ROLC, ROR, RORC
-*/
-#define R_CLASS_INSN(name, opcode, level) \
- { name, opcode, 0xffe0ffff, "R", level }
-
-/* RF: General register float operation
- Syntax: <i> dst
- dst = Register 0-11 (r)
- Instr: 2/0 - POPF, PUSHF
-*/
-#define RF_CLASS_INSN(name, opcode, level) \
- { name, opcode, 0xffe0ffff, "r", level }
-
-/* S: General 3-operand float operation
- Syntax: <i> src2, src1, dst
- src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
- src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- dst = Register 0-11 (r)
- Instr: 1/0 - SUBF3
- Alias: i, i3
-*/
-#define S_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \
- { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \
- { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }
-
-/* SC: General commutative 3-operand float operation
- Syntax: <i> src2, src1, dst - Manual
- <i> src1, src2, dst
- src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
- src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- dst = Register 0-11 (r)
- Instr: 2/0 - ADDF3, MPYF3
- Alias: i, i3
-*/
-#define SC_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \
- { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \
- { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \
- { name "3", opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }
-
-/* S2: General 3-operand float operation with 2 args
- Syntax: <i> src2, src1
- src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C)
- src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- Instr: 1/0 - CMPF3
- Alias: i, i3
-*/
-#define S2_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "e,g", level }, \
- { name, opcode|0x20200000, 0xffe00000, "e,J", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,g", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name, opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "e,g", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "e,J", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,g", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* T: General 3-operand integer operand
- Syntax: <i> src2, src1, dst
- src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
- src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- dst = Register (R)
- Instr: 5/0 - ANDN3, ASH3, LSH3, SUBB3, SUBI3
- Alias: i, i3
-*/
-#define T_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \
- { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \
- { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \
- { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }
-
-/* TC: General commutative 3-operand integer operation
- Syntax: <i> src2, src1, dst
- <i> src1, src2, dst
- src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
- src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- dst = Register (R)
- Instr: 6/2 - ADDC3, ADDI3, AND3, MPYI3, OR3, XOR3, C4x: MPYSHI, MPYUHI
- Alias: i, i3
-*/
-#define TC_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \
- { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \
- { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
- { name, opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \
- { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \
- { name "3", opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }
-
-/* T2: General 3-operand integer operation with 2 args
- Syntax: <i> src2, src1
- src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
- src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O)
- Instr: 1/0 - CMPI3
- Alias: i, i3
-*/
-#define T2_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "E,G", level }, \
- { name, opcode|0x20200000, 0xffe00000, "E,J", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,G", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "E,G", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "E,J", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,G", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* T2C: General commutative 3-operand integer operation with 2 args
- Syntax: <i> src2, src1 - Manual
- <i> src1, src2
- src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W)
- src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (0)
- Instr: 1/0 - TSTB3
- Alias: i, i3
-*/
-#define T2C_CLASS_INSN(name, opcode, level) \
- { name, opcode|0x20000000, 0xffe00000, "E,G", level }, \
- { name, opcode|0x20200000, 0xffe00000, "E,J", level }, \
- { name, opcode|0x20400000, 0xffe00000, "I,G", level }, \
- { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name, opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
- { name, opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
- { name, opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
- { name, opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \
- { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \
- { name "3", opcode|0x20000000, 0xffe00000, "E,G", level }, \
- { name "3", opcode|0x20200000, 0xffe00000, "E,J", level }, \
- { name "3", opcode|0x20400000, 0xffe00000, "I,G", level }, \
- { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \
- { name "3", opcode|0x30000000, 0xffe00000, "W,G", OP_C4X }, \
- { name "3", opcode|0x30000000, 0xffe00000, "G,W", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "C,G", OP_C4X }, \
- { name "3", opcode|0x30200000, 0xffe00000, "G,C", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "W,O", OP_C4X }, \
- { name "3", opcode|0x30400000, 0xffe00000, "O,W", OP_C4X }, \
- { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }
-
-/* Z: Misc operations with or without arguments
- Syntax: <i> <arg1>,...
- Instr: 16 - RETIc, RETSc, SIGI(c3X), SWI, IDLE, IDLE2, RETIcD,
- TRAPc, LATc, LDEP, LDEHI, LDEPE, LDPK, STIK, LDP, IACK
-*/
-
-
-/* Define tic4x opcodes for assembler and disassembler. */
-static const tic4x_inst_t tic4x_insts[] =
-{
- /* Put synonyms after the desired forms in table so that they get
- overwritten in the lookup table. The disassembler will thus
- print the `proper' mnemonics. Note that the disassembler
- only decodes the 11 MSBs, so instructions like ldp @0x500 will
- be printed as ldiu 5, dp. Note that with parallel instructions,
- the second part is executed before the first part, unless
- the sti1||sti2 form is used. We also allow sti2||sti1
- which is equivalent to the default sti||sti form.
- */
- B_CLASS_INSN( "absf", 0x00000000, OP_C3X ),
- P_CLASS_INSN( "absf", "stf", 0xc8000000, OP_C3X ),
- A_CLASS_INSN( "absi", 0x00800000, OP_C3X ),
- P_CLASS_INSN( "absi", "sti", 0xca000000, OP_C3X ),
- A_CLASS_INSN( "addc", 0x01000000, OP_C3X ),
- TC_CLASS_INSN( "addc", 0x00000000, OP_C3X ),
- B_CLASS_INSN( "addf", 0x01800000, OP_C3X ),
- SC_CLASS_INSN( "addf", 0x00800000, OP_C3X ),
- QC_CLASS_INSN( "addf", "stf", 0xcc000000, OP_C3X ),
- A_CLASS_INSN( "addi", 0x02000000, OP_C3X ),
- TC_CLASS_INSN( "addi", 0x01000000, OP_C3X ),
- QC_CLASS_INSN( "addi", "sti", 0xce000000, OP_C3X ),
- AU_CLASS_INSN( "and", 0x02800000, OP_C3X ),
- TC_CLASS_INSN( "and", 0x01800000, OP_C3X ),
- QC_CLASS_INSN( "and", "sti", 0xd0000000, OP_C3X ),
- AU_CLASS_INSN( "andn", 0x03000000, OP_C3X ),
- T_CLASS_INSN( "andn", 0x02000000, OP_C3X ),
- A_CLASS_INSN( "ash", 0x03800000, OP_C3X ),
- T_CLASS_INSN( "ash", 0x02800000, OP_C3X ),
- Q_CLASS_INSN( "ash", "sti", 0xd2000000, OP_C3X ),
- J_CLASS_INSN( "bB", "b", 0x68000000, OP_C3X ),
- J_CLASS_INSN( "bBd", "bd", 0x68200000, OP_C3X ),
- J_CLASS_INSN( "bBaf", "baf", 0x68a00000, OP_C4X ),
- J_CLASS_INSN( "bBat", "bat", 0x68600000, OP_C4X ),
- { "br", 0x60000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */
- { "brd", 0x61000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */
- { "call", 0x62000000, 0xff000000, "B" , OP_C3X }, /* I_CLASS */
- { "callB", 0x70000000, 0xffe00000, "Q" , OP_C3X }, /* JS_CLASS */
- { "callB", 0x72000000, 0xffe00000, "P" , OP_C3X }, /* JS_CLASS */
- B_CLASS_INSN( "cmpf", 0x04000000, OP_C3X ),
- S2_CLASS_INSN( "cmpf", 0x03000000, OP_C3X ),
- A_CLASS_INSN( "cmpi", 0x04800000, OP_C3X ),
- T2_CLASS_INSN( "cmpi", 0x03800000, OP_C3X ),
- D_CLASS_INSN( "dbB", "db", 0x6c000000, OP_C3X ),
- D_CLASS_INSN( "dbBd", "dbd", 0x6c200000, OP_C3X ),
- AF_CLASS_INSN( "fix", 0x05000000, OP_C3X ),
- P_CLASS_INSN( "fix", "sti", 0xd4000000, OP_C3X ),
- BI_CLASS_INSN( "float", 0x05800000, OP_C3X ),
- P_CLASS_INSN( "float", "stf", 0xd6000000, OP_C3X ),
- B6_CLASS_INSN( "frieee", 0x1c000000, OP_C4X ),
- P_CLASS_INSN( "frieee","stf", 0xf2000000, OP_C4X ),
- { "iack", 0x1b200000, 0xffe00000, "@" , OP_C3X }, /* Z_CLASS */
- { "iack", 0x1b400000, 0xffe00000, "*" , OP_C3X }, /* Z_CLASS */
- { "idle", 0x06000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */
- { "idlez", 0x06000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */
- { "idle2", 0x06000001, 0xffffffff, "" , OP_IDLE2 }, /* Z_CLASS */
- { "laj", 0x63000000, 0xff000000, "B" , OP_C4X }, /* I_CLASS */
- { "lajB", 0x70200000, 0xffe00000, "Q" , OP_C4X }, /* JS_CLASS */
- { "lajB", 0x72200000, 0xffe00000, "P" , OP_C4X }, /* JS_CLASS */
- { "latB", 0x74800000, 0xffe00000, "V" , OP_C4X }, /* Z_CLASS */
- A_CLASS_INSN( "lb0", 0xb0000000, OP_C4X ),
- A_CLASS_INSN( "lb1", 0xb0800000, OP_C4X ),
- A_CLASS_INSN( "lb2", 0xb1000000, OP_C4X ),
- A_CLASS_INSN( "lb3", 0xb1800000, OP_C4X ),
- AU_CLASS_INSN( "lbu0", 0xb2000000, OP_C4X ),
- AU_CLASS_INSN( "lbu1", 0xb2800000, OP_C4X ),
- AU_CLASS_INSN( "lbu2", 0xb3000000, OP_C4X ),
- AU_CLASS_INSN( "lbu3", 0xb3800000, OP_C4X ),
- AY_CLASS_INSN( "lda", 0x1e800000, OP_C4X ),
- B_CLASS_INSN( "lde", 0x06800000, OP_C3X ),
- { "ldep", 0x76000000, 0xffe00000, "X,R" , OP_C4X }, /* Z_CLASS */
- B_CLASS_INSN( "ldf", 0x07000000, OP_C3X ),
- LL_CLASS_INSN( "ldf", 0xc4000000, OP_C3X ),
- P_CLASS_INSN( "ldf", "stf", 0xd8000000, OP_C3X ),
- BB_CLASS_INSN( "ldfC", 0x00000000, OP_C3X ),
- B6_CLASS_INSN( "ldfi", 0x07800000, OP_C3X ),
- { "ldhi", 0x1fe00000, 0xffe00000, "U,R" , OP_C4X }, /* Z_CLASS */
- { "ldhi", 0x1fe00000, 0xffe00000, "#,R" , OP_C4X }, /* Z_CLASS */
- A_CLASS_INSN( "ldi", 0x08000000, OP_C3X ),
- LL_CLASS_INSN( "ldi", 0xc6000000, OP_C3X ),
- P_CLASS_INSN( "ldi", "sti", 0xda000000, OP_C3X ),
- AB_CLASS_INSN( "ldiC", 0x10000000, OP_C3X ),
- A6_CLASS_INSN( "ldii", 0x08800000, OP_C3X ),
- { "ldp", 0x50700000, 0xffff0000, "#" , OP_C3X }, /* Z_CLASS - synonym for ldiu #,dp */
- B_CLASS_INSN( "ldm", 0x09000000, OP_C3X ),
- { "ldpe", 0x76800000, 0xffe00000, "Q,Z" , OP_C4X }, /* Z_CLASS */
- { "ldpk", 0x1F700000, 0xffff0000, "#" , OP_C4X }, /* Z_CLASS */
- A_CLASS_INSN( "lh0", 0xba000000, OP_C4X ),
- A_CLASS_INSN( "lh1", 0xba800000, OP_C4X ),
- AU_CLASS_INSN( "lhu0", 0xbb000000, OP_C4X ),
- AU_CLASS_INSN( "lhu1", 0xbb800000, OP_C4X ),
- { "lopower", 0x10800001,0xffffffff, "" , OP_LPWR }, /* Z_CLASS */
- A_CLASS_INSN( "lsh", 0x09800000, OP_C3X ),
- T_CLASS_INSN( "lsh", 0x04000000, OP_C3X ),
- Q_CLASS_INSN( "lsh", "sti", 0xdc000000, OP_C3X ),
- A_CLASS_INSN( "lwl0", 0xb4000000, OP_C4X ),
- A_CLASS_INSN( "lwl1", 0xb4800000, OP_C4X ),
- A_CLASS_INSN( "lwl2", 0xb5000000, OP_C4X ),
- A_CLASS_INSN( "lwl3", 0xb5800000, OP_C4X ),
- A_CLASS_INSN( "lwr0", 0xb6000000, OP_C4X ),
- A_CLASS_INSN( "lwr1", 0xb6800000, OP_C4X ),
- A_CLASS_INSN( "lwr2", 0xb7000000, OP_C4X ),
- A_CLASS_INSN( "lwr3", 0xb7800000, OP_C4X ),
- { "maxspeed",0x10800000,0xffffffff, "" , OP_LPWR }, /* Z_CLASS */
- A_CLASS_INSN( "mb0", 0xb8000000, OP_C4X ),
- A_CLASS_INSN( "mb1", 0xb8800000, OP_C4X ),
- A_CLASS_INSN( "mb2", 0xb9000000, OP_C4X ),
- A_CLASS_INSN( "mb3", 0xb9800000, OP_C4X ),
- A_CLASS_INSN( "mh0", 0xbc000000, OP_C4X ),
- A_CLASS_INSN( "mh1", 0xbc800000, OP_C4X ),
- A_CLASS_INSN( "mh2", 0xbd000000, OP_C4X ),
- A_CLASS_INSN( "mh3", 0xbd800000, OP_C4X ),
- B_CLASS_INSN( "mpyf", 0x0a000000, OP_C3X ),
- SC_CLASS_INSN( "mpyf", 0x04800000, OP_C3X ),
- M_CLASS_INSN( "mpyf", "addf", 0x80000000, OP_C3X ),
- QC_CLASS_INSN( "mpyf", "stf", 0xde000000, OP_C3X ),
- M_CLASS_INSN( "mpyf", "subf", 0x84000000, OP_C3X ),
- A_CLASS_INSN( "mpyi", 0x0a800000, OP_C3X ),
- TC_CLASS_INSN( "mpyi", 0x05000000, OP_C3X ),
- M_CLASS_INSN( "mpyi", "addi", 0x88000000, OP_C3X ),
- QC_CLASS_INSN( "mpyi", "sti", 0xe0000000, OP_C3X ),
- M_CLASS_INSN( "mpyi", "subi", 0x8c000000, OP_C3X ),
- A_CLASS_INSN( "mpyshi", 0x1d800000, OP_C4X ),
- TC_CLASS_INSN( "mpyshi", 0x28800000, OP_C4X ),
- A_CLASS_INSN( "mpyuhi", 0x1e000000, OP_C4X ),
- TC_CLASS_INSN( "mpyuhi", 0x29000000, OP_C4X ),
- A_CLASS_INSN( "negb", 0x0b000000, OP_C3X ),
- B_CLASS_INSN( "negf", 0x0b800000, OP_C3X ),
- P_CLASS_INSN( "negf", "stf", 0xe2000000, OP_C3X ),
- A_CLASS_INSN( "negi", 0x0c000000, OP_C3X ),
- P_CLASS_INSN( "negi", "sti", 0xe4000000, OP_C3X ),
- A2_CLASS_INSN( "nop", 0x0c800000, OP_C3X ),
- B_CLASS_INSN( "norm", 0x0d000000, OP_C3X ),
- AU_CLASS_INSN( "not", 0x0d800000, OP_C3X ),
- P_CLASS_INSN( "not", "sti", 0xe6000000, OP_C3X ),
- AU_CLASS_INSN( "or", 0x10000000, OP_C3X ),
- TC_CLASS_INSN( "or", 0x05800000, OP_C3X ),
- QC_CLASS_INSN( "or", "sti", 0xe8000000, OP_C3X ),
- R_CLASS_INSN( "pop", 0x0e200000, OP_C3X ),
- RF_CLASS_INSN( "popf", 0x0ea00000, OP_C3X ),
- R_CLASS_INSN( "push", 0x0f200000, OP_C3X ),
- RF_CLASS_INSN( "pushf", 0x0fa00000, OP_C3X ),
- BA_CLASS_INSN( "rcpf", 0x1d000000, OP_C4X ),
- { "retiB", 0x78000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */
- { "reti", 0x78000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS - Alias for retiu */
- { "retiBd", 0x78200000, 0xffe00000, "" , OP_C4X }, /* Z_CLASS */
- { "retid", 0x78200000, 0xffe00000, "" , OP_C4X }, /* Z_CLASS - Alias for retiud */
- { "retsB", 0x78800000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */
- { "rets", 0x78800000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS - Alias for retsu */
- B_CLASS_INSN( "rnd", 0x11000000, OP_C3X ),
- R_CLASS_INSN( "rol", 0x11e00001, OP_C3X ),
- R_CLASS_INSN( "rolc", 0x12600001, OP_C3X ),
- R_CLASS_INSN( "ror", 0x12e0ffff, OP_C3X ),
- R_CLASS_INSN( "rorc", 0x1360ffff, OP_C3X ),
- { "rptb", 0x64000000, 0xff000000, "B" , OP_C3X }, /* I2_CLASS */
- { "rptb", 0x79000000, 0xff000000, "Q" , OP_C4X }, /* I2_CLASS */
- { "rptbd", 0x65000000, 0xff000000, "B" , OP_C4X }, /* I2_CLASS */
- { "rptbd", 0x79800000, 0xff000000, "Q" , OP_C4X }, /* I2_CLASS */
- A3_CLASS_INSN( "rpts", 0x139b0000, OP_C3X ),
- B_CLASS_INSN( "rsqrf", 0x1c800000, OP_C4X ),
- { "sigi", 0x16000000, 0xffe00000, "" , OP_C3X }, /* Z_CLASS */
- A6_CLASS_INSN( "sigi", 0x16000000, OP_C4X ),
- B7_CLASS_INSN( "stf", 0x14000000, OP_C3X ),
- LS_CLASS_INSN( "stf", 0xc0000000, OP_C3X ),
- B7_CLASS_INSN( "stfi", 0x14800000, OP_C3X ),
- A7_CLASS_INSN( "sti", 0x15000000, OP_C3X ),
- { "sti", 0x15000000, 0xffe00000, "T,@" , OP_C4X }, /* Class A7 - Alias for stik */
- { "sti", 0x15600000, 0xffe00000, "T,*" , OP_C4X }, /* Class A7 */
- LS_CLASS_INSN( "sti", 0xc2000000, OP_C3X ),
- A7_CLASS_INSN( "stii", 0x15800000, OP_C3X ),
- { "stik", 0x15000000, 0xffe00000, "T,@" , OP_C4X }, /* Z_CLASS */
- { "stik", 0x15600000, 0xffe00000, "T,*" , OP_C4X }, /* Z_CLASS */
- A_CLASS_INSN( "subb", 0x16800000, OP_C3X ),
- T_CLASS_INSN( "subb", 0x06000000, OP_C3X ),
- A_CLASS_INSN( "subc", 0x17000000, OP_C3X ),
- B_CLASS_INSN( "subf", 0x17800000, OP_C3X ),
- S_CLASS_INSN( "subf", 0x06800000, OP_C3X ),
- Q_CLASS_INSN( "subf", "stf", 0xea000000, OP_C3X ),
- A_CLASS_INSN( "subi", 0x18000000, OP_C3X ),
- T_CLASS_INSN( "subi", 0x07000000, OP_C3X ),
- Q_CLASS_INSN( "subi", "sti", 0xec000000, OP_C3X ),
- A_CLASS_INSN( "subrb", 0x18800000, OP_C3X ),
- B_CLASS_INSN( "subrf", 0x19000000, OP_C3X ),
- A_CLASS_INSN( "subri", 0x19800000, OP_C3X ),
- { "swi", 0x66000000, 0xffffffff, "" , OP_C3X }, /* Z_CLASS */
- B_CLASS_INSN( "toieee", 0x1b800000, OP_C4X ),
- P_CLASS_INSN( "toieee","stf", 0xf0000000, OP_C4X ),
- { "trapB", 0x74000000, 0xffe00000, "V" , OP_C3X }, /* Z_CLASS */
- { "trap", 0x74000000, 0xffe00000, "V" , OP_C3X }, /* Z_CLASS - Alias for trapu */
- AU_CLASS_INSN( "tstb", 0x1a000000, OP_C3X ),
- T2C_CLASS_INSN("tstb", 0x07800000, OP_C3X ),
- AU_CLASS_INSN( "xor", 0x1a800000, OP_C3X ),
- TC_CLASS_INSN( "xor", 0x08000000, OP_C3X ),
- QC_CLASS_INSN( "xor", "sti", 0xee000000, OP_C3X ),
-
- /* Dummy entry, not included in tic4x_num_insts. This
- lets code examine entry i + 1 without checking
- if we've run off the end of the table. */
- { "", 0x0, 0x00, "", 0 }
-};
-
-const unsigned int tic4x_num_insts = (((sizeof tic4x_insts) / (sizeof tic4x_insts[0])) - 1);
diff --git a/include/opcode/tic54x.h b/include/opcode/tic54x.h
deleted file mode 100644
index f468714ee..000000000
--- a/include/opcode/tic54x.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* tic54x.h -- Header file for TI TMS320C54X opcode table
- Copyright 1999, 2000, 2001, 2005, 2009, 2010 Free Software Foundation, Inc.
- Written by Timothy Wall (twall@cygnus.com)
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef _opcode_tic54x_h_
-#define _opcode_tic54x_h_
-
-typedef struct _symbol
-{
- const char *name;
- unsigned short value;
-} symbol;
-
-enum optype {
- OPT = 0x8000,
- OP_None = 0x0,
-
- OP_Xmem, /* AR3 or AR4, indirect */
- OP_Ymem, /* AR3 or AR4, indirect */
- OP_pmad, /* PROG mem, direct */
- OP_dmad, /* DATA mem, direct */
- OP_Smem,
- OP_Lmem, /* 32-bit single-addressed (direct/indirect) */
- OP_MMR,
- OP_PA,
- OP_Sind,
- OP_xpmad,
- OP_xpmad_ms7,
- OP_MMRX,
- OP_MMRY,
-
- OP_SRC1, /* src accumulator in bit 8 */
- OP_SRC, /* src accumulator in bit 9 */
- OP_RND, /* rounded result dst accumulator, opposite of bit 8 */
- OP_DST, /* dst accumulator in bit 8 */
- OP_ARX, /* arX in bits 0-3 */
- OP_SHIFT, /* -16 to 15 (SHIFT), bits 0-4 */
- OP_SHFT, /* 0 to 15 (SHIFT1 in summary), bits 0-3 */
- OP_B, /* ACC B only */
- OP_A, /* ACC A only */
-
- OP_lk, /* 16-bit immediate, '#' optional */
- OP_TS,
- OP_k8, /* -128 <= k <= 128 */
- OP_16, /* literal "16" */
- OP_BITC, /* 0 to 16 */
- OP_CC, /* condition code */
- OP_CC2, /* 4-bit condition code */
- OP_CC3, /* 2-bit condition code */
- OP_123, /* 1, 2, or 3 */
- OP_031, /* 0-31, numeric */
- OP_k5, /* 0 to 31 */
- OP_k8u, /* 0 to 255 */
- OP_ASM, /* "ASM" */
- OP_T, /* "T" */
- OP_DP, /* "DP" */
- OP_ARP, /* "ARP" */
- OP_k3, /* 0-7 */
- OP_lku, /* 0 to 65535 */
- OP_N, /* 0/1 or ST0/ST1 */
- OP_SBIT, /* status bit or 0-15 */
- OP_12, /* one or two */
- OP_k9, /* 9 bits of data page (DP) address */
- OP_TRN, /* "TRN" */
-
-};
-
-typedef struct _template
-{
- /* The opcode mnemonic */
- const char *name;
- unsigned int words; /* insn size in words */
- int minops, maxops; /* min/max operand count */
- /* The significant bits in the opcode. Other bits are zero.
- Instructions with more than 16 bits of opcode store the rest in the upper
- 16 bits.
- */
- unsigned short opcode;
-#define INDIRECT(OP) ((OP)&0x80)
-#define MOD(OP) (((OP)>>3)&0xF)
-#define ARF(OP) ((OP)&0x7)
-#define IS_LKADDR(OP) (INDIRECT(OP) && MOD(OP)>=12)
-#define SRC(OP) ((OP)&0x200)
-#define DST(OP) ((OP)&0x100)
-#define SRC1(OP) ((OP)&0x100)
-#define SHIFT(OP) (((OP)&0x10)?(((OP)&0x1F)-32):((OP)&0x1F))
-#define SHFT(OP) ((OP)&0xF)
-#define ARX(OP) ((OP)&0x7)
-#define XMEM(OP) (((OP)&0x00F0)>>4)
-#define YMEM(OP) ((OP)&0x000F)
-#define XMOD(C) (((C)&0xC)>>2)
-#define XARX(C) (((C)&0x3)+2)
-#define CC3(OP) (((OP)>>8)&0x3)
-#define SBIT(OP) ((OP)&0xF)
-#define MMR(OP) ((OP)&0x7F)
-#define MMRX(OP) ((((OP)>>4)&0xF)+16)
-#define MMRY(OP) (((OP)&0xF)+16)
-
-#define OPTYPE(X) ((X)&~OPT)
-
- /* Ones in this mask indicate which bits must match the opcode field.
- Zeroes indicate don't care bits (operands and/or opcode options) */
- unsigned short mask;
-
- /* An array of operand codes (at most 4 operands) */
-#define MAX_OPERANDS 4
- enum optype operand_types[MAX_OPERANDS];
-
- /* Special purpose flags (e.g. branch type, parallel, delay, etc)
- */
- unsigned short flags;
-#define B_NEXT 0 /* normal execution, next insn is next address */
-#define B_BRANCH 1 /* next insn is in opcode */
-#define B_RET 2 /* next insn is on stack */
-#define B_BACC 3 /* next insn is in acc */
-#define B_REPEAT 4 /* next insn repeats */
-#define FL_BMASK 0x07
-
-#define FL_DELAY 0x10 /* instruction uses delay slots */
-#define FL_EXT 0x20 /* instruction takes two words */
-#define FL_FAR 0x40 /* far mode addressing */
-#define FL_LP 0x80 /* LP-only instruction */
-#define FL_NR 0x100 /* no repeat allowed */
-#define FL_SMR 0x200 /* Smem read (for flagging write-only *+ARx */
-
-#define FL_PAR 0x400 /* Parallel instruction. */
-
- unsigned short opcode2, mask2; /* some insns have an extended opcode */
-
- const char* parname;
- enum optype paroperand_types[MAX_OPERANDS];
-
-} insn_template;
-
-extern const insn_template tic54x_unknown_opcode;
-extern const insn_template tic54x_optab[];
-extern const insn_template tic54x_paroptab[];
-extern const symbol mmregs[], regs[];
-extern const symbol condition_codes[], cc2_codes[], status_bits[];
-extern const symbol cc3_codes[];
-extern const char *misc_symbols[];
-struct disassemble_info;
-extern const insn_template* tic54x_get_insn (struct disassemble_info *,
- bfd_vma, unsigned short, int *);
-
-#endif /* _opcode_tic54x_h_ */
diff --git a/include/opcode/tic6x-control-registers.h b/include/opcode/tic6x-control-registers.h
deleted file mode 100644
index b4387779a..000000000
--- a/include/opcode/tic6x-control-registers.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* TI C6X control register information.
- Copyright 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Define the CTRL macro before including this file; it takes as
- arguments the fields from tic6x_ctrl (defined in tic6x.h). The
- control register name is given as an identifier; the isa_variants
- field without the leading TIC6X_INSN_; the rw field without the
- leading tic6x_rw_. */
-
-CTRL(amr, C62X, read_write, 0x0, 0x10)
-CTRL(csr, C62X, read_write, 0x1, 0x10)
-CTRL(dnum, C64XP, read, 0x11, 0x1f)
-CTRL(ecr, C64XP, write, 0x1d, 0x1f)
-CTRL(efr, C64XP, read, 0x1d, 0x1f)
-CTRL(fadcr, C67X, read_write, 0x12, 0x1f)
-CTRL(faucr, C67X, read_write, 0x13, 0x1f)
-CTRL(fmcr, C67X, read_write, 0x14, 0x1f)
-CTRL(gfpgfr, C64X, read_write, 0x18, 0x1f)
-CTRL(gplya, C64XP, read_write, 0x16, 0x1f)
-CTRL(gplyb, C64XP, read_write, 0x17, 0x1f)
-CTRL(icr, C62X, write, 0x3, 0x10)
-CTRL(ier, C62X, read_write, 0x4, 0x10)
-CTRL(ierr, C64XP, read_write, 0x1f, 0x1f)
-CTRL(ifr, C62X, read, 0x2, 0x1d)
-CTRL(ilc, C64XP, read_write, 0xd, 0x1f)
-CTRL(irp, C62X, read_write, 0x6, 0x10)
-CTRL(isr, C62X, write, 0x2, 0x10)
-CTRL(istp, C62X, read_write, 0x5, 0x10)
-CTRL(itsr, C64XP, read_write, 0x1b, 0x1f)
-CTRL(nrp, C62X, read_write, 0x7, 0x10)
-CTRL(ntsr, C64XP, read_write, 0x1c, 0x1f)
-CTRL(pce1, C62X, read, 0x10, 0xf)
-CTRL(rep, C64XP, read_write, 0xf, 0x1f)
-CTRL(rilc, C64XP, read_write, 0xe, 0x1f)
-CTRL(ssr, C64XP, read_write, 0x15, 0x1f)
-CTRL(tsch, C64XP, read, 0xb, 0x1f)
-/* Contrary to Table 3-26 in SPRUFE8, this register is read-write, as
- documented in section 2.9.13. */
-CTRL(tscl, C64XP, read_write, 0xa, 0x1f)
-CTRL(tsr, C64XP, read_write, 0x1a, 0x1f)
diff --git a/include/opcode/tic6x-insn-formats.h b/include/opcode/tic6x-insn-formats.h
deleted file mode 100644
index 8ce2418ec..000000000
--- a/include/opcode/tic6x-insn-formats.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* TI C6X instruction format information.
- Copyright 2010
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Define the FMT macro before including this file; it takes a name
- and the fields from tic6x_insn_format (defined in tic6x.h). */
-
-#define FLD(name, pos, width) { CONCAT2(tic6x_field_,name), (pos), (width) }
-#define CFLDS FLD(p, 0, 1), FLD(creg, 29, 3), FLD(z, 28, 1)
-#define CFLDS2(a, b) 5, { CFLDS, a, b }
-#define CFLDS3(a, b, c) 6, { CFLDS, a, b, c }
-#define CFLDS4(a, b, c, d) 7, { CFLDS, a, b, c, d }
-#define CFLDS5(a, b, c, d, e) 8, { CFLDS, a, b, c, d, e }
-#define CFLDS6(a, b, c, d, e, f) 9, { CFLDS, a, b, c, d, e, f }
-#define CFLDS7(a, b, c, d, e, f, g) 10, { CFLDS, a, b, c, d, e, f, g }
-#define CFLDS8(a, b, c, d, e, f, g, h) 11, { CFLDS, a, b, c, d, e, f, g, h }
-#define NFLDS FLD(p, 0, 1)
-#define NFLDS1(a) 2, { NFLDS, a }
-#define NFLDS2(a, b) 3, { NFLDS, a, b }
-#define NFLDS3(a, b, c) 4, { NFLDS, a, b, c }
-#define NFLDS5(a, b, c, d, e) 6, { NFLDS, a, b, c, d, e }
-#define NFLDS6(a, b, c, d, e, f) 7, { NFLDS, a, b, c, d, e, f }
-#define NFLDS7(a, b, c, d, e, f, g) 8, { NFLDS, a, b, c, d, e, f, g }
-
-/* These are in the order from SPRUFE8, appendices C-H. */
-
-/* Appendix C 32-bit formats. */
-
-FMT(d_1_or_2_src, 32, 0x40, 0x7c,
- CFLDS5(FLD(s, 1, 1), FLD(op, 7, 6), FLD(src1, 13, 5), FLD(src2, 18, 5),
- FLD(dst, 23, 5)))
-FMT(d_ext_1_or_2_src, 32, 0x830, 0xc3c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-FMT(d_load_store, 32, 0x4, 0xc,
- CFLDS8(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(r, 8, 1),
- FLD(mode, 9, 4), FLD(offsetR, 13, 5), FLD(baseR, 18, 5),
- FLD(srcdst, 23, 5)))
-/* The nonaligned loads and stores have the formats shown in the
- individual instruction descriptions; the appendix is incorrect. */
-FMT(d_load_nonaligned, 32, 0x124, 0x17c,
- CFLDS7(FLD(s, 1, 1), FLD(y, 7, 1), FLD(mode, 9, 4), FLD(offsetR, 13, 5),
- FLD(baseR, 18, 5), FLD(sc, 23, 1), FLD(dst, 24, 4)))
-FMT(d_store_nonaligned, 32, 0x174, 0x17c,
- CFLDS7(FLD(s, 1, 1), FLD(y, 7, 1), FLD(mode, 9, 4), FLD(offsetR, 13, 5),
- FLD(baseR, 18, 5), FLD(sc, 23, 1), FLD(src, 24, 4)))
-FMT(d_load_store_long, 32, 0xc, 0xc,
- CFLDS5(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(offsetR, 8, 15),
- FLD(dst, 23, 5)))
-FMT(d_adda_long, 32, 0x1000000c, 0xf000000c,
- NFLDS5(FLD(s, 1, 1), FLD(op, 4, 3), FLD(y, 7, 1), FLD(offsetR, 8, 15),
- FLD(dst, 23, 5)))
-
-/* Appendix C 16-bit formats will go here. */
-
-/* Appendix D 32-bit formats. */
-
-FMT(l_1_or_2_src, 32, 0x18, 0x1c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 5, 7), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-FMT(l_1_or_2_src_noncond, 32, 0x10000018, 0xf000001c,
- NFLDS6(FLD(s, 1, 1), FLD(op, 5, 7), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-FMT(l_unary, 32, 0x358, 0xffc,
- CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5),
- FLD(dst, 23, 5)))
-
-/* Appendix D 16-bit formats will go here. */
-
-/* Appendix E 32-bit formats. */
-
-FMT(m_compound, 32, 0x30, 0x83c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 6, 5), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-FMT(m_1_or_2_src, 32, 0x10000030, 0xf000083c,
- NFLDS6(FLD(s, 1, 1), FLD(op, 6, 5), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-/* Contrary to SPRUFE8, this does have predicate fields. */
-FMT(m_unary, 32, 0xf0, 0xffc,
- CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5),
- FLD(dst, 23, 5)))
-
-/* M-unit formats missing from Appendix E. */
-FMT(m_mpy, 32, 0x0, 0x7c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 7, 5), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-
-/* Appendix E 16-bit formats will go here. */
-
-/* Appendix F 32-bit formats. */
-
-FMT(s_1_or_2_src, 32, 0x20, 0x3c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 6, 6), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23 ,5)))
-FMT(s_ext_1_or_2_src, 32, 0xc30, 0xc3c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-FMT(s_ext_1_or_2_src_noncond, 32, 0xc30, 0xe0000c3c,
- NFLDS7(FLD(s, 1, 1), FLD(op, 6, 4), FLD(x, 12, 1), FLD(src1, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5), FLD(z, 28, 1)))
-FMT(s_unary, 32, 0xf20, 0xffc,
- CFLDS5(FLD(s, 1, 1), FLD(x, 12, 1), FLD(op, 13, 5), FLD(src2, 18, 5),
- FLD(dst, 23, 5)))
-FMT(s_ext_branch_cond_imm, 32, 0x10, 0x7c,
- CFLDS2(FLD(s, 1, 1), FLD(cst, 7, 21)))
-FMT(s_call_imm_nop, 32, 0x10, 0xe000007c,
- NFLDS3(FLD(s, 1, 1), FLD(cst, 7, 21), FLD(z, 28, 1)))
-FMT(s_branch_nop_cst, 32, 0x120, 0x1ffc,
- CFLDS3(FLD(s, 1, 1), FLD(src1, 13, 3), FLD(src2, 16, 12)))
-FMT(s_branch_nop_reg, 32, 0x800360, 0xf830ffc,
- CFLDS4(FLD(s, 1, 1), FLD(x, 12, 1), FLD(src1, 13, 3), FLD(src2, 18, 5)))
-FMT(s_branch, 32, 0x360, 0xf83effc,
- CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(src2, 18, 5)))
-FMT(s_mvk, 32, 0x28, 0x3c,
- CFLDS4(FLD(s, 1, 1), FLD(h, 6, 1), FLD(cst, 7, 16), FLD(dst, 23, 5)))
-FMT(s_field, 32, 0x8, 0x3c,
- CFLDS6(FLD(s, 1, 1), FLD(op, 6, 2), FLD(cstb, 8, 5), FLD(csta, 13, 5),
- FLD(src2, 18, 5), FLD(dst, 23, 5)))
-
-/* S-unit formats missing from Appendix F. */
-FMT(s_addk, 32, 0x50, 0x7c,
- CFLDS3(FLD(s, 1, 1), FLD(cst, 7, 16), FLD(dst, 23, 5)))
-FMT(s_addkpc, 32, 0x160, 0x1ffc,
- CFLDS4(FLD(s, 1, 1), FLD(src2, 13, 3), FLD(src1, 16, 7), FLD(dst, 23, 5)))
-FMT(s_b_irp, 32, 0x1800e0, 0x7feffc,
- CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(dst, 23, 5)))
-FMT(s_b_nrp, 32, 0x1c00e0, 0x7feffc,
- CFLDS3(FLD(s, 1, 1), FLD(x, 12, 1), FLD(dst, 23, 5)))
-FMT(s_bdec, 32, 0x1020, 0x1ffc,
- CFLDS3(FLD(s, 1, 1), FLD(src, 13, 10), FLD(dst, 23, 5)))
-FMT(s_bpos, 32, 0x20, 0x1ffc,
- CFLDS3(FLD(s, 1, 1), FLD(src, 13, 10), FLD(dst, 23, 5)))
-
-/* Appendix F 16-bit formats will go here. */
-
-/* Appendix G 16-bit formats will go here. */
-
-/* Appendix H 32-bit formats. */
-
-FMT(nfu_loop_buffer, 32, 0x00020000, 0x00021ffc,
- CFLDS4(FLD(s, 1, 1), FLD(op, 13, 4), FLD(csta, 18, 5), FLD(cstb, 23, 5)))
-/* Corrected relative to Appendix H. */
-FMT(nfu_nop_idle, 32, 0x00000000, 0xfffe1ffc,
- NFLDS2(FLD(s, 1, 1), FLD(op, 13, 4)))
-
-/* No-unit formats missing from Appendix H (given the NOP and IDLE
- correction). */
-FMT(nfu_dint, 32, 0x10004000, 0xfffffffc,
- NFLDS1(FLD(s, 1, 1)))
-FMT(nfu_rint, 32, 0x10006000, 0xfffffffc,
- NFLDS1(FLD(s, 1, 1)))
-FMT(nfu_swe, 32, 0x10000000, 0xfffffffc,
- NFLDS1(FLD(s, 1, 1)))
-FMT(nfu_swenr, 32, 0x10002000, 0xfffffffc,
- NFLDS1(FLD(s, 1, 1)))
-/* Although formally covered by the loop buffer format, the fields in
- that format are not useful for all such instructions and not all
- instructions can be predicated. */
-FMT(nfu_spkernel, 32, 0x00034000, 0xf03ffffc,
- NFLDS2(FLD(s, 1, 1), FLD(fstgfcyc, 22, 6)))
-FMT(nfu_spkernelr, 32, 0x00036000, 0xfffffffc,
- NFLDS1(FLD(s, 1, 1)))
-FMT(nfu_spmask, 32, 0x00020000, 0xfc021ffc,
- NFLDS3(FLD(s, 1, 1), FLD(op, 13, 4), FLD(mask, 18, 8)))
-
-/* Appendix H 16-bit formats will go here. */
-
-#undef FLD
-#undef CFLDS
-#undef CFLDS2
-#undef CFLDS3
-#undef CFLDS4
-#undef CFLDS5
-#undef CFLDS6
-#undef CFLDS7
-#undef CFLDS8
-#undef NFLDS
-#undef NFLDS1
-#undef NFLDS2
-#undef NFLDS3
-#undef NFLDS5
-#undef NFLDS6
-#undef NFLDS7
diff --git a/include/opcode/tic6x-opcode-table.h b/include/opcode/tic6x-opcode-table.h
deleted file mode 100644
index bd22558ce..000000000
--- a/include/opcode/tic6x-opcode-table.h
+++ /dev/null
@@ -1,2549 +0,0 @@
-/* TI C6X opcode table.
- Copyright 2010, 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* Define the INSN macro before including this file; it takes as
- arguments the fields from tic6x_opcode (defined in tic6x.h). The
- name is given as an identifier; the subsequent four operands should
- have "tic6x_func_unit_", "tic6x_insn_format_", "tic6x_pipeline_"
- and "TIC6X_INSN_", respectively, prepended to them by the macro
- definition. Also define INSNE, which has a second argument that
- goes after tic6x_opcode_NAME_ to form the enumeration value for
- this instruction, where the value otherwise formed from the name,
- functional unit and format is ambiguous, but otherwise has the same
- arguments as INSN. */
-
-#define TIC6X_INSN_C64X_AND_C67X TIC6X_INSN_C64X|TIC6X_INSN_C67X
-#define tic6x_insn_format_nfu_s_branch_nop_cst \
- tic6x_insn_format_s_branch_nop_cst
-#define tic6x_insn_format_s_l_1_or_2_src tic6x_insn_format_l_1_or_2_src
-#define RAN(id, min, max) { CONCAT2(tic6x_field_,id), (min), (max) }
-#define FIX(id, val) RAN(id, val, val)
-#define FIX0() 0, { { 0, 0, 0 } }
-#define FIX1(a) 1, { a }
-#define FIX2(a, b) 2, { a, b }
-#define FIX3(a, b, c) 3, { a, b, c }
-#define FIX4(a, b, c, d) 4, { a, b, c, d }
-#define OP0() 0, { { 0, 0, FALSE, 0, 0, 0, 0 } }
-#define OP1(a) 1, { a }
-#define OP2(a, b) 2, { a, b }
-#define OP3(a, b, c) 3, { a, b, c }
-#define OP4(a, b, c, d) 4, { a, b, c, d }
-#define OACST { tic6x_operand_asm_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
-#define OLCST { tic6x_operand_link_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
-#define OFULIST { tic6x_operand_func_unit, 0, tic6x_rw_none, 0, 0, 0, 0 }
-#define ORIRP1 { tic6x_operand_irp, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define ORNRP1 { tic6x_operand_nrp, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define OWREG1 { tic6x_operand_reg, 4, tic6x_rw_write, 1, 1, 0, 0 }
-#define OWRETREG1 { tic6x_operand_retreg, 4, tic6x_rw_write, 1, 1, 0, 0 }
-#define ORREG1 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define ORDREG1 { tic6x_operand_dreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define ORWREG1 { tic6x_operand_reg, 4, tic6x_rw_read_write, 1, 1, 0, 0 }
-#define ORAREG1 { tic6x_operand_areg, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define ORXREG1 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define ORREG12 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 2, 0, 0 }
-#define ORREG14 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 4, 0, 0 }
-#define ORXREG14 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 4, 0, 0 }
-#define OWREG2 { tic6x_operand_reg, 4, tic6x_rw_write, 2, 2, 0, 0 }
-#define OWREG4 { tic6x_operand_reg, 4, tic6x_rw_write, 4, 4, 0, 0 }
-#define OWREG9 { tic6x_operand_reg, 4, tic6x_rw_write, 9, 9, 0, 0 }
-#define OWDREG5 { tic6x_operand_dreg, 4, tic6x_rw_write, 5, 5, 0, 0 }
-#define OWREGL1 { tic6x_operand_regpair, 5, tic6x_rw_write, 1, 1, 1, 1 }
-#define ORREGL1 { tic6x_operand_regpair, 5, tic6x_rw_read, 1, 1, 1, 1 }
-#define OWREGD1 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 1, 1 }
-#define OWREGD12 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 2, 2 }
-#define OWREGD4 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 4, 4 }
-#define ORREGD1 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
-#define OWREGD45 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 5, 5 }
-#define OWREGD67 { tic6x_operand_regpair, 8, tic6x_rw_write, 6, 6, 7, 7 }
-#define ORDREGD1 { tic6x_operand_dregpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
-#define OWDREGD5 { tic6x_operand_dregpair, 8, tic6x_rw_write, 5, 5, 5, 5 }
-#define ORREGD12 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
-#define ORXREGD12 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
-#define ORREGD1234 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 2, 3, 4 }
-#define ORREGD1324 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 3, 2, 4 }
-#define OWREGD910 { tic6x_operand_regpair, 8, tic6x_rw_write, 9, 9, 10, 10 }
-#define ORCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_read, 1, 1, 0, 0 }
-#define OWCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_write, 1, 1, 0, 0 }
-#define ORMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_write, 3, 3, 0, 0 }
-#define ORMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_read, 3, 3, 0, 0 }
-#define OWMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_write, 3, 3, 0, 0 }
-#define ENC(id, meth, op) { \
- CONCAT2(tic6x_field_,id), \
- CONCAT2(tic6x_coding_,meth), \
- op \
- }
-#define ENC0() 0, { { 0, 0, 0 } }
-#define ENC1(a) 1, { a }
-#define ENC2(a, b) 2, { a, b }
-#define ENC3(a, b, c) 3, { a, b, c }
-#define ENC4(a, b, c, d) 4, { a, b, c, d }
-#define ENC5(a, b, c, d, e) 5, { a, b, c, d, e }
-#define ENC6(a, b, c, d, e, f) 6, { a, b, c, d, e, f }
-#define ENC7(a, b, c, d, e, f, g) 7, { a, b, c, d, e, f, g }
-
-INSN(abs, l, unary, 1cycle, C62X, 0,
- FIX1(FIX(op, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSN(abs, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x38), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGL1, OWREGL1),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(abs2, l, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x4)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(absdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x2c), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREGD12),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(abssp, s, unary, 1cycle, C67X, 0,
- FIX1(FIX(op, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(add, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x3)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x23)),
- OP3(ORREG1, ORXREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x21)),
- OP3(ORXREG1, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x2)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x20), FIX(x, 0)),
- OP3(OACST, ORREGL1, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(add, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x7)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x6)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, d_si_si_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x10)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(add, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x12)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSNE(add, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0xa)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(add, d_xsi_s5_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0xb)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, scst, 1), ENC(dst, reg, 2)))
-
-INSNE(addab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x30)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(addab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x32)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSN(addab, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 3)),
- OP3(ORAREG1, OLCST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 1),
- ENC(dst, reg, 2)))
-
-INSNE(addad, d_si_si_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X,
- TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x3c)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(addad, d_si_u5_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X,
- TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x3d)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSNE(addah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x34)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(addah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x36)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSN(addah, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 5)),
- OP3(ORAREG1, OLCST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 1),
- ENC(dst, reg, 2)))
-
-INSNE(addaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x38)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(addaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x3a)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSN(addaw, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 7)),
- OP3(ORAREG1, OLCST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 1),
- ENC(dst, reg, 2)))
-
-INSN(adddp, l, 1_or_2_src, addsubdp, C67X, 0,
- FIX1(FIX(op, 0x18)),
- OP3(ORREGD12, ORXREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(adddp, s, l_1_or_2_src, addsubdp, C67XP, 0,
- FIX1(FIX(op, 0x72)),
- OP3(ORREGD12, ORXREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(addk, s, addk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX0(),
- OP2(OLCST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1)))
-
-INSN(addkpc, s, addkpc, 1cycle, C64X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_SIDE_B_ONLY,
- FIX1(FIX(s, 1)),
- OP3(OLCST, OWREG1, OACST),
- ENC3(ENC(src1, pcrel, 0), ENC(dst, reg, 1), ENC(src2, ucst, 2)))
-
-INSN(addsp, l, 1_or_2_src, 4cycle, C67X, 0,
- FIX1(FIX(op, 0x10)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(addsp, s, l_1_or_2_src, 4cycle, C67XP, 0,
- FIX1(FIX(op, 0x70)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(addsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0xc)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(addsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0xd)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(addu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x2b)),
- OP3(ORREG1, ORXREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(addu, l_xui_ul_ul, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x29)),
- OP3(ORXREG1, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(add2, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x1)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(add2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x5)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(add2, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x4)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(add4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x65)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(and, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x7b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(and, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x7a)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(and, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x1f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(and, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x1e)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(and, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x6)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(and, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x7)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(andn, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x7c)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(andn, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x6)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(andn, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x0)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(avg2, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x13)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(avgu4, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x12)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(b, s, ext_branch_cond_imm, branch, C62X, TIC6X_FLAG_NO_CROSS,
- FIX0(),
- OP1(OLCST),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-INSN(b, s, branch, branch, C62X, TIC6X_FLAG_SIDE_B_ONLY,
- FIX1(FIX(s, 1)),
- OP1(ORXREG1),
- ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
-INSN(b, s, b_irp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORIRP1),
- ENC0())
-INSN(b, s, b_nrp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORNRP1),
- ENC0())
-
-INSN(bdec, s, bdec, branch, C64X, TIC6X_FLAG_NO_CROSS,
- FIX0(),
- OP2(OLCST, ORWREG1),
- ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1)))
-
-INSN(bitc4, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1e)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(bitr, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1f)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(bnop, s, branch_nop_cst, branch, C64X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP,
- FIX0(),
- OP2(OLCST, OACST),
- ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
-INSN(bnop, nfu, s_branch_nop_cst, branch, C64XP,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP,
- FIX1(FIX(s, 0)),
- OP2(OLCST, OACST),
- ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
-INSN(bnop, s, branch_nop_reg, branch, C64X,
- TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP,
- FIX1(FIX(s, 1)),
- OP2(ORXREG1, OACST),
- ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1)))
-
-INSN(bpos, s, bpos, branch, C64X, TIC6X_FLAG_NO_CROSS,
- FIX0(),
- OP2(OLCST, ORREG1),
- ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1)))
-
-INSN(call, s, ext_branch_cond_imm, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
- FIX0(),
- OP1(OLCST),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-INSN(call, s, branch, branch, C62X,
- TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
- FIX1(FIX(s, 1)),
- OP1(ORXREG1),
- ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
-INSN(call, s, b_irp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORIRP1),
- ENC0())
-INSN(call, s, b_nrp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORNRP1),
- ENC0())
-
-INSN(callnop, s, branch_nop_cst, branch, C64X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
- FIX0(),
- OP2(OLCST, OACST),
- ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
-INSN(callnop, nfu, s_branch_nop_cst, branch, C64XP,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
- FIX1(FIX(s, 0)),
- OP2(OLCST, OACST),
- ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
-INSN(callnop, s, branch_nop_reg, branch, C64X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
- FIX1(FIX(s, 1)),
- OP2(ORXREG1, OACST),
- ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1)))
-
-INSN(callp, s, call_imm_nop, branch, C64XP,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP,
- FIX1(FIX(z, 1)),
- OP2(OLCST, OWRETREG1),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-
-INSN(callret, s, ext_branch_cond_imm, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
- FIX0(),
- OP1(OLCST),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-INSN(callret, s, branch, branch, C62X,
- TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
- FIX1(FIX(s, 1)),
- OP1(ORXREG1),
- ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
-INSN(callret, s, b_irp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORIRP1),
- ENC0())
-INSN(callret, s, b_nrp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORNRP1),
- ENC0())
-
-INSN(clr, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x3)),
- OP4(ORREG1, OACST, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
- ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
-INSN(clr, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x3f)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(cmpeq, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x53)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpeq, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x52)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpeq, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x51)),
- OP3(ORXREG1, ORREGL1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpeq, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x50), FIX(x, 0)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-
-INSN(cmpeq2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1d)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpeq4, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1c)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpeqdp, s, 1_or_2_src, dpcmp, C67X, 0,
- FIX1(FIX(op, 0x28)),
- OP3(ORREGD12, ORXREGD12, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpeqsp, s, 1_or_2_src, 1cycle, C67X, 0,
- FIX1(FIX(op, 0x38)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(cmpgt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x47)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x46)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x45)),
- OP3(ORXREG1, ORREGL1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x44), FIX(x, 0)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(cmpgt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x57)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x56)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x55)),
- OP3(ORREGL1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmpgt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x54), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0),
- ENC(dst, reg, 2)))
-
-INSN(cmpgt2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x14)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpgtdp, s, 1_or_2_src, dpcmp, C67X, 0,
- FIX1(FIX(op, 0x29)),
- OP3(ORREGD12, ORXREGD12, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpgtsp, s, 1_or_2_src, 1cycle, C67X, 0,
- FIX1(FIX(op, 0x39)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(cmpgtu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x4f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgtu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 0x4e), RAN(src1, 0, 15)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-/* Although not mentioned in SPRUFE8, CMPGTU and CMPLTU support a
- 5-bit unsigned constant operand on C64X and above. */
-INSNE(cmpgtu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX2(FIX(op, 0x4e), RAN(src1, 16, 31)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgtu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x4d)),
- OP3(ORXREG1, ORREGL1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpgtu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 0, 15)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(cmpgtu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 16, 31)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-
-INSN(cmpgtu4, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x15)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(cmplt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x57)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmplt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x56)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmplt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x55)),
- OP3(ORXREG1, ORREGL1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmplt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x54), FIX(x, 0)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(cmplt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x47)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmplt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x46)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmplt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x45)),
- OP3(ORREGL1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(cmplt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x44), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0),
- ENC(dst, reg, 2)))
-
-INSN(cmplt2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x14)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpltdp, s, 1_or_2_src, dpcmp, C67X, 0,
- FIX1(FIX(op, 0x2a)),
- OP3(ORREGD12, ORXREGD12, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpltsp, s, 1_or_2_src, 1cycle, C67X, 0,
- FIX1(FIX(op, 0x3a)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(cmpltu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x5f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpltu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 0x5e), RAN(src1, 0, 15)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpltu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX2(FIX(op, 0x5e), RAN(src1, 16, 31)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpltu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x5d)),
- OP3(ORXREG1, ORREGL1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(cmpltu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 0, 15)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(cmpltu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 16, 31)),
- OP3(OACST, ORREGL1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-
-INSN(cmpltu4, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x15)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpy, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0xa)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpyr, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0xb)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmpyr1, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0xc)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(cmtl, d, 1_or_2_src, load, C64XP,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(s, 1), FIX(op, 0xe), FIX(src1, 0)),
- OP2(ORMEMDW, OWDREG5),
- ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(ddotp4, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x18)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(ddotph2, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x17)),
- OP3(ORREGD1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(ddotph2r, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x15)),
- OP3(ORREGD1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(ddotpl2, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x16)),
- OP3(ORREGD1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(ddotpl2r, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x14)),
- OP3(ORREGD1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(deal, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1d)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(dint, nfu, dint, 1cycle, C64XP, 0,
- FIX1(FIX(s, 0)),
- OP0(),
- ENC0())
-
-INSN(dmv, s, ext_1_or_2_src, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0xb)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(dotp2, m_s2_xs2_si, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0xc)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(dotp2, m_s2_xs2_sll, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0xb)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpn2, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x9)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpnrsu2, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x7)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpnrus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x7)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotprsu2, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0xd)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotprus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0xd)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpsu4, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x2)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x2)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dotpu4, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x6)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dpack2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x34)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dpackx2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x33)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(dpint, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x8), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREG4),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(dpsp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x9), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREG4),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(dptrunc, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x1), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREG4),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(ext, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x1)),
- OP4(ORREG1, OACST, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
- ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
-INSN(ext, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x2f)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(extu, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x0)),
- OP4(ORREG1, OACST, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
- ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
-INSN(extu, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x2b)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(gmpy, m, 1_or_2_src, 4cycle, C64XP, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x1f), FIX(x, 0)),
- OP3(ORREG1, ORREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-
-/* This instruction can be predicated as usual; SPRUFE8 is incorrect
- where it shows the "z" field as fixed to 1. */
-INSN(gmpy4, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x11)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(idle, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MCNOP,
- FIX2(FIX(s, 0), FIX(op, 0xf)),
- OP0(),
- ENC0())
-
-INSN(intdp, l, 1_or_2_src, intdp, C67X, 0,
- FIX2(FIX(op, 0x39), FIX(src1, 0)),
- OP2(ORXREG1, OWREGD45),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(intdpu, l, 1_or_2_src, intdp, C67X, 0,
- FIX2(FIX(op, 0x3b), FIX(src1, 0)),
- OP2(ORXREG1, OWREGD45),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(intsp, l, 1_or_2_src, 4cycle, C67X, 0,
- FIX2(FIX(op, 0x4a), FIX(src1, 0)),
- OP2(ORXREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(intspu, l, 1_or_2_src, 4cycle, C67X, 0,
- FIX2(FIX(op, 0x49), FIX(src1, 0)),
- OP2(ORXREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(ldb, d, load_store, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 2), FIX(r, 0)),
- OP2(ORMEMSB, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-INSN(ldb, d, load_store_long, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 2)),
- OP2(ORMEMLB, OWDREG5),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0),
- ENC(dst, reg, 1)))
-
-INSN(ldbu, d, load_store, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 1), FIX(r, 0)),
- OP2(ORMEMSB, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-INSN(ldbu, d, load_store_long, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 1)),
- OP2(ORMEMLB, OWDREG5),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0),
- ENC(dst, reg, 1)))
-
-INSN(lddw, d, load_store, load, C64X_AND_C67X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 6), FIX(r, 1)),
- OP2(ORMEMSD, OWDREGD5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-
-INSN(ldh, d, load_store, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 4), FIX(r, 0)),
- OP2(ORMEMSH, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-INSN(ldh, d, load_store_long, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 4)),
- OP2(ORMEMLH, OWDREG5),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0),
- ENC(dst, reg, 1)))
-
-INSN(ldhu, d, load_store, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 0), FIX(r, 0)),
- OP2(ORMEMSH, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-INSN(ldhu, d, load_store_long, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0)),
- OP2(ORMEMLH, OWDREG5),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0),
- ENC(dst, reg, 1)))
-
-INSN(ldndw, d, load_nonaligned, load, C64X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
- FIX0(),
- OP2(ORMEMND, OWDREGD5),
- ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset_noscale, 0), ENC(baseR, reg, 0),
- ENC(sc, scaled, 0), ENC(dst, reg_shift, 1)))
-
-INSN(ldnw, d, load_store, load, C64X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
- FIX2(FIX(op, 3), FIX(r, 1)),
- OP2(ORMEMSW, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-
-INSN(ldw, d, load_store, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 6), FIX(r, 0)),
- OP2(ORMEMSW, OWDREG5),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
- ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
- ENC(srcdst, reg, 1)))
-INSN(ldw, d, load_store_long, load, C62X,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 6)),
- OP2(ORMEMLW, OWDREG5),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 0),
- ENC(dst, reg, 1)))
-
-INSN(ll, d, 1_or_2_src, load, C64XP,
- TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(s, 1), FIX(op, 0xc), FIX(src1, 0)),
- OP2(ORMEMDW, OWDREG5),
- ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSNE(lmbd, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x6b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(lmbd, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x6a)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(max2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x42)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(max2, s, ext_1_or_2_src, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0xd)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(maxu4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x43)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(min2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x41)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(min2, s, ext_1_or_2_src, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0xc)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(minu4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x48)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(mpy, m_sl16_xsl16_si, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x19)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(mpy, m_s5_xsl16_si, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x18)),
- OP3(OACST, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpydp, m, mpy, mpydp, C67X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x0e), FIX(x, 0)),
- OP3(ORREGD1234, ORREGD1324, OWREGD910),
- ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1),
- ENC(dst, reg, 2)))
-
-INSN(mpyh, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x01)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhi, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x14)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhir, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x10)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhl, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x09)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhlu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x0f)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhslu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x0b)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhsu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x03)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x07)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhuls, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x0d)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyhus, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x05)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(mpyi, m_si_xsi_si, m, mpy, mpyi, C67X, 0,
- FIX1(FIX(op, 0x04)),
- OP3(ORREG14, ORXREG14, OWREG9),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(mpyi, m_s5_xsi_si, m, mpy, mpyi, C67X, 0,
- FIX1(FIX(op, 0x06)),
- OP3(OACST, ORXREG14, OWREG9),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(mpyid, m_si_xsi_sll, m, mpy, mpyid, C67X, 0,
- FIX1(FIX(op, 0x08)),
- OP3(ORREG14, ORXREG14, OWREGD910),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(mpyid, m_s5_xsi_sll, m, mpy, mpyid, C67X, 0,
- FIX1(FIX(op, 0x0c)),
- OP3(OACST, ORXREG14, OWREGD910),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyih, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x14)),
- OP3(ORXREG1, ORREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyihr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x10)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyil, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x15)),
- OP3(ORXREG1, ORREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyilr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x0e)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpylh, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x11)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpylhu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x17)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyli, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x15)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpylir, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x0e)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpylshu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x13)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyluhs, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x15)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpysp, m, mpy, 4cycle, C67X, 0,
- FIX1(FIX(op, 0x1c)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-/* Contrary to SPRU733A, MPYSPDP and MPYSP2DP are on both C67X and
- C67X+. */
-INSN(mpyspdp, m, compound, mpyspdp, C67X, 0,
- FIX1(FIX(op, 0x16)),
- OP3(ORREG12, ORXREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpysp2dp, m, compound, mpyspdp, C67X, 0,
- FIX1(FIX(op, 0x17)),
- OP3(ORREG1, ORXREG1, OWREGD45),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(mpysu, m_sl16_xul16_si, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x1b)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(mpysu, m_s5_xul16_si, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x1e)),
- OP3(OACST, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpysu4, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x05)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyu, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x1f)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyu4, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x04)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyus, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x1d)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpyus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x05)),
- OP3(ORXREG1, ORREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpy2, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x00)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpy2ir, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x0f)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(mpy32, 32_32_32, m, mpy, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x10)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(mpy32, 32_32_64, m, mpy, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x14)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpy32su, m, mpy, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x16)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpy32u, m, compound, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x18)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(mpy32us, m, compound, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x19)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-/* "or" forms of "mv" are preferred over "add" forms when available
- because "or" uses less power. However, 40-bit moves are only
- available through "add", and before C64X D-unit moves are only
- available through "add" (without cross paths being available). */
-INSNE(mv, l_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x7e), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSNE(mv, l_sl_sl, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX3(FIX(op, 0x20), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGL1, OWREGL1),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-INSNE(mv, s_xui_ui, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x1a), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSNE(mv, d_si_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(0),
- FIX2(FIX(op, 0x12), FIX(src1, 0)),
- OP2(ORREG1, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-INSNE(mv, d_xui_ui, d, ext_1_or_2_src, 1cycle, C64X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 0x3), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(mvc, from_cr, s, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(s, 1), FIX(op, 0x0f), FIX(x, 0)),
- OP2(ORCREG1, OWREG1),
- ENC3(ENC(src1, crhi, 0), ENC(src2, crlo, 0), ENC(dst, reg, 1)))
-INSNE(mvc, to_cr, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_SIDE_B_ONLY,
- FIX2(FIX(s, 1), FIX(op, 0x0e)),
- OP2(ORXREG1, OWCREG1),
- ENC4(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, crhi, 1),
- ENC(dst, crlo, 1)))
-
-INSN(mvd, m, unary, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x1a)),
- OP2(ORXREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(mvk, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(h, 0)),
- OP2(OLCST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1)))
-INSN(mvk, l, unary, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(x, 0), FIX(op, 0x05)),
- OP2(OACST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(src2, scst, 0), ENC(dst, reg, 1)))
-INSN(mvk, d, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x00), FIX(src2, 0)),
- OP2(OACST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(dst, reg, 1)))
-
-INSN(mvkh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(h, 1)),
- OP2(OLCST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(cst, lcst_high16, 0), ENC(dst, reg, 1)))
-
-INSN(mvklh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX1(FIX(h, 1)),
- OP2(OLCST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1)))
-
-INSN(mvkl, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX1(FIX(h, 0)),
- OP2(OLCST, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1)))
-
-INSNE(neg, s_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x16), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSNE(neg, l_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x06), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSNE(neg, l_sl_sl, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x24), FIX(src1, 0)),
- OP2(ORREGL1, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(nop, nfu, nop_idle, nop, C62X, 0,
- FIX2(FIX(s, 0), RAN(op, 0, 8)),
- OP1(OACST),
- ENC1(ENC(op, ucst_minus_one, 0)))
-INSNE(nop, 1, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(s, 0), FIX(op, 0)),
- OP0(),
- ENC0())
-
-INSNE(norm, l_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX2(FIX(op, 0x63), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSNE(norm, l_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x60), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGL1, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(not, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x6e), FIX(src1, 0x1f)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSN(not, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x0a), FIX(src1, 0x1f)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSN(not, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0xf), FIX(src1, 0x1f)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(or, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x2)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(or, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x3)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(or, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x7f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(or, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x7e)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(or, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x1b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(or, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x1a)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(pack2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x0)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(pack2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0xf)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(packh2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1e)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(packh2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x9)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(packh4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x69)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(packhl2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1c)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(packhl2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x8)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(packlh2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(packlh2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x10)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(packl4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x68)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(rcpdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x2d), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREGD12),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(rcpsp, s, 1_or_2_src, 1cycle, C67X, 0,
- FIX2(FIX(op, 0x3d), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(ret, s, ext_branch_cond_imm, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
- FIX0(),
- OP1(OLCST),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-INSN(ret, s, branch, branch, C62X,
- TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
- FIX1(FIX(s, 1)),
- OP1(ORXREG1),
- ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
-INSN(ret, s, b_irp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORIRP1),
- ENC0())
-INSN(ret, s, b_nrp, branch, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
- FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
- OP1(ORNRP1),
- ENC0())
-
-INSN(retp, s, call_imm_nop, branch, C64XP,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
- FIX1(FIX(z, 1)),
- OP2(OLCST, OWRETREG1),
- ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
-
-INSN(rint, nfu, rint, 1cycle, C64XP, 0,
- FIX1(FIX(s, 0)),
- OP0(),
- ENC0())
-
-INSNE(rotl, m_ui_xui_ui, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1d)),
- OP3(ORXREG1, ORREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(rotl, m_u5_xui_ui, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1e)),
- OP3(ORXREG1, OACST, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-
-INSN(rpack2, s, ext_1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX2(FIX(op, 0xb), FIX(z, 1)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(rsqrdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x2e), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGD1, OWREGD12),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(rsqrsp, s, 1_or_2_src, 1cycle, C67X, 0,
- FIX2(FIX(op, 0x3e), FIX(src1, 0)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(sadd, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x13)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sadd, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x31)),
- OP3(ORXREG1, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sadd, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x12)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sadd, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x30)),
- OP3(OACST, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sadd, s_si_xsi_si, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x20)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(sadd2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x0)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(saddsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x0e)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(saddsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x0f)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(saddsu2, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x1)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(saddus2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(saddu4, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x3)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(sat, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(op, 0x40), FIX(x, 0), FIX(src1, 0)),
- OP2(ORREGL1, OWREG1),
- ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-INSN(set, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x2)),
- OP4(ORREG1, OACST, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
- ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
-INSN(set, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x3b)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSN(shfl, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1c)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(shfl3, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x36)),
- OP3(ORREG1, ORXREG1, OWREGD1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(shl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x33)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shl, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x31), FIX(x, 0)),
- OP3(ORREGL1, ORREG1, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(shl, s_xui_ui_ul, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x13)),
- OP3(ORXREG1, ORREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x32)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-INSNE(shl, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x30), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSNE(shl, s_xui_u5_ul, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x12)),
- OP3(ORXREG1, OACST, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-
-INSN(shlmb, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x61)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(shlmb, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x9)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(shr, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x37)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shr, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x35), FIX(x, 0)),
- OP3(ORREGL1, ORREG1, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(shr, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x36)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-INSNE(shr, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x34), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSNE(shr2, s_xs2_ui_s2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x7)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shr2, s_xs2_u5_s2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x18)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-
-INSN(shrmb, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x62)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(shrmb, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0xa)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(shru, s_xui_ui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x27)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shru, s_ul_ui_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x25), FIX(x, 0)),
- OP3(ORREGL1, ORREG1, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(shru, s_xui_u5_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x26)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-INSNE(shru, s_ul_u5_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x24), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSNE(shru2, s_xu2_ui_u2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x8)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(shru2, s_xu2_u5_u2, s, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x19)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-
-INSN(sl, d, 1_or_2_src, store, C64XP,
- TIC6X_FLAG_STORE|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
- FIX3(FIX(s, 1), FIX(op, 0xd), FIX(src1, 0)),
- OP2(ORDREG1, OWMEMDW),
- ENC2(ENC(dst, reg, 0), ENC(src2, reg, 1)))
-
-INSN(smpy, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x1a)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(smpyh, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x02)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(smpyhl, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x0a)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(smpylh, m, mpy, 1616_m, C62X, 0,
- FIX1(FIX(op, 0x12)),
- OP3(ORREG1, ORXREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(smpy2, m, compound, 4cycle, C64X, 0,
- FIX1(FIX(op, 0x01)),
- OP3(ORREG1, ORXREG1, OWREGD4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-/* Contrary to SPRUFE8, this is the correct operand order for this
- instruction. */
-INSN(smpy32, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x19)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(spack2, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x2)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(spacku4, s, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x4)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(spdp, s, 1_or_2_src, 2cycle_dp, C67X, 0,
- FIX2(FIX(op, 0x02), FIX(src1, 0)),
- OP2(ORXREG1, OWREGD12),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(spint, l, 1_or_2_src, 4cycle, C67X, 0,
- FIX2(FIX(op, 0x0a), FIX(src1, 0)),
- OP2(ORXREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(spkernel, nfu_2, nfu, spkernel, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL,
- FIX1(FIX(s, 0)),
- OP2(OACST, OACST),
- ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1)))
-INSNE(spkernel, nfu_0, nfu, spkernel, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL|TIC6X_FLAG_MACRO,
- FIX2(FIX(s, 0), FIX(fstgfcyc, 0)),
- OP0(),
- ENC0())
-
-INSN(spkernelr, nfu, spkernelr, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL,
- FIX1(FIX(s, 0)),
- OP0(),
- ENC0())
-
-INSN(sploop, nfu, loop_buffer, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
- FIX4(FIX(s, 0), FIX(op, 0xc), FIX(csta, 0), RAN(cstb, 0, 13)),
- OP1(OACST),
- ENC1(ENC(cstb, ucst_minus_one, 0)))
-
-INSN(sploopd, nfu, loop_buffer, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
- FIX4(FIX(s, 0), FIX(op, 0xd), FIX(csta, 0), RAN(cstb, 0, 13)),
- OP1(OACST),
- ENC1(ENC(cstb, ucst_minus_one, 0)))
-
-INSN(sploopw, nfu, loop_buffer, 1cycle, C64XP,
- TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
- FIX4(FIX(s, 0), FIX(op, 0xf), FIX(csta, 0), RAN(cstb, 0, 13)),
- OP1(OACST),
- ENC1(ENC(cstb, ucst_minus_one, 0)))
-
-/* Contrary to SPRUFE8, this is the correct encoding for this
- instruction. */
-INSN(spmask, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK,
- FIX2(FIX(s, 0), FIX(op, 0x8)),
- OP1(OFULIST),
- ENC1(ENC(mask, spmask, 0)))
-
-INSN(spmaskr, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK,
- FIX2(FIX(s, 0), FIX(op, 0x9)),
- OP1(OFULIST),
- ENC1(ENC(mask, spmask, 0)))
-
-INSN(sptrunc, l, 1_or_2_src, 4cycle, C67X, 0,
- FIX2(FIX(op, 0x0b), FIX(src1, 0)),
- OP2(ORXREG1, OWREG4),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(sshl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x23)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(sshl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x22)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, ucst, 1), ENC(dst, reg, 2)))
-
-INSN(sshvl, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1c)),
- OP3(ORXREG1, ORREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-/* Contrary to SPRUFE8, this is the correct encoding for this
- instruction. */
-INSN(sshvr, m, compound, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x1a)),
- OP3(ORXREG1, ORREG1, OWREG2),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(ssub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x0f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(ssub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x1f)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(ssub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x0e)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(ssub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x2c)),
- OP3(OACST, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(ssub2, l, 1_or_2_src, 1cycle, C64XP, 0,
- FIX1(FIX(op, 0x64)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(stb, d, load_store, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 3), FIX(r, 0)),
- OP2(ORDREG1, OWMEMSB),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
- ENC(srcdst, reg, 0)))
-INSN(stb, d, load_store_long, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 3)),
- OP2(ORDREG1, OWMEMLB),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_byte, 1),
- ENC(dst, reg, 0)))
-
-INSN(stdw, d, load_store, store, C64X, TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 4), FIX(r, 1)),
- OP2(ORDREGD1, OWMEMSD),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
- ENC(srcdst, reg, 0)))
-
-INSN(sth, d, load_store, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 5), FIX(r, 0)),
- OP2(ORDREG1, OWMEMSH),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
- ENC(srcdst, reg, 0)))
-INSN(sth, d, load_store_long, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 5)),
- OP2(ORDREG1, OWMEMLH),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_half, 1),
- ENC(dst, reg, 0)))
-
-INSN(stndw, d, store_nonaligned, store, C64X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
- FIX0(),
- OP2(ORDREGD1, OWMEMND),
- ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset_noscale, 1), ENC(baseR, reg, 1),
- ENC(sc, scaled, 1), ENC(src, reg_shift, 0)))
-
-INSN(stnw, d, load_store, store, C64X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
- FIX2(FIX(op, 5), FIX(r, 1)),
- OP2(ORDREG1, OWMEMSW),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
- ENC(srcdst, reg, 0)))
-
-INSN(stw, d, load_store, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX2(FIX(op, 7), FIX(r, 0)),
- OP2(ORDREG1, OWMEMSW),
- ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
- ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
- ENC(srcdst, reg, 0)))
-INSN(stw, d, load_store_long, store, C62X,
- TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 7)),
- OP2(ORDREG1, OWMEMLW),
- ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_word, 1),
- ENC(dst, reg, 0)))
-
-INSNE(sub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x07)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x17)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x27)),
- OP3(ORREG1, ORXREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_xsi_si_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x37)),
- OP3(ORXREG1, ORREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x06)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x24)),
- OP3(OACST, ORREGL1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, l_xsi_s5_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x2)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(sub, l_sl_s5_sl, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x20), FIX(x, 0)),
- OP3(ORREGL1, OACST, OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src1, scst_negate, 1), ENC(src2, reg, 0),
- ENC(dst, reg, 2)))
-INSNE(sub, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x17)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x16)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-/* Contrary to SPRUFE8, this is the correct encoding for this
- instruction; this instruction can be predicated. */
-INSNE(sub, s_xsi_si_si, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x5)),
- OP3(ORXREG1, ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-INSNE(sub, s_xsi_s5_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
- FIX1(FIX(op, 0x6)),
- OP3(ORXREG1, OACST, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1),
- ENC(src2, reg, 0), ENC(dst, reg, 2)))
-INSNE(sub, d_si_si_si, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x11)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(sub, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x13)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-INSNE(sub, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0xc)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(subab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x31)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(subab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x33)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSN(subabs4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x5a)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(subah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x35)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(subah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x37)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSNE(subaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x39)),
- OP3(ORREG1, ORREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
- ENC(dst, reg, 2)))
-INSNE(subaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
- FIX1(FIX(op, 0x3b)),
- OP3(ORREG1, OACST, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
- ENC(dst, reg, 2)))
-
-INSN(subc, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x4b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(subdp, l_dp_xdp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x19)),
- OP3(ORREGD12, ORXREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subdp, l_xdp_dp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x1d)),
- OP3(ORXREGD12, ORREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subdp, s_dp_xdp_dp, s, l_1_or_2_src, addsubdp, C67XP,
- TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x73)),
- OP3(ORREGD12, ORXREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subdp, s_xdp_dp_dp, s, l_1_or_2_src, addsubdp, C67XP,
- TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x77)),
- OP3(ORXREGD12, ORREGD12, OWREGD67),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(subsp, l_sp_xsp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x11)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subsp, l_xsp_sp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x15)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subsp, s_sp_xsp_sp, s, l_1_or_2_src, 4cycle, C67XP,
- TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x71)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subsp, s_xsp_sp_sp, s, l_1_or_2_src, 4cycle, C67XP,
- TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x75)),
- OP3(ORXREG1, ORREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(src1, reg, 1), ENC(dst, reg, 2)))
-
-INSNE(subu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
- FIX1(FIX(op, 0x2f)),
- OP3(ORREG1, ORXREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(subu, l_xui_ui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x3f)),
- OP3(ORXREG1, ORREG1, OWREGL1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(sub2, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x04)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(sub2, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x11)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSN(sub2, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x5)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(sub4, l, 1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x66)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(swap2, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x1b), FIX(x, 0)),
- OP2(ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 0), ENC(dst, reg, 1)))
-INSN(swap2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
- FIX2(FIX(op, 0x10), FIX(x, 0)),
- OP2(ORREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 0), ENC(dst, reg, 1)))
-
-/* Contrary to SPRUFE8, this is the correct encoding for this
- instruction. */
-INSN(swap4, l, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x1)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(swe, nfu, swe, 1cycle, C64XP, 0,
- FIX1(FIX(s, 0)),
- OP0(),
- ENC0())
-
-INSN(swenr, nfu, swenr, 1cycle, C64XP, 0,
- FIX1(FIX(s, 0)),
- OP0(),
- ENC0())
-
-INSN(unpkhu4, l, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x03)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSN(unpkhu4, s, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x03)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(unpklu4, l, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x02)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-INSN(unpklu4, s, unary, 1cycle, C64X, 0,
- FIX1(FIX(op, 0x02)),
- OP2(ORXREG1, OWREG1),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSNE(xor, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x6f)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(xor, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x6e)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(xor, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x0b)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(xor, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
- FIX1(FIX(op, 0x0a)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(xor, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0xe)),
- OP3(ORREG1, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-INSNE(xor, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
- FIX1(FIX(op, 0xf)),
- OP3(OACST, ORXREG1, OWREG1),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(xormpy, m, 1_or_2_src, 4cycle, C64XP, 0,
- FIX1(FIX(op, 0x1b)),
- OP3(ORREG1, ORXREG1, OWREG4),
- ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
- ENC(src2, reg, 1), ENC(dst, reg, 2)))
-
-INSN(xpnd2, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x19)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(xpnd4, m, unary, 1616_m, C64X, 0,
- FIX1(FIX(op, 0x18)),
- OP2(ORXREG1, OWREG2),
- ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
- ENC(dst, reg, 1)))
-
-INSN(zero, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX2(FIX(h, 0), FIX(cst, 0)),
- OP1(OWREG1),
- ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
-INSN(zero, l, unary, 1cycle, C64X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
- FIX3(FIX(x, 0), FIX(op, 0x05), FIX(src2, 0)),
- OP1(OWREG1),
- ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
-INSNE(zero, l_sub, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
- FIX2(FIX(op, 0x07), FIX(x, 0)),
- OP1(OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0),
- ENC(dst, reg, 0)))
-INSNE(zero, l_sub_sl, l, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
- FIX2(FIX(op, 0x27), FIX(x, 0)),
- OP1(OWREGL1),
- ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0),
- ENC(dst, reg, 0)))
-INSNE(zero, d_mvk, d, 1_or_2_src, 1cycle, C64X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
- FIX3(FIX(op, 0x00), FIX(src1, 0), FIX(src2, 0)),
- OP1(OWREG1),
- ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
-INSNE(zero, d_sub, d, 1_or_2_src, 1cycle, C62X,
- TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
- FIX1(FIX(op, 0x11)),
- OP1(OWREG1),
- ENC4(ENC(s, fu, 0), ENC(src2, reg_unused, 0), ENC(src1, reg_unused, 0),
- ENC(dst, reg, 0)))
-
-#undef TIC6X_INSN_C64X_AND_C67X
-#undef tic6x_insn_format_nfu_s_branch_nop_cst
-#undef tic6x_insn_format_s_l_1_or_2_src
-#undef RAN
-#undef FIX
-#undef FIX0
-#undef FIX1
-#undef FIX2
-#undef FIX3
-#undef FIX4
-#undef OP0
-#undef OP1
-#undef OP2
-#undef OP3
-#undef OP4
-#undef OACST
-#undef OLCST
-#undef OFULIST
-#undef ORIRP1
-#undef ORNRP1
-#undef OWREG1
-#undef OWRETREG1
-#undef ORREG1
-#undef ORDREG1
-#undef ORWREG1
-#undef ORAREG1
-#undef ORXREG1
-#undef ORREG12
-#undef ORREG14
-#undef ORXREG14
-#undef OWREG2
-#undef OWREG4
-#undef OWREG9
-#undef OWDREG5
-#undef OWREGL1
-#undef ORREGL1
-#undef OWREGD1
-#undef OWREGD12
-#undef OWREGD4
-#undef ORREGD1
-#undef OWREGD45
-#undef OWREGD67
-#undef ORDREGD1
-#undef OWDREGD5
-#undef ORREGD12
-#undef ORXREGD12
-#undef ORREGD1234
-#undef ORREGD1324
-#undef OWREGD910
-#undef ORCREG1
-#undef OWCREG1
-#undef ORMEMDW
-#undef OWMEMDW
-#undef ORMEMSB
-#undef OWMEMSB
-#undef ORMEMLB
-#undef OWMEMLB
-#undef ORMEMSH
-#undef OWMEMSH
-#undef ORMEMLH
-#undef OWMEMLH
-#undef ORMEMSW
-#undef OWMEMSW
-#undef ORMEMLW
-#undef OWMEMLW
-#undef ORMEMSD
-#undef OWMEMSD
-#undef ORMEMND
-#undef OWMEMND
-#undef ENC
-#undef ENC0
-#undef ENC1
-#undef ENC2
-#undef ENC3
-#undef ENC4
-#undef ENC5
-#undef ENC6
-#undef ENC7
diff --git a/include/opcode/tic6x.h b/include/opcode/tic6x.h
deleted file mode 100644
index 2a7a2463d..000000000
--- a/include/opcode/tic6x.h
+++ /dev/null
@@ -1,613 +0,0 @@
-/* TI C6X opcode information.
- Copyright 2010, 2011
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef OPCODE_TIC6X_H
-#define OPCODE_TIC6X_H
-
-#include "bfd.h"
-#include "symcat.h"
-
-/* A field in an instruction format. The names are based on those
- used in the architecture manuals. */
-typedef enum
- {
- tic6x_field_baseR,
- tic6x_field_creg,
- tic6x_field_cst,
- tic6x_field_csta,
- tic6x_field_cstb,
- tic6x_field_dst,
- tic6x_field_fstgfcyc,
- tic6x_field_h,
- tic6x_field_mask,
- tic6x_field_mode,
- tic6x_field_offsetR,
- tic6x_field_op,
- tic6x_field_p,
- tic6x_field_r,
- tic6x_field_s,
- tic6x_field_sc,
- tic6x_field_src,
- tic6x_field_src1,
- tic6x_field_src2,
- tic6x_field_srcdst,
- tic6x_field_x,
- tic6x_field_y,
- tic6x_field_z
- } tic6x_insn_field_id;
-
-typedef struct
-{
- /* The name used to reference the field. */
- tic6x_insn_field_id field_id;
-
- /* The least-significant bit position in the field. */
- unsigned short low_pos;
-
- /* The number of bits in the field. */
- unsigned short width;
-} tic6x_insn_field;
-
-/* Maximum number of variable fields in an instruction format. */
-#define TIC6X_MAX_INSN_FIELDS 11
-
-/* A particular instruction format. */
-typedef struct
-{
- /* How many bits in the instruction. */
- unsigned int num_bits;
-
- /* Constant bits in the instruction. */
- unsigned int cst_bits;
-
- /* Mask matching those bits. */
- unsigned int mask;
-
- /* The number of instruction fields. */
- unsigned int num_fields;
-
- /* Descriptions of instruction fields. */
- tic6x_insn_field fields[TIC6X_MAX_INSN_FIELDS];
-} tic6x_insn_format;
-
-/* An index into the table of instruction formats. */
-typedef enum
- {
-#define FMT(name, num_bits, cst_bits, mask, fields) \
- CONCAT2(tic6x_insn_format_, name),
-#include "tic6x-insn-formats.h"
-#undef FMT
- tic6x_insn_format_max
- } tic6x_insn_format_id;
-
-/* The table itself. */
-extern const tic6x_insn_format tic6x_insn_format_table[tic6x_insn_format_max];
-
-/* If instruction format FMT has a field FIELD, return a pointer to
- the description of that field; otherwise return NULL. */
-
-const tic6x_insn_field *tic6x_field_from_fmt (const tic6x_insn_format *fmt,
- tic6x_insn_field_id field);
-
-/* Description of a field (in an instruction format) whose value is
- fixed, or constrained to be in a particular range, in a particular
- opcode. */
-typedef struct
-{
- /* The name of the field. */
- tic6x_insn_field_id field_id;
-
- /* The least value of the field in this instruction. */
- unsigned int min_val;
-
- /* The greatest value of the field in this instruction. */
- unsigned int max_val;
-} tic6x_fixed_field;
-
-/* Bit-masks for defining instructions present on some subset of
- processors; each indicates an instruction present on that processor
- and those that are supersets of it. The options passed to the
- assembler determine a bit-mask ANDed with the bit-mask indicating
- when the instruction was added to determine whether the instruction
- is enabled. */
-#define TIC6X_INSN_C62X 0x0001
-#define TIC6X_INSN_C64X 0x0002
-#define TIC6X_INSN_C64XP 0x0004
-#define TIC6X_INSN_C67X 0x0008
-#define TIC6X_INSN_C67XP 0x0010
-#define TIC6X_INSN_C674X 0x0020
-
-/* Flags with further information about an opcode table entry. */
-
-/* Only used by the assembler, not the disassembler. */
-#define TIC6X_FLAG_MACRO 0x0001
-
-/* Must be first in its execute packet. */
-#define TIC6X_FLAG_FIRST 0x0002
-
-/* Multi-cycle NOP (not used for the NOP n instruction itself, which
- is only a multicycle NOP if n > 1). */
-#define TIC6X_FLAG_MCNOP 0x0004
-
-/* Cannot be in parallel with a multi-cycle NOP. */
-#define TIC6X_FLAG_NO_MCNOP 0x0008
-
-/* Load instruction. */
-#define TIC6X_FLAG_LOAD 0x0010
-
-/* Store instruction. */
-#define TIC6X_FLAG_STORE 0x0020
-
-/* Unaligned memory operation. */
-#define TIC6X_FLAG_UNALIGNED 0x0040
-
-/* Only on side B. */
-#define TIC6X_FLAG_SIDE_B_ONLY 0x0080
-
-/* Only on data path T2. */
-#define TIC6X_FLAG_SIDE_T2_ONLY 0x0100
-
-/* Does not support cross paths. */
-#define TIC6X_FLAG_NO_CROSS 0x0200
-
-/* Annotate this branch instruction as a call. */
-#define TIC6X_FLAG_CALL 0x0400
-
-/* Annotate this branch instruction as a return. */
-#define TIC6X_FLAG_RETURN 0x0800
-
-/* This instruction starts a software pipelined loop. */
-#define TIC6X_FLAG_SPLOOP 0x1000
-
-/* This instruction ends a software pipelined loop. */
-#define TIC6X_FLAG_SPKERNEL 0x2000
-
-/* This instruction takes a list of functional units as parameters;
- although described as having one parameter, the number may be 0 to
- 8. */
-#define TIC6X_FLAG_SPMASK 0x4000
-
-/* When more than one opcode matches the assembly source, prefer the
- one with the highest value for this bit-field. If two opcode table
- entries can match the same syntactic form, they must have different
- values here. */
-#define TIC6X_PREFER_VAL(n) (((n) & 0x8000) >> 15)
-#define TIC6X_FLAG_PREFER(n) ((n) << 15)
-#define TIC6X_NUM_PREFER 2
-
-/* Maximum number of fixed fields for a particular opcode. */
-#define TIC6X_MAX_FIXED_FIELDS 4
-
-/* Maximum number of operands in the opcode table for a particular
- opcode. */
-#define TIC6X_MAX_OPERANDS 4
-
-/* Maximum number of operands in the source code for a particular
- opcode (different from the number in the opcode table for SPMASK
- and SPMASKR). */
-#define TIC6X_MAX_SOURCE_OPERANDS 8
-
-/* Maximum number of variable fields for a particular opcode. */
-#define TIC6X_MAX_VAR_FIELDS 7
-
-/* Which functional units an opcode uses. This only describes the
- basic choice of D, L, M, S or no functional unit; other fields are
- used to describe further restrictions (instructions only operating
- on one side), use of cross paths and load/store instructions using
- one side for the address and the other side for the source or
- destination register. */
-typedef enum
- {
- tic6x_func_unit_d,
- tic6x_func_unit_l,
- tic6x_func_unit_m,
- tic6x_func_unit_s,
- tic6x_func_unit_nfu
- } tic6x_func_unit_base;
-
-/* Possible forms of source operand. */
-typedef enum
- {
- /* An assembly-time constant. */
- tic6x_operand_asm_const,
- /* A link-time constant. */
- tic6x_operand_link_const,
- /* A register, from the same side as the functional unit
- selected. */
- tic6x_operand_reg,
- /* A register, that is from the other side if a cross path is
- used. */
- tic6x_operand_xreg,
- /* A register, that is from the side of the data path
- selected. */
- tic6x_operand_dreg,
- /* An address register usable with 15-bit offsets (B14 or B15).
- This is from the same side as the functional unit if a cross
- path is not used, and the other side if a cross path is
- used. */
- tic6x_operand_areg,
- /* A return address register (A3 or B3), from the same side as the
- functional unit selected. */
- tic6x_operand_retreg,
- /* A register pair, from the same side as the functional unit
- selected. */
- tic6x_operand_regpair,
- /* A register pair, that is from the other side if a cross path is
- used. */
- tic6x_operand_xregpair,
- /* A register pair, from the side of the data path selected. */
- tic6x_operand_dregpair,
- /* The literal string "irp" (case-insensitive). */
- tic6x_operand_irp,
- /* The literal string "nrp" (case-insensitive). */
- tic6x_operand_nrp,
- /* A control register. */
- tic6x_operand_ctrl,
- /* A memory reference (base and offset registers from the side of
- the functional unit selected), using either unsigned 5-bit
- constant or register offset, if any offset; register offsets
- cannot use unscaled () syntax. */
- tic6x_operand_mem_short,
- /* A memory reference (base and offset registers from the side of
- the functional unit selected), using either unsigned 5-bit
- constant or register offset, if any offset; register offsets
- can use unscaled () syntax (for LDNDW and STNDW). */
- tic6x_operand_mem_ndw,
- /* A memory reference using 15-bit link-time constant offset
- relative to B14 or B15. */
- tic6x_operand_mem_long,
- /* A memory reference that only dereferences a register with no
- further adjustments (*REG), that register being from the side
- of the functional unit selected. */
- tic6x_operand_mem_deref,
- /* A functional unit name or a list thereof (for SPMASK and
- SPMASKR). */
- tic6x_operand_func_unit
- } tic6x_operand_form;
-
-/* Whether something is, or can be, read or written. */
-typedef enum
- {
- tic6x_rw_none,
- tic6x_rw_read,
- tic6x_rw_write,
- tic6x_rw_read_write
- } tic6x_rw;
-
-/* Description of a source operand and how it is used. */
-typedef struct
-{
- /* The syntactic form of the operand. */
- tic6x_operand_form form;
-
- /* For non-constant operands, the size in bytes (1, 2, 4, 5 or
- 8). Ignored for constant operands. */
- unsigned int size;
-
- /* Whether the operand is read, written or both. In addition to the
- operations described here, address registers are read on cycle 1
- regardless of when the memory operand is read or written, and may
- be modified as described by the addressing mode, and control
- registers may be implicitly read by some instructions. There are
- also some special cases not fully described by this
- structure.
-
- - For mpydp, the low part of src2 is read on cycles 1 and 3 but
- not 2, and the high part on cycles 2 and 4 but not 3.
-
- - The swap2 pseudo-operation maps to packlh2, reading the first
- operand of swap2 twice. */
- tic6x_rw rw;
-
- /* The first and last cycles (1 for E1, etc.) at which the operand,
- or the low part for two-register operands, is read or
- written. */
- unsigned short low_first;
- unsigned short low_last;
-
- /* Likewise, for the high part. */
- unsigned short high_first;
- unsigned short high_last;
-} tic6x_operand_info;
-
-/* Ways of converting an operand or functional unit specifier to a
- field value. */
-typedef enum
- {
- /* Store an unsigned assembly-time constant (which must fit) in
- the field. */
- tic6x_coding_ucst,
- /* Store a signed constant (which must fit) in the field. This
- may be used both for assembly-time constants and for link-time
- constants. */
- tic6x_coding_scst,
- /* Subtract one from an unsigned assembly-time constant (which
- must be strictly positive before the subtraction) and store the
- value (which must fit) in the field. */
- tic6x_coding_ucst_minus_one,
- /* Negate a signed assembly-time constant, and store the result of
- negation (which must fit) in the field. Used only for
- pseudo-operations. */
- tic6x_coding_scst_negate,
- /* Store an unsigned link-time constant, implicitly DP-relative
- and counting in bytes, in the field. For expression operands,
- assembly-time constants are encoded as-is. For memory
- reference operands, the offset is encoded as-is if [] syntax is
- used and shifted if () is used. */
- tic6x_coding_ulcst_dpr_byte,
- /* Store an unsigned link-time constant, implicitly DP-relative
- and counting in half-words, in the field. For expression
- operands, assembly-time constants are encoded as-is. For
- memory reference operands, the offset is encoded as-is if []
- syntax is used and shifted if () is used. */
- tic6x_coding_ulcst_dpr_half,
- /* Store an unsigned link-time constant, implicitly DP-relative
- and counting in words, in the field. For expression operands,
- assembly-time constants are encoded as-is. For memory
- reference operands, the offset is encoded as-is if [] syntax is
- used and shifted if () is used. */
- tic6x_coding_ulcst_dpr_word,
- /* Store the low 16 bits of a link-time constant in the field;
- considered unsigned for disassembly. */
- tic6x_coding_lcst_low16,
- /* Store the high 16 bits of a link-time constant in the field;
- considered unsigned for disassembly. */
- tic6x_coding_lcst_high16,
- /* Store a signed PC-relative value (address of label minus
- address of fetch packet containing the current instruction,
- counted in words) in the field. */
- tic6x_coding_pcrel,
- /* Likewise, but counting in half-words if in a header-based fetch
- packet. */
- tic6x_coding_pcrel_half,
- /* Encode the register number (even number for a register pair) in
- the field. When applied to a memory reference, encode the base
- register. */
- tic6x_coding_reg,
- /* Store 0 for register B14, 1 for register B15. When applied to
- a memory reference, encode the base register. */
- tic6x_coding_areg,
- /* Store the low part of a control register address. */
- tic6x_coding_crlo,
- /* Store the high part of a control register address. */
- tic6x_coding_crhi,
- /* Encode the even register number for a register pair, shifted
- right by one bit. */
- tic6x_coding_reg_shift,
- /* Store either the offset register or the 5-bit unsigned offset
- for a memory reference. If an offset uses the unscaled ()
- form, which is only permitted with constants, it is scaled
- according to the access size of the operand before being
- stored. */
- tic6x_coding_mem_offset,
- /* Store either the offset register or the 5-bit unsigned offset
- for a memory reference, but with no scaling applied to the
- offset (for nonaligned doubleword operations). */
- tic6x_coding_mem_offset_noscale,
- /* Store the addressing mode for a memory reference. */
- tic6x_coding_mem_mode,
- /* Store whether a memory reference is scaled. */
- tic6x_coding_scaled,
- /* Store the stage in an SPKERNEL instruction in the upper part of
- the field. */
- tic6x_coding_fstg,
- /* Store the cycle in an SPKERNEL instruction in the lower part of
- the field. */
- tic6x_coding_fcyc,
- /* Store the mask bits for functional units in the field in an
- SPMASK or SPMASKR instruction. */
- tic6x_coding_spmask,
- /* Store the number of a register that is unused, or minimally
- used, in this execute packet. The number must be the same for
- all uses of this coding in a single instruction, but may be
- different for different instructions in the execute packet.
- This is for the "zero" pseudo-operation. This is not safe when
- reads may occur from instructions in previous execute packets;
- in such cases the programmer or compiler should use explicit
- "sub" instructions for those cases of "zero" that cannot be
- implemented as "mvk" for the processor specified. */
- tic6x_coding_reg_unused,
- /* Store 1 if the functional unit used is on side B, 0 for side
- A. */
- tic6x_coding_fu,
- /* Store 1 if the data path used (source register for store,
- destination for load) is on side B, 0 for side A. */
- tic6x_coding_data_fu,
- /* Store 1 if the cross path is being used, 0 otherwise. */
- tic6x_coding_xpath
- } tic6x_coding_method;
-
-/* How to generate the value of a particular field. */
-typedef struct
-{
- /* The name of the field. */
- tic6x_insn_field_id field_id;
-
- /* How it is encoded. */
- tic6x_coding_method coding_method;
-
- /* Source operand number, if any. */
- unsigned int operand_num;
-} tic6x_coding_field;
-
-/* Types of instruction for pipeline purposes. The type determines
- functional unit and cross path latency (when the same functional
- unit can be used by other instructions, when the same cross path
- can be used by other instructions). */
-typedef enum
- {
- tic6x_pipeline_nop,
- tic6x_pipeline_1cycle,
- tic6x_pipeline_1616_m,
- tic6x_pipeline_store,
- tic6x_pipeline_mul_ext,
- tic6x_pipeline_load,
- tic6x_pipeline_branch,
- tic6x_pipeline_2cycle_dp,
- tic6x_pipeline_4cycle,
- tic6x_pipeline_intdp,
- tic6x_pipeline_dpcmp,
- tic6x_pipeline_addsubdp,
- tic6x_pipeline_mpyi,
- tic6x_pipeline_mpyid,
- tic6x_pipeline_mpydp,
- tic6x_pipeline_mpyspdp,
- tic6x_pipeline_mpysp2dp
- } tic6x_pipeline_type;
-
-/* Description of a control register. */
-typedef struct
-{
- /* The name of the register. */
- const char *name;
-
- /* Which ISA variants include this control register. */
- unsigned short isa_variants;
-
- /* Whether it can be read, written or both (in supervisor mode).
- Some registers use the same address, but different names, for
- reading and writing. */
- tic6x_rw rw;
-
- /* crlo value for this register. */
- unsigned int crlo;
-
- /* Mask that, ANDed with the crhi value in the instruction, must be
- 0. 0 is always generated when generating code. */
- unsigned int crhi_mask;
-} tic6x_ctrl;
-
-/* An index into the table of control registers. */
-typedef enum
- {
-#define CTRL(name, isa, rw, crlo, crhi_mask) \
- CONCAT2(tic6x_ctrl_,name),
-#include "tic6x-control-registers.h"
-#undef CTRL
- tic6x_ctrl_max
- } tic6x_ctrl_id;
-
-/* The table itself. */
-extern const tic6x_ctrl tic6x_ctrl_table[tic6x_ctrl_max];
-
-/* An entry in the opcode table. */
-typedef struct
-{
- /* The name of the instruction. */
- const char *name;
-
- /* Functional unit used by this instruction (basic information). */
- tic6x_func_unit_base func_unit;
-
- /* The format of this instruction. */
- tic6x_insn_format_id format;
-
- /* The pipeline type of this instruction. */
- tic6x_pipeline_type type;
-
- /* Which ISA variants include this instruction. */
- unsigned short isa_variants;
-
- /* Flags for this instruction. */
- unsigned short flags;
-
- /* Number of fixed fields, or fields with restricted value ranges,
- for this instruction. */
- unsigned int num_fixed_fields;
-
- /* Values of fields fixed for this instruction. */
- tic6x_fixed_field fixed_fields[TIC6X_MAX_FIXED_FIELDS];
-
- /* The number of operands in the source form of this
- instruction. */
- unsigned int num_operands;
-
- /* Information about individual operands. */
- tic6x_operand_info operand_info[TIC6X_MAX_OPERANDS];
-
- /* The number of variable fields for this instruction with encoding
- instructions explicitly given. */
- unsigned int num_variable_fields;
-
- /* How fields (other than ones with fixed value) are computed from
- the source operands and functional unit specifiers. In addition
- to fields specified here:
-
- - creg, if present, is set from the predicate, along with z which
- must be present if creg is present.
-
- - p, if present (on all non-compact instructions), is set from
- the parallel bars.
- */
- tic6x_coding_field variable_fields[TIC6X_MAX_VAR_FIELDS];
-} tic6x_opcode;
-
-/* An index into the table of opcodes. */
-typedef enum
- {
-#define INSN(name, func_unit, format, type, isa, flags, fixed, ops, var) \
- CONCAT6(tic6x_opcode_,name,_,func_unit,_,format),
-#define INSNE(name, e, func_unit, format, type, isa, flags, fixed, ops, var) \
- CONCAT4(tic6x_opcode_,name,_,e),
-#include "tic6x-opcode-table.h"
-#undef INSN
-#undef INSNE
- tic6x_opcode_max
- } tic6x_opcode_id;
-
-/* The table itself. */
-extern const tic6x_opcode tic6x_opcode_table[tic6x_opcode_max];
-
-/* A linked list of opcodes. */
-typedef struct tic6x_opcode_list_tag
-{
- tic6x_opcode_id id;
- struct tic6x_opcode_list_tag *next;
-} tic6x_opcode_list;
-
-/* The information from a fetch packet header. */
-typedef struct
-{
- /* The header itself. */
- unsigned int header;
-
- /* Whether each word uses compact instructions. */
- bfd_boolean word_compact[7];
-
- /* Whether loads are protected. */
- bfd_boolean prot;
-
- /* Whether instructions use the high register set. */
- bfd_boolean rs;
-
- /* Data size. */
- unsigned int dsz;
-
- /* Whether compact instructions in the S unit are decoded as
- branches. */
- bfd_boolean br;
-
- /* Whether compact instructions saturate. */
- bfd_boolean sat;
-
- /* P-bits. */
- bfd_boolean p_bits[14];
-} tic6x_fetch_packet_header;
-
-#endif /* OPCODE_TIC6X_H */
diff --git a/include/opcode/tic80.h b/include/opcode/tic80.h
deleted file mode 100644
index 43c84be57..000000000
--- a/include/opcode/tic80.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* tic80.h -- Header file for TI TMS320C80 (MV) opcode table
- Copyright 1996, 1997, 2003, 2010 Free Software Foundation, Inc.
- Written by Fred Fish (fnf@cygnus.com), Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef TIC80_H
-#define TIC80_H
-
-/* The opcode table is an array of struct tic80_opcode. */
-
-struct tic80_opcode
-{
- /* The opcode name. */
-
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with operands
- are zeroes. */
-
- unsigned long opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a mask
- containing ones indicating those bits which must match the opcode
- field, and zeroes indicating those bits which need not match (and are
- presumably filled in by operands). */
-
- unsigned long mask;
-
- /* Special purpose flags for this opcode. */
-
- unsigned char flags;
-
- /* An array of operand codes. Each code is an index into the operand
- table. They appear in the order which the operands must appear in
- assembly code, and are terminated by a zero. FIXME: Adjust size to
- match actual requirements when TIc80 support is complete */
-
- unsigned char operands[8];
-};
-
-/* The table itself is sorted by major opcode number, and is otherwise in
- the order in which the disassembler should consider instructions.
- FIXME: This isn't currently true. */
-
-extern const struct tic80_opcode tic80_opcodes[];
-extern const int tic80_num_opcodes;
-
-
-/* The operands table is an array of struct tic80_operand. */
-
-struct tic80_operand
-{
- /* The number of bits in the operand. */
-
- int bits;
-
- /* How far the operand is left shifted in the instruction. */
-
- int shift;
-
- /* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (op & ((1 << o->bits) - 1)) << o->shift;
- (i is the instruction which we are filling in, o is a pointer to
- this structure, and op is the opcode value; this assumes twos
- complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- 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)
- (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.
-
- If it is NULL, compute
- op = ((i) >> o->shift) & ((1 << o->bits) - 1);
- if ((o->flags & TIC80_OPERAND_SIGNED) != 0
- && (op & (1 << (o->bits - 1))) != 0)
- op -= 1 << o->bits;
- (i is the instruction, o is a pointer to this structure, and op
- is the result; this assumes twos complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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) (unsigned long instruction, int *invalid);
-
- /* One bit syntax flags. */
-
- unsigned long flags;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the tic80_opcodes table. */
-
-extern const struct tic80_operand tic80_operands[];
-
-
-/* Values defined for the flags field of a struct tic80_operand.
-
- Note that flags for all predefined symbols, such as the general purpose
- registers (ex: r10), control registers (ex: FPST), condition codes (ex:
- eq0.b), bit numbers (ex: gt.b), etc are large enough that they can be
- or'd into an int where the lower bits contain the actual numeric value
- that correponds to this predefined symbol. This way a single int can
- contain both the value of the symbol and it's type.
- */
-
-/* This operand must be an even register number. Floating point numbers
- for example are stored in even/odd register pairs. */
-
-#define TIC80_OPERAND_EVEN (1 << 0)
-
-/* This operand must be an odd register number and must be one greater than
- the register number of the previous operand. I.E. the second register in
- an even/odd register pair. */
-
-#define TIC80_OPERAND_ODD (1 << 1)
-
-/* This operand takes signed values. */
-
-#define TIC80_OPERAND_SIGNED (1 << 2)
-
-/* This operand may be either a predefined constant name or a numeric value.
- An example would be a condition code like "eq0.b" which has the numeric
- value 0x2. */
-
-#define TIC80_OPERAND_NUM (1 << 3)
-
-/* This operand should be wrapped in parentheses rather than separated
- from the previous one by a comma. This is used for various
- instructions, like the load and store instructions, which want
- their operands to look like "displacement(reg)" */
-
-#define TIC80_OPERAND_PARENS (1 << 4)
-
-/* This operand is a PC relative branch offset. The disassembler prints
- these symbolically if possible. Note that the offsets are taken as word
- offsets. */
-
-#define TIC80_OPERAND_PCREL (1 << 5)
-
-/* This flag is a hint to the disassembler for using hex as the prefered
- printing format, even for small positive or negative immediate values.
- Normally values in the range -999 to 999 are printed as signed decimal
- values and other values are printed in hex. */
-
-#define TIC80_OPERAND_BITFIELD (1 << 6)
-
-/* This operand may have a ":m" modifier specified by bit 17 in a short
- immediate form instruction. */
-
-#define TIC80_OPERAND_M_SI (1 << 7)
-
-/* This operand may have a ":m" modifier specified by bit 15 in a long
- immediate or register form instruction. */
-
-#define TIC80_OPERAND_M_LI (1 << 8)
-
-/* This operand may have a ":s" modifier specified in bit 11 in a long
- immediate or register form instruction. */
-
-#define TIC80_OPERAND_SCALED (1 << 9)
-
-/* This operand is a floating point value */
-
-#define TIC80_OPERAND_FLOAT (1 << 10)
-
-/* This operand is an byte offset from a base relocation. The lower
- two bits of the final relocated address are ignored when the value is
- written to the program counter. */
-
-#define TIC80_OPERAND_BASEREL (1 << 11)
-
-/* This operand is an "endmask" field for a shift instruction.
- It is treated special in that it can have values of 0-32,
- where 0 and 32 result in the same instruction. The assembler
- must be able to accept both endmask values. This disassembler
- has no way of knowing from the instruction which value was
- given at assembly time, so it just uses '0'. */
-
-#define TIC80_OPERAND_ENDMASK (1 << 12)
-
-/* This operand is one of the 32 general purpose registers.
- The disassembler prints these with a leading 'r'. */
-
-#define TIC80_OPERAND_GPR (1 << 27)
-
-/* This operand is a floating point accumulator register.
- The disassembler prints these with a leading 'a'. */
-
-#define TIC80_OPERAND_FPA ( 1 << 28)
-
-/* This operand is a control register number, either numeric or
- symbolic (like "EIF", "EPC", etc).
- The disassembler prints these symbolically. */
-
-#define TIC80_OPERAND_CR (1 << 29)
-
-/* This operand is a condition code, either numeric or
- symbolic (like "eq0.b", "ne0.w", etc).
- The disassembler prints these symbolically. */
-
-#define TIC80_OPERAND_CC (1 << 30)
-
-/* This operand is a bit number, either numeric or
- symbolic (like "eq.b", "or.f", etc).
- The disassembler prints these symbolically.
- Note that they appear in the instruction in 1's complement relative
- to the values given in the manual. */
-
-#define TIC80_OPERAND_BITNUM (1 << 31)
-
-/* This mask is used to strip operand bits from an int that contains
- both operand bits and a numeric value in the lsbs. */
-
-#define TIC80_OPERAND_MASK (TIC80_OPERAND_GPR | TIC80_OPERAND_FPA | TIC80_OPERAND_CR | TIC80_OPERAND_CC | TIC80_OPERAND_BITNUM)
-
-
-/* Flag bits for the struct tic80_opcode flags field. */
-
-#define TIC80_VECTOR 01 /* Is a vector instruction */
-#define TIC80_NO_R0_DEST 02 /* Register r0 cannot be a destination register */
-
-
-/* The opcodes library contains a table that allows translation from predefined
- symbol names to numeric values, and vice versa. */
-
-/* Structure to hold information about predefined symbols. */
-
-struct predefined_symbol
-{
- char *name; /* name to recognize */
- int value;
-};
-
-#define PDS_NAME(pdsp) ((pdsp) -> name)
-#define PDS_VALUE(pdsp) ((pdsp) -> value)
-
-/* Translation array. */
-extern const struct predefined_symbol tic80_predefined_symbols[];
-/* How many members in the array. */
-extern const int tic80_num_predefined_symbols;
-
-/* Translate value to symbolic name. */
-const char *tic80_value_to_symbol (int val, int class);
-
-/* 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/tilegx.h b/include/opcode/tilegx.h
deleted file mode 100644
index 95a9ca7d2..000000000
--- a/include/opcode/tilegx.h
+++ /dev/null
@@ -1,1302 +0,0 @@
-/* TILE-Gx opcode information.
- *
- * Copyright 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-#ifndef opcode_tile_h
-#define opcode_tile_h
-
-typedef unsigned long long tilegx_bundle_bits;
-
-
-enum
-{
- TILEGX_MAX_OPERANDS = 4 /* bfexts */
-};
-
-typedef enum
-{
- TILEGX_OPC_BPT,
- TILEGX_OPC_INFO,
- TILEGX_OPC_INFOL,
- TILEGX_OPC_MOVE,
- TILEGX_OPC_MOVEI,
- TILEGX_OPC_MOVELI,
- TILEGX_OPC_PREFETCH,
- TILEGX_OPC_PREFETCH_ADD_L1,
- TILEGX_OPC_PREFETCH_ADD_L1_FAULT,
- TILEGX_OPC_PREFETCH_ADD_L2,
- TILEGX_OPC_PREFETCH_ADD_L2_FAULT,
- TILEGX_OPC_PREFETCH_ADD_L3,
- TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
- TILEGX_OPC_PREFETCH_L1,
- TILEGX_OPC_PREFETCH_L1_FAULT,
- TILEGX_OPC_PREFETCH_L2,
- TILEGX_OPC_PREFETCH_L2_FAULT,
- TILEGX_OPC_PREFETCH_L3,
- TILEGX_OPC_PREFETCH_L3_FAULT,
- TILEGX_OPC_RAISE,
- TILEGX_OPC_ADD,
- TILEGX_OPC_ADDI,
- TILEGX_OPC_ADDLI,
- TILEGX_OPC_ADDX,
- TILEGX_OPC_ADDXI,
- TILEGX_OPC_ADDXLI,
- TILEGX_OPC_ADDXSC,
- TILEGX_OPC_AND,
- TILEGX_OPC_ANDI,
- TILEGX_OPC_BEQZ,
- TILEGX_OPC_BEQZT,
- TILEGX_OPC_BFEXTS,
- TILEGX_OPC_BFEXTU,
- TILEGX_OPC_BFINS,
- TILEGX_OPC_BGEZ,
- TILEGX_OPC_BGEZT,
- TILEGX_OPC_BGTZ,
- TILEGX_OPC_BGTZT,
- TILEGX_OPC_BLBC,
- TILEGX_OPC_BLBCT,
- TILEGX_OPC_BLBS,
- TILEGX_OPC_BLBST,
- TILEGX_OPC_BLEZ,
- TILEGX_OPC_BLEZT,
- TILEGX_OPC_BLTZ,
- TILEGX_OPC_BLTZT,
- TILEGX_OPC_BNEZ,
- TILEGX_OPC_BNEZT,
- TILEGX_OPC_CLZ,
- TILEGX_OPC_CMOVEQZ,
- TILEGX_OPC_CMOVNEZ,
- TILEGX_OPC_CMPEQ,
- TILEGX_OPC_CMPEQI,
- TILEGX_OPC_CMPEXCH,
- TILEGX_OPC_CMPEXCH4,
- TILEGX_OPC_CMPLES,
- TILEGX_OPC_CMPLEU,
- TILEGX_OPC_CMPLTS,
- TILEGX_OPC_CMPLTSI,
- TILEGX_OPC_CMPLTU,
- TILEGX_OPC_CMPLTUI,
- TILEGX_OPC_CMPNE,
- TILEGX_OPC_CMUL,
- TILEGX_OPC_CMULA,
- TILEGX_OPC_CMULAF,
- TILEGX_OPC_CMULF,
- TILEGX_OPC_CMULFR,
- TILEGX_OPC_CMULH,
- TILEGX_OPC_CMULHR,
- TILEGX_OPC_CRC32_32,
- TILEGX_OPC_CRC32_8,
- TILEGX_OPC_CTZ,
- TILEGX_OPC_DBLALIGN,
- TILEGX_OPC_DBLALIGN2,
- TILEGX_OPC_DBLALIGN4,
- TILEGX_OPC_DBLALIGN6,
- TILEGX_OPC_DRAIN,
- TILEGX_OPC_DTLBPR,
- TILEGX_OPC_EXCH,
- TILEGX_OPC_EXCH4,
- TILEGX_OPC_FDOUBLE_ADD_FLAGS,
- TILEGX_OPC_FDOUBLE_ADDSUB,
- TILEGX_OPC_FDOUBLE_MUL_FLAGS,
- TILEGX_OPC_FDOUBLE_PACK1,
- TILEGX_OPC_FDOUBLE_PACK2,
- TILEGX_OPC_FDOUBLE_SUB_FLAGS,
- TILEGX_OPC_FDOUBLE_UNPACK_MAX,
- TILEGX_OPC_FDOUBLE_UNPACK_MIN,
- TILEGX_OPC_FETCHADD,
- TILEGX_OPC_FETCHADD4,
- TILEGX_OPC_FETCHADDGEZ,
- TILEGX_OPC_FETCHADDGEZ4,
- TILEGX_OPC_FETCHAND,
- TILEGX_OPC_FETCHAND4,
- TILEGX_OPC_FETCHOR,
- TILEGX_OPC_FETCHOR4,
- TILEGX_OPC_FINV,
- TILEGX_OPC_FLUSH,
- TILEGX_OPC_FLUSHWB,
- TILEGX_OPC_FNOP,
- TILEGX_OPC_FSINGLE_ADD1,
- TILEGX_OPC_FSINGLE_ADDSUB2,
- TILEGX_OPC_FSINGLE_MUL1,
- TILEGX_OPC_FSINGLE_MUL2,
- TILEGX_OPC_FSINGLE_PACK1,
- TILEGX_OPC_FSINGLE_PACK2,
- TILEGX_OPC_FSINGLE_SUB1,
- TILEGX_OPC_ICOH,
- TILEGX_OPC_ILL,
- TILEGX_OPC_INV,
- TILEGX_OPC_IRET,
- TILEGX_OPC_J,
- TILEGX_OPC_JAL,
- TILEGX_OPC_JALR,
- TILEGX_OPC_JALRP,
- TILEGX_OPC_JR,
- TILEGX_OPC_JRP,
- TILEGX_OPC_LD,
- TILEGX_OPC_LD1S,
- TILEGX_OPC_LD1S_ADD,
- TILEGX_OPC_LD1U,
- TILEGX_OPC_LD1U_ADD,
- TILEGX_OPC_LD2S,
- TILEGX_OPC_LD2S_ADD,
- TILEGX_OPC_LD2U,
- TILEGX_OPC_LD2U_ADD,
- TILEGX_OPC_LD4S,
- TILEGX_OPC_LD4S_ADD,
- TILEGX_OPC_LD4U,
- TILEGX_OPC_LD4U_ADD,
- TILEGX_OPC_LD_ADD,
- TILEGX_OPC_LDNA,
- TILEGX_OPC_LDNA_ADD,
- TILEGX_OPC_LDNT,
- TILEGX_OPC_LDNT1S,
- TILEGX_OPC_LDNT1S_ADD,
- TILEGX_OPC_LDNT1U,
- TILEGX_OPC_LDNT1U_ADD,
- TILEGX_OPC_LDNT2S,
- TILEGX_OPC_LDNT2S_ADD,
- TILEGX_OPC_LDNT2U,
- TILEGX_OPC_LDNT2U_ADD,
- TILEGX_OPC_LDNT4S,
- TILEGX_OPC_LDNT4S_ADD,
- TILEGX_OPC_LDNT4U,
- TILEGX_OPC_LDNT4U_ADD,
- TILEGX_OPC_LDNT_ADD,
- TILEGX_OPC_LNK,
- TILEGX_OPC_MF,
- TILEGX_OPC_MFSPR,
- TILEGX_OPC_MM,
- TILEGX_OPC_MNZ,
- TILEGX_OPC_MTSPR,
- TILEGX_OPC_MUL_HS_HS,
- TILEGX_OPC_MUL_HS_HU,
- TILEGX_OPC_MUL_HS_LS,
- TILEGX_OPC_MUL_HS_LU,
- TILEGX_OPC_MUL_HU_HU,
- TILEGX_OPC_MUL_HU_LS,
- TILEGX_OPC_MUL_HU_LU,
- TILEGX_OPC_MUL_LS_LS,
- TILEGX_OPC_MUL_LS_LU,
- TILEGX_OPC_MUL_LU_LU,
- TILEGX_OPC_MULA_HS_HS,
- TILEGX_OPC_MULA_HS_HU,
- TILEGX_OPC_MULA_HS_LS,
- TILEGX_OPC_MULA_HS_LU,
- TILEGX_OPC_MULA_HU_HU,
- TILEGX_OPC_MULA_HU_LS,
- TILEGX_OPC_MULA_HU_LU,
- TILEGX_OPC_MULA_LS_LS,
- TILEGX_OPC_MULA_LS_LU,
- TILEGX_OPC_MULA_LU_LU,
- TILEGX_OPC_MULAX,
- TILEGX_OPC_MULX,
- TILEGX_OPC_MZ,
- TILEGX_OPC_NAP,
- TILEGX_OPC_NOP,
- TILEGX_OPC_NOR,
- TILEGX_OPC_OR,
- TILEGX_OPC_ORI,
- TILEGX_OPC_PCNT,
- TILEGX_OPC_REVBITS,
- TILEGX_OPC_REVBYTES,
- TILEGX_OPC_ROTL,
- TILEGX_OPC_ROTLI,
- TILEGX_OPC_SHL,
- TILEGX_OPC_SHL16INSLI,
- TILEGX_OPC_SHL1ADD,
- TILEGX_OPC_SHL1ADDX,
- TILEGX_OPC_SHL2ADD,
- TILEGX_OPC_SHL2ADDX,
- TILEGX_OPC_SHL3ADD,
- TILEGX_OPC_SHL3ADDX,
- TILEGX_OPC_SHLI,
- TILEGX_OPC_SHLX,
- TILEGX_OPC_SHLXI,
- TILEGX_OPC_SHRS,
- TILEGX_OPC_SHRSI,
- TILEGX_OPC_SHRU,
- TILEGX_OPC_SHRUI,
- TILEGX_OPC_SHRUX,
- TILEGX_OPC_SHRUXI,
- TILEGX_OPC_SHUFFLEBYTES,
- TILEGX_OPC_ST,
- TILEGX_OPC_ST1,
- TILEGX_OPC_ST1_ADD,
- TILEGX_OPC_ST2,
- TILEGX_OPC_ST2_ADD,
- TILEGX_OPC_ST4,
- TILEGX_OPC_ST4_ADD,
- TILEGX_OPC_ST_ADD,
- TILEGX_OPC_STNT,
- TILEGX_OPC_STNT1,
- TILEGX_OPC_STNT1_ADD,
- TILEGX_OPC_STNT2,
- TILEGX_OPC_STNT2_ADD,
- TILEGX_OPC_STNT4,
- TILEGX_OPC_STNT4_ADD,
- TILEGX_OPC_STNT_ADD,
- TILEGX_OPC_SUB,
- TILEGX_OPC_SUBX,
- TILEGX_OPC_SUBXSC,
- TILEGX_OPC_SWINT0,
- TILEGX_OPC_SWINT1,
- TILEGX_OPC_SWINT2,
- TILEGX_OPC_SWINT3,
- TILEGX_OPC_TBLIDXB0,
- TILEGX_OPC_TBLIDXB1,
- TILEGX_OPC_TBLIDXB2,
- TILEGX_OPC_TBLIDXB3,
- TILEGX_OPC_V1ADD,
- TILEGX_OPC_V1ADDI,
- TILEGX_OPC_V1ADDUC,
- TILEGX_OPC_V1ADIFFU,
- TILEGX_OPC_V1AVGU,
- TILEGX_OPC_V1CMPEQ,
- TILEGX_OPC_V1CMPEQI,
- TILEGX_OPC_V1CMPLES,
- TILEGX_OPC_V1CMPLEU,
- TILEGX_OPC_V1CMPLTS,
- TILEGX_OPC_V1CMPLTSI,
- TILEGX_OPC_V1CMPLTU,
- TILEGX_OPC_V1CMPLTUI,
- TILEGX_OPC_V1CMPNE,
- TILEGX_OPC_V1DDOTPU,
- TILEGX_OPC_V1DDOTPUA,
- TILEGX_OPC_V1DDOTPUS,
- TILEGX_OPC_V1DDOTPUSA,
- TILEGX_OPC_V1DOTP,
- TILEGX_OPC_V1DOTPA,
- TILEGX_OPC_V1DOTPU,
- TILEGX_OPC_V1DOTPUA,
- TILEGX_OPC_V1DOTPUS,
- TILEGX_OPC_V1DOTPUSA,
- TILEGX_OPC_V1INT_H,
- TILEGX_OPC_V1INT_L,
- TILEGX_OPC_V1MAXU,
- TILEGX_OPC_V1MAXUI,
- TILEGX_OPC_V1MINU,
- TILEGX_OPC_V1MINUI,
- TILEGX_OPC_V1MNZ,
- TILEGX_OPC_V1MULTU,
- TILEGX_OPC_V1MULU,
- TILEGX_OPC_V1MULUS,
- TILEGX_OPC_V1MZ,
- TILEGX_OPC_V1SADAU,
- TILEGX_OPC_V1SADU,
- TILEGX_OPC_V1SHL,
- TILEGX_OPC_V1SHLI,
- TILEGX_OPC_V1SHRS,
- TILEGX_OPC_V1SHRSI,
- TILEGX_OPC_V1SHRU,
- TILEGX_OPC_V1SHRUI,
- TILEGX_OPC_V1SUB,
- TILEGX_OPC_V1SUBUC,
- TILEGX_OPC_V2ADD,
- TILEGX_OPC_V2ADDI,
- TILEGX_OPC_V2ADDSC,
- TILEGX_OPC_V2ADIFFS,
- TILEGX_OPC_V2AVGS,
- TILEGX_OPC_V2CMPEQ,
- TILEGX_OPC_V2CMPEQI,
- TILEGX_OPC_V2CMPLES,
- TILEGX_OPC_V2CMPLEU,
- TILEGX_OPC_V2CMPLTS,
- TILEGX_OPC_V2CMPLTSI,
- TILEGX_OPC_V2CMPLTU,
- TILEGX_OPC_V2CMPLTUI,
- TILEGX_OPC_V2CMPNE,
- TILEGX_OPC_V2DOTP,
- TILEGX_OPC_V2DOTPA,
- TILEGX_OPC_V2INT_H,
- TILEGX_OPC_V2INT_L,
- TILEGX_OPC_V2MAXS,
- TILEGX_OPC_V2MAXSI,
- TILEGX_OPC_V2MINS,
- TILEGX_OPC_V2MINSI,
- TILEGX_OPC_V2MNZ,
- TILEGX_OPC_V2MULFSC,
- TILEGX_OPC_V2MULS,
- TILEGX_OPC_V2MULTS,
- TILEGX_OPC_V2MZ,
- TILEGX_OPC_V2PACKH,
- TILEGX_OPC_V2PACKL,
- TILEGX_OPC_V2PACKUC,
- TILEGX_OPC_V2SADAS,
- TILEGX_OPC_V2SADAU,
- TILEGX_OPC_V2SADS,
- TILEGX_OPC_V2SADU,
- TILEGX_OPC_V2SHL,
- TILEGX_OPC_V2SHLI,
- TILEGX_OPC_V2SHLSC,
- TILEGX_OPC_V2SHRS,
- TILEGX_OPC_V2SHRSI,
- TILEGX_OPC_V2SHRU,
- TILEGX_OPC_V2SHRUI,
- TILEGX_OPC_V2SUB,
- TILEGX_OPC_V2SUBSC,
- TILEGX_OPC_V4ADD,
- TILEGX_OPC_V4ADDSC,
- TILEGX_OPC_V4INT_H,
- TILEGX_OPC_V4INT_L,
- TILEGX_OPC_V4PACKSC,
- TILEGX_OPC_V4SHL,
- TILEGX_OPC_V4SHLSC,
- TILEGX_OPC_V4SHRS,
- TILEGX_OPC_V4SHRU,
- TILEGX_OPC_V4SUB,
- TILEGX_OPC_V4SUBSC,
- TILEGX_OPC_WH64,
- TILEGX_OPC_XOR,
- TILEGX_OPC_XORI,
- TILEGX_OPC_NONE
-} tilegx_mnemonic;
-
-/* 64-bit pattern for a { bpt ; nop } bundle. */
-#define TILEGX_BPT_BUNDLE 0x286a44ae51485000ULL
-
-
-
-static __inline unsigned int
-get_BFEnd_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_BFOpcodeExtension_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 24)) & 0xf);
-}
-
-static __inline unsigned int
-get_BFStart_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3f);
-}
-
-static __inline unsigned int
-get_BrOff_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x0000003f) |
- (((unsigned int)(n >> 37)) & 0x0001ffc0);
-}
-
-static __inline unsigned int
-get_BrType_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 54)) & 0x1f);
-}
-
-static __inline unsigned int
-get_Dest_Imm8_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x0000003f) |
- (((unsigned int)(n >> 43)) & 0x000000c0);
-}
-
-static __inline unsigned int
-get_Dest_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Imm16_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xffff);
-}
-
-static __inline unsigned int
-get_Imm16_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xffff);
-}
-
-static __inline unsigned int
-get_Imm8OpcodeExtension_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 20)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8OpcodeExtension_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 51)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xff);
-}
-
-static __inline unsigned int
-get_JumpOff_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x7ffffff);
-}
-
-static __inline unsigned int
-get_JumpOpcodeExtension_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 58)) & 0x1);
-}
-
-static __inline unsigned int
-get_MF_Imm14_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x3fff);
-}
-
-static __inline unsigned int
-get_MT_Imm14_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x0000003f) |
- (((unsigned int)(n >> 37)) & 0x00003fc0);
-}
-
-static __inline unsigned int
-get_Mode(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 62)) & 0x3);
-}
-
-static __inline unsigned int
-get_Opcode_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 28)) & 0x7);
-}
-
-static __inline unsigned int
-get_Opcode_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 59)) & 0x7);
-}
-
-static __inline unsigned int
-get_Opcode_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 27)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 58)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_Y2(tilegx_bundle_bits n)
-{
- return (((n >> 26)) & 0x00000001) |
- (((unsigned int)(n >> 56)) & 0x00000002);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x3);
-}
-
-static __inline unsigned int
-get_ShAmt_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_ShAmt_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_ShAmt_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_ShAmt_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_ShiftOpcodeExtension_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_ShiftOpcodeExtension_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_ShiftOpcodeExtension_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3);
-}
-
-static __inline unsigned int
-get_ShiftOpcodeExtension_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x3);
-}
-
-static __inline unsigned int
-get_SrcA_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 6)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 6)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y2(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 20)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcBDest_Y2(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 51)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_UnaryOpcodeExtension_X0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_UnaryOpcodeExtension_X1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_UnaryOpcodeExtension_Y0(tilegx_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_UnaryOpcodeExtension_Y1(tilegx_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-
-static __inline int
-sign_extend(int n, int num_bits)
-{
- int shift = (int)(sizeof(int) * 8 - num_bits);
- return (n << shift) >> shift;
-}
-
-
-
-static __inline tilegx_bundle_bits
-create_BFEnd_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_BFOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xf) << 24);
-}
-
-static __inline tilegx_bundle_bits
-create_BFStart_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 18);
-}
-
-static __inline tilegx_bundle_bits
-create_BrOff_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) |
- (((tilegx_bundle_bits)(n & 0x0001ffc0)) << 37);
-}
-
-static __inline tilegx_bundle_bits
-create_BrType_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x1f)) << 54);
-}
-
-static __inline tilegx_bundle_bits
-create_Dest_Imm8_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) |
- (((tilegx_bundle_bits)(n & 0x000000c0)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_Dest_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 0);
-}
-
-static __inline tilegx_bundle_bits
-create_Dest_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 31);
-}
-
-static __inline tilegx_bundle_bits
-create_Dest_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 0);
-}
-
-static __inline tilegx_bundle_bits
-create_Dest_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 31);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm16_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xffff) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm16_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0xffff)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8OpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 20);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8OpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0xff)) << 51);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0xff)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_Imm8_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0xff)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_JumpOff_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x7ffffff)) << 31);
-}
-
-static __inline tilegx_bundle_bits
-create_JumpOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x1)) << 58);
-}
-
-static __inline tilegx_bundle_bits
-create_MF_Imm14_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3fff)) << 37);
-}
-
-static __inline tilegx_bundle_bits
-create_MT_Imm14_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x0000003f)) << 31) |
- (((tilegx_bundle_bits)(n & 0x00003fc0)) << 37);
-}
-
-static __inline tilegx_bundle_bits
-create_Mode(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3)) << 62);
-}
-
-static __inline tilegx_bundle_bits
-create_Opcode_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x7) << 28);
-}
-
-static __inline tilegx_bundle_bits
-create_Opcode_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x7)) << 59);
-}
-
-static __inline tilegx_bundle_bits
-create_Opcode_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xf) << 27);
-}
-
-static __inline tilegx_bundle_bits
-create_Opcode_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0xf)) << 58);
-}
-
-static __inline tilegx_bundle_bits
-create_Opcode_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x00000001) << 26) |
- (((tilegx_bundle_bits)(n & 0x00000002)) << 56);
-}
-
-static __inline tilegx_bundle_bits
-create_RRROpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3ff) << 18);
-}
-
-static __inline tilegx_bundle_bits
-create_RRROpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3ff)) << 49);
-}
-
-static __inline tilegx_bundle_bits
-create_RRROpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 18);
-}
-
-static __inline tilegx_bundle_bits
-create_RRROpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3)) << 49);
-}
-
-static __inline tilegx_bundle_bits
-create_ShAmt_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_ShAmt_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_ShAmt_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_ShAmt_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_ShiftOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3ff) << 18);
-}
-
-static __inline tilegx_bundle_bits
-create_ShiftOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3ff)) << 49);
-}
-
-static __inline tilegx_bundle_bits
-create_ShiftOpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 18);
-}
-
-static __inline tilegx_bundle_bits
-create_ShiftOpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3)) << 49);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcA_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 6);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcA_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 37);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcA_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 6);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcA_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 37);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcA_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 20);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcBDest_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 51);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcB_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcB_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcB_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_SrcB_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_UnaryOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_UnaryOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilegx_bundle_bits
-create_UnaryOpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilegx_bundle_bits
-create_UnaryOpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilegx_bundle_bits)(n & 0x3f)) << 43);
-}
-
-
-typedef enum
-{
- TILEGX_PIPELINE_X0,
- TILEGX_PIPELINE_X1,
- TILEGX_PIPELINE_Y0,
- TILEGX_PIPELINE_Y1,
- TILEGX_PIPELINE_Y2,
-} tilegx_pipeline;
-
-#define tilegx_is_x_pipeline(p) ((int)(p) <= (int)TILEGX_PIPELINE_X1)
-
-typedef enum
-{
- TILEGX_OP_TYPE_REGISTER,
- TILEGX_OP_TYPE_IMMEDIATE,
- TILEGX_OP_TYPE_ADDRESS,
- TILEGX_OP_TYPE_SPR
-} tilegx_operand_type;
-
-/* These are the bits that determine if a bundle is in the X encoding. */
-#define TILEGX_BUNDLE_MODE_MASK ((tilegx_bundle_bits)3 << 62)
-
-enum
-{
- /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */
- TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE = 3,
-
- /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */
- TILEGX_NUM_PIPELINE_ENCODINGS = 5,
-
- /* Log base 2 of TILEGX_BUNDLE_SIZE_IN_BYTES. */
- TILEGX_LOG2_BUNDLE_SIZE_IN_BYTES = 3,
-
- /* Instructions take this many bytes. */
- TILEGX_BUNDLE_SIZE_IN_BYTES = 1 << TILEGX_LOG2_BUNDLE_SIZE_IN_BYTES,
-
- /* Log base 2 of TILEGX_BUNDLE_ALIGNMENT_IN_BYTES. */
- TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES = 3,
-
- /* Bundles should be aligned modulo this number of bytes. */
- TILEGX_BUNDLE_ALIGNMENT_IN_BYTES =
- (1 << TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES),
-
- /* Number of registers (some are magic, such as network I/O). */
- TILEGX_NUM_REGISTERS = 64,
-};
-
-
-struct tilegx_operand
-{
- /* Is this operand a register, immediate or address? */
- tilegx_operand_type type;
-
- /* The default relocation type for this operand. */
- signed int default_reloc : 16;
-
- /* How many bits is this value? (used for range checking) */
- unsigned int num_bits : 5;
-
- /* Is the value signed? (used for range checking) */
- unsigned int is_signed : 1;
-
- /* Is this operand a source register? */
- unsigned int is_src_reg : 1;
-
- /* Is this operand written? (i.e. is it a destination register) */
- unsigned int is_dest_reg : 1;
-
- /* Is this operand PC-relative? */
- unsigned int is_pc_relative : 1;
-
- /* By how many bits do we right shift the value before inserting? */
- unsigned int rightshift : 2;
-
- /* Return the bits for this operand to be ORed into an existing bundle. */
- tilegx_bundle_bits (*insert) (int op);
-
- /* Extract this operand and return it. */
- unsigned int (*extract) (tilegx_bundle_bits bundle);
-};
-
-
-extern const struct tilegx_operand tilegx_operands[];
-
-/* One finite-state machine per pipe for rapid instruction decoding. */
-extern const unsigned short * const
-tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS];
-
-
-struct tilegx_opcode
-{
- /* The opcode mnemonic, e.g. "add" */
- const char *name;
-
- /* The enum value for this mnemonic. */
- tilegx_mnemonic mnemonic;
-
- /* A bit mask of which of the five pipes this instruction
- is compatible with:
- X0 0x01
- X1 0x02
- Y0 0x04
- Y1 0x08
- Y2 0x10 */
- unsigned char pipes;
-
- /* How many operands are there? */
- unsigned char num_operands;
-
- /* Which register does this write implicitly, or TREG_ZERO if none? */
- unsigned char implicitly_written_register;
-
- /* Can this be bundled with other instructions (almost always true). */
- unsigned char can_bundle;
-
- /* The description of the operands. Each of these is an
- * index into the tilegx_operands[] table. */
- unsigned char operands[TILEGX_NUM_PIPELINE_ENCODINGS][TILEGX_MAX_OPERANDS];
-
-#if !defined(__KERNEL__) && !defined(_LIBC)
- /* A mask of which bits have predefined values for each pipeline.
- * This is useful for disassembly. */
- tilegx_bundle_bits fixed_bit_masks[TILEGX_NUM_PIPELINE_ENCODINGS];
-
- /* For each bit set in fixed_bit_masks, what the value is for this
- * instruction. */
- tilegx_bundle_bits fixed_bit_values[TILEGX_NUM_PIPELINE_ENCODINGS];
-#endif
-};
-
-extern const struct tilegx_opcode tilegx_opcodes[];
-
-/* Used for non-textual disassembly into structs. */
-struct tilegx_decoded_instruction
-{
- const struct tilegx_opcode *opcode;
- const struct tilegx_operand *operands[TILEGX_MAX_OPERANDS];
- long long operand_values[TILEGX_MAX_OPERANDS];
-};
-
-
-/* Disassemble a bundle into a struct for machine processing. */
-extern int parse_insn_tilegx(tilegx_bundle_bits bits,
- unsigned long long pc,
- struct tilegx_decoded_instruction
- decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE]);
-
-
-#if !defined(__KERNEL__) && !defined(_LIBC)
-/* Canonical names of all the registers. */
-/* ISSUE: This table lives in "tile-dis.c" */
-extern const char * const tilegx_register_names[];
-
-/* Descriptor for a special-purpose register. */
-struct tilegx_spr
-{
- /* The number */
- int number;
-
- /* The name */
- const char *name;
-};
-
-/* List of all the SPRs; ordered by increasing number. */
-extern const struct tilegx_spr tilegx_sprs[];
-
-/* Number of special-purpose registers. */
-extern const int tilegx_num_sprs;
-
-extern const char *
-get_tilegx_spr_name (int num);
-#endif /* !__KERNEL__ && !_LIBC */
-
-/* Make a few "tile_" variables to simply common code between
- architectures. */
-
-typedef tilegx_bundle_bits tile_bundle_bits;
-#define TILE_BUNDLE_SIZE_IN_BYTES TILEGX_BUNDLE_SIZE_IN_BYTES
-#define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEGX_BUNDLE_ALIGNMENT_IN_BYTES
-#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \
- TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES
-
-#endif /* opcode_tilegx_h */
diff --git a/include/opcode/tilepro.h b/include/opcode/tilepro.h
deleted file mode 100644
index 91e2a2bdb..000000000
--- a/include/opcode/tilepro.h
+++ /dev/null
@@ -1,1636 +0,0 @@
-/* TILEPro opcode information.
- *
- * Copyright 2011 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-#ifndef opcode_tilepro_h
-#define opcode_tilepro_h
-
-typedef unsigned long long tilepro_bundle_bits;
-
-
-enum
-{
- TILEPRO_MAX_OPERANDS = 5 /* mm */
-};
-
-typedef enum
-{
- TILEPRO_OPC_BPT,
- TILEPRO_OPC_INFO,
- TILEPRO_OPC_INFOL,
- TILEPRO_OPC_J,
- TILEPRO_OPC_JAL,
- TILEPRO_OPC_MOVE,
- TILEPRO_OPC_MOVE_SN,
- TILEPRO_OPC_MOVEI,
- TILEPRO_OPC_MOVEI_SN,
- TILEPRO_OPC_MOVELI,
- TILEPRO_OPC_MOVELI_SN,
- TILEPRO_OPC_MOVELIS,
- TILEPRO_OPC_PREFETCH,
- TILEPRO_OPC_RAISE,
- TILEPRO_OPC_ADD,
- TILEPRO_OPC_ADD_SN,
- TILEPRO_OPC_ADDB,
- TILEPRO_OPC_ADDB_SN,
- TILEPRO_OPC_ADDBS_U,
- TILEPRO_OPC_ADDBS_U_SN,
- TILEPRO_OPC_ADDH,
- TILEPRO_OPC_ADDH_SN,
- TILEPRO_OPC_ADDHS,
- TILEPRO_OPC_ADDHS_SN,
- TILEPRO_OPC_ADDI,
- TILEPRO_OPC_ADDI_SN,
- TILEPRO_OPC_ADDIB,
- TILEPRO_OPC_ADDIB_SN,
- TILEPRO_OPC_ADDIH,
- TILEPRO_OPC_ADDIH_SN,
- TILEPRO_OPC_ADDLI,
- TILEPRO_OPC_ADDLI_SN,
- TILEPRO_OPC_ADDLIS,
- TILEPRO_OPC_ADDS,
- TILEPRO_OPC_ADDS_SN,
- TILEPRO_OPC_ADIFFB_U,
- TILEPRO_OPC_ADIFFB_U_SN,
- TILEPRO_OPC_ADIFFH,
- TILEPRO_OPC_ADIFFH_SN,
- TILEPRO_OPC_AND,
- TILEPRO_OPC_AND_SN,
- TILEPRO_OPC_ANDI,
- TILEPRO_OPC_ANDI_SN,
- TILEPRO_OPC_AULI,
- TILEPRO_OPC_AVGB_U,
- TILEPRO_OPC_AVGB_U_SN,
- TILEPRO_OPC_AVGH,
- TILEPRO_OPC_AVGH_SN,
- TILEPRO_OPC_BBNS,
- TILEPRO_OPC_BBNS_SN,
- TILEPRO_OPC_BBNST,
- TILEPRO_OPC_BBNST_SN,
- TILEPRO_OPC_BBS,
- TILEPRO_OPC_BBS_SN,
- TILEPRO_OPC_BBST,
- TILEPRO_OPC_BBST_SN,
- TILEPRO_OPC_BGEZ,
- TILEPRO_OPC_BGEZ_SN,
- TILEPRO_OPC_BGEZT,
- TILEPRO_OPC_BGEZT_SN,
- TILEPRO_OPC_BGZ,
- TILEPRO_OPC_BGZ_SN,
- TILEPRO_OPC_BGZT,
- TILEPRO_OPC_BGZT_SN,
- TILEPRO_OPC_BITX,
- TILEPRO_OPC_BITX_SN,
- TILEPRO_OPC_BLEZ,
- TILEPRO_OPC_BLEZ_SN,
- TILEPRO_OPC_BLEZT,
- TILEPRO_OPC_BLEZT_SN,
- TILEPRO_OPC_BLZ,
- TILEPRO_OPC_BLZ_SN,
- TILEPRO_OPC_BLZT,
- TILEPRO_OPC_BLZT_SN,
- TILEPRO_OPC_BNZ,
- TILEPRO_OPC_BNZ_SN,
- TILEPRO_OPC_BNZT,
- TILEPRO_OPC_BNZT_SN,
- TILEPRO_OPC_BYTEX,
- TILEPRO_OPC_BYTEX_SN,
- TILEPRO_OPC_BZ,
- TILEPRO_OPC_BZ_SN,
- TILEPRO_OPC_BZT,
- TILEPRO_OPC_BZT_SN,
- TILEPRO_OPC_CLZ,
- TILEPRO_OPC_CLZ_SN,
- TILEPRO_OPC_CRC32_32,
- TILEPRO_OPC_CRC32_32_SN,
- TILEPRO_OPC_CRC32_8,
- TILEPRO_OPC_CRC32_8_SN,
- TILEPRO_OPC_CTZ,
- TILEPRO_OPC_CTZ_SN,
- TILEPRO_OPC_DRAIN,
- TILEPRO_OPC_DTLBPR,
- TILEPRO_OPC_DWORD_ALIGN,
- TILEPRO_OPC_DWORD_ALIGN_SN,
- TILEPRO_OPC_FINV,
- TILEPRO_OPC_FLUSH,
- TILEPRO_OPC_FNOP,
- TILEPRO_OPC_ICOH,
- TILEPRO_OPC_ILL,
- TILEPRO_OPC_INTHB,
- TILEPRO_OPC_INTHB_SN,
- TILEPRO_OPC_INTHH,
- TILEPRO_OPC_INTHH_SN,
- TILEPRO_OPC_INTLB,
- TILEPRO_OPC_INTLB_SN,
- TILEPRO_OPC_INTLH,
- TILEPRO_OPC_INTLH_SN,
- TILEPRO_OPC_INV,
- TILEPRO_OPC_IRET,
- TILEPRO_OPC_JALB,
- TILEPRO_OPC_JALF,
- TILEPRO_OPC_JALR,
- TILEPRO_OPC_JALRP,
- TILEPRO_OPC_JB,
- TILEPRO_OPC_JF,
- TILEPRO_OPC_JR,
- TILEPRO_OPC_JRP,
- TILEPRO_OPC_LB,
- TILEPRO_OPC_LB_SN,
- TILEPRO_OPC_LB_U,
- TILEPRO_OPC_LB_U_SN,
- TILEPRO_OPC_LBADD,
- TILEPRO_OPC_LBADD_SN,
- TILEPRO_OPC_LBADD_U,
- TILEPRO_OPC_LBADD_U_SN,
- TILEPRO_OPC_LH,
- TILEPRO_OPC_LH_SN,
- TILEPRO_OPC_LH_U,
- TILEPRO_OPC_LH_U_SN,
- TILEPRO_OPC_LHADD,
- TILEPRO_OPC_LHADD_SN,
- TILEPRO_OPC_LHADD_U,
- TILEPRO_OPC_LHADD_U_SN,
- TILEPRO_OPC_LNK,
- TILEPRO_OPC_LNK_SN,
- TILEPRO_OPC_LW,
- TILEPRO_OPC_LW_SN,
- TILEPRO_OPC_LW_NA,
- TILEPRO_OPC_LW_NA_SN,
- TILEPRO_OPC_LWADD,
- TILEPRO_OPC_LWADD_SN,
- TILEPRO_OPC_LWADD_NA,
- TILEPRO_OPC_LWADD_NA_SN,
- TILEPRO_OPC_MAXB_U,
- TILEPRO_OPC_MAXB_U_SN,
- TILEPRO_OPC_MAXH,
- TILEPRO_OPC_MAXH_SN,
- TILEPRO_OPC_MAXIB_U,
- TILEPRO_OPC_MAXIB_U_SN,
- TILEPRO_OPC_MAXIH,
- TILEPRO_OPC_MAXIH_SN,
- TILEPRO_OPC_MF,
- TILEPRO_OPC_MFSPR,
- TILEPRO_OPC_MINB_U,
- TILEPRO_OPC_MINB_U_SN,
- TILEPRO_OPC_MINH,
- TILEPRO_OPC_MINH_SN,
- TILEPRO_OPC_MINIB_U,
- TILEPRO_OPC_MINIB_U_SN,
- TILEPRO_OPC_MINIH,
- TILEPRO_OPC_MINIH_SN,
- TILEPRO_OPC_MM,
- TILEPRO_OPC_MNZ,
- TILEPRO_OPC_MNZ_SN,
- TILEPRO_OPC_MNZB,
- TILEPRO_OPC_MNZB_SN,
- TILEPRO_OPC_MNZH,
- TILEPRO_OPC_MNZH_SN,
- TILEPRO_OPC_MTSPR,
- TILEPRO_OPC_MULHH_SS,
- TILEPRO_OPC_MULHH_SS_SN,
- TILEPRO_OPC_MULHH_SU,
- TILEPRO_OPC_MULHH_SU_SN,
- TILEPRO_OPC_MULHH_UU,
- TILEPRO_OPC_MULHH_UU_SN,
- TILEPRO_OPC_MULHHA_SS,
- TILEPRO_OPC_MULHHA_SS_SN,
- TILEPRO_OPC_MULHHA_SU,
- TILEPRO_OPC_MULHHA_SU_SN,
- TILEPRO_OPC_MULHHA_UU,
- TILEPRO_OPC_MULHHA_UU_SN,
- TILEPRO_OPC_MULHHSA_UU,
- TILEPRO_OPC_MULHHSA_UU_SN,
- TILEPRO_OPC_MULHL_SS,
- TILEPRO_OPC_MULHL_SS_SN,
- TILEPRO_OPC_MULHL_SU,
- TILEPRO_OPC_MULHL_SU_SN,
- TILEPRO_OPC_MULHL_US,
- TILEPRO_OPC_MULHL_US_SN,
- TILEPRO_OPC_MULHL_UU,
- TILEPRO_OPC_MULHL_UU_SN,
- TILEPRO_OPC_MULHLA_SS,
- TILEPRO_OPC_MULHLA_SS_SN,
- TILEPRO_OPC_MULHLA_SU,
- TILEPRO_OPC_MULHLA_SU_SN,
- TILEPRO_OPC_MULHLA_US,
- TILEPRO_OPC_MULHLA_US_SN,
- TILEPRO_OPC_MULHLA_UU,
- TILEPRO_OPC_MULHLA_UU_SN,
- TILEPRO_OPC_MULHLSA_UU,
- TILEPRO_OPC_MULHLSA_UU_SN,
- TILEPRO_OPC_MULLL_SS,
- TILEPRO_OPC_MULLL_SS_SN,
- TILEPRO_OPC_MULLL_SU,
- TILEPRO_OPC_MULLL_SU_SN,
- TILEPRO_OPC_MULLL_UU,
- TILEPRO_OPC_MULLL_UU_SN,
- TILEPRO_OPC_MULLLA_SS,
- TILEPRO_OPC_MULLLA_SS_SN,
- TILEPRO_OPC_MULLLA_SU,
- TILEPRO_OPC_MULLLA_SU_SN,
- TILEPRO_OPC_MULLLA_UU,
- TILEPRO_OPC_MULLLA_UU_SN,
- TILEPRO_OPC_MULLLSA_UU,
- TILEPRO_OPC_MULLLSA_UU_SN,
- TILEPRO_OPC_MVNZ,
- TILEPRO_OPC_MVNZ_SN,
- TILEPRO_OPC_MVZ,
- TILEPRO_OPC_MVZ_SN,
- TILEPRO_OPC_MZ,
- TILEPRO_OPC_MZ_SN,
- TILEPRO_OPC_MZB,
- TILEPRO_OPC_MZB_SN,
- TILEPRO_OPC_MZH,
- TILEPRO_OPC_MZH_SN,
- TILEPRO_OPC_NAP,
- TILEPRO_OPC_NOP,
- TILEPRO_OPC_NOR,
- TILEPRO_OPC_NOR_SN,
- TILEPRO_OPC_OR,
- TILEPRO_OPC_OR_SN,
- TILEPRO_OPC_ORI,
- TILEPRO_OPC_ORI_SN,
- TILEPRO_OPC_PACKBS_U,
- TILEPRO_OPC_PACKBS_U_SN,
- TILEPRO_OPC_PACKHB,
- TILEPRO_OPC_PACKHB_SN,
- TILEPRO_OPC_PACKHS,
- TILEPRO_OPC_PACKHS_SN,
- TILEPRO_OPC_PACKLB,
- TILEPRO_OPC_PACKLB_SN,
- TILEPRO_OPC_PCNT,
- TILEPRO_OPC_PCNT_SN,
- TILEPRO_OPC_RL,
- TILEPRO_OPC_RL_SN,
- TILEPRO_OPC_RLI,
- TILEPRO_OPC_RLI_SN,
- TILEPRO_OPC_S1A,
- TILEPRO_OPC_S1A_SN,
- TILEPRO_OPC_S2A,
- TILEPRO_OPC_S2A_SN,
- TILEPRO_OPC_S3A,
- TILEPRO_OPC_S3A_SN,
- TILEPRO_OPC_SADAB_U,
- TILEPRO_OPC_SADAB_U_SN,
- TILEPRO_OPC_SADAH,
- TILEPRO_OPC_SADAH_SN,
- TILEPRO_OPC_SADAH_U,
- TILEPRO_OPC_SADAH_U_SN,
- TILEPRO_OPC_SADB_U,
- TILEPRO_OPC_SADB_U_SN,
- TILEPRO_OPC_SADH,
- TILEPRO_OPC_SADH_SN,
- TILEPRO_OPC_SADH_U,
- TILEPRO_OPC_SADH_U_SN,
- TILEPRO_OPC_SB,
- TILEPRO_OPC_SBADD,
- TILEPRO_OPC_SEQ,
- TILEPRO_OPC_SEQ_SN,
- TILEPRO_OPC_SEQB,
- TILEPRO_OPC_SEQB_SN,
- TILEPRO_OPC_SEQH,
- TILEPRO_OPC_SEQH_SN,
- TILEPRO_OPC_SEQI,
- TILEPRO_OPC_SEQI_SN,
- TILEPRO_OPC_SEQIB,
- TILEPRO_OPC_SEQIB_SN,
- TILEPRO_OPC_SEQIH,
- TILEPRO_OPC_SEQIH_SN,
- TILEPRO_OPC_SH,
- TILEPRO_OPC_SHADD,
- TILEPRO_OPC_SHL,
- TILEPRO_OPC_SHL_SN,
- TILEPRO_OPC_SHLB,
- TILEPRO_OPC_SHLB_SN,
- TILEPRO_OPC_SHLH,
- TILEPRO_OPC_SHLH_SN,
- TILEPRO_OPC_SHLI,
- TILEPRO_OPC_SHLI_SN,
- TILEPRO_OPC_SHLIB,
- TILEPRO_OPC_SHLIB_SN,
- TILEPRO_OPC_SHLIH,
- TILEPRO_OPC_SHLIH_SN,
- TILEPRO_OPC_SHR,
- TILEPRO_OPC_SHR_SN,
- TILEPRO_OPC_SHRB,
- TILEPRO_OPC_SHRB_SN,
- TILEPRO_OPC_SHRH,
- TILEPRO_OPC_SHRH_SN,
- TILEPRO_OPC_SHRI,
- TILEPRO_OPC_SHRI_SN,
- TILEPRO_OPC_SHRIB,
- TILEPRO_OPC_SHRIB_SN,
- TILEPRO_OPC_SHRIH,
- TILEPRO_OPC_SHRIH_SN,
- TILEPRO_OPC_SLT,
- TILEPRO_OPC_SLT_SN,
- TILEPRO_OPC_SLT_U,
- TILEPRO_OPC_SLT_U_SN,
- TILEPRO_OPC_SLTB,
- TILEPRO_OPC_SLTB_SN,
- TILEPRO_OPC_SLTB_U,
- TILEPRO_OPC_SLTB_U_SN,
- TILEPRO_OPC_SLTE,
- TILEPRO_OPC_SLTE_SN,
- TILEPRO_OPC_SLTE_U,
- TILEPRO_OPC_SLTE_U_SN,
- TILEPRO_OPC_SLTEB,
- TILEPRO_OPC_SLTEB_SN,
- TILEPRO_OPC_SLTEB_U,
- TILEPRO_OPC_SLTEB_U_SN,
- TILEPRO_OPC_SLTEH,
- TILEPRO_OPC_SLTEH_SN,
- TILEPRO_OPC_SLTEH_U,
- TILEPRO_OPC_SLTEH_U_SN,
- TILEPRO_OPC_SLTH,
- TILEPRO_OPC_SLTH_SN,
- TILEPRO_OPC_SLTH_U,
- TILEPRO_OPC_SLTH_U_SN,
- TILEPRO_OPC_SLTI,
- TILEPRO_OPC_SLTI_SN,
- TILEPRO_OPC_SLTI_U,
- TILEPRO_OPC_SLTI_U_SN,
- TILEPRO_OPC_SLTIB,
- TILEPRO_OPC_SLTIB_SN,
- TILEPRO_OPC_SLTIB_U,
- TILEPRO_OPC_SLTIB_U_SN,
- TILEPRO_OPC_SLTIH,
- TILEPRO_OPC_SLTIH_SN,
- TILEPRO_OPC_SLTIH_U,
- TILEPRO_OPC_SLTIH_U_SN,
- TILEPRO_OPC_SNE,
- TILEPRO_OPC_SNE_SN,
- TILEPRO_OPC_SNEB,
- TILEPRO_OPC_SNEB_SN,
- TILEPRO_OPC_SNEH,
- TILEPRO_OPC_SNEH_SN,
- TILEPRO_OPC_SRA,
- TILEPRO_OPC_SRA_SN,
- TILEPRO_OPC_SRAB,
- TILEPRO_OPC_SRAB_SN,
- TILEPRO_OPC_SRAH,
- TILEPRO_OPC_SRAH_SN,
- TILEPRO_OPC_SRAI,
- TILEPRO_OPC_SRAI_SN,
- TILEPRO_OPC_SRAIB,
- TILEPRO_OPC_SRAIB_SN,
- TILEPRO_OPC_SRAIH,
- TILEPRO_OPC_SRAIH_SN,
- TILEPRO_OPC_SUB,
- TILEPRO_OPC_SUB_SN,
- TILEPRO_OPC_SUBB,
- TILEPRO_OPC_SUBB_SN,
- TILEPRO_OPC_SUBBS_U,
- TILEPRO_OPC_SUBBS_U_SN,
- TILEPRO_OPC_SUBH,
- TILEPRO_OPC_SUBH_SN,
- TILEPRO_OPC_SUBHS,
- TILEPRO_OPC_SUBHS_SN,
- TILEPRO_OPC_SUBS,
- TILEPRO_OPC_SUBS_SN,
- TILEPRO_OPC_SW,
- TILEPRO_OPC_SWADD,
- TILEPRO_OPC_SWINT0,
- TILEPRO_OPC_SWINT1,
- TILEPRO_OPC_SWINT2,
- TILEPRO_OPC_SWINT3,
- TILEPRO_OPC_TBLIDXB0,
- TILEPRO_OPC_TBLIDXB0_SN,
- TILEPRO_OPC_TBLIDXB1,
- TILEPRO_OPC_TBLIDXB1_SN,
- TILEPRO_OPC_TBLIDXB2,
- TILEPRO_OPC_TBLIDXB2_SN,
- TILEPRO_OPC_TBLIDXB3,
- TILEPRO_OPC_TBLIDXB3_SN,
- TILEPRO_OPC_TNS,
- TILEPRO_OPC_TNS_SN,
- TILEPRO_OPC_WH64,
- TILEPRO_OPC_XOR,
- TILEPRO_OPC_XOR_SN,
- TILEPRO_OPC_XORI,
- TILEPRO_OPC_XORI_SN,
- TILEPRO_OPC_NONE
-} tilepro_mnemonic;
-
-/* 64-bit pattern for a { bpt ; nop } bundle. */
-#define TILEPRO_BPT_BUNDLE 0x400b3cae70166000ULL
-
-#ifndef DISASM_ONLY
-
-enum
-{
- TILEPRO_SN_MAX_OPERANDS = 6 /* route */
-};
-
-typedef enum
-{
- TILEPRO_SN_OPC_BZ,
- TILEPRO_SN_OPC_BNZ,
- TILEPRO_SN_OPC_JRR,
- TILEPRO_SN_OPC_FNOP,
- TILEPRO_SN_OPC_BLZ,
- TILEPRO_SN_OPC_NOP,
- TILEPRO_SN_OPC_MOVEI,
- TILEPRO_SN_OPC_MOVE,
- TILEPRO_SN_OPC_BGEZ,
- TILEPRO_SN_OPC_JR,
- TILEPRO_SN_OPC_BLEZ,
- TILEPRO_SN_OPC_BBNS,
- TILEPRO_SN_OPC_JALRR,
- TILEPRO_SN_OPC_BPT,
- TILEPRO_SN_OPC_JALR,
- TILEPRO_SN_OPC_SHR1,
- TILEPRO_SN_OPC_BGZ,
- TILEPRO_SN_OPC_BBS,
- TILEPRO_SN_OPC_SHL8II,
- TILEPRO_SN_OPC_ADDI,
- TILEPRO_SN_OPC_HALT,
- TILEPRO_SN_OPC_ROUTE,
- TILEPRO_SN_OPC_NONE
-} tilepro_sn_mnemonic;
-
-extern const unsigned char tilepro_sn_route_encode[6 * 6 * 6];
-extern const signed char tilepro_sn_route_decode[256][3];
-extern const char tilepro_sn_direction_names[6][5];
-extern const signed char tilepro_sn_dest_map[6][6];
-#endif /* DISASM_ONLY */
-
-
-static __inline unsigned int
-get_BrOff_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_BrOff_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x00007fff) |
- (((unsigned int)(n >> 20)) & 0x00018000);
-}
-
-static __inline unsigned int
-get_BrType_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0xf);
-}
-
-static __inline unsigned int
-get_Dest_Imm8_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x0000003f) |
- (((unsigned int)(n >> 43)) & 0x000000c0);
-}
-
-static __inline unsigned int
-get_Dest_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 2)) & 0x3);
-}
-
-static __inline unsigned int
-get_Dest_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Dest_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Imm16_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xffff);
-}
-
-static __inline unsigned int
-get_Imm16_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xffff);
-}
-
-static __inline unsigned int
-get_Imm8_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0xff);
-}
-
-static __inline unsigned int
-get_Imm8_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0xff);
-}
-
-static __inline unsigned int
-get_ImmOpcodeExtension_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 20)) & 0x7f);
-}
-
-static __inline unsigned int
-get_ImmOpcodeExtension_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 51)) & 0x7f);
-}
-
-static __inline unsigned int
-get_ImmRROpcodeExtension_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 8)) & 0x3);
-}
-
-static __inline unsigned int
-get_JOffLong_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x00007fff) |
- (((unsigned int)(n >> 20)) & 0x00018000) |
- (((unsigned int)(n >> 14)) & 0x001e0000) |
- (((unsigned int)(n >> 16)) & 0x07e00000) |
- (((unsigned int)(n >> 31)) & 0x18000000);
-}
-
-static __inline unsigned int
-get_JOff_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x00007fff) |
- (((unsigned int)(n >> 20)) & 0x00018000) |
- (((unsigned int)(n >> 14)) & 0x001e0000) |
- (((unsigned int)(n >> 16)) & 0x07e00000) |
- (((unsigned int)(n >> 31)) & 0x08000000);
-}
-
-static __inline unsigned int
-get_MF_Imm15_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x00003fff) |
- (((unsigned int)(n >> 44)) & 0x00004000);
-}
-
-static __inline unsigned int
-get_MMEnd_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x1f);
-}
-
-static __inline unsigned int
-get_MMEnd_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x1f);
-}
-
-static __inline unsigned int
-get_MMStart_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 23)) & 0x1f);
-}
-
-static __inline unsigned int
-get_MMStart_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 54)) & 0x1f);
-}
-
-static __inline unsigned int
-get_MT_Imm15_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 31)) & 0x0000003f) |
- (((unsigned int)(n >> 37)) & 0x00003fc0) |
- (((unsigned int)(n >> 44)) & 0x00004000);
-}
-
-static __inline unsigned int
-get_Mode(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 63)) & 0x1);
-}
-
-static __inline unsigned int
-get_NoRegOpcodeExtension_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 10)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Opcode_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 28)) & 0x7);
-}
-
-static __inline unsigned int
-get_Opcode_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 59)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 27)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 59)) & 0xf);
-}
-
-static __inline unsigned int
-get_Opcode_Y2(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 56)) & 0x7);
-}
-
-static __inline unsigned int
-get_RROpcodeExtension_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 4)) & 0xf);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x1ff);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x1ff);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 18)) & 0x3);
-}
-
-static __inline unsigned int
-get_RRROpcodeExtension_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 49)) & 0x3);
-}
-
-static __inline unsigned int
-get_RouteOpcodeExtension_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_S_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 27)) & 0x1);
-}
-
-static __inline unsigned int
-get_S_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 58)) & 0x1);
-}
-
-static __inline unsigned int
-get_ShAmt_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x1f);
-}
-
-static __inline unsigned int
-get_ShAmt_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x1f);
-}
-
-static __inline unsigned int
-get_ShAmt_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x1f);
-}
-
-static __inline unsigned int
-get_ShAmt_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x1f);
-}
-
-static __inline unsigned int
-get_SrcA_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 6)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 6)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 37)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcA_Y2(tilepro_bundle_bits n)
-{
- return (((n >> 26)) & 0x00000001) |
- (((unsigned int)(n >> 50)) & 0x0000003e);
-}
-
-static __inline unsigned int
-get_SrcBDest_Y2(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 20)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x3f);
-}
-
-static __inline unsigned int
-get_SrcB_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x3f);
-}
-
-static __inline unsigned int
-get_Src_SN(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 0)) & 0x3);
-}
-
-static __inline unsigned int
-get_UnOpcodeExtension_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x1f);
-}
-
-static __inline unsigned int
-get_UnOpcodeExtension_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x1f);
-}
-
-static __inline unsigned int
-get_UnOpcodeExtension_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 12)) & 0x1f);
-}
-
-static __inline unsigned int
-get_UnOpcodeExtension_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 43)) & 0x1f);
-}
-
-static __inline unsigned int
-get_UnShOpcodeExtension_X0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 17)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_UnShOpcodeExtension_X1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 48)) & 0x3ff);
-}
-
-static __inline unsigned int
-get_UnShOpcodeExtension_Y0(tilepro_bundle_bits num)
-{
- const unsigned int n = (unsigned int)num;
- return (((n >> 17)) & 0x7);
-}
-
-static __inline unsigned int
-get_UnShOpcodeExtension_Y1(tilepro_bundle_bits n)
-{
- return (((unsigned int)(n >> 48)) & 0x7);
-}
-
-
-static __inline int
-sign_extend(int n, int num_bits)
-{
- int shift = (int)(sizeof(int) * 8 - num_bits);
- return (n << shift) >> shift;
-}
-
-
-
-static __inline tilepro_bundle_bits
-create_BrOff_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3ff) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_BrOff_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
- (((tilepro_bundle_bits)(n & 0x00018000)) << 20);
-}
-
-static __inline tilepro_bundle_bits
-create_BrType_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xf)) << 31);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_Imm8_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) |
- (((tilepro_bundle_bits)(n & 0x000000c0)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 2);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 31);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_Dest_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 31);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm16_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xffff) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm16_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xffff)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm8_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm8_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm8_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xff)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm8_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xff) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_Imm8_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xff)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_ImmOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x7f) << 20);
-}
-
-static __inline tilepro_bundle_bits
-create_ImmOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x7f)) << 51);
-}
-
-static __inline tilepro_bundle_bits
-create_ImmRROpcodeExtension_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 8);
-}
-
-static __inline tilepro_bundle_bits
-create_JOffLong_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
- (((tilepro_bundle_bits)(n & 0x00018000)) << 20) |
- (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) |
- (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) |
- (((tilepro_bundle_bits)(n & 0x18000000)) << 31);
-}
-
-static __inline tilepro_bundle_bits
-create_JOff_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x00007fff)) << 43) |
- (((tilepro_bundle_bits)(n & 0x00018000)) << 20) |
- (((tilepro_bundle_bits)(n & 0x001e0000)) << 14) |
- (((tilepro_bundle_bits)(n & 0x07e00000)) << 16) |
- (((tilepro_bundle_bits)(n & 0x08000000)) << 31);
-}
-
-static __inline tilepro_bundle_bits
-create_MF_Imm15_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x00003fff)) << 37) |
- (((tilepro_bundle_bits)(n & 0x00004000)) << 44);
-}
-
-static __inline tilepro_bundle_bits
-create_MMEnd_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 18);
-}
-
-static __inline tilepro_bundle_bits
-create_MMEnd_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 49);
-}
-
-static __inline tilepro_bundle_bits
-create_MMStart_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 23);
-}
-
-static __inline tilepro_bundle_bits
-create_MMStart_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 54);
-}
-
-static __inline tilepro_bundle_bits
-create_MT_Imm15_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x0000003f)) << 31) |
- (((tilepro_bundle_bits)(n & 0x00003fc0)) << 37) |
- (((tilepro_bundle_bits)(n & 0x00004000)) << 44);
-}
-
-static __inline tilepro_bundle_bits
-create_Mode(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1)) << 63);
-}
-
-static __inline tilepro_bundle_bits
-create_NoRegOpcodeExtension_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xf) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 10);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x7) << 28);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xf)) << 59);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xf) << 27);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0xf)) << 59);
-}
-
-static __inline tilepro_bundle_bits
-create_Opcode_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x7)) << 56);
-}
-
-static __inline tilepro_bundle_bits
-create_RROpcodeExtension_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0xf) << 4);
-}
-
-static __inline tilepro_bundle_bits
-create_RRROpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1ff) << 18);
-}
-
-static __inline tilepro_bundle_bits
-create_RRROpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1ff)) << 49);
-}
-
-static __inline tilepro_bundle_bits
-create_RRROpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 18);
-}
-
-static __inline tilepro_bundle_bits
-create_RRROpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3)) << 49);
-}
-
-static __inline tilepro_bundle_bits
-create_RouteOpcodeExtension_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3ff) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_S_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1) << 27);
-}
-
-static __inline tilepro_bundle_bits
-create_S_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1)) << 58);
-}
-
-static __inline tilepro_bundle_bits
-create_ShAmt_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_ShAmt_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_ShAmt_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_ShAmt_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcA_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 6);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcA_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 37);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcA_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 6);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcA_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 37);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcA_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x00000001) << 26) |
- (((tilepro_bundle_bits)(n & 0x0000003e)) << 50);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcBDest_Y2(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 20);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcB_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcB_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcB_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_SrcB_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_Src_SN(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3) << 0);
-}
-
-static __inline tilepro_bundle_bits
-create_UnOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_UnOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_UnOpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x1f) << 12);
-}
-
-static __inline tilepro_bundle_bits
-create_UnOpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x1f)) << 43);
-}
-
-static __inline tilepro_bundle_bits
-create_UnShOpcodeExtension_X0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x3ff) << 17);
-}
-
-static __inline tilepro_bundle_bits
-create_UnShOpcodeExtension_X1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x3ff)) << 48);
-}
-
-static __inline tilepro_bundle_bits
-create_UnShOpcodeExtension_Y0(int num)
-{
- const unsigned int n = (unsigned int)num;
- return ((n & 0x7) << 17);
-}
-
-static __inline tilepro_bundle_bits
-create_UnShOpcodeExtension_Y1(int num)
-{
- const unsigned int n = (unsigned int)num;
- return (((tilepro_bundle_bits)(n & 0x7)) << 48);
-}
-
-
-
-typedef enum
-{
- TILEPRO_PIPELINE_X0,
- TILEPRO_PIPELINE_X1,
- TILEPRO_PIPELINE_Y0,
- TILEPRO_PIPELINE_Y1,
- TILEPRO_PIPELINE_Y2,
-} tilepro_pipeline;
-
-#define tilepro_is_x_pipeline(p) ((int)(p) <= (int)TILEPRO_PIPELINE_X1)
-
-typedef enum
-{
- TILEPRO_OP_TYPE_REGISTER,
- TILEPRO_OP_TYPE_IMMEDIATE,
- TILEPRO_OP_TYPE_ADDRESS,
- TILEPRO_OP_TYPE_SPR
-} tilepro_operand_type;
-
-/* This is the bit that determines if a bundle is in the Y encoding. */
-#define TILEPRO_BUNDLE_Y_ENCODING_MASK ((tilepro_bundle_bits)1 << 63)
-
-enum
-{
- /* Maximum number of instructions in a bundle (2 for X, 3 for Y). */
- TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE = 3,
-
- /* How many different pipeline encodings are there? X0, X1, Y0, Y1, Y2. */
- TILEPRO_NUM_PIPELINE_ENCODINGS = 5,
-
- /* Log base 2 of TILEPRO_BUNDLE_SIZE_IN_BYTES. */
- TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES = 3,
-
- /* Instructions take this many bytes. */
- TILEPRO_BUNDLE_SIZE_IN_BYTES = 1 << TILEPRO_LOG2_BUNDLE_SIZE_IN_BYTES,
-
- /* Log base 2 of TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES. */
- TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES = 3,
-
- /* Bundles should be aligned modulo this number of bytes. */
- TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES =
- (1 << TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES),
-
- /* Log base 2 of TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES. */
- TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES = 1,
-
- /* Static network instructions take this many bytes. */
- TILEPRO_SN_INSTRUCTION_SIZE_IN_BYTES =
- (1 << TILEPRO_LOG2_SN_INSTRUCTION_SIZE_IN_BYTES),
-
- /* Number of registers (some are magic, such as network I/O). */
- TILEPRO_NUM_REGISTERS = 64,
-
- /* Number of static network registers. */
- TILEPRO_NUM_SN_REGISTERS = 4
-};
-
-
-struct tilepro_operand
-{
- /* Is this operand a register, immediate or address? */
- tilepro_operand_type type;
-
- /* The default relocation type for this operand. */
- signed int default_reloc : 16;
-
- /* How many bits is this value? (used for range checking) */
- unsigned int num_bits : 5;
-
- /* Is the value signed? (used for range checking) */
- unsigned int is_signed : 1;
-
- /* Is this operand a source register? */
- unsigned int is_src_reg : 1;
-
- /* Is this operand written? (i.e. is it a destination register) */
- unsigned int is_dest_reg : 1;
-
- /* Is this operand PC-relative? */
- unsigned int is_pc_relative : 1;
-
- /* By how many bits do we right shift the value before inserting? */
- unsigned int rightshift : 2;
-
- /* Return the bits for this operand to be ORed into an existing bundle. */
- tilepro_bundle_bits (*insert) (int op);
-
- /* Extract this operand and return it. */
- unsigned int (*extract) (tilepro_bundle_bits bundle);
-};
-
-
-extern const struct tilepro_operand tilepro_operands[];
-
-/* One finite-state machine per pipe for rapid instruction decoding. */
-extern const unsigned short * const
-tilepro_bundle_decoder_fsms[TILEPRO_NUM_PIPELINE_ENCODINGS];
-
-
-struct tilepro_opcode
-{
- /* The opcode mnemonic, e.g. "add" */
- const char *name;
-
- /* The enum value for this mnemonic. */
- tilepro_mnemonic mnemonic;
-
- /* A bit mask of which of the five pipes this instruction
- is compatible with:
- X0 0x01
- X1 0x02
- Y0 0x04
- Y1 0x08
- Y2 0x10 */
- unsigned char pipes;
-
- /* How many operands are there? */
- unsigned char num_operands;
-
- /* Which register does this write implicitly, or TREG_ZERO if none? */
- unsigned char implicitly_written_register;
-
- /* Can this be bundled with other instructions (almost always true). */
- unsigned char can_bundle;
-
- /* The description of the operands. Each of these is an
- * index into the tilepro_operands[] table. */
- unsigned char operands[TILEPRO_NUM_PIPELINE_ENCODINGS][TILEPRO_MAX_OPERANDS];
-
-#if !defined(__KERNEL__) && !defined(_LIBC)
- /* A mask of which bits have predefined values for each pipeline.
- * This is useful for disassembly. */
- tilepro_bundle_bits fixed_bit_masks[TILEPRO_NUM_PIPELINE_ENCODINGS];
-
- /* For each bit set in fixed_bit_masks, what the value is for this
- * instruction. */
- tilepro_bundle_bits fixed_bit_values[TILEPRO_NUM_PIPELINE_ENCODINGS];
-#endif
-};
-
-extern const struct tilepro_opcode tilepro_opcodes[];
-
-#if !defined(__KERNEL__) && !defined(_LIBC)
-
-typedef unsigned short tilepro_sn_instruction_bits;
-
-struct tilepro_sn_opcode
-{
- /* The opcode mnemonic, e.g. "add" */
- const char *name;
-
- /* The enum value for this mnemonic. */
- tilepro_sn_mnemonic mnemonic;
-
- /* How many operands are there? */
- unsigned char num_operands;
-
- /* The description of the operands. Each of these is an
- * index into the tilepro_operands[] table. */
- unsigned char operands[TILEPRO_SN_MAX_OPERANDS];
-
- /* A mask of which bits have predefined values.
- * This is useful for disassembly. */
- tilepro_sn_instruction_bits fixed_bit_mask;
-
- /* For each bit set in fixed_bit_masks, what its value is. */
- tilepro_sn_instruction_bits fixed_bit_values;
-};
-
-extern const struct tilepro_sn_opcode tilepro_sn_opcodes[];
-
-#endif /* !__KERNEL__ && !_LIBC */
-
-/* Used for non-textual disassembly into structs. */
-struct tilepro_decoded_instruction
-{
- const struct tilepro_opcode *opcode;
- const struct tilepro_operand *operands[TILEPRO_MAX_OPERANDS];
- int operand_values[TILEPRO_MAX_OPERANDS];
-};
-
-
-/* Disassemble a bundle into a struct for machine processing. */
-extern int parse_insn_tilepro(tilepro_bundle_bits bits,
- unsigned int pc,
- struct tilepro_decoded_instruction
- decoded[TILEPRO_MAX_INSTRUCTIONS_PER_BUNDLE]);
-
-
-/* Given a set of bundle bits and a specific pipe, returns which
- * instruction the bundle contains in that pipe.
- */
-extern const struct tilepro_opcode *
-find_opcode(tilepro_bundle_bits bits, tilepro_pipeline pipe);
-
-
-#if !defined(__KERNEL__) && !defined(_LIBC)
-/* Canonical names of all the registers. */
-/* ISSUE: This table lives in "tilepro-dis.c" */
-extern const char * const tilepro_register_names[];
-
-/* Descriptor for a special-purpose register. */
-struct tilepro_spr
-{
- /* The number */
- int number;
-
- /* The name */
- const char *name;
-};
-
-/* List of all the SPRs; ordered by increasing number. */
-extern const struct tilepro_spr tilepro_sprs[];
-
-/* Number of special-purpose registers. */
-extern const int tilepro_num_sprs;
-
-extern const char *
-get_tilepro_spr_name (int num);
-#endif /* !__KERNEL__ && !_LIBC */
-
-/* Make a few "tile_" variables to simply common code between
- architectures. */
-
-typedef tilepro_bundle_bits tile_bundle_bits;
-#define TILE_BUNDLE_SIZE_IN_BYTES TILEPRO_BUNDLE_SIZE_IN_BYTES
-#define TILE_BUNDLE_ALIGNMENT_IN_BYTES TILEPRO_BUNDLE_ALIGNMENT_IN_BYTES
-#define TILE_LOG2_BUNDLE_ALIGNMENT_IN_BYTES \
- TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES
-
-#endif /* opcode_tilepro_h */
diff --git a/include/opcode/v850.h b/include/opcode/v850.h
deleted file mode 100644
index 590330591..000000000
--- a/include/opcode/v850.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* v850.h -- Header file for NEC V850 opcode table
- Copyright 1996, 1997, 2001, 2003, 2010 Free Software Foundation, Inc.
- Written by J.T. Conklin, Cygnus Support
-
- This file is part of GDB, GAS, and the GNU binutils.
-
- GDB, GAS, and the GNU binutils are free software; you can redistribute
- them and/or modify them under the terms of the GNU General Public
- License as published by the Free Software Foundation; either version 3,
- or (at your option) any later version.
-
- GDB, GAS, and the GNU binutils are distributed in the hope that they
- 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 file; see the file COPYING3. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef V850_H
-#define V850_H
-
-/* The opcode table is an array of struct v850_opcode. */
-
-struct v850_opcode
-{
- /* The opcode name. */
- const char *name;
-
- /* The opcode itself. Those bits which will be filled in with
- operands are zeroes. */
- unsigned long opcode;
-
- /* The opcode mask. This is used by the disassembler. This is a
- mask containing ones indicating those bits which must match the
- opcode field, and zeroes indicating those bits which need not
- match (and are presumably filled in by operands). */
- unsigned long mask;
-
- /* An array of operand codes. Each code is an index into the
- operand table. They appear in the order which the operands must
- appear in assembly code, and are terminated by a zero. */
- unsigned char operands[8];
-
- /* Which (if any) operand is a memory operand. */
- unsigned int memop;
-
- /* Target processor(s). A bit field of processors which support
- this instruction. Note a bit field is used as some instructions
- are available on multiple, different processor types, whereas
- other instructions are only available on one specific type. */
- unsigned int processors;
-};
-
-/* Values for the processors field in the v850_opcode structure. */
-#define PROCESSOR_MASK 0x1f
-#define PROCESSOR_OPTION_EXTENSION (1 << 5) /* Enable extension opcodes. */
-#define PROCESSOR_OPTION_ALIAS (1 << 6) /* Enable alias opcodes. */
-#define PROCESSOR_V850 (1 << 0) /* Just the V850. */
-#define PROCESSOR_ALL PROCESSOR_MASK /* Any processor. */
-#define PROCESSOR_V850E (1 << 1) /* Just the V850E. */
-#define PROCESSOR_NOT_V850 (PROCESSOR_ALL & (~ PROCESSOR_V850)) /* Any processor except the V850. */
-#define PROCESSOR_V850E1 (1 << 2) /* Just the V850E1. */
-#define PROCESSOR_V850E2 (1 << 3) /* Just the V850E2. */
-#define PROCESSOR_V850E2V3 (1 << 4) /* Just the V850E2V3. */
-#define PROCESSOR_V850E2_ALL (PROCESSOR_V850E2 | PROCESSOR_V850E2V3) /* V850E2 & V850E2V3. */
-#define SET_PROCESSOR_MASK(mask,set) ((mask) = ((mask) & ~PROCESSOR_MASK) | (set))
-
-/* The table itself is sorted by major opcode number, and is otherwise
- in the order in which the disassembler should consider
- instructions. */
-extern const struct v850_opcode v850_opcodes[];
-extern const int v850_num_opcodes;
-
-
-/* The operands table is an array of struct v850_operand. */
-
-struct v850_operand
-{
- /* The number of bits in the operand. */
- /* If this value is -1 then the operand's bits are in a discontinous
- distribution in the instruction. */
- int bits;
-
- /* (bits >= 0): How far the operand is left shifted in the instruction. */
- /* (bits == -1): Bit mask of the bits in the operand. */
- int shift;
-
- /* Insertion function. This is used by the assembler. To insert an
- operand value into an instruction, check this field.
-
- If it is NULL, execute
- i |= (op & ((1 << o->bits) - 1)) << o->shift;
- (i is the instruction which we are filling in, o is a pointer to
- this structure, and op is the opcode value; this assumes twos
- complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction and the operand value. It will return the new value
- of the instruction. If the ERRMSG argument is not NULL, then if
- the operand value is illegal, *ERRMSG will be set to a warning
- 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)
- (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.
-
- If it is NULL, compute
- op = o->bits == -1 ? ((i) & o->shift) : ((i) >> o->shift) & ((1 << o->bits) - 1);
- if (o->flags & V850_OPERAND_SIGNED)
- op = (op << (32 - o->bits)) >> (32 - o->bits);
- (i is the instruction, o is a pointer to this structure, and op
- is the result; this assumes twos complement arithmetic).
-
- If this field is not NULL, then simply call it with the
- instruction value. It will return the value of the operand. If
- the INVALID argument is not NULL, *INVALID will be set to
- 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) (unsigned long instruction, int * invalid);
-
- /* One bit syntax flags. */
- int flags;
-
- int default_reloc;
-};
-
-/* Elements in the table are retrieved by indexing with values from
- the operands field of the v850_opcodes table. */
-
-extern const struct v850_operand v850_operands[];
-
-/* Values defined for the flags field of a struct v850_operand. */
-
-/* This operand names a general purpose register. */
-#define V850_OPERAND_REG 0x01
-
-/* This operand is the ep register. */
-#define V850_OPERAND_EP 0x02
-
-/* This operand names a system register. */
-#define V850_OPERAND_SRG 0x04
-
-/* Prologue eilogue type instruction, V850E specific. */
-#define V850E_OPERAND_REG_LIST 0x08
-
-/* This operand names a condition code used in the setf instruction. */
-#define V850_OPERAND_CC 0x10
-
-#define V850_OPERAND_FLOAT_CC 0x20
-
-/* This operand names a vector purpose register. */
-#define V850_OPERAND_VREG 0x40
-
-/* 16 bit immediate follows instruction, V850E specific. */
-#define V850E_IMMEDIATE16 0x80
-
-/* hi16 bit immediate follows instruction, V850E specific. */
-#define V850E_IMMEDIATE16HI 0x100
-
-/* 23 bit immediate follows instruction, V850E specific. */
-#define V850E_IMMEDIATE23 0x200
-
-/* 32 bit immediate follows instruction, V850E specific. */
-#define V850E_IMMEDIATE32 0x400
-
-/* This is a relaxable operand. Only used for D9->D22 branch relaxing
- right now. We may need others in the future (or maybe handle them like
- promoted operands on the mn10300?). */
-#define V850_OPERAND_RELAX 0x800
-
-/* This operand takes signed values. */
-#define V850_OPERAND_SIGNED 0x1000
-
-/* This operand is a displacement. */
-#define V850_OPERAND_DISP 0x2000
-
-/* This operand is a PC displacement. */
-#define V850_PCREL 0x4000
-
-/* The register specified must be even number. */
-#define V850_REG_EVEN 0x8000
-
-/* The register specified must not be r0. */
-#define V850_NOT_R0 0x20000
-
-/* The register specified must not be 0. */
-#define V850_NOT_IMM0 0x40000
-
-/* The condition code must not be SA CONDITION. */
-#define V850_NOT_SA 0x80000
-
-/* The operand has '!' prefix. */
-#define V850_OPERAND_BANG 0x100000
-
-/* The operand has '%' prefix. */
-#define V850_OPERAND_PERCENT 0x200000
-
-extern int v850_msg_is_out_of_range (const char * msg);
-
-#endif /* V850_H */
diff --git a/include/opcode/vax.h b/include/opcode/vax.h
deleted file mode 100644
index f5cdd2439..000000000
--- a/include/opcode/vax.h
+++ /dev/null
@@ -1,383 +0,0 @@
-/* Vax opcde list.
- Copyright 1989, 1991, 1992, 1995, 2010 Free Software Foundation, Inc.
-
- This file is part of GDB and GAS.
-
- GDB and GAS are 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 3, or (at your option)
- any later version.
-
- GDB and GAS are 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 GDB or GAS; see the file COPYING3. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifndef vax_opcodeT
-#define vax_opcodeT int
-#endif /* no vax_opcodeT */
-
-struct vot_wot /* vax opcode table: wot to do with this */
- /* particular opcode */
-{
- const char *args; /* how to compile said opcode */
- vax_opcodeT code; /* op-code (may be > 8 bits!) */
-};
-
-struct vot /* vax opcode text */
-{
- const char *name; /* opcode name: lowercase string [key] */
- struct vot_wot detail; /* rest of opcode table [datum] */
-};
-
-#define vot_how args
-#define vot_code code
-#define vot_detail detail
-#define vot_name name
-
-static const struct vot
-votstrs[] =
-{
-{ "halt", {"", 0x00 } },
-{ "nop", {"", 0x01 } },
-{ "rei", {"", 0x02 } },
-{ "bpt", {"", 0x03 } },
-{ "ret", {"", 0x04 } },
-{ "rsb", {"", 0x05 } },
-{ "ldpctx", {"", 0x06 } },
-{ "svpctx", {"", 0x07 } },
-{ "cvtps", {"rwabrwab", 0x08 } },
-{ "cvtsp", {"rwabrwab", 0x09 } },
-{ "index", {"rlrlrlrlrlwl", 0x0a } },
-{ "crc", {"abrlrwab", 0x0b } },
-{ "prober", {"rbrwab", 0x0c } },
-{ "probew", {"rbrwab", 0x0d } },
-{ "insque", {"abab", 0x0e } },
-{ "remque", {"abwl", 0x0f } },
-{ "bsbb", {"bb", 0x10 } },
-{ "brb", {"bb", 0x11 } },
-{ "bneq", {"bb", 0x12 } },
-{ "bnequ", {"bb", 0x12 } },
-{ "beql", {"bb", 0x13 } },
-{ "beqlu", {"bb", 0x13 } },
-{ "bgtr", {"bb", 0x14 } },
-{ "bleq", {"bb", 0x15 } },
-{ "jsb", {"ab", 0x16 } },
-{ "jmp", {"ab", 0x17 } },
-{ "bgeq", {"bb", 0x18 } },
-{ "blss", {"bb", 0x19 } },
-{ "bgtru", {"bb", 0x1a } },
-{ "blequ", {"bb", 0x1b } },
-{ "bvc", {"bb", 0x1c } },
-{ "bvs", {"bb", 0x1d } },
-{ "bcc", {"bb", 0x1e } },
-{ "bgequ", {"bb", 0x1e } },
-{ "blssu", {"bb", 0x1f } },
-{ "bcs", {"bb", 0x1f } },
-{ "addp4", {"rwabrwab", 0x20 } },
-{ "addp6", {"rwabrwabrwab", 0x21 } },
-{ "subp4", {"rwabrwab", 0x22 } },
-{ "subp6", {"rwabrwabrwab", 0x23 } },
-{ "cvtpt", {"rwababrwab", 0x24 } },
-{ "mulp", {"rwabrwabrwab", 0x25 } },
-{ "cvttp", {"rwababrwab", 0x26 } },
-{ "divp", {"rwabrwabrwab", 0x27 } },
-{ "movc3", {"rwabab", 0x28 } },
-{ "cmpc3", {"rwabab", 0x29 } },
-{ "scanc", {"rwababrb", 0x2a } },
-{ "spanc", {"rwababrb", 0x2b } },
-{ "movc5", {"rwabrbrwab", 0x2c } },
-{ "cmpc5", {"rwabrbrwab", 0x2d } },
-{ "movtc", {"rwabrbabrwab", 0x2e } },
-{ "movtuc", {"rwabrbabrwab", 0x2f } },
-{ "bsbw", {"bw", 0x30 } },
-{ "brw", {"bw", 0x31 } },
-{ "cvtwl", {"rwwl", 0x32 } },
-{ "cvtwb", {"rwwb", 0x33 } },
-{ "movp", {"rwabab", 0x34 } },
-{ "cmpp3", {"rwabab", 0x35 } },
-{ "cvtpl", {"rwabwl", 0x36 } },
-{ "cmpp4", {"rwabrwab", 0x37 } },
-{ "editpc", {"rwababab", 0x38 } },
-{ "matchc", {"rwabrwab", 0x39 } },
-{ "locc", {"rbrwab", 0x3a } },
-{ "skpc", {"rbrwab", 0x3b } },
-{ "movzwl", {"rwwl", 0x3c } },
-{ "acbw", {"rwrwmwbw", 0x3d } },
-{ "movaw", {"awwl", 0x3e } },
-{ "pushaw", {"aw", 0x3f } },
-{ "addf2", {"rfmf", 0x40 } },
-{ "addf3", {"rfrfwf", 0x41 } },
-{ "subf2", {"rfmf", 0x42 } },
-{ "subf3", {"rfrfwf", 0x43 } },
-{ "mulf2", {"rfmf", 0x44 } },
-{ "mulf3", {"rfrfwf", 0x45 } },
-{ "divf2", {"rfmf", 0x46 } },
-{ "divf3", {"rfrfwf", 0x47 } },
-{ "cvtfb", {"rfwb", 0x48 } },
-{ "cvtfw", {"rfww", 0x49 } },
-{ "cvtfl", {"rfwl", 0x4a } },
-{ "cvtrfl", {"rfwl", 0x4b } },
-{ "cvtbf", {"rbwf", 0x4c } },
-{ "cvtwf", {"rwwf", 0x4d } },
-{ "cvtlf", {"rlwf", 0x4e } },
-{ "acbf", {"rfrfmfbw", 0x4f } },
-{ "movf", {"rfwf", 0x50 } },
-{ "cmpf", {"rfrf", 0x51 } },
-{ "mnegf", {"rfwf", 0x52 } },
-{ "tstf", {"rf", 0x53 } },
-{ "emodf", {"rfrbrfwlwf", 0x54 } },
-{ "polyf", {"rfrwab", 0x55 } },
-{ "cvtfd", {"rfwd", 0x56 } },
- /* opcode 57 is not defined yet */
-{ "adawi", {"rwmw", 0x58 } },
- /* opcode 59 is not defined yet */
- /* opcode 5a is not defined yet */
- /* opcode 5b is not defined yet */
-{ "insqhi", {"abaq", 0x5c } },
-{ "insqti", {"abaq", 0x5d } },
-{ "remqhi", {"aqwl", 0x5e } },
-{ "remqti", {"aqwl", 0x5f } },
-{ "addd2", {"rdmd", 0x60 } },
-{ "addd3", {"rdrdwd", 0x61 } },
-{ "subd2", {"rdmd", 0x62 } },
-{ "subd3", {"rdrdwd", 0x63 } },
-{ "muld2", {"rdmd", 0x64 } },
-{ "muld3", {"rdrdwd", 0x65 } },
-{ "divd2", {"rdmd", 0x66 } },
-{ "divd3", {"rdrdwd", 0x67 } },
-{ "cvtdb", {"rdwb", 0x68 } },
-{ "cvtdw", {"rdww", 0x69 } },
-{ "cvtdl", {"rdwl", 0x6a } },
-{ "cvtrdl", {"rdwl", 0x6b } },
-{ "cvtbd", {"rbwd", 0x6c } },
-{ "cvtwd", {"rwwd", 0x6d } },
-{ "cvtld", {"rlwd", 0x6e } },
-{ "acbd", {"rdrdmdbw", 0x6f } },
-{ "movd", {"rdwd", 0x70 } },
-{ "cmpd", {"rdrd", 0x71 } },
-{ "mnegd", {"rdwd", 0x72 } },
-{ "tstd", {"rd", 0x73 } },
-{ "emodd", {"rdrbrdwlwd", 0x74 } },
-{ "polyd", {"rdrwab", 0x75 } },
-{ "cvtdf", {"rdwf", 0x76 } },
- /* opcode 77 is not defined yet */
-{ "ashl", {"rbrlwl", 0x78 } },
-{ "ashq", {"rbrqwq", 0x79 } },
-{ "emul", {"rlrlrlwq", 0x7a } },
-{ "ediv", {"rlrqwlwl", 0x7b } },
-{ "clrd", {"wd", 0x7c } },
-{ "clrg", {"wg", 0x7c } },
-{ "clrq", {"wd", 0x7c } },
-{ "movq", {"rqwq", 0x7d } },
-{ "movaq", {"aqwl", 0x7e } },
-{ "movad", {"adwl", 0x7e } },
-{ "pushaq", {"aq", 0x7f } },
-{ "pushad", {"ad", 0x7f } },
-{ "addb2", {"rbmb", 0x80 } },
-{ "addb3", {"rbrbwb", 0x81 } },
-{ "subb2", {"rbmb", 0x82 } },
-{ "subb3", {"rbrbwb", 0x83 } },
-{ "mulb2", {"rbmb", 0x84 } },
-{ "mulb3", {"rbrbwb", 0x85 } },
-{ "divb2", {"rbmb", 0x86 } },
-{ "divb3", {"rbrbwb", 0x87 } },
-{ "bisb2", {"rbmb", 0x88 } },
-{ "bisb3", {"rbrbwb", 0x89 } },
-{ "bicb2", {"rbmb", 0x8a } },
-{ "bicb3", {"rbrbwb", 0x8b } },
-{ "xorb2", {"rbmb", 0x8c } },
-{ "xorb3", {"rbrbwb", 0x8d } },
-{ "mnegb", {"rbwb", 0x8e } },
-{ "caseb", {"rbrbrb", 0x8f } },
-{ "movb", {"rbwb", 0x90 } },
-{ "cmpb", {"rbrb", 0x91 } },
-{ "mcomb", {"rbwb", 0x92 } },
-{ "bitb", {"rbrb", 0x93 } },
-{ "clrb", {"wb", 0x94 } },
-{ "tstb", {"rb", 0x95 } },
-{ "incb", {"mb", 0x96 } },
-{ "decb", {"mb", 0x97 } },
-{ "cvtbl", {"rbwl", 0x98 } },
-{ "cvtbw", {"rbww", 0x99 } },
-{ "movzbl", {"rbwl", 0x9a } },
-{ "movzbw", {"rbww", 0x9b } },
-{ "rotl", {"rbrlwl", 0x9c } },
-{ "acbb", {"rbrbmbbw", 0x9d } },
-{ "movab", {"abwl", 0x9e } },
-{ "pushab", {"ab", 0x9f } },
-{ "addw2", {"rwmw", 0xa0 } },
-{ "addw3", {"rwrwww", 0xa1 } },
-{ "subw2", {"rwmw", 0xa2 } },
-{ "subw3", {"rwrwww", 0xa3 } },
-{ "mulw2", {"rwmw", 0xa4 } },
-{ "mulw3", {"rwrwww", 0xa5 } },
-{ "divw2", {"rwmw", 0xa6 } },
-{ "divw3", {"rwrwww", 0xa7 } },
-{ "bisw2", {"rwmw", 0xa8 } },
-{ "bisw3", {"rwrwww", 0xa9 } },
-{ "bicw2", {"rwmw", 0xaa } },
-{ "bicw3", {"rwrwww", 0xab } },
-{ "xorw2", {"rwmw", 0xac } },
-{ "xorw3", {"rwrwww", 0xad } },
-{ "mnegw", {"rwww", 0xae } },
-{ "casew", {"rwrwrw", 0xaf } },
-{ "movw", {"rwww", 0xb0 } },
-{ "cmpw", {"rwrw", 0xb1 } },
-{ "mcomw", {"rwww", 0xb2 } },
-{ "bitw", {"rwrw", 0xb3 } },
-{ "clrw", {"ww", 0xb4 } },
-{ "tstw", {"rw", 0xb5 } },
-{ "incw", {"mw", 0xb6 } },
-{ "decw", {"mw", 0xb7 } },
-{ "bispsw", {"rw", 0xb8 } },
-{ "bicpsw", {"rw", 0xb9 } },
-{ "popr", {"rw", 0xba } },
-{ "pushr", {"rw", 0xbb } },
-{ "chmk", {"rw", 0xbc } },
-{ "chme", {"rw", 0xbd } },
-{ "chms", {"rw", 0xbe } },
-{ "chmu", {"rw", 0xbf } },
-{ "addl2", {"rlml", 0xc0 } },
-{ "addl3", {"rlrlwl", 0xc1 } },
-{ "subl2", {"rlml", 0xc2 } },
-{ "subl3", {"rlrlwl", 0xc3 } },
-{ "mull2", {"rlml", 0xc4 } },
-{ "mull3", {"rlrlwl", 0xc5 } },
-{ "divl2", {"rlml", 0xc6 } },
-{ "divl3", {"rlrlwl", 0xc7 } },
-{ "bisl2", {"rlml", 0xc8 } },
-{ "bisl3", {"rlrlwl", 0xc9 } },
-{ "bicl2", {"rlml", 0xca } },
-{ "bicl3", {"rlrlwl", 0xcb } },
-{ "xorl2", {"rlml", 0xcc } },
-{ "xorl3", {"rlrlwl", 0xcd } },
-{ "mnegl", {"rlwl", 0xce } },
-{ "casel", {"rlrlrl", 0xcf } },
-{ "movl", {"rlwl", 0xd0 } },
-{ "cmpl", {"rlrl", 0xd1 } },
-{ "mcoml", {"rlwl", 0xd2 } },
-{ "bitl", {"rlrl", 0xd3 } },
-{ "clrf", {"wf", 0xd4 } },
-{ "clrl", {"wl", 0xd4 } },
-{ "tstl", {"rl", 0xd5 } },
-{ "incl", {"ml", 0xd6 } },
-{ "decl", {"ml", 0xd7 } },
-{ "adwc", {"rlml", 0xd8 } },
-{ "sbwc", {"rlml", 0xd9 } },
-{ "mtpr", {"rlrl", 0xda } },
-{ "mfpr", {"rlwl", 0xdb } },
-{ "movpsl", {"wl", 0xdc } },
-{ "pushl", {"rl", 0xdd } },
-{ "moval", {"alwl", 0xde } },
-{ "movaf", {"afwl", 0xde } },
-{ "pushal", {"al", 0xdf } },
-{ "pushaf", {"af", 0xdf } },
-{ "bbs", {"rlvbbb", 0xe0 } },
-{ "bbc", {"rlvbbb", 0xe1 } },
-{ "bbss", {"rlvbbb", 0xe2 } },
-{ "bbcs", {"rlvbbb", 0xe3 } },
-{ "bbsc", {"rlvbbb", 0xe4 } },
-{ "bbcc", {"rlvbbb", 0xe5 } },
-{ "bbssi", {"rlvbbb", 0xe6 } },
-{ "bbcci", {"rlvbbb", 0xe7 } },
-{ "blbs", {"rlbb", 0xe8 } },
-{ "blbc", {"rlbb", 0xe9 } },
-{ "ffs", {"rlrbvbwl", 0xea } },
-{ "ffc", {"rlrbvbwl", 0xeb } },
-{ "cmpv", {"rlrbvbrl", 0xec } },
-{ "cmpzv", {"rlrbvbrl", 0xed } },
-{ "extv", {"rlrbvbwl", 0xee } },
-{ "extzv", {"rlrbvbwl", 0xef } },
-{ "insv", {"rlrlrbvb", 0xf0 } },
-{ "acbl", {"rlrlmlbw", 0xf1 } },
-{ "aoblss", {"rlmlbb", 0xf2 } },
-{ "aobleq", {"rlmlbb", 0xf3 } },
-{ "sobgeq", {"mlbb", 0xf4 } },
-{ "sobgtr", {"mlbb", 0xf5 } },
-{ "cvtlb", {"rlwb", 0xf6 } },
-{ "cvtlw", {"rlww", 0xf7 } },
-{ "ashp", {"rbrwabrbrwab", 0xf8 } },
-{ "cvtlp", {"rlrwab", 0xf9 } },
-{ "callg", {"abab", 0xfa } },
-{ "calls", {"rlab", 0xfb } },
-{ "xfc", {"", 0xfc } },
- /* undefined opcodes here */
-{ "cvtdh", {"rdwh", 0x32fd } },
-{ "cvtgf", {"rgwh", 0x33fd } },
-{ "addg2", {"rgmg", 0x40fd } },
-{ "addg3", {"rgrgwg", 0x41fd } },
-{ "subg2", {"rgmg", 0x42fd } },
-{ "subg3", {"rgrgwg", 0x43fd } },
-{ "mulg2", {"rgmg", 0x44fd } },
-{ "mulg3", {"rgrgwg", 0x45fd } },
-{ "divg2", {"rgmg", 0x46fd } },
-{ "divg3", {"rgrgwg", 0x47fd } },
-{ "cvtgb", {"rgwb", 0x48fd } },
-{ "cvtgw", {"rgww", 0x49fd } },
-{ "cvtgl", {"rgwl", 0x4afd } },
-{ "cvtrgl", {"rgwl", 0x4bfd } },
-{ "cvtbg", {"rbwg", 0x4cfd } },
-{ "cvtwg", {"rwwg", 0x4dfd } },
-{ "cvtlg", {"rlwg", 0x4efd } },
-{ "acbg", {"rgrgmgbw", 0x4ffd } },
-{ "movg", {"rgwg", 0x50fd } },
-{ "cmpg", {"rgrg", 0x51fd } },
-{ "mnegg", {"rgwg", 0x52fd } },
-{ "tstg", {"rg", 0x53fd } },
-{ "emodg", {"rgrwrgwlwg", 0x54fd } },
-{ "polyg", {"rgrwab", 0x55fd } },
-{ "cvtgh", {"rgwh", 0x56fd } },
- /* undefined opcodes here */
-{ "addh2", {"rhmh", 0x60fd } },
-{ "addh3", {"rhrhwh", 0x61fd } },
-{ "subh2", {"rhmh", 0x62fd } },
-{ "subh3", {"rhrhwh", 0x63fd } },
-{ "mulh2", {"rhmh", 0x64fd } },
-{ "mulh3", {"rhrhwh", 0x65fd } },
-{ "divh2", {"rhmh", 0x66fd } },
-{ "divh3", {"rhrhwh", 0x67fd } },
-{ "cvthb", {"rhwb", 0x68fd } },
-{ "cvthw", {"rhww", 0x69fd } },
-{ "cvthl", {"rhwl", 0x6afd } },
-{ "cvtrhl", {"rhwl", 0x6bfd } },
-{ "cvtbh", {"rbwh", 0x6cfd } },
-{ "cvtwh", {"rwwh", 0x6dfd } },
-{ "cvtlh", {"rlwh", 0x6efd } },
-{ "acbh", {"rhrhmhbw", 0x6ffd } },
-{ "movh", {"rhwh", 0x70fd } },
-{ "cmph", {"rhrh", 0x71fd } },
-{ "mnegh", {"rhwh", 0x72fd } },
-{ "tsth", {"rh", 0x73fd } },
-{ "emodh", {"rhrwrhwlwh", 0x74fd } },
-{ "polyh", {"rhrwab", 0x75fd } },
-{ "cvthg", {"rhwg", 0x76fd } },
- /* undefined opcodes here */
-{ "clrh", {"wh", 0x7cfd } },
-{ "clro", {"wo", 0x7cfd } },
-{ "movo", {"rowo", 0x7dfd } },
-{ "movah", {"ahwl", 0x7efd } },
-{ "movao", {"aowl", 0x7efd } },
-{ "pushah", {"ah", 0x7ffd } },
-{ "pushao", {"ao", 0x7ffd } },
- /* undefined opcodes here */
-{ "cvtfh", {"rfwh", 0x98fd } },
-{ "cvtfg", {"rfwg", 0x99fd } },
- /* undefined opcodes here */
-{ "cvthf", {"rhwf", 0xf6fd } },
-{ "cvthd", {"rhwd", 0xf7fd } },
- /* undefined opcodes here */
-{ "bugl", {"rl", 0xfdff } },
-{ "bugw", {"rw", 0xfeff } },
- /* undefined opcodes here */
-
-{ "", {"", 0} } /* empty is end sentinel */
-
-}; /* votstrs */
-
-/* end: vax.opcode.h */
diff --git a/include/os9k.h b/include/os9k.h
deleted file mode 100644
index e8baee17f..000000000
--- a/include/os9k.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* os9k.h - OS-9000 i386 module header definitions
- Copyright 2000 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC 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 GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#if !defined(_MODULE_H)
-#define _MODULE_H
-
-#define _MPF386
-
-/* Size of common header less parity field. */
-#define N_M_PARITY (sizeof(mh_com)-sizeof(unisgned short))
-#define OLD_M_PARITY 46
-#define M_PARITY N_M_PARITY
-
-#ifdef _MPF68K
-#define MODSYNC 0x4afc /* Module header sync code for 680x0 processors. */
-#endif
-
-#ifdef _MPF386
-#define MODSYNC 0x4afc /* Module header sync code for 80386 processors. */
-#endif
-
-#define MODREV 1 /* Module format revision 1. */
-#define CRCCON 0x800063 /* CRC polynomial constant. */
-
-/* Module access permission values. */
-#define MP_OWNER_READ 0x0001
-#define MP_OWNER_WRITE 0x0002
-#define MP_OWNER_EXEC 0x0004
-#define MP_GROUP_READ 0x0010
-#define MP_GROUP_WRITE 0x0020
-#define MP_GROUP_EXEC 0x0040
-#define MP_WORLD_READ 0x0100
-#define MP_WORLD_WRITE 0x0200
-#define MP_WORLD_EXEC 0x0400
-#define MP_WORLD_ACCESS 0x0777
-#define MP_OWNER_MASK 0x000f
-#define MP_GROUP_MASK 0x00f0
-#define MP_WORLD_MASK 0x0f00
-#define MP_SYSTM_MASK 0xf000
-
-/* Module Type/Language values. */
-#define MT_ANY 0
-#define MT_PROGRAM 0x0001
-#define MT_SUBROUT 0x0002
-#define MT_MULTI 0x0003
-#define MT_DATA 0x0004
-#define MT_TRAPLIB 0x000b
-#define MT_SYSTEM 0x000c
-#define MT_FILEMAN 0x000d
-#define MT_DEVDRVR 0x000e
-#define MT_DEVDESC 0x000f
-#define MT_MASK 0xff00
-
-#define ML_ANY 0
-#define ML_OBJECT 1
-#define ML_ICODE 2
-#define ML_PCODE 3
-#define ML_CCODE 4
-#define ML_CBLCODE 5
-#define ML_FRTNCODE 6
-#define ML_MASK 0x00ff
-
-#define mktypelang(type, lang) (((type) << 8) | (lang))
-
-/* Module Attribute values. */
-#define MA_REENT 0x80
-#define MA_GHOST 0x40
-#define MA_SUPER 0x20
-#define MA_MASK 0xff00
-#define MR_MASK 0x00ff
-
-#define mkattrevs(attr, revs) (((attr) << 8) | (revs))
-
-#define m_user m_owner.grp_usr.usr
-#define m_group m_owner.grp_usr.grp
-#define m_group_user m_owner.group_user
-
-/* Macro definitions for accessing module header fields. */
-#define MODNAME(mod) ((u_char*)((u_char*)mod + ((Mh_com)mod)->m_name))
-#if 0
-/* Appears not to be used, and the u_int32 typedef is gone (because it
- conflicted with a Mach header. */
-#define MODSIZE(mod) ((u_int32)((Mh_com)mod)->m_size)
-#endif /* 0 */
-#define MHCOM_BYTES_SIZE 80
-#define N_BADMAG(a) (((a).a_info) != MODSYNC)
-
-typedef struct mh_com
-{
- /* Sync bytes ($4afc). */
- unsigned char m_sync[2];
- unsigned char m_sysrev[2]; /* System revision check value. */
- unsigned char m_size[4]; /* Module size. */
- unsigned char m_owner[4]; /* Group/user id. */
- unsigned char m_name[4]; /* Offset to module name. */
- unsigned char m_access[2]; /* Access permissions. */
- unsigned char m_tylan[2]; /* Type/lang. */
- unsigned char m_attrev[2]; /* Rev/attr. */
- unsigned char m_edit[2]; /* Edition. */
- unsigned char m_needs[4]; /* Module hardware requirements flags. (reserved). */
- unsigned char m_usage[4]; /* Comment string offset. */
- unsigned char m_symbol[4]; /* Symbol table offset. */
- unsigned char m_exec[4]; /* Offset to execution entry point. */
- unsigned char m_excpt[4]; /* Offset to exception entry point. */
- unsigned char m_data[4]; /* Data storage requirement. */
- unsigned char m_stack[4]; /* Stack size. */
- unsigned char m_idata[4]; /* Offset to initialized data. */
- unsigned char m_idref[4]; /* Offset to data reference lists. */
- unsigned char m_init[4]; /* Initialization routine offset. */
- unsigned char m_term[4]; /* Termination routine offset. */
- unsigned char m_ident[2]; /* Ident code for ident program. */
- char m_spare[8]; /* Reserved bytes. */
- unsigned char m_parity[2]; /* Header parity. */
-} mh_com,*Mh_com;
-
-/* Executable memory module. */
-typedef mh_com *Mh_exec,mh_exec;
-
-/* Data memory module. */
-typedef mh_com *Mh_data,mh_data;
-
-/* File manager memory module. */
-typedef mh_com *Mh_fman,mh_fman;
-
-/* Device driver module. */
-typedef mh_com *Mh_drvr,mh_drvr;
-
-/* Trap handler module. */
-typedef mh_com mh_trap, *Mh_trap;
-
-/* Device descriptor module. */
-typedef mh_com *Mh_dev,mh_dev;
-
-/* Configuration module. */
-typedef mh_com *Mh_config, mh_config;
-
-#if 0
-
-#if !defined(_MODDIR_H)
-/* Go get _os_fmod (and others). */
-#include <moddir.h>
-#endif
-
-error_code _os_crc (void *, u_int32, int *);
-error_code _os_datmod (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_data **);
-error_code _os_get_moddir (void *, u_int32 *);
-error_code _os_initdata (mh_com *, void *);
-error_code _os_link (char **, mh_com **, void **, u_int16 *, u_int16 *);
-error_code _os_linkm (mh_com *, void **, u_int16 *, u_int16 *);
-error_code _os_load (char *, mh_com **, void **, u_int32, u_int16 *, u_int16 *, u_int32);
-error_code _os_mkmodule (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_com **, u_int32);
-error_code _os_modaddr (void *, mh_com **);
-error_code _os_setcrc (mh_com *);
-error_code _os_slink (u_int32, char *, void **, void **, mh_com **);
-error_code _os_slinkm (u_int32, mh_com *, void **, void **);
-error_code _os_unlink (mh_com *);
-error_code _os_unload (char *, u_int32);
-error_code _os_tlink (u_int32, char *, void **, mh_trap **, void *, u_int32);
-error_code _os_tlinkm (u_int32, mh_com *, void **, void *, u_int32);
-error_code _os_iodel (mh_com *);
-error_code _os_vmodul (mh_com *, mh_com *, u_int32);
-#endif /* 0 */
-
-#endif
diff --git a/include/partition.h b/include/partition.h
deleted file mode 100644
index d8b554f8f..000000000
--- a/include/partition.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* List implementation of a partition of consecutive integers.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
- Contributed by CodeSourcery, LLC.
-
- This file is part of GCC.
-
- GCC is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GCC 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 GCC; see the file COPYING. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* This package implements a partition of consecutive integers. The
- elements are partitioned into classes. Each class is represented
- by one of its elements, the canonical element, which is chosen
- arbitrarily from elements in the class. The principal operations
- on a partition are FIND, which takes an element, determines its
- class, and returns the canonical element for that class, and UNION,
- which unites the two classes that contain two given elements into a
- single class.
-
- The list implementation used here provides constant-time finds. By
- storing the size of each class with the class's canonical element,
- it is able to perform unions over all the classes in the partition
- in O (N log N) time. */
-
-#ifndef _PARTITION_H
-#define _PARTITION_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-#include <stdio.h>
-
-struct partition_elem
-{
- /* The canonical element that represents the class containing this
- element. */
- int class_element;
- /* The next element in this class. Elements in each class form a
- circular list. */
- struct partition_elem* next;
- /* The number of elements in this class. Valid only if this is the
- canonical element for its class. */
- unsigned class_count;
-};
-
-typedef struct partition_def
-{
- /* The number of elements in this partition. */
- int num_elements;
- /* The elements in the partition. */
- struct partition_elem elements[1];
-} *partition;
-
-extern partition partition_new (int);
-extern void partition_delete (partition);
-extern int partition_union (partition, int, int);
-extern void partition_print (partition, FILE*);
-
-/* Returns the canonical element corresponding to the class containing
- ELEMENT__ in PARTITION__. */
-
-#define partition_find(partition__, element__) \
- ((partition__)->elements[(element__)].class_element)
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _PARTITION_H */
diff --git a/include/plugin-api.h b/include/plugin-api.h
deleted file mode 100644
index 122424c6c..000000000
--- a/include/plugin-api.h
+++ /dev/null
@@ -1,400 +0,0 @@
-/* plugin-api.h -- External linker plugin API. */
-
-/* Copyright 2009, 2010 Free Software Foundation, Inc.
- Written by Cary Coutant <ccoutant@google.com>.
-
- This file is part of binutils.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* This file defines the interface for writing a linker plugin, which is
- described at < http://gcc.gnu.org/wiki/whopr/driver >. */
-
-#ifndef PLUGIN_API_H
-#define PLUGIN_API_H
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#elif defined(HAVE_INTTYPES_H)
-#include <inttypes.h>
-#endif
-#include <sys/types.h>
-#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) && \
- !defined(UINT64_MAX) && !defined(uint64_t)
-#error can not find uint64_t type
-#endif
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* Status code returned by most API routines. */
-
-enum ld_plugin_status
-{
- LDPS_OK = 0,
- LDPS_NO_SYMS, /* Attempt to get symbols that haven't been added. */
- LDPS_BAD_HANDLE, /* No claimed object associated with given handle. */
- LDPS_ERR
- /* Additional Error codes TBD. */
-};
-
-/* The version of the API specification. */
-
-enum ld_plugin_api_version
-{
- LD_PLUGIN_API_VERSION = 1
-};
-
-/* The type of output file being generated by the linker. */
-
-enum ld_plugin_output_file_type
-{
- LDPO_REL,
- LDPO_EXEC,
- LDPO_DYN
-};
-
-/* An input file managed by the plugin library. */
-
-struct ld_plugin_input_file
-{
- const char *name;
- int fd;
- off_t offset;
- off_t filesize;
- void *handle;
-};
-
-/* A symbol belonging to an input file managed by the plugin library. */
-
-struct ld_plugin_symbol
-{
- char *name;
- char *version;
- int def;
- int visibility;
- uint64_t size;
- char *comdat_key;
- int resolution;
-};
-
-/* An object's section. */
-
-struct ld_plugin_section
-{
- const void* handle;
- unsigned int shndx;
-};
-
-/* Whether the symbol is a definition, reference, or common, weak or not. */
-
-enum ld_plugin_symbol_kind
-{
- LDPK_DEF,
- LDPK_WEAKDEF,
- LDPK_UNDEF,
- LDPK_WEAKUNDEF,
- LDPK_COMMON
-};
-
-/* The visibility of the symbol. */
-
-enum ld_plugin_symbol_visibility
-{
- LDPV_DEFAULT,
- LDPV_PROTECTED,
- LDPV_INTERNAL,
- LDPV_HIDDEN
-};
-
-/* How a symbol is resolved. */
-
-enum ld_plugin_symbol_resolution
-{
- LDPR_UNKNOWN = 0,
-
- /* Symbol is still undefined at this point. */
- LDPR_UNDEF,
-
- /* This is the prevailing definition of the symbol, with references from
- regular object code. */
- LDPR_PREVAILING_DEF,
-
- /* This is the prevailing definition of the symbol, with no
- references from regular objects. It is only referenced from IR
- code. */
- LDPR_PREVAILING_DEF_IRONLY,
-
- /* This definition was pre-empted by a definition in a regular
- object file. */
- LDPR_PREEMPTED_REG,
-
- /* This definition was pre-empted by a definition in another IR file. */
- LDPR_PREEMPTED_IR,
-
- /* This symbol was resolved by a definition in another IR file. */
- LDPR_RESOLVED_IR,
-
- /* This symbol was resolved by a definition in a regular object
- linked into the main executable. */
- LDPR_RESOLVED_EXEC,
-
- /* This symbol was resolved by a definition in a shared object. */
- LDPR_RESOLVED_DYN,
-
- /* This is the prevailing definition of the symbol, with no
- references from regular objects. It is only referenced from IR
- code, but the symbol is exported and may be referenced from
- a dynamic object (not seen at link time). */
- LDPR_PREVAILING_DEF_IRONLY_EXP
-};
-
-/* The plugin library's "claim file" handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_claim_file_handler) (
- const struct ld_plugin_input_file *file, int *claimed);
-
-/* The plugin library's "all symbols read" handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_all_symbols_read_handler) (void);
-
-/* The plugin library's cleanup handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_cleanup_handler) (void);
-
-/* The linker's interface for registering the "claim file" handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_register_claim_file) (ld_plugin_claim_file_handler handler);
-
-/* The linker's interface for registering the "all symbols read" handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_register_all_symbols_read) (
- ld_plugin_all_symbols_read_handler handler);
-
-/* The linker's interface for registering the cleanup handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_register_cleanup) (ld_plugin_cleanup_handler handler);
-
-/* The linker's interface for adding symbols from a claimed input file. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_add_symbols) (void *handle, int nsyms,
- const struct ld_plugin_symbol *syms);
-
-/* The linker's interface for getting the input file information with
- an open (possibly re-opened) file descriptor. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_input_file) (const void *handle,
- struct ld_plugin_input_file *file);
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_view) (const void *handle, const void **viewp);
-
-/* The linker's interface for releasing the input file. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_release_input_file) (const void *handle);
-
-/* The linker's interface for retrieving symbol resolution information. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_symbols) (const void *handle, int nsyms,
- struct ld_plugin_symbol *syms);
-
-/* The linker's interface for adding a compiled input file. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_add_input_file) (const char *pathname);
-
-/* The linker's interface for adding a library that should be searched. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_add_input_library) (const char *libname);
-
-/* The linker's interface for adding a library path that should be searched. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_set_extra_library_path) (const char *path);
-
-/* The linker's interface for issuing a warning or error message. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_message) (int level, const char *format, ...);
-
-/* The linker's interface for retrieving the number of sections in an object.
- The handle is obtained in the claim_file handler. This interface should
- only be invoked in the claim_file handler. This function sets *COUNT to
- the number of sections in the object. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_input_section_count) (const void* handle, unsigned int *count);
-
-/* The linker's interface for retrieving the section type of a specific
- section in an object. This interface should only be invoked in the
- claim_file handler. This function sets *TYPE to an ELF SHT_xxx value. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_input_section_type) (const struct ld_plugin_section section,
- unsigned int *type);
-
-/* The linker's interface for retrieving the name of a specific section in
- an object. This interface should only be invoked in the claim_file handler.
- This function sets *SECTION_NAME_PTR to a null-terminated buffer allocated
- by malloc. The plugin must free *SECTION_NAME_PTR. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_input_section_name) (const struct ld_plugin_section section,
- char **section_name_ptr);
-
-/* The linker's interface for retrieving the contents of a specific section
- in an object. This interface should only be invoked in the claim_file
- handler. This function sets *SECTION_CONTENTS to point to a buffer that is
- valid until clam_file handler returns. It sets *LEN to the size of the
- buffer. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_get_input_section_contents) (const struct ld_plugin_section section,
- const unsigned char **section_contents,
- size_t* len);
-
-/* The linker's interface for specifying the desired order of sections.
- The sections should be specifed using the array SECTION_LIST in the
- order in which they should appear in the final layout. NUM_SECTIONS
- specifies the number of entries in each array. This should be invoked
- in the all_symbols_read handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_update_section_order) (const struct ld_plugin_section *section_list,
- unsigned int num_sections);
-
-/* The linker's interface for specifying that reordering of sections is
- desired so that the linker can prepare for it. This should be invoked
- before update_section_order, preferably in the claim_file handler. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_allow_section_ordering) (void);
-
-enum ld_plugin_level
-{
- LDPL_INFO,
- LDPL_WARNING,
- LDPL_ERROR,
- LDPL_FATAL
-};
-
-/* Values for the tv_tag field of the transfer vector. */
-
-enum ld_plugin_tag
-{
- LDPT_NULL = 0,
- LDPT_API_VERSION,
- LDPT_GOLD_VERSION,
- LDPT_LINKER_OUTPUT,
- LDPT_OPTION,
- LDPT_REGISTER_CLAIM_FILE_HOOK,
- LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK,
- LDPT_REGISTER_CLEANUP_HOOK,
- LDPT_ADD_SYMBOLS,
- LDPT_GET_SYMBOLS,
- LDPT_ADD_INPUT_FILE,
- LDPT_MESSAGE,
- LDPT_GET_INPUT_FILE,
- LDPT_RELEASE_INPUT_FILE,
- LDPT_ADD_INPUT_LIBRARY,
- LDPT_OUTPUT_NAME,
- LDPT_SET_EXTRA_LIBRARY_PATH,
- LDPT_GNU_LD_VERSION,
- LDPT_GET_VIEW,
- LDPT_GET_INPUT_SECTION_COUNT,
- LDPT_GET_INPUT_SECTION_TYPE,
- LDPT_GET_INPUT_SECTION_NAME,
- LDPT_GET_INPUT_SECTION_CONTENTS,
- LDPT_UPDATE_SECTION_ORDER,
- LDPT_ALLOW_SECTION_ORDERING,
- LDPT_GET_SYMBOLS_V2
-};
-
-/* The plugin transfer vector. */
-
-struct ld_plugin_tv
-{
- enum ld_plugin_tag tv_tag;
- union
- {
- int tv_val;
- const char *tv_string;
- ld_plugin_register_claim_file tv_register_claim_file;
- ld_plugin_register_all_symbols_read tv_register_all_symbols_read;
- ld_plugin_register_cleanup tv_register_cleanup;
- ld_plugin_add_symbols tv_add_symbols;
- ld_plugin_get_symbols tv_get_symbols;
- ld_plugin_add_input_file tv_add_input_file;
- ld_plugin_message tv_message;
- ld_plugin_get_input_file tv_get_input_file;
- ld_plugin_get_view tv_get_view;
- ld_plugin_release_input_file tv_release_input_file;
- ld_plugin_add_input_library tv_add_input_library;
- ld_plugin_set_extra_library_path tv_set_extra_library_path;
- ld_plugin_get_input_section_count tv_get_input_section_count;
- ld_plugin_get_input_section_type tv_get_input_section_type;
- ld_plugin_get_input_section_name tv_get_input_section_name;
- ld_plugin_get_input_section_contents tv_get_input_section_contents;
- ld_plugin_update_section_order tv_update_section_order;
- ld_plugin_allow_section_ordering tv_allow_section_ordering;
- } tv_u;
-};
-
-/* The plugin library's "onload" entry point. */
-
-typedef
-enum ld_plugin_status
-(*ld_plugin_onload) (struct ld_plugin_tv *tv);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PLUGIN_API_H) */
diff --git a/include/progress.h b/include/progress.h
deleted file mode 100644
index 80ffbe24a..000000000
--- a/include/progress.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Default definitions for progress macros.
- Copyright 1994, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-/* The default definitions below are intended to be replaced by real
- definitions, if building the tools for an interactive programming
- environment. */
-
-#ifndef _PROGRESS_H
-#define _PROGRESS_H
-
-#ifndef START_PROGRESS
-#define START_PROGRESS(STR,N)
-#endif
-
-#ifndef PROGRESS
-#define PROGRESS(X)
-#endif
-
-#ifndef END_PROGRESS
-#define END_PROGRESS(STR)
-#endif
-
-#endif /* _PROGRESS_H */
diff --git a/include/safe-ctype.h b/include/safe-ctype.h
deleted file mode 100644
index 0266bf1aa..000000000
--- a/include/safe-ctype.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* <ctype.h> replacement macros.
-
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
- Contributed by Zack Weinberg <zackw@stanford.edu>.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-/* This is a compatible replacement of the standard C library's <ctype.h>
- with the following properties:
-
- - Implements all isxxx() macros required by C99.
- - Also implements some character classes useful when
- parsing C-like languages.
- - Does not change behavior depending on the current locale.
- - Behaves properly for all values in the range of a signed or
- unsigned char.
-
- To avoid conflicts, this header defines the isxxx functions in upper
- case, e.g. ISALPHA not isalpha. */
-
-#ifndef SAFE_CTYPE_H
-#define SAFE_CTYPE_H
-
-/* Determine host character set. */
-#define HOST_CHARSET_UNKNOWN 0
-#define HOST_CHARSET_ASCII 1
-#define HOST_CHARSET_EBCDIC 2
-
-#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \
- && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21
-# define HOST_CHARSET HOST_CHARSET_ASCII
-#else
-# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \
- && 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A
-# define HOST_CHARSET HOST_CHARSET_EBCDIC
-# else
-# define HOST_CHARSET HOST_CHARSET_UNKNOWN
-# endif
-#endif
-
-/* Categories. */
-
-enum {
- /* In C99 */
- _sch_isblank = 0x0001, /* space \t */
- _sch_iscntrl = 0x0002, /* nonprinting characters */
- _sch_isdigit = 0x0004, /* 0-9 */
- _sch_islower = 0x0008, /* a-z */
- _sch_isprint = 0x0010, /* any printing character including ' ' */
- _sch_ispunct = 0x0020, /* all punctuation */
- _sch_isspace = 0x0040, /* space \t \n \r \f \v */
- _sch_isupper = 0x0080, /* A-Z */
- _sch_isxdigit = 0x0100, /* 0-9A-Fa-f */
-
- /* Extra categories useful to cpplib. */
- _sch_isidst = 0x0200, /* A-Za-z_ */
- _sch_isvsp = 0x0400, /* \n \r */
- _sch_isnvsp = 0x0800, /* space \t \f \v \0 */
-
- /* Combinations of the above. */
- _sch_isalpha = _sch_isupper|_sch_islower, /* A-Za-z */
- _sch_isalnum = _sch_isalpha|_sch_isdigit, /* A-Za-z0-9 */
- _sch_isidnum = _sch_isidst|_sch_isdigit, /* A-Za-z0-9_ */
- _sch_isgraph = _sch_isalnum|_sch_ispunct, /* isprint and not space */
- _sch_iscppsp = _sch_isvsp|_sch_isnvsp, /* isspace + \0 */
- _sch_isbasic = _sch_isprint|_sch_iscppsp /* basic charset of ISO C
- (plus ` and @) */
-};
-
-/* Character classification. */
-extern const unsigned short _sch_istable[256];
-
-#define _sch_test(c, bit) (_sch_istable[(c) & 0xff] & (unsigned short)(bit))
-
-#define ISALPHA(c) _sch_test(c, _sch_isalpha)
-#define ISALNUM(c) _sch_test(c, _sch_isalnum)
-#define ISBLANK(c) _sch_test(c, _sch_isblank)
-#define ISCNTRL(c) _sch_test(c, _sch_iscntrl)
-#define ISDIGIT(c) _sch_test(c, _sch_isdigit)
-#define ISGRAPH(c) _sch_test(c, _sch_isgraph)
-#define ISLOWER(c) _sch_test(c, _sch_islower)
-#define ISPRINT(c) _sch_test(c, _sch_isprint)
-#define ISPUNCT(c) _sch_test(c, _sch_ispunct)
-#define ISSPACE(c) _sch_test(c, _sch_isspace)
-#define ISUPPER(c) _sch_test(c, _sch_isupper)
-#define ISXDIGIT(c) _sch_test(c, _sch_isxdigit)
-
-#define ISIDNUM(c) _sch_test(c, _sch_isidnum)
-#define ISIDST(c) _sch_test(c, _sch_isidst)
-#define IS_ISOBASIC(c) _sch_test(c, _sch_isbasic)
-#define IS_VSPACE(c) _sch_test(c, _sch_isvsp)
-#define IS_NVSPACE(c) _sch_test(c, _sch_isnvsp)
-#define IS_SPACE_OR_NUL(c) _sch_test(c, _sch_iscppsp)
-
-/* Character transformation. */
-extern const unsigned char _sch_toupper[256];
-extern const unsigned char _sch_tolower[256];
-#define TOUPPER(c) _sch_toupper[(c) & 0xff]
-#define TOLOWER(c) _sch_tolower[(c) & 0xff]
-
-/* Prevent the users of safe-ctype.h from accidently using the routines
- from ctype.h. Initially, the approach was to produce an error when
- detecting that ctype.h has been included. But this was causing
- trouble as ctype.h might get indirectly included as a result of
- including another system header (for instance gnulib's stdint.h).
- So we include ctype.h here and then immediately redefine its macros. */
-
-#include <ctype.h>
-#undef isalpha
-#define isalpha(c) do_not_use_isalpha_with_safe_ctype
-#undef isalnum
-#define isalnum(c) do_not_use_isalnum_with_safe_ctype
-#undef iscntrl
-#define iscntrl(c) do_not_use_iscntrl_with_safe_ctype
-#undef isdigit
-#define isdigit(c) do_not_use_isdigit_with_safe_ctype
-#undef isgraph
-#define isgraph(c) do_not_use_isgraph_with_safe_ctype
-#undef islower
-#define islower(c) do_not_use_islower_with_safe_ctype
-#undef isprint
-#define isprint(c) do_not_use_isprint_with_safe_ctype
-#undef ispunct
-#define ispunct(c) do_not_use_ispunct_with_safe_ctype
-#undef isspace
-#define isspace(c) do_not_use_isspace_with_safe_ctype
-#undef isupper
-#define isupper(c) do_not_use_isupper_with_safe_ctype
-#undef isxdigit
-#define isxdigit(c) do_not_use_isxdigit_with_safe_ctype
-#undef toupper
-#define toupper(c) do_not_use_toupper_with_safe_ctype
-#undef tolower
-#define tolower(c) do_not_use_tolower_with_safe_ctype
-
-#endif /* SAFE_CTYPE_H */
diff --git a/include/sha1.h b/include/sha1.h
deleted file mode 100644
index 5473f91f4..000000000
--- a/include/sha1.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Declarations of functions and data types used for SHA1 sum
- library functions.
- Copyright (C) 2000, 2001, 2003, 2005, 2006, 2008, 2010
- 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef SHA1_H
-# define SHA1_H 1
-
-#include <stdio.h>
-
-#if defined HAVE_LIMITS_H || _LIBC
-# include <limits.h>
-#endif
-
-#include "ansidecl.h"
-
-/* The following contortions are an attempt to use the C preprocessor
- to determine an unsigned integral type that is 32 bits wide. An
- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
- doing that would require that the configure script compile and *run*
- the resulting executable. Locally running cross-compiled executables
- is usually not possible. */
-
-#ifdef _LIBC
-# include <sys/types.h>
-typedef u_int32_t sha1_uint32;
-typedef uintptr_t sha1_uintptr;
-#else
-# define INT_MAX_32_BITS 2147483647
-
-/* If UINT_MAX isn't defined, assume it's a 32-bit type.
- This should be valid for all systems GNU cares about because
- that doesn't include 16-bit systems, and only modern systems
- (that certainly have <limits.h>) have 64+-bit integral types. */
-
-# ifndef INT_MAX
-# define INT_MAX INT_MAX_32_BITS
-# endif
-
-# if INT_MAX == INT_MAX_32_BITS
- typedef unsigned int sha1_uint32;
-# else
-# if SHRT_MAX == INT_MAX_32_BITS
- typedef unsigned short sha1_uint32;
-# else
-# if LONG_MAX == INT_MAX_32_BITS
- typedef unsigned long sha1_uint32;
-# else
- /* The following line is intended to evoke an error.
- Using #error is not portable enough. */
- "Cannot determine unsigned 32-bit data type."
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Structure to save state of computation between the single steps. */
-struct sha1_ctx
-{
- sha1_uint32 A;
- sha1_uint32 B;
- sha1_uint32 C;
- sha1_uint32 D;
- sha1_uint32 E;
-
- sha1_uint32 total[2];
- sha1_uint32 buflen;
- sha1_uint32 buffer[32];
-};
-
-
-/* Initialize structure containing state of computation. */
-extern void sha1_init_ctx (struct sha1_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
- initialization function update the context for the next LEN bytes
- starting at BUFFER.
- It is necessary that LEN is a multiple of 64!!! */
-extern void sha1_process_block (const void *buffer, size_t len,
- struct sha1_ctx *ctx);
-
-/* Starting with the result of former calls of this function (or the
- initialization function update the context for the next LEN bytes
- starting at BUFFER.
- It is NOT required that LEN is a multiple of 64. */
-extern void sha1_process_bytes (const void *buffer, size_t len,
- struct sha1_ctx *ctx);
-
-/* Process the remaining bytes in the buffer and put result from CTX
- in first 20 bytes following RESBUF. The result is always in little
- endian byte order, so that a byte-wise output yields to the wanted
- ASCII representation of the message digest.
-
- IMPORTANT: On some systems it is required that RESBUF be correctly
- aligned for a 32 bits value. */
-extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf);
-
-
-/* Put result from CTX in first 20 bytes following RESBUF. The result is
- always in little endian byte order, so that a byte-wise output yields
- to the wanted ASCII representation of the message digest.
-
- IMPORTANT: On some systems it is required that RESBUF is correctly
- aligned for a 32 bits value. */
-extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf);
-
-
-/* Compute SHA1 message digest for bytes read from STREAM. The
- resulting message digest number will be written into the 20 bytes
- beginning at RESBLOCK. */
-extern int sha1_stream (FILE *stream, void *resblock);
-
-/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The
- result is always in little endian byte order, so that a byte-wise
- output yields to the wanted ASCII representation of the message
- digest. */
-extern void *sha1_buffer (const char *buffer, size_t len, void *resblock);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/simple-object.h b/include/simple-object.h
deleted file mode 100644
index c4786757a..000000000
--- a/include/simple-object.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* simple-object.h -- simple routines to read and write object files
- Copyright 2010 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef SIMPLE_OBJECT_H
-#define SIMPLE_OBJECT_H
-
-#include <stddef.h>
-#include <sys/types.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* This header file provides four types with associated functions.
- They are used to read and write object files. This is a minimal
- interface, intended to support the needs of gcc without bringing in
- all the power and complexity of BFD. */
-
-/* The type simple_object_read * is used to read an existing object
- file. */
-
-typedef struct simple_object_read_struct simple_object_read;
-
-/* Create an simple_object_read given DESCRIPTOR, an open file
- descriptor, and OFFSET, an offset within the file. The offset is
- for use with archives, and should be 0 for an ordinary object file.
- The descriptor must remain open until done with the returned
- simple_object_read. SEGMENT_NAME is used on Mach-O and is required
- on that platform: it means to only look at sections within the
- segment with that name. It is ignored for other object file
- formats. On error, this function returns NULL, and sets *ERRMSG to
- an error string and sets *ERR to an errno value or 0 if there is no
- relevant errno. */
-
-extern simple_object_read *
-simple_object_start_read (int descriptor, off_t offset,
- const char *segment_name, const char **errmsg,
- int *err);
-
-/* Call PFN for each section in SIMPLE_OBJECT, passing it the section
- name, offset within the file of the section contents, and length of
- the section contents. The offset within the file is relative to
- the offset passed to simple_object_start_read. The DATA argument
- to simple_object_find_sections is passed on to PFN. If PFN returns
- 0, the loop is stopped and simple_object_find_sections returns. If
- PFN returns non-zero, the loop continues. On success this returns
- NULL. On error it returns an error string, and sets *ERR to an
- errno value or 0 if there is no relevant errno. */
-
-extern const char *
-simple_object_find_sections (simple_object_read *simple_object,
- int (*pfn) (void *data, const char *,
- off_t offset, off_t length),
- void *data,
- int *err);
-
-/* Look for the section NAME in SIMPLE_OBJECT. This returns
- information for the first section NAME in SIMPLE_OBJECT. Note that
- calling this multiple times is inefficient; use
- simple_object_find_sections instead.
-
- If found, return 1 and set *OFFSET to the offset in the file of the
- section contents and set *LENGTH to the length of the section
- contents. *OFFSET will be relative to the offset passed to
- simple_object_start_read.
-
- If the section is not found, and no error occurs, return 0 and set
- *ERRMSG to NULL.
-
- If an error occurs, return 0, set *ERRMSG to an error message, and
- set *ERR to an errno value or 0 if there is no relevant errno. */
-
-extern int
-simple_object_find_section (simple_object_read *simple_object,
- const char *name, off_t *offset, off_t *length,
- const char **errmsg, int *err);
-
-/* Release all resources associated with SIMPLE_OBJECT. This does not
- close the file descriptor. */
-
-extern void
-simple_object_release_read (simple_object_read *);
-
-/* The type simple_object_attributes holds the attributes of an object
- file that matter for creating a file or ensuring that two files are
- compatible. This is a set of magic numbers. */
-
-typedef struct simple_object_attributes_struct simple_object_attributes;
-
-/* Fetch the attributes of SIMPLE_OBJECT. This information will
- persist until simple_object_attributes_release is called, even if
- SIMPLE_OBJECT is closed. On error this returns NULL, sets *ERRMSG
- to an error message, and sets *ERR to an errno value or 0 if there
- isn't one. */
-
-extern simple_object_attributes *
-simple_object_fetch_attributes (simple_object_read *simple_object,
- const char **errmsg, int *err);
-
-/* Merge the FROM attributes into TO. If two objects with these
- attributes could be linked together without error, returns NULL.
- Otherwise, returns an error message, and sets *ERR to an errno
- value or 0 if there isn't one. */
-
-extern const char *
-simple_object_attributes_merge (simple_object_attributes *to,
- simple_object_attributes *from,
- int *err);
-
-/* Release all resources associated with ATTRS. */
-
-extern void
-simple_object_release_attributes (simple_object_attributes *attrs);
-
-/* The type simple_object_write is used to create a new object file. */
-
-typedef struct simple_object_write_struct simple_object_write;
-
-/* Start creating a new object file which is like ATTRS. You must
- fetch attribute information from an existing object file before you
- can create a new one. There is currently no support for creating
- an object file de novo. The segment name is only used on Mach-O,
- where it is required. It means that all sections are created
- within that segment. It is ignored for other object file formats.
- On error this function returns NULL, sets *ERRMSG to an error
- message, and sets *ERR to an errno value or 0 if there isn't
- one. */
-
-extern simple_object_write *
-simple_object_start_write (simple_object_attributes *attrs,
- const char *segment_name,
- const char **errmsg, int *err);
-
-/* The type simple_object_write_section is a handle for a section
- which is being written. */
-
-typedef struct simple_object_write_section_struct simple_object_write_section;
-
-/* Add a section to SIMPLE_OBJECT. NAME is the name of the new
- section. ALIGN is the required alignment expressed as the number
- of required low-order 0 bits (e.g., 2 for alignment to a 32-bit
- boundary). The section is created as containing data, readable,
- not writable, not executable, not loaded at runtime. On error this
- returns NULL, sets *ERRMSG to an error message, and sets *ERR to an
- errno value or 0 if there isn't one. */
-
-extern simple_object_write_section *
-simple_object_write_create_section (simple_object_write *simple_object,
- const char *name, unsigned int align,
- const char **errmsg, int *err);
-
-/* Add data BUFFER/SIZE to SECTION in SIMPLE_OBJECT. If COPY is
- non-zero, the data will be copied into memory if necessary. If
- COPY is zero, BUFFER must persist until SIMPLE_OBJECT is released.
- On success this returns NULL. On error this returns an error
- message, and sets *ERR to an errno value or 0 if there isn't
- one. */
-
-extern const char *
-simple_object_write_add_data (simple_object_write *simple_object,
- simple_object_write_section *section,
- const void *buffer, size_t size,
- int copy, int *err);
-
-/* Write the complete object file to DESCRIPTOR, an open file
- descriptor. This returns NULL on success. On error this returns
- an error message, and sets *ERR to an errno value or 0 if there
- isn't one. */
-
-extern const char *
-simple_object_write_to_file (simple_object_write *simple_object,
- int descriptor, int *err);
-
-/* Release all resources associated with SIMPLE_OBJECT, including any
- simple_object_write_section's that may have been created. */
-
-extern void
-simple_object_release_write (simple_object_write *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/som/ChangeLog b/include/som/ChangeLog
deleted file mode 100644
index f55a41726..000000000
--- a/include/som/ChangeLog
+++ /dev/null
@@ -1,7 +0,0 @@
-2010-06-10 Tristan Gingold <gingold@adacore.com>
-
- * aout.h: New file.
- * clock.h: Likewise.
- * lst.h: Likewise.
- * reloc.h: Likewise.
- * internal.h: Likewise.
diff --git a/include/som/aout.h b/include/som/aout.h
deleted file mode 100644
index c3845edf6..000000000
--- a/include/som/aout.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* SOM a.out definitions for BFD.
- Copyright 2010 Free Software Foundation, Inc.
- Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _SOM_AOUT_H
-#define _SOM_AOUT_H
-
-#include "clock.h"
-
-/* Note: SOM uses bit-field in its structure. All you need to know is:
- - CPUs supported by SOM (hppa) are big-endian,
- - the MSB is numbered 0. */
-
-struct som_external_header
-{
- unsigned char system_id[2];
- unsigned char a_magic[2];
- unsigned char version_id[4];
- struct som_external_clock file_time;
- unsigned char entry_space[4];
- unsigned char entry_subspace[4];
- unsigned char entry_offset[4];
- unsigned char aux_header_location[4];
- unsigned char aux_header_size[4];
- unsigned char som_length[4];
- unsigned char presumed_dp[4];
- unsigned char space_location[4];
- unsigned char space_total[4];
- unsigned char subspace_location[4];
- unsigned char subspace_total[4];
- unsigned char loader_fixup_location[4];
- unsigned char loader_fixup_total[4];
- unsigned char space_strings_location[4];
- unsigned char space_strings_size[4];
- unsigned char init_array_location[4];
- unsigned char init_array_total[4];
- unsigned char compiler_location[4];
- unsigned char compiler_total[4];
- unsigned char symbol_location[4];
- unsigned char symbol_total[4];
- unsigned char fixup_request_location[4];
- unsigned char fixup_request_total[4];
- unsigned char symbol_strings_location[4];
- unsigned char symbol_strings_size[4];
- unsigned char unloadable_sp_location[4];
- unsigned char unloadable_sp_size[4];
- unsigned char checksum[4];
-};
-
-#define OLD_VERSION_ID 85082112
-#define NEW_VERSION_ID 87102412
-
-#define EXECLIBMAGIC 0x0104
-#define RELOC_MAGIC 0x0106
-#define EXEC_MAGIC 0x0107
-#define SHARE_MAGIC 0x0108
-#define SHMEM_MAGIC 0x0109
-#define DEMAND_MAGIC 0x010b
-#define DL_MAGIC 0x010d
-#define SHL_MAGIC 0x010e
-
-struct som_external_aux_id
-{
- unsigned char flags[4];
- unsigned char length[4];
-};
-
-/* Aux id types. */
-#define VERSION_AUX_ID 6
-#define COPYRIGHT_AUX_ID 9
-
-/* Aux id flags. */
-#define SOM_AUX_ID_MANDATORY (1 << 31)
-#define SOM_AUX_ID_COPY (1 << 30)
-#define SOM_AUX_ID_APPEND (1 << 29)
-#define SOM_AUX_ID_IGNORE (1 << 28)
-#define SOM_AUX_ID_TYPE_SH 0
-#define SOM_AUX_ID_TYPE_MASK 0xffff
-
-struct som_external_string_auxhdr
-{
- struct som_external_aux_id header_id;
-
- /* Length of the string, without the NUL. */
- unsigned char string_length[4];
-
- /* The string. */
-};
-
-struct som_external_exec_auxhdr
-{
- struct som_external_aux_id som_auxhdr;
-
- unsigned char exec_tsize[4];
- unsigned char exec_tmem[4];
- unsigned char exec_tfile[4];
- unsigned char exec_dsize[4];
- unsigned char exec_dmem[4];
- unsigned char exec_dfile[4];
- unsigned char exec_bsize[4];
- unsigned char exec_entry[4];
- unsigned char exec_flags[4];
- unsigned char exec_bfill[4];
-};
-
-#define AUX_HDR_SIZE sizeof (struct som_external_exec_auxhdr)
-
-struct som_external_space_dictionary_record
-{
- unsigned char name[4];
- unsigned char flags[4];
- unsigned char space_number[4];
- unsigned char subspace_index[4];
- unsigned char subspace_quantity[4];
- unsigned char loader_fix_index[4];
- unsigned char loader_fix_quantity[4];
- unsigned char init_pointer_index[4];
- unsigned char init_pointer_quantity[4];
-};
-
-#define SOM_SPACE_IS_LOADABLE (1 << 31)
-#define SOM_SPACE_IS_DEFINED (1 << 30)
-#define SOM_SPACE_IS_PRIVATE (1 << 29)
-#define SOM_SPACE_HAS_INTERMEDIATE_CODE (1 << 28)
-#define SOM_SPACE_IS_TSPECIFIC (1 << 27)
-#define SOM_SPACE_SORT_KEY_SH 8
-#define SOM_SPACE_SORT_KEY_MASK 0xff
-
-struct som_external_subspace_dictionary_record
-{
- unsigned char space_index[4];
- unsigned char flags[4];
- unsigned char file_loc_init_value[4];
- unsigned char initialization_length[4];
- unsigned char subspace_start[4];
- unsigned char subspace_length[4];
- unsigned char alignment[4];
- unsigned char name[4];
- unsigned char fixup_request_index[4];
- unsigned char fixup_request_quantity[4];
-};
-
-#define SOM_SUBSPACE_ACCESS_CONTROL_BITS_SH 25
-#define SOM_SUBSPACE_ACCESS_CONTROL_BITS_MASK 0x7f
-#define SOM_SUBSPACE_MEMORY_RESIDENT (1 << 24)
-#define SOM_SUBSPACE_DUP_COMMON (1 << 23)
-#define SOM_SUBSPACE_IS_COMMON (1 << 22)
-#define SOM_SUBSPACE_IS_LOADABLE (1 << 21)
-#define SOM_SUBSPACE_QUADRANT_SH 19
-#define SOM_SUBSPACE_QUADRANT_MASK 0x3
-#define SOM_SUBSPACE_INITIALLY_FROZEN (1 << 18)
-#define SOM_SUBSPACE_IS_FIRST (1 << 17)
-#define SOM_SUBSPACE_CODE_ONLY (1 << 16)
-#define SOM_SUBSPACE_SORT_KEY_SH 8
-#define SOM_SUBSPACE_SORT_KEY_MASK 0xff
-#define SOM_SUBSPACE_REPLICATE_INIT (1 << 7)
-#define SOM_SUBSPACE_CONTINUATION (1 << 6)
-#define SOM_SUBSPACE_IS_TSPECIFIC (1 << 5)
-#define SOM_SUBSPACE_IS_COMDAT (1 << 4)
-
-struct som_external_compilation_unit
-{
- unsigned char name[4];
- unsigned char language_name[4];
- unsigned char product_id[4];
- unsigned char version_id[4];
- unsigned char flags[4];
- struct som_external_clock compile_time;
- struct som_external_clock source_time;
-};
-
-struct som_external_symbol_dictionary_record
-{
- unsigned char flags[4];
- unsigned char name[4];
- unsigned char qualifier_name[4];
- unsigned char info[4];
- unsigned char symbol_value[4];
-};
-
-/* Flags fields. */
-#define SOM_SYMBOL_HIDDEN (1 << 31)
-#define SOM_SYMBOL_SECONDARY_DEF (1 << 30)
-#define SOM_SYMBOL_TYPE_SH 24
-#define SOM_SYMBOL_TYPE_MASK 0x3f
-#define SOM_SYMBOL_SCOPE_SH 20
-#define SOM_SYMBOL_SCOPE_MASK 0xf
-#define SOM_SYMBOL_CHECK_LEVEL_SH 17
-#define SOM_SYMBOL_CHECK_LEVEL_MASK 0x7
-#define SOM_SYMBOL_MUST_QUALIFY (1 << 16)
-#define SOM_SYMBOL_INITIALLY_FROZEN (1 << 15)
-#define SOM_SYMBOL_MEMORY_RESIDENT (1 << 14)
-#define SOM_SYMBOL_IS_COMMON (1 << 13)
-#define SOM_SYMBOL_DUP_COMMON (1 << 12)
-#define SOM_SYMBOL_XLEAST_SH 10
-#define SOM_SYMBOL_XLEAT_MASK 0x3
-#define SOM_SYMBOL_ARG_RELOC_SH 0
-#define SOM_SYMBOL_ARG_RELOC_MASK 0x3ff
-
-/* Info fields. */
-#define SOM_SYMBOL_HAS_LONG_RETURN (1 << 31)
-#define SOM_SYMBOL_NO_RELOCATION (1 << 30)
-#define SOM_SYMBOL_IS_COMDAT (1 << 29)
-#define SOM_SYMBOL_SYMBOL_INFO_SH 0
-#define SOM_SYMBOL_SYMBOL_INFO_MASK 0xffffff
-
-/* Symbol type definition. */
-#define ST_NULL 0
-#define ST_ABSOLUTE 1
-#define ST_DATA 2
-#define ST_CODE 3
-#define ST_PRI_PROG 4
-#define ST_SEC_PROG 5
-#define ST_ENTRY 6
-#define ST_STORAGE 7
-#define ST_STUB 8
-#define ST_MODULE 9
-#define ST_SYM_EXT 10
-#define ST_ARG_EXT 11
-#define ST_MILLICODE 12
-#define ST_PLABEL 13
-#define ST_OCT_DIS 14
-#define ST_MILLI_EXT 15
-#define ST_TSTORAGE 16
-#define ST_COMDAT 17
-
-/* Symbol scope. */
-#define SS_UNSAT 0
-#define SS_EXTERNAL 1
-#define SS_LOCAL 2
-#define SS_UNIVERSAL 3
-
-#endif /* _SOM_AOUT_H */
diff --git a/include/som/clock.h b/include/som/clock.h
deleted file mode 100644
index e2a7ba6d4..000000000
--- a/include/som/clock.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SOM clock definition for BFD.
- Copyright 2010 Free Software Foundation, Inc.
- Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _SOM_CLOCK_H
-#define _SOM_CLOCK_H
-
-struct som_external_clock
-{
- unsigned char secs[4];
- unsigned char nanosecs[4];
-};
-
-#endif /* _SOM_CLOCK_H */
diff --git a/include/som/internal.h b/include/som/internal.h
deleted file mode 100644
index e3889fb59..000000000
--- a/include/som/internal.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* SOM internal definitions for BFD.
- Copyright 2010 Free Software Foundation, Inc.
- Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _SOM_INTERNAL_H
-#define _SOM_INTERNAL_H
-
-struct som_clock
-{
- unsigned int secs;
- unsigned int nanosecs;
-};
-
-struct som_header
-{
- unsigned short system_id;
- unsigned short a_magic;
- unsigned int version_id;
- struct som_clock file_time;
- unsigned int entry_space;
- unsigned int entry_subspace;
- unsigned int entry_offset;
- unsigned int aux_header_location;
- unsigned int aux_header_size;
- unsigned int som_length;
- unsigned int presumed_dp;
- unsigned int space_location;
- unsigned int space_total;
- unsigned int subspace_location;
- unsigned int subspace_total;
- unsigned int loader_fixup_location;
- unsigned int loader_fixup_total;
- unsigned int space_strings_location;
- unsigned int space_strings_size;
- unsigned int init_array_location;
- unsigned int init_array_total;
- unsigned int compiler_location;
- unsigned int compiler_total;
- unsigned int symbol_location;
- unsigned int symbol_total;
- unsigned int fixup_request_location;
- unsigned int fixup_request_total;
- unsigned int symbol_strings_location;
- unsigned int symbol_strings_size;
- unsigned int unloadable_sp_location;
- unsigned int unloadable_sp_size;
- unsigned int checksum;
-};
-
-struct som_aux_id
-{
- unsigned int mandatory : 1;
- unsigned int copy : 1;
- unsigned int append : 1;
- unsigned int ignore : 1;
- unsigned int reserved : 12;
-
- /* Header type. */
- unsigned int type : 16;
-
- /* Length of the header in bytes, without the two word identifier. */
- unsigned int length;
-};
-
-/* Generic auxiliary string header. */
-struct som_string_auxhdr
-{
- struct som_aux_id header_id;
-
- /* Length of the string, without the NUL. */
- unsigned int string_length;
-
- /* The string. */
- char string[1];
-};
-
-struct som_name_pt
-{
- char *name;
- unsigned int strx;
-};
-
-struct som_compilation_unit
-{
- /* Source file that produced the SOM. */
- struct som_name_pt name;
-
- /* Name of the language used when creating this SOM. */
- struct som_name_pt language_name;
-
- /* Identificaton of the compiler. */
- struct som_name_pt product_id;
-
- /* Version id of the compiler. */
- struct som_name_pt version_id;
-
- unsigned int flags;
- struct som_clock compile_time;
- struct som_clock source_time;
-};
-
-struct som_exec_auxhdr
-{
- struct som_aux_id som_auxhdr;
-
- long exec_tsize;
- long exec_tmem;
- long exec_tfile;
- long exec_dsize;
- long exec_dmem;
- long exec_dfile;
- long exec_bsize;
- long exec_entry;
- long exec_flags;
- long exec_bfill;
-};
-
-struct som_space_dictionary_record
-{
- unsigned int name;
- unsigned int is_loadable : 1;
- unsigned int is_defined : 1;
- unsigned int is_private : 1;
- unsigned int has_intermediate_code : 1;
- unsigned int is_tspecific : 1;
- unsigned int reserved : 11;
- unsigned int sort_key : 8;
- unsigned int reserved2 : 8;
- int space_number;
- int subspace_index;
- unsigned int subspace_quantity;
- int loader_fix_index;
- unsigned int loader_fix_quantity;
- int init_pointer_index;
- unsigned int init_pointer_quantity;
-};
-
-struct som_subspace_dictionary_record
-{
- int space_index;
- unsigned int access_control_bits : 7;
- unsigned int memory_resident : 1;
- unsigned int dup_common : 1;
- unsigned int is_common : 1;
- unsigned int is_loadable : 1;
- unsigned int quadrant : 2;
- unsigned int initially_frozen : 1;
- unsigned int is_first : 1;
- unsigned int code_only : 1;
- unsigned int sort_key : 8;
- unsigned int replicate_init : 1;
- unsigned int continuation : 1;
- unsigned int is_tspecific : 1;
- unsigned int is_comdat : 1;
- unsigned int reserved : 4;
- int file_loc_init_value;
- unsigned int initialization_length;
- unsigned int subspace_start;
- unsigned int subspace_length;
- unsigned int reserved2 : 5;
- unsigned int alignment : 27;
- unsigned int name;
- int fixup_request_index;
- unsigned int fixup_request_quantity;
-};
-
-struct som_lst_header
-{
- unsigned short system_id;
- unsigned short a_magic;
- unsigned int version_id;
- struct som_clock file_time;
- unsigned int hash_loc;
- unsigned int hash_size;
- unsigned int module_count;
- unsigned int module_limit;
- unsigned int dir_loc;
- unsigned int export_loc;
- unsigned int export_count;
- unsigned int import_loc;
- unsigned int aux_loc;
- unsigned int aux_size;
- unsigned int string_loc;
- unsigned int string_size;
- unsigned int free_list;
- unsigned int file_end;
- unsigned int checksum;
-};
-
-#endif /* _SOM_INTERNAL_H */
diff --git a/include/som/lst.h b/include/som/lst.h
deleted file mode 100644
index 6088b47c4..000000000
--- a/include/som/lst.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* SOM lst definitions for BFD.
- Copyright 2010 Free Software Foundation, Inc.
- Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _SOM_LST_H
-#define _SOM_LST_H
-
-#include "clock.h"
-
-/* See 4.2 Libraray Symbol Table Header Record. */
-struct som_external_lst_header
-{
- unsigned char system_id[2];
- unsigned char a_magic[2];
- unsigned char version_id[4];
- struct som_external_clock file_time;
- unsigned char hash_loc[4];
- unsigned char hash_size[4];
- unsigned char module_count[4];
- unsigned char module_limit[4];
- unsigned char dir_loc[4];
- unsigned char export_loc[4];
- unsigned char export_count[4];
- unsigned char import_loc[4];
- unsigned char aux_loc[4];
- unsigned char aux_size[4];
- unsigned char string_loc[4];
- unsigned char string_size[4];
- unsigned char free_list[4];
- unsigned char file_end[4];
- unsigned char checksum[4];
-};
-
-#define VERSION_ID 85082112
-#define LIBMAGIC 0x0619
-#define LIBMAGIC_EXEC 0x0104
-
-struct som_external_lst_symbol_record
-{
- unsigned char flags[4];
- unsigned char name[4];
- unsigned char qualifier_name[4];
- unsigned char symbol_info[4];
- unsigned char symbol_value[4];
- unsigned char symbol_descriptor[4];
- unsigned char reserved;
- unsigned char max_num_args;
- unsigned char min_num_args;
- unsigned char num_args;
- unsigned char som_index[4];
- unsigned char symbol_key[4];
- unsigned char next_entry[4];
-};
-
-/* Fields of flags. */
-#define LST_SYMBOL_HIDDEN (1 << 31)
-#define LST_SYMBOL_SECONDARY_DEF (1 << 30)
-#define LST_SYMBOL_SYMBOL_TYPE_SH 24
-#define LST_SYMBOL_SYMBOL_SCOPE_SH 20
-#define LST_SYMBOL_CHECK_LEVEL_SH 17
-#define LST_SYMBOL_MUST_QUALIFY (1 << 16)
-#define LST_SYMBOL_INITIALY_FROZEN (1 << 15)
-#define LST_SYMBOL_MEMORY_RESIDENT (1 << 14)
-#define LST_SYMBOL_IS_COMMON (1 << 13)
-#define LST_SYMBOL_DUP_COMMON (1 << 12)
-#define LST_SYMBOL_XLEAST_SH 10
-#define LST_SYMBOL_ARG_RELOC_SH 0
-
-/* According to 4.3.2 SOM Directory. */
-
-struct som_external_som_entry
-{
- unsigned char location[4];
- unsigned char length[4];
-};
-
-#endif /* _SOM_LST_H */
diff --git a/include/som/reloc.h b/include/som/reloc.h
deleted file mode 100644
index 417b5ee1a..000000000
--- a/include/som/reloc.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* SOM relocation definitions for BFD.
- Copyright 2010 Free Software Foundation, Inc.
- Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _SOM_RELOC_H
-#define _SOM_RELOC_H
-
-#define R_NO_RELOCATION 0
-#define R_ZEROES 0x20
-#define R_UNINIT 0x22
-#define R_RELOCATION 0x24
-#define R_DATA_ONE_SYMBOL 0x25
-#define R_DATA_PLABEL 0x27
-#define R_SPACE_REF 0x29
-#define R_REPEATED_INIT 0x2a
-#define R_PCREL_CALL 0x30
-#define R_SHORT_PCREL_MODE 0x3e
-#define R_LONG_PCREL_MODE 0x3f
-#define R_ABS_CALL 0x40
-#define R_DP_RELATIVE 0x50
-#define R_DATA_GPREL 0x72
-#define R_INDIRECT_CALL 0x76
-#define R_PLT_REL 0x77
-#define R_DLT_REL 0x78
-#define R_CODE_ONE_SYMBOL 0x80
-#define R_MILLI_REL 0xae
-#define R_CODE_PLABEL 0xb0
-#define R_BREAKPOINT 0xb2
-#define R_ENTRY 0xb3
-#define R_ALT_ENTRY 0xb5
-#define R_EXIT 0xb6
-#define R_BEGIN_TRY 0xb7
-#define R_END_TRY 0xb8
-#define R_BEGIN_BRTAB 0xbb
-#define R_END_BRTAB 0xbc
-#define R_STATEMENT 0xbd
-#define R_DATA_EXPR 0xc0
-#define R_CODE_EXPR 0xc1
-#define R_FSEL 0xc2
-#define R_LSEL 0xc3
-#define R_RSEL 0xc4
-#define R_N_MODE 0xc5
-#define R_S_MODE 0xc6
-#define R_D_MODE 0xc7
-#define R_R_MODE 0xc8
-#define R_DATA_OVERRIDE 0xc9
-#define R_TRANSLATED 0xce
-#define R_AUX_UNWIND 0xcf
-#define R_COMP1 0xd0
-#define R_COMP2 0xd1
-#define R_COMP3 0xd2
-#define R_PREV_FIXUP 0xd3
-#define R_SEC_STMT 0xd7
-#define R_N0SEL 0xd8
-#define R_N1SEL 0xd9
-#define R_LINETAB 0xda
-#define R_LINETAB_ESC 0xdb
-#define R_LTP_OVERRIDE 0xdc
-#define R_COMMENT 0xdd
-#define R_TP_OVERRIDE 0xde
-#define R_RESERVED 0xdf
-
-#endif /* _SOM_RELOC_H */
diff --git a/include/sort.h b/include/sort.h
deleted file mode 100644
index 582af8162..000000000
--- a/include/sort.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Sorting algorithms.
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- Contributed by Mark Mitchell <mark@codesourcery.com>.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GCC 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 GCC; see the file COPYING. If not, write to
-the Free Software Foundation, 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef SORT_H
-#define SORT_H
-
-#include <sys/types.h> /* For size_t */
-#ifdef __STDC__
-#include <stddef.h>
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-/* Sort an array of pointers. */
-
-extern void sort_pointers (size_t, void **, void **);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* SORT_H */
-
-
-
-
diff --git a/include/splay-tree.h b/include/splay-tree.h
deleted file mode 100644
index 480b2c43e..000000000
--- a/include/splay-tree.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* A splay-tree datatype.
- Copyright 1998, 1999, 2000, 2002, 2005, 2007, 2009, 2010
- Free Software Foundation, Inc.
- Contributed by Mark Mitchell (mark@markmitchell.com).
-
- This file is part of GCC.
-
- GCC is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GCC 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 GCC; see the file COPYING. If not, write to
- the Free Software Foundation, 51 Franklin Street - Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* For an easily readable description of splay-trees, see:
-
- Lewis, Harry R. and Denenberg, Larry. Data Structures and Their
- Algorithms. Harper-Collins, Inc. 1991.
-
- The major feature of splay trees is that all basic tree operations
- are amortized O(log n) time for a tree with n nodes. */
-
-#ifndef _SPLAY_TREE_H
-#define _SPLAY_TREE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-#ifndef _WIN64
- typedef unsigned long int libi_uhostptr_t;
- typedef long int libi_shostptr_t;
-#else
-#ifdef __GNUC__
- __extension__
-#endif
- typedef unsigned long long libi_uhostptr_t;
-#ifdef __GNUC__
- __extension__
-#endif
- typedef long long libi_shostptr_t;
-#endif
-
-#ifndef GTY
-#define GTY(X)
-#endif
-
-/* Use typedefs for the key and data types to facilitate changing
- these types, if necessary. These types should be sufficiently wide
- that any pointer or scalar can be cast to these types, and then
- cast back, without loss of precision. */
-typedef libi_uhostptr_t splay_tree_key;
-typedef libi_uhostptr_t splay_tree_value;
-
-/* Forward declaration for a node in the tree. */
-typedef struct splay_tree_node_s *splay_tree_node;
-
-/* The type of a function which compares two splay-tree keys. The
- function should return values as for qsort. */
-typedef int (*splay_tree_compare_fn) (splay_tree_key, splay_tree_key);
-
-/* The type of a function used to deallocate any resources associated
- with the key. */
-typedef void (*splay_tree_delete_key_fn) (splay_tree_key);
-
-/* The type of a function used to deallocate any resources associated
- with the value. */
-typedef void (*splay_tree_delete_value_fn) (splay_tree_value);
-
-/* The type of a function used to iterate over the tree. */
-typedef int (*splay_tree_foreach_fn) (splay_tree_node, void*);
-
-/* The type of a function used to allocate memory for tree root and
- node structures. The first argument is the number of bytes needed;
- the second is a data pointer the splay tree functions pass through
- to the allocator. This function must never return zero. */
-typedef void *(*splay_tree_allocate_fn) (int, void *);
-
-/* The type of a function used to free memory allocated using the
- corresponding splay_tree_allocate_fn. The first argument is the
- memory to be freed; the latter is a data pointer the splay tree
- functions pass through to the freer. */
-typedef void (*splay_tree_deallocate_fn) (void *, void *);
-
-/* The nodes in the splay tree. */
-struct GTY(()) splay_tree_node_s {
- /* The key. */
- splay_tree_key GTY ((use_param1)) key;
-
- /* The value. */
- splay_tree_value GTY ((use_param2)) value;
-
- /* The left and right children, respectively. */
- splay_tree_node GTY ((use_params)) left;
- splay_tree_node GTY ((use_params)) right;
-};
-
-/* The splay tree itself. */
-struct GTY(()) splay_tree_s {
- /* The root of the tree. */
- splay_tree_node GTY ((use_params)) root;
-
- /* The comparision function. */
- splay_tree_compare_fn comp;
-
- /* The deallocate-key function. NULL if no cleanup is necessary. */
- splay_tree_delete_key_fn delete_key;
-
- /* The deallocate-value function. NULL if no cleanup is necessary. */
- splay_tree_delete_value_fn delete_value;
-
- /* Node allocate function. Takes allocate_data as a parameter. */
- splay_tree_allocate_fn allocate;
-
- /* Free function for nodes and trees. Takes allocate_data as a parameter. */
- splay_tree_deallocate_fn deallocate;
-
- /* Parameter for allocate/free functions. */
- void * GTY((skip)) allocate_data;
-};
-
-typedef struct splay_tree_s *splay_tree;
-
-extern splay_tree splay_tree_new (splay_tree_compare_fn,
- splay_tree_delete_key_fn,
- splay_tree_delete_value_fn);
-extern splay_tree splay_tree_new_with_allocator (splay_tree_compare_fn,
- splay_tree_delete_key_fn,
- splay_tree_delete_value_fn,
- splay_tree_allocate_fn,
- splay_tree_deallocate_fn,
- void *);
-extern splay_tree splay_tree_new_typed_alloc (splay_tree_compare_fn,
- splay_tree_delete_key_fn,
- splay_tree_delete_value_fn,
- splay_tree_allocate_fn,
- splay_tree_allocate_fn,
- splay_tree_deallocate_fn,
- void *);
-extern void splay_tree_delete (splay_tree);
-extern splay_tree_node splay_tree_insert (splay_tree,
- splay_tree_key,
- splay_tree_value);
-extern void splay_tree_remove (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_lookup (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_predecessor (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_successor (splay_tree, splay_tree_key);
-extern splay_tree_node splay_tree_max (splay_tree);
-extern splay_tree_node splay_tree_min (splay_tree);
-extern int splay_tree_foreach (splay_tree, splay_tree_foreach_fn, void*);
-extern int splay_tree_compare_ints (splay_tree_key, splay_tree_key);
-extern int splay_tree_compare_pointers (splay_tree_key, splay_tree_key);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _SPLAY_TREE_H */
diff --git a/include/symcat.h b/include/symcat.h
deleted file mode 100644
index b46128796..000000000
--- a/include/symcat.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Symbol concatenation utilities.
-
- Copyright (C) 1998, 2000, 2010 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.,
- 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef SYM_CAT_H
-#define SYM_CAT_H
-
-#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
-#define CONCAT2(a,b) a##b
-#define CONCAT3(a,b,c) a##b##c
-#define CONCAT4(a,b,c,d) a##b##c##d
-#define CONCAT5(a,b,c,d,e) a##b##c##d##e
-#define CONCAT6(a,b,c,d,e,f) a##b##c##d##e##f
-#define STRINGX(s) #s
-#else
-/* Note one should never pass extra whitespace to the CONCATn macros,
- e.g. CONCAT2(foo, bar) because traditonal C will keep the space between
- the two labels instead of concatenating them. Instead, make sure to
- write CONCAT2(foo,bar). */
-#define CONCAT2(a,b) a/**/b
-#define CONCAT3(a,b,c) a/**/b/**/c
-#define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
-#define CONCAT5(a,b,c,d,e) a/**/b/**/c/**/d/**/e
-#define CONCAT6(a,b,c,d,e,f) a/**/b/**/c/**/d/**/e/**/f
-#define STRINGX(s) "s"
-#endif
-
-#define XCONCAT2(a,b) CONCAT2(a,b)
-#define XCONCAT3(a,b,c) CONCAT3(a,b,c)
-#define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d)
-#define XCONCAT5(a,b,c,d,e) CONCAT5(a,b,c,d,e)
-#define XCONCAT6(a,b,c,d,e,f) CONCAT6(a,b,c,d,e,f)
-
-/* Note the layer of indirection here is typically used to allow
- stringification of the expansion of macros. I.e. "#define foo
- bar", "XSTRING(foo)", to yield "bar". Be aware that this only
- works for __STDC__, not for traditional C which will still resolve
- to "foo". */
-#define XSTRING(s) STRINGX(s)
-
-#endif /* SYM_CAT_H */
diff --git a/include/timeval-utils.h b/include/timeval-utils.h
deleted file mode 100644
index 1caf9b36d..000000000
--- a/include/timeval-utils.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Basic struct timeval utilities.
- Copyright (C) 2011 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB. If not,
-write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-#ifndef TIMEVAL_UTILS_H
-#define TIMEVAL_UTILS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* forward decl */
-struct timeval;
-
-extern void timeval_add (struct timeval *result,
- const struct timeval *a, const struct timeval *b);
-
-extern void timeval_sub (struct timeval *result,
- const struct timeval *a, const struct timeval *b);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* TIMEVAL_UTILS_H */
diff --git a/include/vms/ChangeLog b/include/vms/ChangeLog
deleted file mode 100644
index 788d8d80c..000000000
--- a/include/vms/ChangeLog
+++ /dev/null
@@ -1,70 +0,0 @@
-2010-05-27 Tristan Gingold <gingold@adacore.com>
-
- * lbr.h: Improve comments.
-
-2010-05-17 Tristan Gingold <gingold@adacore.com>
-
- * eidc.h: New file.
- * esgps.h: New file.
-
-2010-05-03 Tristan Gingold <gingold@adacore.com>
-
- * dmt.h: Improve comments.
-
-2010-04-30 Tristan Gingold <gingold@adacore.com>
-
- * lbr.h (struct vms_kbn): New structure.
-
-2010-04-30 Tristan Gingold <gingold@adacore.com>
-
- * lbr.h (LBR__C_TYP_ISHSTB): Added.
- (LHD_SANEID4): Renamed to ...
- (LHD_SANEID6): ... this.
- (LBR_MAJORID, LBR_ELFMAJORID): New macros.
- (struct vms_rfa): New structure.
- (struct vms_idxdef): Renamed to ...
- (struct vms_idx): ... this.
- (struct vms_idxdef2): Renamed to ...
- (struct vms_elfidx): ... this.
- (ELFIDX__WEAK, ELFIDX__GROUP, ELFIDX__LISTRFA, ELFIDX__SYMESC): New
- macros.
- (struct vms_lhs, struct vms_lns): New structures.
- (struct vms_mhd): Add missing fields.
- (MHD__C_MHDLEN): New macro.
-
-2010-03-31 Tristan Gingold <gingold@adacore.com>
-
- * dcx.h: New file.
- * dsc.h: New file.
- * esdfm.h: New file.
- * esdfv.h: New file.
- * internal.h: New file.
- * lbr.h: New file.
- * prt.h: New file.
- * shl.h (struct vms_shl): Add comments.
- * esrf.h (ESRF__B_NAMLNG): New macro.
- * esdf.h (ESDF__B_NAMLNG): New macro.
- * emh.h: Add macros for fields maximum value.
- * eisd.h (EISD__M_PROTECT): Fix typo in comment.
- Add macros for offsets, version, section type and match control.
- Merge vms_eisd_ext into vms_eisd.
- * eihvn.h (EIHVN__MULTI_PROCESSING_BIT, EIHVN__GALAXY_BIT): Added.
- * eihs.h: Remove blank line.
- * eihd.h (struct vms_eihd): Add comments, add image subtype names.
- * eiha.h (struct vms_eiha): Add inishr and inishr_h fields.
- * eiaf.h (struct vms_eiaf): Fix base_va size.
- * egsy.h: Add comments.
- * egsd.h: Remove blank line.
- * egps.h: Add flag names.
- * eeom.h (EEOM__M_WKTFR): Added.
- * dst.h (DST__K_CXX): Added, and reident languages.
- (DST__K_SRC_INCRLNUM_B): Added.
- Indent and order pcline commands.
- Add record begin/end, enumerations, type specification, value
- specification, label, discontinue range definitions.
-
-2010-02-17 Tristan Gingold <gingold@adacore.com>
-
- * dmt.h, dst.h, eeom.h, egps.h, egsd.h, egst.h, egsy.h: New Files.
- * eiaf.h, eicp.h, eiha.h, eihd.h, eihi.h, eihs.h, eihvn.h: Ditto.
- * eisd.h, emh.h, eobjrec.h, esdf.h, esrf.h, etir.h, shl.h: Ditto.
diff --git a/include/vms/dcx.h b/include/vms/dcx.h
deleted file mode 100644
index b6f373ab5..000000000
--- a/include/vms/dcx.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Alpha VMS external format for DeCompression.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_DCX_H
-#define _VMS_DCX_H
-
-struct vms_dcxmap
-{
- unsigned char size[4];
- unsigned char version[2];
-
- unsigned char pad[2];
- unsigned char sanity[4];
- unsigned char flags[4];
- unsigned char nsubs[2];
- unsigned char sub0[2];
-};
-
-struct vms_dcxsbm
-{
- unsigned char size[2];
- unsigned char min_char;
- unsigned char max_char;
- unsigned char escape;
- unsigned char flags_bits;
- unsigned char flags[2];
- unsigned char nodes[2];
- unsigned char next[2];
-};
-
-#endif /* _VMS_DCX_H */
diff --git a/include/vms/dmt.h b/include/vms/dmt.h
deleted file mode 100644
index f2aad6e99..000000000
--- a/include/vms/dmt.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Alpha VMS external format of Debug Module Table.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_DMT_H
-#define _VMS_DMT_H
-
-struct vms_dmt_header
-{
- /* Offset in the DST of the module. */
- unsigned char modbeg[4];
-
- /* Size of the DST chunk for this module. */
- unsigned char size[4];
-
- /* Number of psect for this module. */
- unsigned char psect_count[2];
-
- unsigned char mbz[2];
-};
-
-struct vms_dmt_psect
-{
- /* Address of the psect. */
- unsigned char start[4];
-
- /* Length of the psect. */
- unsigned char length[4];
-};
-#endif /* _VMS_DMT_H */
diff --git a/include/vms/dsc.h b/include/vms/dsc.h
deleted file mode 100644
index 5a1b0e238..000000000
--- a/include/vms/dsc.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Alpha VMS external format of Descriptors.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_DSC_H
-#define _VMS_DSC_H
-
-/* Descriptors. */
-#define DSC__K_DTYPE_Z 0 /* Unspecified. */
-#define DSC__K_DTYPE_V 1 /* Bit. */
-#define DSC__K_DTYPE_BU 2 /* Byte logical. */
-#define DSC__K_DTYPE_WU 3 /* Word logical. */
-#define DSC__K_DTYPE_LU 4 /* Longword logical. */
-#define DSC__K_DTYPE_QU 5 /* Quadword logical. */
-#define DSC__K_DTYPE_B 6 /* Byte integer. */
-#define DSC__K_DTYPE_W 7 /* Word integer. */
-#define DSC__K_DTYPE_L 8 /* Longword integer. */
-#define DSC__K_DTYPE_Q 9 /* Quadword integer. */
-#define DSC__K_DTYPE_F 10 /* Single-precision floating. */
-#define DSC__K_DTYPE_D 11 /* Double-precision floating. */
-#define DSC__K_DTYPE_FC 12 /* Complex. */
-#define DSC__K_DTYPE_DC 13 /* Double-precision Complex. */
-#define DSC__K_DTYPE_T 14 /* ASCII text string. */
-#define DSC__K_DTYPE_NU 15 /* Numeric string, unsigned. */
-#define DSC__K_DTYPE_NL 16 /* Numeric string, left separate sign. */
-#define DSC__K_DTYPE_NLO 17 /* Numeric string, left overpunched sign. */
-#define DSC__K_DTYPE_NR 18 /* Numeric string, right separate sign. */
-#define DSC__K_DTYPE_NRO 19 /* Numeric string, right overpunched sign. */
-#define DSC__K_DTYPE_NZ 20 /* Numeric string, zoned sign. */
-#define DSC__K_DTYPE_P 21 /* Packed decimal string. */
-#define DSC__K_DTYPE_ZI 22 /* Sequence of instructions. */
-#define DSC__K_DTYPE_ZEM 23 /* Procedure entry mask. */
-#define DSC__K_DTYPE_DSC 24 /* Descriptor, used for arrays of dyn strings. */
-#define DSC__K_DTYPE_OU 25 /* Octaword logical. */
-#define DSC__K_DTYPE_O 26 /* Octaword integer. */
-#define DSC__K_DTYPE_G 27 /* Double precision G floating, 64 bit. */
-#define DSC__K_DTYPE_H 28 /* Quadruple precision floating, 128 bit. */
-#define DSC__K_DTYPE_GC 29 /* Double precision complex, G floating. */
-#define DSC__K_DTYPE_HC 30 /* Quadruple precision complex, H floating. */
-#define DSC__K_DTYPE_CIT 31 /* COBOL intermediate temporary. */
-#define DSC__K_DTYPE_BPV 32 /* Bound Procedure Value. */
-#define DSC__K_DTYPE_BLV 33 /* Bound Label Value. */
-#define DSC__K_DTYPE_VU 34 /* Bit Unaligned. */
-#define DSC__K_DTYPE_ADT 35 /* Absolute Date-Time. */
-#define DSC__K_DTYPE_VT 37 /* Varying Text. */
-#define DSC__K_DTYPE_T2 38 /* 16-bit char. */
-#define DSC__K_DTYPE_VT2 39 /* 16-bit varying char. */
-
-#define DSC__K_CLASS_S 1 /* Fixed-length scalar/string. */
-#define DSC__K_CLASS_D 2 /* Dynamic string. */
-#define DSC__K_CLASS_V 3 /* Reserved. */
-#define DSC__K_CLASS_A 4 /* Contiguous array. */
-#define DSC__K_CLASS_P 5 /* Procedure argument descriptor. */
-#define DSC__K_CLASS_PI 6 /* Procedure incarnation descriptor. */
-#define DSC__K_CLASS_J 7 /* Reserved. */
-#define DSC__K_CLASS_JI 8 /* Obsolete. */
-#define DSC__K_CLASS_SD 9 /* Decimal (scalar) string. */
-#define DSC__K_CLASS_NCA 10 /* Non-contiguous array. */
-#define DSC__K_CLASS_VS 11 /* Varying string. */
-#define DSC__K_CLASS_VSA 12 /* Varying string array. */
-#define DSC__K_CLASS_UBS 13 /* Unaligned bit string. */
-#define DSC__K_CLASS_UBA 14 /* Unaligned bit array. */
-#define DSC__K_CLASS_SB 15 /* String with bounds. */
-#define DSC__K_CLASS_UBSB 16 /* Unaligned bit string with bounds. */
-
-/* Common part. */
-
-struct vms_dsc
-{
- unsigned char length[2];
- unsigned char dtype;
- unsigned char bclass;
- unsigned char pointer[4];
-};
-
-struct vms_dsc64
-{
- unsigned char mbo[2];
- unsigned char dtype;
- unsigned char bclass;
- unsigned char mbmo[4];
- unsigned char length[8];
- unsigned char pointer[8];
-};
-
-struct vms_dsc_nca
-{
- unsigned char length[2];
- unsigned char dtype;
- unsigned char bclass;
- unsigned char pointer[4];
-
- unsigned char scale;
- unsigned char digits;
- unsigned char aflags;
- unsigned char dimct;
-
- unsigned char arsize[4];
- unsigned char a0[4];
-};
-
-struct vms_dsc_ubs
-{
- unsigned char length[2];
- unsigned char dtype;
- unsigned char bclass;
- unsigned char base[4];
- unsigned char pos[4];
-};
-
-#endif /* _VMS_DSC_H */
diff --git a/include/vms/dst.h b/include/vms/dst.h
deleted file mode 100644
index 231d39708..000000000
--- a/include/vms/dst.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Alpha VMS external format of Debug Symbol Table.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_DST_H
-#define _VMS_DST_H
-
-/* Also available in vms freeware v5.0 debug/alpha_dstrecrds.sdl. */
-
-struct vms_dst_header
-{
- /* Length. */
- unsigned char length[2];
-
- /* Type. */
- unsigned char type[2];
-};
-
-/* Beginning of module. */
-#define DST__K_MODBEG 188
-
-/* Some well known languages. */
-#define DST__K_MACRO 0
-#define DST__K_BLISS 2
-#define DST__K_C 7
-#define DST__K_ADA 9
-#define DST__K_CXX 15
-
-struct vms_dst_modbeg
-{
- unsigned char flags;
- unsigned char unused;
- unsigned char language[4];
- unsigned char major[2];
- unsigned char minor[2];
- /* Module name ASCIC. */
- /* Ident name ASCIC. */
-};
-
-/* Routine begin. */
-#define DST__K_RTNBEG 190
-
-struct vms_dst_rtnbeg
-{
- unsigned char flags;
-
- /* Address of the code. */
- unsigned char address[4];
-
- /* Procedure descriptor address. */
- unsigned char pd_address[4];
-
- /* Name: ASCIC */
-};
-
-/* Line number. */
-#define DST__K_LINE_NUM 185
-
-struct vms_dst_pcline
-{
- unsigned char pcline_command;
- unsigned char field[4];
-};
-
-#define DST__K_DELTA_PC_W 1
-#define DST__K_INCR_LINUM 2
-#define DST__K_INCR_LINUM_W 3
-#define DST__K_SET_LINUM_INCR 4
-#define DST__K_SET_LINUM_INCR_W 5
-#define DST__K_RESET_LINUM_INCR 6
-#define DST__K_BEG_STMT_MODE 7
-#define DST__K_END_STMT_MODE 8
-#define DST__K_SET_LINUM 9
-#define DST__K_SET_PC 10
-#define DST__K_SET_PC_W 11
-#define DST__K_SET_PC_L 12
-#define DST__K_SET_STMTNUM 13
-#define DST__K_TERM 14
-#define DST__K_TERM_W 15
-#define DST__K_SET_ABS_PC 16
-#define DST__K_DELTA_PC_L 17
-#define DST__K_INCR_LINUM_L 18
-#define DST__K_SET_LINUM_B 19
-#define DST__K_SET_LINUM_L 20
-#define DST__K_TERM_L 21
-
-/* Routine end. */
-#define DST__K_RTNEND 191
-
-struct vms_dst_rtnend
-{
- unsigned char unused;
- unsigned char size[4];
-};
-
-/* Prologue. */
-#define DST__K_PROLOG 162
-
-struct vms_dst_prolog
-{
- unsigned char bkpt_addr[4];
-};
-
-/* Epilog. */
-#define DST__K_EPILOG 127
-
-struct vms_dst_epilog
-{
- unsigned char flags;
- unsigned char count[4];
-};
-
-/* Module end. */
-#define DST__K_MODEND 189
-
-/* Block begin. */
-#define DST__K_BLKBEG 176
-
-struct vms_dst_blkbeg
-{
- unsigned char unused;
- unsigned char address[4];
- /* Name ASCIC. */
-};
-
-/* Block end. */
-#define DST__K_BLKEND 177
-
-struct vms_dst_blkend
-{
- unsigned char unused;
- unsigned char size[4];
-};
-
-/* Source correlation. */
-#define DST__K_SOURCE 155
-
-#define DST__K_SRC_DECLFILE 1
-#define DST__K_SRC_SETFILE 2
-#define DST__K_SRC_SETREC_L 3
-#define DST__K_SRC_SETREC_W 4
-#define DST__K_SRC_SETLNUM_L 5
-#define DST__K_SRC_SETLNUM_W 6
-#define DST__K_SRC_INCRLNUM_B 7
-#define DST__K_SRC_DEFLINES_W 10
-#define DST__K_SRC_DEFLINES_B 11
-#define DST__K_SRC_FORMFEED 16
-
-struct vms_dst_src_decl_src
-{
- unsigned char length;
- unsigned char flags;
- unsigned char fileid[2];
- unsigned char rms_cdt[8];
- unsigned char rms_ebk[4];
- unsigned char rms_ffb[2];
- unsigned char rms_rfo;
- /* Filename ASCIC. */
-};
-
-/* Record begin. */
-#define DST__K_RECBEG 171
-
-struct vms_dst_recbeg
-{
- unsigned char vflags;
- unsigned char value[4];
- /* Filename ASCIC. */
-};
-
-/* Record end. */
-#define DST__K_RECEND 172
-
-/* Enumeration begin. */
-#define DST__K_ENUMBEG 165
-
-/* Enumeration element. */
-#define DST__K_ENUMELT 164
-
-/* Enumeration end. */
-#define DST__K_ENUMEND 166
-
-/* Separate type specification. */
-#define DST__K_SEPTYP 163
-
-/* Type specification. */
-#define DST__K_TYPSPEC 175
-
-#define DST__K_TS_ATOM 1 /* Atomic. */
-#define DST__K_TS_DSC 2 /* VMS Standard descriptor. */
-#define DST__K_TS_IND 3 /* Indirect. */
-#define DST__K_TS_TPTR 4 /* Typed pointer. */
-#define DST__K_TS_PTR 5 /* Pointer. */
-#define DST__K_TS_PIC 6 /* Pictured. */
-#define DST__K_TS_ARRAY 7
-#define DST__K_TS_SET 8
-#define DST__K_TS_SUBRANGE 9 /* Subrange. */
-#define DST__K_TS_ADA_DSC 10 /* Ada descriptor. */
-#define DST__K_TS_FILE 11
-#define DST__K_TS_AREA 12 /* Area (PL/I). */
-#define DST__K_TS_OFFSET 13 /* Offset (PL/I). */
-#define DST__K_TS_NOV_LENG 14 /* Novel Length. */
-#define DST__K_TS_IND_TSPEC 15 /* Internal to debugger. */
-#define DST__K_TS_SELF_REL_LABEL 16 /* Self-relative label (PL/I). */
-#define DST__K_TS_RFA 17 /* (Basic). */
-#define DST__K_TS_TASK 18 /* (Ada). */
-#define DST__K_TS_ADA_ARRAY 19
-#define DST__K_TS_XMOD_IND 20 /* Cross-module indirect type spec. */
-#define DST__K_TS_CONSTRAINED 21 /* (Ada). */
-#define DST__K_TS_MAYBE_CONSTR 22 /* Might-be-constrained (Ada). */
-#define DST__K_TS_DYN_LOV_LENG 23
-#define DST__K_TS_TPTR_D 24 /* Typed pointer to descriptor. */
-#define DST__K_TS_SCAN_TREE 25
-#define DST__K_TS_SCAN_TREEPTR 26
-#define DST__K_TS_INCOMPLETE 27
-#define DST__K_TS_BLISS_BLOCK 28
-#define DST__K_TS_TPTR_64 29
-#define DST__K_TS_PTR_64 30
-#define DST__K_TS_REF 31 /* C++ referenced type. */
-#define DST__K_TS_REF_64 32
-
-/* Value Specification. */
-#define DST__K_VFLAGS_NOVAL 128 /* No value. */
-#define DST__K_VFLAGS_NOTACTIVE 248 /* Not active at current PC. */
-#define DST__K_VFLAGS_UNALLOC 249 /* Not allocated. */
-#define DST__K_VFLAGS_DSC 250 /* Descriptor format. */
-#define DST__K_VFLAGS_TVS 251 /* Trailing value spec. */
-#define DST__K_VS_FOLLOWS 253 /* Value specification follow. */
-#define DST__K_VFLAGS_BITOFFS 255 /* Value is a bit offset. */
-
-/* Vflags fields. */
-#define DST__K_VALKIND_MASK 0x03
-#define DST__K_INDIR 0x04
-#define DST__K_DISP 0x08
-#define DST__K_REGNUM_MASK 0xf0
-#define DST__K_REGNUM_SHIFT 4
-
-#define DST__K_VALKIND_LITERAL 0
-#define DST__K_VALKIND_ADDR 1
-#define DST__K_VALKIND_DESC 2
-#define DST__K_VALKIND_REG 3
-
-/* Label. */
-#define DST__K_LABEL 187
-
-struct vms_dst_label
-{
- unsigned char unused;
-
- unsigned char value[4];
- unsigned char name[1];
-};
-
-/* Discontiguous range. */
-#define DST__K_DIS_RANGE 118
-#endif /* _VMS_DST_H */
diff --git a/include/vms/eeom.h b/include/vms/eeom.h
deleted file mode 100644
index 807e44855..000000000
--- a/include/vms/eeom.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Alpha VMS external format of Extended End Of Module.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EEOM_H
-#define _VMS_EEOM_H
-
-/* Completion flags. */
-#define EEOM__C_SUCCESS 0
-#define EEOM__C_WARNING 1
-#define EEOM__C_ERROR 2
-#define EEOM__C_ABORT 3
-
-struct vms_eeom
-{
- /* Record type. */
- unsigned char rectyp[2];
-
- /* Record size. */
- unsigned char size[2];
-
- /* Number of conditional linkage pairs. */
- unsigned char total_lps[4];
-
- /* Completion code. */
- unsigned char comcod[2];
-
-
- /* Transfer address flags. */
- unsigned char tfrflg;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- /* Psect of transfer address. */
- unsigned char psindx[4];
-
- /* Transfer address. */
- unsigned char tfradr[8];
-};
-
-#define EEOM__M_WKTFR (1 << 0) /* Transfer address is weak. */
-
-#endif /* _VMS_EEOM_H */
diff --git a/include/vms/egps.h b/include/vms/egps.h
deleted file mode 100644
index e92df810b..000000000
--- a/include/vms/egps.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Alpha VMS external format of Extended Program Section Definition.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EGPS_H
-#define _VMS_EGPS_H
-
-struct vms_egps
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char gsdsiz[2];
-
- /* Psect alignment. */
- unsigned char align;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- unsigned char flags[2];
-
- /* Length of this contribution. */
- unsigned char alloc[4];
-
- /* Name. */
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#define EGPS__V_PIC (1 << 0) /* Not meaningful. */
-#define EGPS__V_LIB (1 << 1) /* Defined in a shareable image. */
-#define EGPS__V_OVR (1 << 2) /* Overlaid contribution. */
-#define EGPS__V_REL (1 << 3) /* Relocatable. */
-#define EGPS__V_GBL (1 << 4) /* Global. */
-#define EGPS__V_SHR (1 << 5) /* Shareable. */
-#define EGPS__V_EXE (1 << 6) /* Executable. */
-#define EGPS__V_RD (1 << 7) /* Readable. */
-#define EGPS__V_WRT (1 << 8) /* Writable. */
-#define EGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */
-#define EGPS__V_NOMOD (1 << 10) /* Demand-zero. */
-#define EGPS__V_COM (1 << 11) /* Conditional storage. */
-#define EGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */
-
-#endif /* _VMS_EGPS_H */
diff --git a/include/vms/egsd.h b/include/vms/egsd.h
deleted file mode 100644
index f9be3981a..000000000
--- a/include/vms/egsd.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Alpha VMS external format of Extended Global Symbol Directory.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EGSD_H
-#define _VMS_EGSD_H
-
-#define EGSD__K_ENTRIES 2 /* Offset to first entry in record. */
-#define EGSD__C_ENTRIES 2 /* Offset to first entry in record. */
-#define EGSD__C_PSC 0 /* Psect definition. */
-#define EGSD__C_SYM 1 /* Symbol specification. */
-#define EGSD__C_IDC 2 /* Random entity check. */
-#define EGSD__C_SPSC 5 /* Shareable image psect definition. */
-#define EGSD__C_SYMV 6 /* Vectored (dual-valued) versions of SYM. */
-#define EGSD__C_SYMM 7 /* Masked versions of SYM. */
-#define EGSD__C_SYMG 8 /* EGST - gst version of SYM. */
-#define EGSD__C_MAXRECTYP 8 /* Maximum entry type defined. */
-
-struct vms_egsd
-{
- /* Record type. */
- unsigned char rectyp[2];
-
- /* Record size. */
- unsigned char recsiz[2];
-
- /* Padding for alignment. */
- unsigned char alignlw[4];
-
- /* Followed by egsd entries. */
-};
-
-struct vms_egsd_entry
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char gsdsiz[2];
-};
-
-#endif /* _VMS_EGSD_H */
diff --git a/include/vms/egst.h b/include/vms/egst.h
deleted file mode 100644
index d4244842e..000000000
--- a/include/vms/egst.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Alpha VMS external format of Extended Global Symbol Definition.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EGST_H
-#define _VMS_EGST_H
-
-struct vms_egst
-{
- struct vms_egsy header;
-
- unsigned char value[8];
- unsigned char lp_1[8];
- unsigned char lp_2[8];
-
- unsigned char psindx[4];
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#endif /* _VMS_EGST_H */
diff --git a/include/vms/egsy.h b/include/vms/egsy.h
deleted file mode 100644
index dd36ab218..000000000
--- a/include/vms/egsy.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Alpha VMS external format of Extended Global Symbol.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EGSY_H
-#define _VMS_EGSY_H
-
-#define EGSY__W_FLAGS 6
-
-#define EGSY__V_WEAK 0x0001 /* Weak symbol definition. */
-#define EGSY__V_DEF 0x0002 /* Symbol definition. */
-#define EGSY__V_UNI 0x0004 /* Reserved. */
-#define EGSY__V_REL 0x0008 /* Relocatable (vs absolute). */
-#define EGSY__V_COMM 0x0010 /* Conditional symbol def. */
-#define EGSY__V_VECEP 0x0020 /* Reserved. */
-#define EGSY__V_NORM 0x0040 /* Normal procedure definition. */
-#define EGSY__V_QUAD_VAL 0x0080 /* Value exceed 32 bits. */
-
-struct vms_egsy
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char gsdsiz[2];
-
- /* Data type. */
- unsigned char datyp;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- unsigned char flags[2];
-};
-
-#endif /* _VMS_EGSY_H */
diff --git a/include/vms/eiaf.h b/include/vms/eiaf.h
deleted file mode 100644
index c3c39884c..000000000
--- a/include/vms/eiaf.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Alpha VMS external format of Extended Image Activator Fixup section.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIAF_H
-#define _VMS_EIAF_H
-
-struct vms_eiaf
-{
- /* Version. */
- unsigned char majorid[4];
- unsigned char minorid[4];
-
- /* Link for image activator use. */
- unsigned char iaflink[8];
-
- /* Link for sharable image fixups. */
- unsigned char fixuplnk[8];
-
- /* Size of EIAF fixed part. */
- unsigned char size[4];
-
- /* Flags. */
- unsigned char flags[4];
-
- /* Offsets to quadword and longword relocation fixup data. */
- unsigned char qrelfixoff[4];
- unsigned char lrelfixoff[4];
-
- /* Offsets to quardword and longword .address fixup data. */
- unsigned char qdotadroff[4];
- unsigned char ldotadroff[4];
-
- /* Offset to code address fixup data. */
- unsigned char codeadroff[4];
-
- /* Offset to linkage part fixup data. */
- unsigned char lpfixoff[4];
-
- /* Offset to isect change protection data. */
- unsigned char chgprtoff[4];
-
- /* Offset to shareable image list. */
- unsigned char shlstoff[4];
-
- /* Number of shareable images. */
- unsigned char shrimgcnt[4];
-
- /* Number of extra shareable images allowed. */
- unsigned char shlextra[4];
-
- /* Permanent shareable image context. */
- unsigned char permctx[4];
-
- /* Base address of the image itself. */
- unsigned char base_va[4];
-
- /* Offset to linkage pair with procedure signature fixups. */
- unsigned char lppsbfixoff[4];
-};
-
-#endif /* _VMS_EIAF_H */
diff --git a/include/vms/eicp.h b/include/vms/eicp.h
deleted file mode 100644
index 9c769f768..000000000
--- a/include/vms/eicp.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Alpha VMS external format of Extended Image section Change Protection.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EICP_H
-#define _VMS_EICP_H
-
-struct vms_eicp
-{
- /* Start of section. */
- unsigned char baseva[8];
-
- /* Size in bytes of the image section. */
- unsigned char size[4];
-
- /* New protections. */
- unsigned char newprt[4];
-};
-
-#endif /* _VMS_EICP_H */
diff --git a/include/vms/eidc.h b/include/vms/eidc.h
deleted file mode 100644
index 987e8c24e..000000000
--- a/include/vms/eidc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Alpha VMS external format of Ident Consistency check.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIDC_H
-#define _VMS_EIDC_H
-
-struct vms_eidc
-{
- /* Record type. */
- unsigned char rectyp[2];
-
- /* Record size. */
- unsigned char recsiz[2];
-
- unsigned char flags[4];
-
- /* Entity name (ASCIC). */
- /* Object name (ASCIC). */
- /* Ident string (ASCIC or binary BINIDENT set). */
- unsigned char name[1];
-};
-
-/* Fields of flags. */
-#define EIDC__V_BINIDENT (1 << 0) /* Ident is a longword. */
-#define EIDC__V_IDMATCH_SH 1 /* Ident match control. */
-#define EIDC__V_IDMATCH_MASK 3
-#define EIDC__V_ERRSEV_SH 3 /* Error severity. */
-#define EIDC__V_ERRSEV_MASK 7
-
-#endif /* _VMS_EIDC_H */
diff --git a/include/vms/eiha.h b/include/vms/eiha.h
deleted file mode 100644
index 5965ef979..000000000
--- a/include/vms/eiha.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Alpha VMS external format of Extended Image Activation.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIHA_H
-#define _VMS_EIHA_H
-
-struct vms_eiha
-{
- /* Size of the struct. */
- unsigned char size[4];
-
- unsigned char spare[4];
-
- /* First transfer address. */
- unsigned char tfradr1[4];
- unsigned char tfradr1_h[4];
-
- /* Second. */
- unsigned char tfradr2[4];
- unsigned char tfradr2_h[4];
-
- /* Third. */
- unsigned char tfradr3[4];
- unsigned char tfradr3_h[4];
-
- /* Fourth (must be 0). */
- unsigned char tfradr4[4];
- unsigned char tfradr4_h[4];
-
- /* Shared image initialization (only if EIHD__V_INISHR is set). */
- unsigned char inishr[4];
- unsigned char inishr_h[4];
-};
-
-#endif /* _VMS_EIHA_H */
diff --git a/include/vms/eihd.h b/include/vms/eihd.h
deleted file mode 100644
index fdb3a6ec7..000000000
--- a/include/vms/eihd.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Alpha VMS external format of Extended Image Header.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIHD_H
-#define _VMS_EIHD_H
-
-/* Extended Image Header (eihd) structure. */
-struct vms_eihd
-{
- /* Version of this EIHD. */
- unsigned char majorid[4];
- unsigned char minorid[4];
-
- /* Size in bytes of the header. */
- unsigned char size[4];
-
- /* Byte offset to ISD (Image Section Descriptors) list. */
- unsigned char isdoff[4];
-
- /* Byte offset to activation data (off=16). */
- unsigned char activoff[4];
-
- /* Byte offset to symbol table and debugging data. */
- unsigned char symdbgoff[4];
-
- /* Byte offset to image ident. */
- unsigned char imgidoff[4];
-
- /* Byte offset to patch data. */
- unsigned char patchoff[4];
-
- /* RVA of fixup info (off=32). */
- unsigned char iafva[8];
-
- /* RVA of symbol vector. */
- unsigned char symvva[8];
-
- /* Byte offset to version number array (off=48). */
- unsigned char version_array_off[4];
-
- /* Image type. */
- unsigned char imgtype[4];
-
- /* Image subtype. */
- unsigned char subtype[4];
-
- /* Size in bytes of image I/O section requested. */
- unsigned char imgiocnt[4];
-
- /* Nbr of channels requested (off=64). */
- unsigned char iochancnt[4];
-
- /* Requested privilege mask. */
- unsigned char privreqs[8];
-
- /* Number of header diskblocks. */
- unsigned char hdrblkcnt[4];
-
- /* Linker produced image flags. */
- unsigned char lnkflags[4];
-
- /* GBL SEC ident value for linkable image. */
- unsigned char ident[4];
-
- /* SYS$K_VERSION or 0 if not linked with exec. */
- unsigned char sysver[4];
-
- /* Linker match control. */
- unsigned char matchctl;
- unsigned char fill_1[3];
-
- /* Size of the symbol vector in bytes. */
- unsigned char symvect_size[4];
-
- /* Value of /BPAGE. */
- unsigned char virt_mem_block_size[4];
-
- /* Byte offset to extended fixup data. */
- unsigned char ext_fixup_off[4];
-
- /* Byte offset to no_optimize psect table. */
- unsigned char noopt_psect_off[4];
-
- unsigned char fill_2[398];
-
- /* CODE identifies image type to MOM. */
- unsigned char alias[2];
-};
-
-#define EIHD__K_MAJORID 3 /* Major id constant */
-#define EIHD__K_MINORID 0 /* Minor id constant */
-
-/* Image type. */
-#define EIHD__K_EXE 1 /* Executable image */
-#define EIHD__K_LIM 2 /* Linkable image. */
-
-/* Image subtype. */
-#define EIHD__C_NATIVE 0 /* Alpha native image. */
-#define EIHD__C_CLI 1 /* Image is a CLI, run LOGINOUT. */
-
-/* Linker image flags. */
-#define EIHD__M_LNKDEBUG 0x0001 /* Full debugging requested. */
-#define EIHD__M_LNKNOTFR 0x0002 /* No first transfer address. */
-#define EIHD__M_NOP0BUFS 0x0004 /* No RMS use of P0 for image I/O. */
-#define EIHD__M_PICIMG 0x0008 /* PIC image. */
-#define EIHD__M_P0IMAGE 0x0010 /* P0 only image. */
-#define EIHD__M_DBGDMT 0x0020 /* Image header has dmt fields. */
-#define EIHD__M_INISHR 0x0040 /* Transfer array contains LNISHR. */
-#define EIHD__M_XLATED 0x0080 /* Translated image. */
-#define EIHD__M_BIND_CODE_SEC 0x0100 /* EXE sect can be put into S0. */
-#define EIHD__M_BIND_DATA_SEC 0x0200 /* DATA sect can be put into S0. */
-#define EIHD__M_MKTHREADS 0x0400 /* Multiple kernel threads. */
-#define EIHD__M_UPCALLS 0x0800 /* Upcalls enabled. */
-#define EIHD__M_OMV_READY 0x1000 /* Can be processed by OMV. */
-#define EIHD__M_EXT_BIND_SECT 0x2000 /* May be moved, using ext fixups. */
-
-/* Offsets of some fields. */
-#define EIHD__L_SIZE 8
-#define EIHD__L_ISDOFF 12
-#define EIHD__L_SYMDBGOFF 20
-#define EIHD__Q_SYMVVA 40
-#define EIHD__L_IMGTYPE 52
-
-#define EIHD__C_LENGTH 104
-
-#endif /* _VMS_EIHD_H */
diff --git a/include/vms/eihi.h b/include/vms/eihi.h
deleted file mode 100644
index 97d3d8958..000000000
--- a/include/vms/eihi.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Alpha VMS external format of Extended Image Identification.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIHI_H
-#define _VMS_EIHI_H
-
-#define EIHI__K_MAJORID 1
-#define EIHI__K_MINORID 2
-
-struct vms_eihi
-{
- unsigned char majorid[4];
- unsigned char minorid[4];
-
- /* Time when this image was linked. */
- unsigned char linktime[8];
-
- /* Image name. */
- unsigned char imgnam[40];
-
- /* Image ident. */
- unsigned char imgid[16];
-
- /* Linker ident. */
- unsigned char linkid[16];
-
- /* Image build ident. */
- unsigned char imgbid[16];
-};
-
-#endif /* _VMS_EIHI_H */
diff --git a/include/vms/eihs.h b/include/vms/eihs.h
deleted file mode 100644
index cf048b13d..000000000
--- a/include/vms/eihs.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Alpha VMS external format of Extended Image Symbols and debug table.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIHS_H
-#define _VMS_EIHS_H
-
-#define EIHS__K_MAJORID 1
-#define EIHS__K_MINORID 1
-
-struct vms_eihs
-{
- unsigned char majorid[4];
- unsigned char minorid[4];
-
- /* Debug symbol table virtual block number (vbn). */
- unsigned char dstvbn[4];
-
- /* Debug symbol table size. */
- unsigned char dstsize[4];
-
- /* Global symbol table vbn. */
- unsigned char gstvbn[4];
-
- /* Global symtol table size. */
- unsigned char gstsize[4];
-
- /* Debug module table vbn. */
- unsigned char dmtvbn[4];
-
- /* Debug module table size. */
- unsigned char dmtsize[4];
-};
-
-/* Various offsets. */
-
-#define EIHS__L_DSTVBN 8
-#define EIHS__L_DSTSIZE 12
-#define EIHS__L_GSTVBN 16
-#define EIHS__L_GSTSIZE 20
-#define EIHS__L_DMTVBN 24
-#define EIHS__L_DMTBYTES 28
-
-#endif /* _VMS_EIHS_H */
diff --git a/include/vms/eihvn.h b/include/vms/eihvn.h
deleted file mode 100644
index 07f9eeed2..000000000
--- a/include/vms/eihvn.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Alpha VMS external format of Extended Image Header Version.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EIHVN_H
-#define _VMS_EIHVN_H
-
-struct vms_eihvn
-{
- unsigned char subsystem_mask[4];
-};
-
-struct vms_eihvn_subversion
-{
- unsigned char minor[2];
- unsigned char major[2];
-};
-
-#define EIHVN__BASE_IMAGE_BIT 0
-#define EIHVN__MEMORY_MANAGEMENT_BIT 1
-#define EIHVN__IO_BIT 2
-#define EIHVN__FILES_VOLUMES_BIT 3
-#define EIHVN__PROCESS_SCHED_BIT 4
-#define EIHVN__SYSGEN_BIT 5
-#define EIHVN__CLUSTERS_LOCKMGR_BIT 6
-#define EIHVN__LOGICAL_NAMES_BIT 7
-#define EIHVN__SECURITY_BIT 8
-#define EIHVN__IMAGE_ACTIVATOR_BIT 9
-#define EIHVN__NETWORKS_BIT 10
-#define EIHVN__COUNTERS_BIT 11
-#define EIHVN__STABLE_BIT 12
-#define EIHVN__MISC_BIT 13
-#define EIHVN__CPU_BIT 14
-#define EIHVN__VOLATILE_BIT 15
-#define EIHVN__SHELL_BIT 16
-#define EIHVN__POSIX_BIT 17
-#define EIHVN__MULTI_PROCESSING_BIT 18
-#define EIHVN__GALAXY_BIT 19
-
-#endif /* _VMS_EIHVN_H */
diff --git a/include/vms/eisd.h b/include/vms/eisd.h
deleted file mode 100644
index 7579e72b8..000000000
--- a/include/vms/eisd.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Alpha VMS external format of Extended Image Section Descriptor.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EISD_H
-#define _VMS_EISD_H
-
-/* Flags. */
-#define EISD__M_GBL 0x0001 /* Global. */
-#define EISD__M_CRF 0x0002 /* Copy on reference. */
-#define EISD__M_DZRO 0x0004 /* Demand zero page. */
-#define EISD__M_WRT 0x0008 /* Writable. */
-#define EISD__M_INITALCODE 0x0010 /* Part of initialization code. */
-#define EISD__M_BASED 0x0020 /* Isect is based. */
-#define EISD__M_FIXUPVEC 0x0040 /* Isect is fixup section. */
-#define EISD__M_RESIDENT 0x0080 /* Isect is memory resident. */
-#define EISD__M_VECTOR 0x0100 /* Vector contained in isect. */
-#define EISD__M_PROTECT 0x0200 /* Isect is protected. */
-#define EISD__M_LASTCLU 0x0400 /* Last cluster. */
-#define EISD__M_EXE 0x0800 /* Code isect. */
-#define EISD__M_NONSHRADR 0x1000 /* Contains non-shareable data. */
-#define EISD__M_QUAD_LENGTH 0x2000 /* Quad length field valid. */
-#define EISD__M_ALLOC_64BIT 0x4000 /* Allocate 64-bit space. */
-
-#define EISD__K_LEN 36
-#define EISD__K_LENEND 12 /* For end marker or next block. */
-#define EISD__K_MAXLENGLBL 84
-
-#define EISD__K_GBLNAMLEN 44 /* Size of the field. */
-
-struct vms_eisd
-{
- unsigned char majorid[4];
- unsigned char minorid[4];
-
- /* Size (in bytes) of this eisd. */
- unsigned char eisdsize[4];
-
- /* Size (in bytes) of the section. */
- unsigned char secsize[4];
-
- /* Virtual address of the section. */
- unsigned char virt_addr[8];
-
- /* Flags. */
- unsigned char flags[4];
-
- /* Base virtual block number. */
- unsigned char vbn[4];
-
- /* Page fault cluster. */
- unsigned char pfc;
-
- /* Linker match control. */
- unsigned char matchctl;
-
- /* Section type. */
- unsigned char type;
-
- unsigned char fill_1;
-
- /* End of structure for normal records. */
-
- /* Ident for global section. */
- unsigned char ident[4];
-
- /* Global name ascic. First 8 bytes are quad length field. */
- unsigned char gblnam[EISD__K_GBLNAMLEN];
-};
-
-/* Versions. */
-#define EISD__K_MAJORID 1
-#define EISD__K_MINORID 1
-
-/* Match control. */
-#define EISD__K_MATALL 0 /* Match always. */
-#define EISD__K_MATEQU 1 /* Match if equal. */
-#define EISD__K_MATLEQ 2 /* Match if less or equal. */
-#define EISD__K_MATNEV 3 /* Match never. */
-
-/* Section type. */
-#define EISD__K_NORMAL 0 /* Normal program image section. */
-#define EISD__K_SHRFXD 1 /* Shareable fixed section. */
-#define EISD__K_PRVFXD 2 /* Private fixed section. */
-#define EISD__K_SHRPIC 3 /* Shareable pic section. */
-#define EISD__K_PRVPIC 4 /* Private PIC section. */
-#define EISD__K_USRSTACK 253 /* User stack section. */
-
-/* EISD offsets. */
-
-#define EISD__L_EISDSIZE 8
-#define EISD__L_SECSIZE 12
-#define EISD__Q_VIR_ADDR 16
-#define EISD__L_FLAGS 24
-#define EISD__L_VBN 28
-#define EISD__R_CONTROL 32
-#define EISD__L_IDENT 36
-#define EISD__T_GBLNAM 40
-
-#endif /* _VMS_EISD_H */
diff --git a/include/vms/emh.h b/include/vms/emh.h
deleted file mode 100644
index 973d71ea6..000000000
--- a/include/vms/emh.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Alpha VMS external format of Extended Module Header.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EMH_H
-#define _VMS_EMH_H
-
-#define EMH__C_MHD 0 /* Main header record. */
-#define EMH__C_LNM 1 /* Language name and version. */
-#define EMH__C_SRC 2 /* Source file specification. */
-#define EMH__C_TTL 3 /* Title text of module. */
-#define EMH__C_CPR 4 /* Copyright notice. */
-#define EMH__C_MTC 5 /* Maintenance status. */
-#define EMH__C_GTX 6 /* General text. */
-#define EMH__C_MAXHDRTYP 6 /* Maximum allowable type. */
-
-struct vms_emh_common
-{
- /* Record type. */
- unsigned char rectyp[2];
-
- /* Record size. */
- unsigned char size[2];
-
- /* Subtype. */
- unsigned char subtyp[2];
-};
-
-struct vms_emh_mhd
-{
- struct vms_emh_common common;
-
- unsigned char strlvl;
-
- unsigned char temp;
-
- unsigned char arch1[4];
- unsigned char arch2[4];
-
- unsigned char recsiz[4];
-
- /* Module name: ASCIC. */
- /* Module version: ASCIC. */
- /* Compile data: ASCIC. */
-};
-
-#define EOBJ__C_MAXRECSIZ 8192 /* Maximum legal record size. */
-#define EOBJ__C_STRLVL 2 /* Structure level. */
-#define EOBJ__C_SYMSIZ 64 /* Maximum symbol length. */
-#define EOBJ__C_SECSIZ 31 /* Maximum section name length. */
-#define EOBJ__C_STOREPLIM -1 /* Maximum repeat count on store commands. */
-#define EOBJ__C_PSCALILIM 16 /* Maximum p-sect alignment. */
-
-struct vms_emh_lnm
-{
- struct vms_emh_common common;
-
- /* Language processor name: ASCII. */
-};
-
-#endif /* _VMS_EMH_H */
diff --git a/include/vms/eobjrec.h b/include/vms/eobjrec.h
deleted file mode 100644
index 985fda782..000000000
--- a/include/vms/eobjrec.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Alpha VMS external format of Extended Object Records.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_EOBJREC_H
-#define _VMS_EOBJREC_H
-
-#define EOBJ__C_EMH 8 /* EVAX mdule header record. */
-#define EOBJ__C_EEOM 9 /* EVAX ed of module record. */
-#define EOBJ__C_EGSD 10 /* EVAX gobal symbol definition record. */
-#define EOBJ__C_ETIR 11 /* EVAX txt information record. */
-#define EOBJ__C_EDBG 12 /* EVAX Dbugger information record. */
-#define EOBJ__C_ETBT 13 /* EVAX Taceback information record. */
-#define EOBJ__C_MAXRECTYP 13 /* EVAX Lst assigned record type. */
-
-struct vms_eobjrec
-{
- /* Record type. */
- unsigned char rectyp[2];
-
- /* Record size. */
- unsigned char size[2];
-
-#if 0
- /* Record subtype. */
- unsigned char subtyp[2];
-#endif
-};
-
-#endif /* _VMS_EOBJREC_H */
diff --git a/include/vms/esdf.h b/include/vms/esdf.h
deleted file mode 100644
index 79ee3d610..000000000
--- a/include/vms/esdf.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Alpha VMS external format of Extended GSD Global Symbol Definition.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ESDF_H
-#define _VMS_ESDF_H
-
-struct vms_esdf
-{
- struct vms_egsy header;
-
- unsigned char value[8];
- unsigned char code_address[8];
- unsigned char ca_psindx[4];
-
- unsigned char psindx[4];
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#define ESDF__B_NAMLNG 32
-
-#endif /* _VMS_ESDF_H */
diff --git a/include/vms/esdfm.h b/include/vms/esdfm.h
deleted file mode 100644
index e00e44a13..000000000
--- a/include/vms/esdfm.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Alpha VMS external format of Extended Symbol Definition for version Mask.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ESDFM_H
-#define _VMS_ESDFM_H
-
-struct vms_esdfm
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char size[2];
-
- /* Data type. */
- unsigned char datyp;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- unsigned char flags[2];
-
- unsigned char value[8];
- unsigned char psindx[4];
- unsigned char version_mask[4];
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#endif /* _VMS_ESDFM_H */
diff --git a/include/vms/esdfv.h b/include/vms/esdfv.h
deleted file mode 100644
index fae0dbc18..000000000
--- a/include/vms/esdfv.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Alpha VMS external format of Extended Symbol Def for Vectored symbols.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ESDFV_H
-#define _VMS_ESDFV_H
-
-struct vms_esdfv
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char size[2];
-
- /* Data type. */
- unsigned char datyp;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- unsigned char flags[2];
-
- unsigned char value[8];
- unsigned char psindx[4];
- unsigned char vector[4];
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#endif /* _VMS_ESDFV_H */
diff --git a/include/vms/esgps.h b/include/vms/esgps.h
deleted file mode 100644
index e668a8748..000000000
--- a/include/vms/esgps.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Alpha VMS external format of Extended Shared Program Section Definition.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ESGPS_H
-#define _VMS_ESGPS_H
-
-struct vms_esgps
-{
- /* Entry type. */
- unsigned char gsdtyp[2];
-
- /* Length of the entry. */
- unsigned char gsdsiz[2];
-
- /* Psect alignment. */
- unsigned char align;
-
- /* Pad for alignment. */
- unsigned char temp;
-
- unsigned char flags[2];
-
- /* Length of this contribution. */
- unsigned char alloc[4];
-
- /* Image offset of the psect. */
- unsigned char base[4];
-
- /* Symbol vector offset. */
- unsigned char value[8];
-
- /* Name. */
- unsigned char namlng;
- unsigned char name[31];
-};
-
-/* These are the same as EGPS flags. */
-
-#define ESGPS__V_PIC (1 << 0) /* Not meaningful. */
-#define ESGPS__V_LIB (1 << 1) /* Defined in a shareable image. */
-#define ESGPS__V_OVR (1 << 2) /* Overlaid contribution. */
-#define ESGPS__V_REL (1 << 3) /* Relocatable. */
-#define ESGPS__V_GBL (1 << 4) /* Global. */
-#define ESGPS__V_SHR (1 << 5) /* Shareable. */
-#define ESGPS__V_EXE (1 << 6) /* Executable. */
-#define ESGPS__V_RD (1 << 7) /* Readable. */
-#define ESGPS__V_WRT (1 << 8) /* Writable. */
-#define ESGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */
-#define ESGPS__V_NOMOD (1 << 10) /* Demand-zero. */
-#define ESGPS__V_COM (1 << 11) /* Conditional storage. */
-#define ESGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */
-
-#endif /* _VMS_ESGPS_H */
diff --git a/include/vms/esrf.h b/include/vms/esrf.h
deleted file mode 100644
index 291250c96..000000000
--- a/include/vms/esrf.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Alpha VMS external format of Extended GSD Global Symbol Reference.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ESRF_H
-#define _VMS_ESRF_H
-
-struct vms_esrf
-{
- struct vms_egsy header;
-
- unsigned char namlng;
- unsigned char name[31];
-};
-
-#define ESRF__B_NAMLNG 8
-
-#endif /* _VMS_ESRF_H */
diff --git a/include/vms/etir.h b/include/vms/etir.h
deleted file mode 100644
index 4d922dc3e..000000000
--- a/include/vms/etir.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Alpha VMS external format of Extended Text Information and Relocation.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_ETIR_H
-#define _VMS_ETIR_H
-
-#define ETIR__C_MINSTACOD 0 /* Minimum stack code. */
-#define ETIR__C_STA_GBL 0 /* Stack global symbol value. */
-#define ETIR__C_STA_LW 1 /* Stack longword. */
-#define ETIR__C_STA_QW 2 /* Stack quadword. */
-#define ETIR__C_STA_PQ 3 /* Stack psect base + quadword off. */
-#define ETIR__C_STA_LI 4 /* Stack literal. */
-#define ETIR__C_STA_MOD 5 /* Stack module. */
-#define ETIR__C_STA_CKARG 6 /* Check Arguments. */
-#define ETIR__C_MAXSTACOD 6 /* Maximum stack code. */
-
-#define ETIR__C_MINSTOCOD 50 /* Minimum store code. */
-#define ETIR__C_STO_B 50 /* Store byte. */
-#define ETIR__C_STO_W 51 /* Store word. */
-#define ETIR__C_STO_LW 52 /* Store longword. */
-#define ETIR__C_STO_QW 53 /* Store quadword. */
-#define ETIR__C_STO_IMMR 54 /* Store immediate Repeated. */
-#define ETIR__C_STO_GBL 55 /* Store global. */
-#define ETIR__C_STO_CA 56 /* Store code address. */
-#define ETIR__C_STO_RB 57 /* Store relative branch. */
-#define ETIR__C_STO_AB 58 /* Store absolute branch. */
-#define ETIR__C_STO_OFF 59 /* Store offset within psect. */
-#define ETIR__C_STO_IMM 61 /* Store immediate. */
-#define ETIR__C_STO_GBL_LW 62 /* Store global Longword. */
-#define ETIR__C_STO_LP_PSB 63 /* STO_LP_PSB not valid in level 2 use STC_LP_PSB. */
-#define ETIR__C_STO_HINT_GBL 64 /* Store 14 bit HINT at global address. */
-#define ETIR__C_STO_HINT_PS 65 /* Store 14 bit HINT at psect + offset */
-#define ETIR__C_MAXSTOCOD 65 /* Maximum store code. */
-
-/* Operate codes. */
-#define ETIR__C_MINOPRCOD 100 /* Minimum operate code. */
-#define ETIR__C_OPR_NOP 100 /* No-op. */
-#define ETIR__C_OPR_ADD 101 /* Add. */
-#define ETIR__C_OPR_SUB 102 /* Subtract. */
-#define ETIR__C_OPR_MUL 103 /* Multiply. */
-#define ETIR__C_OPR_DIV 104 /* Divide. */
-#define ETIR__C_OPR_AND 105 /* Logical AND. */
-#define ETIR__C_OPR_IOR 106 /* Logical inclusive OR. */
-#define ETIR__C_OPR_EOR 107 /* Logical exclusive OR. */
-#define ETIR__C_OPR_NEG 108 /* Negate. */
-#define ETIR__C_OPR_COM 109 /* Complement. */
-#define ETIR__C_OPR_INSV 110 /* Insert bit field. */
-#define ETIR__C_OPR_ASH 111 /* Arithmetic shift. */
-#define ETIR__C_OPR_USH 112 /* Unsigned shift. */
-#define ETIR__C_OPR_ROT 113 /* Rotate. */
-#define ETIR__C_OPR_SEL 114 /* Select one of 3 long on top of stack. */
-#define ETIR__C_OPR_REDEF 115 /* Redefine this symbol after pass 2. */
-#define ETIR__C_OPR_DFLIT 116 /* Define a literal. */
-#define ETIR__C_MAXOPRCOD 116 /* Maximum operate code. */
-
-/* Control codes. */
-#define ETIR__C_MINCTLCOD 150 /* Minimum control code. */
-#define ETIR__C_CTL_SETRB 150 /* Set relocation base. */
-#define ETIR__C_CTL_AUGRB 151 /* Augment relocation base. */
-#define ETIR__C_CTL_DFLOC 152 /* Define debug location. */
-#define ETIR__C_CTL_STLOC 153 /* Set debug location. */
-#define ETIR__C_CTL_STKDL 154 /* Stack debug location. */
-#define ETIR__C_MAXCTLCOD 154 /* Maximum control code. */
-
-/* Store-conditional (STC) codes. */
-#define ETIR__C_MINSTCCOD 200 /* Minimum store-conditional code. */
-#define ETIR__C_STC_LP 200 /* STC Linkage Pair. */
-#define ETIR__C_STC_LP_PSB 201 /* STC Linkage Pair with Proc Signature. */
-#define ETIR__C_STC_GBL 202 /* STC Address at global address. */
-#define ETIR__C_STC_GCA 203 /* STC Code Address at global address. */
-#define ETIR__C_STC_PS 204 /* STC Address at psect + offset. */
-#define ETIR__C_STC_NOP_GBL 205 /* STC NOP at address of global. */
-#define ETIR__C_STC_NOP_PS 206 /* STC NOP at pect + offset. */
-#define ETIR__C_STC_BSR_GBL 207 /* STC BSR at global address. */
-#define ETIR__C_STC_BSR_PS 208 /* STC BSR at pect + offset. */
-#define ETIR__C_STC_LDA_GBL 209 /* STC LDA at global address. */
-#define ETIR__C_STC_LDA_PS 210 /* STC LDA at psect + offset. */
-#define ETIR__C_STC_BOH_GBL 211 /* STC BSR or Hint at global address. */
-#define ETIR__C_STC_BOH_PS 212 /* STC BSR or Hint at pect + offset. */
-#define ETIR__C_STC_NBH_GBL 213 /* STC NOP,BSR or HINT at global address. */
-#define ETIR__C_STC_NBH_PS 214 /* STC NOP,BSR or HINT at psect + offset. */
-#define ETIR__C_MAXSTCCOD 214 /* Maximum store-conditional code. */
-
-#define ETIR__C_HEADER_SIZE 4 /* Size of the header of a command */
-
-struct vms_etir
-{
- /* Commands. See above. */
- unsigned char rectyp[2];
-
- /* Size (including this header). */
- unsigned char size[2];
-};
-
-#endif /* _VMS_ETIR_H */
diff --git a/include/vms/internal.h b/include/vms/internal.h
deleted file mode 100644
index 1c8c47245..000000000
--- a/include/vms/internal.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Alpha VMS internal format.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_INTERNAL_H
-#define _VMS_INTERNAL_H
-
-struct vms_internal_eisd
-{
- unsigned int majorid; /* Version. */
- unsigned int minorid;
- unsigned int eisdsize; /* Size (in bytes) of this eisd. */
- unsigned int secsize; /* Size (in bytes) of the section. */
- bfd_vma virt_addr; /* Virtual address of the section. */
- unsigned int flags; /* Flags. */
- unsigned int vbn; /* Base virtual block number. */
- unsigned char pfc; /* Page fault cluster. */
- unsigned char matchctl; /* Linker match control. */
- unsigned char type; /* Section type. */
-};
-
-struct vms_internal_gbl_eisd
-{
- struct vms_internal_eisd common;
-
- unsigned int ident; /* Ident for global section. */
- unsigned char gblnam[44]; /* Global name ascic. */
-};
-
-struct vms_internal_eisd_map
-{
- /* Next eisd in the list. */
- struct vms_internal_eisd_map *next;
-
- /* Offset in output file. */
- file_ptr file_pos;
-
- union
- {
- struct vms_internal_eisd eisd;
- struct vms_internal_gbl_eisd gbl_eisd;
- } u;
-};
-
-#endif /* _VMS_INTERNAL_H */
diff --git a/include/vms/lbr.h b/include/vms/lbr.h
deleted file mode 100644
index bdb436aa7..000000000
--- a/include/vms/lbr.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* Alpha VMS external format of Libraries.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_LBR_H
-#define _VMS_LBR_H
-
-/* Libray HeaDer. */
-
-/* Magic numbers. Should match the major version. */
-
-#define LHD_SANEID_DCX 319232342
-#define LHD_SANEID3 233579905
-#define LHD_SANEID6 233579911
-
-/* Library type. */
-#define LBR__C_TYP_UNK 0 /* Unknown / unspecified. */
-#define LBR__C_TYP_OBJ 1 /* Vax object. */
-#define LBR__C_TYP_MLB 2 /* Macro. */
-#define LBR__C_TYP_HLP 3 /* Help. */
-#define LBR__C_TYP_TXT 4 /* Text. */
-#define LBR__C_TYP_SHSTB 5 /* Vax shareable image. */
-#define LBR__C_TYP_NCS 6 /* NCS. */
-#define LBR__C_TYP_EOBJ 7 /* Alpha object. */
-#define LBR__C_TYP_ESHSTB 8 /* Alpha shareable image. */
-#define LBR__C_TYP_IOBJ 9 /* IA-64 object. */
-#define LBR__C_TYP_ISHSTB 10 /* IA-64 shareable image. */
-
-struct vms_lhd
-{
- /* Type of the library. See above. */
- unsigned char type;
-
- /* Number of indexes. Generally 1, 2 for object libraries. */
- unsigned char nindex;
-
- unsigned char fill_1[2];
-
- /* Sanity Id. */
- unsigned char sanity[4];
-
- /* Version. */
- unsigned char majorid[2];
- unsigned char minorid[2];
-
- /* Tool name. */
- unsigned char lbrver[32];
-
- /* Create time. */
- unsigned char credat[8];
-
- /* Update time. */
- unsigned char updtim[8];
-
- /* Size of the MHD. */
- unsigned char mhdusz;
-
- unsigned char idxblkf[2]; /* Unused. */
- unsigned char fill_2;
- unsigned char closerror[2];
-
- unsigned char spareword[2];
-
- /* First free block, and number of free blocks. */
- unsigned char freevbn[4];
- unsigned char freeblk[4];
-
- unsigned char nextrfa[6];
- unsigned char nextvbn[4];
-
- /* Free pre-allocated index block. */
- unsigned char freidxblk[4];
- unsigned char freeidx[4];
-
- /* Highest pre-allocated index block and in use. */
- unsigned char hipreal[4];
- unsigned char hiprusd[4];
-
- /* Number of index blocks in use. */
- unsigned char idxblks[4];
-
- /* Number of index entries. */
- unsigned char idxcnt[4];
-
- /* Number of modules entries. */
- unsigned char modcnt[4];
-
- unsigned char fill_3[2];
-
- /* Number of module headers. */
- unsigned char modhdrs[4];
-
- /* Overhead index pointers. */
- unsigned char idxovh[4];
-
- /* Update history records. */
- unsigned char maxluhrec[2];
- unsigned char numluhrec[2];
- unsigned char begluhrfa[6];
- unsigned char endluhrfa[6];
-
- /* DCX map. */
- unsigned char dcxmapvbn[4];
-
- unsigned char fill_4[4 * 13];
-};
-
-/* Known major ids. */
-#define LBR_MAJORID 3 /* Alpha libraries. */
-#define LBR_ELFMAJORID 6 /* Elf libraries (new index, new data). */
-
-/* Offset of the first IDD. */
-#define LHD_IDXDESC 196
-
-/* InDex Description. */
-struct vms_idd
-{
- unsigned char flags[2];
-
- /* Max length of the key. */
- unsigned char keylen[2];
-
- /* First index block. */
- unsigned char vbn[4];
-};
-
-/* IDD flags. */
-#define IDD__FLAGS_ASCII 1
-#define IDD__FLAGS_LOCKED 2
-#define IDD__FLAGS_VARLENIDX 4
-#define IDD__FLAGS_NOCASECMP 8
-#define IDD__FLAGS_NOCASENTR 16
-#define IDD__FLAGS_UPCASNTRY 32
-
-#define IDD_LENGTH 8
-
-/* Index block. */
-#define INDEXDEF__LENGTH 512
-#define INDEXDEF__BLKSIZ 500
-
-struct vms_indexdef
-{
- /* Number of bytes used. */
- unsigned char used[2];
-
- /* VBN of the parent. */
- unsigned char parent[4];
-
- unsigned char fill_1[6];
-
- /* The key field contains vms_idx/vms_elfidx structures, which are
- simply a key (= a string) and a rfa. */
- unsigned char keys[INDEXDEF__BLKSIZ];
-};
-
-/* An offset in a file. */
-
-struct vms_rfa
-{
- /* Logical block number, 1 based.
- 0 means that the field is absent. Block size is 512. */
- unsigned char vbn[4];
-
- /* Offset within the block. */
- unsigned char offset[2];
-};
-
-/* Index keys. For version 3. */
-
-struct vms_idx
-{
- /* Offset from the start of the vbn, so minimum should be
- DATA__DATA (ie 6). */
- struct vms_rfa rfa;
-
- unsigned char keylen;
- /* The length of this field is in fact keylen. */
- unsigned char keyname[256];
-};
-
-/* Index keys, for version 4 and later. */
-
-struct vms_elfidx
-{
- struct vms_rfa rfa;
-
- unsigned char keylen[2];
- unsigned char flags;
- unsigned char keyname[256];
-};
-
-/* Flags of elfidx. */
-
-#define ELFIDX__WEAK 0x01 /* Weak symbol. */
-#define ELFIDX__GROUP 0x02 /* Group symbol. */
-#define ELFIDX__LISTRFA 0x04 /* RFA field points to an LHS. */
-#define ELFIDX__SYMESC 0x08 /* Long symbol. */
-
-#define RFADEF__C_INDEX 0xffff
-
-/* List head structure. That's what is pointed by rfa when LISTRFA flag
- is set in elfidx. */
-
-struct vms_lhs
-{
- struct vms_rfa ng_g_rfa; /* Non-group global. */
- struct vms_rfa ng_wk_rfa; /* Non-group weak. */
- struct vms_rfa g_g_rfa; /* Group global. */
- struct vms_rfa g_wk_rfa; /* Group weak. */
- unsigned char flags;
-};
-
-/* List node structure. Fields of LHS point to this structure. */
-
-struct vms_lns
-{
- /* Next node in the list. */
- struct vms_rfa nxtrfa;
-
- /* Module associated with the key. */
- struct vms_rfa modrfa;
-};
-
-struct vms_datadef
-{
- /* Number of records in this block. */
- unsigned char recs;
- unsigned char fill_1;
-
- /* Next vbn. */
- unsigned char link[4];
-
- /* Data. The first word is the record length, followed by record
- data and a possible pad byte so that record length is always aligned. */
- unsigned char data[506];
-};
-#define DATA__LENGTH 512
-#define DATA__DATA 6
-
-/* Key name block. This is used for keys longer than 128 bytes. */
-
-struct vms_kbn
-{
- /* Length of the key chunk. */
- unsigned char keylen[2];
-
- /* RFA of the next chunk. */
- struct vms_rfa rfa;
-
- /* Followed by the key chunk. */
-};
-
-/* Module header. */
-struct vms_mhd
-{
- /* Fixed part. */
- unsigned char lbrflag;
- unsigned char id;
- unsigned char fill_1[2];
- unsigned char refcnt[4];
- unsigned char datim[8];
-
- unsigned char objstat;
- /* Ident or GSMATCH. */
- unsigned char objidlng;
- unsigned char objid[31];
-
- unsigned char pad1[3];
- unsigned char otherefcnt[4];
- unsigned char modsize[4];
- unsigned char pad2[4];
-};
-
-#define MHD__C_MHDID 0xad /* Value for id. */
-#define MHD__C_MHDLEN 16 /* Fixed part length. */
-#define MHD__C_USRDAT 16
-
-/* Flags for objstat. */
-#define MHD__M_SELSRC 0x1 /* Selective search. */
-#define MHD__M_OBJTIR 0x2
-#define MHD__M_WKSYM 0x4
-
-struct vms_luh
-{
- unsigned char nxtluhblk[4];
- unsigned char spare[2];
- unsigned char data[506];
-};
-
-struct vms_luhdef
-{
- unsigned char rechdr[2];
- unsigned char reclen[2];
-};
-#define LUH__RECHDRLEN 4
-#define LUH__RECHDRMRK 0xabba
-#define LUH__DATAFLDLEN 506
-
-/* Entry in the history. */
-
-struct vms_leh
-{
- unsigned char date[8];
- unsigned char nbr_units[2];
- unsigned char action[2]; /* 1: delete, 2: insert, 3: replaced. */
- unsigned char idlen;
- /* username
- modules... */
-};
-
-#endif /* _VMS_LBR_H */
diff --git a/include/vms/prt.h b/include/vms/prt.h
deleted file mode 100644
index 8b8d27b56..000000000
--- a/include/vms/prt.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Alpha VMS external format of Protection values.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_PRT_H
-#define _VMS_PRT_H
-
-#define PRT__C_NA 0 /* No access. */
-#define PRT__C_RESERVED 1
-#define PRT__C_KW 2 /* Kernel RW. */
-#define PRT__C_KR 3 /* Kernel RO. */
-#define PRT__C_UW 4 /* User RW. */
-#define PRT__C_EW 5 /* Executive RW. */
-#define PRT__C_ERKW 6 /* Executive RO, Kernel RW. */
-#define PRT__C_ER 7 /* Executive RO. */
-#define PRT__C_SW 8 /* Supervisor RW. */
-#define PRT__C_SREW 9 /* Supervisor RO, Executive RW. */
-#define PRT__C_SRKW 10 /* Supervisor RO, Kernel RW. */
-#define PRT__C_SR 11 /* Supervisor RO. */
-#define PRT__C_URSW 12 /* User RO, Supervisor RW. */
-#define PRT__C_UREW 13 /* User RO, Executive RW. */
-#define PRT__C_URKW 14 /* User RO, Kernel RW. */
-#define PRT__C_UR 15 /* User RO. */
-
-#endif /* _VMS_PRT_H */
diff --git a/include/vms/shl.h b/include/vms/shl.h
deleted file mode 100644
index d1d9fae92..000000000
--- a/include/vms/shl.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Alpha VMS external format of Shareable image List.
-
- Copyright 2010 Free Software Foundation, Inc.
- Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#ifndef _VMS_SHL_H
-#define _VMS_SHL_H
-
-struct vms_shl
-{
- /* Base address of this shareable image. */
- unsigned char baseva[4];
-
- /* Point in SHL shareable image to SHL in executable image. */
- unsigned char shlptr[4];
-
- /* GSMATCH. */
- unsigned char ident[4];
-
- /* Permanent shareable image context. */
- unsigned char permctx[4];
-
- /* Size of this structure. */
- unsigned char size;
-
- unsigned char fill_1[2];
-
- /* Flags. */
- unsigned char flags;
-
- /* Address of the image control block (in memory). */
- unsigned char icb[4];
-
- /* Image name. ASCIC. */
- unsigned char imgnam[40];
-};
-
-#endif /* _VMS_SHL_H */
diff --git a/include/xregex.h b/include/xregex.h
deleted file mode 100644
index 4c5ef9345..000000000
--- a/include/xregex.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* This file redefines all regex external names before including
- a renamed copy of glibc's regex.h. */
-
-#ifndef _XREGEX_H
-#define _XREGEX_H 1
-
-# define regfree xregfree
-# define regexec xregexec
-# define regcomp xregcomp
-# define regerror xregerror
-# define regoff_t xregoff_t
-# define re_set_registers xre_set_registers
-# define re_match_2 xre_match_2
-# define re_match xre_match
-# define re_search xre_search
-# define re_compile_pattern xre_compile_pattern
-# define re_set_syntax xre_set_syntax
-# define re_search_2 xre_search_2
-# define re_compile_fastmap xre_compile_fastmap
-# define re_syntax_options xre_syntax_options
-# define re_max_failures xre_max_failures
-
-# define _REGEX_RE_COMP
-# define re_comp xre_comp
-# define re_exec xre_exec
-
-#include "xregex2.h"
-
-#endif /* xregex.h */
diff --git a/include/xregex2.h b/include/xregex2.h
deleted file mode 100644
index d3d0da14a..000000000
--- a/include/xregex2.h
+++ /dev/null
@@ -1,565 +0,0 @@
-/* Definitions for data structures and routines for the regular
- expression library, version 0.12.
-
- Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
- 1998, 2000, 2005 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library. Its master source is NOT part of
- the C library, however. The master source lives in /gd/gnu/lib.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA. */
-
-#ifndef _REGEX_H
-#define _REGEX_H 1
-
-/* Allow the use in C++ code. */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* POSIX says that <sys/types.h> must be included (by the caller) before
- <regex.h>. */
-
-#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
-/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
- should be there. */
-# include <stddef.h>
-#endif
-
-/* The following two types have to be signed and unsigned integer type
- wide enough to hold a value of a pointer. For most ANSI compilers
- ptrdiff_t and size_t should be likely OK. Still size of these two
- types is 2 for Microsoft C. Ugh... */
-typedef long int s_reg_t;
-typedef unsigned long int active_reg_t;
-
-/* The following bits are used to determine the regexp syntax we
- recognize. The set/not-set meanings are chosen so that Emacs syntax
- remains the value 0. The bits are given in alphabetical order, and
- the definitions shifted by one from the previous bit; thus, when we
- add or remove a bit, only one other definition need change. */
-typedef unsigned long int reg_syntax_t;
-
-/* If this bit is not set, then \ inside a bracket expression is literal.
- If set, then such a \ quotes the following character. */
-#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
-
-/* If this bit is not set, then + and ? are operators, and \+ and \? are
- literals.
- If set, then \+ and \? are operators and + and ? are literals. */
-#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-
-/* If this bit is set, then character classes are supported. They are:
- [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
- [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
- If not set, then character classes are not supported. */
-#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-
-/* If this bit is set, then ^ and $ are always anchors (outside bracket
- expressions, of course).
- If this bit is not set, then it depends:
- ^ is an anchor if it is at the beginning of a regular
- expression or after an open-group or an alternation operator;
- $ is an anchor if it is at the end of a regular expression, or
- before a close-group or an alternation operator.
-
- This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
- POSIX draft 11.2 says that * etc. in leading positions is undefined.
- We already implemented a previous draft which made those constructs
- invalid, though, so we haven't changed the code back. */
-#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-
-/* If this bit is set, then special characters are always special
- regardless of where they are in the pattern.
- If this bit is not set, then special characters are special only in
- some contexts; otherwise they are ordinary. Specifically,
- * + ? and intervals are only special when not after the beginning,
- open-group, or alternation operator. */
-#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-
-/* If this bit is set, then *, +, ?, and { cannot be first in an re or
- immediately after an alternation or begin-group operator. */
-#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-
-/* If this bit is set, then . matches newline.
- If not set, then it doesn't. */
-#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-
-/* If this bit is set, then . doesn't match NUL.
- If not set, then it does. */
-#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-
-/* If this bit is set, nonmatching lists [^...] do not match newline.
- If not set, they do. */
-#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-
-/* If this bit is set, either \{...\} or {...} defines an
- interval, depending on RE_NO_BK_BRACES.
- If not set, \{, \}, {, and } are literals. */
-#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-
-/* If this bit is set, +, ? and | aren't recognized as operators.
- If not set, they are. */
-#define RE_LIMITED_OPS (RE_INTERVALS << 1)
-
-/* If this bit is set, newline is an alternation operator.
- If not set, newline is literal. */
-#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-
-/* If this bit is set, then `{...}' defines an interval, and \{ and \}
- are literals.
- If not set, then `\{...\}' defines an interval. */
-#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-
-/* If this bit is set, (...) defines a group, and \( and \) are literals.
- If not set, \(...\) defines a group, and ( and ) are literals. */
-#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-
-/* If this bit is set, then \<digit> matches <digit>.
- If not set, then \<digit> is a back-reference. */
-#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-
-/* If this bit is set, then | is an alternation operator, and \| is literal.
- If not set, then \| is an alternation operator, and | is literal. */
-#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-
-/* If this bit is set, then an ending range point collating higher
- than the starting range point, as in [z-a], is invalid.
- If not set, then when ending range point collates higher than the
- starting range point, the range is ignored. */
-#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-
-/* If this bit is set, then an unmatched ) is ordinary.
- If not set, then an unmatched ) is invalid. */
-#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-
-/* If this bit is set, succeed as soon as we match the whole pattern,
- without further backtracking. */
-#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-
-/* If this bit is set, do not process the GNU regex operators.
- If not set, then the GNU regex operators are recognized. */
-#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
-
-/* If this bit is set, turn on internal regex debugging.
- If not set, and debugging was on, turn it off.
- This only works if regex.c is compiled -DDEBUG.
- We define this bit always, so that all that's needed to turn on
- debugging is to recompile regex.c; the calling code can always have
- this bit set, and it won't affect anything in the normal case. */
-#define RE_DEBUG (RE_NO_GNU_OPS << 1)
-
-/* If this bit is set, a syntactically invalid interval is treated as
- a string of ordinary characters. For example, the ERE 'a{1' is
- treated as 'a\{1'. */
-#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
-
-/* This global variable defines the particular regexp syntax to use (for
- some interfaces). When a regexp is compiled, the syntax used is
- stored in the pattern buffer, so changing this does not affect
- already-compiled regexps. */
-extern reg_syntax_t re_syntax_options;
-
-/* Define combinations of the above bits for the standard possibilities.
- (The [[[ comments delimit what gets put into the Texinfo file, so
- don't delete them!) */
-/* [[[begin syntaxes]]] */
-#define RE_SYNTAX_EMACS 0
-
-#define RE_SYNTAX_AWK \
- (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
- | RE_NO_BK_PARENS | RE_NO_BK_REFS \
- | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
- | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
- | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GNU_AWK \
- ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
- & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS))
-
-#define RE_SYNTAX_POSIX_AWK \
- (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
- | RE_INTERVALS | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GREP \
- (RE_BK_PLUS_QM | RE_CHAR_CLASSES \
- | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
- | RE_NEWLINE_ALT)
-
-#define RE_SYNTAX_EGREP \
- (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
- | RE_NEWLINE_ALT | RE_NO_BK_PARENS \
- | RE_NO_BK_VBAR)
-
-#define RE_SYNTAX_POSIX_EGREP \
- (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \
- | RE_INVALID_INTERVAL_ORD)
-
-/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
-#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
-
-#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
-
-/* Syntax bits common to both basic and extended POSIX regex syntax. */
-#define _RE_SYNTAX_POSIX_COMMON \
- (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
- | RE_INTERVALS | RE_NO_EMPTY_RANGES)
-
-#define RE_SYNTAX_POSIX_BASIC \
- (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
-
-/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
- RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
- isn't minimal, since other operators, such as \`, aren't disabled. */
-#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
- (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
-
-#define RE_SYNTAX_POSIX_EXTENDED \
- (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
- | RE_NO_BK_PARENS | RE_NO_BK_VBAR \
- | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
-
-/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
- removed and RE_NO_BK_REFS is added. */
-#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
- (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
- | RE_NO_BK_PARENS | RE_NO_BK_REFS \
- | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
-/* [[[end syntaxes]]] */
-
-/* Maximum number of duplicates an interval can allow. Some systems
- (erroneously) define this in other header files, but we want our
- value, so remove any previous define. */
-#ifdef RE_DUP_MAX
-# undef RE_DUP_MAX
-#endif
-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
-#define RE_DUP_MAX (0x7fff)
-
-
-/* POSIX `cflags' bits (i.e., information for `regcomp'). */
-
-/* If this bit is set, then use extended regular expression syntax.
- If not set, then use basic regular expression syntax. */
-#define REG_EXTENDED 1
-
-/* If this bit is set, then ignore case when matching.
- If not set, then case is significant. */
-#define REG_ICASE (REG_EXTENDED << 1)
-
-/* If this bit is set, then anchors do not match at newline
- characters in the string.
- If not set, then anchors do match at newlines. */
-#define REG_NEWLINE (REG_ICASE << 1)
-
-/* If this bit is set, then report only success or fail in regexec.
- If not set, then returns differ between not matching and errors. */
-#define REG_NOSUB (REG_NEWLINE << 1)
-
-
-/* POSIX `eflags' bits (i.e., information for regexec). */
-
-/* If this bit is set, then the beginning-of-line operator doesn't match
- the beginning of the string (presumably because it's not the
- beginning of a line).
- If not set, then the beginning-of-line operator does match the
- beginning of the string. */
-#define REG_NOTBOL 1
-
-/* Like REG_NOTBOL, except for the end-of-line. */
-#define REG_NOTEOL (1 << 1)
-
-
-/* If any error codes are removed, changed, or added, update the
- `re_error_msg' table in regex.c. */
-typedef enum
-{
-#ifdef _XOPEN_SOURCE
- REG_ENOSYS = -1, /* This will never happen for this implementation. */
-#endif
-
- REG_NOERROR = 0, /* Success. */
- REG_NOMATCH, /* Didn't find a match (for regexec). */
-
- /* POSIX regcomp return error codes. (In the order listed in the
- standard.) */
- REG_BADPAT, /* Invalid pattern. */
- REG_ECOLLATE, /* Not implemented. */
- REG_ECTYPE, /* Invalid character class name. */
- REG_EESCAPE, /* Trailing backslash. */
- REG_ESUBREG, /* Invalid back reference. */
- REG_EBRACK, /* Unmatched left bracket. */
- REG_EPAREN, /* Parenthesis imbalance. */
- REG_EBRACE, /* Unmatched \{. */
- REG_BADBR, /* Invalid contents of \{\}. */
- REG_ERANGE, /* Invalid range end. */
- REG_ESPACE, /* Ran out of memory. */
- REG_BADRPT, /* No preceding re for repetition op. */
-
- /* Error codes we've added. */
- REG_EEND, /* Premature end. */
- REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
- REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
-} reg_errcode_t;
-
-/* This data structure represents a compiled pattern. Before calling
- the pattern compiler, the fields `buffer', `allocated', `fastmap',
- `translate', and `no_sub' can be set. After the pattern has been
- compiled, the `re_nsub' field is available. All other fields are
- private to the regex routines. */
-
-#ifndef RE_TRANSLATE_TYPE
-# define RE_TRANSLATE_TYPE char *
-#endif
-
-struct re_pattern_buffer
-{
-/* [[[begin pattern_buffer]]] */
- /* Space that holds the compiled pattern. It is declared as
- `unsigned char *' because its elements are
- sometimes used as array indexes. */
- unsigned char *buffer;
-
- /* Number of bytes to which `buffer' points. */
- unsigned long int allocated;
-
- /* Number of bytes actually used in `buffer'. */
- unsigned long int used;
-
- /* Syntax setting with which the pattern was compiled. */
- reg_syntax_t syntax;
-
- /* Pointer to a fastmap, if any, otherwise zero. re_search uses
- the fastmap, if there is one, to skip over impossible
- starting points for matches. */
- char *fastmap;
-
- /* Either a translate table to apply to all characters before
- comparing them, or zero for no translation. The translation
- is applied to a pattern when it is compiled and to a string
- when it is matched. */
- RE_TRANSLATE_TYPE translate;
-
- /* Number of subexpressions found by the compiler. */
- size_t re_nsub;
-
- /* Zero if this pattern cannot match the empty string, one else.
- Well, in truth it's used only in `re_search_2', to see
- whether or not we should use the fastmap, so we don't set
- this absolutely perfectly; see `re_compile_fastmap' (the
- `duplicate' case). */
- unsigned can_be_null : 1;
-
- /* If REGS_UNALLOCATED, allocate space in the `regs' structure
- for `max (RE_NREGS, re_nsub + 1)' groups.
- If REGS_REALLOCATE, reallocate space if necessary.
- If REGS_FIXED, use what's there. */
-#define REGS_UNALLOCATED 0
-#define REGS_REALLOCATE 1
-#define REGS_FIXED 2
- unsigned regs_allocated : 2;
-
- /* Set to zero when `regex_compile' compiles a pattern; set to one
- by `re_compile_fastmap' if it updates the fastmap. */
- unsigned fastmap_accurate : 1;
-
- /* If set, `re_match_2' does not return information about
- subexpressions. */
- unsigned no_sub : 1;
-
- /* If set, a beginning-of-line anchor doesn't match at the
- beginning of the string. */
- unsigned not_bol : 1;
-
- /* Similarly for an end-of-line anchor. */
- unsigned not_eol : 1;
-
- /* If true, an anchor at a newline matches. */
- unsigned newline_anchor : 1;
-
-/* [[[end pattern_buffer]]] */
-};
-
-typedef struct re_pattern_buffer regex_t;
-
-/* Type for byte offsets within the string. POSIX mandates this. */
-typedef int regoff_t;
-
-
-/* This is the structure we store register match data in. See
- regex.texinfo for a full description of what registers match. */
-struct re_registers
-{
- unsigned num_regs;
- regoff_t *start;
- regoff_t *end;
-};
-
-
-/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
- `re_match_2' returns information about at least this many registers
- the first time a `regs' structure is passed. */
-#ifndef RE_NREGS
-# define RE_NREGS 30
-#endif
-
-
-/* POSIX specification for registers. Aside from the different names than
- `re_registers', POSIX uses an array of structures, instead of a
- structure of arrays. */
-typedef struct
-{
- regoff_t rm_so; /* Byte offset from string's start to substring's start. */
- regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
-} regmatch_t;
-
-/* Declarations for routines. */
-
-/* To avoid duplicating every routine declaration -- once with a
- prototype (if we are ANSI), and once without (if we aren't) -- we
- use the following macro to declare argument types. This
- unfortunately clutters up the declarations a bit, but I think it's
- worth it. */
-
-/* Sets the current default syntax to SYNTAX, and return the old syntax.
- You can also simply assign to the `re_syntax_options' variable. */
-extern reg_syntax_t re_set_syntax (reg_syntax_t syntax);
-
-/* Compile the regular expression PATTERN, with length LENGTH
- and syntax given by the global `re_syntax_options', into the buffer
- BUFFER. Return NULL if successful, and an error string if not. */
-extern const char *re_compile_pattern (const char *pattern, size_t length,
- struct re_pattern_buffer *buffer);
-
-
-/* Compile a fastmap for the compiled pattern in BUFFER; used to
- accelerate searches. Return 0 if successful and -2 if was an
- internal error. */
-extern int re_compile_fastmap (struct re_pattern_buffer *buffer);
-
-
-/* Search in the string STRING (with length LENGTH) for the pattern
- compiled into BUFFER. Start searching at position START, for RANGE
- characters. Return the starting position of the match, -1 for no
- match, or -2 for an internal error. Also return register
- information in REGS (if REGS and BUFFER->no_sub are nonzero). */
-extern int re_search (struct re_pattern_buffer *buffer, const char *string,
- int length, int start, int range,
- struct re_registers *regs);
-
-
-/* Like `re_search', but search in the concatenation of STRING1 and
- STRING2. Also, stop searching at index START + STOP. */
-extern int re_search_2 (struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, int range, struct re_registers *regs,
- int stop);
-
-
-/* Like `re_search', but return how many characters in STRING the regexp
- in BUFFER matched, starting at position START. */
-extern int re_match (struct re_pattern_buffer *buffer, const char *string,
- int length, int start, struct re_registers *regs);
-
-
-/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
-extern int re_match_2 (struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, struct re_registers *regs, int stop);
-
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
- ENDS. Subsequent matches using BUFFER and REGS will use this memory
- for recording register information. STARTS and ENDS must be
- allocated with malloc, and must each be at least `NUM_REGS * sizeof
- (regoff_t)' bytes long.
-
- If NUM_REGS == 0, then subsequent matches should allocate their own
- register data.
-
- Unless this function is called, the first search or match using
- PATTERN_BUFFER will allocate its own register data, without
- freeing the old data. */
-extern void re_set_registers (struct re_pattern_buffer *buffer,
- struct re_registers *regs,
- unsigned num_regs, regoff_t *starts,
- regoff_t *ends);
-
-#if defined _REGEX_RE_COMP || defined _LIBC
-# ifndef _CRAY
-/* 4.2 bsd compatibility. */
-extern char *re_comp (const char *);
-extern int re_exec (const char *);
-# endif
-#endif
-
-/* GCC 2.95 and later have "__restrict"; C99 compilers have
- "restrict", and "configure" may have defined "restrict". */
-#ifndef __restrict
-# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
-# if defined restrict || 199901L <= __STDC_VERSION__
-# define __restrict restrict
-# else
-# define __restrict
-# endif
-# endif
-#endif
-
-/* GCC 3.1 and later support declaring arrays as non-overlapping
- using the syntax array_name[restrict] */
-#ifndef __restrict_arr
-# if ! (3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) || defined (__GNUG__)
-# define __restrict_arr
-# else
-# define __restrict_arr __restrict
-# endif
-#endif
-
-/* POSIX compatibility. */
-extern int regcomp (regex_t *__restrict __preg,
- const char *__restrict __pattern,
- int __cflags);
-
-#if (__GNUC__)
-__extension__
-#endif
-extern int regexec (const regex_t *__restrict __preg,
- const char *__restrict __string, size_t __nmatch,
- regmatch_t __pmatch[__restrict_arr],
- int __eflags);
-
-extern size_t regerror (int __errcode, const regex_t *__preg,
- char *__errbuf, size_t __errbuf_size);
-
-extern void regfree (regex_t *__preg);
-
-
-#ifdef __cplusplus
-}
-#endif /* C++ */
-
-#endif /* regex.h */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/include/xtensa-config.h b/include/xtensa-config.h
deleted file mode 100644
index 30f4f41a2..000000000
--- a/include/xtensa-config.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Xtensa configuration settings.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
- Free Software Foundation, Inc.
- Contributed by Bob Wilson (bob.wilson@acm.org) at Tensilica.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef XTENSA_CONFIG_H
-#define XTENSA_CONFIG_H
-
-/* The macros defined here match those with the same names in the Xtensa
- compile-time HAL (Hardware Abstraction Layer). Please refer to the
- 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 XSHAL_USE_ABSOLUTE_LITERALS
-#define XSHAL_USE_ABSOLUTE_LITERALS 0
-
-#undef XSHAL_HAVE_TEXT_SECTION_LITERALS
-#define XSHAL_HAVE_TEXT_SECTION_LITERALS 1 /* Set if there is some memory that allows both code and literals. */
-
-#undef XCHAL_HAVE_MAC16
-#define XCHAL_HAVE_MAC16 0
-
-#undef XCHAL_HAVE_MUL16
-#define XCHAL_HAVE_MUL16 1
-
-#undef XCHAL_HAVE_MUL32
-#define XCHAL_HAVE_MUL32 1
-
-#undef XCHAL_HAVE_MUL32_HIGH
-#define XCHAL_HAVE_MUL32_HIGH 0
-
-#undef XCHAL_HAVE_DIV32
-#define XCHAL_HAVE_DIV32 1
-
-#undef XCHAL_HAVE_NSA
-#define XCHAL_HAVE_NSA 1
-
-#undef XCHAL_HAVE_MINMAX
-#define XCHAL_HAVE_MINMAX 1
-
-#undef XCHAL_HAVE_SEXT
-#define XCHAL_HAVE_SEXT 1
-
-#undef XCHAL_HAVE_LOOPS
-#define XCHAL_HAVE_LOOPS 1
-
-#undef XCHAL_HAVE_THREADPTR
-#define XCHAL_HAVE_THREADPTR 1
-
-#undef XCHAL_HAVE_RELEASE_SYNC
-#define XCHAL_HAVE_RELEASE_SYNC 1
-
-#undef XCHAL_HAVE_S32C1I
-#define XCHAL_HAVE_S32C1I 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_DFP_accel
-#define XCHAL_HAVE_DFP_accel 0
-#undef XCHAL_HAVE_WINDOWED
-#define XCHAL_HAVE_WINDOWED 1
-
-#undef XCHAL_NUM_AREGS
-#define XCHAL_NUM_AREGS 32
-
-#undef XCHAL_HAVE_WIDE_BRANCHES
-#define XCHAL_HAVE_WIDE_BRANCHES 0
-
-#undef XCHAL_HAVE_PREDICTED_BRANCHES
-#define XCHAL_HAVE_PREDICTED_BRANCHES 0
-
-
-#undef XCHAL_ICACHE_SIZE
-#define XCHAL_ICACHE_SIZE 16384
-
-#undef XCHAL_DCACHE_SIZE
-#define XCHAL_DCACHE_SIZE 16384
-
-#undef XCHAL_ICACHE_LINESIZE
-#define XCHAL_ICACHE_LINESIZE 32
-
-#undef XCHAL_DCACHE_LINESIZE
-#define XCHAL_DCACHE_LINESIZE 32
-
-#undef XCHAL_ICACHE_LINEWIDTH
-#define XCHAL_ICACHE_LINEWIDTH 5
-
-#undef XCHAL_DCACHE_LINEWIDTH
-#define XCHAL_DCACHE_LINEWIDTH 5
-
-#undef XCHAL_DCACHE_IS_WRITEBACK
-#define XCHAL_DCACHE_IS_WRITEBACK 1
-
-
-#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 6
-
-
-#undef XCHAL_MAX_INSTRUCTION_SIZE
-#define XCHAL_MAX_INSTRUCTION_SIZE 3
-
-#undef XCHAL_INST_FETCH_WIDTH
-#define XCHAL_INST_FETCH_WIDTH 4
-
-
-#undef XSHAL_ABI
-#undef XTHAL_ABI_WINDOWED
-#undef XTHAL_ABI_CALL0
-#define XSHAL_ABI XTHAL_ABI_WINDOWED
-#define XTHAL_ABI_WINDOWED 0
-#define XTHAL_ABI_CALL0 1
-
-#endif /* !XTENSA_CONFIG_H */
diff --git a/include/xtensa-isa-internal.h b/include/xtensa-isa-internal.h
deleted file mode 100644
index 6c727366b..000000000
--- a/include/xtensa-isa-internal.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Internal definitions for configurable Xtensa ISA support.
- Copyright 2003, 2004, 2005, 2008, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
- USA. */
-
-#ifndef XTENSA_ISA_INTERNAL_H
-#define XTENSA_ISA_INTERNAL_H
-
-/* Flags. */
-
-#define XTENSA_OPERAND_IS_REGISTER 0x00000001
-#define XTENSA_OPERAND_IS_PCRELATIVE 0x00000002
-#define XTENSA_OPERAND_IS_INVISIBLE 0x00000004
-#define XTENSA_OPERAND_IS_UNKNOWN 0x00000008
-
-#define XTENSA_OPCODE_IS_BRANCH 0x00000001
-#define XTENSA_OPCODE_IS_JUMP 0x00000002
-#define XTENSA_OPCODE_IS_LOOP 0x00000004
-#define XTENSA_OPCODE_IS_CALL 0x00000008
-
-#define XTENSA_STATE_IS_EXPORTED 0x00000001
-#define XTENSA_STATE_IS_SHARED_OR 0x00000002
-
-#define XTENSA_INTERFACE_HAS_SIDE_EFFECT 0x00000001
-
-/* Function pointer typedefs */
-typedef void (*xtensa_format_encode_fn) (xtensa_insnbuf);
-typedef void (*xtensa_get_slot_fn) (const xtensa_insnbuf, xtensa_insnbuf);
-typedef void (*xtensa_set_slot_fn) (xtensa_insnbuf, const xtensa_insnbuf);
-typedef int (*xtensa_opcode_decode_fn) (const xtensa_insnbuf);
-typedef uint32 (*xtensa_get_field_fn) (const xtensa_insnbuf);
-typedef void (*xtensa_set_field_fn) (xtensa_insnbuf, uint32);
-typedef int (*xtensa_immed_decode_fn) (uint32 *);
-typedef int (*xtensa_immed_encode_fn) (uint32 *);
-typedef int (*xtensa_do_reloc_fn) (uint32 *, uint32);
-typedef int (*xtensa_undo_reloc_fn) (uint32 *, uint32);
-typedef void (*xtensa_opcode_encode_fn) (xtensa_insnbuf);
-typedef int (*xtensa_format_decode_fn) (const xtensa_insnbuf);
-typedef int (*xtensa_length_decode_fn) (const unsigned char *);
-
-typedef struct xtensa_format_internal_struct
-{
- const char *name; /* Instruction format name. */
- int length; /* Instruction length in bytes. */
- xtensa_format_encode_fn encode_fn;
- int num_slots;
- int *slot_id; /* Array[num_slots] of slot IDs. */
-} xtensa_format_internal;
-
-typedef struct xtensa_slot_internal_struct
-{
- const char *name; /* Not necessarily unique. */
- const char *format;
- int position;
- xtensa_get_slot_fn get_fn;
- xtensa_set_slot_fn set_fn;
- xtensa_get_field_fn *get_field_fns; /* Array[field_id]. */
- xtensa_set_field_fn *set_field_fns; /* Array[field_id]. */
- xtensa_opcode_decode_fn opcode_decode_fn;
- const char *nop_name;
-} xtensa_slot_internal;
-
-typedef struct xtensa_operand_internal_struct
-{
- const char *name;
- int field_id;
- xtensa_regfile regfile; /* Register file. */
- int num_regs; /* Usually 1; 2 for reg pairs, etc. */
- uint32 flags; /* See XTENSA_OPERAND_* flags. */
- xtensa_immed_encode_fn encode; /* Encode the operand value. */
- xtensa_immed_decode_fn decode; /* Decode the value from the field. */
- xtensa_do_reloc_fn do_reloc; /* Perform a PC-relative reloc. */
- xtensa_undo_reloc_fn undo_reloc; /* Undo a PC-relative relocation. */
-} xtensa_operand_internal;
-
-typedef struct xtensa_arg_internal_struct
-{
- union {
- int operand_id; /* For normal operands. */
- xtensa_state state; /* For stateOperands. */
- } u;
- char inout; /* Direction: 'i', 'o', or 'm'. */
-} xtensa_arg_internal;
-
-typedef struct xtensa_iclass_internal_struct
-{
- int num_operands; /* Size of "operands" array. */
- xtensa_arg_internal *operands; /* Array[num_operands]. */
-
- int num_stateOperands; /* Size of "stateOperands" array. */
- xtensa_arg_internal *stateOperands; /* Array[num_stateOperands]. */
-
- int num_interfaceOperands; /* Size of "interfaceOperands". */
- xtensa_interface *interfaceOperands; /* Array[num_interfaceOperands]. */
-} xtensa_iclass_internal;
-
-typedef struct xtensa_opcode_internal_struct
-{
- const char *name; /* Opcode mnemonic. */
- int iclass_id; /* Iclass for this opcode. */
- uint32 flags; /* See XTENSA_OPCODE_* flags. */
- xtensa_opcode_encode_fn *encode_fns; /* Array[slot_id]. */
- int num_funcUnit_uses; /* Number of funcUnit_use entries. */
- xtensa_funcUnit_use *funcUnit_uses; /* Array[num_funcUnit_uses]. */
-} xtensa_opcode_internal;
-
-typedef struct xtensa_regfile_internal_struct
-{
- const char *name; /* Full name of the regfile. */
- const char *shortname; /* Abbreviated name. */
- xtensa_regfile parent; /* View parent (or identity). */
- int num_bits; /* Width of the registers. */
- int num_entries; /* Number of registers. */
-} xtensa_regfile_internal;
-
-typedef struct xtensa_interface_internal_struct
-{
- const char *name; /* Interface name. */
- int num_bits; /* Width of the interface. */
- uint32 flags; /* See XTENSA_INTERFACE_* flags. */
- int class_id; /* Class of related interfaces. */
- char inout; /* "i" or "o". */
-} xtensa_interface_internal;
-
-typedef struct xtensa_funcUnit_internal_struct
-{
- const char *name; /* Functional unit name. */
- int num_copies; /* Number of instances. */
-} xtensa_funcUnit_internal;
-
-typedef struct xtensa_state_internal_struct
-{
- const char *name; /* State name. */
- int num_bits; /* Number of state bits. */
- uint32 flags; /* See XTENSA_STATE_* flags. */
-} xtensa_state_internal;
-
-typedef struct xtensa_sysreg_internal_struct
-{
- const char *name; /* Register name. */
- int number; /* Register number. */
- int is_user; /* Non-zero if a "user register". */
-} xtensa_sysreg_internal;
-
-typedef struct xtensa_lookup_entry_struct
-{
- const char *key;
- union
- {
- xtensa_opcode opcode; /* Internal opcode number. */
- xtensa_sysreg sysreg; /* Internal sysreg number. */
- xtensa_state state; /* Internal state number. */
- xtensa_interface intf; /* Internal interface number. */
- xtensa_funcUnit fun; /* Internal funcUnit number. */
- } u;
-} xtensa_lookup_entry;
-
-typedef struct xtensa_isa_internal_struct
-{
- int is_big_endian; /* Endianness. */
- int insn_size; /* Maximum length in bytes. */
- int insnbuf_size; /* Number of insnbuf_words. */
-
- int num_formats;
- xtensa_format_internal *formats;
- xtensa_format_decode_fn format_decode_fn;
- xtensa_length_decode_fn length_decode_fn;
-
- int num_slots;
- xtensa_slot_internal *slots;
-
- int num_fields;
-
- int num_operands;
- xtensa_operand_internal *operands;
-
- int num_iclasses;
- xtensa_iclass_internal *iclasses;
-
- int num_opcodes;
- xtensa_opcode_internal *opcodes;
- xtensa_lookup_entry *opname_lookup_table;
-
- int num_regfiles;
- xtensa_regfile_internal *regfiles;
-
- int num_states;
- xtensa_state_internal *states;
- xtensa_lookup_entry *state_lookup_table;
-
- int num_sysregs;
- xtensa_sysreg_internal *sysregs;
- xtensa_lookup_entry *sysreg_lookup_table;
-
- /* The current Xtensa ISA only supports 256 of each kind of sysreg so
- we can get away with implementing lookups with tables indexed by
- the register numbers. If we ever allow larger sysreg numbers, this
- may have to be reimplemented. The first entry in the following
- arrays corresponds to "special" registers and the second to "user"
- registers. */
- int max_sysreg_num[2];
- xtensa_sysreg *sysreg_table[2];
-
- int num_interfaces;
- xtensa_interface_internal *interfaces;
- xtensa_lookup_entry *interface_lookup_table;
-
- int num_funcUnits;
- xtensa_funcUnit_internal *funcUnits;
- xtensa_lookup_entry *funcUnit_lookup_table;
-
-} xtensa_isa_internal;
-
-extern int xtensa_isa_name_compare (const void *, const void *);
-
-extern xtensa_isa_status xtisa_errno;
-extern char xtisa_error_msg[];
-
-#endif /* !XTENSA_ISA_INTERNAL_H */
diff --git a/include/xtensa-isa.h b/include/xtensa-isa.h
deleted file mode 100644
index c3c740da4..000000000
--- a/include/xtensa-isa.h
+++ /dev/null
@@ -1,813 +0,0 @@
-/* Interface definition for configurable Xtensa ISA support.
- Copyright 2003, 2004, 2005, 2006, 2008, 2010 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
- USA. */
-
-#ifndef XTENSA_LIBISA_H
-#define XTENSA_LIBISA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Version number: This is intended to help support code that works with
- versions of this library from multiple Xtensa releases. */
-
-#define XTENSA_ISA_VERSION 7000
-
-#ifndef uint32
-#define uint32 unsigned int
-#endif
-
-/* This file defines the interface to the Xtensa ISA library. This
- library contains most of the ISA-specific information for a
- particular Xtensa processor. For example, the set of valid
- instructions, their opcode encodings and operand fields are all
- included here.
-
- This interface basically defines a number of abstract data types.
-
- . an instruction buffer - for holding the raw instruction bits
- . ISA info - information about the ISA as a whole
- . instruction formats - instruction size and slot structure
- . opcodes - information about individual instructions
- . operands - information about register and immediate instruction operands
- . stateOperands - information about processor state instruction operands
- . interfaceOperands - information about interface instruction operands
- . register files - register file information
- . processor states - internal processor state information
- . system registers - "special registers" and "user registers"
- . interfaces - TIE interfaces that are external to the processor
- . functional units - TIE shared functions
-
- The interface defines a set of functions to access each data type.
- With the exception of the instruction buffer, the internal
- representations of the data structures are hidden. All accesses must
- be made through the functions defined here. */
-
-typedef struct xtensa_isa_opaque { int unused; } *xtensa_isa;
-
-
-/* Most of the Xtensa ISA entities (e.g., opcodes, regfiles, etc.) are
- represented here using sequential integers beginning with 0. The
- specific values are only fixed for a particular instantiation of an
- xtensa_isa structure, so these values should only be used
- internally. */
-
-typedef int xtensa_opcode;
-typedef int xtensa_format;
-typedef int xtensa_regfile;
-typedef int xtensa_state;
-typedef int xtensa_sysreg;
-typedef int xtensa_interface;
-typedef int xtensa_funcUnit;
-
-
-/* Define a unique value for undefined items. */
-
-#define XTENSA_UNDEFINED -1
-
-
-/* Overview of using this interface to decode/encode instructions:
-
- Each Xtensa instruction is associated with a particular instruction
- format, where the format defines a fixed number of slots for
- operations. The formats for the core Xtensa ISA have only one slot,
- but FLIX instructions may have multiple slots. Within each slot,
- there is a single opcode and some number of associated operands.
-
- The encoding and decoding functions operate on instruction buffers,
- not on the raw bytes of the instructions. The same instruction
- buffer data structure is used for both entire instructions and
- individual slots in those instructions -- the contents of a slot need
- to be extracted from or inserted into the buffer for the instruction
- as a whole.
-
- Decoding an instruction involves first finding the format, which
- identifies the number of slots, and then decoding each slot
- separately. A slot is decoded by finding the opcode and then using
- the opcode to determine how many operands there are. For example:
-
- xtensa_insnbuf_from_chars
- xtensa_format_decode
- for each slot {
- xtensa_format_get_slot
- xtensa_opcode_decode
- for each operand {
- xtensa_operand_get_field
- xtensa_operand_decode
- }
- }
-
- Encoding an instruction is roughly the same procedure in reverse:
-
- xtensa_format_encode
- for each slot {
- xtensa_opcode_encode
- for each operand {
- xtensa_operand_encode
- xtensa_operand_set_field
- }
- xtensa_format_set_slot
- }
- xtensa_insnbuf_to_chars
-*/
-
-
-/* Error handling. */
-
-/* Error codes. The code for the most recent error condition can be
- retrieved with the "errno" function. For any result other than
- xtensa_isa_ok, an error message containing additional information
- about the problem can be retrieved using the "error_msg" function.
- The error messages are stored in an internal buffer, which should
- not be freed and may be overwritten by subsequent operations. */
-
-typedef enum xtensa_isa_status_enum
-{
- xtensa_isa_ok = 0,
- xtensa_isa_bad_format,
- xtensa_isa_bad_slot,
- xtensa_isa_bad_opcode,
- xtensa_isa_bad_operand,
- xtensa_isa_bad_field,
- xtensa_isa_bad_iclass,
- xtensa_isa_bad_regfile,
- xtensa_isa_bad_sysreg,
- xtensa_isa_bad_state,
- xtensa_isa_bad_interface,
- xtensa_isa_bad_funcUnit,
- xtensa_isa_wrong_slot,
- xtensa_isa_no_field,
- xtensa_isa_out_of_memory,
- xtensa_isa_buffer_overflow,
- xtensa_isa_internal_error,
- xtensa_isa_bad_value
-} xtensa_isa_status;
-
-extern xtensa_isa_status
-xtensa_isa_errno (xtensa_isa isa);
-
-extern char *
-xtensa_isa_error_msg (xtensa_isa isa);
-
-
-
-/* Instruction buffers. */
-
-typedef uint32 xtensa_insnbuf_word;
-typedef xtensa_insnbuf_word *xtensa_insnbuf;
-
-
-/* Get the size in "insnbuf_words" of the xtensa_insnbuf array. */
-
-extern int
-xtensa_insnbuf_size (xtensa_isa isa);
-
-
-/* Allocate an xtensa_insnbuf of the right size. */
-
-extern xtensa_insnbuf
-xtensa_insnbuf_alloc (xtensa_isa isa);
-
-
-/* Release an xtensa_insnbuf. */
-
-extern void
-xtensa_insnbuf_free (xtensa_isa isa, xtensa_insnbuf buf);
-
-
-/* Conversion between raw memory (char arrays) and our internal
- instruction representation. This is complicated by the Xtensa ISA's
- variable instruction lengths. When converting to chars, the buffer
- must contain a valid instruction so we know how many bytes to copy;
- thus, the "to_chars" function returns the number of bytes copied or
- XTENSA_UNDEFINED on error. The "from_chars" function first reads the
- minimal number of bytes required to decode the instruction length and
- then proceeds to copy the entire instruction into the buffer; if the
- memory does not contain a valid instruction, it copies the maximum
- number of bytes required for the longest Xtensa instruction. The
- "num_chars" argument may be used to limit the number of bytes that
- can be read or written. Otherwise, if "num_chars" is zero, the
- functions may read or write past the end of the code. */
-
-extern int
-xtensa_insnbuf_to_chars (xtensa_isa isa, const xtensa_insnbuf insn,
- unsigned char *cp, int num_chars);
-
-extern void
-xtensa_insnbuf_from_chars (xtensa_isa isa, xtensa_insnbuf insn,
- const unsigned char *cp, int num_chars);
-
-
-
-/* ISA information. */
-
-/* Initialize the ISA information. */
-
-extern xtensa_isa
-xtensa_isa_init (xtensa_isa_status *errno_p, char **error_msg_p);
-
-
-/* Deallocate an xtensa_isa structure. */
-
-extern void
-xtensa_isa_free (xtensa_isa isa);
-
-
-/* Get the maximum instruction size in bytes. */
-
-extern int
-xtensa_isa_maxlength (xtensa_isa isa);
-
-
-/* Decode the length in bytes of an instruction in raw memory (not an
- insnbuf). This function reads only the minimal number of bytes
- required to decode the instruction length. Returns
- XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_isa_length_from_chars (xtensa_isa isa, const unsigned char *cp);
-
-
-/* Get the number of stages in the processor's pipeline. The pipeline
- stage values returned by other functions in this library will range
- from 0 to N-1, where N is the value returned by this function.
- Note that the stage numbers used here may not correspond to the
- actual processor hardware, e.g., the hardware may have additional
- stages before stage 0. Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_isa_num_pipe_stages (xtensa_isa isa);
-
-
-/* Get the number of various entities that are defined for this processor. */
-
-extern int
-xtensa_isa_num_formats (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_opcodes (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_regfiles (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_states (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_sysregs (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_interfaces (xtensa_isa isa);
-
-extern int
-xtensa_isa_num_funcUnits (xtensa_isa isa);
-
-
-
-/* Instruction formats. */
-
-/* Get the name of a format. Returns null on error. */
-
-extern const char *
-xtensa_format_name (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Given a format name, return the format number. Returns
- XTENSA_UNDEFINED if the name is not a valid format. */
-
-extern xtensa_format
-xtensa_format_lookup (xtensa_isa isa, const char *fmtname);
-
-
-/* Decode the instruction format from a binary instruction buffer.
- Returns XTENSA_UNDEFINED if the format is not recognized. */
-
-extern xtensa_format
-xtensa_format_decode (xtensa_isa isa, const xtensa_insnbuf insn);
-
-
-/* Set the instruction format field(s) in a binary instruction buffer.
- All the other fields are set to zero. Returns non-zero on error. */
-
-extern int
-xtensa_format_encode (xtensa_isa isa, xtensa_format fmt, xtensa_insnbuf insn);
-
-
-/* Find the length (in bytes) of an instruction. Returns
- XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_format_length (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Get the number of slots in an instruction. Returns XTENSA_UNDEFINED
- on error. */
-
-extern int
-xtensa_format_num_slots (xtensa_isa isa, xtensa_format fmt);
-
-
-/* Get the opcode for a no-op in a particular slot.
- Returns XTENSA_UNDEFINED on error. */
-
-extern xtensa_opcode
-xtensa_format_slot_nop_opcode (xtensa_isa isa, xtensa_format fmt, int slot);
-
-
-/* Get the bits for a specified slot out of an insnbuf for the
- instruction as a whole and put them into an insnbuf for that one
- slot, and do the opposite to set a slot. Return non-zero on error. */
-
-extern int
-xtensa_format_get_slot (xtensa_isa isa, xtensa_format fmt, int slot,
- const xtensa_insnbuf insn, xtensa_insnbuf slotbuf);
-
-extern int
-xtensa_format_set_slot (xtensa_isa isa, xtensa_format fmt, int slot,
- xtensa_insnbuf insn, const xtensa_insnbuf slotbuf);
-
-
-
-/* Opcode information. */
-
-/* Translate a mnemonic name to an opcode. Returns XTENSA_UNDEFINED if
- the name is not a valid opcode mnemonic. */
-
-extern xtensa_opcode
-xtensa_opcode_lookup (xtensa_isa isa, const char *opname);
-
-
-/* Decode the opcode for one instruction slot from a binary instruction
- buffer. Returns the opcode or XTENSA_UNDEFINED if the opcode is
- illegal. */
-
-extern xtensa_opcode
-xtensa_opcode_decode (xtensa_isa isa, xtensa_format fmt, int slot,
- const xtensa_insnbuf slotbuf);
-
-
-/* Set the opcode field(s) for an instruction slot. All other fields
- in the slot are set to zero. Returns non-zero if the opcode cannot
- be encoded. */
-
-extern int
-xtensa_opcode_encode (xtensa_isa isa, xtensa_format fmt, int slot,
- xtensa_insnbuf slotbuf, xtensa_opcode opc);
-
-
-/* Get the mnemonic name for an opcode. Returns null on error. */
-
-extern const char *
-xtensa_opcode_name (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Check various properties of opcodes. These functions return 0 if
- the condition is false, 1 if the condition is true, and
- XTENSA_UNDEFINED on error. The instructions are classified as
- follows:
-
- branch: conditional branch; may fall through to next instruction (B*)
- jump: unconditional branch (J, JX, RET*, RF*)
- loop: zero-overhead loop (LOOP*)
- call: unconditional call; control returns to next instruction (CALL*)
-
- For the opcodes that affect control flow in some way, the branch
- target may be specified by an immediate operand or it may be an
- address stored in a register. You can distinguish these by
- checking if the instruction has a PC-relative immediate
- operand. */
-
-extern int
-xtensa_opcode_is_branch (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_jump (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_loop (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_is_call (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Find the number of ordinary operands, state operands, and interface
- operands for an instruction. These return XTENSA_UNDEFINED on
- error. */
-
-extern int
-xtensa_opcode_num_operands (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_num_stateOperands (xtensa_isa isa, xtensa_opcode opc);
-
-extern int
-xtensa_opcode_num_interfaceOperands (xtensa_isa isa, xtensa_opcode opc);
-
-
-/* Get functional unit usage requirements for an opcode. Each "use"
- is identified by a <functional unit, pipeline stage> pair. The
- "num_funcUnit_uses" function returns the number of these "uses" or
- XTENSA_UNDEFINED on error. The "funcUnit_use" function returns
- a pointer to a "use" pair or null on error. */
-
-typedef struct xtensa_funcUnit_use_struct
-{
- xtensa_funcUnit unit;
- int stage;
-} xtensa_funcUnit_use;
-
-extern int
-xtensa_opcode_num_funcUnit_uses (xtensa_isa isa, xtensa_opcode opc);
-
-extern xtensa_funcUnit_use *
-xtensa_opcode_funcUnit_use (xtensa_isa isa, xtensa_opcode opc, int u);
-
-
-
-/* Operand information. */
-
-/* Get the name of an operand. Returns null on error. */
-
-extern const char *
-xtensa_operand_name (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Some operands are "invisible", i.e., not explicitly specified in
- assembly language. When assembling an instruction, you need not set
- the values of invisible operands, since they are either hardwired or
- derived from other field values. The values of invisible operands
- can be examined in the same way as other operands, but remember that
- an invisible operand may get its value from another visible one, so
- the entire instruction must be available before examining the
- invisible operand values. This function returns 1 if an operand is
- visible, 0 if it is invisible, or XTENSA_UNDEFINED on error. Note
- that whether an operand is visible is orthogonal to whether it is
- "implicit", i.e., whether it is encoded in a field in the
- instruction. */
-
-extern int
-xtensa_operand_is_visible (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Check if an operand is an input ('i'), output ('o'), or inout ('m')
- operand. Note: The output operand of a conditional assignment
- (e.g., movnez) appears here as an inout ('m') even if it is declared
- in the TIE code as an output ('o'); this allows the compiler to
- properly handle register allocation for conditional assignments.
- Returns 0 on error. */
-
-extern char
-xtensa_operand_inout (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Get and set the raw (encoded) value of the field for the specified
- operand. The "set" function does not check if the value fits in the
- field; that is done by the "encode" function below. Both of these
- functions return non-zero on error, e.g., if the field is not defined
- for the specified slot. */
-
-extern int
-xtensa_operand_get_field (xtensa_isa isa, xtensa_opcode opc, int opnd,
- xtensa_format fmt, int slot,
- const xtensa_insnbuf slotbuf, uint32 *valp);
-
-extern int
-xtensa_operand_set_field (xtensa_isa isa, xtensa_opcode opc, int opnd,
- xtensa_format fmt, int slot,
- xtensa_insnbuf slotbuf, uint32 val);
-
-
-/* Encode and decode operands. The raw bits in the operand field may
- be encoded in a variety of different ways. These functions hide
- the details of that encoding. The result values are returned through
- the argument pointer. The return value is non-zero on error. */
-
-extern int
-xtensa_operand_encode (xtensa_isa isa, xtensa_opcode opc, int opnd,
- uint32 *valp);
-
-extern int
-xtensa_operand_decode (xtensa_isa isa, xtensa_opcode opc, int opnd,
- uint32 *valp);
-
-
-/* An operand may be either a register operand or an immediate of some
- sort (e.g., PC-relative or not). The "is_register" function returns
- 0 if the operand is an immediate, 1 if it is a register, and
- XTENSA_UNDEFINED on error. The "regfile" function returns the
- regfile for a register operand, or XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_operand_is_register (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-extern xtensa_regfile
-xtensa_operand_regfile (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Register operands may span multiple consecutive registers, e.g., a
- 64-bit data type may occupy two 32-bit registers. Only the first
- register is encoded in the operand field. This function specifies
- the number of consecutive registers occupied by this operand. For
- non-register operands, the return value is undefined. Returns
- XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_operand_num_regs (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Some register operands do not completely identify the register being
- accessed. For example, the operand value may be added to an internal
- state value. By definition, this implies that the corresponding
- regfile is not allocatable. Unknown registers should generally be
- treated with worst-case assumptions. The function returns 0 if the
- register value is unknown, 1 if known, and XTENSA_UNDEFINED on
- error. */
-
-extern int
-xtensa_operand_is_known_reg (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* Check if an immediate operand is PC-relative. Returns 0 for register
- operands and non-PC-relative immediates, 1 for PC-relative
- immediates, and XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_operand_is_PCrelative (xtensa_isa isa, xtensa_opcode opc, int opnd);
-
-
-/* For PC-relative offset operands, the interpretation of the offset may
- vary between opcodes, e.g., is it relative to the current PC or that
- of the next instruction? The following functions are defined to
- perform PC-relative relocations and to undo them (as in the
- disassembler). The "do_reloc" function takes the desired address
- value and the PC of the current instruction and sets the value to the
- corresponding PC-relative offset (which can then be encoded and
- stored into the operand field). The "undo_reloc" function takes the
- unencoded offset value and the current PC and sets the value to the
- appropriate address. The return values are non-zero on error. Note
- that these functions do not replace the encode/decode functions; the
- operands must be encoded/decoded separately and the encode functions
- are responsible for detecting invalid operand values. */
-
-extern int
-xtensa_operand_do_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd,
- uint32 *valp, uint32 pc);
-
-extern int
-xtensa_operand_undo_reloc (xtensa_isa isa, xtensa_opcode opc, int opnd,
- uint32 *valp, uint32 pc);
-
-
-
-/* State Operands. */
-
-/* Get the state accessed by a state operand. Returns XTENSA_UNDEFINED
- on error. */
-
-extern xtensa_state
-xtensa_stateOperand_state (xtensa_isa isa, xtensa_opcode opc, int stOp);
-
-
-/* Check if a state operand is an input ('i'), output ('o'), or inout
- ('m') operand. Returns 0 on error. */
-
-extern char
-xtensa_stateOperand_inout (xtensa_isa isa, xtensa_opcode opc, int stOp);
-
-
-
-/* Interface Operands. */
-
-/* Get the external interface accessed by an interface operand.
- Returns XTENSA_UNDEFINED on error. */
-
-extern xtensa_interface
-xtensa_interfaceOperand_interface (xtensa_isa isa, xtensa_opcode opc,
- int ifOp);
-
-
-
-/* Register Files. */
-
-/* Regfiles include both "real" regfiles and "views", where a view
- allows a group of adjacent registers in a real "parent" regfile to be
- viewed as a single register. A regfile view has all the same
- properties as its parent except for its (long) name, bit width, number
- of entries, and default ctype. You can use the parent function to
- distinguish these two classes. */
-
-/* Look up a regfile by either its name or its abbreviated "short name".
- Returns XTENSA_UNDEFINED on error. The "lookup_shortname" function
- ignores "view" regfiles since they always have the same shortname as
- their parents. */
-
-extern xtensa_regfile
-xtensa_regfile_lookup (xtensa_isa isa, const char *name);
-
-extern xtensa_regfile
-xtensa_regfile_lookup_shortname (xtensa_isa isa, const char *shortname);
-
-
-/* Get the name or abbreviated "short name" of a regfile.
- Returns null on error. */
-
-extern const char *
-xtensa_regfile_name (xtensa_isa isa, xtensa_regfile rf);
-
-extern const char *
-xtensa_regfile_shortname (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the parent regfile of a "view" regfile. If the regfile is not a
- view, the result is the same as the input parameter. Returns
- XTENSA_UNDEFINED on error. */
-
-extern xtensa_regfile
-xtensa_regfile_view_parent (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the bit width of a regfile or regfile view.
- Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_regfile_num_bits (xtensa_isa isa, xtensa_regfile rf);
-
-
-/* Get the number of regfile entries. Returns XTENSA_UNDEFINED on
- error. */
-
-extern int
-xtensa_regfile_num_entries (xtensa_isa isa, xtensa_regfile rf);
-
-
-
-/* Processor States. */
-
-/* Look up a state by name. Returns XTENSA_UNDEFINED on error. */
-
-extern xtensa_state
-xtensa_state_lookup (xtensa_isa isa, const char *name);
-
-
-/* Get the name for a processor state. Returns null on error. */
-
-extern const char *
-xtensa_state_name (xtensa_isa isa, xtensa_state st);
-
-
-/* Get the bit width for a processor state.
- Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_state_num_bits (xtensa_isa isa, xtensa_state st);
-
-
-/* Check if a state is exported from the processor core. Returns 0 if
- the condition is false, 1 if the condition is true, and
- XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_state_is_exported (xtensa_isa isa, xtensa_state st);
-
-
-/* Check for a "shared_or" state. Returns 0 if the condition is false,
- 1 if the condition is true, and XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_state_is_shared_or (xtensa_isa isa, xtensa_state st);
-
-
-
-/* Sysregs ("special registers" and "user registers"). */
-
-/* Look up a register by its number and whether it is a "user register"
- or a "special register". Returns XTENSA_UNDEFINED if the sysreg does
- not exist. */
-
-extern xtensa_sysreg
-xtensa_sysreg_lookup (xtensa_isa isa, int num, int is_user);
-
-
-/* Check if there exists a sysreg with a given name.
- If not, this function returns XTENSA_UNDEFINED. */
-
-extern xtensa_sysreg
-xtensa_sysreg_lookup_name (xtensa_isa isa, const char *name);
-
-
-/* Get the name of a sysreg. Returns null on error. */
-
-extern const char *
-xtensa_sysreg_name (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-/* Get the register number. Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_sysreg_number (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-/* Check if a sysreg is a "special register" or a "user register".
- Returns 0 for special registers, 1 for user registers and
- XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_sysreg_is_user (xtensa_isa isa, xtensa_sysreg sysreg);
-
-
-
-/* Interfaces. */
-
-/* Find an interface by name. The return value is XTENSA_UNDEFINED if
- the specified interface is not found. */
-
-extern xtensa_interface
-xtensa_interface_lookup (xtensa_isa isa, const char *ifname);
-
-
-/* Get the name of an interface. Returns null on error. */
-
-extern const char *
-xtensa_interface_name (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Get the bit width for an interface.
- Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_interface_num_bits (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Check if an interface is an input ('i') or output ('o') with respect
- to the Xtensa processor core. Returns 0 on error. */
-
-extern char
-xtensa_interface_inout (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Check if accessing an interface has potential side effects.
- Currently "data" interfaces have side effects and "control"
- interfaces do not. Returns 1 if there are side effects, 0 if not,
- and XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf);
-
-
-/* Some interfaces may be related such that accessing one interface
- has side effects on a set of related interfaces. The interfaces
- are partitioned into equivalence classes of related interfaces, and
- each class is assigned a unique identifier number. This function
- returns the class identifier for an interface, or XTENSA_UNDEFINED
- on error. These identifiers can be compared to determine if two
- interfaces are related; the specific values of the identifiers have
- no particular meaning otherwise. */
-
-extern int
-xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf);
-
-
-
-/* Functional Units. */
-
-/* Find a functional unit by name. The return value is XTENSA_UNDEFINED if
- the specified unit is not found. */
-
-extern xtensa_funcUnit
-xtensa_funcUnit_lookup (xtensa_isa isa, const char *fname);
-
-
-/* Get the name of a functional unit. Returns null on error. */
-
-extern const char *
-xtensa_funcUnit_name (xtensa_isa isa, xtensa_funcUnit fun);
-
-
-/* Functional units may be replicated. See how many instances of a
- particular function unit exist. Returns XTENSA_UNDEFINED on error. */
-
-extern int
-xtensa_funcUnit_num_copies (xtensa_isa isa, xtensa_funcUnit fun);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* XTENSA_LIBISA_H */
diff --git a/texinfo/texinfo.tex b/texinfo/texinfo.tex
deleted file mode 100644
index 23a30bcfe..000000000
--- a/texinfo/texinfo.tex
+++ /dev/null
@@ -1,9291 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{2009-03-28.05}
-%
-% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009 Free Software Foundation, Inc.
-%
-% This texinfo.tex 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 3 of the
-% License, or (at your option) any later version.
-%
-% This texinfo.tex file 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, see <http://www.gnu.org/licenses/>.
-%
-% As a special exception, when this file is read by TeX when processing
-% a Texinfo source document, you may use the result without
-% restriction. (This has been our intent since Texinfo was invented.)
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
-% ftp://tug.org/tex/texinfo.tex
-% (and all CTAN mirrors, see http://www.ctan.org).
-% The texinfo.tex in any given distribution could well be out
-% of date, so if that's what you're using, please check.
-%
-% Send bug reports to bug-texinfo@gnu.org. Please include including a
-% complete document in each bug report with which we can reproduce the
-% problem. Patches are, of course, greatly appreciated.
-%
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution. For a simple
-% manual foo.texi, however, you can get away with this:
-% tex foo.texi
-% texindex foo.??
-% tex foo.texi
-% tex foo.texi
-% dvips foo.dvi -o # or whatever; this makes foo.ps.
-% The extra TeX runs get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-%
-% It is possible to adapt texinfo.tex for other languages, to some
-% extent. You can get the existing language-specific files from the
-% full Texinfo distribution.
-%
-% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
-
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
- \catcode`+=\active \catcode`\_=\active}
-
-
-\chardef\other=12
-
-% We never want plain's \outer definition of \+ in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-% Save some plain tex macros whose names we will redefine.
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexfootnote=\footnote
-\let\ptexgtr=>
-\let\ptexhat=^
-\let\ptexi=\i
-\let\ptexindent=\indent
-\let\ptexinsert=\insert
-\let\ptexlbrace=\{
-\let\ptexless=<
-\let\ptexnewwrite\newwrite
-\let\ptexnoindent=\noindent
-\let\ptexplus=+
-\let\ptexrbrace=\}
-\let\ptexslash=\/
-\let\ptexstar=\*
-\let\ptext=\t
-\let\ptextop=\top
-{\catcode`\'=\active
-\global\let\ptexquoteright'}% Math-mode def from plain.tex.
-\let\ptexraggedright=\raggedright
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Pre-3.0.
-\else
- \def\linenumber{l.\the\inputlineno:\space}
-\fi
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
-\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
-\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
-\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
-\ifx\putwordof\undefined \gdef\putwordof{of}\fi
-\ifx\putwordon\undefined \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
-\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
-\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
-%
-\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
-\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
-\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
-\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
-\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
-\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
-\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
-\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
-\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
-\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
-\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
-\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
-%
-\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
-\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
-\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
-\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
-\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-
-% Since the category of space is not known, we have to be careful.
-\chardef\spacecat = 10
-\def\spaceisspace{\catcode`\ =\spacecat}
-
-% sometimes characters are active, so we need control sequences.
-\chardef\colonChar = `\:
-\chardef\commaChar = `\,
-\chardef\dashChar = `\-
-\chardef\dotChar = `\.
-\chardef\exclamChar= `\!
-\chardef\lquoteChar= `\`
-\chardef\questChar = `\?
-\chardef\rquoteChar= `\'
-\chardef\semiChar = `\;
-\chardef\underChar = `\_
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-% The following is used inside several \edef's.
-\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
-
-% Hyphenation fixes.
-\hyphenation{
- Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
- ap-pen-dix bit-map bit-maps
- data-base data-bases eshell fall-ing half-way long-est man-u-script
- man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
- par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
- spell-ing spell-ings
- stand-alone strong-est time-stamp time-stamps which-ever white-space
- wide-spread wrap-around
-}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen\bindingoffset
-\newdimen\normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal. We also make
-% some effort to order the tracing commands to reduce output in the log
-% file; cf. trace.sty in LaTeX.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\def\loggingall{%
- \tracingstats2
- \tracingpages1
- \tracinglostchars2 % 2 gives us more in etex
- \tracingparagraphs1
- \tracingoutput1
- \tracingmacros2
- \tracingrestores1
- \showboxbreadth\maxdimen \showboxdepth\maxdimen
- \ifx\eTeXversion\undefined\else % etex gives us more logging
- \tracingscantokens1
- \tracingifs1
- \tracinggroups1
- \tracingnesting2
- \tracingassigns1
- \fi
- \tracingcommands3 % 3 gives us more in etex
- \errorcontextlines16
-}%
-
-% add check for \lastpenalty to plain's definitions. If the last thing
-% we did was a \nobreak, we don't want to insert more space.
-%
-\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
- \removelastskip\penalty-50\smallskip\fi\fi}
-\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
- \removelastskip\penalty-100\medskip\fi\fi}
-\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
- \removelastskip\penalty-200\bigskip\fi\fi}
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Output a mark which sets \thischapter, \thissection and \thiscolor.
-% We dump everything together because we only have one kind of mark.
-% This works because we only use \botmark / \topmark, not \firstmark.
-%
-% A mark contains a subexpression of the \ifcase ... \fi construct.
-% \get*marks macros below extract the needed part using \ifcase.
-%
-% Another complication is to let the user choose whether \thischapter
-% (\thissection) refers to the chapter (section) in effect at the top
-% of a page, or that at the bottom of a page. The solution is
-% described on page 260 of The TeXbook. It involves outputting two
-% marks for the sectioning macros, one before the section break, and
-% one after. I won't pretend I can describe this better than DEK...
-\def\domark{%
- \toks0=\expandafter{\lastchapterdefs}%
- \toks2=\expandafter{\lastsectiondefs}%
- \toks4=\expandafter{\prevchapterdefs}%
- \toks6=\expandafter{\prevsectiondefs}%
- \toks8=\expandafter{\lastcolordefs}%
- \mark{%
- \the\toks0 \the\toks2
- \noexpand\or \the\toks4 \the\toks6
- \noexpand\else \the\toks8
- }%
-}
-% \topmark doesn't work for the very first chapter (after the title
-% page or the contents), so we use \firstmark there -- this gets us
-% the mark with the chapter defs, unless the user sneaks in, e.g.,
-% @setcolor (or @url, or @link, etc.) between @contents and the very
-% first @chapter.
-\def\gettopheadingmarks{%
- \ifcase0\topmark\fi
- \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
-}
-\def\getbottomheadingmarks{\ifcase1\botmark\fi}
-\def\getcolormarks{\ifcase2\topmark\fi}
-
-% Avoid "undefined control sequence" errors.
-\def\lastchapterdefs{}
-\def\lastsectiondefs{}
-\def\prevchapterdefs{}
-\def\prevsectiondefs{}
-\def\lastcolordefs{}
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- % We don't want .vr (or whatever) entries like this:
- % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
- % "\acronym" won't work when it's read back in;
- % it needs to be
- % {\code {{\tt \backslashcurfont }acronym}
- \shipout\vbox{%
- % Do this early so pdf references go to the beginning of the page.
- \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
- %
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \vskip-\topandbottommargin
- \vtop to0pt{%
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vss}%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingyyy.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 24pt
- \unvbox\footlinebox
- \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \vbox to0pt{\vss
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- }%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \indexdummies
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1\relax \unvbox#1\relax
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg{\parseargusing{}}
-\def\parseargusing#1#2{%
- \def\argtorun{#2}%
- \begingroup
- \obeylines
- \spaceisspace
- #1%
- \parseargline\empty% Insert the \empty token, see \finishparsearg below.
-}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- \argremovecomment #1\comment\ArgTerm%
- }%
-}
-
-% First remove any @comment, then any @c comment.
-\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-
-% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
-%
-% \argremovec might leave us with trailing space, e.g.,
-% @end itemize @c foo
-% This space token undergoes the same procedure and is eventually removed
-% by \finishparsearg.
-%
-\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
-\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
-\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
- \def\temp{#3}%
- \ifx\temp\empty
- % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
- \let\temp\finishparsearg
- \else
- \let\temp\argcheckspaces
- \fi
- % Put the space token in:
- \temp#1 #3\ArgTerm
-}
-
-% If a _delimited_ argument is enclosed in braces, they get stripped; so
-% to get _exactly_ the rest of the line, we had to prevent such situation.
-% We prepended an \empty token at the very beginning and we expand it now,
-% just before passing the control to \argtorun.
-% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
-% either the null string, or it ends with \^^M---thus there is no danger
-% that a pair of braces would be stripped.
-%
-% But first, we have to remove the trailing space token.
-%
-\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
-
-% \parseargdef\foo{...}
-% is roughly equivalent to
-% \def\foo{\parsearg\Xfoo}
-% \def\Xfoo#1{...}
-%
-% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
-% favourite TeX trick. --kasal, 16nov03
-
-\def\parseargdef#1{%
- \expandafter \doparseargdef \csname\string#1\endcsname #1%
-}
-\def\doparseargdef#1#2{%
- \def#2{\parsearg#1}%
- \def#1##1%
-}
-
-% Several utility definitions with active space:
-{
- \obeyspaces
- \gdef\obeyedspace{ }
-
- % Make each space character in the input produce a normal interword
- % space in the output. Don't allow a line break at this space, as this
- % is used only in environments like @example, where each line of input
- % should produce a line of output anyway.
- %
- \gdef\sepspaces{\obeyspaces\let =\tie}
-
- % If an index command is used in an @example environment, any spaces
- % therein should become regular spaces in the raw index file, not the
- % expansion of \tie (\leavevmode \penalty \@M \ ).
- \gdef\unsepspaces{\let =\space}
-}
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-% Define the framework for environments in texinfo.tex. It's used like this:
-%
-% \envdef\foo{...}
-% \def\Efoo{...}
-%
-% It's the responsibility of \envdef to insert \begingroup before the
-% actual body; @end closes the group after calling \Efoo. \envdef also
-% defines \thisenv, so the current environment is known; @end checks
-% whether the environment name matches. The \checkenv macro can also be
-% used to check whether the current environment is the one expected.
-%
-% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
-% are not treated as environments; they don't open a group. (The
-% implementation of @end takes care not to call \endgroup in this
-% special case.)
-
-
-% At run-time, environments start with this:
-\def\startenvironment#1{\begingroup\def\thisenv{#1}}
-% initialize
-\let\thisenv\empty
-
-% ... but they get defined via ``\envdef\foo{...}'':
-\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
-\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
-
-% Check whether we're in the right environment:
-\def\checkenv#1{%
- \def\temp{#1}%
- \ifx\thisenv\temp
- \else
- \badenverr
- \fi
-}
-
-% Environment mismatch, #1 expected:
-\def\badenverr{%
- \errhelp = \EMsimple
- \errmessage{This command can appear only \inenvironment\temp,
- not \inenvironment\thisenv}%
-}
-\def\inenvironment#1{%
- \ifx#1\empty
- out of any environment%
- \else
- in environment \expandafter\string#1%
- \fi
-}
-
-% @end foo executes the definition of \Efoo.
-% But first, it executes a specialized version of \checkenv
-%
-\parseargdef\end{%
- \if 1\csname iscond.#1\endcsname
- \else
- % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
- \expandafter\checkenv\csname#1\endcsname
- \csname E#1\endcsname
- \endgroup
- \fi
-}
-
-\newhelp\EMsimple{Press RETURN to continue.}
-
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce \{ and \} commands for indices,
- % and @{ and @} for the aux/toc files.
- \catcode`\{ = \other \catcode`\} = \other
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\! = 0 \catcode`\\ = \other
- !gdef!lbracecmd[\{]%
- !gdef!rbracecmd[\}]%
- !gdef!lbraceatcmd[@{]%
- !gdef!rbraceatcmd[@}]%
-!endgroup
-
-% @comma{} to avoid , parsing problems.
-\let\comma = ,
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown @ordf @ordm
-% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
-\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
- \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% The \TeX{} logo, as in plain, but resetting the spacing so that a
-% period following counts as ending a sentence. (Idea found in latex.)
-%
-\edef\TeX{\TeX \spacefactor=1000 }
-
-% @LaTeX{} logo. Not quite the same results as the definition in
-% latex.ltx, since we use a different font for the raised A; it's most
-% convenient for us to use an explicitly smaller font, rather than using
-% the \scriptstyle font (since we don't reset \scriptstyle and
-% \scriptscriptstyle).
-%
-\def\LaTeX{%
- L\kern-.36em
- {\setbox0=\hbox{T}%
- \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
- \kern-.15em
- \TeX
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @/ allows a line break.
-\let\/=\allowbreak
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=\endofsentencespacefactor\space}
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=\endofsentencespacefactor\space}
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=\endofsentencespacefactor\space}
-
-% @frenchspacing on|off says whether to put extra space after punctuation.
-%
-\def\onword{on}
-\def\offword{off}
-%
-\parseargdef\frenchspacing{%
- \def\temp{#1}%
- \ifx\temp\onword \plainfrenchspacing
- \else\ifx\temp\offword \plainnonfrenchspacing
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
- \fi\fi
-}
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-% Another complication is that the group might be very large. This can
-% cause the glue on the previous page to be unduly stretched, because it
-% does not have much material. In this case, it's better to add an
-% explicit \vfill so that the extra space is at the bottom. The
-% threshold for doing this is if the group is more than \vfilllimit
-% percent of a page (\vfilllimit can be changed inside of @tex).
-%
-\newbox\groupbox
-\def\vfilllimit{0.7}
-%
-\envdef\group{%
- \ifnum\catcode`\^^M=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- \startsavinginserts
- %
- \setbox\groupbox = \vtop\bgroup
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% The \vtop produces a box with normal height and large depth; thus, TeX puts
-% \baselineskip glue before it, and (when the next line of text is done)
-% \lineskip glue after it. Thus, space below is not quite equal to space
-% above. But it's pretty close.
-\def\Egroup{%
- % To get correct interline space between the last line of the group
- % and the first line afterwards, we have to propagate \prevdepth.
- \endgraf % Not \par, as it may have been set to \lisppar.
- \global\dimen1 = \prevdepth
- \egroup % End the \vtop.
- % \dimen0 is the vertical size of the group's box.
- \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
- % \dimen2 is how much space is left on the page (more or less).
- \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
- % if the group doesn't fit on the current page, and it's a big big
- % group, force a page break.
- \ifdim \dimen0 > \dimen2
- \ifdim \pagetotal < \vfilllimit\pageheight
- \page
- \fi
- \fi
- \box\groupbox
- \prevdepth = \dimen1
- \checkinserts
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-% Old definition--didn't work.
-%\parseargdef\need{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\parseargdef\need{%
- % Ensure vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % If the @need value is less than one line space, it's useless.
- \dimen0 = #1\mil
- \dimen2 = \ht\strutbox
- \advance\dimen2 by \dp\strutbox
- \ifdim\dimen0 > \dimen2
- %
- % Do a \strut just to make the height of this box be normal, so the
- % normal leading is inserted relative to the preceding line.
- % And a page break here is fine.
- \vtop to #1\mil{\strut\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
- \fi
-}
-
-% @br forces paragraph break (and is undocumented).
-
-\let\br = \par
-
-% @page forces the start of a new page.
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
-
-% This defn is used inside nofill environments such as @example.
-\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
- \leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
-% paragraph. For more general purposes, use the \margin insertion
-% class. WHICH is `l' or `r'.
-%
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-%
-\def\doinmargin#1#2{\strut\vadjust{%
- \nobreak
- \kern-\strutdepth
- \vtop to \strutdepth{%
- \baselineskip=\strutdepth
- \vss
- % if you have multiple lines of stuff to put here, you'll need to
- % make the vbox yourself of the appropriate size.
- \ifx#1l%
- \llap{\ignorespaces #2\hskip\inmarginspacing}%
- \else
- \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
- \fi
- \null
- }%
-}}
-\def\inleftmargin{\doinmargin l}
-\def\inrightmargin{\doinmargin r}
-%
-% @inmargin{TEXT [, RIGHT-TEXT]}
-% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
-% else use TEXT for both).
-%
-\def\inmargin#1{\parseinmargin #1,,\finish}
-\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \def\lefttext{#1}% have both texts
- \def\righttext{#2}%
- \else
- \def\lefttext{#1}% have only one text
- \def\righttext{#1}%
- \fi
- %
- \ifodd\pageno
- \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
- \else
- \def\temp{\inleftmargin\lefttext}%
- \fi
- \temp
-}
-
-% @include FILE -- \input text of FILE.
-%
-\def\include{\parseargusing\filenamecatcodes\includezzz}
-\def\includezzz#1{%
- \pushthisfilestack
- \def\thisfile{#1}%
- {%
- \makevalueexpandable % we want to expand any @value in FILE.
- \turnoffactive % and allow special characters in the expansion
- \indexnofonts % Allow `@@' and other weird things in file names.
- \edef\temp{\noexpand\input #1 }%
- %
- % This trickery is to read FILE outside of a group, in case it makes
- % definitions, etc.
- \expandafter
- }\temp
- \popthisfilestack
-}
-\def\filenamecatcodes{%
- \catcode`\\=\other
- \catcode`~=\other
- \catcode`^=\other
- \catcode`_=\other
- \catcode`|=\other
- \catcode`<=\other
- \catcode`>=\other
- \catcode`+=\other
- \catcode`-=\other
- \catcode`\`=\other
- \catcode`\'=\other
-}
-
-\def\pushthisfilestack{%
- \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
-}
-\def\pushthisfilestackX{%
- \expandafter\pushthisfilestackY\thisfile\StackTerm
-}
-\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
- \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
-}
-
-\def\popthisfilestack{\errthisfilestackempty}
-\def\errthisfilestackempty{\errmessage{Internal error:
- the stack of filenames is empty.}}
-
-\def\thisfile{}
-
-% @center line
-% outputs that line, centered.
-%
-\parseargdef\center{%
- \ifhmode
- \let\next\centerH
- \else
- \let\next\centerV
- \fi
- \next{\hfil \ignorespaces#1\unskip \hfil}%
-}
-\def\centerH#1{%
- {%
- \hfil\break
- \advance\hsize by -\leftskip
- \advance\hsize by -\rightskip
- \line{#1}%
- \break
- }%
-}
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
-
-% @sp n outputs n lines of vertical space
-
-\parseargdef\sp{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent NCHARS
-% We'll use ems for NCHARS, close enough.
-% NCHARS can also be the word `asis' or `none'.
-% We cannot feasibly implement @paragraphindent asis, though.
-%
-\def\asisword{asis} % no translation, these are keywords
-\def\noneword{none}
-%
-\parseargdef\paragraphindent{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \defaultparindent = 0pt
- \else
- \defaultparindent = #1em
- \fi
- \fi
- \parindent = \defaultparindent
-}
-
-% @exampleindent NCHARS
-% We'll use ems for NCHARS like @paragraphindent.
-% It seems @exampleindent asis isn't necessary, but
-% I preserve it to make it similar to @paragraphindent.
-\parseargdef\exampleindent{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \lispnarrowing = 0pt
- \else
- \lispnarrowing = #1em
- \fi
- \fi
-}
-
-% @firstparagraphindent WORD
-% If WORD is `none', then suppress indentation of the first paragraph
-% after a section heading. If WORD is `insert', then do indent at such
-% paragraphs.
-%
-% The paragraph indentation is suppressed or not by calling
-% \suppressfirstparagraphindent, which the sectioning commands do.
-% We switch the definition of this back and forth according to WORD.
-% By default, we suppress indentation.
-%
-\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
-\def\insertword{insert}
-%
-\parseargdef\firstparagraphindent{%
- \def\temp{#1}%
- \ifx\temp\noneword
- \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
- \else\ifx\temp\insertword
- \let\suppressfirstparagraphindent = \relax
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @firstparagraphindent option `\temp'}%
- \fi\fi
-}
-
-% Here is how we actually suppress indentation. Redefine \everypar to
-% \kern backwards by \parindent, and then reset itself to empty.
-%
-% We also make \indent itself not actually do anything until the next
-% paragraph.
-%
-\gdef\dosuppressfirstparagraphindent{%
- \gdef\indent{%
- \restorefirstparagraphindent
- \indent
- }%
- \gdef\noindent{%
- \restorefirstparagraphindent
- \noindent
- }%
- \global\everypar = {%
- \kern -\parindent
- \restorefirstparagraphindent
- }%
-}
-
-\gdef\restorefirstparagraphindent{%
- \global \let \indent = \ptexindent
- \global \let \noindent = \ptexnoindent
- \global \everypar = {}%
-}
-
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math outputs its argument in math mode.
-%
-% One complication: _ usually means subscripts, but it could also mean
-% an actual _ character, as in @math{@var{some_variable} + 1}. So make
-% _ active, and distinguish by seeing if the current family is \slfam,
-% which is what @var uses.
-{
- \catcode`\_ = \active
- \gdef\mathunderscore{%
- \catcode`\_=\active
- \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
- }
-}
-% Another complication: we want \\ (and @\) to output a \ character.
-% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
-% this is not advertised and we don't care. Texinfo does not
-% otherwise define @\.
-%
-% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
-\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
-%
-\def\math{%
- \tex
- \mathunderscore
- \let\\ = \mathbackslash
- \mathactive
- % make the texinfo accent commands work in math mode
- \let\"=\ddot
- \let\'=\acute
- \let\==\bar
- \let\^=\hat
- \let\`=\grave
- \let\u=\breve
- \let\v=\check
- \let\~=\tilde
- \let\dotaccent=\dot
- $\finishmath
-}
-\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
-
-% Some active characters (such as <) are spaced differently in math.
-% We have to reset their definitions in case the @math was an argument
-% to a command which sets the catcodes (such as @item or @section).
-%
-{
- \catcode`^ = \active
- \catcode`< = \active
- \catcode`> = \active
- \catcode`+ = \active
- \catcode`' = \active
- \gdef\mathactive{%
- \let^ = \ptexhat
- \let< = \ptexless
- \let> = \ptexgtr
- \let+ = \ptexplus
- \let' = \ptexquoteright
- }
-}
-
-% Some math mode symbols.
-\def\bullet{$\ptexbullet$}
-\def\geq{\ifmmode \ge\else $\ge$\fi}
-\def\leq{\ifmmode \le\else $\le$\fi}
-\def\minus{\ifmmode -\else $-$\fi}
-
-% @dots{} outputs an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in the cm
-% typewriter fonts as three actual period characters; on the other hand,
-% in other typewriter fonts three periods are wider than 1.5em. So do
-% whichever is larger.
-%
-\def\dots{%
- \leavevmode
- \setbox0=\hbox{...}% get width of three periods
- \ifdim\wd0 > 1.5em
- \dimen0 = \wd0
- \else
- \dimen0 = 1.5em
- \fi
- \hbox to \dimen0{%
- \hskip 0pt plus.25fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \dots
- \spacefactor=\endofsentencespacefactor
-}
-
-% @comma{} is so commas can be inserted into text without messing up
-% Texinfo's parsing.
-%
-\let\comma = ,
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \iflinks
- \tryauxfile
- % Open the new aux file. TeX will close it automatically at exit.
- \immediate\openout\auxfile=\jobname.aux
- \fi % \openindices needs to do some work in any case.
- \openindices
- \let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- \openin 1 texinfo.cnf
- \ifeof 1 \else \input texinfo.cnf \fi
- \closein 1
- %
- \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{pdf,}
-% adobe `portable' document format
-\newcount\tempnum
-\newcount\lnkcount
-\newtoks\filename
-\newcount\filenamelength
-\newcount\pgn
-\newtoks\toksA
-\newtoks\toksB
-\newtoks\toksC
-\newtoks\toksD
-\newbox\boxA
-\newcount\countA
-\newif\ifpdf
-\newif\ifpdfmakepagedest
-
-% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
-% can be set). So we test for \relax and 0 as well as \undefined,
-% borrowed from ifpdf.sty.
-\ifx\pdfoutput\undefined
-\else
- \ifx\pdfoutput\relax
- \else
- \ifcase\pdfoutput
- \else
- \pdftrue
- \fi
- \fi
-\fi
-
-% PDF uses PostScript string constants for the names of xref targets,
-% for display in the outlines, and in other places. Thus, we have to
-% double any backslashes. Otherwise, a name like "\node" will be
-% interpreted as a newline (\n), followed by o, d, e. Not good.
-% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
-% (and related messages, the final outcome is that it is up to the TeX
-% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
-
-% double active backslashes.
-%
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslashdouble{%
- @catcode`@\=@active
- @let\=@doublebackslash}
-}
-
-% To handle parens, we must adopt a different approach, since parens are
-% not active characters. hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens, with minor
-% changes for Texinfo. It is included here under the GPL by permission
-% from the author, Heiko Oberdiek.
-%
-% #1 is the tokens to replace.
-% #2 is the replacement.
-% #3 is the control sequence with the string.
-%
-\def\HyPsdSubst#1#2#3{%
- \def\HyPsdReplace##1#1##2\END{%
- ##1%
- \ifx\\##2\\%
- \else
- #2%
- \HyReturnAfterFi{%
- \HyPsdReplace##2\END
- }%
- \fi
- }%
- \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
-}
-\long\def\HyReturnAfterFi#1\fi{\fi#1}
-
-% #1 is a control sequence in which to do the replacements.
-\def\backslashparens#1{%
- \xdef#1{#1}% redefine it as its expansion; the definition is simply
- % \lastnode when called from \setref -> \pdfmkdest.
- \HyPsdSubst{(}{\realbackslash(}{#1}%
- \HyPsdSubst{)}{\realbackslash)}{#1}%
-}
-
-\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
-with PDF output, and none of those formats could be found. (.eps cannot
-be supported due to the design of the PDF format; use regular TeX (DVI
-output) for that.)}
-
-\ifpdf
- %
- % Color manipulation macros based on pdfcolor.tex.
- \def\cmykDarkRed{0.28 1 1 0.35}
- \def\cmykBlack{0 0 0 1}
- %
- % k sets the color for filling (usual text, etc.);
- % K sets the color for stroking (thin rules, e.g., normal _'s).
- \def\pdfsetcolor#1{\pdfliteral{#1 k #1 K}}
- %
- % Set color, and create a mark which defines \thiscolor accordingly,
- % so that \makeheadline knows which color to restore.
- \def\setcolor#1{%
- \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
- \domark
- \pdfsetcolor{#1}%
- }
- %
- \def\maincolor{\cmykBlack}
- \pdfsetcolor{\maincolor}
- \edef\thiscolor{\maincolor}
- \def\lastcolordefs{}
- %
- \def\makefootline{%
- \baselineskip24pt
- \line{\pdfsetcolor{\maincolor}\the\footline}%
- }
- %
- \def\makeheadline{%
- \vbox to 0pt{%
- \vskip-22.5pt
- \line{%
- \vbox to8.5pt{}%
- % Extract \thiscolor definition from the marks.
- \getcolormarks
- % Typeset the headline with \maincolor, then restore the color.
- \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
- }%
- \vss
- }%
- \nointerlineskip
- }
- %
- %
- \pdfcatalog{/PageMode /UseOutlines}
- %
- % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
- \def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
- \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
- %
- % pdftex (and the PDF format) support .png, .jpg, .pdf (among
- % others). Let's try in that order.
- \let\pdfimgext=\empty
- \begingroup
- \openin 1 #1.png \ifeof 1
- \openin 1 #1.jpg \ifeof 1
- \openin 1 #1.jpeg \ifeof 1
- \openin 1 #1.JPG \ifeof 1
- \openin 1 #1.pdf \ifeof 1
- \openin 1 #1.PDF \ifeof 1
- \errhelp = \nopdfimagehelp
- \errmessage{Could not find image file #1 for pdf}%
- \else \gdef\pdfimgext{PDF}%
- \fi
- \else \gdef\pdfimgext{pdf}%
- \fi
- \else \gdef\pdfimgext{JPG}%
- \fi
- \else \gdef\pdfimgext{jpeg}%
- \fi
- \else \gdef\pdfimgext{jpg}%
- \fi
- \else \gdef\pdfimgext{png}%
- \fi
- \closein 1
- \endgroup
- %
- % without \immediate, ancient pdftex seg faults when the same image is
- % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
- \ifnum\pdftexversion < 14
- \immediate\pdfimage
- \else
- \immediate\pdfximage
- \fi
- \ifdim \wd0 >0pt width \imagewidth \fi
- \ifdim \wd2 >0pt height \imageheight \fi
- \ifnum\pdftexversion<13
- #1.\pdfimgext
- \else
- {#1.\pdfimgext}%
- \fi
- \ifnum\pdftexversion < 14 \else
- \pdfrefximage \pdflastximage
- \fi}
- %
- \def\pdfmkdest#1{{%
- % We have to set dummies so commands such as @code, and characters
- % such as \, aren't expanded when present in a section title.
- \indexnofonts
- \turnoffactive
- \activebackslashdouble
- \makevalueexpandable
- \def\pdfdestname{#1}%
- \backslashparens\pdfdestname
- \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
- }}
- %
- % used to mark target names; must be expandable.
- \def\pdfmkpgn#1{#1}
- %
- % by default, use a color that is dark enough to print on paper as
- % nearly black, but still distinguishable for online viewing.
- \def\urlcolor{\cmykDarkRed}
- \def\linkcolor{\cmykDarkRed}
- \def\endlink{\setcolor{\maincolor}\pdfendlink}
- %
- % Adding outlines to PDF; macros for calculating structure of outlines
- % come from Petr Olsak
- \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
- \else \csname#1\endcsname \fi}
- \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
- \advance\tempnum by 1
- \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
- %
- % #1 is the section text, which is what will be displayed in the
- % outline by the pdf viewer. #2 is the pdf expression for the number
- % of subentries (or empty, for subsubsections). #3 is the node text,
- % which might be empty if this toc entry had no corresponding node.
- % #4 is the page number
- %
- \def\dopdfoutline#1#2#3#4{%
- % Generate a link to the node text if that exists; else, use the
- % page number. We could generate a destination for the section
- % text in the case where a section has no node, but it doesn't
- % seem worth the trouble, since most documents are normally structured.
- \def\pdfoutlinedest{#3}%
- \ifx\pdfoutlinedest\empty
- \def\pdfoutlinedest{#4}%
- \else
- % Doubled backslashes in the name.
- {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
- \backslashparens\pdfoutlinedest}%
- \fi
- %
- % Also double the backslashes in the display string.
- {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
- \backslashparens\pdfoutlinetext}%
- %
- \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
- }
- %
- \def\pdfmakeoutlines{%
- \begingroup
- % Thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
- % Read toc silently, to get counts of subentries for \pdfoutline.
- \def\numchapentry##1##2##3##4{%
- \def\thischapnum{##2}%
- \def\thissecnum{0}%
- \def\thissubsecnum{0}%
- }%
- \def\numsecentry##1##2##3##4{%
- \advancenumber{chap\thischapnum}%
- \def\thissecnum{##2}%
- \def\thissubsecnum{0}%
- }%
- \def\numsubsecentry##1##2##3##4{%
- \advancenumber{sec\thissecnum}%
- \def\thissubsecnum{##2}%
- }%
- \def\numsubsubsecentry##1##2##3##4{%
- \advancenumber{subsec\thissubsecnum}%
- }%
- \def\thischapnum{0}%
- \def\thissecnum{0}%
- \def\thissubsecnum{0}%
- %
- % use \def rather than \let here because we redefine \chapentry et
- % al. a second time, below.
- \def\appentry{\numchapentry}%
- \def\appsecentry{\numsecentry}%
- \def\appsubsecentry{\numsubsecentry}%
- \def\appsubsubsecentry{\numsubsubsecentry}%
- \def\unnchapentry{\numchapentry}%
- \def\unnsecentry{\numsecentry}%
- \def\unnsubsecentry{\numsubsecentry}%
- \def\unnsubsubsecentry{\numsubsubsecentry}%
- \readdatafile{toc}%
- %
- % Read toc second time, this time actually producing the outlines.
- % The `-' means take the \expnumber as the absolute number of
- % subentries, which we calculated on our first read of the .toc above.
- %
- % We use the node names as the destinations.
- \def\numchapentry##1##2##3##4{%
- \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
- \def\numsecentry##1##2##3##4{%
- \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
- \def\numsubsecentry##1##2##3##4{%
- \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
- \def\numsubsubsecentry##1##2##3##4{% count is always zero
- \dopdfoutline{##1}{}{##3}{##4}}%
- %
- % PDF outlines are displayed using system fonts, instead of
- % document fonts. Therefore we cannot use special characters,
- % since the encoding is unknown. For example, the eogonek from
- % Latin 2 (0xea) gets translated to a | character. Info from
- % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
- %
- % xx to do this right, we have to translate 8-bit characters to
- % their "best" equivalent, based on the @documentencoding. Right
- % now, I guess we'll just let the pdf reader have its way.
- \indexnofonts
- \setupdatafile
- \catcode`\\=\active \otherbackslash
- \input \tocreadfilename
- \endgroup
- }
- %
- \def\skipspaces#1{\def\PP{#1}\def\D{|}%
- \ifx\PP\D\let\nextsp\relax
- \else\let\nextsp\skipspaces
- \ifx\p\space\else\addtokens{\filename}{\PP}%
- \advance\filenamelength by 1
- \fi
- \fi
- \nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
- \ifnum\pdftexversion < 14
- \let \startlink \pdfannotlink
- \else
- \let \startlink \pdfstartlink
- \fi
- % make a live url in pdf output.
- \def\pdfurl#1{%
- \begingroup
- % it seems we really need yet another set of dummies; have not
- % tried to figure out what each command should do in the context
- % of @url. for now, just make @/ a no-op, that's the only one
- % people have actually reported a problem with.
- %
- \normalturnoffactive
- \def\@{@}%
- \let\/=\empty
- \makevalueexpandable
- % do we want to go so far as to use \indexnofonts instead of just
- % special-casing \var here?
- \def\var##1{##1}%
- %
- \leavevmode\setcolor{\urlcolor}%
- \startlink attr{/Border [0 0 0]}%
- user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
- \endgroup}
- \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
- \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
- \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
- \def\maketoks{%
- \expandafter\poptoks\the\toksA|ENDTOKS|\relax
- \ifx\first0\adn0
- \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
- \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
- \else
- \ifnum0=\countA\else\makelink\fi
- \ifx\first.\let\next=\done\else
- \let\next=\maketoks
- \addtokens{\toksB}{\the\toksD}
- \ifx\first,\addtokens{\toksB}{\space}\fi
- \fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \next}
- \def\makelink{\addtokens{\toksB}%
- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
- \def\pdflink#1{%
- \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
- \setcolor{\linkcolor}#1\endlink}
- \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
-\else
- % non-pdf mode
- \let\pdfmkdest = \gobble
- \let\pdfurl = \gobble
- \let\endlink = \relax
- \let\setcolor = \gobble
- \let\pdfsetcolor = \gobble
- \let\pdfmakeoutlines = \relax
-\fi % \ifx\pdfoutput
-
-
-\message{fonts,}
-
-% Change the current font style to #1, remembering it in \curfontstyle.
-% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
-% italics, not bold italics.
-%
-\def\setfontstyle#1{%
- \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
- \csname ten#1\endcsname % change the current font
-}
-
-% Select #1 fonts with the current style.
-%
-\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
-
-\def\rm{\fam=0 \setfontstyle{rm}}
-\def\it{\fam=\itfam \setfontstyle{it}}
-\def\sl{\fam=\slfam \setfontstyle{sl}}
-\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
-\def\tt{\fam=\ttfam \setfontstyle{tt}}
-
-% Unfortunately, we have to override this for titles and the like, since
-% in those cases "rm" is bold. Sigh.
-\def\rmisbold{\rm\def\curfontstyle{bf}}
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf.
-\newfam\sffam
-\def\sf{\fam=\sffam \setfontstyle{sf}}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this font style.
-\def\ttsl{\setfontstyle{ttsl}}
-
-
-% Default leading.
-\newdimen\textleading \textleading = 13.2pt
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-% can get a sort of poor man's double spacing by redefining this.
-\def\baselinefactor{1}
-%
-\def\setleading#1{%
- \dimen0 = #1\relax
- \normalbaselineskip = \baselinefactor\dimen0
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% PDF CMaps. See also LaTeX's t1.cmap.
-%
-% do nothing with this by default.
-\expandafter\let\csname cmapOT1\endcsname\gobble
-\expandafter\let\csname cmapOT1IT\endcsname\gobble
-\expandafter\let\csname cmapOT1TT\endcsname\gobble
-
-% if we are producing pdf, and we have \pdffontattr, then define cmaps.
-% (\pdffontattr was introduced many years ago, but people still run
-% older pdftex's; it's easy to conditionalize, so we do.)
-\ifpdf \ifx\pdffontattr\undefined \else
- \begingroup
- \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
- \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
-%%DocumentNeededResources: ProcSet (CIDInit)
-%%IncludeResource: ProcSet (CIDInit)
-%%BeginResource: CMap (TeX-OT1-0)
-%%Title: (TeX-OT1-0 TeX OT1 0)
-%%Version: 1.000
-%%EndComments
-/CIDInit /ProcSet findresource begin
-12 dict begin
-begincmap
-/CIDSystemInfo
-<< /Registry (TeX)
-/Ordering (OT1)
-/Supplement 0
->> def
-/CMapName /TeX-OT1-0 def
-/CMapType 2 def
-1 begincodespacerange
-<00> <7F>
-endcodespacerange
-8 beginbfrange
-<00> <01> <0393>
-<09> <0A> <03A8>
-<23> <26> <0023>
-<28> <3B> <0028>
-<3F> <5B> <003F>
-<5D> <5E> <005D>
-<61> <7A> <0061>
-<7B> <7C> <2013>
-endbfrange
-40 beginbfchar
-<02> <0398>
-<03> <039B>
-<04> <039E>
-<05> <03A0>
-<06> <03A3>
-<07> <03D2>
-<08> <03A6>
-<0B> <00660066>
-<0C> <00660069>
-<0D> <0066006C>
-<0E> <006600660069>
-<0F> <00660066006C>
-<10> <0131>
-<11> <0237>
-<12> <0060>
-<13> <00B4>
-<14> <02C7>
-<15> <02D8>
-<16> <00AF>
-<17> <02DA>
-<18> <00B8>
-<19> <00DF>
-<1A> <00E6>
-<1B> <0153>
-<1C> <00F8>
-<1D> <00C6>
-<1E> <0152>
-<1F> <00D8>
-<21> <0021>
-<22> <201D>
-<27> <2019>
-<3C> <00A1>
-<3D> <003D>
-<3E> <00BF>
-<5C> <201C>
-<5F> <02D9>
-<60> <2018>
-<7D> <02DD>
-<7E> <007E>
-<7F> <00A8>
-endbfchar
-endcmap
-CMapName currentdict /CMap defineresource pop
-end
-end
-%%EndResource
-%%EOF
- }\endgroup
- \expandafter\edef\csname cmapOT1\endcsname#1{%
- \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
- }%
-%
-% \cmapOT1IT
- \begingroup
- \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
- \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
-%%DocumentNeededResources: ProcSet (CIDInit)
-%%IncludeResource: ProcSet (CIDInit)
-%%BeginResource: CMap (TeX-OT1IT-0)
-%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
-%%Version: 1.000
-%%EndComments
-/CIDInit /ProcSet findresource begin
-12 dict begin
-begincmap
-/CIDSystemInfo
-<< /Registry (TeX)
-/Ordering (OT1IT)
-/Supplement 0
->> def
-/CMapName /TeX-OT1IT-0 def
-/CMapType 2 def
-1 begincodespacerange
-<00> <7F>
-endcodespacerange
-8 beginbfrange
-<00> <01> <0393>
-<09> <0A> <03A8>
-<25> <26> <0025>
-<28> <3B> <0028>
-<3F> <5B> <003F>
-<5D> <5E> <005D>
-<61> <7A> <0061>
-<7B> <7C> <2013>
-endbfrange
-42 beginbfchar
-<02> <0398>
-<03> <039B>
-<04> <039E>
-<05> <03A0>
-<06> <03A3>
-<07> <03D2>
-<08> <03A6>
-<0B> <00660066>
-<0C> <00660069>
-<0D> <0066006C>
-<0E> <006600660069>
-<0F> <00660066006C>
-<10> <0131>
-<11> <0237>
-<12> <0060>
-<13> <00B4>
-<14> <02C7>
-<15> <02D8>
-<16> <00AF>
-<17> <02DA>
-<18> <00B8>
-<19> <00DF>
-<1A> <00E6>
-<1B> <0153>
-<1C> <00F8>
-<1D> <00C6>
-<1E> <0152>
-<1F> <00D8>
-<21> <0021>
-<22> <201D>
-<23> <0023>
-<24> <00A3>
-<27> <2019>
-<3C> <00A1>
-<3D> <003D>
-<3E> <00BF>
-<5C> <201C>
-<5F> <02D9>
-<60> <2018>
-<7D> <02DD>
-<7E> <007E>
-<7F> <00A8>
-endbfchar
-endcmap
-CMapName currentdict /CMap defineresource pop
-end
-end
-%%EndResource
-%%EOF
- }\endgroup
- \expandafter\edef\csname cmapOT1IT\endcsname#1{%
- \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
- }%
-%
-% \cmapOT1TT
- \begingroup
- \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
- \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
-%%DocumentNeededResources: ProcSet (CIDInit)
-%%IncludeResource: ProcSet (CIDInit)
-%%BeginResource: CMap (TeX-OT1TT-0)
-%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
-%%Version: 1.000
-%%EndComments
-/CIDInit /ProcSet findresource begin
-12 dict begin
-begincmap
-/CIDSystemInfo
-<< /Registry (TeX)
-/Ordering (OT1TT)
-/Supplement 0
->> def
-/CMapName /TeX-OT1TT-0 def
-/CMapType 2 def
-1 begincodespacerange
-<00> <7F>
-endcodespacerange
-5 beginbfrange
-<00> <01> <0393>
-<09> <0A> <03A8>
-<21> <26> <0021>
-<28> <5F> <0028>
-<61> <7E> <0061>
-endbfrange
-32 beginbfchar
-<02> <0398>
-<03> <039B>
-<04> <039E>
-<05> <03A0>
-<06> <03A3>
-<07> <03D2>
-<08> <03A6>
-<0B> <2191>
-<0C> <2193>
-<0D> <0027>
-<0E> <00A1>
-<0F> <00BF>
-<10> <0131>
-<11> <0237>
-<12> <0060>
-<13> <00B4>
-<14> <02C7>
-<15> <02D8>
-<16> <00AF>
-<17> <02DA>
-<18> <00B8>
-<19> <00DF>
-<1A> <00E6>
-<1B> <0153>
-<1C> <00F8>
-<1D> <00C6>
-<1E> <0152>
-<1F> <00D8>
-<20> <2423>
-<27> <2019>
-<60> <2018>
-<7F> <00A8>
-endbfchar
-endcmap
-CMapName currentdict /CMap defineresource pop
-end
-end
-%%EndResource
-%%EOF
- }\endgroup
- \expandafter\edef\csname cmapOT1TT\endcsname#1{%
- \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
- }%
-\fi\fi
-
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
-% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
-% empty to omit).
-\def\setfont#1#2#3#4#5{%
- \font#1=\fontprefix#2#3 scaled #4
- \csname cmap#5\endcsname#1%
-}
-% This is what gets called when #5 of \setfont is empty.
-\let\cmap\gobble
-% emacs-page end of cmaps
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-% Definitions for a main text size of 11pt. This is the default in
-% Texinfo.
-%
-\def\definetextfontsizexi{%
-% Text fonts (11.2pt, magstep1).
-\def\textnominalsize{11pt}
-\edef\mainmagstep{\magstephalf}
-\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
-\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
-\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
-\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
-\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
-\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
-\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-\def\textecsize{1095}
-
-% A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstep1}{OT1}
-\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
-\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
-
-% Fonts for indices, footnotes, small examples (9pt).
-\def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}{OT1}
-\setfont\smalltt\ttshape{9}{1000}{OT1TT}
-\setfont\smallbf\bfshape{10}{900}{OT1}
-\setfont\smallit\itshape{9}{1000}{OT1IT}
-\setfont\smallsl\slshape{9}{1000}{OT1}
-\setfont\smallsf\sfshape{9}{1000}{OT1}
-\setfont\smallsc\scshape{10}{900}{OT1}
-\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-\def\smallecsize{0900}
-
-% Fonts for small examples (8pt).
-\def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}{OT1}
-\setfont\smallertt\ttshape{8}{1000}{OT1TT}
-\setfont\smallerbf\bfshape{10}{800}{OT1}
-\setfont\smallerit\itshape{8}{1000}{OT1IT}
-\setfont\smallersl\slshape{8}{1000}{OT1}
-\setfont\smallersf\sfshape{8}{1000}{OT1}
-\setfont\smallersc\scshape{10}{800}{OT1}
-\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
-\font\smalleri=cmmi8
-\font\smallersy=cmsy8
-\def\smallerecsize{0800}
-
-% Fonts for title page (20.4pt):
-\def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
-\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
-\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
-\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
-\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
-\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\titleecsize{2074}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\def\chapnominalsize{17pt}
-\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
-\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
-\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
-\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
-\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
-\setfont\chapsf\sfbshape{17}{1000}{OT1}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-\def\chapecsize{1728}
-
-% Section fonts (14.4pt).
-\def\secnominalsize{14pt}
-\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
-\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
-\setfont\secsl\slbshape{10}{\magstep2}{OT1}
-\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
-\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
-\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}{OT1}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-\def\sececsize{1440}
-
-% Subsection fonts (13.15pt).
-\def\ssecnominalsize{13pt}
-\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
-\setfont\ssecit\itbshape{10}{1315}{OT1IT}
-\setfont\ssecsl\slbshape{10}{1315}{OT1}
-\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
-\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1315}{OT1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-\def\ssececsize{1200}
-
-% Reduced fonts for @acro in text (10pt).
-\def\reducednominalsize{10pt}
-\setfont\reducedrm\rmshape{10}{1000}{OT1}
-\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
-\setfont\reducedbf\bfshape{10}{1000}{OT1}
-\setfont\reducedit\itshape{10}{1000}{OT1IT}
-\setfont\reducedsl\slshape{10}{1000}{OT1}
-\setfont\reducedsf\sfshape{10}{1000}{OT1}
-\setfont\reducedsc\scshape{10}{1000}{OT1}
-\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
-\font\reducedi=cmmi10
-\font\reducedsy=cmsy10
-\def\reducedecsize{1000}
-
-% reset the current fonts
-\textfonts
-\rm
-} % end of 11pt text font size definitions
-
-
-% Definitions to make the main text be 10pt Computer Modern, with
-% section, chapter, etc., sizes following suit. This is for the GNU
-% Press printing of the Emacs 22 manual. Maybe other manuals in the
-% future. Used with @smallbook, which sets the leading to 12pt.
-%
-\def\definetextfontsizex{%
-% Text fonts (10pt).
-\def\textnominalsize{10pt}
-\edef\mainmagstep{1000}
-\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
-\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
-\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
-\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
-\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
-\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
-\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-\def\textecsize{1000}
-
-% A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
-\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
-\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
-
-% Fonts for indices, footnotes, small examples (9pt).
-\def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}{OT1}
-\setfont\smalltt\ttshape{9}{1000}{OT1TT}
-\setfont\smallbf\bfshape{10}{900}{OT1}
-\setfont\smallit\itshape{9}{1000}{OT1IT}
-\setfont\smallsl\slshape{9}{1000}{OT1}
-\setfont\smallsf\sfshape{9}{1000}{OT1}
-\setfont\smallsc\scshape{10}{900}{OT1}
-\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-\def\smallecsize{0900}
-
-% Fonts for small examples (8pt).
-\def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}{OT1}
-\setfont\smallertt\ttshape{8}{1000}{OT1TT}
-\setfont\smallerbf\bfshape{10}{800}{OT1}
-\setfont\smallerit\itshape{8}{1000}{OT1IT}
-\setfont\smallersl\slshape{8}{1000}{OT1}
-\setfont\smallersf\sfshape{8}{1000}{OT1}
-\setfont\smallersc\scshape{10}{800}{OT1}
-\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
-\font\smalleri=cmmi8
-\font\smallersy=cmsy8
-\def\smallerecsize{0800}
-
-% Fonts for title page (20.4pt):
-\def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
-\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
-\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
-\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
-\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
-\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\titleecsize{2074}
-
-% Chapter fonts (14.4pt).
-\def\chapnominalsize{14pt}
-\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
-\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
-\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
-\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
-\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
-\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
-\let\chapbf\chaprm
-\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
-\font\chapi=cmmi12 scaled \magstep1
-\font\chapsy=cmsy10 scaled \magstep2
-\def\chapecsize{1440}
-
-% Section fonts (12pt).
-\def\secnominalsize{12pt}
-\setfont\secrm\rmbshape{12}{1000}{OT1}
-\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
-\setfont\secsl\slbshape{10}{\magstep1}{OT1}
-\setfont\sectt\ttbshape{12}{1000}{OT1TT}
-\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
-\setfont\secsf\sfbshape{12}{1000}{OT1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep1}{OT1}
-\font\seci=cmmi12
-\font\secsy=cmsy10 scaled \magstep1
-\def\sececsize{1200}
-
-% Subsection fonts (10pt).
-\def\ssecnominalsize{10pt}
-\setfont\ssecrm\rmbshape{10}{1000}{OT1}
-\setfont\ssecit\itbshape{10}{1000}{OT1IT}
-\setfont\ssecsl\slbshape{10}{1000}{OT1}
-\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
-\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
-\setfont\ssecsf\sfbshape{10}{1000}{OT1}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1000}{OT1}
-\font\sseci=cmmi10
-\font\ssecsy=cmsy10
-\def\ssececsize{1000}
-
-% Reduced fonts for @acro in text (9pt).
-\def\reducednominalsize{9pt}
-\setfont\reducedrm\rmshape{9}{1000}{OT1}
-\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
-\setfont\reducedbf\bfshape{10}{900}{OT1}
-\setfont\reducedit\itshape{9}{1000}{OT1IT}
-\setfont\reducedsl\slshape{9}{1000}{OT1}
-\setfont\reducedsf\sfshape{9}{1000}{OT1}
-\setfont\reducedsc\scshape{10}{900}{OT1}
-\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
-\font\reducedi=cmmi9
-\font\reducedsy=cmsy9
-\def\reducedecsize{0900}
-
-% reduce space between paragraphs
-\divide\parskip by 2
-
-% reset the current fonts
-\textfonts
-\rm
-} % end of 10pt text font size definitions
-
-
-% We provide the user-level command
-% @fonttextsize 10
-% (or 11) to redefine the text font size. pt is assumed.
-%
-\def\xword{10}
-\def\xiword{11}
-%
-\parseargdef\fonttextsize{%
- \def\textsizearg{#1}%
- \wlog{doing @fonttextsize \textsizearg}%
- %
- % Set \globaldefs so that documents can use this inside @tex, since
- % makeinfo 4.8 does not support it, but we need it nonetheless.
- %
- \begingroup \globaldefs=1
- \ifx\textsizearg\xword \definetextfontsizex
- \else \ifx\textsizearg\xiword \definetextfontsizexi
- \else
- \errhelp=\EMsimple
- \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
- \fi\fi
- \endgroup
-}
-
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts except
-% in the main text, we don't bother to reset \scriptfont and
-% \scriptscriptfont (which would also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
- \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
- \textfont\ttfam=\tentt \textfont\sffam=\tensf
-}
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this because \STYLE needs to also set the
-% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
-% \tenSTYLE to set the current font.
-%
-% Each font-changing command also sets the names \lsize (one size lower)
-% and \lllsize (three sizes lower). These relative commands are used in
-% the LaTeX logo and acronyms.
-%
-% This all needs generalizing, badly.
-%
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
- \let\tenttsl=\textttsl
- \def\curfontsize{text}%
- \def\lsize{reduced}\def\lllsize{smaller}%
- \resetmathfonts \setleading{\textleading}}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \def\curfontsize{title}%
- \def\lsize{chap}\def\lllsize{subsec}%
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rmisbold #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
- \let\tenttsl=\chapttsl
- \def\curfontsize{chap}%
- \def\lsize{sec}\def\lllsize{text}%
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
- \let\tenttsl=\secttsl
- \def\curfontsize{sec}%
- \def\lsize{subsec}\def\lllsize{reduced}%
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
- \let\tenttsl=\ssecttsl
- \def\curfontsize{ssec}%
- \def\lsize{text}\def\lllsize{small}%
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts
-\def\reducedfonts{%
- \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
- \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
- \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
- \let\tenttsl=\reducedttsl
- \def\curfontsize{reduced}%
- \def\lsize{small}\def\lllsize{smaller}%
- \resetmathfonts \setleading{10.5pt}}
-\def\smallfonts{%
- \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
- \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
- \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
- \let\tenttsl=\smallttsl
- \def\curfontsize{small}%
- \def\lsize{smaller}\def\lllsize{smaller}%
- \resetmathfonts \setleading{10.5pt}}
-\def\smallerfonts{%
- \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
- \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
- \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
- \let\tenttsl=\smallerttsl
- \def\curfontsize{smaller}%
- \def\lsize{smaller}\def\lllsize{smaller}%
- \resetmathfonts \setleading{9.5pt}}
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}{OT1}
-\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
-\setfont\shortcontsl\slshape{12}{1000}{OT1}
-\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
-
-% Define these just so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Set the fonts to use with the @small... environments.
-\let\smallexamplefonts = \smallfonts
-
-% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
-% can fit this many characters:
-% 8.5x11=86 smallbook=72 a4=90 a5=69
-% If we use \scriptfonts (8pt), then we can fit this many characters:
-% 8.5x11=90+ smallbook=80 a4=90+ a5=77
-% For me, subjectively, the few extra characters that fit aren't worth
-% the additional smallness of 8pt. So I'm making the default 9pt.
-%
-% By the way, for comparison, here's what fits with @example (10pt):
-% 8.5x11=71 smallbook=60 a4=75 a5=58
-% --karl, 24jan03.
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\definetextfontsizexi
-
-
-\message{markup,}
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
-% define and register \INITMACRO to be called on markup style changes.
-% \INITMACRO can check \currentmarkupstyle for the innermost
-% style and the set of \ifmarkupSTYLE switches for all styles
-% currently in effect.
-\newif\ifmarkupvar
-\newif\ifmarkupsamp
-\newif\ifmarkupkey
-%\newif\ifmarkupfile % @file == @samp.
-%\newif\ifmarkupoption % @option == @samp.
-\newif\ifmarkupcode
-\newif\ifmarkupkbd
-%\newif\ifmarkupenv % @env == @code.
-%\newif\ifmarkupcommand % @command == @code.
-\newif\ifmarkuptex % @tex (and part of @math, for now).
-\newif\ifmarkupexample
-\newif\ifmarkupverb
-\newif\ifmarkupverbatim
-
-\let\currentmarkupstyle\empty
-
-\def\setupmarkupstyle#1{%
- \csname markup#1true\endcsname
- \def\currentmarkupstyle{#1}%
- \markupstylesetup
-}
-
-\let\markupstylesetup\empty
-
-\def\defmarkupstylesetup#1{%
- \expandafter\def\expandafter\markupstylesetup
- \expandafter{\markupstylesetup #1}%
- \def#1%
-}
-
-% Markup style setup for left and right quotes.
-\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
-}
-
-\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
-}
-
-{
-\catcode`\'=\active
-\catcode`\`=\active
-
-\gdef\markupsetuplqdefault{\let`\lq}
-\gdef\markupsetuprqdefault{\let'\rq}
-
-\gdef\markupsetcodequoteleft{\let`\codequoteleft}
-\gdef\markupsetcodequoteright{\let'\codequoteright}
-
-\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
-}
-
-\let\markupsetuplqcode \markupsetcodequoteleft
-\let\markupsetuprqcode \markupsetcodequoteright
-\let\markupsetuplqexample \markupsetcodequoteleft
-\let\markupsetuprqexample \markupsetcodequoteright
-\let\markupsetuplqverb \markupsetcodequoteleft
-\let\markupsetuprqverb \markupsetcodequoteright
-\let\markupsetuplqverbatim \markupsetcodequoteleft
-\let\markupsetuprqverbatim \markupsetcodequoteright
-
-\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
-\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
-%
-\def\codequoteright{%
- \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
- \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
- '%
- \else \char'15 \fi
- \else \char'15 \fi
-}
-%
-% and a similar option for the left quote char vs. a grave accent.
-% Modern fonts display ASCII 0x60 as a grave accent, so some people like
-% the code environments to do likewise.
-%
-\def\codequoteleft{%
- \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
- \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
- % [Knuth] pp. 380,381,391
- % \relax disables Spanish ligatures ?` and !` of \tt font.
- \relax`%
- \else \char'22 \fi
- \else \char'22 \fi
-}
-
-% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
-\def\noligaturesquoteleft{\relax\lq}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
- \ptexslash\fi\fi\fi}
-\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
-
-% like \smartslanted except unconditionally uses \ttsl.
-% @var is set to this for defun arguments.
-\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
-
-% @cite is like \smartslanted except unconditionally use \sl. We never want
-% ttsl for book titles, do we?
-\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\slanted=\smartslanted
-\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}}
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}} % roman font
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @b, explicit bold. Also @strong.
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% @sansserif, explicit sans.
-\def\sansserif#1{{\sf #1}}
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-% Set sfcode to normal for the chars that usually have another value.
-% Can't use plain's \frenchspacing because it uses the `\x notation, and
-% sometimes \x has an active definition that messes things up.
-%
-\catcode`@=11
- \def\plainfrenchspacing{%
- \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
- \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
- \def\endofsentencespacefactor{1000}% for @. and friends
- }
- \def\plainnonfrenchspacing{%
- \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
- \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
- \def\endofsentencespacefactor{3000}% for @. and friends
- }
-\catcode`@=\other
-\def\endofsentencespacefactor{3000}% default
-
-% @t, explicit typewriter.
-\def\t#1{%
- {\tt \rawbackslash \plainfrenchspacing #1}%
- \null
-}
-
-% @samp.
-\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
-
-% definition of @key that produces a lozenge. Doesn't adjust to text size.
-%\setfont\keyrm\rmshape{8}{1000}{OT1}
-%\font\keysy=cmsy9
-%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-% \vbox{\hrule\kern-0.4pt
-% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-% \kern-0.4pt\hrule}%
-% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-
-% definition of @key with no lozenge. If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle. But
-% if it isn't monospace, then use \tt.
-%
-\def\key#1{{\setupmarkupstyle{key}%
- \nohyphenation
- \ifmonospace\else\tt\fi
- #1}\null}
-
-% ctrl is no longer a Texinfo command.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \plainfrenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in @code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
- \catcode`\-=\active \catcode`\_=\active
- \catcode`\'=\active \catcode`\`=\active
- \global\let'=\rq \global\let`=\lq % default definitions
- %
- \global\def\code{\begingroup
- \setupmarkupstyle{code}%
- % The following should really be moved into \setupmarkupstyle handlers.
- \catcode\dashChar=\active \catcode\underChar=\active
- \ifallowcodebreaks
- \let-\codedash
- \let_\codeunder
- \else
- \let-\realdash
- \let_\realunder
- \fi
- \codex
- }
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{%
- % this is all so @math{@code{var_name}+1} can work. In math mode, _
- % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
- % will therefore expand the active definition of _, which is us
- % (inside @code that is), therefore an endless loop.
- \ifusingtt{\ifmmode
- \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
- \else\normalunderscore \fi
- \discretionary{}{}{}}%
- {\_}%
-}
-\def\codex #1{\tclose{#1}\endgroup}
-
-% An additional complication: the above will allow breaks after, e.g.,
-% each of the four underscores in __typeof__. This is undesirable in
-% some manuals, especially if they don't have long identifiers in
-% general. @allowcodebreaks provides a way to control this.
-%
-\newif\ifallowcodebreaks \allowcodebreakstrue
-
-\def\keywordtrue{true}
-\def\keywordfalse{false}
-
-\parseargdef\allowcodebreaks{%
- \def\txiarg{#1}%
- \ifx\txiarg\keywordtrue
- \allowcodebreakstrue
- \else\ifx\txiarg\keywordfalse
- \allowcodebreaksfalse
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
- \fi\fi
-}
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\parseargdef\kbdinputstyle{%
- \def\txiarg{#1}%
- \ifx\txiarg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\txiarg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\txiarg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is `distinct'.
-\kbdinputstyle distinct
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
-
-% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
-\let\indicateurl=\code
-\let\env=\code
-\let\command=\code
-
-% @clicksequence{File @click{} Open ...}
-\def\clicksequence#1{\begingroup #1\endgroup}
-
-% @clickstyle @arrow (by default)
-\parseargdef\clickstyle{\def\click{#1}}
-\def\click{\arrow}
-
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
- \unsepspaces
- \pdfurl{#1}%
- \setbox0 = \hbox{\ignorespaces #3}%
- \ifdim\wd0 > 0pt
- \unhbox0 % third arg given, show only that
- \else
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \ifpdf
- \unhbox0 % PDF: 2nd arg given, show only it
- \else
- \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
- \fi
- \else
- \code{#1}% only url given, so show it
- \fi
- \fi
- \endlink
-\endgroup}
-
-% @url synonym for @uref, since that's how everyone uses it.
-%
-\let\url=\uref
-
-% rms does not like angle brackets --karl, 17may97.
-% So now @email is just like @uref, unless we are pdf.
-%
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\ifpdf
- \def\email#1{\doemail#1,,\finish}
- \def\doemail#1,#2,#3\finish{\begingroup
- \unsepspaces
- \pdfurl{mailto:#1}%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
- \endlink
- \endgroup}
-\else
- \let\email=\uref
-\fi
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% @acronym for "FBI", "NATO", and the like.
-% We print this one point size smaller, since it's intended for
-% all-uppercase.
-%
-\def\acronym#1{\doacronym #1,,\finish}
-\def\doacronym#1,#2,#3\finish{%
- {\selectfonts\lsize #1}%
- \def\temp{#2}%
- \ifx\temp\empty \else
- \space ({\unsepspaces \ignorespaces \temp \unskip})%
- \fi
-}
-
-% @abbr for "Comput. J." and the like.
-% No font change, but don't do end-of-sentence spacing.
-%
-\def\abbr#1{\doabbr #1,,\finish}
-\def\doabbr#1,#2,#3\finish{%
- {\plainfrenchspacing #1}%
- \def\temp{#2}%
- \ifx\temp\empty \else
- \space ({\unsepspaces \ignorespaces \temp \unskip})%
- \fi
-}
-
-
-\message{glyphs,}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-%
-% Since these characters are used in examples, they should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-%
-\def\point{$\star$}
-\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
-\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% The @error{} command.
-% Adapted from the TeXbook's \boxit.
-%
-\newbox\errorbox
-%
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
-%
-\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{%
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-%
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
-%
-\def\pounds{{\it\$}}
-
-% @euro{} comes from a separate font, depending on the current style.
-% We use the free feym* fonts from the eurosym package by Henrik
-% Theiling, which support regular, slanted, bold and bold slanted (and
-% "outlined" (blackboard board, sort of) versions, which we don't need).
-% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
-%
-% Although only regular is the truly official Euro symbol, we ignore
-% that. The Euro is designed to be slightly taller than the regular
-% font height.
-%
-% feymr - regular
-% feymo - slanted
-% feybr - bold
-% feybo - bold slanted
-%
-% There is no good (free) typewriter version, to my knowledge.
-% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
-% Hmm.
-%
-% Also doesn't work in math. Do we need to do math with euro symbols?
-% Hope not.
-%
-%
-\def\euro{{\eurofont e}}
-\def\eurofont{%
- % We set the font at each command, rather than predefining it in
- % \textfonts and the other font-switching commands, so that
- % installations which never need the symbol don't have to have the
- % font installed.
- %
- % There is only one designed size (nominal 10pt), so we always scale
- % that to the current nominal size.
- %
- % By the way, simply using "at 1em" works for cmr10 and the like, but
- % does not work for cmbx10 and other extended/shrunken fonts.
- %
- \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
- %
- \ifx\curfontstyle\bfstylename
- % bold:
- \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
- \else
- % regular:
- \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
- \fi
- \thiseurofont
-}
-
-% Glyphs from the EC fonts. We don't use \let for the aliases, because
-% sometimes we redefine the original macro, and the alias should reflect
-% the redefinition.
-%
-% Use LaTeX names for the Icelandic letters.
-\def\DH{{\ecfont \char"D0}} % Eth
-\def\dh{{\ecfont \char"F0}} % eth
-\def\TH{{\ecfont \char"DE}} % Thorn
-\def\th{{\ecfont \char"FE}} % thorn
-%
-\def\guillemetleft{{\ecfont \char"13}}
-\def\guillemotleft{\guillemetleft}
-\def\guillemetright{{\ecfont \char"14}}
-\def\guillemotright{\guillemetright}
-\def\guilsinglleft{{\ecfont \char"0E}}
-\def\guilsinglright{{\ecfont \char"0F}}
-\def\quotedblbase{{\ecfont \char"12}}
-\def\quotesinglbase{{\ecfont \char"0D}}
-%
-% This positioning is not perfect (see the ogonek LaTeX package), but
-% we have the precomposed glyphs for the most common cases. We put the
-% tests to use those glyphs in the single \ogonek macro so we have fewer
-% dummy definitions to worry about for index entries, etc.
-%
-% ogonek is also used with other letters in Lithuanian (IOU), but using
-% the precomposed glyphs for those is not so easy since they aren't in
-% the same EC font.
-\def\ogonek#1{{%
- \def\temp{#1}%
- \ifx\temp\macrocharA\Aogonek
- \else\ifx\temp\macrochara\aogonek
- \else\ifx\temp\macrocharE\Eogonek
- \else\ifx\temp\macrochare\eogonek
- \else
- \ecfont \setbox0=\hbox{#1}%
- \ifdim\ht0=1ex\accent"0C #1%
- \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
- \fi
- \fi\fi\fi\fi
- }%
-}
-\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
-\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
-\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
-\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
-%
-% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
-\def\ecfont{%
- % We can't distinguish serif/sans and italic/slanted, but this
- % is used for crude hacks anyway (like adding French and German
- % quotes to documents typeset with CM, where we lose kerning), so
- % hopefully nobody will notice/care.
- \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
- \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
- \ifx\curfontstyle\bfstylename
- % bold:
- \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
- \else
- % regular:
- \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
- \fi
- \thisecfont
-}
-
-% @registeredsymbol - R in a circle. The font for the R should really
-% be smaller yet, but lllsize is the best we can do for now.
-% Adapted from the plain.tex definition of \copyright.
-%
-\def\registeredsymbol{%
- $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
- \hfil\crcr\Orb}}%
- }$%
-}
-
-% @textdegree - the normal degrees sign.
-%
-\def\textdegree{$^\circ$}
-
-% Laurent Siebenmann reports \Orb undefined with:
-% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
-% so we'll define it if necessary.
-%
-\ifx\Orb\undefined
-\def\Orb{\mathhexbox20D}
-\fi
-
-% Quotes.
-\chardef\quotedblleft="5C
-\chardef\quotedblright=`\"
-\chardef\quoteleft=`\`
-\chardef\quoteright=`\'
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\envdef\titlepage{%
- % Open one extra group, as we want to close it in the middle of \Etitlepage.
- \begingroup
- \parindent=0pt \textfonts
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \let\page = \oldpage
- \page
- \null
- }%
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- %
- % Need this before the \...aftertitlepage checks so that if they are
- % in effect the toc pages will come out with page numbers.
- \HEADINGSon
- %
- % If they want short, they certainly want long too.
- \ifsetshortcontentsaftertitlepage
- \shortcontents
- \contents
- \global\let\shortcontents = \relax
- \global\let\contents = \relax
- \fi
- %
- \ifsetcontentsaftertitlepage
- \contents
- \global\let\contents = \relax
- \global\let\shortcontents = \relax
- \fi
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Macros to be used within @titlepage:
-
-\let\subtitlerm=\tenrm
-\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
-
-\parseargdef\title{%
- \checkenv\titlepage
- \leftline{\titlefonts\rmisbold #1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt
-}
-
-\parseargdef\subtitle{%
- \checkenv\titlepage
- {\subtitlefont \rightline{#1}}%
-}
-
-% @author should come last, but may come many times.
-% It can also be used inside @quotation.
-%
-\parseargdef\author{%
- \def\temp{\quotation}%
- \ifx\thisenv\temp
- \def\quotationauthor{#1}% printed in \Equotation.
- \else
- \checkenv\titlepage
- \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
- {\secfonts\rmisbold \leftline{#1}}%
- \fi
-}
-
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline % headline on even pages
-\newtoks\oddheadline % headline on odd pages
-\newtoks\evenfootline % footline on even pages
-\newtoks\oddfootline % footline on odd pages
-
-% Now make TeX use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
-\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
-\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
-\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
-\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -12pt
- \global\advance\vsize by -12pt
-}
-
-\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-
-% @evenheadingmarks top \thischapter <- chapter at the top of a page
-% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page
-%
-% The same set of arguments for:
-%
-% @oddheadingmarks
-% @evenfootingmarks
-% @oddfootingmarks
-% @everyheadingmarks
-% @everyfootingmarks
-
-\def\evenheadingmarks{\headingmarks{even}{heading}}
-\def\oddheadingmarks{\headingmarks{odd}{heading}}
-\def\evenfootingmarks{\headingmarks{even}{footing}}
-\def\oddfootingmarks{\headingmarks{odd}{footing}}
-\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
- \headingmarks{odd}{heading}{#1} }
-\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
- \headingmarks{odd}{footing}{#1} }
-% #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
-\def\headingmarks#1#2#3 {%
- \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
- \global\expandafter\let\csname get#1#2marks\endcsname \temp
-}
-
-\everyheadingmarks bottom
-\everyfootingmarks bottom
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{%
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{%
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{%
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% This produces Day Month Year style of output.
-% Only define if not already defined, in case a txi-??.tex file has set
-% up a different format (e.g., txi-cs.tex does this).
-\ifx\today\undefined
-\def\today{%
- \number\day\space
- \ifcase\month
- \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
- \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
- \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
- \fi
- \space\number\year}
-\fi
-
-% @settitle line... specifies the title of the document, for headings.
-% It generates no output of its own.
-\def\thistitle{\putwordNoTitle}
-\def\settitle{\parsearg{\gdef\thistitle}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemindicate{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. However, if
- % what follows is an environment such as @example, there will be no
- % \parskip glue; then the negative vskip we just inserted would
- % cause the example and the item to crash together. So we use this
- % bizarre value of 10001 as a signal to \aboveenvbreak to insert
- % \parskip glue after all. Section titles are handled this way also.
- %
- \penalty 10001
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line.
- \noindent
- % Do this with kerns and \unhbox so that if there is a footnote in
- % the item text, it can migrate to the main vertical list and
- % eventually be printed.
- \nobreak\kern-\tableindent
- \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
- \unhbox0
- \nobreak\kern\dimen0
- \endgroup
- \itemxneedsnegativevskiptrue
- \fi
-}
-
-\def\item{\errmessage{@item while not in a list environment}}
-\def\itemx{\errmessage{@itemx while not in a list environment}}
-
-% @table, @ftable, @vtable.
-\envdef\table{%
- \let\itemindex\gobble
- \tablecheck{table}%
-}
-\envdef\ftable{%
- \def\itemindex ##1{\doind {fn}{\code{##1}}}%
- \tablecheck{ftable}%
-}
-\envdef\vtable{%
- \def\itemindex ##1{\doind {vr}{\code{##1}}}%
- \tablecheck{vtable}%
-}
-\def\tablecheck#1{%
- \ifnum \the\catcode`\^^M=\active
- \endgroup
- \errmessage{This command won't work in this context; perhaps the problem is
- that we are \inenvironment\thisenv}%
- \def\next{\doignore{#1}}%
- \else
- \let\next\tablex
- \fi
- \next
-}
-\def\tablex#1{%
- \def\itemindicate{#1}%
- \parsearg\tabley
-}
-\def\tabley#1{%
- {%
- \makevalueexpandable
- \edef\temp{\noexpand\tablez #1\space\space\space}%
- \expandafter
- }\temp \endtablez
-}
-\def\tablez #1 #2 #3 #4\endtablez{%
- \aboveenvbreak
- \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
- \ifnum 0#2>0 \tableindent=#2\mil \fi
- \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
- \itemmax=\tableindent
- \advance \itemmax by -\itemmargin
- \advance \leftskip by \tableindent
- \exdentamount=\tableindent
- \parindent = 0pt
- \parskip = \smallskipamount
- \ifdim \parskip=0pt \parskip=2pt \fi
- \let\item = \internalBitem
- \let\itemx = \internalBitemx
-}
-\def\Etable{\endgraf\afterenvbreak}
-\let\Eftable\Etable
-\let\Evtable\Etable
-\let\Eitemize\Etable
-\let\Eenumerate\Etable
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\envdef\itemize{\parsearg\doitemize}
-
-\def\doitemize#1{%
- \aboveenvbreak
- \itemmax=\itemindent
- \advance\itemmax by -\itemmargin
- \advance\leftskip by \itemindent
- \exdentamount=\itemindent
- \parindent=0pt
- \parskip=\smallskipamount
- \ifdim\parskip=0pt \parskip=2pt \fi
- %
- % Try typesetting the item mark that if the document erroneously says
- % something like @itemize @samp (intending @table), there's an error
- % right away at the @itemize. It's not the best error message in the
- % world, but it's better than leaving it to the @item. This means if
- % the user wants an empty mark, they have to say @w{} not just @w.
- \def\itemcontents{#1}%
- \setbox0 = \hbox{\itemcontents}%
- %
- % @itemize with no arg is equivalent to @itemize @bullet.
- \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
- %
- \let\item=\itemizeitem
-}
-
-% Definition of @item while inside @itemize and @enumerate.
-%
-\def\itemizeitem{%
- \advance\itemno by 1 % for enumerations
- {\let\par=\endgraf \smallbreak}% reasonable place to break
- {%
- % If the document has an @itemize directly after a section title, a
- % \nobreak will be last on the list, and \sectionheading will have
- % done a \vskip-\parskip. In that case, we don't want to zero
- % parskip, or the item text will crash with the heading. On the
- % other hand, when there is normal text preceding the item (as there
- % usually is), we do want to zero parskip, or there would be too much
- % space. In that case, we won't have a \nobreak before. At least
- % that's the theory.
- \ifnum\lastpenalty<10000 \parskip=0in \fi
- \noindent
- \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
- %
- \vadjust{\penalty 1200}}% not good to break after first line of item.
- \flushcr
-}
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call \doitemize, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \doitemize{#1.}\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab do not need to be on their own lines, but it will not hurt
-% if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the @columnfraction, usually a decimal number like .5, but might
-% be just 1. We just use it, whatever it is.
-%
-\def\pickupwholefraction#1 {%
- \global\advance\colcount by 1
- \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
- \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
- \def\firstarg{#1}%
- \ifx\firstarg\xendsetuptable
- \let\go = \relax
- \else
- \ifx\firstarg\xcolumnfractions
- \global\setpercenttrue
- \else
- \ifsetpercent
- \let\go\pickupwholefraction
- \else
- \global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
- % separator; typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi
- \fi
- \ifx\go\pickupwholefraction
- % Put the argument back for the \pickupwholefraction call, so
- % we'll always have a period there to be parsed.
- \def\go{\pickupwholefraction#1}%
- \else
- \let\go = \setuptable
- \fi%
- \fi
- \go
-}
-
-% multitable-only commands.
-%
-% @headitem starts a heading row, which we typeset in bold.
-% Assignments have to be global since we are inside the implicit group
-% of an alignment entry. \everycr resets \everytab so we don't have to
-% undo it ourselves.
-\def\headitemfont{\b}% for people to use in the template row; not changeable
-\def\headitem{%
- \checkenv\multitable
- \crcr
- \global\everytab={\bf}% can't use \headitemfont since the parsing differs
- \the\everytab % for the first item
-}%
-%
-% A \tab used to include \hskip1sp. But then the space in a template
-% line is not enough. That is bad. So let's go back to just `&' until
-% we again encounter the problem the 1sp was intended to solve.
-% --karl, nathan@acm.org, 20apr99.
-\def\tab{\checkenv\multitable &\the\everytab}%
-
-% @multitable ... @end multitable definitions:
-%
-\newtoks\everytab % insert after every tab.
-%
-\envdef\multitable{%
- \vskip\parskip
- \startsavinginserts
- %
- % @item within a multitable starts a normal row.
- % We use \def instead of \let so that if one of the multitable entries
- % contains an @itemize, we don't choke on the \item (seen as \crcr aka
- % \endtemplate) expanding \doitemize.
- \def\item{\crcr}%
- %
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- %
- \everycr = {%
- \noalign{%
- \global\everytab={}%
- \global\colcount=0 % Reset the column counter.
- % Check for saved footnotes, etc.
- \checkinserts
- % Keeps underfull box messages off when table breaks over pages.
- %\filbreak
- % Maybe so, but it also creates really weird page breaks when the
- % table breaks over pages. Wouldn't \vfil be better? Wait until the
- % problem manifests itself, so it can be fixed for real --karl.
- }%
- }%
- %
- \parsearg\domultitable
-}
-\def\domultitable#1{%
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup &%
- \global\advance\colcount by 1
- \multistrut
- \vtop{%
- % Use the current \colcount to find the correct column width:
- \hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively
- % marking characters.
- \noindent\ignorespaces##\unskip\multistrut
- }\cr
-}
-\def\Emultitable{%
- \crcr
- \egroup % end the \halign
- \global\setpercentfalse
-}
-
-\def\setmultitablespacing{%
- \def\multistrut{\strut}% just use the standard line spacing
- %
- % Compute \multitablelinespace (if not defined by user) for use in
- % \multitableparskip calculation. We used define \multistrut based on
- % this, but (ironically) that caused the spacing to be off.
- % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
-\ifdim\multitablelinespace=0pt
-\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
-\global\advance\multitablelinespace by-\ht0
-\fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{conditionals,}
-
-% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
-% @ifnotxml always succeed. They currently do nothing; we don't
-% attempt to check whether the conditionals are properly nested. But we
-% have to remember that they are conditionals, so that @end doesn't
-% attempt to close an environment group.
-%
-\def\makecond#1{%
- \expandafter\let\csname #1\endcsname = \relax
- \expandafter\let\csname iscond.#1\endcsname = 1
-}
-\makecond{iftex}
-\makecond{ifnotdocbook}
-\makecond{ifnothtml}
-\makecond{ifnotinfo}
-\makecond{ifnotplaintext}
-\makecond{ifnotxml}
-
-% Ignore @ignore, @ifhtml, @ifinfo, and the like.
-%
-\def\direntry{\doignore{direntry}}
-\def\documentdescription{\doignore{documentdescription}}
-\def\docbook{\doignore{docbook}}
-\def\html{\doignore{html}}
-\def\ifdocbook{\doignore{ifdocbook}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\ifplaintext{\doignore{ifplaintext}}
-\def\ifxml{\doignore{ifxml}}
-\def\ignore{\doignore{ignore}}
-\def\menu{\doignore{menu}}
-\def\xml{\doignore{xml}}
-
-% Ignore text until a line `@end #1', keeping track of nested conditionals.
-%
-% A count to remember the depth of nesting.
-\newcount\doignorecount
-
-\def\doignore#1{\begingroup
- % Scan in ``verbatim'' mode:
- \obeylines
- \catcode`\@ = \other
- \catcode`\{ = \other
- \catcode`\} = \other
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \spaceisspace
- %
- % Count number of #1's that we've seen.
- \doignorecount = 0
- %
- % Swallow text until we reach the matching `@end #1'.
- \dodoignore{#1}%
-}
-
-{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
- \obeylines %
- %
- \gdef\dodoignore#1{%
- % #1 contains the command name as a string, e.g., `ifinfo'.
- %
- % Define a command to find the next `@end #1'.
- \long\def\doignoretext##1^^M@end #1{%
- \doignoretextyyy##1^^M@#1\_STOP_}%
- %
- % And this command to find another #1 command, at the beginning of a
- % line. (Otherwise, we would consider a line `@c @ifset', for
- % example, to count as an @ifset for nesting.)
- \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
- %
- % And now expand that command.
- \doignoretext ^^M%
- }%
-}
-
-\def\doignoreyyy#1{%
- \def\temp{#1}%
- \ifx\temp\empty % Nothing found.
- \let\next\doignoretextzzz
- \else % Found a nested condition, ...
- \advance\doignorecount by 1
- \let\next\doignoretextyyy % ..., look for another.
- % If we're here, #1 ends with ^^M\ifinfo (for example).
- \fi
- \next #1% the token \_STOP_ is present just after this macro.
-}
-
-% We have to swallow the remaining "\_STOP_".
-%
-\def\doignoretextzzz#1{%
- \ifnum\doignorecount = 0 % We have just found the outermost @end.
- \let\next\enddoignore
- \else % Still inside a nested condition.
- \advance\doignorecount by -1
- \let\next\doignoretext % Look for the next @end.
- \fi
- \next
-}
-
-% Finish off ignored text.
-{ \obeylines%
- % Ignore anything after the last `@end #1'; this matters in verbatim
- % environments, where otherwise the newline after an ignored conditional
- % would result in a blank line in the output.
- \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
-}
-
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it.
-% We rely on the fact that \parsearg sets \catcode`\ =10.
-%
-\parseargdef\set{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- {%
- \makevalueexpandable
- \def\temp{#2}%
- \edef\next{\gdef\makecsname{SET#1}}%
- \ifx\temp\empty
- \next{}%
- \else
- \setzzz#2\endsetzzz
- \fi
- }%
-}
-% Remove the trailing space \setxxx inserted.
-\def\setzzz#1 \endsetzzz{\next{#1}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\parseargdef\clear{%
- {%
- \makevalueexpandable
- \global\expandafter\let\csname SET#1\endcsname=\relax
- }%
-}
-
-% @value{foo} gets the text saved in variable foo.
-\def\value{\begingroup\makevalueexpandable\valuexxx}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-{
- \catcode`\- = \active \catcode`\_ = \active
- %
- \gdef\makevalueexpandable{%
- \let\value = \expandablevalue
- % We don't want these characters active, ...
- \catcode`\-=\other \catcode`\_=\other
- % ..., but we might end up with active ones in the argument if
- % we're called from @code, as @code{@value{foo-bar_}}, though.
- % So \let them to their normal equivalents.
- \let-\realdash \let_\normalunderscore
- }
-}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we call \makevalueexpandable in \indexdummies).
-% The command has to be fully expandable (if the variable is set), since
-% the result winds up in the index file. This means that if the
-% variable's value contains other Texinfo commands, it's almost certain
-% it will fail (although perhaps we could fix that with sufficient work
-% to do a one-level expansion on the result, instead of complete).
-%
-\def\expandablevalue#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {[No value for ``#1'']}%
- \message{Variable `#1', used in @value, is not set.}%
- \else
- \csname SET#1\endcsname
- \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-% To get special treatment of `@end ifset,' call \makeond and the redefine.
-%
-\makecond{ifset}
-\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
-\def\doifset#1#2{%
- {%
- \makevalueexpandable
- \let\next=\empty
- \expandafter\ifx\csname SET#2\endcsname\relax
- #1% If not set, redefine \next.
- \fi
- \expandafter
- }\next
-}
-\def\ifsetfail{\doignore{ifset}}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-% The `\else' inside the `\doifset' parameter is a trick to reuse the
-% above code: if the variable is not set, do nothing, if it is set,
-% then redefine \next to \ifclearfail.
-%
-\makecond{ifclear}
-\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
-\def\ifclearfail{\doignore{ifclear}}
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory=\comment
-
-% @defininfoenclose.
-\let\definfoenclose=\comment
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within macros and \if's.
-\edef\newwrite{\makecsname{ptexnewwrite}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
- \fi
- \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
- \noexpand\doindex{#1}}
-}
-
-% @defindex foo == \newindex{foo}
-%
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-%
-\def\defcodeindex{\parsearg\newcodeindex}
-%
-\def\newcodeindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1
- \fi
- \expandafter\xdef\csname#1index\endcsname{%
- \noexpand\docodeindex{#1}}%
-}
-
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-%
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-%
-\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
-\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
-
-% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
-% #3 the target index (bar).
-\def\dosynindex#1#2#3{%
- % Only do \closeout if we haven't already done it, else we'll end up
- % closing the target index.
- \expandafter \ifx\csname donesynindex#2\endcsname \relax
- % The \closeout helps reduce unnecessary open files; the limit on the
- % Acorn RISC OS is a mere 16 files.
- \expandafter\closeout\csname#2indfile\endcsname
- \expandafter\let\csname donesynindex#2\endcsname = 1
- \fi
- % redefine \fooindfile:
- \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
- \expandafter\let\csname#2indfile\endcsname=\temp
- % redefine \fooindex:
- \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-% Take care of Texinfo commands that can appear in an index entry.
-% Since there are some commands we want to expand, and others we don't,
-% we have to laboriously prevent expansion for those that we don't.
-%
-\def\indexdummies{%
- \escapechar = `\\ % use backslash in output files.
- \def\@{@}% change to @@ when we switch to @ as escape char in index files.
- \def\ {\realbackslash\space }%
- %
- % Need these in case \tex is in effect and \{ is a \delimiter again.
- % But can't use \lbracecmd and \rbracecmd because texindex assumes
- % braces and backslashes are used only as delimiters.
- \let\{ = \mylbrace
- \let\} = \myrbrace
- %
- % I don't entirely understand this, but when an index entry is
- % generated from a macro call, the \endinput which \scanmacro inserts
- % causes processing to be prematurely terminated. This is,
- % apparently, because \indexsorttmp is fully expanded, and \endinput
- % is an expandable command. The redefinition below makes \endinput
- % disappear altogether for that purpose -- although logging shows that
- % processing continues to some further point. On the other hand, it
- % seems \endinput does not hurt in the printed index arg, since that
- % is still getting written without apparent harm.
- %
- % Sample source (mac-idx3.tex, reported by Graham Percival to
- % help-texinfo, 22may06):
- % @macro funindex {WORD}
- % @findex xyz
- % @end macro
- % ...
- % @funindex commtest
- %
- % The above is not enough to reproduce the bug, but it gives the flavor.
- %
- % Sample whatsit resulting:
- % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
- %
- % So:
- \let\endinput = \empty
- %
- % Do the redefinitions.
- \commondummies
-}
-
-% For the aux and toc files, @ is the escape character. So we want to
-% redefine everything using @ as the escape character (instead of
-% \realbackslash, still used for index files). When everything uses @,
-% this will be simpler.
-%
-\def\atdummies{%
- \def\@{@@}%
- \def\ {@ }%
- \let\{ = \lbraceatcmd
- \let\} = \rbraceatcmd
- %
- % Do the redefinitions.
- \commondummies
- \otherbackslash
-}
-
-% Called from \indexdummies and \atdummies.
-%
-\def\commondummies{%
- %
- % \definedummyword defines \#1 as \string\#1\space, thus effectively
- % preventing its expansion. This is used only for control% words,
- % not control letters, because the \space would be incorrect for
- % control characters, but is needed to separate the control word
- % from whatever follows.
- %
- % For control letters, we have \definedummyletter, which omits the
- % space.
- %
- % These can be used both for control words that take an argument and
- % those that do not. If it is followed by {arg} in the input, then
- % that will dutifully get written to the index (or wherever).
- %
- \def\definedummyword ##1{\def##1{\string##1\space}}%
- \def\definedummyletter##1{\def##1{\string##1}}%
- \let\definedummyaccent\definedummyletter
- %
- \commondummiesnofonts
- %
- \definedummyletter\_%
- %
- % Non-English letters.
- \definedummyword\AA
- \definedummyword\AE
- \definedummyword\DH
- \definedummyword\L
- \definedummyword\O
- \definedummyword\OE
- \definedummyword\TH
- \definedummyword\aa
- \definedummyword\ae
- \definedummyword\dh
- \definedummyword\exclamdown
- \definedummyword\l
- \definedummyword\o
- \definedummyword\oe
- \definedummyword\ordf
- \definedummyword\ordm
- \definedummyword\questiondown
- \definedummyword\ss
- \definedummyword\th
- %
- % Although these internal commands shouldn't show up, sometimes they do.
- \definedummyword\bf
- \definedummyword\gtr
- \definedummyword\hat
- \definedummyword\less
- \definedummyword\sf
- \definedummyword\sl
- \definedummyword\tclose
- \definedummyword\tt
- %
- \definedummyword\LaTeX
- \definedummyword\TeX
- %
- % Assorted special characters.
- \definedummyword\bullet
- \definedummyword\comma
- \definedummyword\copyright
- \definedummyword\registeredsymbol
- \definedummyword\dots
- \definedummyword\enddots
- \definedummyword\equiv
- \definedummyword\error
- \definedummyword\euro
- \definedummyword\guillemetleft
- \definedummyword\guillemetright
- \definedummyword\guilsinglleft
- \definedummyword\guilsinglright
- \definedummyword\expansion
- \definedummyword\minus
- \definedummyword\ogonek
- \definedummyword\pounds
- \definedummyword\point
- \definedummyword\print
- \definedummyword\quotedblbase
- \definedummyword\quotedblleft
- \definedummyword\quotedblright
- \definedummyword\quoteleft
- \definedummyword\quoteright
- \definedummyword\quotesinglbase
- \definedummyword\result
- \definedummyword\textdegree
- %
- % We want to disable all macros so that they are not expanded by \write.
- \macrolist
- %
- \normalturnoffactive
- %
- % Handle some cases of @value -- where it does not contain any
- % (non-fully-expandable) commands.
- \makevalueexpandable
-}
-
-% \commondummiesnofonts: common to \commondummies and \indexnofonts.
-%
-\def\commondummiesnofonts{%
- % Control letters and accents.
- \definedummyletter\!%
- \definedummyaccent\"%
- \definedummyaccent\'%
- \definedummyletter\*%
- \definedummyaccent\,%
- \definedummyletter\.%
- \definedummyletter\/%
- \definedummyletter\:%
- \definedummyaccent\=%
- \definedummyletter\?%
- \definedummyaccent\^%
- \definedummyaccent\`%
- \definedummyaccent\~%
- \definedummyword\u
- \definedummyword\v
- \definedummyword\H
- \definedummyword\dotaccent
- \definedummyword\ogonek
- \definedummyword\ringaccent
- \definedummyword\tieaccent
- \definedummyword\ubaraccent
- \definedummyword\udotaccent
- \definedummyword\dotless
- %
- % Texinfo font commands.
- \definedummyword\b
- \definedummyword\i
- \definedummyword\r
- \definedummyword\sc
- \definedummyword\t
- %
- % Commands that take arguments.
- \definedummyword\acronym
- \definedummyword\cite
- \definedummyword\code
- \definedummyword\command
- \definedummyword\dfn
- \definedummyword\emph
- \definedummyword\env
- \definedummyword\file
- \definedummyword\kbd
- \definedummyword\key
- \definedummyword\math
- \definedummyword\option
- \definedummyword\pxref
- \definedummyword\ref
- \definedummyword\samp
- \definedummyword\strong
- \definedummyword\tie
- \definedummyword\uref
- \definedummyword\url
- \definedummyword\var
- \definedummyword\verb
- \definedummyword\w
- \definedummyword\xref
-}
-
-% \indexnofonts is used when outputting the strings to sort the index
-% by, and when constructing control sequence names. It eliminates all
-% control sequences and just writes whatever the best ASCII sort string
-% would be for a given command (usually its argument).
-%
-\def\indexnofonts{%
- % Accent commands should become @asis.
- \def\definedummyaccent##1{\let##1\asis}%
- % We can just ignore other control letters.
- \def\definedummyletter##1{\let##1\empty}%
- % Hopefully, all control words can become @asis.
- \let\definedummyword\definedummyaccent
- %
- \commondummiesnofonts
- %
- % Don't no-op \tt, since it isn't a user-level command
- % and is used in the definitions of the active chars like <, >, |, etc.
- % Likewise with the other plain tex font commands.
- %\let\tt=\asis
- %
- \def\ { }%
- \def\@{@}%
- % how to handle braces?
- \def\_{\normalunderscore}%
- %
- % Non-English letters.
- \def\AA{AA}%
- \def\AE{AE}%
- \def\DH{DZZ}%
- \def\L{L}%
- \def\OE{OE}%
- \def\O{O}%
- \def\TH{ZZZ}%
- \def\aa{aa}%
- \def\ae{ae}%
- \def\dh{dzz}%
- \def\exclamdown{!}%
- \def\l{l}%
- \def\oe{oe}%
- \def\ordf{a}%
- \def\ordm{o}%
- \def\o{o}%
- \def\questiondown{?}%
- \def\ss{ss}%
- \def\th{zzz}%
- %
- \def\LaTeX{LaTeX}%
- \def\TeX{TeX}%
- %
- % Assorted special characters.
- % (The following {} will end up in the sort string, but that's ok.)
- \def\bullet{bullet}%
- \def\comma{,}%
- \def\copyright{copyright}%
- \def\registeredsymbol{R}%
- \def\dots{...}%
- \def\enddots{...}%
- \def\equiv{==}%
- \def\error{error}%
- \def\euro{euro}%
- \def\guillemetleft{<<}%
- \def\guillemetright{>>}%
- \def\guilsinglleft{<}%
- \def\guilsinglright{>}%
- \def\expansion{==>}%
- \def\minus{-}%
- \def\pounds{pounds}%
- \def\point{.}%
- \def\print{-|}%
- \def\quotedblbase{"}%
- \def\quotedblleft{"}%
- \def\quotedblright{"}%
- \def\quoteleft{`}%
- \def\quoteright{'}%
- \def\quotesinglbase{,}%
- \def\result{=>}%
- \def\textdegree{degrees}%
- %
- % We need to get rid of all macros, leaving only the arguments (if present).
- % Of course this is not nearly correct, but it is the best we can do for now.
- % makeinfo does not expand macros in the argument to @deffn, which ends up
- % writing an index entry, and texindex isn't prepared for an index sort entry
- % that starts with \.
- %
- % Since macro invocations are followed by braces, we can just redefine them
- % to take a single TeX argument. The case of a macro invocation that
- % goes to end-of-line is not handled.
- %
- \macrolist
-}
-
-\let\indexbackslash=0 %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% Most index entries go through here, but \dosubind is the general case.
-% #1 is the index name, #2 is the entry text.
-\def\doind#1#2{\dosubind{#1}{#2}{}}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% empty if called from \doind, as we usually are (the main exception
-% is with most defuns, which call us directly).
-%
-\def\dosubind#1#2#3{%
- \iflinks
- {%
- % Store the main index entry text (including the third arg).
- \toks0 = {#2}%
- % If third arg is present, precede it with a space.
- \def\thirdarg{#3}%
- \ifx\thirdarg\empty \else
- \toks0 = \expandafter{\the\toks0 \space #3}%
- \fi
- %
- \edef\writeto{\csname#1indfile\endcsname}%
- %
- \safewhatsit\dosubindwrite
- }%
- \fi
-}
-
-% Write the entry in \toks0 to the index file:
-%
-\def\dosubindwrite{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
- \fi
- %
- % Remember, we are within a group.
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- % Process the index entry with all font commands turned off, to
- % get the string to sort by.
- {\indexnofonts
- \edef\temp{\the\toks0}% need full expansion
- \xdef\indexsorttmp{\temp}%
- }%
- %
- % Set up the complete index entry, with both the sort key and
- % the original text, including any font commands. We write
- % three arguments to \entry to the .?? file (four in the
- % subentry case), texindex reduces to two when writing the .??s
- % sorted result.
- \edef\temp{%
- \write\writeto{%
- \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
- }%
- \temp
-}
-
-% Take care of unwanted page breaks/skips around a whatsit:
-%
-% If a skip is the last thing on the list now, preserve it
-% by backing up by \lastskip, doing the \write, then inserting
-% the skip again. Otherwise, the whatsit generated by the
-% \write or \pdfdest will make \lastskip zero. The result is that
-% sequences like this:
-% @end defun
-% @tindex whatever
-% @defun ...
-% will have extra space inserted, because the \medbreak in the
-% start of the @defun won't see the skip inserted by the @end of
-% the previous defun.
-%
-% But don't do any of this if we're not in vertical mode. We
-% don't want to do a \vskip and prematurely end a paragraph.
-%
-% Avoid page breaks due to these extra skips, too.
-%
-% But wait, there is a catch there:
-% We'll have to check whether \lastskip is zero skip. \ifdim is not
-% sufficient for this purpose, as it ignores stretch and shrink parts
-% of the skip. The only way seems to be to check the textual
-% representation of the skip.
-%
-% The following is almost like \def\zeroskipmacro{0.0pt} except that
-% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
-%
-\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
-%
-\newskip\whatsitskip
-\newcount\whatsitpenalty
-%
-% ..., ready, GO:
-%
-\def\safewhatsit#1{%
-\ifhmode
- #1%
-\else
- % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
- \whatsitskip = \lastskip
- \edef\lastskipmacro{\the\lastskip}%
- \whatsitpenalty = \lastpenalty
- %
- % If \lastskip is nonzero, that means the last item was a
- % skip. And since a skip is discardable, that means this
- % -\whatsitskip glue we're inserting is preceded by a
- % non-discardable item, therefore it is not a potential
- % breakpoint, therefore no \nobreak needed.
- \ifx\lastskipmacro\zeroskipmacro
- \else
- \vskip-\whatsitskip
- \fi
- %
- #1%
- %
- \ifx\lastskipmacro\zeroskipmacro
- % If \lastskip was zero, perhaps the last item was a penalty, and
- % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
- % to re-insert the same penalty (values >10000 are used for various
- % signals); since we just inserted a non-discardable item, any
- % following glue (such as a \parskip) would be a breakpoint. For example:
- %
- % @deffn deffn-whatever
- % @vindex index-whatever
- % Description.
- % would allow a break between the index-whatever whatsit
- % and the "Description." paragraph.
- \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
- \else
- % On the other hand, if we had a nonzero \lastskip,
- % this make-up glue would be preceded by a non-discardable item
- % (the whatsit from the \write), so we must insert a \nobreak.
- \nobreak\vskip\whatsitskip
- \fi
-\fi
-}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\parseargdef\printindex{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \smallfonts \rm
- \tolerance = 9500
- \plainfrenchspacing
- \everypar = {}% don't want the \kern\-parindent from indentation suppression.
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- \putwordIndexNonexistent
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- \putwordIndexIsEmpty
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\backslashcurfont}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
- % Some minor font changes for the special characters.
- \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
- %
- % Remove any glue we may have, we'll be inserting our own.
- \removelastskip
- %
- % We like breaks before the index initials, so insert a bonus.
- \nobreak
- \vskip 0pt plus 3\baselineskip
- \penalty 0
- \vskip 0pt plus -3\baselineskip
- %
- % Typeset the initial. Making this add up to a whole number of
- % baselineskips increases the chance of the dots lining up from column
- % to column. It still won't often be perfect, because of the stretch
- % we need before each entry, but it's better.
- %
- % No shrink because it confuses \balancecolumns.
- \vskip 1.67\baselineskip plus .5\baselineskip
- \leftline{\secbf #1}%
- % Do our best not to break after the initial.
- \nobreak
- \vskip .33\baselineskip plus .1\baselineskip
-}}
-
-% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
-% then page number (#2) flushed to the right margin. It is used for index
-% and table of contents entries. The paragraph is indented by \leftskip.
-%
-% A straightforward implementation would start like this:
-% \def\entry#1#2{...
-% But this freezes the catcodes in the argument, and can cause problems to
-% @code, which sets - active. This problem was fixed by a kludge---
-% ``-'' was active throughout whole index, but this isn't really right.
-%
-% The right solution is to prevent \entry from swallowing the whole text.
-% --kasal, 21nov03
-\def\entry{%
- \begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing
- % columns.
- \vskip 0pt plus1pt
- %
- % Swallow the left brace of the text (first parameter):
- \afterassignment\doentry
- \let\temp =
-}
-\def\doentry{%
- \bgroup % Instead of the swallowed brace.
- \noindent
- \aftergroup\finishentry
- % And now comes the text of the entry.
-}
-\def\finishentry#1{%
- % #1 is the page number.
- %
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \setbox\boxA = \hbox{#1}%
- \ifdim\wd\boxA = 0pt
- \ %
- \else
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ifpdf
- \pdfgettoks#1.%
- \ \the\toksA
- \else
- \ #1%
- \fi
- \fi
- \par
- \endgroup
-}
-
-% Like plain.tex's \dotfill, except uses up at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-\def\secondary#1#2{{%
- \parfillskip=0in
- \parskip=0in
- \hangindent=1in
- \hangafter=1
- \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
- \ifpdf
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
- \else
- #2
- \fi
- \par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case we just ship out what is in \partialpage with the normal
- % output routine. Generally, \partialpage will be empty when this
- % runs and this will be a no-op. See the indexspread.tex test case.
- \ifvoid\partialpage \else
- \onepageout{\pagecontents\partialpage}%
- \fi
- %
- \global\setbox\partialpage = \vbox{%
- % Unvbox the main output page.
- \unvbox\PAGE
- \kern-\topskip \kern\baselineskip
- }%
- }%
- \eject % run that output routine to set \partialpage
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-%
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@ = \vsize
- \divide\dimen@ by 2
- \advance\dimen@ by -\ht\partialpage
- %
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-%
-% Re-output the contents of the output page -- any previous material,
-% followed by the two boxes we just split, in box0 and box2.
-\def\pagesofar{%
- \unvbox\partialpage
- %
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize
- \hbox to\pagewidth{\box0\hfil\box2}%
-}
-%
-% All done with double columns.
-\def\enddoublecolumns{%
- % The following penalty ensures that the page builder is exercised
- % _before_ we change the output routine. This is necessary in the
- % following situation:
- %
- % The last section of the index consists only of a single entry.
- % Before this section, \pagetotal is less than \pagegoal, so no
- % break occurs before the last section starts. However, the last
- % section, consisting of \initial and the single \entry, does not
- % fit on the page and has to be broken off. Without the following
- % penalty the page builder will not be exercised until \eject
- % below, and by that time we'll already have changed the output
- % routine to the \balancecolumns version, so the next-to-last
- % double-column page will be processed with \balancecolumns, which
- % is wrong: The two columns will go to the main vertical list, with
- % the broken-off section in the recent contributions. As soon as
- % the output routine finishes, TeX starts reconsidering the page
- % break. The two columns and the broken-off section both fit on the
- % page, because the two columns now take up only half of the page
- % goal. When TeX sees \eject from below which follows the final
- % section, it invokes the new output routine that we've set after
- % \balancecolumns below; \onepageout will try to fit the two columns
- % and the final section into the vbox of \pageheight (see
- % \pagebody), causing an overfull box.
- %
- % Note that glue won't work here, because glue does not exercise the
- % page builder, unlike penalties (see The TeXbook, pp. 280-281).
- \penalty0
- %
- \output = {%
- % Split the last of the double-column material. Leave it on the
- % current page, no automatic page break.
- \balancecolumns
- %
- % If we end up splitting too much material for the current page,
- % though, there will be another page break right after this \output
- % invocation ends. Having called \balancecolumns once, we do not
- % want to call it again. Therefore, reset \output to its normal
- % definition right away. (We hope \balancecolumns will never be
- % called on to balance too much material, but if it is, this makes
- % the output somewhat more palatable.)
- \global\output = {\onepageout{\pagecontents\PAGE}}%
- }%
- \eject
- \endgroup % started in \begindoublecolumns
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize (after the
- % \endgroup where \vsize got restored).
- \pagegoal = \vsize
-}
-%
-% Called at the end of the double column material.
-\def\balancecolumns{%
- \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2 % target to split to
- %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {%
- \vbadness = 10000
- \loop
- \global\setbox3 = \copy0
- \global\setbox1 = \vsplit3 to \dimen@
- \ifdim\ht3>\dimen@
- \global\advance\dimen@ by 1pt
- \repeat
- }%
- %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- %
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Chapters, sections, etc.
-
-% \unnumberedno is an oxymoron, of course. But we count the unnumbered
-% sections so that we can refer to them unambiguously in the pdf
-% outlines by their "section number". We avoid collisions with chapter
-% numbers by starting them at 10000. (If a document ever has 10000
-% chapters, we're in trouble anyway, I'm sure.)
-\newcount\unnumberedno \unnumberedno = 10000
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-%
-% \def\appendixletter{\char\the\appendixno}
-% We do the following ugly conditional instead of the above simple
-% construct for the sake of pdftex, which needs the actual
-% letter in the expansion, not just typeset.
-%
-\def\appendixletter{%
- \ifnum\appendixno=`A A%
- \else\ifnum\appendixno=`B B%
- \else\ifnum\appendixno=`C C%
- \else\ifnum\appendixno=`D D%
- \else\ifnum\appendixno=`E E%
- \else\ifnum\appendixno=`F F%
- \else\ifnum\appendixno=`G G%
- \else\ifnum\appendixno=`H H%
- \else\ifnum\appendixno=`I I%
- \else\ifnum\appendixno=`J J%
- \else\ifnum\appendixno=`K K%
- \else\ifnum\appendixno=`L L%
- \else\ifnum\appendixno=`M M%
- \else\ifnum\appendixno=`N N%
- \else\ifnum\appendixno=`O O%
- \else\ifnum\appendixno=`P P%
- \else\ifnum\appendixno=`Q Q%
- \else\ifnum\appendixno=`R R%
- \else\ifnum\appendixno=`S S%
- \else\ifnum\appendixno=`T T%
- \else\ifnum\appendixno=`U U%
- \else\ifnum\appendixno=`V V%
- \else\ifnum\appendixno=`W W%
- \else\ifnum\appendixno=`X X%
- \else\ifnum\appendixno=`Y Y%
- \else\ifnum\appendixno=`Z Z%
- % The \the is necessary, despite appearances, because \appendixletter is
- % expanded while writing the .toc file. \char\appendixno is not
- % expandable, thus it is written literally, thus all appendixes come out
- % with the same letter (or @) in the toc without it.
- \else\char\the\appendixno
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% Each @chapter defines these (using marks) as the number+name, number
-% and name of the chapter. Page headings and footings can use
-% these. @section does likewise.
-\def\thischapter{}
-\def\thischapternum{}
-\def\thischaptername{}
-\def\thissection{}
-\def\thissectionnum{}
-\def\thissectionname{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% we only have subsub.
-\chardef\maxseclevel = 3
-%
-% A numbered section within an unnumbered changes to unnumbered too.
-% To achive this, remember the "biggest" unnum. sec. we are currently in:
-\chardef\unmlevel = \maxseclevel
-%
-% Trace whether the current chapter is an appendix or not:
-% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
-\def\chapheadtype{N}
-
-% Choose a heading macro
-% #1 is heading type
-% #2 is heading level
-% #3 is text for heading
-\def\genhead#1#2#3{%
- % Compute the abs. sec. level:
- \absseclevel=#2
- \advance\absseclevel by \secbase
- % Make sure \absseclevel doesn't fall outside the range:
- \ifnum \absseclevel < 0
- \absseclevel = 0
- \else
- \ifnum \absseclevel > 3
- \absseclevel = 3
- \fi
- \fi
- % The heading type:
- \def\headtype{#1}%
- \if \headtype U%
- \ifnum \absseclevel < \unmlevel
- \chardef\unmlevel = \absseclevel
- \fi
- \else
- % Check for appendix sections:
- \ifnum \absseclevel = 0
- \edef\chapheadtype{\headtype}%
- \else
- \if \headtype A\if \chapheadtype N%
- \errmessage{@appendix... within a non-appendix chapter}%
- \fi\fi
- \fi
- % Check for numbered within unnumbered:
- \ifnum \absseclevel > \unmlevel
- \def\headtype{U}%
- \else
- \chardef\unmlevel = 3
- \fi
- \fi
- % Now print the heading:
- \if \headtype U%
- \ifcase\absseclevel
- \unnumberedzzz{#3}%
- \or \unnumberedseczzz{#3}%
- \or \unnumberedsubseczzz{#3}%
- \or \unnumberedsubsubseczzz{#3}%
- \fi
- \else
- \if \headtype A%
- \ifcase\absseclevel
- \appendixzzz{#3}%
- \or \appendixsectionzzz{#3}%
- \or \appendixsubseczzz{#3}%
- \or \appendixsubsubseczzz{#3}%
- \fi
- \else
- \ifcase\absseclevel
- \chapterzzz{#3}%
- \or \seczzz{#3}%
- \or \numberedsubseczzz{#3}%
- \or \numberedsubsubseczzz{#3}%
- \fi
- \fi
- \fi
- \suppressfirstparagraphindent
-}
-
-% an interface:
-\def\numhead{\genhead N}
-\def\apphead{\genhead A}
-\def\unnmhead{\genhead U}
-
-% @chapter, @appendix, @unnumbered. Increment top-level counter, reset
-% all lower-level sectioning counters to zero.
-%
-% Also set \chaplevelprefix, which we prepend to @float sequence numbers
-% (e.g., figures), q.v. By default (before any chapter), that is empty.
-\let\chaplevelprefix = \empty
-%
-\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz#1{%
- % section resetting is \global in case the chapter is in a group, such
- % as an @include file.
- \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
- \global\advance\chapno by 1
- %
- % Used for \float.
- \gdef\chaplevelprefix{\the\chapno.}%
- \resetallfloatnos
- %
- % \putwordChapter can contain complex things in translations.
- \toks0=\expandafter{\putwordChapter}%
- \message{\the\toks0 \space \the\chapno}%
- %
- % Write the actual heading.
- \chapmacro{#1}{Ynumbered}{\the\chapno}%
- %
- % So @section and the like are numbered underneath this chapter.
- \global\let\section = \numberedsec
- \global\let\subsection = \numberedsubsec
- \global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz
-%
-\def\appendixzzz#1{%
- \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
- \global\advance\appendixno by 1
- \gdef\chaplevelprefix{\appendixletter.}%
- \resetallfloatnos
- %
- % \putwordAppendix can contain complex things in translations.
- \toks0=\expandafter{\putwordAppendix}%
- \message{\the\toks0 \space \appendixletter}%
- %
- \chapmacro{#1}{Yappendix}{\appendixletter}%
- %
- \global\let\section = \appendixsec
- \global\let\subsection = \appendixsubsec
- \global\let\subsubsection = \appendixsubsubsec
-}
-
-\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz#1{%
- \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
- \global\advance\unnumberedno by 1
- %
- % Since an unnumbered has no number, no prefix for figures.
- \global\let\chaplevelprefix = \empty
- \resetallfloatnos
- %
- % This used to be simply \message{#1}, but TeX fully expands the
- % argument to \message. Therefore, if #1 contained @-commands, TeX
- % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
- % expanded @cite (which turns out to cause errors because \cite is meant
- % to be executed, not expanded).
- %
- % Anyway, we don't want the fully-expanded definition of @cite to appear
- % as a result of the \message, we just want `@cite' itself. We use
- % \the<toks register> to achieve this: TeX expands \the<toks> only once,
- % simply yielding the contents of <toks register>. (We also do this for
- % the toc entries.)
- \toks0 = {#1}%
- \message{(\the\toks0)}%
- %
- \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
- %
- \global\let\section = \unnumberedsec
- \global\let\subsection = \unnumberedsubsec
- \global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\parseargdef\centerchap{%
- % Well, we could do the following in a group, but that would break
- % an assumption that \chapmacro is called at the outermost level.
- % Thus we are safer this way: --kasal, 24feb04
- \let\centerparametersmaybe = \centerparameters
- \unnmhead0{#1}%
- \let\centerparametersmaybe = \relax
-}
-
-% @top is like @unnumbered.
-\let\top\unnumbered
-
-% Sections.
-\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
-\def\seczzz#1{%
- \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
- \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
-}
-
-\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz#1{%
- \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
- \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
-}
-\let\appendixsec\appendixsection
-
-\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz#1{%
- \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
- \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
-}
-
-% Subsections.
-\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz#1{%
- \global\subsubsecno=0 \global\advance\subsecno by 1
- \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
-}
-
-\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz#1{%
- \global\subsubsecno=0 \global\advance\subsecno by 1
- \sectionheading{#1}{subsec}{Yappendix}%
- {\appendixletter.\the\secno.\the\subsecno}%
-}
-
-\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz#1{%
- \global\subsubsecno=0 \global\advance\subsecno by 1
- \sectionheading{#1}{subsec}{Ynothing}%
- {\the\unnumberedno.\the\secno.\the\subsecno}%
-}
-
-% Subsubsections.
-\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz#1{%
- \global\advance\subsubsecno by 1
- \sectionheading{#1}{subsubsec}{Ynumbered}%
- {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
-}
-
-\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz#1{%
- \global\advance\subsubsecno by 1
- \sectionheading{#1}{subsubsec}{Yappendix}%
- {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
-}
-
-\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz#1{%
- \global\advance\subsubsecno by 1
- \sectionheading{#1}{subsubsec}{Ynothing}%
- {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
-}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\let\section = \numberedsec
-\let\subsection = \numberedsubsec
-\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-\def\majorheading{%
- {\advance\chapheadingskip by 10pt \chapbreak }%
- \parsearg\chapheadingzzz
-}
-
-\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
-\def\chapheadingzzz#1{%
- {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}%
- \bigskip \par\penalty 200\relax
- \suppressfirstparagraphindent
-}
-
-% @heading, @subheading, @subsubheading.
-\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
- \suppressfirstparagraphindent}
-\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
- \suppressfirstparagraphindent}
-\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
- \suppressfirstparagraphindent}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-% Because \domark is called before \chapoddpage, the filler page will
-% get the headings for the next chapter, which is wrong. But we don't
-% care -- we just disable all headings on the filler page.
-\def\chapoddpage{%
- \chappager
- \ifodd\pageno \else
- \begingroup
- \evenheadline={\hfil}\evenfootline={\hfil}%
- \oddheadline={\hfil}\oddfootline={\hfil}%
- \hbox to 0pt{}%
- \chappager
- \endgroup
- \fi
-}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{%
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-% Chapter opening.
-%
-% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
-% Yappendix, Yomitfromtoc), #3 the chapter number.
-%
-% To test against our argument.
-\def\Ynothingkeyword{Ynothing}
-\def\Yomitfromtockeyword{Yomitfromtoc}
-\def\Yappendixkeyword{Yappendix}
-%
-\def\chapmacro#1#2#3{%
- % Insert the first mark before the heading break (see notes for \domark).
- \let\prevchapterdefs=\lastchapterdefs
- \let\prevsectiondefs=\lastsectiondefs
- \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
- \gdef\thissection{}}%
- %
- \def\temptype{#2}%
- \ifx\temptype\Ynothingkeyword
- \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
- \gdef\thischapter{\thischaptername}}%
- \else\ifx\temptype\Yomitfromtockeyword
- \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
- \gdef\thischapter{}}%
- \else\ifx\temptype\Yappendixkeyword
- \toks0={#1}%
- \xdef\lastchapterdefs{%
- \gdef\noexpand\thischaptername{\the\toks0}%
- \gdef\noexpand\thischapternum{\appendixletter}%
- % \noexpand\putwordAppendix avoids expanding indigestible
- % commands in some of the translations.
- \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
- \noexpand\thischapternum:
- \noexpand\thischaptername}%
- }%
- \else
- \toks0={#1}%
- \xdef\lastchapterdefs{%
- \gdef\noexpand\thischaptername{\the\toks0}%
- \gdef\noexpand\thischapternum{\the\chapno}%
- % \noexpand\putwordChapter avoids expanding indigestible
- % commands in some of the translations.
- \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
- \noexpand\thischapternum:
- \noexpand\thischaptername}%
- }%
- \fi\fi\fi
- %
- % Output the mark. Pass it through \safewhatsit, to take care of
- % the preceding space.
- \safewhatsit\domark
- %
- % Insert the chapter heading break.
- \pchapsepmacro
- %
- % Now the second mark, after the heading break. No break points
- % between here and the heading.
- \let\prevchapterdefs=\lastchapterdefs
- \let\prevsectiondefs=\lastsectiondefs
- \domark
- %
- {%
- \chapfonts \rmisbold
- %
- % Have to define \lastsection before calling \donoderef, because the
- % xref code eventually uses it. On the other hand, it has to be called
- % after \pchapsepmacro, or the headline will change too soon.
- \gdef\lastsection{#1}%
- %
- % Only insert the separating space if we have a chapter/appendix
- % number, and don't print the unnumbered ``number''.
- \ifx\temptype\Ynothingkeyword
- \setbox0 = \hbox{}%
- \def\toctype{unnchap}%
- \else\ifx\temptype\Yomitfromtockeyword
- \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
- \def\toctype{omit}%
- \else\ifx\temptype\Yappendixkeyword
- \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
- \def\toctype{app}%
- \else
- \setbox0 = \hbox{#3\enspace}%
- \def\toctype{numchap}%
- \fi\fi\fi
- %
- % Write the toc entry for this chapter. Must come before the
- % \donoderef, because we include the current node name in the toc
- % entry, and \donoderef resets it to empty.
- \writetocentry{\toctype}{#1}{#3}%
- %
- % For pdftex, we have to write out the node definition (aka, make
- % the pdfdest) after any page break, but before the actual text has
- % been typeset. If the destination for the pdf outline is after the
- % text, then jumping from the outline may wind up with the text not
- % being visible, for instance under high magnification.
- \donoderef{#2}%
- %
- % Typeset the actual heading.
- \nobreak % Avoid page breaks at the interline glue.
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
- \hangindent=\wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerparameters{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
-}
-
-
-% I don't think this chapter style is supported any more, so I'm not
-% updating it with the new noderef stuff. We'll see. --karl, 11aug03.
-%
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-%
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}\bigskip \par\nobreak
-}
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
-}
-\def\CHAPFopen{%
- \global\let\chapmacro=\chfopen
- \global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles. These macros combine the section number parts and
-% call the generic \sectionheading to do the printing.
-%
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
-
-% Subsection titles.
-\newskip\subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
-
-% Subsubsection titles.
-\def\subsubsecheadingskip{\subsecheadingskip}
-\def\subsubsecheadingbreak{\subsecheadingbreak}
-
-
-% Print any size, any type, section title.
-%
-% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
-% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
-% section number.
-%
-\def\seckeyword{sec}
-%
-\def\sectionheading#1#2#3#4{%
- {%
- % Switch to the right set of fonts.
- \csname #2fonts\endcsname \rmisbold
- %
- \def\sectionlevel{#2}%
- \def\temptype{#3}%
- %
- % Insert first mark before the heading break (see notes for \domark).
- \let\prevsectiondefs=\lastsectiondefs
- \ifx\temptype\Ynothingkeyword
- \ifx\sectionlevel\seckeyword
- \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
- \gdef\thissection{\thissectionname}}%
- \fi
- \else\ifx\temptype\Yomitfromtockeyword
- % Don't redefine \thissection.
- \else\ifx\temptype\Yappendixkeyword
- \ifx\sectionlevel\seckeyword
- \toks0={#1}%
- \xdef\lastsectiondefs{%
- \gdef\noexpand\thissectionname{\the\toks0}%
- \gdef\noexpand\thissectionnum{#4}%
- % \noexpand\putwordSection avoids expanding indigestible
- % commands in some of the translations.
- \gdef\noexpand\thissection{\noexpand\putwordSection{}
- \noexpand\thissectionnum:
- \noexpand\thissectionname}%
- }%
- \fi
- \else
- \ifx\sectionlevel\seckeyword
- \toks0={#1}%
- \xdef\lastsectiondefs{%
- \gdef\noexpand\thissectionname{\the\toks0}%
- \gdef\noexpand\thissectionnum{#4}%
- % \noexpand\putwordSection avoids expanding indigestible
- % commands in some of the translations.
- \gdef\noexpand\thissection{\noexpand\putwordSection{}
- \noexpand\thissectionnum:
- \noexpand\thissectionname}%
- }%
- \fi
- \fi\fi\fi
- %
- % Go into vertical mode. Usually we'll already be there, but we
- % don't want the following whatsit to end up in a preceding paragraph
- % if the document didn't happen to have a blank line.
- \par
- %
- % Output the mark. Pass it through \safewhatsit, to take care of
- % the preceding space.
- \safewhatsit\domark
- %
- % Insert space above the heading.
- \csname #2headingbreak\endcsname
- %
- % Now the second mark, after the heading break. No break points
- % between here and the heading.
- \let\prevsectiondefs=\lastsectiondefs
- \domark
- %
- % Only insert the space after the number if we have a section number.
- \ifx\temptype\Ynothingkeyword
- \setbox0 = \hbox{}%
- \def\toctype{unn}%
- \gdef\lastsection{#1}%
- \else\ifx\temptype\Yomitfromtockeyword
- % for @headings -- no section number, don't include in toc,
- % and don't redefine \lastsection.
- \setbox0 = \hbox{}%
- \def\toctype{omit}%
- \let\sectionlevel=\empty
- \else\ifx\temptype\Yappendixkeyword
- \setbox0 = \hbox{#4\enspace}%
- \def\toctype{app}%
- \gdef\lastsection{#1}%
- \else
- \setbox0 = \hbox{#4\enspace}%
- \def\toctype{num}%
- \gdef\lastsection{#1}%
- \fi\fi\fi
- %
- % Write the toc entry (before \donoderef). See comments in \chapmacro.
- \writetocentry{\toctype\sectionlevel}{#1}{#4}%
- %
- % Write the node reference (= pdf destination for pdftex).
- % Again, see comments in \chapmacro.
- \donoderef{#3}%
- %
- % Interline glue will be inserted when the vbox is completed.
- % That glue will be a valid breakpoint for the page, since it'll be
- % preceded by a whatsit (usually from the \donoderef, or from the
- % \writetocentry if there was no node). We don't want to allow that
- % break, since then the whatsits could end up on page n while the
- % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
- \nobreak
- %
- % Output the actual section heading.
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
- \hangindent=\wd0 % zero if no section number
- \unhbox0 #1}%
- }%
- % Add extra space after the heading -- half of whatever came above it.
- % Don't allow stretch, though.
- \kern .5 \csname #2headingskip\endcsname
- %
- % Do not let the kern be a potential breakpoint, as it would be if it
- % was followed by glue.
- \nobreak
- %
- % We'll almost certainly start a paragraph next, so don't let that
- % glue accumulate. (Not a breakpoint because it's preceded by a
- % discardable item.)
- \vskip-\parskip
- %
- % This is purely so the last item on the list is a known \penalty >
- % 10000. This is so \startdefun can avoid allowing breakpoints after
- % section headings. Otherwise, it would insert a valid breakpoint between:
- %
- % @section sec-whatever
- % @deffn def-whatever
- \penalty 10001
-}
-
-
-\message{toc,}
-% Table of contents.
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc.
-%
-% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
-% We append the current node name (if any) and page number as additional
-% arguments for the \{chap,sec,...}entry macros which will eventually
-% read this. The node name is used in the pdf outlines as the
-% destination to jump to.
-%
-% We open the .toc file for writing here instead of at @setfilename (or
-% any other fixed time) so that @contents can be anywhere in the document.
-% But if #1 is `omit', then we don't do anything. This is used for the
-% table of contents chapter openings themselves.
-%
-\newif\iftocfileopened
-\def\omitkeyword{omit}%
-%
-\def\writetocentry#1#2#3{%
- \edef\writetoctype{#1}%
- \ifx\writetoctype\omitkeyword \else
- \iftocfileopened\else
- \immediate\openout\tocfile = \jobname.toc
- \global\tocfileopenedtrue
- \fi
- %
- \iflinks
- {\atdummies
- \edef\temp{%
- \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
- \temp
- }%
- \fi
- \fi
- %
- % Tell \shipout to create a pdf destination on each page, if we're
- % writing pdf. These are used in the table of contents. We can't
- % just write one on every page because the title pages are numbered
- % 1 and 2 (the page numbers aren't printed), and so are the first
- % two pages of the document. Thus, we'd have two destinations named
- % `1', and two named `2'.
- \ifpdf \global\pdfmakepagedesttrue \fi
-}
-
-
-% These characters do not print properly in the Computer Modern roman
-% fonts, so we must take special care. This is more or less redundant
-% with the Texinfo input format setup at the end of this file.
-%
-\def\activecatcodes{%
- \catcode`\"=\active
- \catcode`\$=\active
- \catcode`\<=\active
- \catcode`\>=\active
- \catcode`\\=\active
- \catcode`\^=\active
- \catcode`\_=\active
- \catcode`\|=\active
- \catcode`\~=\active
-}
-
-
-% Read the toc file, which is essentially Texinfo input.
-\def\readtocfile{%
- \setupdatafile
- \activecatcodes
- \input \tocreadfilename
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Prepare to read what we've written to \tocfile.
-%
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout\tocfile
- %
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \chapmacro{#1}{Yomitfromtoc}{}%
- %
- \savepageno = \pageno
- \begingroup % Set up to handle contents files properly.
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
- %
- % Roman numerals for page numbers.
- \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
-}
-
-% redefined for the two-volume lispref. We always output on
-% \jobname.toc even if this is redefined.
-%
-\def\tocreadfilename{\jobname.toc}
-
-% Normal (long) toc.
-%
-\def\contents{%
- \startcontents{\putwordTOC}%
- \openin 1 \tocreadfilename\space
- \ifeof 1 \else
- \readtocfile
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \ifeof 1 \else
- \pdfmakeoutlines
- \fi
- \closein 1
- \endgroup
- \lastnegativepageno = \pageno
- \global\pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
- \startcontents{\putwordShortTOC}%
- %
- \let\numchapentry = \shortchapentry
- \let\appentry = \shortchapentry
- \let\unnchapentry = \shortunnchapentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf
- \let\sl=\shortcontsl \let\tt=\shortconttt
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\numsecentry##1##2##3##4{}
- \let\appsecentry = \numsecentry
- \let\unnsecentry = \numsecentry
- \let\numsubsecentry = \numsecentry
- \let\appsubsecentry = \numsecentry
- \let\unnsubsecentry = \numsecentry
- \let\numsubsubsecentry = \numsecentry
- \let\appsubsubsecentry = \numsecentry
- \let\unnsubsubsecentry = \numsecentry
- \openin 1 \tocreadfilename\space
- \ifeof 1 \else
- \readtocfile
- \fi
- \closein 1
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \endgroup
- \lastnegativepageno = \pageno
- \global\pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
-%
-\def\shortchaplabel#1{%
- % This space should be enough, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % But use \hss just in case.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- %
- % We'd like to right-justify chapter numbers, but that looks strange
- % with appendix letters. And right-justifying numbers and
- % left-justifying letters looks strange when there is less than 10
- % chapters. Have to read the whole toc once to know how many chapters
- % there are before deciding ...
- \hbox to 1em{#1\hss}%
-}
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapters, in the main contents.
-\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
-%
-% Chapters, in the short toc.
-% See comments in \dochapentry re vbox and related settings.
-\def\shortchapentry#1#2#3#4{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
-}
-
-% Appendices, in the main contents.
-% Need the word Appendix, and a fixed-size box.
-%
-\def\appendixbox#1{%
- % We use M since it's probably the widest letter.
- \setbox0 = \hbox{\putwordAppendix{} M}%
- \hbox to \wd0{\putwordAppendix{} #1\hss}}
-%
-\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
-
-% Unnumbered chapters.
-\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
-
-% Sections.
-\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
-\let\appsecentry=\numsecentry
-\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
-
-% Subsections.
-\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
-\let\appsubsecentry=\numsubsecentry
-\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
-
-% And subsubsections.
-\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
-\let\appsubsubsecentry=\numsubsubsecentry
-\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
-
-% This parameter controls the indentation of the various levels.
-% Same as \defaultparindent.
-\newdimen\tocindent \tocindent = 15pt
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-% We use the same \entry macro as for the index entries.
-\let\tocentry = \entry
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\def\subsecentryfonts{\textfonts}
-\def\subsubsecentryfonts{\textfonts}
-
-
-\message{environments,}
-% @foo ... @end foo.
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\envdef\tex{%
- \setupmarkupstyle{tex}%
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
- \catcode `\%=14
- \catcode `\+=\other
- \catcode `\"=\other
- \catcode `\|=\other
- \catcode `\<=\other
- \catcode `\>=\other
- \catcode`\`=\other
- \catcode`\'=\other
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\indent=\ptexindent
- \let\noindent=\ptexnoindent
- \let\{=\ptexlbrace
- \let\+=\tabalign
- \let\}=\ptexrbrace
- \let\/=\ptexslash
- \let\*=\ptexstar
- \let\t=\ptext
- \expandafter \let\csname top\endcsname=\ptextop % outer
- \let\frenchspacing=\plainfrenchspacing
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-}
-% There is no need to define \Etex.
-
-% Define @lisp ... @end lisp.
-% @lisp environment forms a group so it can rebind things,
-% including the definition of @end lisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip.
-%
-\def\aboveenvbreak{{%
- % =10000 instead of <10000 because of a special case in \itemzzz and
- % \sectionheading, q.v.
- \ifnum \lastpenalty=10000 \else
- \advance\envskipamount by \parskip
- \endgraf
- \ifdim\lastskip<\envskipamount
- \removelastskip
- % it's not a good place to break if the last penalty was \nobreak
- % or better ...
- \ifnum\lastpenalty<10000 \penalty-50 \fi
- \vskip\envskipamount
- \fi
- \fi
-}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
-% also clear it, so that its embedded environments do the narrowing again.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\envdef\cartouche{%
- \ifhmode\par\fi % can't be in the midst of a paragraph.
- \startsavinginserts
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt % we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18.4pt % allow for 3pt kerns on either
- % side, and for 6pt waste from
- % each corner char, and rule thickness
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing = t%
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \kern3pt
- \hsize=\cartinner
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
- \comment % For explanation, see the end of \def\group.
-}
-\def\Ecartouche{%
- \ifhmode\par\fi
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
- \checkinserts
-}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\newdimen\nonfillparindent
-\def\nonfillstart{%
- \aboveenvbreak
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- % Turn off paragraph indentation but redefine \indent to emulate
- % the normal \indent.
- \nonfillparindent=\parindent
- \parindent = 0pt
- \let\indent\nonfillindent
- %
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \else
- \let\nonarrowing = \relax
- \fi
- \let\exdent=\nofillexdent
-}
-
-\begingroup
-\obeyspaces
-% We want to swallow spaces (but not other tokens) after the fake
-% @indent in our nonfill-environments, where spaces are normally
-% active and set to @tie, resulting in them not being ignored after
-% @indent.
-\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}%
-\gdef\nonfillindentcheck{%
-\ifx\temp %
-\expandafter\nonfillindentgobble%
-\else%
-\leavevmode\nonfillindentbox%
-\fi%
-}%
-\endgroup
-\def\nonfillindentgobble#1{\nonfillindent}
-\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}}
-
-% If you want all examples etc. small: @set dispenvsize small.
-% If you want even small examples the full size: @set dispenvsize nosmall.
-% This affects the following displayed environments:
-% @example, @display, @format, @lisp
-%
-\def\smallword{small}
-\def\nosmallword{nosmall}
-\let\SETdispenvsize\relax
-\def\setnormaldispenv{%
- \ifx\SETdispenvsize\smallword
- % end paragraph for sake of leading, in case document has no blank
- % line. This is redundant with what happens in \aboveenvbreak, but
- % we need to do it before changing the fonts, and it's inconvenient
- % to change the fonts afterward.
- \ifnum \lastpenalty=10000 \else \endgraf \fi
- \smallexamplefonts \rm
- \fi
-}
-\def\setsmalldispenv{%
- \ifx\SETdispenvsize\nosmallword
- \else
- \ifnum \lastpenalty=10000 \else \endgraf \fi
- \smallexamplefonts \rm
- \fi
-}
-
-% We often define two environments, @foo and @smallfoo.
-% Let's do it by one command:
-\def\makedispenv #1#2{
- \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
- \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
- \expandafter\let\csname E#1\endcsname \afterenvbreak
- \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
-}
-
-% Define two synonyms:
-\def\maketwodispenvs #1#2#3{
- \makedispenv{#1}{#3}
- \makedispenv{#2}{#3}
-}
-
-% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
-%
-% @smallexample and @smalllisp: use smaller fonts.
-% Originally contributed by Pavel@xerox.
-%
-\maketwodispenvs {lisp}{example}{%
- \nonfillstart
- \tt\setupmarkupstyle{example}%
- \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
-}
-% @display/@smalldisplay: same as @lisp except keep current font.
-%
-\makedispenv {display}{%
- \nonfillstart
- \gobble
-}
-
-% @format/@smallformat: same as @display except don't narrow margins.
-%
-\makedispenv{format}{%
- \let\nonarrowing = t%
- \nonfillstart
- \gobble
-}
-
-% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
-\envdef\flushleft{%
- \let\nonarrowing = t%
- \nonfillstart
- \gobble
-}
-\let\Eflushleft = \afterenvbreak
-
-% @flushright.
-%
-\envdef\flushright{%
- \let\nonarrowing = t%
- \nonfillstart
- \advance\leftskip by 0pt plus 1fill
- \gobble
-}
-\let\Eflushright = \afterenvbreak
-
-
-% @raggedright does more-or-less normal line breaking but no right
-% justification. From plain.tex.
-\envdef\raggedright{%
- \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
-}
-\let\Eraggedright\par
-
-\envdef\raggedleft{%
- \parindent=0pt \leftskip0pt plus2em
- \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
- \hbadness=10000 % Last line will usually be underfull, so turn off
- % badness reporting.
-}
-\let\Eraggedleft\par
-
-\envdef\raggedcenter{%
- \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em
- \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
- \hbadness=10000 % Last line will usually be underfull, so turn off
- % badness reporting.
-}
-\let\Eraggedcenter\par
-
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins. We keep \parskip nonzero in general, since
-% we're doing normal filling. So, when using \aboveenvbreak and
-% \afterenvbreak, temporarily make \parskip 0.
-%
-\def\quotationstart{%
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \parindent=0pt
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \else
- \let\nonarrowing = \relax
- \fi
- \parsearg\quotationlabel
-}
-
-\envdef\quotation{%
- \setnormaldispenv
- \quotationstart
-}
-
-\envdef\smallquotation{%
- \setsmalldispenv
- \quotationstart
-}
-\let\Esmallquotation = \Equotation
-
-% We have retained a nonzero parskip for the environment, since we're
-% doing normal filling.
-%
-\def\Equotation{%
- \par
- \ifx\quotationauthor\undefined\else
- % indent a bit.
- \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
- \fi
- {\parskip=0pt \afterenvbreak}%
-}
-
-% If we're given an argument, typeset it in bold with a colon after.
-\def\quotationlabel#1{%
- \def\temp{#1}%
- \ifx\temp\empty \else
- {\bf #1: }%
- \fi
-}
-
-
-% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
-% If we want to allow any <char> as delimiter,
-% we need the curly braces so that makeinfo sees the @verb command, eg:
-% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
-%
-% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
-%
-% [Knuth] p.344; only we need to do the other characters Texinfo sets
-% active too. Otherwise, they get lost as the first character on a
-% verbatim line.
-\def\dospecials{%
- \do\ \do\\\do\{\do\}\do\$\do\&%
- \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
- \do\<\do\>\do\|\do\@\do+\do\"%
- % Don't do the quotes -- if we do, @set txicodequoteundirected and
- % @set txicodequotebacktick will not have effect on @verb and
- % @verbatim, and ?` and !` ligatures won't get disabled.
- %\do\`\do\'%
-}
-%
-% [Knuth] p. 380
-\def\uncatcodespecials{%
- \def\do##1{\catcode`##1=\other}\dospecials}
-%
-% Setup for the @verb command.
-%
-% Eight spaces for a tab
-\begingroup
- \catcode`\^^I=\active
- \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
-\endgroup
-%
-\def\setupverb{%
- \tt % easiest (and conventionally used) font for verbatim
- \def\par{\leavevmode\endgraf}%
- \setupmarkupstyle{verb}%
- \tabeightspaces
- % Respect line breaks,
- % print special symbols as themselves, and
- % make each space count
- % must do in this order:
- \obeylines \uncatcodespecials \sepspaces
-}
-
-% Setup for the @verbatim environment
-%
-% Real tab expansion
-\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
-%
-\def\starttabbox{\setbox0=\hbox\bgroup}
-%
-\begingroup
- \catcode`\^^I=\active
- \gdef\tabexpand{%
- \catcode`\^^I=\active
- \def^^I{\leavevmode\egroup
- \dimen0=\wd0 % the width so far, or since the previous tab
- \divide\dimen0 by\tabw
- \multiply\dimen0 by\tabw % compute previous multiple of \tabw
- \advance\dimen0 by\tabw % advance to next multiple of \tabw
- \wd0=\dimen0 \box0 \starttabbox
- }%
- }
-\endgroup
-
-% start the verbatim environment.
-\def\setupverbatim{%
- \let\nonarrowing = t%
- \nonfillstart
- % Easiest (and conventionally used) font for verbatim
- \tt
- \def\par{\leavevmode\egroup\box0\endgraf}%
- \tabexpand
- \setupmarkupstyle{verbatim}%
- % Respect line breaks,
- % print special symbols as themselves, and
- % make each space count
- % must do in this order:
- \obeylines \uncatcodespecials \sepspaces
- \everypar{\starttabbox}%
-}
-
-% Do the @verb magic: verbatim text is quoted by unique
-% delimiter characters. Before first delimiter expect a
-% right brace, after last delimiter expect closing brace:
-%
-% \def\doverb'{'<char>#1<char>'}'{#1}
-%
-% [Knuth] p. 382; only eat outer {}
-\begingroup
- \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
- \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
-\endgroup
-%
-\def\verb{\begingroup\setupverb\doverb}
-%
-%
-% Do the @verbatim magic: define the macro \doverbatim so that
-% the (first) argument ends when '@end verbatim' is reached, ie:
-%
-% \def\doverbatim#1@end verbatim{#1}
-%
-% For Texinfo it's a lot easier than for LaTeX,
-% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
-% we need not redefine '\', '{' and '}'.
-%
-% Inspired by LaTeX's verbatim command set [latex.ltx]
-%
-\begingroup
- \catcode`\ =\active
- \obeylines %
- % ignore everything up to the first ^^M, that's the newline at the end
- % of the @verbatim input line itself. Otherwise we get an extra blank
- % line in the output.
- \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
- % We really want {...\end verbatim} in the body of the macro, but
- % without the active space; thus we have to use \xdef and \gobble.
-\endgroup
-%
-\envdef\verbatim{%
- \setupverbatim\doverbatim
-}
-\let\Everbatim = \afterenvbreak
-
-
-% @verbatiminclude FILE - insert text of file in verbatim environment.
-%
-\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
-%
-\def\doverbatiminclude#1{%
- {%
- \makevalueexpandable
- \setupverbatim
- \indexnofonts % Allow `@@' and other weird things in file names.
- \input #1
- \afterenvbreak
- }%
-}
-
-% @copying ... @end copying.
-% Save the text away for @insertcopying later.
-%
-% We save the uninterpreted tokens, rather than creating a box.
-% Saving the text in a box would be much easier, but then all the
-% typesetting commands (@smallbook, font changes, etc.) have to be done
-% beforehand -- and a) we want @copying to be done first in the source
-% file; b) letting users define the frontmatter in as flexible order as
-% possible is very desirable.
-%
-\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
-\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
-%
-\def\insertcopying{%
- \begingroup
- \parindent = 0pt % paragraph indentation looks wrong on title page
- \scanexp\copyingtext
- \endgroup
-}
-
-
-\message{defuns,}
-% @defun etc.
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-\newcount\defunpenalty
-
-% Start the processing of @deffn:
-\def\startdefun{%
- \ifnum\lastpenalty<10000
- \medbreak
- \defunpenalty=10003 % Will keep this @deffn together with the
- % following @def command, see below.
- \else
- % If there are two @def commands in a row, we'll have a \nobreak,
- % which is there to keep the function description together with its
- % header. But if there's nothing but headers, we need to allow a
- % break somewhere. Check specifically for penalty 10002, inserted
- % by \printdefunline, instead of 10000, since the sectioning
- % commands also insert a nobreak penalty, and we don't want to allow
- % a break between a section heading and a defun.
- %
- % As a minor refinement, we avoid "club" headers by signalling
- % with penalty of 10003 after the very first @deffn in the
- % sequence (see above), and penalty of 10002 after any following
- % @def command.
- \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
- %
- % Similarly, after a section heading, do not allow a break.
- % But do insert the glue.
- \medskip % preceded by discardable penalty, so not a breakpoint
- \fi
- %
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
-}
-
-\def\dodefunx#1{%
- % First, check whether we are in the right environment:
- \checkenv#1%
- %
- % As above, allow line break if we have multiple x headers in a row.
- % It's not a great place, though.
- \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
- %
- % And now, it's time to reuse the body of the original defun:
- \expandafter\gobbledefun#1%
-}
-\def\gobbledefun#1\startdefun{}
-
-% \printdefunline \deffnheader{text}
-%
-\def\printdefunline#1#2{%
- \begingroup
- % call \deffnheader:
- #1#2 \endheader
- % common ending:
- \interlinepenalty = 10000
- \advance\rightskip by 0pt plus 1fil
- \endgraf
- \nobreak\vskip -\parskip
- \penalty\defunpenalty % signal to \startdefun and \dodefunx
- % Some of the @defun-type tags do not enable magic parentheses,
- % rendering the following check redundant. But we don't optimize.
- \checkparencounts
- \endgroup
-}
-
-\def\Edefun{\endgraf\medbreak}
-
-% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
-% the only thing remaining is to define \deffnheader.
-%
-\def\makedefun#1{%
- \expandafter\let\csname E#1\endcsname = \Edefun
- \edef\temp{\noexpand\domakedefun
- \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
- \temp
-}
-
-% \domakedefun \deffn \deffnx \deffnheader
-%
-% Define \deffn and \deffnx, without parameters.
-% \deffnheader has to be defined explicitly.
-%
-\def\domakedefun#1#2#3{%
- \envdef#1{%
- \startdefun
- \parseargusing\activeparens{\printdefunline#3}%
- }%
- \def#2{\dodefunx#1}%
- \def#3%
-}
-
-%%% Untyped functions:
-
-% @deffn category name args
-\makedefun{deffn}{\deffngeneral{}}
-
-% @deffn category class name args
-\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
-
-% \defopon {category on}class name args
-\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-
-% \deffngeneral {subind}category name args
-%
-\def\deffngeneral#1#2 #3 #4\endheader{%
- % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
- \dosubind{fn}{\code{#3}}{#1}%
- \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
-}
-
-%%% Typed functions:
-
-% @deftypefn category type name args
-\makedefun{deftypefn}{\deftypefngeneral{}}
-
-% @deftypeop category class type name args
-\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
-
-% \deftypeopon {category on}class type name args
-\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-
-% \deftypefngeneral {subind}category type name args
-%
-\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
- \dosubind{fn}{\code{#4}}{#1}%
- \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
-}
-
-%%% Typed variables:
-
-% @deftypevr category type var args
-\makedefun{deftypevr}{\deftypecvgeneral{}}
-
-% @deftypecv category class type var args
-\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
-
-% \deftypecvof {category of}class type var args
-\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
-
-% \deftypecvgeneral {subind}category type var args
-%
-\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
- \dosubind{vr}{\code{#4}}{#1}%
- \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
-}
-
-%%% Untyped variables:
-
-% @defvr category var args
-\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
-
-% @defcv category class var args
-\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
-
-% \defcvof {category of}class var args
-\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-
-%%% Type:
-% @deftp category name args
-\makedefun{deftp}#1 #2 #3\endheader{%
- \doind{tp}{\code{#2}}%
- \defname{#1}{}{#2}\defunargs{#3\unskip}%
-}
-
-% Remaining @defun-like shortcuts:
-\makedefun{defun}{\deffnheader{\putwordDeffunc} }
-\makedefun{defmac}{\deffnheader{\putwordDefmac} }
-\makedefun{defspec}{\deffnheader{\putwordDefspec} }
-\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
-\makedefun{defvar}{\defvrheader{\putwordDefvar} }
-\makedefun{defopt}{\defvrheader{\putwordDefopt} }
-\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
-\makedefun{defmethod}{\defopon\putwordMethodon}
-\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
-\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
-\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
-
-% \defname, which formats the name of the @def (not the args).
-% #1 is the category, such as "Function".
-% #2 is the return type, if any.
-% #3 is the function name.
-%
-% We are followed by (but not passed) the arguments, if any.
-%
-\def\defname#1#2#3{%
- % Get the values of \leftskip and \rightskip as they were outside the @def...
- \advance\leftskip by -\defbodyindent
- %
- % How we'll format the type name. Putting it in brackets helps
- % distinguish it from the body text that may end up on the next line
- % just below it.
- \def\temp{#1}%
- \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
- %
- % Figure out line sizes for the paragraph shape.
- % The first line needs space for \box0; but if \rightskip is nonzero,
- % we need only space for the part of \box0 which exceeds it:
- \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
- % The continuations:
- \dimen2=\hsize \advance\dimen2 by -\defargsindent
- % (plain.tex says that \dimen1 should be used only as global.)
- \parshape 2 0in \dimen0 \defargsindent \dimen2
- %
- % Put the type name to the right margin.
- \noindent
- \hbox to 0pt{%
- \hfil\box0 \kern-\hsize
- % \hsize has to be shortened this way:
- \kern\leftskip
- % Intentionally do not respect \rightskip, since we need the space.
- }%
- %
- % Allow all lines to be underfull without complaint:
- \tolerance=10000 \hbadness=10000
- \exdentamount=\defbodyindent
- {%
- % defun fonts. We use typewriter by default (used to be bold) because:
- % . we're printing identifiers, they should be in tt in principle.
- % . in languages with many accents, such as Czech or French, it's
- % common to leave accents off identifiers. The result looks ok in
- % tt, but exceedingly strange in rm.
- % . we don't want -- and --- to be treated as ligatures.
- % . this still does not fix the ?` and !` ligatures, but so far no
- % one has made identifiers using them :).
- \df \tt
- \def\temp{#2}% return value type
- \ifx\temp\empty\else \tclose{\temp} \fi
- #3% output function name
- }%
- {\rm\enskip}% hskip 0.5 em of \tenrm
- %
- \boldbrax
- % arguments will be output next, if any.
-}
-
-% Print arguments in slanted roman (not ttsl), inconsistently with using
-% tt for the name. This is because literal text is sometimes needed in
-% the argument list (groff manual), and ttsl and tt are not very
-% distinguishable. Prevent hyphenation at `-' chars.
-%
-\def\defunargs#1{%
- % use sl by default (not ttsl),
- % tt for the names.
- \df \sl \hyphenchar\font=0
- %
- % On the other hand, if an argument has two dashes (for instance), we
- % want a way to get ttsl. Let's try @var for that.
- \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
- #1%
- \sl\hyphenchar\font=45
-}
-
-% We want ()&[] to print specially on the defun line.
-%
-\def\activeparens{%
- \catcode`\(=\active \catcode`\)=\active
- \catcode`\[=\active \catcode`\]=\active
- \catcode`\&=\active
-}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-{
- \activeparens
- \global\let(=\lparen \global\let)=\rparen
- \global\let[=\lbrack \global\let]=\rbrack
- \global\let& = \&
-
- \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
- \gdef\magicamp{\let&=\amprm}
-}
-
-\newcount\parencount
-
-% If we encounter &foo, then turn on ()-hacking afterwards
-\newif\ifampseen
-\def\amprm#1 {\ampseentrue{\bf\&#1 }}
-
-\def\parenfont{%
- \ifampseen
- % At the first level, print parens in roman,
- % otherwise use the default font.
- \ifnum \parencount=1 \rm \fi
- \else
- % The \sf parens (in \boldbrax) actually are a little bolder than
- % the contained text. This is especially needed for [ and ] .
- \sf
- \fi
-}
-\def\infirstlevel#1{%
- \ifampseen
- \ifnum\parencount=1
- #1%
- \fi
- \fi
-}
-\def\bfafterword#1 {#1 \bf}
-
-\def\opnr{%
- \global\advance\parencount by 1
- {\parenfont(}%
- \infirstlevel \bfafterword
-}
-\def\clnr{%
- {\parenfont)}%
- \infirstlevel \sl
- \global\advance\parencount by -1
-}
-
-\newcount\brackcount
-\def\lbrb{%
- \global\advance\brackcount by 1
- {\bf[}%
-}
-\def\rbrb{%
- {\bf]}%
- \global\advance\brackcount by -1
-}
-
-\def\checkparencounts{%
- \ifnum\parencount=0 \else \badparencount \fi
- \ifnum\brackcount=0 \else \badbrackcount \fi
-}
-% these should not use \errmessage; the glibc manual, at least, actually
-% has such constructs (when documenting function pointers).
-\def\badparencount{%
- \message{Warning: unbalanced parentheses in @def...}%
- \global\parencount=0
-}
-\def\badbrackcount{%
- \message{Warning: unbalanced square brackets in @def...}%
- \global\brackcount=0
-}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens,
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scantokens#1{%
- \toks0={#1}%
- \immediate\openout\macscribble=\jobname.tmp
- \immediate\write\macscribble{\the\toks0}%
- \immediate\closeout\macscribble
- \input \jobname.tmp
- }
-\fi
-
-\def\scanmacro#1{%
- \begingroup
- \newlinechar`\^^M
- \let\xeatspaces\eatspaces
- % Undo catcode changes of \startcontents and \doprintindex
- % When called from @insertcopying or (short)caption, we need active
- % backslash to get it printed correctly. Previously, we had
- % \catcode`\\=\other instead. We'll see whether a problem appears
- % with macro expansion. --kasal, 19aug04
- \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
- % ... and \example
- \spaceisspace
- %
- % Append \endinput to make sure that TeX does not see the ending newline.
- % I've verified that it is necessary both for e-TeX and for ordinary TeX
- % --kasal, 29nov03
- \scantokens{#1\endinput}%
- \endgroup
-}
-
-\def\scanexp#1{%
- \edef\temp{\noexpand\scanmacro{#1}}%
- \temp
-}
-
-\newcount\paramno % Count of parameters
-\newtoks\macname % Macro name
-\newif\ifrecursive % Is it recursive?
-
-% List of all defined macros in the form
-% \definedummyword\macro1\definedummyword\macro2...
-% Currently is also contains all @aliases; the list can be split
-% if there is a need.
-\def\macrolist{}
-
-% Add the macro to \macrolist
-\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
-\def\addtomacrolistxxx#1{%
- \toks0 = \expandafter{\macrolist\definedummyword#1}%
- \xdef\macrolist{\the\toks0}%
-}
-
-% Utility routines.
-% This does \let #1 = #2, with \csnames; that is,
-% \let \csname#1\endcsname = \csname#2\endcsname
-% (except of course we have to play expansion games).
-%
-\def\cslet#1#2{%
- \expandafter\let
- \csname#1\expandafter\endcsname
- \csname#2\endcsname
-}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
-{\catcode`\@=11
-\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } #2@{#1}
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=\other \catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% Non-ASCII encodings make 8-bit characters active, so un-activate
-% them to avoid their expansion. Must do this non-globally, to
-% confine the change to the current group.
-
-% It's necessary to have hard CRs when the macro is executed. This is
-% done by making ^^M (\endlinechar) catcode 12 when reading the macro
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\scanctxt{%
- \catcode`\"=\other
- \catcode`\+=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\@=\other
- \catcode`\^=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\~=\other
- \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
-}
-
-\def\scanargctxt{%
- \scanctxt
- \catcode`\\=\other
- \catcode`\^^M=\other
-}
-
-\def\macrobodyctxt{%
- \scanctxt
- \catcode`\{=\other
- \catcode`\}=\other
- \catcode`\^^M=\other
- \usembodybackslash
-}
-
-\def\macroargctxt{%
- \scanctxt
- \catcode`\\=\other
-}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
-{\catcode`@=0 @catcode`@\=@active
- @gdef@usembodybackslash{@let\=@mbodybackslash}
- @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
- \getargs{#1}% now \macname is the macname and \argl the arglist
- \ifx\argl\empty % no arguments
- \paramno=0%
- \else
- \expandafter\parsemargdef \argl;%
- \fi
- \if1\csname ismacro.\the\macname\endcsname
- \message{Warning: redefining \the\macname}%
- \else
- \expandafter\ifx\csname \the\macname\endcsname \relax
- \else \errmessage{Macro name \the\macname\space already defined}\fi
- \global\cslet{macsave.\the\macname}{\the\macname}%
- \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
- \addtomacrolist{\the\macname}%
- \fi
- \begingroup \macrobodyctxt
- \ifrecursive \expandafter\parsermacbody
- \else \expandafter\parsemacbody
- \fi}
-
-\parseargdef\unmacro{%
- \if1\csname ismacro.#1\endcsname
- \global\cslet{#1}{macsave.#1}%
- \global\expandafter\let \csname ismacro.#1\endcsname=0%
- % Remove the macro name from \macrolist:
- \begingroup
- \expandafter\let\csname#1\endcsname \relax
- \let\definedummyword\unmacrodo
- \xdef\macrolist{\macrolist}%
- \endgroup
- \else
- \errmessage{Macro #1 not defined}%
- \fi
-}
-
-% Called by \do from \dounmacro on each macro. The idea is to omit any
-% macro definitions that have been changed to \relax.
-%
-\def\unmacrodo#1{%
- \ifx #1\relax
- % remove this
- \else
- \noexpand\definedummyword \noexpand#1%
- \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
- \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
- \if#1;\let\next=\relax
- \else \let\next=\parsemargdefxxx
- \advance\paramno by 1%
- \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
- \edef\paramlist{\paramlist\hash\the\paramno,}%
- \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
- \let\hash=##% convert placeholders to macro parameter chars
- \ifrecursive
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\scanmacro{\temp}}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
- \fi
- \else
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \fi
- \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {. If so it reads up to the closing }, if not, it reads the whole
-% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
- \ifx\nchar\bgroup\else
- \expandafter\parsearg
- \fi \macnamexxx}
-
-
-% @alias.
-% We need some trickery to remove the optional spaces around the equal
-% sign. Just make them active and then expand them all to nothing.
-\def\alias{\parseargusing\obeyspaces\aliasxxx}
-\def\aliasxxx #1{\aliasyyy#1\relax}
-\def\aliasyyy #1=#2\relax{%
- {%
- \expandafter\let\obeyedspace=\empty
- \addtomacrolist{#1}%
- \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
- }%
- \next
-}
-
-
-\message{cross references,}
-
-\newwrite\auxfile
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% @node's only job in TeX is to define \lastnode, which is used in
-% cross-references. The @node line might or might not have commas, and
-% might or might not have spaces before the first comma, like:
-% @node foo , bar , ...
-% We don't want such trailing spaces in the node name.
-%
-\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
-%
-% also remove a trailing comma, in case of something like this:
-% @node Help-Cross, , , Cross-refs
-\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
-\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
-
-\let\nwnode=\node
-\let\lastnode=\empty
-
-% Write a cross-reference definition for the current node. #1 is the
-% type (Ynumbered, Yappendix, Ynothing).
-%
-\def\donoderef#1{%
- \ifx\lastnode\empty\else
- \setref{\lastnode}{#1}%
- \global\let\lastnode=\empty
- \fi
-}
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-%
-\newcount\savesfregister
-%
-\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
-\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
-\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
-% anchor), which consists of three parts:
-% 1) NAME-title - the current sectioning name taken from \lastsection,
-% or the anchor name.
-% 2) NAME-snt - section number and type, passed as the SNT arg, or
-% empty for anchors.
-% 3) NAME-pg - the page number.
-%
-% This is called from \donoderef, \anchor, and \dofloat. In the case of
-% floats, there is an additional part, which is not written here:
-% 4) NAME-lof - the text as it should appear in a @listoffloats.
-%
-\def\setref#1#2{%
- \pdfmkdest{#1}%
- \iflinks
- {%
- \atdummies % preserve commands, but don't expand them
- \edef\writexrdef##1##2{%
- \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
- ##1}{##2}}% these are parameters of \writexrdef
- }%
- \toks0 = \expandafter{\lastsection}%
- \immediate \writexrdef{title}{\the\toks0 }%
- \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
- \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
- }%
- \fi
-}
-
-% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual. All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \unsepspaces
- \def\printedmanual{\ignorespaces #5}%
- \def\printedrefname{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual\unskip}%
- \setbox0=\hbox{\printedrefname\unskip}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printedrefname{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
- \def\printedrefname{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printedrefname{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printedrefname{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % Make link in pdf output.
- \ifpdf
- {\indexnofonts
- \turnoffactive
- % This expands tokens, so do it after making catcode changes, so _
- % etc. don't get their TeX definitions.
- \getfilename{#4}%
- %
- % See comments at \activebackslashdouble.
- {\activebackslashdouble \xdef\pdfxrefdest{#1}%
- \backslashparens\pdfxrefdest}%
- %
- \leavevmode
- \startlink attr{/Border [0 0 0]}%
- \ifnum\filenamelength>0
- goto file{\the\filename.pdf} name{\pdfxrefdest}%
- \else
- goto name{\pdfmkpgn{\pdfxrefdest}}%
- \fi
- }%
- \setcolor{\linkcolor}%
- \fi
- %
- % Float references are printed completely differently: "Figure 1.2"
- % instead of "[somenode], p.3". We distinguish them by the
- % LABEL-title being set to a magic string.
- {%
- % Have to otherify everything special to allow the \csname to
- % include an _ in the xref name, etc.
- \indexnofonts
- \turnoffactive
- \expandafter\global\expandafter\let\expandafter\Xthisreftitle
- \csname XR#1-title\endcsname
- }%
- \iffloat\Xthisreftitle
- % If the user specified the print name (third arg) to the ref,
- % print it instead of our usual "Figure 1.2".
- \ifdim\wd0 = 0pt
- \refx{#1-snt}{}%
- \else
- \printedrefname
- \fi
- %
- % if the user also gave the printed manual name (fifth arg), append
- % "in MANUALNAME".
- \ifdim \wd1 > 0pt
- \space \putwordin{} \cite{\printedmanual}%
- \fi
- \else
- % node/anchor (non-float) references.
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\turnoffactive
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
- % output the `[mynode]' via a macro so it can be overridden.
- \xrefprintnodename\printedrefname
- %
- % But we always want a comma and a space:
- ,\space
- %
- % output the `page 3'.
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
- \fi
- \endlink
-\endgroup}
-
-% This macro is called from \xrefX for the `[nodename]' part of xref
-% output. It's a separate macro only so it can be changed more easily,
-% since square brackets don't work well in some documents. Particularly
-% one that Bob is working on :).
-%
-\def\xrefprintnodename#1{[#1]}
-
-% Things referred to by \setref.
-%
-\def\Ynothing{}
-\def\Yomitfromtoc{}
-\def\Ynumbered{%
- \ifnum\secno=0
- \putwordChapter@tie \the\chapno
- \else \ifnum\subsecno=0
- \putwordSection@tie \the\chapno.\the\secno
- \else \ifnum\subsubsecno=0
- \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
- \else
- \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
- \fi\fi\fi
-}
-\def\Yappendix{%
- \ifnum\secno=0
- \putwordAppendix@tie @char\the\appendixno{}%
- \else \ifnum\subsecno=0
- \putwordSection@tie @char\the\appendixno.\the\secno
- \else \ifnum\subsubsecno=0
- \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
- \else
- \putwordSection@tie
- @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
- \fi\fi\fi
-}
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-%
-\def\refx#1#2{%
- {%
- \indexnofonts
- \otherbackslash
- \expandafter\global\expandafter\let\expandafter\thisrefX
- \csname XR#1\endcsname
- }%
- \ifx\thisrefX\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \iflinks
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \thisrefX
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file. Usually it's
-% just a \def (we prepend XR to the control sequence name to avoid
-% collisions). But if this is a float type, we have more work to do.
-%
-\def\xrdef#1#2{%
- {% The node name might contain 8-bit characters, which in our current
- % implementation are changed to commands like @'e. Don't let these
- % mess up the control sequence name.
- \indexnofonts
- \turnoffactive
- \xdef\safexrefname{#1}%
- }%
- %
- \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
- %
- % Was that xref control sequence that we just defined for a float?
- \expandafter\iffloat\csname XR\safexrefname\endcsname
- % it was a float, and we have the (safe) float type in \iffloattype.
- \expandafter\let\expandafter\floatlist
- \csname floatlist\iffloattype\endcsname
- %
- % Is this the first time we've seen this float type?
- \expandafter\ifx\floatlist\relax
- \toks0 = {\do}% yes, so just \do
- \else
- % had it before, so preserve previous elements in list.
- \toks0 = \expandafter{\floatlist\do}%
- \fi
- %
- % Remember this xref in the control sequence \floatlistFLOATTYPE,
- % for later use in \listoffloats.
- \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
- {\safexrefname}}%
- \fi
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-%
-\def\tryauxfile{%
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \readdatafile{aux}%
- \global\havexrefstrue
- \fi
- \closein 1
-}
-
-\def\setupdatafile{%
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\^=\other
- %
- % Special characters. Should be turned off anyway, but...
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- \catcode`\%=\other
- \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
- %
- % This is to support \ in node names and titles, since the \
- % characters end up in a \csname. It's easier than
- % leaving it active and making its active definition an actual \
- % character. What I don't understand is why it works in the *value*
- % of the xrdef. Seems like it should be a catcode12 \, and that
- % should not typeset properly. But it works, so I'm moving on for
- % now. --karl, 15jan04.
- \catcode`\\=\other
- %
- % Make the characters 128-255 be printing characters.
- {%
- \count1=128
- \def\loop{%
- \catcode\count1=\other
- \advance\count1 by 1
- \ifnum \count1<256 \loop \fi
- }%
- }%
- %
- % @ is our escape character in .aux files, and we need braces.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\@=0
-}
-
-\def\readdatafile#1{%
-\begingroup
- \setupdatafile
- \input\jobname.#1
-\endgroup}
-
-
-\message{insertions,}
-% including footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \let\indent=\ptexindent
- \let\noindent=\ptexnoindent
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \dofootnote
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset (and anything else that uses
-% \parseargline) fails inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\gdef\dofootnote{%
- \insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \hsize=\pagewidth
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- \smallfonts \rm
- %
- % Because we use hanging indentation in footnotes, a @noindent appears
- % to exdent this text, so make it be a no-op. makeinfo does not use
- % hanging indentation so @noindent can still be needed within footnote
- % text after an @example or the like (not that this is good style).
- \let\noindent = \relax
- %
- % Hang the footnote text off the number. Use \everypar in case the
- % footnote extends for more than one paragraph.
- \everypar = {\hang}%
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-}%end \catcode `\@=11
-
-% In case a @footnote appears in a vbox, save the footnote text and create
-% the real \insert just after the vbox finished. Otherwise, the insertion
-% would be lost.
-% Similarly, if a @footnote appears inside an alignment, save the footnote
-% text to a box and make the \insert when a row of the table is finished.
-% And the same can be done for other insert classes. --kasal, 16nov03.
-
-% Replace the \insert primitive by a cheating macro.
-% Deeper inside, just make sure that the saved insertions are not spilled
-% out prematurely.
-%
-\def\startsavinginserts{%
- \ifx \insert\ptexinsert
- \let\insert\saveinsert
- \else
- \let\checkinserts\relax
- \fi
-}
-
-% This \insert replacement works for both \insert\footins{foo} and
-% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
-%
-\def\saveinsert#1{%
- \edef\next{\noexpand\savetobox \makeSAVEname#1}%
- \afterassignment\next
- % swallow the left brace
- \let\temp =
-}
-\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
-\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
-
-\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
-
-\def\placesaveins#1{%
- \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
- {\box#1}%
-}
-
-% eat @SAVE -- beware, all of them have catcode \other:
-{
- \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
- \gdef\gobblesave @SAVE{}
-}
-
-% initialization:
-\def\newsaveins #1{%
- \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
- \next
-}
-\def\newsaveinsX #1{%
- \csname newbox\endcsname #1%
- \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
- \checksaveins #1}%
-}
-
-% initialize:
-\let\checkinserts\empty
-\newsaveins\footins
-\newsaveins\margin
-
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- % Do not bother showing banner with epsf.tex v2.7k (available in
- % doc/epsf.tex and on ctan).
- \def\epsfannounce{\toks0 = }%
- \input epsf.tex
-\fi
-\closein 1
-%
-% We will only complain once about lack of epsf.tex.
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://tug.org/tex/epsf.tex.}
-%
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is (ignored optional) html alt text.
-% #5 is (ignored optional) extension.
-% #6 is just the usual extra ignored arg for parsing this stuff.
-\newif\ifimagevmode
-\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
- \catcode`\^^M = 5 % in case we're inside an example
- \normalturnoffactive % allow _ et al. in names
- % If the image is by itself, center it.
- \ifvmode
- \imagevmodetrue
- \nobreak\medskip
- % Usually we'll have text after the image which will insert
- % \parskip glue, so insert it here too to equalize the space
- % above and below.
- \nobreak\vskip\parskip
- \nobreak
- \fi
- %
- % Leave vertical mode so that indentation from an enclosing
- % environment such as @quotation is respected. On the other hand, if
- % it's at the top level, we don't want the normal paragraph indentation.
- \noindent
- %
- % Output the image.
- \ifpdf
- \dopdfimage{#1}{#2}{#3}%
- \else
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \epsfbox{#1.eps}%
- \fi
- %
- \ifimagevmode \medskip \fi % space after the standalone image
-\endgroup}
-
-
-% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
-% etc. We don't actually implement floating yet, we always include the
-% float "here". But it seemed the best name for the future.
-%
-\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
-
-% There may be a space before second and/or third parameter; delete it.
-\def\eatcommaspace#1, {#1,}
-
-% #1 is the optional FLOATTYPE, the text label for this float, typically
-% "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
-% this float will not be numbered and cannot be referred to.
-%
-% #2 is the optional xref label. Also must be present for the float to
-% be referable.
-%
-% #3 is the optional positioning argument; for now, it is ignored. It
-% will somehow specify the positions allowed to float to (here, top, bottom).
-%
-% We keep a separate counter for each FLOATTYPE, which we reset at each
-% chapter-level command.
-\let\resetallfloatnos=\empty
-%
-\def\dofloat#1,#2,#3,#4\finish{%
- \let\thiscaption=\empty
- \let\thisshortcaption=\empty
- %
- % don't lose footnotes inside @float.
- %
- % BEWARE: when the floats start float, we have to issue warning whenever an
- % insert appears inside a float which could possibly float. --kasal, 26may04
- %
- \startsavinginserts
- %
- % We can't be used inside a paragraph.
- \par
- %
- \vtop\bgroup
- \def\floattype{#1}%
- \def\floatlabel{#2}%
- \def\floatloc{#3}% we do nothing with this yet.
- %
- \ifx\floattype\empty
- \let\safefloattype=\empty
- \else
- {%
- % the floattype might have accents or other special characters,
- % but we need to use it in a control sequence name.
- \indexnofonts
- \turnoffactive
- \xdef\safefloattype{\floattype}%
- }%
- \fi
- %
- % If label is given but no type, we handle that as the empty type.
- \ifx\floatlabel\empty \else
- % We want each FLOATTYPE to be numbered separately (Figure 1,
- % Table 1, Figure 2, ...). (And if no label, no number.)
- %
- \expandafter\getfloatno\csname\safefloattype floatno\endcsname
- \global\advance\floatno by 1
- %
- {%
- % This magic value for \lastsection is output by \setref as the
- % XREFLABEL-title value. \xrefX uses it to distinguish float
- % labels (which have a completely different output format) from
- % node and anchor labels. And \xrdef uses it to construct the
- % lists of floats.
- %
- \edef\lastsection{\floatmagic=\safefloattype}%
- \setref{\floatlabel}{Yfloat}%
- }%
- \fi
- %
- % start with \parskip glue, I guess.
- \vskip\parskip
- %
- % Don't suppress indentation if a float happens to start a section.
- \restorefirstparagraphindent
-}
-
-% we have these possibilities:
-% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
-% @float Foo,lbl & no caption: Foo 1.1
-% @float Foo & @caption{Cap}: Foo: Cap
-% @float Foo & no caption: Foo
-% @float ,lbl & Caption{Cap}: 1.1: Cap
-% @float ,lbl & no caption: 1.1
-% @float & @caption{Cap}: Cap
-% @float & no caption:
-%
-\def\Efloat{%
- \let\floatident = \empty
- %
- % In all cases, if we have a float type, it comes first.
- \ifx\floattype\empty \else \def\floatident{\floattype}\fi
- %
- % If we have an xref label, the number comes next.
- \ifx\floatlabel\empty \else
- \ifx\floattype\empty \else % if also had float type, need tie first.
- \appendtomacro\floatident{\tie}%
- \fi
- % the number.
- \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
- \fi
- %
- % Start the printed caption with what we've constructed in
- % \floatident, but keep it separate; we need \floatident again.
- \let\captionline = \floatident
- %
- \ifx\thiscaption\empty \else
- \ifx\floatident\empty \else
- \appendtomacro\captionline{: }% had ident, so need a colon between
- \fi
- %
- % caption text.
- \appendtomacro\captionline{\scanexp\thiscaption}%
- \fi
- %
- % If we have anything to print, print it, with space before.
- % Eventually this needs to become an \insert.
- \ifx\captionline\empty \else
- \vskip.5\parskip
- \captionline
- %
- % Space below caption.
- \vskip\parskip
- \fi
- %
- % If have an xref label, write the list of floats info. Do this
- % after the caption, to avoid chance of it being a breakpoint.
- \ifx\floatlabel\empty \else
- % Write the text that goes in the lof to the aux file as
- % \floatlabel-lof. Besides \floatident, we include the short
- % caption if specified, else the full caption if specified, else nothing.
- {%
- \atdummies
- %
- % since we read the caption text in the macro world, where ^^M
- % is turned into a normal character, we have to scan it back, so
- % we don't write the literal three characters "^^M" into the aux file.
- \scanexp{%
- \xdef\noexpand\gtemp{%
- \ifx\thisshortcaption\empty
- \thiscaption
- \else
- \thisshortcaption
- \fi
- }%
- }%
- \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
- \ifx\gtemp\empty \else : \gtemp \fi}}%
- }%
- \fi
- \egroup % end of \vtop
- %
- % place the captured inserts
- %
- % BEWARE: when the floats start floating, we have to issue warning
- % whenever an insert appears inside a float which could possibly
- % float. --kasal, 26may04
- %
- \checkinserts
-}
-
-% Append the tokens #2 to the definition of macro #1, not expanding either.
-%
-\def\appendtomacro#1#2{%
- \expandafter\def\expandafter#1\expandafter{#1#2}%
-}
-
-% @caption, @shortcaption
-%
-\def\caption{\docaption\thiscaption}
-\def\shortcaption{\docaption\thisshortcaption}
-\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
-\def\defcaption#1#2{\egroup \def#1{#2}}
-
-% The parameter is the control sequence identifying the counter we are
-% going to use. Create it if it doesn't exist and assign it to \floatno.
-\def\getfloatno#1{%
- \ifx#1\relax
- % Haven't seen this figure type before.
- \csname newcount\endcsname #1%
- %
- % Remember to reset this floatno at the next chap.
- \expandafter\gdef\expandafter\resetallfloatnos
- \expandafter{\resetallfloatnos #1=0 }%
- \fi
- \let\floatno#1%
-}
-
-% \setref calls this to get the XREFLABEL-snt value. We want an @xref
-% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
-% first read the @float command.
-%
-\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
-
-% Magic string used for the XREFLABEL-title value, so \xrefX can
-% distinguish floats from other xref types.
-\def\floatmagic{!!float!!}
-
-% #1 is the control sequence we are passed; we expand into a conditional
-% which is true if #1 represents a float ref. That is, the magic
-% \lastsection value which we \setref above.
-%
-\def\iffloat#1{\expandafter\doiffloat#1==\finish}
-%
-% #1 is (maybe) the \floatmagic string. If so, #2 will be the
-% (safe) float type for this float. We set \iffloattype to #2.
-%
-\def\doiffloat#1=#2=#3\finish{%
- \def\temp{#1}%
- \def\iffloattype{#2}%
- \ifx\temp\floatmagic
-}
-
-% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
-%
-\parseargdef\listoffloats{%
- \def\floattype{#1}% floattype
- {%
- % the floattype might have accents or other special characters,
- % but we need to use it in a control sequence name.
- \indexnofonts
- \turnoffactive
- \xdef\safefloattype{\floattype}%
- }%
- %
- % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
- \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
- \ifhavexrefs
- % if the user said @listoffloats foo but never @float foo.
- \message{\linenumber No `\safefloattype' floats to list.}%
- \fi
- \else
- \begingroup
- \leftskip=\tocindent % indent these entries like a toc
- \let\do=\listoffloatsdo
- \csname floatlist\safefloattype\endcsname
- \endgroup
- \fi
-}
-
-% This is called on each entry in a list of floats. We're passed the
-% xref label, in the form LABEL-title, which is how we save it in the
-% aux file. We strip off the -title and look up \XRLABEL-lof, which
-% has the text we're supposed to typeset here.
-%
-% Figures without xref labels will not be included in the list (since
-% they won't appear in the aux file).
-%
-\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
-\def\listoffloatsdoentry#1-title\finish{{%
- % Can't fully expand XR#1-lof because it can contain anything. Just
- % pass the control sequence. On the other hand, XR#1-pg is just the
- % page number, and we want to fully expand that so we can get a link
- % in pdf output.
- \toksA = \expandafter{\csname XR#1-lof\endcsname}%
- %
- % use the same \entry macro we use to generate the TOC and index.
- \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
- \writeentry
-}}
-
-
-\message{localization,}
-
-% For single-language documents, @documentlanguage is usually given very
-% early, just after @documentencoding. Single argument is the language
-% (de) or locale (de_DE) abbreviation.
-%
-{
- \catcode`\_ = \active
- \globaldefs=1
-\parseargdef\documentlanguage{\begingroup
- \let_=\normalunderscore % normal _ character for filenames
- \tex % read txi-??.tex file in plain TeX.
- % Read the file by the name they passed if it exists.
- \openin 1 txi-#1.tex
- \ifeof 1
- \documentlanguagetrywithoutunderscore{#1_\finish}%
- \else
- \globaldefs = 1 % everything in the txi-LL files needs to persist
- \input txi-#1.tex
- \fi
- \closein 1
- \endgroup % end raw TeX
-\endgroup}
-%
-% If they passed de_DE, and txi-de_DE.tex doesn't exist,
-% try txi-de.tex.
-%
-\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{%
- \openin 1 txi-#1.tex
- \ifeof 1
- \errhelp = \nolanghelp
- \errmessage{Cannot read language file txi-#1.tex}%
- \else
- \globaldefs = 1 % everything in the txi-LL files needs to persist
- \input txi-#1.tex
- \fi
- \closein 1
-}
-}% end of special _ catcode
-%
-\newhelp\nolanghelp{The given language definition file cannot be found or
-is empty. Maybe you need to install it? Putting it in the current
-directory should work if nowhere else does.}
-
-% This macro is called from txi-??.tex files; the first argument is the
-% \language name to set (without the "\lang@" prefix), the second and
-% third args are \{left,right}hyphenmin.
-%
-% The language names to pass are determined when the format is built.
-% See the etex.log file created at that time, e.g.,
-% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
-%
-% With TeX Live 2008, etex now includes hyphenation patterns for all
-% available languages. This means we can support hyphenation in
-% Texinfo, at least to some extent. (This still doesn't solve the
-% accented characters problem.)
-%
-\catcode`@=11
-\def\txisetlanguage#1#2#3{%
- % do not set the language if the name is undefined in the current TeX.
- \expandafter\ifx\csname lang@#1\endcsname \relax
- \message{no patterns for #1}%
- \else
- \global\language = \csname lang@#1\endcsname
- \fi
- % but there is no harm in adjusting the hyphenmin values regardless.
- \global\lefthyphenmin = #2\relax
- \global\righthyphenmin = #3\relax
-}
-
-% Helpers for encodings.
-% Set the catcode of characters 128 through 255 to the specified number.
-%
-\def\setnonasciicharscatcode#1{%
- \count255=128
- \loop\ifnum\count255<256
- \global\catcode\count255=#1\relax
- \advance\count255 by 1
- \repeat
-}
-
-\def\setnonasciicharscatcodenonglobal#1{%
- \count255=128
- \loop\ifnum\count255<256
- \catcode\count255=#1\relax
- \advance\count255 by 1
- \repeat
-}
-
-% @documentencoding sets the definition of non-ASCII characters
-% according to the specified encoding.
-%
-\parseargdef\documentencoding{%
- % Encoding being declared for the document.
- \def\declaredencoding{\csname #1.enc\endcsname}%
- %
- % Supported encodings: names converted to tokens in order to be able
- % to compare them with \ifx.
- \def\ascii{\csname US-ASCII.enc\endcsname}%
- \def\latnine{\csname ISO-8859-15.enc\endcsname}%
- \def\latone{\csname ISO-8859-1.enc\endcsname}%
- \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
- \def\utfeight{\csname UTF-8.enc\endcsname}%
- %
- \ifx \declaredencoding \ascii
- \asciichardefs
- %
- \else \ifx \declaredencoding \lattwo
- \setnonasciicharscatcode\active
- \lattwochardefs
- %
- \else \ifx \declaredencoding \latone
- \setnonasciicharscatcode\active
- \latonechardefs
- %
- \else \ifx \declaredencoding \latnine
- \setnonasciicharscatcode\active
- \latninechardefs
- %
- \else \ifx \declaredencoding \utfeight
- \setnonasciicharscatcode\active
- \utfeightchardefs
- %
- \else
- \message{Unknown document encoding #1, ignoring.}%
- %
- \fi % utfeight
- \fi % latnine
- \fi % latone
- \fi % lattwo
- \fi % ascii
-}
-
-% A message to be logged when using a character that isn't available
-% the default font encoding (OT1).
-%
-\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
-
-% Take account of \c (plain) vs. \, (Texinfo) difference.
-\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
-
-% First, make active non-ASCII characters in order for them to be
-% correctly categorized when TeX reads the replacement text of
-% macros containing the character definitions.
-\setnonasciicharscatcode\active
-%
-% Latin1 (ISO-8859-1) character definitions.
-\def\latonechardefs{%
- \gdef^^a0{~}
- \gdef^^a1{\exclamdown}
- \gdef^^a2{\missingcharmsg{CENT SIGN}}
- \gdef^^a3{{\pounds}}
- \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
- \gdef^^a5{\missingcharmsg{YEN SIGN}}
- \gdef^^a6{\missingcharmsg{BROKEN BAR}}
- \gdef^^a7{\S}
- \gdef^^a8{\"{}}
- \gdef^^a9{\copyright}
- \gdef^^aa{\ordf}
- \gdef^^ab{\guillemetleft}
- \gdef^^ac{$\lnot$}
- \gdef^^ad{\-}
- \gdef^^ae{\registeredsymbol}
- \gdef^^af{\={}}
- %
- \gdef^^b0{\textdegree}
- \gdef^^b1{$\pm$}
- \gdef^^b2{$^2$}
- \gdef^^b3{$^3$}
- \gdef^^b4{\'{}}
- \gdef^^b5{$\mu$}
- \gdef^^b6{\P}
- %
- \gdef^^b7{$^.$}
- \gdef^^b8{\cedilla\ }
- \gdef^^b9{$^1$}
- \gdef^^ba{\ordm}
- %
- \gdef^^bb{\guilletright}
- \gdef^^bc{$1\over4$}
- \gdef^^bd{$1\over2$}
- \gdef^^be{$3\over4$}
- \gdef^^bf{\questiondown}
- %
- \gdef^^c0{\`A}
- \gdef^^c1{\'A}
- \gdef^^c2{\^A}
- \gdef^^c3{\~A}
- \gdef^^c4{\"A}
- \gdef^^c5{\ringaccent A}
- \gdef^^c6{\AE}
- \gdef^^c7{\cedilla C}
- \gdef^^c8{\`E}
- \gdef^^c9{\'E}
- \gdef^^ca{\^E}
- \gdef^^cb{\"E}
- \gdef^^cc{\`I}
- \gdef^^cd{\'I}
- \gdef^^ce{\^I}
- \gdef^^cf{\"I}
- %
- \gdef^^d0{\DH}
- \gdef^^d1{\~N}
- \gdef^^d2{\`O}
- \gdef^^d3{\'O}
- \gdef^^d4{\^O}
- \gdef^^d5{\~O}
- \gdef^^d6{\"O}
- \gdef^^d7{$\times$}
- \gdef^^d8{\O}
- \gdef^^d9{\`U}
- \gdef^^da{\'U}
- \gdef^^db{\^U}
- \gdef^^dc{\"U}
- \gdef^^dd{\'Y}
- \gdef^^de{\TH}
- \gdef^^df{\ss}
- %
- \gdef^^e0{\`a}
- \gdef^^e1{\'a}
- \gdef^^e2{\^a}
- \gdef^^e3{\~a}
- \gdef^^e4{\"a}
- \gdef^^e5{\ringaccent a}
- \gdef^^e6{\ae}
- \gdef^^e7{\cedilla c}
- \gdef^^e8{\`e}
- \gdef^^e9{\'e}
- \gdef^^ea{\^e}
- \gdef^^eb{\"e}
- \gdef^^ec{\`{\dotless i}}
- \gdef^^ed{\'{\dotless i}}
- \gdef^^ee{\^{\dotless i}}
- \gdef^^ef{\"{\dotless i}}
- %
- \gdef^^f0{\dh}
- \gdef^^f1{\~n}
- \gdef^^f2{\`o}
- \gdef^^f3{\'o}
- \gdef^^f4{\^o}
- \gdef^^f5{\~o}
- \gdef^^f6{\"o}
- \gdef^^f7{$\div$}
- \gdef^^f8{\o}
- \gdef^^f9{\`u}
- \gdef^^fa{\'u}
- \gdef^^fb{\^u}
- \gdef^^fc{\"u}
- \gdef^^fd{\'y}
- \gdef^^fe{\th}
- \gdef^^ff{\"y}
-}
-
-% Latin9 (ISO-8859-15) encoding character definitions.
-\def\latninechardefs{%
- % Encoding is almost identical to Latin1.
- \latonechardefs
- %
- \gdef^^a4{\euro}
- \gdef^^a6{\v S}
- \gdef^^a8{\v s}
- \gdef^^b4{\v Z}
- \gdef^^b8{\v z}
- \gdef^^bc{\OE}
- \gdef^^bd{\oe}
- \gdef^^be{\"Y}
-}
-
-% Latin2 (ISO-8859-2) character definitions.
-\def\lattwochardefs{%
- \gdef^^a0{~}
- \gdef^^a1{\ogonek{A}}
- \gdef^^a2{\u{}}
- \gdef^^a3{\L}
- \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
- \gdef^^a5{\v L}
- \gdef^^a6{\'S}
- \gdef^^a7{\S}
- \gdef^^a8{\"{}}
- \gdef^^a9{\v S}
- \gdef^^aa{\cedilla S}
- \gdef^^ab{\v T}
- \gdef^^ac{\'Z}
- \gdef^^ad{\-}
- \gdef^^ae{\v Z}
- \gdef^^af{\dotaccent Z}
- %
- \gdef^^b0{\textdegree}
- \gdef^^b1{\ogonek{a}}
- \gdef^^b2{\ogonek{ }}
- \gdef^^b3{\l}
- \gdef^^b4{\'{}}
- \gdef^^b5{\v l}
- \gdef^^b6{\'s}
- \gdef^^b7{\v{}}
- \gdef^^b8{\cedilla\ }
- \gdef^^b9{\v s}
- \gdef^^ba{\cedilla s}
- \gdef^^bb{\v t}
- \gdef^^bc{\'z}
- \gdef^^bd{\H{}}
- \gdef^^be{\v z}
- \gdef^^bf{\dotaccent z}
- %
- \gdef^^c0{\'R}
- \gdef^^c1{\'A}
- \gdef^^c2{\^A}
- \gdef^^c3{\u A}
- \gdef^^c4{\"A}
- \gdef^^c5{\'L}
- \gdef^^c6{\'C}
- \gdef^^c7{\cedilla C}
- \gdef^^c8{\v C}
- \gdef^^c9{\'E}
- \gdef^^ca{\ogonek{E}}
- \gdef^^cb{\"E}
- \gdef^^cc{\v E}
- \gdef^^cd{\'I}
- \gdef^^ce{\^I}
- \gdef^^cf{\v D}
- %
- \gdef^^d0{\DH}
- \gdef^^d1{\'N}
- \gdef^^d2{\v N}
- \gdef^^d3{\'O}
- \gdef^^d4{\^O}
- \gdef^^d5{\H O}
- \gdef^^d6{\"O}
- \gdef^^d7{$\times$}
- \gdef^^d8{\v R}
- \gdef^^d9{\ringaccent U}
- \gdef^^da{\'U}
- \gdef^^db{\H U}
- \gdef^^dc{\"U}
- \gdef^^dd{\'Y}
- \gdef^^de{\cedilla T}
- \gdef^^df{\ss}
- %
- \gdef^^e0{\'r}
- \gdef^^e1{\'a}
- \gdef^^e2{\^a}
- \gdef^^e3{\u a}
- \gdef^^e4{\"a}
- \gdef^^e5{\'l}
- \gdef^^e6{\'c}
- \gdef^^e7{\cedilla c}
- \gdef^^e8{\v c}
- \gdef^^e9{\'e}
- \gdef^^ea{\ogonek{e}}
- \gdef^^eb{\"e}
- \gdef^^ec{\v e}
- \gdef^^ed{\'\i}
- \gdef^^ee{\^\i}
- \gdef^^ef{\v d}
- %
- \gdef^^f0{\dh}
- \gdef^^f1{\'n}
- \gdef^^f2{\v n}
- \gdef^^f3{\'o}
- \gdef^^f4{\^o}
- \gdef^^f5{\H o}
- \gdef^^f6{\"o}
- \gdef^^f7{$\div$}
- \gdef^^f8{\v r}
- \gdef^^f9{\ringaccent u}
- \gdef^^fa{\'u}
- \gdef^^fb{\H u}
- \gdef^^fc{\"u}
- \gdef^^fd{\'y}
- \gdef^^fe{\cedilla t}
- \gdef^^ff{\dotaccent{}}
-}
-
-% UTF-8 character definitions.
-%
-% This code to support UTF-8 is based on LaTeX's utf8.def, with some
-% changes for Texinfo conventions. It is included here under the GPL by
-% permission from Frank Mittelbach and the LaTeX team.
-%
-\newcount\countUTFx
-\newcount\countUTFy
-\newcount\countUTFz
-
-\gdef\UTFviiiTwoOctets#1#2{\expandafter
- \UTFviiiDefined\csname u8:#1\string #2\endcsname}
-%
-\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
- \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
-%
-\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
- \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
-
-\gdef\UTFviiiDefined#1{%
- \ifx #1\relax
- \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
- \else
- \expandafter #1%
- \fi
-}
-
-\begingroup
- \catcode`\~13
- \catcode`\"12
-
- \def\UTFviiiLoop{%
- \global\catcode\countUTFx\active
- \uccode`\~\countUTFx
- \uppercase\expandafter{\UTFviiiTmp}%
- \advance\countUTFx by 1
- \ifnum\countUTFx < \countUTFy
- \expandafter\UTFviiiLoop
- \fi}
-
- \countUTFx = "C2
- \countUTFy = "E0
- \def\UTFviiiTmp{%
- \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
- \UTFviiiLoop
-
- \countUTFx = "E0
- \countUTFy = "F0
- \def\UTFviiiTmp{%
- \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
- \UTFviiiLoop
-
- \countUTFx = "F0
- \countUTFy = "F4
- \def\UTFviiiTmp{%
- \xdef~{\noexpand\UTFviiiFourOctets\string~}}
- \UTFviiiLoop
-\endgroup
-
-\begingroup
- \catcode`\"=12
- \catcode`\<=12
- \catcode`\.=12
- \catcode`\,=12
- \catcode`\;=12
- \catcode`\!=12
- \catcode`\~=13
-
- \gdef\DeclareUnicodeCharacter#1#2{%
- \countUTFz = "#1\relax
- \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
- \begingroup
- \parseXMLCharref
- \def\UTFviiiTwoOctets##1##2{%
- \csname u8:##1\string ##2\endcsname}%
- \def\UTFviiiThreeOctets##1##2##3{%
- \csname u8:##1\string ##2\string ##3\endcsname}%
- \def\UTFviiiFourOctets##1##2##3##4{%
- \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
- \expandafter\expandafter\expandafter\expandafter
- \expandafter\expandafter\expandafter
- \gdef\UTFviiiTmp{#2}%
- \endgroup}
-
- \gdef\parseXMLCharref{%
- \ifnum\countUTFz < "A0\relax
- \errhelp = \EMsimple
- \errmessage{Cannot define Unicode char value < 00A0}%
- \else\ifnum\countUTFz < "800\relax
- \parseUTFviiiA,%
- \parseUTFviiiB C\UTFviiiTwoOctets.,%
- \else\ifnum\countUTFz < "10000\relax
- \parseUTFviiiA;%
- \parseUTFviiiA,%
- \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
- \else
- \parseUTFviiiA;%
- \parseUTFviiiA,%
- \parseUTFviiiA!%
- \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
- \fi\fi\fi
- }
-
- \gdef\parseUTFviiiA#1{%
- \countUTFx = \countUTFz
- \divide\countUTFz by 64
- \countUTFy = \countUTFz
- \multiply\countUTFz by 64
- \advance\countUTFx by -\countUTFz
- \advance\countUTFx by 128
- \uccode `#1\countUTFx
- \countUTFz = \countUTFy}
-
- \gdef\parseUTFviiiB#1#2#3#4{%
- \advance\countUTFz by "#10\relax
- \uccode `#3\countUTFz
- \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
-\endgroup
-
-\def\utfeightchardefs{%
- \DeclareUnicodeCharacter{00A0}{\tie}
- \DeclareUnicodeCharacter{00A1}{\exclamdown}
- \DeclareUnicodeCharacter{00A3}{\pounds}
- \DeclareUnicodeCharacter{00A8}{\"{ }}
- \DeclareUnicodeCharacter{00A9}{\copyright}
- \DeclareUnicodeCharacter{00AA}{\ordf}
- \DeclareUnicodeCharacter{00AB}{\guillemetleft}
- \DeclareUnicodeCharacter{00AD}{\-}
- \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
- \DeclareUnicodeCharacter{00AF}{\={ }}
-
- \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
- \DeclareUnicodeCharacter{00B4}{\'{ }}
- \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
- \DeclareUnicodeCharacter{00BA}{\ordm}
- \DeclareUnicodeCharacter{00BB}{\guillemetright}
- \DeclareUnicodeCharacter{00BF}{\questiondown}
-
- \DeclareUnicodeCharacter{00C0}{\`A}
- \DeclareUnicodeCharacter{00C1}{\'A}
- \DeclareUnicodeCharacter{00C2}{\^A}
- \DeclareUnicodeCharacter{00C3}{\~A}
- \DeclareUnicodeCharacter{00C4}{\"A}
- \DeclareUnicodeCharacter{00C5}{\AA}
- \DeclareUnicodeCharacter{00C6}{\AE}
- \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
- \DeclareUnicodeCharacter{00C8}{\`E}
- \DeclareUnicodeCharacter{00C9}{\'E}
- \DeclareUnicodeCharacter{00CA}{\^E}
- \DeclareUnicodeCharacter{00CB}{\"E}
- \DeclareUnicodeCharacter{00CC}{\`I}
- \DeclareUnicodeCharacter{00CD}{\'I}
- \DeclareUnicodeCharacter{00CE}{\^I}
- \DeclareUnicodeCharacter{00CF}{\"I}
-
- \DeclareUnicodeCharacter{00D0}{\DH}
- \DeclareUnicodeCharacter{00D1}{\~N}
- \DeclareUnicodeCharacter{00D2}{\`O}
- \DeclareUnicodeCharacter{00D3}{\'O}
- \DeclareUnicodeCharacter{00D4}{\^O}
- \DeclareUnicodeCharacter{00D5}{\~O}
- \DeclareUnicodeCharacter{00D6}{\"O}
- \DeclareUnicodeCharacter{00D8}{\O}
- \DeclareUnicodeCharacter{00D9}{\`U}
- \DeclareUnicodeCharacter{00DA}{\'U}
- \DeclareUnicodeCharacter{00DB}{\^U}
- \DeclareUnicodeCharacter{00DC}{\"U}
- \DeclareUnicodeCharacter{00DD}{\'Y}
- \DeclareUnicodeCharacter{00DE}{\TH}
- \DeclareUnicodeCharacter{00DF}{\ss}
-
- \DeclareUnicodeCharacter{00E0}{\`a}
- \DeclareUnicodeCharacter{00E1}{\'a}
- \DeclareUnicodeCharacter{00E2}{\^a}
- \DeclareUnicodeCharacter{00E3}{\~a}
- \DeclareUnicodeCharacter{00E4}{\"a}
- \DeclareUnicodeCharacter{00E5}{\aa}
- \DeclareUnicodeCharacter{00E6}{\ae}
- \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
- \DeclareUnicodeCharacter{00E8}{\`e}
- \DeclareUnicodeCharacter{00E9}{\'e}
- \DeclareUnicodeCharacter{00EA}{\^e}
- \DeclareUnicodeCharacter{00EB}{\"e}
- \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
- \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
- \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
- \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
-
- \DeclareUnicodeCharacter{00F0}{\dh}
- \DeclareUnicodeCharacter{00F1}{\~n}
- \DeclareUnicodeCharacter{00F2}{\`o}
- \DeclareUnicodeCharacter{00F3}{\'o}
- \DeclareUnicodeCharacter{00F4}{\^o}
- \DeclareUnicodeCharacter{00F5}{\~o}
- \DeclareUnicodeCharacter{00F6}{\"o}
- \DeclareUnicodeCharacter{00F8}{\o}
- \DeclareUnicodeCharacter{00F9}{\`u}
- \DeclareUnicodeCharacter{00FA}{\'u}
- \DeclareUnicodeCharacter{00FB}{\^u}
- \DeclareUnicodeCharacter{00FC}{\"u}
- \DeclareUnicodeCharacter{00FD}{\'y}
- \DeclareUnicodeCharacter{00FE}{\th}
- \DeclareUnicodeCharacter{00FF}{\"y}
-
- \DeclareUnicodeCharacter{0100}{\=A}
- \DeclareUnicodeCharacter{0101}{\=a}
- \DeclareUnicodeCharacter{0102}{\u{A}}
- \DeclareUnicodeCharacter{0103}{\u{a}}
- \DeclareUnicodeCharacter{0104}{\ogonek{A}}
- \DeclareUnicodeCharacter{0105}{\ogonek{a}}
- \DeclareUnicodeCharacter{0106}{\'C}
- \DeclareUnicodeCharacter{0107}{\'c}
- \DeclareUnicodeCharacter{0108}{\^C}
- \DeclareUnicodeCharacter{0109}{\^c}
- \DeclareUnicodeCharacter{0118}{\ogonek{E}}
- \DeclareUnicodeCharacter{0119}{\ogonek{e}}
- \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
- \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
- \DeclareUnicodeCharacter{010C}{\v{C}}
- \DeclareUnicodeCharacter{010D}{\v{c}}
- \DeclareUnicodeCharacter{010E}{\v{D}}
-
- \DeclareUnicodeCharacter{0112}{\=E}
- \DeclareUnicodeCharacter{0113}{\=e}
- \DeclareUnicodeCharacter{0114}{\u{E}}
- \DeclareUnicodeCharacter{0115}{\u{e}}
- \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
- \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
- \DeclareUnicodeCharacter{011A}{\v{E}}
- \DeclareUnicodeCharacter{011B}{\v{e}}
- \DeclareUnicodeCharacter{011C}{\^G}
- \DeclareUnicodeCharacter{011D}{\^g}
- \DeclareUnicodeCharacter{011E}{\u{G}}
- \DeclareUnicodeCharacter{011F}{\u{g}}
-
- \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
- \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
- \DeclareUnicodeCharacter{0124}{\^H}
- \DeclareUnicodeCharacter{0125}{\^h}
- \DeclareUnicodeCharacter{0128}{\~I}
- \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
- \DeclareUnicodeCharacter{012A}{\=I}
- \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
- \DeclareUnicodeCharacter{012C}{\u{I}}
- \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
-
- \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
- \DeclareUnicodeCharacter{0131}{\dotless{i}}
- \DeclareUnicodeCharacter{0132}{IJ}
- \DeclareUnicodeCharacter{0133}{ij}
- \DeclareUnicodeCharacter{0134}{\^J}
- \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
- \DeclareUnicodeCharacter{0139}{\'L}
- \DeclareUnicodeCharacter{013A}{\'l}
-
- \DeclareUnicodeCharacter{0141}{\L}
- \DeclareUnicodeCharacter{0142}{\l}
- \DeclareUnicodeCharacter{0143}{\'N}
- \DeclareUnicodeCharacter{0144}{\'n}
- \DeclareUnicodeCharacter{0147}{\v{N}}
- \DeclareUnicodeCharacter{0148}{\v{n}}
- \DeclareUnicodeCharacter{014C}{\=O}
- \DeclareUnicodeCharacter{014D}{\=o}
- \DeclareUnicodeCharacter{014E}{\u{O}}
- \DeclareUnicodeCharacter{014F}{\u{o}}
-
- \DeclareUnicodeCharacter{0150}{\H{O}}
- \DeclareUnicodeCharacter{0151}{\H{o}}
- \DeclareUnicodeCharacter{0152}{\OE}
- \DeclareUnicodeCharacter{0153}{\oe}
- \DeclareUnicodeCharacter{0154}{\'R}
- \DeclareUnicodeCharacter{0155}{\'r}
- \DeclareUnicodeCharacter{0158}{\v{R}}
- \DeclareUnicodeCharacter{0159}{\v{r}}
- \DeclareUnicodeCharacter{015A}{\'S}
- \DeclareUnicodeCharacter{015B}{\'s}
- \DeclareUnicodeCharacter{015C}{\^S}
- \DeclareUnicodeCharacter{015D}{\^s}
- \DeclareUnicodeCharacter{015E}{\cedilla{S}}
- \DeclareUnicodeCharacter{015F}{\cedilla{s}}
-
- \DeclareUnicodeCharacter{0160}{\v{S}}
- \DeclareUnicodeCharacter{0161}{\v{s}}
- \DeclareUnicodeCharacter{0162}{\cedilla{t}}
- \DeclareUnicodeCharacter{0163}{\cedilla{T}}
- \DeclareUnicodeCharacter{0164}{\v{T}}
-
- \DeclareUnicodeCharacter{0168}{\~U}
- \DeclareUnicodeCharacter{0169}{\~u}
- \DeclareUnicodeCharacter{016A}{\=U}
- \DeclareUnicodeCharacter{016B}{\=u}
- \DeclareUnicodeCharacter{016C}{\u{U}}
- \DeclareUnicodeCharacter{016D}{\u{u}}
- \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
- \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
-
- \DeclareUnicodeCharacter{0170}{\H{U}}
- \DeclareUnicodeCharacter{0171}{\H{u}}
- \DeclareUnicodeCharacter{0174}{\^W}
- \DeclareUnicodeCharacter{0175}{\^w}
- \DeclareUnicodeCharacter{0176}{\^Y}
- \DeclareUnicodeCharacter{0177}{\^y}
- \DeclareUnicodeCharacter{0178}{\"Y}
- \DeclareUnicodeCharacter{0179}{\'Z}
- \DeclareUnicodeCharacter{017A}{\'z}
- \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
- \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
- \DeclareUnicodeCharacter{017D}{\v{Z}}
- \DeclareUnicodeCharacter{017E}{\v{z}}
-
- \DeclareUnicodeCharacter{01C4}{D\v{Z}}
- \DeclareUnicodeCharacter{01C5}{D\v{z}}
- \DeclareUnicodeCharacter{01C6}{d\v{z}}
- \DeclareUnicodeCharacter{01C7}{LJ}
- \DeclareUnicodeCharacter{01C8}{Lj}
- \DeclareUnicodeCharacter{01C9}{lj}
- \DeclareUnicodeCharacter{01CA}{NJ}
- \DeclareUnicodeCharacter{01CB}{Nj}
- \DeclareUnicodeCharacter{01CC}{nj}
- \DeclareUnicodeCharacter{01CD}{\v{A}}
- \DeclareUnicodeCharacter{01CE}{\v{a}}
- \DeclareUnicodeCharacter{01CF}{\v{I}}
-
- \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
- \DeclareUnicodeCharacter{01D1}{\v{O}}
- \DeclareUnicodeCharacter{01D2}{\v{o}}
- \DeclareUnicodeCharacter{01D3}{\v{U}}
- \DeclareUnicodeCharacter{01D4}{\v{u}}
-
- \DeclareUnicodeCharacter{01E2}{\={\AE}}
- \DeclareUnicodeCharacter{01E3}{\={\ae}}
- \DeclareUnicodeCharacter{01E6}{\v{G}}
- \DeclareUnicodeCharacter{01E7}{\v{g}}
- \DeclareUnicodeCharacter{01E8}{\v{K}}
- \DeclareUnicodeCharacter{01E9}{\v{k}}
-
- \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
- \DeclareUnicodeCharacter{01F1}{DZ}
- \DeclareUnicodeCharacter{01F2}{Dz}
- \DeclareUnicodeCharacter{01F3}{dz}
- \DeclareUnicodeCharacter{01F4}{\'G}
- \DeclareUnicodeCharacter{01F5}{\'g}
- \DeclareUnicodeCharacter{01F8}{\`N}
- \DeclareUnicodeCharacter{01F9}{\`n}
- \DeclareUnicodeCharacter{01FC}{\'{\AE}}
- \DeclareUnicodeCharacter{01FD}{\'{\ae}}
- \DeclareUnicodeCharacter{01FE}{\'{\O}}
- \DeclareUnicodeCharacter{01FF}{\'{\o}}
-
- \DeclareUnicodeCharacter{021E}{\v{H}}
- \DeclareUnicodeCharacter{021F}{\v{h}}
-
- \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
- \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
- \DeclareUnicodeCharacter{0228}{\cedilla{E}}
- \DeclareUnicodeCharacter{0229}{\cedilla{e}}
- \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
- \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
-
- \DeclareUnicodeCharacter{0232}{\=Y}
- \DeclareUnicodeCharacter{0233}{\=y}
- \DeclareUnicodeCharacter{0237}{\dotless{j}}
-
- \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
-
- \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
- \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
- \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
- \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
- \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
- \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
- \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
- \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
- \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
- \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
- \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
- \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
-
- \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
- \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
-
- \DeclareUnicodeCharacter{1E20}{\=G}
- \DeclareUnicodeCharacter{1E21}{\=g}
- \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
- \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
- \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
- \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
- \DeclareUnicodeCharacter{1E26}{\"H}
- \DeclareUnicodeCharacter{1E27}{\"h}
-
- \DeclareUnicodeCharacter{1E30}{\'K}
- \DeclareUnicodeCharacter{1E31}{\'k}
- \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
- \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
- \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
- \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
- \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
- \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
- \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
- \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
- \DeclareUnicodeCharacter{1E3E}{\'M}
- \DeclareUnicodeCharacter{1E3F}{\'m}
-
- \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
- \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
- \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
- \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
- \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
- \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
- \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
- \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
- \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
- \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
-
- \DeclareUnicodeCharacter{1E54}{\'P}
- \DeclareUnicodeCharacter{1E55}{\'p}
- \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
- \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
- \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
- \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
- \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
- \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
- \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
- \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
-
- \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
- \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
- \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
- \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
- \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
- \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
- \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
- \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
- \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
- \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
-
- \DeclareUnicodeCharacter{1E7C}{\~V}
- \DeclareUnicodeCharacter{1E7D}{\~v}
- \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
- \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
-
- \DeclareUnicodeCharacter{1E80}{\`W}
- \DeclareUnicodeCharacter{1E81}{\`w}
- \DeclareUnicodeCharacter{1E82}{\'W}
- \DeclareUnicodeCharacter{1E83}{\'w}
- \DeclareUnicodeCharacter{1E84}{\"W}
- \DeclareUnicodeCharacter{1E85}{\"w}
- \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
- \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
- \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
- \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
- \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
- \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
- \DeclareUnicodeCharacter{1E8C}{\"X}
- \DeclareUnicodeCharacter{1E8D}{\"x}
- \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
- \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
-
- \DeclareUnicodeCharacter{1E90}{\^Z}
- \DeclareUnicodeCharacter{1E91}{\^z}
- \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
- \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
- \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
- \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
- \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
- \DeclareUnicodeCharacter{1E97}{\"t}
- \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
- \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
-
- \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
- \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
-
- \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
- \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
- \DeclareUnicodeCharacter{1EBC}{\~E}
- \DeclareUnicodeCharacter{1EBD}{\~e}
-
- \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
- \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
- \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
- \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
-
- \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
- \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
-
- \DeclareUnicodeCharacter{1EF2}{\`Y}
- \DeclareUnicodeCharacter{1EF3}{\`y}
- \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
-
- \DeclareUnicodeCharacter{1EF8}{\~Y}
- \DeclareUnicodeCharacter{1EF9}{\~y}
-
- \DeclareUnicodeCharacter{2013}{--}
- \DeclareUnicodeCharacter{2014}{---}
- \DeclareUnicodeCharacter{2018}{\quoteleft}
- \DeclareUnicodeCharacter{2019}{\quoteright}
- \DeclareUnicodeCharacter{201A}{\quotesinglbase}
- \DeclareUnicodeCharacter{201C}{\quotedblleft}
- \DeclareUnicodeCharacter{201D}{\quotedblright}
- \DeclareUnicodeCharacter{201E}{\quotedblbase}
- \DeclareUnicodeCharacter{2022}{\bullet}
- \DeclareUnicodeCharacter{2026}{\dots}
- \DeclareUnicodeCharacter{2039}{\guilsinglleft}
- \DeclareUnicodeCharacter{203A}{\guilsinglright}
- \DeclareUnicodeCharacter{20AC}{\euro}
-
- \DeclareUnicodeCharacter{2192}{\expansion}
- \DeclareUnicodeCharacter{21D2}{\result}
-
- \DeclareUnicodeCharacter{2212}{\minus}
- \DeclareUnicodeCharacter{2217}{\point}
- \DeclareUnicodeCharacter{2261}{\equiv}
-}% end of \utfeightchardefs
-
-
-% US-ASCII character definitions.
-\def\asciichardefs{% nothing need be done
- \relax
-}
-
-% Make non-ASCII characters printable again for compatibility with
-% existing Texinfo documents that may use them, even without declaring a
-% document encoding.
-%
-\setnonasciicharscatcode \other
-
-
-\message{formatting,}
-
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. We call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
- \ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
- \else
- \emergencystretch = .15\hsize
- \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth;
-% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
-% 7) physical page height; 8) physical page width.
-%
-% We also call \setleading{\textleading}, so the caller should define
-% \textleading. The caller should also set \parskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6#7#8{%
- \voffset = #3\relax
- \topskip = #6\relax
- \splittopskip = \topskip
- %
- \vsize = #1\relax
- \advance\vsize by \topskip
- \outervsize = \vsize
- \advance\outervsize by 2\topandbottommargin
- \pageheight = \vsize
- %
- \hsize = #2\relax
- \outerhsize = \hsize
- \advance\outerhsize by 0.5in
- \pagewidth = \hsize
- %
- \normaloffset = #4\relax
- \bindingoffset = #5\relax
- %
- \ifpdf
- \pdfpageheight #7\relax
- \pdfpagewidth #8\relax
- % if we don't reset these, they will remain at "1 true in" of
- % whatever layout pdftex was dumped with.
- \pdfhorigin = 1 true in
- \pdfvorigin = 1 true in
- \fi
- %
- \setleading{\textleading}
- %
- \parindent = \defaultparindent
- \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
- \parskip = 3pt plus 2pt minus 1pt
- \textleading = 13.2pt
- %
- % If page is nothing but text, make it come out even.
- \internalpagesizes{607.2pt}{6in}% that's 46 lines
- {\voffset}{.25in}%
- {\bindingoffset}{36pt}%
- {11in}{8.5in}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.25 trim size.
-\def\smallbook{{\globaldefs = 1
- \parskip = 2pt plus 1pt
- \textleading = 12pt
- %
- \internalpagesizes{7.5in}{5in}%
- {-.2in}{0in}%
- {\bindingoffset}{16pt}%
- {9.25in}{7in}%
- %
- \lispnarrowing = 0.3in
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \defbodyindent = .5cm
-}}
-
-% Use @smallerbook to reset parameters for 6x9 trim size.
-% (Just testing, parameters still in flux.)
-\def\smallerbook{{\globaldefs = 1
- \parskip = 1.5pt plus 1pt
- \textleading = 12pt
- %
- \internalpagesizes{7.4in}{4.8in}%
- {-.2in}{-.4in}%
- {0pt}{14pt}%
- {9in}{6in}%
- %
- \lispnarrowing = 0.25in
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \defbodyindent = .4cm
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
- \parskip = 3pt plus 2pt minus 1pt
- \textleading = 13.2pt
- %
- % Double-side printing via postscript on Laserjet 4050
- % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
- % To change the settings for a different printer or situation, adjust
- % \normaloffset until the front-side and back-side texts align. Then
- % do the same for \bindingoffset. You can set these for testing in
- % your texinfo source file like this:
- % @tex
- % \global\normaloffset = -6mm
- % \global\bindingoffset = 10mm
- % @end tex
- \internalpagesizes{673.2pt}{160mm}% that's 51 lines
- {\voffset}{\hoffset}%
- {\bindingoffset}{44pt}%
- {297mm}{210mm}%
- %
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \defbodyindent = 5mm
-}}
-
-% Use @afivepaper to print on European A5 paper.
-% From romildo@urano.iceb.ufop.br, 2 July 2000.
-% He also recommends making @example and @lisp be small.
-\def\afivepaper{{\globaldefs = 1
- \parskip = 2pt plus 1pt minus 0.1pt
- \textleading = 12.5pt
- %
- \internalpagesizes{160mm}{120mm}%
- {\voffset}{\hoffset}%
- {\bindingoffset}{8pt}%
- {210mm}{148mm}%
- %
- \lispnarrowing = 0.2in
- \tolerance = 800
- \hfuzz = 1.2pt
- \contentsrightmargin = 0pt
- \defbodyindent = 2mm
- \tableindent = 12mm
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper.
-\def\afourlatex{{\globaldefs = 1
- \afourpaper
- \internalpagesizes{237mm}{150mm}%
- {\voffset}{4.6mm}%
- {\bindingoffset}{7mm}%
- {297mm}{210mm}%
- %
- % Must explicitly reset to 0 because we call \afourpaper.
- \globaldefs = 0
-}}
-
-% Use @afourwide to print on A4 paper in landscape format.
-\def\afourwide{{\globaldefs = 1
- \afourpaper
- \internalpagesizes{241mm}{165mm}%
- {\voffset}{-2.95mm}%
- {\bindingoffset}{7mm}%
- {297mm}{210mm}%
- \globaldefs = 0
-}}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-%
-\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
- \globaldefs = 1
- %
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{\textleading}%
- %
- \dimen0 = #1\relax
- \advance\dimen0 by \voffset
- %
- \dimen2 = \hsize
- \advance\dimen2 by \normaloffset
- %
- \internalpagesizes{#1}{\hsize}%
- {\voffset}{\normaloffset}%
- {\bindingoffset}{44pt}%
- {\dimen0}{\dimen2}%
-}}
-
-% Set default to letter.
-%
-\letterpaper
-
-
-\message{and turning on texinfo input format.}
-
-% DEL is a comment character, in case @c does not suffice.
-\catcode`\^^? = 14
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}%$ font-lock fix
-
-% This macro is used to make a character print one way in \tt
-% (where it can probably be output as-is), and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
-
-% Same as above, but check for italic font. Actually this also catches
-% non-italic slanted fonts since it is impossible to distinguish them from
-% italic fonts. But since this is only used by $ and it uses \sl anyway
-% this is not a problem.
-\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-\let\realunder=_
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-% Used sometimes to turn off (effectively) the active characters even after
-% parsing them.
-\def\turnoffactive{%
- \normalturnoffactive
- \otherbackslash
-}
-
-\catcode`\@=0
-
-% \backslashcurfont outputs one backslash character in current font,
-% as in \char`\\.
-\global\chardef\backslashcurfont=`\\
-\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
-
-% \realbackslash is an actual character `\' with catcode other, and
-% \doublebackslash is two of them (for the pdf outlines).
-{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
-
-% In texinfo, backslash is an active character; it prints the backslash
-% in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
-% On startup, @fixbackslash assigns:
-% @let \ = @normalbackslash
-
-% \rawbackslash defines an active \ to do \backslashcurfont.
-% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
-@gdef@rawbackslash{@let\=@backslashcurfont}
-@gdef@otherbackslash{@let\=@realbackslash}
-
-% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-@def@normalturnoffactive{%
- @let\=@normalbackslash
- @let"=@normaldoublequote
- @let~=@normaltilde
- @let^=@normalcaret
- @let_=@normalunderscore
- @let|=@normalverticalbar
- @let<=@normalless
- @let>=@normalgreater
- @let+=@normalplus
- @let$=@normaldollar %$ font-lock fix
- @markupsetuplqdefault
- @markupsetuprqdefault
- @unsepspaces
-}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\' in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also turn back on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{%
- @ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active
- @catcode`@_=@active
-}
-
-% Say @foo, not \foo, in error messages.
-@escapechar = `@@
-
-% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
-
-@c Finally, make ` and ' active, so that txicodequoteundirected and
-@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
-@c don't make ` and ' active, @code will not get them as active chars.
-@c Do this last of all since we use ` in the previous @catcode assignments.
-@catcode`@'=@active
-@catcode`@`=@active
-@markupsetuplqdefault
-@markupsetuprqdefault
-
-@c Gnulib now utterly and painfully insists on no trailing whitespace.
-@c So we have to nuke it.
-
-@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c eval: (add-hook 'write-file-hooks 'nuke-trailing-whitespace)
-@c page-delimiter: "^\\\\message"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d.%02H"
-@c time-stamp-end: "}"
-@c End:
-
-@c vim:sw=2:
-
-@ignore
- arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
-@end ignore