Specifications

Table 11: Condition codes in Bcc
Mnemonic
Bcc
Meaning Interpretation depending on the -bcc option
-bcc=signed -bcc=unsigned
BRA (BT) Always (True) True (branch) Same
BRN (BF) Never (False) False (don't branch) Same
The unsigned comparisons:
BHI High (>) C = 0 and Z = 0 Same
BLS Low or Same () C = 1 or Z = 1
Same
BCC (BHS)
High or Same ()
C = 0
Same
BCS (BLO) Low (<) C = 1 Same
The equality conditions:
BNE
Not Equal () or Not Zero
Z = 0
Same
BEQ Equal (=) or Zero Z = 1 Same
The overflow and sign conditions:
BVC No Overflow Opaque Opaque
BVS Overflow Opaque Opaque
BPL
Plus ( 0)
Opaque
Opaque
BMI Minus (< 0) Opaque Opaque
The signed comparisons:
BGE
Greater or Equal ()
Opaque
As BHS: C = 0
BLT Less Than (<) Opaque As BLO: C = 1
BGT Greater Than (>) Opaque As BHI: C = 0 and Z = 0
BLE Less or Equal () Opaque
As BLS: C = 1 or Z = 1
5.6 Dynamic jumps and calls
What they are
The H8/300 instructions JMP (jump) and JSR (jump to subroutine, call) can use a dynamically
computed target address, in two forms: register indirect (@Rn), where the target address is in
a 16-bit register, and memory indirect (@@aa:8) where the target address is in the memory
word at a statically known address (aa) in the range 0 .. 255 (0 to FF hexadecimal). The
analysis of such instructions is difficult because the possible target addresses must be deduced
to build the control-flow graph (JMP) and call-graph (JSR).
Dynamic jumps are often used to implement "switch/case" code structures. Bound-T tries to
support this form of dynamic jump as explained below. In general, Bound-T is not able to find
the targets of dynamic calls by analysis; they must usually be listed in an assertion. However,
for the H8/300 the form JSR @@aa:8 is supported in a limited form as explained below.
28 Supported H8/300 Features Bound-T for H8/300