Performance tweak for Jit lookup & adjust table sizes for better performance

Also, move setting of Jit table parameters to architecture-specific init
funciton.
diff --git a/vm/interp/Jit.c b/vm/interp/Jit.c
index d31826a..e327511 100644
--- a/vm/interp/Jit.c
+++ b/vm/interp/Jit.c
@@ -348,12 +348,6 @@
     unsigned int i;
     bool res = true;  /* Assume success */
 
-#if defined(WITH_SELF_VERIFICATION)
-    // Force JIT into blocking, translate everything mode
-    gDvmJit.threshold = 1;
-    gDvmJit.blockingMode = true;
-#endif
-
     // Create the compiler thread and setup miscellaneous chores */
     res &= dvmCompilerStartup();
 
@@ -787,27 +781,26 @@
 void* dvmJitGetCodeAddr(const u2* dPC)
 {
     int idx = dvmJitHash(dPC);
+    u2* npc = gDvmJit.pJitEntryTable[idx].dPC;
 
-    /* If anything is suspended, don't re-enter the code cache */
-    if (gDvm.sumThreadSuspendCount > 0) {
-        return NULL;
-    }
-
-    /* Expect a high hit rate on 1st shot */
-    if (gDvmJit.pJitEntryTable[idx].dPC == dPC) {
+    if (npc != NULL) {
+        if (npc == dPC) {
 #if defined(EXIT_STATS)
-        gDvmJit.addrLookupsFound++;
+            gDvmJit.addrLookupsFound++;
 #endif
-        return gDvmJit.pJitEntryTable[idx].codeAddress;
-    } else {
-        int chainEndMarker = gDvmJit.jitTableSize;
-        while (gDvmJit.pJitEntryTable[idx].u.info.chain != chainEndMarker) {
-            idx = gDvmJit.pJitEntryTable[idx].u.info.chain;
-            if (gDvmJit.pJitEntryTable[idx].dPC == dPC) {
+            return gDvm.sumThreadSuspendCount ? NULL :
+                gDvmJit.pJitEntryTable[idx].codeAddress;
+        } else {
+            int chainEndMarker = gDvmJit.jitTableSize;
+            while (gDvmJit.pJitEntryTable[idx].u.info.chain != chainEndMarker) {
+                idx = gDvmJit.pJitEntryTable[idx].u.info.chain;
+                if (gDvmJit.pJitEntryTable[idx].dPC == dPC) {
 #if defined(EXIT_STATS)
-                gDvmJit.addrLookupsFound++;
+                    gDvmJit.addrLookupsFound++;
 #endif
-                return gDvmJit.pJitEntryTable[idx].codeAddress;
+                    return gDvm.sumThreadSuspendCount ? NULL :
+                        gDvmJit.pJitEntryTable[idx].codeAddress;
+                }
             }
         }
     }