comparison src/share/vm/c1/c1_Instruction.hpp @ 6133:c8289830e172

7172843: C1: fix "assert(has_printable_bci()) failed: _printable_bci should have been set" Reviewed-by: twisti Contributed-by: Krystal Mok <sajia@taobao.com>
author twisti
date Wed, 30 May 2012 12:17:07 -0700
parents 701a83c86f28
children 1d7922586cf6
comparison
equal deleted inserted replaced
6132:4d8787136e08 6133:c8289830e172
300 friend class UseCountComputer; 300 friend class UseCountComputer;
301 friend class BlockBegin; 301 friend class BlockBegin;
302 302
303 void update_exception_state(ValueStack* state); 303 void update_exception_state(ValueStack* state);
304 304
305 bool has_printable_bci() const { return NOT_PRODUCT(_printable_bci != -99) PRODUCT_ONLY(false); }
306
307 protected: 305 protected:
308 void set_type(ValueType* type) { 306 void set_type(ValueType* type) {
309 assert(type != NULL, "type must exist"); 307 assert(type != NULL, "type must exist");
310 _type = type; 308 _type = type;
311 } 309 }
390 } 388 }
391 389
392 // accessors 390 // accessors
393 int id() const { return _id; } 391 int id() const { return _id; }
394 #ifndef PRODUCT 392 #ifndef PRODUCT
393 bool has_printable_bci() const { return _printable_bci != -99; }
395 int printable_bci() const { assert(has_printable_bci(), "_printable_bci should have been set"); return _printable_bci; } 394 int printable_bci() const { assert(has_printable_bci(), "_printable_bci should have been set"); return _printable_bci; }
396 void set_printable_bci(int bci) { NOT_PRODUCT(_printable_bci = bci;) } 395 void set_printable_bci(int bci) { _printable_bci = bci; }
397 #endif 396 #endif
398 int use_count() const { return _use_count; } 397 int use_count() const { return _use_count; }
399 int pin_state() const { return _pin_state; } 398 int pin_state() const { return _pin_state; }
400 bool is_pinned() const { return _pin_state != 0 || PinAllInstructions; } 399 bool is_pinned() const { return _pin_state != 0 || PinAllInstructions; }
401 ValueType* type() const { return _type; } 400 ValueType* type() const { return _type; }
574 : Instruction(type->base()) 573 : Instruction(type->base())
575 , _pf_flags(0) 574 , _pf_flags(0)
576 , _block(b) 575 , _block(b)
577 , _index(index) 576 , _index(index)
578 { 577 {
578 NOT_PRODUCT(set_printable_bci(Value(b)->printable_bci()));
579 if (type->is_illegal()) { 579 if (type->is_illegal()) {
580 make_illegal(); 580 make_illegal();
581 } 581 }
582 } 582 }
583 583
629 // creation 629 // creation
630 Local(ciType* declared, ValueType* type, int index) 630 Local(ciType* declared, ValueType* type, int index)
631 : Instruction(type) 631 : Instruction(type)
632 , _java_index(index) 632 , _java_index(index)
633 , _declared_type(declared) 633 , _declared_type(declared)
634 {} 634 {
635 NOT_PRODUCT(set_printable_bci(-1));
636 }
635 637
636 // accessors 638 // accessors
637 int java_index() const { return _java_index; } 639 int java_index() const { return _java_index; }
638 640
639 ciType* declared_type() const { return _declared_type; } 641 ciType* declared_type() const { return _declared_type; }