<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-x86/src/lib.rs, branch 2.1.1</title>
<subtitle>yaxpeax x86 decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/'/>
<entry>
<title>add behavior information for x86_64 instructions</title>
<updated>2026-05-25T04:31:49+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2026-02-19T02:14:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=87dc48adcce4e80aa98a2867edacc023579fc4c4'/>
<id>87dc48adcce4e80aa98a2867edacc023579fc4c4</id>
<content type='text'>
this is a squash of a few months' hacking, including but not limited to
what eventually got extracted into
https://git.iximeow.net/asmlinator/about/

the path here is generally not historically interesting, and the vast
majority of this diff is very particular static data tables
(BehaviorDigests and implicit operand lists)

`src/long_mode/behavior.rs` will more or less be directly adapted into
versions for x86-32 and x86-16, similar to the instruction decoders.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is a squash of a few months' hacking, including but not limited to
what eventually got extracted into
https://git.iximeow.net/asmlinator/about/

the path here is generally not historically interesting, and the vast
majority of this diff is very particular static data tables
(BehaviorDigests and implicit operand lists)

`src/long_mode/behavior.rs` will more or less be directly adapted into
versions for x86-32 and x86-16, similar to the instruction decoders.
</pre>
</div>
</content>
</entry>
<entry>
<title>type aliases make some of these signatures less egregious..</title>
<updated>2026-02-14T18:33:39+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2026-02-14T18:33:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=b7de8016c51f8d48bb3f91eb6d7be191d6b46d55'/>
<id>b7de8016c51f8d48bb3f91eb6d7be191d6b46d55</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cpu feature bits are the same across 64/32/16-bit</title>
<updated>2025-06-01T09:21:57+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2025-05-31T20:39:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=a4204b5a3807bf41a2bb5801f874e7f263f8db1f'/>
<id>a4204b5a3807bf41a2bb5801f874e7f263f8db1f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>justify the current max instruction length</title>
<updated>2024-06-24T21:27:25+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-24T21:06:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=dd8bd5ce0772b08c271205508e48e98ef1c58ea8'/>
<id>dd8bd5ce0772b08c271205508e48e98ef1c58ea8</id>
<content type='text'>
this is also checked by a new fuzz target
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is also checked by a new fuzz target
</pre>
</div>
</content>
</entry>
<entry>
<title>rename most operand variants, make them structy rather than tupley</title>
<updated>2024-06-24T19:48:45+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-24T19:48:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=1b8019d5b39a05c109399b8628a1082bfec79755'/>
<id>1b8019d5b39a05c109399b8628a1082bfec79755</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove yaxpeax-x86 safer_unchecked.rs, it is now in yaxpeax-arch</title>
<updated>2024-06-23T22:43:54+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-23T22:41:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=09dcfca94240b6c18fbaa1186781dac0d436e500'/>
<id>09dcfca94240b6c18fbaa1186781dac0d436e500</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>extract reusable display bits into yaxpeax-arch, add a visitor fn to Operand</title>
<updated>2024-06-22T07:25:01+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-22T07:25:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=347042c45ced56b37a665a2c4b042b7f7aae8e03'/>
<id>347042c45ced56b37a665a2c4b042b7f7aae8e03</id>
<content type='text'>
comes with deleting the body of impl Colorize for Operand, because we can reuse the normal operand formatting code
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
comes with deleting the body of impl Colorize for Operand, because we can reuse the normal operand formatting code
</pre>
</div>
</content>
</entry>
<entry>
<title>things compile again, add a few more caution signs around InstructionTextBuffer</title>
<updated>2024-06-21T09:05:24+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-21T09:05:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=d16cc79d7b7091f67328a0080634ce6cd4880dbd'/>
<id>d16cc79d7b7091f67328a0080634ce6cd4880dbd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>separate out display code further, reword comments on InstructionTextSink to be ... stern</title>
<updated>2024-06-21T08:32:48+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-06-21T08:32:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=e39d6b576da2f25490bf739b61fc8c9f3ab7c2ec'/>
<id>e39d6b576da2f25490bf739b61fc8c9f3ab7c2ec</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>display opt: mem size labels and minor segment reporting changes</title>
<updated>2024-04-02T07:29:30+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2024-04-02T06:38:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=bbdf78c061b6e685d1992dcdeac692fc2f8f0d34'/>
<id>bbdf78c061b6e685d1992dcdeac692fc2f8f0d34</id>
<content type='text'>
for mem size labels: add one new "BUG" entry at the start of the array
  so `mem_size` does not need to be adjusted before being used to look
  up a string from the `MEM_SIZE_STRINGS` array. it's hard to measure
  the direct benefit of this, but it shrinks codegen size by a bit and
  simplfies a bit of assembly....

for segment reporting changes: stos/scas/lods do not actually need
  special segment override logic. instead, set their use of `es` when
  decoded, if appropriate. this is potentially ambiguous; in non-64bit
  modes the sequence `26aa` would decode as `stos` with explicit `es`
  prefix. this is now identical to simply decoding `aa`, which now also
  reports that there is an explicit `es` prefix even though there is no
  prefix on tne instruction.

  on the other hand, the prefix-reported segment now more accurately
  describes the memory selector through which memory accesses will
  happen. seems ok?
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
for mem size labels: add one new "BUG" entry at the start of the array
  so `mem_size` does not need to be adjusted before being used to look
  up a string from the `MEM_SIZE_STRINGS` array. it's hard to measure
  the direct benefit of this, but it shrinks codegen size by a bit and
  simplfies a bit of assembly....

for segment reporting changes: stos/scas/lods do not actually need
  special segment override logic. instead, set their use of `es` when
  decoded, if appropriate. this is potentially ambiguous; in non-64bit
  modes the sequence `26aa` would decode as `stos` with explicit `es`
  prefix. this is now identical to simply decoding `aa`, which now also
  reports that there is an explicit `es` prefix even though there is no
  prefix on tne instruction.

  on the other hand, the prefix-reported segment now more accurately
  describes the memory selector through which memory accesses will
  happen. seems ok?
</pre>
</div>
</content>
</entry>
</feed>
