+
+ * read.c (cons_worker): Don't use #elif; old compilers don't
+ support it.
+
+
+ * app.c (do_scrub_chars): In MRI mode, silently end quoted strings
+ at newline characters. In MRI mode, always keep spaces in the
+ operands field. In MRI mode, treat a line comment character as a
+ regular comment character following a space.
+ * cond.c (ignore_input): Use strncasecmp rather than strncmp when
+ looking for special pseudo-ops.
+ * read.c (cons_worker): In MRI mode, the expressions stop at the
+ first unquoted space.
+ (equals): Likewise.
+
+start-sanitize-sh3e
+
+ * config/tc-sh.c (get_operands): Read third arg if it exists.
+ Otherwise, clear it.
+ (get_specific, case F_FR0): Add.
+
+end-sanitize-sh3e
+
+ * config/tc-sh.c (get_specific): Delete arg_to_test.
+ (md_assemble): Increase operand array from 2 to 3.
+
+
+ * config/tc-mips.c: Remove CYGNUS LOCAL comments.
+ (md_begin): Use 0/1 instead of TRUE/FALSE.
+ (md_show_usage): Break up long format string for the benefit
+ of lame compilers.
+ * config/tc-m68k.c (md_show_usage): Ditto.
+ * gasp.c (show_usage): Ditto.
+ * macro.c (check_macro): Cast result of hash_find.
+
+
+ * configure.in: When testing for a free() declaration in system
+ header files, cast the address to a function pointer, not to an
+ integer.
+
+ * write.c (fix_new_internal): Call TC_INIT_FIX_DATA if TC_FIX_TYPE
+ is defined. Don't initialize fx_bsr. Verify that fx_size field
+ is wide enough to hold stored value.
+ * write.h (struct fix): Change tc_fix_data to type TC_FIX_TYPE if
+ that is defined, otherwise omit it. Delete fx_bsr. Change
+ fx_size to unsigned char.
+ * config/tc-i960.h (TC_FIX_TYPE, fx_bsr, TC_INIT_FIX_DATA): New
+ macros.
+ * config/tc-ns32k.h (TC_FIX_TYPE, fx_bsr, TC_INIT_FIX_DATA): New
+ macros.
+ * config/tc-hppa.h (TC_FIX_TYPE): Define as PTR.
+
+ * config/tc-i860.c (md_apply_fix): Delete code for checking
+ fx_im_disp, and for handling non-zero values, since it never gets
+ set after being initialized to zero.
+
+ * write.h (struct fix): Make fx_im_disp always 2 bits, since the
+ only tc-* files actually using it need that much.
+
+ NS32K changes from Ian Dall:
+ * configure.in: Treat ns32k-pc532-ux* like ns32k-pc532-mach*, and
+ ns32k-pc532-lites* like ns32k-pc532-netbsd*.
+ * config/tc-ns32k.h (LOCAL_LABELS_FB): Define to 1.
+
+
+ * write.c (fixup_segment): Get TC_FORCE_RELOCATION up the
+ right way!
+
+
+ * config/tc-mips.c (md_parse_option, md_begin, md_show_usage):
+ Add support for "-mcpu=vr4300" as processor identifier.
+
+
+ * write.c (fixup_segment): Remove change of 29th.
+ * config/tc-{i386,arm}.h (TC_FORCE_RELOCATION): Keep RVA relocs.
+
+
+ * config/tc-m68k.c (m68k_ip) [case POST/PRE/BASE]: Fix typo when
+ looking at outer displacement. Don't set the postindex bit if the
+ index suppress bit is set (for memory indirect addressing mode).
+
+
+ * config/tc-arm.c (tc_gen_reloc): Delete duplicated code.
+
+
+ * app.c (do_scrub_chars): Free saved_input when the from buffer
+ exactly fills the to buffer.
+
+
+ * config/tc-sparc.c (parse_keyword_arg, parse_const_expr_arg): New fns.
+ (sparc_ip): Call them for asi, membar, and prefetch parsing.
+
+
+ * config/tc-sparc.c (membar_masks): Deleted.
+ (sparc_ip): Clean up ASI and membar support.
+
+
+ * read.c (potable): Rva is new entry.
+ (cons_worker): New, split from cons. Handles rva.
+ (cons, s_rva): Call cons_worker.
+ * read.h (s_rva): New declaration.
+ * write.c (fixup_segment): Don't throw away rva relocs.
+ * config/tc-arm.c (md_apply_fix, tc_gen_reloc): Handle RVA.
+ * config/tc-i386.c (tc_coff_fix2type): Handle RVA.
+ * config/tc-i386.h (TC_COUNT_RELOC): Remember RVAs.
+ (TC_RVA_RELOC): New definition.
+
+
+ * config/tc-arm.c (do_swi): Allow optional leading '#'.
+
+
+ * config/tc-m68k.c (comment_chars): If TE_DELTA is defined,
+ include '#'.
+ * config/tc-m68k.h (NO_PSEUDO_DOT): Define if TE_DELTA is
+ defined.
+
+ * config/te-delta.h: Include obj-format.h.
+ * config/te-sco386.h: Likewise.
+ * config/te-sysv32.h: Likewise.
+
+ * app.c (scrub_file): Remove.
+ (scrub_from_file, scrub_to_file): Remove.
+ (scrub_string, scrub_last_string): Remove.
+ (scrub_from_string, scrub_to_string): Remove.
+ (saved_input, saved_input_len): New static variables.
+ (struct app_saved): Remove scrub_string, scrub_last_string, and
+ scrub_file fields. Add saved_input and saved_input_len fields.
+ (app_push): Adjust saved fields for changes in struct app_save.
+ Initialize state and saved_input.
+ (app_pop): Adjust saved fields for changes in struct app_save.
+ (do_scrub_chars): Rename from do_scrub_next_char and rewrite to
+ process a buffer at a time rather than a character at a time.
+ (main, as_warn): Remove obsolete testing code.
+ * as.h (do_scrub_next_char): Don't declare.
+ (do_scrub_chars): Declare.
+ (scrub_from_file, scrub_from_string): Don't declare.
+ (scrub_to_file, scrub_to_string): Don't declare.
+ * input-file.c (input_file_get): New static function.
+ (input_file_give_next_buffer): Call do_scrub_chars rather than
+ do_scrub_next_char.
+ * read.c (scrub_string, scrub_string_end): New static variables.
+ (scrub_from_string): New static function.
+ (read_a_source_file): Call do_scrub_chars rather than
+ do_scrub_next_char.
+
+
+ * gasp.c (as_abort): New function.
+ * sb.c (sb_build): Revert yesterday's patch.
+
+ * Makefile.in (gasp.new): Depend upon ../libiberty/libiberty.a.
+ Just link against libiberty, not against $(LIBS).
+
+
+ * sb.c (sb_build): Undefine abort before calling it, since gasp
+ does not provide as_abort.
+
+
+ * config/tc-ppc.c (set_target_endian): New static to say whether
+ we've initialized target_big_endian or not.
+ (md_parse_option): Set set_target_endian if we set the variable
+ target_big_endian.
+ (md_begin): Only set target_big_endian if !set_target_endian.
+
+
+
+ * config/obj-vms.h (DST_S_C_SRC_SETREC_W, DST_S_C_SRC_DEFLINES_B):
+ New macros.
+ * config/obj-vms.c (VMS_TBT_Line_PC_Correlation,
+ VMS_TBT_Source_Lines): Make traceback info be robust enough to
+ handle huge source files.
+ (VMS_TBT_Source_File): Reorganize the native- vs cross-assembly
+ support so that actual object file output is clearer.
+ (VMS_TBT_Source_File: Fab, Nam, Date_Xab, File_Header_Xab):
+ Replace static variables with automatic ones.
+
+
+ * config/obj-vms.c (Module_Name): new file scope variable.
+ (VMS_TBT_Module_Begin): use it instead of local variable.
+ (Write_VMS_MHD_Records): ditto; assign its value here.
+ (Write_VMS_EOM_Record): second argument has type valueT.
+ (VMS_Initialized_Data_Size): simplify search loop; return
+ type is offsetT; second argument is unsigned.
+
+
+ * messages.c (as_perror): Use xstrerror instead of strerror.
+
+
+ * as.c (parse_args): Accept --defsym SYM=VALUE.
+ * doc/as.texinfo, doc/as.1: Document --defsym.
+
+ * read.c (read_a_source_file): In MRI mode, don't end the
+ statement inside a quotation.
+ (s_space): Don't warn about a zero repeat count in MRI mode.
+ * config/tc-m68k.c (crack_operand): In MRI mode, don't count
+ parentheses inside quotes.
+ (md_assemble): In MRI mode, anything after the operands field is a
+ comment.
+ (parse_mri_control_operand): Adjust start and stop to remove
+ spaces.
+ (s_mri_for): Likewise.
+
+ * cond.c (s_ifdef): Restore the character after the symbol name,
+ in case it is a newline.
+ (s_if): If ignoring the current tree, don't try to parse the
+ expression.
+
+ * app.c (do_scrub_next_char): If LEX_IS_STRINGQUOTE or
+ LEX_IS_ONECHAR_QUOTE is seen in state 10, preserve one space.
+
+ * doc/as.texinfo: Document irp, irpc, macro, and rept. MRI mode
+ now supports macros, ifc, ifnc, irp, irpc, rept, and endr, without
+ using gasp.
+
+ Add support for macros.
+ * as.c: Include sb.h and macro.h.
+ (max_macro_next): New global variable.
+ (main): Call macro_init.
+ (macro_expr): New static function.
+ * as.h (max_macro_nest): Declare.
+ * read.c (line_label): Rename from mri_line_label. Change all
+ uses.
+ (potable): Add exitm, irp, irpc, macro, mexit, rept.
+ (read_a_source_file): Always clear line_label at the start of a
+ line, not just when flag_mri or LABELS_WITHOUT_COLONS. Fix
+ MRI/LABELS_WITHOUT_COLONS handling. In MRI mode, permit label:
+ equ val. Set line_label when calling colon. In MRI mode, a
+ leading '.' does not imply a pseudo-op. Check for macro expansion
+ before calling md_assemble.
+ (s_irp): New function.
+ (get_line_sb): New static function.
+ (s_macro): New function.
+ (s_mexit): New function.
+ (s_rept): New function.
+ * read.h (line_label): Rename from mri_line_label.
+ (s_irp, s_rept): Declare.
+ (s_macro, s_mexit): Declare.
+ * input-scrub.c: Include sb.h.
+ (sb_index, from_sb): New static variables.
+ (macro_nest): New static variable.
+ (struct input_save): Add sb_index and from_sb fields. Change
+ next_saved_file field to be struct input_save *.
+ (next_saved_file): Changed to be struct input_save *.
+ (input_scrub_push): Change to return type struct input_save *.
+ Save sb_index and from_sb.
+ (input_scrub_pop): Change parameter type to struct input_save *.
+ Restore sb_index and from_sb.
+ (input_scrub_include_sb): New function.
+ (input_scrub_next_buffer): Handle reading from from_sb.
+ (bump_line_counters): Only increment lines if not using from_sb.
+ * config/tc-m68k.c (opt_table): Add nest.
+ (opt_nest): New static function.
+ * gasp.c: Include sb.h and macro.h. Move all sb related functions
+ and definitions to sb.h and sb.c. Move all macro related
+ functions and definitions to macro.h and macro.c.
+ * sb.h, sb.c: New files, extracted from gasp.c.
+ * macro.h, macro.c: Likewise.
+ * Makefile.in (OBJS): Add sb.o and macro.o
+ (GASPOBJS): Define.
+ (gasp.new): Depend upon $(GASPOBJS). Use $(GASPOBJS) to link.
+ (TARG_CPU_DEP_m68k): Depend upon subsegs.h.
+ (gasp.o): Depend upon sb.h and macro.h.
+ (sb.o): New target.
+ (macro.o): New target.
+ (as.o): Depend upon sb.h and macro.h.
+ (input-scrub.o): Depend upon sb.h.
+ (read.o): Depend upon sb.h and macro.h.
+
+ * cond.c (get_mri_string): New static function.
+ (s_ifc): New function.
+ * read.c (potable): Add ifc and ifnc.
+ * read.h (s_ifc): Declare.
+
+ * app.c (do_scrub_begin): In MRI mode, set lex of ' to
+ LEX_IS_STRINGQUOTE.
+
+
+ * config/tc-ppc.c (md_assemble): Allow @HA, @L, and @H suffixes on
+ constant expressions.
+
+
+ * config/tc-arm.c (md_reloc_size): Add const to declaration.
+
+
+ * read.c (s_include): In MRI mode, don't expect quotes around the
+ file name.
+ * listing.c (listing_title): Don't require the title to be quoted.
+
+ * gasp.c (include_print_where_line): Always subtract 1 from
+ linecount before printing it.
+ (process_file): In MRI mode, lines beginning with '*' or '!' are
+ comments.
+ (do_reg): In MRI mode, don't require parentheses.
+ (do_include): In MRI mode, don't requires quotes. If the file can
+ not be found in the include path, try opening it in the current
+ directory. Print the file name correctly in the error message.
+ (chartype_init): In MRI mode, set FIRSTBIT for '.'.
+ (main): Set comment_char to ';' when entering MRI mode.
+
+ * config/tc-m68k.c: Include subsegs.h.
+ (m68k_ip): Pass 64 rather than -1 to add_Fix in 'B' 'B' case.
+ (md_pcrel_from): If fx_pcrel_adjust is 64, use -1 instead.
+
+ * config/tc-sparc.h (tc_fix_adjustable): For OBJ_AOUT case, adjust
+ BFD_RELOC_16 and BFD_RELOC_32 relocs.
+
+
+ * as.h (alloca): Use void* declaration on HP/UX.
+
+
+ * config/tc-sparc.c (tc_gen_reloc): If PIC, only change PCREL_S2
+ to WPLT30 for an undefined or external symbol. Don't consider
+ PC10 or PC22 to be a PC relative reloc when choosing between
+ fx_addnumber and fx_offset.
+
+ * config/tc-z8k.c (md_number_to_chars): Don't do it here, call
+ number_to_chars_bigendian.
+ * config/tc-z8k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+
+ * expr.c (operand): Add support for .startof. and .sizeof. by
+ using magic symbol names which the linker will recognize
+ specially.
+ * doc/as.texinfo: Take out note that .startof. and .sizeof. are
+ not supported.
+
+
+ * config/tc-m68k.c (md_pseudo_table): Add MRI structured control
+ directives: if, if.b, if.w, if.l, else, else.s, else.l, endi,
+ break, break.s, break.l, next, next.s, next.l, for, for.b, for.w,
+ for.l, endf, repeat, until, until.b, until.w, until.l, while,
+ while.b, while.w, while.l, endw.
+ (enum mri_control_type): Define.
+ (struct mri_control_info): Define.
+ (mri_control_stack): New static variable.
+ (mri_control_index): New static variable.
+ (mri_control_label): New static function.
+ (push_mri_control, pop_mri_control): New static functions.
+ (parse_mri_condition): New static function.
+ (parse_mri_control_operand): New static function.
+ (swap_mri_condition, reverse_mri_condition): New static functions.
+ (build_mri_control_operand): New static function.
+ (parse_mri_control_expression): New static function.
+ (s_mri_if, s_mri_else, s_mri_endi): New static functions.
+ (s_mri_break, s_mri_next): New static functions.
+ (s_mri_for, s_mri_endf): New static functions.
+ (s_mri_repeat, s_mri_until): New static functions.
+ (s_mri_while, s_mri_endw): New static functions.
+ * gasp.c (mrikinfo): Remove IF.
+ * expr.c (get_symbol_end): Accept \001 as part of a name.
+
+ * symbols.c (colon): Change parameter to const char *.
+ * symbols.h (colon): Update declaration.
+
+
+ * write.c (write_contents): Always do it the BFD_FAST_SECTION_FILL
+ way. Reformat and reindent that code to GNU standards.
+ (BFD_FAST_SECTION_FILL): Don't define.
+
+
+ * config/tc-hppa.c (md_apply_fix): Don't try to apply BEGIN_BRTAB
+ or END_BRTAB fixups.
+
+
+ * gasp.c (do_align, get_any_string): Mark as static.
+ (do_assigna, do_assignc, new_file): Likewise.
+
+ * config/tc-m68k.c (s_reg): Rename local op to rop to avoid
+ confusion with macro op.
+
+ * gasp.c (strip_comments): Comment out; it's not used.
+ (do_end): Add parameter. In MRI mode, print it out.
+ (do_irp): New static function.
+ (sub_actual): Change parameter m to formal_hash, changing type
+ from macro_entryh * to hash_table *.
+ (macro_expand_body): New static function, broken out of
+ macro_expand.
+ (macro_expand): Call macro_expand_body.
+ (K_*): Fully parenthesize.
+ (K_IRP, K_IRPC): Define.
+ (mrikinfo): Add IRP and IRPC.
+ (process_pseudo_op): In MRI mode, print out END pseudo-op. Pass
+ line to do_end. Handle K_IRP and K_IRPC.
+
+ * config/tc-m68k.c (s_opt): Reset *input_line_pointer even if we
+ don't do anything with the option.
+
+
+ * frags.c (frag_align): Handle absolute_section.
+ * write.c (record_alignment): Likewise.
+
+ * config/tc-mips.c (macro_build): Skip insns with an inappropriate
+ ISA level.
+
+
+ * config/tc-hppa.c (md_pseudo_table): Add entries for
+ "begin_brtab" and "end_brtab" pseudo-ops.
+ (pa_brtab): New function.
+ (tc_gen_reloc, SOM version): Handle R_BEGIN_BRTAB and R_END_BRTAB.
+ (hppa_force_relocation): Force relocations for BRTAB fixups
+ when OBJ_SOM is defined.
+
+
+ * Makefile.in (TE_OBJS): Add empty definition.
+
+
+ * gasp.c (change_base): Don't treat ' specially in MRI mode.
+ (process_file): Don't warn about missing END in MRI mode.
+ (do_if): New static function.
+ (get_mri_string, do_ifc): New static functions.
+ (buffer_and_nest): Treat MRI mode like alternate syntax mode.
+ (do_aendr): Change error message in MRI mode.
+ (do_arepeat): Use REPT/ENDR in MRI mode.
+ (do_formals): In MRI mode, add special NARG formal.
+ (macro_expand): Various changes for MRI mode: permit a qualifier
+ on the macro name; set special NARG formal; permit unnamed
+ positional arguments; use && to concatenate named parameters;
+ permit \d to specify an unnamed parameter; permit named parameters
+ to not start with \; use == to see if a parameter exists.
+ (getstring): In MRI mode, allow <> to quote a string.
+ (K_IFEQ, K_IFNE, K_IFLT, K_IFLE, K_IFGE, K_IFGT): Define.
+ (K_IFC, K_IFNC): Define.
+ (struct keyword): Name structure used in kinfo array.
+ (mrikinfo): New static array.
+ (process_pseudo_op): Don't require leading '.' in MRI mode.
+ Handle new MRI pseudo-op definitions.
+ (add_keyword): New static function, broken out of process_init.
+ (process_init): Use add_keyword. In MRI mode, add mrikinfo table.
+ (long_options): Add "mri".
+ (show_usage): Mention -M/--mri.
+ (main): Call process_init after processing arguments. Handle -M.
+ * doc/gasp.texi: Document -M/--mri.
+
+ * gasp.c: Include ansidecl.h. Make all local functions static.
+ Add prototypes for all static functions.
+ (mri): New global variable.
+ (sb_add_char): Change parameter c from char to int.
+ (sb_add_string): Make parameter s into a const pointer.
+ (sb_add_buffer): Likewise.
+ (checkconst): Change parameter op from char to int.
+ (exp_get_abs): Make parameter emsg into a const pointer.
+ (do_res): Change parameter type from char to int.
+ (buffer_and_nest): Make parameters from and to into const
+ pointers.
+ (do_sdata): Change parameter type from char to int.
+ (new_file): Make parameter name into a const pointer.
+ (do_define): Make parameter string into a const pointer.
+
+ * config/tc-h8300.c (md_number_to_chars): Don't do it here, call
+ number_to_chars_bigendian.
+ * config/tc-h8300.h (TARGET_BYTES_BIG_ENDIAN): Define.
+
+
+ * write.h (struct fix): Add new field fx_no_overflow.
+
+ * write.c (fixup_segment): If fx_no_overflow is non-zero, don't
+ complain if the addend is too large.
+
+ * config/tc-ppc.c (md_assemble): Set fx_no_overflow if the half
+ word relocations BFD_RELOC_{LO16,HI16,HI16_S}.
+
+
+ * read.c (s_mri_sect) [BFD_ASSEMBLER]: Fix typos in choosing and
+ setting section flags.
+
+
+ * doc/as.texinfo: Add documentation for MRI compatibility mode.
+ * doc/as.1: Likewise.
+
+ * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte and
+ iword rather than expr8 and expr16. When recognizing 'M', use
+ issbyte rather than expr8. When recognizing 'Q' and 't', just
+ check for O_constant rather than using expr8.
+ * config/m68k-parse.h (expr8, expr16): Don't define.
+ * Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not
+ m68k-parse.y.
+
+ * read.c (potable): Add spc, ttl, xcom, xref.
+ (s_mri_sect): New function.
+ * read.h (s_mri_sect): Declare.
+ * config/obj-coff.c (obj_coff_section) (both versions): In MRI
+ mode, call s_mri_sect.
+ (obj_pseudo_table): Add sect.s and section.s. Move sect outside
+ of ifndef BFD_ASSEMBLER.
+ * config/obj-elf.c (elf_pseudo_table): Add section.s, sect,
+ sect.s.
+ (obj_elf_section): In MRI mode, call s_mri_sect.
+ * config/tc-m68k.c (md_pseudo_table): Add restore, save.
+ (struct save_opts): Define.
+ (save_stack): New static variable.
+ (s_save, s_restore): New static functions.
+
+ * read.c (s_set): Remove unused local ptr.
+ (hex_float): Check target_big_endian.
+ (equals): Remove unused local p.
+
+ * config/tc-a29k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-h8500.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-hppa.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-i860.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-m68k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-m88k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-tahoe.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-sh.c (little): Set target_big_endian.
+ (md_begin): Likewise.
+ (md_parse_option): Likewise.
+ (build_relax): Check target_big_endian rather than shl.
+ (build_Mytes, md_atof): Likewise.
+ (md_convert_frag, md_apply_fix): Likewise.
+ (md_number_to_chars): Likewise.
+
+
+ * config/tc-m68k.c (m68k_abspcadd): New static variable.
+ (m68k_quick): New static variable.
+ (m68k_rel32): New static variable.
+ (md_pseudo_table): Add opt and reg.
+ (m68k_ip): Permit absolute symbols in 'l'/'L' recognition. Check
+ m68k_quick in 'M' and 'Q' recognition. Check m68k_abspcadd in
+ DISP handling. Check m68k_rel32 in BASE/POST/PRE handling.
+ (md_begin): In MRI mode, initialize m68k_abspcadd and m68k_rel32.
+ In MRI mode, change unsized branch aliases to be variable sized.
+ (struct opt_action): Define.
+ (opt_table): Define.
+ (s_opt): New static function.
+ (skip_to_comma): New static function.
+ (opt_chip): New static function.
+ (opt_list): New static function.
+ (opt_list_symbols): New static function.
+ (s_reg): New static function.
+ * as.h (flag_keep_locals): Change from unsigned char to int.
+ (flag_no_warnings): Likewise.
+
+ * read.c (mri_line_label): Make non-static.
+ (potable): Add nopage, page, plen.
+ (s_org): Error if in MRI mode.
+ * read.h (mri_line_label): Declare.
+ * listing.c (listing_nopage): New function.
+ * listing.h (listing_nopage): Declare.
+
+ * symbols.c (symbol_begin): Set sy_frag of abs_symbol to
+ &zero_address_frag.
+
+ * write.c (adjust_reloc_syms): Check that symbol is not NULL
+ before checking sy_mri_common.
+ (fixup_segment): Likewise.
+ * config/obj-coff.c (fixup_segment): Likewise.
+
+ * read.c (abs_section_offset): New global variable.
+ (potable): Add offset, struct.
+ (do_org): New static function; handle changing the origin in the
+ absolute section.
+ (s_org): Use do_org.
+ (s_set): Likewise.
+ (equals): Likewise.
+ (s_space): In absolute_section, just increase abs_section_offset.
+ (s_struct): New function.
+ (emit_expr): Handle absolute_section specially.
+ * read.h (abs_section_offset): Declare.
+ (s_struct): Declare.
+ * frags.c (frag_more): Warn if in absolute_section.
+ (frag_now_fix): In absolute_section, return abs_section_offset.
+ * subsegs.c (subseg_change): If switching to absolute_section,
+ just set now_seg and now_subseg.
+ (subseg_set_rest): Special handling when switching to or from
+ absolute_section.
+
+ * config/tc-m68k.c (m68k_float_copnum): New static variable.
+ (md_pseudo_table): Add fopt and mask2.
+ (m68k_ip): Use m68k_float_copnum, not COPNUM, when setting
+ coprocessor register to use. In case 'I' when checking operands,
+ correct coprocessor register numbers. In case 'I' when setting
+ operands, don't add 1.
+ (s_fopt): New static function.
+ * config/m68k-parse.h (COPNUM): Don't define.
+
+ * read.c (potable): Add ifeq, ifge, ifgt, ifle, iflt, ifne.
+ Change if to pass O_ne to s_if.
+ (read_a_source_file): Don't define an label without a colon if
+ ignore_input returns true.
+ * cond.c (s_if): Treat argument as an operatorT describing how to
+ compare the argument against zero.
+ (ignore_input): Don't require an initial dot in MRI mode, or if
+ NO_PSEUDO_DOT is defined.
+
+ * read.c (potable): Add dcb, dcb.b, dcb.d, dcb.l, dcb.s, dcb.w,
+ dcb.x, ds.d, ds.p, ds.s, ds.x, elsec, endc, fail, format, llen,
+ noformat.
+ (read_a_source_file): If pseudo-op handler is s_end, quit
+ immediately.
+ (s_end): New function.
+ (s_fail): New function.
+ (s_float_space): New function.
+ (hex_float): New static function.
+ (float_cons): Use hex_float.
+ * read.h (s_fail): Declare.
+ (s_float_space): Declare.
+ * cond.c (s_end): Remove.
+ * listing.c (listing_psize): Treat argument as indicating whether
+ a height is expected.
+
+ * read.c (mri_pending_align): New static variable.
+ (read_a_source_file): Handle mri_pending_align.
+ (cons): Set mri_pending_align if appropriate.
+
+ * configure.in: Move random special target handling before
+ possible break.
+ * configure: Rebuild.
+
+
+ * configure.in: Consistently use ${target_cpu_type} rather than
+ ${cpu_type} after the loop.
+ * configure: Rebuild.
+ * Makefile.in (targ-cpu.o): Use @target_cpu_type@ rather than
+ @cpu_type@.
+
+
+ * expr.h (operatorT): Remove comma after last enumerator value.
+
+ * config/obj-vms.c: Some whitespace cleanup from Pat Rankin.
+
+ * as.h (alloca): If __STDC__, declare void* instead of char*.
+
+
+ * config/obj-vms.c (Flush_VMS_Object_Record_Buffer,
+ Close_VMS_Object_File): Reorganize the `#if !VMS' cross-assmebler
+ support code.
+ (Close_VMS_Object_File): Call Set_VMS_Object_File_Record to flush
+ output buffer--just in case--before closing the file.
+
+ * config/tc-m68k.c (archs): Add 68ec000, 68hc000, 68hc001,
+ 68ec020, 68ec030, 68ec040, and 68330.
+ (md_pseudo_table): Add chip and comline.
+ (m68k_init_after_args): Use strcasecmp when comparing default_cpu
+ against architectures.
+ (mri_chip, s_chip): New static functions.
+
+ * struc-symbol.h (struct symbol): Add sy_mri_common bit.
+ * read.h (mri_comon_symbol): Declare.
+ (s_mri_common): Declare.
+ * read.c (mri_line_label): New static variable.
+ (mri_common_symbol): New global variable.
+ (potable): Add "common" and "common.s".
+ (read_a_source_file): In MRI mode, set mri_line_label for a label
+ at the start of a line.
+ (s_mri_common): New function.
+ (s_space): Handle mri_common_symbol.
+ * symbols.c (colon): Change return value from void to symbolS *,
+ and return new symbol. If mri_common_symbol is set, attach the
+ new symbol to it.
+ (resolve_symbol_value): Handle an sy_mri_common symbol.
+ * symbols.h (colon): Change return value in declaration.
+ * subsegs.c (subseg_set_rest): Clear mri_common_symbol.
+ (subseg_set (both versions)): Likewise.
+ * frags.c (frag_more): Warn if mri_common_symbol is not NULL.
+ * write.c (adjust_reloc_syms): Skip sy_mri_common symbols.
+ (write_object_file): Discard sy_mri_common symbols.
+ (fixup_segment): Change relocations against sy_mri_common symbols
+ to be against the common symbol itself.
+ * config/obj-coff.c (yank_symbols): Discard sy_mri_common symbols.
+ (fixup_segment): Change relocations against sy_mri_common symbols
+ to be against the common symbol itself.
+ * config/obj-aout.c (obj_crawl_symbol_chain): Discard
+ sy_mri_common symbols.
+
+ * doc/c-m68k.texi: Add documentation for CPU specific options, and
+ for Motorola syntax.
+
* config/m68k-parse.y (motorola_operand): For (%pc), set mode to
DISP, not BASE.
* gasp.c (main): Parse -I option.
(do_include): Look through include list.
* gasp.c (change_base): Don't modify numbers in strings.
- (pr7583)
* symbols.c (DEBUG): Enabled.
(symbol_new): Make sure bfd_make_empty_symbol works.
- (verify_symbol_chain_2): New funcion; takes one symbol as
+ (verify_symbol_chain_2): New function; takes one symbol as
argument, anywhere in the chain.
(dollar_label*): Use default initializers.
(_doprnt): Deleted.
(VMS_Store_Struct, VMS_Def_Struct, VMS_Set_Struct,
VMS_TBT_Block_End, get_VMS_time_on_unix, generate_suffix,
- VMS_Psect_Spec): Fixed to compiler under traditional C.
+ VMS_Psect_Spec): Fixed to compile under traditional C.
* config/obj-vms.h: Use PARAMS macro.
(vms_resolve_symbol_redef): Declare.
(RESOLVE_SYMBOL_REDEFINITION): New macro.