aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-mips.c
AgeCommit message (Collapse)AuthorFilesLines
2005-07-30 * config/tc-mips.c (s_mips_globl): Allow multiple symbols per .globl.Thiemo Seufer1-23/+38
2005-06-07gas:Zack Weinberg1-2/+2
* cgen.c, cgen.h, tc.h, write.c, config/obj-coff.c * config/tc-a29k.c, config/tc-alpha.c, config/tc-alpha.h * config/tc-arc.c, config/tc-arc.h, config/tc-arm.c * config/tc-arm.h, config/tc-avr.c, config/tc-avr.h * config/tc-cris.c, config/tc-crx.c, config/tc-d10v.c * config/tc-d10v.h, config/tc-d30v.c, config/tc-d30v.h * config/tc-dlx.c, config/tc-dlx.h, config/tc-fr30.h * config/tc-frv.c, config/tc-frv.h, config/tc-h8300.c * config/tc-h8500.c, config/tc-hppa.c, config/tc-hppa.h * config/tc-i370.c, config/tc-i370.h, config/tc-i386.c * config/tc-i386.h, config/tc-i860.c, config/tc-i860.h * config/tc-i960.c, config/tc-i960.h, config/tc-ia64.c * config/tc-ip2k.c, config/tc-ip2k.h, config/tc-iq2000.c * config/tc-iq2000.h, config/tc-m32r.c, config/tc-m32r.h * config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-m68k.c * config/tc-m68k.h, config/tc-m88k.c, config/tc-maxq.c * config/tc-mcore.c, config/tc-mcore.h, config/tc-mips.c * config/tc-mips.h, config/tc-mmix.c, config/tc-mn10200.c * config/tc-mn10300.c, config/tc-msp430.c, config/tc-ns32k.c * config/tc-openrisc.h, config/tc-or32.c, config/tc-or32.h * config/tc-pdp11.c, config/tc-pj.c, config/tc-pj.h * config/tc-ppc.c, config/tc-ppc.h, config/tc-s390.c * config/tc-s390.h, config/tc-sh64.c, config/tc-sh.c * config/tc-sh.h, config/tc-sparc.c, config/tc-sparc.h * config/tc-tahoe.c, config/tc-tic30.c, config/tc-tic4x.c * config/tc-tic54x.c, config/tc-tic80.c, config/tc-v850.c * config/tc-v850.h, config/tc-vax.c, config/tc-vax.h * config/tc-w65.c, config/tc-xstormy16.c, config/tc-xstormy16.h * config/tc-xtensa.c, config/tc-z8k.c: Replace all instances of the string "_apply_fix3" with "_apply_fix". * po/POTFILES.in, po/gas.pot: Regenerate. bfd: * coff-i386.c: Change md_apply_fix3 to md_apply_fix in comment. cgen: * doc/porting.texi: Change all mention of md_apply_fix3 and gas_cgen_md_apply_fix3 to md_apply_fix and gas_cgen_md_apply_fix respectively.
2005-06-07* config/tc-mips.c (mips_cpu_info_table): Add cpu names m4k, 24k,Maciej W. Rozycki1-0/+7
24kc, 24kf and 24kfx under MIPS32 release 2.
2005-06-01gas/:Maciej W. Rozycki1-3/+3
* config/tc-mips.c (load_register): Add leading "0x" to the output of sprintf_vma(). (macro): Likewise. gas/testsuite/: * gas/mips/ldstla-32-1.l: Update to handle leading zeroes. * gas/mips/ldstla-32-mips3-1.l: Likewise.
2005-05-05Update the address and phone number of the FSFNick Clifton1-2/+2
2005-04-20(macro): Use sprintf_vma to convert a > 32 bit number into a readable string.Nick Clifton1-9/+16
(load_register): Likewise.
2005-04-18* config/tc-mips.c (normalize_constant_expr): Don't check forMaciej W. Rozycki1-5/+9
HAVE_32BIT_GPRS. (check_absolute_expr): Only call normalize_constant_expr() if HAVE_32BIT_GPRS. (mips_ip): Likewise. * config/tc-mips.c (check_absolute_expr): Fix formatting.
2005-04-15* config/tc-mips.c (normalize_constant_expr): Fix formatting.Maciej W. Rozycki1-1/+1
2005-04-14* config/tc-mips.c (macro) [ldd_std]: Don't attempt the GPMaciej W. Rozycki1-1/+2
optimization for constant addresses.
2005-04-13gas/:Maciej W. Rozycki1-33/+54
* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro. (normalize_address_expr): New function to sign-extend address offsets that fit into 32 bits in 32-bit mode. (macro_build_ldst_constoffset): Use normalize_address_expr() instead of a handcoded sequence. (load_register): Likewise. Report oversized numbers in a useful way. (macro) [ld_st, ldd_std]: Reject all oversized offsets, not only for constant addresses. Report oversized numbers in a useful way. (mips_ip): Use normalize_address_expr() for addresses. gas/testsuite/: * gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail and include more instructions/offsets that are meant to succeed. Use $4 instead $3 to avoid register dependencies. * gas/mips/ldstla-32.d: Update accordingly. * gas/mips/ldstla-32-shared.d: Likewise. * gas/mips/ldstla-32-mips3.d: New test based on the above, except for mips3. * gas/mips/ldstla-32-mips3-shared.d: Similarly, for PIC. * gas/mips/ldstla-32-mips3.s: Source for the new tests. * gas/mips/ldstla-32-1.s: New test for offsets that are meant to fail. * gas/mips/ldstla-32-mips3-1.s: Likewise, for mips3. * gas/mips/ldstla-32-1.l: Stderr output for the new test. * gas/mips/ldstla-32-mips3-1.l: Likewise. * gas/mips/mips.exp: Run the new tests.
2005-04-102005-04-10 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu1-2/+2
* config/tc-mips.c (md_apply_fix3): Fix typos in BFD_RELOC_64.
2005-03-21* config/tc-mips.c (mips_frob_file): Sort BFD_RELOC_MIPS16_LO16Maciej W. Rozycki1-2/+5
relocations correctly as well. (mips_fix_adjustable): Don't make BFD_RELOC_MIPS16_LO16 relocations in mergeable sections section-relative either.
2005-03-15==> ChangeLog <==Eric Christopher1-0/+9
2005-03-14 Eric Christopher <echristo@redhat.com> * config/tc-mips.c: Include dw2gencfi.h. (mips_cfi_frame_initial_instructions): New. * config/tc-mips.h (TARGET_USE_CFIPOP): Define. (tc_cfi_frame_initial_instructions): Ditto. (DWARF2_DEFAULT_RETURN_COLUMN): Ditto. (DWARF2_CIE_DATA_ALIGNMENT): Ditto. * Makefile.am: Update dependencies. * Makefile.in: Regenerate. ==> testsuite/ChangeLog <== 2005-03-14 Eric Christopher <echristo@redhat.com> * gas/cfi/cfi-mips-1.d, gas/cfi/cfi-mips-1.s: New dump test. * gas/cfi/cfi.exp: Run it. * gas/cfi/cfi-common-1.d: Update. * gas/cfi/cfi-common-2.d: Ditto. * gas/cfi/cfi-common-3.d: Ditto. * gas/cfi/cfi-common-4.d: Ditto.
2005-03-09 * config/tc-mips.c (s_cpsetup): Use '__gnu_local_gp' instead of '_gp'Richard Sandiford1-1/+1
for -mno-shared optimization.
2005-03-09 * config/tc-mips.c (MAX_VR4130_NOPS, MAX_DELAY_NOPS): New macros.Richard Sandiford1-5/+76
(MAX_NOPS): Bump to 4. (mips_fix_vr4130): New variable. (nops_for_vr4130): New function. (nops_for_insn): Use MAX_DELAY_NOPS rather than MAX_NOPS. Use nops_for_vr4130 if working around VR4130 errata. (OPTION_FIX_VR4130, OPTION_NO_FIX_VR4130): New macros. (md_longopts): Add -mfix-vr4130 and -mno-fix-vr4130. (md_parse_option): Handle them. (md_show_usage): Print them. * doc/c-mips.texi: Document -mfix-vr4130 and -mno-fix-vr4130.
2005-03-09 * config/tc-mips.c (append_insn): Remove cop_interlocks test fromRichard Sandiford1-11/+0
branch delay code.
2005-03-09 * config/tc-mips.h (mips_flush_pending_output): Delete.Richard Sandiford1-116/+97
(mips_emit_delays): Declare. (md_flush_pending_output): Use mips_emit_delays. * config/tc-mips.c (mips_no_prev_insn): Remove parameter; always forget the previous instructions. (md_begin, append_insn, md_parse_option): Update callers. (mips_emit_delay): Remove parameter. Move INSNS != 0 code to start_noreorder. (mips_align, s_change_sec, s_cons, s_float_cons, s_gpword) (s_gpdword): Update callers. (start_noreorder, end_noreorder): New functions. (macro, macro2, mips16_macro, s_mipsset): Use them instead of manipulating mips_opts or prev_nop_frag directly. (mips_flush_pending_output): Delete.
2005-03-09 * config/tc-mips.c (mips_move_labels): New function, taken from...Richard Sandiford1-27/+22
(append_insn, mips_emit_delays): ...here.
2005-03-09 * config/tc-mips.c (MAX_NOPS): New macro.Richard Sandiford1-411/+331
(history): Resize to 1 + MAX_NOPS. (fix_vr4120_class): New enumeration. (vr4120_conflicts): New variable. (init_vr4120_conflicts): New function. (md_begin): Call it. (insn_uses_reg): Constify first argument. (classify_vr4120_insn, insns_between, nops_for_insn, nops_for_sequence) (nops_for_insn_or_target): New functions. (append_insn): Use the new nops_for_* functions instead of inline delay checks. Generalize prev_nop_frag handling to handle an arbitrary history length. Insert nops into the history buffer once the number of nops in prev_nop_frag is fixed. (emit_delays): Use nops_for_insn instead of inline delay checks.
2005-03-09 * config/tc-mips.c (append_insn): Remove now-redundant nops != 0Richard Sandiford1-8/+0
check from branch delay code. Remove unnecessary check for branches.
2005-03-09 * config/tc-mips.c (dummy_opcode): Delete.Richard Sandiford1-312/+252
(nop_insn, mips16_nop_insn): New variables. (NOP_INSN): New macro. (insn_length, create_insn, install_insn, move_insn, add_fixed_insn) (add_relaxed_insn, insert_into_history, emit_nop): New functions. (md_begin): Initialize nop_insn and mips16_nop_insn. (append_insn): Use the new emit_nop function to add nops, recording them in the history buffer. Use add_fixed_insn or add_relaxed_insn to reserve room for the instruction and install_insn to install the final form. Use insert_into_history to record the instruction in the history buffer. Use move_insn to do delay slot filling. (mips_emit_delays): Use add_fixed_insn instead of the emit_nop macro. (macro_build, mips16_macro_build, macro_build_lui, mips_ip) (mips16_ip): Use create_insn to initialize mips_cl_insns.
2005-03-09 * config/tc-mips.c (INSERT_BITS, EXTRACT_BITS, INSERT_OPERAND)Richard Sandiford1-203/+168
(EXTRACT_OPERAND, MIPS16_INSERT_OPERAND, MIPS16_EXTRACT_OPERAND): New. (insn_uses_reg, reg_needs_delay, append_insn, macro_build) (mips16_macro_build, macro_build_lui, mips16_macro, mips_ip) (mips16_ip): Use the new macros instead of explicit masks and shifts.
2005-03-09 * config/tc-mips.c (mips_cl_insn): Replace the valid_p, delay_slot_pRichard Sandiford1-40/+13
and extended_p fields with a single fixed_p field. (append_insn, mips_no_prev_insn): Adjust accordingly.
2005-03-09 * config/tc-mips.c (mips_cl_insn): Replace reloc_type array withRichard Sandiford1-20/+11
a single mips16_absolute_jump_p bit. (append_insn): Adjust accordingly.
2005-03-09 * config/tc-mips.h (mips_cl_insn): Move definition to...Richard Sandiford1-189/+224
* config/tc-mips.c (mips_cl_insn): ...here. Add new fields: frag, where, fixp, reloc_type, valid_p, noreorder_p, delay_slot_p and extended_p. (history): New variable. (prev_insn, prev_prev_insn, prev_insn_valid, prev_insn_frag) (prev_insn_where, prev_insn_reloc_type, prev_insn_fixp) (prev_insn_is_delay_slot, prev_insn_unreordered, prev_insn_extended) (prev_prev_insn_unreordered): Delete. (reg_needs_delay, append_insn, mips_no_prev_insn, mips_emit_delays) (macro_start): Replace uses of prev_insn* with the equivalent history[] field.
2005-03-05 bfd/ChangeLogThiemo Seufer1-8/+12
* elfxx-mips.c (mips_elf_calculate_relocation): Handle special '__gnu_local_gp' symbol used by gas -mno-shared. gas/ChangeLog * config/tc-mips.c (macro_build_lui): Use '__gnu_local_gp' instead of '_gp' for -mno-shared optimization. (s_cpload): Ditto. (s_abicalls): Document it in the comment. (md_show_usage): Document the -mno-shared option. gas/testsuite/ChangeLog * gas/mips/elf-rel23b.d: Use '__gnu_local_gp' instead of '_gp' for -mno-shared optimization. * gas/mips/elf-rel25a.d: Ditto. ld/testsuite/ChangeLog * ld-mips-elf/multi-got-no-shared-1.s, ld-mips-elf/multi-got-no-shared-2.s, ld-mips-elf/multi-got-no-shared.d: New tests. * ld-mips-elf/mips-elf.exp: Run them.
2005-03-04 * config/tc-mips.c (mips_set_options): Add sym32 field.Richard Sandiford1-85/+56
(mips_opts): Initialize it. (HAVE_32BIT_ADDRESSES): Set to true if pointers are 32 bits wide. (HAVE_64BIT_ADDRESSES): Redefine as !HAVE_32BIT_ADDRESSES. (HAVE_32BIT_SYMBOLS, HAVE_64BIT_SYMBOLS): New macros. (load_address): Use HAVE_64BIT_SYMBOLS instead of HAVE_64BIT_ADDRESSES when deciding whether to use a symbolic %highest/%higher expansion. (macro): Likewise. Remove o64/n32 linux hack. Always use ADDRESS_ADD*_INSN for address addition in the expansion of "dla" and "la". Handle constants separately from symbolic expressions in the "ld_st:" case, using 64-bit arithmetic if HAVE_64BIT_ADDRESSES and using load_register to load the high part of the address. (OPTION_MSYM32, OPTION_NO_MSYM32): New macros. (OPTION_ELF_BASE): Bump by 2. (md_longopts): Add entries for -msym32 and -mno-sym32. (md_parse_option): Handle them. (usage): Document them. (s_mipsset): Handle ".set sym32" and ".set nosym32". (s_cpload, s_cpsetup): Use HAVE_64BIT_SYMBOLS instead of HAVE_64BIT_ADDRESSES to detect 64-bit values of "_gp". * doc/c-mips.texi: Document ".set sym32", ".set nosym32", -msym32 and -mno-sym32.
2005-03-03 * config/tc-mips.c (load_address): Implement GP optimizationThiemo Seufer1-42/+80
for 64bit address space non-PIC. Fix formatting. (macro): Likewise. Simplify code. (md_parse_option): Don't bail out if -G 0 is set for PIC code. (mips_after_parse_args): Simplify code.
2005-03-02 * config/tc-mips.c (percent_op): Add %tlsgd, %tlsldm, %dtprel_hi,Daniel Jacobowitz1-0/+22
%dtprel_lo, %tprel_hi, %tprel_lo, and %gottprel. (parse_relocation): Check for a word break after a relocation operator. (md_apply_fix3): Handle TLS relocations, and mark thread-local symbols.
2005-02-23 * cgen.c: Warning fixes.Alan Modra1-19/+19
* config/tc-arc.c: Likewise. * config/tc-arm.c: Likewise. * config/tc-avr.c: Likewise. * config/tc-d10v.c: Likewise. * config/tc-d30v.c: Likewise. * config/tc-frv.c: Likewise. * config/tc-frv.h: Likewise. * config/tc-h8300.c: Likewise. * config/tc-h8500.c: Likewise. * config/tc-i370.c: Likewise. * config/tc-i960.c: Likewise. * config/tc-ia64.c: Likewise. * config/tc-ip2k.c: Likewise. * config/tc-m68hc11.c: Likewise. * config/tc-maxq.c: Likewise. * config/tc-mcore.c: Likewise. * config/tc-mips.c: Likewise. * config/tc-msp430.c: Likewise. * config/tc-pj.c: Likewise. * config/tc-ppc.c: Likewise. * config/tc-ppc.h: Likewise. * config/tc-s390.c: Likewise. * config/tc-sh.c: Likewise. * config/tc-sh64.c: Likewise. * config/tc-tic4x.c: Likewise. * config/tc-tic80.c: Likewise. * config/tc-v850.c: Likewise. * config/tc-vax.c: Likewise. * config/tc-w65.c: Likewise. * config/tc-xstormy16.c: Likewise. * config/tc-z8k.c: Likewise.
2005-02-222005-02-22 Eric Christopher <echristo@redhat.com>Eric Christopher1-3/+19
* ld-mips-elf/reloc-merge-lo16.d: Correct symbol table size for __start. 2005-02-22 Eric Christopher <echristo@redhat.com> * config/tc-mips.c (struct proc): Change isym to func_sym. New member func_end_sym. (s_mips_ent): Update. (s_mips_end): Ditto. Add code to compute function size.
2005-02-22gas/:Maciej W. Rozycki1-17/+10
* config/tc-mips.c (append_insn): Call dwarf2_emit_insn() before emitting insn. gas/testsuite/: * gas/mips/mips16-dwarf2.d: New test to check DWARF2 line information for MIPS16. * gas/mips/mips16-dwarf2.s: Source for the new test. * gas/mips/mips.exp: Run the new test.
2005-02-18 /gas/ChangeLogThiemo Seufer1-150/+150
* config/tc-mips.c (macro_build_ldst_constoffset): Fail on $at uses after .set noat. (load_address): Likewise. (macro): Likewise. Don't try to avoid $at use by sacrificing the target register before it is stored, it won't work. /gas/testsuite/ChangeLog * gas/mips/noat-1.s, gas/mips/noat-1.d, gas/mips/noat-2.s, gas/mips/noat2.l, gas/mips/noat-3.s, gas/mips/noat-3.l, gas/mips/noat-4.s, gas/mips/noat-4.l, gas/mips/noat-5.s, gas/mips/noat-5.l, gas/mips/noat-6.s, gas/mips/noat-6.l, gas/mips/noat-7.s, gas/mips/noat-7.l: New files, testcases for .set noat in macro expansions. * gas/mips/mips.exp: Run new testcases. * gas/mips/rol-hw.d, gas/mips/rol-hw.l, gas/mips/rol.d, gas/mips/rol.l, gas/mips/rol.s, gas/mips/rol64-hw.d, gas/mips/rol64-hw.l, gas/mips/rol64.d, gas/mips/rol64.l, gas/mips/rol64.s, gas/mips/uld2-eb.d, gas/mips/uld2-el.d, gas/mips/uld2.l, gas/mips/uld2.s, gas/mips/ulh2-eb.d, gas/mips/ulh2-el.d, gas/mips/ulh2.l, gas/mips/ulh2.s, gas/mips/ulw2-eb-ilocks.d, gas/mips/ulw2-eb.d, gas/mips/ulw2-el-ilocks.d, gas/mips/ulw2-el.d, gas/mips/ulw2.l, gas/mips/ulw2.s: Don't try to test .set noat.
2005-02-17 * tc.h (struct relax_type, relax_typeS): Move from here..Alan Modra1-10/+8
* as.h: ..to here. Make rlx_forward and rlx_backward an offsetT. * ecoff.c (ecoff_new_file): Add appfile param. * ecoff.h (ecoff_new_file): Likewise. * itbl-lex.h: New file. * itbl-lex.l: Include itbl-lex.h. * itbl-parse.y: Likewise. (insntbl_line, yyparse, yylex): Move to itbl-lex.h. * read.c (s_app_file_string): Mark appfile possibly unused. * subsegs.c (seg_not_empty_p): Make sec possibly unused. * subsegs.h (struct seg_info_trash): Delete. (seg_info): Use segment_info_type instead. * config/obj-coff.c (struct filename_list): Make filename const char *. * config/obj-ecoff.h (obj_app_file): Pass app to ecoff_new_file. * config/obj-elf.c (elf_file_symbol): Similarly. * config/tc-a29k.c (md_apply_fix3): Make val a valueT. Don't use signed right shift. * config/tc-arc.c (md_operand): Warning fix. * config/tc-arm.c (arm_parse_reloc): Only define when OBJ_ELF. (md_begin): Rearrange #if defined OBJ_COFF || defined OBJ_ELF. * config/tc-cris.h (TC_IMPLICIT_LCOMM_ALIGNMENT): Use do while. * config/tc-frv.c (frv_force_relocation): Warning fix. * config/tc-m68k.c (md_parse_option): Delete unused var. * config/tc-mcore.c (mylog2): Rename from log2 throughout. * config/tc-sparc.c: Likewise. (s_common): Warning fix. * config/tc-mips.c (append_insn): Use unsigned long long expressions. * config/tc-mmix.c (PUSHJSTUB_MAX, PUSHJSTUB_MIN): Define from addressT. * config/tc-s390.c (s390_insn): Delete test of unsigned >= 0. * config/tc-sh.c (sh_cfi_frame_initial_instructions, sh_regname_to_dw2regnum): Only define for OBJ_ELF. * config/tc-tic4x.c (tic4x_insert_reg): Use ISLOWER. (tic4x_do_align): Use TIC_NOP_OPCODE. * config/tc-tic4x.h (TIC_NOP_OPCODE): Rename from NOP_OPCODE. * config/tc-vax.c: Include netinet/in.h. (tc_headers_hook): Formatting. * config/tc-xstormy16.c (md_pcrel_from_section): Correct parens.
2005-02-16 * config/tc-mips.c (load_address): Fix formatting.Thiemo Seufer1-21/+37
(macro): Don't use AT if .set noat is in effect. Fix formatting. Catch macros which are unexpandable without AT. Remove duplicate zeroing of used_at. (macro2): Remove duplicate zeroing of used_at.
2005-02-15bfd/:Maciej W. Rozycki1-32/+84
2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> * elf32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16 reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders. (elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel. (elf_mips16_gprel_howto): Likewise. Redefine src_mask and dst_mask. (mips16_gprel_reloc): Remove bit shuffling; call _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp() and _bfd_mips16_elf_reloc_shuffle() instead. (mips16_reloc_map): New reloc map for MIPS16 relocs. (bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16 relocs. (mips_elf32_rtype_to_howto): Fetch MIPS16 howtos from elf_mips16_howto_table_rel. * elf64-mips.c (mips16_elf64_howto_table_rel): New array for MIPS16 REL reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders. (elf_mips16_jump_howto): Move into mips16_elf64_howto_table_rel. (elf_mips16_gprel_howto): Likewise. Redefine src_mask and dst_mask. (mips16_elf64_howto_table_rela): New array for MIPS16 RELA reloc howtos. Add R_MIPS16_26, R_MIPS16_GPREL, R_MIPS16_HI16 and R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders. (mips16_gprel_reloc): Remove bit shuffling; call _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp() and _bfd_mips16_elf_reloc_shuffle() instead. (mips16_reloc_map): New reloc map for MIPS16 relocs. (bfd_elf64_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16 relocs. (mips_elf64_rtype_to_howto): Fetch MIPS16 howtos from mips16_elf64_howto_table_rela or mips16_elf64_howto_table_rel. * elfn32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16 REL reloc howtos. Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders. (elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel. (elf_mips16_gprel_howto): Likewise. Redefine src_mask and dst_mask. (mips16_gprel_reloc): Remove bit shuffling; call _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp() and _bfd_mips16_elf_reloc_shuffle() instead. (mips16_reloc_map): New reloc map for MIPS16 relocs. (bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16 relocs. (mips_elf_n32_rtype_to_howto): Fetch MIPS16 howtos from elf_mips16_howto_table_rela or elf_mips16_howto_table_rel. * elfxx-mips.c (_bfd_mips16_elf_reloc_unshuffle): New function to handle bit shuffling for MIPS16 relocs. (_bfd_mips16_elf_reloc_shuffle): Likewise. (_bfd_mips_elf_lo16_reloc): Use _bfd_mips16_elf_reloc_unshuffle() and _bfd_mips16_elf_reloc_shuffle(). (_bfd_mips_elf_generic_reloc): Likewise. (mips_elf_calculate_relocation): Likewise. Handle R_MIPS16_HI16 and R_MIPS16_LO16. (mips_elf_obtain_contents): Remove bit shuffling. (mips_elf_perform_relocation): Likewise; call _bfd_mips16_elf_reloc_unshuffle() and _bfd_mips16_elf_reloc_shuffle() instead. (_bfd_mips_elf_relocate_section): Likewise. Handle R_MIPS16_HI16 and R_MIPS16_LO16. * elfxx-mips.h (_bfd_mips16_elf_reloc_unshuffle): Declare. (_bfd_mips16_elf_reloc_shuffle): Likewise. * reloc.c (BFD_RELOC_MIPS16_HI16): New reloc. (BFD_RELOC_MIPS16_HI16_S): Likewise. (BFD_RELOC_MIPS16_LO16): Likewise. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. gas/: 2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> * config/tc-mips.c (reloc_needs_lo_p): Handle BFD_RELOC_MIPS16_HI16_S. (fixup_has_matching_lo_p): Handle BFD_RELOC_MIPS16_LO16. (append_insn): Add BFD_RELOC_MIPS16_GPREL, BFD_RELOC_MIPS16_HI16_S and BFD_RELOC_MIPS16_LO16 to relocs to suppress overflow complaints on. (mips16_ip): Resolve BFD_RELOC_MIPS16_HI16_S, BFD_RELOC_MIPS16_HI16 and BFD_RELOC_MIPS16_LO16 for constants. Call my_getSmallExpression() to parse percent operators. (percent_op_match, mips_percent_op): Separate definitions. (mips16_percent_op): Define percent operators for the MIPS16 mode. (parse_relocation): Handle the MIPS16 mode using mips16_percent_op. (md_apply_fix3): Handle BFD_RELOC_MIPS16_HI16, BFD_RELOC_MIPS16_HI16_S and BFD_RELOC_MIPS16_LO16. gas/testsuite/: 2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> * gas/mips/mips16-hilo.d: New test for the R_MIPS16_HI16 and R_MIPS16_LO16 relocs. * gas/mips/mips16-hilo-n32.d: Likewise, for the n32 ABI. * gas/mips/mips16-hilo.s: Source for the new tests. * gas/mips/mips.exp: Run the new tests. include/: 2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> * elf/mips.h (R_MIPS16_GOT16): New reloc code. (R_MIPS16_CALL16): Likewise. (R_MIPS16_HI16): Likewise. (R_MIPS16_LO16): Likewise. (R_MIPS16_min): New fake reloc code. (R_MIPS16_max): Likewise. ld/testsuite/: 2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> * ld-mips-elf/mips16-hilo.d: New test for the R_MIPS16_HI16 and R_MIPS16_LO16 relocs. * ld-mips-elf/mips16-hilo-n32.d: Likewise, for the n32 ABI. * ld-mips-elf/mips16-hilo.s: Auxiliary source for the new tests. * ld-mips-elf/mips-elf.exp: Run the new tests.
2005-01-31 * config/atof-ieee.c, config/obj-coff.c, config/obj-elf.c,Ben Elliston1-110/+0
config/obj-ieee.c, config/obj-som.c, config/obj-vms.c, config/tc-a29k.c, config/tc-alpha.c, config/tc-arc.c, config/tc-arm.c, config/tc-d30v.c, config/tc-dlx.c, config/tc-fr30.c, config/tc-h8300.c, config/tc-h8500.c, config/tc-i370.c, config/tc-i386.c, config/tc-i960.c, config/tc-ia64.c, config/tc-m32r.c, config/tc-m32r.h, config/tc-m68hc11.c, config/tc-m68hc11.h, config/tc-mips.c, config/tc-mn10200.c, config/tc-msp430.c, config/tc-ns32k.c, config/tc-openrisc.c, config/tc-or32.c, config/tc-pdp11.c, config/tc-pj.c, config/tc-sparc.h, config/tc-tic54x.c, config/tc-tic80.c, config/tc-v850.c, config/tc-w65.c, config/tc-xtensa.c, config/tc-z8k.c, config/xtensa-relax.c: Remove #if 0'd code throughout.
2005-01-19 2005-01-19 Fred Fish <fnf@specifixinc.com>Fred Fish1-1/+1
* config/tc-mips.c (dummy_opcode): Add init for new struct member.
2004-12-11 * config/tc-mips.c (macro) [M_LA_AB]: Give an error for a offsetIan Lance Taylor1-0/+2
which is too large in the case of NO_PIC without 64-bit addresses.
2004-12-10 * config/tc-mips.c (mips_in_shared): New static variable.Ian Lance Taylor1-15/+78
(macro_build_lui): Permit "_gp" if !mips_in_shared. (md_longopts): Add -mshared and -mno-shared. (md_parse_option): Handle OPTION_MSHARED and OPTION_MNO_SHARED. (s_cpload): Implement !mips_in_shared case. (s_cpsetup): Likewise. * doc/c-mips.texi (MIPS Opts): Document -mno-shared. * NEWS: Mention -mno-shared.
2004-12-09 * config/tc-mips.c (append_insn): If we emit a nop during a relaxIan Lance Taylor1-0/+2
sequence, increase the size of the sequence.
2004-12-09 * config/tc-mips.c (mips_cpu_info_table): Change "9000" entry toIan Lance Taylor1-1/+1
use CPU_RM9000.
2004-11-10 * obj.h (struct format_ops <app_file>): Add int param.Alan Modra1-1/+1
* read.h (s_app_file_string): Likewise. * read.c (s_app_file_string): Likewise. (s_app_file): Adjust s_app_file_string call. * config/tc-mips.c (s_mips_file): Likewise. * config/obj-coff.h (obj_app_file): Add app param. * config/obj-ecoff.h (obj_app_file): Likewise. * config/obj-multi.h (obj_app_file): Likewise. * config/obj-elf.h (elf_file_symbol): Likewise. * config/obj-elf.c (elf_file_symbol): Only emit one file symbol if called for # preprocessor lines.
2004-10-07 * config/tc-mips.c (append_insn): Use fix_new rather than fix_new_expRichard Sandiford1-32/+31
to build the second and third fixups for a composite relocation. (macro_read_relocs): New function. (macro_build): Use it. (s_cpsetup): Pass all three composite relocation codes to macro_build. Simplify fragging code accordingly. (s_gpdword): Use fix_new rather than fix_new_exp for the second part of the composite relocation. Set fx_tcbit in both fixups.
2004-10-07 * config/tc-mips.c (append_insn): Set fx_tcbit for composite relocs.Richard Sandiford1-11/+16
(md_apply_fix3): Don't treat composite relocs as done.
2004-10-042004-10-04 Eric Christopher <echristo@redhat.com>Eric Christopher1-1/+0
* config/tc-mips.c (md_apply_fix3): Remove erroneous assert.
2004-08-18* config/tc-mips.c (append_insn): Handle delay slots in branch likelyThiemo Seufer1-0/+1
correctly.
2004-07-20* config/tc-mips.c (append_insn): Handle constant expressions withMaciej W. Rozycki1-8/+7
no associated relocation. (mips_ip): Cancel the expression after use for the Q format specifier. (parse_relocation): Return no relocation for unsupported operators. (my_getSmallExpression): Return no relocation if no relocation operators are used.
2004-07-08 * config/tc-mips.c (mips_fix_adjustable): If the full addend isRichard Sandiford1-5/+24
going to be split into more than one in-place addend, return 0 for relocations against mergeable sections. Associate comments with code.
2004-07-03 * config/tc-mips.c (HAVE_IN_PLACE_ADDENDS): New macro.Richard Sandiford1-56/+96
(reloc_needs_lo_p): Only return true if HAVE_IN_PLACE_ADDENDS. (mips_frob_file): Rework so that only a single pass through the relocs is needed. Allow %lo()s to have higher offsets than their corresponding %hi()s or %got()s. testsuite/ * gas/mips/elf{,el}-rel.d: Adjust so that the earliest %hi() matches the earliest %lo(). * gas/mips/elf-rel11.d: Don't expect the relocs to be reordered. * gas/mips/elf-rel20.[sd]: New test. * gas/mips/mips.exp: Run it.