1 /*
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
324 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(bool arg ), bool arg );
325 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(TosState tos), TosState tos);
326 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Operation op), Operation op);
327 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Condition cc), Condition cc);
328
329 friend class Template;
330
331 // InterpreterMacroAssembler::is_a(), etc., need TemplateTable::call_VM().
332 friend class InterpreterMacroAssembler;
333
334 public:
335 // Initialization
336 static void initialize();
337 static void pd_initialize();
338
339 // Templates
340 static Template* template_for (Bytecodes::Code code) { Bytecodes::check (code); return &_template_table [code]; }
341 static Template* template_for_wide(Bytecodes::Code code) { Bytecodes::wide_check(code); return &_template_table_wide[code]; }
342
343 // Platform specifics
344 #ifdef TARGET_ARCH_MODEL_x86_32
345 # include "templateTable_x86_32.hpp"
346 #endif
347 #ifdef TARGET_ARCH_MODEL_x86_64
348 # include "templateTable_x86_64.hpp"
349 #endif
350 #ifdef TARGET_ARCH_MODEL_sparc
351 # include "templateTable_sparc.hpp"
352 #endif
353 #ifdef TARGET_ARCH_MODEL_zero
354 # include "templateTable_zero.hpp"
355 #endif
356 #ifdef TARGET_ARCH_MODEL_arm
357 # include "templateTable_arm.hpp"
358 #endif
359 #ifdef TARGET_ARCH_MODEL_ppc_32
360 # include "templateTable_ppc_32.hpp"
361 #endif
362 #ifdef TARGET_ARCH_MODEL_ppc_64
363 # include "templateTable_ppc_64.hpp"
364 #endif
365 #ifdef TARGET_ARCH_MODEL_aarch64
366 # include "templateTable_aarch64.hpp"
367 #endif
368
369 };
370 #endif /* !CC_INTERP */
371
372 #endif // SHARE_VM_INTERPRETER_TEMPLATETABLE_HPP
|
1 /*
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
324 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(bool arg ), bool arg );
325 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(TosState tos), TosState tos);
326 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Operation op), Operation op);
327 static void def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Condition cc), Condition cc);
328
329 friend class Template;
330
331 // InterpreterMacroAssembler::is_a(), etc., need TemplateTable::call_VM().
332 friend class InterpreterMacroAssembler;
333
334 public:
335 // Initialization
336 static void initialize();
337 static void pd_initialize();
338
339 // Templates
340 static Template* template_for (Bytecodes::Code code) { Bytecodes::check (code); return &_template_table [code]; }
341 static Template* template_for_wide(Bytecodes::Code code) { Bytecodes::wide_check(code); return &_template_table_wide[code]; }
342
343 // Platform specifics
344 #if defined TEMPLATETABLE_MD_HPP
345 # include TEMPLATETABLE_MD_HPP
346 #elif defined TARGET_ARCH_MODEL_x86_32
347 # include "templateTable_x86_32.hpp"
348 #elif defined TARGET_ARCH_MODEL_x86_64
349 # include "templateTable_x86_64.hpp"
350 #elif defined TARGET_ARCH_MODEL_sparc
351 # include "templateTable_sparc.hpp"
352 #elif defined TARGET_ARCH_MODEL_zero
353 # include "templateTable_zero.hpp"
354 #elif defined TARGET_ARCH_MODEL_ppc_64
355 # include "templateTable_ppc_64.hpp"
356 #elif defined TARGET_ARCH_MODEL_aarch64
357 # include "templateTable_aarch64.hpp"
358 #endif
359
360 };
361 #endif /* !CC_INTERP */
362
363 #endif // SHARE_VM_INTERPRETER_TEMPLATETABLE_HPP
|