Tue, 13 Mar 2012 15:37:50 -0700
Merge
1.1 --- a/src/cpu/sparc/vm/sparc.ad Tue Mar 13 13:50:48 2012 -0400 1.2 +++ b/src/cpu/sparc/vm/sparc.ad Tue Mar 13 15:37:50 2012 -0700 1.3 @@ -1832,6 +1832,8 @@ 1.4 case Op_CountLeadingZerosL: 1.5 case Op_CountTrailingZerosI: 1.6 case Op_CountTrailingZerosL: 1.7 + case Op_PopCountI: 1.8 + case Op_PopCountL: 1.9 if (!UsePopCountInstruction) 1.10 return false; 1.11 break;
2.1 --- a/src/cpu/x86/vm/x86_32.ad Tue Mar 13 13:50:48 2012 -0400 2.2 +++ b/src/cpu/x86/vm/x86_32.ad Tue Mar 13 15:37:50 2012 -0700 2.3 @@ -1293,6 +1293,14 @@ 2.4 if (!has_match_rule(opcode)) 2.5 return false; 2.6 2.7 + switch (opcode) { 2.8 + case Op_PopCountI: 2.9 + case Op_PopCountL: 2.10 + if (!UsePopCountInstruction) 2.11 + return false; 2.12 + break; 2.13 + } 2.14 + 2.15 return true; // Per default match rules are supported. 2.16 } 2.17
3.1 --- a/src/cpu/x86/vm/x86_64.ad Tue Mar 13 13:50:48 2012 -0400 3.2 +++ b/src/cpu/x86/vm/x86_64.ad Tue Mar 13 15:37:50 2012 -0700 3.3 @@ -1714,6 +1714,14 @@ 3.4 if (!has_match_rule(opcode)) 3.5 return false; 3.6 3.7 + switch (opcode) { 3.8 + case Op_PopCountI: 3.9 + case Op_PopCountL: 3.10 + if (!UsePopCountInstruction) 3.11 + return false; 3.12 + break; 3.13 + } 3.14 + 3.15 return true; // Per default match rules are supported. 3.16 } 3.17
4.1 --- a/src/share/vm/opto/library_call.cpp Tue Mar 13 13:50:48 2012 -0400 4.2 +++ b/src/share/vm/opto/library_call.cpp Tue Mar 13 15:37:50 2012 -0700 4.3 @@ -338,11 +338,11 @@ 4.4 break; 4.5 4.6 case vmIntrinsics::_bitCount_i: 4.7 - if (!Matcher::has_match_rule(Op_PopCountI)) return NULL; 4.8 + if (!Matcher::match_rule_supported(Op_PopCountI)) return NULL; 4.9 break; 4.10 4.11 case vmIntrinsics::_bitCount_l: 4.12 - if (!Matcher::has_match_rule(Op_PopCountL)) return NULL; 4.13 + if (!Matcher::match_rule_supported(Op_PopCountL)) return NULL; 4.14 break; 4.15 4.16 case vmIntrinsics::_numberOfLeadingZeros_i: