3 * config/tc-mcore.c (mcore_s_section): Dump literals before
8 * config/tc-mcore.c (md_apply_fix3): Insert reloc addend into insn
13 * config/tc-fr30.h (TC_FIX_TYPE): Delete, cgen fields moved to write.h.
14 (TC_INIT_FIX_DATA): Delete.
15 * config/tc-m32r.h (TC_FIX_TYPE): Delete, cgen fields moved to write.h.
16 (TC_INIT_FIX_DATA): Delete.
17 * write.h (struct fix): New member fx_cgen, ifdef USING_CGEN.
18 * write.c (fix_new_internal): Initialize fx_cgen member.
19 * cgen.c (gas_cgen_record_fixup,gas_cgen_record_fixup_exp): Update.
20 (gas_cgen_md_apply_fix3): Update.
21 * config/tc-m32r.c (md_cgen_lookup_reloc): Update.
22 (md_cgen_record_fixup_exp): Update.
23 (FX_OPINFO_R_TYPE): Update.
25 * frags.c (frag_var,frag_variant): Initialize fr_cgen here.
26 * config/tc-fr30.h (TC_FRAG_INIT): Delete.
27 * config/tc-m32r.h (TC_FRAG_INIT): Delete.
28 * frags.h (struct frag): Make opindex, opinfo ints.
30 * config/tc-fr30.c (FX_OPINFO_R_TYPE): Delete, unused.
34 * aclocal.m4, configure: Updated for new version of libtool.
38 * config/tc-mcore.c (md_apply_fix3): Renamed function from
40 (md_apply_fix3): Do not fix up absolute relocations against
43 * config/tc-mcore.h (MD_APPLY_FIX3): Define.
47 * config/tc-mcore.c (md_pseudo_table): Add intercepts for section
48 changes and data-in-text directives.
49 (mcore_cons): New function: intercept cons() operations.
50 (mcore_float_cons): New function: intercept float_cons()
52 (mcore_stringer): New function: intercept stringer() operations.
56 * obj.h (struct format_ops): Change generate_asm_lineno field to
58 * config/obj-ecoff.h (OBJ_GENERATE_ASM_LINENO): Don't define.
60 * config/tc-alpha.c (find_opcode_match): Add default case to
62 (find_macro_match): Likewise.
63 (load_expression): Parenthesize && within ||.
65 * config/tc-alpha.h (TC_RELOC_RTSYM_LOC_FIXUP): Define.
69 * config/tc-mcore.c (md_pseudo_table): Add overrides for .bss
70 .text .data .section pseudo ops.
71 (mcore_s_section): New function. Dump lits before changing secs.
72 (mcore_s_text): New function. Dump lits before changing secs.
73 (mcore_s_data): New function. Dump lits before changing secs.
77 * config/tc-mips.c (mips_32bitmode): New.
78 (md_begin): Set mips_32bitmode if needed.
79 (mips_elf_final_processing): Don't set EF_MIPS_ARCH.
80 Set EF_MIPS_32BITMODE.
84 * config/obj-coff.c (c_section_symbol): Fix typo in previous
89 * config/tc-mcore.h (LOCAL_LABELS_FB): Define to 1.
93 * tc-hppa.c (pa_get_absolute_exression): Try to handle "5 %r3"
94 expressions correctly.
99 * config/tc-mips.c (mips_elf_final_processing): Set EF_MIPS_ARCH.
103 * tc-hppa.c (pa_ip, case '3'): New case for PA2.0 fmpyfadd
104 and fmpynfadd instructions.
108 * as.h (environ): Declare it, if needed.
109 * as.c (dump_statistics): Don't declare environ.
110 * configure.in (environ): Detect declaration.
111 * configure, config.in: Rebuild
113 * config/tc-i386.c (i386_immediate): Accept @GOT relocations.
114 (i386_displacement): Allocate enough space for replacement buffer.
115 Clean up replacement buffer initialization.
119 * subsegs.c (section_symbol): Don't create a new symbol if one
120 already exists; instead, use the existing one, but set its segment
121 and frag data if it hasn't already been defined.
122 * config/obj-coff.c (c_section_symbol): Likewise.
126 * tc-alpha.c (load_expression): Call as_bad instead of abort.
130 * config/tc-mcore.c: New File: Support routines for MCore
132 * config/tc-mcore.h: New File: Definitions for MCore assembler.
133 * config/obj-coff.c: Add support for mcore-pe target.
135 * Makefile.am: Add support for MCore targets.
136 * Makefile.in: Regenerate.
137 * configure.in: Add support for MCore targets.
138 * configure: Regenerate.
140 * doc/all.texi: Set MCORE.
141 * doc/as.texinfo: Document MCore specific command line options.
143 * write.h: Prevent multiple inclusion.
147 * asintl.h (LC_MESSAGES): Never define.
148 * as.c (main): Don't pass LC_MESSAGES to setlocale if the system
150 * gasp.c (main): Don't pass LC_MESSAGES to setlocale if the system
153 * Makefile.am (m68k-parse.c): If configuring in the source
154 directory, copy m68k-parse.y into the local directory before
155 running ylwrap, to remove spurious differences when generating
157 * Makefile.in: Rebuild.
159 * config/tc-sparc.h (md_do_align): Just allocate the number of
160 bytes necessary, rather than always allocating 1024.
164 * listing.c (listing_newline): Add cast to avoid warning.
165 * read.c (generate_lineno_debug): Add cases to switch. Reindent.
166 * config/tc-i386.c (i386_scale): Add return value.
167 (build_displacement_string): Remove unused local temp_disp2.
168 (i386_intel_memory_operand): Add parentheses to avoid warning.
169 (i386_intel_operand): Remove unused local end_of_operand_string.
170 (i386_operand): Remove unused local operand_modifier.
171 (i386_operand): Add parens to avoid warning.
175 * configure.in: Add mips*-*-vxworks* target; have it define
177 * configure, config.in: Rebuild.
181 * configure.in (emulations): Add support for arm-epoc-pe.
182 * configure: Regenerate.
183 * config/te-epoc-pe.h: New file. Define macros specific to
185 * config/tc-arm.h: Select epoc-pe-arm target format if configured
186 for arm-epoc-pe target.
190 * tc-mips.c (md_apply_fix): Adjust value for linkonce sections.
194 * tc-hppa.c (pa_parse_nonneg_cmpsub_cmpltr): Clean up code to
195 detect ",n" without a condition.
196 (pa_parse_neg_cmpsub_cmpltr): Likewise.
201 * tc-hppa.c (pa_ip, case '~'): The condition for a branch on bit
202 instruction is encoded with one bit.
207 * doc/internals.texi (CPU backend): Mention that
208 line_separator_chars should not include newline. From thi
213 * config/tc-fr30.c (md_begin): Update call to fr30_cgen_cpu_open.
214 * config/tc-m32r.c (md_begin): Update call to m32r_cgen_cpu_open.
218 * tc-alpha.c (md_assemble): Allow '6' in an opcode.
222 * tc-hppa.c (pa_ip, case 'a'): Do not call pa_parse_..._cmpsub_cmpltr.
227 * tc-hppa.c (pa_ip, case 'd'): Do not allow ",n".
231 * app.c (do_scrub_begin): Change '-' back to a symbol char
232 so we can use multiple opcodes on a line again.
234 * config/tc-d30v.c: By default, warn if a symbol has
235 the same name as a register. Plus some minor
236 updates from the branch.
240 * config/tc-d30v.c (md_apply_fix3): Handle BFD_RELOC_8,
241 BFD_RELOC_16 and BFD_RELOC_64.
245 * expr.c (expr): Add missing else.
249 * config/tc-arm.c (md_apply_fix3): Improve error message.
253 * Makefile.am (CPU_TYPES): Add fr30.
254 (cgen.o): Add $(CGEN_CPU_PREFIX)-desc.h dependency.
255 (fr30,m32r dependencies): Update.
256 * Makefile.in: Rebuild.
258 * cgen.c (gas_cgen_record_fixup): Update use of operand->type.
259 (gas_cgen_record_fixup_exp): Ditto.
260 (gas_cgen_finish_insn): Call cgen_operand_lookup_by_num.
261 (gas_cgen_md_apply_fix3): Ditto. Update call to set_vma_operand.
262 * config/tc-fr30.c (md_begin): Update call to fr30_cgen_cpu_open.
263 (md_cgen_lookup_reloc): Update use of operand->type.
264 * config/tc-m32r.c (md_begin): Update call to fr30_cgen_cpu_open.
265 (md_convert_frag): Call cgen_operand_lookup_by_num.
266 (md_cgen_lookup_reloc): Update use of operand->type.
267 (m32r_cgen_record_fixup_exp): Ditto.
271 * config/tc-mips.c (md_show_usage): Fix message.
275 * doc/c-arm.texi (ARM Syntax): Document new command line switches
276 and LDR reg,=<expr> instruction.
278 * config/tc-arm.c: Add support for -mcpu=arm810, -mcpu=arm9 and
283 * doc/c-arm.texi (ARM-Chars): Fix typo in use of '@'.
287 This patch was created by: Scott Bambrough
291 Special cased '@' character. The '@' character is used as the
292 ARM assembler comment character, as a special character
293 and in ELF .symver pseudo-op's, and as a special character in
294 .type and .section pseudo-ops.
295 (symver_pseudo): New static variable.
296 (symver_state): New static variable.
297 (struct app_save): Add field 'symver_state'.
298 (app_push): Save global symver_state int struct app_save.
299 (app_pop): Restore global symver_state from struct app_save.
300 (do_scrub_chars): Special case handling of '@' character in
303 * configure.in: Modified to recognize armv* uname syntax from ARM
305 * configure: Regenerated.
307 * config/obj-elf.c (obj_elf_section): Allow '%' as well as '@' as
308 a prefix to the section's type.
309 (obj_elf_type): Allow '%' as well as '@' and '#' as prefixes to
312 * config/tc-arm.h: Add support for PIC generation:
313 (pic_code): New boolean.
314 (obj_relocate_extern): Define.
315 (TC_RELOC_RTSYM_LOC_FIXUP): Define
316 (TC_CONS_FIX_NEW): Define.
317 (tc_fix_adjustable): Define.
318 (GLOBAL_OFFSET_TABLE_NAME): Define.
320 * config/tc-arm.c: Add support for PIC generation:
321 (line_seperator_chars): Allow ';' as a seperator for Linux.
322 (is_immediate_prefix): New macro.
323 (arm_parse_reloc): New function.
324 (s_arm_elf_cons): New function.
325 (do_branch): Special case for BFD_RELOC_ARM_PLT32.
326 (md_undefined_symbol): Special case handling for the Global Offset
328 (md_apply_fix3): Handle PIC relocs.
329 (tc_gen_reloc): Handle PIC relocs.
330 (md_parse_option): Add support for '-k' command line switch to
331 enable PIC generation.
332 (cons_fix_new_arm): New function.
333 (s_arm_elf_cons): New function.
337 * configure.in: Add comments for uses of AC_DEFINE.
338 * acinclude.m4: Likewise.
339 * acconfig.h: Remove.
340 * aclocal.m4: Rebuild.
341 * configure: Rebuild.
342 * Makefile.in: Rebuild.
343 * config.in: Rebuild.
347 * config/tc-mips.c (mips_ip: case 'o'): Fix assertion failure for
348 non-constant offset from a base register.
352 * config/tc-alpha.c (md_show_usage): Put \ before newline in
357 * config/tc-alpha.c (cpu_types): Enable EV6 PALcode with -m21264.
358 (emit_insn): Look for pc-relative and no-overflow specifiers on
359 internal relocation types.
363 * doc/c-mips.texi (MIPS Opts): Updated list of -mNNNN and
366 * config/tc-mips.c: Remove all the mips_NNNN variables; just use
368 (mips_4650, mips_4010, mips_4100): Variables removed.
369 (hilo_interlocks, gpr_interlocks, append_insn, macro_build, macro,
370 macro2, mips16_macro, mips_ip): Test mips_cpu, not the mips_NNNN
372 (md_begin): Don't bother initializing the mips_NNNN variables;
373 mips_cpu is set, and that's good enough now.
374 (md_parse_option): Have the -mNNNN options set mips_cpu instead of
375 the mips_NNNN variable. The -no-mNNNN flags are now no-ops.
376 (show): New function, to handle wrapping in the CPU lists.
377 (md_show_usage): Update lists of -mcpu and -mNNNN switches.
381 * config/tc-i386.c (i386_intel_operand): Ignore `SHORT' rather
382 than treat as an immediate specifier.
386 * config/tc-i386.c: Prototype many functions.
387 (set_intel_syntax): Accept `prefix'/`noprefix' specifiers.
388 (i386_immediate): Remove unused second argument.
389 (i386_intel_operand): Fix i386_is_reg typo.
390 (i386_operand): Use allow_naked_reg.
391 (output_invalid): Make operand int for K&R.
395 * Makefile.am (EXTRA_as_new_SOURCES): Uncomment--fixed by automake
397 * Makefile.in: Rebuild.
401 * Makefile.am (DISTCLEANFILES): Change cgen-opc.h to cgen-desc.h.
403 (EXTRA_as_new_SOURCES): Comment out.
404 (.tcdep): <arch>-opc.h renamed to <arch>-desc.h.
405 * Makefile.in: Rebuild.
406 * doc/Makefile.in: Rebuild.
407 * configure.in: Require autoconf 2.13. Redo using_cgen handling.
408 Delete call to AM_CYGWIN32. Replace AM_EXEEXT with AC_EXEEXT.
409 (AC_OUTPUT): <arch>-opc.h renamed to <arch>-desc.h.
410 * configure: Rebuild.
411 * aclocal.m4: Rebuild.
412 * config.in: Rebuild.
413 * cgen.c: Include cgen-desc.h, not cgen-opc.h.
414 (*): CGEN_OPCODE_DESC renamed to CGEN_CPU_DESC.
415 (gas_cgen_cpu_desc): Renamed from gas_cgen_opcode_desc.
416 CGEN_INSN_ATTR renamed to CGEN_INSN_ATTR_VALUE.
417 CGEN_OPERAND_ATTR renamed to CGEN_OPERAND_ATTR_VALUE.
418 (gas_cgen_record_fixup): Remove unnecessary != 0 test.
419 (gas_cgen_record_fixup_exp): Ditto.
420 (gas_cgen_finish_insn): Ditto. Refer to operand table via cpu
421 descriptor, not global variable.
422 (gas_cgen_md_apply_fix3): Refer to operand_table via cpu
423 descriptor, not global variable. Refer to insert_operand handler
424 via cpu descriptor, not global function.
425 * cgen.h (*): CGEN_OPCODE_DESC renamed to CGEN_CPU_DESC.
426 * config/tc-fr30.c: Include opcodes/fr30-desc.h.
427 (*): gas_cgen_opcode_desc renamed to gas_cgen_cpu_desc.
428 CGEN_INSN_ATTR renamed to CGEN_INSN_ATTR_VALUE.
429 Update call to CGEN_OPERAND_TYPE,CGEN_INSN_OPERANDS.
430 * config/tc-m32r.c: Ditto.
431 (assemble_two_insns): Update calls to cgen_lookup_get_insn_operands.
432 (md_assemble): Ditto.
433 (md_convert_frag): Update call to CGEN_OPERAND_ENTRY.
437 * config/tc-arm.c (md_apply_fix3): Fix handling of label1 - label2
438 relocations for ELF targets.
442 * configure.in: Add support for StrongARM target.
443 * configure: Regenerate.
447 * config/tc-arm.h: Tidy OBJ_ELF and OBJ_COFF definitions.
449 * config/tc-arm.c (md_apply_fix3): Fix BFD_RELOC_ARM_PCREL_BRANCH
454 * config/tc-alpha.c (md_show_usage): Document pca56 and ev6 options.
458 * config/tc-i386.h (LONG_DOUBLE_MNEM_SUFFIX): Define.
459 (INTEL_DWORD_MNEM_SUFFIX): Define.
465 (OFFSET_FLAT): Define.
467 (NONE_FOUND): Define.
470 * config/tc-i386.c (set_intel_syntax): New routine.
471 (intel_syntax): Declare.
472 (allow_naked_reg): Declare.
473 (md_pseudo_table): Support .intel_syntax and .att_syntax.
474 (intel_float_operand): New routine.
475 (md_assemble): Handle INTEL_DWORD_MNEM_SUFFIX.
476 Handle brackets as well as parens. Call i386_intel_operand for
477 intel syntax. Reverse operands if appropriate. Handle new
478 suffixes. Handle movzx and movsx.
479 (i386_is_reg): New routine.
480 (i386_immediate): New routine.
481 (i386_scale): New routine.
482 (i386_displacement): New routine.
483 (i386_operand_modifier): New routine.
484 (build_displacement_string): New routine.
485 (i386_parse_seg): New routine.
486 (i386_intel_memory_operand): New routine.
487 (i386_intel_operand): New routine.
488 (i386_operand): Call i386_displacement, i386_immediate,
489 i386_scale, etc. instead of handling inline.
490 (parse_register): Handle registers without prefix.
494 * configure: Regenerate.
495 * configure.in (arm-*-oabi): New.
497 * config/tc-arm.c (target_oabi): Declare.
498 (md_apply_fix3): Support REL relocs.
499 (md_parse_option): Handle -oabi.
500 (elf32_arm_target_format): New routine.
501 (md_longopts): Add OPTION_OABI.
502 * config/tc-arm.h: Redefine TARGET_FORMAT.
507 * write.c (write_relocs): Handle out of range error.
509 * config/tc-fr30.c (fr30_fix_adjustable): New function.
510 (fr30_force_relocation): Default to 0.
512 * config/tc-fr30.h (obj_fix_adjustable): Define.
513 (TC_FORCE_RELOCATION): Define.
515 * cgen.c (gas_cgen_md_apply_fix3): Do not apply fixes to VTABLE
520 * config/tc-d30v.c (write_2_short): Do not generate a sequential
521 merge of two instructions if the left instruciton kills the right.
525 * Makefile.in: Regenerate.
526 * configure.in: Redo test for using cgen.
527 * configure: Regenerate.
531 * config/obj-coff.h (obj_adjust_symtab): Prevent accidental
532 redefinition of this macro.
536 * config/tc-mips.c (mips_frob_file): Disable "Unmatched %hi reloc"
541 * config/tc-mips.c (append_insn): For mips16, insert a nop between
542 a read of HI or LO and an immediatly following branch.
546 * config/tc-mips.c (md_begin): Another correction to the setting of
551 * config/tc-mips.c (md_begin): Correct type-o in setting of mips_eabi64.
555 * config/tc-m32r.c (md_assemble): Emit a NOP after a relaxable 16
556 bit insn when optimizing, so that parallelised instructions will
557 start on a 32 bit boundary.
561 * config/tc-mips.c (mips_eabi64): New.
562 (md_begin): Set mips_eabi64.
563 (mips_elf_final_processing): Use it.
567 * config/tc-mips.c (mips_elf_final_processing):
568 Correct setting of ABI in e_flags.
572 * config/tc-fr30.c (md_assemble): Warn about invalid instructions in delay slots.
576 * config/tc-mips.c (md_begin,md_parse_option): Handle vr4111.
580 * cgen.c (gas_cgen_md_apply_fix3): Mark as an error, rather than a
581 warning, values that don't fit in the field.
585 * config/tc-mips.c (mips_abi_string): New.
586 (md_parse_option,md_longopts): Add mabi.
587 (mips_elf_final_processing): Set e_flags based on mabi flag.
591 * config/tc-mips.c (md_parse_option): Handle vr4111.
595 * config/tc-h8300.c (build_bytes): Change message given if the
596 instruction requires H8/300H mode and we're not in Hmode, to
597 suggest that it may be the operand modes that are the problem, not
598 necessarily the opcode.
602 * config/tc-fr30.c: Add line separator character.
606 * configure.in (hppa-*-mpeix*): New target.
607 * config/obj-som.h (obj_som_compiler): Declare.
608 * config/obj-som.c (compiler_seen): New static variable.
609 (obj_som_compiler): New function.
610 * config/tc-hppa.c: Update tc_data uses for change to bfd/som.h.
611 (md_pseudo_table): Add "compiler" if OBJ_SOM.
612 (pa_type_args): Set hppa_priv_level.
613 (pa_compiler): New static function if OBJ_SOM.
614 * configure: Rebuild.
618 * read.c (output_leb128): Don't mark as inline.
622 * config/tc-ppc.c (ppc_vbyte): Prototype and new function for
623 AIX .vbyte unaligned data support.
624 (md_pseudo_table): Add 'vbyte' to list of valid pseudos.
625 (ppc_elf_validate_fix): Add eh_frame to list of ELF relocatable
630 * config/tc-d30v.c (md_assemble, do_assemble): Improve erroneous
635 * config/tc-arm.c (elf32_arm_force_relocation): Check for
636 BFD_RELOC_ARM_PCREL_BRANCH.
640 * configure.in: Define TARGET_BYTES_{BIG,LITTLE}_ENDIAN after
641 checking the target type.
642 (mips-dec-bsd*): Set endian to little.
643 * configure: Rebuild.
645 COFF weak symbol support, based on patches from Mark Elbrecht
647 * config/obj-coff.h (S_IS_WEAK): Define if not BFD_ASSEMBLER.
648 * config/obj-coff.c (obj_coff_weak): New static function.
649 (obj_coff_endef) [both versions]: Handle weak symbols.
650 (coff_frob_symbol): Likewise.
651 (yank_symbols): Likewise.
652 (obj_pseudo_table): Add "weak".
654 * configure.in (m68k-*-gnu*): New target. From Aymeric Vincent
656 * aclocal.m4: Rebuild with current tools.
657 * configure: Rebuild.
659 * config/tc-alpha.c (emit_ldgp): Give an error message rather than
660 an assertion failure for a case we can't handle when OBJ_ECOFF.
662 * expr.c (operator): And with 0xff to avoid problems with signed
667 * config/tc-fr30.c (md_cgen_lookup_reloc): Generate
668 BFD_RELOC_FR30_48 instead of BFD_RELOC_FR30_32.
672 * config/tc-fr30.c (md_cgen_lookup_reloc): Enable relocs for
677 * config/tc-fr30.c (md_pcrel_from_section): Restore previous calculation
682 * config/tc-fr30.c (md_pcrel_from_section): Fix calculation of
687 * config/tc-d10v.c (md_assemble): Make static 'etype' have file
689 (d10v_cleanup): Only generate previous insn if a multiline insn is
694 * config/tc-fr30.c (md_cgen_lookup_reloc): Add support for
699 * config/tc-arm.c (md_parse_option): Add support for -marm7xxx and
700 -marm6xxx command line switches.
704 * Makefile.am (DEP): Use $(srcdir)/../mkdep.
705 (itbl-ops.o): Delete duplicate dependencies.
706 Rebuild dependencies.
707 Add fr30 dependencies.
708 * Makefile.in: Rebuild.
712 * config/tc-fr30.c (md_cgen_lookup_reloc): Updated to match latest
714 * listing.c: Ignore line terminator characters found inside
719 * po/gas.pot: Regenerated.
723 * config/tc-fr30.c (fr30_is_colon_insn): New name for
724 fr30_is_label_start(). Also checks for delay slot insns.
726 * config/tc-fr30.c (fr30_is_label_start): New function: Handle
727 FR30 instructions which contain a colon in the mnemonic.
729 * config/tc-fr30.h (TC_START_LABEL): Define this macro.
733 * config/tc-fr30.c: Removed currently superflous code.
737 * config/tc-fr30.h: New file.
738 * config/tc-fr30.c: Tweaking so that it will compile.
742 * config/tc-d10v.h (obj_fix_adjustable): Define.
743 (TC_FORCE_RELOCATION): Define.
744 (d10v_force_relocation): Declare.
745 * config/tc-d10v.c (tc_gen_reloc): Handle Vtable relocs.
746 (md_apply_fix3): Handle Vtable relocs.
747 (d10v_fix_adjustable): New.
748 (d10v_force_relocation): New.
752 * config/tc-d30v.c: Change default behaviour to ignore potential
753 conflicts between register name and symbol names.
757 * configure.in: Add fr30-*-*.
758 * config/tc-fr30.c: New file.
759 * Makefile.in: Regenerated.
760 * config.in: Regenerated.
761 * configure: Regenerated.
762 * doc/Makefile.in: Regenerated.
763 * po/gas.pot: Regenerated.
767 * config/tc-m32r.c (assemble_two_insns): Ensure both insns
772 * app.c (do_scrub_begin): Set characters above 127 to be symbol
774 (do_scrub_chars): Add some casts to unsigned char to avoid
775 unwanted sign extension.
776 * read.c (lex_type): Set characters about 127 to be symbol
778 * config/tc-i386.c (md_begin): Set identifier_chars and
779 operand_chars for values above 127.
783 * configure.in: detect cygwin* instead of cygwin32*
784 * configure: regenerate
788 * listing.c: Add support for producing a listing from piped
793 * config/tc-mips.c (hilo_interlocks): Remove mips_3900.
794 (append_insn): Account for the tx39's multiply behavior.
798 * config/tc-m32r.c (assemble_two_insns): Rename assemble_two_insns
799 from assemble_parallel_insns. Add support for '->' to indicate
800 explicitly serializing the instructions.
801 (md_assemble): Ditto.
805 * config/tc-sh.c (sh_fix_adjustable): Adjust EXTERN and
810 * cgen.c (gas_cgen_md_apply_fix3): Revert last change.
814 * config/tc-mips.c : support frame and regmask/fregmask when
815 MIPS_STABS_ELF is specified.
819 * config/tc-sh.c (sh_fix_adjustable): Only include if OBJ_ELF.
820 (md_apply_fix): Don't return 1 for VTABLE relocs.
821 * config/tc-sh.h (obj_fix_adjustable): Define only if OBJ_ELF.
825 * doc/c-i386.texi: Replace occurences of "opcode" with
826 "instruction mnemonic", "instruction", or "mnemonic" when
827 referring to the name of an instruction. Use "opcode" when
828 referring to the sequence of machine bytes.
830 * config/tc-i386.c (opcode_chars): Rename to mnemonic_chars.
831 (is_opcode_char): Rename to is_mnemonic_char.
832 (md_assemble and i386_operand): Correct error messages from
833 "opcode" to "instruction mnemonic"
834 Rename throughout opcode[] -> mnemonic[], opp -> mnem_p,
835 MAX_OPCODE_SIZE -> MAX_MNEM_SIZE,
836 DWORD_OPCODE_SUFFIX -> DWORD_MNEM_SUFFIX,
837 WORD_OPCODE_SUFFIX -> WORD_MNEM_SUFFIX,
838 BYTE_OPCODE_SUFFIX -> BYTE_MNEM_SUFFIX,
839 SHORT_OPCODE_SUFFIX -> SHORT_MNEM_SUFFIX
840 LONG_OPCODE_SUFFIX -> LONG_MNEM_SUFFIX
842 * config/tc-i386.h (*_MNEM_SUFFIX): Rename from *_OPCODE_SUFFIX.
844 * config/tc-i386.c (i386_operand): Check for garbage after
849 * config/tc-i386.c (md_apply_fix3): Change handling of PCREL reloc
850 for BFD_ASSEMBLER to only change value when COFF if TE_PE.
854 * config/tc-sh.h (obj_fix_adjustable): Define.
855 * config/tc-sh.c (sh_force_relocation): Handle VT relocs.
856 (md_apply_fix): Likewise.
857 (tc_gen_reloc): Likewise.
858 (sh_fix_adjustable): New.
862 * cgen.c (gas_cgen_finish_insn): Update handling of CGEN_INT_INSN_P.
863 * cgen.h (gas_cgen_finish_insn): Update prototype.
864 * config/tc-m32r.c (m32r_insn): CGEN_INT_INSN -> CGEN_INT_INSN_P.
865 cgen_insn_t -> CGEN_INSN_INT.
866 (make_parallel): Update handling of CGEN_INT_INSN_P.
867 (assemble_parallel_insn): Ditto.
868 (target_make_parallel): New function.
869 (md_assemble): Use it.
873 * config/tc-m32r.c (m32r_force_relocation): Fix typo.
877 * config/tc-sh.c (md_assemble): Make sure the entire opcode is
878 converted into lower case.
882 * cgen.c (gas_cgen_md_apply_fix3): Handle VTABLE relocs.
883 (gas_cgen_tc_gen_reloc): Likewise.
884 * config/tc-m32r.h (obj_fix_adjustable): Define.
885 * config/tc-m32r.c (m32r_fix_adjustable): New.
886 (m32r_force_relocation): Handle VTABLE relocs.
890 * doc/c-arm.texi (ARM Directives): Document .ltorn directive.
894 * config/tc-m32r.c (assemble_parallel_insn): Convert second opcode
895 to lower case before parsing.
897 * config/tc-d30v.c (parallel_ok): Ignore conflicts when explicitly
898 parallel insns modift buts in the PSW as a side effect.
902 * config/tc-d30v.c (find_format): Test for missing flag and
905 (md_apply_fix3): Fix error messages to avoid
906 assumption about presence of a symbol.
908 (parallel_ok): Disallow parallel instructions that both modify the
911 (find_format): Generate a warning if an odd numbered register is
912 used as the first register in a mutli-register instruction.
916 * config/tc-d30v.c (md_apply_fix3): Do not assume that bad
917 relocations are always associated with a symbol.
921 * tc-sparc.h (TC_FORCE_RELOCATION): Define.
922 (elf32_sparc_force_relocation): Declare.
923 * tc-sparc.c (md_apply_fix3): Handle vtable relocs.
924 (tc_gen_reloc): Handle vtable relocs.
925 (elf32_sparc_force_relocation): New.
929 * symbols.c (S_IS_FUNCTION): New.
930 * config/tc-v850.h (obj_fix_adjustable): Define.
931 (TC_FORCE_RELOCATION): Define.
932 (v850_force_relocation): Declare.
933 * config/tc-v850.c (tc_gen_reloc): Use offset instead
934 of fx_addnumber for VTABLE reloc addends.
935 (md_apply_fix3): Handle VTABLE relocs.
936 (v850_fix_adjustable): New.
937 (v850_force_relocation): New.
941 * tc-hppa.c (fp_operand_format): Add some additional formats.
942 (pa_ip): Do not automatically promote into pa2.0 mode.
943 (pa_level): Handle ".level 2.0".
947 * config/tc-i386.c (md_assemble): Handle AMD_3DNOW_OPCODE.
948 * config/tc-i386.h (template.extension_opcode): Change to
949 unsigned int to allow full range of 8-bit opcode suffixes.
950 (None): Redefine as 0xffff.
953 * doc/c-i386.texi (i386-SIMD): New section.
957 * read.c (discard_rest_of_line): New function.
958 * read.h: Declare it.
959 * config/tc-alpha.c (s_alpha_mask, s_alpha_frame): Use it.
963 * config/tc-d10v.c (find_symbol_matching_register): New function.
964 (find_opcode): Cope with the case where a register name matches
969 * config/tc-v850.c (md_pcrel_from): Rename to
970 v850_pcrel_from_section.
971 (v850_pcrel_from_section): Do not resolves symbols in other
974 * config/tc-v850.h (MD_PCREL_FROM_SECTION): Define.
978 * config/tc-d10v.c (find_opcode): Generate an error if a register
979 is supplied for an operand that should not be a register.
983 * config/tc-d30v.c (write_2_short): But do allow delayed branch
984 instructions to have another instruction in the right bin.
988 * config/tc-d30v.c (write_2_short): Do not allow instructions in
989 the right container if the left container holds a branch
994 * config/tc-d30v.c (reg_name_search): Only warn if a name matches
995 both a register name and symbol name.
996 (find_format): Allow correct parsing of MVTSYS and MVFSYS insns.
1000 * config/tc-d30v.c (write_2_short): Implement EITHER_BUT_PREFER_MU
1001 execution unit class.
1003 (reg_name_search): If a name matches a register and a symbol,
1004 prefer the register.
1005 (find_format): Disallow flag registers when a general purpose
1006 register is required.
1007 If a number is required, but a register has been given, check to
1008 see if a symbol with the same name as the register exists, and if
1009 so, use that symbol.
1013 * config/obj-elf.h (ECOFF_DEBUGGING): Add missing parens.
1017 * config/tc-d30v.c (find_format): Do not accept flag registers as
1018 general purpose registers.
1019 (find_format): If an immediate value is expected at a given place
1020 in a format, but a register name has been provided instead, check
1021 to see if that register name matches the name of a predefined
1022 symbol and if it does, then use the symbol instead.
1023 (reg_name_search): If a register name matches a symbol name,
1024 prefer the register name to the symbol name.
1028 * config/tc-m32r.c (m32r_do_align): After inserting NOPs, reset
1029 the previous insn to empty.
1033 * config/tc-ppc.c (md_apply_fix3): Do not break string into two
1034 pieces, forcing the use of an ANSI compiler.
1038 * config/tc-m68k.h (TC_FORCE_RELOCATION): New macro. Force vtable
1040 * config/tc-m68k.c (md_apply_fix_2): Do nothing for vtable relocs.
1044 * config/obj-elf.c (obj_elf_vtable_inherit): Handle arm
1046 (obj_elf_vtable_entry): Likewise.
1047 * config/tc-arm.h: Define TC_FORCE_RELOCATION for OBJ_ELF.
1048 * config/tc-arm.c (md_apply_fix3): Handle VTABLE relocations.
1049 (tc_gen_reloc): Likewise.
1050 (arm_fix_adjustable): Likewise.
1051 (elf32_arm_force_relocation): New.
1052 (armelf_frob_symbol): Remove coff-style symbol support.
1056 * config/tc-i386.c (i386_operand): Fix typo in last patch.
1060 * config/tc-arm.c (arm_adjust_symtab): Move #ifdef
1061 OBJ_COFF so that routine is defined for a.out format.
1065 * config/tc-i386.c (i386_operand): Detect non-segment registers
1066 used as segment prefixes.
1070 * ehopt.c (check_eh_frame): Check the size of the FDE, and don't
1071 optimize across FDE boundaries.
1073 * config/obj-coff.c (obj_coff_section): Preserve any link once
1074 flags when setting the section flags.
1078 * config/tc-arm.h (obj_adjust_symtab): Fixed typo.
1079 * config/tc-arm.c (armelf_adjust_symtab): Reformatted.
1083 * config/tc-sparc.c (in_signed_range): Sign extend 32-bit words
1088 * frags.c (frag_grow): Include the size of the frag struct in the
1091 * subsegs.c (subseg_set_rest): Adjust the seginfo frchain start
1092 if the new subseg comes before the old.
1096 * config/tc-sparc.c (sparc_ip): Allow all digits in an instruction
1097 to handle edge8 and edge16.
1101 * config/obj-elf.c (obj_elf_vtable_inherit): Print error message
1102 before we clobber the symbol involved.
1106 * config/tc-arm.c: Remove OBJ_ELF definitions for
1107 S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS. Only
1108 use arm_adjust_symtab for OBJ_COFF.
1109 (armelf_adjust_symtab): New Routine.
1110 * config/tc-arm.h: Define obj_adjust_symtab to
1111 armelf_adjust_symtab for OBJ_ELF.
1115 * configure.in: Make all i386-elf targets use bfd_gas.
1116 * config/tc-i386.c (tc_i386_force_relocation): New.
1117 (tc_i386_fix_adjustable): Don't fix vtable relocs.
1118 (md_apply_fix3): Likewise.
1119 (tc_gen_reloc): Handle them.
1120 * config/tc-i386.h (TC_FORCE_RELOCATION): Always define, calling
1121 tc_i386_force_relocation.
1125 * config/tc-arm.c (md_show_usage): Improve formatting of --help output.
1129 * config/tc-d30v.c (md_assemble): Copy previous opcode over
1130 current opcode after writing the first insturction of a reverse
1135 * read.h (generate_lineno_debug): Add prototype.
1136 * read.c (generate_lineno_debug): Make non-static.
1140 * config/tc-i386.c (md_assemble): Only warn for address/data size
1145 * config/tc-arm.c (arm_fix_adjustable): Do not adjust relocations
1146 against Thumb function names, as the linker needs this information.
1150 * expr.c (operand): Check also that there is no advance in operand
1151 after atof_generic in order to decide "is it label 0f or floating
1156 * config/tc-m32r.c: Replace double dash prefix to M32R specific
1157 command line options with a single dash.
1158 * doc/c-m32r.texi: Replace double dash prefix with a single dash.
1162 * tc-arm.h: Define obj_fix_adjustable for OBJ_ELF.
1163 * tc-arm.c (arm_fix_adjustable): New routine.
1167 * read.c (s_align, s_comm, s_mri_common, s_fail, s_globl, s_space,
1168 s_float_space, s_struct, cons_worker): Move ignore_rest_of_line or
1169 demand_empty_rest_of_line before mri_comment_end.
1170 (equals): Check garbage after expression before
1171 mri_comment_end in MRI mode.
1175 * config/tc-mips.c (macro): Correct M_SGE_I/M_SGEUI_I case for a
1176 small immediate constant to use the constant itself rather than
1181 * config/tc-hppa.c (pa_enter): Call as_bad rather than abort.
1182 (pa_leave): Likewise.
1186 * config/tc-i386.c (md_assemble): Emit a warning for stand-alone
1188 (i386_operand): Fix an error message.
1192 * doc/c-arm.texi (ARM Directives): Document .req directive.
1194 * config/tc-arm.c (reg_required_here): Display erroneous string if
1195 the register name could not be decoded.
1196 Do not set inst.instruction if the sift is -1.
1200 * config/tc-alpha.c (tc_gen_reloc): Bias WEAK symbols just as
1205 * config/tc-d30v.c (d30v_align): Always perform alignment request,
1206 even if it is belived to be unnecessary.
1210 config/tc-i386.c (i386_operand): Size immediate constants by
1211 suffix (erroneously removed as part of July 7 change).
1215 * config/obj-elf.h: Check for redefinition of obj_frob_symbol.
1216 * config/tc-arm.c: Define S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS.
1217 (armelf_frob_symbol): New Routine.
1218 * config/tc-arm.h: Define obj_frob_symbol if OBJ_ELF.
1222 * config/tc-alpha.c (alpha_fix_adjustable): Don't adjust weak syms.
1226 * config/tc-arm.c (md_begin): Set BFD private flags depending upon
1227 command line switches passed to assembler.
1231 * cgen.h (GAS_CGEN_MAX_FIXUPS): GAS_ prepended, all uses updated.
1232 (gas_cgen_opcode_desc): Declare.
1233 (gas_cgen_parse_operand): Declare.
1234 (*): Prepend gas_ to gas specific fns to denote them as such.
1236 * cgen.c (gas_cgen_opcode_desc): New global
1237 (gas_cgen_init_parse): Renamed from cgen_asm_init_parse.
1238 (queue_fixup): Renamed from cgen_queue_fixup.
1239 (*): Prepend gas_ to gas specific fns to denote them as such.
1241 (gas_cgen_md_apply_fix3): Update call to insert_operand.
1242 (gas_cgen_finish_insn): Renamed from cgen_asm_finish_insn.
1243 * config/tc-m32r.c (md_begin): Remove use of CGEN_SYM.
1244 Open opcode table and initialize it.
1245 (make_parallel): Use gas_cgen_opcode_desc.
1246 (assemble_parallel_insn): Ditto. Remove use of CGEN_SYM.
1247 (md_assemble): Ditto.
1251 * as.h (debug_info_type): Add entries for unspecified and dwarf*.
1252 * ecoff.c (ecoff_generate_asm_lineno): Take no arguments; call
1253 as_where ourselves. Provide a stub for !ECOFF_DEBUGGING.
1254 * ecoff.h: Move ECOFF_DEBUGGING protection inside GAS_ECOFF_H.
1255 Move ecoff_generate_asm_lineno outside ECOFF_DEBUGGING protection.
1256 * read.c (generate_lineno_debug): Tidy ECOFF bits. Use
1257 DEBUG_UNSPECIFIED rather than DEBUG_NONE for initial test.
1258 * config/obj-elf.h (ECOFF_DEBUGGING) [TC_ALPHA]: Define to a variable.
1259 (SEPARATE_STAB_SECTIONS): Conditionalize on value of ECOFF_DEBUGGING.
1260 (INIT_STAB_SECTION): Likewise.
1261 (OBJ_PROCESS_STAB): Likewise.
1263 * config/tc-alpha.c (md_longopts): New options -mdebug/-no-mdebug.
1264 (md_parse_option): Watch for them.
1265 (alpha_cur_ent_sym, alpha_flag_mdebug): New variables.
1266 (md_begin): Kill neverdef code.
1267 (s_alpha_ent, s_alpha_end, s_alpha_mask, s_alpha_frame): New.
1268 (s_alpha_prologue): Watch alpha_cur_ent_sym.
1269 (s_alpha_coff_wrapper): New.
1270 (md_pseudo_table): Trap all ECOFF pseudos.
1274 Start of changes to remove mdebug section from mips*-elf
1275 Based on MIPS_STAB_ELF definition
1276 * acconfig.h: undef if not configured
1277 * config.in: undef if not configured
1278 * config/mips-elf.h: only set ECOFF debugging if not stabs-in-elf
1279 * config/tc-mips.c (s_ent): set BSF_FUNCTION
1280 * stabs.c (s_stab_generic): flush frag
1284 * configure.in: (arm-*-elf): Handle.
1285 (thumb-*-elf): Handle.
1286 * configure: Regenerate.
1287 * read.c (stringer): Fix typo in comment.
1288 * write.c (fixup_segment): Don't add symbol value to addend if
1290 * config/tc-arm.c (md_section_align): Don't align dwarf debug
1292 (tc_gen_reloc): Always set the reloc addend to fixp->fx_offset
1297 * config/tc-d30v.c ({cur,prev}_left_kills_right_p): New variables.
1298 (write_2_short): Emit warning if new flag is set.
1299 (do_assemble): Set flags if left instruction is one of special
1300 "right-instruction-killer" type.
1304 * config/tc-sparc.c (md_number_to_chars, cons_fix_new_sparc):
1305 Always output words in debug_info section as big endian.
1306 (sparc_target_format): Choose correct bfd target.
1307 (md_apply_fix3): Rename BFD_RELOC_SPARC_32LE to BFD_RELOC_SPARC_REV32.
1311 * config/tc-mn10300.c (md_assemble): Fix "errmsg" initialization
1312 to work with internationalization code. Issue an error when two
1313 operands match that are not allowed to match.
1317 * configure.in (install_tooldir): Allow target to specify whether
1318 it wants to be installed in $(tooldir)/bin.
1319 * configure: Regenerate.
1320 * Makefile.am (install-exec-local): Set install-exec-tooldir
1321 dependency via configure.
1322 * Makefile.in: Regenerate.
1326 * Makefile.am (install-exec-local): Split into two ...
1327 (install-exec-bindir,install-exec-tooldir): New rules.
1328 * Makefile.in: Regenerate.
1332 * Makefile.am (install-exec-local): Don't remove the file before
1333 checking whether $(bindir) == $(tooldir)/bin. From Maciej
1335 * Makefile.in: Rebuild.
1339 * cgen.c: Include libiberty.h.
1340 (cgen_md_apply_fix3): Update call to md_cgen_lookup_reloc.
1341 (cgen_tc_gen_reloc): Use xmalloc, not bfd_alloc.
1342 * cgen.h (cgen_md_apply_fix3,cgen_tc_gen_reloc): Declare.
1343 (md_cgen_lookup_reloc)): Declare.
1344 (md_cgen_record_fixup_exp): Declare.
1345 * config/tc-m32r.h (md_pcrel_from_section): Declare.
1346 (m32r_relax_frag): Declare.
1347 (cgen_md_apply_fix3): Decls moved to cgen.h.
1348 (cgen_record_fixup_exp,cgen_tc_gen_reloc): Ditto.
1349 (m32r_cgen_record_fixup_exp): Delete decl.
1350 * config/tc-m32r.c (m32r_cpu_desc): #if 0 out.
1351 (assemble_nop): Delete.
1352 (expand_debug_syms): Delete unused `exp'.
1353 (md_cgen_lookup_reloc): Renamed from CGEN_SYM (lookup_reloc).
1354 Add default case for -Wall.
1355 (m32r_cgen_record_fixup_exp): Add default case for -Wall.
1356 (md_atof): Delete unused wordP.
1360 * config/tc-mn10300.c (md_assemble): Make sure "errmsg" has a non-NULL
1365 * doc/as.texinfo: Add documentation for .end, .exitm, .fail,
1366 .ifc, .ifeqs, .ifge, .ifgt, .ifle, .iflt, .ifnc, .ifne, .ifnes,
1367 .print, .purgem, and .struct. Remove documentation for
1372 * cgen.c (cgen_md_apply_fix3): set_operand renamed to set_vma_operand.
1373 Update call to insert_operand.
1377 * config/tc-m32r.c (ms_show_usage): Formatting changes.
1381 * config/tc-i386.c (md_assemble): Don't get confused by trailing
1382 whitespace after a prefix operator.
1386 * configure.in (i386-*-beos{pe,elf,}*): Recognize.
1390 * config/tc-sparc.c (log2): New static function.
1391 (s_reserve): Use log2 to convert alignment before calling
1393 (s_common): Use log2 to convert alignment before calling
1394 record_alignment and frag_align.
1395 (sparc_cons_align): Use log2.
1399 * config/tc-sparc.c (s_reserve): Set symbol size if OBJ_ELF.
1400 (s_common): Likewise.
1402 * config/tc-sparc.c (sparc_handle_align): Reindent a bit. Correct
1403 initialization of waddr.
1404 (sparc_elf_final_processing): Add default case to switch.
1408 * doc/c-i386.texi: Fix a typo. Use the term 80-bit real rather
1409 than temporary real.
1413 * write.c (subsegs_finish): Don't align the segments if there were
1416 * config/obj-coff.c (c_symbol_merge): Correct number of bytes when
1417 copying aux information.
1419 * expr.c (make_expr_symbol): Catch attempts to turn an O_big
1420 expression into a symbol.
1424 * config/tc-i386.c (mode_from_disp_size): Change arg and return
1425 type to unsigned int.
1426 (md_assemble): Change type used to store offsets from unsigned
1428 (i386_operand): Switch error check to only call RESTORE_END_STRING
1429 once after parse_register.
1433 * config/tc-v850.c (md_show_usage): Changed format to match that
1436 * as.c (show_usage): Changed format to match that of gcc, ld, etc.
1440 * config/tc-m68k.c (tc_m68k_fix_adjustable): Don't adjust vtable
1442 (md_apply_fix_2): Force the symbol of the vtable reloc to be
1447 * doc/Makefile.am (MAINTAINERCLEANFILES): Define.
1448 * doc/Makefile.in: Rebuild.
1452 * config/tc-mips.c (mips_ip, case 'i' and 'j'): Mask off high bits
1453 for %lo expressions.
1454 (mips_ip, case 'u'): Move range check after code to mask
1455 off bits in %hi/%lo expressions. Mask off high bits for
1460 * doc/Makefile.am (gasver.texi): New target.
1461 (as.info, as.dvi): Depends upon gasver.texi.
1462 * doc/as.texinfo: Include gasver.texi. Mention version number on
1463 title page and in top node.
1464 * doc/Makefile.in: Rebuild.
1468 * listing.c (listing_listing): For EDICT_LIST, skip all lines up to
1469 but not including the line containing the edict.
1470 * listing.h (LISTING_EOF): New.
1471 * input-scrub.c (input_scrub_next_buffer): Call it.
1475 * config/tc-i386.c (i386_operand): Don't set the size of an
1476 immediate address based solely on the suffix and the mode.
1478 * config/tc-i386.c (md_assemble): Add assertion to make sure
1479 overlap2 does not set Imm.
1481 * config/tc-i386.c (space_chars): Remove. The scrubber converts
1482 sequences of whitespace to a single space.
1483 (is_space_chars): Just compare with space.
1484 (md_begin): Don't initialize space_chars.
1485 (md_assemble): Just skip a single whitespace character.
1486 (i386_operand): Rewrite base-index parsing to use new
1487 parse_register, and to skip white space. Skip white space in a
1488 number of other places too. Don't give error message if
1489 parse_register fails.
1490 (parse_register): Change reg_string parameter to be non-const.
1491 Add end_op parameter. Skip white space after the `%', and return
1492 end of register string. Give error message here rather than
1498 * expr.c (op_encoding): Make const.
1499 (expr_set_precedence): New function.
1500 (expr_begin): Don't set operator rankings, just call
1501 expr_set_precedence.
1502 * expr.h (expr_set_precedence): Declare.
1503 * read.c (s_mri): Call expr_set_precedence.
1507 * doc/as.texinfo (Statements): Remove paragraph discussing
1508 continuing lines with a backslash. This hasn't worked for years,
1513 * obj-vms.c: Add C++ support with ctors/dtors sections. Add weak
1515 (Ctors_Symbols, Dtors_Symbols): New symbol chains.
1516 (ps_CTORS, ps_DTORS): New section types.
1517 (vms_fixup_xtors_section): New function
1518 (Ctors_Psect, Dtors_Psect): Define.
1519 (IS_GXX_XTOR): Define
1520 (global_symbol_directory): Change check of gxx_bug_fixed to 0.
1521 Filter static constructors/destructors and add to
1522 Ctors_Symbols/Dtors_Symbols chain.
1523 (vms_write_object_file): Write Ctors_Symbols/Dtors_Symbols to
1524 appropriate section.
1526 * tc-alpha.h (TARGET_FORMAT): Rename "evax-alpha" to "vms-alpha".
1527 * makefile.vms: Merge vax/vms support.
1531 * config/obj-elf.c (obj_elf_vtable_inherit, obj_elf_vtable_entry): New.
1532 (elf_pseudo_table): Add them.
1533 * config/tc-mips.c (mips_force_relocation): Force vtable relocs.
1534 (md_apply_fix): Accept them.
1535 (mips_fix_adjustable): Don't adjust them.
1536 (tc_gen_reloc): Mung BFD_RELOC_VTABLE_ENTRY for Rel.
1537 * config/tc-ppc.c (md_apply_fix3): Accept vtable relocs.
1538 * config/tc-ppc.h (TC_FORCE_RELOCATION_SECTION): Force vtable relocs.
1539 (tc_fix_adjustable): Don't adjust them.
1543 * Makefile.am (CGEN_CPU_PREFIX): New variable.
1545 * Makefile.in: Regenerate.
1546 * configure.in: AC_SUBST cgen_cpu_prefix.
1547 * configure: Regenerate.
1551 * config/tc-sh (COND_JUMP_DELAY, COND12_DELAY_LENGTH): Define.
1552 Changed all users of COND12_DELAY.
1556 * config/tc-mn10300.c (set_arch_mach): New function.
1557 (md_pseudo_table): Add pseudo-ops to set the current machine type.
1558 (md_begin): Default to mn10300 mode.
1559 (md_assemble): Only accept instructions for the core mn10300
1560 chip and the active machine type.
1564 * subsegs.h (segment_info_type): Give the struct a name.
1565 * config/tc-h8300.h (tc_reloc_mangle): Add prototype.
1566 * config/tc-h8500.h (tc_reloc_mangle): Declare.
1567 * config/tc-sh.h (sh_coff_reloc_mangle): Add prototype.
1568 * config/tc-w65.h (tc_reloc_mangle): Declare.
1569 * config/tc-z8k.h (tc_reloc_mangle): Declare.
1573 * config/tc-v850.c (v850_comm): Restore old section
1574 after common processing.
1578 * config/obj-vms.c (Create_VMS_Object_File): Force binary file.
1582 * config/tc-h8300.c (do_a_fix_imm, build_bytes): Replace cast to
1583 char with code that explicitly sign-extends.
1587 * config/tc-v850.c (md_begin): Restore text section as the current
1588 section after creating call table sections.
1589 * config/obj-coff.h (SYM_AUXINFO): New macro to conceal ugly
1592 * config/obj-coff.c (c_symbol_merge): Replace complex expresion
1593 with call to macro SYM_AUXINFO.
1597 * Makefile.am (install-exec-local): Don't let EXEEXT interfere
1598 with the program transform name.
1599 * Makefile.in: Rebuild.
1603 * config/obj-coff.c (c_symbol_merge): Fix copying of auxiliary
1608 * config/tc-i386.c (i386_operand): Be prepared for a space between
1609 the open parenthesis and the start of the register operand,
1610 because of the June 16 change.
1614 * config/tc-sh.c (md_apply_fix): Handle weak symbols correctly if
1619 * config/tc-d30v.c (d30v_align): Always perform alignment request,
1620 even if it is belived to be unnecessary.
1624 * write.c (adjust_reloc_syms): Never adjust relocs against weak
1626 * config/tc-mips.c (md_apply_fix): Adjust accordingly.
1630 * config/tc-mn10300.c (mn10300_insert_operand): Do not hardcode the
1631 shift amount for a repeated operand. The shift amount for the
1632 repeated copy comes from the size of the operand.
1636 * config/tc-h8300.c (get_operand): Fix typos in ldm/stm support.
1640 * config/tc-mips.c (md_show_usage): Fix -mipsN usage.
1644 * app.c (do_scrub_begin): If tc_symbol_chars is defined, treat all
1645 characters in it as LEX_IS_SYMBOL_COMPONENT.
1646 * config/tc-i386.h (tc_symbol_chars): Define.
1647 (extra_symbol_chars): Declare.
1648 * config/tc-i386.c (extra_symbol_chars): Define.
1649 (comment_chars): Don't use '/' as comment start if TE_LINUX.
1650 (line_comment_chars): Set to '/' if TE_LINUX.
1651 * doc/c-i386.texi (i386-prefixes): Update.
1652 * doc/internals.texi (CPU backend): Document tc_symbol_chars.
1656 * po/Make-in (all-yes): If maintainer mode, depend on .pot file.
1657 ($(PACKAGE).pot): Unconditionally depend on POTFILES.
1661 * config/tc-d10v.c (md_apply_fix3): Checking displacement
1662 constraint in instructions REP & REPI.
1666 * config/tc-d30v.c (md_apply_fix3): Catch BFD_RELOC_8,
1667 BFD_RELOC_16, BFD_RELOC_64 and issue appropriate error messages.
1669 (check_range): If the operand is shifted, then shift the number
1670 before checking its range.
1672 * write.c (adjust_reloc_syms): Add more checks for NULL pointers.
1674 * config/tc-v850.c (v850_comm): Set SEC_COMMON bit on special
1679 * config/tc-v850.c (v850_comm): Create special sections as needed.
1683 * config/tc-d10v.c (write_2_short): Addition of swapping
1684 instructions for sequential and reverse sequential order when
1685 given order is not possible.
1689 * Makefile.am: Rebuild dependencies.
1690 (DEP_INCLUDES): Fix reference to intl build directory.
1691 * Makefile.in: Rebuild.
1695 * doc/c-i386.texi: Update 16 bit documentation.
1697 * config/tc-i386.h: Change Data16 to Size16, Data32 to Size32,
1698 IgnoreDataSize to IgnoreSize as they are used for address size as
1700 * config/tc-i386.c: Likewise. Add code to reject addr32/data32 in
1701 32-bit mode, similarly addr16/data16 and variants.
1705 * config/tc-d30v.c (md_assemble): Fix handling of reverse
1706 sequential word multiply instructions.
1708 (do_assemble): Add extra command line argument, to allow mul32
1709 attribute to be preserved across parallel insns.
1710 (md_assemble): Insert NOPs between explicitly parallel insns which
1711 contain an 32 bit multiply and a 16 multiply.
1715 * config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and
1718 * config/tc-i386.c (reloc): Add braces.
1720 * config/tc-i386.c (struct _i386_insn): Rename bi to sib to be
1721 consistent with Intel naming.
1722 * config/tc-i386.h (base_index_byte): Rename to sib_byte. Don't
1723 use bitfields in sib_byte.
1724 (modrm_byte): Don't use bitfields here either.
1726 * config/tc-i386.c (current_templates): Add const.
1727 (parse_register): Add const to return, param, and char *s.
1728 (i386_operand): Add const to reg_entry *r.
1729 * config/tc-i386.h (templates): Add const to start, end.
1731 Inspired by code for 16 bit gas support from Martynas Kunigelis
1733 * config/tc-i386.c (md_assemble): Add full support for 16 bit
1734 modrm, and Jump, JumpByte, JumpDword, JumpInterSegment insns.
1735 (uses_mem_addrmode): Remove.
1736 (md_estimate_size_before_relax): Add support here too.
1737 (md_relax_table): Rewrite interface to md_relax for 16 bit
1739 (BYTE, WORD, DWORD, UNKNOWN_SIZE): Remove.
1740 (opcode_suffix_to_type): Remove.
1741 (CODE16, SMALL, SMALL16, BIG, BIG16): Define.
1742 (SIZE_FROM_RELAX_STATE): Modify to suit above.
1743 (md_convert_frag): Likewise.
1744 (i386_operand): Add support for 16 bit base/index regs,
1745 immediates, and displacements. Remove some unnecessary casts, and
1746 localise end_of_operand_string, displacement_string_start,
1747 displacement_string_end variables. Add GCC_ASM_O_HACK.
1748 * config/tc-i386.h (NO_BASE_REGISTER_16): Define.
1750 * config/tc-i386.c (prefix_hash): Remove.
1751 (md_begin): Rewrite without obstacks. Remove prefix hash table
1752 handling. Rewrite lexical table handling.
1753 (i386_print_statistics): Don't print prefix statistics.
1754 (md_assemble): Rewrite instruction parser so that line is not
1755 converted to lower case. Don't do a hash_find for prefixes,
1756 instead recognise them via opcode modifier.
1757 (expecting_operand, paren_not_balanced): Localise variables.
1758 * config/tc-i386.h (IsPrefix): Define.
1759 (prefix_entry): Remove.
1761 * config/tc-i386.h (PREFIX_SEPERATOR): Don't define.
1762 * config/tc-i386.c (PREFIX_SEPARATOR): Define here instead, using
1763 '\\' in case where comment_chars contains '/'.
1765 * config/tc-i386.c (MATCH): Ensure given operand and template
1766 match for JumpAbsolute. Makes e.g. `ljmp table(%ebx)' invalid;
1767 you must write `ljmp *table(%ebx)'.
1770 * config/tc-i386.c (BFD_RELOC_16, BFD_RELOC_16_PCREL): Define
1771 as 0 ifndef BFD_ASSEMBLER.
1772 (md_assemble): Allow immediate operands without suffix or
1773 other reg operand to default in size to the current code size.
1777 * config/tc-v850.c (md_begin): Restore creation of
1778 .call_table_text and .call_table_data sections.
1782 * config/tc-d30v.c (md_assemble): Set execution type to unknown
1783 after emitting a word of noops.
1787 * config/tc-i386.c (mode_from_disp_size): Disp16 is mode 2.
1788 (i386_operand): Simplify checks for valid base/index combinations.
1789 Disallow `in 4(%dx),%al'.
1791 * config/tc-i386.c (struct _i386_insn): Make regs, base_reg, and
1793 (add_prefix): Change parameter from char to int.
1795 * config/tc-i386.h (Ugh): Define opcode modifier.
1796 * config/tc-i386.c (md_assemble): Print warnings for Ugh insns.
1798 * config/tc-i386.c (md_assemble): Rewrite MATCH and
1799 CONSISTENT_REGISTER_MATCH macros to check register types more
1800 thoroughly. Check for illegal suffix/operand combinations
1801 when matching insns with operands. Handle new `s' suffix, and
1802 associated FloatMF opcode modifier for float insns with memory
1804 * config/tc-i386.h (FloatMF): Define new opcode modifier.
1805 (No_sSuf, No_bSuf, No_wSuf, No_lSuf): Likewise.
1806 (SHORT_OPCODE_SUFFIX, LONG_OPCODE_SUFFIX): Define.
1807 * config/tc-i386.c: Rename WORD_PREFIX_OPCODE to
1808 DATA_PREFIX_OPCODE throughout.
1810 * config/tc-i386.c (REGISTER_WARNINGS): Define.
1811 (md_assemble): Rewrite suffix/register operand checking code to be
1812 more thorough. Remove Abs8,16,32. Change occurrences of Mem to
1813 AnyMem, the better to grep.
1815 (i386_operand): Don't set Mem bits in i.types[this_operand] when
1816 given a memory operand. Don't set Abs bits either.
1817 (type_names): Remove Mem*, Abs*.
1818 * config/tc-i386.h (Mem8, Mem16, Mem32, Abs8, Abs16, Abs32): Don't
1819 define opcode_modifiers as these cases are handled by Disp8,
1820 Disp16, Disp32 and suffix checks.
1821 (COMES_IN_BOTH_DIRECTIONS): Remove.
1822 (FloatR): Define. It's OK to share the bit with ReverseRegRegmem.
1824 * config/tc-i386.c (md_assemble): Don't emit operand size prefix
1825 if IgnoreDataSize modifier given. Remove ShortformW modifier
1826 test. Add test for ShortForm in W base_opcode modification.
1827 Merge Seg2ShortForm and Seg3ShortForm code.
1828 * config/tc-i386.h (ShortFormW): Remove.
1829 (IgnoreDataSize): Define.
1833 * config/tc-d30v.c (md_assemble): Store previous segment state
1834 with previous instruction.
1838 * config/tc-i386.c (SCALE1_WHEN_NO_INDEX): Define.
1839 (ebp, esp): Remove static variables.
1840 (MATCH): Remove test for InOutPortReg.
1841 (i386_operand): Properly handle InOutPortReg here instead.
1842 Disallows `inb (%dx,2)', `inb %es:(%dx)' and `mov (%dx),%ax'
1843 (md_assemble): Simplify and correct modrm and sib generation.
1844 (i386_operand): Add warning for scale without index.
1845 Rewrite checks for valid base/index combinations.
1847 * config/tc-i386.c (END_STRING_AND_SAVE): Protect arguments of
1848 macros and enclose in do while(0).
1849 (RESTORE_END_STRING): Likewise.
1850 (md_assemble): Add one to printed operand number so we start
1851 from 1 not 0. Add some more gettext invocations.
1852 (i386_operand): Fix `%%s' -> `%%%s'. Inc printed operand
1855 * config/tc-i386.h (WAIT_PREFIX, LOCKREP_PREFIX, ADDR_PREFIX,
1856 DATA_PREFIX, SEG_PREFIX): Define.
1857 * config/tc-i386.c (struct _i386_insn): Remove wait_prefix field.
1858 (check_prefix): Remove function.
1859 (add_prefix): New function. Add prefix to i.prefix as well as
1861 (md_assemble): Changes for add_prefix. Remove hack for wait
1862 prefix, instead always output prefixes in fixed order. Test
1863 for jcxz/loop when selecting between word & dword operations,
1864 and add address size prefix rather than operand size prefix.
1865 Remove operand -> address size hack when emitting jcxz/loop.
1866 (i386_operand): Remove O_Absent check as it's done in expr.
1870 * configure.in: Recognize m5200 as a cpu_type of m68k.
1871 * aclocal.m4: Rebuild with current libtool.
1872 * configure: Rebuild.
1876 * config/tc-m68k.c (md_estimate_size_before_relax): Add more calls
1877 to relaxable_symbol to prevent references to external symbol from
1882 * config/tc-m68k.c (relaxable_symbol): If TARGET_OS is "elf", all
1883 symbols are relaxable.
1887 * config/tc-v850.c (md_begin): Don't create special
1888 sections by default.
1892 * config/tc-mips.c (macro): For div and udiv, close the
1893 reorder block as soon as possible.
1898 * macro.c (macro_mri_mode): New function.
1899 * macro.h (macro_mri_mode): Declare.
1900 * read.c (s_mri): Call macro_mri_mode when switching in and out of
1905 * config/tc-alpha.c (s_alpha_comm): Allow alignment parameter in
1908 * config/tc-alpha.c (s_alpha_comm): Defer restoring character
1909 until after xstrdup in OBJ_EVAX case.
1913 * config/tc-vax.c (md_create_short_jump): Fix off by two bug in
1914 offset calculation. Also, use VAX_BRW from vax-inst.h instead
1915 of hardcoded magic number.
1916 (md_create_long_jump): Use VAX_JMP and VAX_ABSOLUTE_MODE macros.
1920 * read.c (do_s_func): New function.
1922 * read.h (do_s_func): Add prototype.
1926 * config/tc-m32r.c (m32r_do_align): Only fill code sections with
1927 nops if fill pattern not specified.
1932 * config/te-go32.h (TE_GO32): Define.
1933 * config/tc-i386.h (LOCAL_LABEL): Don't define if TE_GO32.
1937 Implement .func/.endfunc pseudo-ops.
1938 * read.h (stabs_generate_asm_func,stabs_generate_asm_endfunc): Declare.
1940 * read.c (potable): Add .func,.endfunc.
1941 (s_func): New function.
1942 * stabs.c (stabs_generate_asm_func,stabs_generate_asm_endfunc): New
1944 (in_doc_func_p,current_function_label): New static globals.
1945 (stabs_generate_asm_lineno): Emit function relative stabs if in .func.
1949 * config/tc-a29k.h (WORKING_DOT_WORD): Define.
1950 * config/tc-alpha.h (WORKING_DOT_WORD): Define.
1951 * config/tc-arm.h (WORKING_DOT_WORD): Define.
1952 * config/tc-h8300.h (WORKING_DOT_WORD): Define.
1953 * config/tc-h8500.h (WORKING_DOT_WORD): Define.
1954 * config/tc-hppa.h (WORKING_DOT_WORD): Define.
1955 * config/tc-i860.h (WORKING_DOT_WORD): Define.
1956 * config/tc-i960.h (WORKING_DOT_WORD): Define.
1957 * config/tc-tic30.h (WORKING_DOT_WORD): Define.
1958 * config/tc-w65.h (WORKING_DOT_WORD): Define.
1959 * config/tc-z8k.h (WORKING_DOT_WORD): Define.
1960 * config/tc-a29k.c: Don't define md_short_jump_size,
1961 md_long_jump_size, md_create_short_jump or md_create_long_jump.
1962 * config/tc-alpha.c: Likewise.
1963 * config/tc-alpha.h: Likewise.
1964 * config/tc-arm.c: Likewise.
1965 * config/tc-h8300.c: Likewise.
1966 * config/tc-h8500.c: Likewise.
1967 * config/tc-hppa.c: Likewise.
1968 * config/tc-i860.c: Likewise.
1969 * config/tc-i960.c: Likewise.
1970 * config/tc-ppc.c: Likewise.
1971 * config/tc-sh.c: Likewise.
1972 * config/tc-sparc.h: Likewise.
1973 * config/tc-tic30.c: Likewise.
1974 * config/tc-w65.c: Likewise.
1975 * config/tc-z8k.c: Likewise.
1979 * config/tc-vax.c (_): Delete this macro used for placeholder
1980 values in vax_operand_width_size; it conflicts with the _() macro
1981 used for internationalization.
1985 * symbols.c (symbol_find_base): Fix case insensitive symbol name
1989 * struc-symbol.h (struct broken_word): Add seg and subseg fields.
1990 * read.c (emit_expr): Initialize seg and subseg fields of a new
1992 * write.c (write_object_file): Switch to the appropriate segment
1993 and subsegment when processing a broken word.
1995 * config/tc-m68k.c (mri_assemble): New static function.
1996 (build_mri_control_operand): Call mri_assemble rather than
1998 (s_mri_else, s_mri_break, s_mri_next, s_mri_for): Likewise.
1999 (s_mri_endf, s_mri_endw): Likewise.
2003 * read.c (s_org): Call md_flush_pending_output if it is defined.
2005 * config/tc-sparc.c (md_show_usage): Add \n\ to new string.
2009 * config/tc-sparc.c (OPTION_LITTLE_ENDIAN_DATA): New.
2010 (md_parse_option): Add for same.
2011 (sparc_md_end): Set bfd_mach_sparc_sparclite_le.
2012 (md_apply_fix3, tc_gen_reloc): Allow BFD_RELOC_SPARC_32LE.
2013 (cons_fix_new_sparc): Added to create BFD_RELOC_SPARC_32LE.
2015 * config/tc-sparc.h (cons_fix_new_sparc): Added.
2019 * config/tc-arm.c (find_real_start): Relax definition of local
2024 * config/tc-d30v.c (d30v_align): Apply address adjustment to all
2025 symbols at the given address, not just the last one specified.
2029 * config/tc-sparc.c (sparc_handle_align): Use number_to_chars_bigendian
2030 or number_to_chars_littleendian to write data.
2034 * config/tc-v850.c (md_assemble): Remove artificially created
2035 register name symbols.
2039 * write.c (fixup_segment): Change "segment" to "section" in
2044 * write.c (fixup_segment): Change sym1-sym2 message again.
2048 * write.c (fixup_segment): Improve error message for sym1-sym2
2049 errors when sym1 is in a different segment from sym2.
2053 * config/tc-m32r.c (warn_unmatched_high): New static local.
2054 (OPTION_WARN_PARALLEL): Rename from OPTION_WARN.
2055 (OPTION_NO_WARN_PARALLEL): Rename from OPTION_NO_WARN.
2056 (md_longopts): Recognize --{no-,}warn-unmatched-high.
2057 (md_parse_option): Likewise.
2058 (md_show_usage): Likewise.
2059 (m32r_frob_file): Likewise.
2061 * read.c (generate_file_debug,generate_lineno_debug): New functions.
2062 (read_a_source_file): Call them.
2063 * read.h (stabs_generate_asm_file): Declare.
2064 * stabs.c (stabs_generate_asm_file): New function.
2065 (generate_asm_file): New function.
2066 (stabs_generate_asm_lineno): Move file name handling into
2071 * config/tc-d30v.c (cur_mul32_p, prev_mul32_p): Make static.
2072 (d30v_current_align, d30v_current_align_seg): New variables.
2073 (d30v_last_label): New variable.
2074 (d30v_align, s_d30v_align, s_d30v_text): New functions.
2075 (s_d30v_data, s_d30v_section): Likewise.
2076 (md_pseudo_table): Call them.
2077 (md_begin): Initialize d30v_current_align_seg.
2078 (md_assemble): Call d30v_align when needed by known current alignment.
2079 (d30v_frob_label, d30v_cons_align): New functions.
2080 * config/tc-d30v.h (md_do_align): Remove.
2081 (tc_frob_label): Call d30v_frob_label.
2082 (md_cons_align): New.
2084 * config/tc-d30v.c (find_format): Convert complex expressions to
2085 expression symbols before processing. Clean up code formatting.
2089 * po/Make-in (install-info): New target.
2093 * config/tc-mn10200.c (md_assemble): Handle "bra" just like "jmp"
2095 * config/tc-mn10300.c (md_assemble): Likewise.
2099 * Makefile.am: Update with `make dep-am'.
2100 (HFILES): Add cgen.h.
2101 (cgen.o): Depend on cgen.h.
2102 * Makefile.in: Regenerate.
2104 * cgen.c (cgen_md_apply_fix3): Don't pass newline to as_warn_where.
2108 * gasp.c (grab_label): Permit a label to be a preprocessor
2109 variable by permitting a label to start with a backslash.
2113 * config/tc-mips.c (validate_mips_insn): Removed hack
2114 for previously inaccessible bitfields in some INSN_TRAP
2119 * config/tc-d30v.c (do_assemble): Abort with error message
2120 if opcode operands do not match.
2124 * config/tc-mips.c (macro_build, validate_mips_insn): Implement
2125 'q' operand format for 20-bit "break"/"sdbbp" instructions.
2126 (mips_ip): Truncate overflowed "break" 'c' operand. Implement
2127 similar new 'q' operand.
2131 * cgen.c (cgen_asm_finish_insn): Fix typo.
2136 * cgen.c: Include it.
2137 (MAX_FIXUPS): Renamed to CGEN_MAX_FIXUPS.
2138 (cgen_asm_finish_insn): Result is now void. New arg `result'.
2139 All callers updated.
2140 * config/tc-m32r.c: Include cgen.h.
2141 (m23r_insn): New members num_fixups,fixups.
2145 * config/tc-hppa.c (md_apply_fix): Slightly rework some code
2146 to avoid compiler warning.
2150 * makefile.vms: Run dec c with /nodebug. Pass CC value when
2153 * makefile.vms (OBJS): Add ehopt.obj
2157 * doc/c-vax.texi: Correct and extend vax/vms documentation.
2161 * config/tc-d30v.c (do_assemble): Accept a new parameter requesting
2162 a short format insn.
2163 (md_assemble): Set it for explicitly packed insns.
2167 * config/obj-coff.c (c_symbol_merge): Do not take address of
2168 native fields when performing the memcpy.
2172 * config/tc-mips.c (macro,macro2): Implement
2173 M_DMULO_I, M_MULO_I, M_DMULOU_I, and M_MULOU_I.
2177 * config/tc-m68k.h (TC_RELOC_RTSYM_LOC_FIXUP): Changed to keep
2178 relocations against globally visible symbols.
2179 * config/tc-m68k.c (relaxable_symbol): New macro.
2180 (m68k_ip, md_estimate_size_before_relax): Use it.
2181 (tc_m68k_fix_adjustable): Also handle weak symbols.
2185 * config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Keep relocs for all
2186 references to externally visible symbols.
2187 * config/tc-i386.c (md_apply_fix3): When OBJ_ELF, don't add the
2188 values in twice for a PC relative reloc if the symbol is
2191 * config/tc-sparc.h (tc_fix_adjustable) [OBJ_AOUT]: When PIC,
2192 don't adjust a PC relative reloc against an externally visible
2194 * config/tc-sparc.c (md_apply_fix3): When generating a.out PIC,
2195 for a PC relative fixup against an externally visible defined
2196 symbol, arrange to store object file and addend values as though
2197 the symbol were not defined.
2198 (tc_gen_reloc): Likewise.
2202 * read.c (sizeof_leb128): Referenced externally by write.c so
2207 * config/tc-m32r.c ({,expand_}debug_sym): New functions to record
2208 and expand a 'debug' symbol associated with the next instruction
2209 that does not cause a short instruction to be filled with a NOP.
2210 (md_pseudo_table): Add support for .debugsym.
2211 (assemble_parallel_insn): Add calls to expand_debug_sym as
2213 (md_assemble): Ditto.
2217 * as.c (main): Conditionally call setlocale.
2218 * gasp.c (main): Likewise.
2219 * asintl.h: Include <locale.h> if HAVE_LOCALE_H.
2220 (LC_MESSAGES): Now can be defined even when ENABLE_NLS.
2224 * config/tc-d30v.c (md_show_usage): Correct gettext typo.
2228 * config/tc-hppa.c: Change all calls to bzero to use memset.
2229 (pa_ip): Add cast to avoid warning.
2230 (tc_gen_reloc, md_apply_fix): Likewise.
2231 (pa_find_space_by_number): Likewise.
2232 (hppa_force_relocation): Likewise.
2233 (pa_block): Change i to unsigned int.
2234 * config/obj-som.h (obj_som_copyright): Declare.
2238 * ecoff.c (ecoff_build_lineno): Do not use dummy first_lineno
2239 for line numbers for assembly source.
2243 * configure.in: Change version number to 2.9.4
2244 * configure: Rebuild.
2248 * cgen.c (cgen_asm_finish_insn): New arg relax_p. All callers updated.
2252 * ecoff.h: Change symbolS in function declaration to struct
2257 * config/tc-sh.c (parse_reg): Add casts to avoid warnings.
2258 (md_convert_frag): Fix i18n typo.
2262 * ecoff.c (ecoff_get_cur_proc_sym): New function.
2263 * ecoff.h: Protoype it.
2264 * config/tc-alpha.c [ELF] (s_alpha_prologue): New function.
2265 [EVAX] (s_alpha_prologue): Delete.
2266 (md_pseudo_table): Update.
2270 * config/tc-i960.c (md_assemble): Change bp_error_msg from static
2271 array to local pointer.
2272 (get_args, parse_expr): Add casts to avoid warnings.
2276 * read.c (s_set): Cast xmalloc return value to fragS *.
2277 * config/tc-m68k.c (m68k_ip): Function made static to match
2278 previous forward declaration.
2279 (insert_reg, init_regtable, md_convert_frag_1): Likewise.
2283 * config/tc-v850.c: Add internationalisation macros to error
2286 * config/tc-m32r.c (can_make_parallel): Add internationalisation
2287 macros to error strings.
2291 * config/tc-ppc.c (ppc_fix_adjustable): Correct test of whether a
2292 reloc is in the TOC csect.
2293 (md_apply_fix3): Correct gettext typo.
2297 * config/tc-arm.c (find_real_start): Ignore symbols starting with
2298 .L - they are local labels and the branches are not really
2299 function calls but rather far jumps.
2303 * po/Make-in (MKINSTALLDIRS): Don't look in $(top_srcdir).
2307 * config/tc-i386.c (md_assemble): Print operand number rather than
2308 using ordinal_names.
2309 (i386_operand): Likewise.
2313 * Makefile.am (INTLLIBS): Define to work around apparent automake
2315 All Makefiles: Regenerated.
2317 * Many files: Added gettext invocations around user-visible
2319 * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
2320 HAVE_LC_MESSAGES): Define.
2321 * dep-in.sed: Added asintl.h.
2322 * po/Make-in: New file.
2323 * gasp.c (main): Call setlocale, bindtextdomain, and textdomain.
2325 * read.c (Z_): Renamed from `_'.
2326 * Makefile.am (SUBDIRS): Added po.
2327 (POTFILES): new macro.
2328 (po/POTFILES.in): New target.
2329 ($(OBJS)): Added asintl.h.
2331 (INCLUDES): Added -DLOCALEDIR, -I$(top_srcdir)/../intl.
2332 (as_new_LDADD): Added $(INTLLIBS).
2333 (as_new_DEPENDENCIES): Added $(INTLDEPS).
2334 (gasp_new_LDADD): Added $(INTLLIBS).
2335 (gasp_new_DEPENDENCIES): New macro.
2336 * configure, aclocal.m4: Rebuilt.
2337 * configure.in: Call CY_GNU_GETTEXT. Generate po/Makefile.in and
2339 (ALL_LINGUAS): Define.
2340 * macro.c: Include "asintl.h".
2341 * as.c (main): Call setlocale, bindtextdomain, and textdomain.
2342 * as.h: Include "asintl.h".
2343 * config/tc-i386.c (ordinal_names): Removed.
2344 (md_assemble): Changed error text to avoid ordinal_names.
2345 (i386_operand): Likewise.
2346 (reloc): Added as_bad to avoid i18n problems.
2347 (tc_gen_reloc): Likewise.
2348 * config/tc-arm.c (bad_args): Now a #define.
2350 * config/obj-vms.c (VMS_stab_parse): Changed type of
2352 (global_symbol_directory): Unified strings to avoid i18n
2354 * config/tc-m68k.c (get_reloc_code): Added some as_bad calls to
2355 avoid i18n problems.
2356 * config/tc-ns32k.c (reloc): Added as_bad to avoid i18n problems.
2357 * config/tc-ppc.c (md_apply_fix3): Added as_bad_where to avoid
2359 * config/tc-sh.c (md_convert_frag): Added as_bad to avoid i18n
2361 * config/tc-v850.c (md_assemble): Changed C++ comment into C
2363 * config/tc-vax.c (md_assemble): Added as_warn to avoid i18n
2365 * as.c (print_version_id): Added an fprintf to avoid i18n
2367 * cond.c (cond_finish_check): Added as_bad call to avoid i18n
2369 * expr.c (expr): Added as_warn call to avoid i18n problems.
2370 * messages.c (as_assert): Changed code to avoid i18n problems.
2371 (as_abort): Likewise.
2372 * read.c (pseudo_set): Added as_bad call to avoid i18n problems.
2373 (s_space): Likewise.
2374 * po/Make-in, po/POTFILES.in, po/gas.pot: New files.
2378 * config/tc-i386.c (check_prefix): New static function, split out
2380 (struct _i386_insn): Add wait_prefix field.
2381 (md_assemble): Remove wait_prefix local variable. Use
2382 check_prefix when adding a prefix.
2384 * config/tc-i386.c (current_templates): New static variable.
2385 (md_assemble): Remove current_templates local variable.
2386 (md_assemble, i386_operand): Improve error and warning messages in
2387 many places. Add RESTORE_END_STRING in many places before error
2388 return. Clarify some comments.
2390 * config/tc-i386.c (struct _i386_insn): Change seg field to a two
2392 (md_assemble): Parse string instruction operands, looking for
2393 segment override prefixes. Check for invalid segment prefixes on
2395 (i386_operand): i.seg[] and max mem_operand changes for string
2397 * config/tc-i386.h (EsSeg): Define.
2399 * config/tc-i386.h (regKludge): Define.
2400 (iclrKludge, imulKludge): Don't define.
2401 * config/tc-i386.c (md_assemble): Merge imulKludge and iclrKludge
2402 code. Move ReverseRegRegmem fudges into Modrm case. Reorder
2403 opcode_modifier checks to look for more common cases first. Add
2404 default_seg for IsString case.
2408 * configure.in: Call AM_PROG_LEX rather than AC_PROG_LEX and
2410 * configure: Rebuild with new automake and libtool.
2411 * aclocal.m4, Makefile.in: Likewise.
2413 * doc/Makefile.am (as.dvi): New target.
2414 * doc/Makefile.in: Rebuild.
2418 * configure.in: Added sparc86x support.
2420 * configure: Rebuild.
2422 * config/tc-sparc.c (lookup_arch): Added arch_type to struct
2424 (md_parse_option): Warn if -EL is not supported for this architecture.
2426 * config/tc-sparc.h (SPARC_BIENDIAN) Always define.
2430 * config/tc-mips.c (mips_ip): Note when we use get match on
2431 the full instruction name.
2435 * symbols.c (resolve_symbol_value) [O_symbol]: Also store the symbol
2436 back into the expression to handle add/sub simplification correctly.
2440 * config/tc-mips.c (hilo_interlocks): Remove 4300.
2444 * config/tc-arm.c (do_msr): Support undocumented 'msr cpsr_flg,
2449 * symbols.c (max_indent_level): New global.
2450 (print_symbol_value_1): Use it.
2451 * expr.h (expr_build_dot): Declare.
2452 * expr.c (expr_build_dot): New function.
2456 * symbols.c (print_binary): New function.
2457 (print_expr_1): Call it.
2461 * config/tc-m68k.c (m68k_ip, case "#B"): Install the offset of the
2462 operand in the opcode.
2466 * config/tc-i386.h: Reorder operand flags and opcode modifier
2467 flags for clarity. Remove unused definitions: Unknown,
2468 ImmUnknown, DispUnknown, NoModrm.
2469 * config/tc-i386.c (type_names): Add missing Debug type.
2470 (md_assemble): Better duplicate prefix checking. Quicker string
2471 instruction check via new opcode_modifier flag.
2475 * doc/as.texinfo (Invoking): Clarify -Wa example.
2479 * config/tc-mips.c (mips_pseudo_table): Add weakext entry.
2480 (s_mips_weakext): Define.
2481 * ecoff.c (ecoff_directive_weakext): Don't define if defined(TC_MIPS).
2482 * config/obj-ecoff.c (obj_pseudo_table): Don't add weakext if
2487 * config/tc-mn10200.c (tc_gen_reloc): The difference of two symbols
2488 is an error if the value can not be computed at assembly time.
2489 * config/tc-mn10300.c (tc_gen-reloc): Likewise.
2493 * gasp.c (main): Set next field of new include_path structure to
2496 * read.c (s_mri_sect): Call as_bad rather than abort for an
2497 unsupported MRI target.
2501 * config/tc-arm.c (arm_validate_fix): New function. Determine if
2502 the destination of a branch instruction should be altered.
2503 (find_real_start): New function: Locate the real, Thumb coded
2504 start of a Thumb function.
2505 (do_t_branch23): Alter the destination of branches to Thumb
2508 * config/tc-arm.h: Define TC_VALIDATE_FIX.
2512 * config/tc-arm.c (decode_shift): Handle addressing mode 2 w/rrx
2517 * doc/as.texinfo: Use @itemx for a secondary item in a table.
2518 * doc/c-hppa.texi: Likewise.
2522 * Makefile.am: Rebuild dependencies.
2523 * Makefile.in: Rebuild.
2525 * Makefile.am (DEP_INCLUDES): New variable.
2526 (.dep1): Change to work when srcdir is not an absolute path.
2527 (.tcdep, .objdep, .dep2, dep.sed): Likewise.
2528 * Makefile.in: Rebuild.
2532 * config/tc-i386.h, config/tc-i386.c: Revert March 24
2533 LinearAddress patch.
2535 * configure.in: Set version to 2.9.1.
2536 * configure: Rebuild.
2538 * Branched binutils 2.9.
2542 * config/tc-i386.h (FWait): Define.
2543 * config/tc-i386.c (md_assemble): Emit fwait prefix before any
2544 other prefixes. Check FWait flag in opcode table to see which
2545 instructions require an fwait prefix.
2549 * stabs.c (get_stab_string_offset): Always create a stab string
2554 Fix some gcc -Wall warnings:
2555 * atof-generic.c (atof_generic): Add casts to avoid warnings.
2556 * ehopt.c (eh_frame_code_alignment): Likewise.
2557 * expr.c (integer_constant, operand): Likewise.
2558 * frags.c (frag_align): Likewise.
2559 * gasp.c (level_0, change_base, doinstr): Likewise.
2560 * hash.c (hash_ask): Likewise.
2561 * listing.c (listing_page, calc_hex, print_lines): Likewise.
2562 (debugging_pseudo): Likewise.
2563 * macro.c (define_macro, check_macro): Likewise.
2564 * read.c (read_a_source_file, s_align, s_float_space): Likewise.
2565 (ignore_rest_of_line, float_cons): Likewise.
2566 * symbols.c (decode_local_label_name): Likewise.
2567 * write.c (record_alignment, cvs_frag_to_fill): Likewise.
2568 (fixup_segment, number_to_chars_bigendian): Likewise.
2569 (number_to_chars_littleendian): Likewise.
2570 * config/atof-ieee.c (gen_to_words): Likewise.
2571 * config/tc-sparc.c (md_begin, md_assemble): Likewise.
2572 (sparc_ip, parse_keyword_arg, s_common): Likewise.
2573 * read.c (output_big_sleb128): Initialize locals to avoid
2575 (output_big_uleb128, equals): Likewise.
2576 * atof-generic.c (atof_generic): Change number_of_digits_* locals
2577 to unsigned int. Change zeros to unsigned int.
2578 * cond.c (s_if): Add return to default case.
2579 * frags.c (frag_now_fix): Change return type to addressT.
2580 * frags.h (frag_now_fix): Update declaration.
2581 * listing.c (file_info_struct): Change linenum to unsigned int.
2582 (struct list_info_struct): Change hll_line to unsigned int.
2583 (print_source): Update format string.
2584 * read.c (emit_expr): Change scan to unsigned int, and don't
2585 bother to initialize it.
2586 * symbols.c (dollar_label_count): Change to unsigned long.
2587 * write.c (adjust_reloc_syms): Remove unused label reduce_fixup.
2588 * config/tc-sparc.c (sparc_memory_model): Only define if OBJ_ELF.
2589 * config/tc-sparc.c (tc_gen_reloc): Add return to default case.
2593 * config/tc-m68k.c (m68k_ip): Check legal addressing modes for
2594 mcf5200 just as we do for m68000.
2595 (m68k_init_after_args): Likewise.
2596 (md_estimate_size_before_relax): Likewise.
2600 * config/tc-v850.c (md_assemble): Store relocation addend in
2601 fixup instead of instruction.
2605 * config/tc-i386.c (md_assemble): Swap template arguments to
2606 CONSISTENT_REGISTER_MATCH macro in reverse direction test.
2607 This macro is currently symmetric, so passing them the wrong
2608 way didn't cause any problem, but may if the macro is changed
2610 After copying template to i.tm, use i.tm. rather than t-> to
2611 access fields, and make t a const*
2612 Move i.tm.operand_types[] swap to immediately after the copy.
2616 * expr.h (expr_build_uconstant): Add prototype.
2617 (expr_build_unary,expr_build_binary): Add prototypes.
2618 * expr.c (expr_build_uconstant): New function.
2619 (expr_build_unary,expr_build_binary): New functions.
2623 * gasp.c (IS*): Cast argument to unsigned char, not unsigned int.
2624 * macro.c (macro_expand_body): Increase buffer size.
2625 * messages.c (as_warn): Likewise.
2626 (as_warn_where, as_bad, as_bad_where): Likewise.
2631 * Makefile.am (DISTSTUFF): New variable.
2632 (diststuff): New target.
2633 * Makefile.in: Rebuild.
2637 * config/tc-m32r.h (md_cleanup, md_elf_section_change_hook): Call
2638 m32r_elf_section_change_hook.
2640 * config/tc-m32r.c (m32r_elf_section_change_hook): New function to
2641 emit a nop if a section ends with a 16 bit instruction.
2645 * config/obj-coff.c (obj_coff_bss): Compile unconditionally. Call
2646 s_lcomm rather than obj_coff_lcomm.
2647 (obj_pseudo_table): Compile .bss pseudo-op unconditionally.
2651 * config/tc-i386.h (LinearAddress): Define.
2652 * config/tc-i386.c (md_assemble): If LinearAddress is set for the
2653 instruction, don't use a default segment.
2657 * configure.in: (sh*-*-rtems*): Switched from ELF to COFF.
2658 * configure: Rebuild.
2662 * aclocal.m4, configure: Rebuild with libtool 1.2.
2666 * config/tc-arm.c (md_apply_fix3): fix code to test the range of
2667 PC relative branches. Patch courtesy of Jonathan Walton.
2672 * configure.in (emulations): Add thumb-pe target.
2674 * configure (emulations): Add thumb-pe target.
2678 * itbl-lex.l (yywrap): Don't define if already defined as a
2683 * depend.c (quote_string_for_make): New function.
2684 (wrap_output): Use it.
2688 * config/obj-elf.c (obj_elf_section): Set bss flag in seg_info
2689 structure if type is SHT_NOBITS. [Bug fix courtesy of rth]
2693 * config/tc-alpha.c (md_shortopts, md_longopts, md_parse_option):
2694 Recognize -GN and -relax.
2695 (md_begin): Initialize gp size from -G switch.
2696 (alpha_force_relocation): Always force if -relax.
2697 (alpha_align): Take a new argument that will specify when to
2698 emit an R_ALPHA_ALIGN relocation (though we don't do that now).
2699 Change all callers. Emit nop alignment padding as nop+unop pair.
2703 * config/obj-elf.c [TC_ALPHA]: Include <elf/alpha.h>.
2704 * config/tc-alpha.h (ELF_TC_SPECIAL_SECTIONS): New.
2708 * config/tc-d30v.c (write_2_short): Delayed jsr instructions don't
2709 require padding to the next long word boundary.
2713 * cgen.c: #include symcat.h.
2714 * config/tc-m32r.c: Likewise.
2718 * config/tc-mips.c (mips_ip, case 'P'): Make 'P' arguments be
2719 absolute expressions instead of '$' prefixed register names.
2723 * read.c (s_set): Record file and line info for symbols when -as.
2724 (pseudo_set): Don't overwrite that dummy fragment.
2728 * config/tc-ppc.c (md_pseudo_table): Add "section".
2729 (ppc_named_section): New static function.
2733 * tc-ppc.c (ppc_biei): Cache the last symbol we inserted
2734 so we don't have to scan the entire list.
2738 * config/tc-d30v.c (parallel_ok): For the explicitly parallel
2739 case, allow the parallel instructions to modify the same flag
2744 * listing.c (list_symbol_table): Categorize symbols by
2745 undefined_section rather than sy_frag->line == NULL.
2749 * Makefile.am (install-exec-local): Install properly when ln
2750 fails or tooldir == prefix.
2754 * cgen.c (cgen_md_apply_fix3): Delete call to validate_operand.
2755 Test result of insert_operand for error.
2759 * Makefile.am (AUTOMAKE_OPTIONS): Add cygnus.
2760 * configure, Makefile.in, aclocal.m4: Rebuild with automake 1.2e.
2761 * doc/Makefile.am (AUTOMAKE_OPTIONS): Define.
2762 * doc/Makefile.in: Rebuild.
2766 * config/tc-mips.c (macro_build): Handle operand type 'C'.
2767 (macro): Fix handling of M_COP[0-3].
2772 * macro.c (ISSEP): Only treat '<' and '>' as separator characters
2773 if macro_alternate or macro_mri.
2774 (getstring): Remove support for byte constants between < and >.
2775 (get_any_string): '<' only starts a string if macro_alternate or
2777 (macro_expand_body): Permit keyword parameters following
2778 positional parameters.
2781 * configure.in (alpha*-*-netbsd*): New target.
2782 * config/te-nbsd.h (LOCAL_LABELS_FB): Define.
2783 * configure: Rebuild.
2785 * as.h (flag_warn_suppress_instructionswap): Move from here...
2786 * config/tc-d10v.c (flag_warn_suppress_instructionswap): ...to
2787 here, and make static.
2789 * ehopt.c (eh_frame_code_alignment): Only use seg_info if
2790 BFD_ASSEMBLER or MANY_SEGMENTS.
2792 * as.c (show_usage): Update bug-gnu-utils address.
2793 * gasp.c (show_usage): Likewise.
2794 * doc/as.texinfo (Bug Reporting): Likewise.
2798 * config/tc-mips.c (load_address): Don't use mips III or mips IV
2799 insns regardless of the size of a pointer if we're in mips I or
2801 (macro, macro2, s_cprestore, s_cpadd): Likewise.
2805 Fix rac to accept only a0:
2806 * tc-d10v.c (parallel_ok, find_opcode):
2807 Split OPERAND_ACC into OPERAND_ACC0 and OPERAND_ACC1.
2808 Introduce OPERAND_GPR.
2812 * read.c (s_fill): Handle non-constant repeat counts by creating
2813 an rs_space fragment.
2817 * config/tc-i386.c (i386_operand): Change error added Jan 2 1998
2818 from as_bad to as_warn.
2822 * as.c: (perform_an_assembly_pass): Use [TEXT|DATA|BSS]_SECTION_NAME
2823 * as.h: Define default values of [TEXT|DATA|BSS]_SECTION_NAME
2824 * config/obj-elf.c (elf_begin): Use [TEXT|DATA|BSS]_SECTION_NAME
2828 * ehopt.c (eh_frame_code_alignment): If not BFD_ASSEMBLER, use
2829 seg_fix_rotP rather than fix_root from seg_info.
2833 * expr.c: Add support for 0x1_2_3_4 bignums.
2837 * configure.in: Change -linux* to -linux-gnu*.
2838 * configure: Rebuild.
2840 * app.c (do_scrub_begin): Treat \r as whitespace.
2844 * Makefile.am: Update dependencies.
2845 * Makefile.in: Rebuild.
2849 * configure, aclocal.m4: Rebuild with new libtool.
2853 * config/tc-mips.c (md_begin): If mips_cpu is set, then use it as
2854 the argument to bfd_set_arch_mach.
2855 (load_address): Use bfd_arch_bits_per_address to determine the
2856 bit size of an address instead of looking at the isa level.
2857 (macro, macro2, s_cprestore, s_cpadd): Likewise.
2861 * config/tc-v850.c (md_parse_option): Add -mv850any command line option.
2865 * ehopt.c: New file.
2866 * as.h (enum _relax_state): Add rs_cfa.
2867 (check_eh_frame, eh_frame_estimate_size_before_relax): Declare.
2868 (eh_frame_relax_frag, eh_frame_convert_frag): Declare.
2869 * read.c (emit_expr): Call check_eh_frame.
2870 * write.c (cvt_frag_to_fill): Handle rs_cfa.
2871 (relax_segment): Likewise.
2872 * Makefile.am: Rebuild dependencies.
2873 (GAS_CFILES): Add ehopt.c.
2874 (GENERIC_OBJS): Add ehopt.o.
2875 * doc/internals.texi (Frags): Document rs_cfa.
2877 * as.c (show_usage): Mention --traditional-format.
2878 (parse_args): Accept --traditional-format.
2879 * as.h (flag_traditional_format): Declare.
2880 * output-file.c (output_file_create): If flag_traditional_format,
2881 set BFD_TRADITIONAL_FORMAT on stdoutput.
2882 * doc/as.texinfo, doc/as.1: Document --traditional-format.
2884 * config/tc-mips.c (append_insn): Make sure that if we have a
2885 fixup for an unmatched %hi reloc, it does not associated with a
2888 * configure, Makefile.in, aclocal.m4: Rebuild with new libtool.
2889 * doc/Makefile.in: Likewise.
2893 * config/tc-m32r.c (check_for_side_effects): New function.
2894 (can_make_parallel): Add checks for instruction side effects
2895 clashing with the other instruction.
2896 (assemble_parallel_insn): Improve warning messages. Return error
2897 message from non-swapped instruction order.
2901 * config/tc-arm.c: Rename arm_after_pass_hook() to arm_cleanup().
2903 * config/tc-arm.h: Replace md_after_pass_hook definition with a
2904 md_cleanup definition. This moves the forced literal output to
2905 the end of the source pass, and avoids macro's inserting literals
2906 into the code immediately after the macro expansion.
2910 * config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: A reloc against
2911 a gas internal symbol is adjustable.
2912 * config/tc-ppc.h (tc_fix_adjustable): Likewise.
2914 * as.h: If gcc version greater than 2.6, use `__format__' and
2915 `__printf__' in function attributes, rather than `format' and
2920 * config/tc-sparc.c: Only include elf/sparc.h if OBJ_ELF.
2924 Add tms320c30 support:
2925 * config/tc-tic30.h: New file.
2926 * config/tc-tic30.c: New file.
2927 * config/obj-coff.h: If TC_TIC30, include coff/tic30.h and define
2928 TARGET_FORMAT as "coff-tic30".
2929 * configure.in (tic30-*-*aout*, tic30-*-*coff*): New targets.
2930 * Makefile.am: Rebuild dependencies.
2931 (CPU_TYPES): Add tic30.
2932 (CPU_OBJ_VALID): tic30-aout is valid.
2933 (TARGET_CPU_CFILES): Add config/tc-tic30.c.
2934 (TARGET_CPU_HFILES): Add config/tc-tic30.h.
2935 * configure, Makefile.in: Rebuild.
2939 * config/tc-v850.c (md_assemble): Improvements to error messages.
2943 * config/tc-ppc.c (md_apply_fix3): Change BFD_RELOC_HI16 and
2944 BFD_RELOC_HI16_S to store the high bits of any value.
2946 * config/tc-ppc.h (tc_fix_adjustable): Undo change of Fri Jun 27.
2947 (TC_RELOC_RTSYM_LOC_FIXUP): Don't let the
2948 assembler calculate relocations to any external symbol at all.
2949 * config/tc-ppc.c (md_apply_fix3) [OBJ_ELF]: Correct bugs
2950 involving generation of pc-relative relocs.
2951 (md_pcrel_from_section) [OBJ_ELF]: The job this code used to do
2952 has been moved to md_apply_fix3.
2954 * config/tc-ppc.c (md_apply_fix3): Fix test for too-far branch.
2955 (ppc_elf_suffix): Warn about 'identifier+constant@got' syntax,
2956 which actually means (the address of identifier's GOT entry) +
2957 constant, which is not particularly useful.
2961 * read.h (include_dirs): Declare.
2962 (include_dir_count,include_dir_maxlen): Declare.
2966 * configure.in: Correct check for shared opcodes library.
2967 * configure: Rebuild.
2969 * listing.c (buffer_line): If we can't open the file, set at_end.
2970 (listing_print): Remove unused local variable fi.
2972 * config/m68k-parse.y (reglistpair): Handle register list in
2975 * config/vms-conf.h: Don't undef VERSION.
2979 * Makefile.am (CONFIG_OBJS): New variable, containing part of old
2981 (GENERIC_OBJS): New variable, with the rest of the old OBJS
2983 (OBJS): Now just $(CONFIG_OBJS) and $(GENERIC_OBJS).
2984 ($(srcdir)/make-gas.com): Rename from make-gas.com.
2985 (stamp-mk.com): Replace $(OBJS) with $(GENERIC_OBJS).
2986 (EXTRA_DIST): Define.
2987 * vmsconf.sh: Handle {targ-cpu, obj-format, atof-targ} modules
2988 explicitly rather than via the list of object files.
2989 (gcc-as.opt): New file created when make-gas.com is run.
2990 * config-gas.com: Create {targ-cpu.h, obj-format.h, targ-env.h,
2991 itbl-cpu.h} to #include appropriate file rather than copying that
2993 * config/vms-conf.h: Synchronize with current config.in.
2994 * Makefile.in: Rebuild.
2998 * config/tc-d30v.c (do_assemble): Added flag_explicitly_parallel.
2999 (parallel_ok): Relaxed parallel subinstruction dependency check.
3003 * as.h (flag_warn_suppress_instructionswap): added new flag.
3004 * tc-d10v.c (md_parse_option,md_longopts): added "--nowarnswap"
3005 command line argument.
3006 * tc-d10v.c (write_2_short): emit "Swapping instructions"
3007 warning only if flag_warn_suppress_instructionswap is false.
3011 * configure.in (i386-*-mingw32*): New target.
3012 * configure: Rebuild.
3016 * symbols.c (resolve_symbol_value): Don't set the segment if it
3017 hasn't changed, and this is OBJ_AOUT without BFD_ASSEMBLER.
3019 * config/obj-aout.h (S_IS_LOCAL): Correct typo--pass argument to
3024 as.h (unlink): Reverse 13-Feb-97 change; use of unlink vs remove
3025 depends upon HAVE_{UNLINK,REMOVE} values rather than host
3030 * config/obj-coff.h (RESOLVE_SYMBOL_REDEFINITION): Define.
3034 * config/tc-v850.c (v850_insert_operand): Display instruction when
3035 an error is encountered.
3039 * configure.in (i386-*-sco3.2v5*): Defaults to ELF now.
3040 (i386-*-sco3.2v5*coff): New target.
3041 (i386-*-sco3.2*): New target.
3042 * configure: Rebuild.
3046 * config/tc-v850.c: Tidy error message production.
3050 * config/tc-arm.c (md_apply_fix3): Add new variable newimm to hold
3051 validate_immediate return value in the right type for comparisons
3056 * listing.c (MAX_BYTES): Use listing variables not constants.
3057 (data_buffer): No longer an array, but a pointer.
3058 (calc_hex): sizeof(data_buffer) -> MAX_BYTES.
3059 (listing_listing): Allocate data_buffer.
3063 * as.c (parse_args): Add --listing-lhs-width, --listing-lhs-width2,
3064 --listing-rhs-width, --listing-cont-lines.
3065 (show_usage): Update.
3066 * listing.c (listing_lhs_width, listing_lhs_width_second): New vars.
3067 (listing_lhs_cont_lines, listing_rhs_width): New vars.
3068 (print_lines): Use the variables instead of the constants.
3069 (listing_listing): Likewise.
3070 * listing.h: Declare the new vars.
3074 * as.c (parse_args): Add --keep-locals alias for -L.
3075 Add --strip-local-absolute.
3076 (show_usage): Update.
3077 * as.h (flag_strip_local_absolute): New flag.
3078 * symbols.c (S_IS_LOCAL): Use it.
3079 * config/obj-aout.h (S_IS_LOCAL): Likewise.
3080 * config/obj-bout.h (S_IS_LOCAL): Likewise.
3081 * config/obj-coff.h (S_IS_LOCAL): Likewise.
3085 * config/tc-m32r.c: Detect if explicitly parallel instructions
3086 might have an io conflict and issue a warning message.
3090 * cgen.c (cgen_save_fixups, cgen_restore_fixups,
3091 cgen_swap_fixups): Functions to save, restore and swap the fixup
3092 chain with a backup copy.
3093 (cgen_asm_finish_insn): Returns address of constructed insn.
3097 * listing.c (file_info_struct): Remove FILE, add POS.
3098 (last_open_file_info, last_open_file): New; a one entry FILE* cache.
3099 (file_info): Don't open the file.
3100 (buffer_line): Check for the file in the last_open cache, updating
3102 (print_source): Don't reference file_info->file.
3103 (listing_listing): Likewise.
3104 (listing_print): Close the file in the cache, if any.
3108 * read.c (dwarf_file_string): New file static variable.
3109 (emit_expr): Look for constant sequence that leads up to a file
3110 name in DWARF debugging output.
3111 (stringer): Use dwarf_file_string to decide whether to accept a
3112 string as a file name.
3116 * tc-m68k.c (m68k_ip): Remove absl->reglst MRI hack.
3117 (crack_operand): Add reg->reglst MRI hack.
3118 (r_seg): Put reglst symbols in reg_section.
3119 (m68k_frob_symbol): Frob reglst symbols into absolute_section.
3123 * tc-sh.c (get_specific): Handle SGR & DBR.
3127 * tc-h8300.c (parse_reg): Take the length of the symbol into
3128 account when attempting to match a register name.
3129 * tc-h8500.c (parse_reg): Likewise.
3133 * cgen.c: Formatting changes to improve readability.
3137 * config/tc-mips.c (macro): Rework division code to avoid unfilled
3142 Based on a patch from Jim Wilson
3143 * config/tc-d30v.c (do_assemble): Remove non-ansi default case.
3144 (tc_gen_reloc): Handle cross section PC relative relocs
3149 * config/tc-mips.c (mips_ip): Don't test pinfo flags if INSN_MACRO.
3153 * cgen.c: #include setjmp.h. Clean up pass over `struct foo' usage.
3154 (expr_jmp_buf): New static local.
3155 (cgen_parse_operand): Allow use of longjmp in parsing to handle errors.
3156 (cgen_md_operand): New function.
3157 * tc-m32r.c: Clean up pass over `struct foo' usage.
3158 (md_estimate_size_before_relax): Use CGEN_INSN_MNEMONIC.
3162 * symbols.c (S_SET_SEGMENT): Don't set the segment for section syms.
3163 (S_IS_EXTERNAL, S_IS_LOCAL): Correct parenthetication.
3167 * config/tc-i386.c (i386_operand): Give an error if there are
3168 unrecognized characters after an expression.
3170 For older changes see ChangeLog-9697