aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_arm.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_asm_arm.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h
index 56ce4a07..d2fad141 100644
--- a/src/lj_asm_arm.h
+++ b/src/lj_asm_arm.h
@@ -1007,14 +1007,15 @@ static ARMIns asm_fxstoreins(ASMState *as, IRIns *ir)
1007 1007
1008static void asm_fload(ASMState *as, IRIns *ir) 1008static void asm_fload(ASMState *as, IRIns *ir)
1009{ 1009{
1010 Reg dest = ra_dest(as, ir, RSET_GPR);
1011 ARMIns ai = asm_fxloadins(as, ir);
1012 Reg idx;
1013 int32_t ofs;
1010 if (ir->op1 == REF_NIL) { /* FLOAD from GG_State with offset. */ 1014 if (ir->op1 == REF_NIL) { /* FLOAD from GG_State with offset. */
1011 /* We can end up here if DCE is turned off. */ 1015 idx = ra_allock(as, (int32_t)(ir->op2<<2) + (int32_t)J2GG(as->J), RSET_GPR);
1012 lj_assertA(!ra_used(ir), "NYI FLOAD GG_State"); 1016 ofs = 0;
1013 } else { 1017 } else {
1014 Reg dest = ra_dest(as, ir, RSET_GPR); 1018 idx = ra_alloc1(as, ir->op1, RSET_GPR);
1015 Reg idx = ra_alloc1(as, ir->op1, RSET_GPR);
1016 ARMIns ai = asm_fxloadins(as, ir);
1017 int32_t ofs;
1018 if (ir->op2 == IRFL_TAB_ARRAY) { 1019 if (ir->op2 == IRFL_TAB_ARRAY) {
1019 ofs = asm_fuseabase(as, ir->op1); 1020 ofs = asm_fuseabase(as, ir->op1);
1020 if (ofs) { /* Turn the t->array load into an add for colocated arrays. */ 1021 if (ofs) { /* Turn the t->array load into an add for colocated arrays. */
@@ -1023,11 +1024,11 @@ static void asm_fload(ASMState *as, IRIns *ir)
1023 } 1024 }
1024 } 1025 }
1025 ofs = field_ofs[ir->op2]; 1026 ofs = field_ofs[ir->op2];
1026 if ((ai & 0x04000000))
1027 emit_lso(as, ai, dest, idx, ofs);
1028 else
1029 emit_lsox(as, ai, dest, idx, ofs);
1030 } 1027 }
1028 if ((ai & 0x04000000))
1029 emit_lso(as, ai, dest, idx, ofs);
1030 else
1031 emit_lsox(as, ai, dest, idx, ofs);
1031} 1032}
1032 1033
1033static void asm_fstore(ASMState *as, IRIns *ir) 1034static void asm_fstore(ASMState *as, IRIns *ir)