aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/pa
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>1999-08-16 19:57:19 +0000
committerJason Molenda <jmolenda@apple.com>1999-08-16 19:57:19 +0000
commit7be570e7ce77920e2e628a03bdfe2d295fc2568f (patch)
treea49512270bb021f1d5171b362dc973e28c97ca94 /gdb/config/pa
parented288bb597072176e84fc8279707a3f2f475779b (diff)
downloadgdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.zip
gdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.tar.gz
gdb-7be570e7ce77920e2e628a03bdfe2d295fc2568f.tar.bz2
import gdb-1999-08-16 snapshot
Diffstat (limited to 'gdb/config/pa')
-rw-r--r--gdb/config/pa/hpux1100w.mh11
-rw-r--r--gdb/config/pa/hpux1100w.mt3
-rw-r--r--gdb/config/pa/tm-hppa.h15
-rw-r--r--gdb/config/pa/tm-hppa64.h19
-rw-r--r--gdb/config/pa/tm-hppah.h10
5 files changed, 51 insertions, 7 deletions
diff --git a/gdb/config/pa/hpux1100w.mh b/gdb/config/pa/hpux1100w.mh
new file mode 100644
index 0000000..3eed3f5
--- /dev/null
+++ b/gdb/config/pa/hpux1100w.mh
@@ -0,0 +1,11 @@
+# Host: Hewlett-Packard PA-RISC machine, running HPUX 11.00
+
+MH_CFLAGS = -D__HP_CURSES
+
+XM_FILE= xm-hppah.h
+XDEPFILES= ser-tcp.o
+
+NAT_FILE= nm-hppah11.h
+NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infttrace.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o pa64solib.o
+
+HOST_IPC=-DBSD_IPC -DPOSIX_WAIT
diff --git a/gdb/config/pa/hpux1100w.mt b/gdb/config/pa/hpux1100w.mt
new file mode 100644
index 0000000..94770ea
--- /dev/null
+++ b/gdb/config/pa/hpux1100w.mt
@@ -0,0 +1,3 @@
+# Target: HP PA-RISC running HPUX 11.00
+TDEPFILES= hppa-tdep.o remote-pa.o somsolib.o pa64solib.o
+TM_FILE= tm-hppah.h
diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h
index f284a18..a35a098 100644
--- a/gdb/config/pa/tm-hppa.h
+++ b/gdb/config/pa/tm-hppa.h
@@ -254,7 +254,7 @@ extern CORE_ADDR saved_pc_after_call PARAMS ((struct frame_info *));
#define CLEAN_UP_REGISTER_VALUE(regno, buf) \
do { \
if ((regno) == PCOQ_HEAD_REGNUM || (regno) == PCOQ_TAIL_REGNUM) \
- (buf)[3] &= ~0x3; \
+ (buf)[sizeof(CORE_ADDR) -1] &= ~0x3; \
} while (0)
/* Define DO_REGISTERS_INFO() to do machine-specific formatting
@@ -564,6 +564,7 @@ extern void hppa_pop_frame PARAMS ((void));
0x00151820, 0xe6c00002, 0x08000240, 0x08000240}
#define CALL_DUMMY_LENGTH (INSTRUCTION_SIZE * 28)
+#define REG_PARM_STACK_SPACE 16
#else /* defined PA_LEVEL_0 */
@@ -648,8 +649,8 @@ extern CORE_ADDR
struct unwind_table_entry
{
- unsigned int region_start;
- unsigned int region_end;
+ CORE_ADDR region_start;
+ CORE_ADDR region_end;
unsigned int Cannot_unwind:1; /* 0 */
unsigned int Millicode:1; /* 1 */
@@ -753,10 +754,18 @@ struct obj_unwind_info
int last; /* Index of last entry */
};
+typedef struct data {
+ CORE_ADDR dummy[2];
+ CORE_ADDR func_addr;
+ CORE_ADDR dp;
+} opd_data;
+
typedef struct obj_private_struct
{
struct obj_unwind_info *unwind_info; /* a pointer */
struct so_list *so_info; /* a pointer */
+ opd_data *opd;
+ int n_opd_entries;
}
obj_private_data_t;
diff --git a/gdb/config/pa/tm-hppa64.h b/gdb/config/pa/tm-hppa64.h
index 3aaeaee..ea9090f 100644
--- a/gdb/config/pa/tm-hppa64.h
+++ b/gdb/config/pa/tm-hppa64.h
@@ -24,15 +24,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* PA 64-bit specific definitions. Override those which are in
tm-hppa.h */
-#include "pa/tm-hppah.h"
-
-#define HPUX_1100 1
-
/* jimb: this must go. I'm just using it to disable code I haven't
gotten working yet. */
#define GDB_TARGET_IS_HPPA_20W
/* The low two bits of the IA are the privilege level of the instruction. */
+#include "pa/tm-hppah.h"
+
+#define HPUX_1100 1
+
#define ADDR_BITS_REMOVE(addr) ((CORE_ADDR)addr & (CORE_ADDR)~3)
/* Say how long (ordinary) registers are. This is used in
@@ -191,11 +191,22 @@ call_dummy
#undef CALL_DUMMY_LENGTH
#define CALL_DUMMY_LENGTH (INSTRUCTION_SIZE * 25)
+/* The PA64 ABI mandates a 16 byte stack alignment. */
+#undef STACK_ALIGN
+#define STACK_ALIGN(arg) ( ((arg)%16) ? (((arg)+15)&-16) : (arg))
+
+/* The PA64 ABI reserves 64 bytes of stack space for outgoing register
+ parameters. */
+#undef REG_PARM_STACK_SPACE
+#define REG_PARM_STACK_SPACE 64
+
#undef FUNC_LDIL_OFFSET
#undef FUNC_LDO_OFFSET
#undef SR4EXPORT_LDIL_OFFSET
#undef SR4EXPORT_LDO_OFFSET
#undef CALL_DUMMY_LOCATION
+
+#define PC_IN_CALL_DUMMY(pc, sp, frame_address) hppa64_pc_in_call_dummy (pc)
/* jimb: need to find out what AT_WDB_CALL_DUMMY is about */
#if 0
#define CALL_DUMMY_LOCATION AFTER_TEXT_END
diff --git a/gdb/config/pa/tm-hppah.h b/gdb/config/pa/tm-hppah.h
index d6906bf..8014aa9 100644
--- a/gdb/config/pa/tm-hppah.h
+++ b/gdb/config/pa/tm-hppah.h
@@ -24,7 +24,17 @@
#define HPUX_SNAP1
#define HPUX_SNAP2
+/* The solib hooks are not really designed to have a list of hook
+ and handler routines. So until we clean up those interfaces you
+ either get SOM shared libraries or HP's unusual PA64 ELF shared
+ libraries, but not both. */
+#ifdef GDB_TARGET_IS_HPPA_20W
+#include "pa64solib.h"
+#endif
+
+#ifndef GDB_TARGET_IS_HPPA_20W
#include "somsolib.h"
+#endif
/* Actually, for a PA running HPUX the kernel calls the signal handler
without an intermediate trampoline. Luckily the kernel always sets