diff options
author | Stu Grossman <grossman@cygnus> | 1996-10-15 23:44:13 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1996-10-15 23:44:13 +0000 |
commit | ac9548059b9ca25c3d990925a6b0602ae932637b (patch) | |
tree | 15619630645f4264f093b5351ee44cea36e3ae0c /gdb/config/v850 | |
parent | 254ef34062b2becfb0b47daa362ef636853dfa53 (diff) | |
download | gdb-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.h | 33 |
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) |