You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
Contributed by Steve Chamberlain
#include "gdbcmd.h"
#include "gdbtypes.h"
#include "dis-asm.h"
-
+#include "gdbcore.h"
/* Return the saved PC from this frame. */
CORE_ADDR
-w65_frame_saved_pc (frame)
- struct frame_info *frame;
+w65_frame_saved_pc (struct frame_info *frame)
{
return (read_memory_integer (frame->frame + 2, 4) & 0xffffff);
}
CORE_ADDR
-addr_bits_remove (x)
- CORE_ADDR x;
+w65_addr_bits_remove (CORE_ADDR addr)
{
- return x;
+ return ((addr) & 0xffffff);
}
-read_memory_pointer (x)
- CORE_ADDR x;
+read_memory_pointer (CORE_ADDR x)
{
return read_memory_integer (ADDR_BITS_REMOVE (x), 4);
}
-init_frame_pc ()
+init_frame_pc (void)
{
abort ();
}
void
-w65_push_dummy_frame ()
+w65_push_dummy_frame (void)
{
abort ();
}
-int
-print_insn (memaddr, stream)
- CORE_ADDR memaddr;
- GDB_FILE *stream;
-{
- disassemble_info info;
-
- GDB_INIT_DISASSEMBLE_INFO (info, stream);
-
- return print_insn_w65 ((bfd_vma) memaddr, &info);
-}
-
/* Put here the code to store, into a struct frame_saved_regs,
the addresses of the saved registers of frame described by FRAME_INFO.
This includes special registers such as pc and fp saved in special
it is fairly expensive. */
void
-frame_find_saved_regs (fip, fsrp)
- struct frame_info *fip;
- struct frame_saved_regs *fsrp;
+frame_find_saved_regs (struct frame_info *fip, struct frame_saved_regs *fsrp)
{
int locals;
CORE_ADDR pc;
}
int
-saved_pc_after_call ()
+saved_pc_after_call (void)
{
int sp = read_register (SP_REGNUM);
int val = read_memory_integer (sp + 1, 4);
}
-extract_return_value (type, regbuf, valbuf)
- struct type *type;
- char *regbuf;
- char *valbuf;
+extract_return_value (struct type *type, char *regbuf, char *valbuf)
{
int b;
int len = TYPE_LENGTH (type);
}
void
-write_return_value (type, valbuf)
- struct type *type;
- char *valbuf;
+write_return_value (struct type *type, char *valbuf)
{
int reg;
int len;
}
void
-store_struct_return (addr, sp)
- CORE_ADDR addr;
- CORE_ADDR sp;
+store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
{
write_register (2, addr);
}
void
-w65_pop_frame ()
+w65_pop_frame (void)
{
}
-init_extra_frame_info ()
+init_extra_frame_info (void)
{
}
-pop_frame ()
+pop_frame (void)
{
}
-w65_frame_chain (thisframe)
- struct frame_info *thisframe;
+w65_frame_chain (struct frame_info *thisframe)
{
return 0xffff & read_memory_integer ((thisframe)->frame, 2);
}
static int
-gb (x)
+gb (int x)
{
return read_memory_integer (x, 1) & 0xff;
}
-extern CORE_ADDR
-w65_skip_prologue (pc)
- CORE_ADDR pc;
+extern CORE_ADDR
+w65_skip_prologue (CORE_ADDR pc)
{
CORE_ADDR too_far = pc + 20;
}
-register_raw_size (n)
+register_raw_size (int n)
{
return sim_reg_size (n);
}
void
-print_register_hook (regno)
+print_register_hook (int regno)
{
if (regno == P_REGNUM)
{
printf_unfiltered ("<= ");
}
}
+
+void
+_initialize_w65_tdep (void)
+{
+ tm_print_insn = print_insn_w65;
+}