- fixed vector math instructions to use the same order of operations as the VM.

This commit is contained in:
Christoph Oelckers 2018-11-09 22:35:25 +01:00
parent 534606f4ce
commit 3c5609537a
1 changed files with 6 additions and 6 deletions

View File

@ -1157,8 +1157,8 @@ void JitCompiler::EmitADDV2_RR()
auto rc0 = CheckRegF(C, A); auto rc0 = CheckRegF(C, A);
auto rc1 = CheckRegF(C + 1, A + 1); auto rc1 = CheckRegF(C + 1, A + 1);
cc.movsd(regF[A], regF[B]); cc.movsd(regF[A], regF[B]);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.addsd(regF[A], rc0); cc.addsd(regF[A], rc0);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.addsd(regF[A + 1], rc1); cc.addsd(regF[A + 1], rc1);
} }
@ -1167,8 +1167,8 @@ void JitCompiler::EmitSUBV2_RR()
auto rc0 = CheckRegF(C, A); auto rc0 = CheckRegF(C, A);
auto rc1 = CheckRegF(C + 1, A + 1); auto rc1 = CheckRegF(C + 1, A + 1);
cc.movsd(regF[A], regF[B]); cc.movsd(regF[A], regF[B]);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.subsd(regF[A], rc0); cc.subsd(regF[A], rc0);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.subsd(regF[A + 1], rc1); cc.subsd(regF[A + 1], rc1);
} }
@ -1289,10 +1289,10 @@ void JitCompiler::EmitADDV3_RR()
auto rc1 = CheckRegF(C + 1, A + 1); auto rc1 = CheckRegF(C + 1, A + 1);
auto rc2 = CheckRegF(C + 2, A + 2); auto rc2 = CheckRegF(C + 2, A + 2);
cc.movsd(regF[A], regF[B]); cc.movsd(regF[A], regF[B]);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.movsd(regF[A + 2], regF[B + 2]);
cc.addsd(regF[A], rc0); cc.addsd(regF[A], rc0);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.addsd(regF[A + 1], rc1); cc.addsd(regF[A + 1], rc1);
cc.movsd(regF[A + 2], regF[B + 2]);
cc.addsd(regF[A + 2], rc2); cc.addsd(regF[A + 2], rc2);
} }
@ -1302,10 +1302,10 @@ void JitCompiler::EmitSUBV3_RR()
auto rc1 = CheckRegF(C + 1, A + 1); auto rc1 = CheckRegF(C + 1, A + 1);
auto rc2 = CheckRegF(C + 2, A + 2); auto rc2 = CheckRegF(C + 2, A + 2);
cc.movsd(regF[A], regF[B]); cc.movsd(regF[A], regF[B]);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.movsd(regF[A + 2], regF[B + 2]);
cc.subsd(regF[A], rc0); cc.subsd(regF[A], rc0);
cc.movsd(regF[A + 1], regF[B + 1]);
cc.subsd(regF[A + 1], rc1); cc.subsd(regF[A + 1], rc1);
cc.movsd(regF[A + 2], regF[B + 2]);
cc.subsd(regF[A + 2], rc2); cc.subsd(regF[A + 2], rc2);
} }