(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.
well as S_IS_EXTERNAL.
(tc_fix_adjustable): Likewise.
* config/tc-sparc.c (md_apply_fix): In OBJ_ELF case, check for
S_IS_WEAK as well as S_IS_EXTERNAL when deciding whether to return
early.
(tc_gen_reloc): Check S_IS_WEAK as wel as S_IS_EXTERNAL when
deciding whether to convert BFD_RELOC_32_PCREL_S2 if PIC.
32 bit arch.
(default_compatible): Delete.
(sparc_ffs): New function.
(md_begin): Only call SPARC_OPCODE_CONFLICT_P once.
(sparc_ip): Rewrite architecture match and bump logic.
(SF_GET_ADJ_LNNOPTR): Define (non BFD_ASSEMBLER).
(SF_SET_ADJ_LNNOPTR): Define (non BFD_ASSEMBLER).
* config/obj-coff.c (obj_coff_endef): Set ADJ_LNNOPTR when LNNOPTR
is set.
(w_symbols): If ADJ_LNNOPTR is set, add the section lnnoptr field
to the symbol lnnoptr field, to get the correct file offset.
PR 7428.
* configure.in: Remove duplicate setting of cpu_type. Check
whether opcodes library is required for on all targets, not just
primary one.
* configure: Rebuild.
* read.c (s_mri_sect): Don't return '\0' in type. Set all
appropriate flags in BFD section.
* configure.in (m68k-*-psos*): New target.
* configure: Rebuild.
* config/te-psos.h: New file.
* config/tc-m68k.c (comment_chars): Don't include '#' if TE_PSOS
is defined.
* gas/mips/lb-xgot.d, gas/mips/ld-xgot.d: New tests.
* gas/mips/lif-xgot.d, gas/mips/ulh-xgot.d: New tests.
* gas/mips/mips.exp: Run new tests if svr4pic.
(s_extern): Don't declare.
(reg_needs_delay): New static function.
(macro_build): Permit GOT/CALL_HI/LO relocs.
(macro_build_lui): If place is not NULL, use the number in the
expression.
(load_address): Handle mips_big_got case.
(macro): Handle mips_big_got for M_LA_AB, M_JAL_A, and load and
store macros.
(OPTION_XGOT): Define.
(md_longopts): Add "xgot" if OBJ_ELF.
(md_parse_option): Handle -xgot.
(md_show_usage): Mention -xgot.
(md_apply_fix): Permit GOT/CALL_HI/LO relocs.
(tc_gen_reloc): Handle GOT/CALL_HI/LO relocs.
(s_mri): New function.
* read.h (s_mri): Declare.
* app.c (scrub_m68k_mri): New static variable.
(mri_pseudo): New static variable.
(do_scrub_begin): Add m68k_mri parameter. Use it rather than
flag_m68k_mri. Initialize scrub_m68k_mri.
(mri_state, mri_last_ch): New static variables.
(struct app_save): Add scrub_m68k_mri, mri_state, and mri_last_ch
fields.
(app_push): Save new fields.
(app_pop): Restore new fields.
(do_scrub_chars): Check scrub_m68k_mri rather than flag_mri_mri.
If TC_M68K, use a trivial state machine to look for occurrences of
the .mri pseudo-op, and change the mode appropriately.
* as.h (do_scrub_begin): Update prototype.
* input-scrub.c (input_scrub_begin): Pass flag_m68k_mri to
do_scrub_begin.
* config/tc-m68k.c (reg_prefix_optional_seen): New static
variable.
(m68k_mri_mode_change): New function.
(md_parse_option): Set reg_prefix_optional_seen.
* config/tc-m68k.h (m68k_mri_mode_change): Declare.
(MRI_MODE_CHANGE): Define.
* doc/as.texinfo: Document .mri pseudo-op.
Support for OBJ_ELF on m68k, mostly inside #ifdef OBJ_ELF:
* config/m68k-parse.h (enum pic_relocation): Define.
(struct m68k_exp): Add pic_reloc field.
* config/tc-m68k.h (TC_RELOC_RTSYM_LOC_FIXUP): Define.
(tc_fix_adjustable): Define to call tc_m68k_fix_adjustable.
(NO_RELOC): Define to BFD_RELOC_NONE if BFD_ASSEMBLER, to zero
otherwise.
* config/tc-m68k.c: Delete definition of NO_RELOC.
(struct m68k_it): Add pic_reloc field.
(add_fix): Copy over pic_reloc field.
(md_pseudo_table): Interpret .align parameter as byte count.
(mote_pseudo_table): Likewise.
(tc_m68k_fix_adjustable): New function.
(get_reloc_code): New function.
(md_assemble): Use it as last argument to fix_new_exp.
(md_apply_fix_2): For a relocation against a symbol don't put the
addend into the data.
(tc_gen_reloc): Different addend computation for OBJ_ELF.
(m68k_ip): Don't relax an operand that requires pic relocation.
(md_begin): Align .text, .data and .bss on 4 byte boundary by
default.
* write.c (fixup_segment): Don't add symbol value to addend if
TC_M68K and OBJ_ELF.
* config/m68k-parse.y (yylex): Handle @PLTPC, etc.
(motorola_operand): Add rule for `(zapc, EXPR)'.
(do_align): Take new len parameter. Change all callers. Pass it
to md_do_align.
(s_align_bytes): Arg now indicates the length of the fill pattern.
(s_align_ptwo): Likewise.
* config/obj-coff.c (write_object_file): Pass length to
md_do_align.
* config/tc-i386.h (md_do_align): Take new len parameter.
* config/tc-m88k.h (md_do_align): Likewise.
* config/tc-m88k.c (m88k_do_align): Likewise.
* config/tc-sh.h (md_do_align): Likewise.
* config/tc-sh.c (sh_do_align): Likewise.
* doc/as.texinfo: Document new pseudo-ops.
* config/obj-coff.c (fixup_mdeps): Divide offset by fr_var, as is
done in cvt_frag_to_fill.
PR 8974.
* app.c (do_scrub_chars): If flag_m68k_mri, don't put a dot in
front of generated pseudo-ops.
* read.c (potable): Ignore "name".
(s_app_file): Permit a single quote after the string, since one
may appear in m68k MRI mode.
(arch_tab): Add HX.
(targ_has_sfr): Handle ARCH_HX.
(targ_has_iclass): Handle ARCH_HX.
(tc_coff_fix2rtype): Add return 0 to avoid warning.
(tc_headers_hook): If the architecture was specified explicitly,
use it when setting the flags. Set the extern variable coff_flags
rather than headers->filehdr.f_flags, since the latter is set
unconditionally in obj-coff.c.
(i960_handle_align): Remove unused variable fixp.