return (u32)(((u64)a << 31) / z) + (z >> 1); 
{ u64 v = (u64)a << 31; do_div(v, z); return v + (z >> 1); } 
u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand){	int index;	u32 z, a;	if ((significand & 0xc0000000) != 0x40000000) {		printk(KERN_WARNING "VFP: estimate_sqrt: invalid significand\n");	}	a = significand << 1;	index = (a >> 27) & 15;	if (exponent & 1) {		z = 0x4000 + (a >> 17) - sqrt_oddadjust[index];		z = ((a / z) << 14) + (z << 15);		a >>= 1;	} else {		z = 0x8000 + (a >> 17) - sqrt_evenadjust[index];		z = a / z + z;		z = (z >= 0x20000) ? 0xffff8000 : (z << 15);		if (z <= a)			return (s32)a >> 1;	}	return (u32)(((u64)a << 31) / z) + (z >> 1);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/438a76167959061e371025f727fabec2ad9e70a7/vfpsingle.c/buggy/arch/arm/vfp/vfpsingle.c