was moved back here from tm-m68k.h. FIXME? */
extern CORE_ADDR
-altos_skip_prologue (pc)
- CORE_ADDR pc;
+altos_skip_prologue (CORE_ADDR pc)
{
register int op = read_memory_integer (pc, 2);
if (op == P_LINKW_FP)
was moved back here from tm-m68k.h. FIXME? */
extern CORE_ADDR
-isi_skip_prologue (pc)
- CORE_ADDR pc;
+isi_skip_prologue (CORE_ADDR pc)
{
register int op = read_memory_integer (pc, 2);
if (op == P_LINKW_FP)
}
int
-delta68_in_sigtramp (pc, name)
- CORE_ADDR pc;
- char *name;
+delta68_in_sigtramp (CORE_ADDR pc, char *name)
{
- return strcmp (name, "_sigcode") == 0;
+ if (name != NULL)
+ return strcmp (name, "_sigcode") == 0;
+ else
+ return 0;
}
CORE_ADDR
-delta68_frame_args_address (frame_info)
- struct frame_info * frame_info;
+delta68_frame_args_address (struct frame_info *frame_info)
{
/* we assume here that the only frameless functions are the system calls
or other functions who do not put anything on the stack. */
}
CORE_ADDR
-delta68_frame_saved_pc (frame_info)
- struct frame_info * frame_info;
+delta68_frame_saved_pc (struct frame_info *frame_info)
{
return read_memory_integer (delta68_frame_args_address (frame_info) + 4, 4);
}
Can return -1, meaning no way to tell. */
int
-isi_frame_num_args (fi)
- struct frame_info *fi;
+isi_frame_num_args (struct frame_info *fi)
{
int val;
CORE_ADDR pc = FRAME_SAVED_PC (fi);
}
int
-delta68_frame_num_args (fi)
- struct frame_info *fi;
+delta68_frame_num_args (struct frame_info *fi)
{
int val;
CORE_ADDR pc = FRAME_SAVED_PC (fi);
}
int
-news_frame_num_args (fi)
- struct frame_info *fi;
+news_frame_num_args (struct frame_info *fi)
{
int val;
CORE_ADDR pc = FRAME_SAVED_PC (fi);
/* Push an empty stack frame, to record the current PC, etc. */
void
-m68k_push_dummy_frame ()
+m68k_push_dummy_frame (void)
{
register CORE_ADDR sp = read_register (SP_REGNUM);
register int regnum;
restoring all saved registers. */
void
-m68k_pop_frame ()
+m68k_pop_frame (void)
{
register struct frame_info *frame = get_current_frame ();
register CORE_ADDR fp;
*/
CORE_ADDR
-m68k_skip_prologue (ip)
- CORE_ADDR ip;
+m68k_skip_prologue (CORE_ADDR ip)
{
register CORE_ADDR limit;
struct symtab_and_line sal;
}
void
-m68k_find_saved_regs (frame_info, saved_regs)
- struct frame_info *frame_info;
- struct frame_saved_regs *saved_regs;
+m68k_find_saved_regs (struct frame_info *frame_info,
+ struct frame_saved_regs *saved_regs)
{
register int regnum;
register int regmask;
#include <sys/procfs.h>
+/* Prototypes for supply_gregset etc. */
+#include "gregset.h"
+
/* The /proc interface divides the target machine's register set up into
two different sets, the general register set (gregset) and the floating
point register set (fpregset). For each set, there is an ioctl to get
register values. */
void
-supply_gregset (gregsetp)
- gregset_t *gregsetp;
+supply_gregset (gregset_t *gregsetp)
{
register int regi;
register greg_t *regp = (greg_t *) gregsetp;
}
void
-fill_gregset (gregsetp, regno)
- gregset_t *gregsetp;
- int regno;
+fill_gregset (gregset_t *gregsetp, int regno)
{
register int regi;
register greg_t *regp = (greg_t *) gregsetp;
idea of the current floating point register values. */
void
-supply_fpregset (fpregsetp)
- fpregset_t *fpregsetp;
+supply_fpregset (fpregset_t *fpregsetp)
{
register int regi;
char *from;
them all. */
void
-fill_fpregset (fpregsetp, regno)
- fpregset_t *fpregsetp;
- int regno;
+fill_fpregset (fpregset_t *fpregsetp, int regno)
{
int regi;
char *to;
#endif /* USE_PROC_FS */
-#ifdef GET_LONGJMP_TARGET
/* Figure out where the longjmp will land. Slurp the args out of the stack.
We expect the first arg to be a pointer to the jmp_buf structure from which
we extract the pc (JB_PC) that we will land at. The pc is copied into PC.
This routine returns true on success. */
+/* NOTE: cagney/2000-11-08: For this function to be fully multi-arched
+ the macro's JB_PC and JB_ELEMENT_SIZE would need to be moved into
+ the ``struct gdbarch_tdep'' object and then set on a target ISA/ABI
+ dependant basis. */
+
int
-get_longjmp_target (pc)
- CORE_ADDR *pc;
+m68k_get_longjmp_target (CORE_ADDR *pc)
{
- char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT];
+#if defined (JB_PC) && defined (JB_ELEMENT_SIZE)
+ char *buf;
CORE_ADDR sp, jb_addr;
+ buf = alloca (TARGET_PTR_BIT / TARGET_CHAR_BIT);
sp = read_register (SP_REGNUM);
if (target_read_memory (sp + SP_ARG0, /* Offset of first arg on stack */
*pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
return 1;
+#else
+ internal_error ("m68k_get_longjmp_target: not implemented");
+ return 0;
+#endif
}
-#endif /* GET_LONGJMP_TARGET */
/* Immediately after a function call, return the saved pc before the frame
is setup. For sun3's, we check for the common case of being inside of a
prior to doing the trap. */
CORE_ADDR
-m68k_saved_pc_after_call (frame)
- struct frame_info *frame;
+m68k_saved_pc_after_call (struct frame_info *frame)
{
#ifdef SYSCALL_TRAP
int op;
void
-_initialize_m68k_tdep ()
+_initialize_m68k_tdep (void)
{
tm_print_insn = print_insn_m68k;
}