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}