<feed xmlns='http://www.w3.org/2005/Atom'>
<title>yaxpeax-arm/tests/armv7/mod.rs, branch 0.5.0</title>
<subtitle>yaxpeax arm decoder</subtitle>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/'/>
<entry>
<title>fix some lingering warnings</title>
<updated>2026-09-11T17:05:03+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2026-09-11T17:05:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=3d645f4fd918af427e4b3ade56057966f4ac894f'/>
<id>3d645f4fd918af427e4b3ade56057966f4ac894f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>untangle some nonconforming ld/st forms</title>
<updated>2026-07-28T07:28:15+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2026-07-26T07:40:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=b9384b6b6bcdc50efa9df73cd840eb8a49cda7ab'/>
<id>b9384b6b6bcdc50efa9df73cd840eb8a49cda7ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>differential testing wip</title>
<updated>2026-07-28T07:28:15+00:00</updated>
<author>
<name>iximeow</name>
<email>me@iximeow.net</email>
</author>
<published>2026-07-26T07:34:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=273e870aeeacebda604a30f8f63c7a18022c5885'/>
<id>273e870aeeacebda604a30f8f63c7a18022c5885</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not add an 's' when outputing opcodes that always set flags</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-24T21:58:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=0b4ce1210eb90aa370d286390c8566f2bee133bd'/>
<id>0b4ce1210eb90aa370d286390c8566f2bee133bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Decode the correct number of operands for TST/TEQ (immediate/register)</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-25T01:58:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=485aaac0f82e6b5546ae392b6be626c4558cc26a'/>
<id>485aaac0f82e6b5546ae392b6be626c4558cc26a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify decoding of register-shifted-register data-processing instructions</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-25T01:19:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=88db0bb355e14ba58658026df7708e62696978b2'/>
<id>88db0bb355e14ba58658026df7708e62696978b2</id>
<content type='text'>
Previously, immediate-shifted-register and register-shifted-register
data-processing instructions were decoded using separate decoding paths,
which caused extra complexity. These two forms differ only in the
interpretation of their shifting constructs, which is already handled
through the `RegShift` type.

This change also fixes instructions like `cmp r0, r1, lsl r2` from being
decoded with an extra operand.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, immediate-shifted-register and register-shifted-register
data-processing instructions were decoded using separate decoding paths,
which caused extra complexity. These two forms differ only in the
interpretation of their shifting constructs, which is already handled
through the `RegShift` type.

This change also fixes instructions like `cmp r0, r1, lsl r2` from being
decoded with an extra operand.
</pre>
</div>
</content>
</entry>
<entry>
<title>Decode the correct number of operands for CMP/CMN (immediate/register)</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-24T21:54:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=cb36e55f64ae1a941b20d2d6d6b5e546566072f8'/>
<id>cb36e55f64ae1a941b20d2d6d6b5e546566072f8</id>
<content type='text'>
This also incidentally fixes an issue where MOV/MVN instructions with a
shifted operand could be decoded as if they had 3 operands.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also incidentally fixes an issue where MOV/MVN instructions with a
shifted operand could be decoded as if they had 3 operands.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix the handling of reserved bits in uncommon loads/stores</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-23T23:44:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=c4015e7157ad07ffdd37f794ee77c5695a001059'/>
<id>c4015e7157ad07ffdd37f794ee77c5695a001059</id>
<content type='text'>
There's a pattern of load/store instructions that look something like
  * `ldr&lt;variant&gt; &lt;target registers&gt;,
        [&lt;base register&gt;, +/- &lt;offset register&gt;]`
  * `str&lt;variant&gt; &lt;target registers&gt;,
        [&lt;base register&gt;, +/- &lt;offset register&gt;]`

These instructions share a common encoding format, which includes the
presence of 4 reserved bits starting at bit 8 in the instruction word.
These bits should always be zero, according to
`DDI0406C_d_armv7ar_arm.pdf`. However, while this crate did attempt to
validate these bits sometimes, the validation was inverted. Instead of
checking that the bits were zero, the validation would raise an error if
all of the bits were zero! Additionally, some instructions were missing
the check and some instructions that did not use the aforementioned
encoding scheme incorrectly had the check applied to them.

This commit fixes all of the issues I've found along these lines so far.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's a pattern of load/store instructions that look something like
  * `ldr&lt;variant&gt; &lt;target registers&gt;,
        [&lt;base register&gt;, +/- &lt;offset register&gt;]`
  * `str&lt;variant&gt; &lt;target registers&gt;,
        [&lt;base register&gt;, +/- &lt;offset register&gt;]`

These instructions share a common encoding format, which includes the
presence of 4 reserved bits starting at bit 8 in the instruction word.
These bits should always be zero, according to
`DDI0406C_d_armv7ar_arm.pdf`. However, while this crate did attempt to
validate these bits sometimes, the validation was inverted. Instead of
checking that the bits were zero, the validation would raise an error if
all of the bits were zero! Additionally, some instructions were missing
the check and some instructions that did not use the aforementioned
encoding scheme incorrectly had the check applied to them.

This commit fixes all of the issues I've found along these lines so far.
</pre>
</div>
</content>
</entry>
<entry>
<title>Check all of the appropriate bits when parsing op1 for CDP2/MCR2/MRC2</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-22T20:03:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=03b7860359a9bdff793419367563974db335e45e'/>
<id>03b7860359a9bdff793419367563974db335e45e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement the RRX immediate shift type</title>
<updated>2026-07-28T02:53:24+00:00</updated>
<author>
<name>Grond</name>
<email>grond@grondhaus.net</email>
</author>
<published>2026-06-24T21:11:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.iximeow.net/yaxpeax-arm/commit/?id=44f91bf710081d98b465252487a6b168b2f2597e'/>
<id>44f91bf710081d98b465252487a6b168b2f2597e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
