- implemented ICMD_CHECKOOM
[cacao.git] / src / vm / jit / jit.h
index d72017db9875fe578c93eb29a078db4f25c1e477..565987a0cbe9c8f38a2f86a5871815de56aa0cdd 100644 (file)
@@ -29,7 +29,7 @@
 
    Changes: Christian Thalinger
 
-   $Id: jit.h 941 2004-03-06 17:27:56Z jowenn $
+   $Id: jit.h 1038 2004-04-26 16:41:30Z twisti $
 
 */
 
@@ -54,7 +54,7 @@ typedef struct branchref branchref;
 typedef struct jumpref jumpref;
 typedef struct dataref dataref;
 typedef varinfo *varinfoptr;
-
+typedef struct linenumberref linenumberref;
 
 
 /************************** stack element structure ***************************/
@@ -113,7 +113,9 @@ struct instruction {
        void *target;                   /* used for targets of branches and jumps         */
                                        /* and as address for list of targets for         */
                                        /* statements                                   */
-       u2 line                         /* line number in source file */
+       u2 line;                                /* line number in source file */
+       classinfo *clazz;               /*needed for inlining. can't be done on basic block level, since an inlined
+                                       function doesn't start necessarily start a new block*/
 };
 
 
@@ -181,6 +183,13 @@ struct jumpref {
        jumpref *next;              /* next element in jumpref list               */
 };
 
+struct linenumberref {
+       s4 tablepos;                /* patching position in data segment          */
+       int targetmpc;             /* machine code program counter of first instruction for given line*/
+       u2 linenumber;              /* line number, used for inserting into the table and for validty checking*/
+       linenumberref *next;        /* next element in linenumberref list               */
+};
+
 
 struct dataref {
        u1 *pos;                    /* patching position in generated code        */
@@ -797,6 +806,7 @@ extern int jcommandsize[256];
 
 #define JAVA_BREAKPOINT       202
 
+#define ICMD_CHECKOOM         203       /* check for out of memory error      */
 
 #define ICMD_BUILTIN3         253       /* internal opcode */
 #define ICMD_BUILTIN2         254       /* internal opcode */
@@ -889,6 +899,7 @@ extern int *count_store_depth;
 
 extern classinfo  *class;       /* class the compiled method belongs to       */
 extern methodinfo *method;      /* pointer to method info of compiled method  */
+extern utf        *descriptor;  /* type descriptor of compiled method         */
 extern int         mparamcount; /* number of parameters (incl. this)          */
 extern u1         *mparamtypes; /* types of all parameters (TYPE_INT, ...)    */
        
@@ -896,8 +907,8 @@ extern int maxstack;            /* maximal JavaVM stack size                  */
 extern int maxlocals;           /* maximal number of local JavaVM variables   */
 extern int jcodelength;         /* length of JavaVM-codes                     */
 extern u1 *jcode;               /* pointer to start of JavaVM-code            */
-lineinfo *jlinenumbers;         /* line information array                     */
-u2 jlinenumbercount;            /* number of entries in the linenumber array  */
+extern lineinfo *jlinenumbers;  /* line information array                     */
+extern u2 jlinenumbercount;     /* number of entries in the linenumber array  */
 extern int exceptiontablelength;/* length of exception table                  */
 extern xtable *extable;         /* pointer to start of exception table        */
 extern exceptiontable *raw_extable;