chore: add macros for ModRM GPR Instruction parsing
This commit is contained in:
@@ -24,3 +24,23 @@ macro_rules! modrms {
|
||||
Mnemonic::$variant(target, SegmentRegister::by_id(reg))
|
||||
}};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
/// Generate a GPR instruction from modrm byte for byte
|
||||
macro_rules! modrmgprb {
|
||||
($self:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Byte(0));
|
||||
let imm = $self.parse_byte();
|
||||
Self::modrm_reg_to_mnemonic(reg, target, OperandWidth::Byte(imm))
|
||||
}};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
/// Generate a GPR instruction from modrm byte for word
|
||||
macro_rules! modrmgprv {
|
||||
($self:ident) => {{
|
||||
let (target, reg) = $self.parse_modrm_byte(OperandWidth::Word(0));
|
||||
let imm = $self.parse_byte();
|
||||
Self::modrm_reg_to_mnemonic(reg, target, OperandWidth::Word(imm.into()))
|
||||
}};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user