aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/v850
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1996-10-15 23:44:13 +0000
committerStu Grossman <grossman@cygnus>1996-10-15 23:44:13 +0000
commitac9548059b9ca25c3d990925a6b0602ae932637b (patch)
tree15619630645f4264f093b5351ee44cea36e3ae0c /gdb/config/v850
parent254ef34062b2becfb0b47daa362ef636853dfa53 (diff)
downloadgdb-ac9548059b9ca25c3d990925a6b0602ae932637b.zip
gdb-ac9548059b9ca25c3d990925a6b0602ae932637b.tar.gz
gdb-ac9548059b9ca25c3d990925a6b0602ae932637b.tar.bz2
* buildsym.c (finish_block): Treat LOC_BASEREG_ARG and
LOC_LOCAL_ARG as arguments so that GDB will know about function args declared this way. Mostly affects dwarf. * dwarfread.c (decode_die_type): Change default type from int to void. This allows GDB to recognize void functions. * (new_symbol): If AT_PROTOTYPED is present, set a flag in the type structure. * findvar.c (extract_floating store_floating): Clean up comments to reflect reality. * gdbtypes.h: Add TYPE_FLAG_PROTOTYPED so that we can tell if a function has a prototype. Currently, only dwarf supports this. * utils.c (floatformat_from_doublest): Fix logic error with converting from double to float. (It wasn't shifting mant_long if it had a hidden bit.) * v850-tdep.c: Add support for function calling. Fix some problems with debugging code w/o debug symbols. * config/v850/tm-v850.h: Ditto.
Diffstat (limited to 'gdb/config/v850')
-rw-r--r--gdb/config/v850/tm-v850.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/gdb/config/v850/tm-v850.h b/gdb/config/v850/tm-v850.h
index 5aa11b5..9bd1b48 100644
--- a/gdb/config/v850/tm-v850.h
+++ b/gdb/config/v850/tm-v850.h
@@ -68,6 +68,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
struct frame_info;
struct frame_saved_regs;
struct type;
+struct value;
#endif
#define EXTRA_FRAME_INFO struct frame_saved_regs fsr;
@@ -106,3 +107,35 @@ extern CORE_ADDR v850_skip_prologue PARAMS ((CORE_ADDR pc));
extern struct frame_info *v850_pop_frame PARAMS ((struct frame_info *frame));
#define POP_FRAME v850_pop_frame (get_current_frame ())
+
+#define CALL_DUMMY { 0 }
+
+#define CALL_DUMMY_START_OFFSET (0)
+
+#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
+
+extern void v850_push_dummy_frame PARAMS ((void));
+#define PUSH_DUMMY_FRAME v850_push_dummy_frame ()
+
+#define FIX_CALL_DUMMY(DUMMY1, START_SP, FUNADDR, NARGS, ARGS, VALUE_TYPE, USING_GCC)
+
+#define CALL_DUMMY_LOCATION AT_ENTRY_POINT
+
+#define STACK_ALIGN(x) ((x + 3) & ~3)
+
+extern CORE_ADDR
+v850_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
+ unsigned char struct_return,
+ CORE_ADDR struct_addr));
+#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
+ (SP) = v850_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
+
+#define STORE_STRUCT_RETURN(STRUCT_ADDR, SP)
+
+#define CALL_DUMMY_ADDRESS() (entry_point_address ())
+
+extern int v850_pc_in_call_dummy PARAMS ((CORE_ADDR pc));
+#define PC_IN_CALL_DUMMY(PC, SP, FP) v850_pc_in_call_dummy (PC)
+
+#define USE_STRUCT_CONVENTION(GCC_P, TYPE) \
+ (TYPE_NFIELDS (TYPE) > 1 || TYPE_LENGTH (TYPE) > 4)