<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-x86/test/long_mode, branch 1.2.2</title>
<subtitle>yaxpeax x86 decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/'/>
<entry>
<title>fix hreset being disassembled as having second operand of "Nothing"</title>
<updated>2023-12-17T00:12:25+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-17T00:12:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=58913fc4e1bb153fe9d8735164ef922f71c2fa97'/>
<id>58913fc4e1bb153fe9d8735164ef922f71c2fa97</id>
<content type='text'>
just report it having one operand...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
just report it having one operand...
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpbroadcastm{b2q,w2d}` with `rex.b` set</title>
<updated>2023-12-16T23:24:26+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T23:24:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=2db223a16d1559c152170fe2a602c827a5a95fb3'/>
<id>2db223a16d1559c152170fe2a602c827a5a95fb3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpmov*2m` with `rex.r` set</title>
<updated>2023-12-16T23:05:08+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T23:05:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=d7d84b3be6c929ee9d1b425a82b7121936a7cd34'/>
<id>d7d84b3be6c929ee9d1b425a82b7121936a7cd34</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix incorrect register selection for `vpmovm2*` with `rex.b` set</title>
<updated>2023-12-16T22:47:02+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T22:47:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=2d303b6121e318e30572dd1134ddb0cf12bd0776'/>
<id>2d303b6121e318e30572dd1134ddb0cf12bd0776</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>abnormal memory sizes for keylocker instructions are not bugs</title>
<updated>2023-12-16T22:44:07+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T22:12:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=4d2e196e616162726c6211abc46c043078425322'/>
<id>4d2e196e616162726c6211abc46c043078425322</id>
<content type='text'>
new `does_not_decode_invalid_registers` fuzzer found other bugs! the
384-bit accesses for 128b keylocker instructions are an
otherwise-unknown size and had a memory size of `BUG`. they are not
bugs. give the memory size a real name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
new `does_not_decode_invalid_registers` fuzzer found other bugs! the
384-bit accesses for 128b keylocker instructions are an
otherwise-unknown size and had a memory size of `BUG`. they are not
bugs. give the memory size a real name.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix opportunity for unhandled register synonyms</title>
<updated>2023-12-16T21:26:48+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T21:26:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=110f797005cca70e18cbcc0975397d26d8045245'/>
<id>110f797005cca70e18cbcc0975397d26d8045245</id>
<content type='text'>
registers `al`, `cl`, `dl`, and `bl` could have two different
representations - with `rex.w` and without. these two forms of `RegSpec`
would not compare equal, nor has the same, so for code relying on
`RegSpec` to faithfully represent a 1-1 mapping to x86 registers, these
synonyms would introduce bugs in register analysis.

for example, in `yaxpeax-core`, this would result in instructions
writing to `rex.w al` not being visible as definitions for a future
read of `!rex.w al`.

fix this in `x86_64` code, add new test cases about the confusion,
adjust register names to make this situation more clearly a bug, and
introduce two new fuzz targets that would have helped spot this error.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
registers `al`, `cl`, `dl`, and `bl` could have two different
representations - with `rex.w` and without. these two forms of `RegSpec`
would not compare equal, nor has the same, so for code relying on
`RegSpec` to faithfully represent a 1-1 mapping to x86 registers, these
synonyms would introduce bugs in register analysis.

for example, in `yaxpeax-core`, this would result in instructions
writing to `rex.w al` not being visible as definitions for a future
read of `!rex.w al`.

fix this in `x86_64` code, add new test cases about the confusion,
adjust register names to make this situation more clearly a bug, and
introduce two new fuzz targets that would have helped spot this error.
</pre>
</div>
</content>
</entry>
<entry>
<title>more RegSpec constructor validation, fix bug in x86_64 1b reg specs</title>
<updated>2023-12-16T01:26:59+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-12-16T01:26:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=003183a4ce31cfb718f4e4083d32c845352c2321'/>
<id>003183a4ce31cfb718f4e4083d32c845352c2321</id>
<content type='text'>
* the first four 1-byte registers, `al`, `cl`, `dl`, `bl`, can be
  constructed in two ways that produce "identical" `RegSpec` that are..
  not.
  e.g. `RegSpec::al() != Regspec::rb(0)` even though
  `RegSpec::al().name() == RegSpec::rb(0).name()`.

  this corrects the `rb` constructor at least, but instructions like
  `4830c0` and `30c0` still produce incompatible versions of `al`.

* also fix register numbering used explicit qword-sized RegSpec
  constructors, r12 and r13 used to produce r8 and r9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* the first four 1-byte registers, `al`, `cl`, `dl`, `bl`, can be
  constructed in two ways that produce "identical" `RegSpec` that are..
  not.
  e.g. `RegSpec::al() != Regspec::rb(0)` even though
  `RegSpec::al().name() == RegSpec::rb(0).name()`.

  this corrects the `rb` constructor at least, but instructions like
  `4830c0` and `30c0` still produce incompatible versions of `al`.

* also fix register numbering used explicit qword-sized RegSpec
  constructors, r12 and r13 used to produce r8 and r9
</pre>
</div>
</content>
</entry>
<entry>
<title>fix handling of lar/lsl source register</title>
<updated>2023-07-24T13:41:02+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-07-24T13:41:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=ab51fd1b2c7cf1b7bb6f84c5b07e06245f6b3d99'/>
<id>ab51fd1b2c7cf1b7bb6f84c5b07e06245f6b3d99</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix inconsistently-poreted memory access size of vcvt{,t}{sd,si}</title>
<updated>2023-07-23T20:13:44+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-07-23T20:13:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=855fa08f1d2f4bc405a1cfc205b5e9321dd4ebf5'/>
<id>855fa08f1d2f4bc405a1cfc205b5e9321dd4ebf5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix + better test cvttsd2si+cvtsd2si (misdecode under 64-bit)</title>
<updated>2023-07-23T18:06:55+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2023-07-23T18:06:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-x86/commit/?id=4e5dfd758a22818c5f8496025e8c0b3dd00f0f50'/>
<id>4e5dfd758a22818c5f8496025e8c0b3dd00f0f50</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
