summaryrefslogtreecommitdiff
path: root/docs/reference/asm_thumb2_logical_bit.rst
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-02-27 22:03:52 -0500
committerGitHub <noreply@github.com>2018-02-27 22:03:52 -0500
commit568c04e6afa8016062f685b2198c0209f62827f4 (patch)
treed07b76119f715add462983b335797adf64b61249 /docs/reference/asm_thumb2_logical_bit.rst
parent6a2379fd0bfe10017d8abc5c36ef1d470c0d9b27 (diff)
parentea633117d01d94e8d56ed94344e4b3e46b4eef03 (diff)
Merge pull request #650 from tannewt/merge_2x3.0.0-alpha.2
Merge in commits from 2.x branch.
Diffstat (limited to 'docs/reference/asm_thumb2_logical_bit.rst')
-rw-r--r--docs/reference/asm_thumb2_logical_bit.rst53
1 files changed, 0 insertions, 53 deletions
diff --git a/docs/reference/asm_thumb2_logical_bit.rst b/docs/reference/asm_thumb2_logical_bit.rst
deleted file mode 100644
index 8c51feaf4..000000000
--- a/docs/reference/asm_thumb2_logical_bit.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-Logical & Bitwise instructions
-==============================
-
-Document conventions
---------------------
-
-Notation: ``Rd, Rn`` denote ARM registers R0-R7 except in the case of the
-special instructions where R0-R15 may be used. ``Rn<a-b>`` denotes an ARM register
-whose contents must lie in range ``a <= contents <= b``. In the case of instructions
-with two register arguments, it is permissible for them to be identical. For example
-the following will zero R0 (Python ``R0 ^= R0``) regardless of its initial contents.
-
-* eor(r0, r0)
-
-These instructions affect the condition flags except where stated.
-
-Logical instructions
---------------------
-
-* and\_(Rd, Rn) ``Rd &= Rn``
-* orr(Rd, Rn) ``Rd |= Rn``
-* eor(Rd, Rn) ``Rd ^= Rn``
-* mvn(Rd, Rn) ``Rd = Rn ^ 0xffffffff`` i.e. Rd = 1's complement of Rn
-* bic(Rd, Rn) ``Rd &= ~Rn`` bit clear Rd using mask in Rn
-
-Note the use of "and\_" instead of "and", because "and" is a reserved keyword in Python.
-
-Shift and rotation instructions
--------------------------------
-
-* lsl(Rd, Rn<0-31>) ``Rd <<= Rn``
-* lsr(Rd, Rn<1-32>) ``Rd = (Rd & 0xffffffff) >> Rn`` Logical shift right
-* asr(Rd, Rn<1-32>) ``Rd >>= Rn`` arithmetic shift right
-* ror(Rd, Rn<1-31>) ``Rd = rotate_right(Rd, Rn)`` Rd is rotated right Rn bits.
-
-A rotation by (for example) three bits works as follows. If Rd initially
-contains bits ``b31 b30..b0`` after rotation it will contain ``b2 b1 b0 b31 b30..b3``
-
-Special instructions
---------------------
-
-Condition codes are unaffected by these instructions.
-
-* clz(Rd, Rn) ``Rd = count_leading_zeros(Rn)``
-
-count_leading_zeros(Rn) returns the number of binary zero bits before the first binary one bit in Rn.
-
-* rbit(Rd, Rn) ``Rd = bit_reverse(Rn)``
-
-bit_reverse(Rn) returns the bit-reversed contents of Rn. If Rn contains bits ``b31 b30..b0`` Rd will be set
-to ``b0 b1 b2..b31``
-
-Trailing zeros may be counted by performing a bit reverse prior to executing clz.