## 0.3.0

* major version bump of yaxpeax-arch (0.2.7 -> 0.3.1)
  - while there is no direct API breakage of yaxpeax-arch, typical use of the
    yaxpeax crates would have issues with their yaxpeax-arch dependency not
    matching the transitive dependency through specific decoder crates. so, major
    version bump it is!

## 0.2.6

* aarch64: add support for `udf` (`0000_0000_0000_0000_<imm16>`)
  - thank you @martin-fink!

## 0.2.5
* fix decoding armv8 a64 hint instructions
  - in some cases the displayed hint instruction was incorrect
  - additionally, the `op1` field in decoded instructions included two more
    bits than it should
  - thanks to belovdv for the patch!
* improve decoding of armv8 a64 msr instructions
  - decoding of the `PstateField` immediate value was just terribly wrong.
  - this should be improved to more precisely match section `C5.1.3`
    "architectural hints, barriers and CLREX, and PSTATE access", but least
    fields are decoded properly.

## 0.2.4
* fix `no_std` builds
* several fixes relating to arm- and thumb-mode v7 branch offset decoding
  - thanks to both ehntoo and jam1garner for these!
* make `ShiftStyle::into_shift` public. it was private as an oversight; this is
  a useful conversion involved in programmatic handling of instructions.
  - thanks to wscp for catching this!

## 0.2.3
* add differential tests, initial impl only tests against capstone

## 0.2.2
* fix docs typo.

## 0.2.1
* README updates.

## 0.2.0
* added documentation to all public members.
* fix tests incorrectly expecting `lsl #0` in memory operands where it would have no effect
* remove some redundant `a64` operand kinds:
  - `RegOffset` is now `RegPreIndex` with no writeback.
  - `Offset` was a duplicate of `PCOffset`, and all uses have been so-renamed.

## 0.1.4
* add or fix many a64 instructions, extend support up through armv8.5.
  - some disassembly and optional elements of instruction text does not match
    the arm manual, but instruction data should be correct across the board.
  - SVE and SVE2 are not yet supported, and return `IncompleteDecoder` errors.

## 0.1.3
* same as 0.1.2, but fixes a few compilation warnings that snuck in too.

## 0.1.2
* fix some instructions in aarch64 decoding panicking with "unreachable"
  instead of returning an `Err(DecodeError::Incomplete)`. similarly, some
  instructions panicked instead of returning `InvalidOpcode` or `InvalidOperand`
  as they should.
* fix some instructions in armv7 decoding or display panicking instead of
  displaying a valid instruction, or returning a decode error.

... subsequently yanked because some compilation warnings ended up in this version.

## 0.1.1
* fix incorrect `yaxpeax_arch::Arch` impl for `std`-enabled builds
  (DecodeError did not implement `std::error::Error` in those build environments)

## 0.1.0
* target yaxpeax-arch 0.2.0

## 0.0.6
* fix incorrect markdown in README.md

## 0.0.5
* add thumb/thumb2 decoders

these decoders are considered "mostly correct" and "mostly complete". notably,
system instructions are less well-tested (particularly `mrs`, `cps`, and
similar), and the NEON extensions are still unsupported. NEON in particular
yield `DecodeError::Incomplete`. if you, the user, see `Incomplete`, that is a
`yaxpeax-arm` error!

`yaxpeax-arm` differs from the ARM manual's assembly syntax in a few ways:
* `.w` suffixes are best-effort.
* `addw`/`subw` are written `add.w`/`sub.w` for consistency with other wide instructions.
* `adr` with added/subtracted offset are shown as `add`/`sub`
* testing is not as exhaustive as is possible for ARM; errors may yet exist

at this time, if-then instructions (`IT`) are decoded, but the decoder has no
notion of "in an `IT` block or not", so following conditional instructions are
not yet conditional.

this all said, for armv4/thumb decoding, the implementation here is probably
close to correct. for armv6+/thumb2, aside from these notes, the implementation
here is ... hopefully ... close to correct.

* add clear rules by which `yaxpeax-arm` will be versioned 0.1 or 1.0. (see README)

## 0.0.4
* bump yaxpeax-arch, no functional change

## 0.0.3
`Instruction`, `Opcode`, and `Operand` are now a useful model of decoded
operations.
* `Operands`, plural, the enum of operands in the instruction, is now gone in
  favor of `Operand` that describe one operand of the instruction
* `Instruction` no longer include operand attributes like "add", "index", or "wback"
* better (not quite complete) support for non-user instructions and coprocessor instructions
* instructions operating on status registers through masks are now directly supported
* first brush of arm-version-specific decoder feature selection
* fix several preindex/postindex reversals

## 0.0.2
last revison that's sufficient for disassembly and really nothing else
