Some new x86_64 entries.
[cacao.git] / global.h
index 708da9beec518659fa0dc14bf0f7a8f8b494d0af..538bf874f50f3215045bfddf47271a9d6abbfb2b 100644 (file)
--- a/global.h
+++ b/global.h
@@ -31,7 +31,7 @@
             Philipp Tomsich
                        Edwin Steiner
 
-   $Id: global.h 1297 2004-07-10 17:04:43Z stefan $
+   $Id: global.h 1377 2004-08-01 22:01:00Z stefan $
 
 */
 
@@ -47,6 +47,7 @@
 
 #if defined(USE_THREADS) && defined(NATIVE_THREADS)
 #include <pthread.h>
+#include <semaphore.h>
 #endif
 
 #define STATISTICS          /* if enabled collects program statistics         */
@@ -67,7 +68,7 @@
  * categories for stack manipulations (POP,POP2,SWAP,DUP,DUP2,DUP_X1,
  * DUP2_X1,DUP_X2,DUP2_X2).
  */
-/* #define TYPECHECK_STACK_COMPCAT */
+#define TYPECHECK_STACK_COMPCAT
 
 /*
  * Macros for configuration of the typechecking code
@@ -101,6 +102,8 @@ typedef int   bool;             /* boolean data type */
 #define true  1
 #define false 0
 
+typedef void (*functionptr) (); /* generic function pointer */
+
 
 /* immediate data union */
 
@@ -129,8 +132,6 @@ typedef union {
 #define PRIMITIVETYPE_BOOLEAN 7
 #define PRIMITIVETYPE_VOID    8
 
-typedef void (*functionptr) (); /* generic function pointer */
-
 
 #define MAX_ALIGN 8             /* most generic alignment for JavaVM values   */
 
@@ -381,7 +382,7 @@ typedef struct {            /* NameAndType (Field or Method)                  */
 struct java_objectheader {              /* header for all objects             */
        vftbl_t *vftbl;                     /* pointer to virtual function table  */
 #if defined(USE_THREADS) && defined(NATIVE_THREADS)
-       long monitorBits;
+       void *monitorPtr;
 #endif
 };
 
@@ -566,6 +567,7 @@ struct lineinfo {
 /* methodinfo *****************************************************************/
 
 struct methodinfo {                 /* method structure                       */
+       java_objectheader header;       /* we need this in jit's monitorenter     */
        s4             flags;               /* ACC flags                              */
        utf       *name;                /* name of method                         */
        utf       *descriptor;          /* JavaVM descriptor string of method     */
@@ -609,6 +611,8 @@ struct methodinfo {                 /* method structure                       */
 
        struct registerdata *registerdata; /* struct with all regalloc stuff      */
 
+       struct codegendata *codegendata;/* struct with codegen stuff              */
+
        u1        *stubroutine;         /* stub for compiling or calling natives  */
        s4         mcodelength;         /* legth of generated machine code        */
        u1        *mcode;               /* pointer to machine code                */