If you use the
.W specifier, the instruction
is encoded in 32 bits even if it could be encoded in 16 bits. You
can use a diagnostic warning to detect when a branch instruction
could have been encoded in 16 bits, but has been encoded in 32 bits.
To do this, use the following command-line option when invoking
armasm --diag_warning 1607
This diagnostic does not produce a warning for relocated branch instructions, because the final address is not known. The linker might even insert a veneer, if the branch is out of range for a 32-bit instruction.