diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/config/sparc/tm-sparc.h | 34 | ||||
-rw-r--r-- | gdb/sh-stub.c | 8 | ||||
-rw-r--r-- | gdb/sparcl-tdep.c | 6 |
4 files changed, 35 insertions, 22 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7f4c653..2ac8f9f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +Mon Aug 24 14:39:08 1998 Mark Alexander <marka@cygnus.com> + + * sh-stub.c (undoSStep): Improve comment. + * sparc-tdep.c (sparc_extract_struct_value_address): Simplify to use + same method on both 32-bit and 64-bit machines. + * sparcl-tdep.c (sparclite_check_watch_resources): Simulator doesn't + support hardware breakpoints. + * config/sparc/tm-sparc.h (CALL_DUMMY): Improve comments. + 1998-08-20 Jason Molenda (jsm@bugshack.cygnus.com) * rdi-share/Makefile.am (INCLUDES): Fix typeo. diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h index cff3189..273a218 100644 --- a/gdb/config/sparc/tm-sparc.h +++ b/gdb/config/sparc/tm-sparc.h @@ -471,20 +471,20 @@ void sparc_push_dummy_frame PARAMS ((void)), sparc_pop_frame PARAMS ((void)); #ifndef CALL_DUMMY /* This sequence of words is the instructions - 0: mov %g1, %fp - 4: save %sp, %g0, %sp - 8: mov %g2, %fp -12: mov %g3, %i7 -16: ld [%sp+0x58],%o5 -20: ld [%sp+0x54],%o4 -24: ld [%sp+0x50],%o3 -28: ld [%sp+0x4c],%o2 -32: ld [%sp+0x48],%o1 -36: call 0x00000000 -40: ld [%sp+0x44],%o0 -44: nop -48: ta 1 -52: nop + 0: bc 10 00 01 mov %g1, %fp + 4: 9d e3 80 00 save %sp, %g0, %sp + 8: bc 10 00 02 mov %g2, %fp + c: be 10 00 03 mov %g3, %i7 + 10: da 03 a0 58 ld [ %sp + 0x58 ], %o5 + 14: d8 03 a0 54 ld [ %sp + 0x54 ], %o4 + 18: d6 03 a0 50 ld [ %sp + 0x50 ], %o3 + 1c: d4 03 a0 4c ld [ %sp + 0x4c ], %o2 + 20: d2 03 a0 48 ld [ %sp + 0x48 ], %o1 + 24: 40 00 00 00 call <fun> + 28: d0 03 a0 44 ld [ %sp + 0x44 ], %o0 + 2c: 01 00 00 00 nop + 30: 91 d0 20 01 ta 1 + 34: 01 00 00 00 nop NOTES: * the first four instructions are necessary only on the simulator. @@ -502,7 +502,7 @@ void sparc_push_dummy_frame PARAMS ((void)), sparc_pop_frame PARAMS ((void)); /* Size of the call dummy in bytes. */ -#define CALL_DUMMY_LENGTH 56 +#define CALL_DUMMY_LENGTH 0x38 /* Offset within call dummy of first instruction to execute. */ @@ -510,11 +510,11 @@ void sparc_push_dummy_frame PARAMS ((void)), sparc_pop_frame PARAMS ((void)); /* Offset within CALL_DUMMY of the 'call' instruction. */ -#define CALL_DUMMY_CALL_OFFSET (CALL_DUMMY_START_OFFSET + 36) +#define CALL_DUMMY_CALL_OFFSET (CALL_DUMMY_START_OFFSET + 0x24) /* Offset within CALL_DUMMY of the 'ta 1' instruction. */ -#define CALL_DUMMY_BREAKPOINT_OFFSET (CALL_DUMMY_START_OFFSET + 48) +#define CALL_DUMMY_BREAKPOINT_OFFSET (CALL_DUMMY_START_OFFSET + 0x30) #define CALL_DUMMY_STACK_ADJUST 68 diff --git a/gdb/sh-stub.c b/gdb/sh-stub.c index 86c3f0b..beb8708 100644 --- a/gdb/sh-stub.c +++ b/gdb/sh-stub.c @@ -895,13 +895,13 @@ doSStep (void) *instrMem = SSTEP_INSTR; } + +/* Undo the effect of a previous doSStep. If we single stepped, + restore the old instruction. */ + void undoSStep (void) { - /* - If we single stepped, - restore the old instruction! -*/ if (stepped) { short *instrMem; instrMem = instrBuffer.memAddr; diff --git a/gdb/sparcl-tdep.c b/gdb/sparcl-tdep.c index 89e1c2c..e50fdce 100644 --- a/gdb/sparcl-tdep.c +++ b/gdb/sparcl-tdep.c @@ -83,7 +83,7 @@ static void sparclite_download PARAMS ((char *filename, int from_tty)); #define DDA1_ENABLE 0x80 #define DIA2_ENABLE 0x40 #define DIA1_ENABLE 0x20 -#define DSINGLE_STEP 0x10 +#define DSINGLE_STEP 0x10 /* not used */ #define DDV_TYPE_MASK 0xc #define DDV_TYPE_LOAD 0x0 #define DDV_TYPE_STORE 0x4 @@ -232,6 +232,10 @@ sparclite_check_watch_resources (type, cnt, ot) int cnt; int ot; { + /* Watchpoints not supported on simulator. */ + if (strcmp (target_shortname, "sim") == 0) + return 0; + if (type == bp_hardware_breakpoint) { if (TARGET_HW_BREAK_LIMIT == 0) |