Re: [patch/RFA] multiarch INSTRUCTION_NULLIFIED

Mark Kettenis
2004-12-04T10:53:18Z

Date: Fri, 3 Dec 2004 16:00:18 -0800
From: Randolph Chung <randolph@tausq.org>

I've committed the following.

Hmm. There is a bit of an inconsistency with signed/unsigned in the code:

static CORE_ADDR
hppa_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{
- return frame_unwind_register_signed (next_frame, HPPA_PCOQ_HEAD_REGNUM) & ~3;
+ ULONGEST ipsw;
+ CORE_ADDR pc;
+
+ ipsw = frame_unwind_register_signed (next_frame, HPPA_IPSW_REGNUM);
+ pc = frame_unwind_register_signed (next_frame, HPPA_PCOQ_HEAD_REGNUM) & ~3;

Here you declare `ipsw' as ULONGEST (which is unsigned) but then use
frame_unwind_register_signed to read it. Also, AFAIK, addresses
aren't signed on hppa (or at least aren't sign-extended) so there one
should also use frame_unwind_register_unsigned (but that problem was
already there).

These kind of things might cause problems in certain 32x64-bit
situations.

Mark