diff options
Diffstat (limited to 'src/shared/evex.in')
-rw-r--r-- | src/shared/evex.in | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shared/evex.in b/src/shared/evex.in index 8a1e4eb..2f1cbe5 100644 --- a/src/shared/evex.in +++ b/src/shared/evex.in @@ -1,11 +1,17 @@ use super::OperandSpec; +use super::FieldDescription; + +use yaxpeax_arch::DescriptionSink; // `evex_byte_one` is an option because the caller *may* have already read it, // but may have not. `long_mode` can decide immediately that `0x62` should be read // as an `EVEX` instruction, but for other modes we can only make this // determination when reading a `bound`'s `modrm` byte. #[inline(never)] -pub(crate) fn read_evex<T: Reader<<Arch as yaxpeax_arch::Arch>::Address, <Arch as yaxpeax_arch::Arch>::Word>>(words: &mut T, instruction: &mut Instruction, evex_byte_one: Option<u8>) -> Result<(), DecodeError> { +pub(crate) fn read_evex< + T: Reader<<Arch as yaxpeax_arch::Arch>::Address, <Arch as yaxpeax_arch::Arch>::Word>, + S: DescriptionSink<FieldDescription>, +>(words: &mut T, instruction: &mut Instruction, evex_byte_one: Option<u8>, sink: &mut S) -> Result<(), DecodeError> { let evex_byte_one = if let Some(b) = evex_byte_one { b } else { |