vsd.significand = ((u64)vsn.significand << 32) / vsm.significand; 
{ u64 significand = (u64)vsn.significand << 32; do_div(significand, vsm.significand); vsd.significand = significand; } 
static u32 vfp_single_fdiv(int sd, int sn, s32 m, u32 fpscr){	struct vfp_single vsd, vsn, vsm;	u32 exceptions = 0;	s32 n = vfp_get_float(sn);	int tm, tn;	pr_debug("VFP: s%u = %08x\n", sn, n);	vfp_single_unpack(&vsn, n);	vfp_single_unpack(&vsm, m);	vsd.sign = vsn.sign ^ vsm.sign;	tn = vfp_single_type(&vsn);	tm = vfp_single_type(&vsm);	/*	 * Is n a NAN?	 */	if (tn & VFP_NAN)		goto vsn_nan;	/*	 * Is m a NAN?	 */	if (tm & VFP_NAN)		goto vsm_nan;	/*	 * If n and m are infinity, the result is invalid	 * If n and m are zero, the result is invalid	 */	if (tm & tn & (VFP_INFINITY|VFP_ZERO))		goto invalid;	/*	 * If n is infinity, the result is infinity	 */	if (tn & VFP_INFINITY)		goto infinity;	/*	 * If m is zero, raise div0 exception	 */	if (tm & VFP_ZERO)		goto divzero;	/*	 * If m is infinity, or n is zero, the result is zero	 */	if (tm & VFP_INFINITY || tn & VFP_ZERO)		goto zero;	if (tn & VFP_DENORMAL)		vfp_single_normalise_denormal(&vsn);	if (tm & VFP_DENORMAL)		vfp_single_normalise_denormal(&vsm);	/*	 * Ok, we have two numbers, we can perform division.	 */	vsd.exponent = vsn.exponent - vsm.exponent + 127 - 1;	vsm.significand <<= 1;	if (vsm.significand <= (2 * vsn.significand)) {		vsn.significand >>= 1;		vsd.exponent++;	}	vsd.significand = ((u64)vsn.significand << 32) / vsm.significand;	if ((vsd.significand & 0x3f) == 0)		vsd.significand |= ((u64)vsm.significand * vsd.significand != (u64)vsn.significand << 32);	return vfp_single_normaliseround(sd, &vsd, fpscr, 0, "fdiv"); vsn_nan:	exceptions = vfp_propagate_nan(&vsd, &vsn, &vsm, fpscr); pack:	vfp_put_float(sd, vfp_single_pack(&vsd));	return exceptions; vsm_nan:	exceptions = vfp_propagate_nan(&vsd, &vsm, &vsn, fpscr);	goto pack; zero:	vsd.exponent = 0;	vsd.significand = 0;	goto pack; divzero:	exceptions = FPSCR_DZC; infinity:	vsd.exponent = 255;	vsd.significand = 0;	goto pack; invalid:	vfp_put_float(sd, vfp_single_pack(&vfp_single_default_qnan));	return FPSCR_IOC;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/438a76167959061e371025f727fabec2ad9e70a7/vfpsingle.c/buggy/arch/arm/vfp/vfpsingle.c