aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-10-13 20:53:01 +0200
committerMike Pall <mike>2011-10-13 20:53:01 +0200
commit882537a8744a75681355fb520923e6e867f99d23 (patch)
tree4f73b13fb14f5c9a38534a83c8fcb47bbe442c12 /src
parentbc95d54ec932fddca832e35344efbecf1344e984 (diff)
downloadluajit-882537a8744a75681355fb520923e6e867f99d23.tar.gz
luajit-882537a8744a75681355fb520923e6e867f99d23.tar.bz2
luajit-882537a8744a75681355fb520923e6e867f99d23.zip
FFI: Fix unfused loads of float fields.
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm_x86.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index 0803ecef..840484d0 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -1147,13 +1147,13 @@ static void asm_strref(ASMState *as, IRIns *ir)
1147 1147
1148static void asm_fxload(ASMState *as, IRIns *ir) 1148static void asm_fxload(ASMState *as, IRIns *ir)
1149{ 1149{
1150 Reg dest = ra_dest(as, ir, irt_isnum(ir->t) ? RSET_FPR : RSET_GPR); 1150 Reg dest = ra_dest(as, ir, irt_isfp(ir->t) ? RSET_FPR : RSET_GPR);
1151 x86Op xo; 1151 x86Op xo;
1152 if (ir->o == IR_FLOAD) 1152 if (ir->o == IR_FLOAD)
1153 asm_fusefref(as, ir, RSET_GPR); 1153 asm_fusefref(as, ir, RSET_GPR);
1154 else 1154 else
1155 asm_fusexref(as, ir->op1, RSET_GPR); 1155 asm_fusexref(as, ir->op1, RSET_GPR);
1156 /* ir->op2 is ignored -- unaligned loads are ok on x86. */ 1156 /* ir->op2 is ignored -- unaligned loads are ok on x86. */
1157 switch (irt_type(ir->t)) { 1157 switch (irt_type(ir->t)) {
1158 case IRT_I8: xo = XO_MOVSXb; break; 1158 case IRT_I8: xo = XO_MOVSXb; break;
1159 case IRT_U8: xo = XO_MOVZXb; break; 1159 case IRT_U8: xo = XO_MOVZXb; break;