public void MatchFormatTest() { var parts = MipsAssembler.Matcher("%d, %s, %t", " r1, r2, r3 "); Assert.Equal(3, parts.Count); Assert.Equal("r1", parts["%d"]); Assert.Equal("r2", parts["%s"]); Assert.Equal("r3", parts["%t"]); }
public void MatchFormatTest() { var Parts = MipsAssembler.MatchFormat("%d, %s, %t", " r1, r2, r3 "); Assert.AreEqual(3, Parts.Count); Assert.AreEqual("(%d, r1)", Parts[0].ToString()); Assert.AreEqual("(%s, r2)", Parts[1].ToString()); Assert.AreEqual("(%t, r3)", Parts[2].ToString()); }
public void SetUp() { PspConfig = new PspConfig(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType <PspMemory, LazyPspMemory>(); Processor = PspEmulatorContext.GetInstance <CpuProcessor>(); MipsAssembler = new MipsAssembler(new PspMemoryStream(PspEmulatorContext.GetInstance <PspMemory>())); }
public void TestMethod2() { var processor = new CpuProcessor(); var state = new CpuThreadState(processor); var interpreter = new CpuInterpreter(state); state.Gpr2 = 3; state.Gpr3 = 7; interpreter.Interpret(MipsAssembler.StaticAssembleInstructions(@"add r1, r2, r3").Instructions[0]); Assert.Equal(3 + 7, (int)state.Gpr1); }
public void TokenizeTest() { Assert.AreEqual( "add:r1:,:r2:,:r3", String.Join(":", MipsAssembler.Tokenize(" add r1, r2, r3 ").ToArray()) ); Assert.AreEqual( ",:,:,:,:.:.:.:[:]", String.Join(":", MipsAssembler.Tokenize(" ,, , , .. .[]\t")) ); Assert.AreEqual( "%s:,:%t", String.Join(":", MipsAssembler.Tokenize("%s, %t")) ); }
static public Action <CpuThreadState> CreateDelegateForString(this CpuProcessor CpuProcessor, String Assembly, bool BreakPoint = false) { var MemoryStream = new MemoryStream(); MemoryStream.PreservePositionAndLock(() => { var MipsAssembler = new MipsAssembler(MemoryStream); MipsAssembler.Assemble(Assembly); }); var Delegate = CpuProcessor.CreateDelegateForPC(MemoryStream, 0); return((_CpuThreadState) => { _CpuThreadState.StepInstructionCount = 1000000; Delegate(_CpuThreadState); }); }
public void AssembleTest() { var memoryStream = new MemoryStream(); var binaryReader = new BinaryReader(memoryStream); memoryStream.PreservePositionAndLock(() => { var mipsAssembler = new MipsAssembler(memoryStream); mipsAssembler.Assemble(@" add r1, r0, r2 sub r3, r31, r7 " ); }); Assert.Equal(8, memoryStream.Length); Assert.Equal((uint)0x00020820, binaryReader.ReadUInt32()); Assert.Equal((uint)0x03E71822, binaryReader.ReadUInt32()); }
public void TestMethod1() { var cpuProcessor = CpuUtils.CreateCpuProcessor(); var dynarecFunction = cpuProcessor.DynarecFunctionCompiler.CreateFunction( new InstructionArrayReader(MipsAssembler.StaticAssembleInstructions(@" addi r1, r1, 1 jr r31 nop " ).Instructions), 0, checkValidAddress: false ); var cpuThreadState = new CpuThreadState(cpuProcessor); Assert.Equal(0, cpuThreadState.Gpr[1]); dynarecFunction.Delegate(cpuThreadState); Assert.Equal(1, cpuThreadState.Gpr[1]); }
public void DisassembleJumpInstruction() { var assemblerResult = MipsAssembler.StaticAssembleInstructions(@" label1: j label2 label2: j label1 nop " ); Assert.Equal((uint)4, assemblerResult.Labels["label2"]); Assert.Equal((uint)0, assemblerResult.Labels["label1"]); Assert.Equal(@"j 0x00000004", new MipsDisassembler().Disassemble(pc: 0 * 4, instruction: assemblerResult.Instructions[0]).ToString()); Assert.Equal(@"j 0x00000000", new MipsDisassembler().Disassemble(pc: 1 * 4, instruction: assemblerResult.Instructions[1]).ToString()); Assert.Equal(@"and r0, r0, r0", new MipsDisassembler().Disassemble(pc: 2 * 4, instruction: assemblerResult.Instructions[2]).ToString()); }
public HlePspThreadTest() { TestHleUtils.CreateInjectContext(this); MipsAssembler = new MipsAssembler(new PspMemoryStream(Memory)); }
public HlePspThreadManagerTest() { TestHleUtils.CreateInjectContext(this); _mipsAssembler = new MipsAssembler(new PspMemoryStream(InjectContext.GetInstance <PspMemory>())); }
public void MatcherNoMatchTest() { Assert.Throws <Exception>(() => { MipsAssembler.Matcher("add %s, %t", "add 1, 2, 3"); }); }
public void AssembleLineTest() { var mipsAssembler = new MipsAssembler(new MemoryStream()); Assert.Equal((uint)0x00020820, mipsAssembler.AssembleInstruction("add r1, r0, r2").Value); }