diff options
author | Mike Pall <mike> | 2017-10-02 09:22:46 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2017-10-02 09:22:46 +0200 |
commit | b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948 (patch) | |
tree | 464e16c0f3534d92459dac0a133afbdf1402c20f /src | |
parent | 6a2d8b0b4d49eb5aac600c219e5903420806e56e (diff) | |
download | luajit-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.c | 4 |
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 | } |