<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-x86, branch 1.1.5</title>
<subtitle>yaxpeax x86 decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/'/>
<entry>
<title>bump Cargo.toml to 1.1.5</title>
<updated>2022-12-03T23:15:35+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T23:15:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=c4b66c6fd98aac197bb1f348900709aa3efbd74a'/>
<id>c4b66c6fd98aac197bb1f348900709aa3efbd74a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>include typo fixes in the changelog!</title>
<updated>2022-12-03T23:15:08+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T23:15:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=1059fad53ae604628db3f302f6edac97186adc1d'/>
<id>1059fad53ae604628db3f302f6edac97186adc1d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>describe optimizations included in 1.1.5</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T23:03:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=be09c908de8107453cac0fd74fb58a379aa581b8'/>
<id>be09c908de8107453cac0fd74fb58a379aa581b8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>roll up decoding loop changes for 16-bit and 32-bit decoders</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T22:53:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=c33dac5a0dee4e97416bdafdd27692363afc0d08'/>
<id>c33dac5a0dee4e97416bdafdd27692363afc0d08</id>
<content type='text'>
this applies
* f338c74656f6eef8b3080fa9f249b1cb733fd1a9
* bece19e6a69b158893abbf56a6cac25eb25d9a32
* 6353f58170d28a142e3b012c2c86f684d50dea45
* 67be1c0983244645a3c762b7aa0601f0d0ba4bb3
* 091f1d66ef853d6339a96e43d71c137ee7d3907a

as one unit to both the 16-bit and 32-bit decoders.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this applies
* f338c74656f6eef8b3080fa9f249b1cb733fd1a9
* bece19e6a69b158893abbf56a6cac25eb25d9a32
* 6353f58170d28a142e3b012c2c86f684d50dea45
* 67be1c0983244645a3c762b7aa0601f0d0ba4bb3
* 091f1d66ef853d6339a96e43d71c137ee7d3907a

as one unit to both the 16-bit and 32-bit decoders.
</pre>
</div>
</content>
</entry>
<entry>
<title>apply e7f49509 to 16-bit and 32-bit decoders</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T22:24:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=25c70cdb5293068996f90d29a8f1b7783b9fb63a'/>
<id>25c70cdb5293068996f90d29a8f1b7783b9fb63a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>apply 2444de11 to 16-bit and 32-bit decoders</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-12-03T22:12:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=1cda006a87ea266397c1d376e7d2d231d6bbbd30'/>
<id>1cda006a87ea266397c1d376e7d2d231d6bbbd30</id>
<content type='text'>
these don't need the extra `rex`-supporting index space, so they don't
have it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
these don't need the extra `rex`-supporting index space, so they don't
have it.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect rex selection and field description offsets</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-05-01T20:53:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=635bf0336fe2f654945a23a6b59591866cdb1d2e'/>
<id>635bf0336fe2f654945a23a6b59591866cdb1d2e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>66 prefixes are common, 0f opcodes are common</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-04-23T02:49:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=f11d0c17363fbd73e14e3db92cc0bd7d8d80dcf2'/>
<id>f11d0c17363fbd73e14e3db92cc0bd7d8d80dcf2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>support a fast path through the decoder for [rex-prefixed]opcode insts</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-04-21T09:35:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=e1b3633e9595abdd4714a18bae9d5b0aeaed8a80'/>
<id>e1b3633e9595abdd4714a18bae9d5b0aeaed8a80</id>
<content type='text'>
the overwhelming majority of x86 instructions are either a single-byte
opcode or a single-byte opcode with a rex prefix. supporting these
specially means that we don't have to length-check on every byte or
go through the full decode loop while reading the most likely
instructions. this is a significant improvement on typical x86 streams,
but comes at a moderate penalty for crafted x86 instructions.

the penalty is still not very bad, as the fast path is exited in favor
of the full decode loop as soon as we see a non-rex prefix byte; this
adds maybe a dozen instructions to the slow path.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the overwhelming majority of x86 instructions are either a single-byte
opcode or a single-byte opcode with a rex prefix. supporting these
specially means that we don't have to length-check on every byte or
go through the full decode loop while reading the most likely
instructions. this is a significant improvement on typical x86 streams,
but comes at a moderate penalty for crafted x86 instructions.

the penalty is still not very bad, as the fast path is exited in favor
of the full decode loop as soon as we see a non-rex prefix byte; this
adds maybe a dozen instructions to the slow path.
</pre>
</div>
</content>
</entry>
<entry>
<title>just a bit more code motion that seemed to help things sometimes</title>
<updated>2022-12-03T23:11:09+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2022-04-21T09:35:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=c15999d4a5afa1e2e3e6d6c227135dfd5cf28780'/>
<id>c15999d4a5afa1e2e3e6d6c227135dfd5cf28780</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
