From: peter g. <pga...@li...> - 2003-02-19 02:30:48
|
The trailing program, derived from the glibc -2.3.1 file sysdeps/ieee754/dbl-64/e_atan2.c when compiled with gcc 3.2 and also gcc 3.2.2, generates this error (gcc 3.2.2). gcc is set up as a cross compiler, host linux pc, target sh4. prog.c: In function `__ieee754_atan2': prog.c:171: Internal compiler error in output_branch, at config/sh/sh.c:1050 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. prog.c -------------------------------------------------------------------------------- typedef union { int i[2]; double d; } number; static const number d3 = {{0x55555555, 0xbfd55555} }, d5 = {{0x999997fd, 0x3fc99999} }, d7 = {{0x923f7603, 0xbfc24924} }, d9 = {{0xe5129a3b, 0x3fbc71c6} }, d11 = {{0x22b13c25, 0xbfb74580} }, d13 = {{0x8b31cbce, 0x3fb375f0} }, f3 = {{0x55555555, 0xbfd55555} }, ff3 = {{0x55555555, 0xbc755555} }, f5 = {{0x9999999a, 0x3fc99999} }, ff5 = {{0x9999999a, 0xbc699999} }, f7 = {{0x92492492, 0xbfc24924} }, ff7 = {{0x92492492, 0xbc624924} }, f9 = {{0x1c71c71c, 0x3fbc71c7} }, ff9 = {{0x1c71c71c, 0x3c5c71c7} }, f11 = {{0x745d1746, 0xbfb745d1} }, f13 = {{0x13b13b14, 0x3fb3b13b} }, f15 = {{0x11111111, 0xbfb11111} }, f17 = {{0x1e1e1e1e, 0x3fae1e1e} }, f19 = {{0xbca1af28, 0xbfaaf286} }, zero = {{0x00000000, 0x00000000} }, mzero = {{0x00000000, 0x80000000} }, one = {{0x00000000, 0x3ff00000} }, inv16 = {{0x00000000, 0x3fb00000} }, opi = {{0x54442d18, 0x400921fb} }, opi1 = {{0x33145c07, 0x3ca1a626} }, mopi = {{0x54442d18, 0xc00921fb} }, hpi = {{0x54442d18, 0x3ff921fb} }, hpi1 = {{0x33145c07, 0x3c91a626} }, mhpi = {{0x54442d18, 0xbff921fb} }, qpi = {{0x54442d18, 0x3fe921fb} }, qpi1 = {{0x33145c07, 0x3c81a626} }, mqpi = {{0x54442d18, 0xbfe921fb} }, tqpi = {{0x7f3321d2, 0x4002d97c} }, tqpi1 = {{0x4c9e8a0a, 0x3c9a7939} }, mtqpi = {{0x7f3321d2, 0xc002d97c} }, u1 = {{0x00000000, 0x3c314c2a} }, u2 = {{0x00000000, 0x3bf955e4} }, u3 = {{0x00000000, 0x3bf955e4} }, u4 = {{0x00000000, 0x3bf955e4} }, u5 = {{0x00000000, 0x3aaef2d1} }, u6 = {{0x00000000, 0x3a6eeb36} }, u7 = {{0x00000000, 0x3a6eeb36} }, u8 = {{0x00000000, 0x3a6eeb36} }, u91 = {{0x00000000, 0x3c6dffc0} }, u92 = {{0x00000000, 0x3c527bd0} }, u93 = {{0x00000000, 0x3c3cd057} }, u94 = {{0x00000000, 0x3c329cdf} }, ua1 = {{0x00000000, 0x3c3a1edf} }, ua2 = {{0x00000000, 0x3c33f0e1} }, ub = {{0x00000000, 0x3a98c56d} }, uc = {{0x00000000, 0x3a9375de} }, ud[5] ={{{0x00000000, 0x38c6eddf} }, {{0x00000000, 0x35c6ef60} }, {{0x00000000, 0x32c6ed2f} }, {{0x00000000, 0x23c6eee8} }, {{0x00000000, 0x11c6ed16} }}, ue = {{0x00000000, 0x38900e9d} }, two8 = {{0x00000000, 0x40700000} }, two52 = {{0x00000000, 0x43300000} }, two500 = {{0x00000000, 0x5f300000} }, twom500 = {{0x00000000, 0x20b00000} }, twom1022 = {{0x00000000, 0x00100000} }; double __ieee754_atan2(double y,double x) { int i,de,ux,dx,uy,dy; static const int pr[5]={6,8,10,20,32}; double ax,ay,u,du,u9,ua,v,vv,dv,t1,t2,t3,t4,t5,t6,t7,t8, z,zz,cor,s1,ss1,s2,ss2; number num; static const int ep= 59768832, em=-59768832; num.d = x; ux = num.i[1]; dx = num.i[0]; if ((ux&0x7ff00000) ==0x7ff00000) { if (((ux&0x000fffff)|dx)!=0x00000000) return x+x; } num.d = y; uy = num.i[1]; dy = num.i[0]; if ((uy&0x7ff00000) ==0x7ff00000) { if (((uy&0x000fffff)|dy)!=0x00000000) return y+y; } if (uy==0x00000000) { if (dy==0x00000000) { if ((ux&0x80000000)==0x00000000) return zero.d; else return opi.d; } } else if (uy==0x80000000) { if (dy==0x00000000) { if ((ux&0x80000000)==0x00000000) return mzero.d; else return mopi.d;} } if (x==zero.d) { if ((uy&0x80000000)==0x00000000) return hpi.d; else return mhpi.d; } if (ux==0x7ff00000) { if (dx==0x00000000) { if (uy==0x7ff00000) { if (dy==0x00000000) return qpi.d; } else if (uy==0xfff00000) { if (dy==0x00000000) return mqpi.d; } else { if ((uy&0x80000000)==0x00000000) return zero.d; else return mzero.d; } } } else if (ux==0xfff00000) { if (dx==0x00000000) { if (uy==0x7ff00000) { if (dy==0x00000000) return tqpi.d; } else if (uy==0xfff00000) { if (dy==0x00000000) return mtqpi.d; } else { if ((uy&0x80000000)==0x00000000) return opi.d; else return mopi.d; } } } ax = x; ay = y; de = (uy & 0x7ff00000) - (ux & 0x7ff00000); if (de>=ep) { return ((y>zero.d) ? hpi.d : mhpi.d); } else if (de<=em) { if (x>zero.d) { if ((z=ay/ax)<twom1022.d) return normalized(ax,ay,y,z); else return signArctan2(y,z); } else { return ((y>zero.d) ? opi.d : mopi.d); } } u=ay/ax; t1=134217729.0*(ax); t2=((ax)-t1)+t1; t3=(ax)-t2; t1=134217729.0*(u); t4=((u)-t1)+t1; t5=(u)-t4; v=(ax)*(u); vv=(((t2*t4-v)+t2*t5)+t3*t4)+t3*t5; du=((ay-v)-vv)/ax; v=u*u; zz=du+u*v*(d3.d+v*(d5.d+v*(d7.d+v*(d9.d+v*(d11.d+v*d13.d))))); if ((z=u+(zz-u1.d*u)) == u+(zz+u1.d*u)) return signArctan2(y,z); t1=134217729.0*(u); t2=((u)-t1)+t1; t3=(u)-t2; t1=134217729.0*(u); t4=((u)-t1)+t1; t5=(u)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((u)*(du)+(du)*(u))+t8; v=t7+t8; vv=(t7-v)+t8; s1=v*(f11.d+v*(f13.d+v*(f15.d+v*(f17.d+v*f19.d)))); t1=(f9.d)+(s1); t2=(((f9.d) < 0 ? -(f9.d) : (f9.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f9.d)-t1)+(s1))+(zero.d))+(ff9.d)) : (((((s1)-t1)+(f9.d))+(ff9.d))+(zero.d)); s2=t1+t2; ss2=(t1-s2)+t2; t1=134217729.0*(v); t2=((v)-t1)+t1; t3=(v)-t2; t1=134217729.0*(s2); t4=((s2)-t1)+t1; t5=(s2)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((v)*(ss2)+(vv)*(s2))+t8; s1=t7+t8; ss1=(t7-s1)+t8; t1=(f7.d)+(s1); t2=(((f7.d) < 0 ? -(f7.d) : (f7.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f7.d)-t1)+(s1))+(ss1))+(ff7.d)) : (((((s1)-t1)+(f7.d))+(ff7.d))+(ss1)); s2=t1+t2; ss2=(t1-s2)+t2; t1=134217729.0*(v); t2=((v)-t1)+t1; t3=(v)-t2; t1=134217729.0*(s2); t4=((s2)-t1)+t1; t5=(s2)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((v)*(ss2)+(vv)*(s2))+t8; s1=t7+t8; ss1=(t7-s1)+t8; t1=(f5.d)+(s1); t2=(((f5.d) < 0 ? -(f5.d) : (f5.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f5.d)-t1)+(s1))+(ss1))+(ff5.d)) : (((((s1)-t1)+(f5.d))+(ff5.d))+(ss1)); s2=t1+t2; ss2=(t1-s2)+t2; t1=134217729.0*(v); t2=((v)-t1)+t1; t3=(v)-t2; t1=134217729.0*(s2); t4=((s2)-t1)+t1; t5=(s2)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((v)*(ss2)+(vv)*(s2))+t8; s1=t7+t8; ss1=(t7-s1)+t8; t1=(f3.d)+(s1); t2=(((f3.d) < 0 ? -(f3.d) : (f3.d))>((s1) < 0 ? -(s1) : (s1))) ? (((((f3.d)-t1)+(s1))+(ss1))+(ff3.d)) : (((((s1)-t1)+(f3.d))+(ff3.d))+(ss1)); s2=t1+t2; ss2=(t1-s2)+t2; t1=134217729.0*(v); t2=((v)-t1)+t1; t3=(v)-t2; t1=134217729.0*(s2); t4=((s2)-t1)+t1; t5=(s2)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((v)*(ss2)+(vv)*(s2))+t8; s1=t7+t8; ss1=(t7-s1)+t8; t1=134217729.0*(u); t2=((u)-t1)+t1; t3=(u)-t2; t1=134217729.0*(s1); t4=((s1)-t1)+t1; t5=(s1)-t4; t1=t2*t4; t6=t2*t5+t3*t4; t7=t1+t6; t8=((t1-t7)+t6)+t3*t5; t8=((u)*(ss1)+(du)*(s1))+t8; s2=t7+t8; ss2=(t7-s2)+t8; t1=(u)+(s2); t2=(((u) < 0 ? -(u) : (u))>((s2) < 0 ? -(s2) : (s2))) ? (((((u)-t1)+(s2))+(ss2))+(du)) : (((((s2)-t1)+(u))+(du))+(ss2)); s1=t1+t2; ss1=(t1-s1)+t2; if ((z=s1+(ss1-u5.d*s1)) == s1+(ss1+u5.d*s1)) return signArctan2(y,z); return atan2Mp(x,y,pr); } -------------------------------------------------------------------------------- -- ______________________________________________ http://www.linuxmail.org/ Now with e-mail forwarding for only US$5.95/yr Powered by Outblaze |