summaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.c
Commit message (Collapse)AuthorAgeFilesLines
* * i386-tdep.c (i386_register_name): Rename regno to regnum.Mark Kettenis2004-09-181-6/+6
|
* * i386-tdep.c (I386_MAX_INSN_LEN): New define.Mark Kettenis2004-08-011-84/+147
| | | | | | | | | (struct i386_insn): New structure. (i386_match_insn): New function. (i386_frame_setup_skip_insns): New variable. (i386_analyze_frame_setup): Change to use i386_match_insn and the array i386_frame_setup_insns of instructions that should be skipped inside the frame setup sequence.
* 2004-07-26 Andrew Cagney <cagney@gnu.org>Andrew Cagney2004-07-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cli/cli-decode.c (deprecated_add_show_from_set): Deprecate. * xcoffsolib.c (_initialize_xcoffsolib): Update. * wince.c (_initialize_wince): Update. * win32-nat.c (_initialize_win32_nat): Update. * varobj.c (_initialize_varobj): Update. * valops.c (_initialize_valops): Update. * utils.c (initialize_utils, initialize_utils): Update. * tui/tui-win.c (_initialize_tui_win): Update. * top.c (init_main): Update. * symfile.c (_initialize_symfile): Update. * source.c (_initialize_source): Update. * somsolib.c (_initialize_som_solib): Update. * solib.c (_initialize_solib): Update. * solib-frv.c (_initialize_frv_solib): Update. * serial.c (_initialize_serial): Update. * ser-go32.c (_initialize_ser_dos, _initialize_ser_dos): Update. * remote.c (_initialize_remote, _initialize_remote): Update. * remote-vx.c (_initialize_vx): Update. * remote-utils.c (_initialize_sr_support): Update. * remote-sds.c (_initialize_remote_sds): Update. * remote-mips.c (_initialize_remote_mips): Update. * remote-e7000.c (_initialize_remote_e7000): Update. * proc-api.c (_initialize_proc_api): Update. * printcmd.c: Update. * parse.c (_initialize_parse): Update. * pa64solib.c (_initialize_pa64_solib): Update. * p-valprint.c (_initialize_pascal_valprint): Update. * monitor.c (_initialize_remote_monitors): Update. * mips-tdep.c (_initialize_mips_tdep): Update. * mcore-tdep.c (_initialize_mcore_tdep): Update. * maint.c (_initialize_maint_cmds): Update. * lin-lwp.c (_initialize_lin_lwp): Update. * language.c (_initialize_language): Update. * kod.c (_initialize_kod): Update. * infrun.c (set_schedlock_func, _initialize_infrun): Update. * i386-tdep.c (_initialize_i386_tdep): Update. * gdbtypes.c (build_gdbtypes, _initialize_gdbtypes): Update. * gdbarch.sh: Update. * gdbarch.c: Re-generate. * gdb-events.sh: Update. * gdb-events.c: Re-generate. * frame.c (_initialize_frame): Update. * exec.c: Update. * demangle.c (_initialize_demangler): Update. * dcache.c (_initialize_dcache): Update. * cris-tdep.c (_initialize_cris_tdep, cris_version_update): Update. * cp-valprint.c (_initialize_cp_valprint): Update. * corefile.c (_initialize_core): Update. * command.h: Update. * cli/cli-decode.h: Update. * cli/cli-cmds.c (init_cli_cmds): Update. * charset.c (_initialize_charset): Update. * breakpoint.c (_initialize_breakpoint): Update. * arm-tdep.c (_initialize_arm_tdep_initialize_arm_tdep): Update. * alpha-tdep.c (_initialize_alpha_tdep): Update. * aix-thread.c (_initialize_aix_thread): Update.
* Partial fix for PR backtrace/1718.Mark Kettenis2004-07-241-17/+39
| | | | | | * i386-tdep.c (i386_analyze_frame_setup): Handle more instructions that GCC migrates into the prolugue. Don't handle any instructions that clobber %ebx.
* * i386-tdep.c (i386_collect_fpregset): Fix comment.Mark Kettenis2004-06-181-3/+4
|
* 2004-06-06 Randolph Chung <tausq@debian.org>Randolph Chung2004-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbarch.sh (PUSH_DUMMY_CALL): Change CORE_ADDR func_addr argument to struct value *function. * gdbarch.c: Regenerate. * gdbarch.h: Likewise. * infcall.c (call_function_by_hand): Pass entire function value to push_dummy_call. * Makefile.in (alpha-tdep.o, frv-tdep.o, ia64-tdep.o, mips-tdep.o) (ppc-sysv-tdep.o, rs6000-tdep.o): Update dependencies. * alpha-tdep.c (alpha_push_dummy_call): Update call signature. * amd64-tdep.c (amd64_push_dummy_call): Likewise. * arm-tdep.c (arm_push_dummy_call): Likewise. * avr-tdep.c (avr_push_dummy_call): Likewise. * cris-tdep.c (cris_push_dummy_call): Likewise. * d10v-tdep.c (d10v_push_dummy_call): Likewise. * frv-tdep.c (frv_push_dummy_call): Likewise. * h8300-tdep.c (h8300_push_dummy_call): Likewise. * hppa-tdep.c (hppa32_push_dummy_call) (hppa64_push_dummy_call): Likewise. * i386-tdep.c (i386_push_dummy_call): Likewise. * ia64-tdep.c (ia64_push_dummy_call): Likewise. * m32r-tdep.c (m32r_push_dummy_call): Likewise. * m68hc11-tdep.c (m68hc11_push_dummy_call): Likewise. * m68k-tdep.c (m68k_push_dummy_call): Likewise. * m88k-tdep.c (m88k_push_dummy_call): Likewise. * mips-tdep.c (mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call) (mips_o32_push_dummy_call, mips_o64_push_dummy_call): Likewise. * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call) (ppc64_sysv_abi_push_dummy_call): Likewise. * ppc-tdep.h (ppc_sysv_abi_push_dummy_call) (ppc64_sysv_abi_push_dummy_call): Likewise. * rs6000-tdep.c (rs6000_push_dummy_call): Likewise. * s390-tdep.c (s390_push_dummy_call): Likewise. * sh-tdep.c (sh_push_dummy_call_fpu) (sh_push_dummy_call_nofpu): Likewise. * sparc-tdep.c (sparc32_push_dummy_call): Likewise. * sparc64-tdep.c (sparc64_push_dummy_call): Likewise. * vax-tdep.c (vax_push_dummy_call): Likewise.
* * i386-tdep.c (i386_supply_gregset): Adjust comment.Mark Kettenis2004-05-301-8/+55
| | | | | | | | (i386_collect_gregset): New function. (i386_supply_fpregset): Adjust comment. (i386_collect_fpregset): New function. (i386_regset_from_core_section): Use i386_collect_gregset and i386_collect_fpregset.
* * regset.c: Tweak comment.Mark Kettenis2004-05-221-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (regset_alloc): Remove descr argument. Use GDBARCH_OBSTACK_ZALLOC macro. * regset.h: Update copyright year. (struct regset): Remove `descr' member, add `gdbarch' member. (regset_alloc): Adjust prototype and comment. * i386-tdep.c (i386_supply_gregset): Get TDEP from REGSET->arch. (i386_supply_fpregset): Likewise. (i386_regset_from_core_section): Update call to regset_alloc. * i386obsd-tdep.c (i386obsd_aout_supply_regset): Get TDEP from REGSET->arch. (i386obsd_aout_regset_from_core_section): Update call to regset_alloc. * i386nbsd-tdep.c (i386nbsd_aout_supply_regset): Get TDEP from REGSET->arch. (i386nbsd_aout_regset_from_core_section): Update call to regset_alloc. * amd64-tdep.c (amd64_supply_fpregset): Get TDEP from REGSET->arch. (amd64_regset_from_core_section): Update call to regset_alloc. * amd64obsd-tdep.c (amd64obsd_supply_regset): Get TDEP from REGSET->arch. (amd64obsd_regset_from_core_section): Update call to regset_alloc. * sparcnbsd-tdep.c (sparc32nbsd_supply_gregset): Directly pass &sparc32nbsd_gregset in sparc32_supply_gregset call. (sparc32nbsd_init_abi): Update call to regset_alloc. * sparc64obsd-tdep.c (sparc64obsd_supply_gregset): Directly pass &sparc64obsd_core_gregset in sparc64_supply_gregset call. (sparc64obsd_init_abi): Update call to regset_alloc. * sparc64nbsd-tdep.c (sparc64nbsd_supply_gregset): Directly pass &sparc64nbsd_gregset in sparc64_supply_gregset call. (sparc64nbsd_init_abi): Update call to regset_alloc. * sparc64fbsd-tdep.c (sparc64fbsd_supply_gregset): Directly pass &sparc64fbsd_gregset in sparc64_supply_gregset call. (sparc64fbsd_init_abi): Update call to regset_alloc.
* Allocate regset structures in the gdbarch's obstack, not usingJim Blandy2004-05-211-2/+4
| | | | | | | | | | | | | | | | | | xmalloc. * regset.c (regset_alloc): Renamed from regset_xmalloc. Add 'arch' argument. Allocate the regset on arch's obstack, not using xmalloc. * regset.h (regset_alloc): Update declaration. * am64-tdep.c (amd64_regset_from_core_section): Update call; pass gdbarch argument. * amd64obsd-tdep.c (amd64obsd_regset_from_core_section): Same. * i386-tdep.c (i386_regset_from_core_section): Same. * i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Same. * i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Same. * sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Same. * sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Same. * sparc64obsd-tdep.c (sparc64obsd_init_abi): Same. * sparcnbsd-tdep.c (sparc32nbsd_init_abi): Same.
* Use a constructor function to create regset structures.Jim Blandy2004-05-201-10/+2
| | | | | | | | | | | | | | | | | | | | * regset.h (supply_regset_ftype, collect_regset_ftype): New typedefs. (struct regset): Use supply_regset_ftype. Add new 'collect_regset' member. (regset_xmalloc): New declaration. * regset.c: New file. * am64-tdep.c (amd64_regset_from_core_section): Use regset_xmalloc to construct regset structures. * amd64obsd-tdep.c (amd64obsd_regset_from_core_section): Same. * i386-tdep.c (i386_regset_from_core_section): Same. * i386nbsd-tdep.c (i386nbsd_aout_regset_from_core_section): Same. * i386obsd-tdep.c (i386obsd_aout_regset_from_core_section): Same. * sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Same. * sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Same. * sparc64obsd-tdep.c (sparc64obsd_init_abi): Same. * sparcnbsd-tdep.c (sparc32nbsd_init_abi): Same. * Makefile.in (COMMON_OBS): Add regset.o. (regset.o): New rule.
* * defs.h (enum return_value_convention): AddMark Kettenis2004-05-081-1/+22
| | | | | | | | | | | | | RETURN_VALUE_ABI_RETURNS_ADDRESS and RETURN_VALUE_ABI_PRESERVES_ADDRESS. * infcmd.c (legacy_return_value): New function. (print_return_value): Rwerite to implement RETURN_VALUE_ABI_RETURNS_ADDRESS. * values.c (using_struct_return): Check for inequality to RETURN_VALUE_REGISTER_CONVENTION instead of equality to RETURN_VALUE_STRUCT_CONVENTION. * i386-tdep.c (i386_return_value): Implement RETURN_VALUE_ABI_RETURNS_ADDRESS.
* Revert 2004-04-16 change.Brian Ford2004-04-301-13/+3
| | | | | | | * i386-tdep.c (i386_gdbarch_init): Fix comment typos. (i386_coff_init_abi): Remove. * i386-tdep.h (i386_coff_init_abi): Remove. * i386-cygwin-tdep.c (i386_cygwin_init_abi): Remove call to above.
* Mark Kettenis <kettenis@gnu.org>Mark Kettenis2004-04-291-1/+7
| | | | | * i386-tdep.c (i386_skip_prologue): follow the last jump only if the function begins with a branch instruction.
* * i386-tdep.c: Fix spelling mistakes.Mark Kettenis2004-04-291-13/+13
|
* Based on a patch from Brian Ford <ford@vss.fsi.com>:Mark Kettenis2004-04-181-60/+58
| | | | | | | | | * i386-tdep.c: Correct register numbering scheme comments throughout. (i386_stab_reg_to_regnum): Rename to i386_dbx_reg_to_regnum. (i386_dwarf_reg_to_regnum): Rename to i386_svr4_reg_to_regnum. (i386_coff_init_abi, i386_elf_init_abi): Accomodate renames above. (i386_gdb_arch_init): Likewise.
* From Brian Ford <ford@vss.fsi.com>:Mark Kettenis2004-04-161-0/+10
| | | | | | | * i386-tdep.c (i386_coff_init_abi): New function. * i386-tdep.h (i386_coff_init_abi): New prototype. * i386-cygwin-tdep.c (i386_cygwin_init_abi): Call it. Use correct register number translation functions for DWARF and DWARF 2.
* * amd64-linux-tdep.c, amd64nbsd-tdep.c, amd64obsd-tdep.c,Mark Kettenis2004-04-091-2/+2
| | | | | i386-linux-tdep.c, i386-tdep.c, i386nbsd-tdep.c, i386obsd-tdep.c: Fix typo.
* * amd64-tdep.c (amd64_sigtramp_frame_sniffer): Rewrite to use newMark Kettenis2004-04-091-25/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sigtramp_p member of `struct gdbarch_tdep'. Also check whether the program counter is in the range specified by `struct gdbarch_tdep'. * amd64-linux-tdep.c: Include "symtab.h". (amd64_linux_pc_in_sigtramp): Remove function. (amd64_linux_sigtramp_p): New function. (amd64_linux_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * amd64nbsd-tdep.c: Include "symtab.h". (amd64nbsd_sigtramp_p): New function. (amd64nbsd_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * amd64obsd-tdep.c: Include "symtab.h" and "objfiles.h". Add a few comments. (amd64obsd_pc_in_sigtramp): Remove function. (amd64obsd_sigtramp_p): New function. (amd64obsd_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * i386-tdep.h (struct gdbarch_tdep): Add sigtramp_p member. (i386bsd_pc_ins_sigtramp): Remove prototype. (i386bsd_sigtramp_start, i386bsd_sigtramp_end): Remove prototypes. * i386-tdep.c (i386_sigtramp_frame_sniffer): Rewrite to use new sigtramp_p member of `struct gdbarch_tdep'. Also check whether the program counter is in the range specified by `struct gdbarch_tdep'. (i386_pc_in_sigtramp, i386_svr4_pc_in_sigtramp): Remove functions. (i386_sigtramp_p, i386_svr4_sigtramp_p): New functions. (i386_go32_pc_in_sigtramp): Remove function. (i386_svr4_init_abi): Don't set deprecated_pc_in_sigtramp. Initialize TDEP->sigtramp_p. (i386_go32_init_abi): Initialize TDEP->sigtramp_p to NULL. (i386_gdbarch_init): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * i386-linux-tdep.c: Adjust comments. (i386_linux_pc_in_sigtramp): Remove function. (i386_linux_sigtramp_p): New function. (i386_linux_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * i386-nto-tdep.c: Update copyright year. (i386nto_pc_in_sigtramp): Remove function. (i386nto_sigtramp_p): New function. (i386nto_sigcontext_addr): Use I386_ESP_REGNUM instead of SP_REGNUM. (i386nto_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * i386-sol2-tdep.c: Update copyright year. (i386_sol2_pc_in_sigtramp): Remove function. (i386_sol2_sigtramp_p): New function. (i386_sol2_init_abi): Initialize TDEP->sigtramp_p. Don't set deprecated_pc_in_sigtramp. * i386bsd-tdep.c (i386bsd_pc_in_sigtramp): Remove function. (i386bsd_sigtramp_start, i386bsd_sigtramp_end): Remove functions. (i386bsd_init_abi): Don't set deprecated_pc_in_sigtramp, deprecated_sigtramp_start and deprecated_sigtramp_end. * i386nbsd-tdep.c: Include "frame.h" and "symtab.h". (i386nbsd_pc_in_sigtramp): Remove function. (i386nbsd_sigtramp_p): New function. (i386nbsd_init_abi): Don't set deprecated_pc_in_sigtramp, deprecated_sigtramp_start, deprecated_sigtramp_end. Initialize TDEP->sigtramp_start, TDEP->sigtramp_end and TDEP->sigtramp_p. * i386obsd-tdep.c: Include "frame.h", "symtab.h" and "objfiles.h". (i386obsd_pc_in_sigtramp): Remove function. (i386obsd_sigtramp_p): New function. (i386obsd_sigtramp_start, i386obsd_sigtramp_end): Remove functions. (i386bsd_init_abi): Don't set deprecated_pc_in_sigtramp, deprecated_sigtramp_start, deprecated_sigtramp_end. Initialize TDEP->sigtramp_p. * Makefile.in (amd64-linux-tdep.o, amd64nbsd-tdep.o, amd64obsd-tdep.o, i386nbsd-tdep.o, i386obsd-tdep.o): Update dependencies.
* * i386-tdep.c (i386_stab_reg_to_regnum): Correct numbering forJim Blandy2004-04-071-2/+7
| | | | %esp and %ebp
* * i386-tdep.c: Add FIXME regarding STABS vs. Dwarf 2 registerJim Blandy2004-04-011-0/+36
| | | | numbering.
* 2004-03-23 Andrew Cagney <cagney@redhat.com>Andrew Cagney2004-03-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbarch.sh (PC_IN_SIGTRAMP): Change to a function with predicate, deprecate. * gdbarch.h, gdbarch.c: Re-generate. * alpha-linux-tdep.c (alpha_linux_init_abi): Update. * alpha-osf1-tdep.c (alpha_osf1_init_abi): Update. * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Update. * alphafbsd-tdep.c (alphafbsd_init_abi): Update. * alphanbsd-tdep.c (alphanbsd_init_abi): Update. * amd64-linux-tdep.c (amd64_linux_init_abi): Update. * amd64-tdep.c (amd64_sigtramp_frame_sniffer): Update. * amd64nbsd-tdep.c (amd64nbsd_init_abi): Update. * amd64obsd-tdep.c (amd64obsd_init_abi): Update. * arm-tdep.c (arm_sigtramp_unwind_sniffer): Update. * blockframe.c (find_pc_partial_function): Update. * breakpoint.c (bpstat_what): Update. * frame.c (frame_type_from_pc, legacy_get_prev_frame): Update. * frv-linux-tdep.c (frv_linux_init_abi): Update. * frv-tdep.c (frv_sigtramp_frame_sniffer): Update. * hppa-hpux-tdep.c (hppa_hpux_init_abi): Update. * i386-interix-tdep.c (i386_interix_init_abi): Update. * i386-linux-tdep.c (i386_linux_init_abi): Update. * i386-nto-tdep.c (i386nto_init_abi): Update. * i386-sol2-tdep.c (i386_sol2_init_abi): Update. * i386-tdep.c (i386_sigtramp_frame_sniffer) (i386_svr4_init_abi, i386_go32_init_abi, i386_gdbarch_init): Update. * i386bsd-tdep.c (i386bsd_init_abi): Update. * i386nbsd-tdep.c (i386nbsd_init_abi): Update. * i386obsd-tdep.c (i386obsd_init_abi): Update. * ia64-tdep.c (ia64_sigtramp_frame_sniffer): Update. * infrun.c (pc_in_sigtramp): Update. * m68k-tdep.c (m68k_sigtramp_frame_sniffer): Update. * m68klinux-tdep.c (m68k_linux_init_abi): Update. * mips-tdep.c (mips_gdbarch_init): Update. * mipsnbsd-tdep.c (mipsnbsd_init_abi): Update. * ppc-linux-tdep.c: Update comment. * ppcnbsd-tdep.c (ppcnbsd_init_abi): Update. * shnbsd-tdep.c (shnbsd_init_abi): Update. * sparc-linux-tdep.c (sparc32_linux_init_abi): Update. * sparc-sol2-tdep.c (sparc32_sol2_init_abi): Update. * sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Update. * sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Update. * sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Update. * sparc64obsd-tdep.c (sparc64obsd_init_abi): Update. * sparcnbsd-tdep.c (sparc32nbsd_init_abi): Update. * sparcobsd-tdep.c (sparc32obsd_init_abi): Update. Index: doc/ChangeLog 2004-03-23 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Deprecate references to PC_IN_SIGTRAMP.
* 2004-01-17 Andrew Cagney <cagney@redhat.com>Andrew Cagney2004-01-171-16/+2
| | | | | | | | | | | | | | | | | | * x86-64-tdep.c (x86_64_init_abi): No need to clear extract_struct_value_address, i386 does not set it. * sparc64-tdep.c (sparc64_init_abi): Do not set extract_struct_value_address, never called. (sparc64_extract_struct_value_address): Delete function. * m68hc11-tdep.c: Update copyright. (m68hc11_gdbarch_init): Delete redundant assignment of extract_struct_value_address. * i386-tdep.c: Update copyright. (i386_gdbarch_init): Do not set extract_struct_value_address, never called. (i386_extract_struct_value_address): Delete function. * sparc-tdep.c (sparc32_gdbarch_init): Do not set extract_struct_value_address, never called. (sparc32_extract_struct_value_address): #if 0 function.
* 2004-01-13 Andrew Cagney <cagney@redhat.com>Andrew Cagney2004-01-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbarch.sh (FUNCTION_START_OFFSET): Make zero the default. * gdbarch.c: Re-generate. * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set FUNCTION_START_OFFSET. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc32_gdbarch_init): Ditto. * sh64-tdep.c (sh64_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * ns32k-tdep.c (ns32k_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * m32r-tdep.c (m32r_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * hppa-tdep.c (hppa_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * arm-tdep.c (arm_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto.
* * i386-tdep.c (i386_analyze_frame_setup): Add missing encodingsMark Kettenis2003-12-141-1/+5
| | | | for `subl' and `xorl' instructions.
* * i386-tdep.c (i386_extract_return_value,Mark Kettenis2003-11-201-38/+63
| | | | | | | | | | | | | i386_store_return_value): Add gdbarch argument. Use it instead of determining it from REGCACHE. Remove recursive call for structures with a single member. (i386_use_struct_convention): Remove. (i386_reg_struct_return_p): New function. (i386_return_value): New function. (i386_gdbarch_init): Set return_value, don't set extract_return_value, store_return_value and use_struct_convention. * x86-64-tdep.c (x86_64_init_abi): Set return_value to NULL.
* * i386-tdep.h (i386_supply_gregset): Provide prototype.Mark Kettenis2003-11-161-1/+1
| | | | * i386-tdep.c (i386_supply_gregset): Make public.
* * i386-tdep.c (i386_extract_return_value): Don't use bfd_byte.Mark Kettenis2003-11-161-3/+2
|
* * i386-tdep.c (i386_supply_fpregset): Support floating-pointMark Kettenis2003-10-301-1/+9
| | | | | registers in `fxsave' format. (i386_regset_from_core_section): Deal with ".reg-xfp" sections.
* Change register numbers to enumartion values.Mark Kettenis2003-10-261-8/+0
| | | | | | | | | * i386-tdep.h (enum i386_regnum): New. (I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM, I386_EBP_REGNUM, I386_IP_REGNUM, I386_EFLAGS_REGNUM, I386_ST0_REGNUM): Remove defines. * i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM, I386_EDI_REGNUM): Remove defines.
* * i386-tdep.c (i386_regset_from_core_section): New function.Mark Kettenis2003-10-111-0/+41
| | | | | | (i386_gdbarch_init): Initialize regset_from_core_section if appropriate. * i386-tdep.h (i386_regset_from_core_section): New declaration.
* * i386-tdep.c (i386_analyze_frame_setup): Also handle xorl/sublAndreas Schwab2003-10-061-0/+3
| | | | with %eax.
* * i386-tdep.h (struct gdbarch_tdep): Add members gregset,Mark Kettenis2003-10-051-0/+46
| | | | | | | | | | | | gregset_reg_offset, gregset_num_regs, sizeof_gregset, fpregset, sizeof_fpregset. * i386-tdep.c: Include "regset.h". (i386_supply_gregset): New function. (i386_supply_fpregset): New function. (i386_gdbarch_init): Initialze register set-related members of TDEP. * x86-64-tdep.c (x86_64_supply_fpregset): New function. (x86_64_init_abi): Initialize TDEP->sizeof_fpregset.
* * i386-tdep.h: Put opaque declarations in alphabeticalMark Kettenis2003-09-271-62/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | order. Remove spurious whitespace. (struct gdbarch_tdep): add st0_regnum and mm0_regnum members. (i386_sse_regnum_p, i386_mxcsr_regnum_p): Remove prototypes. * i386-tdep.c (MM0_REGNUM): Remove define. (i386_mmx_regnum_p): Add gdbarch argument. (i386_sse_regnum_p, i386_mxcsr_regnum_p): Add gdbarch argument. Rewrite using new macro definitions for FPU/SSE registers. (i386_fp_regnum_p, i386_fpc_regnum_p): Rewrite using new macro definitions from i387-tdep.h. (i386_register_name): Update. (i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum): Update to use new macro definitions for FPU/SSE registers. (i386_extract_return_value): Determine whether floating-point registers are present by examining REGCACHE's architecture. (i386_store_return_value): Likewise. Use I386_MAX_REGISTER_SIZE instead of FPU_REG_RAW_SIZE. Use new macro definitions for FPU/SSE registers. (i386_register_type): Update. (i386_mmx_regnum_to_fp_regnum): Rewrite using new macro definitions for FPU registers. Use REGCACHE's architecture to determine the appropriate register numbers. (i386_pseudo_register_read, i386_pseudo_register_write, i386_register_reggroup_p): Update. (i386_gdbarch_init): Initialize TDEP->st0_regnum and TDEP->mm0_regnum. * i387-tdep.h (I387_FCTRL_REGNUM, I387_FSTAT_REGNUM, I387_FTAG_REGNUM, I387_FISEG_REGNUM, I387_FIOFF_REGNUM, I387_FOSEG_REGNUM, I387_FOOFF_REGNUM, I387_FOP_REGNUM, I387_XMM0_REGNUM, I387_MXCSR_REGNUM): New defines. (i387_supply_fsave, i387_fill_fsave, i387_supply_fxsave, i387_fill_fxsave): Change type of fsave/fxsave argument from `char *' to `void *'. * i387-tdep.c (i387_print_float_info, fsave_offset, FSAVE_ADDR, i387_supply_fsave, i387_fill_fsave, fxsave_offset, FXSAVE_ADDR, i387_supply_fxsave, i387_fill_fxsave): Update to use new macro definitions for FPU/SSE registers. (FXSAVE_MXCSR_ADDR): New define. * x86-64-tdep.c (x86_64_init_abi): Override TDEP->st0_regnum and TDEP->mm0_regnum. (I387_FISEG_REGNUM, I387_FOSEG_REGNUM): Remove defines. (I387_ST0_REGNUM): Define.
* * i386-tdep.c (i386_num_register_names, i386_num_mmx_regs):Mark Kettenis2003-09-271-4/+2
| | | | Initialize using ARRAY_SIZE.
* 2003-09-04 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-09-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * avr-tdep.c: Include "dis-asm.h". * cris-tdep.c: Include "dis-asm.h". (cris_delayed_get_disassembler): Use "struct disassemble_info" instead of corresponding typedef. * h8300-tdep.c: Include "dis-asm.h". * ia64-tdep.c: Include "dis-asm.h". * i386-tdep.c: Include "dis-asm.h". (i386_print_insn): Use "struct disassemble_info" instead of corresponding typedef. * m68k-tdep.c: Include "dis-asm.h". * mcore-tdep.c: Include "dis-asm.h". * mips-tdep.c: Include "dis-asm.h". (gdb_print_insn_mips): Make static, use "struct disassemble_info" instead of corresponding typedef. * ns32k-tdep.c: Include "dis-asm.h". * s390-tdep.c: Include "dis-asm.h". * sparc-tdep.c: Include "dis-asm.h". * vax-tdep.c: Include "dis-asm.h". * v850-tdep.c: Include "dis-asm.h". * mn10300-tdep.c: Include "dis-asm.h". * rs6000-tdep.c: Include "dis-asm.h". * xstormy16-tdep.c: Include "dis-asm.h". (_initialize_xstormy16_tdep): Delete "extern" declaration of print_insn_xstormy16. * Makefile.in (v850-tdep.o): Update dependencies. (vax-tdep.o, sparc-tdep.o, s390-tdep.o): Ditto. (ns32k-tdep.o, mips-tdep.o, mcore-tdep.o): Ditto. (m68k-tdep.o, ia64-tdep.o, i386-tdep.o): Ditto. (h8300-tdep.o, cris-tdep.o, avr-tdep.o): Ditto. (mn10300-tdep.o, xstormy16-tdep.o, disasm.o): Ditto. (gdbarch_h): Remove $(dis_asm_h). * disasm.c: Include "dis-asm.h". (dis_asm_read_memory): Use "struct disassemble_info" instead of corresponding typedef. (dis_asm_memory_error, dump_insns, do_assembly_only): Ditto. (gdb_disassemble_info, gdb_disassembly, gdb_print_insn): Ditto. * gdbarch.sh: Do not include "dis-asm.h". (struct disassemble_info): Declare opaque. (TARGET_PRINT_INSN): Update declaration. * gdbarch.h, gdbarch.c: Re-generate.
* * i386-tdep.c (i386_analyze_register_saves): Handle register savesMark Kettenis2003-08-171-15/+14
| | | | | at the start of a frameless function. This probably fixes PR backtrace/1338.
* * i386-tdep.c (i386_gdbarch_init): Enable default support forKevin Buettner2003-08-121-5/+18
| | | | SSE registers.
* * i386-tdep.c (i386_register_to_value): Use get_frame_registerMark Kettenis2003-08-101-14/+18
| | | | | | | | | | | | | | | | | | | | instead of frame_read_register. (i386_fetch_pointer_argument): Use get_frame_register_unsigned instead of frame_read_register. Use I386_ESP_REGNUM instead of SP_REGNUM. (i386_frame_prev_register): Use frame_unwind_register_unsigned instead of frame_unwind_unsigned_register. Use I386_EFLAGS_REGISTER instead of PS_REGNUM. (i386_get_longjmp_target): Use regcache_read_unsigned_register instead of read_register. Use builtin_type_void_data_ptr instead of builtin_type_void_func_ptr when extracting the address of the jmp_buf. (i386_extract_return_value, i386_store_return_value, i386_pseudo_register_read, i386_pseudo_register_write): Use register_size instead REGISTER_RAW_SIZE. (i387_print_float_info): Use get_frame_register and get_frame_register_unsigned instead of frame_register_read.
* Based on a patch from Michael Elizabeth Chastain (mec@shout.net):Mark Kettenis2003-08-101-5/+42
| | | | | | * i386-tdep.c (i386_analyze_frame_setup): Recognize more instructions that GCC likes to mingle into the prologue. Fixes gdb/1253 and gdb/1255.
* 2003-07-18 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-07-181-1/+0
| | | | | | | | | | | * gdbarch.sh (DWARF2_BUILD_FRAME_INFO): Delete method. * gdbarch.h, gdbarch.c: Re-generate. * i386-tdep.c (i386_gdbarch_init): Do not set DWARF2_BUILD_FRAME_INFO. * elfread.c (elf_symfile_read): Call dwarf2_build_frame_info unconditionally. * alpha-tdep.c (alpha_dwarf2_init_abi): Do not set DWARF2_BUILD_FRAME_INFO.
* 2003-07-16 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-07-161-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * frame-base.h (frame_base_p_ftype): Delete definition. (frame_base_append_predicate): Delete declaration. * frame-unwind.h (frame_unwind_p_ftype): Delete definition. (frame_unwind_append_predicate): Delete declaration. * frame-unwind.c (struct frame_unwind_table): Delete field "p". (append_predicate): Delete parameter "p". (frame_unwind_append_predicate): Delete function. (frame_unwind_append_sniffer): Update call to append_predicate. (frame_unwind_free): Delete function. (_initialize_frame_unwind): Pass NULL as "free" to register_gdbarch_data. (frame_unwind_init): Append the dummy_frame_sniffer. (frame_unwind_find_by_frame): Simplify. * frame-base.c (struct frame_base_table): Delete field "p". (append_predicate): Delete parameter "p". (frame_base_append_predicate): Delete function. (frame_base_append_sniffer): Update call to append_predicate. (frame_base_free): Delete function. (frame_base_find_by_frame): Simplify. (_initialize_frame_base): Pass NULL as "free" to register_gdbarch_data. * x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p". (x86_64_sigtramp_frame_sniffer): Replace "x86_64_sigtramp_frame_p". (x86_64_init_abi): Set the frame unwind sniffers. * m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p". (m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p" (m68k_gdbarch_init): Set the frame unwind sniffers. * i386-tdep.c (i386_sigtramp_frame_sniffer): Replace "i386_sigtramp_frame_p". (i386_frame_sniffer): Replace "i386_frame_p". (i386_gdbarch_init): Set the frame unwind sniffers. * avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer". (avr_gdbarch_init): Set the frame unwind sniffers. * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace "alpha_sigtramp_frame_p" (alpha_heuristic_frame_sniffer): Replace "alpha_heuristic_frame_p". (alpha_gdbarch_init): Set the frame unwind sniffers. (alpha_dwarf2_init_abi): Ditto. * alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace "alpha_debug_frame_p". (alpha_mdebug_frame_base_sniffer): Replace "alpha_mdebug_frame_base_p". (alpha_mdebug_init_abi): Set the frame unwind sniffers. * d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p". (d10v_gdbarch_init): Set the frame unwind sniffer. * dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p". (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p". * dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p". (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p". * dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p". * dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".
* 2003-07-02 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-07-021-25/+34
| | | | | * i386-tdep.c: Revert change committed as part of trad-frame code below.
* 2003-07-01 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-07-011-34/+25
| | | | | | | | | | | | | | | | | * trad-frame.h: Update comments, a -1 .addr is reserved. (trad_frame_value_p, trad_frame_addr_p): Declare. (trad_frame_reg_p): Declare. (trad_frame_set_value): Rename trad_frame_register_value. (trad_frame_set_unknown): Declare. * trad-frame.c (trad_frame_realreg_p): New function. (trad_frame_addr_p, trad_frame_value_p): New function. (trad_frame_set_unknown): New function. (trad_frame_alloc_saved_regs): Initialize .addr to -1, not zero. (trad_frame_prev_register): Use trad_frame_realreg_p, trad_frame_addr_p and trad_frame_value_p. (trad_frame_set_value): Rename trad_frame_register_value. * d10v-tdep.c (d10v_frame_unwind_cache): Use trad_frame_addr_p and trad_frame_set_value.
* * i386-tdep.c (i386_next_regnum): Fix bounds checking.Mark Kettenis2003-06-151-23/+48
| | | | | (i386_convert_register_p, i386_register_to_value, i386_register_from_value): Handle types longer than 8 bytes.
* * i386-tdep.c (i386_register_to_value, i386_value_to_register):Mark Kettenis2003-06-151-55/+25
| | | | | | | | | | | Move floating-point code to new function in i387-tdep.c. * i387-tdep.c (i387_register_to_value, i387_value_to_register): New functions containing code moved here from i386-tdep.c. * i387-tdep.h: Add opaque declaration for `struct type'. (i387_register_to_value, i387_value_to_register): New prototypes. * x86-64-tdep.c (x86_64_convert_register_p): New function. (x86_64_init_abi): Set convert_register_p, register_to_value and value_to_register here.
* 2003-06-14 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-06-151-1/+1
| | | | | | | | | | | | | | | | | * mips-tdep.c (mips_register_to_value): Make static. (mips_value_to_register): Make static. * i386-tdep.c (i386_fetch_pointer_argument): Make static. * ia64-tdep.c (ia64_register_raw_size): Make static. (ia64_register_virtual_size): Make static. (ia64_register_byte): Make static. * i387-tdep.c: Include "i387-tdep.h". (print_387_control_word): Delete function. (print_387_status_word): Delete function. (print_387_status_bits): Delete function. (print_387_control_bits): Delete function. * Makefile.in (i387-tdep.o): Update dependencies. * rdi-share/host.h (Fail): Declare. * remote-rdi.c (Fail): Update to match declaration.
* 2003-06-14 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-06-141-40/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mark Kettenis <kettenis@gnu.org> * gdbarch.sh (CONVERT_REGISTER_P): Add "type" parameter. (REGISTER_TO_VALUE, VALUE_TO_REGISTER): Replace raw buffer parameter with "frame". * gdbarch.h, gdbarch.c: Re-generate. * frame.h (put_frame_register): Declare. * frame.c (put_frame_register): New function. * arch-utils.c (legacy_convert_register_p): Add "type" parameter. (legacy_register_to_value): Rewrite, use "frame" to get the register value. (legacy_value_to_register): Rewrite, use "frame" to find the register's location before storing. * arch-utils.h (legacy_convert_register_p): Update. (legacy_register_to_value, legacy_value_to_register): Update. * findvar.c (value_from_register): Rewrite, eliminate use of REGISTER_CONVERT_TO_TYPE, pass "type" to CONVERT_REGISTER_P, pass "frame" to REGISTER_TO_VALUE. * valops.c (value_assign): Move the CONVERT_REGISTER code to the lval_reg_frame_relative + lval_register branch of the switch. Do not use REGISTER_CONVERT_FROM_TYPE. Use put_frame_register. * i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM, I386_EDI_REGNUM): New defines. (i386_next_regnum, i386_convert_register_p, i386_register_to_value, i386_value_to_register): New functions. (i386_register_convertible, i386_register_convert_to_virtual, i386_convert_to_raw): Remove functions. (i386_gdbarch_init): Set convert_register_p, register_to_value and value_to_register instead of register_convertible, register_convert_to_virtual and register_convert_to_raw. * mips-tdep.c (mips_convert_register_p): New function. (mips_value_to_register): Replace mips_register_convert_from_type. (mips_register_to_value): Replace mips_register_convert_to_type. (mips_gdbarch_init): Set conver_register_p, value_to_register and register_to_value. * alpha-tdep.c (alpha_convert_register_p): Update. (alpha_value_to_register): Update, store the register. (alpha_register_to_value): Update, fetch the register.
* 2003-06-13 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-06-131-8/+13
| | | | | | | | | | | | | | | | | | * infcall.c (call_function_by_hand): When UNWIND_DUMMY_ID is available, do not use the FP register, and always save the TOS. * dummy-frame.c (dummy_frame_this_id): Do not assert SAVE_DUMMY_FRAME_TOS. * i386-tdep.c (i386_save_dummy_frame_tos): Delete function. (i386_gdbarch_init): Do not set save_dummy_frame_tos. (i386_push_dummy_call): Add 8 to the returned SP. * frame.c (legacy_frame_p): Do not require SAVE_DUMMY_FRAME_TOS. * d10v-tdep.c (d10v_unwind_dummy_id): Use d10v_unwind_sp. (d10v_gdbarch_init): Do not set save_dummy_frame_tos. * x86-64-tdep.c (x86_64_save_dummy_frame_tos): Delete function. (x86_64_push_dummy_call): Return "sp + 16". (x86_64_init_abi): Do not set save_dummy_frame_tos. * alpha-tdep.c (alpha_gdbarch_init): Do not set save_dummy_frame_tos.
* 2003-06-11 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-06-111-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Deprecate REGISTER_CONVERTIBLE. (DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL): Same. (DEPRECATED_REGISTER_CONVERT_TO_RAW): Same, make "from" constant. * gdbarch.h, gdbarch.c: Re-generate. * arch-utils.h (deprecated_register_convertible_not): Rename generic_register_convertible_not. * arch-utils.c (deprecated_register_convertible_not): Rename generic_register_convertible. (legacy_convert_register_p, legacy_register_to_value): Update. * sh-tdep.c (sh64_push_arguments): Update. * m68klinux-tdep.c (m68k_linux_extract_return_value): Update. * config/m68k/tm-delta68.h (DEPRECATED_EXTRACT_RETURN_VALUE): Update. * m68klinux-tdep.c (m68k_linux_store_return_value): Update. * config/m68k/tm-delta68.h (DEPRECATED_STORE_RETURN_VALUE): Update. * arch-utils.c (legacy_value_to_register): Update. * rs6000-tdep.c (rs6000_gdbarch_init): Update. (rs6000_register_convert_to_raw): Make parameter "from" const. * mips-tdep.c (mips_gdbarch_init): Update. (mips_register_convert_to_raw): Make parameter"virt_buf" const. * infcmd.c (default_print_registers_info): Update. * ia64-tdep.c (ia64_gdbarch_init): Update. (ia64_register_convert_to_raw): Make parameter "from" const. * i386-tdep.c (i386_gdbarch_init): Update. (i386_register_convert_to_raw): Update.
* 2003-06-09 Andrew Cagney <cagney@redhat.com>Andrew Cagney2003-06-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbarch.sh (FRAME_NUM_ARGS): Change to function with predicate. * gdbarch.h, gdbarch.c: Re-generate. * arch-utils.h (frame_num_args_unknown): Delete both declarations. * arch-utils.c (frame_num_args_unknown): Delete function. * stack.c (print_args_stub): Use FRAME_NUM_ARGS_P. (frame_info): Use FRAME_NUM_ARGS_P. * arm-tdep.c (arm_frame_num_args): Delete function. (arm_gdbarch_init): Do not set frame_num_args. * config/pa/tm-hppa64.h (FRAME_NUM_ARGS): Delete. * hppa-tdep.c (hppa_frame_num_args): Delete function. (hppa_gdbarch_init): Do not set frame_num_args. * config/sparc/tm-sparc.h (FRAME_NUM_ARGS): Delete. * xstormy16-tdep.c (xstormy16_gdbarch_init): Do not set frame_num_args to default frame_num_args_unknown. * v850-tdep.c (v850_gdbarch_init): Ditto. * sparc-tdep.c (sparc_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * s390-tdep.c (s390_gdbarch_init): Ditto. * rs6000-tdep.c (rs6000_gdbarch_init): Ditto. * mn10300-tdep.c (mn10300_gdbarch_init): Ditto. * mips-tdep.c (mips_gdbarch_init): Ditto. * mcore-tdep.c (mcore_gdbarch_init): Ditto. * m68k-tdep.c (m68k_gdbarch_init): Ditto. * m68hc11-tdep.c (m68hc11_gdbarch_init): Ditto. * ia64-tdep.c (ia64_gdbarch_init): Ditto. * i386-tdep.c (i386_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * frv-tdep.c (frv_gdbarch_init): Ditto. * d10v-tdep.c (d10v_gdbarch_init): Ditto. * cris-tdep.c (cris_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto. * alpha-tdep.c (alpha_gdbarch_init): Ditto.