diff options
author | Mike Pall <mike> | 2009-12-29 01:38:26 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2009-12-29 01:38:26 +0100 |
commit | 374f53471528e1592d9075c47e579d2f3c546beb (patch) | |
tree | 46fabaa61de90e0bf232de21ab70370eb61af6c1 /src/lj_record.c | |
parent | 8a9cfa4b4592e50be1903b83d28c8ea2fbc4aa43 (diff) | |
download | luajit-374f53471528e1592d9075c47e579d2f3c546beb.tar.gz luajit-374f53471528e1592d9075c47e579d2f3c546beb.tar.bz2 luajit-374f53471528e1592d9075c47e579d2f3c546beb.zip |
Logical 'not' must be sign-extended for address operands.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 9466b529..6206bfcd 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -1751,7 +1751,7 @@ void lj_record_ins(jit_State *J) | |||
1751 | case BCMpri: setitype(rcv, (int32_t)~rc); rc = TREF_PRI(IRT_NIL+rc); break; | 1751 | case BCMpri: setitype(rcv, (int32_t)~rc); rc = TREF_PRI(IRT_NIL+rc); break; |
1752 | case BCMnum: { lua_Number n = J->pt->k.n[rc]; | 1752 | case BCMnum: { lua_Number n = J->pt->k.n[rc]; |
1753 | setnumV(rcv, n); ix.key = rc = lj_ir_knumint(J, n); } break; | 1753 | setnumV(rcv, n); ix.key = rc = lj_ir_knumint(J, n); } break; |
1754 | case BCMstr: { GCstr *s = strref(J->pt->k.gc[~rc]); | 1754 | case BCMstr: { GCstr *s = strref(J->pt->k.gc[~(ptrdiff_t)rc]); |
1755 | setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break; | 1755 | setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break; |
1756 | default: break; /* Handled later. */ | 1756 | default: break; /* Handled later. */ |
1757 | } | 1757 | } |
@@ -1943,7 +1943,7 @@ void lj_record_ins(jit_State *J) | |||
1943 | break; | 1943 | break; |
1944 | case BC_TDUP: | 1944 | case BC_TDUP: |
1945 | rc = emitir(IRT(IR_TDUP, IRT_TAB), | 1945 | rc = emitir(IRT(IR_TDUP, IRT_TAB), |
1946 | lj_ir_ktab(J, tabref(J->pt->k.gc[~rc])), 0); | 1946 | lj_ir_ktab(J, tabref(J->pt->k.gc[~(ptrdiff_t)rc])), 0); |
1947 | break; | 1947 | break; |
1948 | 1948 | ||
1949 | /* -- Calls and vararg handling ----------------------------------------- */ | 1949 | /* -- Calls and vararg handling ----------------------------------------- */ |