comparison dmd/constfold.c @ 735:eee9efe5b51f

Attempt at getting LLVM to provide a proper target data layout. Should assert now if things are borked. Added untested support for Thumb target.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 27 Oct 2008 17:37:34 +0100
parents 6dcab994ddc3
children b30fe7e1dbb9
comparison
equal deleted inserted replaced
734:6dcab994ddc3 735:eee9efe5b51f
485 485
486 #ifdef __DMC__ 486 #ifdef __DMC__
487 c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I; 487 c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I;
488 #elif defined(IN_GCC) 488 #elif defined(IN_GCC)
489 c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2); 489 c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2);
490 #elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) 490 #elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__)
491 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?! 491 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
492 // arm also doesn't like fmodl 492 // arm also doesn't like fmodl
493 c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2)); 493 c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
494 #else 494 #else
495 c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2)); 495 c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2));
500 500
501 #ifdef __DMC__ 501 #ifdef __DMC__
502 c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I; 502 c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I;
503 #elif defined(IN_GCC) 503 #elif defined(IN_GCC)
504 c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2); 504 c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2);
505 #elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) 505 #elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__) || defined(__thumb__)
506 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?! 506 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
507 // arm also doesn't like fmodl 507 // arm also doesn't like fmodl
508 c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2)); 508 c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
509 #else 509 #else
510 c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2)); 510 c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2));