unsigned long addr = compute_effective_address(regs, insn, ((insn >> 25) & 0x1f)); 
unsigned long addr; 
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, unsigned long sfar, unsigned long sfsr){	enum direction dir = decode_direction(insn);	int size = decode_access_size(insn);	if (!ok_for_kernel(insn) || dir == both) {		printk("Unsupported unaligned load/store trap for kernel at <%016lx>.\n",		       regs->tpc);		unaligned_panic("Kernel does fpu/atomic unaligned load/store.", regs);		__asm__ __volatile__ ("\n""kernel_unaligned_trap_fault:\n\t"		"mov	%0, %%o0\n\t"		"call	kernel_mna_trap_fault\n\t"		" mov	%1, %%o1\n\t"		:		: "r" (regs), "r" (insn)		: "o0", "o1", "o2", "o3", "o4", "o5", "o7",		  "g1", "g2", "g3", "g4", "g7", "cc");	} else {		unsigned long addr = compute_effective_address(regs, insn, ((insn >> 25) & 0x1f));#ifdef DEBUG_MNA		printk("KMNA: pc=%016lx [dir=%s addr=%016lx size=%d] retpc[%016lx]\n",		       regs->tpc, dirstrings[dir], addr, size, regs->u_regs[UREG_RETPC]);#endif		switch (dir) {		case load:			do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs),					size, (unsigned long *) addr,					decode_signedness(insn), decode_asi(insn, regs),					kernel_unaligned_trap_fault);			break;		case store:			do_integer_store(((insn>>25)&0x1f), size,					 (unsigned long *) addr, regs,					 decode_asi(insn, regs),					 kernel_unaligned_trap_fault);			break;#if 0 /* unsupported */		case both:			do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs),				  (unsigned long *) addr,				  kernel_unaligned_trap_fault);			break;#endif		default:			panic("Impossible kernel unaligned trap.");			/* Not reached... */		}		advance(regs);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a3f9985843b674cbcb58f39fab8416675e7ab842/unaligned.c/clean/arch/sparc64/kernel/unaligned.c