< prev index next >
src/share/vm/opto/live.cpp
Print this page
*** 338,374 ****
assert(!is_derived || check->bottom_type()->is_ptr()->ptr() == TypePtr::Null,"Bad derived pointer");
} else {
assert(check->bottom_type()->is_ptr()->_offset == 0,"Bad base pointer");
// Base either ConP(NULL) or loadConP
if (check->is_Mach()) {
! assert(check->as_Mach()->ideal_Opcode() == Op_ConP,"Bad base pointer");
} else {
! assert(check->Opcode() == Op_ConP &&
check->bottom_type()->is_ptr()->ptr() == TypePtr::Null,"Bad base pointer");
}
}
} else if( check->bottom_type()->is_ptr()->_offset == 0 ) {
if(check->is_Proj() || check->is_Mach() &&
! (check->as_Mach()->ideal_Opcode() == Op_CreateEx ||
! check->as_Mach()->ideal_Opcode() == Op_ThreadLocal ||
! check->as_Mach()->ideal_Opcode() == Op_CMoveP ||
! check->as_Mach()->ideal_Opcode() == Op_CheckCastPP ||
#ifdef _LP64
! UseCompressedOops && check->as_Mach()->ideal_Opcode() == Op_CastPP ||
! UseCompressedOops && check->as_Mach()->ideal_Opcode() == Op_DecodeN ||
! UseCompressedClassPointers && check->as_Mach()->ideal_Opcode() == Op_DecodeNKlass ||
#endif
! check->as_Mach()->ideal_Opcode() == Op_LoadP ||
! check->as_Mach()->ideal_Opcode() == Op_LoadKlass)) {
// Valid nodes
} else {
check->dump();
assert(false,"Bad base or derived pointer");
}
} else {
assert(is_derived,"Bad base pointer");
! assert(check->is_Mach() && check->as_Mach()->ideal_Opcode() == Op_AddP,"Bad derived pointer");
}
k++;
assert(k < 100000,"Derived pointer checking in infinite loop");
} // End while
}
--- 338,374 ----
assert(!is_derived || check->bottom_type()->is_ptr()->ptr() == TypePtr::Null,"Bad derived pointer");
} else {
assert(check->bottom_type()->is_ptr()->_offset == 0,"Bad base pointer");
// Base either ConP(NULL) or loadConP
if (check->is_Mach()) {
! assert(check->as_Mach()->ideal_Opcode() == Opcodes::Op_ConP,"Bad base pointer");
} else {
! assert(check->Opcode() == Opcodes::Op_ConP &&
check->bottom_type()->is_ptr()->ptr() == TypePtr::Null,"Bad base pointer");
}
}
} else if( check->bottom_type()->is_ptr()->_offset == 0 ) {
if(check->is_Proj() || check->is_Mach() &&
! (check->as_Mach()->ideal_Opcode() == Opcodes::Op_CreateEx ||
! check->as_Mach()->ideal_Opcode() == Opcodes::Op_ThreadLocal ||
! check->as_Mach()->ideal_Opcode() == Opcodes::Op_CMoveP ||
! check->as_Mach()->ideal_Opcode() == Opcodes::Op_CheckCastPP ||
#ifdef _LP64
! UseCompressedOops && check->as_Mach()->ideal_Opcode() == Opcodes::Op_CastPP ||
! UseCompressedOops && check->as_Mach()->ideal_Opcode() == Opcodes::Op_DecodeN ||
! UseCompressedClassPointers && check->as_Mach()->ideal_Opcode() == Opcodes::Op_DecodeNKlass ||
#endif
! check->as_Mach()->ideal_Opcode() == Opcodes::Op_LoadP ||
! check->as_Mach()->ideal_Opcode() == Opcodes::Op_LoadKlass)) {
// Valid nodes
} else {
check->dump();
assert(false,"Bad base or derived pointer");
}
} else {
assert(is_derived,"Bad base pointer");
! assert(check->is_Mach() && check->as_Mach()->ideal_Opcode() == Opcodes::Op_AddP,"Bad derived pointer");
}
k++;
assert(k < 100000,"Derived pointer checking in infinite loop");
} // End while
}
< prev index next >