Merge pull request #1933 from alexrp/master
[mono.git] / mono / metadata / sysmath.c
index d354c4d0cced1b6a82961e0078b0f1886057b3a4..de24fcb0fa51d5c40bc1b613658527350e7653ed 100644 (file)
@@ -38,13 +38,12 @@ static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
 
 
 gdouble ves_icall_System_Math_Floor (gdouble x) {
-       MONO_ARCH_SAVE_REGS;
        return floor(x);
 }
 
 gdouble ves_icall_System_Math_Round (gdouble x) {
        double int_part, dec_part;
-       MONO_ARCH_SAVE_REGS;
+
        int_part = floor(x);
        dec_part = x - int_part;
        if (((dec_part == 0.5) &&
@@ -61,13 +60,10 @@ gdouble ves_icall_System_Math_Round2 (gdouble value, gint32 digits, gboolean awa
 #endif
        double p;
 
-       MONO_ARCH_SAVE_REGS;
        if (value == HUGE_VAL)
                return HUGE_VAL;
        if (value == -HUGE_VAL)
                return -HUGE_VAL;
-       if (digits == 0)
-               return ves_icall_System_Math_Round(value);
        p = pow(10, digits);
 #if defined (HAVE_ROUND) && defined (HAVE_RINT)
        if (away_from_zero)
@@ -97,56 +93,42 @@ gdouble ves_icall_System_Math_Round2 (gdouble value, gint32 digits, gboolean awa
 gdouble 
 ves_icall_System_Math_Sin (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return sin (x);
 }
 
 gdouble 
 ves_icall_System_Math_Cos (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return cos (x);
 }
 
 gdouble 
 ves_icall_System_Math_Tan (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return tan (x);
 }
 
 gdouble 
 ves_icall_System_Math_Sinh (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return sinh (x);
 }
 
 gdouble 
 ves_icall_System_Math_Cosh (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return cosh (x);
 }
 
 gdouble 
 ves_icall_System_Math_Tanh (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return tanh (x);
 }
 
 gdouble 
 ves_icall_System_Math_Acos (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        if (x < -1 || x > 1)
                return NAN;
 
@@ -156,8 +138,6 @@ ves_icall_System_Math_Acos (gdouble x)
 gdouble 
 ves_icall_System_Math_Asin (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        if (x < -1 || x > 1)
                return NAN;
 
@@ -167,8 +147,6 @@ ves_icall_System_Math_Asin (gdouble x)
 gdouble 
 ves_icall_System_Math_Atan (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return atan (x);
 }
 
@@ -176,7 +154,6 @@ gdouble
 ves_icall_System_Math_Atan2 (gdouble y, gdouble x)
 {
        double result;
-       MONO_ARCH_SAVE_REGS;
 
        if ((y == HUGE_VAL && x == HUGE_VAL) ||
                (y == HUGE_VAL && x == -HUGE_VAL) ||
@@ -191,16 +168,12 @@ ves_icall_System_Math_Atan2 (gdouble y, gdouble x)
 gdouble 
 ves_icall_System_Math_Exp (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        return exp (x);
 }
 
 gdouble 
 ves_icall_System_Math_Log (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        if (x == 0)
                return -HUGE_VAL;
        else if (x < 0)
@@ -212,8 +185,6 @@ ves_icall_System_Math_Log (gdouble x)
 gdouble 
 ves_icall_System_Math_Log10 (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        if (x == 0)
                return -HUGE_VAL;
        else if (x < 0)
@@ -226,7 +197,6 @@ gdouble
 ves_icall_System_Math_Pow (gdouble x, gdouble y)
 {
        double result;
-       MONO_ARCH_SAVE_REGS;
 
        if (isnan(x) || isnan(y)) {
                return NAN;
@@ -261,8 +231,6 @@ ves_icall_System_Math_Pow (gdouble x, gdouble y)
 gdouble 
 ves_icall_System_Math_Sqrt (gdouble x)
 {
-       MONO_ARCH_SAVE_REGS;
-
        if (x < 0)
                return NAN;