Wed Nov 27 11:29:06 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
authorMichael Snyder <msnyder@vmware.com>
Wed, 27 Nov 1996 19:31:26 +0000 (19:31 +0000)
committerMichael Snyder <msnyder@vmware.com>
Wed, 27 Nov 1996 19:31:26 +0000 (19:31 +0000)
        * blockframe.c:         ...Remove old-style CALL_DUMMY code...
        * h8300-tdep.c:
        * config/h8300/tm-h8300.h:
start-sanitize-m32r
        * m32r-tdep.c:
        * config/m32r/tm-m32r.h:
end-sanitize-m32r
        * sh-tdep.c:
        * config/sh/tm-sh.h:
start-sanitize-v850
        * v850-tdep.c:
        * config/v850/tm-v850.h:
end-sanitize-v850

gdb/ChangeLog
gdb/config/m32r/tm-m32r.h
gdb/config/sh/tm-sh.h
gdb/config/v850/tm-v850.h
gdb/h8300-tdep.c
gdb/sh-tdep.c
gdb/v850-tdep.c

index a0a64cd..ccb9b8c 100644 (file)
@@ -1,3 +1,19 @@
+Wed Nov 27 11:29:06 1996  Michael Snyder  <msnyder@cleaver.cygnus.com>
+
+       * blockframe.c:         ...Remove old-style CALL_DUMMY code...
+       * h8300-tdep.c: 
+       * config/h8300/tm-h8300.h: 
+start-sanitize-m32r
+       * m32r-tdep.c:  
+       * config/m32r/tm-m32r.h: 
+end-sanitize-m32r
+       * sh-tdep.c:    
+       * config/sh/tm-sh.h: 
+start-sanitize-v850
+       * v850-tdep.c:  
+       * config/v850/tm-v850.h: 
+end-sanitize-v850
+       
 Wed Nov 27 10:32:14 1996  Michael Snyder  <msnyder@cleaver.cygnus.com>
 
        * breakpoint.c: DELETE command will not delete CALL_DUMMY breakpoint.
index c9342e1..4e01197 100644 (file)
@@ -222,7 +222,6 @@ extern CORE_ADDR m32r_push_arguments PARAMS ((int nargs,
    one that takes account of generic CALL_DUMMY frames */
 #define GET_SAVED_REGISTER
 
-#if 1
 #define CALL_DUMMY                   {0}
 #define CALL_DUMMY_LENGTH            (0)
 #define CALL_DUMMY_START_OFFSET      (0)
@@ -230,27 +229,3 @@ extern CORE_ADDR m32r_push_arguments PARAMS ((int nargs,
 #define FIX_CALL_DUMMY(DUMMY1, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP)
 #define CALL_DUMMY_LOCATION          AT_ENTRY_POINT
 #define CALL_DUMMY_ADDRESS()         entry_point_address ()
-
-#else
-/*
-/* Use these defines if, for whatever reason, you want to use a 
-   genuine call_dummy sequence (A sequence of machine instructions 
-   that GDB will write into the target address space, usually on the
-   stack, for calling a function in the inferior):
-
-   This sequence of words defines the instructions:
-
-        ld24  R8, <destination>
-        jl    R8
-       nop
-       trap
-*/
-#define CALL_DUMMY                   { 0xe8000000, 0x1ec87000, 0x10f110f1 }
-#define CALL_DUMMY_LENGTH            (12)
-#define CALL_DUMMY_START_OFFSET      (0)
-#define CALL_DUMMY_BREAKPOINT_OFFSET (8)
-#define FIX_CALL_DUMMY(DUMMY1, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP) \
-     m32r_fix_call_dummy (DUMMY1, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP)
-#define CALL_DUMMY_LOCATION          ON_STACK
-#define NEED_TEXT_START_END
-#endif
index 5347d72..ce873e5 100644 (file)
@@ -248,36 +248,6 @@ extern CORE_ADDR sh_push_arguments PARAMS ((int nargs,
                                            unsigned char struct_return,
                                            CORE_ADDR struct_addr));
 
-#if 0
-/* Use these defines if, for whatever reason, you want to use a 
-   genuine call_dummy sequence (A sequence of machine instructions 
-   that GDB will write into the target address space, usually on the
-   stack, for calling a function in the inferior):
-
-   This sequence of words defines the instructions:
-
-       mov.w @(2,PC), R8
-       jsr   @R8
-       nop
-       trap
-       <destination>
-
-   Note that the destination address is actually written into a word
-   8 bytes after the start of the CALL_DUMMY.  The first instruction
-   loads it from here using PC-relative addressing.  Note also the 
-   NOP that must follow the jsr instruction to fill up the delay slot.
-*/
-
-#define CALL_DUMMY                   { 0xd801480b, 0x0009c3c3, 0x32323232, }
-#define CALL_DUMMY_LENGTH            (12)
-#define CALL_DUMMY_START_OFFSET      (0)
-#define CALL_DUMMY_BREAKPOINT_OFFSET (6)
-#define FIX_CALL_DUMMY(DUMMY, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP) \
-    sh_fix_call_dummy(DUMMY, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP)
-#define CALL_DUMMY_LOCATION          ON_STACK
-
-#else  /* These defines write NO instructions into the inferior process, 
-          and are therefore preferred because they make target calls faster. */
 #define CALL_DUMMY                   {0}
 #define CALL_DUMMY_LENGTH            (0)
 #define CALL_DUMMY_START_OFFSET      (0)
@@ -287,7 +257,7 @@ extern CORE_ADDR sh_push_arguments PARAMS ((int nargs,
 #define CALL_DUMMY_ADDRESS()         entry_point_address ()
 extern CORE_ADDR sh_push_return_address   PARAMS ((CORE_ADDR, CORE_ADDR));
 #define PUSH_RETURN_ADDRESS(PC, SP)  sh_push_return_address (PC, SP)
-#endif
+
 
 #define FRAME_CHAIN(FRAME)           sh_frame_chain(FRAME)
 #define PUSH_DUMMY_FRAME             generic_push_dummy_frame ()
index 1bc61c4..9164617 100644 (file)
@@ -113,27 +113,6 @@ extern CORE_ADDR v850_skip_prologue PARAMS ((CORE_ADDR pc));
 extern void v850_pop_frame PARAMS ((struct frame_info *frame));
 #define POP_FRAME v850_pop_frame (get_current_frame ())
 
-#if 0
-/* Use these defines if, for whatever reason, you want to use a
-   genuine call_dummy sequence (A sequence of machine instructions
-   that GDB will write into the target address space, usually on the
-   stack, for calling a function in the inferior):
-   This sequence of words defines the instructions:
-
-       jarl <offset24>, r31
-       trap
-*/
-#define CALL_DUMMY                   { 0x0000ff80, 0xffffffff }
-#define CALL_DUMMY_LENGTH            (8)
-#define CALL_DUMMY_START_OFFSET      (0)
-#define CALL_DUMMY_BREAKPOINT_OFFSET (4)
-#define CALL_DUMMY_LOCATION          ON_STACK
-#define FIX_CALL_DUMMY(DUMMY, START, FUNADDR, NARGS, ARGS, TYPE, GCCP) \
-       v850_fix_call_dummy (DUMMY, START, FUNADDR, NARGS, ARGS, TYPE, GCCP);
-
-#else   /* These defines write NO instructions into the inferior process,
-           and are therefore preferred because they make target calls faster. */
 #define CALL_DUMMY                   {0}
 #define CALL_DUMMY_START_OFFSET      (0)
 #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -142,7 +121,7 @@ extern void v850_pop_frame PARAMS ((struct frame_info *frame));
 #define CALL_DUMMY_ADDRESS()         entry_point_address ()
 extern CORE_ADDR v850_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
 #define PUSH_RETURN_ADDRESS(PC, SP)  v850_push_return_address (PC, SP)
-#endif
+
 
 #define PUSH_DUMMY_FRAME       generic_push_dummy_frame ()
 
index df179bb..7c340b1 100644 (file)
@@ -613,13 +613,8 @@ h8300_push_return_address (pc, sp)
   else
     wordsize = 2;
 
-#if CALL_DUMMY_LOCATION != AT_ENTRY_POINT
-  pc = pc - CALL_DUMMY_START_OFFSET + CALL_DUMMY_BREAKPOINT_OFFSET;
-#else
-  pc = CALL_DUMMY_ADDRESS ();
-#endif /* CALL_DUMMY_LOCATION */
   sp -= wordsize;
-  store_unsigned_integer (buf, wordsize, pc);
+  store_unsigned_integer (buf, wordsize, CALL_DUMMY_ADDRESS ());
   write_memory (sp, buf, wordsize);
   return sp;
 }
index d088f44..4a3eb2e 100644 (file)
@@ -482,7 +482,7 @@ sh_push_arguments (nargs, args, sp, struct_return, struct_addr)
       while (len > 0)
        {
          if (argreg > ARGLAST_REGNUM || odd_sized_struct)
-           {                                   /* must go on the stack */
+           {                           /* must go on the stack */
              write_memory (sp + stack_offset, val, 4);
              stack_offset += 4;
            }
@@ -490,7 +490,7 @@ sh_push_arguments (nargs, args, sp, struct_return, struct_addr)
             That's because some *&^%$ things get passed on the stack
             AND in the registers!   */
          if (argreg <= ARGLAST_REGNUM)
-           {                                   /* there's room in a register */
+           {                           /* there's room in a register */
              regval = extract_address (val, REGISTER_RAW_SIZE(argreg));
              write_register (argreg++, regval);
            }
@@ -513,12 +513,7 @@ sh_push_return_address (pc, sp)
      CORE_ADDR pc;
      CORE_ADDR sp;
 {
-#if CALL_DUMMY_LOCATION != AT_ENTRY_POINT
-  pc = pc - CALL_DUMMY_START_OFFSET + CALL_DUMMY_BREAKPOINT_OFFSET;
-#else
-  pc = CALL_DUMMY_ADDRESS ();
-#endif /* CALL_DUMMY_LOCATION */
-  write_register (PR_REGNUM, pc);
+  write_register (PR_REGNUM, CALL_DUMMY_ADDRESS ());
   return sp;
 }
 
index 1a5d69a..f7149c4 100644 (file)
@@ -407,21 +407,14 @@ v850_push_arguments (nargs, args, sp, struct_return, struct_addr)
    Set up the return address for the inferior function call.
    Needed for targets where we don't actually execute a JSR/BSR instruction */
  
-#ifdef PUSH_RETURN_ADDRESS
 CORE_ADDR
 v850_push_return_address (pc, sp)
      CORE_ADDR pc;
      CORE_ADDR sp;
 {
-#if CALL_DUMMY_LOCATION != AT_ENTRY_POINT
-  pc = pc - CALL_DUMMY_START_OFFSET + CALL_DUMMY_BREAKPOINT_OFFSET;
-#else
-  pc = CALL_DUMMY_ADDRESS ();
-#endif /* CALL_DUMMY_LOCATION */
-  write_register (RP_REGNUM, pc);
+  write_register (RP_REGNUM, CALL_DUMMY_ADDRESS ());
   return sp;
 }
-#endif /* PUSH_RETURN_ADDRESS */
  
 /* Function: frame_saved_pc 
    Find the caller of this frame.  We do this by seeing if RP_REGNUM
@@ -472,22 +465,8 @@ v850_fix_call_dummy (dummy, sp, fun, nargs, args, type, gcc_p)
      int gcc_p;
 {
   long offset24;
-  CORE_ADDR call_dummy_start;
-#ifdef NEED_TEXT_START_END
-  extern CORE_ADDR text_end;
-#endif
-
-#if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
-  call_dummy_start = entry_point_address ();
-#elif (CALL_DUMMY_LOCATION == AFTER_TEXT_END)
-  call_dummy_start = text_end;
-#elif (CALL_DUMMY_LOCATION == BEFORE_TEXT_END)
-  call_dummy_start = (text_end - CALL_DUMMY_LENGTH) & ~3;
-#elif (CALL_DUMMY_LOCATION == ON_STACK)
-  call_dummy_start = sp;
-#endif
 
-  offset24 = (long) fun - (long) call_dummy_start;
+  offset24 = (long) fun - (long) entry_point_address ();
   offset24 &= 0x3fffff;
   offset24 |= 0xff800000;      /* jarl <offset24>, r31 */