From a33f755889cb0954f969aefe18acdffaf3b59d8f Mon Sep 17 00:00:00 2001 From: Jason Thorpe Date: Mon, 22 Apr 2002 23:13:50 +0000 Subject: * vax-tdep.c: Include regcache.h. (vax_call_dummy_words): New. (sizeof_vax_call_dummy_words): New. (vax_fix_call_dummy): New function. (vax_saved_pc_after_call): Ditto. * config/vax/tm-vax.h: Don't include regcache.h. (SAVED_PC_AFTER_CALL): Use vax_saved_pc_after_call. (CALL_DUMMY): Remove. (CALL_DUMMY_WORDS): Define. (SIZEOF_CALL_DUMMY_WORDS): Define. (FIX_CALL_DUMMY): Use vax_fix_call_dummy. --- gdb/config/vax/tm-vax.h | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) (limited to 'gdb/config') diff --git a/gdb/config/vax/tm-vax.h b/gdb/config/vax/tm-vax.h index 5bce565..ee6ec00 100644 --- a/gdb/config/vax/tm-vax.h +++ b/gdb/config/vax/tm-vax.h @@ -19,25 +19,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "regcache.h" - /* Offset from address of function to start of its code. Zero on most machines. */ #define FUNCTION_START_OFFSET 2 -/* Advance PC across any function entry prologue instructions - to reach some "real" code. */ - extern CORE_ADDR vax_skip_prologue (CORE_ADDR); #define SKIP_PROLOGUE(pc) (vax_skip_prologue (pc)) -/* Immediately after a function call, return the saved pc. - Can't always go through the frames for this because on some machines - the new frame is not set up until the new function executes - some instructions. */ - -#define SAVED_PC_AFTER_CALL(frame) FRAME_SAVED_PC(frame) +#define SAVED_PC_AFTER_CALL(frame) vax_saved_pc_after_call ((frame)) +extern CORE_ADDR vax_saved_pc_after_call (struct frame_info *); #define TARGET_UPAGES 14 #define TARGET_NBPG 512 @@ -177,23 +168,22 @@ extern void vax_push_dummy_frame (void); #define POP_FRAME vax_pop_frame() extern void vax_pop_frame (void); -/* This sequence of words is the instructions - calls #69, @#32323232 - bpt - Note this is 8 bytes. */ +#define CALL_DUMMY_WORDS vax_call_dummy_words +extern LONGEST vax_call_dummy_words[]; -#define CALL_DUMMY {0x329f69fb, 0x03323232} +#define SIZEOF_CALL_DUMMY_WORDS sizeof_vax_call_dummy_words +extern int sizeof_vax_call_dummy_words; -#define CALL_DUMMY_START_OFFSET 0 /* Start execution at beginning of dummy */ +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_BREAKPOINT_OFFSET 7 - -/* Insert the specified number of args and function address - into a call sequence of the above form stored at DUMMYNAME. */ +#define CALL_DUMMY_START_OFFSET 0 /* Start execution at beginning of dummy */ -#define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \ -{ *((char *) dummyname + 1) = nargs; \ - *(int *)((char *) dummyname + 3) = fun; } +#define CALL_DUMMY_BREAKPOINT_OFFSET 7 /* If vax pcc says CHAR or SHORT, it provides the correct address. */ -- cgit v1.1