summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: a08a44258c00a4197767ff838b7b685f975e2c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
## 0.3.0

* update yaxpeax-arch to 0.3.2 (thank you @ravenslofty), with future 0.3.0 DisplaySink impls to come
* fuzzing found a few decode/display issues:
  * `mov{,.ret}.mwh.ih` handled operands incorrectly.
    - the tag was interpreted as part of hinting.
    - .sptk and `none` hints were incorrectly reported.
    - in addition to being wrong, this would panic if the tag was greater than three.
  * `mov pr.rot = ...` decoded its immediate incorrectly.
    - if the non-sign-extended part was greater than 255, decoding would panic.
    - the decoded immediate was not sign extended or rotated properly.
  * `cmp4.crel.crypte` (A7 operand encodings) would assert if `r2` was not zero.

## 0.2.1

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

## 0.2.0

update yaxpeax-arch to 0.2.x, involving a breaking change to decode APIs (sorry)

## 0.1.4

update yaxpeax-arch to drop a dependency on termion

## 0.1.3

transpose Table 4-43 to fix decoding of `srlz.i`

add MSR load/store, `M43` interpretation, cpuid indirection

fix decoding of mov-to-PKR (table transcription error)

## 0.1.2

non-temporal hint selection (`.nt1`, `.nt2`, `.nt3`) was off by one and could panic on valid inputs
`I-Unit` operand form `I25` extension bits were incorrectly transcribed from the manual
- as a result, both `mov <reg>=ip` and `mov <reg>=pr` would decode incorrectly

## 0.1.1

actually decodeinvalid instructions.
show negative ip-relative immediates by `$-const` rather than `$+-const`.

## 0.1.0

write a decoder.