aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_opt_mem.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c
index 6062be70..40064639 100644
--- a/src/lj_opt_mem.c
+++ b/src/lj_opt_mem.c
@@ -689,8 +689,8 @@ retry:
689 if (st == IRT_I8 || st == IRT_I16) { /* Trunc + sign-extend. */ 689 if (st == IRT_I8 || st == IRT_I16) { /* Trunc + sign-extend. */
690 st |= IRCONV_SEXT; 690 st |= IRCONV_SEXT;
691 } else if (st == IRT_U8 || st == IRT_U16) { /* Trunc + zero-extend. */ 691 } else if (st == IRT_U8 || st == IRT_U16) { /* Trunc + zero-extend. */
692 } else if (st == IRT_INT && irt_isu32(IR(store->op2)->t)) { 692 } else if (st == IRT_INT && !irt_isint(IR(store->op2)->t)) {
693 st = IRT_U32; /* Needs dummy CONV.int.u32. */ 693 st = irt_type(IR(store->op2)->t); /* Needs dummy CONV.int.*. */
694 } else { /* I64/U64 are boxed, U32 is hidden behind a CONV.num.u32. */ 694 } else { /* I64/U64 are boxed, U32 is hidden behind a CONV.num.u32. */
695 goto store_fwd; 695 goto store_fwd;
696 } 696 }