aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/vax
diff options
context:
space:
mode:
authorJason Thorpe <thorpej@netbsd.org>2002-04-23 00:53:31 +0000
committerJason Thorpe <thorpej@netbsd.org>2002-04-23 00:53:31 +0000
commitf267bd6a08884780c05098c28dc1192e802d86ef (patch)
tree0c05d3524d9f5a1c73200494636ad55d75746de3 /gdb/config/vax
parent2a290ed49aa67eceffbf544d6ebee9bb8100089c (diff)
downloadgdb-f267bd6a08884780c05098c28dc1192e802d86ef.zip
gdb-f267bd6a08884780c05098c28dc1192e802d86ef.tar.gz
gdb-f267bd6a08884780c05098c28dc1192e802d86ef.tar.bz2
* Makefile.in (vax-tdep.o): Add $(arch_utils_h), $(inferior_h),
and vax-tdep.h. * vax-tdep.h: New file. * vax-tdep.c: Include inferior.h, arch-utils.h, and vax-tdep.h. Make several routines static. (vax_get_saved_register): New function. (vax_gdbarch_init): New function. (_initialize_vax_tdep): Register vax_gdbarch_init. * config/vax/tm-vax.h: Set GDB_MULTI_ARCH to GDB_MULTI_ARCH_PARTIAL. Remove macros now under the control of gdbarch.
Diffstat (limited to 'gdb/config/vax')
-rw-r--r--gdb/config/vax/tm-vax.h150
1 files changed, 4 insertions, 146 deletions
diff --git a/gdb/config/vax/tm-vax.h b/gdb/config/vax/tm-vax.h
index ee6ec00..204d155 100644
--- a/gdb/config/vax/tm-vax.h
+++ b/gdb/config/vax/tm-vax.h
@@ -19,16 +19,7 @@
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Offset from address of function to start of its code.
- Zero on most machines. */
-
-#define FUNCTION_START_OFFSET 2
-
-extern CORE_ADDR vax_skip_prologue (CORE_ADDR);
-#define SKIP_PROLOGUE(pc) (vax_skip_prologue (pc))
-
-#define SAVED_PC_AFTER_CALL(frame) vax_saved_pc_after_call ((frame))
-extern CORE_ADDR vax_saved_pc_after_call (struct frame_info *);
+#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
#define TARGET_UPAGES 14
#define TARGET_NBPG 512
@@ -40,151 +31,18 @@ extern CORE_ADDR vax_saved_pc_after_call (struct frame_info *);
#define SIGTRAMP_START(pc) STACK_END_ADDR
#define SIGTRAMP_END(pc) 0x80000000
-/* Stack grows downward. */
-
-#define INNER_THAN(lhs,rhs) core_addr_lessthan ((lhs), (rhs))
-
/* Sequence of bytes for breakpoint instruction. */
-
#define BREAKPOINT {3}
-/* Amount PC must be decremented by after a breakpoint.
- This is often the number of bytes in BREAKPOINT
- but not always. */
-
-#define DECR_PC_AFTER_BREAK 0
-
-/* Say how long (ordinary) registers are. This is a piece of bogosity
- used in push_word and a few other places; REGISTER_RAW_SIZE is the
- real way to know how big a register is. */
-
-#define REGISTER_SIZE 4
-
-/* Number of machine registers */
-
-#define NUM_REGS 17
-
-/* Return the name of the register specified by N. */
-#define REGISTER_NAME(N) vax_register_name ((N))
-extern char *vax_register_name (int);
-
-/* Register numbers of various important registers.
- Note that some of these values are "real" register numbers,
- and correspond to the general registers of the machine,
- and some are "phony" register numbers which are too large
- to be actual register numbers as far as the user is concerned
- but do serve to get the desired values when passed to read_register. */
-
-#define AP_REGNUM 12
-#define FP_REGNUM 13 /* Contains address of executing stack frame */
-#define SP_REGNUM 14 /* Contains address of top of stack */
-#define PC_REGNUM 15 /* Contains program counter */
-#define PS_REGNUM 16 /* Contains processor status */
-
-/* Total amount of space needed to store our copies of the machine's
- register state, the array `registers'. */
-#define REGISTER_BYTES (17*4)
-
-/* Index within `registers' of the first byte of the space for
- register N. */
-#define REGISTER_BYTE(N) vax_register_byte ((N))
-extern int vax_register_byte (int);
-
-/* Number of bytes of storage in the actual machine representation
- for register N. On the vax, all regs are 4 bytes. */
-#define REGISTER_RAW_SIZE(N) vax_register_raw_size ((N))
-extern int vax_register_raw_size (int);
-
-/* Number of bytes of storage in the program's representation
- for register N. On the vax, all regs are 4 bytes. */
-#define REGISTER_VIRTUAL_SIZE(N) vax_register_virtual_size ((N))
-extern int vax_register_virtual_size (int);
-
-/* Largest value REGISTER_RAW_SIZE can have. */
-
-#define MAX_REGISTER_RAW_SIZE 4
-
-/* Largest value REGISTER_VIRTUAL_SIZE can have. */
-
-#define MAX_REGISTER_VIRTUAL_SIZE 4
-
-/* Return the GDB type object for the "standard" data type
- of data in register N. */
-#define REGISTER_VIRTUAL_TYPE(N) vax_register_virtual_type ((N))
-extern struct type *vax_register_virtual_type (int);
-
-#define STORE_STRUCT_RETURN(ADDR, SP) vax_store_struct_return ((ADDR), (SP))
-extern void vax_store_struct_return (CORE_ADDR, CORE_ADDR);
-
-#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
- vax_extract_return_value ((TYPE), (REGBUF), (VALBUF))
-extern void vax_extract_return_value (struct type *, char *, char *);
-
-#define STORE_RETURN_VALUE(TYPE,VALBUF) \
- vax_store_return_value ((TYPE), (VALBUF))
-extern void vax_store_return_value (struct type *, char *);
-
-#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
- vax_extract_struct_value_address ((REGBUF))
-extern CORE_ADDR vax_extract_struct_value_address (char *);
-
-
-#define FRAME_CHAIN(FI) vax_frame_chain ((FI))
-extern CORE_ADDR vax_frame_chain (struct frame_info *);
-
-#define FRAMELESS_FUNCTION_INVOCATION(FI) \
- generic_frameless_function_invocation_not ((FI))
+#define AP_REGNUM 12 /* XXXJRT */
/* Offset to saved PC in sigcontext, from <sys/signal.h>. */
/* XXXJRT should go away */
#define SIGCONTEXT_PC_OFFSET 12
-#define FRAME_SAVED_PC(FRAME) vax_frame_saved_pc ((FRAME))
-extern CORE_ADDR vax_frame_saved_pc (struct frame_info *);
-
/* XXXJRT not yet under gdbarch control */
-#define FRAME_ARGS_ADDRESS_CORRECT(fi) vax_frame_args_address ((fi))
-extern CORE_ADDR vax_frame_args_address (struct frame_info *);
-
-#define FRAME_ARGS_ADDRESS(fi) vax_frame_args_address ((fi))
-extern CORE_ADDR vax_frame_args_address (struct frame_info *);
-
-#define FRAME_LOCALS_ADDRESS(fi) vax_frame_locals_address ((fi))
-extern CORE_ADDR vax_frame_locals_address (struct frame_info *);
-
-extern int vax_frame_num_args (struct frame_info *fi);
-#define FRAME_NUM_ARGS(fi) (vax_frame_num_args ((fi)))
-
-/* Return number of bytes at start of arglist that are not really args. */
-
-#define FRAME_ARGS_SKIP 4
-
-#define FRAME_INIT_SAVED_REGS(fi) vax_frame_init_saved_regs ((fi))
-extern void vax_frame_init_saved_regs (struct frame_info *);
-
-#define PUSH_DUMMY_FRAME vax_push_dummy_frame()
-extern void vax_push_dummy_frame (void);
-
-#define POP_FRAME vax_pop_frame()
-extern void vax_pop_frame (void);
-
-#define CALL_DUMMY_WORDS vax_call_dummy_words
-extern LONGEST vax_call_dummy_words[];
-
-#define SIZEOF_CALL_DUMMY_WORDS sizeof_vax_call_dummy_words
-extern int sizeof_vax_call_dummy_words;
-
-struct value;
-#define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \
- vax_fix_call_dummy ((dummyname), (pc), (fun), (nargs), (args), (type), \
- (gcc_p))
-extern void vax_fix_call_dummy (char *, CORE_ADDR, CORE_ADDR, int,
- struct value **, struct type *, int);
-
-#define CALL_DUMMY_START_OFFSET 0 /* Start execution at beginning of dummy */
-
-#define CALL_DUMMY_BREAKPOINT_OFFSET 7
+#define FRAME_ARGS_ADDRESS_CORRECT(fi) vax_frame_args_address_correct ((fi))
+extern CORE_ADDR vax_frame_args_address_correct (struct frame_info *);
/* If vax pcc says CHAR or SHORT, it provides the correct address. */
-
#define BELIEVE_PCC_PROMOTION 1