< prev index next >

src/share/vm/opto/shenandoahSupport.cpp

Print this page
rev 13058 : Use unsigned comparison, fixes warnings in build.


 974           n->dump(10);
 975           ShouldNotReachHere();
 976         }
 977       } else if (strlen(call->_name) > 5 &&
 978                  !strcmp(call->_name + strlen(call->_name) - 5, "_fill")) {
 979         if (!ShenandoahBarrierNode::verify_helper(n->in(TypeFunc::Parms), phis, visited, ShenandoahStore, trace, barriers_used)) {
 980           n->dump(10);
 981           ShouldNotReachHere();
 982         }
 983       } else if (!strcmp(call->_name, "g1_wb_pre")) {
 984         // skip
 985       } else {
 986         const int calls_len = sizeof(calls) / sizeof(calls[0]);
 987         int i = 0;
 988         for (; i < calls_len; i++) {
 989           if (!strcmp(calls[i].name, call->_name)) {
 990             break;
 991           }
 992         }
 993         if (i != calls_len) {
 994           const int args_len = sizeof(calls[0].args) / sizeof(calls[0].args[0]);
 995           for (uint j = 0; j < args_len; j++) {
 996             int pos = calls[i].args[j].pos;
 997             if (pos == -1) {
 998               break;
 999             }
1000             if (!ShenandoahBarrierNode::verify_helper(call->in(pos), phis, visited, calls[i].args[j].t, trace, barriers_used)) {
1001               n->dump(10);
1002               ShouldNotReachHere();
1003             }
1004           }
1005           for (uint j = TypeFunc::Parms; j < call->req(); j++) {
1006             if (call->in(j)->bottom_type()->make_ptr() &&
1007                 call->in(j)->bottom_type()->make_ptr()->isa_oopptr()) {
1008               uint k = 0;
1009               for (; k < args_len && calls[i].args[k].pos != (int)j; k++);
1010               if (k == args_len) {
1011                 fatal("arg %d for call %s not covered", j, call->_name);
1012               }
1013             }
1014           }


1069         { { 2, ShenandoahLoad },                  { 3, ShenandoahLoad } },
1070         Op_EncodeISOArray,
1071         { { 2, ShenandoahLoad },                  { 3, ShenandoahStore } },
1072         Op_HasNegatives,
1073         { { 2, ShenandoahLoad },                  { -1, ShenandoahNone} },
1074         Op_CastP2X,
1075         { { 1, ShenandoahLoad },                  { -1, ShenandoahNone} },
1076         Op_StrIndexOfChar,
1077         { { 2, ShenandoahLoad },                  { -1, ShenandoahNone } },
1078       };
1079 
1080       const int others_len = sizeof(others) / sizeof(others[0]);
1081       int i = 0;
1082       for (; i < others_len; i++) {
1083         if (others[i].opcode == n->Opcode()) {
1084           break;
1085         }
1086       }
1087       uint stop = n->is_Call() ? n->as_Call()->tf()->domain()->cnt() : n->req();
1088       if (i != others_len) {
1089         const int inputs_len = sizeof(others[0].inputs) / sizeof(others[0].inputs[0]);
1090         for (uint j = 0; j < inputs_len; j++) {
1091           int pos = others[i].inputs[j].pos;
1092           if (pos == -1) {
1093             break;
1094           }
1095           if (!ShenandoahBarrierNode::verify_helper(n->in(pos), phis, visited, others[i].inputs[j].t, trace, barriers_used)) {
1096             n->dump(10);
1097             ShouldNotReachHere();
1098           }
1099         }
1100         for (uint j = 1; j < stop; j++) {
1101           if (n->in(j) != NULL && n->in(j)->bottom_type()->make_ptr() &&
1102               n->in(j)->bottom_type()->make_ptr()->make_oopptr()) {
1103             uint k = 0;
1104             for (; k < inputs_len && others[i].inputs[k].pos != (int)j; k++);
1105             if (k == inputs_len) {
1106               fatal("arg %d for node %s not covered", j, n->Name());
1107             }
1108           }
1109         }




 974           n->dump(10);
 975           ShouldNotReachHere();
 976         }
 977       } else if (strlen(call->_name) > 5 &&
 978                  !strcmp(call->_name + strlen(call->_name) - 5, "_fill")) {
 979         if (!ShenandoahBarrierNode::verify_helper(n->in(TypeFunc::Parms), phis, visited, ShenandoahStore, trace, barriers_used)) {
 980           n->dump(10);
 981           ShouldNotReachHere();
 982         }
 983       } else if (!strcmp(call->_name, "g1_wb_pre")) {
 984         // skip
 985       } else {
 986         const int calls_len = sizeof(calls) / sizeof(calls[0]);
 987         int i = 0;
 988         for (; i < calls_len; i++) {
 989           if (!strcmp(calls[i].name, call->_name)) {
 990             break;
 991           }
 992         }
 993         if (i != calls_len) {
 994           const uint args_len = sizeof(calls[0].args) / sizeof(calls[0].args[0]);
 995           for (uint j = 0; j < args_len; j++) {
 996             int pos = calls[i].args[j].pos;
 997             if (pos == -1) {
 998               break;
 999             }
1000             if (!ShenandoahBarrierNode::verify_helper(call->in(pos), phis, visited, calls[i].args[j].t, trace, barriers_used)) {
1001               n->dump(10);
1002               ShouldNotReachHere();
1003             }
1004           }
1005           for (uint j = TypeFunc::Parms; j < call->req(); j++) {
1006             if (call->in(j)->bottom_type()->make_ptr() &&
1007                 call->in(j)->bottom_type()->make_ptr()->isa_oopptr()) {
1008               uint k = 0;
1009               for (; k < args_len && calls[i].args[k].pos != (int)j; k++);
1010               if (k == args_len) {
1011                 fatal("arg %d for call %s not covered", j, call->_name);
1012               }
1013             }
1014           }


1069         { { 2, ShenandoahLoad },                  { 3, ShenandoahLoad } },
1070         Op_EncodeISOArray,
1071         { { 2, ShenandoahLoad },                  { 3, ShenandoahStore } },
1072         Op_HasNegatives,
1073         { { 2, ShenandoahLoad },                  { -1, ShenandoahNone} },
1074         Op_CastP2X,
1075         { { 1, ShenandoahLoad },                  { -1, ShenandoahNone} },
1076         Op_StrIndexOfChar,
1077         { { 2, ShenandoahLoad },                  { -1, ShenandoahNone } },
1078       };
1079 
1080       const int others_len = sizeof(others) / sizeof(others[0]);
1081       int i = 0;
1082       for (; i < others_len; i++) {
1083         if (others[i].opcode == n->Opcode()) {
1084           break;
1085         }
1086       }
1087       uint stop = n->is_Call() ? n->as_Call()->tf()->domain()->cnt() : n->req();
1088       if (i != others_len) {
1089         const uint inputs_len = sizeof(others[0].inputs) / sizeof(others[0].inputs[0]);
1090         for (uint j = 0; j < inputs_len; j++) {
1091           int pos = others[i].inputs[j].pos;
1092           if (pos == -1) {
1093             break;
1094           }
1095           if (!ShenandoahBarrierNode::verify_helper(n->in(pos), phis, visited, others[i].inputs[j].t, trace, barriers_used)) {
1096             n->dump(10);
1097             ShouldNotReachHere();
1098           }
1099         }
1100         for (uint j = 1; j < stop; j++) {
1101           if (n->in(j) != NULL && n->in(j)->bottom_type()->make_ptr() &&
1102               n->in(j)->bottom_type()->make_ptr()->make_oopptr()) {
1103             uint k = 0;
1104             for (; k < inputs_len && others[i].inputs[k].pos != (int)j; k++);
1105             if (k == inputs_len) {
1106               fatal("arg %d for node %s not covered", j, n->Name());
1107             }
1108           }
1109         }


< prev index next >