internal static Cpu.Status MOD(Script vm) { var lrx = new LRX(vm); int src = vm.cpu.registers[lrx.src]; vm.cpu.registers[lrx.dst] %= src; return(Cpu.Status.OK); }
internal static Cpu.Status MODU(Script vm) { var lrx = new LRX(vm); uint dst = (uint)vm.cpu.registers[lrx.dst]; uint src = (uint)vm.cpu.registers[lrx.src]; vm.cpu.registers[lrx.dst] = (int)(dst % src); return(Cpu.Status.OK); }
internal static Cpu.Status SRL(Script vm) { var lrx = new LRX(vm); int dst = vm.cpu.registers[lrx.dst]; int src = vm.cpu.registers[lrx.src]; vm.cpu.registers[lrx.dst] = dst >> src; return(Cpu.Status.OK); }
internal static Cpu.Status SUBF(Script vm) { var lrx = new LRX(vm); float f0 = Float32.FromInt(vm.cpu.registers[lrx.dst]); float f1 = Float32.FromInt(vm.cpu.registers[lrx.src]); vm.cpu.registers[lrx.dst] = Float32.ToInt(f0 - f1); return(Cpu.Status.OK); }
internal static Cpu.Status CGEF(Script vm) { var lrx = new LRX(vm); float f0 = Float32.FromInt(vm.cpu.registers[lrx.dst]); float f1 = Float32.FromInt(vm.cpu.registers[lrx.src]); vm.cpu.registers[Registers.EAX] = f0 >= f1 ? 1 : 0; return(Cpu.Status.OK); }
internal static Cpu.Status CGEU(Script vm) { var lrx = new LRX(vm); uint dst = (uint)vm.cpu.registers[lrx.dst]; uint src = (uint)vm.cpu.registers[lrx.src]; vm.cpu.registers[Registers.EAX] = dst >= src ? 1 : 0; return(Cpu.Status.OK); }
internal static Cpu.Status CGT(Script vm) { var lrx = new LRX(vm); int dst = vm.cpu.registers[lrx.dst]; int src = vm.cpu.registers[lrx.src]; vm.cpu.registers[Registers.EAX] = dst > src ? 1 : 0; return(Cpu.Status.OK); }