4 * config/tc-mn10300.c (md_assemble): "exreg0", "exreg1", "exregother",
5 and "all" are not valid operands when not in am33 mode.
10 * config/tc-alpha.c (md_show_usage): Document pca56 and ev6 options.
14 * config/tc-i386.h (LONG_DOUBLE_MNEM_SUFFIX): Define.
15 (INTEL_DWORD_MNEM_SUFFIX): Define.
21 (OFFSET_FLAT): Define.
26 * config/tc-i386.c (set_intel_syntax): New routine.
27 (intel_syntax): Declare.
28 (allow_naked_reg): Declare.
29 (md_pseudo_table): Support .intel_syntax and .att_syntax.
30 (intel_float_operand): New routine.
31 (md_assemble): Handle INTEL_DWORD_MNEM_SUFFIX.
32 Handle brackets as well as parens. Call i386_intel_operand for
33 intel syntax. Reverse operands if appropriate. Handle new
34 suffixes. Handle movzx and movsx.
35 (i386_is_reg): New routine.
36 (i386_immediate): New routine.
37 (i386_scale): New routine.
38 (i386_displacement): New routine.
39 (i386_operand_modifier): New routine.
40 (build_displacement_string): New routine.
41 (i386_parse_seg): New routine.
42 (i386_intel_memory_operand): New routine.
43 (i386_intel_operand): New routine.
44 (i386_operand): Call i386_displacement, i386_immediate,
45 i386_scale, etc. instead of handling inline.
46 (parse_register): Handle registers without prefix.
50 * configure: Regenerate.
51 * configure.in (arm-*-oabi): New.
53 * config/tc-arm.c (target_oabi): Declare.
54 (md_apply_fix3): Support REL relocs.
55 (md_parse_option): Handle -oabi.
56 (elf32_arm_target_format): New routine.
57 (md_longopts): Add OPTION_OABI.
58 * config/tc-arm.h: Redefine TARGET_FORMAT.
63 * write.c (write_relocs): Handle out of range error.
65 * config/tc-fr30.c (fr30_fix_adjustable): New function.
66 (fr30_force_relocation): Default to 0.
68 * config/tc-fr30.h (obj_fix_adjustable): Define.
69 (TC_FORCE_RELOCATION): Define.
71 * cgen.c (gas_cgen_md_apply_fix3): Do not apply fixes to VTABLE
76 * config/tc-d30v.c (write_2_short): Do not generate a sequential
77 merge of two instructions if the left instruciton kills the right.
81 * Makefile.in: Regenerate.
82 * configure.in: Redo test for using cgen.
83 * configure: Regenerate.
87 * config/obj-coff.h (obj_adjust_symtab): Prevent accidental
88 redefinition of this macro.
93 * config/tc-m32r.c (OPERAND_IS_COND_BIT): Add check for psw.
98 * config/tc-mips.c (mips_frob_file): Disable "Unmatched %hi reloc"
103 * config/tc-mips.c (append_insn): For mips16, insert a nop between
104 a read of HI or LO and an immediatly following branch.
108 * config/tc-mips.c (md_begin): Another correction to the setting of
113 * config/tc-mips.c (md_begin): Correct type-o in setting of mips_eabi64.
117 * config/tc-m32r.c (md_assemble): Emit a NOP after a relaxable 16
118 bit insn when optimizing, so that parallelised instructions will
119 start on a 32 bit boundary.
123 * config/tc-mips.c (mips_eabi64): New.
124 (md_begin): Set mips_eabi64.
125 (mips_elf_final_processing): Use it.
129 * config/tc-mips.c (mips_elf_final_processing):
130 Correct setting of ABI in e_flags.
134 * config/tc-fr30.c (md_assemble): Warn about invalid instructions in delay slots.
136 start-sanitize-vr4xxx
139 * config/tc-mips.c (md_begin,md_parse_option): Handle vr4111.
144 * cgen.c (gas_cgen_md_apply_fix3): Mark as an error, rather than a
145 warning, values that don't fit in the field.
149 * config/tc-mips.c (mips_abi_string): New.
150 (md_parse_option,md_longopts): Add mabi.
151 (mips_elf_final_processing): Set e_flags based on mabi flag.
153 start-sanitize-vr4xxx
156 * config/tc-mips.c (md_parse_option): Handle vr4111.
160 * config/tc-mips.c (mips_4121): New.
161 (md_begin,mips_ip,md_longopts,md_parse_option): Add vr4121.
166 * config/tc-h8300.c (build_bytes): Change message given if the
167 instruction requires H8/300H mode and we're not in Hmode, to
168 suggest that it may be the operand modes that are the problem, not
169 necessarily the opcode.
173 * config/tc-fr30.c: Add line separator character.
180 * config/tc-mips.c (append_insn): Don't move INSN_SYNC
181 instructions into delay slot.
185 * config/tc-dvp.h (md_end): Define.
186 * config/tc-dvp.c (dvp_end): New function.
192 * config/tc-mips.c (gpr_interlocks): The r5900 always has
198 * configure.in (hppa-*-mpeix*): New target.
199 * config/obj-som.h (obj_som_compiler): Declare.
200 * config/obj-som.c (compiler_seen): New static variable.
201 (obj_som_compiler): New function.
202 * config/tc-hppa.c: Update tc_data uses for change to bfd/som.h.
203 (md_pseudo_table): Add "compiler" if OBJ_SOM.
204 (pa_type_args): Set hppa_priv_level.
205 (pa_compiler): New static function if OBJ_SOM.
206 * configure: Rebuild.
210 * read.c (output_leb128): Don't mark as inline.
214 * config/tc-ppc.c (ppc_vbyte): Prototype and new function for
215 AIX .vbyte unaligned data support.
216 (md_pseudo_table): Add 'vbyte' to list of valid pseudos.
217 (ppc_elf_validate_fix): Add eh_frame to list of ELF relocatable
222 * config/tc-d30v.c (md_assemble, do_assemble): Improve erroneous
227 * config/tc-arm.c (elf32_arm_force_relocation): Check for
228 BFD_RELOC_ARM_PCREL_BRANCH.
232 * configure.in: Define TARGET_BYTES_{BIG,LITTLE}_ENDIAN after
233 checking the target type.
234 (mips-dec-bsd*): Set endian to little.
235 * configure: Rebuild.
237 COFF weak symbol support, based on patches from Mark Elbrecht
239 * config/obj-coff.h (S_IS_WEAK): Define if not BFD_ASSEMBLER.
240 * config/obj-coff.c (obj_coff_weak): New static function.
241 (obj_coff_endef) [both versions]: Handle weak symbols.
242 (coff_frob_symbol): Likewise.
243 (yank_symbols): Likewise.
244 (obj_pseudo_table): Add "weak".
246 * configure.in (m68k-*-gnu*): New target. From Aymeric Vincent
248 * aclocal.m4: Rebuild with current tools.
249 * configure: Rebuild.
251 * config/tc-alpha.c (emit_ldgp): Give an error message rather than
252 an assertion failure for a case we can't handle when OBJ_ECOFF.
254 * expr.c (operator): And with 0xff to avoid problems with signed
259 * config/tc-fr30.c (md_cgen_lookup_reloc): Generate
260 BFD_RELOC_FR30_48 instead of BFD_RELOC_FR30_32.
264 * config/tc-fr30.c (md_cgen_lookup_reloc): Enable relocs for
269 * config/tc-fr30.c (md_pcrel_from_section): Restore previous calculation
274 * config/tc-fr30.c (md_pcrel_from_section): Fix calculation of
277 start-sanitize-vr4xxx
280 * config/tc-mips.c (md_begin): Added mip64vr4xxx as a
286 * config/tc-d10v.c (md_assemble): Make static 'etype' have file
288 (d10v_cleanup): Only generate previous insn if a multiline insn is
293 * config/tc-fr30.c (md_cgen_lookup_reloc): Add support for
298 * config/tc-arm.c (md_parse_option): Add support for -marm7xxx and
299 -marm6xxx command line switches.
303 * Makefile.am (DEP): Use $(srcdir)/../mkdep.
304 (itbl-ops.o): Delete duplicate dependencies.
305 Rebuild dependencies.
306 Add fr30 dependencies.
307 * Makefile.in: Rebuild.
311 * config/tc-fr30.c (md_cgen_lookup_reloc): Updated to match latest
313 * listing.c: Ignore line terminator characters found inside
318 * po/gas.pot: Regenerated.
322 * config/tc-fr30.c (fr30_is_colon_insn): New name for
323 fr30_is_label_start(). Also checks for delay slot insns.
325 * config/tc-fr30.c (fr30_is_label_start): New function: Handle
326 FR30 instructions which contain a colon in the mnemonic.
328 * config/tc-fr30.h (TC_START_LABEL): Define this macro.
332 * config/tc-fr30.c: Removed currently superflous code.
336 * config/tc-fr30.h: New file.
337 * config/tc-fr30.c: Tweaking so that it will compile.
341 * config/tc-d10v.h (obj_fix_adjustable): Define.
342 (TC_FORCE_RELOCATION): Define.
343 (d10v_force_relocation): Declare.
344 * config/tc-d10v.c (tc_gen_reloc): Handle Vtable relocs.
345 (md_apply_fix3): Handle Vtable relocs.
346 (d10v_fix_adjustable): New.
347 (d10v_force_relocation): New.
351 * config/tc-d30v.c: Change default behaviour to ignore potential
352 conflicts between register name and symbol names.
356 * configure.in: Add fr30-*-*.
357 * config/tc-fr30.c: New file.
358 * Makefile.in: Regenerated.
359 * config.in: Regenerated.
360 * configure: Regenerated.
361 * doc/Makefile.in: Regenerated.
362 * po/gas.pot: Regenerated.
366 * config/tc-m32r.c (assemble_two_insns): Ensure both insns
371 * app.c (do_scrub_begin): Set characters above 127 to be symbol
373 (do_scrub_chars): Add some casts to unsigned char to avoid
374 unwanted sign extension.
375 * read.c (lex_type): Set characters about 127 to be symbol
377 * config/tc-i386.c (md_begin): Set identifier_chars and
378 operand_chars for values above 127.
382 * configure.in: detect cygwin* instead of cygwin32*
383 * configure: regenerate
387 * listing.c: Add support for producing a listing from piped
392 * config/tc-mips.c (hilo_interlocks): Remove mips_3900.
393 (append_insn): Account for the tx39's multiply behavior.
397 * config/tc-m32r.c (assemble_two_insns): Rename assemble_two_insns
398 from assemble_parallel_insns. Add support for '->' to indicate
399 explicitly serializing the instructions.
400 (md_assemble): Ditto.
404 * config/tc-sh.c (sh_fix_adjustable): Adjust EXTERN and
409 * cgen.c (gas_cgen_md_apply_fix3): Revert last change.
413 * config/tc-mips.c : support frame and regmask/fregmask when
414 MIPS_STABS_ELF is specified.
418 * config/tc-sh.c (sh_fix_adjustable): Only include if OBJ_ELF.
419 (md_apply_fix): Don't return 1 for VTABLE relocs.
420 * config/tc-sh.h (obj_fix_adjustable): Define only if OBJ_ELF.
424 * doc/c-i386.texi: Replace occurences of "opcode" with
425 "instruction mnemonic", "instruction", or "mnemonic" when
426 referring to the name of an instruction. Use "opcode" when
427 referring to the sequence of machine bytes.
429 * config/tc-i386.c (opcode_chars): Rename to mnemonic_chars.
430 (is_opcode_char): Rename to is_mnemonic_char.
431 (md_assemble and i386_operand): Correct error messages from
432 "opcode" to "instruction mnemonic"
433 Rename throughout opcode[] -> mnemonic[], opp -> mnem_p,
434 MAX_OPCODE_SIZE -> MAX_MNEM_SIZE,
435 DWORD_OPCODE_SUFFIX -> DWORD_MNEM_SUFFIX,
436 WORD_OPCODE_SUFFIX -> WORD_MNEM_SUFFIX,
437 BYTE_OPCODE_SUFFIX -> BYTE_MNEM_SUFFIX,
438 SHORT_OPCODE_SUFFIX -> SHORT_MNEM_SUFFIX
439 LONG_OPCODE_SUFFIX -> LONG_MNEM_SUFFIX
441 * config/tc-i386.h (*_MNEM_SUFFIX): Rename from *_OPCODE_SUFFIX.
443 * config/tc-i386.c (i386_operand): Check for garbage after
448 * config/tc-i386.c (md_apply_fix3): Change handling of PCREL reloc
449 for BFD_ASSEMBLER to only change value when COFF if TE_PE.
453 * config/tc-sh.h (obj_fix_adjustable): Define.
454 * config/tc-sh.c (sh_force_relocation): Handle VT relocs.
455 (md_apply_fix): Likewise.
456 (tc_gen_reloc): Likewise.
457 (sh_fix_adjustable): New.
461 * cgen.c (gas_cgen_finish_insn): Update handling of CGEN_INT_INSN_P.
462 * cgen.h (gas_cgen_finish_insn): Update prototype.
463 * config/tc-m32r.c (m32r_insn): CGEN_INT_INSN -> CGEN_INT_INSN_P.
464 cgen_insn_t -> CGEN_INSN_INT.
465 (make_parallel): Update handling of CGEN_INT_INSN_P.
466 (assemble_parallel_insn): Ditto.
467 (target_make_parallel): New function.
468 (md_assemble): Use it.
472 * config/tc-m32r.c (m32r_force_relocation): Fix typo.
476 * config/tc-sh.c (md_assemble): Make sure the entire opcode is
477 converted into lower case.
481 * cgen.c (gas_cgen_md_apply_fix3): Handle VTABLE relocs.
482 (gas_cgen_tc_gen_reloc): Likewise.
483 * config/tc-m32r.h (obj_fix_adjustable): Define.
484 * config/tc-m32r.c (m32r_fix_adjustable): New.
485 (m32r_force_relocation): Handle VTABLE relocs.
489 * doc/c-arm.texi (ARM Directives): Document .ltorn directive.
493 * config/tc-m32r.c (assemble_parallel_insn): Convert second opcode
494 to lower case before parsing.
496 * config/tc-d30v.c (parallel_ok): Ignore conflicts when explicitly
497 parallel insns modift buts in the PSW as a side effect.
501 * config/tc-d30v.c (find_format): Test for missing flag and
504 (md_apply_fix3): Fix error messages to avoid
505 assumption about presence of a symbol.
507 (parallel_ok): Disallow parallel instructions that both modify the
510 (find_format): Generate a warning if an odd numbered register is
511 used as the first register in a mutli-register instruction.
515 * config/tc-d30v.c (md_apply_fix3): Do not assume that bad
516 relocations are always associated with a symbol.
520 * tc-sparc.h (TC_FORCE_RELOCATION): Define.
521 (elf32_sparc_force_relocation): Declare.
522 * tc-sparc.c (md_apply_fix3): Handle vtable relocs.
523 (tc_gen_reloc): Handle vtable relocs.
524 (elf32_sparc_force_relocation): New.
528 * symbols.c (S_IS_FUNCTION): New.
529 * config/tc-v850.h (obj_fix_adjustable): Define.
530 (TC_FORCE_RELOCATION): Define.
531 (v850_force_relocation): Declare.
532 * config/tc-v850.c (tc_gen_reloc): Use offset instead
533 of fx_addnumber for VTABLE reloc addends.
534 (md_apply_fix3): Handle VTABLE relocs.
535 (v850_fix_adjustable): New.
536 (v850_force_relocation): New.
540 * tc-hppa.c (fp_operand_format): Add some additional formats.
541 (pa_ip): Do not automatically promote into pa2.0 mode.
542 (pa_level): Handle ".level 2.0".
543 start-sanitize-cygnus
544 (struct pa_it): New field "trunc".
545 (pa_parse_fp_cnv_format): New function.
546 (pa_parse_ftest_gfx_completer): New function.
547 (pa_ip): Handle various new letters for PA2.0 support.
552 * config/tc-i386.c (md_assemble): Handle AMD_3DNOW_OPCODE.
553 * config/tc-i386.h (template.extension_opcode): Change to
554 unsigned int to allow full range of 8-bit opcode suffixes.
555 (None): Redefine as 0xffff.
558 * doc/c-i386.texi (i386-SIMD): New section.
562 * read.c (discard_rest_of_line): New function.
563 * read.h: Declare it.
564 * config/tc-alpha.c (s_alpha_mask, s_alpha_frame): Use it.
568 * config/tc-d10v.c (find_symbol_matching_register): New function.
569 (find_opcode): Cope with the case where a register name matches
574 * config/tc-v850.c (md_pcrel_from): Rename to
575 v850_pcrel_from_section.
576 (v850_pcrel_from_section): Do not resolves symbols in other
579 * config/tc-v850.h (MD_PCREL_FROM_SECTION): Define.
583 * config/tc-d10v.c (find_opcode): Generate an error if a register
584 is supplied for an operand that should not be a register.
588 * config/tc-d30v.c (write_2_short): But do allow delayed branch
589 instructions to have another instruction in the right bin.
593 * config/tc-d30v.c (write_2_short): Do not allow instructions in
594 the right container if the left container holds a branch
599 * config/tc-d30v.c (reg_name_search): Only warn if a name matches
600 both a register name and symbol name.
601 (find_format): Allow correct parsing of MVTSYS and MVFSYS insns.
605 * config/tc-d30v.c (write_2_short): Implement EITHER_BUT_PREFER_MU
606 execution unit class.
608 (reg_name_search): If a name matches a register and a symbol,
610 (find_format): Disallow flag registers when a general purpose
611 register is required.
612 If a number is required, but a register has been given, check to
613 see if a symbol with the same name as the register exists, and if
618 * config/obj-elf.h (ECOFF_DEBUGGING): Add missing parens.
622 * config/tc-d30v.c (find_format): Do not accept flag registers as
623 general purpose registers.
624 (find_format): If an immediate value is expected at a given place
625 in a format, but a register name has been provided instead, check
626 to see if that register name matches the name of a predefined
627 symbol and if it does, then use the symbol instead.
628 (reg_name_search): If a register name matches a symbol name,
629 prefer the register name to the symbol name.
634 * config/tc-dvp.c (md_begin): Set st_other field of mpgloc_sym.
635 (assemble_vif,create_vuoverlay_section,s_endmpg,s_vu): Ditto.
640 * config/tc-m32r.c (m32r_do_align): After inserting NOPs, reset
641 the previous insn to empty.
645 * config/tc-ppc.c (md_apply_fix3): Do not break string into two
646 pieces, forcing the use of an ANSI compiler.
650 * config/tc-m68k.h (TC_FORCE_RELOCATION): New macro. Force vtable
652 * config/tc-m68k.c (md_apply_fix_2): Do nothing for vtable relocs.
657 * config/tc-dvp.c (parse_float): Strtol() will not convert
658 0xFfffFfff properly, it returns 0x7fffFfff.
659 Changed to use strtoul() which does work properly.
664 * config/obj-elf.c (obj_elf_vtable_inherit): Handle arm
666 (obj_elf_vtable_entry): Likewise.
667 * config/tc-arm.h: Define TC_FORCE_RELOCATION for OBJ_ELF.
668 * config/tc-arm.c (md_apply_fix3): Handle VTABLE relocations.
669 (tc_gen_reloc): Likewise.
670 (arm_fix_adjustable): Likewise.
671 (elf32_arm_force_relocation): New.
672 (armelf_frob_symbol): Remove coff-style symbol support.
677 * config/tc-dvp.c (parse_float): Support 0fNNN.
678 (tc_gen_reloc): Don't crash if given a pc-relative reloc for .word,
679 just signal an error.
684 * config/tc-i386.c (i386_operand): Fix typo in last patch.
688 * config/tc-arm.c (arm_adjust_symtab): Move #ifdef
689 OBJ_COFF so that routine is defined for a.out format.
693 * config/tc-i386.c (i386_operand): Detect non-segment registers
694 used as segment prefixes.
698 * ehopt.c (check_eh_frame): Check the size of the FDE, and don't
699 optimize across FDE boundaries.
701 * config/obj-coff.c (obj_coff_section): Preserve any link once
702 flags when setting the section flags.
706 * config/tc-arm.h (obj_adjust_symtab): Fixed typo.
707 * config/tc-arm.c (armelf_adjust_symtab): Reformatted.
711 * config/tc-sparc.c (in_signed_range): Sign extend 32-bit words
716 * frags.c (frag_grow): Include the size of the frag struct in the
719 * subsegs.c (subseg_set_rest): Adjust the seginfo frchain start
720 if the new subseg comes before the old.
724 * config/tc-sparc.c (sparc_ip): Allow all digits in an instruction
725 to handle edge8 and edge16.
729 * config/obj-elf.c (obj_elf_vtable_inherit): Print error message
730 before we clobber the symbol involved.
734 * config/tc-arm.c: Remove OBJ_ELF definitions for
735 S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS. Only
736 use arm_adjust_symtab for OBJ_COFF.
737 (armelf_adjust_symtab): New Routine.
738 * config/tc-arm.h: Define obj_adjust_symtab to
739 armelf_adjust_symtab for OBJ_ELF.
743 * configure.in: Make all i386-elf targets use bfd_gas.
744 * config/tc-i386.c (tc_i386_force_relocation): New.
745 (tc_i386_fix_adjustable): Don't fix vtable relocs.
746 (md_apply_fix3): Likewise.
747 (tc_gen_reloc): Handle them.
748 * config/tc-i386.h (TC_FORCE_RELOCATION): Always define, calling
749 tc_i386_force_relocation.
753 * config/tc-arm.c (md_show_usage): Improve formatting of --help output.
757 * config/tc-d30v.c (md_assemble): Copy previous opcode over
758 current opcode after writing the first insturction of a reverse
763 * read.h (generate_lineno_debug): Add prototype.
764 * read.c (generate_lineno_debug): Make non-static.
766 * config/tc-dvp.c (insert_mpg_marker): Call generate_lineno_debug.
771 * config/tc-i386.c (md_assemble): Only warn for address/data size
776 * config/tc-arm.c (arm_fix_adjustable): Do not adjust relocations
777 against Thumb function names, as the linker needs this information.
781 * expr.c (operand): Check also that there is no advance in operand
782 after atof_generic in order to decide "is it label 0f or floating
787 * config/tc-m32r.c: Replace double dash prefix to M32R specific
788 command line options with a single dash.
789 * doc/c-m32r.texi: Replace double dash prefix with a single dash.
793 * tc-arm.h: Define obj_fix_adjustable for OBJ_ELF.
794 * tc-arm.c (arm_fix_adjustable): New routine.
798 * read.c (s_align, s_comm, s_mri_common, s_fail, s_globl, s_space,
799 s_float_space, s_struct, cons_worker): Move ignore_rest_of_line or
800 demand_empty_rest_of_line before mri_comment_end.
801 (equals): Check garbage after expression before
802 mri_comment_end in MRI mode.
806 * config/tc-mips.c (macro): Correct M_SGE_I/M_SGEUI_I case for a
807 small immediate constant to use the constant itself rather than
812 * config/tc-hppa.c (pa_enter): Call as_bad rather than abort.
813 (pa_leave): Likewise.
817 * config/tc-i386.c (md_assemble): Emit a warning for stand-alone
819 (i386_operand): Fix an error message.
823 * doc/c-arm.texi (ARM Directives): Document .req directive.
825 * config/tc-arm.c (reg_required_here): Display erroneous string if
826 the register name could not be decoded.
827 Do not set inst.instruction if the sift is -1.
831 * config/tc-alpha.c (tc_gen_reloc): Bias WEAK symbols just as
836 * config/tc-d30v.c (d30v_align): Always perform alignment request,
837 even if it is belived to be unnecessary.
841 config/tc-i386.c (i386_operand): Size immediate constants by
842 suffix (erroneously removed as part of July 7 change).
846 * config/obj-elf.h: Check for redefinition of obj_frob_symbol.
847 * config/tc-arm.c: Define S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS.
848 (armelf_frob_symbol): New Routine.
849 * config/tc-arm.h: Define obj_frob_symbol if OBJ_ELF.
853 * config/tc-alpha.c (alpha_fix_adjustable): Don't adjust weak syms.
857 * config/tc-arm.c (md_begin): Set BFD private flags depending upon
858 command line switches passed to assembler.
862 * cgen.h (GAS_CGEN_MAX_FIXUPS): GAS_ prepended, all uses updated.
863 (gas_cgen_opcode_desc): Declare.
864 (gas_cgen_parse_operand): Declare.
865 (*): Prepend gas_ to gas specific fns to denote them as such.
867 * cgen.c (gas_cgen_opcode_desc): New global
868 (gas_cgen_init_parse): Renamed from cgen_asm_init_parse.
869 (queue_fixup): Renamed from cgen_queue_fixup.
870 (*): Prepend gas_ to gas specific fns to denote them as such.
872 (gas_cgen_md_apply_fix3): Update call to insert_operand.
873 (gas_cgen_finish_insn): Renamed from cgen_asm_finish_insn.
874 * config/tc-m32r.c (md_begin): Remove use of CGEN_SYM.
875 Open opcode table and initialize it.
876 (make_parallel): Use gas_cgen_opcode_desc.
877 (assemble_parallel_insn): Ditto. Remove use of CGEN_SYM.
878 (md_assemble): Ditto.
882 * as.h (debug_info_type): Add entries for unspecified and dwarf*.
883 * ecoff.c (ecoff_generate_asm_lineno): Take no arguments; call
884 as_where ourselves. Provide a stub for !ECOFF_DEBUGGING.
885 * ecoff.h: Move ECOFF_DEBUGGING protection inside GAS_ECOFF_H.
886 Move ecoff_generate_asm_lineno outside ECOFF_DEBUGGING protection.
887 * read.c (generate_lineno_debug): Tidy ECOFF bits. Use
888 DEBUG_UNSPECIFIED rather than DEBUG_NONE for initial test.
889 * config/obj-elf.h (ECOFF_DEBUGGING) [TC_ALPHA]: Define to a variable.
890 (SEPARATE_STAB_SECTIONS): Conditionalize on value of ECOFF_DEBUGGING.
891 (INIT_STAB_SECTION): Likewise.
892 (OBJ_PROCESS_STAB): Likewise.
894 * config/tc-alpha.c (md_longopts): New options -mdebug/-no-mdebug.
895 (md_parse_option): Watch for them.
896 (alpha_cur_ent_sym, alpha_flag_mdebug): New variables.
897 (md_begin): Kill neverdef code.
898 (s_alpha_ent, s_alpha_end, s_alpha_mask, s_alpha_frame): New.
899 (s_alpha_prologue): Watch alpha_cur_ent_sym.
900 (s_alpha_coff_wrapper): New.
901 (md_pseudo_table): Trap all ECOFF pseudos.
905 Start of changes to remove mdebug section from mips*-elf
906 Based on MIPS_STAB_ELF definition
907 * acconfig.h: undef if not configured
908 * config.in: undef if not configured
909 * config/mips-elf.h: only set ECOFF debugging if not stabs-in-elf
910 * config/tc-mips.c (s_ent): set BSF_FUNCTION
911 * stabs.c (s_stab_generic): flush frag
915 * configure.in: (arm-*-elf): Handle.
916 (thumb-*-elf): Handle.
917 * configure: Regenerate.
918 * read.c (stringer): Fix typo in comment.
919 * write.c (fixup_segment): Don't add symbol value to addend if
921 * config/tc-arm.c (md_section_align): Don't align dwarf debug
923 (tc_gen_reloc): Always set the reloc addend to fixp->fx_offset
928 * config/tc-d30v.c ({cur,prev}_left_kills_right_p): New variables.
929 (write_2_short): Emit warning if new flag is set.
930 (do_assemble): Set flags if left instruction is one of special
931 "right-instruction-killer" type.
935 * config/tc-sparc.c (md_number_to_chars, cons_fix_new_sparc):
936 Always output words in debug_info section as big endian.
937 (sparc_target_format): Choose correct bfd target.
938 (md_apply_fix3): Rename BFD_RELOC_SPARC_32LE to BFD_RELOC_SPARC_REV32.
942 * config/tc-mn10300.c (md_assemble): Fix "errmsg" initialization
943 to work with internationalization code. Issue an error when two
944 operands match that are not allowed to match.
948 * configure.in (install_tooldir): Allow target to specify whether
949 it wants to be installed in $(tooldir)/bin.
951 (dvp-*-*): Don't install in $(tooldir)/bin.
953 * configure: Regenerate.
954 * Makefile.am (install-exec-local): Set install-exec-tooldir
955 dependency via configure.
956 * Makefile.in: Regenerate.
960 * Makefile.am (install-exec-local): Split into two ...
961 (install-exec-bindir,install-exec-tooldir): New rules.
962 * Makefile.in: Regenerate.
966 * Makefile.am (install-exec-local): Don't remove the file before
967 checking whether $(bindir) == $(tooldir)/bin. From Maciej
969 * Makefile.in: Rebuild.
973 * cgen.c: Include libiberty.h.
974 (cgen_md_apply_fix3): Update call to md_cgen_lookup_reloc.
975 (cgen_tc_gen_reloc): Use xmalloc, not bfd_alloc.
976 * cgen.h (cgen_md_apply_fix3,cgen_tc_gen_reloc): Declare.
977 (md_cgen_lookup_reloc)): Declare.
978 (md_cgen_record_fixup_exp): Declare.
979 * config/tc-m32r.h (md_pcrel_from_section): Declare.
980 (m32r_relax_frag): Declare.
981 (cgen_md_apply_fix3): Decls moved to cgen.h.
982 (cgen_record_fixup_exp,cgen_tc_gen_reloc): Ditto.
983 (m32r_cgen_record_fixup_exp): Delete decl.
984 * config/tc-m32r.c (m32r_cpu_desc): #if 0 out.
985 (assemble_nop): Delete.
986 (expand_debug_syms): Delete unused `exp'.
987 (md_cgen_lookup_reloc): Renamed from CGEN_SYM (lookup_reloc).
988 Add default case for -Wall.
989 (m32r_cgen_record_fixup_exp): Add default case for -Wall.
990 (md_atof): Delete unused wordP.
993 * config/tc-dvp.c (assemble_vif): Make label at start of overlay
995 (create_vuoverlay_section): Put __start_ label at start of overlay
1001 * config/tc-mn10300.c (md_assemble): Make sure "errmsg" has a non-NULL
1007 * config/tc-dvp.c (parse_float): Accept 0xhex constants
1008 also for VU LOI operand.
1013 * doc/as.texinfo: Add documentation for .end, .exitm, .fail,
1014 .ifc, .ifeqs, .ifge, .ifgt, .ifle, .iflt, .ifnc, .ifne, .ifnes,
1015 .print, .purgem, and .struct. Remove documentation for
1020 * cgen.c (cgen_md_apply_fix3): set_operand renamed to set_vma_operand.
1021 Update call to insert_operand.
1023 start-sanitize-cygnus
1026 * config/tc-mn10300.c (md_assemble): Handle autoincrement addressing
1032 * config/tc-m32r.c (ms_show_usage): Formatting changes.
1036 * config/tc-i386.c (md_assemble): Don't get confused by trailing
1037 whitespace after a prefix operator.
1042 * configure.in (i386-*-beos{pe,elf,}*): Recognize.
1047 * config/tc-sparc.c (log2): New static function.
1048 (s_reserve): Use log2 to convert alignment before calling
1050 (s_common): Use log2 to convert alignment before calling
1051 record_alignment and frag_align.
1052 (sparc_cons_align): Use log2.
1056 * config/tc-sparc.c (s_reserve): Set symbol size if OBJ_ELF.
1057 (s_common): Likewise.
1059 * config/tc-sparc.c (sparc_handle_align): Reindent a bit. Correct
1060 initialization of waddr.
1061 (sparc_elf_final_processing): Add default case to switch.
1065 * doc/c-i386.texi: Fix a typo. Use the term 80-bit real rather
1066 than temporary real.
1070 * write.c (subsegs_finish): Don't align the segments if there were
1073 * config/obj-coff.c (c_symbol_merge): Correct number of bytes when
1074 copying aux information.
1076 * expr.c (make_expr_symbol): Catch attempts to turn an O_big
1077 expression into a symbol.
1081 * config/tc-i386.c (mode_from_disp_size): Change arg and return
1082 type to unsigned int.
1083 (md_assemble): Change type used to store offsets from unsigned
1085 (i386_operand): Switch error check to only call RESTORE_END_STRING
1086 once after parse_register.
1090 * config/tc-v850.c (md_show_usage): Changed format to match that
1093 * as.c (show_usage): Changed format to match that of gcc, ld, etc.
1097 * config/tc-m68k.c (tc_m68k_fix_adjustable): Don't adjust vtable
1099 (md_apply_fix_2): Force the symbol of the vtable reloc to be
1104 * doc/Makefile.am (MAINTAINERCLEANFILES): Define.
1105 * doc/Makefile.in: Rebuild.
1109 * config/tc-mips.c (mips_ip, case 'i' and 'j'): Mask off high bits
1110 for %lo expressions.
1111 (mips_ip, case 'u'): Move range check after code to mask
1112 off bits in %hi/%lo expressions. Mask off high bits for
1117 * doc/Makefile.am (gasver.texi): New target.
1118 (as.info, as.dvi): Depends upon gasver.texi.
1119 * doc/as.texinfo: Include gasver.texi. Mention version number on
1120 title page and in top node.
1121 * doc/Makefile.in: Rebuild.
1125 * listing.c (listing_listing): For EDICT_LIST, skip all lines up to
1126 but not including the line containing the edict.
1127 * listing.h (LISTING_EOF): New.
1128 * input-scrub.c (input_scrub_next_buffer): Call it.
1132 * config/tc-i386.c (i386_operand): Don't set the size of an
1133 immediate address based solely on the suffix and the mode.
1135 * config/tc-i386.c (md_assemble): Add assertion to make sure
1136 overlap2 does not set Imm.
1138 * config/tc-i386.c (space_chars): Remove. The scrubber converts
1139 sequences of whitespace to a single space.
1140 (is_space_chars): Just compare with space.
1141 (md_begin): Don't initialize space_chars.
1142 (md_assemble): Just skip a single whitespace character.
1143 (i386_operand): Rewrite base-index parsing to use new
1144 parse_register, and to skip white space. Skip white space in a
1145 number of other places too. Don't give error message if
1146 parse_register fails.
1147 (parse_register): Change reg_string parameter to be non-const.
1148 Add end_op parameter. Skip white space after the `%', and return
1149 end of register string. Give error message here rather than
1155 * expr.c (op_encoding): Make const.
1156 (expr_set_precedence): New function.
1157 (expr_begin): Don't set operator rankings, just call
1158 expr_set_precedence.
1159 * expr.h (expr_set_precedence): Declare.
1160 * read.c (s_mri): Call expr_set_precedence.
1164 * doc/as.texinfo (Statements): Remove paragraph discussing
1165 continuing lines with a backslash. This hasn't worked for years,
1170 * obj-vms.c: Add C++ support with ctors/dtors sections. Add weak
1172 (Ctors_Symbols, Dtors_Symbols): New symbol chains.
1173 (ps_CTORS, ps_DTORS): New section types.
1174 (vms_fixup_xtors_section): New function
1175 (Ctors_Psect, Dtors_Psect): Define.
1176 (IS_GXX_XTOR): Define
1177 (global_symbol_directory): Change check of gxx_bug_fixed to 0.
1178 Filter static constructors/destructors and add to
1179 Ctors_Symbols/Dtors_Symbols chain.
1180 (vms_write_object_file): Write Ctors_Symbols/Dtors_Symbols to
1181 appropriate section.
1183 * tc-alpha.h (TARGET_FORMAT): Rename "evax-alpha" to "vms-alpha".
1184 * makefile.vms: Merge vax/vms support.
1188 * config/obj-elf.c (obj_elf_vtable_inherit, obj_elf_vtable_entry): New.
1189 (elf_pseudo_table): Add them.
1190 * config/tc-mips.c (mips_force_relocation): Force vtable relocs.
1191 (md_apply_fix): Accept them.
1192 (mips_fix_adjustable): Don't adjust them.
1193 (tc_gen_reloc): Mung BFD_RELOC_VTABLE_ENTRY for Rel.
1194 * config/tc-ppc.c (md_apply_fix3): Accept vtable relocs.
1195 * config/tc-ppc.h (TC_FORCE_RELOCATION_SECTION): Force vtable relocs.
1196 (tc_fix_adjustable): Don't adjust them.
1200 * Makefile.am (CGEN_CPU_PREFIX): New variable.
1202 * Makefile.in: Regenerate.
1203 * configure.in: AC_SUBST cgen_cpu_prefix.
1204 * configure: Regenerate.
1208 * config/tc-sh (COND_JUMP_DELAY, COND12_DELAY_LENGTH): Define.
1209 Changed all users of COND12_DELAY.
1211 start-sanitize-cygnus
1214 * config/tc-mn10300.c (r_registers): Fix typo and add some missing
1218 start-sanitize-branchbug4011
1221 * config/tc-mips.c (prev_insn_labels): New.
1222 (mips_fix_4011_branch_bug): New.
1223 (append_insn): Watch for and handle branchs with labels.
1224 (mips_no_prev_insn): Initialize prev_insn_labels.
1225 (md_longopts,md_parse_option): Add {no-}fix-4011-branch-bug option.
1227 end-sanitize-branchbug4011
1230 * config/tc-mn10300.c (set_arch_mach): New function.
1231 (md_pseudo_table): Add pseudo-ops to set the current machine type.
1232 (md_begin): Default to mn10300 mode.
1233 (md_assemble): Only accept instructions for the core mn10300
1234 chip and the active machine type.
1238 * subsegs.h (segment_info_type): Give the struct a name.
1239 * config/tc-h8300.h (tc_reloc_mangle): Add prototype.
1240 * config/tc-h8500.h (tc_reloc_mangle): Declare.
1241 * config/tc-sh.h (sh_coff_reloc_mangle): Add prototype.
1242 * config/tc-w65.h (tc_reloc_mangle): Declare.
1243 * config/tc-z8k.h (tc_reloc_mangle): Declare.
1247 * config/tc-v850.c (v850_comm): Restore old section
1248 after common processing.
1252 * config/obj-vms.c (Create_VMS_Object_File): Force binary file.
1254 start-sanitize-cygnus
1257 * config/tc-mn10300.c (r_registers): Add a0-a3,d0-d3 and e0-e7
1258 as synonyms for "rN" registers.
1259 (xr_registers): Add mcrh, mcrl, mcvf, mdrq and sp as synonyms
1260 for "xrN" registers.
1261 (md_assemble): Fix typo computing the size of relocations.
1266 * config/tc-h8300.c (do_a_fix_imm, build_bytes): Replace cast to
1267 char with code that explicitly sign-extends.
1271 * config/tc-v850.c (md_begin): Restore text section as the current
1272 section after creating call table sections.
1273 * config/obj-coff.h (SYM_AUXINFO): New macro to conceal ugly
1276 * config/obj-coff.c (c_symbol_merge): Replace complex expresion
1277 with call to macro SYM_AUXINFO.
1281 * Makefile.am (install-exec-local): Don't let EXEEXT interfere
1282 with the program transform name.
1283 * Makefile.in: Rebuild.
1287 * config/obj-coff.c (c_symbol_merge): Fix copying of auxiliary
1290 start-sanitize-cygnus
1293 * config/tc-mn10300: Handle FMT_D10 instructions.
1298 * config/tc-i386.c (i386_operand): Be prepared for a space between
1299 the open parenthesis and the start of the register operand,
1300 because of the June 16 change.
1302 start-sanitize-r5900
1305 * config/tc-mips.c (mips_ip): Allow VU vi and vf registers
1306 to be named with a `$' prefix. Likewise, allow CFC2/CTC2 to
1307 refer to "$viNN" registers.
1312 * config/tc-sh.c (md_apply_fix): Handle weak symbols correctly if
1317 * config/tc-d30v.c (d30v_align): Always perform alignment request,
1318 even if it is belived to be unnecessary.
1320 start-sanitize-r5900
1323 * config/tc-mips.c (hilo_interlocks): Check mips_5900, not
1327 start-sanitize-cygnus
1330 * config/tc-mn10300.c (md_assemble): Handle FMT_D8 and FMT_D9
1331 instruction formats. Handle MN10300_OPERAND_24BIT modifier.
1332 (mn10300_insert_operand): Likewise.
1333 (mn10300_check_operand): Likewise.
1338 * write.c (adjust_reloc_syms): Never adjust relocs against weak
1340 * config/tc-mips.c (md_apply_fix): Adjust accordingly.
1344 start-sanitize-cygnus
1345 * config/tc-mn10300.c (r_registers): Add missing registers.
1346 (xr_registers): New set of registers.
1347 (xr_register_name): New function.
1348 (md_assemble): Handle XRREG and PLUS operands. Tweak handling of
1349 RREG operand insertion. Handle new D6 and D7 instruction formats.
1351 * config/tc-mn10300.c (mn10300_insert_operand): Do not hardcode the
1352 shift amount for a repeated operand. The shift amount for the
1353 repeated copy comes from the size of the operand.
1357 * config/tc-h8300.c (get_operand): Fix typos in ldm/stm support.
1362 * config/tc-dvp.c (md_apply_fix3): Handle new relocs
1363 BFD_RELOC_MIPS_DVP_11_S4, BFD_RELOC_MIPS_DVP_U15_S3.
1366 start-sanitize-cygnus
1369 * config/tc-mn10300.c (r_registers): New register table.
1370 (r_register_name): New function.
1371 (md_assemble): Handle new am33 operand types.
1376 * config/tc-mips.c (md_show_usage): Fix -mipsN usage.
1380 * app.c (do_scrub_begin): If tc_symbol_chars is defined, treat all
1381 characters in it as LEX_IS_SYMBOL_COMPONENT.
1382 * config/tc-i386.h (tc_symbol_chars): Define.
1383 (extra_symbol_chars): Declare.
1384 * config/tc-i386.c (extra_symbol_chars): Define.
1385 (comment_chars): Don't use '/' as comment start if TE_LINUX.
1386 (line_comment_chars): Set to '/' if TE_LINUX.
1387 * doc/c-i386.texi (i386-prefixes): Update.
1388 * doc/internals.texi (CPU backend): Document tc_symbol_chars.
1392 * po/Make-in (all-yes): If maintainer mode, depend on .pot file.
1393 ($(PACKAGE).pot): Unconditionally depend on POTFILES.
1398 * config/tc-dvp.c (create_vuoverlay_section): Don't set a non-zero
1404 * config/tc-d10v.c (md_apply_fix3): Checking displacement
1405 constraint in instructions REP & REPI.
1409 * config/tc-d30v.c (md_apply_fix3): Catch BFD_RELOC_8,
1410 BFD_RELOC_16, BFD_RELOC_64 and issue appropriate error messages.
1412 (check_range): If the operand is shifted, then shift the number
1413 before checking its range.
1415 * write.c (adjust_reloc_syms): Add more checks for NULL pointers.
1417 * config/tc-v850.c (v850_comm): Set SEC_COMMON bit on special
1422 * config/tc-v850.c (v850_comm): Create special sections as needed.
1426 * config/tc-d10v.c (write_2_short): Addition of swapping
1427 instructions for sequential and reverse sequential order when
1428 given order is not possible.
1433 * config/tc-dvp.c (assemble_vu): Print better error message if
1434 lower insn is missing.
1439 * Makefile.am: Rebuild dependencies.
1440 (DEP_INCLUDES): Fix reference to intl build directory.
1441 * Makefile.in: Rebuild.
1445 * doc/c-i386.texi: Update 16 bit documentation.
1447 * config/tc-i386.h: Change Data16 to Size16, Data32 to Size32,
1448 IgnoreDataSize to IgnoreSize as they are used for address size as
1450 * config/tc-i386.c: Likewise. Add code to reject addr32/data32 in
1451 32-bit mode, similarly addr16/data16 and variants.
1455 * config/tc-d30v.c (md_assemble): Fix handling of reverse
1456 sequential word multiply instructions.
1458 (do_assemble): Add extra command line argument, to allow mul32
1459 attribute to be preserved across parallel insns.
1460 (md_assemble): Insert NOPs between explicitly parallel insns which
1461 contain an 32 bit multiply and a 16 multiply.
1466 * config/tc-dvp.c (dvp_relax_frag): Adjust target address by stretch.
1471 * config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and
1474 * config/tc-i386.c (reloc): Add braces.
1476 * config/tc-i386.c (struct _i386_insn): Rename bi to sib to be
1477 consistent with Intel naming.
1478 * config/tc-i386.h (base_index_byte): Rename to sib_byte. Don't
1479 use bitfields in sib_byte.
1480 (modrm_byte): Don't use bitfields here either.
1482 * config/tc-i386.c (current_templates): Add const.
1483 (parse_register): Add const to return, param, and char *s.
1484 (i386_operand): Add const to reg_entry *r.
1485 * config/tc-i386.h (templates): Add const to start, end.
1487 Inspired by code for 16 bit gas support from Martynas Kunigelis
1489 * config/tc-i386.c (md_assemble): Add full support for 16 bit
1490 modrm, and Jump, JumpByte, JumpDword, JumpInterSegment insns.
1491 (uses_mem_addrmode): Remove.
1492 (md_estimate_size_before_relax): Add support here too.
1493 (md_relax_table): Rewrite interface to md_relax for 16 bit
1495 (BYTE, WORD, DWORD, UNKNOWN_SIZE): Remove.
1496 (opcode_suffix_to_type): Remove.
1497 (CODE16, SMALL, SMALL16, BIG, BIG16): Define.
1498 (SIZE_FROM_RELAX_STATE): Modify to suit above.
1499 (md_convert_frag): Likewise.
1500 (i386_operand): Add support for 16 bit base/index regs,
1501 immediates, and displacements. Remove some unnecessary casts, and
1502 localise end_of_operand_string, displacement_string_start,
1503 displacement_string_end variables. Add GCC_ASM_O_HACK.
1504 * config/tc-i386.h (NO_BASE_REGISTER_16): Define.
1506 * config/tc-i386.c (prefix_hash): Remove.
1507 (md_begin): Rewrite without obstacks. Remove prefix hash table
1508 handling. Rewrite lexical table handling.
1509 (i386_print_statistics): Don't print prefix statistics.
1510 (md_assemble): Rewrite instruction parser so that line is not
1511 converted to lower case. Don't do a hash_find for prefixes,
1512 instead recognise them via opcode modifier.
1513 (expecting_operand, paren_not_balanced): Localise variables.
1514 * config/tc-i386.h (IsPrefix): Define.
1515 (prefix_entry): Remove.
1517 * config/tc-i386.h (PREFIX_SEPERATOR): Don't define.
1518 * config/tc-i386.c (PREFIX_SEPARATOR): Define here instead, using
1519 '\\' in case where comment_chars contains '/'.
1521 * config/tc-i386.c (MATCH): Ensure given operand and template
1522 match for JumpAbsolute. Makes e.g. `ljmp table(%ebx)' invalid;
1523 you must write `ljmp *table(%ebx)'.
1526 * config/tc-i386.c (BFD_RELOC_16, BFD_RELOC_16_PCREL): Define
1527 as 0 ifndef BFD_ASSEMBLER.
1528 (md_assemble): Allow immediate operands without suffix or
1529 other reg operand to default in size to the current code size.
1533 * config/tc-v850.c (md_begin): Restore creation of
1534 .call_table_text and .call_table_data sections.
1538 * config/tc-d30v.c (md_assemble): Set execution type to unknown
1539 after emitting a word of noops.
1543 * config/tc-i386.c (mode_from_disp_size): Disp16 is mode 2.
1544 (i386_operand): Simplify checks for valid base/index combinations.
1545 Disallow `in 4(%dx),%al'.
1547 * config/tc-i386.c (struct _i386_insn): Make regs, base_reg, and
1549 (add_prefix): Change parameter from char to int.
1551 * config/tc-i386.h (Ugh): Define opcode modifier.
1552 * config/tc-i386.c (md_assemble): Print warnings for Ugh insns.
1554 * config/tc-i386.c (md_assemble): Rewrite MATCH and
1555 CONSISTENT_REGISTER_MATCH macros to check register types more
1556 thoroughly. Check for illegal suffix/operand combinations
1557 when matching insns with operands. Handle new `s' suffix, and
1558 associated FloatMF opcode modifier for float insns with memory
1560 * config/tc-i386.h (FloatMF): Define new opcode modifier.
1561 (No_sSuf, No_bSuf, No_wSuf, No_lSuf): Likewise.
1562 (SHORT_OPCODE_SUFFIX, LONG_OPCODE_SUFFIX): Define.
1563 * config/tc-i386.c: Rename WORD_PREFIX_OPCODE to
1564 DATA_PREFIX_OPCODE throughout.
1566 * config/tc-i386.c (REGISTER_WARNINGS): Define.
1567 (md_assemble): Rewrite suffix/register operand checking code to be
1568 more thorough. Remove Abs8,16,32. Change occurrences of Mem to
1569 AnyMem, the better to grep.
1571 (i386_operand): Don't set Mem bits in i.types[this_operand] when
1572 given a memory operand. Don't set Abs bits either.
1573 (type_names): Remove Mem*, Abs*.
1574 * config/tc-i386.h (Mem8, Mem16, Mem32, Abs8, Abs16, Abs32): Don't
1575 define opcode_modifiers as these cases are handled by Disp8,
1576 Disp16, Disp32 and suffix checks.
1577 (COMES_IN_BOTH_DIRECTIONS): Remove.
1578 (FloatR): Define. It's OK to share the bit with ReverseRegRegmem.
1580 * config/tc-i386.c (md_assemble): Don't emit operand size prefix
1581 if IgnoreDataSize modifier given. Remove ShortformW modifier
1582 test. Add test for ShortForm in W base_opcode modification.
1583 Merge Seg2ShortForm and Seg3ShortForm code.
1584 * config/tc-i386.h (ShortFormW): Remove.
1585 (IgnoreDataSize): Define.
1589 * config/tc-d30v.c (md_assemble): Store previous segment state
1590 with previous instruction.
1594 * config/tc-i386.c (SCALE1_WHEN_NO_INDEX): Define.
1595 (ebp, esp): Remove static variables.
1596 (MATCH): Remove test for InOutPortReg.
1597 (i386_operand): Properly handle InOutPortReg here instead.
1598 Disallows `inb (%dx,2)', `inb %es:(%dx)' and `mov (%dx),%ax'
1599 (md_assemble): Simplify and correct modrm and sib generation.
1600 (i386_operand): Add warning for scale without index.
1601 Rewrite checks for valid base/index combinations.
1603 * config/tc-i386.c (END_STRING_AND_SAVE): Protect arguments of
1604 macros and enclose in do while(0).
1605 (RESTORE_END_STRING): Likewise.
1606 (md_assemble): Add one to printed operand number so we start
1607 from 1 not 0. Add some more gettext invocations.
1608 (i386_operand): Fix `%%s' -> `%%%s'. Inc printed operand
1611 * config/tc-i386.h (WAIT_PREFIX, LOCKREP_PREFIX, ADDR_PREFIX,
1612 DATA_PREFIX, SEG_PREFIX): Define.
1613 * config/tc-i386.c (struct _i386_insn): Remove wait_prefix field.
1614 (check_prefix): Remove function.
1615 (add_prefix): New function. Add prefix to i.prefix as well as
1617 (md_assemble): Changes for add_prefix. Remove hack for wait
1618 prefix, instead always output prefixes in fixed order. Test
1619 for jcxz/loop when selecting between word & dword operations,
1620 and add address size prefix rather than operand size prefix.
1621 Remove operand -> address size hack when emitting jcxz/loop.
1622 (i386_operand): Remove O_Absent check as it's done in expr.
1626 * configure.in: Recognize m5200 as a cpu_type of m68k.
1627 * aclocal.m4: Rebuild with current libtool.
1628 * configure: Rebuild.
1632 * config/tc-m68k.c (md_estimate_size_before_relax): Add more calls
1633 to relaxable_symbol to prevent references to external symbol from
1638 * config/tc-m68k.c (relaxable_symbol): If TARGET_OS is "elf", all
1639 symbols are relaxable.
1644 * config/tc-dvp.c (md_begin): Change alignment of .DVP.ovlytab to 4.
1645 (create_vuoverlay_section): Entries are 4 bytes not 8.
1650 * config/tc-v850.c (md_begin): Don't create special
1651 sections by default.
1655 * config/tc-mips.c (macro): For div and udiv, close the
1656 reorder block as soon as possible.
1661 * macro.c (macro_mri_mode): New function.
1662 * macro.h (macro_mri_mode): Declare.
1663 * read.c (s_mri): Call macro_mri_mode when switching in and out of
1668 * config/tc-alpha.c (s_alpha_comm): Allow alignment parameter in
1671 * config/tc-alpha.c (s_alpha_comm): Defer restoring character
1672 until after xstrdup in OBJ_EVAX case.
1676 * config/tc-vax.c (md_create_short_jump): Fix off by two bug in
1677 offset calculation. Also, use VAX_BRW from vax-inst.h instead
1678 of hardcoded magic number.
1679 (md_create_long_jump): Use VAX_JMP and VAX_ABSOLUTE_MODE macros.
1683 * read.c (do_s_func): New function.
1685 * read.h (do_s_func): Add prototype.
1687 * config/tc-dvp.c (md_pseudo_table): Add .func/.endfunc.
1688 (s_dvp_func): New function.
1691 start-sanitize-r5900
1694 * config/tc-mips.c (hilo_interlocks): The r5900 has HILO interlocks.
1699 * config/tc-m32r.c (m32r_do_align): Only fill code sections with
1700 nops if fill pattern not specified.
1705 * config/te-go32.h (TE_GO32): Define.
1706 * config/tc-i386.h (LOCAL_LABEL): Don't define if TE_GO32.
1710 Implement .func/.endfunc pseudo-ops.
1711 * read.h (stabs_generate_asm_func,stabs_generate_asm_endfunc): Declare.
1713 * read.c (potable): Add .func,.endfunc.
1714 (s_func): New function.
1715 * stabs.c (stabs_generate_asm_func,stabs_generate_asm_endfunc): New
1717 (in_doc_func_p,current_function_label): New static globals.
1718 (stabs_generate_asm_lineno): Emit function relative stabs if in .func.
1721 * config/tc-dvp.h (ELF_TC_SPECIAL_SECTIONS): Delete .vuoverlay_table.
1722 (VUOVERLAY_SECTION_PREFIX,VUOVERLAY_TABLE_SECTION_NAME): Delete.
1723 * config/tc-dvp.c (vuoverlay_string_section): New static global.
1724 (md_begin): Create overlay string section.
1725 (create_vuoverlay_section): Put section name in overlay string section.
1726 Put string's offset in overlay table entry. Set SEC_CODE flag for
1732 * config/tc-a29k.h (WORKING_DOT_WORD): Define.
1733 * config/tc-alpha.h (WORKING_DOT_WORD): Define.
1734 * config/tc-arm.h (WORKING_DOT_WORD): Define.
1735 * config/tc-h8300.h (WORKING_DOT_WORD): Define.
1736 * config/tc-h8500.h (WORKING_DOT_WORD): Define.
1737 * config/tc-hppa.h (WORKING_DOT_WORD): Define.
1738 * config/tc-i860.h (WORKING_DOT_WORD): Define.
1739 * config/tc-i960.h (WORKING_DOT_WORD): Define.
1740 * config/tc-tic30.h (WORKING_DOT_WORD): Define.
1741 * config/tc-w65.h (WORKING_DOT_WORD): Define.
1742 * config/tc-z8k.h (WORKING_DOT_WORD): Define.
1743 * config/tc-a29k.c: Don't define md_short_jump_size,
1744 md_long_jump_size, md_create_short_jump or md_create_long_jump.
1745 * config/tc-alpha.c: Likewise.
1746 * config/tc-alpha.h: Likewise.
1747 * config/tc-arm.c: Likewise.
1748 * config/tc-h8300.c: Likewise.
1749 * config/tc-h8500.c: Likewise.
1750 * config/tc-hppa.c: Likewise.
1751 * config/tc-i860.c: Likewise.
1752 * config/tc-i960.c: Likewise.
1753 * config/tc-ppc.c: Likewise.
1754 * config/tc-sh.c: Likewise.
1755 * config/tc-sparc.h: Likewise.
1756 * config/tc-tic30.c: Likewise.
1757 * config/tc-w65.c: Likewise.
1758 * config/tc-z8k.c: Likewise.
1762 * config/tc-vax.c (_): Delete this macro used for placeholder
1763 values in vax_operand_width_size; it conflicts with the _() macro
1764 used for internationalization.
1768 * symbols.c (symbol_find_base): Fix case insensitive symbol name
1772 * struc-symbol.h (struct broken_word): Add seg and subseg fields.
1773 * read.c (emit_expr): Initialize seg and subseg fields of a new
1775 * write.c (write_object_file): Switch to the appropriate segment
1776 and subsegment when processing a broken word.
1778 * config/tc-m68k.c (mri_assemble): New static function.
1779 (build_mri_control_operand): Call mri_assemble rather than
1781 (s_mri_else, s_mri_break, s_mri_next, s_mri_for): Likewise.
1782 (s_mri_endf, s_mri_endw): Likewise.
1787 * config/tc-dvp.h (ELF_TC_SPECIAL_SECTIONS): Add .vuoverlay_table.
1788 (dvp_frob_file): Declare.
1789 (tc_frob_file): Define.
1790 (VUOVERLAY_SECTION_PREFIX,VUOVERLAY_TABLE_SECTION_NAME): New macros.
1791 * config/tc-dvp.c (VUOVERLAY_START_PREFIX): New macro.
1792 (vuoverlay_section_name,create_vuoverlay_section): New functions.
1793 (vuoverlay_section,vuoverlay_table_section): New static globals.
1794 (ovlysym_table): New static global.
1795 (md_begin): Create .vuoverlay_table section.
1796 (assemble_vif): Call create_vuoverlay_section for each mpg.
1797 (dvp_frob_label): Record vu labels in ovlysym_table for later
1798 movement from absolute section to their overlay section.
1799 (dvp_frob_file): New function.
1800 (md_apply_fix3): For 8/16/32/64 bit relocs, only process if fx_done.
1805 * read.c (s_org): Call md_flush_pending_output if it is defined.
1807 * config/tc-sparc.c (md_show_usage): Add \n\ to new string.
1811 * config/tc-sparc.c (OPTION_LITTLE_ENDIAN_DATA): New.
1812 (md_parse_option): Add for same.
1813 (sparc_md_end): Set bfd_mach_sparc_sparclite_le.
1814 (md_apply_fix3, tc_gen_reloc): Allow BFD_RELOC_SPARC_32LE.
1815 (cons_fix_new_sparc): Added to create BFD_RELOC_SPARC_32LE.
1817 * config/tc-sparc.h (cons_fix_new_sparc): Added.
1822 * config/tc-dvp.c (assemble_one_insn): Parse suffix operands
1823 even when missing in input string.
1828 * config/tc-arm.c (find_real_start): Relax definition of local
1833 * config/tc-d30v.c (d30v_align): Apply address adjustment to all
1834 symbols at the given address, not just the last one specified.
1838 * config/tc-sparc.c (sparc_handle_align): Use number_to_chars_bigendian
1839 or number_to_chars_littleendian to write data.
1843 * config/tc-v850.c (md_assemble): Remove artificially created
1844 register name symbols.
1848 * write.c (fixup_segment): Change "segment" to "section" in
1853 * write.c (fixup_segment): Change sym1-sym2 message again.
1855 start-sanitize-r5900
1858 * config/tc-mips.c (validate_mips_insn): Handle ';' opcode completer.
1859 (mips_ip): Likewise.
1863 * config/tc-mips.c (macro): For R5900, use "B" operand format for
1864 "break" instructions generated in macro (div etc.) instructions.
1869 * write.c (fixup_segment): Improve error message for sym1-sym2
1870 errors when sym1 is in a different segment from sym2.
1874 * config/tc-m32r.c (warn_unmatched_high): New static local.
1875 (OPTION_WARN_PARALLEL): Rename from OPTION_WARN.
1876 (OPTION_NO_WARN_PARALLEL): Rename from OPTION_NO_WARN.
1877 (md_longopts): Recognize --{no-,}warn-unmatched-high.
1878 (md_parse_option): Likewise.
1879 (md_show_usage): Likewise.
1880 (m32r_frob_file): Likewise.
1882 * read.c (generate_file_debug,generate_lineno_debug): New functions.
1883 (read_a_source_file): Call them.
1884 * read.h (stabs_generate_asm_file): Declare.
1885 * stabs.c (stabs_generate_asm_file): New function.
1886 (generate_asm_file): New function.
1887 (stabs_generate_asm_lineno): Move file name handling into
1892 * config/tc-d30v.c (cur_mul32_p, prev_mul32_p): Make static.
1893 (d30v_current_align, d30v_current_align_seg): New variables.
1894 (d30v_last_label): New variable.
1895 (d30v_align, s_d30v_align, s_d30v_text): New functions.
1896 (s_d30v_data, s_d30v_section): Likewise.
1897 (md_pseudo_table): Call them.
1898 (md_begin): Initialize d30v_current_align_seg.
1899 (md_assemble): Call d30v_align when needed by known current alignment.
1900 (d30v_frob_label, d30v_cons_align): New functions.
1901 * config/tc-d30v.h (md_do_align): Remove.
1902 (tc_frob_label): Call d30v_frob_label.
1903 (md_cons_align): New.
1905 * config/tc-d30v.c (find_format): Convert complex expressions to
1906 expression symbols before processing. Clean up code formatting.
1911 * config/tc-dvp.c (md_begin): Set type of output file to mips:r5900.
1916 * po/Make-in (install-info): New target.
1920 * config/tc-mn10200.c (md_assemble): Handle "bra" just like "jmp"
1922 * config/tc-mn10300.c (md_assemble): Likewise.
1926 * Makefile.am: Update with `make dep-am'.
1927 (HFILES): Add cgen.h.
1928 (cgen.o): Depend on cgen.h.
1929 * Makefile.in: Regenerate.
1931 * cgen.c (cgen_md_apply_fix3): Don't pass newline to as_warn_where.
1935 * gasp.c (grab_label): Permit a label to be a preprocessor
1936 variable by permitting a label to start with a backslash.
1940 * config/tc-mips.c (validate_mips_insn): Removed hack
1941 for previously inaccessible bitfields in some INSN_TRAP
1946 * config/tc-d30v.c (do_assemble): Abort with error message
1947 if opcode operands do not match.
1951 * config/tc-mips.c (macro_build, validate_mips_insn): Implement
1952 'q' operand format for 20-bit "break"/"sdbbp" instructions.
1953 (mips_ip): Truncate overflowed "break" 'c' operand. Implement
1954 similar new 'q' operand.
1958 * cgen.c (cgen_asm_finish_insn): Fix typo.
1963 * cgen.c: Include it.
1964 (MAX_FIXUPS): Renamed to CGEN_MAX_FIXUPS.
1965 (cgen_asm_finish_insn): Result is now void. New arg `result'.
1966 All callers updated.
1967 * config/tc-m32r.c: Include cgen.h.
1968 (m23r_insn): New members num_fixups,fixups.
1969 start-sanitize-cygnus
1970 (assemble_parallel_insn): Initialize debug_sym_link for each insn.
1971 (md_assemble): Simplify code to pack two insns in parallel.
1972 When swapping two insns, update their fixups.
1978 * config/tc-dvp.c: Delete inclusion of "sysdep.h".
1983 * config/tc-hppa.c (md_apply_fix): Slightly rework some code
1984 to avoid compiler warning.
1988 * makefile.vms: Run dec c with /nodebug. Pass CC value when
1991 * makefile.vms (OBJS): Add ehopt.obj
1995 * doc/c-vax.texi: Correct and extend vax/vms documentation.
1999 * config/tc-d30v.c (do_assemble): Accept a new parameter requesting
2000 a short format insn.
2001 (md_assemble): Set it for explicitly packed insns.
2005 * config/obj-coff.c (c_symbol_merge): Do not take address of
2006 native fields when performing the memcpy.
2010 * config/tc-mips.c (macro,macro2): Implement
2011 M_DMULO_I, M_MULO_I, M_DMULOU_I, and M_MULOU_I.
2015 * config/tc-m68k.h (TC_RELOC_RTSYM_LOC_FIXUP): Changed to keep
2016 relocations against globally visible symbols.
2017 * config/tc-m68k.c (relaxable_symbol): New macro.
2018 (m68k_ip, md_estimate_size_before_relax): Use it.
2019 (tc_m68k_fix_adjustable): Also handle weak symbols.
2023 * config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Keep relocs for all
2024 references to externally visible symbols.
2025 * config/tc-i386.c (md_apply_fix3): When OBJ_ELF, don't add the
2026 values in twice for a PC relative reloc if the symbol is
2029 * config/tc-sparc.h (tc_fix_adjustable) [OBJ_AOUT]: When PIC,
2030 don't adjust a PC relative reloc against an externally visible
2032 * config/tc-sparc.c (md_apply_fix3): When generating a.out PIC,
2033 for a PC relative fixup against an externally visible defined
2034 symbol, arrange to store object file and addend values as though
2035 the symbol were not defined.
2036 (tc_gen_reloc): Likewise.
2040 * read.c (sizeof_leb128): Referenced externally by write.c so
2045 * config/tc-m32r.c ({,expand_}debug_sym): New functions to record
2046 and expand a 'debug' symbol associated with the next instruction
2047 that does not cause a short instruction to be filled with a NOP.
2048 (md_pseudo_table): Add support for .debugsym.
2049 (assemble_parallel_insn): Add calls to expand_debug_sym as
2051 (md_assemble): Ditto.
2055 * as.c (main): Conditionally call setlocale.
2056 * gasp.c (main): Likewise.
2057 * asintl.h: Include <locale.h> if HAVE_LOCALE_H.
2058 (LC_MESSAGES): Now can be defined even when ENABLE_NLS.
2062 * config/tc-d30v.c (md_show_usage): Correct gettext typo.
2066 * config/tc-hppa.c: Change all calls to bzero to use memset.
2067 (pa_ip): Add cast to avoid warning.
2068 (tc_gen_reloc, md_apply_fix): Likewise.
2069 (pa_find_space_by_number): Likewise.
2070 (hppa_force_relocation): Likewise.
2071 (pa_block): Change i to unsigned int.
2072 * config/obj-som.h (obj_som_copyright): Declare.
2076 * ecoff.c (ecoff_build_lineno): Do not use dummy first_lineno
2077 for line numbers for assembly source.
2081 * configure.in: Change version number to 2.9.4
2082 * configure: Rebuild.
2086 * cgen.c (cgen_asm_finish_insn): New arg relax_p. All callers updated.
2087 start-sanitize-cygnus
2088 * config/tc-m32r.c (assemble_parallel_insn): No need to try
2089 non-relaxable variant any more. Simplify test for nop insn.
2090 (md_assemble): Only scan operands if m32rx. Set orig_insn in case
2091 scan of operands yields an insn different from original (e.g. a macro).
2092 Fix call to can_make_parallel.
2097 * ecoff.h: Change symbolS in function declaration to struct
2102 * config/tc-sh.c (parse_reg): Add casts to avoid warnings.
2103 (md_convert_frag): Fix i18n typo.
2107 * ecoff.c (ecoff_get_cur_proc_sym): New function.
2108 * ecoff.h: Protoype it.
2109 * config/tc-alpha.c [ELF] (s_alpha_prologue): New function.
2110 [EVAX] (s_alpha_prologue): Delete.
2111 (md_pseudo_table): Update.
2115 * config/tc-i960.c (md_assemble): Change bp_error_msg from static
2116 array to local pointer.
2117 (get_args, parse_expr): Add casts to avoid warnings.
2121 * read.c (s_set): Cast xmalloc return value to fragS *.
2122 * config/tc-m68k.c (m68k_ip): Function made static to match
2123 previous forward declaration.
2124 (insert_reg, init_regtable, md_convert_frag_1): Likewise.
2128 * config/tc-v850.c: Add internationalisation macros to error
2131 * config/tc-m32r.c (can_make_parallel): Add internationalisation
2132 macros to error strings.
2136 * config/tc-ppc.c (ppc_fix_adjustable): Correct test of whether a
2137 reloc is in the TOC csect.
2138 (md_apply_fix3): Correct gettext typo.
2142 * config/tc-arm.c (find_real_start): Ignore symbols starting with
2143 .L - they are local labels and the branches are not really
2144 function calls but rather far jumps.
2149 * config/tc-dvp.c (dvp_frob_label): Don't emit _$ versions of
2150 local labels ($ prefix).
2155 * po/Make-in (MKINSTALLDIRS): Don't look in $(top_srcdir).
2159 * config/tc-i386.c (md_assemble): Print operand number rather than
2160 using ordinal_names.
2161 (i386_operand): Likewise.
2165 * Makefile.am (INTLLIBS): Define to work around apparent automake
2167 All Makefiles: Regenerated.
2169 * Many files: Added gettext invocations around user-visible
2171 * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
2172 HAVE_LC_MESSAGES): Define.
2173 * dep-in.sed: Added asintl.h.
2174 * po/Make-in: New file.
2175 * gasp.c (main): Call setlocale, bindtextdomain, and textdomain.
2177 * read.c (Z_): Renamed from `_'.
2178 * Makefile.am (SUBDIRS): Added po.
2179 (POTFILES): new macro.
2180 (po/POTFILES.in): New target.
2181 ($(OBJS)): Added asintl.h.
2183 (INCLUDES): Added -DLOCALEDIR, -I$(top_srcdir)/../intl.
2184 (as_new_LDADD): Added $(INTLLIBS).
2185 (as_new_DEPENDENCIES): Added $(INTLDEPS).
2186 (gasp_new_LDADD): Added $(INTLLIBS).
2187 (gasp_new_DEPENDENCIES): New macro.
2188 * configure, aclocal.m4: Rebuilt.
2189 * configure.in: Call CY_GNU_GETTEXT. Generate po/Makefile.in and
2191 (ALL_LINGUAS): Define.
2192 * macro.c: Include "asintl.h".
2193 * as.c (main): Call setlocale, bindtextdomain, and textdomain.
2194 * as.h: Include "asintl.h".
2195 * config/tc-i386.c (ordinal_names): Removed.
2196 (md_assemble): Changed error text to avoid ordinal_names.
2197 (i386_operand): Likewise.
2198 (reloc): Added as_bad to avoid i18n problems.
2199 (tc_gen_reloc): Likewise.
2200 * config/tc-arm.c (bad_args): Now a #define.
2202 * config/obj-vms.c (VMS_stab_parse): Changed type of
2204 (global_symbol_directory): Unified strings to avoid i18n
2206 * config/tc-m68k.c (get_reloc_code): Added some as_bad calls to
2207 avoid i18n problems.
2208 * config/tc-ns32k.c (reloc): Added as_bad to avoid i18n problems.
2209 * config/tc-ppc.c (md_apply_fix3): Added as_bad_where to avoid
2211 * config/tc-sh.c (md_convert_frag): Added as_bad to avoid i18n
2213 * config/tc-v850.c (md_assemble): Changed C++ comment into C
2215 * config/tc-vax.c (md_assemble): Added as_warn to avoid i18n
2217 * as.c (print_version_id): Added an fprintf to avoid i18n
2219 * cond.c (cond_finish_check): Added as_bad call to avoid i18n
2221 * expr.c (expr): Added as_warn call to avoid i18n problems.
2222 * messages.c (as_assert): Changed code to avoid i18n problems.
2223 (as_abort): Likewise.
2224 * read.c (pseudo_set): Added as_bad call to avoid i18n problems.
2225 (s_space): Likewise.
2226 * po/Make-in, po/POTFILES.in, po/gas.pot: New files.
2230 * config/tc-i386.c (check_prefix): New static function, split out
2232 (struct _i386_insn): Add wait_prefix field.
2233 (md_assemble): Remove wait_prefix local variable. Use
2234 check_prefix when adding a prefix.
2236 * config/tc-i386.c (current_templates): New static variable.
2237 (md_assemble): Remove current_templates local variable.
2238 (md_assemble, i386_operand): Improve error and warning messages in
2239 many places. Add RESTORE_END_STRING in many places before error
2240 return. Clarify some comments.
2242 * config/tc-i386.c (struct _i386_insn): Change seg field to a two
2244 (md_assemble): Parse string instruction operands, looking for
2245 segment override prefixes. Check for invalid segment prefixes on
2247 (i386_operand): i.seg[] and max mem_operand changes for string
2249 * config/tc-i386.h (EsSeg): Define.
2251 * config/tc-i386.h (regKludge): Define.
2252 (iclrKludge, imulKludge): Don't define.
2253 * config/tc-i386.c (md_assemble): Merge imulKludge and iclrKludge
2254 code. Move ReverseRegRegmem fudges into Modrm case. Reorder
2255 opcode_modifier checks to look for more common cases first. Add
2256 default_seg for IsString case.
2260 * configure.in: Call AM_PROG_LEX rather than AC_PROG_LEX and
2262 * configure: Rebuild with new automake and libtool.
2263 * aclocal.m4, Makefile.in: Likewise.
2265 * doc/Makefile.am (as.dvi): New target.
2266 * doc/Makefile.in: Rebuild.
2271 * config/tc-dvp.c (VU_LABEL_PREFIX): Make "_$".
2276 * configure.in: Added sparc86x support.
2278 * configure: Rebuild.
2280 * config/tc-sparc.c (lookup_arch): Added arch_type to struct
2282 (md_parse_option): Warn if -EL is not supported for this architecture.
2284 * config/tc-sparc.h (SPARC_BIENDIAN) Always define.
2288 * config/tc-mips.c (mips_ip): Note when we use get match on
2289 the full instruction name.
2290 start-sanitize-r5900
2291 (mips_ip): For '&' DEST completer handling, if we got a full match
2292 then the DEST completer is implicitly .wxyz.
2298 * config/tc-dvp.c (unpackloc_sym): Delete. All uses deleted.
2299 (vif_insn_type): New function.
2300 (md_apply_fix3): Don't validate user specified length if unpack insn
2306 * symbols.c (resolve_symbol_value) [O_symbol]: Also store the symbol
2307 back into the expression to handle add/sub simplification correctly.
2309 start-sanitize-r5900
2312 * config/tc-mips.c (mips_ip): Specs changed for
2313 VCALLMSR instruction.
2316 start-sanitize-cygnus
2319 * config/tc-mips.c (hilo_interlocks): Remove VR5400.
2324 * config/tc-mips.c (hilo_interlocks): Remove 4300.
2328 * config/tc-arm.c (do_msr): Support undocumented 'msr cpsr_flg,
2334 * config/tc-dvp.c (md_apply_fix3): Mark fixup for mpg loaded vu
2335 branch error as being done so we don't try to emit a reloc.
2340 * symbols.c (max_indent_level): New global.
2341 (print_symbol_value_1): Use it.
2342 * expr.h (expr_build_dot): Declare.
2343 * expr.c (expr_build_dot): New function.
2345 * config/tc-dvp.c (VU_LABEL_PREFIX): New macro.
2346 (compute_mpgloc): New function.
2347 (eval_expr): New arg `cpu'. All callers updated.
2348 (non_vu_insn_seen_p): New static global.
2349 (RELAX_{MPG,DIRECT,VU,ENCODE,GROWTH,DONE_}): New macros.
2350 (struct dvp_fixup): New member `cpu'.
2351 (assemble_one_insn): New args init_fixup_count, fixup_offset.
2352 All callers updated.
2353 (md_assemble): Set non_vu_insn_seen_p as appropriate.
2354 (assemble_vif): Set `cpu' field of fixup.
2355 Clean up calls to frag_var. Recorded mpgloc is now in bytes.
2356 (assemble_vu_insn): Delete, contents moved into ...
2357 (assemble_vu): ... here. Don't record fixups until after parsing
2358 both upper and lower insns. If branch insn inside mpg, properly
2359 compute target address.
2360 (dvp_frob_label): Create copies of vu labels inside mpg's.
2361 (dvp_relax_frag): Clean up.
2362 (md_convert_frag): Ditto.
2363 (md_apply_fix3): Signal error if mpg embedded vu code has branch
2364 to undefined label (not currently supported).
2365 (eval_expr): New arg `cpu'. All callers updated.
2366 (insert_operand_final): Convert mpgloc from bytes to dwords.
2367 (s_endmpg): Use compute_mpgloc to update $.mpgloc.
2368 (s_state): If switching to vu state, initialize $.mpgloc.
2373 * symbols.c (print_binary): New function.
2374 (print_expr_1): Call it.
2379 * config/tc-dvp.c (md_convert_frag): Fix thinko.
2383 * config/tc-dvp.c (assemble_vif): Watch for macro insns.
2384 0 is a valid length value (= max+1).
2385 (install_vif_length): 0 is a valid length value (= max+1).
2390 * config/tc-m68k.c (m68k_ip, case "#B"): Install the offset of the
2391 operand in the opcode.
2396 * config/tc-dvp.c (assemble_vif): Put relaxable insns in their
2402 * config/tc-i386.h: Reorder operand flags and opcode modifier
2403 flags for clarity. Remove unused definitions: Unknown,
2404 ImmUnknown, DispUnknown, NoModrm.
2405 * config/tc-i386.c (type_names): Add missing Debug type.
2406 (md_assemble): Better duplicate prefix checking. Quicker string
2407 instruction check via new opcode_modifier flag.
2411 * doc/as.texinfo (Invoking): Clarify -Wa example.
2415 * config/tc-mips.c (mips_pseudo_table): Add weakext entry.
2416 (s_mips_weakext): Define.
2417 * ecoff.c (ecoff_directive_weakext): Don't define if defined(TC_MIPS).
2418 * config/obj-ecoff.c (obj_pseudo_table): Don't add weakext if
2423 * config/tc-mn10200.c (tc_gen_reloc): The difference of two symbols
2424 is an error if the value can not be computed at assembly time.
2425 * config/tc-mn10300.c (tc_gen-reloc): Likewise.
2429 * gasp.c (main): Set next field of new include_path structure to
2432 * read.c (s_mri_sect): Call as_bad rather than abort for an
2433 unsupported MRI target.
2437 * config/tc-arm.c (arm_validate_fix): New function. Determine if
2438 the destination of a branch instruction should be altered.
2439 (find_real_start): New function: Locate the real, Thumb coded
2440 start of a Thumb function.
2441 (do_t_branch23): Alter the destination of branches to Thumb
2444 * config/tc-arm.h: Define TC_VALIDATE_FIX.
2448 * config/tc-arm.c (decode_shift): Handle addressing mode 2 w/rrx
2453 * doc/as.texinfo: Use @itemx for a secondary item in a table.
2454 * doc/c-hppa.texi: Likewise.
2458 * Makefile.am: Rebuild dependencies.
2459 * Makefile.in: Rebuild.
2461 * Makefile.am (DEP_INCLUDES): New variable.
2462 (.dep1): Change to work when srcdir is not an absolute path.
2463 (.tcdep, .objdep, .dep2, dep.sed): Likewise.
2464 * Makefile.in: Rebuild.
2468 * config/tc-i386.h, config/tc-i386.c: Revert March 24
2469 LinearAddress patch.
2471 * configure.in: Set version to 2.9.1.
2472 * configure: Rebuild.
2474 * Branched binutils 2.9.
2478 * config/tc-i386.h (FWait): Define.
2479 * config/tc-i386.c (md_assemble): Emit fwait prefix before any
2480 other prefixes. Check FWait flag in opcode table to see which
2481 instructions require an fwait prefix.
2485 * stabs.c (get_stab_string_offset): Always create a stab string
2490 Fix some gcc -Wall warnings:
2491 * atof-generic.c (atof_generic): Add casts to avoid warnings.
2492 * ehopt.c (eh_frame_code_alignment): Likewise.
2493 * expr.c (integer_constant, operand): Likewise.
2494 * frags.c (frag_align): Likewise.
2495 * gasp.c (level_0, change_base, doinstr): Likewise.
2496 * hash.c (hash_ask): Likewise.
2497 * listing.c (listing_page, calc_hex, print_lines): Likewise.
2498 (debugging_pseudo): Likewise.
2499 * macro.c (define_macro, check_macro): Likewise.
2500 * read.c (read_a_source_file, s_align, s_float_space): Likewise.
2501 (ignore_rest_of_line, float_cons): Likewise.
2502 * symbols.c (decode_local_label_name): Likewise.
2503 * write.c (record_alignment, cvs_frag_to_fill): Likewise.
2504 (fixup_segment, number_to_chars_bigendian): Likewise.
2505 (number_to_chars_littleendian): Likewise.
2506 * config/atof-ieee.c (gen_to_words): Likewise.
2507 * config/tc-sparc.c (md_begin, md_assemble): Likewise.
2508 (sparc_ip, parse_keyword_arg, s_common): Likewise.
2509 * read.c (output_big_sleb128): Initialize locals to avoid
2511 (output_big_uleb128, equals): Likewise.
2512 * atof-generic.c (atof_generic): Change number_of_digits_* locals
2513 to unsigned int. Change zeros to unsigned int.
2514 * cond.c (s_if): Add return to default case.
2515 * frags.c (frag_now_fix): Change return type to addressT.
2516 * frags.h (frag_now_fix): Update declaration.
2517 * listing.c (file_info_struct): Change linenum to unsigned int.
2518 (struct list_info_struct): Change hll_line to unsigned int.
2519 (print_source): Update format string.
2520 * read.c (emit_expr): Change scan to unsigned int, and don't
2521 bother to initialize it.
2522 * symbols.c (dollar_label_count): Change to unsigned long.
2523 * write.c (adjust_reloc_syms): Remove unused label reduce_fixup.
2524 * config/tc-sparc.c (sparc_memory_model): Only define if OBJ_ELF.
2525 * config/tc-sparc.c (tc_gen_reloc): Add return to default case.
2529 * config/tc-m68k.c (m68k_ip): Check legal addressing modes for
2530 mcf5200 just as we do for m68000.
2531 (m68k_init_after_args): Likewise.
2532 (md_estimate_size_before_relax): Likewise.
2536 * config/tc-v850.c (md_assemble): Store relocation addend in
2537 fixup instead of instruction.
2541 * config/tc-i386.c (md_assemble): Swap template arguments to
2542 CONSISTENT_REGISTER_MATCH macro in reverse direction test.
2543 This macro is currently symmetric, so passing them the wrong
2544 way didn't cause any problem, but may if the macro is changed
2546 After copying template to i.tm, use i.tm. rather than t-> to
2547 access fields, and make t a const*
2548 Move i.tm.operand_types[] swap to immediately after the copy.
2553 * config/tc-dvp.c (s_endunpack): Round up to word boundary after
2554 we've computed the data length.
2559 * expr.h (expr_build_uconstant): Add prototype.
2560 (expr_build_unary,expr_build_binary): Add prototypes.
2561 * expr.c (expr_build_uconstant): New function.
2562 (expr_build_unary,expr_build_binary): New functions.
2564 * config/tc-dvp.h (md_estimate_size_before_relax): Delete.
2565 (md_convert_frag): Delete.
2566 (TC_FIX_TYPE): New fields wl,cl,user_value;
2567 * config/tc-dvp.c (insert_mpg_marker): New argument ignore.
2568 All callers updated.
2569 (insert_unpack_marker): New function.
2570 (insert_file): New argument insert_marker_arg. All callers updated.
2571 (gif_user_value): New static local.
2572 (vif_data_start,vif_data_end): New static locals.
2573 (mpgloc_sym,unpackloc_sym): New static locals.
2574 (cur_varlen_frag,cur_varlen_insn,cur_varlen_value): Delete.
2575 (cur_opcode,cur_operand): New static locals.
2576 (endmpg_caller): New enum.
2577 (md_pseudo_table): Pass ENDMPG_USER to s_endmpg.
2578 (md_begin): Initialize mpgloc_sym, unpackloc_sym.
2579 (dvp_fixup): New members user_value,wl,cl;
2580 (assemble_vif): Rewrite.
2581 (assemble_gif): Tweak name of data start label.
2582 (assemble_one_insn): Allow special parser to punt and call the
2583 normal expression parser. Set cur_opcode,cur_operand for md_operand.
2584 (md_operand): Handle '*' value for mpgloc,unpackloc.
2585 (md_estimate_size_before_relax): New function.
2586 (dvp_relax_frag,md_convert_frag): New functions.
2587 (md_pcrel_from_section): Handle end data label for variable length
2589 (md_apply_fix3): Handle count field for variable length vif insns.
2590 Handle address field for mpg,unpack.
2591 (eval_expr): Initialize user_value,wl,cl fields of the fixup.
2592 (cur_vif_insn_length): Delete.
2593 (vif_length_value): New function.
2594 (install_vif_length): Don't perform logical->physical conversion here.
2595 (s_enddirect,s_endmpg,s_endunpack): Rewrite.
2600 * gasp.c (IS*): Cast argument to unsigned char, not unsigned int.
2601 * macro.c (macro_expand_body): Increase buffer size.
2602 * messages.c (as_warn): Likewise.
2603 (as_warn_where, as_bad, as_bad_where): Likewise.
2608 * Makefile.am (DISTSTUFF): New variable.
2609 (diststuff): New target.
2610 * Makefile.in: Rebuild.
2614 * config/tc-m32r.h (md_cleanup, md_elf_section_change_hook): Call
2615 m32r_elf_section_change_hook.
2617 * config/tc-m32r.c (m32r_elf_section_change_hook): New function to
2618 emit a nop if a section ends with a 16 bit instruction.
2622 * config/obj-coff.c (obj_coff_bss): Compile unconditionally. Call
2623 s_lcomm rather than obj_coff_lcomm.
2624 (obj_pseudo_table): Compile .bss pseudo-op unconditionally.
2628 * config/tc-i386.h (LinearAddress): Define.
2629 * config/tc-i386.c (md_assemble): If LinearAddress is set for the
2630 instruction, don't use a default segment.
2634 * configure.in: (sh*-*-rtems*): Switched from ELF to COFF.
2635 * configure: Rebuild.
2640 * config/tc-dvp.c (insert_mpg_marker): Update mpgloc.
2643 start-sanitize-r5900
2646 * config/tc-mips.c (validate_mips_insn): Handle r5900 operands.
2648 * config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3.
2649 (mips_ip): Handle 'O' operand.
2650 (md_apply_fix): Handle BFD_RELOC_MIPS16_S3.
2655 * aclocal.m4, configure: Rebuild with libtool 1.2.
2657 start-sanitize-r5900
2660 * config/tc-mips.c: Change '%' to '#' in r5900 support.
2665 * config/tc-arm.c (md_apply_fix3): fix code to test the range of
2666 PC relative branches. Patch courtesy of Jonathan Walton.
2668 start-sanitize-r5900
2671 * config/tc-mips.c (mips_ip): Handle opcodes which have the form
2672 "name.completer" where only the name is actually in the opcode
2673 table. Allow various operands for base register in load/store
2674 instructions. Handle various new argument characters for the
2675 cop2/vu0 co-processor.
2681 * config/tc-dvp.c (s_dmadata): Force 16-byte alignment for ".dmadata"
2687 * configure.in (emulations): Add thumb-pe target.
2689 * configure (emulations): Add thumb-pe target.
2693 * itbl-lex.l (yywrap): Don't define if already defined as a
2699 * config/tc-dvp.c (md_begin): Turn dma/vif packing on by default.
2700 (assemble_dma): Only output 8 bytes for actual dma insn if dma/vif
2701 packing is enabled. Emit VIF cpu marker after dma insn.
2703 * config/tc-dvp.h (TC_START_LABEL): Define.
2704 * config/tc-dvp.c (force_mach_label): New function.
2705 (md_begin,create_colon_label,s_dmadata): Use it.
2707 * config/tc-dvp.c (s_enddmadata): Always fill dma data out to 16
2712 * config/tc-dvp.c (md_pseudo_table): Make .quad 16 bytes.
2717 * depend.c (quote_string_for_make): New function.
2718 (wrap_output): Use it.
2722 * config/obj-elf.c (obj_elf_section): Set bss flag in seg_info
2723 structure if type is SHT_NOBITS. [Bug fix courtesy of rth]
2728 * config/tc-dvp.h (TC_FIX_TYPE,TC_INIT_FIX_DATA): Define.
2729 * config/tc-dvp.c (compute_nloop,check_nloop): New functions.
2730 (gif_insn_frag_loc): New static global.
2731 (assemble_gif): Record frag and location frag of insn.
2732 (md_apply_fix3): Validate user specified nloop if we couldn't do
2734 (s_endgif): Queue fixup to install nloop if we can't compute it here.
2738 * config/tc-dvp.c (s_endgif): Fix nloop calc and test. Warn if
2739 insufficient data present. Fix insertion of computed nloop value.
2740 (install_vif_length): Second pass at unpack len calcs.
2741 (s_endunpack): Round data up to word boundary.
2742 (insert_mpg_marker): New function.
2743 (insert_file): New args insert_marker, size. All callers updated.
2744 (assemble_vif): Rewrite varlen insn handling.
2745 (assemble_vu): Call insert_mpg_marker when 256th insn reached.
2746 (s_enddirect,s_endunpack): Rename arg to internal_p.
2749 start-sanitize-vr4320
2752 * config/tc-mips.c : Added vr4320 similar to vr4300.
2757 * config/tc-alpha.c (md_shortopts, md_longopts, md_parse_option):
2758 Recognize -GN and -relax.
2759 (md_begin): Initialize gp size from -G switch.
2760 (alpha_force_relocation): Always force if -relax.
2761 (alpha_align): Take a new argument that will specify when to
2762 emit an R_ALPHA_ALIGN relocation (though we don't do that now).
2763 Change all callers. Emit nop alignment padding as nop+unop pair.
2767 * config/obj-elf.c [TC_ALPHA]: Include <elf/alpha.h>.
2768 * config/tc-alpha.h (ELF_TC_SPECIAL_SECTIONS): New.
2772 * config/tc-d30v.c (write_2_short): Delayed jsr instructions don't
2773 require padding to the next long word boundary.
2778 * config/tc-dvp.c (assemble_vif): Insert cpu type marker before
2779 inserted binary files.
2782 start-sanitize-cygnus
2785 * config/tc-m32r.c (optimize): New static local.
2786 (md_shortopts): Add -O.
2787 (md_parse_option): Recognize it.
2788 (md_show_usage): Document it.
2789 (md_assemble): Don't try to combine insns in parallel if !optimize.
2792 start-sanitize-cygnus
2795 * config/tc-m32r.c (first_writes_to_seconds_operands):
2796 Reinitialise b_operands for each pass of the inner loop.
2801 * config/tc-dvp.h (tc_frob_label): Define.
2802 * config/tc-dvp.c (dvp_frob_label): New function.
2803 (create_colon_label): New argument `sto'. All callers updated.
2804 (record_mach): New argument `force_next_p'. All callers updated.
2805 (cpu_sto): New function.
2806 (UNIQUE_LABEL_PREFIX): New macro.
2807 (unique_label): Use it.
2808 (assemble_gif): Emit start label before mach label.
2809 (s_endgif): Update. NLOOP is in quadwords for IMAGE mode now.
2813 * config/tc-dvp.c (assemble_dma): Do alignment before parsing insn.
2814 (setup_dma_autocount): Renamed from setup_autocount. New argument
2815 inline_p. All callers changed. Fix word address of count.
2816 (parse_dma_addr_autocount): Fix word address of address.
2822 * config/obj-elf.c: Take Ian's suggestion, leave .bss etc
2823 in special_sections table and add .vubss etc via
2824 ELF_TC_SPECIAL_SECTIONS.
2825 * config/tc-dvp.h: Likewise.
2830 * cgen.c: #include symcat.h.
2831 * config/tc-m32r.c: Likewise.
2835 * config/tc-mips.c (mips_ip, case 'P'): Make 'P' arguments be
2836 absolute expressions instead of '$' prefixed register names.
2840 * read.c (s_set): Record file and line info for symbols when -as.
2841 (pseudo_set): Don't overwrite that dummy fragment.
2846 * config/tc-dvp.c (md_assemble): Handle ASM_DIRECT state.
2847 (dvp_parse_done): Comment out contents.
2848 (s_enddirect,s_endmpg,s_endunpack): Call demand_empty_rest_of_line.
2849 (s_state): Handle .vu in included file.
2850 (asm_state): New state ASM_GIF.
2851 (asm_state_stack): Maintain stack of parsing states.
2852 ({push,pop,set}_asm_state): New functions.
2853 (CUR_ASM_STATE): Renamed from cur_asm_state, all uses updated.
2854 (gif_{insn_type,data_name,insn_frag}): New static locals.
2855 (md_assemble): Watch for .endgif if in ASM_GIF state.
2856 (assemble_gif): Complete.
2857 (s_endgif): Complete.
2858 (cur_mach): New static local.
2859 (record_mach): New function.
2860 (md_begin): Initialize `cur_mach'.
2861 (assemble_*): Record current mach type.
2862 (vu_count): New static local.
2863 (assemble_vif): Temporary hack to properly align mpg/direct data.
2864 (assemble_vu): Insert mpg every 256 insns.
2869 * config/tc-ppc.c (md_pseudo_table): Add "section".
2870 (ppc_named_section): New static function.
2874 * tc-ppc.c (ppc_biei): Cache the last symbol we inserted
2875 so we don't have to scan the entire list.
2879 * config/tc-d30v.c (parallel_ok): For the explicitly parallel
2880 case, allow the parallel instructions to modify the same flag
2885 * listing.c (list_symbol_table): Categorize symbols by
2886 undefined_section rather than sy_frag->line == NULL.
2891 * config/tc-dvp.c (LOCAL_LABEL_PREFIX,END_LABEL_PREFIX): New macros.
2892 (inline_dmadata): Renamed from s_dmadata_implied.
2893 (assemble_one_insn): Rewrite dma operand processing.
2894 (md_apply_fix3): Handle DVP_OPERAND_DMA_NEXT.
2895 (unique_name,setup_autocount): New functions.
2897 * config/tc-dvp.c: Include stdarg.h/varargs.h.
2898 (md_pseudo_table): Add .word.
2899 (assemble_dma): Set alignment to 16 bytes. Enable code that records
2901 (assemble_one_insn): Handle DVP_OPERAND_DMA_{ADDR,AUTOCOUNT}.
2902 (md_apply_fix3): Handle DVP_OPERAND_DMA_ADDR.
2903 (parse_dma_addr_autocount): Renamed from parse_dma_ptr_autocount.
2905 (eval_expr): New function.
2906 (create_label,create_colon_label): New function.
2907 (s_enddmadata): Rewrite.
2912 * Makefile.am (install-exec-local): Install properly when ln
2913 fails or tooldir == prefix.
2915 start-sanitize-cygnus
2918 * config/tc-m32r.c (first_writes_to_seconds_operands): Special
2919 handling of updates to the condition bit as this is shadow by
2925 * config/tc-dvp.c (parse_float): New function.
2926 (assemble_vu): Handle loi insns.
2927 (assemble_one_insn): Simplify suffix parsing.
2928 Handle DVP_OPERAND_FLOAT. Allow FAKE arguments to have a parser
2932 start-sanitize-cygnus
2935 * doc/c-m32r.texi (M32R-Opts): Add --Wp and --Wnp.
2937 * doc/as.texinfo (Overview): Add --Wp and --Wnp.
2939 * config/tc-m32r.c (md_longopts): Accept --Wp as an abbreviation
2940 for --warn-explicit-parallel-conflicts and --Wnp as an
2941 abbreviation for --no-warn-explicit-parallel-conflicts.
2942 (assemble_parallel_insn): Use non-relaxable versions of branch
2947 * app.c: Parse || as a seperator between assembler statements.
2952 * cgen.c (cgen_md_apply_fix3): Delete call to validate_operand.
2953 Test result of insert_operand for error.
2955 start-sanitize-cygnus
2958 * config/tc-m32r.c (md_assemble): Only parallelise instructions
2959 when m32rx target is enabled and the instructions are not
2964 * config/tc-m32r.c (first_writes_to_seconds_operands): Do not
2965 bother checking insn which have no operands.
2970 * Makefile.am (AUTOMAKE_OPTIONS): Add cygnus.
2971 * configure, Makefile.in, aclocal.m4: Rebuild with automake 1.2e.
2972 * doc/Makefile.am (AUTOMAKE_OPTIONS): Define.
2973 * doc/Makefile.in: Rebuild.
2975 start-sanitize-cygnus
2978 * config/tc-m32r.c (first_writes_to_seconds_operands): New
2979 function. Replaces get_src_reg(), check_for_side_effects(),
2980 reads_from_src_reg(). Uses new insn operand features of cgen.
2981 (writes_to_pc): New function., but with new code suppressed for now.
2982 (md_assemble): Call first_writes_to_seconds_operands().
2986 * config/tc-mips.c (macro_build): Handle operand type 'C'.
2987 (macro): Fix handling of M_COP[0-3].
2992 * macro.c (ISSEP): Only treat '<' and '>' as separator characters
2993 if macro_alternate or macro_mri.
2994 (getstring): Remove support for byte constants between < and >.
2995 (get_any_string): '<' only starts a string if macro_alternate or
2997 (macro_expand_body): Permit keyword parameters following
2998 positional parameters.
3001 * configure.in (alpha*-*-netbsd*): New target.
3002 * config/te-nbsd.h (LOCAL_LABELS_FB): Define.
3003 * configure: Rebuild.
3005 * as.h (flag_warn_suppress_instructionswap): Move from here...
3006 * config/tc-d10v.c (flag_warn_suppress_instructionswap): ...to
3007 here, and make static.
3009 * ehopt.c (eh_frame_code_alignment): Only use seg_info if
3010 BFD_ASSEMBLER or MANY_SEGMENTS.
3012 * as.c (show_usage): Update bug-gnu-utils address.
3013 * gasp.c (show_usage): Likewise.
3014 * doc/as.texinfo (Bug Reporting): Likewise.
3018 * config/tc-mips.c (load_address): Don't use mips III or mips IV
3019 insns regardless of the size of a pointer if we're in mips I or
3021 (macro, macro2, s_cprestore, s_cpadd): Likewise.
3025 Fix rac to accept only a0:
3026 * tc-d10v.c (parallel_ok, find_opcode):
3027 Split OPERAND_ACC into OPERAND_ACC0 and OPERAND_ACC1.
3028 Introduce OPERAND_GPR.
3032 * read.c (s_fill): Handle non-constant repeat counts by creating
3033 an rs_space fragment.
3035 start-sanitize-cygnus
3038 * doc/c-m32r.texi: Document warning and error messages. Add
3039 descriptions of --warn-explicit-parallel-conflicts.
3041 * doc/as.texinfo: Add more m32rx command line options.
3046 * config/tc-i386.c (i386_operand): Change error added Jan 2 1998
3047 from as_bad to as_warn.
3052 * config/tc-dvp.c (*): pke->vif, gpuif->gif.
3057 * as.c: (perform_an_assembly_pass): Use [TEXT|DATA|BSS]_SECTION_NAME
3058 * as.h: Define default values of [TEXT|DATA|BSS]_SECTION_NAME
3059 * config/obj-elf.c (elf_begin): Use [TEXT|DATA|BSS]_SECTION_NAME
3061 * config/tc-dvp.h: Add configuration specific section names.
3066 * ehopt.c (eh_frame_code_alignment): If not BFD_ASSEMBLER, use
3067 seg_fix_rotP rather than fix_root from seg_info.
3071 * expr.c: Add support for 0x1_2_3_4 bignums.
3075 * configure.in: Change -linux* to -linux-gnu*.
3076 * configure: Rebuild.
3078 * app.c (do_scrub_begin): Treat \r as whitespace.
3080 start-sanitize-cygnus
3083 * config/tc-m32r.c (get_src_reg): Use m32r_cgen_get_operand()
3084 rather than parsing syntax string manually.
3085 (assemble_parallel_insn): Check for both forms of parallel
3090 * Makefile.am: Update dependencies.
3091 * Makefile.in: Rebuild.
3095 * configure, aclocal.m4: Rebuild with new libtool.
3099 * config/tc-mips.c (md_begin): If mips_cpu is set, then use it as
3100 the argument to bfd_set_arch_mach.
3101 (load_address): Use bfd_arch_bits_per_address to determine the
3102 bit size of an address instead of looking at the isa level.
3103 (macro, macro2, s_cprestore, s_cpadd): Likewise.
3107 * config/tc-v850.c (md_parse_option): Add -mv850any command line option.
3111 * ehopt.c: New file.
3112 * as.h (enum _relax_state): Add rs_cfa.
3113 (check_eh_frame, eh_frame_estimate_size_before_relax): Declare.
3114 (eh_frame_relax_frag, eh_frame_convert_frag): Declare.
3115 * read.c (emit_expr): Call check_eh_frame.
3116 * write.c (cvt_frag_to_fill): Handle rs_cfa.
3117 (relax_segment): Likewise.
3118 * Makefile.am: Rebuild dependencies.
3119 (GAS_CFILES): Add ehopt.c.
3120 (GENERIC_OBJS): Add ehopt.o.
3121 * doc/internals.texi (Frags): Document rs_cfa.
3123 * as.c (show_usage): Mention --traditional-format.
3124 (parse_args): Accept --traditional-format.
3125 * as.h (flag_traditional_format): Declare.
3126 * output-file.c (output_file_create): If flag_traditional_format,
3127 set BFD_TRADITIONAL_FORMAT on stdoutput.
3128 * doc/as.texinfo, doc/as.1: Document --traditional-format.
3130 * config/tc-mips.c (append_insn): Make sure that if we have a
3131 fixup for an unmatched %hi reloc, it does not associated with a
3134 * configure, Makefile.in, aclocal.m4: Rebuild with new libtool.
3135 * doc/Makefile.in: Likewise.
3139 * config/tc-m32r.c (check_for_side_effects): New function.
3140 (can_make_parallel): Add checks for instruction side effects
3141 clashing with the other instruction.
3142 (assemble_parallel_insn): Improve warning messages. Return error
3143 message from non-swapped instruction order.
3147 * config/tc-arm.c: Rename arm_after_pass_hook() to arm_cleanup().
3149 * config/tc-arm.h: Replace md_after_pass_hook definition with a
3150 md_cleanup definition. This moves the forced literal output to
3151 the end of the source pass, and avoids macro's inserting literals
3152 into the code immediately after the macro expansion.
3156 * config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: A reloc against
3157 a gas internal symbol is adjustable.
3158 * config/tc-ppc.h (tc_fix_adjustable): Likewise.
3160 * as.h: If gcc version greater than 2.6, use `__format__' and
3161 `__printf__' in function attributes, rather than `format' and
3166 * config/tc-sparc.c: Only include elf/sparc.h if OBJ_ELF.
3170 Add tms320c30 support:
3171 * config/tc-tic30.h: New file.
3172 * config/tc-tic30.c: New file.
3173 * config/obj-coff.h: If TC_TIC30, include coff/tic30.h and define
3174 TARGET_FORMAT as "coff-tic30".
3175 * configure.in (tic30-*-*aout*, tic30-*-*coff*): New targets.
3176 * Makefile.am: Rebuild dependencies.
3177 (CPU_TYPES): Add tic30.
3178 (CPU_OBJ_VALID): tic30-aout is valid.
3179 (TARGET_CPU_CFILES): Add config/tc-tic30.c.
3180 (TARGET_CPU_HFILES): Add config/tc-tic30.h.
3181 * configure, Makefile.in: Rebuild.
3185 * config/tc-v850.c (md_assemble): Improvements to error messages.
3189 * config/tc-ppc.c (md_apply_fix3): Change BFD_RELOC_HI16 and
3190 BFD_RELOC_HI16_S to store the high bits of any value.
3192 * config/tc-ppc.h (tc_fix_adjustable): Undo change of Fri Jun 27.
3193 (TC_RELOC_RTSYM_LOC_FIXUP): Don't let the
3194 assembler calculate relocations to any external symbol at all.
3195 * config/tc-ppc.c (md_apply_fix3) [OBJ_ELF]: Correct bugs
3196 involving generation of pc-relative relocs.
3197 (md_pcrel_from_section) [OBJ_ELF]: The job this code used to do
3198 has been moved to md_apply_fix3.
3200 * config/tc-ppc.c (md_apply_fix3): Fix test for too-far branch.
3201 (ppc_elf_suffix): Warn about 'identifier+constant@got' syntax,
3202 which actually means (the address of identifier's GOT entry) +
3203 constant, which is not particularly useful.
3207 * read.h (include_dirs): Declare.
3208 (include_dir_count,include_dir_maxlen): Declare.
3211 * config/tc-dvp.c (md_longopts): Add -no-dma, -no-dma-pke.
3212 (md_parse_option): Handle them.
3213 (md_show_usage): Print them.
3214 (output_dma,output_pke): New static globals.
3215 (assemble_pke): Handle -no-dma-pke.
3216 (insert_file): Search include dir list.
3217 (s_enddirect): Validate length if prespecified.
3218 (s_endmpg): Likewise. Handle -no-dma-pke.
3219 (s_endunpack): Handle -no-dma-pke.
3220 (md_pcrel_from_section): Add offset to delay slot for
3226 * configure.in: Correct check for shared opcodes library.
3227 * configure: Rebuild.
3229 * listing.c (buffer_line): If we can't open the file, set at_end.
3230 (listing_print): Remove unused local variable fi.
3232 * config/m68k-parse.y (reglistpair): Handle register list in
3235 * config/vms-conf.h: Don't undef VERSION.
3237 start-sanitize-cygnus
3240 * config/tc-m32r.c (allow_m32rx): Must compile with K&R C.
3241 (m32rx support): only include #ifdef HAVE_CPU_M32RX.
3246 * Makefile.am (CONFIG_OBJS): New variable, containing part of old
3248 (GENERIC_OBJS): New variable, with the rest of the old OBJS
3250 (OBJS): Now just $(CONFIG_OBJS) and $(GENERIC_OBJS).
3251 ($(srcdir)/make-gas.com): Rename from make-gas.com.
3252 (stamp-mk.com): Replace $(OBJS) with $(GENERIC_OBJS).
3253 (EXTRA_DIST): Define.
3254 * vmsconf.sh: Handle {targ-cpu, obj-format, atof-targ} modules
3255 explicitly rather than via the list of object files.
3256 (gcc-as.opt): New file created when make-gas.com is run.
3257 * config-gas.com: Create {targ-cpu.h, obj-format.h, targ-env.h,
3258 itbl-cpu.h} to #include appropriate file rather than copying that
3260 * config/vms-conf.h: Synchronize with current config.in.
3261 * Makefile.in: Rebuild.
3265 * config/tc-d30v.c (do_assemble): Added flag_explicitly_parallel.
3266 (parallel_ok): Relaxed parallel subinstruction dependency check.
3268 start-sanitize-cygnus
3271 * config/tc-m32r.c (md_assemble): Fix determination of when
3272 instructions can be combined in parallel.
3277 * as.h (flag_warn_suppress_instructionswap): added new flag.
3278 * tc-d10v.c (md_parse_option,md_longopts): added "--nowarnswap"
3279 command line argument.
3280 * tc-d10v.c (write_2_short): emit "Swapping instructions"
3281 warning only if flag_warn_suppress_instructionswap is false.
3285 * configure.in (i386-*-mingw32*): New target.
3286 * configure: Rebuild.
3290 * symbols.c (resolve_symbol_value): Don't set the segment if it
3291 hasn't changed, and this is OBJ_AOUT without BFD_ASSEMBLER.
3293 * config/obj-aout.h (S_IS_LOCAL): Correct typo--pass argument to
3298 as.h (unlink): Reverse 13-Feb-97 change; use of unlink vs remove
3299 depends upon HAVE_{UNLINK,REMOVE} values rather than host
3304 * config/obj-coff.h (RESOLVE_SYMBOL_REDEFINITION): Define.
3309 * configure.in: Add dvp support.
3310 * configure: Regenerate.
3311 * config/tc-dvp.[ch]: New files.
3316 * config/tc-v850.c (v850_insert_operand): Display instruction when
3317 an error is encountered.
3321 * configure.in (i386-*-sco3.2v5*): Defaults to ELF now.
3322 (i386-*-sco3.2v5*coff): New target.
3323 (i386-*-sco3.2*): New target.
3324 * configure: Rebuild.
3328 * config/tc-v850.c: Tidy error message production.
3332 * config/tc-arm.c (md_apply_fix3): Add new variable newimm to hold
3333 validate_immediate return value in the right type for comparisons
3338 * listing.c (MAX_BYTES): Use listing variables not constants.
3339 (data_buffer): No longer an array, but a pointer.
3340 (calc_hex): sizeof(data_buffer) -> MAX_BYTES.
3341 (listing_listing): Allocate data_buffer.
3345 * as.c (parse_args): Add --listing-lhs-width, --listing-lhs-width2,
3346 --listing-rhs-width, --listing-cont-lines.
3347 (show_usage): Update.
3348 * listing.c (listing_lhs_width, listing_lhs_width_second): New vars.
3349 (listing_lhs_cont_lines, listing_rhs_width): New vars.
3350 (print_lines): Use the variables instead of the constants.
3351 (listing_listing): Likewise.
3352 * listing.h: Declare the new vars.
3356 * as.c (parse_args): Add --keep-locals alias for -L.
3357 Add --strip-local-absolute.
3358 (show_usage): Update.
3359 * as.h (flag_strip_local_absolute): New flag.
3360 * symbols.c (S_IS_LOCAL): Use it.
3361 * config/obj-aout.h (S_IS_LOCAL): Likewise.
3362 * config/obj-bout.h (S_IS_LOCAL): Likewise.
3363 * config/obj-coff.h (S_IS_LOCAL): Likewise.
3367 * config/tc-m32r.c: Detect if explicitly parallel instructions
3368 might have an io conflict and issue a warning message.
3370 start-sanitize-cygnus
3373 * config/tc-m32r.c (reads_from_src_reg): Change second parameter
3374 to a count of the number of matches to skip.
3375 (can_make_parallel): Pass count of number of matches to skip to
3376 reads_from_src_reg().
3381 start-sanitize-cygnus
3382 * config/tc-m32r.c: Add support for swapping fixups of swap
3385 * cgen.c (cgen_save_fixups, cgen_restore_fixups,
3386 cgen_swap_fixups): Functions to save, restore and swap the fixup
3387 chain with a backup copy.
3388 (cgen_asm_finish_insn): Returns address of constructed insn.
3392 * listing.c (file_info_struct): Remove FILE, add POS.
3393 (last_open_file_info, last_open_file): New; a one entry FILE* cache.
3394 (file_info): Don't open the file.
3395 (buffer_line): Check for the file in the last_open cache, updating
3397 (print_source): Don't reference file_info->file.
3398 (listing_listing): Likewise.
3399 (listing_print): Close the file in the cache, if any.
3401 start-sanitize-cygnus
3404 * config/tc-m32r.c (md_assemble): Add code to swap explicitly
3405 parallel instructions so that they are in the correct order.
3406 (reads_from_src_reg, get_src_reg, can_make_parallel,
3407 make_parallel): New functions to support opportunistic
3408 parallelisation of adjacent instructions.
3413 * read.c (dwarf_file_string): New file static variable.
3414 (emit_expr): Look for constant sequence that leads up to a file
3415 name in DWARF debugging output.
3416 (stringer): Use dwarf_file_string to decide whether to accept a
3417 string as a file name.
3421 * tc-m68k.c (m68k_ip): Remove absl->reglst MRI hack.
3422 (crack_operand): Add reg->reglst MRI hack.
3423 (r_seg): Put reglst symbols in reg_section.
3424 (m68k_frob_symbol): Frob reglst symbols into absolute_section.
3428 * tc-sh.c (get_specific): Handle SGR & DBR.
3432 * tc-h8300.c (parse_reg): Take the length of the symbol into
3433 account when attempting to match a register name.
3434 * tc-h8500.c (parse_reg): Likewise.
3438 start-sanitize-cygnus
3439 * config/tc-m32r.c (md_assemble): Add support for parsing parallel
3442 * cgen.c: Formatting changes to improve readability.
3446 * config/tc-mips.c (macro): Rework division code to avoid unfilled
3451 Based on a patch from Jim Wilson
3452 * config/tc-d30v.c (do_assemble): Remove non-ansi default case.
3453 (tc_gen_reloc): Handle cross section PC relative relocs
3458 * config/tc-mips.c (mips_ip): Don't test pinfo flags if INSN_MACRO.
3462 * cgen.c: #include setjmp.h. Clean up pass over `struct foo' usage.
3463 (expr_jmp_buf): New static local.
3464 (cgen_parse_operand): Allow use of longjmp in parsing to handle errors.
3465 (cgen_md_operand): New function.
3466 * tc-m32r.c: Clean up pass over `struct foo' usage.
3467 (md_estimate_size_before_relax): Use CGEN_INSN_MNEMONIC.
3471 * symbols.c (S_SET_SEGMENT): Don't set the segment for section syms.
3472 (S_IS_EXTERNAL, S_IS_LOCAL): Correct parenthetication.
3476 * config/tc-i386.c (i386_operand): Give an error if there are
3477 unrecognized characters after an expression.
3479 For older changes see ChangeLog-9697