Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }