Thiemo Seufer
553178e47b
Reallow unrestricted use of .set mipsX pseudo-op in gas.
...
Update testcases accordingly.
2001-09-07 05:54:12 +00:00
Thiemo Seufer
cb56d3d327
* elf32-mips.c (mips_elf_calculate_relocation): Fix overflow handling
...
of R_MIPS_PC16.
* config/tc-mips.c (append_insn): Handle BFD_RELOC_16_PCREL.
(macro_build): Use BFD_RELOC_16_PCREL_S2 only for embedded
PIC, BFD_RELOC_16_PCREL for the rest.
(mips_ip): Likewise.
(md_pcrel_from): return the right offset for the differently shifted
pcrel relocs.
(md_apply_fix): Handle BFD_RELOC_16_PCREL.
* gas/mips/beq.d: Check branches to external labels.
* gas/mips/beq.s: Likewise.
* gas/mips/bge.d: Likewise.
* 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/elempic.d: Switch from R_MIPS_GNU_REL16_S2 to R_MIPS_PC16.
* gas/mips/empic.d: Likewise.
* gas/mips/empic.s: Likewise.
* gas/mips/telempic.d: Likewise.
* gas/mips/tempic.d: Likewise.
2001-09-07 05:00:37 +00:00
Eric Christopher
3c02b2abd6
2001-08-31 Eric Christopher <echristo@redhat.com>
...
Jason Eckhardt <jle@redhat.com>
* config/tc-mips.c (mips_cpu_info): Add support for mipsisa32,
5kc, and 20kc. Clean up old entries.
2001-08-31 21:06:40 +00:00
Thiemo Seufer
7283eb8605
* tc_mips.c (load_address): Reflect change to MAX_GPREL_OFFSET.
...
(macro): Reflect change to MAX_GPREL_OFFSET.
2001-08-27 18:48:27 +00:00
Thiemo Seufer
e7d556dfef
* tc_mips.h (MAX_GPREL_OFFSET): Change it to the maximum allowed
...
value, not the word beyond maximum.
* tc_mips.c (macro_build_lui): Code cleanup.
(macro): Reflect change to MAX_GPREL_OFFSET.
(mips_ip): Check explicitly against S_EX_NONE.
(my_get_SmallExpression): parse for %gp_rel, not %gprel.
(md_apply_fix): Code cleanup.
2001-08-26 10:42:12 +00:00
Thiemo Seufer
1ff54a84b4
* tc_mips.c (md_begin): Warn about incompatibility between -march=FOO
...
and -mipsN option, continue with default ISA.
2001-08-21 01:13:05 +00:00
Thiemo Seufer
a6bacc8047
* config/tc-mips.c (md_parse_option): #ifdef the
...
traditional/non-traditional names as it is done in mips_target_format.
2001-08-21 00:59:48 +00:00
H.J. Lu
e87a02842a
2001-08-18 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (show): Add the missing prototype.
2001-08-18 18:03:24 +00:00
Thiemo Seufer
fb1b323293
* config/tc-mips.c (S_EX_*): New enum for my_getSmallExpression()
...
return values.
(mips_ip): Use the new return values instead of characters. Add
support for %higher and %highest.
(LP): Remove.
(RP): Remove.
(my_getSmallExpression): Make parsing case insensitive and more
reliable. Add support for %higher and %highest. Further support to
parse %gprel and %neg is implemented but currently deactivated.
2001-08-18 17:24:52 +00:00
Thiemo Seufer
be00bdddad
Set MIPS n32 ABI flag in ELF header if appropriate.
2001-08-16 21:48:28 +00:00
Thiemo Seufer
07ae3efa01
Remove obsolete special handling of 64bit Relocations.
2001-08-16 15:12:09 +00:00
Kazu Hirata
f72c8c98df
* config/tc-mips.c: Fix a comment typo.
2001-08-11 15:15:15 +00:00
Richard Sandiford
ea1fb5dc3b
* config/tc-mips.c (move_register): New function.
...
(macro_build): Remove OPCODE_IS_MEMBER's gp32 argument.
(mips_ip): Likewise.
(macro2): Use move_register rather than macro_build for moves.
(mips16_macro): Likewise.
(macro): Likewise. Handle M_MOVE.
2001-08-10 16:24:32 +00:00
Thiemo Seufer
38487616e6
Replace a bunch of magic constants in tc-mips.c with their proper
...
defines from mips.h.
2001-08-07 13:22:46 +00:00
Thiemo Seufer
9a41af6410
Some formatting fixes and assorted cleanup in tc-mips.c.
2001-08-07 13:15:26 +00:00
Thiemo Seufer
6dce9e24b3
* config/tc-mips.c (md_begin): Take -mcpu value into account even when
...
-mipsX is specified. Make both -mcpu/-march and -mcpu/-mtune pairs
mutually exclusive (if they are different).
(md_parse_option): Warn if an -march/-mtune/-mcpu/-m<cpu> option is
set more than once.
2001-08-07 12:46:22 +00:00
Richard Sandiford
236bd878b5
* config/tc-mips.c (md_apply_fix): Don't subtract the symbol value
...
from GPREL addends.
2001-08-03 18:33:34 +00:00
Richard Sandiford
ca4e0257d1
* doc/c-mips.tex (-mgp32, -mfp32): Added -mfp32, unified with -mgp32.
...
* config/tc-mips.c (mips_fp32, mips_32bit_abi): New static variables.
(md_long_opts): Add -mfp32 option.
(md_parse_option): Handle it. Set mips_32bit_abi given -mabi=32.
(md_show_usage): Show usage for -mfp32 and -mgp32.
(HAVE_32BIT_GPRS, HAVE_32BIT_FPRS): New macros.
(HAVE_64BIT_GPRS, HAVE_64BIT_FPRS): New macros, inverse of the above.
(HAVE_32BIT_ADDRESSES): New macro.
(load_register): Use HAVE_32BIT_GPRS to determine the register width.
(load_address): Use HAVE_32BIT_ADDRESSES to determine the address size.
(s_cprestore, s_cpadd): Likewise.
(macro): Use HAVE_32BIT_GPRS to determine the width of registers
used in branch and M_LI_D macros. Use HAVE_64BIT_FPRS to determine
the width registers used in M_LI_DD macros. Use HAVE_32BIT_ADDRESSES
to determine the width of addresses in load, store and jump macros.
(macro2): Use HAVE_32BIT_GPRS to determine the width of registers
used in set instructions; do not check the address size for them.
Use HAVE_32BIT_ADDRESSES to determine the width of addresses in
unaligned load and store macros.
(mips_ip): Use the new macros to check the width of a register when
processing float constants. Force a constant into memory if it is
destined for an FPR and the FPRs are wider than the GPRs. Warn about
odd FPR numbers if HAVE_32BIT_FPRS. Use HAVE_32BIT_GPRS rather
than mips_gp32 to select synthetic instructions.
(macro_build): Use HAVE_32BIT_GPRS rather than mips_gp32 to select
synthetic instructions.
2001-08-02 10:15:24 +00:00
H.J. Lu
46bac6de18
2001-07-25 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (md_estimate_size_before_relax): Make sure
we treat weak like extern only for ELF.
(mips_fix_adjustable): Make sure we don't adjust extern/weak
symbols only for ELF.
2001-07-25 22:27:46 +00:00
Chris Demetriou
2f4dcb115b
2001-07-25 Chris Demetriou <cgd@broadcom.com>
...
* config/tc-mips.c: Fix spelling error in comment.
2001-07-25 20:34:39 +00:00
Alan Modra
ac62c3468d
* symbols.c (S_GET_VALUE): Don't treat O_constant and local
...
symbols specially. Always resolve, adding fr_address to value.
* write.c (write_object_file): Don't add fr_address to sym values.
(relax_frag): Likewise.
(relax_segment): Likewise.
* config/obj-ieee.c (do_symbols): Likewise.
* config/tc-cris.c (md_convert_frag): Likewise.
* config/tc-fr30.c (md_convert_frag): Likewise.
* config/tc-i386.c (md_convert_frag): Likewise.
* config/tc-m32r.c (md_convert_frag): Likewise.
* config/tc-m68hc11.c (md_convert_frag): Likewise.
* config/tc-mcore.c (md_convert_frag): Likewise.
* config/tc-mips.c (mips16_extended_frag): Likewise.
* config/tc-ns32k.c (md_convert_frag): Likewise.
* config/tc-m68k.c (md_convert_frag_1): Likewise.
(BRANCHBWL, BRABSJUNC, BRABSJCOND, BRANCHBW, FBRANCH, DBCCLBR,
DBCCABSJ, PCREL1632, PCINDEX, ABSTOPCREL): Decrement.
(md_relax_table): Remove first four entries. Format.
(md_estimate_size_before_relax): Remove old_fix. Don't bother
setting fr_var. Simplify byte branch checks.
2001-07-23 13:03:40 +00:00
H.J. Lu
2b3c5a5dc1
2001-07-22 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (s_mips_end): Remove unused variables.
(s_mips_frame): Add ATTRIBUTE_UNUSED.
2001-07-22 18:11:29 +00:00
Eric Christopher
18ae5d728b
2001-07-04 Eric Christopher <echristo@redhat.com>
...
* doc/c-mips.texi (MIPS Opts): Document 12000 as valid cpu.
* config/tc-mips.c (mips_cpu_info_table): Add rm5200, rm5231, rm5261,
and rm5721 as valid cpu strings.
(md_show_usage): Add rm5200, rm5231, rm5261, rm5721.
2001-07-04 12:32:07 +00:00
Richard Sandiford
7461da6e23
[gas]
...
* config/tc-mips.c (md_apply_fix): Prevent addend from becoming zero
if it's expected to be non-zero.
[gas/testsuite]
* gas/mips/elf-rel3.s: Add zero word to end of file.
2001-07-04 09:49:29 +00:00
Eric Christopher
ec68c924f0
2001-06-28 Eric Christopher <echristo@redhat.com>
...
H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (mips_arch): New. Use mips_arch instead
of mips_cpu for the ISA selection.
(md_longopts): Add OPTION_MARCH and OPTION_MTUNE.
(md_parse_option): Handle OPTION_MARCH and OPTION_MTUNE.
(mips_tune): New. Use mips_tune for scheduling and optimization
issues.
(append_insn): Use mips_tune and mips_arch.
(macro_build): Ditto.
(mips_ip): Ditto.
(md_begin): Handle mips_arch, mips_tune and mips_cpu. For
backwards compatability mips_cpu generates arch and tune.
(md_show_usage): Document new behavior.
* doc/c-mips.texi (MIPS Opts): Document -march and -mtune.
Deprecate -mcpu.
* NEWS: Update.
2001-06-28 Eric Christopher <echristo@redhat.com>
* gas/mips/usd.d: Change for march/mtune.
* gas/mips/ulh-xgot.d: Ditto.
* gas/mips/uld.d: Ditto.
* gas/mips/trunc.d: Ditto.
* gas/mips/rol.d: Ditto.
* gas/mips/nodelay.d: Ditto.
* gas/mips/mul.d: Ditto.
* gas/mips/mul-ilocks.d: Ditto.
* gas/mips/trap20.d: Ditto.
* gas/mips/mips4.d: Ditto.
* gas/mips/mips16.d: Ditto.
* gas/mips/lif-xgot.d: Ditto.
* gas/mips/lif-svr4pic.d: Ditto.
* gas/mips/ld-xgot.d: Ditto.
* gas/mips/ld-svr4pic.d: Ditto.
* gas/mips/ld-ilocks-addr32.d: Ditto.
* gas/mips/lb-xgot.d: Ditto.
* gas/mips/jal-xgot.d: Ditto.
* gas/mips/jal-svr4pic.d: Ditto.
* gas/mips/delay.d: Ditto.
* gas/mips/lb-xgot-ilocks.d: Ditto.
* gas/mips/div.d: Ditto.
* gas/mips/break20.d: Ditto.
* gas/mips/delay.d: Ditto.
* gas/mips/elf_e_flags3.d: Ditto.
* gas/mips/elf_e_flags4.d: Ditto.
* gas/mips/lineno.d: Ditto.
* gas/mips/mips16.d: Ditto.
* gas/mips/mips4.d: Ditto.
* gas/mips/mips4010.d: Ditto.
* gas/mips/mips4650.d: Ditto.
2001-06-29 21:27:43 +00:00
H.J. Lu
63486801dd
2001-06-11 H.J. Lu <hjl@gnu.org>
...
* NEWS: Updated for the new -n option for the MIPS assembler.
* config/tc-mips.c (md_show_usage): Add -n.
* doc/as.texinfo: Document the new -n option.
* doc/c-mips.texi: Likewise.
* doc/as.1: Regenerated.
2001-06-11 20:40:36 +00:00
H.J. Lu
39c0a33100
2001-06-08 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (warn_nops): New variable. Set to 0 to
disable warning about all NOPS that the assembler generates.
(macro): Warn NOPS generated only if warn_nops is not 0.
(md_shortopts): Add `n'.
(md_parse_option): Set warn_nops to 1 for `n'.
2001-06-09 05:24:39 +00:00
H.J. Lu
268f6bed84
2001-06-08 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (mips_ip): Properly handle illegal operands.
2001-06-09 05:01:29 +00:00
H.J. Lu
ea4ff978a2
2001-06-08 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (md_apply_fix): Don't adjust common
extern/weak symbols for ELF.
(md_estimate_size_before_relax): Treat weak like extern for
ELF.
(mips_fix_adjustable): Don't adjust extern/weak symbols for
ELF.
2001-06-09 03:28:04 +00:00
Alan Modra
98aa84af0e
* Makefile.am: 'som' is not wrongly spelled 'some'.
...
* Makefile.in: Regenerate.
* config/tc-mips.c (mips16_mark_labels): Reduce number of calls to
S_GET_VALUE by using a temp.
(append_insn): Likewise, and for S_GET_VALUE too.
(mips_emit_delays): Likewise.
(my_getExpression): Likewise.
(md_apply_fix): Likewise. Use "valueT" rather than "long" for "value".
(mips16_extended_frag): Remove code concerned with avoiding
locking in a frag address now that symbols are not finalized until
relaxation is complete. Cater for first relaxation pass having
bogus addresses. Use relax_marker to reliably determine whether a
symbol frag has been reached on the current pass.
2001-06-08 06:07:13 +00:00
H.J. Lu
add565213d
2001-06-07 H.J. Lu <hjl@gnu.org>
...
* config/tc-mips.c (mips_pseudo_table): Add "extern" if
MIPS_STABS_ELF is defined.
2001-06-07 16:52:19 +00:00
Nick Clifton
d1cf510e5e
Add MIPS r12k support
2001-05-23 17:26:40 +00:00
Alan Modra
6386f3a767
* symbols.c (resolve_symbol_value): Remove "finalize" param,
...
instead use finalize_syms directly. Don't treat expressions
specially with regard to finalize_syms. Update calls to self.
(resolve_local_symbol): Update call to resolve_symbol_value.
(S_GET_VALUE): Likewise. Return resolve_symbol_value if
!finalize_syms.
* symbols.h (resolve_symbol_value): Update prototype.
* config/obj-aout.c (obj_crawl_symbol_chain): Update call
to resolve_symbol_value.
* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
* config/obj-coff.c (do_relocs_for): Likewise.
(yank_symbols): Likewise.
(fixup_segment): Likewise.
* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
* config/tc-mips.c (md_convert_frag): Likewise.
* config/tc-ppc.c (ppc_frob_symbol): Likewise.
(ppc_fix_adjustable): Likewise.
* dwarf2dbg.c (dwarf2dbg_estimate_size_before_relax): Likewise.
(dwarf2dbg_convert_frag): Likewise.
* ehopt.c (eh_frame_estimate_size_before_relax): Likewise.
(eh_frame_convert_frag): Likewise.
* expr.c (make_expr_symbol): Likewise.
* write.c (adjust_reloc_syms): Likewise.
(write_object_file): Likewise.
(relax_segment): Likewise.
(fixup_segment): Likewise.
(finalize_syms): Init to zero, and update comment.
(write_object_file): Set finalize_syms to 1 rather than 2.
* doc/internals.texi (sy_value): Mention finalize_syms.
(S_GET_VALUE): Remove restriction on when S_GET_VALUE can be called.
2001-05-22 10:23:50 +00:00
H.J. Lu
f4ddc5e633
2001-04-29 Keith M Wesolowski <wesolows@foobazco.org>
...
* config/tc-mips.c (md_parse_option): Also accept
elf64-tradbigmips and elf64-tradlittlemips for OPTION_64.
2001-04-29 17:58:39 +00:00
H.J. Lu
af9539e4e5
2001-04-07 Steven J. Hill <sjhill@cotw.com>
...
* config/tc-mips.c: Support ELF64 for traditional MIPS targets.
* Makefile.am: (TARG_ENV_HFILES): Add tc-mips.h.
* Makefile.in: Regenerated.
* configure.in: Use traditional MIPS targets for Linux/MIPS.
* configure: Regenerated.
2001-04-08 05:09:21 +00:00
Alan Modra
1a5447b835
Pass finalize_syms on calls to resolve_symbol_value.
2001-03-30 07:07:11 +00:00
Nick Clifton
f7e42eb4af
Fix copyright notices
2001-03-08 23:24:26 +00:00
Nick Clifton
9117d2197e
Apply several patches from Maciej W. Rozycki
2001-02-11 23:11:41 +00:00
Chris Demetriou
0f074f60a4
2001-02-10 Chris Demetriou <cgd@broadcom.com>
...
* config/tc-mips.c (md_parse_option): Don't try to compile
ELF-only option code if not ELF.
2001-02-10 21:41:12 +00:00
Richard Henderson
0a9ef43907
* as.h (rs_align_test): New.
...
* frags.c (NOP_OPCODE): Move default from read.c.
(MAX_MEM_FOR_RS_ALIGN_CODE): New default.
(frag_align_code): New.
* frags.h (frag_align_code): Declare.
* read.c (NOP_OPCODE): Remove.
(do_align): Use frag_align_code.
* write.c (NOP_OPCODE): Remove.
(get_recorded_alignment): New.
(cvt_frag_to_fill): Handle rs_align_test.
(relax_segment): Likewise.
(subsegs_finish): Align last subseg in section to the
section alignment. Use frag_align_code.
* write.h (get_recorded_alignment): Declare.
* config/obj-coff.c (size_section): Handle rs_align_test.
(fill_section, fixup_mdeps): Likewise.
(write_object_file): Use frag_align_code.
* config/tc-alpha.c (alpha_align): Use frag_align_code.
(alpha_handle_align): New.
* config/tc-alpha.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-i386.h (md_do_align): Use frag_align_code.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-ia64.c (ia64_md_do_align): Don't do code alignment.
(ia64_handle_align): New.
* config/tc-ia64.h (HANDLE_ALIGN): New.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m32r.c (m32r_do_align): Remove.
(m32r_handle_align): New.
(fill_insn): Use frag_align_code.
* config/tc-m32r.h (md_do_align): Remove.
(HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-m88k.c, config/tc-m88k.h: Similarly.
* config/tc-mips.c, config/tc-mips.h: Similarly.
* config/tc-sh.c (sh_cons_align): Use rs_align_test.
(sh_handle_align): Likewise. Handle rs_align_code.
(sh_do_align): Remove.
* config/tc-sh.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
* config/tc-sparc.c (sparc_cons_align): Use rs_align_test.
(sparc_handle_align): Likewise. Handle rs_align_code.
* config/tc-sparc.h (md_do_align): Remove.
(MAX_MEM_FOR_RS_ALIGN_CODE): New.
2000-12-28 10:07:56 +00:00
Nick Clifton
e972090a04
Fix formatting
2000-12-12 19:29:24 +00:00
Kazu Hirata
beae10d5eb
2000-12-05 Kazu Hirata <kazu@hxi.com>
...
* config/tc-mips.c: Fix formatting.
2000-12-05 18:51:08 +00:00
Nick Clifton
c6c98b3833
Add MIPS SB1 machine
2000-12-02 01:10:33 +00:00
Nick Clifton
84ea6cf2c5
Add MIPS V and MIPS 64 machine numbers
2000-12-02 00:55:22 +00:00
Nick Clifton
e7af610e14
Add MIPS32 as a seperate MIPS architecture
2000-12-01 21:35:38 +00:00
Nick Clifton
4372b67322
Improve MIPS32 support
2000-12-01 20:05:32 +00:00
Nick Clifton
3dacdf2eb1
When calculating offsets, don't accept as constant the difference between the
...
addresses of symbols in two different sections.
2000-12-01 19:06:15 +00:00
Kazu Hirata
82efde3a56
2000-09-20 Kazu Hirata <kazu@hxi.com>
...
* config/tc-m32r.c: Fix formatting.
* config/tc-m32r.h: Likewise.
* config/tc-m68851.h: Likewise.
* config/tc-m68hc11.c: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-m88k.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-mips.h: Likewise.
* config/tc-mn10200.h: Likewise.
* config/tc-mn10300.h: Likewise.
2000-09-20 22:05:08 +00:00
Nick Clifton
156c2f8bf7
Add support for the MIPS32
2000-09-14 01:47:38 +00:00
Kazu Hirata
bdaaa2e114
2000-09-07 Kazu Hirata <kazu@hxi.com>
...
* config/tc-mips.c: Fix formatting.
2000-09-07 12:45:56 +00:00