equal
deleted
inserted
replaced
322 bool inline_mulAdd(); |
322 bool inline_mulAdd(); |
323 bool inline_montgomeryMultiply(); |
323 bool inline_montgomeryMultiply(); |
324 bool inline_montgomerySquare(); |
324 bool inline_montgomerySquare(); |
325 bool inline_vectorizedMismatch(); |
325 bool inline_vectorizedMismatch(); |
326 bool inline_fma(vmIntrinsics::ID id); |
326 bool inline_fma(vmIntrinsics::ID id); |
|
327 bool inline_character_compare(vmIntrinsics::ID id); |
327 |
328 |
328 bool inline_profileBoolean(); |
329 bool inline_profileBoolean(); |
329 bool inline_isCompileConstant(); |
330 bool inline_isCompileConstant(); |
330 void clear_upper_avx() { |
331 void clear_upper_avx() { |
331 #ifdef X86 |
332 #ifdef X86 |
864 return inline_hasNegatives(); |
865 return inline_hasNegatives(); |
865 |
866 |
866 case vmIntrinsics::_fmaD: |
867 case vmIntrinsics::_fmaD: |
867 case vmIntrinsics::_fmaF: |
868 case vmIntrinsics::_fmaF: |
868 return inline_fma(intrinsic_id()); |
869 return inline_fma(intrinsic_id()); |
|
870 |
|
871 case vmIntrinsics::_isDigit: |
|
872 case vmIntrinsics::_isLowerCase: |
|
873 case vmIntrinsics::_isUpperCase: |
|
874 case vmIntrinsics::_isWhitespace: |
|
875 return inline_character_compare(intrinsic_id()); |
869 |
876 |
870 default: |
877 default: |
871 // If you get here, it may be that someone has added a new intrinsic |
878 // If you get here, it may be that someone has added a new intrinsic |
872 // to the list in vmSymbols.hpp without implementing it here. |
879 // to the list in vmSymbols.hpp without implementing it here. |
873 #ifndef PRODUCT |
880 #ifndef PRODUCT |
6553 } |
6560 } |
6554 set_result(result); |
6561 set_result(result); |
6555 return true; |
6562 return true; |
6556 } |
6563 } |
6557 |
6564 |
|
6565 bool LibraryCallKit::inline_character_compare(vmIntrinsics::ID id) { |
|
6566 // argument(0) is receiver |
|
6567 Node* codePoint = argument(1); |
|
6568 Node* n = NULL; |
|
6569 |
|
6570 switch (id) { |
|
6571 case vmIntrinsics::_isDigit : |
|
6572 n = new DigitNode(control(), codePoint); |
|
6573 break; |
|
6574 case vmIntrinsics::_isLowerCase : |
|
6575 n = new LowerCaseNode(control(), codePoint); |
|
6576 break; |
|
6577 case vmIntrinsics::_isUpperCase : |
|
6578 n = new UpperCaseNode(control(), codePoint); |
|
6579 break; |
|
6580 case vmIntrinsics::_isWhitespace : |
|
6581 n = new WhitespaceNode(control(), codePoint); |
|
6582 break; |
|
6583 default: |
|
6584 fatal_unexpected_iid(id); |
|
6585 } |
|
6586 |
|
6587 set_result(_gvn.transform(n)); |
|
6588 return true; |
|
6589 } |
|
6590 |
6558 bool LibraryCallKit::inline_profileBoolean() { |
6591 bool LibraryCallKit::inline_profileBoolean() { |
6559 Node* counts = argument(1); |
6592 Node* counts = argument(1); |
6560 const TypeAryPtr* ary = NULL; |
6593 const TypeAryPtr* ary = NULL; |
6561 ciArray* aobj = NULL; |
6594 ciArray* aobj = NULL; |
6562 if (counts->is_Con() |
6595 if (counts->is_Con() |