* config/mn10300/tm-mn10300.h (STORE_RETURN_VALUE): Pointers are
authorJeff Law <law@redhat.com>
Thu, 24 Apr 1997 19:35:11 +0000 (19:35 +0000)
committerJeff Law <law@redhat.com>
Thu, 24 Apr 1997 19:35:11 +0000 (19:35 +0000)
        returned in $a0.
        (EXTRACT_RETURN_VALUE): Likewise.

        * mn10300-tdep.c (mn10300_analyze_prologue): Check for a return
        insn at "pc", not "fi->pc".

gdb/ChangeLog
gdb/config/mn10300/tm-mn10300.h

index 4c8ff276ee6ea016da8e4a3cf06556c24087f729..c895c7c9f0adb45cc2d223b7d9e0abe6a0a6389c 100644 (file)
@@ -1,3 +1,12 @@
+Thu Apr 24 13:31:10 1997  Jeffrey A Law  (law@cygnus.com)
+
+       * config/mn10300/tm-mn10300.h (STORE_RETURN_VALUE): Pointers are
+       returned in $a0.
+       (EXTRACT_RETURN_VALUE): Likewise.
+
+       * mn10300-tdep.c (mn10300_analyze_prologue): Check for a return
+       insn at "pc", not "fi->pc".
+
 start-sanitize-tic80
 Thu Apr 24 16:11:47 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
index 4b759caacad1ac6f601d4120a4c86e14b3108845..d7b06b66dda014feefad84f9d630904a258b2b6c 100644 (file)
@@ -97,14 +97,21 @@ extern CORE_ADDR mn10300_frame_saved_pc   PARAMS ((struct frame_info *));
    into VALBUF. */
 
 #define EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
-  memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), TYPE_LENGTH (TYPE))
+  if (TYPE_CODE (TYPE) == TYPE_CODE_PTR) \
+    memcpy (VALBUF, REGBUF + REGISTER_BYTE (4), TYPE_LENGTH (TYPE)); \
+  else \
+    memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), TYPE_LENGTH (TYPE));
+
 
 #define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
   extract_address (REGBUF + REGISTER_BYTE (0), \
                   REGISTER_RAW_SIZE (0))
 
 #define STORE_RETURN_VALUE(TYPE, VALBUF) \
-  write_register_bytes(REGISTER_BYTE (0), VALBUF, TYPE_LENGTH (TYPE));
+  if (TYPE_CODE (TYPE) == TYPE_CODE_PTR) \
+    write_register_bytes(REGISTER_BYTE (4), VALBUF, TYPE_LENGTH (TYPE)); \
+  else \
+    write_register_bytes(REGISTER_BYTE (0), VALBUF, TYPE_LENGTH (TYPE));
 
 #define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
   (SP) = mn10300_store_struct_return (STRUCT_ADDR, SP)