public void FPUG_NegateFpuStackReturn()
        {
            var top_1   = m.Reg("FakeTop_1", Top);
            var top_2   = m.Reg("FakeTop_2", Top);
            var top_3   = m.Reg("FakeTop_3", Top);
            var a       = m.Reg64("a");
            var f       = m.Reg32("f");
            var uses    = new Identifier[] { top_1 };
            var defines = new Identifier[] { top_2 };

            m.Call(f, 4, uses, defines);
            m.Store(MemST(top_2), m.Neg(MemST(top_2)));

            RunFpuStackReturnGuesser();

            var expected =
                @"
call f (retsize: 4;)
	uses: Top:FakeTop_1
	defs: FPU -1:rRet0
FakeST9[FakeTop_1 - 1<8>:real64] = rRet0
FakeTop_2 = FakeTop_1 - 1<i8>
FakeST[FakeTop_2:real64] = -FakeST[FakeTop_2:real64]
";

            AssertProcedureCode(expected);
        }