X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fjit.h;h=565987a0cbe9c8f38a2f86a5871815de56aa0cdd;hb=c5df16dd82320fa7cb87214d2f47a6f5d23ed6c9;hp=8245e7a26f9bcc7980b88a323fcba0979e2528ed;hpb=08e4b6184326b3488669f77ee080ae283e8f7d3b;p=cacao.git diff --git a/src/vm/jit/jit.h b/src/vm/jit/jit.h index 8245e7a26..565987a0c 100644 --- a/src/vm/jit/jit.h +++ b/src/vm/jit/jit.h @@ -29,7 +29,7 @@ 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 $ */ @@ -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 ***************************/ @@ -114,6 +114,8 @@ struct instruction { /* 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*/ }; @@ -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 */ -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;