comparison src/share/vm/c1/c1_LIR.cpp @ 1297:c466efa608d5

6932496: c1: deoptimization of jsr subroutine fails on sparcv9 Summary: store jsr ret bci as intptr constant in c1 debug info Reviewed-by: never
author roland
date Fri, 05 Mar 2010 13:58:34 +0100
parents 3cf667df43ef
children fc2c71045ada
comparison
equal deleted inserted replaced
1296:d8e270c4f609 1297:c466efa608d5
74 return LIR_OprFact::oopConst(NULL); 74 return LIR_OprFact::oopConst(NULL);
75 } else { 75 } else {
76 return LIR_OprFact::oopConst(type->as_ObjectType()->encoding()); 76 return LIR_OprFact::oopConst(type->as_ObjectType()->encoding());
77 } 77 }
78 } 78 }
79 case addressTag: return LIR_OprFact::intConst(type->as_AddressConstant()->value()); 79 case addressTag: return LIR_OprFact::addressConst(type->as_AddressConstant()->value());
80 case intTag : return LIR_OprFact::intConst(type->as_IntConstant()->value()); 80 case intTag : return LIR_OprFact::intConst(type->as_IntConstant()->value());
81 case floatTag : return LIR_OprFact::floatConst(type->as_FloatConstant()->value()); 81 case floatTag : return LIR_OprFact::floatConst(type->as_FloatConstant()->value());
82 case longTag : return LIR_OprFact::longConst(type->as_LongConstant()->value()); 82 case longTag : return LIR_OprFact::longConst(type->as_LongConstant()->value());
83 case doubleTag : return LIR_OprFact::doubleConst(type->as_DoubleConstant()->value()); 83 case doubleTag : return LIR_OprFact::doubleConst(type->as_DoubleConstant()->value());
84 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1); 84 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1);
87 87
88 88
89 LIR_Opr LIR_OprFact::dummy_value_type(ValueType* type) { 89 LIR_Opr LIR_OprFact::dummy_value_type(ValueType* type) {
90 switch (type->tag()) { 90 switch (type->tag()) {
91 case objectTag: return LIR_OprFact::oopConst(NULL); 91 case objectTag: return LIR_OprFact::oopConst(NULL);
92 case addressTag: 92 case addressTag:return LIR_OprFact::addressConst(0);
93 case intTag: return LIR_OprFact::intConst(0); 93 case intTag: return LIR_OprFact::intConst(0);
94 case floatTag: return LIR_OprFact::floatConst(0.0); 94 case floatTag: return LIR_OprFact::floatConst(0.0);
95 case longTag: return LIR_OprFact::longConst(0); 95 case longTag: return LIR_OprFact::longConst(0);
96 case doubleTag: return LIR_OprFact::doubleConst(0.0); 96 case doubleTag: return LIR_OprFact::doubleConst(0.0);
97 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1); 97 default: ShouldNotReachHere(); return LIR_OprFact::intConst(-1);
1409 1409
1410 1410
1411 // LIR_Address 1411 // LIR_Address
1412 void LIR_Const::print_value_on(outputStream* out) const { 1412 void LIR_Const::print_value_on(outputStream* out) const {
1413 switch (type()) { 1413 switch (type()) {
1414 case T_ADDRESS:out->print("address:%d",as_jint()); break;
1414 case T_INT: out->print("int:%d", as_jint()); break; 1415 case T_INT: out->print("int:%d", as_jint()); break;
1415 case T_LONG: out->print("lng:%lld", as_jlong()); break; 1416 case T_LONG: out->print("lng:%lld", as_jlong()); break;
1416 case T_FLOAT: out->print("flt:%f", as_jfloat()); break; 1417 case T_FLOAT: out->print("flt:%f", as_jfloat()); break;
1417 case T_DOUBLE: out->print("dbl:%f", as_jdouble()); break; 1418 case T_DOUBLE: out->print("dbl:%f", as_jdouble()); break;
1418 case T_OBJECT: out->print("obj:0x%x", as_jobject()); break; 1419 case T_OBJECT: out->print("obj:0x%x", as_jobject()); break;