diff options
author | Fred Fish <fnf@specifix.com> | 1996-07-28 06:32:48 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1996-07-28 06:32:48 +0000 |
commit | 3f550b594061532d7fa1f920cf7a0d2910127da9 (patch) | |
tree | 2c6d4d7b8e9312c396bc3b5765306d93d4b0053c /gdb/config/pa | |
parent | 959376c9c8db0b88108025ec89bdbf01f96ac504 (diff) | |
download | gdb-3f550b594061532d7fa1f920cf7a0d2910127da9.zip gdb-3f550b594061532d7fa1f920cf7a0d2910127da9.tar.gz gdb-3f550b594061532d7fa1f920cf7a0d2910127da9.tar.bz2 |
* configure.in: Add test for "long long" support.
* configure: Regenerate with autoconf.
* acconfig.h: Add CC_HAS_LONG_LONG
* config.in: Regenerate with autoheader.
* config/mips/tm-mips64.h (FORCE_LONG_LONG): Remove
* config/sparc/tm-sp64.h (CC_HAS_LONG_LONG): Remove.
* config/mips/tm-vr4300el.h (CC_HAS_LONG_LONG): Remove.
* config/mips/tm-vr4300.h (CC_HAS_LONG_LONG): Remove.
* config/mips/xm-irix5.h (CC_HAS_LONG_LONG): Remove
(PRINTF_HAS_LONG_LONG): Remove.
(FORCE_LONG_LONG): Remove.
* config/powerpc/xm-aix.h (UINT_MAX): Undef and use gdb's version.
* config/convex/xm-convex.h (CC_HAS_LONG_LONG): Remove
(PRINTF_HAS_LONG_LONG): Remove.
* config/xm-nbsd.h (CC_HAS_LONG_LONG): Remove.
(PRINTF_HAS_LONG_LONG): Remove.
* config/pa/tm-hppa.h (GET_FIELD): Put parens around
subtraction inside shift. Put parens around subtraction
in operand of bitwise and.
(struct frame_info): Forward declare
if __STDC__ defined.
(frame_saved_regs): Ditto.
(struct value): Ditto.
(struct type): Ditto.
(struct inferior_status): Ditto.
(init_extra_frame_info): Add prototype.
(skip_prologue): Ditto.
(frameless_function_invocation): Ditto.
(frame_chain): Ditto.
(frame_chain_valid): Ditto.
(saved_pc_after_call): Ditto.
(hppa_fix_call_dummy): Ditto.
(hppa_push_arguments): Ditto.
(pa_do_registers_info): Ditto.
(in_solib_call_trampoline): Ditto.
(in_solib_return_trampoline): Ditto.
(push_dummy_frame): Ditto.
* convex-tdep.c (decout): Use print_longest rather than
fprintf_filtered.
* defs.h: Remove use of FORCE_LONG_LONG and __GNUC__ to set
CC_HAS_LONG_LONG.
(INT_MIN): Fix so it works correctly when assigned to a long long.
* valprint.c (longest_to_int): Rewrite to remove dependence
on INT_MIN and INT_MAX.
(print_longest): Rewrite the code that falls back to synthesized
hex output when LONGEST value is not representable as in a long and
printf doesn't support printing long longs.
* ch-valprint.c (chill_val_print): Cast 2nd arg of
chill_print_type_scalar to LONGEST.
chill_print_type_scalar): Make static and add prototype.
* hppa-tdep.c (get_field): Ifdef out unused function.
(set_field): Ditto.
(extract_3): Ditto.
(extract_5_store): Ditto.
(extract_11): Ditto.
(extract_12): Ditto.
(deposit_17): Ditto.
(extract_14): Convert to static and add prototype.
(deposit_14): Ditto.
(extract_21): Ditto.
(deposit_21): Ditto.
(extract_17): Ditto.
(extract_5r_store): Ditto.
(extract_5R_store): Ditto.
(extract_5_load): Ditto.
(find_proc_framesize): Ditto.
(find_dummy_frame_regs): Ditto.
(sign_extend): Ditto.
(find_unwind_entry): Add prototype.
(find_return_regnum): Ditto.
(unwind_command): Ditto.
(find_dummy_frame_regs): Add parens around subtraction in operand
of bitwise-and.
(skip_prologue): Add parens around operands of logical-and inside
operand of logical-or.
(sign_extend): Add parens around operands of subtraction inside
operand of shift.
(low_sign_extend): Ditto.
* top.c (filename_completer): Convert old style decl of
filename_completion_function into prototype.
* f-lang.c (patch_common_entries): Ifdef out unused function.
* stabsread.c (read_cfront_baseclasses): Remove unused local
variable "msg_noterm".
(resolve_cfront_continuation): Remove unused local variable "fip".
(read_type): Remove unused variable xtypenums.
(read_cfront_static_fields): Remove unused variable "i".
(read_cfront_static_fields): Remove unused variable "nfields".
(read_cfront_member_functions): Add missing comment terminator.
(read_cfront_static_fields): Return 1 rather than random value.
(read_cfront_baseclasses): Ditto.
(read_cfront_baseclasses): Ditto.
(read_cfront_baseclasses): Ditto.
* somsolib.c (som_solib_create_inferior_hook): Remove unused
variable "u".
(som_solib_create_inferior_hook): Remove unused variable
shadow_contents.
(language.h): Add for needed prototypes.
(som_solib_sharedlibrary_command): Add prototype.
* hpread.c: (hpread_read_array_type): Add prototype.
* somread.c (hpread_build_pysmtabs): Add prototype.
(hpread_symfile_finish): Ditto.
(hpread_symfile_init): Ditto.
* hppah-nat.c (fetch_register): Convert old style decl
to prototype.
(gdbcore.h): Include for needed prototypes.
(fetch_register): Remove unused variable "mess".
* remote-pa.c (get_offsets): Ifdef out unused function.
(remote_start_remote): Remove unused variable "timeout".
(boot_board): Add prototype.
(reaad_frame): Add prototype.
(getpkt): Remove unused variable "bp".
(remote_kill): Add prototype.
(remote_mourn): Add prototype.
(remote_insert_breakpoint): Add prototype.
(remote_remove_breakpoint): Add prototype.
* valops.c (value_push): Only use if PUSH_ARGUMENTS is not defined.
* infcmd.c (do_registers_info): Only need prototype if
DO_REGISTERS_INFO is not defined.
(breakpoint_auto_delete_contents): Only need if
CALL_DUMMY_BREAKPOINT_OFFSET is defined.
Diffstat (limited to 'gdb/config/pa')
-rw-r--r-- | gdb/config/pa/tm-hppa.h | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h index bfae85e..5220c64 100644 --- a/gdb/config/pa/tm-hppa.h +++ b/gdb/config/pa/tm-hppa.h @@ -21,10 +21,25 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* Forward declarations of some types we use in prototypes */ + +#ifdef __STDC__ +struct frame_info; +struct frame_saved_regs; +struct value; +struct type; +struct inferior_status; +#endif + /* Target system byte order. */ #define TARGET_BYTE_ORDER BIG_ENDIAN +/* By default assume we don't have to worry about software floating point. */ +#ifndef SOFT_FLOAT +#define SOFT_FLOAT 0 +#endif + /* Get at various relevent fields of an instruction word. */ #define MASK_5 0x1f @@ -35,7 +50,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This macro gets bit fields using HP's numbering (MSB = 0) */ #define GET_FIELD(X, FROM, TO) \ - ((X) >> 31 - (TO) & (1 << ((TO) - (FROM) + 1)) - 1) + ((X) >> (31 - (TO)) & ((1 << ((TO) - (FROM) + 1)) - 1)) /* Watch out for NaNs */ @@ -57,6 +72,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ to reach some "real" code. */ #define SKIP_PROLOGUE(pc) pc = skip_prologue (pc) +extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR)); /* If PC is in some function-call trampoline code, return the PC where the function itself actually starts. If not, return NULL. */ @@ -67,9 +83,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define IN_SOLIB_CALL_TRAMPOLINE(pc, name) \ in_solib_call_trampoline (pc, name) +extern int in_solib_call_trampoline PARAMS ((CORE_ADDR, char *)); #define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \ in_solib_return_trampoline (pc, name) +extern int in_solib_return_trampoline PARAMS ((CORE_ADDR, char *)); /* Immediately after a function call, return the saved pc. Can't go through the frames for this because on some machines @@ -78,6 +96,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #undef SAVED_PC_AFTER_CALL #define SAVED_PC_AFTER_CALL(frame) saved_pc_after_call (frame) +extern CORE_ADDR saved_pc_after_call PARAMS ((struct frame_info *)); /* Stack grows upward */ @@ -198,6 +217,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ of register dumps. */ #define DO_REGISTERS_INFO(_regnum, fp) pa_do_registers_info (_regnum, fp) +extern void pa_do_registers_info PARAMS ((int, int)); /* PA specific macro to see if the current instruction is nullified. */ #ifndef INSTRUCTION_NULLIFIED @@ -302,6 +322,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM) #define INIT_EXTRA_FRAME_INFO(fromleaf, frame) init_extra_frame_info (fromleaf, frame) +extern void init_extra_frame_info PARAMS ((int, struct frame_info *)); /* Describe the pointer in each stack frame to the previous stack frame (its caller). */ @@ -321,9 +342,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ address (previous FP). */ #define FRAME_CHAIN(thisframe) frame_chain (thisframe) +extern CORE_ADDR frame_chain PARAMS ((struct frame_info *)); #define FRAME_CHAIN_VALID(chain, thisframe) \ frame_chain_valid (chain, thisframe) +extern int frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *)); #define FRAME_CHAIN_COMBINE(chain, thisframe) (chain) @@ -334,6 +357,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ does not, FRAMELESS is set to 1, else 0. */ #define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \ (FRAMELESS) = frameless_function_invocation(FI) +extern int frameless_function_invocation PARAMS ((struct frame_info *)); #define FRAME_SAVED_PC(FRAME) frame_saved_pc (FRAME) @@ -353,6 +377,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \ hppa_frame_find_saved_regs (frame_info, &frame_saved_regs) +extern void +hppa_frame_find_saved_regs PARAMS ((struct frame_info *, + struct frame_saved_regs *)); /* Things needed for making the inferior call functions. */ @@ -360,10 +387,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Push an empty stack frame, to record the current PC, etc. */ #define PUSH_DUMMY_FRAME push_dummy_frame (&inf_status) +extern void push_dummy_frame PARAMS ((struct inferior_status *)); /* Discard from the stack the innermost frame, restoring all saved registers. */ #define POP_FRAME hppa_pop_frame () +extern void hppa_pop_frame PARAMS ((void)); #define INSTRUCTION_SIZE 4 @@ -500,10 +529,15 @@ call_dummy #define FIX_CALL_DUMMY hppa_fix_call_dummy -CORE_ADDR hppa_fix_call_dummy(); +extern CORE_ADDR +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) +extern CORE_ADDR +hppa_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, + CORE_ADDR)); /* The low two bits of the PC on the PA contain the privilege level. Some genius implementing a (non-GCC) compiler apparently decided this means @@ -616,3 +650,17 @@ extern CORE_ADDR skip_trampoline_code PARAMS ((CORE_ADDR, char *)); #define HPREAD_ADJUST_STACK_ADDRESS(ADDR) hpread_adjust_stack_address(ADDR) extern int hpread_adjust_stack_address PARAMS ((CORE_ADDR)); + +/* If the current gcc for for this target does not produce correct debugging + information for float parameters, both prototyped and unprototyped, then + define this macro. This forces gdb to always assume that floats are + passed as doubles and then converted in the callee. + + For the pa, it appears that the debug info marks the parameters as + floats regardless of whether the function is prototyped, but the actual + values are passed as doubles for the non-prototyped case and floats for + the prototyped case. Thus we choose to make the non-prototyped case work + for C and break the prototyped case, since the non-prototyped case is + probably much more common. (FIXME). */ + +#define COERCE_FLOAT_TO_DOUBLE (current_language -> la_language == language_c) |