X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fh8300%2Fplatform%2Fh8300h%2Fptrace_h8300h.c;h=18e51a7167d3b5e0da2e719519b358778aa4019e;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=69f6ae19e1e224c53b23bef1087d1147e3af1f44;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/h8300/platform/h8300h/ptrace_h8300h.c b/arch/h8300/platform/h8300h/ptrace_h8300h.c index 69f6ae19e..18e51a716 100644 --- a/arch/h8300/platform/h8300h/ptrace_h8300h.c +++ b/arch/h8300/platform/h8300h/ptrace_h8300h.c @@ -246,11 +246,13 @@ static unsigned short *getnextpc(struct task_struct *child, unsigned short *pc) return (unsigned short *)addr; case relb: if ((inst = 0x55) || isbranch(child,inst & 0x0f)) - (unsigned char *)pc += (signed char)(*fetch_p); + pc = (unsigned short *)((unsigned long)pc + + ((signed char)(*fetch_p))); return pc+1; /* skip myself */ case relw: if ((inst = 0x5c) || isbranch(child,(*fetch_p & 0xf0) >> 4)) - (unsigned char *)pc += (signed short)(*(pc+1)); + pc = (unsigned short *)((unsigned long)pc + + ((signed short)(*(pc+1)))); return pc+2; /* skip myself */ } }