Changes: Christian Thalinger
- $Id: jit.h 942 2004-03-06 17:32:16Z jowenn $
+ $Id: jit.h 1038 2004-04-26 16:41:30Z twisti $
*/
typedef struct jumpref jumpref;
typedef struct dataref dataref;
typedef varinfo *varinfoptr;
-
+typedef struct linenumberref linenumberref;
/************************** stack element structure ***************************/
/* and as address for list of targets for */
/* statements */
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*/
};
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 */
#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 */
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, ...) */
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 */
-extern lineinfo *jlinenumbers; /* line information array */
-extern 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;