1210 index->init_req(1, __ intcon(0)); |
1210 index->init_req(1, __ intcon(0)); |
1211 kit.gvn().set_type(index, TypeInt::INT); |
1211 kit.gvn().set_type(index, TypeInt::INT); |
1212 kit.set_control(loop); |
1212 kit.set_control(loop); |
1213 Node* sizeTable = fetch_static_field(kit, size_table_field); |
1213 Node* sizeTable = fetch_static_field(kit, size_table_field); |
1214 |
1214 |
|
1215 sizeTable = kit.access_resolve(sizeTable, ACCESS_READ); |
1215 Node* value = kit.load_array_element(NULL, sizeTable, index, TypeAryPtr::INTS); |
1216 Node* value = kit.load_array_element(NULL, sizeTable, index, TypeAryPtr::INTS); |
1216 C->record_for_igvn(value); |
1217 C->record_for_igvn(value); |
1217 Node* limit = __ CmpI(phi, value); |
1218 Node* limit = __ CmpI(phi, value); |
1218 Node* limitb = __ Bool(limit, BoolTest::le); |
1219 Node* limitb = __ Bool(limit, BoolTest::le); |
1219 IfNode* iff2 = kit.create_and_map_if(kit.control(), limitb, PROB_MIN, COUNT_UNKNOWN); |
1220 IfNode* iff2 = kit.create_and_map_if(kit.control(), limitb, PROB_MIN, COUNT_UNKNOWN); |
1545 } |
1546 } |
1546 |
1547 |
1547 // Compress copy contents of the byte/char String str into dst_array starting at index start. |
1548 // Compress copy contents of the byte/char String str into dst_array starting at index start. |
1548 Node* PhaseStringOpts::copy_string(GraphKit& kit, Node* str, Node* dst_array, Node* dst_coder, Node* start) { |
1549 Node* PhaseStringOpts::copy_string(GraphKit& kit, Node* str, Node* dst_array, Node* dst_coder, Node* start) { |
1549 Node* src_array = kit.load_String_value(kit.control(), str); |
1550 Node* src_array = kit.load_String_value(kit.control(), str); |
|
1551 src_array = kit.access_resolve(src_array, ACCESS_READ); |
1550 |
1552 |
1551 IdealKit ideal(&kit, true, true); |
1553 IdealKit ideal(&kit, true, true); |
1552 IdealVariable count(ideal); __ declarations_done(); |
1554 IdealVariable count(ideal); __ declarations_done(); |
1553 |
1555 |
1554 if (str->is_Con()) { |
1556 if (str->is_Con()) { |