public void Ps3p_GetTrampoline() { var arch = new PowerPcArchitecture64(); var m = new InstructionBuilder(arch, Address.Ptr32(0x10030000)); m.Lis(m.r11, 0x1006); m.Lwz(m.r11, 0x1234, m.r11); m.Mtctr(m.r11); m.Bctr(); var host = mr.Stub<IRewriterHost>(); host.Stub(h => h.GetImportedProcedure( Arg<Address>.Matches(a => a.ToLinear() == 0x10061234), Arg<Address>.Is.Anything)).Return(new ExternalProcedure("foo", null)); mr.ReplayAll(); ProcedureBase proc = arch.GetTrampolineDestination(m.Instructions, host); Assert.IsNotNull(proc); Assert.AreEqual("foo", proc.Name); }
private void RunTest(Action<InstructionBuilder> m) { b = new InstructionBuilder(arch, Address.Ptr32(0x01000000)); m(b); ppcInstrs = b.Instructions; }