1 /* |
1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
110 }; |
110 }; |
111 |
111 |
112 #ifndef PRODUCT |
112 #ifndef PRODUCT |
113 void ParmNode::dump_spec(outputStream *st) const { |
113 void ParmNode::dump_spec(outputStream *st) const { |
114 if( _con < TypeFunc::Parms ) { |
114 if( _con < TypeFunc::Parms ) { |
115 st->print(names[_con]); |
115 st->print("%s", names[_con]); |
116 } else { |
116 } else { |
117 st->print("Parm%d: ",_con-TypeFunc::Parms); |
117 st->print("Parm%d: ",_con-TypeFunc::Parms); |
118 // Verbose and WizardMode dump bottom_type for all nodes |
118 // Verbose and WizardMode dump bottom_type for all nodes |
119 if( !Verbose && !WizardMode ) bottom_type()->dump_on(st); |
119 if( !Verbose && !WizardMode ) bottom_type()->dump_on(st); |
120 } |
120 } |
346 assert( t == TypePtr::NULL_PTR || n->in_dump(), "" ); |
346 assert( t == TypePtr::NULL_PTR || n->in_dump(), "" ); |
347 st->print(" %s%d]=#NULL",msg,i); |
347 st->print(" %s%d]=#NULL",msg,i); |
348 break; |
348 break; |
349 case Type::AryPtr: |
349 case Type::AryPtr: |
350 case Type::InstPtr: |
350 case Type::InstPtr: |
351 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->isa_oopptr()->const_oop()); |
351 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->isa_oopptr()->const_oop())); |
352 break; |
352 break; |
353 case Type::KlassPtr: |
353 case Type::KlassPtr: |
354 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->make_ptr()->isa_klassptr()->klass()); |
354 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_klassptr()->klass())); |
355 break; |
355 break; |
356 case Type::MetadataPtr: |
356 case Type::MetadataPtr: |
357 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->make_ptr()->isa_metadataptr()->metadata()); |
357 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_metadataptr()->metadata())); |
358 break; |
358 break; |
359 case Type::NarrowOop: |
359 case Type::NarrowOop: |
360 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->make_ptr()->isa_oopptr()->const_oop()); |
360 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,p2i(t->make_ptr()->isa_oopptr()->const_oop())); |
361 break; |
361 break; |
362 case Type::RawPtr: |
362 case Type::RawPtr: |
363 st->print(" %s%d]=#Raw" INTPTR_FORMAT,msg,i,t->is_rawptr()); |
363 st->print(" %s%d]=#Raw" INTPTR_FORMAT,msg,i,p2i(t->is_rawptr())); |
364 break; |
364 break; |
365 case Type::DoubleCon: |
365 case Type::DoubleCon: |
366 st->print(" %s%d]=#%fD",msg,i,t->is_double_constant()->_d); |
366 st->print(" %s%d]=#%fD",msg,i,t->is_double_constant()->_d); |
367 break; |
367 break; |
368 case Type::FloatCon: |
368 case Type::FloatCon: |
369 st->print(" %s%d]=#%fF",msg,i,t->is_float_constant()->_f); |
369 st->print(" %s%d]=#%fF",msg,i,t->is_float_constant()->_f); |
370 break; |
370 break; |
371 case Type::Long: |
371 case Type::Long: |
372 st->print(" %s%d]=#"INT64_FORMAT,msg,i,t->is_long()->get_con()); |
372 st->print(" %s%d]=#"INT64_FORMAT,msg,i,(int64_t)(t->is_long()->get_con())); |
373 break; |
373 break; |
374 case Type::Half: |
374 case Type::Half: |
375 case Type::Top: |
375 case Type::Top: |
376 st->print(" %s%d]=_",msg,i); |
376 st->print(" %s%d]=_",msg,i); |
377 break; |
377 break; |
426 format_helper(regalloc, st, obj, obj_msg, i, &scobjs); |
426 format_helper(regalloc, st, obj, obj_msg, i, &scobjs); |
427 } |
427 } |
428 |
428 |
429 for (i = 0; i < (uint)scobjs.length(); i++) { |
429 for (i = 0; i < (uint)scobjs.length(); i++) { |
430 // Scalar replaced objects. |
430 // Scalar replaced objects. |
431 st->print_cr(""); |
431 st->cr(); |
432 st->print(" # ScObj" INT32_FORMAT " ", i); |
432 st->print(" # ScObj" INT32_FORMAT " ", i); |
433 SafePointScalarObjectNode* spobj = scobjs.at(i); |
433 SafePointScalarObjectNode* spobj = scobjs.at(i); |
434 ciKlass* cik = spobj->bottom_type()->is_oopptr()->klass(); |
434 ciKlass* cik = spobj->bottom_type()->is_oopptr()->klass(); |
435 assert(cik->is_instance_klass() || |
435 assert(cik->is_instance_klass() || |
436 cik->is_array_klass(), "Not supported allocation."); |
436 cik->is_array_klass(), "Not supported allocation."); |