templateTable_sparc.hpp revision 3932
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley/*
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley *
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * This code is free software; you can redistribute it and/or modify it
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * under the terms of the GNU General Public License version 2 only, as
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * published by the Free Software Foundation.
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley *
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * This code is distributed in the hope that it will be useful, but WITHOUT
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * version 2 for more details (a copy is included in the LICENSE file that
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * accompanied this code).
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley *
4a73cf8ee07ae396be20231ac252a24830f3c801Bob Halley * You should have received a copy of the GNU General Public License version
e88eae12e7ee878bb7aa8239240a77789bced612William King * 2 along with this work; if not, write to the Free Software Foundation,
e88eae12e7ee878bb7aa8239240a77789bced612William King * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e88eae12e7ee878bb7aa8239240a77789bced612William King *
e88eae12e7ee878bb7aa8239240a77789bced612William King * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e88eae12e7ee878bb7aa8239240a77789bced612William King * or visit www.oracle.com if you need additional information or have any
e88eae12e7ee878bb7aa8239240a77789bced612William King * questions.
e88eae12e7ee878bb7aa8239240a77789bced612William King *
e88eae12e7ee878bb7aa8239240a77789bced612William King */
e88eae12e7ee878bb7aa8239240a77789bced612William King
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King#ifndef CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
e88eae12e7ee878bb7aa8239240a77789bced612William King#define CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
e88eae12e7ee878bb7aa8239240a77789bced612William King
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King static void prepare_invoke(int byte_no,
e88eae12e7ee878bb7aa8239240a77789bced612William King Register method, // linked method (or i-klass)
e88eae12e7ee878bb7aa8239240a77789bced612William King Register ra, // return address
e88eae12e7ee878bb7aa8239240a77789bced612William King Register index = noreg, // itable index, MethodType, etc.
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King Register recv = noreg, // if caller wants to see it
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King Register flags = noreg // if caller wants to test it
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King );
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King // helper function
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King static void invokevfinal_helper(Register Rcache, Register Rret);
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King static void invokeinterface_object_method(Register RklassOop, Register Rcall,
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King Register Rret,
e88eae12e7ee878bb7aa8239240a77789bced612William King Register Rflags);
e88eae12e7ee878bb7aa8239240a77789bced612William King static void generate_vtable_call(Register Rrecv, Register Rindex, Register Rret);
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King static void volatile_barrier(Assembler::Membar_mask_bits order_constraint);
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King#endif // CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
3dda1bbfecc6ca2ea907669be329f61eb3b29e9eWilliam King