diff options
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r-- | src/lj_asm_x86.h | 14 |
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 | ||
1379 | static void asm_ahustore(ASMState *as, IRIns *ir) | 1377 | static 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 | } |