chore: dedup u8/u16 byte/word immediate type
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
/// Generate a byte Opcode for 'normal' ModRM instructions with mem access and a reg
|
||||
macro_rules! modrmb {
|
||||
($self:ident, $variant:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Byte(0));
|
||||
Mnemonic::$variant(target, Register::by_id(OperandWidth::Byte(reg)))
|
||||
let (target, reg) = $self.parse_modrm_byte(ImmediateOperand::Byte(0));
|
||||
Mnemonic::$variant(target, Register::by_id(ImmediateOperand::Byte(reg)))
|
||||
}};
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ macro_rules! modrmb {
|
||||
/// Generate a word Opcode for 'normal' ModRM instructions with mem access and a reg
|
||||
macro_rules! modrmv {
|
||||
($self:ident, $variant:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Word(0));
|
||||
Mnemonic::$variant(target, Register::by_id(OperandWidth::Word(reg.into())))
|
||||
let (target, reg) = $self.parse_modrm_byte(ImmediateOperand::Word(0));
|
||||
Mnemonic::$variant(target, Register::by_id(ImmediateOperand::Word(reg.into())))
|
||||
}};
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ macro_rules! modrmv {
|
||||
/// Generate a word Opcode for 'normal' ModRM instructions with mem access and a segment reg
|
||||
macro_rules! modrms {
|
||||
($self:ident, $variant:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Word(0));
|
||||
let (target, reg) = $self.parse_modrm_byte(ImmediateOperand::Word(0));
|
||||
Mnemonic::$variant(target, SegmentRegister::by_id(reg))
|
||||
}};
|
||||
}
|
||||
@@ -30,9 +30,9 @@ macro_rules! modrms {
|
||||
/// GPR always has an imm value as second operand.
|
||||
macro_rules! modrmgprb {
|
||||
($self:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Byte(0));
|
||||
let (target, reg) = $self.parse_modrm_byte(ImmediateOperand::Byte(0));
|
||||
let imm = $self.parse_byte();
|
||||
Self::modrm_reg_to_mnemonic(reg, target, OperandWidth::Byte(imm))
|
||||
Self::modrm_reg_to_mnemonic(reg, target, ImmediateOperand::Byte(imm))
|
||||
}};
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ macro_rules! modrmgprb {
|
||||
/// GPR always has an imm value as second operand.
|
||||
macro_rules! modrmgprv {
|
||||
($self:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Word(0));
|
||||
let (target, reg) = $self.parse_modrm_byte(ImmediateOperand::Word(0));
|
||||
let imm = $self.parse_word();
|
||||
Self::modrm_reg_to_mnemonic(reg, target, OperandWidth::Word(imm))
|
||||
Self::modrm_reg_to_mnemonic(reg, target, ImmediateOperand::Word(imm))
|
||||
}};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user