128 static jdouble f2d (jfloat x); 129 #endif // __SOFTFP__ 130 131 // double trigonometrics and transcendentals 132 static jdouble dsin(jdouble x); 133 static jdouble dcos(jdouble x); 134 static jdouble dtan(jdouble x); 135 static jdouble dlog(jdouble x); 136 static jdouble dlog10(jdouble x); 137 static jdouble dexp(jdouble x); 138 static jdouble dpow(jdouble x, jdouble y); 139 140 #if defined(__SOFTFP__) || defined(E500V2) 141 static double dabs(double f); 142 #endif 143 144 #if defined(__SOFTFP__) || defined(PPC32) 145 static double dsqrt(double f); 146 #endif 147 148 #ifdef __SOFTFP__ 149 // C++ compiler generates soft float instructions as well as passing 150 // float and double in registers. 151 static int fcmpl(float x, float y); 152 static int fcmpg(float x, float y); 153 static int dcmpl(double x, double y); 154 static int dcmpg(double x, double y); 155 156 static int unordered_fcmplt(float x, float y); 157 static int unordered_dcmplt(double x, double y); 158 static int unordered_fcmple(float x, float y); 159 static int unordered_dcmple(double x, double y); 160 static int unordered_fcmpge(float x, float y); 161 static int unordered_dcmpge(double x, double y); 162 static int unordered_fcmpgt(float x, float y); 163 static int unordered_dcmpgt(double x, double y); 164 165 static float fneg(float f); 166 static double dneg(double f); 167 #endif | 128 static jdouble f2d (jfloat x); 129 #endif // __SOFTFP__ 130 131 // double trigonometrics and transcendentals 132 static jdouble dsin(jdouble x); 133 static jdouble dcos(jdouble x); 134 static jdouble dtan(jdouble x); 135 static jdouble dlog(jdouble x); 136 static jdouble dlog10(jdouble x); 137 static jdouble dexp(jdouble x); 138 static jdouble dpow(jdouble x, jdouble y); 139 140 #if defined(__SOFTFP__) || defined(E500V2) 141 static double dabs(double f); 142 #endif 143 144 #if defined(__SOFTFP__) || defined(PPC32) 145 static double dsqrt(double f); 146 #endif 147 148 // Montgomery multiplication 149 static void montgomery_multiply(jint *a_ints, jint *b_ints, jint *n_ints, 150 jint len, jlong inv, jint *m_ints); 151 static void montgomery_square(jint *a_ints, jint *n_ints, 152 jint len, jlong inv, jint *m_ints); 153 154 #ifdef __SOFTFP__ 155 // C++ compiler generates soft float instructions as well as passing 156 // float and double in registers. 157 static int fcmpl(float x, float y); 158 static int fcmpg(float x, float y); 159 static int dcmpl(double x, double y); 160 static int dcmpg(double x, double y); 161 162 static int unordered_fcmplt(float x, float y); 163 static int unordered_dcmplt(double x, double y); 164 static int unordered_fcmple(float x, float y); 165 static int unordered_dcmple(double x, double y); 166 static int unordered_fcmpge(float x, float y); 167 static int unordered_dcmpge(double x, double y); 168 static int unordered_fcmpgt(float x, float y); 169 static int unordered_dcmpgt(double x, double y); 170 171 static float fneg(float f); 172 static double dneg(double f); 173 #endif |