< prev index next >

src/hotspot/share/opto/doCall.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 700,711 **** // The Java code knows this, at VerifyType.isNullConversion. pop_node(rt); // whatever it was, pop it } else if (rt == T_INT || is_subword_type(rt)) { // Nothing. These cases are handled in lambda form bytecode. assert(ct == T_INT || is_subword_type(ct), "must match: rt=%s, ct=%s", type2name(rt), type2name(ct)); ! } else if (rt == T_OBJECT || rt == T_ARRAY) { ! assert(ct == T_OBJECT || ct == T_ARRAY, "rt=%s, ct=%s", type2name(rt), type2name(ct)); if (ctype->is_loaded()) { const TypeOopPtr* arg_type = TypeOopPtr::make_from_klass(rtype->as_klass()); const Type* sig_type = TypeOopPtr::make_from_klass(ctype->as_klass()); if (arg_type != NULL && !arg_type->higher_equal(sig_type)) { Node* retnode = pop(); --- 700,711 ---- // The Java code knows this, at VerifyType.isNullConversion. pop_node(rt); // whatever it was, pop it } else if (rt == T_INT || is_subword_type(rt)) { // Nothing. These cases are handled in lambda form bytecode. assert(ct == T_INT || is_subword_type(ct), "must match: rt=%s, ct=%s", type2name(rt), type2name(ct)); ! } else if (is_reference_type(rt)) { ! assert(is_reference_type(ct), "rt=%s, ct=%s", type2name(rt), type2name(ct)); if (ctype->is_loaded()) { const TypeOopPtr* arg_type = TypeOopPtr::make_from_klass(rtype->as_klass()); const Type* sig_type = TypeOopPtr::make_from_klass(ctype->as_klass()); if (arg_type != NULL && !arg_type->higher_equal(sig_type)) { Node* retnode = pop();
*** 748,758 **** set_bci(iter().next_bci()); null_assert(peek()); set_bci(iter().cur_bci()); // put it back } BasicType ct = ctype->basic_type(); ! if (ct == T_OBJECT || ct == T_ARRAY) { record_profiled_return_for_speculation(); } } // Restart record of parsing work after possible inlining of call --- 748,758 ---- set_bci(iter().next_bci()); null_assert(peek()); set_bci(iter().cur_bci()); // put it back } BasicType ct = ctype->basic_type(); ! if (is_reference_type(ct)) { record_profiled_return_for_speculation(); } } // Restart record of parsing work after possible inlining of call
< prev index next >