comparison src/share/vm/opto/doCall.cpp @ 6270:b72784e722ff

7188276: JSR 292: assert(ct == T_OBJECT) failed: rt=T_OBJECT, ct=13 Reviewed-by: kvn, jrose
author twisti
date Wed, 01 Aug 2012 14:44:26 -0700
parents 6c5b7a6becc8
children 7f813940ac35
comparison
equal deleted inserted replaced
6269:8cb110fd7627 6270:b72784e722ff
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_res("rt=%d, ct=%d", rt, ct)); 526 assert(ct == T_INT, err_msg_res("rt=%s, ct=%s", type2name(rt), type2name(ct)));
527 } 527 }
528 } else if (rt == T_OBJECT) { 528 } else if (rt == T_OBJECT || rt == T_ARRAY) {
529 assert(ct == T_OBJECT, err_msg_res("rt=T_OBJECT, ct=%d", ct)); 529 assert(ct == T_OBJECT || ct == T_ARRAY, err_msg_res("rt=%s, ct=%s", type2name(rt), type2name(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);