Пример #1
0
 public static void JAL(OpcodeTable.OpcodeDesc Desc)
 {
     Registers.R4300.PC += 4;
     R4300.InterpretOpcode(R4300.memory.ReadUInt32(Registers.R4300.PC));
     Registers.R4300.Reg[31] = Registers.R4300.PC;
     Registers.R4300.PC      = ((Registers.R4300.PC - 4) & 0xF0000000) | (Desc.Target << 2);
 }
Пример #2
0
 public static void BLTZ(OpcodeTable.OpcodeDesc Desc)
 {
     Registers.R4300.PC += 4;
     R4300.InterpretOpcode(R4300.memory.ReadUInt32(Registers.R4300.PC));
     if ((long)Registers.R4300.Reg[Desc.op1] <= 0)
     {
         Registers.R4300.PC += (uint)((short)((Desc.Imm - 1) << 2));
     }
 }
Пример #3
0
 public static void BEQL(OpcodeTable.OpcodeDesc Desc)
 {
     Registers.R4300.PC += 4;
     if ((long)Registers.R4300.Reg[Desc.op1] == (long)Registers.R4300.Reg[Desc.op2])
     {
         R4300.InterpretOpcode(R4300.memory.ReadUInt32(Registers.R4300.PC));
         Registers.R4300.PC += (uint)((short)((Desc.Imm - 1) << 2));
     }
     else
     {
         Registers.R4300.PC += 4;
     }
 }
Пример #4
0
 public static void JR(OpcodeTable.OpcodeDesc Desc)
 {
     Registers.R4300.PC += 4;
     R4300.InterpretOpcode(R4300.memory.ReadUInt32(Registers.R4300.PC));
     Registers.R4300.PC = (uint)(Registers.R4300.Reg[Desc.op1] & 0xFFFFFFFF);
 }