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
|