aboutsummaryrefslogtreecommitdiff
path: root/src/lib_bit.c
diff options
context:
space:
mode:
authorMike Pall <mike>2022-12-22 00:52:04 +0100
committerMike Pall <mike>2022-12-22 00:52:04 +0100
commita04480e311f93d3ceb2f92549cad3fffa38250ef (patch)
treea9e2102ac93d2e358d6fd8735cdb8949409f746d /src/lib_bit.c
parent8625eee71f16a3a780ec92bc303c17456efc7fb3 (diff)
parent8a5e398c52c7f8ca3e1a0e574cc2ba38224b759b (diff)
downloadluajit-a04480e311f93d3ceb2f92549cad3fffa38250ef.tar.gz
luajit-a04480e311f93d3ceb2f92549cad3fffa38250ef.tar.bz2
luajit-a04480e311f93d3ceb2f92549cad3fffa38250ef.zip
Merge branch 'master' into v2.1
Diffstat (limited to 'src/lib_bit.c')
-rw-r--r--src/lib_bit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib_bit.c b/src/lib_bit.c
index 38c0f578..e08cd883 100644
--- a/src/lib_bit.c
+++ b/src/lib_bit.c
@@ -155,7 +155,8 @@ LJLIB_CF(bit_tohex) LJLIB_REC(.)
155#endif 155#endif
156 SBuf *sb = lj_buf_tmp_(L); 156 SBuf *sb = lj_buf_tmp_(L);
157 SFormat sf = (STRFMT_UINT|STRFMT_T_HEX); 157 SFormat sf = (STRFMT_UINT|STRFMT_T_HEX);
158 if (n < 0) { n = -n; sf |= STRFMT_F_UPPER; } 158 if (n < 0) { n = (int32_t)(~(uint32_t)n+1u); sf |= STRFMT_F_UPPER; }
159 if ((uint32_t)n > 254) n = 254;
159 sf |= ((SFormat)((n+1)&255) << STRFMT_SH_PREC); 160 sf |= ((SFormat)((n+1)&255) << STRFMT_SH_PREC);
160#if LJ_HASFFI 161#if LJ_HASFFI
161 if (n < 16) b &= ((uint64_t)1 << 4*n)-1; 162 if (n < 16) b &= ((uint64_t)1 << 4*n)-1;