-/* jit/stack.h - stack analysis header
+/* vm/jit/stack.h - stack analysis header
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
- R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
- M. Probst, S. Ring, E. Steiner, C. Thalinger, D. Thuernbeck,
- P. Tomsich, J. Wenninger
+ Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
+ R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
+ C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
+ Institut f. Computersprachen - TU Wien
This file is part of CACAO.
Authors: Christian Thalinger
- $Id: stack.h 1338 2004-07-21 16:02:14Z twisti $
+ $Id: stack.h 1735 2004-12-07 14:33:27Z twisti $
*/
#ifndef _STACK_H
#define _STACK_H
-
-#include "exceptions.h"
-#include "global.h"
+#include "vm/exceptions.h"
+#include "vm/global.h"
+#include "vm/jit/reg.h"
/**********************************************************************/
copy->varkind = STACKVAR; \
copy->varnum = i;\
} \
- m->registerdata->interfaces[i][copy->type].type = copy->type; \
- m->registerdata->interfaces[i][copy->type].flags |= copy->flags; \
+ rd->interfaces[i][copy->type].type = copy->type; \
+ rd->interfaces[i][copy->type].flags |= copy->flags; \
i--; copy = copy->prev; \
} \
i = bptr->indepth - 1; \
copy = bptr->instack; \
while (copy) { \
- m->registerdata->interfaces[i][copy->type].type = copy->type; \
+ rd->interfaces[i][copy->type].type = copy->type; \
if (copy->varkind == STACKVAR) { \
if (copy->flags & SAVEDVAR) \
- m->registerdata->interfaces[i][copy->type].flags |= SAVEDVAR; \
+ rd->interfaces[i][copy->type].flags |= SAVEDVAR; \
} \
i--; copy = copy->prev; \
} \
stackptr s = curstack; \
stackptr t = (b)->instack; \
if ((b)->indepth != stackdepth) { \
- show_icmd_method(m); \
+ show_icmd_method(m, cd, rd); \
panic("Stack depth mismatch"); \
} \
while (s) { \
/* function prototypes */
-methodinfo *analyse_stack(methodinfo *m);
+methodinfo *analyse_stack(methodinfo *m, codegendata *cd, registerdata *rd);
-void icmd_print_stack(methodinfo *m, stackptr s);
+void icmd_print_stack(codegendata *cd, stackptr s);
char *icmd_builtin_name(functionptr bptr);
-void show_icmd_method(methodinfo *m);
-void show_icmd_block(methodinfo *m, basicblock *bptr);
+void show_icmd_method(methodinfo *m, codegendata *cd, registerdata *rd);
+void show_icmd_block(methodinfo *m, codegendata *cd, basicblock *bptr);
void show_icmd(instruction *iptr, bool deadcode);
#endif /* _STACK_H */