+1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
+
+ * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
+ _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
+ sf_to_df, df_to_sf): Fix potential problem with alias analysis.
+
Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
* jump.c (delete_prior_computation): Also check calls
fp_number_type b;
fp_number_type tmp;
fp_number_type *res;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
res = _fpadd_parts (&a, &b, &tmp);
fp_number_type b;
fp_number_type tmp;
fp_number_type *res;
+ FLO_union_type au, bu;
+
+ au.value = arg_a;
+ bu.value = arg_b;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
b.sign ^= 1;
fp_number_type b;
fp_number_type tmp;
fp_number_type *res;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
res = _fpmul_parts (&a, &b, &tmp);
fp_number_type a;
fp_number_type b;
fp_number_type *res;
+ FLO_union_type au, bu;
+
+ au.value = arg_a;
+ bu.value = arg_b;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
res = _fpdiv_parts (&a, &b);
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
return __fpcmp_parts (&a, &b);
}
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
+
+ au.value = arg_a;
+ bu.value = arg_b;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return 1; /* false, truth == 0 */
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return 1; /* true, truth != 0 */
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
+
+ au.value = arg_a;
+ bu.value = arg_b;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return -1; /* false, truth > 0 */
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return -1; /* false, truth >= 0 */
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
+
+ au.value = arg_a;
+ bu.value = arg_b;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return 1; /* false, truth < 0 */
{
fp_number_type a;
fp_number_type b;
+ FLO_union_type au, bu;
- unpack_d ((FLO_union_type *) & arg_a, &a);
- unpack_d ((FLO_union_type *) & arg_b, &b);
+ au.value = arg_a;
+ bu.value = arg_b;
+
+ unpack_d (&au, &a);
+ unpack_d (&bu, &b);
if (isnan (&a) || isnan (&b))
return 1; /* false, truth <= 0 */
{
fp_number_type a;
SItype tmp;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &a);
- unpack_d ((FLO_union_type *) & arg_a, &a);
if (iszero (&a))
return 0;
if (isnan (&a))
float_to_usi (FLO_type arg_a)
{
fp_number_type a;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &a);
- unpack_d ((FLO_union_type *) & arg_a, &a);
if (iszero (&a))
return 0;
if (isnan (&a))
negate (FLO_type arg_a)
{
fp_number_type a;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &a);
- unpack_d ((FLO_union_type *) & arg_a, &a);
flip_sign (&a);
return pack_d (&a);
}
sf_to_df (SFtype arg_a)
{
fp_number_type in;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &in);
- unpack_d ((FLO_union_type *) & arg_a, &in);
return __make_dp (in.class, in.sign, in.normal_exp,
((UDItype) in.fraction.ll) << F_D_BITOFF);
}
{
fp_number_type in;
USItype sffrac;
+ FLO_union_type au;
- unpack_d ((FLO_union_type *) & arg_a, &in);
+ au.value = arg_a;
+ unpack_d (&au, &in);
sffrac = in.fraction.ll >> F_D_BITOFF;