aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_split.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_opt_split.c')
-rw-r--r--src/lj_opt_split.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c
index 72720e86..77b8e2dd 100644
--- a/src/lj_opt_split.c
+++ b/src/lj_opt_split.c
@@ -78,8 +78,7 @@
78** 0105 int HIOP 0103 +0 78** 0105 int HIOP 0103 +0
79** 0106 p32 ADD base +16 79** 0106 p32 ADD base +16
80** 0107 int XSTORE 0106 0104 80** 0107 int XSTORE 0106 0104
81** 0108 p32 ADD base +20 81** 0108 int HIOP 0106 0105
82** 0109 int XSTORE 0108 0105
83** 82**
84** mov eax, [esi+0x8] 83** mov eax, [esi+0x8]
85** mov ecx, [esi+0xc] 84** mov ecx, [esi+0xc]
@@ -328,19 +327,9 @@ static void split_ir(jit_State *J)
328#endif 327#endif
329 break; 328 break;
330 } 329 }
331 case IR_ASTORE: case IR_HSTORE: case IR_USTORE: 330 case IR_ASTORE: case IR_HSTORE: case IR_USTORE: case IR_XSTORE:
332 split_emit(J, IRT(IR_HIOP, IRT_SOFTFP), nir->op1, hisubst[ir->op2]); 331 split_emit(J, IRT(IR_HIOP, IRT_SOFTFP), nir->op1, hisubst[ir->op2]);
333 break; 332 break;
334 case IR_XSTORE: {
335#if LJ_LE
336 IRRef hiref = hisubst[ir->op2];
337#else
338 IRRef hiref = nir->op2; nir->op2 = hisubst[ir->op2];
339#endif
340 split_emit(J, IRT(IR_XSTORE, IRT_SOFTFP),
341 split_ptr(J, oir, ir->op1), hiref);
342 break;
343 }
344 case IR_CONV: { /* Conversion to number. Others handled below. */ 333 case IR_CONV: { /* Conversion to number. Others handled below. */
345 IRType st = (IRType)(ir->op2 & IRCONV_SRCMASK); 334 IRType st = (IRType)(ir->op2 & IRCONV_SRCMASK);
346 UNUSED(st); 335 UNUSED(st);
@@ -434,12 +423,7 @@ static void split_ir(jit_State *J)
434#endif 423#endif
435 break; 424 break;
436 case IR_XSTORE: 425 case IR_XSTORE:
437#if LJ_LE 426 split_emit(J, IRTI(IR_HIOP), nir->op1, hisubst[ir->op2]);
438 hiref = hisubst[ir->op2];
439#else
440 hiref = nir->op2; nir->op2 = hisubst[ir->op2];
441#endif
442 split_emit(J, IRTI(IR_XSTORE), split_ptr(J, oir, ir->op1), hiref);
443 break; 427 break;
444 case IR_CONV: { /* Conversion to 64 bit integer. Others handled below. */ 428 case IR_CONV: { /* Conversion to 64 bit integer. Others handled below. */
445 IRType st = (IRType)(ir->op2 & IRCONV_SRCMASK); 429 IRType st = (IRType)(ir->op2 & IRCONV_SRCMASK);