From: Michael Starzinger Date: Thu, 26 Feb 2009 14:32:41 +0000 (+0100) Subject: Fixes PR81. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=cacao.git;a=commitdiff_plain;h=5ab2809427a7e0b9aa58fbc56bd4afab64e38689 Fixes PR81. * src/vm/jit/patcher-common.cpp (patcher_function_list) [!ENABLE_VERIFIER]: Removed reference to patcher_resolve_class if verifier is disabled. * src/vm/jit/arm/codegen.c (codegen_emit) [!ENABLE_VERIFIER]: Likewise. --- diff --git a/src/vm/jit/arm/codegen.c b/src/vm/jit/arm/codegen.c index a0085a806..a4f0b0105 100644 --- a/src/vm/jit/arm/codegen.c +++ b/src/vm/jit/arm/codegen.c @@ -1638,10 +1638,14 @@ bool codegen_emit(jitdata *jd) s1 = emit_load_s1(jd, iptr, REG_ITMP1); M_INTMOVE(s1, REG_ITMP1_XPTR); + +#ifdef ENABLE_VERIFIER if (INSTRUCTION_IS_UNRESOLVED(iptr)) { - patcher_add_patch_ref(jd, PATCHER_resolve_class, - iptr->sx.s23.s2.uc, 0); + unresolved_class *uc = iptr->sx.s23.s2.uc; + patcher_add_patch_ref(jd, PATCHER_resolve_class, uc, 0); } +#endif /* ENABLE_VERIFIER */ + disp = dseg_add_functionptr(cd, asm_handle_exception); M_DSEG_LOAD(REG_ITMP3, disp); M_MOV(REG_ITMP2_XPC, REG_PC); @@ -2092,10 +2096,14 @@ bool codegen_emit(jitdata *jd) REPLACEMENT_POINT_RETURN(cd, iptr); s1 = emit_load_s1(jd, iptr, REG_RESULT); M_INTMOVE(s1, REG_RESULT); + +#ifdef ENABLE_VERIFIER if (INSTRUCTION_IS_UNRESOLVED(iptr)) { - patcher_add_patch_ref(jd, PATCHER_resolve_class, - iptr->sx.s23.s2.uc, 0); + unresolved_class *uc = iptr->sx.s23.s2.uc; + patcher_add_patch_ref(jd, PATCHER_resolve_class, uc, 0); } +#endif /* ENABLE_VERIFIER */ + goto ICMD_RETURN_do; case ICMD_RETURN: /* ... ==> ... */ diff --git a/src/vm/jit/patcher-common.cpp b/src/vm/jit/patcher-common.cpp index 146e52834..b36e68dad 100644 --- a/src/vm/jit/patcher-common.cpp +++ b/src/vm/jit/patcher-common.cpp @@ -70,7 +70,9 @@ typedef struct patcher_function_list_t { static patcher_function_list_t patcher_function_list[] = { { PATCHER_initialize_class, "initialize_class" }, +#ifdef ENABLE_VERIFIER { PATCHER_resolve_class, "resolve_class" }, +#endif /* ENABLE_VERIFIER */ { PATCHER_resolve_native_function, "resolve_native_function" }, { PATCHER_invokestatic_special, "invokestatic_special" }, { PATCHER_invokevirtual, "invokevirtual" },