cppInterpreter_zero.hpp revision 1434
05bf9cbe382548c2665dd01a6a402640c9ec3813Christian Maeder/*
05bf9cbe382548c2665dd01a6a402640c9ec3813Christian Maeder * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * Copyright 2007, 2008, 2010 Red Hat, Inc.
05bf9cbe382548c2665dd01a6a402640c9ec3813Christian Maeder * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e071fb22ea9923a2a4ff41184d80ca46b55ee932Till Mossakowski *
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * This code is free software; you can redistribute it and/or modify it
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu * under the terms of the GNU General Public License version 2 only, as
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * published by the Free Software Foundation.
b4fbc96e05117839ca409f5f20f97b3ac872d1edTill Mossakowski *
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * This code is distributed in the hope that it will be useful, but WITHOUT
8d97ef4f234681b11bb5924bd4d03adef858d2d2Christian Maeder * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2d256ac235b9deae9f25cd4fb057818da52df365Christian Maeder * version 2 for more details (a copy is included in the LICENSE file that
2d256ac235b9deae9f25cd4fb057818da52df365Christian Maeder * accompanied this code).
2d256ac235b9deae9f25cd4fb057818da52df365Christian Maeder *
2d256ac235b9deae9f25cd4fb057818da52df365Christian Maeder * You should have received a copy of the GNU General Public License version
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder * 2 along with this work; if not, write to the Free Software Foundation,
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski *
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder * CA 95054 USA or visit www.sun.com if you need additional information or
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder * have any questions.
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder *
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder */
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder protected:
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder // Size of interpreter code
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder const static int InterpreterCodeSize = 6 * K;
286f4deb69d3912337bb09dd7f81284d12912ce8Christian Maeder
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski public:
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett // Method entries
e7799559e0fcce61d77186c93a84b68527cc86e7Christian Maeder static int normal_entry(methodOop method, intptr_t UNUSED, TRAPS);
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett static int native_entry(methodOop method, intptr_t UNUSED, TRAPS);
4c7f058cdd19ce67b2b5d4b7f69703d0f8a21e38Christian Maeder static int accessor_entry(methodOop method, intptr_t UNUSED, TRAPS);
1df33829303cbf924aa018ac5ce9a28e69c17d22Till Mossakowski static int empty_entry(methodOop method, intptr_t UNUSED, TRAPS);
f08f7774e4c47012f3c349205310750198cdc434Liam O'Reilly
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett public:
57221209d11b05aa0373cc3892d5df89ba96ebf9Christian Maeder // Main loop of normal_entry
036ecbd8f721096321f47cf6a354a9d1bf3d032fChristian Maeder static void main_loop(int recurse, TRAPS);
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett private:
929190acb9f2b2f5857dce841c5a389710895515Andy Gimblett // Fast result type determination
eaf34cf96fbfcdcce7f3bdb322c4ea7ebd1fd220Liam O'Reilly static BasicType result_type_of(methodOop method);
7dc79552823b00bdd0dd75fcd2ab9af541c71650Christian Maeder