Commit Graph

82 Commits

Author SHA1 Message Date
Mark Kettenis
896fb97df8 * config/i386/tm-i386.h (TARGET_LONG_DOUBLE_FORMAT,
TARGET_LONG_DOUBLE_BIT): Remove.  * i386-tdep.c
(i386_gdbarch_init): Initialize long_double_format and long_double
bit.
2002-06-14 21:17:28 +00:00
Mark Kettenis
8201327c40 * config/i386/i386sol2.mt (TDEPFILES): Add i386-sol2-tdep.o and
i386bsd-tdep.o.  Remove solib.o, solib-svr4.o and solib-legacy.o.
Move these to ...
* config/i386/i386sol2.mh: ... here.
* config/i386/tm-i386sol2.h (STAB_REG_TO_REGNUM): Remove define.
(sigtramp_saved_pc, I386V4_SIGTRAMP_SAVED_PC): Don't #undef.
(SIGCONTEXT_PC_OFFSET): Remove define.
(IN_SIGTRAMP): Remove define.
* i386-sol2-tdep.c: New file.

* config/i386/i386nw.mt (TM_FILE): Change to tm-i386.h.
* config/i386/tm-i386nw.h: Removed.

* config/i386/tm-fbsd.h (STAB_REG_TO_REGNUM,
USE_STRUCT_CONVENTION): Remove defines.
(JB_ELEMENT_SIZE, JB_PC, GET_LONGJMP_TARGET): Remove defines.
(get_longjmp_target): Remove prototype.
(IN_SIGTRAMP): Remove define.
(i386bsd_in_sigtramp): Remove prototype.
(i386bsd_sigtramp_start, i386bsd_sigtramp_end): Turn into a
function.  Update comment accordingly
(SIGTRAMP_START, SIGTRAMP): Adjust definition accordingly.
(FRAME_SAVED_PC): Remove define.
(i386bsd_frame_saved_pc): Remove prototype.
* config/i386/tm-nbsd.h (JB_ELEMENT_SIZE, JB_PC,
GET_LONGJMP_TARGET): Remove defines.
(get_longjmp_target): Remove prototype.
(IN_SIGTRAMP): Remove define.
(i386bsd_in_sigtramp): Remove prototype.
(i386bsd_sigtramp_start, i386bsd_sigtramp_end): Turn into a
function.  Update comment accordingly
(SIGTRAMP_START, SIGTRAMP): Adjust definition accordingly.
(FRAME_SAVED_PC): Remove define.
(i386bsd_frame_saved_pc): Remove prototype.
* config/i386/tm-nbsdaout.h (i386nbsd_aout_use_struct_convention):
Remove prototype.
(USE_STRUCT_CONVENTION): Remove prototype.
* i386bsd-nat.c (i386bsd_sigcontext_pc_offset): Remove
declaration.
(_initialize_i386bsd_nat): Revise logic to determine some
constants at compile time when compiling a native GDB.  Warn if
things don't match up with what we expect.
* i386bsd-tdep.c (i386bsd_sigtramp_start, i386bsd_sigtramp_end):
Remove variables.
(i386bsd_in_sigtramp): Rename tp i386bsd_pc_in_sigtramp.  Rewrite
to use date stored in `struct gdbarch_tdep'.
(i386bsd_sigcontext_offset): Remove varaible.
(i386bsd_sigtramp_saved_pc): Make public.  Rewrite to use data
stored in `struct gdbarch_tdep'.
(i386bsd_frame_saved_pc): Make static.
(i386bsd_sigtramp_start, i386bsd_sigtramp_end): New functions.
(i386bsd_sc_pc_offset, i386nbsd_sc_pc_offset,
i386fbsd_sigtramp_start, i386fbsd_sigtramp_end,
i386fbsd4_sc_pc_offset): New variables.
(i386bsd_init_abi, i386nbsd_init_abi, i386nbsdelf_init_abi,
i386fbsdaout_init_abi, i386fbsd_init_abi, i386fbsd4_init_abi): New
functions.
(i386bsd_aout_osabi_sniffer, _initialize_i386bsd_tdep): New
functions.
* i386fbsd-nat.c (_initialize_i386fbsd_nat): Fix type in comment.
Modify the value of i386fbsd_sigtramp_start and
i386fbsd_sigtramp_end instead of i386bsd_sigtramp_start and
i386fbsd_sigtramp_end.
* i386nbsd-tdep.c: (i386nbsd_aout_use_struct_convention): Remove
function.

* config/i386/tm-linux.h (I386_LINUX_ORIG_EAX_REGNUM): Move
define to i386-linux-tdep.h.
(NUM_REGS, MAX_NUM_REGS, REGISTER_BYTES, REGISTER_NAME,
REGISTER_BYTE, REGISTER_RAW_SIZE, STAB_REG_TO_REGNUM): Remove
defines.
(i386_linux_register_name, i386_linux_register_byte,
i386_linux_register_raw_size): Remove prototypes.
(i386_linux_svr4_fetch_link_map_offsets): Remove prototype.
(SVR4_FETCH_LINK_MAP_OFFSETS): Remove define.
(IN_SIGTRAMP, FRAME_CHAIN, FRAME_SAVED_PC, SAVED_PC_AFTER_CALL,
TARGET_WRITE_PC): Remove defines.
(i386_linux_in_sigtramp, i386_linux_frame_chain,
i386_linux_frame_saved_pc, i386_linux_saved_pc_after_call,
i386_linux_write_pc): Remove prototypes.
(JB_ELEMENT_SIZE, JB_PC, GET_LONGJMP_TARGET): Remove defines.
(get_longjmp_target): Remove prototype.
* i386-linux-tdep.h: New file.
* i386-linux-nat.c: Include "i386-linux-tdep.h".
* i386-linux-tdep.c: Include "i386-tdep.h" and
"i386-linux-tdep.h".
(i386_linux_register_name, i386_linux_register_byte,
i386_linux_register_raw_size, i386_linux_in_sigtramp,
i386_linux_write_pc, i386_linux_svr4_fetch_link_map_offsets):
Make static.
(i386_linux_init_abi): New function.
(_initialize_i386_linux_tdep): New function.

* config/i386/tm-i386.h (SAVED_PC_AFTER_CALL): Remove define.
(i386_saved_pc_after_call): Remove prototype.
(MAX_NUM_REGS): Increase to deal with Linux's orig_eax "register".
(REGISTER_NAME, STAB_REG_TO_REGNUM, SDB_REG_TO_REGNUM,
DWARF_REG_TO_REGNUM, DWARF2_REG_TO_REGNUM): Remove defines.
(i386_register_name, i386_stab_reg_to_regnum,
i386_dwarf_reg_to_regnum): Remove prototypes.
(SIZEOF_GREGS, SIZEOF_FPU_REGS, SIZEOF_FPU_CTL_REGS,
SIZEOF_SSE_REGS): Remove defines.
(REGISTER_BYTES): Remove define.
(REGISTER_BYTE, REGISTER_RAW_SIZE): Remove defines.
(i386_register_byte, i386_register_raw_size): Remove prototypes.
(FRAME_CHAIN, FRAME_SAVED_PC): Remove defines.
(i386_frame_chain, i386_frame_saved_pc): Remove prototypes.
* config/i386/tm-i386v4.h (FRAME_CHAIN_VALID): Remove define.
(JB_ELEMENT_SIZE, JB_PC, JB_EBX, JB_ESI, JB_EDI, JB_EBP, JB_ESP,
JB_EDX, GET_LONGJMP_TARGET): Remove defines.
(get_longjmp_target): Remove prototype.
(I386V4_SIGTRAMP_SAVED_PC, IN_SIGTRAMP): Remove defines.
(sigtramp_saved_pc): Remove define.
(i386v4_sigtramp_saved_pc): Remove prototype.
* config/i386/tm-go32.h (FRAME_CHAIN,
FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC): Remove defines.
(i386go32_frame_saved_pc): Remove prototype.
(JB_ELEMENT_SIZE, JB_PC, GET_LONGJMP_TARGET): Remove defines.
(get_longjmp_target): Remove prototype.
* i386-tdep.h: Include "osabi.h".
(enum i386_abi): Removed.
(enum struct_return): New enum.
(struct gdbarch_tdep): Remove abi member, add osabi, jb_pc_offset,
struct_return, sigtramp_saved_pc, sigtramp_start, sigtramp_end and
sc_pc_offset members.
(i386_gdbarch_register_os_abi): Remove prototype.
(I386_NUM_GREGS, I386_NUM_FREGS, I386_NUM_XREGS,
I386_SSE_NUM_REGS): New defines.
(I386_SIZEOF_GREGS, I386_SIZEOF_FREGS, I386_SIZEOF_XREGS,
I386_SSE_SIZEOF_REGS): New defines.
(i386_register_name, i386_register_byte, i386_register_raw_size):
New prototypes.
(i386_elf_init_abi, i386_svr4_init_abi): New prototypes.
(i386bsd_sigtramp_saved_pc): New prototype.
* i386-tdep.c: Don't include "elf-bfd.h".
(i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum,
i386_frame_chain, i386_saved_pc_after_call): Make static.
(i386_frame_saved_pc): Rewrite to call architecture dependent
function to deal with signal handlers.  Make static.
(i386go32_frame_saved_pc): Removed.
[GET_LONGJMP_TARGET] (JB_PC, JB_ELEMENT_SIZE, get_longjmp_target):
Removed.
(i386_get_longjmp_target): New function.
(default_struct_convention, pcc_struct_convention,
reg_struct_convention, valid_conventions, struct_convention): New
variables.
(i386_use_struct_convention): New function.
(i386v4_sigtramp_saved_pc): Renamed to
i386_svr4_sigtramp_saved_pc.  Made static.  Moved.
(i386_pc_in_sigtramp): New function.
(i386_abi_names): Removed.
(ABI_TAG_OS_GNU_LINUX, ABI_TAG_OS_GNU_HURD,
ABI_TAG_OS_GNU_SOLARIS, ABI_TAG_OS_FREEBSD, ABI_TAG_OS_NETBSD):
Removed.
(process_note_sections, i386_elf_abi_from_note, i386_elf_abi,
i386_gdbarch_register_os_abi): Removed.
(struct i386_abi_handler): Removed.
(i386_abi_handler_list): Removed.
(i386_svr4_pc_in_sigtramp, i386_go32_pc_in_sigtramp): New
functions.
(i386_elf_init_abi, i386_svr4_init_abi, i386_go32_init_abi,
i386_nw_init_abi): New functions.
(i386_gdbarch_init): Rewritten to use generic OS ABI framework.
Use set_gdbarch_xxx() calls instead of relying on macros for a
number of calls.
(i386_coff_osabi_sniffer, i386_nlm_osabi_sniffer): New functions.
(_initialize_i386_tdep): Add new 'struct-convcention' command.
Register the various architecture variants defined in this file.
2002-06-14 19:42:20 +00:00
Martin Hunt
3139facc61 2002-05-27 Martin M. Hunt <hunt@redhat.com>
* i386-tdep.c (i386_register_virtual_type): Return
	builtin_type_vec128i for SSE registers.

	* gdbtypes.h (builtin_type_vec128i): Declare.

	* gdbtypes.c (build_builtin_type_vec128i): New function.
	(builtin_type_v2_double, builtin_type_v4_int64): New types.
	(builtin_type_vec128i): New type for SSE2 128-bit registers.
	(build_gdbtypes): Initialize new builtin vector types.
	(_initialize_gdbtypes): Register new vector types with gdbarch.
2002-05-27 09:17:24 +00:00
Mark Kettenis
3ce1502b87 * i386-tdep.h (i386_abi): New enum.
(struct gdbarch_tdep): Replace os_ident member with abi.
(i386_gdbarch_register_os_abi): New prototype.
* i386-tdep.c (i386_abi_names): New array.
(process_note_abi_tag_sections): Removed.
(process_note_sections): New function.
(i386_elf_abi_from_note, i386_elf_abi): New functions.
(struct i386_abi_handler): New struct.
(i386_abi_handler_list): New variable.
(i386_gdbarch_register_os_abi): New function.
(i386_gdbarch_init): Adapt for the changes given above.
2002-05-09 13:53:36 +00:00
Andrew Cagney
349c5d5f6c * defs.h (XMALLOC): Define.
* gdb-events.sh (XMALLOC): Delete macro.
* gdb-events.c, gdb-events.h: Regenerate.
* gdbarch.sh (XMALLOC): Delete macro.
* gdbarch.c: Regenerate.
* serial.c (XMALLOC): Delete macro.
* ui-file.c (XMALLOC): Ditto.
* ser-unix.h (XMALLOC): Ditto.
* sh-tdep.c (XMALLOC): Ditto.
* ui-out.c (XMALLOC): Ditto.
* utils.c (XMALLOC): Ditto.
* i386-tdep.c (XMALLOC): Ditto.
* gdb-events.c (XMALLOC): Ditto.
* d10v-tdep.c (XMALLOC): Ditto.
* cli-out.c (XMALLOC): Ditto.

* cli-out.c, d10v-tdep.c, gdb-events.c: Update copyright.
* gdb-events.sh, i386-tdep.c, ser-unix.h, serial.c: Ditto.
* ui-file.c, ui-out.c: Ditto.
2002-03-19 02:51:09 +00:00
Peter Schauer
65d6d66a1d * i386-tdep.c (i386_gdbarch_init): Eliminate incorrect use
of ``current_gdbarch''.
2002-02-19 18:42:27 +00:00
Pierre Muller
e41e6bbfeb * i386-tdep.c (get_longjmp_target): Fix compilation failure
by setting dummy values to JB_PC and JB_ELEMENT_SIZE
 	if not defined.
2002-02-19 08:44:29 +00:00
Mark Kettenis
d2a7c97aaf * i386-tdep.h (struct gdbarch_tdep): Add `os_ident' member.
* i386-tdep.c: Include "elf-bfd.h".
(process_note_abi_tag_sections): New function.
(i386_gdbarch_init): Add code to recognize various OS/ABI
combinations.
2002-01-01 16:29:43 +00:00
Mark Kettenis
ec80a8ea8b * i386-tdep.c (i386_push_dummy_frame): Don't write back the
modified frame pointer until the old frame pointer has been saved.
2001-12-29 19:38:16 +00:00
Mark Kettenis
96297dabb3 * config/i386/tm-i386.h (FP7_REGNUM, FIRST_FPU_CTRL_REGNUM,
FCTRL_REGNUM, FPC_REGNUM, FSTAT_REGNUM, FTAG_REGNUM, FCS_REGNUM,
FCOFF_REGNUM, FDS_REGNUM, FDOFF_REGNUM, FOP_REGNUM,
LAST_FPU_CTRL_REGNUM, XMM0_REGNUM, XMM7_REGNUM, MXCSR_REGNUM,
IS_FP_REGNUM, IS_SSE_REGNUM): Removed.
(FP0_REGNUM): Define conditionally depending on HAVE_I387_REGS.
(SIZEOF_FPU_CTRL_REGS): Hardcode value.
* i386-tdep.h (struct gdbarch_tdep): Change such that it contains
a single member `num_xmm_regs'.
(FPC_REGNUM): New macro.
(FIRST_FPU_REGNUM, LAST_FPU_REGNUM, FISRT_XMM_REGNUM,
LAST_XMM_REGNUM, MXCSR_REGNUM, FIRST_FPU_CTRL_REGNUM,
LAST_FPU_CTRL_REGNUM): Removed.
(FCTRL_REGNUM, FSTAT_REGNUM, FTAG_REGNUM, FOP_REGNUM, XMM0_REGNUM,
MXCSR_REGNUM): Define unconditionally.  Change macros to match the
comment describing the register layout.
(FISEG_REGNUM, FIOFF_REGNUM, FOSEG_REGNUM, FOOFF_REGNUM): New macros.
(FP_REGNUM_P, FPC_REGNUM_P, SSE_REGNUM_P): New macros.
(IS_FP_REGNUM, IS_FPU_CTRL_REGNUM, IS_SSE_REGNUM): Make obsolete,
unconditionally define in terms of FP_REGNUM_P, FPC_REGNUM_P and
SSE_REGNUM_P).
(FCS_REGNUM, FCOFF_REGNUM, FDS_REGNUM, FDOFF_REGNUM): Make
obsolete, unconditionally define in terms of FISEG_REGNUM,
FIOFF_REGNUM, FOSEG_REGNUM, FOOFF_REGNUM.
* i386-tdep.c (i386_gdbarch_init): Initialize `num_xmm_regs'
member of `struct gdbarch_tdep'.
* x86-64-tdep.c (i386_gdbarch_init): Change initialization of
`struct gdbarch_tdep'.
* i387-nat.c (FCS_REGNUM, FCOFF_REGNUM, FDS_REGNUM, FDOFF_REGNUM):
Replace with FISEG_REGNUM, FIOFF_REGNUM, FOSEG_REGNUM and
FOOFF_REGNUM.  Use FPC_REGNUM instead of FIRST_FPU_CTRL_REGNUM.
Use XMM0_REGNUM instead of LAST_FPU_CTRL_REGNUM.
2001-12-27 15:22:27 +00:00
Andrew Cagney
22797942c4 * i386-tdep.c (i386go32_frame_saved_pc): New function.
* config/i386/tm-go32.h (i386go32_frame_saved_pc): Declare.
(FRAME_SAVED_PC): Redefine to i386go32_frame_saved_pc.
2001-12-02 18:29:08 +00:00
Andrew Cagney
bd1ef5d285 * i386-tdep.c (i386_gdbarch_init): Initialize num_regs.
* config/i386/tm-i386.h (NUM_REGS): Delete.
2001-11-18 22:14:13 +00:00
Mark Kettenis
cd3c07fc0b * i386-tdep.c (i386_gdbarch_init): Fix typo. 2001-11-08 20:26:42 +00:00
Andrew Cagney
a62cc96ec5 Enable multi-arch for i386. 2001-11-08 18:32:08 +00:00
Andrew Cagney
8ea43c6d5a Don't update `set architecture'' when `set disassembly-flavor[sic]'' 2001-11-08 18:23:43 +00:00
Mark Kettenis
1a11ba71e2 * i386-tdep.c (i386_register_offset): Renamed from
i386_register_byte.  Made static.
(i386_register_size): Renamed from i386_register_raw_size.  Made
static.
(i386_register_virtual_size): Removed.
(i386_register_byte, i386_register_raw_size,
i386_register_virtual_size): New functions.
(_initialize_i386_tdep): Initialize i386_register_offset instead
of i386_register_byte.  Remove code to initialize
i386_register_virtual_size.
* config/i386/tm-i386.h (REGISTER_BYTE): Redefine to use
i386_register_byte function.
(REGISTER_RAW_SIZE): Redefine to use i386_register_raw_size
function.
(REGISTER_VIRTUAL_SIZE): Redefine to use
i386_register_virtual_size function.
(i386_register_byte, i386_register_raw_size,
i386_register_virtual_size): New functions.
2001-11-04 13:51:48 +00:00
Mark Kettenis
fc633446cd * config/i386/tm-i386.h (REGISTER_NAMES): Remove.
(REGISTER_NAME): New define.
(i386_register_name): New prototype.
* i386-tdep.c (i386_register_names): New variable.
(i386_register_name): New function.
* config/i386/tm-i386os9k.h, config/i386/tm-ptx.h,
config/i386/tm-symmetry.h: Undefine REGISTER_NAME instead of
REGISTER_NAMES.
2001-10-31 22:24:06 +00:00
Mark Kettenis
c6ba6f0d51 * i386-tdep.c (i386_extract_return_value): Use
convert_typed_floating to extract floating-point value from
register buffer.
(i386_store_return_value): Use convert_typed_floating to store
floating-point return balue in register buffer
(i386_register_virtual_type): Change type of floating-point
registers to builtin_type_i387_ext.
(i386_register_convert_to_virtual): Use convert_typed_floating to
do the conversion.
(i386_register_convert_to_raw): Likewise.
2001-10-29 23:49:31 +00:00
Andrew Cagney
fd0407d670 Add explicit #include of "value.h". 2001-10-21 17:19:38 +00:00
Andrew Cagney
d16aafd8c8 * defs.h (HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
(HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
(HOST_LONG_DOUBLE_FORMAT, DOUBLEST)
(floatformat_to_doublest, floatformat_from_doublest)
(floatformat_is_negative, floatformat_is_nan)
(floatformat_mantissa, store_floating)
(extract_floating): Move declaration from here.
* doublest.h: To here.  New file.
* utils.c (get_field, floatformat_to_doublest, put_field)
(ldfrexp, floatformat_from_doublest, floatformat_is_negative)
(floatformat_is_nan, floatformat_mantissa)
(FLOATFORMAT_CHAR_BIT): Move from here.
* doublest.c: To here.  New file.
* findvar.c (store_floating, extract_floating): Move from here.
* doublest.c: To here.
* Makefile.in (SFILES): Add doublest.c.
(COMMON_OBS): Add doublest.o.
(doublest.o): Specify dependencies.
(doublest_h): Define.

* config/m88k/tm-m88k.h: Include "doublest.h".
* config/i960/tm-i960.h: Ditto.
* config/i386/tm-symmetry.h: Ditto.
* rs6000-tdep.c, valarith.c: Ditto.
* valprint.c, stabsread.c, sh-tdep.c: Ditto.
* ia64-tdep.c, i387-tdep.c, i386-tdep.c: Ditto.
* values.c, arm-tdep.c, arm-linux-tdep.c: Ditto.
* alpha-tdep.c, ax.h, expression.h: Ditto.
* sh-tdep.c, parse.c, top.c, value.h: Ditto.

* Makefile.in (arm-tdep.o): Add $(doublest_h).
(i386-tdep.o, i387-tdep.o, ia64-tdep.o): Ditto.
(rs6000-tdep.o, stabsread.o, valarith.o): Ditto.
(values.o, valprint.o, arm-linux-tdep.o): Ditto.
(alpha-tdep.o, ax_h, parse.o, top.o, value_h): Ditto.
(parser_defs_h): Ditto.
(expression_h): Add $(doublest_h) and $(symtab_h).
2001-08-01 18:39:27 +00:00
Mark Kettenis
8d7f6b4a80 * i386-tdep.c (i386_register_convert_to_virtual): Replace
assertion with a warning if we're asked to convert towards a
non-floating-point type.  Zero out the the buffer where the data
is supposed to be stored in that case.
2001-07-30 21:09:44 +00:00
Mark Kettenis
85540d8c4a * config/i386/tm-i386.h (STAB_REG_TO_REGNUM, SDB_REG_TO_REGNUM,
DWARF_REG_TO_REGNUM, DWARF2_REG_TO_REGNUM): New defines.
(i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum): New
prototypes.
* config/i386/tm-fbsd.h, config/i386/tm-i386gnu.h,
config/i386/tm-linux.h (STAB_REG_TO_REGNUM): Redefine to call
i386_dwarf_reg_to_regnum.
* i386-tdep.c (i386_stab_reg_to_regnum, i386_dwarf_reg_to_regnum):
New functions.
2001-07-28 17:03:38 +00:00
Mark Kettenis
3d2615808f * i386-tdep.c: Include "gdb_assert.h"
(i386_register_convert_to_virtual): Fix such that it can handle
conversion to any floating-point type.  Assert that we are dealing
with a floating-point first.
(i386_register_convert_to_raw): Assert that TYPE is a
floating-point type with length 12.
2001-07-28 16:48:59 +00:00
Andrew Cagney
ea7c478fe2 s/value_ptr/struct value */ 2001-07-15 20:10:02 +00:00
Mark Kettenis
635b0cc19c * i386-tdep.c (i386_extract_return_value): Undo 2001-07-11 changes
to comment.
(i386_store_return_value): Improve comments about storing
floating-point return values.
2001-07-12 18:50:01 +00:00
Mark Kettenis
ccb945b81e * i386-tdep.c (i386_extract_return_value): "Fix" comment.
(i386_store_return_value): Frob FPU status and tag word to make
sure the return value is the only value on the FPU stack.
2001-07-11 08:43:41 +00:00
Mark Kettenis
0d17c81d95 * i386-tdep.c (i386_frame_saved_pc): New function.
* config/i386/tm-i386.h (FRAME_SAVED_PC): Redefine in terms of
i386_frame_saved_pc.
(i386_frame_saved_pc): New prototype.
2001-05-09 16:16:33 +00:00
Mark Kettenis
d7a0d72c95 * i386-tdep.c (i386_register_virtual_type): New function.
(i386_register_convertible): New function.
* config/i386/tm-i386.h (REGISTER_VIRTUAL_TYPE): Redefine in terms
of i386_register_virtual_type.
(REGISTER_CONVERTIBLE): Redefine in terms of
i386_register_convertible.
(i386_register_virtual_type, i386_register_convertible): New
prototypes.
2001-05-09 09:58:45 +00:00
Mark Kettenis
539ffe0b42 * i386-tdep.c (i386_frameless_function_invocation): New function.
* config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION): Redefine
in terms of i386_frameless_function_invocation.  Adjust comment.
(i386_frameless_function_invocation): New prototype.
2001-04-19 11:39:48 +00:00
Mark Kettenis
ed84f6c149 * i386-tdep.c (i386_saved_pc_after_call): New function.
* config/i386/tm-i386.h (SAVED_PC_AFTER_CALL): Redefine in terms
of i386_saved_pc_after_call.
(i386_saved_pc_after_call): New prototype.
2001-04-17 23:20:55 +00:00
Mark Kettenis
c833a37e77 * i386-tdep.c (i386_frame_chain): New function.
* config/i386/tm-i386.h (FRAME_CHAIN): Redefine in terms of
i386_frame_chain.
(i386_frame_chain): New prototype.
2001-04-16 13:03:15 +00:00
Mark Kettenis
3df1b9b49d * i386-tdep.c (i386_extract_return_value): Don't return the return
value of a void function.
(i386_store_return_value): Likewise.
2001-04-04 15:09:46 +00:00
Mark Kettenis
f7af964784 * i386-tdep.c (i386_extract_struct_value_address): New function.
* config/i386/tm-i386.h (EXTRACT_STRUCT_VALUE_ADDRESS): Redefine
in terms of i386_extract_struct_value_address.
(i386_extract_struct_value_address): New prototype.
2001-04-01 12:39:52 +00:00
Mark Kettenis
1e8d0a7b55 * i386-tdep.c (i386_extract_return_value): If the type of the
return value is TYPE_STRUCT and the number of fields is one, call
ourselves with TYPE set tp the type of the first field.
(i386_store_return_value): Likewise.
This fixes a problem with returning structs consisting of a single
`float' or `double' on *BSD.
2001-03-31 13:05:16 +00:00
Mark Kettenis
22f8ba5774 * i386-tdep.c (i386_push_arguments, i386_store_struct_return): New
functions.
* config/i386/tm-i386.h (PUSH_ARGUMENTS): New macro.
(STORE_STRUCT_RETURN): Redefine in terms of
i386_store_struct_return.
(i386_push_arguments, i386_store_struct_return): New prototypes.
* config/i386/tm-i386v.h (STORE_STRUCT_RETURN): Remove.  It's
definition was identical to the definition in "i386/tm-i386.h" so
the new definition should suffice too.
2001-03-26 12:11:14 +00:00
Mark Kettenis
28e9e0f00d * i386-tdep.c: Add back _initialize_i386_tdep prototype with
appropriate comment.
2001-03-21 11:22:24 +00:00
Mark Kettenis
fc3389707e * i386-tdep.c: Fix formatting.
(i386_get_frame_setup, i386_follow_jump, codestream_read,
codestream_seek, codestream_fill, skip_trampoline_code,
gdb_print_insn_i386, _initialize_i386_tdep): Remove redundant
prototypoes.
2001-03-17 22:28:33 +00:00
Kevin Buettner
b6ba6518e9 Update/correct copyright notices. 2001-03-06 08:22:02 +00:00
Andrew Cagney
4e052eda91 Create new file regcache.h. Update all uses. 2001-03-01 01:39:22 +00:00
Kevin Buettner
e1e9e218c1 Replace calls to abort() with calls to internal_error(). 2001-02-25 04:45:12 +00:00
Andrew Cagney
8e65ff28b0 Add __FILE__ and __LINE__ parameter to internal_error() /
internal_verror().
2001-02-08 06:03:54 +00:00
Mark Kettenis
ef9dff19c4 * i386-tdep.c: Add missing ')' in comment.
(i386_extract_return_value): Return directly after issuing the
warning and filling *VALBUF with zeroes if we cannot get at the
floating-point registers.
(i386_store_return_value): New function.
* config/i386/tm-i386.h (STORE_RETURN_VALUE): Simply call
i386_store_return_value.
Add prototype for i386_store_return_value.
2000-12-21 20:52:59 +00:00
Kevin Buettner
fba45db2fa Protoization. 2000-07-30 01:48:28 +00:00
Mark Kettenis
a7769679c2 * config/i386/tm-i386.h: Add forward declaration of `struct value'.
(FIX_CALL_DUMMY): Redefined to call i386_fix_call_dummy.
(i386_fix_call_dummy): Add prototype.
* i386-tdep.c (i386_fix_call_dummy): New function based on the
code from the old FIX_CALL_DUMMY macro.
2000-06-12 01:44:35 +00:00
Andrew Cagney
53904c9e67 Change signature of function add_set_enum_cmd() so that it uses
constant character pointers.  Update everything.
As a consequence fix infrun's follow-fork plugging a small memory leak.
2000-06-08 00:52:56 +00:00
Andrew Cagney
b4a2023990 The attatched moves the remaining guff from gdbarch.{h,c,sh} to
arch-utils.{h,c}.  The ``set architecutre'' and ``set endian''
commands (part of the move) were implemented to use add_set_enum_cmd()
so that ``set architecture <tab>'' works.
2000-06-07 04:38:02 +00:00
Kevin Buettner
a14ed312fd PARAMS removal. 2000-05-28 01:12:42 +00:00
Andrew Cagney
1ed2a1352d Fix signature of add_set_enum_cmd. Change VAR parameter to char**.
Cleanup signature of add_set_cmd.  Change VAR parameter to void*.
2000-05-16 03:03:13 +00:00
Mark Kettenis
ac27f131b2 2000-03-26 Mark Kettenis <kettenis@gnu.org>
Provide `long double' support for most i386 targets.
	* config/i386/tm-i386.h (TARGET_LONG_DOUBLE_FORMAT): Define as
	&floatformat_i387_ext.
	(TARGET_LONG_DOUBLE_BITS): Define as 96.
	(REGISTER_VIRTUAL_TYPE): Change type for FPU registers to
	`builtin_type_long_double'.
	(REGISTER_CONVERT_TO_VIRTUAL): Call
	i386_register_convert_to_virtual.
	(REGISTER_CONVERT_TO_RAW): Call i386_register_convert_to_raw.
	(i387_to_double, double_to_i387): Remove prototypes.
	(i386_extract_return_value): Change prototype to match definition
	in i386-tdep.c.
	* config/i386/tm-i386mk.h (TARGET_LONG_DOUBLE_FORMAT): #undef.
	(TARGET_LONG_DOUBLE_BITS): #undef.
	* config/i386/tm-linux.h (TARGET_LONG_DOUBLE_BIT): Remove.
	[HAVE_LONG_DOUBLE && HOST_I386] (LD_I387): Remove.
	(i387_extract_floating, i387_store_floating): Remove prototypes.
	(TARGET_EXTRACT_FLOATING, TARGET_STORE_FLOATING): Remove.
	(REGISTER_CONVERT_TO_VIRTUAL, REGOISTER_CONVERT_TO_RAW): Remove.
	(REGISTER_VIRTUAL_TYPE): Remove.
	* i386-tdep.c (i386_register_convert_to_virtual): New function.
	(i386_register_convert_to_raw): New function.
	* i387-tdep.c [LD_I387] (i387_extract_floating): Remove.
	(i387_store_floating): Remove.
2000-03-26 21:21:50 +00:00
Mark Kettenis
1a309862a7 2000-03-22 Mark Kettenis <kettenis@gnu.org>
* config/i386/tm-i386aix.h (I386_AIX_TARGET): Remove.
	* config/i386/tm-linux.h (LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM):
	Remove
	* i386-tdep.c (LOW_RETURN_REGNUM, HIGH_RETURN_REGNUM): New defines.
	(i386_extract_return_value): Rewritten.  Correctly support all
	floating-point types and large integer types on targets that use
	the standard i386 GDB register layout and return floating-point
	values in the FPU.
2000-03-22 09:45:01 +00:00