From 726229db592b463b8748bd1faec33823ed43e90d Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 24 Apr 1997 19:35:11 +0000 Subject: * 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". --- gdb/ChangeLog | 9 +++++++++ gdb/config/mn10300/tm-mn10300.h | 11 +++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4c8ff27..c895c7c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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 diff --git a/gdb/config/mn10300/tm-mn10300.h b/gdb/config/mn10300/tm-mn10300.h index 4b759ca..d7b06b6 100644 --- a/gdb/config/mn10300/tm-mn10300.h +++ b/gdb/config/mn10300/tm-mn10300.h @@ -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) -- cgit v1.1