7152957: VM crashes with assert(false) failed: bad AD file

Reviewed-by: kvn, never
This commit is contained in:
Nils Eliasson 2012-03-12 15:28:07 -07:00 committed by Tom Rodriguez
parent db0efee3d4
commit 7b7d3507db
4 changed files with 20 additions and 2 deletions

View File

@ -1832,6 +1832,8 @@ const bool Matcher::match_rule_supported(int opcode) {
case Op_CountLeadingZerosL:
case Op_CountTrailingZerosI:
case Op_CountTrailingZerosL:
case Op_PopCountI:
case Op_PopCountL:
if (!UsePopCountInstruction)
return false;
break;

View File

@ -1293,6 +1293,14 @@ const bool Matcher::match_rule_supported(int opcode) {
if (!has_match_rule(opcode))
return false;
switch (opcode) {
case Op_PopCountI:
case Op_PopCountL:
if (!UsePopCountInstruction)
return false;
break;
}
return true; // Per default match rules are supported.
}

View File

@ -1714,6 +1714,14 @@ const bool Matcher::match_rule_supported(int opcode) {
if (!has_match_rule(opcode))
return false;
switch (opcode) {
case Op_PopCountI:
case Op_PopCountL:
if (!UsePopCountInstruction)
return false;
break;
}
return true; // Per default match rules are supported.
}

View File

@ -338,11 +338,11 @@ CallGenerator* Compile::make_vm_intrinsic(ciMethod* m, bool is_virtual) {
break;
case vmIntrinsics::_bitCount_i:
if (!Matcher::has_match_rule(Op_PopCountI)) return NULL;
if (!Matcher::match_rule_supported(Op_PopCountI)) return NULL;
break;
case vmIntrinsics::_bitCount_l:
if (!Matcher::has_match_rule(Op_PopCountL)) return NULL;
if (!Matcher::match_rule_supported(Op_PopCountL)) return NULL;
break;
case vmIntrinsics::_numberOfLeadingZeros_i: