summaryrefslogtreecommitdiff
path: root/src/lj_asm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r--src/lj_asm_x86.h14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index 59c808c4..86dc7af2 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -1155,7 +1155,7 @@ static void asm_newref(ASMState *as, IRIns *ir)
1155 IRRef args[3]; 1155 IRRef args[3];
1156 IRIns *irkey; 1156 IRIns *irkey;
1157 Reg tmp; 1157 Reg tmp;
1158 if (ir->r == RID_SINK) /* Sink newref. */ 1158 if (ir->r == RID_SINK)
1159 return; 1159 return;
1160 args[0] = ASMREF_L; /* lua_State *L */ 1160 args[0] = ASMREF_L; /* lua_State *L */
1161 args[1] = ir->op1; /* GCtab *t */ 1161 args[1] = ir->op1; /* GCtab *t */
@@ -1261,10 +1261,8 @@ static void asm_fxstore(ASMState *as, IRIns *ir)
1261 RegSet allow = RSET_GPR; 1261 RegSet allow = RSET_GPR;
1262 Reg src = RID_NONE, osrc = RID_NONE; 1262 Reg src = RID_NONE, osrc = RID_NONE;
1263 int32_t k = 0; 1263 int32_t k = 0;
1264 if (ir->r == RID_SINK) { /* Sink store. */ 1264 if (ir->r == RID_SINK)
1265 asm_snap_prep(as);
1266 return; 1265 return;
1267 }
1268 /* The IRT_I16/IRT_U16 stores should never be simplified for constant 1266 /* The IRT_I16/IRT_U16 stores should never be simplified for constant
1269 ** values since mov word [mem], imm16 has a length-changing prefix. 1267 ** values since mov word [mem], imm16 has a length-changing prefix.
1270 */ 1268 */
@@ -1378,10 +1376,8 @@ static void asm_ahuvload(ASMState *as, IRIns *ir)
1378 1376
1379static void asm_ahustore(ASMState *as, IRIns *ir) 1377static void asm_ahustore(ASMState *as, IRIns *ir)
1380{ 1378{
1381 if (ir->r == RID_SINK) { /* Sink store. */ 1379 if (ir->r == RID_SINK)
1382 asm_snap_prep(as);
1383 return; 1380 return;
1384 }
1385 if (irt_isnum(ir->t)) { 1381 if (irt_isnum(ir->t)) {
1386 Reg src = ra_alloc1(as, ir->op2, RSET_FPR); 1382 Reg src = ra_alloc1(as, ir->op2, RSET_FPR);
1387 asm_fuseahuref(as, ir->op1, RSET_GPR); 1383 asm_fuseahuref(as, ir->op1, RSET_GPR);
@@ -2261,9 +2257,7 @@ static void asm_hiop(ASMState *as, IRIns *ir)
2261 asm_comp_int64(as, ir); 2257 asm_comp_int64(as, ir);
2262 return; 2258 return;
2263 } else if ((ir-1)->o == IR_XSTORE) { 2259 } else if ((ir-1)->o == IR_XSTORE) {
2264 if ((ir-1)->r == RID_SINK) 2260 if ((ir-1)->r != RID_SINK)
2265 asm_snap_prep(as);
2266 else
2267 asm_fxstore(as, ir); 2261 asm_fxstore(as, ir);
2268 return; 2262 return;
2269 } 2263 }