2004-05-06 Randolph Chung <tausq@debian.org>
* config/pa/tm-hppa.h (RO_REGNUM, FLAGS_REGNUM, RP_REGNUM) (HPPA_FP_REGNUM, HPPA_SP_REGNUM, SAR_REGNUM, IPSW_REGNUM) (PCOQ_HEAD_REGNUM, PCSQ_HEAD_REGNUM, PCOQ_TAIL_REGNUM, PCSQ_TAIL_REGNUM) (EIEM_REGNUM, IIR_REGNUM, ISR_REGNUM, IOR_REGNUM, SR4_REGNUM) (RCR_REGNUM, PID0_REGNUM, PID1_REGNUM, PID2_REGNUM, PID3_REGNUM) (CCR_REGNUM, TR0_REGNUM, CR27_REGNUM, HPPA_FP0_REGNUM, FP4_REGNUM) (ARG0_REGNUM, ARG1_REGNUM, ARG2_REGNUM, ARG3_REGNUM): Move *_REGNUM definitions ... * hppa-tdep.h: ... to here, with HPPA_ prefix. * Makefile.in (hppah-nat.o): Add $(hppa_tdep_h) * hppa-hpux-tdep.c (hppa32_hpux_frame_find_saved_regs_in_sig) (hppa64_hpux_frame_find_saved_regs_in_sig) (child_get_current_exception_event): Add HPPA_ prefix to *_REGNUM usage. * hppa-linux-nat.c (GR_REGNUM, TR_REGNUM, greg_map): Likewise. * hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum) (hppa_linux_target_write_pc, hppa_linux_sigtramp_frame_unwind_cache) (hppa_linux_sigtramp_frame_prev_register): Likewise. * hppa-tdep.c (hppa32_return_value, hppa64_return_value) (hppa32_push_dummy_call, hppa64_push_dummy_call, hppa64_frame_align) (hppa_target_read_pc, hppa_target_write_pc, hppa_frame_cache) (hppa_frame_prev_register, hppa_stub_frame_unwind_cache) (hppa_stub_frame_prev_register, hppa_unwind_dummy_id) (hppa_skip_permanent_breakpoint, hppa_instruction_nullified) (hppa32_register_type, hppa_cannot_store_register) (hppa_fetch_pointer_argument, hppa_pseudo_register_read): Likewise. * hppah-nat.c (store_inferior_registers, fetch_register): Likewise. * hpread.c (hpread_process_one_debug_symbol): Likewise. * pa64solib.c (pa64_solib_have_load_event) (pa64_solib_have_unload_event, pa64_solib_loaded_library_pathname) (pa64_solib_unloaded_library_pathname): Likewise. * somsolib.c (som_solib_have_load_event, som_solib_have_unload_event) (som_solib_library_pathname): Likewise.
This commit is contained in:
parent
eb61d2d606
commit
34f75cc19f
12 changed files with 170 additions and 129 deletions
|
@ -1,3 +1,38 @@
|
|||
2004-05-06 Randolph Chung <tausq@debian.org>
|
||||
|
||||
* config/pa/tm-hppa.h (RO_REGNUM, FLAGS_REGNUM, RP_REGNUM)
|
||||
(HPPA_FP_REGNUM, HPPA_SP_REGNUM, SAR_REGNUM, IPSW_REGNUM)
|
||||
(PCOQ_HEAD_REGNUM, PCSQ_HEAD_REGNUM, PCOQ_TAIL_REGNUM, PCSQ_TAIL_REGNUM)
|
||||
(EIEM_REGNUM, IIR_REGNUM, ISR_REGNUM, IOR_REGNUM, SR4_REGNUM)
|
||||
(RCR_REGNUM, PID0_REGNUM, PID1_REGNUM, PID2_REGNUM, PID3_REGNUM)
|
||||
(CCR_REGNUM, TR0_REGNUM, CR27_REGNUM, HPPA_FP0_REGNUM, FP4_REGNUM)
|
||||
(ARG0_REGNUM, ARG1_REGNUM, ARG2_REGNUM, ARG3_REGNUM): Move *_REGNUM
|
||||
definitions ...
|
||||
* hppa-tdep.h: ... to here, with HPPA_ prefix.
|
||||
* Makefile.in (hppah-nat.o): Add $(hppa_tdep_h)
|
||||
* hppa-hpux-tdep.c (hppa32_hpux_frame_find_saved_regs_in_sig)
|
||||
(hppa64_hpux_frame_find_saved_regs_in_sig)
|
||||
(child_get_current_exception_event): Add HPPA_ prefix to *_REGNUM usage.
|
||||
* hppa-linux-nat.c (GR_REGNUM, TR_REGNUM, greg_map): Likewise.
|
||||
* hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum)
|
||||
(hppa_linux_target_write_pc, hppa_linux_sigtramp_frame_unwind_cache)
|
||||
(hppa_linux_sigtramp_frame_prev_register): Likewise.
|
||||
* hppa-tdep.c (hppa32_return_value, hppa64_return_value)
|
||||
(hppa32_push_dummy_call, hppa64_push_dummy_call, hppa64_frame_align)
|
||||
(hppa_target_read_pc, hppa_target_write_pc, hppa_frame_cache)
|
||||
(hppa_frame_prev_register, hppa_stub_frame_unwind_cache)
|
||||
(hppa_stub_frame_prev_register, hppa_unwind_dummy_id)
|
||||
(hppa_skip_permanent_breakpoint, hppa_instruction_nullified)
|
||||
(hppa32_register_type, hppa_cannot_store_register)
|
||||
(hppa_fetch_pointer_argument, hppa_pseudo_register_read): Likewise.
|
||||
* hppah-nat.c (store_inferior_registers, fetch_register): Likewise.
|
||||
* hpread.c (hpread_process_one_debug_symbol): Likewise.
|
||||
* pa64solib.c (pa64_solib_have_load_event)
|
||||
(pa64_solib_have_unload_event, pa64_solib_loaded_library_pathname)
|
||||
(pa64_solib_unloaded_library_pathname): Likewise.
|
||||
* somsolib.c (som_solib_have_load_event, som_solib_have_unload_event)
|
||||
(som_solib_library_pathname): Likewise.
|
||||
|
||||
2004-05-05 Jim Ingham <jingham@apple.com>
|
||||
|
||||
* breakpoint.c (create_breakpoints): Copy the ignore count and
|
||||
|
|
|
@ -1826,7 +1826,8 @@ h8300-tdep.o: h8300-tdep.c $(defs_h) $(value_h) $(inferior_h) $(symfile_h) \
|
|||
hpacc-abi.o: hpacc-abi.c $(defs_h) $(value_h) $(gdb_regex_h) $(gdb_string_h) \
|
||||
$(gdbtypes_h) $(gdbcore_h) $(cp_abi_h)
|
||||
hppah-nat.o: hppah-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \
|
||||
$(gdb_wait_h) $(regcache_h) $(gdb_string_h) $(infttrace_h)
|
||||
$(gdb_wait_h) $(regcache_h) $(gdb_string_h) $(infttrace_h) \
|
||||
$(hppa_tdep_h)
|
||||
hppa-hpux-tdep.o: hppa-hpux-tdep.c $(defs_h) $(arch_utils_h) $(gdbcore_h) \
|
||||
$(osabi_h) $(gdb_string_h) $(frame_h) $(hppa_tdep_h)
|
||||
hppa-tdep.o: hppa-tdep.c $(defs_h) $(frame_h) $(bfd_h) $(inferior_h) \
|
||||
|
|
|
@ -31,46 +31,6 @@
|
|||
extern int hppa_pc_requires_run_before_use (CORE_ADDR pc);
|
||||
#define PC_REQUIRES_RUN_BEFORE_USE(pc) hppa_pc_requires_run_before_use (pc)
|
||||
|
||||
/* Register numbers of various important registers.
|
||||
Note that some of these values are "real" register numbers,
|
||||
and correspond to the general registers of the machine,
|
||||
and some are "phony" register numbers which are too large
|
||||
to be actual register numbers as far as the user is concerned
|
||||
but do serve to get the desired values when passed to read_register. */
|
||||
|
||||
#define R0_REGNUM 0 /* Doesn't actually exist, used as base for
|
||||
other r registers. */
|
||||
#define FLAGS_REGNUM 0 /* Various status flags */
|
||||
#define RP_REGNUM 2 /* return pointer */
|
||||
#define HPPA_FP_REGNUM 3 /* The ABI's frame pointer, when used */
|
||||
#define HPPA_SP_REGNUM 30 /* Stack pointer. */
|
||||
#define SAR_REGNUM 32 /* Shift Amount Register */
|
||||
#define IPSW_REGNUM 41 /* Interrupt Processor Status Word */
|
||||
#define PCOQ_HEAD_REGNUM 33 /* instruction offset queue head */
|
||||
#define PCSQ_HEAD_REGNUM 34 /* instruction space queue head */
|
||||
#define PCOQ_TAIL_REGNUM 35 /* instruction offset queue tail */
|
||||
#define PCSQ_TAIL_REGNUM 36 /* instruction space queue tail */
|
||||
#define EIEM_REGNUM 37 /* External Interrupt Enable Mask */
|
||||
#define IIR_REGNUM 38 /* Interrupt Instruction Register */
|
||||
#define ISR_REGNUM 39 /* Interrupt Space Register */
|
||||
#define IOR_REGNUM 40 /* Interrupt Offset Register */
|
||||
#define SR4_REGNUM 43 /* space register 4 */
|
||||
#define RCR_REGNUM 51 /* Recover Counter (also known as cr0) */
|
||||
#define PID0_REGNUM 52 /* Protection ID */
|
||||
#define PID1_REGNUM 53 /* Protection ID */
|
||||
#define PID2_REGNUM 55 /* Protection ID */
|
||||
#define PID3_REGNUM 56 /* Protection ID */
|
||||
#define CCR_REGNUM 54 /* Coprocessor Configuration Register */
|
||||
#define TR0_REGNUM 57 /* Temporary Registers (cr24 -> cr31) */
|
||||
#define CR27_REGNUM 60 /* Base register for thread-local storage, cr27 */
|
||||
#define HPPA_FP0_REGNUM 64 /* First floating-point. */
|
||||
#define FP4_REGNUM 72
|
||||
|
||||
#define ARG0_REGNUM 26 /* The first argument of a callee. */
|
||||
#define ARG1_REGNUM 25 /* The second argument of a callee. */
|
||||
#define ARG2_REGNUM 24 /* The third argument of a callee. */
|
||||
#define ARG3_REGNUM 23 /* The fourth argument of a callee. */
|
||||
|
||||
/* PA specific macro to see if the current instruction is nullified. */
|
||||
#ifndef INSTRUCTION_NULLIFIED
|
||||
extern int hppa_instruction_nullified (void);
|
||||
|
|
|
@ -110,8 +110,8 @@ hppa32_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
|
|||
|
||||
for (i = 0; i < NUM_REGS; i++)
|
||||
{
|
||||
if (i == SP_REGNUM)
|
||||
fsr[SP_REGNUM] = read_memory_integer (tmp + SP_REGNUM * 4, 4);
|
||||
if (i == HPPA_SP_REGNUM)
|
||||
fsr[HPPA_SP_REGNUM] = read_memory_integer (tmp + HPPA_SP_REGNUM * 4, 4);
|
||||
else
|
||||
fsr[i] = tmp + i * 4;
|
||||
}
|
||||
|
@ -155,10 +155,10 @@ hppa64_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi,
|
|||
|
||||
for (i = 0; i < NUM_REGS; i++)
|
||||
{
|
||||
if (i == SP_REGNUM)
|
||||
fsr[SP_REGNUM] = read_memory_integer (tmp1 + SP_REGNUM * 8, 8);
|
||||
else if (i >= FP0_REGNUM)
|
||||
fsr[i] = tmp2 + (i - FP0_REGNUM) * 8;
|
||||
if (i == HPPA_SP_REGNUM)
|
||||
fsr[HPPA_SP_REGNUM] = read_memory_integer (tmp1 + HPPA_SP_REGNUM * 8, 8);
|
||||
else if (i >= HPPA_FP0_REGNUM)
|
||||
fsr[i] = tmp2 + (i - HPPA_FP0_REGNUM) * 8;
|
||||
else
|
||||
fsr[i] = tmp1 + i * 8;
|
||||
}
|
||||
|
@ -1190,8 +1190,8 @@ child_get_current_exception_event (void)
|
|||
1. event kind catch or throw
|
||||
2. the target address if known
|
||||
3. a flag -- not sure what this is. pai/1997-07-17 */
|
||||
event_kind = read_register (ARG0_REGNUM);
|
||||
catch_addr = read_register (ARG1_REGNUM);
|
||||
event_kind = read_register (HPPA_ARG0_REGNUM);
|
||||
catch_addr = read_register (HPPA_ARG1_REGNUM);
|
||||
|
||||
/* Now go down to a user frame */
|
||||
/* For a throw, __d_eh_break is called by
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#include <string.h>
|
||||
#include <asm/offsets.h>
|
||||
|
||||
#include "hppa-tdep.h"
|
||||
|
||||
/* Prototypes for supply_gregset etc. */
|
||||
#include "gregset.h"
|
||||
|
||||
|
@ -170,8 +172,8 @@ register_addr (int regno, CORE_ADDR blockend)
|
|||
* cr8,9,12,13
|
||||
* cr10, cr15
|
||||
*/
|
||||
#define GR_REGNUM(_n) (R0_REGNUM+_n)
|
||||
#define TR_REGNUM(_n) (TR0_REGNUM+_n)
|
||||
#define GR_REGNUM(_n) (HPPA_R0_REGNUM+_n)
|
||||
#define TR_REGNUM(_n) (HPPA_TR0_REGNUM+_n)
|
||||
static const int greg_map[] =
|
||||
{
|
||||
GR_REGNUM(0), GR_REGNUM(1), GR_REGNUM(2), GR_REGNUM(3),
|
||||
|
@ -183,20 +185,20 @@ static const int greg_map[] =
|
|||
GR_REGNUM(24), GR_REGNUM(25), GR_REGNUM(26), GR_REGNUM(27),
|
||||
GR_REGNUM(28), GR_REGNUM(29), GR_REGNUM(30), GR_REGNUM(31),
|
||||
|
||||
SR4_REGNUM+1, SR4_REGNUM+2, SR4_REGNUM+3, SR4_REGNUM+4,
|
||||
SR4_REGNUM, SR4_REGNUM+5, SR4_REGNUM+6, SR4_REGNUM+7,
|
||||
HPPA_SR4_REGNUM+1, HPPA_SR4_REGNUM+2, HPPA_SR4_REGNUM+3, HPPA_SR4_REGNUM+4,
|
||||
HPPA_SR4_REGNUM, HPPA_SR4_REGNUM+5, HPPA_SR4_REGNUM+6, HPPA_SR4_REGNUM+7,
|
||||
|
||||
PCOQ_HEAD_REGNUM, PCOQ_TAIL_REGNUM,
|
||||
PCSQ_HEAD_REGNUM, PCSQ_TAIL_REGNUM,
|
||||
HPPA_PCOQ_HEAD_REGNUM, HPPA_PCOQ_TAIL_REGNUM,
|
||||
HPPA_PCSQ_HEAD_REGNUM, HPPA_PCSQ_TAIL_REGNUM,
|
||||
|
||||
SAR_REGNUM, IIR_REGNUM, ISR_REGNUM, IOR_REGNUM,
|
||||
IPSW_REGNUM, RCR_REGNUM,
|
||||
HPPA_SAR_REGNUM, HPPA_IIR_REGNUM, HPPA_ISR_REGNUM, HPPA_IOR_REGNUM,
|
||||
HPPA_IPSW_REGNUM, HPPA_RCR_REGNUM,
|
||||
|
||||
TR_REGNUM(0), TR_REGNUM(1), TR_REGNUM(2), TR_REGNUM(3),
|
||||
TR_REGNUM(4), TR_REGNUM(5), TR_REGNUM(6), TR_REGNUM(7),
|
||||
|
||||
PID0_REGNUM, PID1_REGNUM, PID2_REGNUM, PID3_REGNUM,
|
||||
CCR_REGNUM, EIEM_REGNUM,
|
||||
HPPA_PID0_REGNUM, HPPA_PID1_REGNUM, HPPA_PID2_REGNUM, HPPA_PID3_REGNUM,
|
||||
HPPA_CCR_REGNUM, HPPA_EIEM_REGNUM,
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
@ -42,7 +42,7 @@ hppa_dwarf_reg_to_regnum (int reg)
|
|||
|
||||
/* dwarf regs 32 to 85 are fpregs 4 - 31 */
|
||||
if (reg >= 32 && reg <= 85)
|
||||
return FP4_REGNUM + (reg - 32);
|
||||
return HPPA_FP4_REGNUM + (reg - 32);
|
||||
|
||||
warning ("Unmapped DWARF Register #%d encountered\n", reg);
|
||||
return -1;
|
||||
|
@ -53,8 +53,8 @@ static void
|
|||
hppa_linux_target_write_pc (CORE_ADDR v, ptid_t ptid)
|
||||
{
|
||||
/* Probably this should be done by the kernel, but it isn't. */
|
||||
write_register_pid (PCOQ_HEAD_REGNUM, v | 0x3, ptid);
|
||||
write_register_pid (PCOQ_TAIL_REGNUM, (v + 4) | 0x3, ptid);
|
||||
write_register_pid (HPPA_PCOQ_HEAD_REGNUM, v | 0x3, ptid);
|
||||
write_register_pid (HPPA_PCOQ_TAIL_REGNUM, (v + 4) | 0x3, ptid);
|
||||
}
|
||||
|
||||
/* An instruction to match. */
|
||||
|
@ -364,7 +364,7 @@ hppa_linux_sigtramp_frame_unwind_cache (struct frame_info *next_frame,
|
|||
/* General registers. */
|
||||
for (i = 1; i < 32; i++)
|
||||
{
|
||||
info->saved_regs[R0_REGNUM + i].addr = scptr;
|
||||
info->saved_regs[HPPA_R0_REGNUM + i].addr = scptr;
|
||||
scptr += 4;
|
||||
}
|
||||
|
||||
|
@ -383,14 +383,14 @@ hppa_linux_sigtramp_frame_unwind_cache (struct frame_info *next_frame,
|
|||
}
|
||||
|
||||
/* IASQ/IAOQ. */
|
||||
info->saved_regs[PCSQ_HEAD_REGNUM].addr = scptr;
|
||||
info->saved_regs[HPPA_PCSQ_HEAD_REGNUM].addr = scptr;
|
||||
scptr += 4;
|
||||
info->saved_regs[PCSQ_TAIL_REGNUM].addr = scptr;
|
||||
info->saved_regs[HPPA_PCSQ_TAIL_REGNUM].addr = scptr;
|
||||
scptr += 4;
|
||||
|
||||
info->saved_regs[PCOQ_HEAD_REGNUM].addr = scptr;
|
||||
info->saved_regs[HPPA_PCOQ_HEAD_REGNUM].addr = scptr;
|
||||
scptr += 4;
|
||||
info->saved_regs[PCOQ_TAIL_REGNUM].addr = scptr;
|
||||
info->saved_regs[HPPA_PCOQ_TAIL_REGNUM].addr = scptr;
|
||||
scptr += 4;
|
||||
|
||||
info->base = read_memory_unsigned_integer (
|
||||
|
@ -419,10 +419,10 @@ hppa_linux_sigtramp_frame_prev_register (struct frame_info *next_frame,
|
|||
{
|
||||
struct hppa_linux_sigtramp_unwind_cache *info
|
||||
= hppa_linux_sigtramp_frame_unwind_cache (next_frame, this_prologue_cache);
|
||||
int pcoqt = (regnum == PCOQ_TAIL_REGNUM);
|
||||
int pcoqt = (regnum == HPPA_PCOQ_TAIL_REGNUM);
|
||||
|
||||
if (pcoqt)
|
||||
regnum = PCOQ_HEAD_REGNUM;
|
||||
regnum = HPPA_PCOQ_HEAD_REGNUM;
|
||||
|
||||
trad_frame_prev_register (next_frame, info->saved_regs, regnum,
|
||||
optimizedp, lvalp, addrp, realnump, bufferp);
|
||||
|
|
|
@ -126,7 +126,7 @@ hppa32_return_value (struct gdbarch *gdbarch,
|
|||
/* The value always lives in the right hand end of the register
|
||||
(or register pair)? */
|
||||
int b;
|
||||
int reg = TYPE_CODE (type) == TYPE_CODE_FLT ? FP4_REGNUM : 28;
|
||||
int reg = TYPE_CODE (type) == TYPE_CODE_FLT ? HPPA_FP4_REGNUM : 28;
|
||||
int part = TYPE_LENGTH (type) % 4;
|
||||
/* The left hand register contains only part of the value,
|
||||
transfer that first so that the rest can be xfered as entire
|
||||
|
@ -169,19 +169,19 @@ hppa64_return_value (struct gdbarch *gdbarch,
|
|||
&& TYPE_LENGTH (type) <= 8)
|
||||
{
|
||||
/* Floats are right aligned? */
|
||||
int offset = register_size (gdbarch, FP4_REGNUM) - TYPE_LENGTH (type);
|
||||
int offset = register_size (gdbarch, HPPA_FP4_REGNUM) - TYPE_LENGTH (type);
|
||||
if (readbuf != NULL)
|
||||
regcache_cooked_read_part (regcache, FP4_REGNUM, offset,
|
||||
regcache_cooked_read_part (regcache, HPPA_FP4_REGNUM, offset,
|
||||
TYPE_LENGTH (type), readbuf);
|
||||
if (writebuf != NULL)
|
||||
regcache_cooked_write_part (regcache, FP4_REGNUM, offset,
|
||||
regcache_cooked_write_part (regcache, HPPA_FP4_REGNUM, offset,
|
||||
TYPE_LENGTH (type), writebuf);
|
||||
return RETURN_VALUE_REGISTER_CONVENTION;
|
||||
}
|
||||
else if (TYPE_LENGTH (type) <= 8 && is_integral_type (type))
|
||||
{
|
||||
/* Integrals are right aligned. */
|
||||
int offset = register_size (gdbarch, FP4_REGNUM) - TYPE_LENGTH (type);
|
||||
int offset = register_size (gdbarch, HPPA_FP4_REGNUM) - TYPE_LENGTH (type);
|
||||
if (readbuf != NULL)
|
||||
regcache_cooked_read_part (regcache, 28, offset,
|
||||
TYPE_LENGTH (type), readbuf);
|
||||
|
@ -889,10 +889,10 @@ hppa32_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr,
|
|||
write_register (28, struct_addr);
|
||||
|
||||
/* Set the return address. */
|
||||
regcache_cooked_write_unsigned (regcache, RP_REGNUM, bp_addr);
|
||||
regcache_cooked_write_unsigned (regcache, HPPA_RP_REGNUM, bp_addr);
|
||||
|
||||
/* Update the Stack Pointer. */
|
||||
regcache_cooked_write_unsigned (regcache, SP_REGNUM, param_end);
|
||||
regcache_cooked_write_unsigned (regcache, HPPA_SP_REGNUM, param_end);
|
||||
|
||||
return param_end;
|
||||
}
|
||||
|
@ -1011,10 +1011,10 @@ hppa64_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr,
|
|||
write_register (28, struct_addr);
|
||||
|
||||
/* Set the return address. */
|
||||
regcache_cooked_write_unsigned (regcache, RP_REGNUM, bp_addr);
|
||||
regcache_cooked_write_unsigned (regcache, HPPA_RP_REGNUM, bp_addr);
|
||||
|
||||
/* Update the Stack Pointer. */
|
||||
regcache_cooked_write_unsigned (regcache, SP_REGNUM, param_end + 64);
|
||||
regcache_cooked_write_unsigned (regcache, HPPA_SP_REGNUM, param_end + 64);
|
||||
|
||||
/* The stack will have 32 bytes of additional space for a frame marker. */
|
||||
return param_end + 64;
|
||||
|
@ -1044,7 +1044,7 @@ hppa64_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
|
|||
static CORE_ADDR
|
||||
hppa_target_read_pc (ptid_t ptid)
|
||||
{
|
||||
int flags = read_register_pid (FLAGS_REGNUM, ptid);
|
||||
int flags = read_register_pid (HPPA_FLAGS_REGNUM, ptid);
|
||||
|
||||
/* The following test does not belong here. It is OS-specific, and belongs
|
||||
in native code. */
|
||||
|
@ -1052,7 +1052,7 @@ hppa_target_read_pc (ptid_t ptid)
|
|||
if (flags & 2)
|
||||
return read_register_pid (31, ptid) & ~0x3;
|
||||
|
||||
return read_register_pid (PCOQ_HEAD_REGNUM, ptid) & ~0x3;
|
||||
return read_register_pid (HPPA_PCOQ_HEAD_REGNUM, ptid) & ~0x3;
|
||||
}
|
||||
|
||||
/* Write out the PC. If currently in a syscall, then also write the new
|
||||
|
@ -1061,7 +1061,7 @@ hppa_target_read_pc (ptid_t ptid)
|
|||
static void
|
||||
hppa_target_write_pc (CORE_ADDR v, ptid_t ptid)
|
||||
{
|
||||
int flags = read_register_pid (FLAGS_REGNUM, ptid);
|
||||
int flags = read_register_pid (HPPA_FLAGS_REGNUM, ptid);
|
||||
|
||||
/* The following test does not belong here. It is OS-specific, and belongs
|
||||
in native code. */
|
||||
|
@ -1071,8 +1071,8 @@ hppa_target_write_pc (CORE_ADDR v, ptid_t ptid)
|
|||
if (flags & 2)
|
||||
write_register_pid (31, v | 0x3, ptid);
|
||||
|
||||
write_register_pid (PCOQ_HEAD_REGNUM, v, ptid);
|
||||
write_register_pid (PCOQ_TAIL_REGNUM, v + 4, ptid);
|
||||
write_register_pid (HPPA_PCOQ_HEAD_REGNUM, v, ptid);
|
||||
write_register_pid (HPPA_PCOQ_TAIL_REGNUM, v + 4, ptid);
|
||||
}
|
||||
|
||||
/* return the alignment of a type in bytes. Structures have the maximum
|
||||
|
@ -1660,12 +1660,12 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache)
|
|||
if (inst == 0x6bc23fd9) /* stw rp,-0x14(sr0,sp) */
|
||||
{
|
||||
looking_for_rp = 0;
|
||||
cache->saved_regs[RP_REGNUM].addr = -20;
|
||||
cache->saved_regs[HPPA_RP_REGNUM].addr = -20;
|
||||
}
|
||||
else if (inst == 0x0fc212c1) /* std rp,-0x10(sr0,sp) */
|
||||
{
|
||||
looking_for_rp = 0;
|
||||
cache->saved_regs[RP_REGNUM].addr = -16;
|
||||
cache->saved_regs[HPPA_RP_REGNUM].addr = -16;
|
||||
}
|
||||
|
||||
/* Check to see if we saved SP into the stack. This also
|
||||
|
@ -1736,7 +1736,7 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache)
|
|||
/* 1st HP CC FP register store. After this
|
||||
instruction we've set enough state that the GCC and
|
||||
HPCC code are both handled in the same manner. */
|
||||
cache->saved_regs[reg + FP4_REGNUM + 4].addr = 0;
|
||||
cache->saved_regs[reg + HPPA_FP4_REGNUM + 4].addr = 0;
|
||||
fp_loc = 8;
|
||||
}
|
||||
else
|
||||
|
@ -1811,22 +1811,22 @@ hppa_frame_cache (struct frame_info *next_frame, void **this_cache)
|
|||
as the return register while normal code uses "rp". */
|
||||
if (u->Millicode)
|
||||
{
|
||||
if (trad_frame_addr_p (cache->saved_regs, RP_REGNUM))
|
||||
cache->saved_regs[PCOQ_HEAD_REGNUM] = cache->saved_regs[31];
|
||||
if (trad_frame_addr_p (cache->saved_regs, HPPA_RP_REGNUM))
|
||||
cache->saved_regs[HPPA_PCOQ_HEAD_REGNUM] = cache->saved_regs[31];
|
||||
else
|
||||
{
|
||||
ULONGEST r31 = frame_unwind_register_unsigned (next_frame, 31);
|
||||
trad_frame_set_value (cache->saved_regs, PCOQ_HEAD_REGNUM, r31);
|
||||
trad_frame_set_value (cache->saved_regs, HPPA_PCOQ_HEAD_REGNUM, r31);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (trad_frame_addr_p (cache->saved_regs, RP_REGNUM))
|
||||
cache->saved_regs[PCOQ_HEAD_REGNUM] = cache->saved_regs[RP_REGNUM];
|
||||
if (trad_frame_addr_p (cache->saved_regs, HPPA_RP_REGNUM))
|
||||
cache->saved_regs[HPPA_PCOQ_HEAD_REGNUM] = cache->saved_regs[HPPA_RP_REGNUM];
|
||||
else
|
||||
{
|
||||
ULONGEST rp = frame_unwind_register_unsigned (next_frame, RP_REGNUM);
|
||||
trad_frame_set_value (cache->saved_regs, PCOQ_HEAD_REGNUM, rp);
|
||||
ULONGEST rp = frame_unwind_register_unsigned (next_frame, HPPA_RP_REGNUM);
|
||||
trad_frame_set_value (cache->saved_regs, HPPA_PCOQ_HEAD_REGNUM, rp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1863,7 +1863,7 @@ hppa_frame_prev_register (struct frame_info *next_frame,
|
|||
{
|
||||
struct hppa_frame_cache *info = hppa_frame_cache (next_frame, this_cache);
|
||||
struct gdbarch *gdbarch = get_frame_arch (next_frame);
|
||||
if (regnum == PCOQ_TAIL_REGNUM)
|
||||
if (regnum == HPPA_PCOQ_TAIL_REGNUM)
|
||||
{
|
||||
/* The PCOQ TAIL, or NPC, needs to be computed from the unwound
|
||||
PC register. */
|
||||
|
@ -1873,7 +1873,7 @@ hppa_frame_prev_register (struct frame_info *next_frame,
|
|||
*realnump = 0;
|
||||
if (valuep)
|
||||
{
|
||||
int regsize = register_size (gdbarch, PCOQ_HEAD_REGNUM);
|
||||
int regsize = register_size (gdbarch, HPPA_PCOQ_HEAD_REGNUM);
|
||||
CORE_ADDR pc;
|
||||
int optimized;
|
||||
enum lval_type lval;
|
||||
|
@ -1881,7 +1881,7 @@ hppa_frame_prev_register (struct frame_info *next_frame,
|
|||
int realnum;
|
||||
bfd_byte value[MAX_REGISTER_SIZE];
|
||||
trad_frame_prev_register (next_frame, info->saved_regs,
|
||||
PCOQ_HEAD_REGNUM, &optimized, &lval, &addr,
|
||||
HPPA_PCOQ_HEAD_REGNUM, &optimized, &lval, &addr,
|
||||
&realnum, &value);
|
||||
pc = extract_unsigned_integer (&value, regsize);
|
||||
store_unsigned_integer (valuep, regsize, pc + 4);
|
||||
|
@ -1950,7 +1950,7 @@ hppa_stub_frame_unwind_cache (struct frame_info *next_frame,
|
|||
*this_cache = info;
|
||||
info->saved_regs = trad_frame_alloc_saved_regs (next_frame);
|
||||
|
||||
info->saved_regs[PCOQ_HEAD_REGNUM].realreg = RP_REGNUM;
|
||||
info->saved_regs[HPPA_PCOQ_HEAD_REGNUM].realreg = HPPA_RP_REGNUM;
|
||||
info->base = frame_unwind_register_unsigned (next_frame, HPPA_SP_REGNUM);
|
||||
|
||||
return info;
|
||||
|
@ -1975,12 +1975,12 @@ hppa_stub_frame_prev_register (struct frame_info *next_frame,
|
|||
{
|
||||
struct hppa_stub_unwind_cache *info
|
||||
= hppa_stub_frame_unwind_cache (next_frame, this_prologue_cache);
|
||||
int pcoqt = (regnum == PCOQ_TAIL_REGNUM);
|
||||
int pcoqt = (regnum == HPPA_PCOQ_TAIL_REGNUM);
|
||||
struct gdbarch *gdbarch = get_frame_arch (next_frame);
|
||||
int regsize = register_size (gdbarch, PCOQ_HEAD_REGNUM);
|
||||
int regsize = register_size (gdbarch, HPPA_PCOQ_HEAD_REGNUM);
|
||||
|
||||
if (pcoqt)
|
||||
regnum = PCOQ_HEAD_REGNUM;
|
||||
regnum = HPPA_PCOQ_HEAD_REGNUM;
|
||||
|
||||
trad_frame_prev_register (next_frame, info->saved_regs, regnum,
|
||||
optimizedp, lvalp, addrp, realnump, bufferp);
|
||||
|
@ -2018,7 +2018,7 @@ hppa_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
|
|||
static CORE_ADDR
|
||||
hppa_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
|
||||
{
|
||||
return frame_unwind_register_signed (next_frame, PCOQ_HEAD_REGNUM) & ~3;
|
||||
return frame_unwind_register_signed (next_frame, HPPA_PCOQ_HEAD_REGNUM) & ~3;
|
||||
}
|
||||
|
||||
/* Instead of this nasty cast, add a method pvoid() that prints out a
|
||||
|
@ -2111,10 +2111,10 @@ hppa_skip_permanent_breakpoint (void)
|
|||
front to the back. But what do we put in the back? What
|
||||
instruction comes after that one? Because of the branch delay
|
||||
slot, the next insn is always at the back + 4. */
|
||||
write_register (PCOQ_HEAD_REGNUM, read_register (PCOQ_TAIL_REGNUM));
|
||||
write_register (PCSQ_HEAD_REGNUM, read_register (PCSQ_TAIL_REGNUM));
|
||||
write_register (HPPA_PCOQ_HEAD_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM));
|
||||
write_register (HPPA_PCSQ_HEAD_REGNUM, read_register (HPPA_PCSQ_TAIL_REGNUM));
|
||||
|
||||
write_register (PCOQ_TAIL_REGNUM, read_register (PCOQ_TAIL_REGNUM) + 4);
|
||||
write_register (HPPA_PCOQ_TAIL_REGNUM, read_register (HPPA_PCOQ_TAIL_REGNUM) + 4);
|
||||
/* We can leave the tail's space the same, since there's no jump. */
|
||||
}
|
||||
|
||||
|
@ -2152,8 +2152,8 @@ hppa_instruction_nullified (void)
|
|||
/* brobecker 2002/11/07: Couldn't we use a ULONGEST here? It would
|
||||
avoid the type cast. I'm leaving it as is for now as I'm doing
|
||||
semi-mechanical multiarching-related changes. */
|
||||
const int ipsw = (int) read_register (IPSW_REGNUM);
|
||||
const int flags = (int) read_register (FLAGS_REGNUM);
|
||||
const int ipsw = (int) read_register (HPPA_IPSW_REGNUM);
|
||||
const int flags = (int) read_register (HPPA_FLAGS_REGNUM);
|
||||
|
||||
return ((ipsw & 0x00200000) && !(flags & 0x2));
|
||||
}
|
||||
|
@ -2164,7 +2164,7 @@ hppa_instruction_nullified (void)
|
|||
static struct type *
|
||||
hppa32_register_type (struct gdbarch *gdbarch, int reg_nr)
|
||||
{
|
||||
if (reg_nr < FP4_REGNUM)
|
||||
if (reg_nr < HPPA_FP4_REGNUM)
|
||||
return builtin_type_uint32;
|
||||
else
|
||||
return builtin_type_ieee_single_big;
|
||||
|
@ -2176,7 +2176,7 @@ hppa32_register_type (struct gdbarch *gdbarch, int reg_nr)
|
|||
static struct type *
|
||||
hppa64_register_type (struct gdbarch *gdbarch, int reg_nr)
|
||||
{
|
||||
if (reg_nr < FP4_REGNUM)
|
||||
if (reg_nr < HPPA_FP4_REGNUM)
|
||||
return builtin_type_uint64;
|
||||
else
|
||||
return builtin_type_ieee_double_big;
|
||||
|
@ -2189,9 +2189,9 @@ static int
|
|||
hppa_cannot_store_register (int regnum)
|
||||
{
|
||||
return (regnum == 0
|
||||
|| regnum == PCSQ_HEAD_REGNUM
|
||||
|| (regnum >= PCSQ_TAIL_REGNUM && regnum < IPSW_REGNUM)
|
||||
|| (regnum > IPSW_REGNUM && regnum < FP4_REGNUM));
|
||||
|| regnum == HPPA_PCSQ_HEAD_REGNUM
|
||||
|| (regnum >= HPPA_PCSQ_TAIL_REGNUM && regnum < HPPA_IPSW_REGNUM)
|
||||
|| (regnum > HPPA_IPSW_REGNUM && regnum < HPPA_FP4_REGNUM));
|
||||
|
||||
}
|
||||
|
||||
|
@ -2214,7 +2214,7 @@ hppa_fetch_pointer_argument (struct frame_info *frame, int argi,
|
|||
struct type *type)
|
||||
{
|
||||
CORE_ADDR addr;
|
||||
get_frame_register (frame, R0_REGNUM + 26 - argi, &addr);
|
||||
get_frame_register (frame, HPPA_R0_REGNUM + 26 - argi, &addr);
|
||||
return addr;
|
||||
}
|
||||
|
||||
|
@ -2225,7 +2225,7 @@ hppa_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
|
|||
ULONGEST tmp;
|
||||
|
||||
regcache_raw_read_unsigned (regcache, regnum, &tmp);
|
||||
if (regnum == PCOQ_HEAD_REGNUM || regnum == PCOQ_TAIL_REGNUM)
|
||||
if (regnum == HPPA_PCOQ_HEAD_REGNUM || regnum == HPPA_PCOQ_TAIL_REGNUM)
|
||||
tmp &= ~0x3;
|
||||
store_unsigned_integer (buf, sizeof(tmp), tmp);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,48 @@
|
|||
|
||||
enum { HPPA_INSTRUCTION_SIZE = 4 };
|
||||
|
||||
/* Register numbers of various important registers.
|
||||
Note that some of these values are "real" register numbers,
|
||||
and correspond to the general registers of the machine,
|
||||
and some are "phony" register numbers which are too large
|
||||
to be actual register numbers as far as the user is concerned
|
||||
but do serve to get the desired values when passed to read_register. */
|
||||
|
||||
enum {
|
||||
HPPA_R0_REGNUM = 0, /* Doesn't actually exist, used as base for
|
||||
other r registers. */
|
||||
HPPA_FLAGS_REGNUM = 0, /* Various status flags */
|
||||
HPPA_RP_REGNUM = 2, /* return pointer */
|
||||
HPPA_FP_REGNUM = 3, /* The ABI's frame pointer, when used */
|
||||
HPPA_SP_REGNUM = 30, /* Stack pointer. */
|
||||
HPPA_SAR_REGNUM = 32, /* Shift Amount Register */
|
||||
HPPA_IPSW_REGNUM = 41, /* Interrupt Processor Status Word */
|
||||
HPPA_PCOQ_HEAD_REGNUM = 33, /* instruction offset queue head */
|
||||
HPPA_PCSQ_HEAD_REGNUM = 34, /* instruction space queue head */
|
||||
HPPA_PCOQ_TAIL_REGNUM = 35, /* instruction offset queue tail */
|
||||
HPPA_PCSQ_TAIL_REGNUM = 36, /* instruction space queue tail */
|
||||
HPPA_EIEM_REGNUM = 37, /* External Interrupt Enable Mask */
|
||||
HPPA_IIR_REGNUM = 38, /* Interrupt Instruction Register */
|
||||
HPPA_ISR_REGNUM = 39, /* Interrupt Space Register */
|
||||
HPPA_IOR_REGNUM = 40, /* Interrupt Offset Register */
|
||||
HPPA_SR4_REGNUM = 43, /* space register 4 */
|
||||
HPPA_RCR_REGNUM = 51, /* Recover Counter (also known as cr0) */
|
||||
HPPA_PID0_REGNUM = 52, /* Protection ID */
|
||||
HPPA_PID1_REGNUM = 53, /* Protection ID */
|
||||
HPPA_PID2_REGNUM = 55, /* Protection ID */
|
||||
HPPA_PID3_REGNUM = 56, /* Protection ID */
|
||||
HPPA_CCR_REGNUM = 54, /* Coprocessor Configuration Register */
|
||||
HPPA_TR0_REGNUM = 57, /* Temporary Registers (cr24 -> cr31) */
|
||||
HPPA_CR27_REGNUM = 60, /* Base register for thread-local storage, cr27 */
|
||||
HPPA_FP0_REGNUM = 64, /* First floating-point. */
|
||||
HPPA_FP4_REGNUM = 72,
|
||||
|
||||
HPPA_ARG0_REGNUM = 26, /* The first argument of a callee. */
|
||||
HPPA_ARG1_REGNUM = 25, /* The second argument of a callee. */
|
||||
HPPA_ARG2_REGNUM = 24, /* The third argument of a callee. */
|
||||
HPPA_ARG3_REGNUM = 23 /* The fourth argument of a callee. */
|
||||
};
|
||||
|
||||
/* Target-dependent structure in gdbarch. */
|
||||
struct gdbarch_tdep
|
||||
{
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "infttrace.h"
|
||||
#include <signal.h>
|
||||
|
||||
#include "hppa-tdep.h"
|
||||
|
||||
static CORE_ADDR text_end;
|
||||
|
||||
|
@ -113,9 +114,9 @@ store_inferior_registers (int regno)
|
|||
}
|
||||
|
||||
/* Floating-point registers come from the ss_fpblock area. */
|
||||
else if (regno >= FP0_REGNUM)
|
||||
else if (regno >= HPPA_FP0_REGNUM)
|
||||
addr = (HPPAH_OFFSETOF (save_state_t, ss_fpblock)
|
||||
+ (DEPRECATED_REGISTER_BYTE (regno) - DEPRECATED_REGISTER_BYTE (FP0_REGNUM)));
|
||||
+ (DEPRECATED_REGISTER_BYTE (regno) - DEPRECATED_REGISTER_BYTE (HPPA_FP0_REGNUM)));
|
||||
|
||||
/* Wide registers come from the ss_wide area.
|
||||
I think it's more PC to test (ss_flags & SS_WIDEREGS) to select
|
||||
|
@ -141,7 +142,7 @@ store_inferior_registers (int regno)
|
|||
layering will not allow us to perform a 64bit register store.
|
||||
|
||||
What a crock. */
|
||||
if (regno == PCOQ_HEAD_REGNUM || regno == PCOQ_TAIL_REGNUM && len == 8)
|
||||
if (regno == HPPA_PCOQ_HEAD_REGNUM || regno == HPPA_PCOQ_TAIL_REGNUM && len == 8)
|
||||
{
|
||||
CORE_ADDR temp;
|
||||
|
||||
|
@ -169,7 +170,7 @@ store_inferior_registers (int regno)
|
|||
/* Another crock. HPUX complains if you write a nonzero value to
|
||||
the high part of IPSW. What will it take for HP to catch a
|
||||
clue about building sensible interfaces? */
|
||||
if (regno == IPSW_REGNUM && len == 8)
|
||||
if (regno == HPPA_IPSW_REGNUM && len == 8)
|
||||
*(int *)&deprecated_registers[DEPRECATED_REGISTER_BYTE (regno)] = 0;
|
||||
#endif
|
||||
|
||||
|
@ -189,7 +190,7 @@ store_inferior_registers (int regno)
|
|||
REGISTER_NAME (regno), err);
|
||||
/* If we fail to write the PC, give a true error instead of
|
||||
just a warning. */
|
||||
if (regno == PCOQ_HEAD_REGNUM || regno == PCOQ_TAIL_REGNUM)
|
||||
if (regno == HPPA_PCOQ_HEAD_REGNUM || regno == HPPA_PCOQ_TAIL_REGNUM)
|
||||
perror_with_name (msg);
|
||||
else
|
||||
warning (msg);
|
||||
|
@ -231,9 +232,9 @@ fetch_register (int regno)
|
|||
}
|
||||
|
||||
/* Floating-point registers come from the ss_fpblock area. */
|
||||
else if (regno >= FP0_REGNUM)
|
||||
else if (regno >= HPPA_FP0_REGNUM)
|
||||
addr = (HPPAH_OFFSETOF (save_state_t, ss_fpblock)
|
||||
+ (DEPRECATED_REGISTER_BYTE (regno) - DEPRECATED_REGISTER_BYTE (FP0_REGNUM)));
|
||||
+ (DEPRECATED_REGISTER_BYTE (regno) - DEPRECATED_REGISTER_BYTE (HPPA_FP0_REGNUM)));
|
||||
|
||||
/* Wide registers come from the ss_wide area.
|
||||
I think it's more PC to test (ss_flags & SS_WIDEREGS) to select
|
||||
|
@ -278,7 +279,7 @@ fetch_register (int regno)
|
|||
/* If we're reading an address from the instruction address queue,
|
||||
mask out the bottom two bits --- they contain the privilege
|
||||
level. */
|
||||
if (regno == PCOQ_HEAD_REGNUM || regno == PCOQ_TAIL_REGNUM)
|
||||
if (regno == HPPA_PCOQ_HEAD_REGNUM || regno == HPPA_PCOQ_TAIL_REGNUM)
|
||||
buf[len - 1] &= ~0x3;
|
||||
|
||||
supply_register (regno, buf);
|
||||
|
|
|
@ -5741,7 +5741,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
|
|||
/* Thread-local variable.
|
||||
*/
|
||||
SYMBOL_CLASS (sym) = LOC_HP_THREAD_LOCAL_STATIC;
|
||||
SYMBOL_BASEREG (sym) = CR27_REGNUM;
|
||||
SYMBOL_BASEREG (sym) = HPPA_CR27_REGNUM;
|
||||
|
||||
if (objfile->flags & OBJF_SHARED)
|
||||
{
|
||||
|
|
|
@ -649,7 +649,7 @@ pa64_solib_have_load_event (int pid)
|
|||
{
|
||||
CORE_ADDR event_kind;
|
||||
|
||||
event_kind = read_register (ARG0_REGNUM);
|
||||
event_kind = read_register (HPPA_ARG0_REGNUM);
|
||||
return (event_kind == DLD_CB_LOAD);
|
||||
}
|
||||
|
||||
|
@ -660,7 +660,7 @@ pa64_solib_have_unload_event (int pid)
|
|||
{
|
||||
CORE_ADDR event_kind;
|
||||
|
||||
event_kind = read_register (ARG0_REGNUM);
|
||||
event_kind = read_register (HPPA_ARG0_REGNUM);
|
||||
return (event_kind == DLD_CB_UNLOAD);
|
||||
}
|
||||
|
||||
|
@ -674,7 +674,7 @@ char *
|
|||
pa64_solib_loaded_library_pathname (int pid)
|
||||
{
|
||||
static char dll_path[MAXPATHLEN];
|
||||
CORE_ADDR dll_path_addr = read_register (ARG3_REGNUM);
|
||||
CORE_ADDR dll_path_addr = read_register (HPPA_ARG3_REGNUM);
|
||||
read_memory_string (dll_path_addr, dll_path, MAXPATHLEN);
|
||||
return dll_path;
|
||||
}
|
||||
|
@ -689,7 +689,7 @@ char *
|
|||
pa64_solib_unloaded_library_pathname (int pid)
|
||||
{
|
||||
static char dll_path[MAXPATHLEN];
|
||||
CORE_ADDR dll_path_addr = read_register (ARG3_REGNUM);
|
||||
CORE_ADDR dll_path_addr = read_register (HPPA_ARG3_REGNUM);
|
||||
read_memory_string (dll_path_addr, dll_path, MAXPATHLEN);
|
||||
return dll_path;
|
||||
}
|
||||
|
|
|
@ -1137,7 +1137,7 @@ som_solib_have_load_event (int pid)
|
|||
{
|
||||
CORE_ADDR event_kind;
|
||||
|
||||
event_kind = read_register (ARG0_REGNUM);
|
||||
event_kind = read_register (HPPA_ARG0_REGNUM);
|
||||
return (event_kind == SHL_LOAD);
|
||||
}
|
||||
|
||||
|
@ -1146,7 +1146,7 @@ som_solib_have_unload_event (int pid)
|
|||
{
|
||||
CORE_ADDR event_kind;
|
||||
|
||||
event_kind = read_register (ARG0_REGNUM);
|
||||
event_kind = read_register (HPPA_ARG0_REGNUM);
|
||||
return (event_kind == SHL_UNLOAD);
|
||||
}
|
||||
|
||||
|
@ -1160,7 +1160,7 @@ som_solib_library_pathname (int pid)
|
|||
static char dll_pathname[1024];
|
||||
|
||||
/* Read the descriptor of this newly-loaded library. */
|
||||
dll_handle_address = read_register (ARG1_REGNUM);
|
||||
dll_handle_address = read_register (HPPA_ARG1_REGNUM);
|
||||
read_memory (dll_handle_address, (char *) &dll_descriptor, sizeof (dll_descriptor));
|
||||
|
||||
/* We can find a pointer to the dll's pathname within the descriptor. */
|
||||
|
|
Loading…
Reference in a new issue