comparison src/share/vm/opto/library_call.cpp @ 8076:c59b7900a2bd

8007959: Use expensive node logic for more math nodes Summary: use expensive node logic for other more math nodes. Reviewed-by: kvn
author roland
date Mon, 18 Feb 2013 09:06:24 +0100
parents 8b3da8d14c93
children 16885e702c88 3d641132f83b
comparison
equal deleted inserted replaced
8056:57b81d6c3641 8076:c59b7900a2bd
1479 // public static double Math.log10(double) 1479 // public static double Math.log10(double)
1480 bool LibraryCallKit::inline_math(vmIntrinsics::ID id) { 1480 bool LibraryCallKit::inline_math(vmIntrinsics::ID id) {
1481 Node* arg = round_double_node(argument(0)); 1481 Node* arg = round_double_node(argument(0));
1482 Node* n; 1482 Node* n;
1483 switch (id) { 1483 switch (id) {
1484 case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break; 1484 case vmIntrinsics::_dabs: n = new (C) AbsDNode( arg); break;
1485 case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(0, arg); break; 1485 case vmIntrinsics::_dsqrt: n = new (C) SqrtDNode(C, control(), arg); break;
1486 case vmIntrinsics::_dlog: n = new (C) LogDNode( arg); break; 1486 case vmIntrinsics::_dlog: n = new (C) LogDNode(C, control(), arg); break;
1487 case vmIntrinsics::_dlog10: n = new (C) Log10DNode( arg); break; 1487 case vmIntrinsics::_dlog10: n = new (C) Log10DNode(C, control(), arg); break;
1488 default: fatal_unexpected_iid(id); break; 1488 default: fatal_unexpected_iid(id); break;
1489 } 1489 }
1490 set_result(_gvn.transform(n)); 1490 set_result(_gvn.transform(n));
1491 return true; 1491 return true;
1492 } 1492 }
1497 bool LibraryCallKit::inline_trig(vmIntrinsics::ID id) { 1497 bool LibraryCallKit::inline_trig(vmIntrinsics::ID id) {
1498 Node* arg = round_double_node(argument(0)); 1498 Node* arg = round_double_node(argument(0));
1499 Node* n = NULL; 1499 Node* n = NULL;
1500 1500
1501 switch (id) { 1501 switch (id) {
1502 case vmIntrinsics::_dsin: n = new (C) SinDNode(arg); break; 1502 case vmIntrinsics::_dsin: n = new (C) SinDNode(C, control(), arg); break;
1503 case vmIntrinsics::_dcos: n = new (C) CosDNode(arg); break; 1503 case vmIntrinsics::_dcos: n = new (C) CosDNode(C, control(), arg); break;
1504 case vmIntrinsics::_dtan: n = new (C) TanDNode(arg); break; 1504 case vmIntrinsics::_dtan: n = new (C) TanDNode(C, control(), arg); break;
1505 default: fatal_unexpected_iid(id); break; 1505 default: fatal_unexpected_iid(id); break;
1506 } 1506 }
1507 n = _gvn.transform(n); 1507 n = _gvn.transform(n);
1508 1508
1509 // Rounding required? Check for argument reduction! 1509 // Rounding required? Check for argument reduction!