1use super::Cmp;
6use crate::{Asm, Imm16, Imm32, Imm8, Mem16, Mem8, Reg16, Reg32, Reg64, Reg8};
7
8impl Cmp<Mem8, Imm8> for Asm {
9 fn cmp(&mut self, op1: Mem8, op2: Imm8) {
10 self.encode_mi(0x80, 0x7, op1, op2);
11 }
12}
13
14impl Cmp<Mem16, Imm16> for Asm {
15 fn cmp(&mut self, op1: Mem16, op2: Imm16) {
16 self.encode_mi(0x81, 0x7, op1, op2);
17 }
18}
19
20impl Cmp<Reg8, Imm8> for Asm {
21 fn cmp(&mut self, op1: Reg8, op2: Imm8) {
22 self.encode_ri(0x80, 0x7, op1, op2);
23 }
24}
25
26impl Cmp<Reg16, Imm16> for Asm {
27 fn cmp(&mut self, op1: Reg16, op2: Imm16) {
28 self.encode_ri(0x81, 0x7, op1, op2);
29 }
30}
31
32impl Cmp<Reg32, Imm32> for Asm {
33 fn cmp(&mut self, op1: Reg32, op2: Imm32) {
34 self.encode_ri(0x81, 0x7, op1, op2);
35 }
36}
37
38impl Cmp<Reg32, Reg32> for Asm {
39 fn cmp(&mut self, op1: Reg32, op2: Reg32) {
40 self.encode_rr_mr(&[0x39], op1, op2);
41 }
42}
43
44impl Cmp<Reg64, Reg64> for Asm {
45 fn cmp(&mut self, op1: Reg64, op2: Reg64) {
46 self.encode_rr_mr(&[0x39], op1, op2);
47 }
48}