Joseph Wenninger
Christian Thalinger
- $Id: global.h 5493 2006-09-14 18:36:20Z edwin $
+ $Id: global.h 6030 2006-11-20 14:18:12Z michi $
*/
typedef struct java_objectarray java_objectarray;
-/* define some CACAO paths ****************************************************/
-
-#define CLASSPATH_LIBRARY_PATH CLASSPATH_LIBDIR "/classpath"
-
-
#define MAX_ALIGN 8 /* most generic alignment for JavaVM values */
#define ACC_CLASS_REFLECT_MASK 0x0000ffff /* flags reported by reflection */
#define ACC_CLASS_HAS_POINTERS 0x00010000 /* instance contains pointers */
+/* special flags used in methodinfo *******************************************/
+
+#define ACC_METHOD_IMPLEMENTED 0x00010000 /* there is an implementation */
+#define ACC_METHOD_MONOMORPHIC 0x00020000 /* currently monomorphic method */
+
/* data structures of the runtime system **************************************/
All objects (and arrays) which resides on the heap need the
following header at the beginning of the data structure.
+ TODO: Include detailed description from the Wiki (ObjectHeader) here.
+
*******************************************************************************/
-struct java_objectheader { /* header for all objects */
- struct _vftbl *vftbl; /* pointer to virtual function table */
+#define HDRFLAG_FLC 0x01
+
+struct java_objectheader { /* header for all objects */
+ struct _vftbl *vftbl; /* pointer to virtual function table */
#if defined(ENABLE_THREADS)
struct lock_record_t *monitorPtr;
- ptrint flcword; /* word containing the FLC bit */
+#endif
+#if defined(ENABLE_THREADS) || defined(ENABLE_GC_CACAO)
+ ptrint hdrflags; /* word containing the FLC and GC bits */
#endif
};
/* The verifier needs additional variables in the variable array. Since these */
/* must be reserved and set by parse.c and stack.c, we define these numbers */
/* here to avoid mysterious hard-coded constants. */
+/* stack.c needs an extra variable if the verifier is disabled. */
#if defined(ENABLE_VERIFIER)
# define VERIFIER_EXTRA_LOCALS 1
# define VERIFIER_EXTRA_VARS 1
+# define STACK_EXTRA_VARS 0
#else
# define VERIFIER_EXTRA_LOCALS 0
# define VERIFIER_EXTRA_VARS 0
+# define STACK_EXTRA_VARS 1
#endif
#endif /* _GLOBAL_H */