Fixes PR81.
authorMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 26 Feb 2009 14:32:41 +0000 (15:32 +0100)
committerMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 26 Feb 2009 14:32:41 +0000 (15:32 +0100)
* 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.

src/vm/jit/arm/codegen.c
src/vm/jit/patcher-common.cpp

index a0085a806efce8d275e22c62404722e04352c67c..a4f0b010553865886266ab45a7d1181d29cccbfe 100644 (file)
@@ -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:       /* ...  ==> ...                               */
index 146e52834fd672135a7f368b5f892f7c155368f9..b36e68dadaeddb7ae1a8c32b43545bdeefacd53a 100644 (file)
@@ -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" },