|
|
|
@ -62,6 +62,8 @@ linkAndAllocate(JSContext* cx, js::jit::MacroAssembler* masm)
|
|
|
|
|
return l.newCode<CanGC>(cx, ION_CODE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define TRY(x) if (!(x)) return false;
|
|
|
|
|
|
|
|
|
|
BEGIN_TEST(testJitMoveEmitterCycles_simple)
|
|
|
|
|
{
|
|
|
|
|
using namespace js;
|
|
|
|
@ -75,20 +77,20 @@ BEGIN_TEST(testJitMoveEmitterCycles_simple)
|
|
|
|
|
MoveResolver mr;
|
|
|
|
|
mr.setAllocator(alloc);
|
|
|
|
|
Simulator* sim = Simulator::Current();
|
|
|
|
|
mr.addMove(MoveOperand(d0), MoveOperand(d2), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d0), MoveOperand(d2), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(0, 2);
|
|
|
|
|
mr.addMove(MoveOperand(d3), MoveOperand(d1), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d3), MoveOperand(d1), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(3, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s4), MoveOperand(s0), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s4), MoveOperand(s0), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(4, 0);
|
|
|
|
|
mr.addMove(MoveOperand(s5), MoveOperand(s6), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s5), MoveOperand(s6), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(5, 6);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s1), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s1), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s3), MoveOperand(s7), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s3), MoveOperand(s7), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(3, 7);
|
|
|
|
|
// don't explode!
|
|
|
|
|
mr.resolve();
|
|
|
|
|
TRY(mr.resolve());
|
|
|
|
|
mover.emit(mr);
|
|
|
|
|
mover.finish();
|
|
|
|
|
masm.abiret();
|
|
|
|
@ -116,58 +118,58 @@ BEGIN_TEST(testJitMoveEmitterCycles_autogen)
|
|
|
|
|
MoveResolver mr;
|
|
|
|
|
mr.setAllocator(alloc);
|
|
|
|
|
Simulator* sim = Simulator::Current();
|
|
|
|
|
mr.addMove(MoveOperand(d9), MoveOperand(d14), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d9), MoveOperand(d14), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(9, 9);
|
|
|
|
|
mr.addMove(MoveOperand(s24), MoveOperand(s25), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s24), MoveOperand(s25), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(24, 24);
|
|
|
|
|
mr.addMove(MoveOperand(d3), MoveOperand(d0), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d3), MoveOperand(d0), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(3, 3);
|
|
|
|
|
mr.addMove(MoveOperand(s10), MoveOperand(s31), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s10), MoveOperand(s31), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(10, 10);
|
|
|
|
|
mr.addMove(MoveOperand(d1), MoveOperand(d10), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d1), MoveOperand(d10), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(1, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s8), MoveOperand(s10), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s8), MoveOperand(s10), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(8, 8);
|
|
|
|
|
mr.addMove(MoveOperand(d2), MoveOperand(d7), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d2), MoveOperand(d7), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s20), MoveOperand(s18), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s20), MoveOperand(s18), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(20, 20);
|
|
|
|
|
mr.addMove(MoveOperand(s1), MoveOperand(s3), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s1), MoveOperand(s3), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(1, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s17), MoveOperand(s11), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s17), MoveOperand(s11), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(17, 17);
|
|
|
|
|
mr.addMove(MoveOperand(s22), MoveOperand(s30), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s22), MoveOperand(s30), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(22, 22);
|
|
|
|
|
mr.addMove(MoveOperand(s31), MoveOperand(s7), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s31), MoveOperand(s7), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(31, 31);
|
|
|
|
|
mr.addMove(MoveOperand(d3), MoveOperand(d13), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d3), MoveOperand(d13), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(3, 3);
|
|
|
|
|
mr.addMove(MoveOperand(d9), MoveOperand(d8), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d9), MoveOperand(d8), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(9, 9);
|
|
|
|
|
mr.addMove(MoveOperand(s31), MoveOperand(s23), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s31), MoveOperand(s23), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(31, 31);
|
|
|
|
|
mr.addMove(MoveOperand(s13), MoveOperand(s8), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s13), MoveOperand(s8), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(13, 13);
|
|
|
|
|
mr.addMove(MoveOperand(s28), MoveOperand(s5), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s28), MoveOperand(s5), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(28, 28);
|
|
|
|
|
mr.addMove(MoveOperand(s31), MoveOperand(s19), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s31), MoveOperand(s19), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(31, 31);
|
|
|
|
|
mr.addMove(MoveOperand(s20), MoveOperand(s6), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s20), MoveOperand(s6), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(20, 20);
|
|
|
|
|
mr.addMove(MoveOperand(s0), MoveOperand(s2), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s0), MoveOperand(s2), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(0, 0);
|
|
|
|
|
mr.addMove(MoveOperand(d7), MoveOperand(d6), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d7), MoveOperand(d6), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(7, 7);
|
|
|
|
|
mr.addMove(MoveOperand(s13), MoveOperand(s9), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s13), MoveOperand(s9), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(13, 13);
|
|
|
|
|
mr.addMove(MoveOperand(s1), MoveOperand(s4), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s1), MoveOperand(s4), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(1, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s29), MoveOperand(s22), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s29), MoveOperand(s22), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(29, 29);
|
|
|
|
|
mr.addMove(MoveOperand(s25), MoveOperand(s24), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s25), MoveOperand(s24), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(25, 25);
|
|
|
|
|
// don't explode!
|
|
|
|
|
mr.resolve();
|
|
|
|
|
TRY(mr.resolve());
|
|
|
|
|
mover.emit(mr);
|
|
|
|
|
mover.finish();
|
|
|
|
|
masm.abiret();
|
|
|
|
@ -216,66 +218,66 @@ BEGIN_TEST(testJitMoveEmitterCycles_autogen2)
|
|
|
|
|
MoveResolver mr;
|
|
|
|
|
mr.setAllocator(alloc);
|
|
|
|
|
Simulator* sim = Simulator::Current();
|
|
|
|
|
mr.addMove(MoveOperand(d10), MoveOperand(d0), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d10), MoveOperand(d0), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(10, 10);
|
|
|
|
|
mr.addMove(MoveOperand(s15), MoveOperand(s3), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s15), MoveOperand(s3), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(15, 15);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s28), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s28), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s30), MoveOperand(s25), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s30), MoveOperand(s25), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(30, 30);
|
|
|
|
|
mr.addMove(MoveOperand(s16), MoveOperand(s2), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s16), MoveOperand(s2), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(16, 16);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s29), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s29), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s17), MoveOperand(s10), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s17), MoveOperand(s10), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(17, 17);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s19), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s19), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s9), MoveOperand(s26), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s9), MoveOperand(s26), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(9, 9);
|
|
|
|
|
mr.addMove(MoveOperand(s1), MoveOperand(s23), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s1), MoveOperand(s23), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(1, 1);
|
|
|
|
|
mr.addMove(MoveOperand(s8), MoveOperand(s6), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s8), MoveOperand(s6), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(8, 8);
|
|
|
|
|
mr.addMove(MoveOperand(s24), MoveOperand(s16), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s24), MoveOperand(s16), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(24, 24);
|
|
|
|
|
mr.addMove(MoveOperand(s19), MoveOperand(s4), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s19), MoveOperand(s4), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(19, 19);
|
|
|
|
|
mr.addMove(MoveOperand(d5), MoveOperand(d6), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d5), MoveOperand(d6), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(5, 5);
|
|
|
|
|
mr.addMove(MoveOperand(s18), MoveOperand(s15), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s18), MoveOperand(s15), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(18, 18);
|
|
|
|
|
mr.addMove(MoveOperand(s23), MoveOperand(s30), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s23), MoveOperand(s30), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(23, 23);
|
|
|
|
|
mr.addMove(MoveOperand(s27), MoveOperand(s17), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s27), MoveOperand(s17), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(27, 27);
|
|
|
|
|
mr.addMove(MoveOperand(d3), MoveOperand(d4), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d3), MoveOperand(d4), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(3, 3);
|
|
|
|
|
mr.addMove(MoveOperand(s14), MoveOperand(s27), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s14), MoveOperand(s27), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(14, 14);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s31), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s31), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s24), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s24), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s31), MoveOperand(s11), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s31), MoveOperand(s11), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(31, 31);
|
|
|
|
|
mr.addMove(MoveOperand(s0), MoveOperand(s18), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s0), MoveOperand(s18), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(0, 0);
|
|
|
|
|
mr.addMove(MoveOperand(s24), MoveOperand(s7), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s24), MoveOperand(s7), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(24, 24);
|
|
|
|
|
mr.addMove(MoveOperand(s0), MoveOperand(s21), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s0), MoveOperand(s21), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(0, 0);
|
|
|
|
|
mr.addMove(MoveOperand(s27), MoveOperand(s20), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s27), MoveOperand(s20), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(27, 27);
|
|
|
|
|
mr.addMove(MoveOperand(s14), MoveOperand(s5), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s14), MoveOperand(s5), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(14, 14);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s14), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s14), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s12), MoveOperand(s22), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s12), MoveOperand(s22), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(12, 12);
|
|
|
|
|
// don't explode!
|
|
|
|
|
mr.resolve();
|
|
|
|
|
TRY(mr.resolve());
|
|
|
|
|
mover.emit(mr);
|
|
|
|
|
mover.finish();
|
|
|
|
|
masm.abiret();
|
|
|
|
@ -329,66 +331,66 @@ BEGIN_TEST(testJitMoveEmitterCycles_autogen3)
|
|
|
|
|
MoveResolver mr;
|
|
|
|
|
mr.setAllocator(alloc);
|
|
|
|
|
Simulator* sim = Simulator::Current();
|
|
|
|
|
mr.addMove(MoveOperand(s0), MoveOperand(s21), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s0), MoveOperand(s21), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(0, 0);
|
|
|
|
|
mr.addMove(MoveOperand(s2), MoveOperand(s26), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s2), MoveOperand(s26), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(2, 2);
|
|
|
|
|
mr.addMove(MoveOperand(s19), MoveOperand(s20), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s19), MoveOperand(s20), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(19, 19);
|
|
|
|
|
mr.addMove(MoveOperand(s4), MoveOperand(s24), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s4), MoveOperand(s24), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(4, 4);
|
|
|
|
|
mr.addMove(MoveOperand(s22), MoveOperand(s9), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s22), MoveOperand(s9), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(22, 22);
|
|
|
|
|
mr.addMove(MoveOperand(s5), MoveOperand(s28), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s5), MoveOperand(s28), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(5, 5);
|
|
|
|
|
mr.addMove(MoveOperand(s15), MoveOperand(s7), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s15), MoveOperand(s7), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(15, 15);
|
|
|
|
|
mr.addMove(MoveOperand(s26), MoveOperand(s14), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s26), MoveOperand(s14), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(26, 26);
|
|
|
|
|
mr.addMove(MoveOperand(s13), MoveOperand(s30), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s13), MoveOperand(s30), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(13, 13);
|
|
|
|
|
mr.addMove(MoveOperand(s26), MoveOperand(s22), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s26), MoveOperand(s22), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(26, 26);
|
|
|
|
|
mr.addMove(MoveOperand(s21), MoveOperand(s6), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s21), MoveOperand(s6), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(21, 21);
|
|
|
|
|
mr.addMove(MoveOperand(s23), MoveOperand(s31), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s23), MoveOperand(s31), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(23, 23);
|
|
|
|
|
mr.addMove(MoveOperand(s7), MoveOperand(s12), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s7), MoveOperand(s12), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(7, 7);
|
|
|
|
|
mr.addMove(MoveOperand(s14), MoveOperand(s10), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s14), MoveOperand(s10), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(14, 14);
|
|
|
|
|
mr.addMove(MoveOperand(d12), MoveOperand(d8), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d12), MoveOperand(d8), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(12, 12);
|
|
|
|
|
mr.addMove(MoveOperand(s5), MoveOperand(s1), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s5), MoveOperand(s1), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(5, 5);
|
|
|
|
|
mr.addMove(MoveOperand(d12), MoveOperand(d2), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d12), MoveOperand(d2), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(12, 12);
|
|
|
|
|
mr.addMove(MoveOperand(s3), MoveOperand(s8), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s3), MoveOperand(s8), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(3, 3);
|
|
|
|
|
mr.addMove(MoveOperand(s14), MoveOperand(s0), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s14), MoveOperand(s0), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(14, 14);
|
|
|
|
|
mr.addMove(MoveOperand(s28), MoveOperand(s29), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s28), MoveOperand(s29), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(28, 28);
|
|
|
|
|
mr.addMove(MoveOperand(d12), MoveOperand(d9), MoveOp::DOUBLE);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(d12), MoveOperand(d9), MoveOp::DOUBLE));
|
|
|
|
|
sim->set_d_register_from_double(12, 12);
|
|
|
|
|
mr.addMove(MoveOperand(s29), MoveOperand(s2), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s29), MoveOperand(s2), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(29, 29);
|
|
|
|
|
mr.addMove(MoveOperand(s22), MoveOperand(s27), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s22), MoveOperand(s27), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(22, 22);
|
|
|
|
|
mr.addMove(MoveOperand(s19), MoveOperand(s3), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s19), MoveOperand(s3), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(19, 19);
|
|
|
|
|
mr.addMove(MoveOperand(s21), MoveOperand(s11), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s21), MoveOperand(s11), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(21, 21);
|
|
|
|
|
mr.addMove(MoveOperand(s22), MoveOperand(s13), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s22), MoveOperand(s13), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(22, 22);
|
|
|
|
|
mr.addMove(MoveOperand(s29), MoveOperand(s25), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s29), MoveOperand(s25), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(29, 29);
|
|
|
|
|
mr.addMove(MoveOperand(s29), MoveOperand(s15), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s29), MoveOperand(s15), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(29, 29);
|
|
|
|
|
mr.addMove(MoveOperand(s16), MoveOperand(s23), MoveOp::FLOAT32);
|
|
|
|
|
TRY(mr.addMove(MoveOperand(s16), MoveOperand(s23), MoveOp::FLOAT32));
|
|
|
|
|
sim->set_s_register_from_float(16, 16);
|
|
|
|
|
// don't explode!
|
|
|
|
|
mr.resolve();
|
|
|
|
|
TRY(mr.resolve());
|
|
|
|
|
mover.emit(mr);
|
|
|
|
|
mover.finish();
|
|
|
|
|
masm.abiret();
|
|
|
|
|