* remote-e7000.c (HARD_BREAKPOINTS): Reenable.

(BC_BREAKPOINTS): Disable.
	* sh-tdep.c (print_insn): Cope with big and little endian machines.
	* sh/sh.mt: Use libsim.a
	* sh/tm-sh.h (TARGET_BYTE_ORDER_SELECTABLE): New
	(BREAKPOINT): Changed to be byteorder independent.
This commit is contained in:
Steve Chamberlain 1994-11-24 05:59:34 +00:00
parent d2fd61a812
commit 5f2f280941
4 changed files with 65 additions and 58 deletions

View File

@ -1,3 +1,12 @@
Wed Nov 23 21:43:03 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* remote-e7000.c (HARD_BREAKPOINTS): Reenable.
(BC_BREAKPOINTS): Disable.
* sh-tdep.c (print_insn): Cope with big and little endian machines.
* sh/sh.mt: Use libsim.a
* sh/tm-sh.h (TARGET_BYTE_ORDER_SELECTABLE): New
(BREAKPOINT): Changed to be byteorder independent.
Tue Nov 22 19:13:39 1994 Stan Shebs (shebs@andros.cygnus.com)
Maintenance commands to report time and space usage.

View File

@ -1,11 +1,5 @@
# Target: Hitachi Super-H ICE and simulator
TDEPFILES= sh-tdep.o remote-sim.o interp.o table.o remote-e7000.o ser-e7kpc.o
TDEPFILES= sh-tdep.o remote-sim.o ../sim/sh/libsim.a remote-e7000.o ser-e7kpc.o
over: all
interp.o:
cp ../sim/sh/interp.o .
table.o:
cp ../sim/sh/table.o .
TM_FILE= tm-sh.h

View File

@ -25,7 +25,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Define the bit, byte, and word ordering of the machine. */
#define TARGET_BYTE_ORDER BIG_ENDIAN
#define TARGET_BYTE_ORDER_SELECTABLE
/* Offset from address of function to start of its code.
@ -58,9 +58,8 @@ extern CORE_ADDR sh_skip_prologue ();
/* Illegal instruction - used by the simulator for breakpoint
detection */
#define BREAKPOINT {0xc3, 0xff} /* 0xc3ff is trapa #ff */
#undef BREAKPOINT
#define BREAKPOINT {0x00, 0x1b} /* SLEEP */
#define BREAKPOINT {0xc3, 0xc3} /* 0xc3c3 is trapa #c3, and it works in big
and little endian modes */
#define REMOTE_BREAKPOINT { 0xc3, 0x20}
/* If your kernel resets the pc after the trap happens you may need to

View File

@ -32,6 +32,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "dis-asm.h"
#include "../opcodes/sh-opc.h"
/* Prologue looks like
[mov.l <regs>,@-r15]...
[sts.l pr,@-r15]
@ -83,9 +85,11 @@ print_insn (memaddr, stream)
GDB_INIT_DISASSEMBLE_INFO (info, stream);
if (TARGET_BYTE_ORDER == BIG_ENDIAN)
return print_insn_sh (memaddr, &info);
else
return print_insn_shl (memaddr, &info);
}
/* Given a GDB frame, determine the address of the calling function's frame.
This will be used to create a new GDB frame struct, and then
INIT_EXTRA_FRAME_INFO and INIT_FRAME_PC will be called for the new frame.
@ -221,7 +225,8 @@ frame_find_saved_regs (fi, fsr)
{
fi->return_pc = read_register (PR_REGNUM) + 4;
}
else {
else
{
if (fsr->regs[PR_REGNUM])
{
@ -269,7 +274,7 @@ pop_frame ()
}
}
write_register (PC_REGNUM, fi->return_pc);
write_register (PC_REGNUM, frame->return_pc);
write_register (SP_REGNUM, fp + 4);
flush_cached_frames ();
}