- fix operand size mismatch error

This commit is contained in:
Magnus Norddahl 2018-11-15 22:07:27 +01:00
parent 3b2faf5397
commit f3e0db913c

View file

@ -255,8 +255,7 @@ void JitCompiler::EmitLV2()
{ {
EmitNullPointerThrow(B, X_READ_NIL); EmitNullPointerThrow(B, X_READ_NIL);
auto tmp = newTempIntPtr(); auto tmp = newTempIntPtr();
cc.mov(tmp, regA[B]); cc.lea(tmp, asmjit::x86::qword_ptr(regA[B], konstd[C]));
cc.add(tmp, konstd[C]);
cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp)); cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp));
cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8)); cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8));
} }
@ -265,8 +264,7 @@ void JitCompiler::EmitLV2_R()
{ {
EmitNullPointerThrow(B, X_READ_NIL); EmitNullPointerThrow(B, X_READ_NIL);
auto tmp = newTempIntPtr(); auto tmp = newTempIntPtr();
cc.mov(tmp, regA[B]); cc.lea(tmp, asmjit::x86::qword_ptr(regA[B], regD[C]));
cc.add(tmp, regD[C]);
cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp)); cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp));
cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8)); cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8));
} }
@ -275,8 +273,7 @@ void JitCompiler::EmitLV3()
{ {
EmitNullPointerThrow(B, X_READ_NIL); EmitNullPointerThrow(B, X_READ_NIL);
auto tmp = newTempIntPtr(); auto tmp = newTempIntPtr();
cc.mov(tmp, regA[B]); cc.lea(tmp, asmjit::x86::qword_ptr(regA[B], konstd[C]));
cc.add(tmp, konstd[C]);
cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp)); cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp));
cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8)); cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8));
cc.movsd(regF[A + 2], asmjit::x86::qword_ptr(tmp, 16)); cc.movsd(regF[A + 2], asmjit::x86::qword_ptr(tmp, 16));
@ -286,8 +283,7 @@ void JitCompiler::EmitLV3_R()
{ {
EmitNullPointerThrow(B, X_READ_NIL); EmitNullPointerThrow(B, X_READ_NIL);
auto tmp = newTempIntPtr(); auto tmp = newTempIntPtr();
cc.mov(tmp, regA[B]); cc.lea(tmp, asmjit::x86::qword_ptr(regA[B], regD[C]));
cc.add(tmp, regD[C]);
cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp)); cc.movsd(regF[A], asmjit::x86::qword_ptr(tmp));
cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8)); cc.movsd(regF[A + 1], asmjit::x86::qword_ptr(tmp, 8));
cc.movsd(regF[A + 2], asmjit::x86::qword_ptr(tmp, 16)); cc.movsd(regF[A + 2], asmjit::x86::qword_ptr(tmp, 16));