268 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dlog);
269 } else {
270 fn = CAST_FROM_FN_PTR(address, StubRoutines::dlog());
271 }
272 break;
273 case Interpreter::java_lang_math_log10 :
274 if (StubRoutines::dlog10() == NULL) {
275 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dlog10);
276 } else {
277 fn = CAST_FROM_FN_PTR(address, StubRoutines::dlog10());
278 }
279 break;
280 case Interpreter::java_lang_math_exp :
281 if (StubRoutines::dexp() == NULL) {
282 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dexp);
283 } else {
284 fn = CAST_FROM_FN_PTR(address, StubRoutines::dexp());
285 }
286 break;
287 case Interpreter::java_lang_math_pow :
288 fpargs = 2;
289 if (StubRoutines::dpow() == NULL) {
290 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dpow);
291 } else {
292 fn = CAST_FROM_FN_PTR(address, StubRoutines::dpow());
293 }
294 break;
295 default:
296 ShouldNotReachHere();
297 fn = NULL; // unreachable
298 }
299 __ mov(rscratch1, fn);
300 __ blr(rscratch1);
301 }
302
303 // Abstract method entry
304 // Attempt to execute abstract method. Throw exception
305 address TemplateInterpreterGenerator::generate_abstract_entry(void) {
306 // rmethod: Method*
307 // r13: sender SP
308
|
268 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dlog);
269 } else {
270 fn = CAST_FROM_FN_PTR(address, StubRoutines::dlog());
271 }
272 break;
273 case Interpreter::java_lang_math_log10 :
274 if (StubRoutines::dlog10() == NULL) {
275 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dlog10);
276 } else {
277 fn = CAST_FROM_FN_PTR(address, StubRoutines::dlog10());
278 }
279 break;
280 case Interpreter::java_lang_math_exp :
281 if (StubRoutines::dexp() == NULL) {
282 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dexp);
283 } else {
284 fn = CAST_FROM_FN_PTR(address, StubRoutines::dexp());
285 }
286 break;
287 case Interpreter::java_lang_math_pow :
288 if (StubRoutines::dpow() == NULL) {
289 fn = CAST_FROM_FN_PTR(address, SharedRuntime::dpow);
290 } else {
291 fn = CAST_FROM_FN_PTR(address, StubRoutines::dpow());
292 }
293 break;
294 default:
295 ShouldNotReachHere();
296 fn = NULL; // unreachable
297 }
298 __ mov(rscratch1, fn);
299 __ blr(rscratch1);
300 }
301
302 // Abstract method entry
303 // Attempt to execute abstract method. Throw exception
304 address TemplateInterpreterGenerator::generate_abstract_entry(void) {
305 // rmethod: Method*
306 // r13: sender SP
307
|