948 LIRItem* size = new LIRItem(dims->at(i), this); |
948 LIRItem* size = new LIRItem(dims->at(i), this); |
949 items->at_put(i, size); |
949 items->at_put(i, size); |
950 } |
950 } |
951 |
951 |
952 // Evaluate state_for early since it may emit code. |
952 // Evaluate state_for early since it may emit code. |
953 CodeEmitInfo* info = state_for(x, x->state()); |
|
954 CodeEmitInfo* patching_info = NULL; |
953 CodeEmitInfo* patching_info = NULL; |
955 if (!x->klass()->is_loaded() || PatchALot) { |
954 if (!x->klass()->is_loaded() || PatchALot) { |
956 patching_info = state_for(x, x->state_before()); |
955 patching_info = state_for(x, x->state_before()); |
957 |
956 |
958 // cannot re-use same xhandlers for multiple CodeEmitInfos, so |
957 // cannot re-use same xhandlers for multiple CodeEmitInfos, so |
959 // clone all handlers. |
958 // clone all handlers. This is handled transparently in other |
|
959 // places by the CodeEmitInfo cloning logic but is handled |
|
960 // specially here because a stub isn't being used. |
960 x->set_exception_handlers(new XHandlers(x->exception_handlers())); |
961 x->set_exception_handlers(new XHandlers(x->exception_handlers())); |
961 } |
962 } |
|
963 CodeEmitInfo* info = state_for(x, x->state()); |
962 |
964 |
963 i = dims->length(); |
965 i = dims->length(); |
964 while (i-- > 0) { |
966 while (i-- > 0) { |
965 LIRItem* size = items->at(i); |
967 LIRItem* size = items->at(i); |
966 size->load_item(); |
968 size->load_item(); |