Mark Alexander [Wed, 27 Nov 1996 03:40:02 +0000 (03:40 +0000)]
* config/mips/tm-mips.h (ADDR_BITS_REMOVE, TARGET_READ_SP): Define.
(mips_addr_bits_remove): Declare.
* mips-tdep.c (mips_push_dummy_frame): Fix heuristic-fence-post
errors when hitting breakpoints during inferior function calls
in 64-bit programs.
(fix_sign_extension): Make public, rename to mips_addr_bits_remove.
* utils.c (paddr_nz, preg_nz): New functions, similar to
paddr and preg but don't print leading zeroes.
* defs.h (paddr_nz, preg_nz): Declare.
* remote-mips.c: Use paddr_nz instead of paddr throughout
to reduce packet size.
(pmon_end_download): Improve timeout error handling.
Jeff Law [Wed, 27 Nov 1996 00:53:25 +0000 (00:53 +0000)]
* mn10300_sim.h (_state): Add another register (MDR).
(REG_MDR): Define.
* simops.c: Implement "cmp", "calls", "rets", "jmp" and
a few additional random insns.
We can now function calls. We get out of crt0 into main now, then lose
when calls are nested (because don't handle movm yet).
Jeff Law [Tue, 26 Nov 1996 22:58:24 +0000 (22:58 +0000)]
* mn10300_sim.h (PSW_*): Define for CC status tracking.
(REG_D0, REG_A0, REG_SP): Define.
* simops.c: Implement "add", "addc" and a few other random
instructions.
Starting to simulate instructions for the mn10300. Executes some of
the crt0 code now!
Ian Lance Taylor [Tue, 26 Nov 1996 18:12:44 +0000 (18:12 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* gencode.c (inst_type): Add mips16 instruction encoding types.
(GETDATASIZEINSN): Define.
(MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv. Add
jalx. Add LEFT flag to mfhi and mflo. Add RIGHT flag to mthi and
mtlo.
(MIPS16_DECODE): New table, for mips16 instructions.
(bitmap_val): New static function.
(struct mips16_op): Define.
(mips16_op_table): New table, for mips16 operands.
(build_mips16_operands): New static function.
(process_instructions): If PC is odd, decode a mips16
instruction. Break out instruction handling into new
build_instruction function.
(build_instruction): New static function, broken out of
process_instructions. Check modifiers rather than flags for SHIFT
bit count and m[ft]{hi,lo} direction.
(usage): Pass program name to fprintf.
(main): Remove unused variable this_option_optind. Change
``*loptarg++'' to ``loptarg++''.
(my_strtoul): Parenthesize && within ||.
* interp.c (sim_trace): If tracefh is NULL, set it to stderr.
(LoadMemory): Accept a halfword pAddr if vAddr is odd.
(simulate): If PC is odd, fetch a 16 bit instruction, and
increment PC by 2 rather than 4.
* configure.in: Add case for mips16*-*-*.
* configure: Rebuild.
Ian Lance Taylor [Tue, 26 Nov 1996 16:44:22 +0000 (16:44 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* config/tc-mips.c: Extensive additions for mips16 support, not
listed here.
(RELAX_OLD, RELAX_NEW): Use only 7 bits each.
(insn_uses_reg): Change last parameter to an enum.
* config/tc-mips.h (LOCAL_LABELS_DOLLAR): Define as 0.
(md_relax_frag): Define as mips_relax_frag.
(mips_relax_frag): Declare.
(struct mips_cl_insn): Add use_extend and extend fields.
(tc_fix_adjustable): Define.
* config/obj-elf.h (S_GET_OTHER): Define.
(S_SET_OTHER): Define.
Ian Lance Taylor [Tue, 26 Nov 1996 16:43:03 +0000 (16:43 +0000)]
* elf-bfd.h (struct elf_link_hash_entry): Add other field.
* elf.c (_bfd_elf_link_hash_newfunc): Initialize other field.
(swap_out_syms): Set st_other from existing st_other field.
* elflink.h (elf_link_add_object_symbols): Store st_other in hash
table other field.
(elf_link_output_extsym): Set the other field from the global hash
table entry.
* elf32-mips.c (enum reloc_type): Add R_MIPS16_26.
(elf_mips16_jump_howto): New static variable.
(mips16_jump_reloc): New static function.
(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_JMP.
(mips_info_to_howto_rel): Handle R_MIPS16_26.
(mips_elf_relocate_section): Handle R_MIPS16_26. Handle R_MIPS_26
to a mips16 symbol.
* reloc.c (BFD_RELOC_MIPS16_JMP): Add to list of relocs.
* bfd-in2.h, libbfd.h: Rebuild.
* cpu-mips.c (arch_info_struct): Add mips:16 entry.
Ian Lance Taylor [Tue, 26 Nov 1996 15:59:18 +0000 (15:59 +0000)]
Add support for mips16 (16 bit MIPS implementation):
* mips16-opc.c: New file.
* mips-dis.c: Include "elf-bfd.h" and "elf/mips.h".
(mips16_reg_names): New static array.
(print_insn_big_mips): Use print_insn_mips16 in 16 bit mode or
after seeing a 16 bit symbol.
(print_insn_little_mips): Likewise.
(print_insn_mips16): New static function.
(print_mips16_insn_arg): New static function.
* mips-opc.c: Add jalx instruction.
* Makefile.in (mips16-opc.o): New target.
* configure.in: Use mips16-opc.o for bfd_mips_arch.
* configure: Rebuild.
J.T. Conklin [Mon, 25 Nov 1996 22:33:46 +0000 (22:33 +0000)]
* m68k-opc.c (m68k-opcodes): The coldfire (mcf5200) can only use
register operands for immediate arithmetic, not, neg, negx, and
set according to condition instructions.
J.T. Conklin [Mon, 25 Nov 1996 21:39:55 +0000 (21:39 +0000)]
* m68k-opc.c (m68k_opcodes): Consistantly Use "s" as the storage
specifier of the effective-address operand in immediate forms of
arithmetic instructions. The specifier for the immediate operand
notes how and where the constant will be stored.
David Edelsohn [Mon, 25 Nov 1996 21:25:54 +0000 (21:25 +0000)]
* write.c: Delete "ifndef md_relax_frag" around is_dnrange.
(relax_segment, case rs_org): Move code inside braces. Move locals
target,after inside too.
(relax_segment, case rs_machine_dependent): Guts moved to ...
(relax_frag): New function.
Call md_prepare_relax_scan if defined.
* config/tc-m68k.h (md_prepare_relax_scan): Renamed from
M68K_AIM_KLUDGE.
Jeff Law [Mon, 25 Nov 1996 15:59:07 +0000 (15:59 +0000)]
* elf32-mn10300.c (bfd_elf32_mn10300_reloc): New function.
(enum reloc_type): Add more reloc types.
(elf32_mn10300_howto_table): Update for new reloc types.
(elf32_mn10300_reloc_map): Update for new reloc types.
* reloc.c: Add some new relocs for the mn10300 series.
* bfd-in2.h, libbfd.h: Rebuilt.
Last week's reloc work.
Jeff Law [Mon, 25 Nov 1996 15:54:43 +0000 (15:54 +0000)]
* config/tc-mn10300.c (md_assemble): Correctly determine the
correct location and type for each relocation.
(md_pcrel_from): Simplify.
Last week's reloc work.
Fred Fish [Sat, 23 Nov 1996 21:33:08 +0000 (21:33 +0000)]
* gdb.base/a1-selftest.exp: Change x86 linux setup_xfails to
use new i*86-pc-linux*-gnu quads.
* gdb.base/corefile.exp: Ditto.
* gdb.base/signals.exp: Ditto.
* gdb.base/sigall.exp: Ditto.
* gdb.base/interrupt.exp: Ditto.
* gdb.base/signals.exp (signal_tests_1): Remove setup_xfail
"i*86-*-linux" for "signal SIGUSR1". Now works, at least with
RedHat 4.0.
* gdb.threads/pthreads.c (_MIT_POSIX_THREADS): Define if target is
linux. This allows the test case to at least compile on latest
linux, but still not run due to missing the threads runtime library.
Peter Schauer [Fri, 22 Nov 1996 18:16:24 +0000 (18:16 +0000)]
* gdb.base/a1-selftest.exp (do_steps_and_nexts): Reinitialize source
directory to search gdb directory. Accept and step over conditional
stack alignment code. Consume $prompt in failure cases.
Reset timeout to $oldtimeout instead of some arbitrary value.
* gdb.base/nodebug.exp: Limit backtrace to 10 frames to avoid
timeout problems with infinite stack backtraces.
* gdb.base/ptype.exp (ptype struct link, union tu_link):
Accept function parameters for linkfunc member.
Ian Lance Taylor [Fri, 22 Nov 1996 16:39:17 +0000 (16:39 +0000)]
* sunos.c (struct sunos_link_hash_table): Add got_needed field.
(sunos_link_hash_table_create): Initialize got_needed.
(sunos_create_dynamic_sections): Only set .got section size if it
is not already set. Set got_needed.
(bfd_sunos_size_dynamic_sections): Check got_needed. Only set
sdynptr, and only handle dynamic sections, if dynamic sections are
needed.
(sunos_scan_std_relocs): Pass false to create_dynamic_sections.
Initialize .got section.
(sunos_scan_ext_relocs): Likewise.
(sunos_write_dynamic_symbol): Set up PLT entry even if this is not
a dynamic symbol.
(sunos_finish_dynamic_link): Check got_needed. Only set up
dynamic linking information if needed.
PR 11074.
Jeff Law [Thu, 21 Nov 1996 18:58:26 +0000 (18:58 +0000)]
* config/tc-mn10300.h (DIFF_EXPR_OK): Don't define this.
(tc_fix_adjustable): Don't adjust relocs against weak symbols or
pc-relative relocs.
* config/tc-mn10300.c (md_begin): Set linkrelax.
(md_assemble): Create fixups as needed.
(md_apply_fix3): Gut. It shouldn't ever get called anymore.
First stab at fixups/relocs.
Fred Fish [Thu, 21 Nov 1996 17:29:43 +0000 (17:29 +0000)]
* lib/gdb.exp (CFLAGS): Remove, unreferenced.
(CXXFLAGS): Remove, unreferenced.
(B_OPTIONS): Add for -B options and add code to initialize with previous
-B options and also add -B option to pick up cross compiled runtime.
(TARGET_INCLUDES): Add for -I options and add code to initialize when
doing cross compiles.
(target_alias): Declare global.
(xgcc): Set variable to full path of gcc in build tree. Use findfile
to verify that gcc exists in build tree, and if so set CC to that
gcc and to use B_OPTIONS and TARGET_INCLUDES.
Martin Hunt [Thu, 21 Nov 1996 03:20:03 +0000 (03:20 +0000)]
Wed Nov 20 19:09:16 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tm-d10v.h (REGISTER_VIRTUAL_SIZE): Modified.
(REGISTER_VIRTUAL_TYPE): Modified for PC_REGNUM and SP_REGNUM.
(REGISTER_CONVERTIBLE): Make PC and SP convertible.
(REGISTER_CONVERT_TO_VIRTUAL): Define.
(REGISTER_CONVERT_TO_RAW): Define.
(D10V_MAKE_DADDR): Define.
(D10V_MAKE_IADDR): Define.
Martin Hunt [Thu, 21 Nov 1996 03:19:37 +0000 (03:19 +0000)]
Wed Nov 20 19:09:16 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* infcmd.c (do_registers_info): Call val_print with the
virtual buf instead of the raw buf. Needed for REGISTER_CONVERT
to work with non-floating point regs.
start-sanitize-d10v
* d10v-tdep.c (d10v_skip_prologue): If we have line debugging
information, then the end of the prologue should the first
assembly instruction of the first source line.
* values.c (value_from_longest): Put in D10V call to
fix up address pointers.
* config/d10v/tm-d10v.h (REGISTER_VIRTUAL_SIZE): Modified.
(REGISTER_VIRTUAL_TYPE): Modified for PC_REGNUM and SP_REGNUM.
(REGISTER_CONVERTIBLE): Make PC and SP convertible.
(REGISTER_CONVERT_TO_VIRTUAL): Define.
(REGISTER_CONVERT_TO_RAW): Define.
(D10V_MAKE_DADDR): Define.
(D10V_MAKE_IADDR): Define.
end-sanitize-d10v
Jeff Law [Wed, 20 Nov 1996 18:31:12 +0000 (18:31 +0000)]
* gas/mn10300/other.s: Update for correct syntax on a
few instructions (those with register lists).
* gas/mn10300/basic.exp: Corresponding changes.
Stuff noticed while working on the disassembler.
David Edelsohn [Wed, 20 Nov 1996 10:18:18 +0000 (10:18 +0000)]
* Makefile.in: Delete stuff moved to ../common/Make-common.in.
(SIM_OBJS,SIM_EXTRA_LIBS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(unistd.h).
* configure: Regenerated.
* config.in: New file.
* interp.c: #include "config.h". #include <unistd.h> if present.
(trap): Fetch errno value with callback->get_errno.
David Edelsohn [Wed, 20 Nov 1996 10:00:42 +0000 (10:00 +0000)]
* Makefile.in: Delete stuff moved to ../common/Make-common.in.
(SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* tconfig.in: New file.
David Edelsohn [Wed, 20 Nov 1996 09:47:57 +0000 (09:47 +0000)]
* Makefile.in: Delete stuff moved to ../common/Make-common.in.
(SIM_OBJS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* inst.h (enum sim_state): Define.
(cpu_state_type): New member `state'. Set it whenever `exception'
is set.
* compile.c (sim_callback): New global.
(sim_set_simcache_size): Renamed from sim_csize.
(sim_resume, case O_SLEEP): Add right way to decode r0 but #if 0 out
'cus it can't work. Change main loop exit test to use cpu.state.
(sim_trace): New function.
(sim_stop_reason): Add right way to set results, but #if 0 out.
(sim_size): New function.
(sim_info): Redirect calls to printf_filtered through callback.
(sim_set_callbacks): Record callback.
* run.c: Deleted, using one in ../common now.
* tconfig.in: New file.
David Edelsohn [Wed, 20 Nov 1996 09:38:10 +0000 (09:38 +0000)]
* Makefile.in: Delete stuff moved to ../common/Make-common.in.
(SIM_{OBJS,EXTRA_LIBS,EXTRA_LIBDEPS,EXTRA_ALL,EXTRA_INSTALL}): Define.
(SIM_{EXTRA_CLEAN,EXTRA_CFLAGS}): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
Call AC_CHECK_HEADERS(stdlib.h).
* configure: Regenerated.
* config.in: New file.
* func.c (sim_set_callbacks): Delete, moved to
* interf.c (sim_set_callbacks): here.
(sim_callback): New global.
Rewrite all calls to printf_filtered to go through callback.
(sim_size,sim_trace): New functions.
(sim_{insert,remove}_breakpoint): #if 0 out.
* sis.c: #include "config.h". #include <stdlib.h> if present.
(main): Coerce fprintf arg to INIT_DISASSEMBLE_INFO to fprintf_ftype.
* sis.h: #include "callback.h".
David Edelsohn [Wed, 20 Nov 1996 09:20:55 +0000 (09:20 +0000)]
* run.c: #include ../common/config.h, tconfig.h.
(myname): New static global.
(main): Recognize new options -a, -c. Also recognize -h if h8/300.
Only process -c ifdef SIM_HAVE_SIMCACHE.
Only process -p/-s ifdef SIM_HAVE_PROFILE.
Parse program name from argv[0] and use in error messages.
Pass sim_args to sim_open. Pass prog_args to sim_create_inferior.
Add support for incomplete h8/300 termination indicators.
(usage): Make more verbose.
* aclocal.m4,config.in,tconfig.in,configure.in,configure: New files.
* Makefile.in,Make-common.in,callback.c: New files.
* nltvals.def,gentmap.c,gentvals.sh: New files.
David Edelsohn [Wed, 20 Nov 1996 09:10:22 +0000 (09:10 +0000)]
* run.c: Deleted, use one in ../common now.
* Makefile.in: Delete everything that's been moved to
../common/Make-common.in.
(SIM_OBJS): Define.
* configure.in: Simplify using macros in ../common/aclocal.m4.
* configure: Regenerated.
* config.in: New file.
* armos.c: #include config.h.
* wrapper.c (mem_size): Value is in bytes now.
(sim_callback): New global.
(arm_sim_set_profile{,_size}): Delete.
(arm_sim_set_mem_size): Rename to sim_size.
(sim_do_command): Call printf_filtered via callback.
(sim_set_callbacks): Record callback.
Jeff Law [Tue, 19 Nov 1996 23:59:27 +0000 (23:59 +0000)]
* mn10300-dis.c: Start working on disassembler support.
* mn10300-opc.c (mn10300_opcodes): Fix masks on several insns.
Selects opcodes & consumes bytes. Breaks badly if given data instead of
code. No operands yet.