68 lines
2.7 KiB
XML
68 lines
2.7 KiB
XML
|
<schema>
|
||
|
<structure id="main" bits="32">
|
||
|
<range start="28" end="31" name="cond"></range>
|
||
|
<range start="27" end="27" name="0"></range>
|
||
|
<range start="26" end="26" name="1"></range>
|
||
|
<range start="25" end="25" name="I"></range>
|
||
|
<range start="24" end="24" name="P">
|
||
|
<description>pre / post indexing bit</description>
|
||
|
<values>
|
||
|
<case value="0">post, add offset after transfer</case>
|
||
|
<case value="1">pre, add offset before transfer</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
<range start="23" end="23" name="U">
|
||
|
<description>up / down bit</description>
|
||
|
<values>
|
||
|
<case value="0">down, subtract offset from base</case>
|
||
|
<case value="1">up, addition offset to base</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
<range start="22" end="22" name="B">
|
||
|
<description>byte / word bit</description>
|
||
|
<values>
|
||
|
<case value="0">transfer word quantity</case>
|
||
|
<case value="1">transfer byte quantity</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
<range start="21" end="21" name="W">
|
||
|
<description>write-back bit</description>
|
||
|
<values>
|
||
|
<case value="0">no write-back</case>
|
||
|
<case value="1">write address into base</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
<range start="20" end="20" name="L">
|
||
|
<description>load / store bit</description>
|
||
|
<values>
|
||
|
<case value="0">store to memory</case>
|
||
|
<case value="1">load from memory</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
<range start="16" end="19" name="Rn">
|
||
|
<description>base register</description>
|
||
|
</range>
|
||
|
<range start="12" end="15" name="Rd">
|
||
|
<description>source / destination register</description>
|
||
|
</range>
|
||
|
<range start="0" end="11" name="offset" depends-on="25">
|
||
|
<values>
|
||
|
<case value="0" structure="immediateOffset">offset is an immediate value</case>
|
||
|
<case value="1" structure="registerOffset">offset is a register</case>
|
||
|
</values>
|
||
|
</range>
|
||
|
</structure>
|
||
|
<structure id="immediateOffset" bits="12">
|
||
|
<range start="0" end="11" name="12-bit immediate offset">
|
||
|
<description>unsigned number</description>
|
||
|
</range>
|
||
|
</structure>
|
||
|
<structure id="registerOffset" bits="12">
|
||
|
<range start="4" end="11" name="shift">
|
||
|
<description>shift applied to Rm</description>
|
||
|
</range>
|
||
|
<range start="0" end="3" name="Rm">
|
||
|
<description>offset register</description>
|
||
|
</range>
|
||
|
</structure>
|
||
|
</schema>
|