diff options
-rw-r--r-- | src/lj_asm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c index 753fe6bd..5f83779e 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c | |||
@@ -1119,7 +1119,7 @@ static void asm_bufput(ASMState *as, IRIns *ir) | |||
1119 | const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_buf_putstr]; | 1119 | const CCallInfo *ci = &lj_ir_callinfo[IRCALL_lj_buf_putstr]; |
1120 | IRRef args[3]; | 1120 | IRRef args[3]; |
1121 | IRIns *irs; | 1121 | IRIns *irs; |
1122 | int kchar = -1; | 1122 | int kchar = -129; |
1123 | args[0] = ir->op1; /* SBuf * */ | 1123 | args[0] = ir->op1; /* SBuf * */ |
1124 | args[1] = ir->op2; /* GCstr * */ | 1124 | args[1] = ir->op2; /* GCstr * */ |
1125 | irs = IR(ir->op2); | 1125 | irs = IR(ir->op2); |
@@ -1127,7 +1127,7 @@ static void asm_bufput(ASMState *as, IRIns *ir) | |||
1127 | if (irs->o == IR_KGC) { | 1127 | if (irs->o == IR_KGC) { |
1128 | GCstr *s = ir_kstr(irs); | 1128 | GCstr *s = ir_kstr(irs); |
1129 | if (s->len == 1) { /* Optimize put of single-char string constant. */ | 1129 | if (s->len == 1) { /* Optimize put of single-char string constant. */ |
1130 | kchar = strdata(s)[0]; | 1130 | kchar = (int8_t)strdata(s)[0]; /* Signed! */ |
1131 | args[1] = ASMREF_TMP1; /* int, truncated to char */ | 1131 | args[1] = ASMREF_TMP1; /* int, truncated to char */ |
1132 | ci = &lj_ir_callinfo[IRCALL_lj_buf_putchar]; | 1132 | ci = &lj_ir_callinfo[IRCALL_lj_buf_putchar]; |
1133 | } | 1133 | } |
@@ -1154,7 +1154,7 @@ static void asm_bufput(ASMState *as, IRIns *ir) | |||
1154 | asm_gencall(as, ci, args); | 1154 | asm_gencall(as, ci, args); |
1155 | if (args[1] == ASMREF_TMP1) { | 1155 | if (args[1] == ASMREF_TMP1) { |
1156 | Reg tmp = ra_releasetmp(as, ASMREF_TMP1); | 1156 | Reg tmp = ra_releasetmp(as, ASMREF_TMP1); |
1157 | if (kchar == -1) | 1157 | if (kchar == -129) |
1158 | asm_tvptr(as, tmp, irs->op1); | 1158 | asm_tvptr(as, tmp, irs->op1); |
1159 | else | 1159 | else |
1160 | ra_allockreg(as, kchar, tmp); | 1160 | ra_allockreg(as, kchar, tmp); |