aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2002-05-232002-05-23 H.J. Lu <hjl@gnu.org>H.J. Lu4-0/+19
* gas/all/align2.d: New. * gas/all/align2.s: New. * gas/all/gas.exp: Run align2.
2002-05-232002-05-22 Michael Snyder <msnyder@redhat.com>Michael Snyder2-26/+76
* d10v-tdep.c: Change a few macros to enums for ease of debugging. (d10v_frame_chain_valid): Add PC_IN_CALL_DUMMY clause. (d10v_frame_saved_pc): Add PC_IN_CALL_DUMMY clause. (d10v_frame_chain): Bail immediately if PC_IN_CALL_DUMMY. Don't bail if return_pc is PC_IN_CALL_DUMMY. Add a temp variable to save a call (and a memory read). (d10v_init_extra_frame_info): Get fi->pc from callee's return_pc if possible (so that PC_IN_CALL_DUMMY will work).
2002-05-232002-05-23 Michael Snyder <msnyder@redhat.com>Michael Snyder3-5/+24
* gdb.base/all-bin.exp: Allow for reduced floating point precision. * gdb.base/call-rt-st.exp: Ditto.
2002-05-23 * elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCALJakub Jelinek40-123/+1911
for symbols from SHF_TLS section. (_bfd_elf_print_private_bfd_data): Add PT_TLS. (elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections. (map_sections_to_segments): Build PT_TLS segment if necessary. (assign_file_positions_for_segments): Likewise. (get_program_header_size): Account for PT_TLS segment. (swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from SEC_THREAD_LOCAL sections to STT_TLS. * reloc.c: Add 386 and IA-64 TLS relocs. * section.c (SEC_THREAD_LOCAL): Define. (SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS): Remove. * elflink.h (elf_link_add_object_symbols): Support .tcommon. (size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS unconditionally. (struct elf_final_link_info): Add first_tls_sec. (elf_bfd_final_link): Set first_tls_sec. Compute elf_hash_table (info)->tls_segment. (elf_link_output_extsym): Handle STT_TLS symbols. (elf_link_input_bfd): Likewise. * syms.c (BSF_THREAD_LOCAL): Define. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff, elf_i386_mkobject, elf_i386_object_p): New functions. (elf_howto_table): Add TLS relocs. (elf_i386_reloc_type_lookup): Support TLS relocs. (elf_i386_info_to_howto_rel): Likewise. (struct elf_i386_link_hash_entry): Add tls_type. (struct elf_i386_obj_tdata): New. (elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type): New macros. (struct elf_i386_link_hash_table): Add tls_ldm_got. (link_hash_newfunc): Clear tls_type. (elf_i386_check_relocs): Support TLS relocs. (elf_i386_gc_sweep_hook): Likewise. (allocate_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define. * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset, dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done, want_tprel, want_dtpmod, want_dtprel. (elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions. (ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to R_IA64_LTOFF_TPREL22. (elf_code_to_howto_index): Add TLS relocs. (elfNN_ia64_check_relocs): Support TLS relocs. (allocate_global_data_got): Account for TLS .got data. (allocate_dynrel_entries): Account for TLS dynamic relocations. (elfNN_ia64_install_value): Supprt TLS relocs. (set_got_entry): Support TLS relocs. (elfNN_ia64_relocate_section): Likewise. * config/obj-elf.c (elf_common): Renamed from obj_elf_common. (obj_elf_common): Call elf_common. (obj_elf_tls_common): New function. (elf_pseudo_tab): Support .tls_common. (special_sections): Add .tdata and .tbss. (obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS sections. (obj_elf_parse_section_letters): Support T in section flags (SHF_TLS). (obj_elf_parse_section_letters): Include T in error message. * config/tc-ppc.c (ppc_section_letter): Likewise. * config/tc-alpha.c (alpha_elf_section_letter): Likewise. (tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as SEC_MERGE. * config/tc-sparc.c (md_apply_fix3): Likewise. * config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs. Define them if not BFD_ASSEMBLER. (lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF and @NTPOFF. (md_apply_fix3): Add TLS relocs. * config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE, FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE, FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE. (pseudo_func): Support @dtpmod(), @dtprel() and @tprel(). (ia64_elf_section_letter): Include T in error message. (md_begin): Support TLS operators. (md_operand): Likewise. (ia64_gen_real_reloc_type): Support TLS relocs. * testsuite/gas/i386/tlspic.s: New file. * testsuite/gas/i386/tlsd.s: New file. * testsuite/gas/i386/tlsnopic.s: New file. * testsuite/gas/i386/tlsd.d: New file. * testsuite/gas/i386/tlsnopic.d: New file. * testsuite/gas/i386/tlspic.d: New file. * testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests. * testsuite/gas/ia64/tls.s: New file. * testsuite/gas/ia64/tls.d: New file. * testsuite/gas/ia64/ia64.exp: Add tls test. * write.c (adjust_reloc_syms): Don't change symbols in SEC_THREAD_LOCAL sections to STT_SECTION + addend. * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. * elf/i386.h: Add TLS relocs. * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for output section if necessary. Handle .tbss. (lang_size_sections): Clear _raw_size for .tbss section (it allocates space in PT_TLS segment only). * ldwrite.c (build_link_order): Build link order for .tbss too. * readelf.c (get_segment_type): Add PT_TLS. (get_elf_section_flags): Add SHF_TLS. (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. (process_dynamic_segment): Use puts instead of printf. (get_symbol_type): Support STT_TLS. * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. Add SEC_THREAD_LOCAL.
2002-05-23Fix handling of BLX instruction to conform to Operations definition in theNick Clifton1-23/+23
ARM ARM.
2002-05-23When decoding a BLX(1) instruction do not add in the second bit of the baseNick Clifton2-5/+8
address - this has already been accounted for.
2002-05-23For the Thumb BLX reloc round the relocation up rather than down.Nick Clifton5-38/+46
2002-05-23Silently ignore an 'a' flag in a COFF .section directive.Nick Clifton3-17/+28
2002-05-23 * config/tc-alpha.c (assemble_tokens): Protect use ofAlan Modra2-1/+7
ALPHA_RELOC_TABLE with #ifdef RELOC_OP_P.
2002-05-23 * configure.in: Correct spelling of AC_PREREQ.Alan Modra2-3/+7
2002-05-23 * write.c (size_seg): Check adjustment to last frag.Alan Modra9-34/+108
(SUB_SEGMENT_ALIGN): If HANDLE_ALIGN defined, pad out last frag to section alignment. * config/obj-coff.c (SUB_SEGMENT_ALIGN): Likewise. * config/obj-ieee.c (SUB_SEGMENT_ALIGN): Likewise. (write_object_file): Invoke md_do_align if available, and use frag_align_code on text sections. * config/obj-vms.h (SUB_SEGMENT_ALIGN): Now two args. * config/tc-m88k.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-ppc.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-sh.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-i386.h (SUB_SEGMENT_ALIGN): Likewise. Define for BFD_ASSEMBLER too.
2002-05-232002-05-22 H.J. Lu <hjl@gnu.org>H.J. Lu2-1/+9
* dwarf2dbg.c (dwarf2_directive_loc): Call listing_source_file for source file.
2002-05-23 * rdcoff.c: Fix formatting.Kazu Hirata8-214/+224
* rddbg.c: Likewise. * readelf.c: Likewise. * rename.c: Likewise. * resbin.c: Likewise. * resrc.c: Likewise. * resres.c: Likewise.
2002-05-23daily updateAlan Modra1-1/+1
2002-05-23*** empty log message ***gdbadmin1-1/+1
2002-05-22* acinclude.m4: Allow for PWDCMD to override hardcoded pwd.DJ Delorie1-0/+4
2002-05-22 * Makefile.am (sh-dis.lo): Compile with @archdefs@.Joern Rennecke3-2/+7
* Makefile.in: regenerate.
2002-05-22 * MAINTAINERS: Remove status `OBSOLETE' from v850.Corinna Vinschen2-1/+4
2002-05-22* config.guess: Update to 2002-05-22 version.Jason Thorpe3-5/+14
* config.sub: Likewise.
2002-05-22Avoid dereferencing null pointer in:Joern Rennecke2-2/+3
* sh-dis.c (print_insn_sh): If coff and bfd_mach_sh, use arch_sh4 for disassembly.
2002-05-222002-05-22 H.J. Lu <hjl@gnu.org>H.J. Lu3-4078/+6
* gas/mips/elf-rel.d: Updated for the subsegs_finish change in write.c. * gas/mips/elfel-rel.d: Likewise.
2002-05-22* pe-dll.c (autofilter_liblist): Add more system libs excluded by default.Christopher Faylor5-8/+65
(autofilter_objlist): Add crtbegin.o, crtend.o. * emultempl/pe.em (OPTION_EXCLUDE_LIBS): Add new define. (longopts): Add new option --exclude-libs. (gld_${EMULATION_NAME}_list_options): Give quick help about it. (gld_${EMULATION_NAME}_parse_args): Use it. * pe-dll.h (pe_dll_add_excludes): Add second param to prototype. * pe-dll.c (exclude_list_struct): Add field type to distinguish symbols from whole archives. (pe_dll_add_excludes): Set excludes->type. (auto_export): Add new variable libname and set to archive basename if abfd. Use it when filtering default and user-specified libarary excludes. Let string "ALL" mean all libs when filtering user-specified libs. * ld.texinfo: Document --exclude-libs.
2002-05-22COFF: Dump literal pool when changing sections.Nick Clifton2-4/+12
2002-05-222002-05-22 H.J. Lu <hjl@gnu.org>H.J. Lu2-6/+18
* dwarf2dbg.c (dwarf2_emit_insn): Emit only one line symbol for one .loc for compiler.
2002-05-22 * gas/sh/pcrel-coff.s: New file.Joern Rennecke4-4/+59
* gas/sh/pcrel-coff.d: Likewise. * gas/sh/basic.exp: For coff, don't do dsp test, and a modified pcrel test.
2002-05-222002-05-22 Michal Ludvig <mludvig@suse.cz>Michal Ludvig2-1/+4
* dwarf2cfi.c (execute_stack_op): Change type of 'result' from ULONGEST to CORE_ADDR.
2002-05-22 * sh-dis.c (print_insn_sh): If coff and bfd_mach_sh, use arch_sh4Joern Rennecke2-0/+10
for disassembly.
2002-05-222002-05-22 Michal Ludvig <mludvig@suse.cz>Michal Ludvig2-10/+45
* dwarf2cfi.c (frame_state_for): Added safety check for a valid fde->cie_ptr. (dwarf2_build_frame_info): Corrected handling of eh_frame. (dwarf2_build_frame_info): Add offset to fde->initial_location so that frames of shared libraries are mapped correctly.
2002-05-22Allow for PWDCMD to override hardcoded pwd.Nick Clifton6-176/+194
2002-05-22 * ldemul.c (ldemul_new_vers_pattern): New function.Alan Modra21-15/+182
* ldemul.h (ldemul_new_vers_pattern): Declare. (struct ld_emulation_xfer_struct): Add new_vers_pattern. * ldlang.c (lang_new_vers_pattern): Call ldemul_new_vers_pattern. * emultempl/ppc64elf.em (dotsyms): New static var. (gld${EMULATION_NAME}_new_vers_pattern): New function. (LDEMUL_NEW_VERS_PATTERN): Define. (PARSE_AND_LIST_PROLOGUE): Add OPTION_DOTSYMS, OPTION_NO_DOTSYMS. (PARSE_AND_LIST_LONGOPTS): Likewise. (PARSE_AND_LIST_ARGS_CASES): Handle them. * emultempl/aix.em (ld_${EMULATION_NAME}_emulation): Update initialiser. * emultempl/armcoff.em: Likewise. * emultempl/armelf_oabi.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/generic.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68kcoff.em: Likewise. * emultempl/mipsecoff.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise.
2002-05-22 * genscripts.sh (LIB_PATH): For native targets, concatenate $libdirAlan Modra6-40/+83
and $NATIVE_LIB_DIRS. Add $tool_lib before other libs. (LIB_SEARCH_DIRS): No need to use "tr". (COMPILE_IN): Only set for native targets. * configure.host (NATIVE_LIB_DIRS): Specify all native search dirs here, rather than adding lib:/usr/lib:/usr/local/lib in genscripts.sh. * configure.tgt (powerpc*): Set tdir_*. (powerpcle*): Correct targ_extra_emuls. * emulparams/elf32ppc.sh (LIB_PATH): Set up native 64 bit dirs. * emulparams/elf64ppc.sh (LIB_PATH): Likewise.
2002-05-22 * emultempl/pe.em (set_pe_subsystem): Don't set "cmdline" whenAlan Modra2-1/+6
calling lang_add_entry.
2002-05-222002-05-21 H.J. Lu (hjl@gnu.org)H.J. Lu5-1/+36
* emultempl/elf32.em (gld${EMULATION_NAME}_parse_args): Handle "-z muldefs". (gld${EMULATION_NAME}_list_options): Add "-z muldefs". * ld.texinfo: Updated for --allow-multiple-definition and "-z muldefs". * ldmain.c (main): Initialize the allow_multiple_definition field to false. * lexsup.c (OPTION_ALLOW_MULTIPLE_DEFINITION): New. (ld_options): Add --allow-multiple-definition. (parse_args): Support OPTION_ALLOW_MULTIPLE_DEFINITION.
2002-05-222002-05-21 H.J. Lu (hjl@gnu.org)H.J. Lu2-0/+6
* bfdlink.h (bfd_link_info): Add allow_multiple_definition.
2002-05-222002-05-21 H.J. Lu (hjl@gnu.org)H.J. Lu2-28/+34
* linker.c (_bfd_generic_link_add_one_symbol): Allow multiple definition.
2002-05-22* config/alpha/tm-nbsd.h: Include solib.h.Jason Thorpe2-0/+5
2002-05-22* alphanbsd-tdep.c (alphanbsd_sigtramp_offset): Don't makeJason Thorpe2-11/+16
assumptions about the host's byte order.
2002-05-22 * elf64-ppc.c (ppc64_elf_size_stubs): Don't strip .branch_lt.Alan Modra2-6/+19
(ppc64_elf_relocate_section): Handle unresolved relocs in opd.
2002-05-22* Makefile.in (alphanbsd-tdep.o, shnbsd-tdep.o): Add solib-svr4.hJason Thorpe4-2/+13
to dependency list. * alphanbsd-tdep.c: Include solib-svr4.h. * shnbsd-tdep.c: Ditto.
2002-05-22* Makefile.in (armnbsd-tdep.o): Add solib-svr4.h andJason Thorpe39-131/+323
nbsd-tdep.h to dependency list. * configure.host (arm*-*-netbsdelf*, arm*-*-netbsd*, i[3456]86-*-netbsdaout*, i[3456]86-*-netbsd*, m68*-*-netbsd*, ns32k-*-netbsd*, sparc-*-netbsdaout*, sparc-*-netbsd*): Use nbsdaout.mh and nbsdelf.mh consistently. * configure.tgt (i[3456]86-*-netbsd*, m68*-*-netbsd*, ns32k-*-netbsd*, sparc-*-netbsdelf*, sparc-*-netbsd*) Use nbsdaout.mt and nbsdelf.mh consistently. * armnbsd-tdep.c: Include nbsd-tdep.h and solib-svr4.h. (arm_netbsd_elf_init_abi): Use set_solib_svr4_fetch_link_map_offsets to set nbsd_ilp32_solib_svr4_fetch_link_map_offsets. * config/nm-nbsd.h: Garbage-collect SVR4_SHARED_LIBS. Move a.out shared library stuff from here... * config/nm-nbsdaout.h: ...to here. * config/tm-nbsd.h: Remove. * config/alpha/nm-nbsd.h (SVR4_SHARED_LIBS): Remove. * config/arm/nbsd.mh: Remove. * config/arm/nbsd.mt (TDEPFILES): Remove solib-sunos.o, add nbsd-tdep.o. * config/arm/nbsdaout.mh: New file. * config/arm/nbsdelf.mh: New file. * config/arm/nm-nbsdaout.h: New file. * config/i386/nbsd.mh: Remove. * config/i386/nbsd.mt: Remove. * config/i386/nbsdaout.mh: New file. * config/i386/nbsdaout.mt: New file. * config/i386/nbsdelf.mh (NAT_FILE): Use nm-nbsd.h. * config/i386/nbsdelf.mt (TM_FILE): Use tm-nbsd.h. * config/i386/nm-nbsd.h (REGISTER_U_ADDR, i386_register_u_addr): Remove. * config/i386/nm-nbsdaout.h: New file. * config/i386/nm-nbsdelf.h: Remove. * config/i386/tm-nbsd.h: Don't include config/tm-nbsd.h. (USE_STRUCT_CONVENTION): Remove. * config/i386/tm-nbsdaout.h: New file. * config/i386/tm-nbsdelf.h: Remove. * config/m68k/nbsd.mh: Remove. * config/m68k/nbsd.mt: Remove. * config/m68k/nbsdaout.mh: New file. * config/m68k/nbsdaout.mt: New file. * config/m68k/nm-nbsd.h: Use config/nm-nbsd.h. * config/m68k/nm-nbsdaout.h: New file. * config/m68k/tm-nbsd.h: Don't include config/tm-nbsd.h. (IN_SOLIB_CALL_TRAMPOLINE): Define. * config/ns32k/nbsd.mh: Remove. * config/ns32k/nbsd.mt: Remove. * config/ns32k/nbsdaout.mh: New file. * config/ns32k/nbsdaout.mt: New file. * config/ns32k/nm-nbsd.h: Include config/nm-nbsd.h. * config/ns32k/nm-nbsdaout.h: New file. * config/ns32k/tm-nbsd.h: Don't include config/tm-nbsd.h. (IN_SOLIB_CALL_TRAMPOLINE): Define. * config/powerpc/nm-nbsd.h: Include config/nm-nbsd.h. (SVR4_SHARED_LIBS): Remove. * config/powerpc/tm-nbsd.h: Dont' include config/tm-nbsd.h. * config/sparc/nbsd.mh: Remove. * config/sparc/nbsd.mt: Remove. * config/sparc/nbsdaout.mh: New file. * config/sparc/nbsdaout.mt: New file. * config/sparc/nbsdelf.mh (NAT_FILE): Use nm-nbsd.h. * config/sparc/nbsdelf.mt: New file. * config/sparc/nm-nbsdaout.h: New file. * config/sparc/nm-nbsdelf.h: Remove. * config/sparc/tm-nbsd.h: Don't include config/tm-nbsd.h. * config/sparc/tm-nbsdaout.h: New file.
2002-05-22 * config/tc-mips.c (macro): Relax warning, it's toot strict forThiemo Seufer2-1/+6
embedded-PIC.
2002-05-22 * elf64-ppc.c (ppc64_elf_relocate_section): Return false forAlan Modra2-7/+16
unresolved relocs. (ppc64_elf_size_dynamic_sections): Check for splt NULL.
2002-05-22*** empty log message ***gdbadmin1-1/+1
2002-05-22daily updateAlan Modra1-1/+1
2002-05-21? gas/testsuite/gas/mips/rol64.dThiemo Seufer10-16/+213
? gas/testsuite/gas/mips/rol64.s Index: gas/ChangeLog =================================================================== RCS file: /cvs/src/src/gas/ChangeLog,v retrieving revision 1.1334 diff -u -p -r1.1334 ChangeLog --- gas/ChangeLog 21 May 2002 20:01:51 -0000 1.1334 +++ gas/ChangeLog 21 May 2002 23:32:51 -0000 @@ -1,3 +1,8 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * config/tc-mips.c (macro2): Add 64 bit drol, dror macros. + Optimize the rotate by zero case. + 2002-05-21 Nick Clifton <nickc@cambridge.redhat.com> * configure.in: Remove accidental enabling of bfd_gas=yes for Index: gas/config/tc-mips.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-mips.c,v retrieving revision 1.123 diff -u -p -r1.123 tc-mips.c --- gas/config/tc-mips.c 14 May 2002 23:35:59 -0000 1.123 +++ gas/config/tc-mips.c 21 May 2002 23:32:52 -0000 @@ -6686,6 +6686,17 @@ macro2 (ip) --mips_opts.noreorder; break; + case M_DROL: + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", + "d,v,t", AT, 0, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrlv", + "d,t,s", AT, sreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsllv", + "d,t,s", dreg, sreg, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + break; + case M_ROL: macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "subu", "d,v,t", AT, 0, treg); @@ -6697,15 +6708,55 @@ macro2 (ip) "d,v,t", dreg, dreg, AT); break; + case M_DROL_I: + { + unsigned int rot; + char *l, *r; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x3f; + if (! rot) + break; + l = (rot < 0x20) ? "dsll" : "dsll32"; + r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + case M_ROL_I: - if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", "d,w,<", - AT, sreg, (int) (imm_expr.X_add_number & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", "d,w,<", - dreg, sreg, (int) ((0 - imm_expr.X_add_number) & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", "d,v,t", - dreg, dreg, AT); + { + unsigned int rot; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x1f; + if (! rot) + break; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + + case M_DROR: + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", + "d,v,t", AT, 0, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsllv", + "d,t,s", AT, sreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrlv", + "d,t,s", dreg, sreg, treg); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); break; case M_ROR: @@ -6719,15 +6770,44 @@ macro2 (ip) "d,v,t", dreg, dreg, AT); break; + case M_DROR_I: + { + unsigned int rot; + char *l, *r; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x3f; + if (! rot) + break; + r = (rot < 0x20) ? "dsrl" : "dsrl32"; + l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } + break; + case M_ROR_I: - if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", "d,w,<", - AT, sreg, (int) (imm_expr.X_add_number & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", "d,w,<", - dreg, sreg, (int) ((0 - imm_expr.X_add_number) & 0x1f)); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", "d,v,t", - dreg, dreg, AT); + { + unsigned int rot; + + if (imm_expr.X_op != O_constant) + as_bad (_("rotate count too large")); + rot = imm_expr.X_add_number & 0x1f; + if (! rot) + break; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); + } break; case M_S_DOB: Index: gas/testsuite/ChangeLog =================================================================== RCS file: /cvs/src/src/gas/testsuite/ChangeLog,v retrieving revision 1.315 diff -u -p -r1.315 ChangeLog --- gas/testsuite/ChangeLog 20 May 2002 17:05:34 -0000 1.315 +++ gas/testsuite/ChangeLog 21 May 2002 23:32:54 -0000 @@ -1,3 +1,9 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * gas/mips/rol64.s: New file, test of drol, dror macros. + * gas/mips/rol64.d: Likewise. + * gas/mips/mips.exp: Add new test. + 2002-05-20 Nick Clifton <nickc@cambridge.redhat.com> * gas/arm/arm.exp: Replace deprecated command line switches Index: gas/testsuite/gas/mips/mips.exp =================================================================== RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips.exp,v retrieving revision 1.32 diff -u -p -r1.32 mips.exp --- gas/testsuite/gas/mips/mips.exp 4 Apr 2002 08:23:30 -0000 1.32 +++ gas/testsuite/gas/mips/mips.exp 21 May 2002 23:32:54 -0000 @@ -122,6 +122,7 @@ if { [istarget mips*-*-*] } then { run_dump_test "mul" } run_dump_test "rol" + run_dump_test "rol64" if !$aout { run_dump_test "sb" } run_dump_test "trunc" if !$aout { run_dump_test "ulh" } Index: include/opcode/ChangeLog =================================================================== RCS file: /cvs/src/src/include/opcode/ChangeLog,v retrieving revision 1.167 diff -u -p -r1.167 ChangeLog --- include/opcode/ChangeLog 17 May 2002 19:01:03 -0000 1.167 +++ include/opcode/ChangeLog 21 May 2002 23:32:57 -0000 @@ -1,3 +1,7 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * mips.h: Add M_DROL, M_DROL_I, M_DROR, M_DROR_I macro cases. + 2002-05-17 Andrey Volkov <avolkov@sources.redhat.com> * h8300.h: Corrected defs of all control regs Index: include/opcode/mips.h =================================================================== RCS file: /cvs/src/src/include/opcode/mips.h,v retrieving revision 1.24 diff -u -p -r1.24 mips.h --- include/opcode/mips.h 16 Mar 2002 03:09:18 -0000 1.24 +++ include/opcode/mips.h 21 May 2002 23:32:57 -0000 @@ -526,9 +526,13 @@ enum M_REM_3I, M_REMU_3, M_REMU_3I, + M_DROL, M_ROL, + M_DROL_I, M_ROL_I, + M_DROR, M_ROR, + M_DROR_I, M_ROR_I, M_S_DA, M_S_DOB, Index: opcodes/ChangeLog =================================================================== RCS file: /cvs/src/src/opcodes/ChangeLog,v retrieving revision 1.447 diff -u -p -r1.447 ChangeLog --- opcodes/ChangeLog 17 May 2002 14:36:45 -0000 1.447 +++ opcodes/ChangeLog 21 May 2002 23:33:00 -0000 @@ -1,3 +1,7 @@ +2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * mips-opc.c (mips_builtin_opcodes): Add drol, dror macros. + Fri May 17 14:26:44 2002 J"orn Rennecke <joern.rennecke@superh.com> * disassemble.c (disassembler): Just use print_insn_sh for bfd_arch_sh. Index: opcodes/mips-opc.c =================================================================== RCS file: /cvs/src/src/opcodes/mips-opc.c,v retrieving revision 1.32 diff -u -p -r1.32 mips-opc.c --- opcodes/mips-opc.c 17 Mar 2002 02:42:25 -0000 1.32 +++ opcodes/mips-opc.c 21 May 2002 23:33:00 -0000 @@ -492,6 +492,10 @@ const struct mips_opcode mips_builtin_op {"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, I3 }, {"dremu", "d,v,t", 3, (int) M_DREMU_3, INSN_MACRO, I3 }, {"dremu", "d,v,I", 3, (int) M_DREMU_3I, INSN_MACRO, I3 }, +{"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, I3 }, +{"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, I3 }, +{"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, I3 }, +{"dror", "d,v,I", 0, (int) M_DROR_I, INSN_MACRO, I3 }, {"dsllv", "d,t,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, {"dsll32", "d,w,<", 0x0000003c, 0xffe0003f, WR_d|RD_t, I3 }, {"dsll", "d,w,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsllv */
2002-05-21* Makefile.in (ALLDEPFILES): Add mipsnbsd-nat.c andJason Thorpe2-0/+13
mipsnbsd-tdep.c (mipsnbsd-nat.o, mipsnbsd-tdep.o): New dependency lists.
2002-05-21* Makefile.in (ALLDEPFILES): Add shnbsd-tdep.c andJason Thorpe2-1/+13
shnbsd-nat.c. (shnbsd-tdep.o, shnbsd-nat.o): New dependency lists.
2002-05-21Simulate XScale BCUMOD registerNick Clifton2-3/+15
2002-05-21Remove accidental enabling of bfd_gas=yes for sh-coff targets.Nick Clifton3-4/+10
2002-05-21 * filemode.c: Fix formatting.Kazu Hirata13-111/+126
* ieee.c: Likewise. * is-ranlib.c: Likewise. * is-strip.c: Likewise. * maybe-ranlib.c: Likewise. * maybe-strip.c: Likewise. * nlmconv.c: Likewise. * nm.c: Likewise. * not-ranlib.c: Likewise. * not-strip.c: Likewise. * objcopy.c: Likewise. * objdump.c: Likewise.