< prev index next >
src/share/vm/opto/library_call.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1999, 2015, 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) 1999, 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.
*** 3826,3837 ****
ciMethod* method = callee();
int vtable_index = method->vtable_index();
assert(vtable_index >= 0 || vtable_index == Method::nonvirtual_vtable_index,
"bad index %d", vtable_index);
// Get the Method* out of the appropriate vtable entry.
! int entry_offset = (InstanceKlass::vtable_start_offset() +
! vtable_index*vtableEntry::size()) * wordSize +
vtableEntry::method_offset_in_bytes();
Node* entry_addr = basic_plus_adr(obj_klass, entry_offset);
Node* target_call = make_load(NULL, entry_addr, TypePtr::NOTNULL, T_ADDRESS, MemNode::unordered);
// Compare the target method with the expected method (e.g., Object.hashCode).
--- 3826,3837 ----
ciMethod* method = callee();
int vtable_index = method->vtable_index();
assert(vtable_index >= 0 || vtable_index == Method::nonvirtual_vtable_index,
"bad index %d", vtable_index);
// Get the Method* out of the appropriate vtable entry.
! int entry_offset = in_bytes(InstanceKlass::vtable_start_offset()) +
! vtable_index*vtableEntry::size_in_bytes() +
vtableEntry::method_offset_in_bytes();
Node* entry_addr = basic_plus_adr(obj_klass, entry_offset);
Node* target_call = make_load(NULL, entry_addr, TypePtr::NOTNULL, T_ADDRESS, MemNode::unordered);
// Compare the target method with the expected method (e.g., Object.hashCode).
< prev index next >