2003-03-27 Andrew Cagney <cagney@redhat.com>

* NEWS: Mention removal of support for hppa*-*-bsd* and
	hppa*-*-osf* natives, and hppa*-*-pro* target.
	* config/pa/xm-hppah.h: Do not include "pa/xm-pa.h".
	* config/pa/xm-pa.h: Obsolete file.
	* config/pa/xm-hppab.h: Obsolete file.
	* config/pa/nm-hppab.h: Obsolete file.
	* config/pa/tm-hppab.h: Obsolete file.
	* config/pa/tm-hppao.h: Obsolete file.
	* config/pa/nm-hppao.h: Obsolete file.
	* config/pa/tm-pro.h: Obsolete file.
	* config/pa/hppaosf.mt: Obsolete file.
	* config/pa/hppaosf.mh: Obsolete file.
	* config/pa/hppapro.mt: Obsolete file.
	* config/pa/hppabsd.mt: Obsolete file.
	* config/pa/hppabsd.mh: Obsolete file.
	* configure.host: Disable hppa*-*-bsd* and hppa*-*-osf*.
	* configure.tgt: Disable hppa*-*-bsd*, hppa*-*-pro* and
	hppa*-*-osf*.
This commit is contained in:
Andrew Cagney 2003-03-27 15:23:17 +00:00
parent 922fbb7b53
commit 56056df735
17 changed files with 401 additions and 379 deletions

View File

@ -1,3 +1,24 @@
2003-03-27 Andrew Cagney <cagney@redhat.com>
* NEWS: Mention removal of support for hppa*-*-bsd* and
hppa*-*-osf* natives, and hppa*-*-pro* target.
* config/pa/xm-hppah.h: Do not include "pa/xm-pa.h".
* config/pa/xm-pa.h: Obsolete file.
* config/pa/xm-hppab.h: Obsolete file.
* config/pa/nm-hppab.h: Obsolete file.
* config/pa/tm-hppab.h: Obsolete file.
* config/pa/tm-hppao.h: Obsolete file.
* config/pa/nm-hppao.h: Obsolete file.
* config/pa/tm-pro.h: Obsolete file.
* config/pa/hppaosf.mt: Obsolete file.
* config/pa/hppaosf.mh: Obsolete file.
* config/pa/hppapro.mt: Obsolete file.
* config/pa/hppabsd.mt: Obsolete file.
* config/pa/hppabsd.mh: Obsolete file.
* configure.host: Disable hppa*-*-bsd* and hppa*-*-osf*.
* configure.tgt: Disable hppa*-*-bsd*, hppa*-*-pro* and
hppa*-*-osf*.
2003-03-27 Andrew Cagney <cagney@redhat.com>
* d10v-tdep.c (d10v_gdbarch_init): Set push_dummy_call instead of

View File

@ -41,6 +41,9 @@ Mitsubishi M32R/D w/simulator m32r-*-elf*
Z8000 simulator z8k-zilog-none or z8ksim
Matsushita MN10200 w/simulator mn10200-*-*
H8/500 simulator h8500-hitachi-hms or h8500hms
HP/PA running BSD hppa*-*-bsd*
HP/PA running OSF/1 hppa*-*-osf*
HP/PA Pro target hppa*-*-pro*
* REMOVED configurations and files

View File

@ -1,4 +1,4 @@
# Host: Hewlett-Packard PA-RISC machine, running BSD
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppab.h
NATDEPFILES= hppab-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hpread.o somsolib.o
# OBSOLETE # Host: Hewlett-Packard PA-RISC machine, running BSD
# OBSOLETE XM_FILE= xm-hppab.h
# OBSOLETE NAT_FILE= nm-hppab.h
# OBSOLETE NATDEPFILES= hppab-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hpread.o somsolib.o

View File

@ -1,3 +1,3 @@
# Target: HP PA-RISC running bsd
TDEPFILES= hppa-tdep.o
TM_FILE= tm-hppab.h
# OBSOLETE # Target: HP PA-RISC running bsd
# OBSOLETE TDEPFILES= hppa-tdep.o
# OBSOLETE TM_FILE= tm-hppab.h

View File

@ -1,5 +1,5 @@
# Host: Hewlett-Packard PA-RISC machine, running BSD
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppao.h
NATDEPFILES= fork-child.o m3-nat.o hppam3-nat.o somread.o hpread.o somsolib.o
NAT_CLIBS= -lmachid -lnetname -lmach
# OBSOLETE # Host: Hewlett-Packard PA-RISC machine, running BSD
# OBSOLETE XM_FILE= xm-hppab.h
# OBSOLETE NAT_FILE= nm-hppao.h
# OBSOLETE NATDEPFILES= fork-child.o m3-nat.o hppam3-nat.o somread.o hpread.o somsolib.o
# OBSOLETE NAT_CLIBS= -lmachid -lnetname -lmach

View File

@ -1,3 +1,3 @@
# Target: HP PA-RISC running OSF1
TDEPFILES= hppa-tdep.o
TM_FILE= tm-hppao.h
# OBSOLETE # Target: HP PA-RISC running OSF1
# OBSOLETE TDEPFILES= hppa-tdep.o
# OBSOLETE TM_FILE= tm-hppao.h

View File

@ -1,3 +1,3 @@
# Target: PA based debug monitor
TDEPFILES= hppa-tdep.o op50-rom.o w89k-rom.o monitor.o xmodem.o dsrec.o
TM_FILE= tm-pro.h
# OBSOLETE # Target: PA based debug monitor
# OBSOLETE TDEPFILES= hppa-tdep.o op50-rom.o w89k-rom.o monitor.o xmodem.o dsrec.o
# OBSOLETE TM_FILE= tm-pro.h

View File

@ -1,123 +1,123 @@
/* HPPA PA-RISC machine native support for BSD, for GDB.
Copyright 1991, 1992, 1993, 1994, 1995, 2002 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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. */
#include "somsolib.h"
#include "regcache.h"
#define U_REGS_OFFSET 0
#define KERNEL_U_ADDR 0
/* What a coincidence! */
#define REGISTER_U_ADDR(addr, blockend, regno) \
{ addr = (int)(blockend) + REGISTER_BYTE (regno);}
/* 3rd argument to ptrace is supposed to be a caddr_t. */
#define PTRACE_ARG3_TYPE caddr_t
/* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
with five arguments, so programs written for normal ptrace lose. */
#define FIVE_ARG_PTRACE
/* fetch_inferior_registers is in hppab-nat.c. */
#define FETCH_INFERIOR_REGISTERS
/* attach/detach works to some extent under BSD and HPUX. So long
as the process you're attaching to isn't blocked waiting on io,
blocked waiting on a signal, or in a system call things work
fine. (The problems in those cases are related to the fact that
the kernel can't provide complete register information for the
target process... Which really pisses off GDB.) */
#define ATTACH_DETACH
/* The PA-BSD kernel has support for using the data memory break bit
to implement fast watchpoints.
Watchpoints on the PA act much like traditional page protection
schemes, but with some notable differences.
First, a special bit in the page table entry is used to cause
a trap when a specific page is written to. This avoids having
to overload watchpoints on the page protection bits. This makes
it possible for the kernel to easily decide if a trap was caused
by a watchpoint or by the user writing to protected memory and can
signal the user program differently in each case.
Second, the PA has a bit in the processor status word which causes
data memory breakpoints (aka watchpoints) to be disabled for a single
instruction. This bit can be used to avoid the overhead of unprotecting
and reprotecting pages when it becomes necessary to step over a watchpoint.
When the kernel receives a trap indicating a write to a page which
is being watched, the kernel performs a couple of simple actions. First
is sets the magic "disable memory breakpoint" bit in the processor
status word, it then sends a SIGTRAP to the process which caused the
trap.
GDB will take control and catch the signal for the inferior. GDB then
examines the PSW-X bit to determine if the SIGTRAP was caused by a
watchpoint firing. If so GDB single steps the inferior over the
instruction which caused the watchpoint to trigger (note because the
kernel disabled the data memory break bit for one instruction no trap
will be taken!). GDB will then determines the appropriate action to
take. (this may include restarting the inferior if the watchpoint
fired because of a write to an address on the same page as a watchpoint,
but no write to the watched address occured). */
#define TARGET_HAS_HARDWARE_WATCHPOINTS /* Enable the code in procfs.c */
/* The PA can watch any number of locations, there's no need for it to reject
anything (generic routines already check that all intermediates are
in memory). */
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) \
((type) == bp_hardware_watchpoint)
/* When a hardware watchpoint fires off the PC will be left at the
instruction which caused the watchpoint. It will be necessary for
GDB to step over the watchpoint.
On a PA running BSD, it is trivial to identify when it will be
necessary to step over a hardware watchpoint as we can examine
the PSW-X bit. If the bit is on, then we trapped because of a
watchpoint, else we trapped for some other reason. */
#define STOPPED_BY_WATCHPOINT(W) \
((W).kind == TARGET_WAITKIND_STOPPED \
&& (W).value.sig == TARGET_SIGNAL_TRAP \
&& ((int) read_register (IPSW_REGNUM) & 0x00100000))
/* The PA can single step over a watchpoint if the kernel has set the
"X" bit in the processor status word (disable data memory breakpoint
for one instruction).
The kernel will always set this bit before notifying the inferior
that it hit a watchpoint. Thus, the inferior can single step over
the instruction which caused the watchpoint to fire. This avoids
the traditional need to disable the watchpoint, step the inferior,
then enable the watchpoint again. */
#define HAVE_STEPPABLE_WATCHPOINT
/* Use these macros for watchpoint insertion/deletion. */
/* type can be 0: write watch, 1: read watch, 2: access watch (read/write) */
#define target_insert_watchpoint(addr, len, type) hppa_set_watchpoint (addr, len, 1)
#define target_remove_watchpoint(addr, len, type) hppa_set_watchpoint (addr, len, 0)
// OBSOLETE /* HPPA PA-RISC machine native support for BSD, for GDB.
// OBSOLETE Copyright 1991, 1992, 1993, 1994, 1995, 2002 Free Software Foundation, Inc.
// OBSOLETE
// OBSOLETE This file is part of GDB.
// OBSOLETE
// OBSOLETE This program is free software; you can redistribute it and/or modify
// OBSOLETE it under the terms of the GNU General Public License as published by
// OBSOLETE the Free Software Foundation; either version 2 of the License, or
// OBSOLETE (at your option) any later version.
// OBSOLETE
// OBSOLETE This program is distributed in the hope that it will be useful,
// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of
// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// OBSOLETE GNU General Public License for more details.
// OBSOLETE
// OBSOLETE You should have received a copy of the GNU General Public License
// OBSOLETE along with this program; if not, write to the Free Software
// OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330,
// OBSOLETE Boston, MA 02111-1307, USA. */
// OBSOLETE
// OBSOLETE #include "somsolib.h"
// OBSOLETE #include "regcache.h"
// OBSOLETE
// OBSOLETE #define U_REGS_OFFSET 0
// OBSOLETE
// OBSOLETE #define KERNEL_U_ADDR 0
// OBSOLETE
// OBSOLETE /* What a coincidence! */
// OBSOLETE #define REGISTER_U_ADDR(addr, blockend, regno) \
// OBSOLETE { addr = (int)(blockend) + REGISTER_BYTE (regno);}
// OBSOLETE
// OBSOLETE /* 3rd argument to ptrace is supposed to be a caddr_t. */
// OBSOLETE
// OBSOLETE #define PTRACE_ARG3_TYPE caddr_t
// OBSOLETE
// OBSOLETE /* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
// OBSOLETE with five arguments, so programs written for normal ptrace lose. */
// OBSOLETE #define FIVE_ARG_PTRACE
// OBSOLETE
// OBSOLETE
// OBSOLETE /* fetch_inferior_registers is in hppab-nat.c. */
// OBSOLETE #define FETCH_INFERIOR_REGISTERS
// OBSOLETE
// OBSOLETE /* attach/detach works to some extent under BSD and HPUX. So long
// OBSOLETE as the process you're attaching to isn't blocked waiting on io,
// OBSOLETE blocked waiting on a signal, or in a system call things work
// OBSOLETE fine. (The problems in those cases are related to the fact that
// OBSOLETE the kernel can't provide complete register information for the
// OBSOLETE target process... Which really pisses off GDB.) */
// OBSOLETE
// OBSOLETE #define ATTACH_DETACH
// OBSOLETE
// OBSOLETE /* The PA-BSD kernel has support for using the data memory break bit
// OBSOLETE to implement fast watchpoints.
// OBSOLETE
// OBSOLETE Watchpoints on the PA act much like traditional page protection
// OBSOLETE schemes, but with some notable differences.
// OBSOLETE
// OBSOLETE First, a special bit in the page table entry is used to cause
// OBSOLETE a trap when a specific page is written to. This avoids having
// OBSOLETE to overload watchpoints on the page protection bits. This makes
// OBSOLETE it possible for the kernel to easily decide if a trap was caused
// OBSOLETE by a watchpoint or by the user writing to protected memory and can
// OBSOLETE signal the user program differently in each case.
// OBSOLETE
// OBSOLETE Second, the PA has a bit in the processor status word which causes
// OBSOLETE data memory breakpoints (aka watchpoints) to be disabled for a single
// OBSOLETE instruction. This bit can be used to avoid the overhead of unprotecting
// OBSOLETE and reprotecting pages when it becomes necessary to step over a watchpoint.
// OBSOLETE
// OBSOLETE
// OBSOLETE When the kernel receives a trap indicating a write to a page which
// OBSOLETE is being watched, the kernel performs a couple of simple actions. First
// OBSOLETE is sets the magic "disable memory breakpoint" bit in the processor
// OBSOLETE status word, it then sends a SIGTRAP to the process which caused the
// OBSOLETE trap.
// OBSOLETE
// OBSOLETE GDB will take control and catch the signal for the inferior. GDB then
// OBSOLETE examines the PSW-X bit to determine if the SIGTRAP was caused by a
// OBSOLETE watchpoint firing. If so GDB single steps the inferior over the
// OBSOLETE instruction which caused the watchpoint to trigger (note because the
// OBSOLETE kernel disabled the data memory break bit for one instruction no trap
// OBSOLETE will be taken!). GDB will then determines the appropriate action to
// OBSOLETE take. (this may include restarting the inferior if the watchpoint
// OBSOLETE fired because of a write to an address on the same page as a watchpoint,
// OBSOLETE but no write to the watched address occured). */
// OBSOLETE
// OBSOLETE #define TARGET_HAS_HARDWARE_WATCHPOINTS /* Enable the code in procfs.c */
// OBSOLETE
// OBSOLETE /* The PA can watch any number of locations, there's no need for it to reject
// OBSOLETE anything (generic routines already check that all intermediates are
// OBSOLETE in memory). */
// OBSOLETE #define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) \
// OBSOLETE ((type) == bp_hardware_watchpoint)
// OBSOLETE
// OBSOLETE /* When a hardware watchpoint fires off the PC will be left at the
// OBSOLETE instruction which caused the watchpoint. It will be necessary for
// OBSOLETE GDB to step over the watchpoint.
// OBSOLETE
// OBSOLETE On a PA running BSD, it is trivial to identify when it will be
// OBSOLETE necessary to step over a hardware watchpoint as we can examine
// OBSOLETE the PSW-X bit. If the bit is on, then we trapped because of a
// OBSOLETE watchpoint, else we trapped for some other reason. */
// OBSOLETE #define STOPPED_BY_WATCHPOINT(W) \
// OBSOLETE ((W).kind == TARGET_WAITKIND_STOPPED \
// OBSOLETE && (W).value.sig == TARGET_SIGNAL_TRAP \
// OBSOLETE && ((int) read_register (IPSW_REGNUM) & 0x00100000))
// OBSOLETE
// OBSOLETE /* The PA can single step over a watchpoint if the kernel has set the
// OBSOLETE "X" bit in the processor status word (disable data memory breakpoint
// OBSOLETE for one instruction).
// OBSOLETE
// OBSOLETE The kernel will always set this bit before notifying the inferior
// OBSOLETE that it hit a watchpoint. Thus, the inferior can single step over
// OBSOLETE the instruction which caused the watchpoint to fire. This avoids
// OBSOLETE the traditional need to disable the watchpoint, step the inferior,
// OBSOLETE then enable the watchpoint again. */
// OBSOLETE #define HAVE_STEPPABLE_WATCHPOINT
// OBSOLETE
// OBSOLETE /* Use these macros for watchpoint insertion/deletion. */
// OBSOLETE /* type can be 0: write watch, 1: read watch, 2: access watch (read/write) */
// OBSOLETE #define target_insert_watchpoint(addr, len, type) hppa_set_watchpoint (addr, len, 1)
// OBSOLETE #define target_remove_watchpoint(addr, len, type) hppa_set_watchpoint (addr, len, 0)

View File

@ -1,43 +1,43 @@
/* HPPA PA-RISC machine native support for Lites, for GDB.
Copyright 1995, 2002 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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. */
#include "config/nm-m3.h"
#define U_REGS_OFFSET 0
#define KERNEL_U_ADDR 0
/* What a coincidence! */
#define REGISTER_U_ADDR(addr, blockend, regno) \
{ addr = (int)(blockend) + REGISTER_BYTE (regno);}
/* fetch_inferior_registers is in hppab-nat.c. */
#define FETCH_INFERIOR_REGISTERS
/* attach/detach works to some extent under BSD and HPUX. So long
as the process you're attaching to isn't blocked waiting on io,
blocked waiting on a signal, or in a system call things work
fine. (The problems in those cases are related to the fact that
the kernel can't provide complete register information for the
target process... Which really pisses off GDB.) */
#define ATTACH_DETACH
#define EMULATOR_BASE 0x90100000
#define EMULATOR_END 0x90200000
// OBSOLETE /* HPPA PA-RISC machine native support for Lites, for GDB.
// OBSOLETE Copyright 1995, 2002 Free Software Foundation, Inc.
// OBSOLETE
// OBSOLETE This file is part of GDB.
// OBSOLETE
// OBSOLETE This program is free software; you can redistribute it and/or modify
// OBSOLETE it under the terms of the GNU General Public License as published by
// OBSOLETE the Free Software Foundation; either version 2 of the License, or
// OBSOLETE (at your option) any later version.
// OBSOLETE
// OBSOLETE This program is distributed in the hope that it will be useful,
// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of
// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// OBSOLETE GNU General Public License for more details.
// OBSOLETE
// OBSOLETE You should have received a copy of the GNU General Public License
// OBSOLETE along with this program; if not, write to the Free Software
// OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330,
// OBSOLETE Boston, MA 02111-1307, USA. */
// OBSOLETE
// OBSOLETE #include "config/nm-m3.h"
// OBSOLETE #define U_REGS_OFFSET 0
// OBSOLETE
// OBSOLETE #define KERNEL_U_ADDR 0
// OBSOLETE
// OBSOLETE /* What a coincidence! */
// OBSOLETE #define REGISTER_U_ADDR(addr, blockend, regno) \
// OBSOLETE { addr = (int)(blockend) + REGISTER_BYTE (regno);}
// OBSOLETE
// OBSOLETE /* fetch_inferior_registers is in hppab-nat.c. */
// OBSOLETE #define FETCH_INFERIOR_REGISTERS
// OBSOLETE
// OBSOLETE /* attach/detach works to some extent under BSD and HPUX. So long
// OBSOLETE as the process you're attaching to isn't blocked waiting on io,
// OBSOLETE blocked waiting on a signal, or in a system call things work
// OBSOLETE fine. (The problems in those cases are related to the fact that
// OBSOLETE the kernel can't provide complete register information for the
// OBSOLETE target process... Which really pisses off GDB.) */
// OBSOLETE
// OBSOLETE #define ATTACH_DETACH
// OBSOLETE
// OBSOLETE #define EMULATOR_BASE 0x90100000
// OBSOLETE #define EMULATOR_END 0x90200000

View File

@ -1,47 +1,47 @@
/* Parameters for execution on an HP PA-RISC machine running BSD, for GDB.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu). */
/* For BSD:
The signal context structure pointer is always saved at the base
of the frame + 0x4.
We get the PC & SP directly from the sigcontext structure itself.
For other registers we have to dive in a little deeper:
The hardware save state pointer is at offset 0x10 within the
signal context structure.
Within the hardware save state, registers are found in the same order
as the register numbers in GDB. */
#define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
{ \
*(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
*(TMP) = read_memory_integer (*(TMP) + 0x18, 4); \
}
#define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
{ \
*(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
*(TMP) = read_memory_integer (*(TMP) + 0x8, 4); \
}
#define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
{ \
int i; \
CORE_ADDR TMP; \
TMP = read_memory_integer ((FRAME)->frame + 0x4, 4); \
TMP = read_memory_integer (TMP + 0x10, 4); \
for (i = 0; i < NUM_REGS; i++) \
{ \
if (i == SP_REGNUM) \
(FSR)->regs[SP_REGNUM] = read_memory_integer (TMP + SP_REGNUM * 4, 4); \
else \
(FSR)->regs[i] = TMP + i * 4; \
} \
}
/* It's mostly just the common stuff. */
#include "pa/tm-hppa.h"
// OBSOLETE /* Parameters for execution on an HP PA-RISC machine running BSD, for GDB.
// OBSOLETE Contributed by the Center for Software Science at the
// OBSOLETE University of Utah (pa-gdb-bugs@cs.utah.edu). */
// OBSOLETE
// OBSOLETE /* For BSD:
// OBSOLETE
// OBSOLETE The signal context structure pointer is always saved at the base
// OBSOLETE of the frame + 0x4.
// OBSOLETE
// OBSOLETE We get the PC & SP directly from the sigcontext structure itself.
// OBSOLETE For other registers we have to dive in a little deeper:
// OBSOLETE
// OBSOLETE The hardware save state pointer is at offset 0x10 within the
// OBSOLETE signal context structure.
// OBSOLETE
// OBSOLETE Within the hardware save state, registers are found in the same order
// OBSOLETE as the register numbers in GDB. */
// OBSOLETE
// OBSOLETE #define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
// OBSOLETE { \
// OBSOLETE *(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE *(TMP) = read_memory_integer (*(TMP) + 0x18, 4); \
// OBSOLETE }
// OBSOLETE
// OBSOLETE #define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
// OBSOLETE { \
// OBSOLETE *(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE *(TMP) = read_memory_integer (*(TMP) + 0x8, 4); \
// OBSOLETE }
// OBSOLETE
// OBSOLETE #define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
// OBSOLETE { \
// OBSOLETE int i; \
// OBSOLETE CORE_ADDR TMP; \
// OBSOLETE TMP = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE TMP = read_memory_integer (TMP + 0x10, 4); \
// OBSOLETE for (i = 0; i < NUM_REGS; i++) \
// OBSOLETE { \
// OBSOLETE if (i == SP_REGNUM) \
// OBSOLETE (FSR)->regs[SP_REGNUM] = read_memory_integer (TMP + SP_REGNUM * 4, 4); \
// OBSOLETE else \
// OBSOLETE (FSR)->regs[i] = TMP + i * 4; \
// OBSOLETE } \
// OBSOLETE }
// OBSOLETE
// OBSOLETE /* It's mostly just the common stuff. */
// OBSOLETE #include "pa/tm-hppa.h"

View File

@ -1,98 +1,98 @@
/* Parameters for execution on an HP PA-RISC machine running OSF1, for GDB.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu). */
#include "regcache.h"
/* Define offsets to access CPROC stack when it does not have
* a kernel thread.
*/
#define MACHINE_CPROC_SP_OFFSET 20
#define MACHINE_CPROC_PC_OFFSET 16
#define MACHINE_CPROC_FP_OFFSET 12
/*
* Software defined PSW masks.
*/
#define PSW_SS 0x10000000 /* Kernel managed single step */
/* Thread flavors used in re-setting the T bit.
* @@ this is also bad for cross debugging.
*/
#define TRACE_FLAVOR HP800_THREAD_STATE
#define TRACE_FLAVOR_SIZE HP800_THREAD_STATE_COUNT
#define TRACE_SET(x,state) \
((struct hp800_thread_state *)state)->cr22 |= PSW_SS
#define TRACE_CLEAR(x,state) \
((((struct hp800_thread_state *)state)->cr22 &= ~PSW_SS), 1)
/* For OSF1 (Should be close if not identical to BSD, but I haven't
tested it yet):
The signal context structure pointer is always saved at the base
of the frame + 0x4.
We get the PC & SP directly from the sigcontext structure itself.
For other registers we have to dive in a little deeper:
The hardware save state pointer is at offset 0x10 within the
signal context structure.
Within the hardware save state, registers are found in the same order
as the register numbers in GDB. */
#define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
{ \
*(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
*(TMP) = read_memory_integer (*(TMP) + 0x18, 4); \
}
#define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
{ \
*(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
*(TMP) = read_memory_integer (*(TMP) + 0x8, 4); \
}
#define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
{ \
int i; \
CORE_ADDR TMP; \
TMP = read_memory_integer ((FRAME)->frame + 0x4, 4); \
TMP = read_memory_integer (TMP + 0x10, 4); \
for (i = 0; i < NUM_REGS; i++) \
{ \
if (i == SP_REGNUM) \
(FSR)->regs[SP_REGNUM] = read_memory_integer (TMP + SP_REGNUM * 4, 4); \
else \
(FSR)->regs[i] = TMP + i * 4; \
} \
}
/* OSF1 does not need the pc space queue restored. */
#define NO_PC_SPACE_QUEUE_RESTORE
/* The mach kernel uses the recovery counter to implement single
stepping. While this greatly simplifies the kernel support
necessary for single stepping, it unfortunately does the wrong
thing in the presense of a nullified instruction (gives control
back two insns after the nullifed insn). This is an artifact
of the HP architecture (recovery counter doesn't tick for
nullified insns).
Do our best to avoid losing in such situations. */
#define INSTRUCTION_NULLIFIED \
(({ \
int ipsw = (int)read_register(IPSW_REGNUM); \
if (ipsw & PSW_N) \
{ \
int pcoqt = (int)read_register(PCOQ_TAIL_REGNUM); \
write_register(PCOQ_HEAD_REGNUM, pcoqt); \
write_register(PCOQ_TAIL_REGNUM, pcoqt + 0x4); \
write_register(IPSW_REGNUM, ipsw & ~(PSW_N | PSW_B | PSW_X)); \
stop_pc = pcoqt; \
} \
}), 0)
/* It's mostly just the common stuff. */
#include "pa/tm-hppa.h"
// OBSOLETE /* Parameters for execution on an HP PA-RISC machine running OSF1, for GDB.
// OBSOLETE Contributed by the Center for Software Science at the
// OBSOLETE University of Utah (pa-gdb-bugs@cs.utah.edu). */
// OBSOLETE
// OBSOLETE #include "regcache.h"
// OBSOLETE
// OBSOLETE /* Define offsets to access CPROC stack when it does not have
// OBSOLETE * a kernel thread.
// OBSOLETE */
// OBSOLETE #define MACHINE_CPROC_SP_OFFSET 20
// OBSOLETE #define MACHINE_CPROC_PC_OFFSET 16
// OBSOLETE #define MACHINE_CPROC_FP_OFFSET 12
// OBSOLETE
// OBSOLETE /*
// OBSOLETE * Software defined PSW masks.
// OBSOLETE */
// OBSOLETE #define PSW_SS 0x10000000 /* Kernel managed single step */
// OBSOLETE
// OBSOLETE /* Thread flavors used in re-setting the T bit.
// OBSOLETE * @@ this is also bad for cross debugging.
// OBSOLETE */
// OBSOLETE #define TRACE_FLAVOR HP800_THREAD_STATE
// OBSOLETE #define TRACE_FLAVOR_SIZE HP800_THREAD_STATE_COUNT
// OBSOLETE #define TRACE_SET(x,state) \
// OBSOLETE ((struct hp800_thread_state *)state)->cr22 |= PSW_SS
// OBSOLETE #define TRACE_CLEAR(x,state) \
// OBSOLETE ((((struct hp800_thread_state *)state)->cr22 &= ~PSW_SS), 1)
// OBSOLETE
// OBSOLETE /* For OSF1 (Should be close if not identical to BSD, but I haven't
// OBSOLETE tested it yet):
// OBSOLETE
// OBSOLETE The signal context structure pointer is always saved at the base
// OBSOLETE of the frame + 0x4.
// OBSOLETE
// OBSOLETE We get the PC & SP directly from the sigcontext structure itself.
// OBSOLETE For other registers we have to dive in a little deeper:
// OBSOLETE
// OBSOLETE The hardware save state pointer is at offset 0x10 within the
// OBSOLETE signal context structure.
// OBSOLETE
// OBSOLETE Within the hardware save state, registers are found in the same order
// OBSOLETE as the register numbers in GDB. */
// OBSOLETE
// OBSOLETE #define FRAME_SAVED_PC_IN_SIGTRAMP(FRAME, TMP) \
// OBSOLETE { \
// OBSOLETE *(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE *(TMP) = read_memory_integer (*(TMP) + 0x18, 4); \
// OBSOLETE }
// OBSOLETE
// OBSOLETE #define FRAME_BASE_BEFORE_SIGTRAMP(FRAME, TMP) \
// OBSOLETE { \
// OBSOLETE *(TMP) = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE *(TMP) = read_memory_integer (*(TMP) + 0x8, 4); \
// OBSOLETE }
// OBSOLETE
// OBSOLETE #define FRAME_FIND_SAVED_REGS_IN_SIGTRAMP(FRAME, FSR) \
// OBSOLETE { \
// OBSOLETE int i; \
// OBSOLETE CORE_ADDR TMP; \
// OBSOLETE TMP = read_memory_integer ((FRAME)->frame + 0x4, 4); \
// OBSOLETE TMP = read_memory_integer (TMP + 0x10, 4); \
// OBSOLETE for (i = 0; i < NUM_REGS; i++) \
// OBSOLETE { \
// OBSOLETE if (i == SP_REGNUM) \
// OBSOLETE (FSR)->regs[SP_REGNUM] = read_memory_integer (TMP + SP_REGNUM * 4, 4); \
// OBSOLETE else \
// OBSOLETE (FSR)->regs[i] = TMP + i * 4; \
// OBSOLETE } \
// OBSOLETE }
// OBSOLETE
// OBSOLETE /* OSF1 does not need the pc space queue restored. */
// OBSOLETE #define NO_PC_SPACE_QUEUE_RESTORE
// OBSOLETE
// OBSOLETE /* The mach kernel uses the recovery counter to implement single
// OBSOLETE stepping. While this greatly simplifies the kernel support
// OBSOLETE necessary for single stepping, it unfortunately does the wrong
// OBSOLETE thing in the presense of a nullified instruction (gives control
// OBSOLETE back two insns after the nullifed insn). This is an artifact
// OBSOLETE of the HP architecture (recovery counter doesn't tick for
// OBSOLETE nullified insns).
// OBSOLETE
// OBSOLETE Do our best to avoid losing in such situations. */
// OBSOLETE #define INSTRUCTION_NULLIFIED \
// OBSOLETE (({ \
// OBSOLETE int ipsw = (int)read_register(IPSW_REGNUM); \
// OBSOLETE if (ipsw & PSW_N) \
// OBSOLETE { \
// OBSOLETE int pcoqt = (int)read_register(PCOQ_TAIL_REGNUM); \
// OBSOLETE write_register(PCOQ_HEAD_REGNUM, pcoqt); \
// OBSOLETE write_register(PCOQ_TAIL_REGNUM, pcoqt + 0x4); \
// OBSOLETE write_register(IPSW_REGNUM, ipsw & ~(PSW_N | PSW_B | PSW_X)); \
// OBSOLETE stop_pc = pcoqt; \
// OBSOLETE } \
// OBSOLETE }), 0)
// OBSOLETE
// OBSOLETE /* It's mostly just the common stuff. */
// OBSOLETE
// OBSOLETE #include "pa/tm-hppa.h"

View File

@ -1,14 +1,14 @@
/* Parameters for execution on an HP PA-RISC level 0 embedded system.
This is based on tm-hppab.h.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu). */
#define PA_LEVEL_0 /* Disables touching space regs and fp */
/* All the PRO targets use software floating point at the moment. */
#define SOFT_FLOAT 1
/* It's mostly just the common stuff. */
#include "pa/tm-hppa.h"
#define GDB_TARGET_IS_PA_ELF
// OBSOLETE /* Parameters for execution on an HP PA-RISC level 0 embedded system.
// OBSOLETE This is based on tm-hppab.h.
// OBSOLETE Contributed by the Center for Software Science at the
// OBSOLETE University of Utah (pa-gdb-bugs@cs.utah.edu). */
// OBSOLETE
// OBSOLETE #define PA_LEVEL_0 /* Disables touching space regs and fp */
// OBSOLETE
// OBSOLETE /* All the PRO targets use software floating point at the moment. */
// OBSOLETE #define SOFT_FLOAT 1
// OBSOLETE
// OBSOLETE /* It's mostly just the common stuff. */
// OBSOLETE #include "pa/tm-hppa.h"
// OBSOLETE
// OBSOLETE #define GDB_TARGET_IS_PA_ELF

View File

@ -1,24 +1,24 @@
/* Parameters for hosting on an HPPA PA-RISC machine, running BSD, for GDB.
Copyright 1991, 1992, 1993, 1996, 1998 Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu).
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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. */
#include "pa/xm-pa.h"
// OBSOLETE /* Parameters for hosting on an HPPA PA-RISC machine, running BSD, for GDB.
// OBSOLETE Copyright 1991, 1992, 1993, 1996, 1998 Free Software Foundation, Inc.
// OBSOLETE
// OBSOLETE Contributed by the Center for Software Science at the
// OBSOLETE University of Utah (pa-gdb-bugs@cs.utah.edu).
// OBSOLETE
// OBSOLETE This file is part of GDB.
// OBSOLETE
// OBSOLETE This program is free software; you can redistribute it and/or modify
// OBSOLETE it under the terms of the GNU General Public License as published by
// OBSOLETE the Free Software Foundation; either version 2 of the License, or
// OBSOLETE (at your option) any later version.
// OBSOLETE
// OBSOLETE This program is distributed in the hope that it will be useful,
// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of
// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// OBSOLETE GNU General Public License for more details.
// OBSOLETE
// OBSOLETE You should have received a copy of the GNU General Public License
// OBSOLETE along with this program; if not, write to the Free Software
// OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330,
// OBSOLETE Boston, MA 02111-1307, USA. */
// OBSOLETE
// OBSOLETE #include "pa/xm-pa.h"

View File

@ -22,8 +22,6 @@
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "pa/xm-pa.h"
#define USG
#define HAVE_TERMIOS

View File

@ -1,5 +1,5 @@
/* Definitions for all PA machines. */
/* This was created for "makeva", which is obsolete. This file can
probably go away (unless someone can think of some other host thing
which is common to various pa machines). */
// OBSOLETE /* Definitions for all PA machines. */
// OBSOLETE
// OBSOLETE /* This was created for "makeva", which is obsolete. This file can
// OBSOLETE probably go away (unless someone can think of some other host thing
// OBSOLETE which is common to various pa machines). */

View File

@ -40,13 +40,13 @@ arm*-*-linux*) gdb_host=linux ;;
arm*-*-netbsdelf*) gdb_host=nbsdelf ;;
arm*-*-netbsd*) gdb_host=nbsdaout ;;
hppa*-*-bsd*) gdb_host=hppabsd ;;
# OBSOLETE hppa*-*-bsd*) gdb_host=hppabsd ;;
hppa*-*-hiux*) gdb_host=hppahpux ;;
hppa*-*-hpux10.20) gdb_host=hpux1020 ;;
hppa*64*-*-hpux11*) gdb_host=hpux11w ;;
hppa*-*-hpux11*) gdb_host=hpux11 ;;
hppa*-*-hpux*) gdb_host=hppahpux ;;
hppa*-*-osf*) gdb_host=hppaosf ;;
# OBSOLETE hppa*-*-osf*) gdb_host=hppaosf ;;
i[3456]86-ncr-*) gdb_host=ncr3000 ;;
i[3456]86-sequent-bsd*) gdb_host=symmetry ;; # dynix

View File

@ -73,12 +73,12 @@ h8300-*-*) gdb_target=h8300 ;;
frv-*-*) gdb_target=frv ;;
hppa*-*-bsd*) gdb_target=hppabsd ;;
hppa*-*-pro*) gdb_target=hppapro ;;
# OBSOLETE hppa*-*-bsd*) gdb_target=hppabsd ;;
# OBSOLETE hppa*-*-pro*) gdb_target=hppapro ;;
hppa*64*-*-hpux11*) gdb_target=hppa64 ;;
hppa*-*-hpux*) gdb_target=hppahpux ;;
hppa*-*-hiux*) gdb_target=hppahpux ;;
hppa*-*-osf*) gdb_target=hppaosf ;;
# OBSOLETE hppa*-*-osf*) gdb_target=hppaosf ;;
hppa*-*-*) gdb_target=hppa ;;
i[3456]86-sequent-bsd*) gdb_target=symmetry ;;