mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-26 00:23:14 +01:00
Fold in mandel's patch for ARM from #106
This commit is contained in:
@@ -487,9 +487,10 @@ Expression *Mod(Type *type, Expression *e1, Expression *e2)
|
||||
c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I;
|
||||
#elif defined(IN_GCC)
|
||||
c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2);
|
||||
#elif defined(__FreeBSD__) && __FreeBSD_version < 800000
|
||||
// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
|
||||
c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
|
||||
#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__)
|
||||
// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
|
||||
// arm also doesn't like fmodl
|
||||
c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
|
||||
#else
|
||||
c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2));
|
||||
#endif
|
||||
@@ -501,9 +502,10 @@ Expression *Mod(Type *type, Expression *e1, Expression *e2)
|
||||
c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I;
|
||||
#elif defined(IN_GCC)
|
||||
c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2);
|
||||
#elif defined(__FreeBSD__) && __FreeBSD_version < 800000
|
||||
#elif (defined(__FreeBSD__) && __FreeBSD_version < 800000) || defined(__arm__)
|
||||
// freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
|
||||
c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
|
||||
// arm also doesn't like fmodl
|
||||
c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
|
||||
#else
|
||||
c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2));
|
||||
#endif
|
||||
|
||||
@@ -828,6 +828,8 @@ int main(int argc, char *argv[], char** envp)
|
||||
global.params.llvmArch = "ppc64";
|
||||
else
|
||||
global.params.llvmArch = "ppc32";
|
||||
#elif defined(__arm__)
|
||||
global.params.llvmArch = "arm";
|
||||
#else
|
||||
#error
|
||||
#endif
|
||||
@@ -864,6 +866,12 @@ int main(int argc, char *argv[], char** envp)
|
||||
global.params.cpu = ARCHppc_64;
|
||||
//global.params.data_layout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64";
|
||||
}
|
||||
else if (strcmp(global.params.llvmArch,"arm")==0) {
|
||||
VersionCondition::addPredefinedGlobalIdent("ARM");
|
||||
global.params.isLE = true;
|
||||
global.params.is64bit = false;
|
||||
global.params.cpu = ARCHarm;
|
||||
}
|
||||
else {
|
||||
assert(0 && "Invalid arch");
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@ enum ARCH
|
||||
ARCHx86,
|
||||
ARCHx86_64,
|
||||
ARCHppc,
|
||||
ARCHppc_64
|
||||
ARCHppc_64,
|
||||
ARCHarm
|
||||
};
|
||||
enum OUTPUTFLAG
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user