Mercurial > hg > truffle
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; } |