* src/vm/jit/powerpc/emit.c (emit_replacement_stubs): Do not
[cacao.git] / src / vm / global.h
index 6ed28c87d222c033dee640c18b2c54dda6f5fa92..1ab05e4670a5d1e108ef93295bc0ddeffc999a59 100644 (file)
@@ -33,7 +33,7 @@
             Joseph Wenninger
             Christian Thalinger
 
-   $Id: global.h 5658 2006-10-04 10:10:01Z twisti $
+   $Id: global.h 6030 2006-11-20 14:18:12Z michi $
 
 */
 
@@ -204,6 +204,11 @@ typedef struct java_objectarray java_objectarray;
 #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 **************************************/
 
@@ -212,13 +217,19 @@ typedef struct java_objectarray java_objectarray;
    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
 };
 
@@ -319,13 +330,16 @@ void compiler_unlock();
 /* 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 */