Mercurial > hg > graal-compiler
diff src/share/vm/c1/c1_InstructionPrinter.cpp @ 3362:d4c1fbc3de95
7042153: guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
Summary: Handle IfOps folding properly in case of unloaded constant oop arguments
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Fri, 06 May 2011 12:12:29 -0700 |
parents | 403dc4c1d7f5 |
children | 701a83c86f28 |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_InstructionPrinter.cpp Thu May 05 21:06:14 2011 -0700 +++ b/src/share/vm/c1/c1_InstructionPrinter.cpp Fri May 06 12:12:29 2011 -0700 @@ -132,17 +132,22 @@ if (value->is_null_object()) { output()->print("null"); } else if (!value->is_loaded()) { - output()->print("<unloaded object 0x%x>", value); + output()->print("<unloaded object " PTR_FORMAT ">", value); } else if (value->is_method()) { ciMethod* m = (ciMethod*)value; output()->print("<method %s.%s>", m->holder()->name()->as_utf8(), m->name()->as_utf8()); } else { - output()->print("<object 0x%x>", value->constant_encoding()); + output()->print("<object " PTR_FORMAT ">", value->constant_encoding()); } } else if (type->as_InstanceConstant() != NULL) { - output()->print("<instance 0x%x>", type->as_InstanceConstant()->value()->constant_encoding()); + ciInstance* value = type->as_InstanceConstant()->value(); + if (value->is_loaded()) { + output()->print("<instance " PTR_FORMAT ">", value->constant_encoding()); + } else { + output()->print("<unloaded instance " PTR_FORMAT ">", value); + } } else if (type->as_ArrayConstant() != NULL) { - output()->print("<array 0x%x>", type->as_ArrayConstant()->value()->constant_encoding()); + output()->print("<array " PTR_FORMAT ">", type->as_ArrayConstant()->value()->constant_encoding()); } else if (type->as_ClassConstant() != NULL) { ciInstanceKlass* klass = type->as_ClassConstant()->value(); if (!klass->is_loaded()) {