Changes: Christian Ullrich
Edwin Steiner
- $Id: reg.h 5435 2006-09-08 18:14:50Z edwin $
+ $Id: reg.h 5549 2006-09-28 17:02:56Z edwin $
*/
#include "arch.h"
#include "vm/jit/jit.h"
+#include "vm/jit/verify/typeinfo.h"
/************************* pseudo variable structure **************************/
struct varinfo {
- int type; /* basic type of variable */
- int flags; /* flags (SAVED, INMEMORY) */
- int regoff; /* register number or memory offset */
- int copycount; /* number of times this var has been dupped */
+ s4 type; /* basic type of variable */
+ s4 flags; /* flags (SAVED, INMEMORY) */
+ union {
+ s4 regoff; /* register number or memory offset */
+ s4 i;
+ s8 l;
+ float f;
+ double d;
+ basicblock *retaddr;
+ } vv;
+#if defined(ENABLE_VERIFIER)
+ typeinfo typeinfo; /* type info for reference types */
+#endif
};
typedef struct varinfo varinfo5[5];
int freesavinttop; /* free saved integer register count */
int freetmpflttop; /* free scratch float register count */
int freesavflttop; /* free saved float register count */
+
+ int *regcopycount; /* counts copies of each register regoff */
+ int *memcopycount; /* counts copies of each INMEMORY regoff */
+ int memcopycountsize; /* size of memcopycount buffer */
};