Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: typecheck.c 7246 2007-01-29 18:49:05Z twisti $
-
*/
/*
#ifdef ENABLE_VERIFIER
#include "mm/memory.h"
+
#include "native/native.h"
#include "toolbox/logging.h"
+#include "vm/access.h"
+#include "vm/array.h"
#include "vm/builtin.h"
#include "vm/exceptions.h"
#include "vm/global.h"
+#include "vm/primitive.h"
+#include "vm/resolve.h"
-#include "vm/access.h"
#include "vm/jit/jit.h"
#include "vm/jit/parse.h"
-#include "vm/jit/patcher.h"
#include "vm/jit/show.h"
#include "vmcore/loader.h"
#include "vmcore/options.h"
-#include "vmcore/resolve.h"
#include <typecheck-common.h>
static void typecheck_invalidate_locals(verifier_state *state, s4 index, bool twoword)
{
- s4 i;
+ s4 javaindex;
s4 t;
- s4 mapped;
+ s4 varindex;
jitdata *jd = state->jd;
s4 *localmap = jd->local_map;
varinfo *vars = jd->var;
- i = state->reverselocalmap[index];
+ javaindex = state->reverselocalmap[index];
- /* invalidate locals of two-word type at index i-1 */
+ /* invalidate locals of two-word type at index javaindex-1 */
- if (i > 0) {
- localmap += 5 * (i-1);
+ if (javaindex > 0) {
+ localmap += 5 * (javaindex-1);
for (t=0; t<5; ++t) {
- mapped = *localmap++;
- if (mapped >= 0 && IS_2_WORD_TYPE(vars[mapped].type)) {
- LOG1("invalidate local %d", mapped);
- vars[mapped].type = TYPE_VOID;
+ varindex = *localmap++;
+ if (varindex >= 0 && IS_2_WORD_TYPE(vars[varindex].type)) {
+ LOG1("invalidate local %d", varindex);
+ vars[varindex].type = TYPE_VOID;
}
}
}
else {
- localmap += 5 * i;
+ localmap += 5 * javaindex;
}
- /* invalidate locals at index i */
+ /* invalidate locals at index javaindex */
for (t=0; t<5; ++t) {
- mapped = *localmap++;
- if (mapped >= 0) {
- LOG1("invalidate local %d", mapped);
- vars[mapped].type = TYPE_VOID;
+ varindex = *localmap++;
+ if (varindex >= 0) {
+ LOG1("invalidate local %d", varindex);
+ vars[varindex].type = TYPE_VOID;
}
}
- /* if a two-word type is written, invalidate locals at index i+1 */
+ /* if a two-word type is written, invalidate locals at index javaindex+1 */
if (twoword) {
for (t=0; t<5; ++t) {
- mapped = *localmap++;
- if (mapped >= 0) {
- LOG1("invalidate local %d", mapped);
- vars[mapped].type = TYPE_VOID;
+ varindex = *localmap++;
+ if (varindex >= 0) {
+ LOG1("invalidate local %d", varindex);
+ vars[varindex].type = TYPE_VOID;
}
}
}
LOGSTR1("\n---- BLOCK %04d ------------------------------------------------\n",state->bptr->nr);
LOGFLUSH;
- DOLOG(show_basicblock(jd, state->bptr, SHOW_STACK));
superblockend = false;
state->bptr->flags = BBFINISHED;
/* init variable types at the start of this block */
typevector_copy_inplace(state->bptr->inlocals, jd->var, state->numlocals);
+ DOLOG(show_basicblock(jd, state->bptr, SHOW_STACK));
DOLOG(typecheck_print_vararray(stdout, jd, state->bptr->invars,
state->bptr->indepth));
DOLOG(typevector_print(stdout, jd->var, state->numlocals));
state.reverselocalmap = DMNEW(s4, state.validlocals);
for (i=0; i<jd->maxlocals; ++i)
for (t=0; t<5; ++t) {
- s4 mapped = jd->local_map[5*i + t];
- if (mapped >= 0)
- state.reverselocalmap[mapped] = i;
+ s4 varindex = jd->local_map[5*i + t];
+ if (varindex >= 0)
+ state.reverselocalmap[varindex] = i;
}
DOLOG(