hotspot/src/share/vm/opto/doCall.cpp
changeset 13393 f0344cc50a90
parent 13392 1ef07ae0723d
child 13395 edf37d840190
equal deleted inserted replaced
13392:1ef07ae0723d 13393:f0344cc50a90
   521             retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(24)) );
   521             retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(24)) );
   522           } else if (ct == T_SHORT) {
   522           } else if (ct == T_SHORT) {
   523             retnode = _gvn.transform( new (C, 3) LShiftINode(retnode, intcon(16)) );
   523             retnode = _gvn.transform( new (C, 3) LShiftINode(retnode, intcon(16)) );
   524             retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(16)) );
   524             retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(16)) );
   525           } else {
   525           } else {
   526             assert(ct == T_INT, err_msg("rt=%d, ct=%d", rt, ct));
   526             assert(ct == T_INT, err_msg_res("rt=%d, ct=%d", rt, ct));
   527           }
   527           }
   528         } else if (rt == T_OBJECT) {
   528         } else if (rt == T_OBJECT) {
   529           assert(ct == T_OBJECT, err_msg("rt=T_OBJECT, ct=%d", ct));
   529           assert(ct == T_OBJECT, err_msg_res("rt=T_OBJECT, ct=%d", ct));
   530           if (ctype->is_loaded()) {
   530           if (ctype->is_loaded()) {
   531             Node* if_fail = top();
   531             Node* if_fail = top();
   532             retnode = gen_checkcast(retnode, makecon(TypeKlassPtr::make(ctype->as_klass())), &if_fail);
   532             retnode = gen_checkcast(retnode, makecon(TypeKlassPtr::make(ctype->as_klass())), &if_fail);
   533             if (if_fail != top()) {
   533             if (if_fail != top()) {
   534               PreserveJVMState pjvms(this);
   534               PreserveJVMState pjvms(this);
   537             }
   537             }
   538             pop();
   538             pop();
   539             push(retnode);
   539             push(retnode);
   540           }
   540           }
   541         } else {
   541         } else {
   542           assert(ct == rt, err_msg("unexpected mismatch rt=%d, ct=%d", rt, ct));
   542           assert(ct == rt, err_msg_res("unexpected mismatch rt=%d, ct=%d", rt, ct));
   543           // push a zero; it's better than getting an oop/int mismatch
   543           // push a zero; it's better than getting an oop/int mismatch
   544           retnode = pop_node(rt);
   544           retnode = pop_node(rt);
   545           retnode = zerocon(ct);
   545           retnode = zerocon(ct);
   546           push_node(ct, retnode);
   546           push_node(ct, retnode);
   547         }
   547         }