unsigned long entry, toc, load_addr = regs->gpr[2]; 
unsigned long entry, toc; 
void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp){	set_fs(USER_DS);	/*	 * If we exec out of a kernel thread then thread.regs will not be	 * set.  Do it now.	 */	if (!current->thread.regs) {		unsigned long childregs = (unsigned long)current->thread_info +						THREAD_SIZE;		childregs -= sizeof(struct pt_regs);		current->thread.regs = (struct pt_regs *)childregs;	}	memset(regs->gpr, 0, sizeof(regs->gpr));	regs->ctr = 0;	regs->link = 0;	regs->xer = 0;	regs->ccr = 0;	regs->gpr[1] = sp;#ifdef CONFIG_PPC32	regs->mq = 0;	regs->nip = start;	regs->msr = MSR_USER;#else	if (!test_thread_flag(TIF_32BIT)) {		unsigned long entry, toc, load_addr = regs->gpr[2];		/* start is a relocated pointer to the function descriptor for		 * the elf _start routine.  The first entry in the function		 * descriptor is the entry address of _start and the second		 * entry is the TOC value we need to use.		 */		__get_user(entry, (unsigned long __user *)start);		__get_user(toc, (unsigned long __user *)start+1);		/* Check whether the e_entry function descriptor entries		 * need to be relocated before we can use them.		 */		if (load_addr != 0) {			entry += load_addr;			toc   += load_addr;		}		regs->nip = entry;		regs->gpr[2] = toc;		regs->msr = MSR_USER64;	} else {		regs->nip = start;		regs->gpr[2] = 0;		regs->msr = MSR_USER32;	}#endif#ifndef CONFIG_SMP	if (last_task_used_math == current)		last_task_used_math = NULL;#ifdef CONFIG_ALTIVEC	if (last_task_used_altivec == current)		last_task_used_altivec = NULL;#endif#ifdef CONFIG_SPE	if (last_task_used_spe == current)		last_task_used_spe = NULL;#endif#endif /* CONFIG_SMP */	memset(current->thread.fpr, 0, sizeof(current->thread.fpr));	current->thread.fpscr = 0;#ifdef CONFIG_ALTIVEC	memset(current->thread.vr, 0, sizeof(current->thread.vr));	memset(&current->thread.vscr, 0, sizeof(current->thread.vscr));	current->thread.vscr.u[3] = 0x00010000; /* Java mode disabled */	current->thread.vrsave = 0;	current->thread.used_vr = 0;#endif /* CONFIG_ALTIVEC */#ifdef CONFIG_SPE	memset(current->thread.evr, 0, sizeof(current->thread.evr));	current->thread.acc = 0;	current->thread.spefscr = 0;	current->thread.used_spe = 0;#endif /* CONFIG_SPE */}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/90eac727c6d7afbe707ce408edf97c33385fa08c/process.c/clean/arch/powerpc/kernel/process.c