aboutsummaryrefslogtreecommitdiff
path: root/gdb/config
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1997-02-11 19:31:29 +0000
committerJeff Law <law@redhat.com>1997-02-11 19:31:29 +0000
commit25de138b06f6cea850bfe352a6b3e00fbf60fd87 (patch)
treeb692c0e5d330c42f6ed1a9b6c025bb6a2e88f877 /gdb/config
parentf9114af581291362a099dacdad35499bbe0aa400 (diff)
downloadgdb-25de138b06f6cea850bfe352a6b3e00fbf60fd87.zip
gdb-25de138b06f6cea850bfe352a6b3e00fbf60fd87.tar.gz
gdb-25de138b06f6cea850bfe352a6b3e00fbf60fd87.tar.bz2
* mn10200-tdep.c (mn10200_push_arguments): Stack only needs to
be two byte aligned. Round argument sizes up to two byte boundary. Write out args in two byte hunks. (mn10200_push_return_address): Implement. * config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Abort for structures > 8 bytes (temporary). (STORE_RETURN_VALUE): Likewise. (CALL_DUMMY): No longer undefine. (USE_STRUCT_CONVENTION): Use for args > 8 bytes. (REG_STRUCT_HAS_ADDR): Define. Inferior function calls for the mn10200.
Diffstat (limited to 'gdb/config')
-rw-r--r--gdb/config/mn10200/tm-mn10200.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/config/mn10200/tm-mn10200.h b/gdb/config/mn10200/tm-mn10200.h
index 1891075..a509c8e 100644
--- a/gdb/config/mn10200/tm-mn10200.h
+++ b/gdb/config/mn10200/tm-mn10200.h
@@ -122,7 +122,7 @@ extern CORE_ADDR mn10200_frame_saved_pc PARAMS ((struct frame_info *));
#define EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
{ \
- if (TYPE_LENGTH (TYPE) > 4) \
+ if (TYPE_LENGTH (TYPE) > 8) \
abort (); \
else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
{ \
@@ -141,7 +141,7 @@ extern CORE_ADDR mn10200_frame_saved_pc PARAMS ((struct frame_info *));
#define STORE_RETURN_VALUE(TYPE, VALBUF) \
{ \
- if (TYPE_LENGTH (TYPE) > 4) \
+ if (TYPE_LENGTH (TYPE) > 8) \
abort (); \
else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
{ \
@@ -171,7 +171,6 @@ extern void mn10200_pop_frame PARAMS ((struct frame_info *));
#define USE_GENERIC_DUMMY_FRAMES
#define CALL_DUMMY {0}
-#undef CALL_DUMMY /* for now, no function calls */
#define CALL_DUMMY_START_OFFSET (0)
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
#define CALL_DUMMY_LOCATION AT_ENTRY_POINT
@@ -191,8 +190,11 @@ mn10200_push_arguments PARAMS ((int, struct value **, CORE_ADDR,
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
+#define REG_STRUCT_HAS_ADDR(gcc_p,type) \
+ (TYPE_LENGTH (type) > 8)
+
#define USE_STRUCT_CONVENTION(GCC_P, TYPE) \
- (TYPE_NFIELDS (TYPE) > 1 || TYPE_LENGTH (TYPE) > 4)
+ (TYPE_NFIELDS (TYPE) > 1 || TYPE_LENGTH (TYPE) > 8)
/* Override the default get_saved_register function with
one that takes account of generic CALL_DUMMY frames. */