Commit graph

1455 commits

Author SHA1 Message Date
Nick Clifton
ceb410091e Do not producesection relative offsets for relocs that will not be based on the
section symbol.
2003-05-22 08:57:32 +00:00
Eric Christopher
143d77c5e9 2003-05-07 Eric Christopher <echristo@redhat.com>
Alexandre Oliva   <aoliva@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Adjust
	pic tests, change to warning.
	(_bfd_mips_elf_final_link): Remove EF_MIPS_CPIC flag setting.

2003-05-07  Eric Christopher  <echristo@redhat.com>

        * config/tc-mips.c (mips_abicalls): New variable.
        (md_parse_option): Use.
        (s_option): Ditto.
        (s_abicalls): Ditto.
        (mips_elf_final_processing): Set EF_MIPS_PIC and
        EF_MIPS_CPIC dependent on above.
2003-05-21 21:53:33 +00:00
Dave Anglin
85c77c383f * config/tc-hppa.c (hppa_symbol_chars): Remove ,' and !'.
* testsuite/gas/hppa/parse/parse.exp: Add "space.s".
	* testsuite/gas/hppa/parse/space.s: New file to test spaces.
2003-05-21 19:40:54 +00:00
Nick Clifton
87ccc1b08d Move .file and .loc pseudo ops into obj-elf.c 2003-05-21 12:07:56 +00:00
Nick Clifton
f53e95c758 Add support for .file and .loc 2003-05-20 11:58:20 +00:00
Alan Modra
54cfded08e * dw2gencfi.c, dw2gencfi.h: New files.
* config/tc-i386.c (tc_x86_cfi_init): New function.
	* config/tc-i386.h (TARGET_USE_CFIPOP, tc_cfi_init): New defines.
	* as.c (parse_args): Set verbose flag on --verbose.
	(main): Call tc_cfi_init()/cfi_finish().
	* as.h (verbose): New external variable.
	* read.c (pobegin): Insert CFI pops to the list.
	* symbols.c (local_symbol_make): Make symbol external.
	* symbols.h (local_symbol_make): New prototype.
	* Makefile.am: Add dw2gencfi.[ch] files.  Run "make dep-am".
	* Makefile.in: Regenerate.
	* doc/as.texinfo: Added node "CFI directives" with description of
	all implemented .cfi_* directives.
	* doc/Makefile.in: Regenerate.
	* po/POTFILES.in: Regenerate.
2003-05-20 07:58:07 +00:00
Svein Seldal
78d8735ac7 Reverted faulty code 2003-05-18 22:52:35 +00:00
Svein Seldal
a1f3c24c25 * config/tc-tic4x.c (md_assemble): Added support for one-line parallel insns.
(tic4x_start_line): Fixed scrub bug and added error for three-element
	parallel insns.
2003-05-18 22:23:15 +00:00
Jason Eckhardt
b645cb1726 2003-05-18 Jason Eckhardt <jle@rice.edu>
gas:
        * config/tc-i860.c (i860_process_insn): Initialize fc after
        each opcode mismatch.

include/opcode:
        * i860.h (form, pform): Add missing .dd suffix.

opcodes:
        * i860-dis.c (print_insn_i860): Instruction shrd has a dual bit,
        print it.

bfd:
        * elf32-i860.c (elf32_i860_relocate_highadj): Simplify calculation.
2003-05-18 21:24:33 +00:00
Thiemo Seufer
c344a4c8c4 * config/tc-mips.h: Fix comment formatting. 2003-05-15 00:02:06 +00:00
Nick Clifton
e66c629e09 Allow xstormy-elf-gas to handle "@fptr() - @fptr()" expressions. 2003-05-12 09:09:11 +00:00
Jason Eckhardt
673a54e371 2003-05-11 Jason Eckhardt <jle@rice.edu>
* config/tc-i860.c (MAX_FIXUPS): Define.
        (struct i860_fi fi[]): New struct.
        (struct i860_it the_insn): Add above as member and move fields
        exp, reloc, pcrel and fup into i860_fi.
        (md_assemble): Replace all instances of exp, reloc, pcrel
        and fup with fi[].exp, fi[].reloc, fi[].pcrel, fi[].fup.
        Add a loop to possibly emit multiple fix-ups for each insn.
        (i860_process_insn): Likewise.
        (i860_get_expression): Likewise.
        (md_apply_fix3): Use a bitwise check for OP_IMM_U5, not equality.
2003-05-12 03:35:34 +00:00
Martin Schwidefsky
2ebb4b8890 * config/tc-s390.c (s390_target_format): Always call init_default_arch. 2003-05-09 15:32:52 +00:00
H.J. Lu
35f5df7fe8 gas/
2003-05-07  H.J. Lu <hongjiu.lu@intel.com>

	* config/tc-ia64.c (alias_hash): New.
	(alias_name_hash): New.
	(secalias_hash): New.
	(secalias_name_hash): New.
	(md_pseudo_table): Add "secalias".
	(md_begin): Initialize alias_hash, alias_name_hash,
	secalias_hash and secalias_name_hash.
	(struct alias): New.
	(dot_alias): Implement .alias and .secalias directives.
	(do_alias): New.
	(ia64_adjust_symtab): New.
	(do_secalias): New.
	(ia64_frob_file): New.

	* config/tc-ia64.h (ia64_adjust_symtab): New.
	(tc_adjust_symtab): Defined.
	(ia64_frob_file): New.
	(tc_frob_file): Defined.

gas/testsuite/

2003-05-07  H.J. Lu <hongjiu.lu@intel.com>

	* gas/ia64/ia64.exp: Add alias.

	* gas/ia64/alias.s: New.
	* gas/ia64/alias.d: Likewise.
2003-05-07 19:31:10 +00:00
Nick Clifton
d2bf1bdacb (md_show_usage): Add missing lines to known cpus list. 2003-05-07 08:58:33 +00:00
Alexandre Oliva
cac012d6d3 * configure.in (MIPS_DEFAULT_ABI): AC_DEFINE.
* config/tc-mips.c (mips_after_parse_args): Set mips_abi to it.
* config.in, configure: Rebuilt.
2003-05-07 05:10:45 +00:00
H.J. Lu
d8dbbec1ca 2003-05-05 H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (tc_gen_reloc): Add addend just once if
	howto->partial_inplace is false.
2003-05-06 00:28:25 +00:00
Daniel Jacobowitz
9204e615fb * config/tc-mips.c (mips_need_elf_addend_fixup): Remove
symbol_used_in_reloc_p check.
	(md_apply_fix3): Remove check for howto->pcrel_offset.
2003-05-06 00:16:12 +00:00
H.J. Lu
711ef82f1d gas/
2003-05-03  H.J. Lu <hjl@gnu.org>

	* config/obj-elf.c (obj_elf_parse_section_letters): Make it a
	fatal error for unknown section attribute.

	* config/tc-alpha.c (alpha_elf_section_letter): Return -1 for
	unknown section attribute.
	* config/tc-ia64.c (ia64_elf_section_letter): Likewise.
	* config/tc-ppc.c (ppc_section_letter): Likewise.

	* config/tc-ia64.c (ia64_elf_section_letter): Handle 'o'.
	(ia64_elf_section_type): Accept "unwind".

gas/testsuite/

2003-05-03  H.J. Lu <hjl@gnu.org>

	* gas/ia64/ia64.exp: Add unwind.

	* gas/ia64/unwind.s: New. Test the new section attribute 'o'
	and the new section type "unwind".
	* gas/ia64/unwind.d: Likewise.
2003-05-03 16:04:12 +00:00
H.J. Lu
83b5ab55b3 2003-05-02 H.J. Lu <hjl@gnu.org>
* read.h (demand_copy_string): New.

	* config/tc-alpha.c (demand_copy_string): Removed.
2003-05-03 06:10:59 +00:00
Nick Clifton
2968149b03 Fix xstormy16's handling of pc-relative relocs against defined symbols. 2003-05-02 12:42:13 +00:00
H.J. Lu
e7b9a8c1d0 2003-05-01 H.J. Lu <hjl@gnu.org>
* config/obj-elf.c (obj_elf_type): Accept "notype" and
	"STT_NOTYPE".
2003-05-02 03:01:44 +00:00
H.J. Lu
612d7b83dd gas/
2003-05-01  H.J. Lu <hjl@gnu.org>

	* config/tc-ia64.h (tc_canonicalize_section_name): New.

	* config/obj-elf.c (obj_elf_section_name): Call
	tc_canonicalize_section_name if it is defined.

gas/testsuite/

2003-05-01  H.J. Lu <hjl@gnu.org>

	* gas/ia64/ia64.exp: Add secname.

	* gas/ia64/secname.s: New. Test the trailing '#' in section
	name.
	* gas/ia64/secname.d: Likewise.
2003-05-02 02:46:36 +00:00
H.J. Lu
a645d1eb84 2003-05-01 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.c (ia64_check_label): New.
	* config/tc-ia64.h (tc_check_label): New.

	* read.c (read_a_source_file): Call tc_check_label after
	creating a user-defined label if defined.
2003-05-02 02:41:45 +00:00
Alan Modra
df12615d91 * config/tc-ppc.c (md_show_usage): Mention -a32, -a64, -l, -le, -b,
-be and split strings to below 509 bytes in length.
2003-05-02 02:29:22 +00:00
Christian Groessler
7f31df7cab * expr.h: Fix comments in operatorT typedef.
* config/tc-z8k.c: Add 2003 to copyright message.
	Fold s_segm() and s_unseg() into one function s_segm(parm) which
	decides by the parameter.
	(md_begin): Don't set linkrelax.  Only set Z8002 default if no
	command line argument was given to select the intended
	architecure.
	(get_interrupt_operand): Warn if NOP type code is emitted.
	(newfix): New parameter 'size', forward it to 'fix_new_exp'.
	(apply_fix): Call newfix with additional 'size' parameter.
	(build_bytes): Remove unused variable 'nib'.  Detect overflow in
	4 bit immediate arguments.
	(md_longopts): Add 'linkrelax' option.
	(md_parse_option): Adapt to new s_segm function.  Set 'linkrelax'
	variable when 'linkrelax' command line option is specified.
	(md_show_usage): Display 'linkrelax' option.
	(md_apply_fix3): Fix cases R_IMM4L, R_JR, and R_IMM8.  Add cases
	R_CALLR and R_REL16.
	* config/tc-z8k.h: Undef WARN_SIGNED_OVERFLOW_WORD.
2003-05-01 19:59:33 +00:00
H.J. Lu
10a9829174 gas/
2003-04-30  H.J. Lu <hjl@gnu.org>

	* config/tc-ia64.c (ia64_number_to_chars): New function pointer.
	(ia64_float_to_chars): Likewise.
	(dot_byteorder): Set target_big_endian, ia64_number_to_chars
	and ia64_float_to_chars by tc_segment_info_data.endian from
	the current segment if byteorder == -1.
	(md_begin): Call dot_byteorder to set target_big_endian.
	(md_atof): Call ia64_float_to_chars to convert floating point.
	(ia64_float_to_chars_bigendian): New function.
	(ia64_float_to_chars_littleendian): Likewise.
	(ia64_elf_section_change_hook): Likewise.

	* config/tc-ia64.h (ia64_number_to_chars): New.
	(md_number_to_chars): Changed to (*ia64_number_to_chars)
	(ia64_elf_section_change_hook): New.
	(md_elf_section_change_hook): Defined.
	(ia64_segment_info_type): New struct.
	(TC_SEGMENT_INFO_TYPE): Defined.

gas/testsuite/

2003-04-30  H.J. Lu <hjl@gnu.org>

	* gas/ia64/ia64.exp: Add order.

	* gas/ia64/order.s: New file.
	* gas/ia64/order.d: Likewise.
2003-05-01 01:00:30 +00:00
H.J. Lu
bf57c3c94d gas/
2003-04-30  H.J. Lu <hjl@gnu.org>

	* config/tc-ia64.c (md_section_align): Deleted.

	* config/tc-ia64.h (SUB_SEGMENT_ALIGN): New.
	(md_section_align): New.

gas/testsuite/

2003-04-29  H.J. Lu <hjl@gnu.org>

	* gas/ia64/ia64.exp: Add align.

	* gas/ia64/align.d: New file.
	* gas/ia64/align.s: Likewise.

	* ia64/dependency-1.d: Remove the padding.

ld/testsuite/

2003-04-29  H.J. Lu <hjl@gnu.org>

	* ld-ia64/tlsbin.dd: Updated.
	* ld-ia64/tlsbin.rd: Likewise.
	* ld-ia64/tlsbin.sd: Likewise.
	* ld-ia64/tlsbin.td: Likewise.
	* ld-ia64/tlspic.rd: Likewise.
	* ld-ia64/tlspic.sd: Likewise.
	* ld-ia64/tlspic.td: Likewise.
2003-05-01 00:53:39 +00:00
H.J. Lu
165a7f90d4 gas/
2003-04-30  H.J. Lu <hjl@gnu.org>

	* config/tc-ia64.c (stmt_float_cons): Fix alignment for real10
	and add real16.
	(md_pseudo_table): Add "xreal16", "xreal16.ua", "real16" and
	"real16.ua".
	(md_atof): Add 6 byte padding of zero for real16.

gas/testsuite/

2003-04-29  H.J. Lu <hjl@gnu.org>

	* gas/ia64/ia64.exp: Add real.

	* gas/ia64/real.s: New file.
	* gas/ia64/real.d: Likewise.
2003-04-30 21:38:55 +00:00
Nick Clifton
eba874d8d0 Fix problem parsing symbol version strings when they are preceeded by whitespace.
Add test to catch this problem in the future.
2003-04-29 11:52:37 +00:00
Nick Clifton
f0d7d5f9db * config/tc-hppa.c (hppa_symbol_chars): New.
* config/tc-hppa.h (tc_symbol_chars): Likewise.
2003-04-28 08:35:06 +00:00
Thiemo Seufer
a38b42ab8e * config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Define again. 2003-04-26 20:57:14 +00:00
Eric Christopher
684022eae4 2003-04-24 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (nopic_need_relax): Revert previous
        change.
2003-04-25 04:40:09 +00:00
Nick Clifton
2c8714f20f Add support for dwarf2 debug information. 2003-04-24 12:47:32 +00:00
Nick Clifton
8d9cd6b19b Add support for h8300hn and h8300sn 2003-04-24 12:36:08 +00:00
Nick Clifton
5ce8663f49 Add '+' and '-' as valid symbol characters for PPC port. 2003-04-24 10:22:35 +00:00
Joern Rennecke
ef23021837 bfd:
* archures.c (enum bfd_architecture): Amend comment to refer to SuperH.
        * cpu-sh.c: Likewise.
        * elf32-sh.c: Likewise.
        * reloc.c (bfd_reloc_code_real): Likewise.
        * elf32-sh64-com.c: Change comment to refer to SuperH.
        * elf32-sh64.c: Likewise.
        * elf64-sh64.c: Likewise.
        * bfd-in2.h (enum bfd_architecture): Regenerate.
binutils:
        * readelf.c (get_machine_name) <EM_SH>: Amend return value
        to refer to SuperH.
gas:
        * config/tc-sh.c: Amend comment to refer to SuperH.
        * config/tc-sh.h: Likewise.
        (LISTING_HEADER): Amend to refer to SuperH.
        * config/tc-sh64.c: Change comment to refer to SuperH.
        * config/tc-sh64.h (LISTING_HEADER): Change to refer to SuperH.
        * doc/as.texinfo [SH, GENERIC]: Amend / Change to refer to SuperH.
        * doc/c-sh.texi: Amend to refer to SuperH.
        Add SuperH architecture documentation references.
        * doc/c-sh64.texi: Change to refer to SuperH.
include/elf:
        * common.h (EM_SH): Amend comment to refer to SuperH.
ld/testsuite:
        * ld-sh/sh64/crange3-cmpct.rd (Machine): Change to refer to SuperH.
        * ld-sh/sh64/crange3-media.rd (Machine): Likewise.
2003-04-23 21:09:04 +00:00
Nick Clifton
c2dcd04ec8 Replace occurrances of 'Hitachi' with 'Renesas'. 2003-04-15 08:51:55 +00:00
Alexandre Oliva
f5040a92c5 * config/tc-mips.h (tc_frag_data_type, TC_FRAG_TYPE): New.
* config/tc-mips.c: Use signed add for n32 address arithmetic.
(append_insn): When filling delay slots with instructions
that have fixups that tc_gen_reloc might consider modifyable
in variant frags, start a new frag.
(load_address): Generate GOT_DISP with of without offset
depending on whether symbol is local.  For -xgot, use
GOT_PAGE/GOT_OFST or GOT_HI16/GOT_LO16.
(macro) <M_DLA_AB, M_LA_AB>: Likewise.
<M_JAL_A>: In NewABI, use CALL16 or GOT_DISP for small got,
CALL_HI16/CALL_LO16 or GOT_PAGE/GOT_OFST for big got.
<ld_st>: In NewABI with small got, always use
GOT_PAGE/GOT_OFST, with the latter in the load/store
instruction.  With big got, use GOT_HI16/GOT_LO16 or
GOT_PAGE/GOT_OFST.
(tc_gen_reloc): Adjust variant frags with GOT_DISP in NewABI.
Add tc_frag_data.tc_fr_offset to addends.  Decay CALL16,
GOT_OFST and GOT_DISP to GOT_DISP in NewABI.
(md_convert_frag): Use memmove for safe copying of overlapping
regions.
2003-04-11 01:56:50 +00:00
Alexandre Oliva
9214dd3be3 * config/tc-mips.c (macro): Add comments explaining the rationale
for Chris' change.
2003-04-09 03:09:12 +00:00
Alexandre Oliva
eb0a7d52bd * config/tc-mips.c (macro): Put back `+ 0x8000' in test for 64-bit
constant address that Alexandre took out by accident.  Reject
64-bit addresses that are not sign extensions of 32 bits only if
we don't support 64-bit address constants.
2003-04-09 03:07:48 +00:00
Alan Modra
a7fc733f39 * config/tc-ppc.c (md_apply_fix3): Generate ADDR16 relocs. 2003-04-08 23:01:47 +00:00
Alexandre Oliva
5a7a0b7bf9 * config/tc-mips.c (HAVE_64BIT_ADDRESS_CONSTANTS): New.
(macro): Use new macro to decide whether to emit constant address
as 32 or 64 bits if addresses are 32-bit wide but registers are
64-bit wide.
2003-04-06 03:16:20 +00:00
Stephane Carrez
577300cea4 * config/tc-m68hc11.c (M6811_OP_CALL_ADDR): New internal define.
(M6811_OP_PAGE_ADDR): New internal define.
	(get_operand): New modifier %page and %addr to obtain page and
	address part of a far-function.
	(fixup8): Use BFD_RELOC_M68HC11_PAGE for a %page modifier; don't
	complain on overflow for the BFD_RELOC_M68HC11_PAGE and truncation
	relocs.
	(fixup16): Use BFD_RELOC_M68HC11_LO16 for a %addr modifier.
	(find_opcode): Add comment.
	(md_estimate_size_before_relax): Force relocation of
	STATE_UNDEXED_OFFSET types when the symbol is not absolute.
	(tc_m68hc11_fix_adjustable): Check for BFD_RELOC_M68HC11_LO16
	instead of BFD_RELOC_LO16; temporarily make the BFD_RELOC_32
	on the symbol itself so that DWARF2 strings are merged correctly.
2003-04-05 12:43:45 +00:00
Svein Seldal
be33c5dd4d Namespace cleanup for the tic4x target. Replace s/c4x/tic4x/ and s/c3x/tic3x/. 2003 copyright update 2003-04-04 08:15:15 +00:00
Phil Blundell
472816383c 2003-04-02 Philip Blundell <philb@gnu.org>
* config/tc-arm.c (arm_force_relocation): Return 0 for OFFSET_IMM.
2003-04-02 23:31:25 +00:00
Chris Demetriou
af22f5b24a [ gas/ChangeLog ]
2003-04-02  Chris Demetriou  <cgd@broadcom.com>

        * config/tc-mips.c (macro2): Adjust implementation of
        M_ULH, M_ULHU, M_ULW, and M_ULD so that they work properly
        in the case where the source and destination registers
        are the same.

[ gas/testsuite/ChangeLog ]
2003-04-02  Chris Demetriou  <cgd@broadcom.com>

        * gas/mips/ulh.d: Adjust for ulh and ulhu macro assembly changes.

        * gas/mips/mips.exp: Define new "gpr_ilocks" architecture
        property, and add it to mips2 (and later) chips and r3900.
        * gas/mips/uld2.s: New test source file.
        * gas/mips/ulh2.s: Likewise.
        * gas/mips/ulw2.s: Likewise.
        * gas/mips/uld2.l: New test stderr listing.
        * gas/mips/ulh2.l: Likewise.
        * gas/mips/ulw2.l: Likewise.
        * gas/mips/uld2-eb.d: New test.
        * gas/mips/uld2-el.d: Likewise.
        * gas/mips/ulh2-eb.d: Likewise.
        * gas/mips/ulh2-el.d: Likewise.
        * gas/mips/ulw2-eb-ilocks.d: Likewise.
        * gas/mips/ulw2-eb.d: Likewise.
        * gas/mips/ulw2-el-ilocks.d: Likewise.
        * gas/mips/ulw2-el.d: Likewise.
        * gas/mips/mips.exp: Run new tests for appropriate architectures.
2003-04-02 18:43:16 +00:00
Nick Clifton
88da68203d Add Xtensa port (omitted from previous delta) 2003-04-01 15:53:47 +00:00
Nick Clifton
e0001a05d2 Add Xtensa port 2003-04-01 15:50:31 +00:00
Nick Clifton
5a6c681789 Fixes for iWMMXt contribution. 2003-04-01 13:08:06 +00:00
Eric Christopher
97bbfa382c 2003-03-26 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (nopic_need_relax): Check for
        S_IS_EXTERN.
2003-03-26 23:32:06 +00:00
Nick Clifton
e16bb312f5 Add iWMMXt support 2003-03-25 20:56:01 +00:00
Andreas Schwab
e39edc66a9 * config/tc-ia64.c (generate_unwind_image): Fix type of unw_rec to
avoid aliasing issue.
2003-03-21 14:02:09 +00:00
Martin Schwidefsky
37a5879375 * config/tc-s390.c (s390_arch_size): Initialize to zero.
(current_arch_mask): Rename to current_mode_mask.
	(current_arch_requested): Remove variable.
	(current_cpu): New variable.
	(init_default_arch): Set defaults values for s390_arch_size,
	current_mode_mask and current_cpu.
	(md_parse_option): New options -mesa, -mzarch and -march={g5,g6,z900}.
	(md_begin): Replace current_arch_mask by current_cpu.
	(md_assemble): Adapt check and error message to current_mode_mask and
	current_cpu.
2003-03-21 13:24:46 +00:00
Alexandre Oliva
45f8dfe8f6 * config/tc-mips.c (mips_validate_fix): New function.
* config/tc-mips.h (TC_VALIDATE_FIX): Define.
(mips_validate_fix): Declare.
2003-03-12 23:07:38 +00:00
Alexandre Oliva
0b25d3e680 * Reverted 2003-03-02's patch. 2003-03-12 23:06:08 +00:00
Richard Henderson
6174d9c85e * dwarf2dbg.c (generic_dwarf2_emit_offset): New.
(TC_DWARF2_EMIT_OFFSET): Provide default.
        (out_debug_aranges, out_debug_info): Use it.
        * config/tc-ia64.c (ia64_dwarf2_emit_offset): New.
        (ia64_cons_fix_new): Move FUNC_DTP_RELATIVE handling ...
        (ia64_gen_real_reloc_type): ... here.
        * config/tc-ia64.h (TC_DWARF2_EMIT_OFFSET): New.
2003-03-11 22:00:33 +00:00
Thiemo Seufer
149495708c * config/tc-mips.c (s_mips_end): Remove !BFD_ASSEMBLER case.
(s_mips_ent): Likewise.
2003-03-09 16:16:31 +00:00
Nick Clifton
11d78a8931 (mcu_types): Add recenly announced x1122 and x1123 devices, add missed x437.
(md_show_usage): Sort device list.
2003-03-04 16:34:40 +00:00
Joern Rennecke
bdfaef528f Fix sh-elf linker relaxation:
gcc:
	* config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
	subtarget_asm_isa_spec.
	(SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
	(ASM_SPEC): Define as SH_ASM_SPEC.
	(SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
	Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
	* config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
	(SUBTARGET_ASM_ISA_SPEC): Undef / define.
gcc/testsuite:
	gcc.dg/sh-relax.c: New test.

include/elf:
	* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
	and SH2E & SH4 merge to SH4, not SH2E.

gas:
	* config/tc-sh.c (sh_dsp): Replace with preset_target_arch.
	(md_begin): Use preset_target_arch.
	(md_longopts): Make isa option unconditional.
	(md_parse_option): Make OPTION_DSP and OPTION_ISA sh4 / any
	set preset_target_arch.
	(md_apply_fix3): If BFD_ASSEMBLER, adjust SWITCH_TABLE fixups
	by -S_GET_VALUE  (fixP->fx_subsy).
	(tc_gen_reloc): For SWITCH_TABLE fixups, the symbol is fixp->fx_subsy,
	and the addend is 0.
	Adjust addend of R_SH_IND12W relocations by fixp->fx_offset - 4.
	* config/tc-sh.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.

bfd:
	elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
	relocation (no special function), and make it non-partial_inplace.
	(sh_elf_relax_section): When creating a bsr, use a consistent value
	no matter if the symbol is extern or not;  set addend to -4.
	Don't swap load / non-load instructions for SH4.
	(sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
	rather than if the symbol is external to determine if adjusting the
	offset makes sense.  Adjust the addend too if appropriate.
	(sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
	relocation.
2003-03-03 21:04:01 +00:00
Thiemo Seufer
7c2be35cae * elf32-mips.c (elf_mips_howto_table_rel): Change definition of
R_MIPS_PC16 to rightshift 2.
	(elf_reloc_map mips_reloc_map): Map to rightshifted BFD reloc.
	(bfd_elf32_bfd_reloc_type_lookup): Support
	BFD_RELOC_MIPSEMB_16_PCREL_S2.
	* elf64-mips.c (mips_elf64_howto_table_rel): Change definition of
	R_MIPS_PC16 to rightshift 2.
	(mips_elf64_howto_table_rela): Likewise.
	(mips_reloc_map): Map to rightshifted BFD reloc.
	* elfn32-mips.c: The same as in elf64-mips.c.
	* elfxx-mips.c (mips_elf_got_for_ibfd): Typo in comment.
	(mips_elf_calculate_relocation): Handle rightshifted addends for
	R_MIPS_PC16.
	* reloc.c (BFD_RELOC_MIPSEMB_16_PCREL_S2): New BFD relocation for
	MIPS Embedded PIC. Remove superfluous empty COMMENT.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* config/tc-mips.c (append_insn): Add handling of
	BFD_RELOC_MIPSEMB_16_PCREL_S2. Avoid emitting unneeded
	BFD_RELOC_16_PCREL_S2 relocs and add earlier warnings about
	misaligned address and reange overflow.
	(macro_build): Add handling of BFD_RELOC_MIPSEMB_16_PCREL_S2. Add
	earlier warnings about misaligned address and reange overflow.
	(mips_ip): Add handling of BFD_RELOC_MIPSEMB_16_PCREL_S2.
	(md_apply_fix): Likewise. Fix warning output.
	(tc_gen_reloc): Add handling of BFD_RELOC_MIPSEMB_16_PCREL_S2.
	Allow BFD_RELOC_16_PCREL_S2 for all ABIs.
	(md_convert_frag): Add handling of BFD_RELOC_MIPSEMB_16_PCREL_S2.
	* gas/mips/bge.d: Reactivate external branch tests.
	* gas/mips/bge.s: Likewise.
	* gas/mips/bgeu.d: Likewise.
	* gas/mips/bgeu.s: Likewise.
	* gas/mips/blt.d: Likewise.
	* gas/mips/blt.s: Likewise.
	* gas/mips/bltu.d: Likewise.
	* gas/mips/bltu.s: Likewise.
	* gas/mips/branch-misc-2.d: New File.
	* gas/mips/branch-misc-2.l: Remove.
	* gas/mips/mips.exp: Adjust branch-misc-2 test.
2003-03-02 21:30:15 +00:00
Nick Clifton
77c6dd379a Add v850e debug registers. 2003-02-21 12:33:34 +00:00
Richard Sandiford
64bdfcaf0d * config/tc-mips.c (prev_reloc_op_frag): New variable.
(macro): Check it to decide whether a new frag is needed.
	(my_getSmallExpression): Set it.
2003-02-21 10:28:27 +00:00
Alan Modra
426318c599 * write.c (TC_FORCE_RELOCATION_SUB_SAME): Revert last change.
* config/tc-s390.h (TC_FORCE_RELOCATION_SUB_SAME): Define.
2003-02-12 23:21:08 +00:00
Nick Clifton
fde78edd7a Add support for marking ARM ELF binaries as support the Cirrus EP9312 Maverick
floating point co-processor.
2003-02-10 10:44:48 +00:00
Richard Sandiford
5919d0127e gas/
* config/tc-mips.c (reloc_needs_lo_p): New function.
	(fixup_has_matching_lo_p): New function.
	(append_insn): Use reloc_needs_lo_p to check whether a relocation
	might need a matching %lo().  Reuse the head of mips_hi_fixup_list
	if that fixup already has a matching %lo().  Don't call frag_wane here.
	(macro): Call frag_wane here if the last unmatched hi was in the
	current frag.
	(pic_need_relax): New function, split out from...
	(md_estimate_size_before_relax): ...here.
	(mips_frob_file): Use reloc_needs_lo_p.  Use pic_need_relax to test
	whether BFD_RELOC_MIPS_GOT16 fixups refer to global symbols.

gas/testsuite/
	* gas/mips/rel12.[sd], gas/mips/rel13.[sd]: New tests.
	* gas/mips/mips.exp: Run them.
2003-02-08 17:05:55 +00:00
Richard Sandiford
09b8f35ab2 * config/tc-mips.c (my_getSmallExpression): Rework bracket handling.
testsuite/
	* gas/mips/expr1.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2003-02-07 15:06:33 +00:00
Alan Modra
5f6db75ada * config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that
x@toc+off works.
2003-02-06 01:24:17 +00:00
Alan Modra
cdba85ecf4 * config/tc-ppc.c (mapping): Handle new TLS reloc specs.
(ppc_elf_suffix): Don't warn for x+off@got when ppc64 and don't
	accept x@got+off etc.
	(md_assemble): Handle TLS relocs.
	(ppc_force_relocation): Force for all TLS relocs.
	(ppc_fix_adjustable): Likewise.
	(md_apply_fix3): Handle TLS relocs.
2003-02-04 14:51:13 +00:00
Alan Modra
68bfbfcc5a bfd
* elf-bfd.h (enum elf_link_info_type): Remove.
	(struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields
	to struct sec.  Remove linkonce_p field.
	(elf_linkonce_p): Delete.
	(elf_discarded_section): Update for sec_info_type change.
	* section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc,
	flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24.
	(ELF_INFO_TYPE_NONE): Define.
	(ELF_INFO_TYPE_STABS): Define.
	(ELF_INFO_TYPE_MERGE): Define.
	(ELF_INFO_TYPE_EH_FRAME): Define.
	(ELF_INFO_TYPE_JUST_SYMS): Define.
	(STD_SECTION): Update struct sec initializer.
	* ecoff.c (bfd_debug_section): Likewise.
	* elf.c: Likewise.  Update occurrences of sec_info_type and use_rela_p.
	* elflink.h: Likewise.
	* elf-eh-frame.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* bfd-in2.h: Regenerate.

	* elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than
	referring to used_by_bfd.
	* elf64-sparc.c (sec_do_relax): Likewise.
	* elf64-mmix.c (mmix_elf_section_data): Likewise.
	* elfxx-mips.c (mips_elf_section_data): Likewise.
	* ieee.c (ieee_slurp_section_data): Use ieee_per_section macro.
	(ieee_get_section_contents): Likewise.
	(ieee_new_section_hook): Formatting.
	(ieee_canonicalize_reloc): Remove commented out code.
	* mmo.c (mmo_section_data): Define.  Use throughout file.
	* oasys.c (oasys_get_section_contents): Use oasys_per_section macro.

gas
	* config/obj-elf.c (obj_elf_change_section): Set SEC_LINK_ONCE and
	SEC_LINK_DUPLICATES_DISCARD directly rather than using elf_linkonce_p.
2003-02-04 12:34:08 +00:00
Richard Sandiford
5e0116d519 gas/
* config/tc-mips.c (enum small_ex_type): Remove.
	(imm_unmatched_hi): Remove.
	(md_assemble): Remove use of imm_unmatched_hi.  Remove the last
	argument from calls to append_insn.
	(append_insn): Remove unmatched_hi parameter; check reloc_type[0]
	instead.
	(macro_build): Update append_insn calls.
	(mips16_macro_build, macro_build_lui): Likewise.
	(mips_ip): Rework handling of small expressions.  Move explicit
	relocation handling into my_getSmallExpression.  Assume that the
	value of 'o' operands is zero if there is only one bracketed
	expression left.
	(percent_op): Make constant.  Record the BFD relocation code
	associated with each operator.
	(my_getSmallParser, my_getPercentOp): Remove.
	(parse_relocation): New function.
	(my_getSamllExpression): Rework.  Fill in relocations here
	rather than in mips_ip.

gas/testsuite
	* gas/mips/elf-rel8.[sd], gas/mips/elf-rel9.[sd],
	gas/mips/elf-rel10.[sd], gas/mips/elf-rel11.[sd]: New tests.
	* gas/mips/mips.exp: Run elf-rel8 and elf-rel9 for all elf
	targets.  Run elf-rel10 and elf-rel11 for NewABI targets.
2003-02-02 19:37:20 +00:00
Nick Clifton
0d9f6d04b2 line_comment_chars: Add '#'. This makes the assembler's handling of
# <linenum> "<filename>" directives work.
2003-01-29 10:05:52 +00:00
Nick Clifton
df25fda59c Replace occurences of 'tolower' with 'TOLOWER'. 2003-01-28 11:02:40 +00:00
Jim Wilson
69906a9b3a Patch from David Mosberger.
* config/tc-ia64.c (dot_vframesp): Correct error message.
	(dot_vframepsp): Ditto.
2003-01-28 03:24:12 +00:00
Alexandre Oliva
1de5b6a1a2 * configure.in (em): Set to irix on all Irix systems.
* configure: Rebuilt.
* config/te-irix.h: New file.
* config/tc-mips.c (mips_dwarf2_format): Use TE_IRIX to decide
whether to use Irix-specific 64-bit format.
2003-01-27 22:45:58 +00:00
Martin Schwidefsky
5cfbfc2b20 * Avoid designated initializers. 2003-01-27 08:44:21 +00:00
Jakub Jelinek
b9734f3572 bfd/
* elf32-sparc.c (_bfd_sparc_elf_howto_table): Add TLS relocs.
	(elf32_sparc_rev32_howto): New variable.
	(sparc_reloc_map): Add TLS relocs.
	(elf32_sparc_reloc_type_lookup, elf32_sparc_info_to_howto):
	Handle REV32.
	(sparc_elf_hix22_reloc, sparc_elf_lox10_reloc, elf32_sparc_mkobject):
	New functions.
	(struct elf32_sparc_dyn_relocs, struct elf32_sparc_link_hash_entry,
	struct elf32_sparc_link_hash_table):
	New structures.
	(elf32_sparc_tdata, elf32_sparc_local_got_tls_type,
	elf32_sparc_hash_table): Define.
	(link_hash_newfunc, elf32_sparc_link_hash_table_create,
	create_got_section, elf32_sparc_create_dynamic_sections,
	elf32_sparc_copy_indirect_symbol, elf32_sparc_tls_transition): New
	functions.
	(elf32_sparc_check_relocs): Handle TLS relocs.  Add dynamic reloc
	reference counting.
	(elf32_sparc_gc_sweep_hook): Likewise.
	(elf32_sparc_adjust_dynamic_symbol): Likewise.
	(elf32_sparc_size_dynamic_sections): Likewise.
	(elf32_sparc_relocate_section): Likewise.
	(allocate_dynrelocs, readonly_dynrelocs, dtpoff_base, tpoff):
	New functions.
	(elf32_sparc_object_p): Allocate backend private object data.
	(bfd_elf32_bfd_link_hash_table_create,
	elf_backend_copy_indirect_symbol, bfd_elf32_mkobject,
	elf_backend_can_refcount): Define.
	(elf_backend_create_dynamic_sections): Define to
	elf32_sparc_create_dynamic_sections.
	* reloc.c: Add SPARC TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-sparc.c (sparc64_elf_howto_table): Add TLS relocs.
	(sparc_reloc_map): Likewise.
gas/
	* config/tc-sparc.c (sparc_ip): Handle TLS % operators.
	(tc_gen_reloc): Handle TLS relocs.
	(sparc_cons, cons_fix_new_sparc): Handle %r_tls_dtpoff.
	* config/tc-sparc.h (tc_fix_adjustable): Don't adjust TLS
	relocs.
	* config/obj-elf.c (obj_elf_section_word): Handle tls.
	(obj_elf_type): Handle tls_object.
include/
	* elf/sparc.h: Add TLS relocs.  Move R_SPARC_REV32 to 252.
ld/testsuite/
	* ld-sparc/sparc.exp: New.
	* ld-sparc/tlsg32.s: New test.
	* ld-sparc/tlsg32.sd: Likewise.
	* ld-sparc/tlsg64.s: Likewise.
	* ld-sparc/tlsg64.sd: Likewise.
	* ld-sparc/tlslib.s: Likewise.
	* ld-sparc/tlsnopic.s: Likewise.
	* ld-sparc/tlspic.s: Likewise.
	* ld-sparc/tlssunbin32.dd: Likewise.
	* ld-sparc/tlssunbin32.rd: Likewise.
	* ld-sparc/tlssunbin32.s: Likewise.
	* ld-sparc/tlssunbin32.sd: Likewise.
	* ld-sparc/tlssunbin32.td: Likewise.
	* ld-sparc/tlssunbin64.dd: Likewise.
	* ld-sparc/tlssunbin64.rd: Likewise.
	* ld-sparc/tlssunbin64.s: Likewise.
	* ld-sparc/tlssunbin64.sd: Likewise.
	* ld-sparc/tlssunbin64.td: Likewise.
	* ld-sparc/tlssunbinpic32.s: Likewise.
	* ld-sparc/tlssunbinpic64.s: Likewise.
	* ld-sparc/tlssunnopic32.dd: Likewise.
	* ld-sparc/tlssunnopic32.rd: Likewise.
	* ld-sparc/tlssunnopic32.s: Likewise.
	* ld-sparc/tlssunnopic32.sd: Likewise.
	* ld-sparc/tlssunnopic64.dd: Likewise.
	* ld-sparc/tlssunnopic64.rd: Likewise.
	* ld-sparc/tlssunnopic64.s: Likewise.
	* ld-sparc/tlssunnopic64.sd: Likewise.
	* ld-sparc/tlssunpic32.dd: Likewise.
	* ld-sparc/tlssunpic32.rd: Likewise.
	* ld-sparc/tlssunpic32.s: Likewise.
	* ld-sparc/tlssunpic32.sd: Likewise.
	* ld-sparc/tlssunpic32.td: Likewise.
	* ld-sparc/tlssunpic64.dd: Likewise.
	* ld-sparc/tlssunpic64.rd: Likewise.
	* ld-sparc/tlssunpic64.s: Likewise.
	* ld-sparc/tlssunpic64.sd: Likewise.
	* ld-sparc/tlssunpic64.td: Likewise.
2003-01-24 23:44:45 +00:00
Martin Schwidefsky
1971b29d35 * config/tc-s390.c (s390_tls_suffix): New function.
(elf_suffix_type): Add suffix enums for TLS relocations.
	(s390_elf_suffix): Add suffix strings for TLS relocations.
	(s390_elf_cons): Map new lenght/elf suffix combinations for TLS to
	bfd relocations.
	(md_gather_operands): Map new instruction operand/elf suffix
	combinations for TLS to bfd relocations.
	(tc_s390_fix_adjustable): Add new TLS relocations.
	(tc_s390_force_relocation): Likewise.
	(md_apply_fix3): Likewise.
2003-01-24 17:14:25 +00:00
Alan Modra
1d3b2b274b Update copyright date 2003-01-24 01:12:30 +00:00
Alan Modra
d4c7c97146 * config/tc-hppa.h (DIFF_EXPR_OK): Define.
(MD_APPLY_SYM_VALUE): Move.
2003-01-23 23:17:57 +00:00
Nick Clifton
5177500f26 Add SH2E support 2003-01-23 18:50:57 +00:00
Alan Modra
ae6063d440 * symbols.c (S_FORCE_RELOC): Add "strict" param.
* symbols.h (S_FORCE_RELOC): Likewise.
	* config/obj-aout.h (S_FORCE_RELOC): Likewise.
	* config/obj-bout.h (S_FORCE_RELOC): Likewise.
	* config/obj-coff.h (S_FORCE_RELOC): Likewise.
	* config/obj-ieee.h (S_FORCE_RELOC): Likewise.
	* config/obj-vms.h (S_FORCE_RELOC): Likewise.
	* write.c (generic_force_reloc): New function.
	(TC_FORCE_RELOCATION): Use it here instead of S_FORCE_RELOC.
	(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
	(adjust_reloc_syms): Adjust S_FORCE_RELOC call.
	* as.h (generic_force_reloc): Declare.
	* doc/internals.texi (S_FORCE_RELOC): Update.
	(TC_FORCE_RELOCATION_SUB_SAME): Update.

	* config/tc-alpha.c (alpha_force_relocation): Adjust to use
	generic_force_reloc.
	(alpha_fix_adjustable): Likewise.
	* config/tc-arm.c (arm_force_relocation): Likewise.
	* config/tc-cris.c (md_cris_force_relocation): Likewise.
	* config/tc-frv.c (frv_force_relocation): Likewise.
	* config/tc-i386.c (md_apply_fix3): Likewise.
	* config/tc-ia64.c (ia64_force_relocation): Likewise.
	* config/tc-ip2k.c (ip2k_force_relocation): Likewise.
	* config/tc-m32r.c (m32r_force_relocation): Likewise.
	* config/tc-m68hc11.c (tc_m68hc11_force_relocation): Likewise.
	* config/tc-mcore.c (mcore_force_relocation): Likewise.
	* config/tc-mips.c (mips_force_relocation): Likewise.
	* config/tc-mmix.c (mmix_force_relocation): Likewise.
	* config/tc-ppc.c (ppc_force_relocation): Likewise.
	* config/tc-s390.c (tc_s390_force_relocation): Likewise.
	* config/tc-sh.c (sh_force_relocation): Likewise.
	(md_pcrel_from_section): Likewise.
	* config/tc-sparc.c (tc_gen_reloc): Likewise.
	* config/tc-v850.c (v850_force_relocation): Likewise.
	* config/tc-xstormy16.c (xstormy16_force_relocation): Likewise.
	* config/tc-i386.h (TC_FORCE_RELOCATION): Likewise.
	* config/tc-mcore.h (TC_FORCE_RELOCATION): Likewise.
	* config/tc-sparc.h (tc_fix_adjustable): Likewise.

	* config/tc-d10v.c (d10v_force_relocation): Delete.
	* config/tc-d10v.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-dlx.c (md_dlx_force_relocation): Delete.
	* config/tc-dlx.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-fr30.c (fr30_force_relocation): Delete.
	* config/tc-fr30.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-mn10300.c (mn10300_force_relocation): Delete.
	* config/tc-mn10300.h (TC_FORCE_RELOCATION): Don't define.
	(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
	* config/tc-i960.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise.
	* config/tc-hppa.c (hppa_force_relocation): Adjust S_FORCE_RELOC call.
	* config/tc-mips.c (RELAX_BRANCH_TOOFAR): Warning fix.
	* config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Don't define.
	* config/tc-openrisc.c (openrisc_force_relocation): Delete.
	* config/tc-openrisc.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-sparc.c (elf32_sparc_force_relocation): Delete.
	* config/tc-sparc.h (TC_FORCE_RELOCATION): Don't define for ELF.
	* config/tc-i386.c (i386_force_relocation): Delete.
	* config/tc-i386.h (TC_FORCE_RELOCATION): Don't define for
	BFD_ASSEMBLER.
	(EXTERN_FORCE_RELOC): Fix TE_PE and STRICT_PE_FORMAT nesting.
	* config/tc-m68k.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-pj.h (TC_FORCE_RELOCATION): Don't define.
	* config/tc-sh.h (TC_FORCE_RELOCATION_SUB_ABS): Don't call
	S_FORCE_RELOC.
	(TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too.
	* config/tc-sh64.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise.
2003-01-23 12:51:05 +00:00
Alan Modra
f0abc2a11f include/elf/ChangeLog
* sh.h: Split out various bits to bfd/elf32-sh64.h.

include/opcode/ChangeLog
	* m68hc11.h (cpu6812s): Define.

bfd/ChangeLog
	* elf-bfd.h (struct bfd_elf_section_data): Remove tdata.  Change
	dynindx to an int.  Rearrange for better packing.
	* elf.c (_bfd_elf_new_section_hook): Don't alloc if already done.
	* elf32-mips.c (bfd_elf32_new_section_hook): Define.
	* elf32-sh64.h: New.  Split out from include/elf/sh.h.
	(struct _sh64_elf_section_data): New struct.
	(sh64_elf_section_data): Don't dereference sh64_info (was tdata).
	* elf32-sh64-com.c: Include elf32-sh64.h.
	* elf32-sh64.c: Likewise.
	(sh64_elf_new_section_hook): New function.
	(bfd_elf32_new_section_hook): Define.
	(sh64_elf_fake_sections): Adjust for sh64_elf_section_data change.
	(sh64_bfd_elf_copy_private_section_data): Likewise.
	(sh64_elf_final_write_processing): Likewise.
	* elf32-sparc.c (struct elf32_sparc_section_data): New.
	(elf32_sparc_new_section_hook): New function.
	(SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
	(sec_do_relax): Define.
	(elf32_sparc_relax_section): Adjust to use sec_do_relax.
	(elf32_sparc_relocate_section): Likewise.
	* elf64-mips.c (bfd_elf64_new_section_hook): Define.
	* elf64-mmix.c (struct _mmix_elf_section_data): New.
	(mmix_elf_section_data): Define.  Use throughout file.
	(mmix_elf_new_section_hook): New function.
	(bfd_elf64_new_section_hook): Define.
	* elf64-ppc.c (struct _ppc64_elf_section_data): New.
	(ppc64_elf_section_data): Define.  Use throughout.
	(ppc64_elf_new_section_hook): New function.
	(bfd_elf64_new_section_hook): Define.
	* elf64-sparc.c (struct sparc64_elf_section_data): New.
	(sparc64_elf_new_section_hook): New function.
	(SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
	(sec_do_relax): Define.
	(sparc64_elf_relax_section): Adjust to use sec_do_relax.
	(sparc64_elf_relocate_section): Likewise.
	(bfd_elf64_new_section_hook): Define.
	* elfn32-mips.c (bfd_elf32_new_section_hook): Define.
	* elfxx-mips.c (struct _mips_elf_section_data): New.
	(mips_elf_section_data): Define.  Use throughout.
	(_bfd_mips_elf_new_section_hook): New function.
	(mips_elf_create_got_section): Don't alloc used_by_bfd.
	* elfxx-mips.h (_bfd_mips_elf_new_section_hook): Declare.
	* elfxx-target.h (bfd_elfNN_new_section_hook): Add #ifndef.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

opcodes/ChangeLog
	* sh64-dis.c: Include elf32-sh64.h.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

gas/ChangeLog
	* config/tc-sh64.c (shmedia_frob_section_type): Adjust for changed
	sh64_elf_section_data.
	* config/tc-sh64.h: Include elf32-sh64.h.
	* config/tc-m68hc11.c: Don't include stdio.h.
	(md_show_usage): Fix missing continuation.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

ld/ChangeLog
	* emultempl/sh64elf.em: Include elf32-sh64.h.
	(sh64_elf_${EMULATION_NAME}_before_allocation): Adjust for changed
	sh64_elf_section_data.
	(sh64_elf_${EMULATION_NAME}_after_allocation): Likewise.
2003-01-23 11:51:35 +00:00
Martin Schwidefsky
2a19f73f87 * config/tc-s390.c (elf_suffix_type): Add suffix enums for gotoff,
gotplt and pltoff relocations.
	(s390_elf_suffix): Add suffix strings for gotoff, gotplt and pltoff.
	(s390_elf_cons): Map new lenght/elf suffix combinations for gotoff,
	gotplt and pltoff to bfd relocations.
	(md_gather_operands): Map new instruction operand/elf suffix
	combinations to bfd relocations.
	(tc_s390_fix_adjustable): Add new gotoff, gotplt and pltoff relocations
	to the list of unadjustable relocations.
	(tc_s390_force_relocation): Always emit relocations for gotoff, gotplt
	and pltoff relocations.
	(md_apply_fix3): Add the new relocations.
2003-01-20 11:48:32 +00:00
Martin Schwidefsky
f1fc51dabb * config/tc-s390.c (md_apply_fix3): Emit error message for relocations
with a subsy symbol.
2003-01-20 10:22:26 +00:00
Stephane Carrez
2d94a61ae4 * config/tc-m68hc11.c (tc_m68hc11_fix_adjustable): Prevent adjustment
of relocs for memory bank addressing.
2003-01-17 22:51:28 +00:00
Stephane Carrez
d01030e6e8 * config/tc-m68hc11.c (md_show_usage): Update usage.
(md_parse_option): Recognize -m68hcs12.
	(m68hc11_elf_final_processing): Set EF_M68HCS12_MACH flag to identify
	HCS12.
	* doc/as.texinfo (Overview): Document new option -m68hcs12.
2003-01-17 22:29:54 +00:00
Jakub Jelinek
b3dfd7fe24 * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add
self_dtpmod_done and self_dtpmod_offset.
	(allocate_global_data_got): Only use one got entry for all
	dtpmod relocs against local symbols.
	(allocate_dynrel_entries): Only need .rela.got entry for
	dtpmod against global symbol.
	(elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset.
	Reserve space in .rela.got for the local dtpmod entry.
	(set_got_entry): Initialize the common local dtpmod .got entry.
	(elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB
	and R_IA_64_DTPREL64MSB.

	* config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data.

	* ld-ia64/ia64.exp: New.
	* ld-ia64/tlsbin.dd: New test.
	* ld-ia64/tlsbinpic.s: New test.
	* ld-ia64/tlsbin.rd: New test.
	* ld-ia64/tlsbin.s: New test.
	* ld-ia64/tlsbin.sd: New test.
	* ld-ia64/tlsbin.td: New test.
	* ld-ia64/tlsg.s: New test.
	* ld-ia64/tlsg.sd: New test.
	* ld-ia64/tlslib.s: New test.
	* ld-ia64/tlspic1.s: New test.
	* ld-ia64/tlspic2.s: New test.
	* ld-ia64/tlspic.dd: New test.
	* ld-ia64/tlspic.rd: New test.
	* ld-ia64/tlspic.sd: New test.
	* ld-ia64/tlspic.td: New test.
2003-01-16 21:31:18 +00:00
Alan Modra
a0ea3e1db8 * read.c (get_absolute_expr): New, split out from..
(get_absolute_expression): ..here.
	* read.h (get_absolute_expr): Declare.
	* config/obj-elf.c (elf_common): Use offsetT for "temp" and "size".
	Trim size to arch bits_per_address, and test for negative input
	via get_absolute_expr.
2003-01-11 06:24:12 +00:00
DJ Delorie
2d10acd2e4 * config/tc-xstormy16.c (md_cgen_lookup_reloc): Adjust value based
on operand type.
(xstormy16_md_apply_fix3): Use adjustment.
2003-01-07 21:27:58 +00:00
Stan Cox
1c53c80da3 * configure.in: Add iq2000-elf target.
* configure: Regenerate.
	* config/tc-iq2000.c: New file.
	* config/tc-iq2000.h: Likewise.
2003-01-03 21:47:21 +00:00
Chris Demetriou
071742cf97 [ gas/ChangeLog ]
2003-01-02  Chris Demetriou  <cgd@broadcom.com>

        * config/tc-mips.c: Update copyright years to include 2003.
        (mips_ip): Fix indentation of "+A", "+B", and "+C" handling.
        Additionally, clean up their code slightly and clean up their
        comments some more.


        * doc/c-mips.texi: Add MIPS32r2 to ".set mipsN" documentation.

[ gas/testsuite/ChangeLog ]
2003-01-02  Chris Demetriou  <cgd@broadcom.com>

        * gas/mips/elf_arch_mips32r2.d: Fix file description comment.

[ include/opcode/ChangeLog ]
2003-01-02  Chris Demetriou  <cgd@broadcom.com>

        * mips.h: Update copyright years to include 2002 (which had
        been missed previously) and 2003.  Make comments about "+A",
        "+B", and "+C" operand types more descriptive.
2003-01-02 20:03:09 +00:00
Dave Anglin
db66b2925e * config/obj-elf.c (special_sections): Work around HP's incorrect usage
of .init and .fini sections for array initializers and finalizers.
2003-01-01 16:56:34 +00:00
Chris Demetriou
bbcc08074f [ gas/ChangeLog ]
2002-12-31  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (validate_mips_insn, mips_ip): Recognize
	the "+D" operand, which will be used only by the disassembler.

[ gas/testsuite/ChangeLog ]
2002-12-31  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/cp0sel-names-mips32.d: New test.
	* gas/mips/cp0sel-names-mips32r2.d: New test.
	* gas/mips/cp0sel-names-mips64.d: New test.
	* gas/mips/cp0sel-names-numeric.d: New test.
	* gas/mips/cp0sel-names-sb1.d: New test.
	* gas/mips/cp0sel-names.s: New test source file.
	* gas/mips/mips.exp: Run new tests.

[ include/opcode/ChangeLog ]
2002-12-31  Chris Demetriou  <cgd@broadcom.com>

	* mips.h: Note that the "+D" operand type name is now used.

[ opcodes/ChangeLog ]
2002-12-31  Chris Demetriou  <cgd@broadcom.com>

	* mips-dis.c (mips_cp0sel_name): New structure.
	(mips_cp0sel_names_mips3264, mips_cp0sel_names_mips3264r2)
	(mips_cp0sel_names_sb1): New arrays.
	(mips_arch_choice): New structure members "cp0sel_names" and
	"cp0sel_names_len".
	(mips_arch_choices): Add references to new cp0sel_names arrays
	as appropriate, and make all existing entries reference
	appropriate mips_XXX_names_numeric arrays rather than simply
	using NULL.
	(mips_cp0sel_names, mips_cp0sel_names_len): New variables.
	(lookup_mips_cp0sel_name): New function.
	(set_default_mips_dis_options): Set mips_cp0sel_names and
	mips_cp0sel_names_len as appropriate.  Remove now-unnecessary
	checks for NULL register name arrays.
	(parse_mips_dis_option): Likewise.
	(print_insn_arg): Handle "+D" operand type.
	* mips-opc.c (mips_builtin_opcodes): Add new "+D" variants
	of mfc0, mtc0, dmfc0, and dmtc0 to print CP0+sel register
	names symbolically.
2002-12-31 08:11:18 +00:00
Chris Demetriou
af7ee8bfa9 [ bfd/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mipsisa32r2 case.
	* archures.c (bfd_mach_mipsisa32r2): New define.
	* bfd-in2.h: Regenerate.
	* cpu-mips.c (I_mipsisa32r2): New enum value.
	(arch_info_struct): Add entry for I_mipsisa32r2.
	* elfxx-mips.c (elf_mips_isa, _bfd_elf_mips_mach)
	(_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_32R2.
	(_bfd_mips_elf_final_write_processing): Add
	bfd_mach_mipsisa32r2 case.
	(_bfd_mips_elf_merge_private_bfd_data): Handle merging of
	binaries marked as using MIPS32 Release 2.

[ binutils/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* doc/binutils.texi (objdump): Note MIPS HWR (Hardware Register)
	changes in MIPS -M options.

[ gas/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* configure.in: Recognize mipsisa32r2, mipsisa32r2el, and
	CPU variants.
	* configure: Regenerate.
	* config/tc-mips.c (ISA_HAS_DROR, ISA_HAS_ROR): New defines.
	(macro_build): Handle "K" operand.
	(macro2): Use ISA_HAS_DROR and ISA_HAS_ROR in the places where
	CPU_HAS_DROR and CPU_HAS_ROR are currently used.
	(mips_ip): New variable "lastpos", and implement "+A", "+B",
	and "+C" operands for MIPS32 Release 2 ins/ext instructions.
	Implement "K" operand for MIPS32 Release 2 rdhwr instruction.
	(validate_mips_insn): Implement "+" as a way to extend the
	allowed operands, and implement "K", "+A", "+B", and "+C"
	operands.
	(OPTION_MIPS32R2): New define.
	(md_longopts): Add entry for OPTION_MIPS32R2.
	(OPTION_ELF_BASE): Adjust to accomodate OPTIONS_MIPS32R2.
	(md_parse_option): Handle OPTION_MIPS32R2.
	(s_mipsset): Reimplement handling of ".set mipsN" options
	and add support for ".set mips32r2".
	(mips_cpu_info_table): Add entry for "mips32r2" (MIPS32 Release 2).
	(md_show_usage): Document "-mips32r2" option.
	* doc/as.texinfo: Document "-mips32r2" option.
	* doc/c-mips.texi: Likewise.

[ gas/testsuite/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/cp0-names-mips32r2.d: New test.
	* gas/mips/hwr-names-mips32r2.d: New test.
	* gas/mips/hwr-names-numeric.d: New test.
	* gas/mips/hwr-names.s: New test source file.
	* gas/mips/mips32r2.d: New test.
	* gas/mips/mips32r2.s: New test source file.
	* gas/mips/mips32r2-ill.l: New test.
	* gas/mips/mips32r2-ill.s: New test source file.
	* gas/mips/mips.exp: Add mips32r2 architecture data array
	entry.  Run new tests mentioned above.

[ include/elf/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (E_MIPS_ARCH_32R2): New define.

[ include/opcode/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h: Document "+" as the start of two-character operand
	type names, and add new "K", "+A", "+B", and "+C" operand types.
	(OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB)
	(OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New
	defines.

[ opcodes/ChangeLog ]
2002-12-30  Chris Demetriou  <cgd@broadcom.com>

	* mips-dis.c (mips_cp0_names_mips3264r2, mips_hwr_names_numeric)
	(mips_hwr_names_mips3264r2): New arrays.
	(mips_arch_choice): New "hwr_names" member.
	(mips_arch_choices): Adjust for structure change, and add a new
	entry for "mips32r2" ISA.
	(mips_hwr_names): New variable.
	(set_default_mips_dis_options): Set mips_hwr_names.
	(parse_mips_dis_option): New "hwr-names" option which sets
	mips_hwr_names, and adjust "reg-names=ARCH" to set mips_hwr_names.
	(print_insn_arg): Change return type to "int"
	and use that to indicate number of characters consumed.
	Add support for "+" operand extension character, "+A", "+B",
	"+C", and "K" operands.
	(print_insn_mips): Adjust for changes to print_insn_arg.
	(print_mips_disassembler_options): Adjust for "hwr-names"
	addition and "reg-names" change.
	* mips-opc (I33): New define (shorthand for INSN_ISA32R2).
	(mips_builtin_opcodes): Note that "nop" and "ssnop" are special
	forms of "sll".  Add new MIPS32 Release 2 instructions: ehb,
	di, ei, ext, ins, jr.hb, jalr.hb, mfhc1, mfhc2, mthc1, mthc2,
	rdhwr, rdpgpr, seb, seh, synci, wrpgpr, wsbh.
	Note that hardware rotate instructions (ror, rorv) can be
	used on MIPS32 Release 2, and add the official mnemonics
	for them (rotr, rotrv) and the similar "rotl" mnemonic for
	left-rotate.
2002-12-31 07:29:29 +00:00
Nick Clifton
2469cfa284 Add support for msp430. 2002-12-30 19:25:13 +00:00
Alexandre Oliva
9605f328cd * dwarf2dbg.c (DWARF2_ADDR_SIZE): New macro.
(dwarf2_finish): Use it.
* doc/internals.texi (DWARF2_ADDR_SIZE): Document it.
* config/tc-mips.h (DWARF2_ADDR_SIZE): Override.
2002-12-25 21:20:31 +00:00
DJ Delorie
8f46beda1f * config/tc-xstormy16.c (md_cgen_lookup_reloc): Support
BFD_RELOC_XSTORMY16_12.
2002-12-20 21:14:20 +00:00
Alan Modra
5f5e16be30 * doc/as.texinfo (Invoking): Typo fix.
* config/tc-tic54x.c (encode_operand): Comment typo fix.
2002-12-19 05:47:45 +00:00
Chris Demetriou
82dd009716 [ opcodes/ChangeLog ]
2002-12-18  Chris Demetriou  <cgd@broadcom.com>

	* mips-opc.c (mips_builtin_opcodes): Remove one "ror" and two
	"dror" entries, and reorder the remaining "dror" and "ror" entries.

[ gas/ChangeLog ]
2002-12-18  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (macro): In M_DROL, M_DROR, M_ROL, and M_ROR,
	use hardware rotate ops as appropriate.  In M_DROL_I, M_DROR_I,
	M_ROL_I, and M_ROR_I, simplify code, clean up warnings, and
	arrange not to issue warnings about use of AT when AT is not
	actually used.

[ gas/testsuite/ChangeLog ]
2002-12-18  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/rol.s: Add ".set noat" and some new instructions to test.
	* gas/mips/rol64.s: Likewise.
	* gas/mips/rol.l: New file.
	* gas/mips/rol.d: Adjust to use rol.l and for rol.s changes.
	* gas/mips/rol64.l: New file.
	* gas/mips/rol64.d: Adjust to use rol64.l and for rol64.s changes.
	* gas/mips/rol-hw.d: New file.
	* gas/mips/rol-hw.l: New file.
	* gas/mips/rol64-hw.d: New file.
	* gas/mips/rol64-hw.l: New file.
	* gas/mips/mips.exp: Run rol-hw and rol64-hw tests.
2002-12-18 22:52:48 +00:00
DJ Delorie
9bb76eb8a6 * config/tc-xstormy16.c (md_cgen_lookup_reloc): If a relocation
has already been set up, use it.
2002-12-17 03:55:46 +00:00
Kazu Hirata
c03099e682 * ChangeLog-9295: Fix a typo.
* README: Likewise.
	* config/tc-d10v.c: Fix a comment typo.
	* config/tc-dlx.c: Likewise.
	* config/tc-h8300.h: Likewise.
	* config/tc-h8500.h: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-s390.c: Likewise.
	* config/tc-sh.h: Likewise.
	* config/tc-tic80.h: Likewise.
	* config/tc-w65.h: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/tc-z8k.h: Likewise.
	* testsuite/gas/h8300/cmpsi2.s: Likewise.
2002-12-17 01:13:56 +00:00
Alan Modra
30cdfbed02 * config/tc-d30v.c (check_range): Warning fixes, formatting.
Simplify sign extension.  Remove redundant unsigned < 0 test.
	* config/tc-i960.c (md_ri_to_chars): Prototype.
	* config/tc-mcore.c (md_pseudo_table): Fix typo.
	(dump_literals): Init brarsym, and test later instead of isforce.
2002-12-16 09:57:49 +00:00
Alan Modra
4cd62c96f7 * config/tc-ns32k.c (encode_operand): Constify operandsP and suffixP.
(parse): Constify line and lineptr.
	(md_begin): Calculate endop here.
2002-12-16 09:54:39 +00:00
Alan Modra
4eb4336cef * config/obj-vms.c: Formatting. Include fnctl.h.
(Create_VMS_Object_File): Fix creat call for sane unix systems.
	(Object_Record_Offset): Make it a size_t.
	(Flush_VMS_Object_Record_Buffer): Fix signed/unsigned warning.
	(VMS_TBT_Routine_End <Size>): Make var unsigned long.
	(VMS_Fix_Indirect_Reference <Offset>): Make arg addressT.
	(synthesize_data_segment <data_size>): Remove ATTRIBUTE_UNUSED.
	(vms_fixup_data_section <data_size>): Add here instead.
	* config/e-criself.c: Fix typo in last change.
2002-12-13 00:01:47 +00:00
Alan Modra
ebd0428ffe * config/e-criself.c: Fix typo in last change. 2002-12-12 23:12:34 +00:00
Alan Modra
17fc154eac * write.c (write_object_file): Fix signed/unsigned warning.
* config/e-crisaout.c (crisaout_bfd_name): Prototype.
	* config/e-criself.c (criself_bfd_name): Prototype.
	* config/obj-aout.c (s_sect): Remove unused function.
	* config/obj-bout.c (obj_bout_line <ignore>): Add ATTRIBUTE_UNUSED.
	* config/obj-coff.c (coff_last_bf): Don't declare for OBJ_XCOFF.
	(fixup_mdeps <h>): Add ATTRIBUTE_UNUSED.
	* config/obj-ecoff.c (ecoff_frob_file <addr>): Likewise.
	* config/obj-vms.c (setup_basic_type <spnt>): Likewise.
	(VMS_RSYM_Parse <Current_Routine>): Likewise.
	(vms_fixup_text_section <text_siz>): Likewise.
	(synthesize_data_segment <data_size>): Likewise.
	(vms_fixup_xtors_section <sect_no>): Likewise.
	(structure_count): Don't use implicit int type.
2002-12-12 22:46:47 +00:00
Alan Modra
bfc866a6e6 * config/tc-a29k.c (insert_sreg): Prototype.
(define_some_regs): Prototype, make static.
	(parse_operand): Likewise.
	(md_parse_option <c,arg>): Add ATTRIBUTE_UNUSED.
	(md_show_usage <stream>): Likewise.
	(md_section_align <segment>): Likewise.
	(md_convert_frag <all args>): Likewise.
	(md_estimate_size_before_relax <all args>): Likewise.
	(md_apply_fix3): Don't cast valP pointer type.  Fix bogus >>='s.
	* config/tc-arm.c (arm_validate_fix): Only for OBJ_COFF or OBJ_ELF.
2002-12-12 22:43:45 +00:00
Alan Modra
ebf19f1b15 * config/tc-d30v.c (md_parse_option <arg>): Add ATTRIBUTE_UNUSED.
(md_undefined_symbol <name>): Likewise.
	(md_convert_frag <all args>): Likewise.
	(write_long <opcode>): Likewise.
	(tc_gen_reloc <seg>): Likewise.
	(md_estimate_size_before_relax <all args>): Likewise.
	(md_apply_fix3 <seg>): Likewise.
	(s_d30v_align <ignore>): Likewise.
	(build_insn): Correct format string.
	(md_apply_fix3): Likewise.
2002-12-12 22:41:25 +00:00
Alan Modra
33b5881a60 * config/tc-fr30.c (md_parse_option <c,arg>): Add ATTRIBUTE_UNUSED.
(md_undefined_symbol <name>): Likewise.
	(md_convert_frag <all args>): Likewise.
	(md_cgen_lookup_reloc <insn>): Likewise.
	(md_begin): Delete unused vars.
	(md_assemble): Likewise.
	(md_estimate_size_before_relax): Likewise.
	(fr30_relax_frag): #if 0 out, seems unused.
	(md_atof): Remove declaration of atof_ieee.
	(restore_colon): Prototype.
2002-12-12 22:39:40 +00:00
Alan Modra
a08333bb26 * config/tc-frv.c (frv_insert_vliw_insn): Prototype.
(frv_find_in_vliw): Likewise.
	(frv_debug_tomcat): Likewise.
	(frv_adjust_vliw_count): Likewise.
	(frv_tomcat_shuffle): Likewise.
	(frv_tomcat_analyze_vliw_chains): Likewise.  Correct args to
	frv_find_in_vliw call.
	(md_atof): Remove declaration of atof_ieee.
2002-12-12 22:37:47 +00:00
Alan Modra
45e85b8790 * h8500-opc.h (h8500_table): Add missing initializers to quiet
warnings.

	* config/tc-h8500.c (cons): Delete declaration.
	(md_begin <opcode>): Constify.
	(displacement_size, immediate_size, absolute_size): Remove.
	(build_relaxable_instruction <operand>): Add ATTRIBUTE_UNUSED.
	(tc_crawl_symbol_chain <headers>): Likewise.
	(md_undefined_symbol <name>): Likewise.
	(tc_headers_hook <headers>): Likewise.
	(md_parse_option <c,arg>): Likewise.
	(md_show_usage <stream>): Likewise.
	(md_convert_frag <headers, seg>): Likewise.
	(tc_coff_symbol_emit_hook <ignore>): Likewise.
	(md_atof): Remove declaration of atof_ieee.
	(tc_aout_fix_to_chars): Remove unused function.
	(parse_reg): Prototype.
	(parse_exp): Prototype.
	(skip_colonthing): Prototype.  Use &&, not & in logical expressions.
	(parse_reglist): Prototype.
	(get_operand): Prototype.
	(get_operands): Prototype.
	(get_specific): Prototype.  Make "this_index" signed.
	(check): Prototype, make static.
	(insert): Prototype
	(build_relaxable_instruction): Prototype, make static.
	(build_bytes): Prototype.
	(wordify_scb): Prototype.
	* config/tc-h8500.h (start_label): Declare.
	(tc_coff_sizemachdep): Declare.
2002-12-12 22:34:05 +00:00
Alan Modra
650f02e951 * config/tc-i370.c (i370_ebcdic <unused>): Add ATTRIBUTE_UNUSED.
(i370_rmode <unused>): Likewise.
	(i370_csect <unused>): Likewise.
	(i370_dc <unused>): Likewise.
	(i370_ds <unused>): Likewise.
	(i370_elf_lcomm <unused>): Likewise.
	(i370_ltorg <ignore>): Likewise.
	(i370_using <ignore>): Likewise.
	(i370_drop <ignore>): Likewise.
	(i370_byte <ignore>): Likewise.
	(i370_tc <ignore>): Likewise.
	(md_estimate_size_before_relax <fragp, seg>): Likewise.
	(md_convert_frag <all args>): Likewise.
	(md_undefined_symbol <name>): Likewise.
	(md_pcrel_from_section <sec>): Likewise.
	(tc_gen_reloc <seg>): Likewise.
	(i370_section_letter): #if 0 unused functions.
	(i370_section_word, i370_section_type, i370_section_flags): Likewise.
	(symbol_locate): Prototype.
2002-12-12 22:29:00 +00:00
Alan Modra
d444b72608 * config/tc-i860.c (md_atof): Remove declaration of atof_ieee.
(md_number_to_disp, md_number_to_field): Remove.
	(md_apply_fix3): Correct format string and cast "fup".
2002-12-12 22:27:07 +00:00
Alan Modra
b9195351ad * config/tc-i960.c (md_convert_frag): Add ATTRIBUTE_UNUSED to args.
(s_endian <ignore>): Likewise.
	(md_undefined_symbol <name>): Likewise.
	(tc_crawl_symbol_chain <headers>): Likewise.
	(tc_set_bal_of_call): Likewise.
	(tc_coff_symbol_emit_hook <symbolP>): Likewise.
	(i960_handle_align <fragp>): Likewise.
	(i960_validate_fix <this_segment_type>): Likewise
	(tc_gen_reloc <section>): Likewise.
	(tc_coff_symbol_emit_hook): Only define for OBJ_COFF.
	(struct memS, struct regop): Forward declare.
	(brcnt_emit, brlab_next, cobr_fmt, ctrl_fmt, emit, get_args,
	get_cdisp, get_ispec, get_regnum, i_scan, mem_fmt, mema_to_memb,
	parse_expr, parse_ldconst, parse_memop, parse_po, parse_regop,
	reg_fmt, relax_cobr, s_leafproc, s_sysproc, shift_ok, syntax,
	targ_has_sfr, targ_has_iclass, tc_bfd_fix2rtype): Prototype.
	(md_chars_to_number, md_number_to_imm): Make static, prototype.
	(md_number_to_field): Likewise.
	(md_number_to_disp): Remove unused function.
	(md_atof): Remove declaration of atof_ieee.
	(md_apply_fix3): Correct md_number_to_imm call.
2002-12-12 22:25:00 +00:00
Alan Modra
64384dfd06 * config/tc-ip2k.c (md_assemble): Warning fix. 2002-12-12 22:21:04 +00:00
Alan Modra
78a0c6fb2d * config/tc-m32r.c (md_parse_option <arg>): Add ATTRIBUTE_UNUSED.
(fill_insn <ignore>): Likewise.
	(debug_sym <ignore>): Likewise.
	(md_undefined_symbol <name>): Likewise.
	(m32r_scomm <ignore>): Likewise.
	(md_convert_frag <abfd>): Likewise.
	(md_cgen_lookup_reloc <insn>): Likewise.
	(m32r_record_hi16 <seg>): Likewise.
	(md_estimate_size_before_relax): #if 0 old_fr_fix.
	(allow_m32rx): Prototype.
	(first_writes_to_seconds_operands): Prototype.
	(writes_to_pc): Prototype.
	(can_make_parallel): Prototype.
	(make_parallel): Prototype.
	(target_make_parallel): Prototype.
	(assemble_two_insns): Prototype.
	(m32r_record_hi16): Prototype.
	(md_atof): Remove declaration of atof_ieee.
	* config/tc-m32r.h (m32r_fix_adjustable): Declare.
	(m32r_force_relocation): Prototype.
	(m32r_elf_section_change_hook): Prototype.
2002-12-12 22:18:10 +00:00
Alan Modra
f1f5ef86e3 * config/tc-m68k.c (tc_gen_reloc <section>): Add ATTRIBUTE_UNUSED.
(md_show_usage): Fix signed/unsigned warning.
2002-12-12 22:16:16 +00:00
Alan Modra
38b9ac49eb * config/tc-m88k.c (get_reg): Make reg_prefix param unsigned.
(calcop): Ditto for reg_prefix var.
	(hexval): Add cast to fix signed/unsigned warning.
	(md_number_to_disp): Delete unused function.
	(md_number_to_field): Likewise.
	(float_cons, cons, s_globl, s_space, s_set, s_lcomm): Remove decl.
	(match_name): Prototype.
	(get_bf2): Prototype.
	(get_bf_offset_expression): Prototype.
2002-12-12 22:14:13 +00:00
Alan Modra
aa699a2caf * config/tc-mcore.c (mcore_s_literals <ignore>): Add ATTRIBUTE_UNUSED.
(md_undefined_symbol <ignore>): Likewise.
	(md_create_short_jump <all args>): Likewise.
	(md_create_long_jump <all args>): Likewise.
	(md_convert_frag <abfd, sec>): Likewise.
	(md_apply_fix3 <segment>): Likewise.
	(md_section_align <segment>): Likewise.
	(md_pcrel_from_section <sec>): Likewise.
	(tc_gen_reloc <section>): Likewise.
	(reg_m, reg_n, immediate): Delete unused vars.
	(dump_literals): Fix signed/unsigned warning.
	(enter_literal): Likewise.
	(parse_imm): Likewise.  Also fix format string.
	(parse_mem): Remove unused var.
	(md_assemble <LS>): Abort on unexpected inst.
	(md_atof): Remove declaration of atof_ieee.
	(md_parse_option): Remove unused vars.
	(md_apply_fix3): Fix format strings, cast args.
	(tc_gen_reloc): Delete unused var.
	* config/tc-mcore.h (tc_coff_sizemachdep): Declare.
2002-12-12 22:11:32 +00:00
Alan Modra
2a8ce8da88 * config/tc-mn10200.c (md_parse_option <c, arg>): Add ATTRIBUTE_UNUSED.
(md_undefined_symbol <name>): Likewise.
	(md_convert_frag <abfd>): Likewise.
	(tc_gen_reloc <seg>): Likewise.
	(check_operand <insn>): Likewise.
	(md_convert_frag): Fix format strings.
	(tc_gen_reloc): Delete fx_addsy - fx_subsy code.
2002-12-12 22:09:12 +00:00
Alan Modra
717acf4b26 * config/tc-openrisc.c (ignore_pseudo): Prototype.
(md_atof): Remove declaration of atof_ieee.
	* config/tc-or32.c (parse_operand): Prototype non-BFD too.
	(md_apply_fix3): Fix bogus >>='s.
	(md_undefined_symbol): Delete unused var.
2002-12-12 22:05:00 +00:00
Alan Modra
0e073f4ce8 * pj.h (pj_opc_info_t): Add union.
* pj-dis.c (print_insn_pj): Adjust for pj_opc_info_t change.

	* config/tc-pj.c (little, big, parse_exp_save_ilp): Prototype.
	(c_to_r, ipush_code, fake_opcode, alias): Likewise.
	(fake_opcode): Adjust for pj_opc_int_t change.
	(md_begin): Likewise.
	(md_assemble): Likewise.
	(ipush_code): Correct parse_exp_save_ilp call.  Test pending_reloc
	instead of non-existent third arg of parse_exp_save_ilp.
	(md_parse_option): Correct "little" and "big" calls.
2002-12-12 21:52:06 +00:00
Alan Modra
a798260029 * config/tc-sparc.c (s_register): Only declare #ifdef OBJ_ELF.
(md_apply_fix3 <segment>): Add ATTRIBUTE_UNUSED.
	(tc_gen_reloc <section>): Likewise.
2002-12-12 21:37:36 +00:00
Alan Modra
167795c452 * config/tc-tic30.c: #include stdarg.h or varargs.h.
(debug): Rewrite using VA_* macros.
	(md_estimate_size_before_relax): Add ATTRIBUTE_UNUSED to args.
	(md_convert_frag): Likewise.
	(md_parse_option): Likewise.
	(md_show_usage): Likewise.
	(md_undefined_symbol): Likewise.
	(tc_gen_reloc): Likewise.
	(md_operand): Likewise.
	(tc_aout_pre_write_hook): Delete.
	(struct tic30_insn): Make "operands" unsigned.
	(struct tic30_par_insn): Likewise.
	(md_assemble): Likewise for "count", "i" and "numops".
	(tic30_parallel_insn): Likewise for vars here.
	(tic30_operand): Likewise.  Remove useless unsigned >= 0 comparison.
	* config/tc-tic30.h (tc_aout_pre_write_hook): Define as empty.
	* config/tc-tic80.c (obj_coff_section): Delete declaration.
	(md_estimate_size_before_relax): Add ATTRIBUTE_UNUSED on args.
	(md_undefined_symbol): Likewise.
	(md_parse_option): Likewise.
	(md_convert_frag): Likewise.
	(tc_coff_symbol_emit_hook): Likewise.
	(md_atof): Remove declaration of atof_ieee.
	(const_overflow): Warning fixes, tidy.
	(get_operands): Delete unused vars.
	(internal_error_a): Adjust format string to expect a long for arg.
	(find_opcode): Warning fixes, simplify.
	(build_insn): Cast internal_error_a arg.
	(md_begin): Likewise.
	(md_apply_fix3): Likewise.
	(md_assemble): Delete unused var.
	* config/tc-tic80.h (tc_coff_fix2rtype): Prototype.
2002-12-12 21:34:53 +00:00
Alan Modra
78a33af2ee * config/tc-z8k.c (cons, obj_coff_section): Delete declarations.
(whatreg, parse_reg, parse_exp): Make static, prototype.
	(checkfor, regword, regaddr, get_ctrl_operand): Prototype.
	(get_flags_operand, get_interrupt_operand, get_cc_operand): Likewise.
	(get_operand, get_operands, get_specific, newfix): Likewise.
	(apply_fix, build_bytes): Likewise.
	(md_atof): Remove declaration of atof_ieee.
	(tc_aout_fix_to_chars): Delete.
	(md_begin): Constify "opcode".  Don't try to init opcode->idx.
	Fix s_unseg call.
	(md_parse_option): Fix s_segm and s_unseg calls.

	* z8kgen.c: Include "libiberty.h".
	(opt, args, toks): Fix initializer warnings.
	(chewname): Make "name" a char **.  Return mnemonic trimmed of
	operands.
	(gas): Improve emitted "DO NOT EDIT" warning.  Format emitted
	opcode_entry_type, and make "nicename" and "name" const.  Make
	z8k_table const too.  Formatting.  Generate idx as gas needs it.
	* z8k-opc.h: Regenerate.
2002-12-12 21:27:58 +00:00
Alexandre Oliva
af6ae2ade7 * tc-mips.c (RELAX_BRANCH_ENCODE): Remove reloc_s2 argument.
Adjust callers.
(RELAX_BRANCH_RELOC_S2): Delete.
(append_insn): Use only BFD_RELOC_16_PCREL_S2 for branches.
Do not handle BFD_RELOC_16_PCREL.
(macro_build, mips_ip): Likewise.
(md_pcrel_from): Return 4 for undefined symbols regardless of
mips_pic.
(md_apply_fix3): Use only BFD_RELOC_16_PCREL_S2 for branches.
Don't dereference howto if no such relocation is available.
Do not apply hack for in-place zero addend in NEWABI.
(md_convert_frag): Use only BFD_RELOC_16_PCREL_S2 for branches.
2002-12-12 04:40:07 +00:00
Alexandre Oliva
074d08b041 Alan Modra <amodra@bigpond.net.au> 2002-12-12 04:32:07 +00:00
Alexandre Oliva
497f322d4d * config/tc-mn10300.c (set_arch_mach): Change argument type to
avoid warnings.
(r_register_name, xr_register_name): Add prototype declarations.
2002-12-12 03:16:33 +00:00
H.J. Lu
ffbceea9fb 2002-12-08 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.c (md_apply_fix3): Remove the PCREL hack
	copied from tc-i386.c.
2002-12-08 21:25:38 +00:00
Stephane Carrez
75538612b6 * config/tc-m68hc11.c (STATE_INDEXED_PCREL): New relax code.
(md_relax_table): Define specific relax for PC-rel offsets.
	(build_indexed_byte): Use a STATE_INDEXED_PCREL relax code.
	(m68hc11_relax_frag): Handle the new relax code.
	(md_convert_frag): Likewise.
	(md_estimate_size_before_relax): Likewise.
2002-12-08 20:47:21 +00:00
Richard Henderson
fa2c7effe7 * config/ia64.c (enum reloc_func): Add FUNC_LT_RELATIVE_X.
(ia64_gen_real_reloc_type): Handle it.
        (pseudo_func): Add @ltoffx.
        (md_begin): Build .<ltoffx>.
        (ia64_force_relocation): True for LTOFF22X and LDXMOV.

        * gas/ia64/ltoff22x-1.[ds]: New.
        * gas/ia64/ia64.exp: Run it.
2002-12-05 23:20:40 +00:00
Alan Modra
114424c6b3 * config/tc-arm.c (arm_force_relocation): Move out of #if OBJ_ELF.
Move OBJ_COFF TC_FORCE_RELOCATION code here so that COFF handles
	ARM_IMMEDIATE and ARM_ADRL_IMMEDIATE relocs as for ELF.
	* config/tc-arm.h (TC_FORCE_RELOCATION): Define for both ELF and
	COFF to call arm_force_relocation.
2002-12-05 11:46:50 +00:00
Jim Wilson
c10d9d8fc3 Patch to update IA-64 port to SDM 2.1.
bfd/ChangeLog
	* cpu-ia64-opc.c: Add operand constant "ar.csd".
gas/ChangeLog
	* config/tc-ia64.c (pseudo_func): Add "@pause" constant for "hint"
	instruction.
	(emit_one_bundle): Handle "hint" instruction.
	(operand_match): Match IA64_OPND_AR_CSD.
gas/testsuite/ChangeLog
	* gas/ia64/opc-b.d: Update for instructions added by SDM2.1.
	* gas/ia64/opc-b.s: Ditto.
	* gas/ia64/opc-f.d: Ditto.
	* gas/ia64/opc-f.s: Ditto.
	* gas/ia64/opc-i.d: Ditto.
	* gas/ia64/opc-i.s: Ditto.
	* gas/ia64/opc-m.d: Ditto.
	* gas/ia64/opc-m.s: Ditto.
	* gas/ia64/opc-x.d: Ditto.
	* gas/ia64/opc-x.s: Ditto.
include/opcode/ChangeLog
	* ia64.h: Fix copyright message.
	(IA64_OPND_AR_CSD): New operand kind.
opcodes/ChangeLog
	* ia64-opc-d.c (ia64_opcodes_d): Add "hint" instruction.
	* ia64-opc-b.c: Add "hint.b" instruction.
	* ia64-opc-f.c: Add "hint.f" instruction.
	* ia64-opc-i.c: Add "hint.i" instruction.
	* ia64-opc-m.c: Add "hint.m", "fc.i", "ld16", "st16", and
	"cmp8xchg16" instructions.
	* ia64-opc-x.c: Add "hint.x" instruction.
	* ia64-opc.h (AR_CSD): New macro.
	* ia64-ic.tbl: Update according to SDM2.1.
	* ia64-raw.tbl: Ditto.
	* ia64-waw.tbl: Ditto.
	* ia64-gen.c (in_iclass): Handle "hint" like "nop".
	(lookup_regindex): Recognize AR[FCR], AR[EFLAG], AR[CSD],
	AR[SSD], AR[CFLG], AR[FSR], AR[FIR], and AR[FDR].
	* ia64-asmtab.c: Regenerate.
2002-12-05 02:08:02 +00:00
Nick Clifton
e1a9cb8e15 Fix the merging of .PPC.EMB.apuinfo sections. Add a test to make sure that
the fix continues to work.
2002-12-03 18:24:33 +00:00
Richard Henderson
a823923bf6 include/opcode/
* ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV.
bfd/
        * cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry.
opcodes/
        * ia64-opc-m.c: Add ld8.mov.
        * ia64-asmtab.c: Regenerate.
gas/
        * config/tc-ia64.c (operand_match): Add IA64_OPND_LDXMOV case.
gas/testsuite/
        * gas/ia64/ldxmov-1.[ds]: New.
        * gas/ia64/ldxmov-2.[ls]: New.
        * gas/ia64/ia64.exp: Run them.
2002-12-03 18:15:48 +00:00
Alan Modra
6297c1fede * config/tc-w65.c (s_longa): Prototype. Make static, specify int arg.
(cons, s_align_bytes): Delete declaration.
	(relax): Delete.
	(md_begin): Constify "struct opinfo *" var.  Don't try to make "name"
	strings common.
	(dot): Delete unused function.
	(w65_expression): Remove unused arg.
	(parse_exp): Prototype.  Remove unused arg.  Adjust w65_expression
	call.
	(get_operands): Prototype.  Constify "struct opinfo *" arg.  Fix
	parse_exp call.
	(get_specific): Prototype.  Constify "struct opinfo *" arg and return
	value.
	(check): Remove unused function.
	(build_Mytes): Prototype.  Constify "struct opinfo *" arg.  Abort
	on unhandled switch case.
	(md_assemble): Remove unused op_start, op_end, nlen, p vars.  Constify
	"opcode".
	(tc_crawl_symbol_chain): Delete unused function.
	(tc_headers_hook): Likewise.
	(tc_Nout_fix_to_chars): Likewise.
	(md_undefined_symbol): Add ATTRIBUTE_UNUSED.
	(md_parse_option): Likewise.
	(md_convert_frag): Likewise.
	(tc_coff_symbol_emit_hook): Likewise.
	(md_show_usage): Likewise.
	* config/tc-w65.h (tc_coff_sizemachdep): Declare.
	(TC_PARSE_CONS_EXPRESSION): w65_expression takes one arg.
	(w65_expression): Declare.

	* po/POTFILES.in: Regenerate.
2002-12-03 12:01:45 +00:00
Alan Modra
61b5f74bdb * config/tc-arm.c (arm_force_relocation): Return 0 for ARM_IMMEDIATE
and ARM_ADRL_IMMEDIATE.
2002-12-03 11:27:26 +00:00
Stephane Carrez
1910266d61 * config/tc-m68hc11.c (md_begin): Fix qsort warning.
(tc_gen_reloc): Mark section param as not used.
2002-12-01 11:19:31 +00:00
Stephane Carrez
c9e03e8be9 Fix Bug savannah/1825:
* config/tc-m68hc11.h (md_relax_frag): Define to support relaxations
	that are not pc-relative.
	(m68hc11_relax_frag): Declare.

	* config/tc-m68hc11.c (build_indexed_byte): Use a frag_var to handle
	the offsetable indexed addressing modes (n,r).
	(build_insn): Cleanup some locals.
	(m68hc11_relax_frag): New function imported from tc-cris.c to handle
	relaxation of difference between two symbols of same section.
	(md_convert_frag): For INDEXED_OFFSET relaxs, use the displacement
	only when this is a PC-relative operand and the offset is not absolute.
	(md_estimate_size_before_relax): Convert the INDEXED_OFFSET,UNDEF frag
	to INDEXED_OFFSET,STATE_BITS5 when the symbol is absolute; this will
	be handled by m68hc11_relax_frag.
2002-12-01 11:02:10 +00:00
Stephane Carrez
2f9046641f * config/tc-m68hc11.c (elf_flags): Set default ABI to gcc default
(32-bit int, 64-bit double).
	(md_longopts): New options -mshort, -mlong, -mshort-double and
	-mlong-double to control the ABI.
	(md_show_usage): Update.
	(md_parse_option): Handle new options.
	* doc/as.texinfo (Overview): Document new options for HC11/HC12.
2002-12-01 10:20:06 +00:00
Kaz Kojima
0174e383ca * config/tc-sh.c (md_apply_fix3): Take account of fx_offset
for BFD_RELOC_32_PLT_PCREL.
	* sh/gas/sh/pic.s: Add a test for ".long foo@PLT+.-2-label".
	* sh/gas/sh/pic.d: Add expected output.
2002-11-30 14:09:12 +00:00
Alan Modra
b34976b65a s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. Simplify
comparisons of bfd_boolean vars with TRUE/FALSE.  Formatting.
2002-11-30 08:39:46 +00:00
Nick Clifton
143c8e19b4 Allow BKPT instruction to be specified without an operand. Add a test for this. 2002-11-29 21:00:50 +00:00
Kaz Kojima
2bba414012 * config/tc-sh.c (md_apply_fix3): Call S_SET_THREAD_LOCAL
for TLS relocations.
2002-11-28 23:57:59 +00:00
Jakub Jelinek
7925dd68c9 * config/tc-ia64.c (md_apply_fix3): Add default case. 2002-11-28 23:32:59 +00:00
Jakub Jelinek
00f7efb6cc * symbols.c (S_SET_THREAD_LOCAL): New function.
* symbols.h (S_SET_THREAD_LOCAL): New prototype.
	* config/tc-i386.c (md_apply_fix3): Call S_SET_THREAD_LOCAL
	for TLS relocations.
	* config/tc-ia64.c (md_apply_fix3): Likewise.
	* config/tc-alpha.c (md_apply_fix3): Likewise.

	* ld-i386/tlsnopic.rd: Change NOTYPE to TLS for UND sg* symbols.
2002-11-28 14:15:55 +00:00
Hans-Peter Nilsson
fb2fd3e12c * config/tc-cris.c (cris_relax_frag): Fix typo in comment.
(md_assemble): Don't pass on branches to constants as relaxable.
	Tweak comment.
2002-11-26 08:21:35 +00:00
Svein Seldal
da91385db3 * gas/config/tc-tic4x.c (c4x_operands_match): Bugfix in direct
mode
2002-11-25 09:01:30 +00:00
Dave Anglin
1d4216362a * config/tc-hppa.h (tc_frob_symbol): Frob undefined unused symbols
only if they have default visibility.
2002-11-21 19:06:28 +00:00
Richard Henderson
33bf47a8fe * config/tc-alpha.c (alpha_fix_adjustable): Remove redundant
S_IS_DEFINED test.
2002-11-21 18:56:06 +00:00
Alan Modra
5f8075fa81 * config/tc-mcore.c (mcore_pool_count): New function.
(mcore_cons, mcore_float_cons, mcore_stringer, mcore_fill): Use it.
2002-11-21 11:43:40 +00:00
Klee Dienes
5ff3743120 2002-11-20 Klee Dienes <kdienes@apple.com>
* config/tc-mcore.c (md_begin): Use a const iterator.  Don't
        coalesce the name fields to use the same pointer.

        * config/tc-sh.c (md_begin): Use a const iterator.  Don't coalesce
        the name fields to use the same pointer.
        (get_specific): Check for opcodes with the same name using strcmp
        as well as comparing the pointer.
2002-11-21 09:54:12 +00:00
Richard Henderson
20e420c2ed * config/obj-elf.c (obj_elf_visibility): Overwrite only the
visibility portion of st_other.
2002-11-20 02:39:21 +00:00
Klee Dienes
a720f7bca7 2002-11-19 Klee Dienes <kdienes@apple.com>
* config/tc-h8300.c (struct h8_instruction): New type, used to
        wrap h8_opcodes with length, noperands, idx, and size fields
        (computed at run-time).
        (h8_instructions): New variable.
        (md_begin): Allocate the storage for h8_instructions.  Fill
        h8_instructions with pointers to the appropriate opcode and the
        correct value for the additional fields.
        (clever_message): Update to use h8_instructions instead of
        h8_opcodes.
        (build_bytes): Ditto.
        (get_specific): Ditto.
        (md_assemble): Ditto.
2002-11-19 22:56:42 +00:00
Martin Schwidefsky
0a00dd4807 * config/tc-s390.c (tc_s390_fix_adjustable): Re-add patch to prevent
adjustments to symbols in merge sections.
2002-11-19 14:58:54 +00:00
Alan Modra
81283cde50 * config/tc-alpha.c (s_alpha_prologue): as_bad when sym is NULL. 2002-11-19 07:32:28 +00:00
Kevin Buettner
14e777e044 Add support for 64-bit DWARF 2 formats to gas. 2002-11-18 21:08:54 +00:00
Alexandre Oliva
a816d1ed6a * config/tc-mips.c (s_change_section): Make sure input buffer
is not accessed past the end.  Don't hand
obj_elf_change_section a pointer into the input buffer.
2002-11-18 20:45:48 +00:00
Alexandre Oliva
6b70243f72 * config/tc-mips.c (tc_gen_reloc): Fix typo in handling of
GOT_LO16 on NEWABI.
2002-11-18 20:41:03 +00:00
Svein Seldal
9c87d6c7e4 * gas/config/tc-tic4x.c: Fixed proper commandline
parameters. Added support for new opcode-list format. General
	error message fixups.
	(c4x_inst_add): Reject insn not for our CPU
	(md_begin): Added matrix for setting the proper opcode-level &
	device-flags according to cpu type and revision. Rewrite the
	opcode hasher.
	(c4x_operand_parse): Fix opcode bug
	(c4x_operands_match): New function argument. Added dry-run
	mechanism, that is optional error generation. Added constraint 'i'
	and 'j'.
	(c4x_insn_check): Added new function for post-verification of the
	generated insn.
	(md_assemble): Check all opcodes before croaking because of an
	argument mismatch. Need this to be able to fully support
	ortogonally arguments.
	(md_parse_options): Revised commandprompt swicthes and added new
	ones.
	(md_show_usage): Complete rewrite of printout.
	* gas/testsuite/gas/tic4x/addressing.s: Fix bug in one insn
	* gas/testsuite/gas/tic4x/addressing_c3x.d: Update thereafter
	* gas/testsuite/gas/tic4x/addressing_c4x.d: Update thereafter
	* gas/testsuite/gas/tic4x/allopcodes.S: Add support for new
	opclass.h changes
	* gas/testsuite/gas/tic4x/opclasses.h: Added testsuites for
	the new enhanced opcodes.
	* gas/testsuite/gas/tic4x/opcodes.s: Regenerate
	* gas/testsuite/gas/tic4x/opcodes_c3x.d: Update from above
	* gas/testsuite/gas/tic4x/opcodes_c4x.d: Update from above
	* gas/testsuite/gas/tic4x/opcodes_new.d: Added new testsuite for
	the enhanced and special insns.
	* gas/testsuite/gas/tic4x/tic4x.exp: Added the opcodes_new testsuite
	* include/opcode/tic4x.h: File reordering. Added enhanced opcodes.
	* opcodes/tic4x-dis.c: Added support for enhanced and special
	insn.
	(c4x_print_op): Added insn class 'i' and 'j'
	(c4x_hash_opcode_special): Add to support special insn
	(c4x_hash_opcode): Update to support the new opcode-list
	format. Add support for the new special insns.
	(c4x_disassemble): New opcode-list support.
2002-11-18 09:09:35 +00:00
Svein Seldal
44287f6039 * gas/config/tc-tic4x.c: Remove c4x_pseudo_ignore function.
(c4x_operands_match): Added check for 8-bits LDF insn. Give
	  warning when using constant direct bigger than 2^16. Add the new
	  arguments.
	* include/opcode/tic4x.h: Major rewrite of entire file. Define
	  instruction classes, and put each instruction into a class.
	* opcodes/tic4x-dis.c: (c4x_print_op): Add support for the new
	  argument format. Fix bug in 'N' register printer.
2002-11-16 12:23:23 +00:00
Christopher Faylor
1a89f85f47 * config/tc-i386.h (EXTERN_FORCE_RELOC): Define only if STRICT_PE_FORMAT. 2002-11-11 17:11:53 +00:00
Svein Seldal
247b1fe610 gas tic4x target enhancements (long list - see gas/ChangeLog and
include/ChangeLog)
2002-11-11 14:29:01 +00:00
Hans-Peter Nilsson
480c8d9474 * config/tc-mmix.c (get_putget_operands): Mark both possible
operands as invalid at beginning.
2002-11-10 18:35:51 +00:00
Hans-Peter Nilsson
32c27eed9c * config/tc-mmix.c (md_convert_frag) <case STATE_GREG_DEF>:
Initialize target of fixup to zero.
2002-11-10 13:09:11 +00:00
Alexandre Oliva
78e1bb4045 * config/tc-mips.c (macro_build_lui): _gp_disp is not special on
NEWABI, but we should still emit HI16_S for non-PIC n32.
2002-11-07 02:29:32 +00:00
Richard Henderson
66ba4c770b * config/tc-alpha.c (alpha_validate_fix): Move code ...
(alpha_fix_adjustable): ... here.
        * config/tc-alpha.h (TC_VALIDATE_FIX): Remove.
2002-11-07 00:42:19 +00:00
Nick Clifton
c9e3887989 Adds support for fastcall symbols as used on Microsoft Windows platforms
(i386)
2002-11-06 19:36:20 +00:00
H.J. Lu
aa3d8fdff8 2002-11-05 H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (support_64bit_objects): Check *l before it
	is freed.
2002-11-05 21:53:13 +00:00
Nick Clifton
e96c546430 Set SEC_DATA and SEC_LOAD flags for sections marked as 's'. 2002-11-04 16:10:56 +00:00
Nick Clifton
8df7094c00 Allow an absolute reference to _GLOBAL_TABLE_OFFSET_ to be converted into
a GOT reloc.
2002-10-23 10:34:18 +00:00
Hans-Peter Nilsson
3a99b99035 * config/tc-mmix.h (tc_frob_file_before_adjust): Don't declare.
(tc_frob_file_before_adjust): Don't define.
	* config/tc-mmix.c (mmix_frob_local_reloc): Remove unused
	function.
	(mmix_frob_file_before_adjust): Remove ineffective function.
2002-10-23 05:21:09 +00:00
Hans-Peter Nilsson
1c97116001 * config/tc-cris.c (SIMPLE_EXPR): New macro.
(cris_relax_frag): New function.
	(md_estimate_size_before_relax) <case ENCODE_RELAX
	(STATE_BASE_PLUS_DISP_PREFIX, STATE_UNDF)>: Pass on unresolved
	expressions that will become absolute expressions to relaxation.
	(md_convert_frag) <case ENCODE_RELAX (STATE_BASE_PLUS_DISP_PREFIX,
	STATE_WORD)>: Expect only absolute expressions.  Use the symbol
	value, not distance to symbol.
	<case ENCODE_RELAX (STATE_BASE_PLUS_DISP_PREFIX, STATE_BYTE)>:
	Ditto.  Correct placement of fixup.
	(md_assemble): Use SIMPLE_EXPR when dissecting expressions.
	(gen_bdap): Ditto.
	* config/tc-cris.h (cris_relax_frag): Declare.
	(md_relax_frag): Define.
2002-10-22 23:45:40 +00:00
Alan Modra
7ed1d3463e * config/obj-elf.c (special_sections): Use correct types for init
array sections.
	(obj_elf_change_section): Don't mess with init array section type.
2002-10-22 10:56:45 +00:00
Richard Sandiford
631cb423b2 * config/tc-mips.c (mips_need_elf_addend_fixup): Return true
for relocs against symbols in a merged section.

testsuite/
	* gas/mips/elf-rel7.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2002-10-21 14:59:30 +00:00
Alexandre Oliva
6047c971a2 * config/tc-mips.c (md_begin): Add $fcc registers to the symbol
table as register names.
2002-10-19 00:37:50 +00:00
Martin Schwidefsky
75504fede8 * config/tc-s390.c (md_parse_option): Set s390_arch_size to 32
for option -m31.
2002-10-18 07:30:06 +00:00
Alan Modra
3ca4bdc352 * config/tc-i386.h (EXTERN_FORCE_RELOC): Define.
(MD_APPLY_SYM_VALUE): Define for PE too.
2002-10-15 02:20:53 +00:00
Alan Modra
ec266e19eb * config/tc-v850.c (CHECK_): Remove token pasting operator. 2002-10-14 11:28:57 +00:00
Alexandre Oliva
10181a0dce * config/tc-mips.c (s_gpdword): New function.
(mips_pseudo_table): Add .gpdword.
(mips_need_elf_addend_fixup): never for NEWABI.
(md_apply_fix3): Don't mark BFD_RELOC64 after GPREL16 or
GPREL32 as done.
(s_cpadd): Generate .cpadd on NEWABI.
2002-10-13 21:22:49 +00:00
Alan Modra
49181a6af7 * config/tc-ppc.c (ppc_cleanup): Make 'i' unsigned int. 2002-10-12 10:23:17 +00:00
Alexandre Oliva
4a6a3df43d * config/tc-mips.h (mips_relax_frag): Take segment as argument.
(md_relax_frag): Adjust macro.
* config/tc-mips.c (mips_relax_branch): New variable.
(RELAX_BRANCH_ENCODE, RELAX_BRANCH_P, RELAX_BRANCH_LIKELY,
RELAX_BRANCH_LINK, RELAX_BRANCH_TOOBAR): New.
(RELAX_MIPS16_P): Adjust.
(append_insn): Emit branch to non-constant in a frag_var if
branch-relaxation is desirable and possible.
(OPTION_RELAX_BRANCH, OPTION_NO_RELAX_BRANCH): New options.
(OPTION_ELF_BASE): Adjust.
(md_parse_option): Handle new options.
(md_apply_fix3): Update comment on EMBEDDED_PIC conditional
branch relaxation.
(relaxed_branch_length): New function.
(md_estimate_size_before_relax): Handle branch frags.
(mips_relax_frag): Likewise.
(md_convert_frag): Handle branch frags.  Warn if branch is
relaxed.
2002-10-12 05:23:33 +00:00
Kaz Kojima
9efb3b7baf * config/tc-sh.c (sh_force_relocation): Make sure TLS relocs get
emitted.
	(md_apply_fix3): Add TLS relocs.
	(sh_parse_name): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF and
	@DTPOFF.
2002-10-11 14:34:46 +00:00
Alan Modra
3e02c1cc58 * config/tc-i386.c (output_jump): Set fx_signed for loop/jcxz.
(md_estimate_size_before_relax): Likewise for 8 bit branches.
2002-10-11 00:25:32 +00:00
Joern Rennecke
ac62e7a368 * config/tc-sh.c (assemble_ppi): Initialize reg_x / reg_y / reg_n
inside loop.
2002-10-10 13:37:32 +00:00
Stephen Clarke
f61dfddf2d * config/tc-sh64.c (sh64_target_format): Add support for sh64
Linux environment.
2002-10-09 19:07:43 +00:00
Kaz Kojima
28602ebff6 * contig/tc-sh.c (sh_local_pcrel): New.
(sh_force_relocation): Use sh_local_pcrel.
	(md_pcrel_from_section): Check the relocation type whether it
	should be resolved locally. Use S_FORCE_RELOC.
	* testsuite/gas/sh/pcrel2.d: Check code also.
2002-10-03 04:58:28 +00:00
Alan Modra
97724570fe * config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Define.
(TC_FORCE_RELOCATION): Tidy arg.
2002-10-01 06:15:33 +00:00
Richard Sandiford
60b63b728f [gas/]
* doc/c-mips.texi: Add entries for -march=vr4120,vr4130,vr4181,
	vr5400 and vr5500.  Add entry for -mfix-vr4122-bugs.
	* config/tc-mips.c (CPU_HAS_DROR, CPU_HAS_ROR): New macros.
	(hilo_interlocks): True for CPU_VR5500.
	(gpr_interlocks, cop_interlocks): True for CPU_VR5400 and CPU_VR5500.
	(mips_fix_vr4122_bugs): New.
	(append_insn): Work around 4122 errors if mips_fix_vr4122_bugs.
	(mips_emit_delays): Likewise.
	(macro2) [M_DROLI]: Use dror or dror32 if CPU_HAS_DROR.
	[M_ROLI]: Likewise ror if CPU_HAS_ROR.
	(validate_mips_insn, mips_ip): Handle '[', ']', 'e' and '%'.
	(OPTION_FIX_VR4122, OPTION_NO_FIX_VR4122): New options.
	(md_longopts): Add -mfix-vr4122-bugs and -no-mfix-vr4122-bugs.
	(OPTION_ELF_BASE): Bump.
	(md_parse_option): Handle the new options.
	(mips_cpu_info_table): Add entries for vr4120, vr4130, vr4181,
	vr5400 and vr5500.

[gas/testsuite/]
	* gas/mips/mips4100.[sd]: Move dmadd16 and madd16 checks to...
	* gas/mips/vr4111.[sd]: ...this new test.
	* gas/mips/vr4120.[sd],
	* gas/mips/vr4122.[sd],
	* gas/mips/vr5400.[sd],
	* gas/mips/vr5500.[sd]: New tests.
	* mips.exp: Run them.
2002-09-30 12:04:54 +00:00
H.J. Lu
7a49a8c2b4 2002-09-29 H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (md_apply_fix3): Subtract the symbol value
	twice if howto->pcrel_offset is true.
2002-09-30 06:32:00 +00:00
Jason Thorpe
04ff5cb5c7 * config/tc-vax.c (md_estimate_size_before_relax): Only try to
convert undefined references to GOT32/PLT32 if PIC code is
requested.  Fix comment.
2002-09-28 20:01:43 +00:00
Daniel Jacobowitz
8ba4dac030 2002-09-27 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* config/tc-sh.c (sh_force_relocation): Return 0 for
        some PC relative relocations when not relaxing.
        * testsuite/gas/sh/pcrel2.s: New.
        * testsuite/gas/sh/pcrel2.d: New.
        * testsuite/gas/sh/basic.exp: Add pcrel2 test.
2002-09-28 00:41:27 +00:00
Jakub Jelinek
bffbf9406f bfd/
* reloc.c: Add x86-64 TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-x86-64.c (x86_64_elf_howto): Fix size fields for 32-bit
	relocs.  Add TLS relocs.
	(x86_64_reloc_map): Add TLS relocs.
	(elf64_x86_64_info_to_howto): Adjust for added TLS relocs.
	(struct elf64_x86_64_link_hash_entry): Add tls_type field.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE): Define.
	(elf64_x86_64_hash_entry): Define.
	(struct elf64_x86_64_obj_tdata): New.
	(elf64_x86_64_tdata, elf64_x86_64_local_got_tls_type): Define.
	(struct elf64_x86_64_link_hash_table): Add tls_ld_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf64_x86_64_link_hash_table_create): Initialize tls_ld_got.
	(elf64_x86_64_copy_indirect_symbol): Swap tls_type if necessary.
	(elf64_x86_64_mkobject): New.
	(elf64_x86_64_elf_object_p): Allocate struct elf64_x86_64_obj_tdata.
	(elf64_x86_64_tls_transition): New.
	(elf64_x86_64_check_relocs): Add r_type variable and use it.
	Handle TLS relocs.
	(elf64_x86_64_gc_sweep_hook): Handle TLS relocs.
	(allocate_dynrelocs): Allocate GOT space for TLS relocs.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(dtpoff_base, tpoff): New.
	(elf64_x86_64_relocate_section): Handle TLS relocs.
	(elf64_x86_64_finish_dynamic_symbol): Only handle non-TLS GOT
	entries.
	(bfd_elf64_mkobject): Define.

	* elf32-i386.c (elf_i386_check_relocs) [R_386_TLS_LE]: Set
	DF_STATIC_TLS if shared.
gas/
	* config/tc-i386.c (tc_i386_fix_adjustable): Add x86-64 TLS relocs.
	Define them if not BFD_ASSEMBLER.
	(lex_got): Handle @tlsgd, @dtpoff and @tpoff in 64-bit mode, add
	@tlsld.
	(md_apply_fix3): No addend for BFD_RELOC_X86_64_TLSGD,
	BFD_RELOC_X86_64_TLSLD and BFD_RELOC_X86_64_GOTTPOFF.
	(tc_gen_reloc): Handle x86-64 TLS relocs.
include/
	* elf/x86-64.h: Add TLS relocs.
ld/testsuite/
	* lib/ld-lib.exp (run_ld_link_tests): Add.
	* ld-sh/sh64/sh64.exp (run_ld_link_tests, regexp_diff,
	file_contents): Remove.
	(sh64tests): Add 6th field to the tests array.
	* ld-i386/i386.exp (run_ld_link_tests): Remove.
	* ld-x86-64/x86-64.exp: New.
	* ld-x86-64/tlsbin.dd: New test.
	* ld-x86-64/tlsbinpic.s: New test.
	* ld-x86-64/tlsbin.rd: New test.
	* ld-x86-64/tlsbin.s: New test.
	* ld-x86-64/tlsbin.sd: New test.
	* ld-x86-64/tlsbin.td: New test.
	* ld-x86-64/tlslib.s: New test.
	* ld-x86-64/tlspic1.s: New test.
	* ld-x86-64/tlspic2.s: New test.
	* ld-x86-64/tlspic.dd: New test.
	* ld-x86-64/tlspic.rd: New test.
	* ld-x86-64/tlspic.sd: New test.
	* ld-x86-64/tlspic.td: New test.
2002-09-27 19:29:18 +00:00
Alan Modra
8773354138 * config/tc-avr.c (md_apply_fix3): Reinstate code handling pcrel
fixups to current or absolute section.
2002-09-27 04:38:47 +00:00
Jim Wilson
825487fa2d Fix v850 .offset pseudo-op
* config/tc-v850.c (v850_offset): Use frag_var instead of frag_now_fix
	and frag_more.
2002-09-26 22:04:19 +00:00
Thiemo Seufer
3396de367a /gas/ChangeLog
* config/tc-mips.c (CPU_HAS_MIPS16): Add mips-lsi-elf as MIPS16
	capable configuration.
	(macro_build): Check for MIPS16 capability, not for actual MIPS16 code
	generation.
	(mips_ip): Likewise.

	/gas/testsuite/ChangeLog
	* gas/mips/mips-jalx.d: New file, check jalx assembly.
	* gas/mips/mips-jalx.s: Likewise.
	* gas/mips/mips-no-jalx.l: Likewise.
	* gas/mips/mips-no-jalx.s: Likewise.
	* gas/mips/mips16-jalx.d: Likewise.
	* gas/mips/mips16-jalx.s: Likewise.
	* gas/mips/mips.exp: Add new tests.

	/opcodes/ChangeLog:
	* mips-dis.c (print_insn_mips): Always allow disassembly of
	32-bit jalx opcode.
2002-09-26 09:56:35 +00:00
Thiemo Seufer
f3c0ec86c4 * config/tc-mips.c (append_insn): Fix jump overflow check.
* gas/mips/jal-range.s: Fix jump overflow check.
	* gas/mips/jal-range.l: Likewise.
2002-09-26 09:00:08 +00:00
Alan Modra
52271982a7 * config/tc-i386.c (process_operands): Warn about "lea" segment
overrides.
2002-09-24 01:46:42 +00:00
Alan Modra
6539b54baf * config/tc-i386.c (md_apply_fix3): Replace S_IS_EXTERNAL,
S_IS_WEAK etc. with S_FORCE_RELOC call.  Correct comment.
	Rename "fseg" to "sym_seg".
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
2002-09-21 10:39:17 +00:00