< prev index next >
src/share/vm/interpreter/abstractInterpreter.hpp
Print this page
rev 13183 : 8183232: Avoid resolving method_kind in AbstractInterpreter::can_be_compiled
Reviewed-by: coleenp, mdoerr, neliasso
*** 1,7 ****
/*
! * Copyright (c) 1997, 2016, 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) 1997, 2017, 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.
*** 148,158 ****
// used for bootstrapping method handles:
static void set_entry_for_kind(MethodKind k, address e);
static void print_method_kind(MethodKind kind) PRODUCT_RETURN;
! static bool can_be_compiled(methodHandle m);
// Runtime support
// length = invoke bytecode length (to advance to next bytecode)
static address deopt_entry(TosState state, int length) { ShouldNotReachHere(); return NULL; }
--- 148,177 ----
// used for bootstrapping method handles:
static void set_entry_for_kind(MethodKind k, address e);
static void print_method_kind(MethodKind kind) PRODUCT_RETURN;
! // These should never be compiled since the interpreter will prefer
! // the compiled version to the intrinsic version.
! static bool can_be_compiled(const methodHandle& m) {
! switch (m->intrinsic_id()) {
! case vmIntrinsics::_dsin : // fall thru
! case vmIntrinsics::_dcos : // fall thru
! case vmIntrinsics::_dtan : // fall thru
! case vmIntrinsics::_dabs : // fall thru
! case vmIntrinsics::_dsqrt : // fall thru
! case vmIntrinsics::_dlog : // fall thru
! case vmIntrinsics::_dlog10: // fall thru
! case vmIntrinsics::_dpow : // fall thru
! case vmIntrinsics::_dexp : // fall thru
! case vmIntrinsics::_fmaD : // fall thru
! case vmIntrinsics::_fmaF : // fall thru
! return false;
! default:
! return true;
! }
! }
// Runtime support
// length = invoke bytecode length (to advance to next bytecode)
static address deopt_entry(TosState state, int length) { ShouldNotReachHere(); return NULL; }
< prev index next >