mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
8187684: Intrinsify Math.multiplyHigh(long, long)
Reviewed-by: kvn, aph, lucy
This commit is contained in:
parent
f651176392
commit
949f677957
4 changed files with 13 additions and 0 deletions
|
@ -231,6 +231,7 @@ class LibraryCallKit : public GraphKit {
|
|||
bool inline_math_addExactL(bool is_increment);
|
||||
bool inline_math_multiplyExactI();
|
||||
bool inline_math_multiplyExactL();
|
||||
bool inline_math_multiplyHigh();
|
||||
bool inline_math_negateExactI();
|
||||
bool inline_math_negateExactL();
|
||||
bool inline_math_subtractExactI(bool is_decrement);
|
||||
|
@ -549,6 +550,7 @@ bool LibraryCallKit::try_to_inline(int predicate) {
|
|||
case vmIntrinsics::_incrementExactL: return inline_math_addExactL(true /* increment */);
|
||||
case vmIntrinsics::_multiplyExactI: return inline_math_multiplyExactI();
|
||||
case vmIntrinsics::_multiplyExactL: return inline_math_multiplyExactL();
|
||||
case vmIntrinsics::_multiplyHigh: return inline_math_multiplyHigh();
|
||||
case vmIntrinsics::_negateExactI: return inline_math_negateExactI();
|
||||
case vmIntrinsics::_negateExactL: return inline_math_negateExactL();
|
||||
case vmIntrinsics::_subtractExactI: return inline_math_subtractExactI(false /* subtract */);
|
||||
|
@ -1897,6 +1899,11 @@ bool LibraryCallKit::inline_math_multiplyExactL() {
|
|||
return inline_math_overflow<OverflowMulLNode>(argument(0), argument(2));
|
||||
}
|
||||
|
||||
bool LibraryCallKit::inline_math_multiplyHigh() {
|
||||
set_result(_gvn.transform(new MulHiLNode(argument(0), argument(2))));
|
||||
return true;
|
||||
}
|
||||
|
||||
Node*
|
||||
LibraryCallKit::generate_min_max(vmIntrinsics::ID id, Node* x0, Node* y0) {
|
||||
// These are the candidate return value:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue