diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-05-25 18:09:09 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-05-25 18:09:09 +0000 |
commit | 392a587b0562bfd8561bc15ad2625a4f49f461f0 (patch) | |
tree | 933e0970b7845c901c7ea3e128fa9cb0dcf9fe14 /gdb/config | |
parent | 751d21b5b946a4a451552fbac692b14abea3d816 (diff) | |
download | gdb-392a587b0562bfd8561bc15ad2625a4f49f461f0.zip gdb-392a587b0562bfd8561bc15ad2625a4f49f461f0.tar.gz gdb-392a587b0562bfd8561bc15ad2625a4f49f461f0.tar.bz2 |
import gdb-1999-05-25 snapshot
Diffstat (limited to 'gdb/config')
40 files changed, 177 insertions, 299 deletions
diff --git a/gdb/config/a29k/tm-a29k.h b/gdb/config/a29k/tm-a29k.h index cef9345..8fae020 100644 --- a/gdb/config/a29k/tm-a29k.h +++ b/gdb/config/a29k/tm-a29k.h @@ -471,11 +471,10 @@ void init_frame_pc (); /* Define other aspects of the stack frame. */ -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. */ +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) /* Saved pc (i.e. return address). */ #define FRAME_SAVED_PC(fraim) \ @@ -494,7 +493,7 @@ extern CORE_ADDR frame_locals_address (); the argcount field from it, to support debugging assembler code. Problem was, the "argcount" field never did hold the argument count. */ -#define FRAME_NUM_ARGS(numargs, fi) ((numargs) = -1) +#define FRAME_NUM_ARGS(fi) (-1) #define FRAME_ARGS_ADDRESS(fi) FRAME_LOCALS_ADDRESS (fi) diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h index 51c8dce..bbfd2d8 100644 --- a/gdb/config/alpha/tm-alpha.h +++ b/gdb/config/alpha/tm-alpha.h @@ -252,12 +252,11 @@ extern CORE_ADDR alpha_frame_chain PARAMS ((struct frame_info *)); /* Define other aspects of the stack frame. */ -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. */ /* We handle this differently for alpha, and maybe we should not */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) {(FRAMELESS) = 0;} +#define FRAMELESS_FUNCTION_INVOCATION(FI) (0) /* Saved Pc. */ @@ -287,7 +286,7 @@ alpha_frame_saved_pc PARAMS ((struct frame_info *)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(num, fi) ((num) = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -312,7 +311,7 @@ extern void alpha_find_saved_regs PARAMS ((struct frame_info *)); /* Things needed for making the inferior call functions. */ #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = alpha_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (alpha_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR alpha_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); diff --git a/gdb/config/arc/tm-arc.h b/gdb/config/arc/tm-arc.h index e170d2d..6eb5d81 100644 --- a/gdb/config/arc/tm-arc.h +++ b/gdb/config/arc/tm-arc.h @@ -265,17 +265,11 @@ extern void arc_software_single_step PARAMS ((unsigned int, int)); and has no caller. */ #define FRAME_CHAIN_VALID(chain, thisframe) nonnull_frame_chain_valid (chain, thisframe) -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ - -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - do { \ - if ((FI)->signal_handler_caller) \ - (FRAMELESS) = 0; \ - else \ - (FRAMELESS) = frameless_look_for_prologue (FI); \ - } while (0) +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. */ + +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue (FI)) /* Where is the PC for a specific frame. A leaf function may never save blink, so we have to check for that here. */ @@ -300,7 +294,7 @@ CORE_ADDR arc_frame_saved_pc PARAMS ((struct frame_info *)); /* Set NUMARGS to the number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/arm/tm-arm.h b/gdb/config/arm/tm-arm.h index 54e0954..cc3a27f 100644 --- a/gdb/config/arm/tm-arm.h +++ b/gdb/config/arm/tm-arm.h @@ -313,18 +313,10 @@ extern int arm_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); /* Define other aspects of the stack frame. */ -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ -{ \ - CORE_ADDR func_start, after_prologue; \ - func_start = (get_pc_function_start ((FI)->pc) + \ - FUNCTION_START_OFFSET); \ - after_prologue = func_start; \ - SKIP_PROLOGUE (after_prologue); \ - (FRAMELESS) = (after_prologue == func_start); \ -} +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. */ +extern int arm_frameless_function_invocation PARAMS ((struct frame_info *frame)); +#define FRAMELESS_FUNCTION_INVOCATION(FI) (arm_frameless_function_invocation (FI)) /* Saved Pc. */ @@ -338,7 +330,7 @@ extern CORE_ADDR arm_frame_saved_pc PARAMS ((struct frame_info *)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -362,9 +354,8 @@ void frame_find_saved_regs PARAMS((struct frame_info *fi, /* Things needed for making the inferior call functions. */ #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = arm_push_arguments ((nargs), (args), (sp), (struct_return), (struct_addr)) -extern CORE_ADDR -arm_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); + (arm_push_arguments ((nargs), (args), (sp), (struct_return), (struct_addr))) +extern CORE_ADDR arm_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); /* Push an empty stack frame, to record the current PC, etc. */ diff --git a/gdb/config/convex/tm-convex.h b/gdb/config/convex/tm-convex.h index 6558859..212f39d 100644 --- a/gdb/config/convex/tm-convex.h +++ b/gdb/config/convex/tm-convex.h @@ -260,19 +260,13 @@ extern struct value *value_of_trapped_internalvar (); #define NEED_TEXT_START_END 1 -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. On convex, check at the return address for `callq' -- if so, frameless, otherwise, not. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ -{ \ - extern CORE_ADDR text_start, text_end; \ - CORE_ADDR call_addr = SAVED_PC_AFTER_CALL (FI); \ - (FRAMELESS) = (call_addr >= text_start && call_addr < text_end \ - && read_memory_integer (call_addr - 6, 1) == 0x22); \ -} +extern int convex_frameless_function_invocation PARAMS ((struct frame_info *fi)); +#define FRAMELESS_FUNCTION_INVOCATION(FI) (convex_frameless_function_invocatio (FI)) #define FRAME_SAVED_PC(fi) (read_memory_integer ((fi)->frame, 4)) @@ -283,9 +277,8 @@ extern struct value *value_of_trapped_internalvar (); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) \ -{ numargs = read_memory_integer (FRAME_ARGS_ADDRESS (fi) - 4, 4); \ - if (numargs < 0 || numargs >= 256) numargs = -1;} +extern int convex_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS(fi) (convex_frame_num_args ((fi))) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/d10v/tm-d10v.h b/gdb/config/d10v/tm-d10v.h index d0c1a50..f0760dc 100644 --- a/gdb/config/d10v/tm-d10v.h +++ b/gdb/config/d10v/tm-d10v.h @@ -50,24 +50,19 @@ struct value; extern CORE_ADDR d10v_skip_prologue (); #define SKIP_PROLOGUE(ip) (d10v_skip_prologue (ip)) - /* Stack grows downward. */ -#define INNER_THAN(lhs,rhs) ((lhs) < (rhs)) +#define INNER_THAN(lhs,rhs) (core_addr_lessthan ((lhs), (rhs))) /* for a breakpoint, use "dbt || nop" */ -#define BREAKPOINT {0x2f, 0x90, 0x5e, 0x00} +extern breakpoint_from_pc_fn d10v_breakpoint_from_pc; +#define BREAKPOINT_FROM_PC(PCPTR,LENPTR) (d10v_breakpoint_from_pc ((PCPTR), (LENPTR))) /* If your kernel resets the pc after the trap happens you may need to define this before including this file. */ #define DECR_PC_AFTER_BREAK 4 -#define REGISTER_NAMES \ -{ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \ - "r8", "r9", "r10","r11","r12", "r13", "r14","r15",\ - "psw","bpsw","pc","bpc", "cr4", "cr5", "cr6", "rpt_c",\ - "rpt_s","rpt_e", "mod_s", "mod_e", "cr12", "cr13", "iba", "cr15",\ - "imap0","imap1","dmap","a0", "a1"\ - } +extern char *d10v_register_name PARAMS ((int reg_nr)); +#define REGISTER_NAME(NR) (d10v_register_name (NR)) #define NUM_REGS 37 @@ -94,18 +89,18 @@ extern CORE_ADDR d10v_skip_prologue (); /* Index within `registers' of the first byte of the space for register N. */ - -#define REGISTER_BYTE(N) \ -( ((N) > A0_REGNUM) ? ( ((N)-A0_REGNUM)*8 + A0_REGNUM*2 ) : ((N) * 2) ) +extern int d10v_register_byte PARAMS ((int reg_nr)); +#define REGISTER_BYTE(N) (d10v_register_byte (N)) /* Number of bytes of storage in the actual machine representation for register N. */ - -#define REGISTER_RAW_SIZE(N) ( ((N) >= A0_REGNUM) ? 8 : 2 ) +extern int d10v_register_raw_size PARAMS ((int reg_nr)); +#define REGISTER_RAW_SIZE(N) (d10v_register_raw_size (N)) /* Number of bytes of storage in the program's representation for register N. */ -#define REGISTER_VIRTUAL_SIZE(N) ( ((N) >= A0_REGNUM) ? 8 : ( ((N) == PC_REGNUM || (N) == SP_REGNUM) ? 4 : 2 )) +extern int d10v_register_virtual_size PARAMS ((int reg_nr)); +#define REGISTER_VIRTUAL_SIZE(N) (d10v_register_virtual_size (N)) /* Largest value REGISTER_RAW_SIZE can have. */ @@ -118,8 +113,8 @@ extern CORE_ADDR d10v_skip_prologue (); /* Return the GDB type object for the "standard" data type of data in register N. */ -#define REGISTER_VIRTUAL_TYPE(N) \ -( ((N) < A0_REGNUM ) ? ((N) == PC_REGNUM || (N) == SP_REGNUM ? builtin_type_long : builtin_type_short) : builtin_type_long_long) +extern struct type *d10v_register_virtual_type PARAMS ((int reg_nr)); +#define REGISTER_VIRTUAL_TYPE(N) (d10v_register_virtual_type (N)) /* convert $pc and $sp to/from virtual addresses */ @@ -139,14 +134,20 @@ extern CORE_ADDR d10v_skip_prologue (); store_unsigned_integer ((TO), 2, x); \ } -#define D10V_MAKE_DADDR(x) ((x) | DMEM_START) -#define D10V_MAKE_IADDR(x) (((x) << 2) | IMEM_START) +extern CORE_ADDR d10v_make_daddr PARAMS ((CORE_ADDR x)); +#define D10V_MAKE_DADDR(x) (d10v_make_daddr (x)) +extern CORE_ADDR d10v_make_iaddr PARAMS ((CORE_ADDR x)); +#define D10V_MAKE_IADDR(x) (d10v_make_iaddr (x)) -#define D10V_DADDR_P(X) (((X) & 0x3000000) == DMEM_START) -#define D10V_IADDR_P(X) (((X) & 0x3000000) == IMEM_START) +extern int d10v_daddr_p PARAMS ((CORE_ADDR x)); +#define D10V_DADDR_P(X) (d10v_daddr_p (X)) +extern int d10v_iaddr_p PARAMS ((CORE_ADDR x)); +#define D10V_IADDR_P(X) (d10v_iaddr_p (X)) -#define D10V_CONVERT_IADDR_TO_RAW(X) (((X) >> 2) & 0xffff) -#define D10V_CONVERT_DADDR_TO_RAW(X) ((X) & 0xffff) +extern CORE_ADDR d10v_convert_daddr_to_raw PARAMS ((CORE_ADDR x)); +#define D10V_CONVERT_DADDR_TO_RAW(X) (d10v_convert_daddr_to_raw (X)) +extern CORE_ADDR d10v_convert_iaddr_to_raw PARAMS ((CORE_ADDR x)); +#define D10V_CONVERT_IADDR_TO_RAW(X) (d10v_convert_iaddr_to_raw (X)) #define ARG1_REGNUM R0_REGNUM #define ARGN_REGNUM 3 @@ -158,8 +159,8 @@ extern CORE_ADDR d10v_skip_prologue (); We store structs through a pointer passed in the first Argument register. */ -#define STORE_STRUCT_RETURN(ADDR, SP) \ - { write_register (ARG1_REGNUM, (ADDR)); } +extern void d10v_store_struct_return PARAMS ((CORE_ADDR addr, CORE_ADDR sp)); +#define STORE_STRUCT_RETURN(ADDR, SP) d10v_store_struct_return ((ADDR), (SP)) /* Write into appropriate registers a function return value @@ -167,16 +168,16 @@ extern CORE_ADDR d10v_skip_prologue (); Things always get returned in RET1_REGNUM, RET2_REGNUM, ... */ -#define STORE_RETURN_VALUE(TYPE,VALBUF) \ - write_register_bytes (REGISTER_BYTE(RET1_REGNUM), VALBUF, TYPE_LENGTH (TYPE)) +extern void d10v_store_return_value PARAMS ((struct type *type, char *valbuf)); +#define STORE_RETURN_VALUE(TYPE,VALBUF) d10v_store_return_value ((TYPE), (VALBUF)) /* Extract from an array REGBUF containing the (raw) register state the address in which a function should return its structure value, as a CORE_ADDR (or an expression that can be used as one). */ -#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \ - (extract_address ((REGBUF) + REGISTER_BYTE (ARG1_REGNUM), REGISTER_RAW_SIZE (ARG1_REGNUM)) | DMEM_START) +extern CORE_ADDR d10v_extract_struct_value_address PARAMS ((char *regbuf)); +#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (d10v_extract_struct_value_address ((REGBUF))) /* Should we use EXTRACT_STRUCT_VALUE_ADDRESS instead of EXTRACT_RETURN_VALUE? GCC_P is true if compiled with gcc @@ -208,27 +209,32 @@ extern void d10v_init_extra_frame_info PARAMS (( int fromleaf, struct frame_info by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) +extern CORE_ADDR d10v_frame_chain PARAMS ((struct frame_info *frame)); #define FRAME_CHAIN(FRAME) d10v_frame_chain(FRAME) extern int d10v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); #define FRAME_CHAIN_VALID(chain, thisframe) d10v_frame_chain_valid (chain, thisframe) -#define FRAME_SAVED_PC(FRAME) ((FRAME)->return_pc) -#define FRAME_ARGS_ADDRESS(fi) (fi)->frame -#define FRAME_LOCALS_ADDRESS(fi) (fi)->frame +extern CORE_ADDR d10v_frame_saved_pc PARAMS ((struct frame_info *fi)); +#define FRAME_SAVED_PC(fi) (d10v_frame_saved_pc ((fi))) +extern CORE_ADDR d10v_frame_args_address PARAMS ((struct frame_info *fi)); +#define FRAME_ARGS_ADDRESS(fi) (d10v_frame_args_address ((fi))) +extern CORE_ADDR d10v_frame_locals_address PARAMS ((struct frame_info *fi)); +#define FRAME_LOCALS_ADDRESS(fi) (d10v_frame_locals_address ((fi))) /* Immediately after a function call, return the saved pc. We can't */ /* use frame->return_pc beause that is determined by reading R13 off the */ /*stack and that may not be written yet. */ -#define SAVED_PC_AFTER_CALL(frame) ((read_register(LR_REGNUM) << 2) | IMEM_START) +extern CORE_ADDR d10v_saved_pc_after_call PARAMS ((struct frame_info *frame)); +#define SAVED_PC_AFTER_CALL(frame) (d10v_saved_pc_after_call ((frame))) /* Set VAL to the number of args passed to frame described by FI. Can set VAL to -1, meaning no way to tell. */ /* We can't tell how many args there are */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -282,7 +288,7 @@ extern CORE_ADDR d10v_push_return_address PARAMS ((CORE_ADDR pc, CORE_ADDR sp)); generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval) #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = d10v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (d10v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR d10v_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); @@ -330,7 +336,7 @@ CORE_ADDR d10v_read_fp PARAMS ((void)); need to be translated into a format that the d10v rom monitor understands. */ -int remote_d10v_translate_xfer_address PARAMS ((CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr)); +extern void remote_d10v_translate_xfer_address PARAMS ((CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len)); #define REMOTE_TRANSLATE_XFER_ADDRESS(GDB_ADDR, GDB_LEN, REM_ADDR, REM_LEN) \ -(REM_LEN) = remote_d10v_translate_xfer_address ((GDB_ADDR), (GDB_LEN), &(REM_ADDR)) + remote_d10v_translate_xfer_address ((GDB_ADDR), (GDB_LEN), (REM_ADDR), (REM_LEN)) diff --git a/gdb/config/d30v/tm-d30v.h b/gdb/config/d30v/tm-d30v.h index 1ce9ccc..dda61b6 100644 --- a/gdb/config/d30v/tm-d30v.h +++ b/gdb/config/d30v/tm-d30v.h @@ -212,8 +212,8 @@ extern void d30v_init_extra_frame_info PARAMS (( int fromleaf, struct frame_info by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) #define FRAME_CHAIN(FRAME) d30v_frame_chain(FRAME) extern int d30v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); @@ -235,7 +235,7 @@ extern int d30v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); Can set VAL to -1, meaning no way to tell. */ /* We can't tell how many args there are */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -283,7 +283,7 @@ extern CORE_ADDR d30v_fix_call_dummy PARAMS ((char *, CORE_ADDR, CORE_ADDR, int, struct value **, struct type *, int)); #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = d30v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (d30v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR d30v_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); diff --git a/gdb/config/fr30/tm-fr30.h b/gdb/config/fr30/tm-fr30.h index d03f845..93aa9cb 100644 --- a/gdb/config/fr30/tm-fr30.h +++ b/gdb/config/fr30/tm-fr30.h @@ -135,7 +135,7 @@ extern void fr30_pop_frame PARAMS ((void)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1) +#define FRAME_NUM_ARGS(fi) (-1) #ifdef __STDC__ /* Forward decls for prototypes */ struct frame_info; @@ -190,18 +190,10 @@ extern void fr30_store_return_value PARAMS ((struct type *type, char *valbuf)); /* Define other aspects of the stack frame. */ -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ -{ \ - CORE_ADDR func_start, after_prologue; \ - func_start = (get_pc_function_start ((FI)->pc) + \ - FUNCTION_START_OFFSET); \ - after_prologue = func_start; \ - after_prologue = SKIP_PROLOGUE (after_prologue); \ - (FRAMELESS) = (after_prologue == func_start); \ -} +/* An expression that tells us whether the function invocation represented + by FI does not have a frame on the stack associated with it. */ +extern int fr30_frameless_function_invocation PARAMS ((struct frame_info *frame)); +#define FRAMELESS_FUNCTION_INVOCATION(FI) (fr30_frameless_function_invocation (FI)); extern void fr30_init_extra_frame_info PARAMS ((struct frame_info *fi)); #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) fr30_init_extra_frame_info (fi) @@ -213,7 +205,7 @@ fr30_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)); #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP) diff --git a/gdb/config/gould/tm-np1.h b/gdb/config/gould/tm-np1.h index 7287155..cbd05b1 100644 --- a/gdb/config/gould/tm-np1.h +++ b/gdb/config/gould/tm-np1.h @@ -336,7 +336,7 @@ /* OBSOLETE */ /* OBSOLETE /* We can check the stab info to see how */ /* OBSOLETE many arg we have. No info in stack will tell us *x/ */ -/* OBSOLETE #define FRAME_NUM_ARGS(val,fi) (val = findarg(fi)) */ +/* OBSOLETE #define FRAME_NUM_ARGS(fi) (findarg(fi)) */ /* OBSOLETE */ /* OBSOLETE /* Return number of bytes at start of arglist that are not really args. *x/ */ /* OBSOLETE #define FRAME_ARGS_SKIP 8 */ diff --git a/gdb/config/gould/tm-pn.h b/gdb/config/gould/tm-pn.h index b44d4ee..6d685d6 100644 --- a/gdb/config/gould/tm-pn.h +++ b/gdb/config/gould/tm-pn.h @@ -312,7 +312,7 @@ /* OBSOLETE */ /* OBSOLETE /* We can check the stab info to see how */ /* OBSOLETE many arg we have. No info in stack will tell us *x/ */ -/* OBSOLETE #define FRAME_NUM_ARGS(val,fi) (val = findarg(fi)) */ +/* OBSOLETE #define FRAME_NUM_ARGS(fi) (findarg(fi)) */ /* OBSOLETE */ /* OBSOLETE /* Return number of bytes at start of arglist that are not really args. *x/ */ /* OBSOLETE #define FRAME_ARGS_SKIP 8 */ diff --git a/gdb/config/h8300/tm-h8300.h b/gdb/config/h8300/tm-h8300.h index f8f1f64..b402181 100644 --- a/gdb/config/h8300/tm-h8300.h +++ b/gdb/config/h8300/tm-h8300.h @@ -213,8 +213,8 @@ CORE_ADDR h8300_frame_chain PARAMS ((struct frame_info *)); /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) /* Any function with a frame looks like this SECOND ARG @@ -239,7 +239,7 @@ CORE_ADDR h8300_frame_chain PARAMS ((struct frame_info *)); /* We can't tell how many args there are now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -289,7 +289,7 @@ extern CORE_ADDR h8300_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR)); #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP) #define FIX_CALL_DUMMY(DUMMY, START_SP, FUNADDR, NARGS, ARGS, TYPE, GCCP) #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = h8300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (h8300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) /* Push an empty stack frame, to record the current PC, etc. */ #define PUSH_DUMMY_FRAME generic_push_dummy_frame () /* Discard from the stack the innermost frame, restoring all registers. */ diff --git a/gdb/config/h8500/tm-h8500.h b/gdb/config/h8500/tm-h8500.h index 2dded7c..0f34a00 100644 --- a/gdb/config/h8500/tm-h8500.h +++ b/gdb/config/h8500/tm-h8500.h @@ -186,8 +186,8 @@ extern struct type *h8500_register_virtual_type PARAMS ((int regno)); by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) /* Any function with a frame looks like this SECOND ARG @@ -221,7 +221,7 @@ extern CORE_ADDR frame_saved_pc PARAMS ((struct frame_info *frame)); /* We can't tell how many args there are now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/i386/tm-i386.h b/gdb/config/i386/tm-i386.h index 06d9f85..11a7a20 100644 --- a/gdb/config/i386/tm-i386.h +++ b/gdb/config/i386/tm-i386.h @@ -207,13 +207,8 @@ extern void i386_extract_return_value PARAMS ((struct type *, char [], char *)); by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - do { \ - if ((FI)->signal_handler_caller) \ - (FRAMELESS) = 0; \ - else \ - (FRAMELESS) = frameless_look_for_prologue(FI); \ - } while (0) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI)) /* Saved Pc. Get it from sigcontext if within sigtramp. */ @@ -232,7 +227,7 @@ extern CORE_ADDR sigtramp_saved_pc PARAMS ((struct frame_info *)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell, which is typical now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(numargs, fi) (numargs) = i386_frame_num_args(fi) +#define FRAME_NUM_ARGS(fi) (i386_frame_num_args(fi)) extern int i386_frame_num_args PARAMS ((struct frame_info *)); diff --git a/gdb/config/i386/tm-i386v.h b/gdb/config/i386/tm-i386v.h index bb31cb0..05caf9b 100644 --- a/gdb/config/i386/tm-i386v.h +++ b/gdb/config/i386/tm-i386v.h @@ -140,8 +140,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ does not, FRAMELESS is set to 1, else 0. */ #undef FRAMELESS_FUNCTION_INVOCATION -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) #undef FRAME_SAVED_PC #define FRAME_SAVED_PC(FRAME) (read_memory_integer ((FRAME)->frame + 4, 4)) @@ -150,7 +150,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ Can return -1, meaning no way to tell. */ #undef FRAME_NUM_ARGS -#define FRAME_NUM_ARGS(numargs, fi) (numargs) = -1 +#define FRAME_NUM_ARGS(fi) (-1) #ifdef __STDC__ /* Forward decl's for prototypes */ struct frame_info; diff --git a/gdb/config/i386/tm-sun386.h b/gdb/config/i386/tm-sun386.h index 259fd51..1f60b98 100644 --- a/gdb/config/i386/tm-sun386.h +++ b/gdb/config/i386/tm-sun386.h @@ -186,8 +186,8 @@ double_to_i387 PARAMS ((char *, char *)); does not, FRAMELESS is set to 1, else 0. */ #undef FRAMELESS_FUNCTION_INVOCATION -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ -{ (FRAMELESS) = frameless_look_for_prologue (FI); } +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) #undef FRAME_SAVED_PC #define FRAME_SAVED_PC(FRAME) (read_memory_integer ((FRAME)->frame + 4, 4)) diff --git a/gdb/config/i960/tm-i960.h b/gdb/config/i960/tm-i960.h index dcd24e5..d5b78f2 100644 --- a/gdb/config/i960/tm-i960.h +++ b/gdb/config/i960/tm-i960.h @@ -286,8 +286,8 @@ extern use_struct_convention_fn i960_use_struct_convention; by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - { (FRAMELESS) = (leafproc_return ((FI)->pc) != 0); } +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (leafproc_return ((FI)->pc) != 0) /* Note that in the i960 architecture the return pointer is saved in the *caller's* stack frame. @@ -317,7 +317,7 @@ extern CORE_ADDR frame_args_address (); /* i960-tdep.c */ /* Set NUMARGS to the number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/m32r/tm-m32r.h b/gdb/config/m32r/tm-m32r.h index 3a6f231..5c8fb23 100644 --- a/gdb/config/m32r/tm-m32r.h +++ b/gdb/config/m32r/tm-m32r.h @@ -165,7 +165,7 @@ extern CORE_ADDR m32r_skip_prologue PARAMS ((CORE_ADDR pc)); /* mvs_no_check FRAME_LOCALS_ADDRESS */ #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame) /* mvs_no_check FRAME_NUM_ARGS */ -#define FRAME_NUM_ARGS(val, fi) ((val) = -1) +#define FRAME_NUM_ARGS(fi) (-1) #define COERCE_FLOAT_TO_DOUBLE 1 @@ -216,7 +216,7 @@ extern CORE_ADDR m32r_push_arguments PARAMS ((int nargs, /* mvs_no_check PUSH_ARGUMENTS */ #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = m32r_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (m32r_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) #define PUSH_RETURN_ADDRESS(PC, SP) m32r_push_return_address (PC, SP) diff --git a/gdb/config/m68k/tm-delta68.h b/gdb/config/m68k/tm-delta68.h index 5965bb5..e0692fb 100644 --- a/gdb/config/m68k/tm-delta68.h +++ b/gdb/config/m68k/tm-delta68.h @@ -75,18 +75,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(val, fi) \ -{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \ - register int insn = 0177777 & read_memory_integer (pc, 2); \ - val = 0; \ - if (insn == 0047757 || insn == 0157374) /* lea W(sp),sp or addaw #W,sp */ \ - val = read_memory_integer (pc + 2, 2); \ - else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \ - || (insn & 0170777) == 0050117) /* addqw */ \ - { val = (insn >> 9) & 7; if (val == 0) val = 8; } \ - else if (insn == 0157774) /* addal #WW, sp */ \ - val = read_memory_integer (pc + 2, 4); \ - val >>= 2; } +extern int delta68_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS (delta68_frame_num_args ((fi))) /* On M68040 versions of sysV68 R3V7.1, ptrace(PT_WRITE_I) does not clear the processor's instruction cache as it should. */ diff --git a/gdb/config/m68k/tm-isi.h b/gdb/config/m68k/tm-isi.h index ae8ccbf..5653fe6 100644 --- a/gdb/config/m68k/tm-isi.h +++ b/gdb/config/m68k/tm-isi.h @@ -41,18 +41,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(val, fi) \ -{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \ - register int insn = 0177777 & read_memory_integer (pc, 2); \ - val = 0; \ - if (insn == 0047757 || insn == 0157374) /* lea W(sp),sp or addaw #W,sp */ \ - val = read_memory_integer (pc + 2, 2); \ - else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \ - || (insn & 0170777) == 0050117) /* addqw */ \ - { val = (insn >> 9) & 7; if (val == 0) val = 8; } \ - else if (insn == 0157774) /* addal #WW, sp */ \ - val = read_memory_integer (pc + 2, 4); \ - val >>= 2; } +extern int isi_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS(fi) (isi_frame_num_args ((fi))) /* Put here the code to store, into a struct frame_saved_regs, the addresses of the saved registers of frame described by FRAME_INFO. diff --git a/gdb/config/m68k/tm-m68k.h b/gdb/config/m68k/tm-m68k.h index 9cbb41f..4835b39 100644 --- a/gdb/config/m68k/tm-m68k.h +++ b/gdb/config/m68k/tm-m68k.h @@ -274,13 +274,8 @@ do \ /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - do { \ - if ((FI)->signal_handler_caller) \ - (FRAMELESS) = 0; \ - else \ - (FRAMELESS) = frameless_look_for_prologue(FI); \ - } while (0) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI)) /* This was determined by experimentation on hp300 BSD 4.3. Perhaps it corresponds to some offset in /usr/include/sys/user.h or @@ -311,7 +306,7 @@ do \ /* We can't tell how many args there are now that the C compiler delays popping them. */ #if !defined (FRAME_NUM_ARGS) -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) #endif /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/m68k/tm-news.h b/gdb/config/m68k/tm-news.h index 9fca446..b9736a0 100644 --- a/gdb/config/m68k/tm-news.h +++ b/gdb/config/m68k/tm-news.h @@ -59,17 +59,7 @@ Here is an m-news.h file for gdb. It supports the 68881 registers. /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(val, fi) \ -{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \ - register int insn = 0177777 & read_memory_integer (pc, 2); \ - val = 0; \ - if (insn == 0047757 || insn == 0157374) /* lea W(sp),sp or addaw #W,sp */ \ - val = read_memory_integer (pc + 2, 2); \ - else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \ - || (insn & 0170777) == 0050117) /* addqw */ \ - { val = (insn >> 9) & 7; if (val == 0) val = 8; } \ - else if (insn == 0157774) /* addal #WW, sp */ \ - val = read_memory_integer (pc + 2, 4); \ - val >>= 2; } +extern int news_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS (news_frame_num_args ((fi))) #include "m68k/tm-m68k.h" diff --git a/gdb/config/m88k/tm-m88k.h b/gdb/config/m88k/tm-m88k.h index be9ffba..0259c0b 100644 --- a/gdb/config/m88k/tm-m88k.h +++ b/gdb/config/m88k/tm-m88k.h @@ -445,8 +445,8 @@ extern int frameless_function_invocation (); #define FRAME_CHAIN(thisframe) \ frame_chain (thisframe) -#define FRAMELESS_FUNCTION_INVOCATION(frame, fromleaf) \ - fromleaf = frameless_function_invocation (frame) +#define FRAMELESS_FUNCTION_INVOCATION(frame) \ + (frameless_function_invocation (frame)) /* Define other aspects of the stack frame. */ @@ -465,7 +465,7 @@ extern CORE_ADDR frame_locals_address (); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) ((numargs) = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h index 601d875..108a203 100644 --- a/gdb/config/mips/tm-mips.h +++ b/gdb/config/mips/tm-mips.h @@ -339,7 +339,7 @@ extern CORE_ADDR mips_frame_chain PARAMS ((struct frame_info *)); does not, FRAMELESS is set to 1, else 0. */ /* We handle this differently for mips, and maybe we should not */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) {(FRAMELESS) = 0;} +#define FRAMELESS_FUNCTION_INVOCATION(FI) (0) /* Saved Pc. */ @@ -353,7 +353,7 @@ extern CORE_ADDR mips_frame_saved_pc PARAMS ((struct frame_info *)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(num, fi) (num = mips_frame_num_args(fi)) +#define FRAME_NUM_ARGS(fi) (mips_frame_num_args(fi)) extern int mips_frame_num_args PARAMS ((struct frame_info *)); /* Return number of bytes at start of arglist that are not really args. */ @@ -382,7 +382,7 @@ extern void mips_find_saved_regs PARAMS ((struct frame_info *)); handle it. */ #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = mips_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (mips_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR mips_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); diff --git a/gdb/config/mn10200/tm-mn10200.h b/gdb/config/mn10200/tm-mn10200.h index 99b8f61..94cd6ea 100644 --- a/gdb/config/mn10200/tm-mn10200.h +++ b/gdb/config/mn10200/tm-mn10200.h @@ -172,7 +172,7 @@ extern CORE_ADDR mn10200_skip_prologue PARAMS ((CORE_ADDR)); #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame) #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame) -#define FRAME_NUM_ARGS(val, fi) ((val) = -1) +#define FRAME_NUM_ARGS(fi) (-1) extern void mn10200_pop_frame PARAMS ((struct frame_info *)); #define POP_FRAME mn10200_pop_frame (get_current_frame ()) @@ -194,7 +194,7 @@ extern CORE_ADDR mn10200_push_arguments PARAMS ((int, struct value **, CORE_ADDR, unsigned char, CORE_ADDR)); #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP) diff --git a/gdb/config/mn10300/tm-mn10300.h b/gdb/config/mn10300/tm-mn10300.h index 42b7341..ae5f0aa 100644 --- a/gdb/config/mn10300/tm-mn10300.h +++ b/gdb/config/mn10300/tm-mn10300.h @@ -119,7 +119,7 @@ extern CORE_ADDR mn10300_skip_prologue PARAMS ((CORE_ADDR)); #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame) #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame) -#define FRAME_NUM_ARGS(val, fi) ((val) = -1) +#define FRAME_NUM_ARGS(fi) (-1) extern void mn10300_pop_frame PARAMS ((struct frame_info *)); #define POP_FRAME mn10300_pop_frame (get_current_frame ()) @@ -141,7 +141,7 @@ extern CORE_ADDR mn10300_push_arguments PARAMS ((int, struct value **, CORE_ADDR, unsigned char, CORE_ADDR )); #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = mn10300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (mn10300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP) diff --git a/gdb/config/ns32k/tm-merlin.h b/gdb/config/ns32k/tm-merlin.h index d586430..9a3edb9 100644 --- a/gdb/config/ns32k/tm-merlin.h +++ b/gdb/config/ns32k/tm-merlin.h @@ -192,30 +192,8 @@ extern CORE_ADDR merlin_skip_prologue PARAMS ((CORE_ADDR)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) \ -{ CORE_ADDR pc; \ - int insn; \ - int addr_mode; \ - int width; \ - \ - pc = FRAME_SAVED_PC (fi); \ - insn = read_memory_integer (pc,2); \ - addr_mode = (insn >> 11) & 0x1f; \ - insn = insn & 0x7ff; \ - if ((insn & 0x7fc) == 0x57c \ - && addr_mode == 0x14) /* immediate */ \ - { if (insn == 0x57c) /* adjspb */ \ - width = 1; \ - else if (insn == 0x57d) /* adjspw */ \ - width = 2; \ - else if (insn == 0x57f) /* adjspd */ \ - width = 4; \ - numargs = read_memory_integer (pc+2,width); \ - if (width > 1) \ - flip_bytes (&numargs, width); \ - numargs = - sign_extend (numargs, width*8) / 4; } \ - else numargs = -1; \ -} +extern int merlin_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS (merlin_frame_num_args ((fi))) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/ns32k/tm-umax.h b/gdb/config/ns32k/tm-umax.h index 925a3e9..d4ea4ed 100644 --- a/gdb/config/ns32k/tm-umax.h +++ b/gdb/config/ns32k/tm-umax.h @@ -271,35 +271,8 @@ extern CORE_ADDR ns32k_get_enter_addr (); ways in the stack frame. sp is even more special: the address we return for it IS the sp for the next frame. */ -#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \ -{ \ - register int regmask, regnum; \ - int localcount; \ - register CORE_ADDR enter_addr; \ - register CORE_ADDR next_addr; \ - \ - memset (&(frame_saved_regs), '\0', sizeof (frame_saved_regs)); \ - enter_addr = ns32k_get_enter_addr ((frame_info)->pc); \ - if (enter_addr > 1) \ - { \ - regmask = read_memory_integer (enter_addr+1, 1) & 0xff; \ - localcount = ns32k_localcount (enter_addr); \ - next_addr = (frame_info)->frame + localcount; \ - for (regnum = 0; regnum < 8; regnum++, regmask >>= 1) \ - (frame_saved_regs).regs[regnum] = (regmask & 1) ? \ - (next_addr -= 4) : 0; \ - (frame_saved_regs).regs[SP_REGNUM] = (frame_info)->frame + 4;\ - (frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 4;\ - (frame_saved_regs).regs[FP_REGNUM] = \ - (read_memory_integer ((frame_info)->frame, 4));\ - } \ - else if (enter_addr == 1) \ - { \ - CORE_ADDR sp = read_register (SP_REGNUM); \ - (frame_saved_regs).regs[PC_REGNUM] = sp; \ - (frame_saved_regs).regs[SP_REGNUM] = sp + 4; \ - } \ -} +extern int umax_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS (umax_frame_num_args ((fi))) /* Things needed for making the inferior call functions. */ diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index 2fcae42..169a817 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -437,8 +437,8 @@ extern int hppa_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_function_invocation(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_function_invocation (FI)) extern int frameless_function_invocation PARAMS ((struct frame_info *)); extern CORE_ADDR hppa_frame_saved_pc PARAMS ((struct frame_info *frame)); @@ -452,7 +452,7 @@ extern CORE_ADDR hppa_frame_saved_pc PARAMS ((struct frame_info *frame)); /* We can't tell how many args there are now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -624,7 +624,7 @@ hppa_fix_call_dummy PARAMS ((char *, CORE_ADDR, CORE_ADDR, int, struct value **, struct type *, int)); #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = hppa_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (hppa_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR hppa_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); diff --git a/gdb/config/powerpc/tm-ppc-eabi.h b/gdb/config/powerpc/tm-ppc-eabi.h index cd0ec32..41b80a8 100644 --- a/gdb/config/powerpc/tm-ppc-eabi.h +++ b/gdb/config/powerpc/tm-ppc-eabi.h @@ -56,11 +56,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ extern struct frame_info *rs6000_pop_frame PARAMS ((struct frame_info *frame)); extern CORE_ADDR ppc_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR)); -extern CORE_ADDR rs6000_push_arguments PARAMS ((int nargs, - struct value **args, - CORE_ADDR sp, - unsigned char struct_return, - CORE_ADDR struct_addr)); #undef PUSH_DUMMY_FRAME #define PUSH_DUMMY_FRAME generic_push_dummy_frame () diff --git a/gdb/config/pyr/tm-pyr.h b/gdb/config/pyr/tm-pyr.h index fbfe87c..b1deeed 100644 --- a/gdb/config/pyr/tm-pyr.h +++ b/gdb/config/pyr/tm-pyr.h @@ -332,7 +332,7 @@ do { \ /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(val, fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h index 159ebc6..34fe391 100644 --- a/gdb/config/rs6000/tm-rs6000.h +++ b/gdb/config/rs6000/tm-rs6000.h @@ -156,9 +156,8 @@ extern void aix_process_linenos PARAMS ((void)); handle it. */ #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) -extern CORE_ADDR push_arguments PARAMS ((int, struct value **, CORE_ADDR, - int, CORE_ADDR)); + (rs6000_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) +extern CORE_ADDR rs6000_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); /* BREAKPOINT_FROM_PC uses the program counter value to determine the breakpoint that should be used */ @@ -378,8 +377,8 @@ CORE_ADDR rs6000_frame_chain PARAMS ((struct frame_info *)); by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - FRAMELESS = frameless_function_invocation (FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_function_invocation (FI)) extern int frameless_function_invocation PARAMS((struct frame_info *)); @@ -421,7 +420,7 @@ extern CORE_ADDR rs6000_frame_args_address PARAMS ((struct frame_info *)); /* We can't tell how many args there are now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/sh/tm-sh.h b/gdb/config/sh/tm-sh.h index 2d5f8bd..3552300 100644 --- a/gdb/config/sh/tm-sh.h +++ b/gdb/config/sh/tm-sh.h @@ -46,11 +46,10 @@ struct type; extern CORE_ADDR sh_skip_prologue PARAMS ((CORE_ADDR)); #define SKIP_PROLOGUE(ip) (sh_skip_prologue (ip)) - /* Immediately after a function call, return the saved pc. Can't always go through the frames for this because on some machines the new frame is not set up until the new function executes - some instructions. + some instructions. The return address is the value saved in the PR register + 4 */ @@ -63,7 +62,7 @@ extern CORE_ADDR sh_skip_prologue PARAMS ((CORE_ADDR)); /* Illegal instruction - used by the simulator for breakpoint detection */ -#define BREAKPOINT {0xc3, 0xc3} /* 0xc3c3 is trapa #c3, and it works in big +#define BREAKPOINT {0xc3, 0xc3} /* 0xc3c3 is trapa #c3, and it works in big and little endian modes */ #define BIG_REMOTE_BREAKPOINT { 0xc3, 0x20 } @@ -77,7 +76,7 @@ extern CORE_ADDR sh_skip_prologue PARAMS ((CORE_ADDR)); #define REGISTER_TYPE long /* Say how much memory is needed to store a copy of the register set */ -#define REGISTER_BYTES (NUM_REGS*4) +#define REGISTER_BYTES (NUM_REGS*4) /* Index within `registers' of the first byte of the space for register N. */ @@ -147,7 +146,7 @@ extern char **sh_register_names; #define NUM_REALREGS 59 /* Store the address of the place in which to copy the structure the - subroutine will return. This is called from call_function. + subroutine will return. This is called from call_function. We store structs through a pointer passed in R0 */ @@ -166,7 +165,7 @@ extern void sh_extract_return_value PARAMS ((struct type *, void *, void *)); sh_extract_return_value (TYPE, REGBUF, VALBUF) /* Write into appropriate registers a function return value - of type TYPE, given in virtual format. + of type TYPE, given in virtual format. Things always get returned in R0/R1 */ @@ -181,25 +180,25 @@ extern void sh_extract_return_value PARAMS ((struct type *, void *, void *)); extract_address (REGBUF, REGISTER_RAW_SIZE (0)) -/* Define other aspects of the stack frame. +/* Define other aspects of the stack frame. we keep a copy of the worked out return pc lying around, since it is a useful bit of info */ #define EXTRA_FRAME_INFO \ CORE_ADDR return_pc; \ int leaf_function; \ - int f_offset; + int f_offset; #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \ - sh_init_extra_frame_info(fromleaf, fi) + sh_init_extra_frame_info(fromleaf, fi) extern void sh_init_extra_frame_info PARAMS ((int, struct frame_info *)); /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue(FI)) #define FRAME_SAVED_PC(FRAME) ((FRAME)->return_pc) #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame) @@ -210,13 +209,13 @@ extern void sh_init_extra_frame_info PARAMS ((int, struct frame_info *)); /* We can't tell how many args there are */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ #define FRAME_ARGS_SKIP 0 -extern void sh_frame_find_saved_regs PARAMS ((struct frame_info *fi, +extern void sh_frame_find_saved_regs PARAMS ((struct frame_info *fi, struct frame_saved_regs *fsr)); /* Put here the code to store, into a struct frame_saved_regs, @@ -232,8 +231,8 @@ extern void sh_frame_find_saved_regs PARAMS ((struct frame_info *fi, typedef unsigned short INSN_WORD; -extern CORE_ADDR sh_push_arguments PARAMS ((int nargs, - struct value **args, +extern CORE_ADDR sh_push_arguments PARAMS ((int nargs, + struct value **args, CORE_ADDR sp, unsigned char struct_return, CORE_ADDR struct_addr)); @@ -243,7 +242,7 @@ extern CORE_ADDR sh_push_arguments PARAMS ((int nargs, #define CALL_DUMMY_LENGTH (0) #define CALL_DUMMY_START_OFFSET (0) #define CALL_DUMMY_BREAKPOINT_OFFSET (0) -#define FIX_CALL_DUMMY(DUMMY, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP) +#define FIX_CALL_DUMMY(DUMMY, STARTADDR, FUNADDR, NARGS, ARGS, TYPE, GCCP) #define CALL_DUMMY_LOCATION AT_ENTRY_POINT #define CALL_DUMMY_ADDRESS() entry_point_address () extern CORE_ADDR sh_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR)); @@ -256,9 +255,9 @@ extern CORE_ADDR sh_frame_chain PARAMS ((struct frame_info *)); #define FRAME_CHAIN_VALID(FP, FRAME) generic_frame_chain_valid (FP, FRAME) #define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP) #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = sh_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (sh_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) -/* override the standard get_saved_register function with +/* override the standard get_saved_register function with one that takes account of generic CALL_DUMMY frames */ #define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \ generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval) diff --git a/gdb/config/sparc/tm-sp64.h b/gdb/config/sparc/tm-sp64.h index 40a9a62..693fa08 100644 --- a/gdb/config/sparc/tm-sp64.h +++ b/gdb/config/sparc/tm-sp64.h @@ -369,7 +369,7 @@ extern void sparc64_write_fp PARAMS ((CORE_ADDR)); CORE_ADDR sp64_push_arguments PARAMS ((int, struct value **, CORE_ADDR, unsigned char, CORE_ADDR)); #undef PUSH_ARGUMENTS -#define PUSH_ARGUMENTS(A,B,C,D,E) (sp = sp64_push_arguments ((A), (B), (C), (D), (E))) +#define PUSH_ARGUMENTS(A,B,C,D,E) (sp64_push_arguments ((A), (B), (C), (D), (E))) #undef EXTRACT_RETURN_VALUE #define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h index b2bc3c0..f3a9c66 100644 --- a/gdb/config/sparc/tm-sparc.h +++ b/gdb/config/sparc/tm-sparc.h @@ -362,8 +362,8 @@ extern CORE_ADDR sparc_frame_chain PARAMS ((struct frame_info *)); /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue(FI)) /* The location of I0 w.r.t SP. This is actually dependent on how the system's window overflow/underflow routines are written. Most vendors save the L regs @@ -390,7 +390,7 @@ extern CORE_ADDR sparc_frame_saved_pc PARAMS ((struct frame_info *)); /* We can't tell how many args there are now that the C compiler delays popping them. */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ @@ -583,6 +583,6 @@ extern int deferred_stores; function calls. */ #define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \ - sp = sparc_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)) + (sparc_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))) extern CORE_ADDR sparc_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR)); diff --git a/gdb/config/tahoe/tm-tahoe.h b/gdb/config/tahoe/tm-tahoe.h index 8c8321f..8711d24 100644 --- a/gdb/config/tahoe/tm-tahoe.h +++ b/gdb/config/tahoe/tm-tahoe.h @@ -189,8 +189,8 @@ extern CORE_ADDR tahoe_skip_prologue PARAMS ((CORE_ADDR)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) \ -{ numargs = ((0xffff & read_memory_integer(((fi)->frame-4),4)) - 4) >> 2; } +extern int tahoe_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS(fi) (tahoe_frame_num_args ((fi))) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/tic80/tm-tic80.h b/gdb/config/tic80/tm-tic80.h index 8b33381..567beb0 100644 --- a/gdb/config/tic80/tm-tic80.h +++ b/gdb/config/tic80/tm-tic80.h @@ -136,7 +136,7 @@ extern struct frame_info *tic80_pop_frame PARAMS ((struct frame_info *frame)); Can set VAL to -1, meaning no way to tell. */ /* We can't tell how many args there are */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) #define FRAME_ARGS_SKIP 0 #define FRAME_ARGS_ADDRESS(fi) (fi)->frame @@ -229,7 +229,7 @@ extern CORE_ADDR tic80_push_arguments PARAMS ((int nargs, CORE_ADDR struct_addr)); #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \ - (SP) = tic80_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) + (tic80_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) /* PUSH_RETURN_ADDRESS */ extern CORE_ADDR tic80_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR)); diff --git a/gdb/config/v850/tm-v850.h b/gdb/config/v850/tm-v850.h index 5a11451..05fa79d 100644 --- a/gdb/config/v850/tm-v850.h +++ b/gdb/config/v850/tm-v850.h @@ -132,7 +132,7 @@ extern CORE_ADDR v850_skip_prologue PARAMS ((CORE_ADDR pc)); #define FRAME_ARGS_ADDRESS(fi) ((fi)->frame) #define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame) -#define FRAME_NUM_ARGS(val, fi) ((val) = -1) +#define FRAME_NUM_ARGS(fi) (-1) extern void v850_pop_frame PARAMS ((struct frame_info *frame)); #define POP_FRAME v850_pop_frame (get_current_frame ()) @@ -155,7 +155,7 @@ 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) + (v850_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)) #define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) diff --git a/gdb/config/vax/tm-vax.h b/gdb/config/vax/tm-vax.h index 62729b3..277aa8b 100644 --- a/gdb/config/vax/tm-vax.h +++ b/gdb/config/vax/tm-vax.h @@ -173,7 +173,7 @@ extern CORE_ADDR vax_skip_prologue PARAMS ((CORE_ADDR)); by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ /* On the vax, all functions have frames. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) {(FRAMELESS) = 0;} +#define FRAMELESS_FUNCTION_INVOCATION(FI) (0) /* Saved Pc. Get it from sigcontext if within sigtramp. */ @@ -213,8 +213,8 @@ extern CORE_ADDR vax_skip_prologue PARAMS ((CORE_ADDR)); /* Return number of args passed to a frame. Can return -1, meaning no way to tell. */ -#define FRAME_NUM_ARGS(numargs, fi) \ -{ numargs = (0xff & read_memory_integer (FRAME_ARGS_ADDRESS (fi), 1)); } +extern int vax_frame_num_args PARAMS ((struct frame_info *fi)); +#define FRAME_NUM_ARGS(fi) (vax_frame_num_args ((fi))) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/w65/tm-w65.h b/gdb/config/w65/tm-w65.h index 2e354bb..05d93c3 100644 --- a/gdb/config/w65/tm-w65.h +++ b/gdb/config/w65/tm-w65.h @@ -159,8 +159,8 @@ extern CORE_ADDR w65_skip_prologue (); by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) #define FRAME_CHAIN(FRAME) w65_frame_chain(FRAME) #define FRAME_SAVED_PC(FRAME) (w65_frame_saved_pc(FRAME)) @@ -172,7 +172,7 @@ extern CORE_ADDR w65_skip_prologue (); /* We can't tell how many args there are */ -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) /* Return number of bytes at start of arglist that are not really args. */ diff --git a/gdb/config/z8k/tm-z8k.h b/gdb/config/z8k/tm-z8k.h index 1a34b0f..3b38d75 100644 --- a/gdb/config/z8k/tm-z8k.h +++ b/gdb/config/z8k/tm-z8k.h @@ -175,8 +175,8 @@ extern CORE_ADDR mz8k_skip_prologue PARAMS ((CORE_ADDR ip)); /* A macro that tells us whether the function invocation represented by FI does not have a frame on the stack associated with it. If it does not, FRAMELESS is set to 1, else 0. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ - (FRAMELESS) = frameless_look_for_prologue(FI) +#define FRAMELESS_FUNCTION_INVOCATION(FI) \ + (frameless_look_for_prologue (FI)) #define FRAME_SAVED_PC(FRAME) frame_saved_pc(FRAME) @@ -190,7 +190,7 @@ extern CORE_ADDR mz8k_skip_prologue PARAMS ((CORE_ADDR ip)); /* We can't tell how many args there are now that the C compiler delays popping them. */ #if !defined (FRAME_NUM_ARGS) -#define FRAME_NUM_ARGS(val,fi) (val = -1) +#define FRAME_NUM_ARGS(fi) (-1) #endif /* Return number of bytes at start of arglist that are not really args. */ |