cppInterpreter_zero.hpp revision 1010
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski/*
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * Copyright 2007, 2008 Red Hat, Inc.
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
75a6279dbae159d018ef812185416cf6df386c10Till Mossakowski *
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * This code is free software; you can redistribute it and/or modify it
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * under the terms of the GNU General Public License version 2 only, as
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * published by the Free Software Foundation.
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder *
268193ecba082551560bb4d9f61e49e558e41834Christian Maeder * This code is distributed in the hope that it will be useful, but WITHOUT
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * version 2 for more details (a copy is included in the LICENSE file that
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * accompanied this code).
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski *
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * You should have received a copy of the GNU General Public License version
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * 2 along with this work; if not, write to the Free Software Foundation,
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski *
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * CA 95054 USA or visit www.sun.com if you need additional information or
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski * have any questions.
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski *
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski */
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski protected:
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski // Size of interpreter code
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski const static int InterpreterCodeSize = 6 * K;
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski public:
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski // Method entries
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski static void normal_entry(methodOop method, intptr_t UNUSED, TRAPS);
8bf31227070340fd4f0866e7fcfa28178b46aa1cChristian Maeder static void native_entry(methodOop method, intptr_t UNUSED, TRAPS);
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski static void accessor_entry(methodOop method, intptr_t UNUSED, TRAPS);
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski static void empty_entry(methodOop method, intptr_t UNUSED, TRAPS);
50dce6b011347f92377adb8bbabaeeb80975e86dChristian Maeder
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski public:
3f6b3834ba54649fc02cae002bac0258b6b5dcbaChristian Maeder // Main loop of normal_entry
50dce6b011347f92377adb8bbabaeeb80975e86dChristian Maeder static void main_loop(int recurse, TRAPS);
a79fe3aad8743ea57e473ea5f66a723244cb9c0eMarkus Roggenbach
1df33829303cbf924aa018ac5ce9a28e69c17d22Till Mossakowski private:
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski // Stack overflow checks
dbc611721fe47773266d813b49ec6a656cd4234cTill Mossakowski static bool stack_overflow_imminent(JavaThread *thread);
10fc221dcbd20cfcff6c248f4d6b1be9c91ae369Christian Maeder