(sparc_cons_align): Declare.
(HANDLE_ALIGN): Define.
(sparc_handle_align): Declare.
* config/tc-sparc.c (sparc_cons_align): New function.
(sparc_handle_align): New function.
* read.c (cons_worker): Call md_cons_align if it is defined.
* config/tc-mips.c: Added cop_interlocks, to avoid NOP insertion
between co-processor comparisons and branches for the VR4300.
The preliminary documentation was slightly unclear on this issue, but
NEC have confirmed that there is an interlock within the CPU.
* configure.in: Add alpha-*-linuxecoff* target. Use elf for
alpha-*-linux* target. Force bfd_gas for alpha-*. Require
opcodes library for alpha.
* configure: Rebuild with autoconf 2.10.
* config/tc-alpha.c: Substantial rewrite to add ELF support and
use new opcode table.
* config/tc-alpha.h (md_undefined_symbol): Don't define.
(LOCAL_LABEL): Define differently if OBJ_ELF.
(FAKE_LABEL_NAME): Define if OBJ_ELF.
* config/alpha-opcode.h: Remove.
* config/obj-elf.h: If TC_ALPHA, define ECOFF_DEBUGGING.
* Makefile.in (TARG_CPU_DEP_alpha): Depend upon
include/opcode/alpha.h rather than config/alpha-opcode.h.
(expr_symbol_lines): New static variable.
(make_expr_symbol): Add entry to expr_symbol_lines.
(expr_symbol_where): New function.
* expr.h: Use extern on function declarations.
(expr_symbol_where): Declare.
* symbols.c (resolve_symbol_value): Try to use expr_symbol_where
rather than printing the meaningless name of an expression
symbol.
* config/tc-i386.h (md_number_to_chars): New macro.
* config/tc-alpha.c (build_operate_n, build_mem): Moved earlier in the file.
(load_symbol_address, load_expression): Use build_mem.
(build_operate): New function.
(emit_addq_r): Use it.
Wed Mar 13 22:14:14 1996 Pat Rankin <rankin@eql.caltech.edu>
* symbols.c (colon): #if VMS, use S_SET_OTHER to store `const_flag'.
Tue Mar 5 14:31:45 1996 Pat Rankin <rankin@eql.caltech.edu>
* config/tc-vax.h (NOP_OPCODE): Define.
Sun Feb 4 21:01:03 1996 Pat Rankin <rankin@eql.caltech.edu>
* config/obj-vms.h (S_IS_COMMON): Define.
(S_IS_LOCAL): Check for \002 as well as \001.
(LONGWORD_ALIGNMENT): New macro.
(SUB_SEGMENT_ALIGN): Use it.
Fri Jan 26 17:44:09 1996 Pat Rankin <rankin@eql.caltech.edu>
* config/vms-conf.h: Reconcile with conf.in.
(defsyms): New static variable.
(parse_args): Just put --defsym arguments on defsyms list, rather
than defining them.
(main): Define defsyms after output file is created.
(build_bytes): Likewise.
(skip_colonthing): Handle :32 suffix.
(get_specific): Promote L_24 to L_32 if it makes a match.
Don't always promote L_8 to L_16.
(do_a_fix_imm): Clean up L_32 and L_24 handling.
H8/S related stuff that doesn't need to be sanitized.
start-sanitize-h8s
* config/tc-h8300.c (Smode): New variable.
(h8300hmode): Turn off Hmode.
(h8300smode): New function. Turn on Smode and Hmode.
(md_pseudo_table): New ".h8300s" pseudo-op.
(parse_reg): Handle "exr" register.
(get_operand): Handle bizarre syntax for "stm.l" and "ldm.l".
Handle "mach" and "machl" operands for ldmac.
(get_specific): Handle "stm.l" and "ldm.l".
(build_bytes): Handle "stm.l" and "ldm.l"; handle MACREG operands.
* config/tc-h8300.h (COFF_MAGIC): Handle H8/S magic number.
(Smode): Declare.
end-sanitize-h8s
Sanitized H8/S stuff until we know its status.
* gas/h8300/h8300.exp (H8/300H misc tests): Fix test names.
Just something I noticed.
* gas/h8300/{addsubs.s,bitops1s.s,bitops2s.s}: New tests for the
H8/S.
* gas/h8300/{bitops3.s,bitops4.s,cbranchs.s,logicals.s}: Likewise.
* gas/h8300/{branchess.s,compares.s,macs.s,decimals.s}: Likewise.
* gas/h8300/{incdecs.s,divmuls.s,miscs.s,multiples.s}: Likewise.
* gas/h8300/{movbs.s,movws.s,movls.s,pushpops.s}: Likewise.
* gas/h8300/{rotshifts.s,extends.s}: Likewise.
* gas/h8300/h8300.exp: Run them.
Sanitized away until status is clarified.
pseudo ops.
(tc_gen_reloc, SOM version): Handle R_BEGIN_TRY and R_END_TRY.
(md_apply_fix): Likewise.
(pa_try): New function.
(hppa_force_relocation): Force relocs for BEGIN_TRY and END_TRY.
More PA exception handling crud.
d0{24:1},d0' works without an immediate prefix on the bit numbers.
(md_begin): Add digits to alt_notend_table.
(md_parse_option): Make s a const pointer.
BFD_ASSEMBLER.
(filename_list_head, filename_list_tail): Likewise.
(c_section_symbol): Remove unused BFD_ASSEMBLER version.
(obj_coff_endef, BFD_ASSEMBLER version): Don't set the debugging
flag for C_MOS, C_MOE, C_MOU, or C_EOS symbols, since they should
have a section of N_ABS rather than N_DEBUG. If we do a merge,
remove the new symbol from the list.
(obj_coff_endef, both versions): Call tag_insert even if there is
an old symbol with the same name, if the old symbol does not
happen to be a tag.
(coff_frob_symbol): Check SF_GET_TAG, C_EOF, and C_FILE outside of
the SF_GET_DEBUG condition. Don't call SA_SET_SYM_ENDNDX with a
symbol that will be moved to the end of the symbol list.
(coff_adjust_section_syms): Always call section_symbol for .text,
.data, and .bss.
(coff_frob_section): Likewise. Also, remove unused variable
strname.
whether the next character is '*' before checking whether we are
at the start of a line. Permit LINE_COMMENT_START to start a
comment in state 1 (seen some whitespace) as well, to match the
documentation.
(mips_target_format): If mips_64, return elf64 targets rather than
elf32 ones.
(md_longopts): Add "32" and "64".
(md_parse_option): Handle -32 and -64.
(md_show_usage): Mention -32 and -64.
(cons_fix_new_mips): If mips_64, don't convert an 8 byte reloc to
a 4 byte one.
(TC_SEGMENT_INFO_TYPE): Define.
(sh_frob_label): Declare.
(tc_frob_label): Define.
(sh_flush_pending_output): Declare.
(md_flush_pending_output): Define.
* config/tc-sh.c (md_assemble): If relaxing, emit a R_SH_CODE
reloc before the instruction if necessary.
(sh_frob_label): New function.
(sh_flush_pending_output): New function.
(sh_coff_frob_file): Ignore ALIGN, CODE, DATA, and LABEL relocs
when looking for the reloc for the target of .uses.
(md_convert_frag): Fix printf format (%0xlx to 0x%lx).
(sh_force_relocation): Force CODE, DATA, and LABEL relocs to be
emitted.
(md_apply_fix): Ignore CODE, DATA, and LABEL relocs.
(sh_coff_reloc_mangle): Force CODE, DATA, and LABEL relocs to use
the absolute symbol.
fx_done set.
(do_relocs_for): Likewise.
(fixup_segment): Don't just quit if linkrelax is set. Try to
apply non pc-relative sym1-sym2 fixups, even if linkrelax is
nonzero.
So function-relative stabs will work on the H8/300. HMSE.
non-zero before assuming this is a long file name.
(w_strings): Likewise.
(c_dot_file_symbol): Set FNAME_OFFSET to 1 for a long file name.
* config/obj-coff.c (w_strings): Move declaration of i inside
#ifdef block which uses it.
"relaxmode". Output relocs which identify various relaxing
possibilities for mov.[bwl] instructions.
(build_bytes): Pass in a relaxing mode to do_a_fix_imm.
So the linker can identify more potential relaxations. HMSE.
(MD_APPLY_FIX3): Define.
* config/tc-arm.c (my_get_expression): Only watch for bad segments
if OBJ_AOUT.
(md_apply_fix3): Renamed from md_apply_fix.
If pcrel reloc and symbol is in different section, undo effects
of md_pcrel_from.
BFD_ASSEMBLER, add name field.
* config/obj-coff.c (coff_header_append): Handle long section
names.
(crawl_symbols): Just use the name field for the symbol name,
without worrying about null byte termination.
(w_strings): Handle long section names.
(write_object_file): Likewise. Also, use the name field, rather
than scnhdr.s_name.
(obj_coff_add_segment): Permit long section names.
(obj_coff_init_stab_section): Use the name field, rather than
scnhdr.s_name.
(adjust_stab_section): Likewise.
* config/te-pe.h (COFF_LONG_SECTION_NAMES): Define.
define it to comment_chars. Use tc_comment_chars rather than
comment_chars.
(do_scrub_chars): Use tc_comment_chars rather than comment_chars.
* config/tc-m68k.h (tc_comment_chars): Define.
(m68k_comment_chars): Declare.
* config/tc-m68k.c (m68k_comment_chars): Rename from
comment_chars. Change into a pointer rather than an array.
(md_longopts): Add "bitwise-or".
(md_parse_option): Handle OPTION_BITWISE_OR.
(md_show_usage): Mention --bitwise-or.
* doc/c-m68k.texi: Document --bitwise-or.
PR 9518.
(coff_last_bf): New static variable.
(coff_frob_symbol): Set endndx of a .bf symbol.
Non BFD_ASSEMBLER:
(obj_coff_endef): Call SF_SET_PROCESS on a .bf symbol.
(last_bfP): New static variable.
(yank_symbols): Set endndx of a .bf symbol.
PR 9467.
(md_assemble): Warn about putting floating point branches in a
delay slot. If architecture is less than v9, insert NOP
instructions between floating point instructions and floating
point branches. (The SunOS assembler does both these operations.)
Save the last instruction opcode.
(sparc_ip): Add pinsn parameter. Change caller.
PR 355.
* gas/h8300/{bitops3h.s,bitops4h.s,branchesh.s}: New h8300h tests.
* gas/h8300/{cbranchh.s,compareh.s,decimalh.s}: New h8300h tests.
* gas/h8300/{divmulh.s,incdech.s,logicalh.s}: New h8300h tests.
* gas/h8300/{misch.s,movbh.s,movwh.s}: New h8300h tests.
* gas/h8300/{pushpoph.s,rotshifth.s}: New h8300h tests.
* gas/h8300/h8300.exp: Run them.
More tests.
* config/atof-ieee.c: Fix handling of denormalized extended
precision numbers and overflow/underflow detection.
(MAX_PRECISION, X_PRECISION, P_PRECISION): Changed from 6 to 5, to
not include the 16 bit gap in the m68k extended precision format.
* config/tc-mips.c: Allow non-zero offsets from .sdata symbols to
be accessed using the $gp register.
* config/tc-mips.h (MAX_GPREL_OFFSET): Added.
This ensures that the $gp addressing will continued to be used if the
"combine_statics" optimisation is enabled within GCC.
* gas/h8300/{bitops3.s,bitops4.s,branches.s}: New h8300 tests.
* gas/h8300/{cbranch.s,compare.s,decimal.s}: New h8300 tests.
* gas/h8300/{divmul.s,incdec.s,logical.s}: New h8300 tests.
* gas/h8300/{misc.s,movb.s,movw.s}: New h8300 tests.
* gas/h8300/{pushpop.s,rotshift.s}: New h8300 tests.
* gas/h8300/h8300.exp: Run them.
To keep me from screwing up the assembler...
input_line_pointer[-1], not *input_line_pointer. Don't bother to
call LISTING_NEWLINE.
(s_macro): Don't call demand_empty_rest_of_line.
* app.c (do_scrub_chars): When handling C style comments, unget
ch2 rather than ch.
(s_linkonce): Declare.
* read.c (potable): Add "linkonce".
(s_linkonce): New function.
* subsegs.h (segment_info_type): Add linkonce field to
MANY_SEGMENTS && ! BFD_ASSEMBLER section.
* config/obj-coff.h (obj_handle_link_once): Define if TE_PE.
(obj_coff_pe_handle_link_once): Declare if TE_PE.
* config/obj-coff.c: If TE_PE and not BFD_ASSEMBLER, #include
"coff/pe.h".
(obj_coff_pe_handle_link_once): New function, defined if TE_PE.
(c_section_symbol): If TE_PE, set the x_comdat field in the aux
entry based on the linkonce field in segment_info.
* doc/as.texinfo: Document .linkonce.
doing the rest of the processing, which may involve freeing the
string. Pass string, not string + stroff, to OBJ_PROCESS_STAB in
SEPARATE_STAB_SECTIONS case.
(tc_gen_reloc): Move label done inside the ifdef in which it is
used.
(md_apply_fix): Pass pointers to correct types to libhppa.h
functions. Always return a value.
(mips_frob_file): Declare.
* config/tc-mips.c (struct mips_hi_fixup): Define.
(mips_hi_fixup_list): New static variable.
(imm_unmatched_hi): New static variable.
(md_assemble): Clear imm_reloc, imm_unmatched_hi, and
offset_reloc. Pass imm_unmatched_hi to append_insn.
(append_insn): Add unmatched_hi parameter. If it is set, add the
new fixup to mips_hi_fixup_list. Change all callers.
(mips_ip): Set imm_unmatched_hi when appropriate.
(mips_frob_file): New function.
* stabs.c: Include libiberty.h
(get_stab_string_offset): Use xstrdup rather than strdup.
(s_stab_generic): Likewise.
* as.c (parse_args): Likewise.
* read.c (s_mri_sect): Likewise.
pass through enclosed characters literally through to the output.
(process_assigns): Likewise. Also, be more careful to avoid
looking past the end of the buffer.
PR 9268.