diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-08-16 19:57:19 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-08-16 19:57:19 +0000 |
commit | 7be570e7ce77920e2e628a03bdfe2d295fc2568f (patch) | |
tree | a49512270bb021f1d5171b362dc973e28c97ca94 /gdb/config/pa | |
parent | ed288bb597072176e84fc8279707a3f2f475779b (diff) | |
download | gdb-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.mh | 11 | ||||
-rw-r--r-- | gdb/config/pa/hpux1100w.mt | 3 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppa.h | 15 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppa64.h | 19 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppah.h | 10 |
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 |