aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-08-13 23:44:28 -0700
committeriximeow <me@iximeow.net>2021-08-21 19:08:40 -0700
commita07098315bea8b880688831f931bc5213ebb6a5f (patch)
tree67b134241aefde7919091c51e97bbc6b0f6c62b1 /src/shared
parent9cb6967f484553d78f75113ad534a34960184db8 (diff)
extend annotation reporting to 32- and 16-bit modes, kinda
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/evex.in8
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 {