diff options
author | Mike Pall <mike> | 2010-09-09 12:01:29 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-09-09 12:01:29 +0200 |
commit | fd63b05253f11d7e436c3685827fce9b64725da6 (patch) | |
tree | 309dc62115841c0ec35ca92cd2ce4871f8dc6679 /src/lj_parse.c | |
parent | 8a1af8cf89e5b23d4c7e47dafd0bdba09a3c7e01 (diff) | |
download | luajit-fd63b05253f11d7e436c3685827fce9b64725da6.tar.gz luajit-fd63b05253f11d7e436c3685827fce9b64725da6.tar.bz2 luajit-fd63b05253f11d7e436c3685827fce9b64725da6.zip |
Use biased integer constant for TSETM array index.
Diffstat (limited to 'src/lj_parse.c')
-rw-r--r-- | src/lj_parse.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c index f5f59d03..e1ca2ff7 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c | |||
@@ -1369,7 +1369,8 @@ static void expr_table(LexState *ls, ExpDesc *e) | |||
1369 | lua_assert(bc_a(ilp->ins) == freg && | 1369 | lua_assert(bc_a(ilp->ins) == freg && |
1370 | bc_op(ilp->ins) == (narr > 256 ? BC_TSETV : BC_TSETB)); | 1370 | bc_op(ilp->ins) == (narr > 256 ? BC_TSETV : BC_TSETB)); |
1371 | expr_init(&en, VKNUM, 0); | 1371 | expr_init(&en, VKNUM, 0); |
1372 | setintV(&en.u.nval, narr-1); | 1372 | en.u.nval.u32.lo = narr-1; |
1373 | en.u.nval.u32.hi = 0x43300000; /* Biased integer to avoid denormals. */ | ||
1373 | if (narr > 256) { fs->pc--; ilp--; } | 1374 | if (narr > 256) { fs->pc--; ilp--; } |
1374 | ilp->ins = BCINS_AD(BC_TSETM, freg, const_num(fs, &en)); | 1375 | ilp->ins = BCINS_AD(BC_TSETM, freg, const_num(fs, &en)); |
1375 | setbc_b(&ilp[-1].ins, 0); | 1376 | setbc_b(&ilp[-1].ins, 0); |