aboutsummaryrefslogtreecommitdiff
path: root/gdb/alpha-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/alpha-tdep.c')
-rw-r--r--gdb/alpha-tdep.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 0ec3add..a50000e 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -144,6 +144,11 @@ struct linked_proc_info
}
*linked_proc_desc_table = NULL;
+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);
+}
/* 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