diff options
Diffstat (limited to 'CHANGELOG')
| -rw-r--r-- | CHANGELOG | 18 | 
1 files changed, 18 insertions, 0 deletions
@@ -1,3 +1,21 @@ +## 1.0.4 + +in 64-, 32-, and 16-bit modes: +  * fix incorrect decoding of `scas`; memory access is through `*di` not `*si`. +  * fix incorrect segment register for `scas` memory operand; `es` segment is always used. +  * fix incorrect decoding of some 67-prefixed string instructions: `movs`, `scas`, `lods`, `stos`, `cmps`. +    - a 67-prefix selects an alternate addressing mode. in 64-bit mode, this +      selects 32-bit registers for addressing, 32-bit selects 16-bit registers, +      and 16-bit selects 32-bit registers. the decoder had ignored the 67 prefix +      on these instructions. + +in 32- and 16-bit modes: +  * fix incorrect decoding of 16-bit memory accesses with modrm where mod=00 and mmm=110. +    - the memory access from this modrm is a disp16 memory access, which the +      decoder reports. the decoder would then not read the subsequent 16-bit +      displacement. this would typically result in a `Displacement(0)` operand, +      and incorrect following instructions. +  ## 1.0.3  * fix a few broken doc links, added example of yaxpeax-x86 usage through yaxpeax-arch traits  | 
