equal
deleted
inserted
replaced
620 assert(kit->stopped(), "cutout code must stop, throw, return, etc."); |
620 assert(kit->stopped(), "cutout code must stop, throw, return, etc."); |
621 } |
621 } |
622 |
622 |
623 //---------------------------PreserveReexecuteState---------------------------- |
623 //---------------------------PreserveReexecuteState---------------------------- |
624 PreserveReexecuteState::PreserveReexecuteState(GraphKit* kit) { |
624 PreserveReexecuteState::PreserveReexecuteState(GraphKit* kit) { |
|
625 assert(!kit->stopped(), "must call stopped() before"); |
625 _kit = kit; |
626 _kit = kit; |
626 _sp = kit->sp(); |
627 _sp = kit->sp(); |
627 _reexecute = kit->jvms()->_reexecute; |
628 _reexecute = kit->jvms()->_reexecute; |
628 } |
629 } |
629 PreserveReexecuteState::~PreserveReexecuteState() { |
630 PreserveReexecuteState::~PreserveReexecuteState() { |
|
631 if (_kit->stopped()) return; |
630 _kit->jvms()->_reexecute = _reexecute; |
632 _kit->jvms()->_reexecute = _reexecute; |
631 _kit->set_sp(_sp); |
633 _kit->set_sp(_sp); |
632 } |
634 } |
633 |
635 |
634 //------------------------------clone_map-------------------------------------- |
636 //------------------------------clone_map-------------------------------------- |
1121 case T_ARRAY : // fall through |
1123 case T_ARRAY : // fall through |
1122 type = T_OBJECT; // simplify further tests |
1124 type = T_OBJECT; // simplify further tests |
1123 case T_OBJECT : { |
1125 case T_OBJECT : { |
1124 const Type *t = _gvn.type( value ); |
1126 const Type *t = _gvn.type( value ); |
1125 |
1127 |
1126 const TypeInstPtr* tp = t->isa_instptr(); |
1128 const TypeOopPtr* tp = t->isa_oopptr(); |
1127 if (tp != NULL && !tp->klass()->is_loaded() |
1129 if (tp != NULL && !tp->klass()->is_loaded() |
1128 // Only for do_null_check, not any of its siblings: |
1130 // Only for do_null_check, not any of its siblings: |
1129 && !assert_null && null_control == NULL) { |
1131 && !assert_null && null_control == NULL) { |
1130 // Usually, any field access or invocation on an unloaded oop type |
1132 // Usually, any field access or invocation on an unloaded oop type |
1131 // will simply fail to link, since the statically linked class is |
1133 // will simply fail to link, since the statically linked class is |