comparison src/bytecode.c @ 1995:4e6a63799f08

[xemacs-hg @ 2004-04-07 03:48:58 by james] Fix various ICC warnings and compilation errors.
author james
date Wed, 07 Apr 2004 03:49:00 +0000
parents 9c872f33ecbe
children 04bc9d2f42c7
comparison
equal deleted inserted replaced
1994:cb7f3be19e9f 1995:4e6a63799f08
302 #endif 302 #endif
303 #ifdef HAVE_RATIO 303 #ifdef HAVE_RATIO
304 case RATIO_T: 304 case RATIO_T:
305 return ratio_cmp (XRATIO_DATA (obj1), XRATIO_DATA (obj2)); 305 return ratio_cmp (XRATIO_DATA (obj1), XRATIO_DATA (obj2));
306 #endif 306 #endif
307 case FLOAT_T:
308 {
309 double dval1 = XFLOAT_DATA (obj1), dval2 = XFLOAT_DATA (obj2);
310 return dval1 < dval2 ? -1 : dval1 > dval2 ? 1 : 0;
311 }
312 #ifdef HAVE_BIGFLOAT 307 #ifdef HAVE_BIGFLOAT
313 case BIGFLOAT_T: 308 case BIGFLOAT_T:
314 return bigfloat_cmp (XBIGFLOAT_DATA (obj1), XBIGFLOAT_DATA (obj2)); 309 return bigfloat_cmp (XBIGFLOAT_DATA (obj1), XBIGFLOAT_DATA (obj2));
315 #endif 310 #endif
311 default: /* FLOAT_T */
312 {
313 double dval1 = XFLOAT_DATA (obj1), dval2 = XFLOAT_DATA (obj2);
314 return dval1 < dval2 ? -1 : dval1 > dval2 ? 1 : 0;
315 }
316 } 316 }
317 #else /* !WITH_NUMBER_TYPES */ 317 #else /* !WITH_NUMBER_TYPES */
318 retry: 318 retry:
319 319
320 { 320 {
451 return ratio_lt (XRATIO_DATA (obj1), XRATIO_DATA (obj2)) 451 return ratio_lt (XRATIO_DATA (obj1), XRATIO_DATA (obj2))
452 ? obj1 : obj2; 452 ? obj1 : obj2;
453 } 453 }
454 return make_ratio_rt (scratch_ratio); 454 return make_ratio_rt (scratch_ratio);
455 #endif 455 #endif
456 case FLOAT_T:
457 {
458 double dval1 = XFLOAT_DATA (obj1), dval2 = XFLOAT_DATA (obj2);
459 switch (opcode)
460 {
461 case Bplus: dval1 += dval2; break;
462 case Bdiff: dval1 -= dval2; break;
463 case Bmult: dval1 *= dval2; break;
464 case Bquo:
465 if (dval2 == 0.0) Fsignal (Qarith_error, Qnil);
466 dval1 /= dval2;
467 break;
468 case Bmax: if (dval1 < dval2) dval1 = dval2; break;
469 case Bmin: if (dval1 > dval2) dval1 = dval2; break;
470 }
471 return make_float (dval1);
472 }
473 #ifdef HAVE_BIGFLOAT 456 #ifdef HAVE_BIGFLOAT
474 case BIGFLOAT_T: 457 case BIGFLOAT_T:
475 bigfloat_set_prec (scratch_bigfloat, max (XBIGFLOAT_GET_PREC (obj1), 458 bigfloat_set_prec (scratch_bigfloat, max (XBIGFLOAT_GET_PREC (obj1),
476 XBIGFLOAT_GET_PREC (obj2))); 459 XBIGFLOAT_GET_PREC (obj2)));
477 switch (opcode) 460 switch (opcode)
501 return bigfloat_lt (XBIGFLOAT_DATA (obj1), XBIGFLOAT_DATA (obj2)) 484 return bigfloat_lt (XBIGFLOAT_DATA (obj1), XBIGFLOAT_DATA (obj2))
502 ? obj1 : obj2; 485 ? obj1 : obj2;
503 } 486 }
504 return make_bigfloat_bf (scratch_bigfloat); 487 return make_bigfloat_bf (scratch_bigfloat);
505 #endif 488 #endif
489 default: /* FLOAT_T */
490 {
491 double dval1 = XFLOAT_DATA (obj1), dval2 = XFLOAT_DATA (obj2);
492 switch (opcode)
493 {
494 case Bplus: dval1 += dval2; break;
495 case Bdiff: dval1 -= dval2; break;
496 case Bmult: dval1 *= dval2; break;
497 case Bquo:
498 if (dval2 == 0.0) Fsignal (Qarith_error, Qnil);
499 dval1 /= dval2;
500 break;
501 case Bmax: if (dval1 < dval2) dval1 = dval2; break;
502 case Bmin: if (dval1 > dval2) dval1 = dval2; break;
503 }
504 return make_float (dval1);
505 }
506 } 506 }
507 #else /* !WITH_NUMBER_TYPES */ 507 #else /* !WITH_NUMBER_TYPES */
508 EMACS_INT ival1, ival2; 508 EMACS_INT ival1, ival2;
509 int float_p; 509 int float_p;
510 510