aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2017-10-02 09:22:46 +0200
committerMike Pall <mike>2017-10-02 09:22:46 +0200
commitb4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948 (patch)
tree464e16c0f3534d92459dac0a133afbdf1402c20f /src
parent6a2d8b0b4d49eb5aac600c219e5903420806e56e (diff)
downloadluajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.tar.gz
luajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.tar.bz2
luajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.zip
LJ_GC64: Fix ir_khash for non-string GCobj.
Contributed by Peter Cawley.
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c
index bed2268e..d961927b 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -1017,7 +1017,11 @@ static uint32_t ir_khash(IRIns *ir)
1017 } else { 1017 } else {
1018 lua_assert(irt_isgcv(ir->t)); 1018 lua_assert(irt_isgcv(ir->t));
1019 lo = u32ptr(ir_kgc(ir)); 1019 lo = u32ptr(ir_kgc(ir));
1020#if LJ_GC64
1021 hi = (uint32_t)(u64ptr(ir_kgc(ir)) >> 32) | (irt_toitype(ir->t) << 15);
1022#else
1020 hi = lo + HASH_BIAS; 1023 hi = lo + HASH_BIAS;
1024#endif
1021 } 1025 }
1022 return hashrot(lo, hi); 1026 return hashrot(lo, hi);
1023} 1027}