<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-x86/CHANGELOG, branch 0.2.0</title>
<subtitle>yaxpeax x86 decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/'/>
<entry>
<title>bump to 0.2.0 and write a changelog</title>
<updated>2021-03-23T07:20:14+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2021-03-23T07:20:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=ea5da6beadca3ba63729f03fc40a284e890ccbc7'/>
<id>ea5da6beadca3ba63729f03fc40a284e890ccbc7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>support xchg AX/reg</title>
<updated>2021-01-16T02:41:16+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2021-01-16T02:40:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=6232e8b1daf7067cb2e8065687530d5f88ecb46d'/>
<id>6232e8b1daf7067cb2e8065687530d5f88ecb46d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>small perf tweaks</title>
<updated>2021-01-16T02:21:19+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2021-01-16T02:15:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=d8083b08dc987adeda73fb13298383c6cf519596'/>
<id>d8083b08dc987adeda73fb13298383c6cf519596</id>
<content type='text'>
clearing reg_rrr and reg_mmm more efficiently is an extremely small win,
but a win

read_imm_signed generally should inline well and runs afoul of some
heuristic. inlining gets about 8% improved throughput on the
(unrealistic) in-repo benchmark

it would be great to be able to avoid bounds checks somehow; it looks
like they alone are another ~10% of decode time. i'm not sure how to
pull that off while retaining the generic iterator parameter. might just
not be possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
clearing reg_rrr and reg_mmm more efficiently is an extremely small win,
but a win

read_imm_signed generally should inline well and runs afoul of some
heuristic. inlining gets about 8% improved throughput on the
(unrealistic) in-repo benchmark

it would be great to be able to avoid bounds checks somehow; it looks
like they alone are another ~10% of decode time. i'm not sure how to
pull that off while retaining the generic iterator parameter. might just
not be possible.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix several missing or invalid decodings among 0f01 opcodes</title>
<updated>2021-01-15T22:52:11+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2021-01-15T22:52:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=f057c712f91b215034fe84fa0f22694aaa8dffb3'/>
<id>f057c712f91b215034fe84fa0f22694aaa8dffb3</id>
<content type='text'>
* `mwaitx`, `monitorx`, `rdpru`, and `clzero` are now supported
* swapgs is no longer decoded in protected mode
* rdpkru and wrpkru are no longer decoded if mod bits != 11
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `mwaitx`, `monitorx`, `rdpru`, and `clzero` are now supported
* swapgs is no longer decoded in protected mode
* rdpkru and wrpkru are no longer decoded if mod bits != 11
</pre>
</div>
</content>
</entry>
<entry>
<title>fix decoding of rex-prefixed modrm+sib operands selecting index 0b100 and base 0b101</title>
<updated>2020-11-20T02:13:24+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-11-20T02:13:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=81e9b93aab9217cf7cb508f64b19fc1c0df024b5'/>
<id>81e9b93aab9217cf7cb508f64b19fc1c0df024b5</id>
<content type='text'>
for memory operands with a base, index, and displacement either
the wrong base would be selected (register number ignored, so only
`*ax` or `r8*` would be reported), or yaxpeax-x86 would report a
base register is present when it is not (`RegIndexBaseScaleDisp`
when the operand is actually `RegScaleDisp`)

thank you to Evan Johnson for catching and reporting this bug!

also bump crate version to 0.1.4 as this will be immediately tagged and
released.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
for memory operands with a base, index, and displacement either
the wrong base would be selected (register number ignored, so only
`*ax` or `r8*` would be reported), or yaxpeax-x86 would report a
base register is present when it is not (`RegIndexBaseScaleDisp`
when the operand is actually `RegScaleDisp`)

thank you to Evan Johnson for catching and reporting this bug!

also bump crate version to 0.1.4 as this will be immediately tagged and
released.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix misdecode of instructions in opcode 0x80</title>
<updated>2020-10-27T07:57:33+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-10-27T07:57:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=39aaebeb48c30b96b4ff8b66663a1452e2571426'/>
<id>39aaebeb48c30b96b4ff8b66663a1452e2571426</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add RegSpec constructors, consts, and const fns</title>
<updated>2020-08-15T20:15:29+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-08-15T20:15:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=fb9ead64e6c7d96c02627b01b6a85921e2d8f7a4'/>
<id>fb9ead64e6c7d96c02627b01b6a85921e2d8f7a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add register class constants to allow reasoning about register operands</title>
<updated>2020-08-15T18:39:04+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-08-15T18:38:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=a0b1fddbb55cbab9d482d4f8cffc7ffe87f73864'/>
<id>a0b1fddbb55cbab9d482d4f8cffc7ffe87f73864</id>
<content type='text'>
also bump to 0.1.1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
also bump to 0.1.1
</pre>
</div>
</content>
</entry>
<entry>
<title>inaugural 0.1.0 release!</title>
<updated>2020-08-10T03:49:12+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-08-10T03:49:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=6248d3c5f7dd196acdfce5c0da1608fed81b43cd'/>
<id>6248d3c5f7dd196acdfce5c0da1608fed81b43cd</id>
<content type='text'>
add doc comments for public items, record changelog, and lets ship this!!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add doc comments for public items, record changelog, and lets ship this!!
</pre>
</div>
</content>
</entry>
<entry>
<title>adjust public interface: public items should all be stable</title>
<updated>2020-08-10T03:43:42+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2020-08-10T03:43:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=8f857a2fcbdfc7315cd09c0a4ac372b3ec92b538'/>
<id>8f857a2fcbdfc7315cd09c0a4ac372b3ec92b538</id>
<content type='text'>
`OperandCode` (obviously) wildly varies depending on how i feel on a
given week, so it's now hidden to avoid people depending on numerical
values of its discriminants.

`RegisterBank` got a similar treatment with a new `RegisterClass` struct
that's suitable for public use.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`OperandCode` (obviously) wildly varies depending on how i feel on a
given week, so it's now hidden to avoid people depending on numerical
values of its discriminants.

`RegisterBank` got a similar treatment with a new `RegisterClass` struct
that's suitable for public use.
</pre>
</div>
</content>
</entry>
</feed>
