* alpha-tdep.c (alpha_osf_in_sigtramp): New function.
authorJason Thorpe <thorpej@netbsd.org>
Sat, 19 Jan 2002 05:26:47 +0000 (05:26 +0000)
committerJason Thorpe <thorpej@netbsd.org>
Sat, 19 Jan 2002 05:26:47 +0000 (05:26 +0000)
(alpha_cannot_fetch_register): Ditto.
(alpha_cannot_store_register): Ditto.
(alpha_register_convertible): Ditto.
(alpha_use_struct_convention): Ditto.
* config/alpha/tm-alpha.h: Update copyright years.
(IN_SIGTRAMP): Use alpha_osf_in_sigtramp.
(INNER_THAN): Use core_addr_lessthan.
(CANNOT_FETCH_REGISTER): Use alpha_cannot_fetch_register.
(CANNOT_STORE_REGISTER): Use alpha_cannot_store_register.
(REGISTER_CONVERTIBLE): Use alpha_register_convertible.
(USE_STRUCT_CONVENTION): Use alpha_use_struct_convention.
(FRAME_CHAIN): Remove unnecessary cast.

gdb/ChangeLog
gdb/alpha-tdep.c
gdb/config/alpha/tm-alpha.h

index bc4b4fbde4dd1af88b917fb9723bc42ad7c42033..15f5b59b005670006e7efc381a864dfdc7afaa0d 100644 (file)
@@ -1,3 +1,19 @@
+2002-01-18  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * alpha-tdep.c (alpha_osf_in_sigtramp): New function.
+       (alpha_cannot_fetch_register): Ditto.
+       (alpha_cannot_store_register): Ditto.
+       (alpha_register_convertible): Ditto.
+       (alpha_use_struct_convention): Ditto.
+       * config/alpha/tm-alpha.h: Update copyright years.
+       (IN_SIGTRAMP): Use alpha_osf_in_sigtramp.
+       (INNER_THAN): Use core_addr_lessthan.
+       (CANNOT_FETCH_REGISTER): Use alpha_cannot_fetch_register.
+       (CANNOT_STORE_REGISTER): Use alpha_cannot_store_register.
+       (REGISTER_CONVERTIBLE): Use alpha_register_convertible.
+       (USE_STRUCT_CONVENTION): Use alpha_use_struct_convention.
+       (FRAME_CHAIN): Remove unnecessary cast.
+
 2002-01-18  Andrew Cagney  <ac131313@redhat.com>
 
        * NEWS: Document that testsuite/gdb.hp/gdb.threads-hp/ is
index 0ec3add597aa23a5c7c442dcae1f48494621a339..a50000ede8c26c2e9a03f7fb800d0e203c3d73a2 100644 (file)
@@ -144,6 +144,11 @@ struct linked_proc_info
   }
  *linked_proc_desc_table = NULL;
 \f
+int
+alpha_osf_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+  return (func_name != NULL && STREQ ("__sigtramp", func_name));
+}
 
 /* Under GNU/Linux, signal handler invocations can be identified by the
    designated code sequence that is used to return from a signal
@@ -283,6 +288,24 @@ alpha_register_name (int regno)
     return (NULL);
   return (register_names[regno]);
 }
+
+int
+alpha_cannot_fetch_register (int regno)
+{
+  return (regno == FP_REGNUM || regno == ZERO_REGNUM);
+}
+
+int
+alpha_cannot_store_register (int regno)
+{
+  return (regno == FP_REGNUM || regno == ZERO_REGNUM);
+}
+
+int
+alpha_register_convertible (int regno)
+{
+  return (regno >= FP0_REGNUM && regno <= FP0_REGNUM + 31);
+}
 \f
 
 /* Guaranteed to set frame->saved_regs to some values (it never leaves it
@@ -1410,6 +1433,13 @@ alpha_call_dummy_address (void)
     return SYMBOL_VALUE_ADDRESS (sym) + 4;
 }
 
+int
+alpha_use_struct_convention (int gcc_p, struct type *type)
+{
+  /* Structures are returned by ref in extra arg0.  */
+  return 1;
+}
+
 /* alpha_software_single_step() is called just before we want to resume
    the inferior, if we want to single-step it but there is no hardware
    or kernel single-step support (NetBSD on Alpha, for example).  We find
index ad2e39be246128e0dba4f1457b63dc9fb5db30d1..7630e0887b2ec15050f194f4aa6eeb7d525cfe01 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions to make GDB run on an Alpha box under OSF1.  This is
    also used by the Alpha/Netware and Alpha/Linux targets.
-   Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000
+   Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -73,11 +73,12 @@ extern CORE_ADDR alpha_saved_pc_after_call (struct frame_info *);
 
 /* Are we currently handling a signal ?  */
 
-#define IN_SIGTRAMP(pc, name)  ((name) && STREQ ("__sigtramp", (name)))
+#define IN_SIGTRAMP(pc, name) alpha_osf_in_sigtramp ((pc), (name))
+extern int alpha_osf_in_sigtramp (CORE_ADDR, char *);
 
 /* Stack grows downward.  */
 
-#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
+#define INNER_THAN(lhs,rhs) core_addr_lessthan ((lhs), (rhs))
 
 #define BREAKPOINT {0x80, 0, 0, 0}     /* call_pal bpt */
 
@@ -129,9 +130,12 @@ extern char *alpha_register_name (int);
 #define FP_REGNUM 65           /* Virtual frame pointer */
 
 #define CANNOT_FETCH_REGISTER(regno) \
-  ((regno) == FP_REGNUM || (regno) == ZERO_REGNUM)
+  alpha_cannot_fetch_register ((regno))
+extern int alpha_cannot_fetch_register (int);
+
 #define CANNOT_STORE_REGISTER(regno) \
-  ((regno) == FP_REGNUM || (regno) == ZERO_REGNUM)
+  alpha_cannot_store_register ((regno))
+extern int alpha_cannot_store_register (int);
 
 /* Total amount of space needed to store our copies of the machine's
    register state, the array `registers'.  */
@@ -169,7 +173,8 @@ extern char *alpha_register_name (int);
    memory format is an integer with 4 bytes or less, as the representation
    of integers in floating point registers is different. */
 
-#define REGISTER_CONVERTIBLE(N) ((N) >= FP0_REGNUM && (N) < FP0_REGNUM + 31)
+#define REGISTER_CONVERTIBLE(N) alpha_register_convertible ((N))
+extern int alpha_register_convertible (int);
 
 /* Convert data from raw format for register REGNUM in buffer FROM
    to virtual format with type TYPE in buffer TO.  */
@@ -228,7 +233,9 @@ extern void alpha_store_return_value (struct type *, char *);
                    REGISTER_RAW_SIZE (V0_REGNUM)))
 
 /* Structures are returned by ref in extra arg0 */
-#define USE_STRUCT_CONVENTION(gcc_p, type)     1
+#define USE_STRUCT_CONVENTION(gcc_p, type) \
+  alpha_use_struct_convention ((gcc_p), (type))
+extern int alpha_use_struct_convention (int, struct type *);
 \f
 
 /* Describe the pointer in each stack frame to the previous stack frame
@@ -237,7 +244,7 @@ extern void alpha_store_return_value (struct type *, char *);
 /* FRAME_CHAIN takes a frame's nominal address
    and produces the frame's chain-pointer. */
 
-#define FRAME_CHAIN(thisframe) (CORE_ADDR) alpha_frame_chain (thisframe)
+#define FRAME_CHAIN(thisframe) alpha_frame_chain (thisframe)
 extern CORE_ADDR alpha_frame_chain (struct frame_info *);
 
 /* Define other aspects of the stack frame.  */