You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Decoder and formatter perf improvements (Rust, see below)
Instruction's memory displacement is now 64 bits (was 32 bits). This solves a couple of issues and will make creating RIP-relative memory operands much easier.
Use MemoryDisplacement{32,64}/memory_displacement{32,64}() (deprecated old 32-bit members: MemoryDisplacement/memory_displacement())
If it's an EIP/RIP relative memory operand, MemoryDisplacement64/memory_displacement64() is now the absolute address (used to be an RIP-relative displacement)
OpKind.Memory64 is deprecated since it's not used by iced (use OpKind.Memory instead)
MemoryOperand's displacement argument is now an i64 (used to be an i32)
Added Decoder::with_ip()/Decoder.Create() with an extra ip argument (Rust/.NET/Python)
Rust
FastFormatter perf improvements:
The new generic SpecializedFormatter<TraitOptions> is 2x faster than the old FastFormatter code. see here
FastFormatter is now type FastFormatter = SpecializedFormatter<T> (no breaking changes)
Deprecated a few methods that could panic that I missed last time and added try_*() methods that return a Result<T, E>
Added Register::values() (Credit: @tnballo) that returns an iterator that returns all enum values. Same associated method was also added to the other public enums.
All enums now implement TryFrom<usize>
Added Instruction::op_kinds() which returns all (0-5) OpKind values