diff options
author | Alan Modra <amodra@gmail.com> | 2005-02-17 13:46:05 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-02-17 13:46:05 +0000 |
commit | f17c130bd8665a588e814387e43b8fe35e3d2fad (patch) | |
tree | b0b2efc03bab0d7aa4454fbffd768f56f5869383 /gas/config/tc-mips.c | |
parent | c68dac40b05490c1ec4280fe6609ede69782b87a (diff) | |
download | gdb-f17c130bd8665a588e814387e43b8fe35e3d2fad.zip gdb-f17c130bd8665a588e814387e43b8fe35e3d2fad.tar.gz gdb-f17c130bd8665a588e814387e43b8fe35e3d2fad.tar.bz2 |
* tc.h (struct relax_type, relax_typeS): Move from here..
* 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.
Diffstat (limited to 'gas/config/tc-mips.c')
-rw-r--r-- | gas/config/tc-mips.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 17a6dbd..0e246dd 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -1,6 +1,6 @@ /* tc-mips.c -- assemble code for a MIPS chip. Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004 Free Software Foundation, Inc. + 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by the OSF and Ralph Campbell. Written by Keith Knowles and Ralph Campbell, working independently. Modified for ECOFF and R4000 support by Ian Lance Taylor of Cygnus @@ -2093,7 +2093,7 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr, { if (address_expr->X_op == O_constant) { - valueT tmp; + unsigned int tmp; switch (*reloc_type) { @@ -2102,20 +2102,18 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr, break; case BFD_RELOC_MIPS_HIGHEST: - tmp = (address_expr->X_add_number - + ((valueT) 0x8000 << 32) + 0x80008000) >> 16; - tmp >>= 16; - ip->insn_opcode |= (tmp >> 16) & 0xffff; + tmp = (address_expr->X_add_number + 0x800080008000ull) >> 48; + ip->insn_opcode |= tmp & 0xffff; break; case BFD_RELOC_MIPS_HIGHER: - tmp = (address_expr->X_add_number + 0x80008000) >> 16; - ip->insn_opcode |= (tmp >> 16) & 0xffff; + tmp = (address_expr->X_add_number + 0x80008000ull) >> 32; + ip->insn_opcode |= tmp & 0xffff; break; case BFD_RELOC_HI16_S: - ip->insn_opcode |= ((address_expr->X_add_number + 0x8000) - >> 16) & 0xffff; + tmp = (address_expr->X_add_number + 0x8000) >> 16; + ip->insn_opcode |= tmp & 0xffff; break; case BFD_RELOC_HI16: |