aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-06-23 03:06:45 +0200
committerMike Pall <mike>2020-06-23 03:06:45 +0200
commitff34b48ddd6f2b3bdd26d6088662a214ba6b0288 (patch)
tree5585ab1933d148b046061a1e061686aa09e63789 /src/lj_asm.c
parenta44f53acf53603e7d9b88352de035b1804be4e88 (diff)
downloadluajit-ff34b48ddd6f2b3bdd26d6088662a214ba6b0288.tar.gz
luajit-ff34b48ddd6f2b3bdd26d6088662a214ba6b0288.tar.bz2
luajit-ff34b48ddd6f2b3bdd26d6088662a214ba6b0288.zip
Redesign and harden string interning.
Up to 40% faster on hash-intensive benchmarks. With some ideas from Sokolov Yura.
Diffstat (limited to 'src/lj_asm.c')
-rw-r--r--src/lj_asm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c
index 2659c8a2..cc7841c0 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -1029,7 +1029,7 @@ static uint32_t ir_khash(ASMState *as, IRIns *ir)
1029 uint32_t lo, hi; 1029 uint32_t lo, hi;
1030 UNUSED(as); 1030 UNUSED(as);
1031 if (irt_isstr(ir->t)) { 1031 if (irt_isstr(ir->t)) {
1032 return ir_kstr(ir)->hash; 1032 return ir_kstr(ir)->sid;
1033 } else if (irt_isnum(ir->t)) { 1033 } else if (irt_isnum(ir->t)) {
1034 lo = ir_knum(ir)->u32.lo; 1034 lo = ir_knum(ir)->u32.lo;
1035 hi = ir_knum(ir)->u32.hi << 1; 1035 hi = ir_knum(ir)->u32.hi << 1;