< prev index next >
src/cpu/ppc/vm/templateTable_ppc_64.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013, 2015 SAP AG. 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
--- 1,7 ----
/*
! * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013, 2015 SAP AG. 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
*** 3280,3292 ****
assert_different_registers(Rrecv_klass, Rtemp, Rret);
const Register Rtarget_method = Rindex;
// Get target method & entry point.
! const int base = InstanceKlass::vtable_start_offset() * wordSize;
// Calc vtable addr scale the vtable index by 8.
! __ sldi(Rindex, Rindex, exact_log2(vtableEntry::size() * wordSize));
// Load target.
__ addi(Rrecv_klass, Rrecv_klass, base + vtableEntry::method_offset_in_bytes());
__ ldx(Rtarget_method, Rindex, Rrecv_klass);
// Argument and return type profiling.
__ profile_arguments_type(Rtarget_method, Rrecv_klass /* scratch1 */, Rtemp /* scratch2 */, true);
--- 3280,3292 ----
assert_different_registers(Rrecv_klass, Rtemp, Rret);
const Register Rtarget_method = Rindex;
// Get target method & entry point.
! const int base = in_bytes(InstanceKlass::vtable_start_offset());
// Calc vtable addr scale the vtable index by 8.
! __ sldi(Rindex, Rindex, exact_log2(vtableEntry::size_in_bytes()));
// Load target.
__ addi(Rrecv_klass, Rrecv_klass, base + vtableEntry::method_offset_in_bytes());
__ ldx(Rtarget_method, Rindex, Rrecv_klass);
// Argument and return type profiling.
__ profile_arguments_type(Rtarget_method, Rrecv_klass /* scratch1 */, Rtemp /* scratch2 */, true);
< prev index next >