3 * i960-dis.c (reg_names): Now const.
4 (struct sparse_tabent): New type, copied from array type in mem
6 (ctrl): Local static array ctrl_tab now const.
7 (cobr): Local static array cobr_tab now const.
8 (mem): Local variables reg1, reg2, reg3 now point to const. Local
9 static variable mem_tab no longer explicitly initialized. Changed
10 mem_init to const array of struct sparse_tabent.
11 (reg): Local static variable reg_tab no longer explicitly
12 initialized. Changed reg_init to const array of struct
14 (ea): Local static array scale_tab now const.
17 * i960-dis.c (reg): Added i960XL instructions to reg_init table.
23 * configure.bat: the disassember needs to be enabled for
24 "objdump -d" to work in djgpp.
28 * ns32k-dis.c: Deleted all code in "#ifdef GDB".
29 (invalid_float): Enabled general version, doesn't require running
30 on ns32k host. Changed to take char* argument, and test for
31 explicitly specified sizes, instead of using sizeof() on host CPU
33 (INVALID_FLOAT): Cast first argument.
34 (opt_u, opt_U, opt_O, opt_C, opt_S, list_P532, list_M532,
35 list_P032, list_M032): Now const.
36 (optlist, list_search): Made appropriate arguments now point to
38 (print_insn_arg): Changed static array of one-character-string
39 pointers into a static const array of characters; fixed sprintf
40 statement accordingly.
44 * opcodes/ns32k-dis.c: Semi-new file. Had apparently been dropped
45 from distribution. A ns32k-dis.c from a previous distribution has
46 been brought up to date and supports the new interface.
48 * disaaemble.c: define ARCH_ns32k and add case bfd_arch_ns32k.
50 * configure.in: add bfd_ns32k_arch target support.
52 * Makefile.in: add ns32k-dis.o to ALL_MACHINES.
53 Add ns32k-dis.c to CFILES. Add dependencies for ns32k-dis.o.
57 * h8300-dis.c (bfd_h8_disassemble): Get 16bit branch
62 * h8300-dis.c, mips-dis.c: Don't use true and false.
66 * configure.in: Change --with-targets to --enable-targets.
70 * mips-dis.c (_print_insn_mips): Build a static hash table mapping
71 opcodes to the first instruction with that opcode, to speed
77 * Makefile.in (mostlyclean): Fix typo (was mostyclean).
81 * configure.bat: update to latest makefile.in
85 * a29k-dis.c (print_insn): Print 'x' type operand in hex.
86 * h8300-dis.c (bfd_h8_disassemble): Print 16bit rels correctly.
87 * sh-dis.c (print_insn_sh): Don't recur endlessly if delay
88 slot insn is in a delay slot.
89 * z8k-opc.h: (resflg): Fix patterns.
90 * h8500-opc.h Fix CR insn patterns.
94 * ppc-opc.c (powerpc_opcodes): Put PowerPC versions of "cmp" and
95 "cmpl" before POWER versions, so that gas -many uses them.
99 * disassemble.c: New file.
100 * Makefile.in (OFILES): Add disassemble.o.
101 (disassemble.o): Provide dependencies; compile with $(ARCHDEFS).
102 * configure.in: Define ARCHDEFS in Makefile. Code taken from
103 binutils/configure.in.
105 * m68k-dis.c (print_insn_m68k): If F_ALIAS flag is set, skip the
106 opcode being examined.
110 * ppc-opc.c (powerpc_operands): Added RAL, RAM and RAS.
111 (insert_ral, insert_ram, insert_ras): New functions.
112 (powerpc_opcodes): Use RAL for load with update, RAM for lmw, and
113 RAS for store with update.
117 * ppc-opc.c (powerpc_opcodes): Correct fcir. From David Edelsohn
122 * mips-opc.c (mips_opcodes): Correct operands of "nor" with an
127 * sparc-opc.c (sparc_opcodes): Fix "rd %fprs,%l0".
131 * ppc-opc.c (powerpc_operands): The signedp field has been
132 removed, so don't initialize it. Set the PPC_OPERAND_SIGNED flag
133 instead. Add new operand SISIGNOPT.
134 (powerpc_opcodes): For lis, liu, addis, and cau use SISIGNOPT.
136 * ppc-dis.c (print_insn_powerpc): Check PPC_OPERAND_SIGNED rather
141 * i386-dis.c (struct private): Renamed to dis_private. `private'
142 is a reserved word for dynix cc.
146 * configure.in: Change error message to refer to bfd/config.bfd
147 rather than bfd/configure.in.
151 * ppc-opc.c: Define POWER2 as short alias flag.
152 (powerpc_opcodes): Add POWER/2 opcodes lfq*, stfq*, fcir[z], and
157 * i960-dis.c (print_insn_i960): Don't read a second word for
158 opcodes 0, 1, 2 and 3.
162 * configure.in: Don't build m68881-ext.o for bfd_m68k_arch.
166 * m68881-ext.c: Removed; no longer used.
167 * Makefile.in: Changed accordingly.
169 * m68k-dis.c (ext_format_68881): Don't declare.
170 (print_insn_m68k): If an instruction uses place 'i', it uses at
171 least four fixed bytes.
172 (print_insn_arg): Don't bump p by 2 for case 'I', place 'i'. For
173 extended float, convert to double using floatformat_to_double, not
174 ieee_extended_to_double, and fetch the data before converting it.
178 * mips-opc.c: It's sqrt.s, not sqrt.w. From
183 * ppc-opc.c (powerpc_opcodes): The POWER uses bdn[l][a] where the
184 PowerPC uses bdnz[l][a].
188 * dis-buf.c, i386-dis.c: Include sysdep.h.
192 * configure.in (bfd_powerpc_arch): Use ppc-dis.o and ppc-opc.o.
194 * ppc-opc.c (powerpc_opcodes): Mark POWER instructions supported
195 by Motorola PowerPC 601 with PPC_OPCODE_601.
196 * ppc-dis.c (print_insn_big_powerpc, print_insn_little_powerpc):
197 Disassemble Motorola PowerPC 601 instructions as well as normal
198 PowerPC instructions.
202 * i960-dis.c (reg, mem): Just use a static array instead of
207 * hppa-dis.c (print_insn_hppa): For '?' and '@' only adjust the
208 condition name index if this is for a negated condition.
210 * hppa-dis.c (print_insn_hppa): No space before 'H' operand.
211 Floating point format for 'H' operand is backwards from normal
212 case (0 == double, 1 == single). For '4', '6', '7', '9', and '8'
213 operands (fmpyadd and fmpysub), handle bizarre register
214 translation correctly for single precision format.
216 * hppa-dis.c (print_insn_hppa): Do not emit a space after 'F'
217 or 'I' operands if the next format specifier is 'M' (fcmp
218 condition completer).
222 * ppc-opc.c (powerpc_operands): New operand type MBE to handle a
223 single number giving a bitmask for the MB and ME fields of an M
224 form instruction. Change NB to accept 32, and turn it into 0;
225 also turn 0 into 32 when disassembling. Seperated SH from NB.
226 (insert_mbe, extract_mbe): New functions.
227 (insert_nb, extract_nb): New functions.
228 (SC_MASK): Mask out SA and LK bits.
229 (powerpc_opcodes): Change "cal" to use RT, D, RA rather than RT,
230 RA, SI. Change "liu" and "cau" to use UI rather than SI. Mark
231 "bctr" and "bctrl" as accepted by POWER. Change "rlwimi",
232 "rlimi", "rlwimi.", "rlimi.", "rlwinm", "rlinm", "rlwinm.",
233 "rlinm.", "rlmi", "rlmi.", "rlwnm", "rlnm", "rlwnm.", "rlnm." to
234 use MBE rather than MB. Add "mfmq" and "mtmq" POWER instructions.
235 (powerpc_macros): Define table of macro definitions.
236 (powerpc_num_macros): Define.
238 * ppc-dis.c (print_insn_powerpc): Don't skip optional operands
239 if PPC_OPERAND_NEXT is set.
243 * i960-dis.c (print_insn_i960): Make buffer bfd_byte instead of
244 char. Retrieve contents using bfd_getl32 instead of shifting.
248 * ppc-opc.c: New file. Opcode table for PowerPC, including
249 opcodes for POWER (RS/6000).
250 * ppc-dis.c: New file. PowerPC and Power (RS/6000) disassembler.
251 * Makefile.in (ALL_MACHINES): Add ppc-dis.o and ppc-opc.o.
252 (CFILES): Add ppc-dis.c.
253 (ppc-dis.o, ppc-opc.o): New targets.
254 * configure.in: Build ppc-dis.o and ppc-opc.o for bfd_rs6000_arch.
258 * hppa-dis.c (print_insn_hppa): Handle 'N' in assembler template.
259 No space before 'u', 'f', or 'N'.
263 * i386-dis.c (print_insn_i386): Add FIXME comment regarding reading
264 farther than we should.
266 * i386-dis.c (dis386): Use Yb and Yv for scasb and scasS.
270 * sparc-dis.c m68k-dis.c alpha-dis.c a29k-dis.c: Fix comments.
274 * i960-dis.c (print_insn_i960): Only read word2 if the instruction
275 needs it, to prevent reading past the end of a section.
279 * mips-opc.h: Use macro for j instruction, to support SVR4 PIC.
280 Removed t,A case for la; always use t,A(b) case.
285 * mips-dis.c (print_insn_arg): Handle 'k'.
286 * mips-opc.c: Make cache use k, not t.
290 * alpha-opc.h, alpha-dis.c (print_insn_alpha): Add
291 FLOAT_MEMORY_FORMAT_CODE, FLOAT_BRANCH_FORMAT_CODE, correct
292 FLOAT_FORMAT_CODE to put out floating point register names.
296 * mips-opc.c: Use macros for jal variants, to support SVR4 PIC.
300 * a29k-dis.c (print_insn): Use 0x%08x, not 0x%8x.
304 * mips-opc.c (dsll, dsra, dsrl): Added '>' cases for shift counts
305 larger than 32. Moved dsxx32 variants first for disassembler.
309 * z8kgen.c, z8k-opc.h: Add full lda information.
313 * hppa-dis.c (print_insn_hppa): Do not emit a space after
314 movb instructions. Any necessary space will be emitted by
315 the code to handle nullification completers.
319 * mips-opc.c: Moved l.d down so that it disassembles as ldc1.
323 * alpha-opc.h: Add ldl_l, fix typo for ldq_u.
324 * alpha-dis.c (print_insn_alpha): Add code for PAL_FORMAT_CODE.
328 * mips-opc.c: Correct lwu opcode value (book had it wrong).
332 * z8k-dis.c (FETCH_DATA): get just the right amount of data.
333 (unpack_instr): Cope with ARG_IMM4M1 type instructions.
337 * m88k-dis.c (m88kdis): comment change. Remove space after
339 (printop): handle new arg types DEC and XREG for m88110.
343 * hppa-dis.c (print_insn_hppa): Handle 'z' operand
344 type for absolute branch addresses. Delete special
345 "ble" and "be" code in 'W' operand code.
349 * mips-opc.c: Set hazard information correctly for branch
354 * alpha-dis.c (print_insn_alpha), alpha-opc.h: Fix bugs, use
355 info->fprintf_func for printing and info->print_address_func for
360 * mips-opc.c: Set INSN_TRAP for tXX instructions.
365 Corrected second case of "b" for disassembler.
369 * mips-dis.c, m88k-dis.c: Don't include libbfd.h. Changed calls
370 to BFD swapping routines to correspond to BFD name changes.
374 * mips-opc.c: Change div machine instruction to be z,s,t rather
375 than s,t. Change div macro to be d,v,t rather than d,s,t.
376 Likewise for divu, ddiv, ddivu. Added z,s,t case for drem, dremu,
377 rem and remu which generates only the corresponding div
378 instruction. This is for compatibility with the MIPS assembler,
379 which only generates the simple machine instruction when an
380 explicit destination of $0 is used.
381 * mips-dis.c (print_insn_arg): Handle 'z' (always register zero).
386 WR_31 hazard for bal, bgezal, bltzal.
390 * hppa-dis.c (print_insn_hppa): Use print function
391 from within the disassemble_info, not fprintf_filtered.
395 * hppa-dis.c (print_insn_hppa): Handle '|' like '>'. (From Jeff
400 * mips-opc.c ("absu"): Removed.
405 * mips-opc.c: Added r6000 and r4000 instructions and macros.
406 Changed hazard information to distinguish between memory load
407 delays and coprocessor load delays.
411 * mips-opc.c: li.d uses "T,L", not "S,F". Added li.s.
415 * configure.in: Don't pass cpu to config.bfd.
419 * m88k-dis.c (m88kdis): Make class unsigned.
423 * alpha-dis.c (print_insn_alpha): One branch format case was
424 missing the instruction name.
428 * Makefile.in (ALL_MACHINES): Renamed from DIS_LIBS.
429 Add the arch-specific auxiliary files.
430 (OFILES): Remove the arch-specific auxiliary files
431 and use BFD_MACHINES instead of DIS_LIBS.
432 * configure.in: Set BFD_MACHINES based on --with-targets option.
436 * mips-opc.c: Added lwc1 E,A(b) to go with lwc1 T,A(b). Similarly
441 * sparc-opc.c: Change CONST to const to deal with gcc
442 -Dconst=__const -traditional.
447 coprocessor instructions out of #if 0, and made them use new
452 * sparc-dis.c: Include ansidecl.h before opcodes/sparc.h.
456 * sparc-opc.c: Add F_JSR, F_UNBR, or F_CONDBR flags to each branch
457 instruction, for use by the disassembler.
459 * sparc-dis.c (SEX): Add sign extension macro. Replace many
460 hand-coded sign extensions that depended on 32-bit host ints.
461 FIXME, we still depend on big-endian host bitfield ordering.
462 (sparc_print_insn): Set the insn_info_valid field, and the
463 other fields that describe the instruction being printed.
467 * sparc-opc.c (call): Accept all 6 addressing modes valid for
468 `jmp' instead of just one of them.
472 * hppa-dis.c: Move floating registers from reg_names to fp_reg_names.
473 (fput_fp_reg_r): Renamed from fput_reg_r.
474 (fput_fp_reg): New function.
475 (print_insn_hppa): Use fput_fp_reg{,_r} where appropriate.
477 * hppa-dis.c (print_insn_hppa, cases 'a', 'd'): Print space afterwards.
479 * hppa-dis.c (print_insn_hppa, case 'd'): Use GET_COND not GET_FIELD.
483 * hppa-dis.c (print_insn_hppa): Use extract_5r_store for 'r'.
485 * hppa-dis.c (print_insn_hppa, case '>'): If next character is 'n',
486 don't output a space.
488 * hppa-dis.c (float_format_names): 10 is undefined, and 11 is quad.
492 * mips-opc.c: New file, containing opcode table from
493 ../include/opcode/mips.h.
494 * Makefile.in: Add it.
498 * m88k-dis.c: New file, moved in from gdb and changed to use the
499 new dis-asm.h disassembler interface.
500 * Makefile.in (DIS_LIBS): Added m88k-dis.o.
501 (m88k-dis.o): New target.
505 * mips-dis.c (print_insn_arg, _print_insn_mips): Made pointer to
506 argument string const char * to correspond to opcode/mips.h.
510 * mips-dis.c: Updated to account for name changes in new version
512 * Makefile.in: Added header file dependencies.
516 * h8300-dis.c (bfd_h8_disassemble): Correct fetching of instruction.
520 * m68k-dis.c (NEXTWORD, NEXTLONG): Use ((x) ^ 0x8000) - 0x8000 to sign
521 extend, rather than shifts.
525 * Makefile.in: Undo 15 June change.
529 * m68k-dis.c (print_insn_arg): Change return value to byte count
531 * m68k-dis.c: Re-write to detect invalid operands before
532 printing anything, so we can handle this the same way we
533 handle invalid opcodes.
537 * sh-dis.c, sh-opc.h: Understand some more opcodes.
541 * hppa-dis.c: Include <ansidecl.h> and sysdep.h before other
546 * sparc-dis.c: Don't declare qsort, since sysdep.h might.
548 * configure.in: Do make sysdep.h link.
549 * Makefile.in: Search ../include. Don't search ../bfd.
554 * hppa-dis.c: Fix typo. 'a' and 'd' were reversed.
555 Do not print a space before the completers specified by
560 * mips-dis.c: No longer need to bomb out if HOST_64_BIT is
561 defined, since gdb has been fixed.
564 * hppa-dis.c (print_insn_hppa): Last argument to fput_reg,
565 fput_reg_r, fput_creg, fput_const, and fputs_filtered should
566 be a *disassemble_info, not a *FILE.
567 * hppa-dis.c: Support 'd', '!', and 'a'.
568 * hppa-dis.c: Support 's' to extract a 2 bit space register.
569 * hppa-dis.c: Delete cases which are no longer needed.
573 * m68k-dis.c (print_insn_{m68k,arg}): Add MMU codes.
577 * h8300-dis.c: New file, removed from bfd/cpu-h8300.c, with
582 * Makefile.in (CSEARCH): Add -I../bfd for sysdep.h and bfd.h.
583 * configure.in: No longer need to configure to get sysdep.h.
588 * hppa-dis.c: Support 'I', 'J', and 'K' in output
589 templates for 1.1 FP computational instructions.
593 * h8500-dis.c (print_insn_h8500): Address argument is type
595 * z8k-dis.c (print_insn_z8k, print_insn_z8001, print_insn_z8002):
598 * h8500-opc.h (addr_class_type): No comma at end of enumerator.
599 * sh-opc.h (sh_nibble_type, sh_arg_type): Ditto.
601 * sparc-dis.c (compare_opcodes): Move static declaration to
606 * sparc-dis.c (print_insn_sparc): Implement 'n' argument for unimp
607 instruction, remove unimp hack from 'l' argument.
611 * z8k-dis.c (fetch_data): Use unsigned char to make ancient gcc's
617 * mips-dis.c (print_insn_arg): Handle 'C' for general coprocessor
622 * hppa-dis.c: Include dis-asm.h before sysdep.h. Changed some
623 arrays of string pointers to 2-d arrays of chars, to save
628 * a29k-dis.c, alpha-dis.c, i960-dis.c, sparc-dis.c, z8k-dis.c:
629 Cast second arg to read_memory_func to "bfd_byte *", as necessary.
633 * hppa-dis.c: New file from Utah, adapted to new disassembler
635 * Makefile.in: Include it.
639 * sh-dis.c, sh-opc.h: New files.
643 * alpha-dis.c, alpha-opc.h: New files.
647 * mips-dis.c: Sign extend 'j' and 'b' arguments, delta is a signed
652 * sparc-dis.c: Make "ta" the default trap instruction, "t" the alias.
656 * a29k-dis.c, sparc-dis.c, sparc-opc.c: Use CONST rather than
661 * sparc-dis.c: Use fprintf_func a few places where I forgot,
662 and double percent signs a few places.
664 * a29k-dis.c, i960-dis.c: New, merged from gdb and binutils.
666 * i386-dis.c, m68k-dis.c, mips-dis.c, sparc-dis.c:
667 Use info->print_address_func not print_address.
669 * dis-buf.c (generic_print_address): New function.
673 * Makefile.in: Add sparc-dis.c.
674 sparc-dis.c: New file, merges binutils and gdb versions as follows:
676 Add `add' instruction to the set that get checked
677 for a preceding `sethi' in order to print an absolute address.
678 * (print_insn): Disassembly prefers real instructions.
679 (is_delayed_branch): Speed up.
680 * sparc-opcode.h: Add ALIAS bit to aliases. Fix up opcode tables.
681 Still missing some float ops, and needs testing.
682 * sparc-pinsn.c (print_insn): Eliminate 'set' test, subsumed by
683 F_ALIAS. Use printf, not fprintf, when not passing a file
685 (compare_opcodes): Check that identical instructions have
686 identical opcodes, complain otherwise.
691 Use dis-asm.h/read_memory_func interface.
695 * h8500-dis.c, i386-dis.c, m68k-dis.c, z8k-dis.c (fetch_data):
696 deliberately return non-zero to setjmp from longjmp. Otherwise
697 this code fails to compile.
701 * m68k-dis.c: Fix prototype for fetch_arg().
705 * dis-buf.c: New file, for new read_memory_func interface.
706 Makefile.in (OFILES): Include it.
707 m68k-dis.c, i386-dis.c, h8500-dis.c, mips-dis.c, z8k-dis.c:
708 Use new read_memory_func interface.
712 * h8500-dis.c (print_insn_h8500): Get sign of fp offsets right.
713 * h8500-opc.h: Fix couple of opcodes.
715 Wed Mar 24 02:03:36 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com)
717 * Makefile.in: add dvi & installcheck targets
721 * Makefile.in: Update for h8500-dis.c.
725 * h8500-dis.c, h8500-opc.h: New files
729 * mips-dis.c, z8k-dis.c: Converted to use interface defined in
730 ../include/dis-asm.h.
731 * m68k-dis.c: New file (merge of ../binutils/m68k-pinsn.c
732 and ../gdb/m68k-pinsn.c).
733 * i386-dis.c: New file (merge of ../binutils/i386-pinsn.c
734 and ../gdb/i386-pinsn.c).
735 * m68881-ext.c: New file. Moved definition of
736 ext_format ext_format_68881 from ../gdb/m68k-tdep.c.
737 * Makefile.in: Adjust for new files.
739 * m68k-dis.c: Recognize '9' placement code, so (say) pflush
740 can be dis-assembled.
744 * mips-dis.c (print_insn_arg): Now returns void.
748 * mips-dis.c (ansidecl.h): Include for benefit of sysdep.h
749 files that use the macros.
753 * mips-dis.c: New file, from gdb/mips-pinsn.c.
754 * Makefile.in (DIS_LIBS): Added mips-dis.o.
755 (CFILES): Added mips-dis.c.
759 * z8k-dis.c (print_insn_z8001, print_insn_z8002): new routines
760 * z8kgen.c, z8k-opc.h: fix sizes of some shifts.
764 * Makefile.in: Improve *clean rules.
765 * configure.in: Allow a default host.
767 Tue Nov 17 19:53:54 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
769 * Makefile.in: also use -I$(srcdir)/../bfd, since some sysdep
770 files include other sysdep files
774 * z8k-dis.c z8k-opc.h z8kgen.c: checkpoint
778 * configure.in: For host support, use ../bfd/configure.host
779 so it stays in sync with the ../bfd/hosts database.
781 Thu Oct 1 23:38:54 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
783 * configure.in: use cpu-vendor-os triple instead of nested cases
787 * z8k-dis.c (unparse_instr): fix bug where opcode returned was
788 *always* the wrong one.
792 * z8kgen.c: added copyright info
796 * z8k-dis.c (unparse_instr): prettier tabs
797 * z8kgen.c -> z8k-opc.h: bug fixes in tables
799 Fri Sep 25 12:50:32 1992 Stu Grossman (grossman at cygnus.com)
801 * configure.in: Add ncr* configuration.
802 * z8k-dis.c (struct instr_data_s): Make instr_asmsrc char to make
803 picayune ANSI compilers happy.
807 * configure.in (i386): Make i386 and i486 synonymous for now.
808 * configure.in (i[34]86-*-sysv4): Add my_host definition.
812 * Makefile.in (install): Fix typo.
816 * Makefile.in (make): Remove obsolete crud.
817 (sparc-opc.o): Avoid Sun Make VPATH bug.
821 * Makefile.in: since there are no SUBDIRS, remove rule and
822 references of subdir_do.
826 * Makefile.in (install): Get the library name right here too.
827 Don't install bfd.h, since it's unrelated to this library. No
828 subdirs to recurse into, either.
829 (CFILES): The source file has a .c suffix, not .o.
831 * sparc-opc.c: New file, moved from BFD.
832 * Makefile.in (OFILES): Build it.
836 * z8k-dis.c: fixed forward refferences of some declarations.
840 * Makefile.in: get the name of the library right
844 * z8k-dis.c: knows how to disassemble z8k stuff
845 * z8k-opc.h: new file full of z8000 opcodes
849 version-control: never