lun/isa/logic/
cmp.rs

1use super::super::iprelude::*;
2
3pub fn w_r(vm: &mut Vm, r1: VmRegister) {
4    let r1v = vm.get_register_value(r1);
5    vm.eq = r1v == 0;
6    vm.ng = (r1v & (1 << 63)) > 0;
7    vm.ov = false;
8}
9
10pub fn w_rr(vm: &mut Vm, r1: VmRegister, r2: VmRegister) {
11    let r1v = vm.get_register_value(r1);
12    let r2v = vm.get_register_value(r2);
13    vm.eq = r1v == r2v;
14    vm.ng = (r1v as i64) < (r2v as i64);
15}