RPA Toolkit
Fixed the hash function for the cache - one NOP instruction in the rpa_compiler_rule_...
authorMartin Stoilov <martin@rpasearch.com>
Thu, 21 Apr 2011 03:44:05 +0000 (20:44 -0700)
committerMartin Stoilov <martin@rpasearch.com>
Thu, 21 Apr 2011 03:44:05 +0000 (20:44 -0700)
rpa2/rpacache.c
rpa2/rpacache.h
rpa2/rpacompiler.c

index 947771f..a1e80b4 100644 (file)
@@ -2,7 +2,7 @@
 #include "rmem.h"
 #include "rparecord.h"
 
-#define RPA_MCACHE_BUCKET(_top_, _ruleid_) ( ( (((rulong)(_top_))>>0) ^ ((((rulong)(_ruleid_))>>2)<<4) ) & RPA_MCACHE_MASK)
+#define RPA_MCACHE_BUCKET(_top_, _ruleid_) ( ( (((rulong)(_top_))<<7) ^ ((((rulong)(_ruleid_))>>4)) ) & RPA_MCACHE_MASK)
 
 
 rpacache_t *rpa_cache_create()
index 24d0400..88af728 100644 (file)
@@ -9,7 +9,7 @@
 extern "C" {
 #endif
 
-#define RPA_MCACHE_BITS 10
+#define RPA_MCACHE_BITS 12
 #define RPA_MCACHE_SIZE (1 << RPA_MCACHE_BITS)
 #define RPA_MCACHE_MASK (RPA_MCACHE_SIZE - 1)
 
index 8dd8ce8..f89688d 100644 (file)
@@ -417,6 +417,7 @@ rint rpa_compiler_rule_end(rpa_compiler_t *co)
        rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, LR, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_TOP, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_POP, R_REC, XX, XX, 0));
+//     rvm_codegen_addins(co->cg, rvm_asm(RVM_NOP, XX, XX, XX, 0));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_MOVS, R0, DA, XX, -1));
        rvm_codegen_addins(co->cg, rvm_asm(RVM_BX, LR, XX, XX, 0));
        return 0;