aboutsummaryrefslogtreecommitdiff
path: root/libjava/include/execution.h
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2016-09-30 16:24:48 +0000
committerAndrew Haley <aph@gcc.gnu.org>2016-09-30 16:24:48 +0000
commit07b78716af6a9d7c9fd1e94d9baf94a52c873947 (patch)
tree3f22b3241c513ad168c8353805614ae1249410f4 /libjava/include/execution.h
parenteae993948bae8b788c53772bcb9217c063716f93 (diff)
downloadgcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.zip
gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.gz
gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.bz2
Makefile.def: Remove libjava.
2016-09-30 Andrew Haley <aph@redhat.com> * Makefile.def: Remove libjava. * Makefile.tpl: Likewise. * Makefile.in: Regenerate. * configure.ac: Likewise. * configure: Likewise. * gcc/java: Remove. * libjava: Likewise. From-SVN: r240662
Diffstat (limited to 'libjava/include/execution.h')
-rw-r--r--libjava/include/execution.h276
1 files changed, 0 insertions, 276 deletions
diff --git a/libjava/include/execution.h b/libjava/include/execution.h
deleted file mode 100644
index c48b2fc..0000000
--- a/libjava/include/execution.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// execution.h - Execution engines. -*- c++ -*-
-
-/* Copyright (C) 2004, 2006, 2007 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#ifndef __JAVA_EXECUTION_H__
-#define __JAVA_EXECUTION_H__
-
-// This represents one execution engine. Note that we use function
-// pointers and not virtual methods to avoid calls to
-// __cxa_call_unexpected and the like.
-struct _Jv_ExecutionEngine
-{
- public:
-
- void (*unregister) (jclass);
- // FIXME: probably should handle this elsewhere, see how
- // interpreter does it.
- bool (*need_resolve_string_fields) ();
- void (*verify) (jclass);
- void (*allocate_static_fields) (jclass, int, int);
- void (*allocate_field_initializers) (jclass);
- void (*create_ncode) (jclass);
- _Jv_ResolvedMethod *(*resolve_method) (_Jv_Method *, jclass,
- jboolean);
- void (*post_miranda_hook) (jclass);
- _Jv_ClosureList **(*get_closure_list) (jclass);
-};
-
-// This handles gcj-compiled code except that compiled with
-// -findirect-classes.
-struct _Jv_CompiledEngine : public _Jv_ExecutionEngine
-{
- public:
-
- static void do_unregister (jclass)
- {
- }
-
- static bool do_need_resolve_string_fields ()
- {
- return true;
- }
-
- static void do_verify (jclass klass)
- {
- _Jv_Linker::verify_type_assertions (klass);
- }
-
- static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
- jboolean)
- {
- return NULL;
- }
-
- static void do_allocate_static_fields (jclass,
- int,
- int)
- {
- }
-
- static void do_allocate_field_initializers (jclass)
- {
- }
-
- static void do_create_ncode (jclass)
- {
- // Not needed.
- }
-
- static void do_post_miranda_hook (jclass)
- {
- // Not needed.
- }
-
- static _Jv_ClosureList **do_get_closure_list (jclass)
- {
- return NULL;
- }
-
- _Jv_CompiledEngine ()
- {
- unregister = do_unregister;
- need_resolve_string_fields = do_need_resolve_string_fields;
- verify = do_verify;
- allocate_static_fields = do_allocate_static_fields;
- allocate_field_initializers = do_allocate_field_initializers;
- create_ncode = do_create_ncode;
- resolve_method = do_resolve_method;
- post_miranda_hook = do_post_miranda_hook;
- get_closure_list = do_get_closure_list;
- }
-
- // These operators make it so we don't have to link in libstdc++.
- void *operator new (size_t bytes)
- {
- return _Jv_Malloc(bytes);
- }
-
- void operator delete (void *mem)
- {
- _Jv_Free(mem);
- }
-};
-
-class _Jv_IndirectCompiledClass
-{
-public:
- void **field_initializers;
- _Jv_ClosureList **closures;
-};
-
-// This handles gcj-compiled code compiled with -findirect-classes.
-struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine
-{
- _Jv_IndirectCompiledEngine () : _Jv_CompiledEngine ()
- {
- allocate_static_fields = do_allocate_static_fields;
- allocate_field_initializers = do_allocate_field_initializers;
- get_closure_list = do_get_closure_list;
- }
-
- static _Jv_IndirectCompiledClass *get_aux_info (jclass klass)
- {
- _Jv_IndirectCompiledClass *aux =
- (_Jv_IndirectCompiledClass*)klass->aux_info;
- if (!aux)
- {
- aux = (_Jv_IndirectCompiledClass*)
- _Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass));
- klass->aux_info = aux;
- }
-
- return aux;
- }
-
- static void do_allocate_field_initializers (jclass klass)
- {
- _Jv_IndirectCompiledClass *aux = get_aux_info (klass);
- if (!aux)
- {
- aux = (_Jv_IndirectCompiledClass*)
- _Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass));
- klass->aux_info = aux;
- }
-
- aux->field_initializers = (void **)_Jv_Malloc (klass->field_count
- * sizeof (void*));
-
- for (int i = 0; i < klass->field_count; i++)
- {
- _Jv_Field *field = &klass->fields[i];
- if (field->flags & java::lang::reflect::Modifier::STATIC)
- {
- aux->field_initializers[i] = field->u.addr;
- field->u.addr = NULL;
- }
- }
- }
-
- static void do_allocate_static_fields (jclass klass,
- int pointer_size,
- int other_size)
- {
- // Splitting the allocations here lets us scan reference fields
- // and avoid scanning non-reference fields.
- char *reference_fields = (char *) _Jv_AllocRawObj (pointer_size);
- char *non_reference_fields = (char *) _Jv_AllocBytes (other_size);
-
- _Jv_IndirectCompiledClass *aux
- = (_Jv_IndirectCompiledClass*)klass->aux_info;
-
- for (int i = 0; i < klass->field_count; i++)
- {
- _Jv_Field *field = &klass->fields[i];
-
- if ((field->flags & java::lang::reflect::Modifier::STATIC) == 0)
- continue;
-
- char *base = field->isRef() ? reference_fields : non_reference_fields;
- field->u.addr = base + field->u.boffset;
-
- if (aux->field_initializers[i])
- {
- int field_size;
- if (! field->isRef ())
- field_size = field->type->size ();
- else
- field_size = sizeof (jobject);
-
- memcpy (field->u.addr, aux->field_initializers[i], field_size);
- }
- }
- _Jv_Free (aux->field_initializers);
- }
-
-#ifdef INTERPRETER
- static _Jv_ClosureList **do_get_closure_list (jclass klass)
- {
- _Jv_IndirectCompiledClass *aux = get_aux_info (klass);
-
- if (!aux->closures)
- aux->closures = _Jv_ClosureListFinalizer ();
-
- return aux->closures;
- }
-#endif
-};
-
-#ifdef INTERPRETER
-
-// This handles interpreted code.
-class _Jv_InterpreterEngine : public _Jv_ExecutionEngine
-{
- public:
-
- static void do_verify (jclass);
- static void do_allocate_static_fields (jclass, int, int);
- static void do_create_ncode (jclass);
- static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
- jboolean);
-
- static bool do_need_resolve_string_fields ()
- {
- return false;
- }
-
- static void do_unregister(jclass klass)
- {
- _Jv_UnregisterClass(klass);
- }
-
- static void do_allocate_field_initializers (jclass)
- {
- }
-
- static void do_post_miranda_hook (jclass);
-
- static _Jv_ClosureList **do_get_closure_list (jclass klass);
-
- _Jv_InterpreterEngine ()
- {
- unregister = do_unregister;
- need_resolve_string_fields = do_need_resolve_string_fields;
- verify = do_verify;
- allocate_static_fields = do_allocate_static_fields;
- allocate_field_initializers = do_allocate_field_initializers;
- create_ncode = do_create_ncode;
- resolve_method = do_resolve_method;
- post_miranda_hook = do_post_miranda_hook;
- get_closure_list = do_get_closure_list;
- }
-
- // These operators make it so we don't have to link in libstdc++.
- void *operator new (size_t bytes)
- {
- return _Jv_Malloc(bytes);
- }
-
- void operator delete (void *mem)
- {
- _Jv_Free(mem);
- }
-};
-
-extern _Jv_InterpreterEngine _Jv_soleInterpreterEngine;
-#endif // INTERPRETER
-
-extern _Jv_CompiledEngine _Jv_soleCompiledEngine;
-extern _Jv_IndirectCompiledEngine _Jv_soleIndirectCompiledEngine;
-#endif // __JAVA_EXECUTION_H__