comparison src/share/vm/c1/c1_InstructionPrinter.cpp @ 6266:1d7922586cf6

7023639: JSR 292 method handle invocation needs a fast path for compiled code 6984705: JSR 292 method handle creation should not go through JNI Summary: remove assembly code for JDK 7 chained method handles Reviewed-by: jrose, twisti, kvn, mhaupt Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author twisti
date Tue, 24 Jul 2012 10:51:00 -0700
parents 701a83c86f28
children da91efe96a93
comparison
equal deleted inserted replaced
6241:aba91a731143 6266:1d7922586cf6
135 output()->print("<unloaded object " PTR_FORMAT ">", value); 135 output()->print("<unloaded object " PTR_FORMAT ">", value);
136 } else if (value->is_method()) { 136 } else if (value->is_method()) {
137 ciMethod* m = (ciMethod*)value; 137 ciMethod* m = (ciMethod*)value;
138 output()->print("<method %s.%s>", m->holder()->name()->as_utf8(), m->name()->as_utf8()); 138 output()->print("<method %s.%s>", m->holder()->name()->as_utf8(), m->name()->as_utf8());
139 } else { 139 } else {
140 output()->print("<object " PTR_FORMAT ">", value->constant_encoding()); 140 output()->print("<object " PTR_FORMAT " klass=", value->constant_encoding());
141 print_klass(value->klass());
142 output()->print(">");
141 } 143 }
142 } else if (type->as_InstanceConstant() != NULL) { 144 } else if (type->as_InstanceConstant() != NULL) {
143 ciInstance* value = type->as_InstanceConstant()->value(); 145 ciInstance* value = type->as_InstanceConstant()->value();
144 if (value->is_loaded()) { 146 if (value->is_loaded()) {
145 output()->print("<instance " PTR_FORMAT ">", value->constant_encoding()); 147 output()->print("<instance " PTR_FORMAT " klass=", value->constant_encoding());
148 print_klass(value->klass());
149 output()->print(">");
146 } else { 150 } else {
147 output()->print("<unloaded instance " PTR_FORMAT ">", value); 151 output()->print("<unloaded instance " PTR_FORMAT ">", value);
148 } 152 }
149 } else if (type->as_ArrayConstant() != NULL) { 153 } else if (type->as_ArrayConstant() != NULL) {
150 output()->print("<array " PTR_FORMAT ">", type->as_ArrayConstant()->value()->constant_encoding()); 154 output()->print("<array " PTR_FORMAT ">", type->as_ArrayConstant()->value()->constant_encoding());
451 output()->print(" (eliminated)"); 455 output()->print(" (eliminated)");
452 } 456 }
453 } 457 }
454 458
455 459
460 void InstructionPrinter::do_TypeCast(TypeCast* x) {
461 output()->print("type_cast(");
462 print_value(x->obj());
463 output()->print(") ");
464 print_klass(x->declared_type()->klass());
465 }
466
467
456 void InstructionPrinter::do_Invoke(Invoke* x) { 468 void InstructionPrinter::do_Invoke(Invoke* x) {
457 if (x->receiver() != NULL) { 469 if (x->receiver() != NULL) {
458 print_value(x->receiver()); 470 print_value(x->receiver());
459 output()->print("."); 471 output()->print(".");
460 } 472 }