The Cortex-M4 Instruction Set
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
3-124
ID121610
Non-Confidential
3.10.4
TBB and TBH
Table Branch Byte and Table Branch Halfword.
Syntax
TBB [
Rn
,
Rm
]
TBH [
Rn
,
Rm
, LSL #1]
where:
Rn
Specifies the register containing the address of the table of branch lengths.
If
Rn
is PC, then the address of the table is the address of the byte immediately
following the
TBB
or
TBH
instruction.
Rm
Specifies the index register. This contains an index into the table. For halfword
tables,
LSL #1
doubles the value in
Rm
to form the right offset into the table.
Operation
These instructions cause a PC-relative forward branch using a table of single byte offsets for
TBB
,
or halfword offsets for
TBH
.
Rn
provides a pointer to the table, and
Rm
supplies an index into the
table. For
TBB
the branch offset is twice the unsigned value of the byte returned from the table.
and for
TBH
the branch offset is twice the unsigned value of the halfword returned from the table.
The branch occurs to the address at that offset from the address of the byte immediately after
the
TBB
or
TBH
instruction.
Restrictions
The restrictions are:
•
Rn
must not be SP
•
Rm
must not be SP and must not be PC
•
when any of these instructions is used inside an IT block, it must be the last instruction of
the IT block.
Condition flags
These instructions do not change the flags.