if ((inst = 0x55) || isbranch(child,inst & 0x0f)) 
if (inst == 0x55 || isbranch(child,inst & 0x0f)) 
static unsigned short *getnextpc(struct task_struct *child, unsigned short *pc){	const struct optable *op;	unsigned char *fetch_p;	unsigned char inst;	unsigned long addr;	unsigned long *sp;	int op_len,regno;	op = optables[0].ptr;	op_len = optables[0].size;	fetch_p = (unsigned char *)pc;	inst = *fetch_p++;	do {		if ((inst & op->bitmask) == op->bitpattern) {			if (op->length < 0) {				op = optables[-op->length].ptr;				op_len = optables[-op->length].size + 1;				inst = *fetch_p++;			} else {				switch (op->type) {				case none:					return pc + op->length;				case jabs:					addr = *(unsigned long *)pc;					return (unsigned short *)(addr & 0x00ffffff);				case ind:					addr = *pc & 0xff;					return (unsigned short *)(*(unsigned long *)addr);				case ret:					sp = (unsigned long *)h8300_get_reg(child, PT_USP);					/* user stack frames					   |   er0  | temporary saved					   +--------+					   |   exp  | exception stack frames					   +--------+					   | ret pc | userspace return address					*/					return (unsigned short *)(*(sp+2) & 0x00ffffff);				case reg:					regno = (*pc >> 4) & 0x07;					if (regno == 0)						addr = h8300_get_reg(child, PT_ER0);					else						addr = h8300_get_reg(child, regno-1+PT_ER1);					return (unsigned short *)addr;				case relb:					if ((inst = 0x55) || isbranch(child,inst & 0x0f))						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))						pc = (unsigned short *)((unsigned long)pc +								       ((signed short)(*(pc+1))));					return pc+2; /* skip myself */				}			}		} else			op++;	} while(--op_len > 0);	return NULL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/15d20bfd606c4b4454aeaa05fc86f77994e48c92/ptrace_h8300h.c/buggy/arch/h8300/platform/h8300h/ptrace_h8300h.c